right-rails 1.0.3 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. data/CHANGELOG +8 -2
  2. data/Rakefile +28 -28
  3. data/lib/right_rails/java_script_generator.rb +59 -51
  4. data/public/images/{colorpicker.png → rightjs-ui/colorpicker.png} +0 -0
  5. data/public/images/{resizable.png → rightjs-ui/resizable.png} +0 -0
  6. data/public/javascripts/right-olds-src.js +47 -46
  7. data/public/javascripts/right-safe-src.js +103 -102
  8. data/public/javascripts/right-safe.js +1 -1
  9. data/public/javascripts/right-src.js +611 -541
  10. data/public/javascripts/right.js +86 -85
  11. data/public/javascripts/right/autocompleter-src.js +81 -77
  12. data/public/javascripts/right/autocompleter.js +1 -1
  13. data/public/javascripts/right/calendar-src.js +209 -197
  14. data/public/javascripts/right/calendar.js +6 -6
  15. data/public/javascripts/right/colorpicker-src.js +127 -117
  16. data/public/javascripts/right/colorpicker.js +6 -6
  17. data/public/javascripts/right/dnd-src.js +63 -63
  18. data/public/javascripts/right/dnd.js +2 -2
  19. data/public/javascripts/right/in-edit-src.js +53 -48
  20. data/public/javascripts/right/in-edit.js +2 -2
  21. data/public/javascripts/right/lightbox-src.js +107 -99
  22. data/public/javascripts/right/lightbox.js +2 -2
  23. data/public/javascripts/right/rater-src.js +48 -46
  24. data/public/javascripts/right/rater.js +3 -3
  25. data/public/javascripts/right/resizable-src.js +53 -61
  26. data/public/javascripts/right/resizable.js +4 -4
  27. data/public/javascripts/right/selectable-src.js +97 -95
  28. data/public/javascripts/right/selectable.js +2 -2
  29. data/public/javascripts/right/slider-src.js +47 -45
  30. data/public/javascripts/right/slider.js +8 -8
  31. data/public/javascripts/right/sortable-src.js +54 -52
  32. data/public/javascripts/right/tabs-src.js +181 -171
  33. data/public/javascripts/right/tooltip-src.js +39 -37
  34. data/public/javascripts/right/uploader-src.js +21 -19
  35. data/spec/lib/right_rails/java_script_generator_spec.rb +61 -56
  36. metadata +9 -7
@@ -13,8 +13,8 @@ i=p(e.getStyle("borderBottomWidth"));e=a.top-d.y+g;d=a.left-d.x+h;h=a.width-h-j;
13
13
  this;var c=f(function(){if(this.visible()&&(!this.showAt||this.shownAt===a))this.setValue(a.value())}).bind(this);a.on({keyup:c,change:c});this.onChange(function(){if(!this.showAt||this.shownAt===a)a.setValue(this.getValue())});return this}}],extend:{version:"2.0.0",EVENTS:q("show hide change done"),Options:{format:"ISO",showTime:null,showButtons:false,minDate:false,maxDate:false,fxName:"fade",fxDuration:"short",firstDay:1,numberOfMonths:1,timePeriod:1,twentyFourHour:null,listYears:false,hideOnPick:false,
14
14
  update:null,trigger:null,cssRule:"*[data-calendar]"},Formats:{ISO:"%Y-%m-%d",POSIX:"%Y/%m/%d",EUR:"%d-%m-%Y",US:"%m/%d/%Y"},i18n:{Done:"Done",Now:"Now",NextMonth:"Next Month",PrevMonth:"Previous Month",NextYear:"Next Year",PrevYear:"Previous Year",dayNames:q("Sunday Monday Tuesday Wednesday Thursday Friday Saturday"),dayNamesShort:q("Sun Mon Tue Wed Thu Fri Sat"),dayNamesMin:q("Su Mo Tu We Th Fr Sa"),monthNames:q("January February March April May June July August September October November December"),
15
15
  monthNamesShort:q("Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec")},current:null,hideAll:function(a){D("div.rui-calendar").each(function(b){b instanceof n&&b!==a&&b.visible()&&!b.inlined()&&b.hide()})}},initialize:function(a){this.$super("calendar",a);this.addClass("rui-panel");a=this.options;this.insert([this.swaps=new H(a),this.greed=new I(a)]);if(a.showTime)this.insert(this.timepicker=new J(a));if(a.showButtons)this.insert(this.buttons=new K(a));this.setDate(new Date).initEvents()},setDate:function(a,
16
- b){if(a=this.parse(a)){var c=this.options;if(c.minDate&&c.minDate>a)a=new Date(c.minDate);if(c.maxDate&&c.maxDate<a){a=new Date(c.maxDate);a.setDate(a.getDate()-1)}this._date=b?new Date(this._date||this.date):null;this.greed.setDate(this._date||a,a);if(c.minDate||c.maxDate)this.swaps.setDate(a);this.timepicker&&!b&&this.timepicker.setDate(a);if(a!=this.date)this.fire("change",this.date=a)}return this},getDate:function(){return this.date},setValue:function(a){return this.setDate(a)},getValue:function(a){return this.format(a)},
17
- insertTo:function(a,b){this.addClass("rui-calendar-inline");return this.$super(a,b)},done:function(){this.inlined()||this.hide();this.fire("done",this.date)},inlined:function(){return this.hasClass("rui-calendar-inline")},setOptions:function(a){a=a||{};this.$super(a,y(a.trigger||a.update));var b=this.constructor,c=this.options;c.i18n={};for(var e in b.i18n)c.i18n[e]=z(b.i18n[e])?b.i18n[e].clone():b.i18n[e];E(c.i18n,a.i18n);c.dayNames=c.i18n.dayNamesMin;c.firstDay&&c.dayNames.push(c.dayNames.shift());
16
+ b){if(a=this.parse(a)){var c=this.options;if(c.minDate&&c.minDate>a)a=new Date(c.minDate);if(c.maxDate&&c.maxDate<a){a=new Date(c.maxDate);a.setDate(a.getDate()-1)}this._date=b?new Date(this._date||this.date):null;this.greed.setDate(this._date||a,a);if(c.minDate||c.maxDate)this.swaps.setDate(a);this.timepicker&&!b&&this.timepicker.setDate(a);if(a!=this.date)this.fire("change",{date:this.date=a})}return this},getDate:function(){return this.date},setValue:function(a){return this.setDate(a)},getValue:function(a){return this.format(a)},
17
+ insertTo:function(a,b){this.addClass("rui-calendar-inline");return this.$super(a,b)},done:function(){this.inlined()||this.hide();this.fire("done",{date:this.date})},inlined:function(){return this.hasClass("rui-calendar-inline")},setOptions:function(a){a=a||{};this.$super(a,y(a.trigger||a.update));var b=this.constructor,c=this.options;c.i18n={};for(var e in b.i18n)c.i18n[e]=z(b.i18n[e])?b.i18n[e].clone():b.i18n[e];E(c.i18n,a.i18n);c.dayNames=c.i18n.dayNamesMin;c.firstDay&&c.dayNames.push(c.dayNames.shift());
18
18
  if(!z(c.numberOfMonths))c.numberOfMonths=[c.numberOfMonths,1];if(c.minDate)c.minDate=this.parse(c.minDate);if(c.maxDate){c.maxDate=this.parse(c.maxDate);c.maxDate.setDate(c.maxDate.getDate()+1)}c.format=o(b.Formats[c.format]||c.format).trim();if(c.showTime===null)c.showTime=c.format.search(/%[HkIl]/)>-1;if(c.twentyFourHour===null)c.twentyFourHour=c.format.search(/%[Il]/)<0;if(c.timePeriod>60&&12%Math.ceil(c.timePeriod/60))c.twentyFourHour=true;c.update&&this.assignTo(c.update,c.trigger);return this},
19
19
  hideOthers:function(){n.hideAll(this);return this}}),H=new t(l,{initialize:function(a){this.$super("div",{"class":"swaps"});this.options=a;var b=a.i18n;this.insert([this.prevMonth=new r("&lsaquo;",{title:b.PrevMonth,"class":"prev-month"}),this.nextMonth=new r("&rsaquo;",{title:b.NextMonth,"class":"next-month"})]);if(a.listYears)this.insert([this.prevYear=new r("&laquo;",{title:b.PrevYear,"class":"prev-year"}),this.nextYear=new r("&raquo;",{title:b.NextYear,"class":"next-year"})]);this.buttons=o([this.prevMonth,
20
20
  this.nextMonth,this.prevYear,this.nextYear]).compact();this.onClick(this.clicked)},setDate:function(a){var b=this.options,c=b.numberOfMonths[0]*b.numberOfMonths[1],e=true,d=true,g=true,h=true;if(b.minDate){g=new Date(a.getFullYear(),0,1,0,0,0);var j=new Date(b.minDate.getFullYear(),0,1,0,0,0);e=g>j;g.setMonth(a.getMonth()-Math.ceil(c-c/2));j.setMonth(b.minDate.getMonth());g=g>=j}if(b.maxDate){a=new Date(a);b=new Date(b.maxDate);c=o([a,b]);c.each(function(i){i.setDate(32);i.setMonth(i.getMonth()-1);
@@ -26,11 +26,11 @@ new Date(a)}c=(d.listYears?g.monthNamesShort[a.getMonth()]+",":g.monthNames[a.ge
26
26
  this.insert([this.hours=(new l("select")).onChange(b),this.minutes=(new l("select")).onChange(b)]);for(var c=a.timePeriod<60?a.timePeriod:60,e=a.timePeriod<60?1:Math.ceil(a.timePeriod/60),d=0;d<60;d++){var g=s(d);if(d<24&&d%e==0)if(a.twentyFourHour)this.hours.insert(new l("option",{value:d,html:g}));else if(d<12)this.hours.insert(new l("option",{value:d,html:d==0?12:d}));d%c==0&&this.minutes.insert(new l("option",{value:d,html:g}))}if(!a.twentyFourHour){this.meridian=(new l("select")).onChange(b).insertTo(this);
27
27
  o(o(a.format).includes(/%P/)?["am","pm"]:["AM","PM"]).each(function(h){this.meridian.insert(new l("option",{value:h.toLowerCase(),html:h}))},this)}},setDate:function(a){var b=this.options,c=b.timePeriod<60?a.getHours():Math.round(a.getHours()/(b.timePeriod/60))*(b.timePeriod/60);a=Math.round(a.getMinutes()/(b.timePeriod%60))*b.timePeriod;if(this.meridian){this.meridian.setValue(c<12?"am":"pm");c=c==0||c==12?12:c>12?c-12:c}this.hours.setValue(c);this.minutes.setValue(a)},timeChanged:function(a){a.stopPropagation();
28
28
  a=p(this.hours.value());var b=p(this.minutes.value());if(this.meridian){if(a==12)a=0;if(this.meridian.value()=="pm")a+=12}this.fire("time-set",{hours:a,minutes:b})}}),K=new t(l,{initialize:function(a){this.$super("div",{"class":"buttons"});this.insert([(new r(a.i18n.Now,{"class":"now"})).onClick("fire","now-clicked"),(new r(a.i18n.Done,{"class":"done"})).onClick("fire","done-clicked")])}});n.include({parse:function(a){var b;if(F(a)&&a){var c=B.escape(this.options.format),e=o(c.match(/%[a-z]/ig)).map("match",
29
- /[a-z]$/i).map("first").without("%");c=new B("^"+c.replace(/%p/i,"(pm|PM|am|AM)").replace(/(%[a-z])/ig,"(.+?)")+"$");if(a=o(a).trim().match(c)){a.shift();for(var d=c=null,g=null,h=null,j=null,i;a.length;){var k=a.shift(),m=e.shift();if(m.toLowerCase()=="b")d=this.options.i18n[m=="b"?"monthNamesShort":"monthNames"].indexOf(k);else if(m.toLowerCase()=="p")i=k.toLowerCase();else{k=p(k);switch(m){case "d":case "e":b=k;break;case "m":d=k-1;break;case "y":case "Y":c=k;break;case "H":case "k":case "I":case "l":g=
29
+ /[a-z]$/i).map("first").without("%");c=new B("^"+c.replace(/%p/i,"(pm|PM|am|AM)").replace(/(%[a-z])/ig,"(.+?)")+"$");if(a=o(a).trim().match(c)){a.shift();for(var d=c=null,g=null,h=null,j=null,i;a.length;){var k=a.shift(),m=e.shift();if(m.toLowerCase()=="b")d=this.options.i18n[m=="b"?"monthNamesShort":"monthNames"].indexOf(k);else if(m.toLowerCase()=="p")i=k.toLowerCase();else{k=p(k,10);switch(m){case "d":case "e":b=k;break;case "m":d=k-1;break;case "y":case "Y":c=k;break;case "H":case "k":case "I":case "l":g=
30
30
  k;break;case "M":h=k;break;case "S":j=k;break}}}if(i){g=g==12?0:g;g=i=="pm"?g+12:g}b=new Date(c,d,b,g,h,j)}}else if(a instanceof Date||Date.parse(a))b=new Date(a);return!b||isNaN(b.getTime())?null:b},format:function(a){var b=this.options.i18n,c=this.date.getDay(),e=this.date.getMonth(),d=this.date.getDate(),g=this.date.getFullYear(),h=this.date.getHours(),j=this.date.getMinutes(),i=this.date.getSeconds(),k=h==0?12:h<13?h:h-12;b={a:b.dayNamesShort[c],A:b.dayNames[c],b:b.monthNamesShort[e],B:b.monthNames[e],
31
31
  d:s(d),e:""+d,m:(e<9?"0":"")+(e+1),y:(""+g).substring(2,4),Y:""+g,H:s(h),k:""+h,I:(h>0&&(h<10||h>12&&h<22)?"0":"")+k,l:""+k,p:h<12?"AM":"PM",P:h<12?"am":"pm",M:s(j),S:s(i),"%":"%"};a=a||this.options.format;for(var m in b)a=a.replace("%"+m,b[m]);return a}});n.include({initEvents:function(){var a=this._terminate;this.on({"prev-day":["_shiftDate",{Date:-1}],"next-day":["_shiftDate",{Date:1}],"prev-week":["_shiftDate",{Date:-7}],"next-week":["_shiftDate",{Date:7}],"prev-month":["_shiftDate",{Month:-1}],
32
32
  "next-month":["_shiftDate",{Month:1}],"prev-year":["_shiftDate",{FullYear:-1}],"next-year":["_shiftDate",{FullYear:1}],"date-set":this._changeDate,"time-set":this._changeTime,"now-clicked":this._setNow,"done-clicked":this.done,click:a,mousedown:a,focus:a,blur:a})},_shiftDate:function(a){var b=new Date(this.date);for(var c in a)b["set"+c](b["get"+c]()+a[c]);this.setDate(b)},_changeDate:function(a){var b=new Date(this.date);b.setDate(a.date);b.setMonth(a.month);b.setFullYear(a.year);this.setDate(b,
33
- true);this.options.hideOnPick&&this.done()},_changeTime:function(a){var b=new Date(this.date);b.setHours(a.hours);b.setMinutes(a.minutes);this.setDate(b)},_setNow:function(){this.setDate(new Date)},_terminate:function(a){a.stopPropagation();if(this._hide_delay){this._hide_delay.cancel();this._hide_delay=null}}});y(u).on({focus:function(a){a=a.target instanceof A?a.target:null;n.hideAll();if(a&&(a.calendar||a.match(n.Options.cssRule)))(a.calendar||new n({update:a})).setValue(a.value()).showAt(a)},
34
- blur:function(a){var b=a.target.calendar;if(b)b._hide_delay=o(function(){b.hide()}).delay(200)},click:function(a){var b=a.target instanceof l?a.target:null;if(b&&(b.calendar||b.match(n.Options.cssRule))){if(!(b instanceof A)){a.stop();(b.calendar||new n({trigger:b})).hide(null).toggleAt(b.assignedInput)}}else a.find("div.rui-calendar")||n.hideAll()},keydown:function(a){var b=n.current,c={27:"hide",37:"prev-day",39:"next-day",38:"prev-week",40:"next-week",33:"prev-month",34:"next-month",13:"done"}[a.keyCode];
35
- if(c&&b&&b.visible()){a.stop();G(b[c])?b[c]():b.fire(c)}}});u.write('<style type="text/css">.rui-panel{margin:0;padding:.5em;position:relative;background-color:#EEE;border:1px solid #BBB;border-radius:.3em;-moz-border-radius:.3em;-webkit-border-radius:.3em;box-shadow:.15em .3em .5em #BBB;-moz-box-shadow:.15em .3em .5em #BBB;-webkit-box-shadow:.15em .3em .5em #BBB;cursor:default} *.rui-button{display:inline-block; *display:inline; *zoom:1;height:1em;line-height:1em;margin:0;padding:.2em .5em;text-align:center;border:1px solid #CCC;border-radius:.2em;-moz-border-radius:.2em;-webkit-border-radius:.2em;cursor:pointer;color:#333;background-color:#FFF;user-select:none;-moz-user-select:none;-webkit-user-select:none} *.rui-button:hover{color:#111;border-color:#999;background-color:#DDD;box-shadow:#888 0 0 .1em;-moz-box-shadow:#888 0 0 .1em;-webkit-box-shadow:#888 0 0 .1em} *.rui-button:active{color:#000;border-color:#777;text-indent:1px;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none} *.rui-button-disabled, *.rui-button-disabled:hover, *.rui-button-disabled:active{color:#888;background:#DDD;border-color:#CCC;cursor:default;text-indent:0;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none}div.rui-re-anchor{margin:0;padding:0;background:none;border:none;float:none;display:inline;position:absolute;z-index:9999}div.rui-calendar .swaps,div.rui-calendar .greed,div.rui-calendar .timepicker,div.rui-calendar .buttons,div.rui-calendar table,div.rui-calendar table tr,div.rui-calendar table th,div.rui-calendar table td,div.rui-calendar table tbody,div.rui-calendar table thead,div.rui-calendar table caption{background:none;border:none;width:auto;height:auto;margin:0;padding:0}div.rui-calendar-inline{position:relative;display:inline-block; *display:inline; *zoom:1;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none}div.rui-calendar .swaps{position:relative}div.rui-calendar .swaps .rui-button{position:absolute;float:left;width:1em;padding:.15em .4em}div.rui-calendar .swaps .next-month{right:0em;_right:.5em}div.rui-calendar .swaps .prev-year{left:2.05em}div.rui-calendar .swaps .next-year{right:2.05em;_right:2.52em}div.rui-calendar .greed{border-spacing:0px;border-collapse:collapse;border-size:0}div.rui-calendar .greed td{vertical-align:top;padding-left:.4em}div.rui-calendar .greed>tbody>tr>td:first-child{padding:0}div.rui-calendar .month{margin-top:.2em;border-spacing:1px;border-collapse:separate}div.rui-calendar .month caption{text-align:center}div.rui-calendar .month th{color:#666;text-align:center}div.rui-calendar .month td{text-align:right;padding:.1em .3em;background-color:#FFF;border:1px solid #CCC;cursor:pointer;color:#555;border-radius:.2em;-moz-border-radius:.2em;-webkit-border-radius:.2em}div.rui-calendar .month td:hover{background-color:#CCC;border-color:#AAA;color:#000}div.rui-calendar .month td.blank{background:transparent;cursor:default;border:none}div.rui-calendar .month td.selected{background-color:#BBB;border-color:#AAA;color:#222;font-weight:bold;padding:.1em .2em}div.rui-calendar .month td.disabled{color:#888;background:#EEE;border-color:#CCC;cursor:default}div.rui-calendar .timepicker{border-top:1px solid #ccc;margin-top:.3em;padding-top:.5em;text-align:center}div.rui-calendar .timepicker select{margin:0 .4em}div.rui-calendar .buttons{position:relative;margin-top:.5em}div.rui-calendar .buttons div.rui-button{width:4em;padding:.25em .5em}div.rui-calendar .buttons .done{position:absolute;right:0em;top:0}</style>');
33
+ true);this.options.hideOnPick&&this.done()},_changeTime:function(a){var b=new Date(this.date);b.setHours(a.hours);b.setMinutes(a.minutes);this.setDate(b)},_setNow:function(){this.setDate(new Date)},_terminate:function(a){a.stopPropagation();if(this._hide_delay){this._hide_delay.cancel();this._hide_delay=null}}});y(u).on({focus:function(a){a=a.target instanceof A&&a.target.get("type")=="text"?a.target:null;n.hideAll();if(a&&(a.calendar||a.match(n.Options.cssRule)))(a.calendar||new n({update:a})).setValue(a.value()).showAt(a)},
34
+ blur:function(a){var b=a.target.calendar;if(b)b._hide_delay=o(function(){b.hide()}).delay(200)},click:function(a){var b=a.target instanceof l?a.target:null;if(b&&(b.calendar||b.match(n.Options.cssRule))){if(!(b instanceof A)||b.get("type")!="text"){a.stop();(b.calendar||new n({trigger:b})).hide(null).toggleAt(b.assignedInput)}}else a.find("div.rui-calendar")||n.hideAll()},keydown:function(a){var b=n.current,c={27:"hide",37:"prev-day",39:"next-day",38:"prev-week",40:"next-week",33:"prev-month",34:"next-month",
35
+ 13:"done"}[a.keyCode];if(c&&b&&b.visible()){a.stop();G(b[c])?b[c]():b.fire(c)}}});u.write('<style type="text/css">.rui-panel{margin:0;padding:.5em;position:relative;background-color:#EEE;border:1px solid #BBB;border-radius:.3em;-moz-border-radius:.3em;-webkit-border-radius:.3em;box-shadow:.15em .3em .5em #BBB;-moz-box-shadow:.15em .3em .5em #BBB;-webkit-box-shadow:.15em .3em .5em #BBB;cursor:default} *.rui-button{display:inline-block; *display:inline; *zoom:1;height:1em;line-height:1em;margin:0;padding:.2em .5em;text-align:center;border:1px solid #CCC;border-radius:.2em;-moz-border-radius:.2em;-webkit-border-radius:.2em;cursor:pointer;color:#333;background-color:#FFF;user-select:none;-moz-user-select:none;-webkit-user-select:none} *.rui-button:hover{color:#111;border-color:#999;background-color:#DDD;box-shadow:#888 0 0 .1em;-moz-box-shadow:#888 0 0 .1em;-webkit-box-shadow:#888 0 0 .1em} *.rui-button:active{color:#000;border-color:#777;text-indent:1px;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none} *.rui-button-disabled, *.rui-button-disabled:hover, *.rui-button-disabled:active{color:#888;background:#DDD;border-color:#CCC;cursor:default;text-indent:0;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none}div.rui-re-anchor{margin:0;padding:0;background:none;border:none;float:none;display:inline;position:absolute;z-index:9999}div.rui-calendar .swaps,div.rui-calendar .greed,div.rui-calendar .timepicker,div.rui-calendar .buttons,div.rui-calendar table,div.rui-calendar table tr,div.rui-calendar table th,div.rui-calendar table td,div.rui-calendar table tbody,div.rui-calendar table thead,div.rui-calendar table caption{background:none;border:none;width:auto;height:auto;margin:0;padding:0}div.rui-calendar-inline{position:relative;display:inline-block; *display:inline; *zoom:1;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none}div.rui-calendar .swaps{position:relative}div.rui-calendar .swaps .rui-button{position:absolute;float:left;width:1em;padding:.15em .4em}div.rui-calendar .swaps .next-month{right:0em;_right:.5em}div.rui-calendar .swaps .prev-year{left:2.05em}div.rui-calendar .swaps .next-year{right:2.05em;_right:2.52em}div.rui-calendar .greed{border-spacing:0px;border-collapse:collapse;border-size:0}div.rui-calendar .greed td{vertical-align:top;padding-left:.4em}div.rui-calendar .greed>tbody>tr>td:first-child{padding:0}div.rui-calendar .month{margin-top:.2em;border-spacing:1px;border-collapse:separate}div.rui-calendar .month caption{text-align:center}div.rui-calendar .month th{color:#666;text-align:center}div.rui-calendar .month td{text-align:right;padding:.1em .3em;background-color:#FFF;border:1px solid #CCC;cursor:pointer;color:#555;border-radius:.2em;-moz-border-radius:.2em;-webkit-border-radius:.2em}div.rui-calendar .month td:hover{background-color:#CCC;border-color:#AAA;color:#000}div.rui-calendar .month td.blank{background:transparent;cursor:default;border:none}div.rui-calendar .month td.selected{background-color:#BBB;border-color:#AAA;color:#222;font-weight:bold;padding:.1em .2em}div.rui-calendar .month td.disabled{color:#888;background:#EEE;border-color:#CCC;cursor:default}div.rui-calendar .timepicker{border-top:1px solid #ccc;margin-top:.3em;padding-top:.5em;text-align:center}div.rui-calendar .timepicker select{margin:0 .4em}div.rui-calendar .buttons{position:relative;margin-top:.5em}div.rui-calendar .buttons div.rui-button{width:4em;padding:.25em .5em}div.rui-calendar .buttons .done{position:absolute;right:0em;top:0}</style>');
36
36
  return n}(document,parseInt,RightJS);
@@ -37,19 +37,20 @@ var R = RightJS,
37
37
 
38
38
 
39
39
 
40
+
40
41
  /**
41
42
  * The widget units constructor
42
43
  *
43
44
  * @param String tag-name or Object methods
44
45
  * @param Object methods
45
46
  * @return Widget wrapper
46
- */
47
+ */
47
48
  function Widget(tag_name, methods) {
48
49
  if (!methods) {
49
50
  methods = tag_name;
50
51
  tag_name = 'DIV';
51
52
  }
52
-
53
+
53
54
  /**
54
55
  * An Abstract Widget Unit
55
56
  *
@@ -66,17 +67,17 @@ function Widget(tag_name, methods) {
66
67
  initialize: function(key, options) {
67
68
  this.key = key;
68
69
  var args = [{'class': 'rui-' + key}];
69
-
70
+
70
71
  // those two have different constructors
71
72
  if (!(this instanceof RightJS.Input || this instanceof RightJS.Form)) {
72
73
  args.unshift(tag_name);
73
74
  }
74
75
  this.$super.apply(this, args);
75
-
76
+
76
77
  if (RightJS.isString(options)) {
77
78
  options = RightJS.$(options);
78
79
  }
79
-
80
+
80
81
  // if the options is another element then
81
82
  // try to dynamically rewrap it with our widget
82
83
  if (options instanceof RightJS.Element) {
@@ -109,16 +110,16 @@ function Widget(tag_name, methods) {
109
110
  return this;
110
111
  }
111
112
  });
112
-
113
+
113
114
  /**
114
115
  * Creating the actual widget class
115
116
  *
116
117
  */
117
118
  var Klass = new RightJS.Wrapper(AbstractWidget, methods);
118
-
119
+
119
120
  // creating the widget related shortcuts
120
121
  RightJS.Observer.createShortcuts(Klass.prototype, Klass.EVENTS || []);
121
-
122
+
122
123
  return Klass;
123
124
  }
124
125
 
@@ -144,7 +145,7 @@ var Button = new RightJS.Wrapper(RightJS.Element, {
144
145
  this._.innerHTML = caption;
145
146
  this.addClass('rui-button');
146
147
  },
147
-
148
+
148
149
  /**
149
150
  * Disasbles the button
150
151
  *
@@ -153,7 +154,7 @@ var Button = new RightJS.Wrapper(RightJS.Element, {
153
154
  disable: function() {
154
155
  return this.addClass('rui-button-disabled');
155
156
  },
156
-
157
+
157
158
  /**
158
159
  * Enables the button
159
160
  *
@@ -162,7 +163,7 @@ var Button = new RightJS.Wrapper(RightJS.Element, {
162
163
  enable: function() {
163
164
  return this.removeClass('rui-button-disabled');
164
165
  },
165
-
166
+
166
167
  /**
167
168
  * Checks if the button is disabled
168
169
  *
@@ -171,7 +172,7 @@ var Button = new RightJS.Wrapper(RightJS.Element, {
171
172
  disabled: function() {
172
173
  return this.hasClass('rui-button-disabled');
173
174
  },
174
-
175
+
175
176
  /**
176
177
  * Checks if the button is enabled
177
178
  *
@@ -180,7 +181,7 @@ var Button = new RightJS.Wrapper(RightJS.Element, {
180
181
  enabled: function() {
181
182
  return !this.disabled();
182
183
  },
183
-
184
+
184
185
  /**
185
186
  * Overloading the method, so it fired the events
186
187
  * only when the button is active
@@ -195,6 +196,7 @@ var Button = new RightJS.Wrapper(RightJS.Element, {
195
196
  }
196
197
  });
197
198
 
199
+
198
200
  /**
199
201
  * A shared module that toggles a widget visibility status
200
202
  * in a uniformed way according to the options settings
@@ -218,7 +220,7 @@ function toggler(element, event, fx_name, fx_options) {
218
220
  if (RightJS.Fx) {
219
221
  if (fx_name === undefined) {
220
222
  fx_name = this.options.fxName;
221
-
223
+
222
224
  if (fx_options === undefined) {
223
225
  fx_options = {
224
226
  duration: this.options.fxDuration,
@@ -233,12 +235,12 @@ function toggler(element, event, fx_name, fx_options) {
233
235
  }
234
236
  }
235
237
  }
236
-
238
+
237
239
  RightJS.Element.prototype[event].call(element, fx_name, fx_options);
238
-
240
+
239
241
  // manually trigger the event if no fx were specified
240
242
  if (!RightJS.Fx || !fx_name) { this.fire(event); }
241
-
243
+
242
244
  return this;
243
245
  }
244
246
 
@@ -255,34 +257,34 @@ function toggler(element, event, fx_name, fx_options) {
255
257
  * @return void
256
258
  */
257
259
  function re_position(element, where, resize) {
258
- var anchor = this.reAnchor || (this.reAnchor =
260
+ var anchor = this.reAnchor || (this.reAnchor =
259
261
  new RightJS.Element('div', {'class': 'rui-re-anchor'}))
260
262
  .insert(this),
261
-
263
+
262
264
  pos = anchor.insertTo(element, 'after').position(),
263
265
  dims = element.dimensions(), target = this,
264
-
266
+
265
267
  border_top = parseInt(element.getStyle('borderTopWidth')),
266
268
  border_left = parseInt(element.getStyle('borderLeftWidth')),
267
269
  border_right = parseInt(element.getStyle('borderRightWidth')),
268
270
  border_bottom = parseInt(element.getStyle('borderBottomWidth')),
269
-
271
+
270
272
  top = dims.top - pos.y + border_top,
271
273
  left = dims.left - pos.x + border_left,
272
274
  width = dims.width - border_left - border_right,
273
275
  height = dims.height - border_top - border_bottom;
274
-
276
+
275
277
  // making the element to appear so we could read it's sizes
276
278
  target.setStyle('visibility:hidden').show(null);
277
-
279
+
278
280
  if (where === 'right') {
279
281
  left += width - target.size().x;
280
282
  } else { // bottom
281
283
  top += height;
282
284
  }
283
-
285
+
284
286
  target.moveTo(left, top);
285
-
287
+
286
288
  if (resize) {
287
289
  if (['left', 'right'].include(where)) {
288
290
  target.setHeight(height);
@@ -290,7 +292,7 @@ function re_position(element, where, resize) {
290
292
  target.setWidth(width);
291
293
  }
292
294
  }
293
-
295
+
294
296
  // rolling the invisibility back
295
297
  target.setStyle('visibility:visible').hide(null);
296
298
  }
@@ -312,7 +314,7 @@ var Toggler = {
312
314
  this.constructor.current = this;
313
315
  return toggler.call(this, this, 'show', fx_name, fx_options);
314
316
  },
315
-
317
+
316
318
  /**
317
319
  * Hides the element
318
320
  *
@@ -324,7 +326,7 @@ var Toggler = {
324
326
  this.constructor.current = null;
325
327
  return toggler.call(this, this, 'hide', fx_name, fx_options);
326
328
  },
327
-
329
+
328
330
  /**
329
331
  * Toggles the widget at the given element
330
332
  *
@@ -335,13 +337,13 @@ var Toggler = {
335
337
  */
336
338
  showAt: function(element, where, resize) {
337
339
  this.hide(null).shownAt = element = RightJS.$(element);
338
-
340
+
339
341
  // moves this element at the given one
340
342
  re_position.call(this, element, where, resize);
341
-
343
+
342
344
  return this.show();
343
345
  },
344
-
346
+
345
347
  /**
346
348
  * Toggles the widget at the given element
347
349
  *
@@ -355,6 +357,7 @@ var Toggler = {
355
357
  }
356
358
  };
357
359
 
360
+
358
361
  /**
359
362
  * A shared module that provides for the widgets an ability
360
363
  * to be assigned to an input element and work in pair with it
@@ -379,35 +382,36 @@ var Assignable = {
379
382
  assignTo: function(input, trigger) {
380
383
  input = RightJS.$(input);
381
384
  trigger = RightJS.$(trigger);
382
-
385
+
383
386
  if (trigger) {
384
387
  trigger[this.key] = this;
385
388
  trigger.assignedInput = input;
386
389
  } else {
387
390
  input[this.key] = this;
388
391
  }
389
-
392
+
390
393
  var on_change = RightJS(function() {
391
394
  if (this.visible() && (!this.showAt || this.shownAt === input)) {
392
395
  this.setValue(input.value());
393
396
  }
394
397
  }).bind(this);
395
-
398
+
396
399
  input.on({
397
400
  keyup: on_change,
398
401
  change: on_change
399
402
  });
400
-
403
+
401
404
  this.onChange(function() {
402
405
  if (!this.showAt || this.shownAt === input) {
403
406
  input.setValue(this.getValue());
404
407
  }
405
408
  });
406
-
409
+
407
410
  return this;
408
411
  }
409
412
  };
410
413
 
414
+
411
415
  /**
412
416
  * The basic file for Colorpicker
413
417
  *
@@ -415,29 +419,29 @@ var Assignable = {
415
419
  */
416
420
  var Colorpicker = new Widget({
417
421
  include: [Toggler, Assignable],
418
-
422
+
419
423
  extend: {
420
424
  version: '2.0.0',
421
-
425
+
422
426
  EVENTS: $w('change show hide done'),
423
-
427
+
424
428
  Options: {
425
429
  format: 'hex', // hex or rgb
426
-
430
+
427
431
  update: null, // an element to update with the color text
428
432
  updateBg: null, // an element to update it's background color
429
433
  trigger: null, // a trigger element for the popup
430
-
434
+
431
435
  fxName: 'fade', // popup displaying fx
432
436
  fxDuration: 'short',
433
-
437
+
434
438
  cssRule: '*[data-colorpicker]'
435
439
  },
436
-
440
+
437
441
  i18n: {
438
442
  Done: 'Done'
439
443
  },
440
-
444
+
441
445
  // hides all the popup colorpickers on the page
442
446
  hideAll: function() {
443
447
  $$('div.rui-colorpicker').each(function(picker) {
@@ -447,7 +451,7 @@ var Colorpicker = new Widget({
447
451
  });
448
452
  }
449
453
  },
450
-
454
+
451
455
  /**
452
456
  * basic constructor
453
457
  *
@@ -464,27 +468,27 @@ var Colorpicker = new Widget({
464
468
  ])
465
469
  .on({
466
470
  mousedown: this.startTrack,
467
-
471
+
468
472
  keyup: this.recalc,
469
473
  blur: this.update,
470
474
  focus: this.cancelTimer,
471
-
475
+
472
476
  done: this.done
473
477
  });
474
-
478
+
475
479
  // hooking up the elements to update
476
480
  if (this.options.update) { this.assignTo(this.options.update, this.options.trigger); }
477
481
  if (this.options.updateBg) { this.updateBg(this.options.updateBg); }
478
-
482
+
479
483
  // setting up the initial values
480
484
  this.tint = R([1, 0, 0]);
481
485
  this.satur = 0;
482
486
  this.bright = 1;
483
487
  this.color = R([255, 255, 255]);
484
-
488
+
485
489
  this.recalc().update();
486
490
  },
487
-
491
+
488
492
  /**
489
493
  * Sets the color of the widget
490
494
  *
@@ -494,15 +498,15 @@ var Colorpicker = new Widget({
494
498
  setValue: function(value) {
495
499
  var color = isArray(value) ? value : this.toColor(value);
496
500
  if (color && color.length === 3) {
497
-
501
+
498
502
  // normalizing the data
499
503
  color = color.map(function(value) {
500
504
  return this.bound(parseInt(''+value), 0, 255);
501
505
  }, this);
502
-
506
+
503
507
  this.color = color;
504
508
  this.color2tint().update();
505
-
509
+
506
510
  // reupdating the popup-state a bit later when we have the sizes
507
511
  if (!this.colors.size().y) {
508
512
  this.update.bind(this).delay(20);
@@ -510,7 +514,7 @@ var Colorpicker = new Widget({
510
514
  }
511
515
  return this;
512
516
  },
513
-
517
+
514
518
  /**
515
519
  * Returns the value of the widget
516
520
  * formatted according to the options
@@ -521,7 +525,7 @@ var Colorpicker = new Widget({
521
525
  getValue: function(array) {
522
526
  return array ? this.color : this[this.options.format === 'rgb' ? 'toRgb' : 'toHex']();
523
527
  },
524
-
528
+
525
529
  /**
526
530
  * Assigns the colorpicer to automatically update
527
531
  * given element's background on changes
@@ -538,7 +542,7 @@ var Colorpicker = new Widget({
538
542
  }
539
543
  return this;
540
544
  },
541
-
545
+
542
546
  /**
543
547
  * Inlines the widget into the given element
544
548
  *
@@ -551,7 +555,7 @@ var Colorpicker = new Widget({
551
555
  .$super(element, position)
552
556
  .addClass('rui-colorpicker-inline');
553
557
  },
554
-
558
+
555
559
  /**
556
560
  * Checks if that's an inlined version of the widget
557
561
  *
@@ -560,7 +564,7 @@ var Colorpicker = new Widget({
560
564
  inlined: function() {
561
565
  return this.hasClass('rui-colorpicker-inline');
562
566
  },
563
-
567
+
564
568
  /**
565
569
  * Finalizes the action
566
570
  *
@@ -572,7 +576,7 @@ var Colorpicker = new Widget({
572
576
  }
573
577
  return this;
574
578
  },
575
-
579
+
576
580
  // protected
577
581
 
578
582
  // catching up the user options
@@ -584,29 +588,29 @@ var Colorpicker = new Widget({
584
588
  // updates the preview and pointer positions
585
589
  update: function() {
586
590
  this.field._.style.backgroundColor = 'rgb('+ this.tint.map(function(c) { return Math.round(c*255); }) +')';
587
-
591
+
588
592
  // updating the input fields
589
593
  var color = this.color, controls = this.controls;
590
-
594
+
591
595
  controls.preview._.style.backgroundColor = controls.display._.value = this.toHex();
592
-
596
+
593
597
  controls.rDisplay._.value = color[0];
594
598
  controls.gDisplay._.value = color[1];
595
599
  controls.bDisplay._.value = color[2];
596
-
600
+
597
601
  // adjusting the field pointer position
598
602
  var pointer = this.field.pointer._.style,
599
603
  field = this.field.size(),
600
604
  top = field.y - this.bright * field.y - 2,
601
605
  left = this.satur * field.x - 2;
602
-
606
+
603
607
  pointer.top = this.bound(top, 0, field.y - 5) + 'px';
604
608
  pointer.left = this.bound(left, 0, field.x - 5) + 'px';
605
-
609
+
606
610
  // adjusting the ting pointer position
607
611
  var tint = this.tint, position;
608
612
  field = this.colors.size();
609
-
613
+
610
614
  if (tint[1] == 0) { // the red-blue section
611
615
  position = tint[0] == 1 ? tint[2] : (2 - tint[0]);
612
616
  } else if (tint[0] == 0) { // the blue-green section
@@ -614,25 +618,25 @@ var Colorpicker = new Widget({
614
618
  } else { // the green-red section
615
619
  position = 4 + (tint[1] == 1 ? tint[0] : (2 - tint[1]));
616
620
  }
617
-
621
+
618
622
  position = position / 6 * field.y;
619
-
623
+
620
624
  this.colors.pointer._.style.top = this.bound(position, 0, field.y - 4) + 'px';
621
-
625
+
622
626
  // tracking the color change events
623
627
  if (this.prevColor !== ''+this.color) {
624
- this.fire('change', this.color);
628
+ this.fire('change', {value: this.color});
625
629
  this.prevColor = ''+ this.color;
626
630
  }
627
-
631
+
628
632
  return this;
629
633
  },
630
-
634
+
631
635
  // recalculates the state after the input field changes
632
636
  recalc: function(event) {
633
637
  if (event) {
634
638
  var field = event.target, value = field._.value, color = $A(this.color), changed=false;
635
-
639
+
636
640
  if (field === this.controls.display && /#\w{6}/.test(value)) {
637
641
  // using the hex values
638
642
  changed = color = this.toColor(value);
@@ -641,27 +645,27 @@ var Colorpicker = new Widget({
641
645
  color[field._.cIndex] = value;
642
646
  changed = true;
643
647
  }
644
-
648
+
645
649
  if (changed) { this.setValue(color); }
646
-
650
+
647
651
  } else {
648
652
  this.tint2color();
649
653
  }
650
-
654
+
651
655
  return this;
652
656
  },
653
-
657
+
654
658
  // starts the mousemoves tracking
655
659
  startTrack: function(event) {
656
660
  this.stopTrack();
657
661
  this.cancelTimer();
658
-
662
+
659
663
  if (event.target === this.field.pointer) {
660
664
  event.target = this.field;
661
665
  } else if (event.target === this.colors.pointer) {
662
666
  event.target = this.colors;
663
667
  }
664
-
668
+
665
669
  if (event.target === this.field || event.target === this.colors) {
666
670
  event.stop();
667
671
  Colorpicker.tracking = this;
@@ -669,41 +673,41 @@ var Colorpicker = new Widget({
669
673
  this.trackMove(event); // jumping over there
670
674
  }
671
675
  },
672
-
676
+
673
677
  // stops tracking the mousemoves
674
678
  stopTrack: function() {
675
679
  Colorpicker.tracking = false;
676
680
  this.field.tracking = false;
677
681
  this.colors.tracking = false;
678
682
  },
679
-
683
+
680
684
  // tracks the cursor moves over the fields
681
685
  trackMove: function(event) {
682
686
  var field, pos = event.position(), top, left;
683
-
687
+
684
688
  if (this.field.tracking) {
685
689
  field = this.field.dimensions();
686
690
  } else if (this.colors.tracking) {
687
691
  field = this.colors.dimensions();
688
692
  }
689
-
693
+
690
694
  if (field) {
691
695
  top = this.bound(pos.y - field.top, 0, field.height);
692
696
  left = this.bound(pos.x - field.left, 0, field.width);
693
-
697
+
694
698
  if (this.field.tracking) {
695
699
  this.satur = left / field.width;
696
700
  this.bright = 1 - top / field.height;
697
-
701
+
698
702
  } else if (this.colors.tracking) {
699
703
  // preventing it from jumping to the top
700
704
  if (top == field.height) { top = field.height - 0.1; }
701
-
705
+
702
706
  var step = field.height / 6,
703
707
  tint = this.tint = [0, 0, 0],
704
708
  stright = top % step / step,
705
709
  reverse = 1 - stright;
706
-
710
+
707
711
  if (top < step) {
708
712
  tint[0] = 1;
709
713
  tint[2] = stright;
@@ -724,11 +728,11 @@ var Colorpicker = new Widget({
724
728
  tint[0] = 1;
725
729
  }
726
730
  }
727
-
731
+
728
732
  this.recalc().update();
729
733
  }
730
734
  },
731
-
735
+
732
736
  cancelTimer: function(event) {
733
737
  R(function() { // IE has a lack of sync in here
734
738
  if (this._hide_delay) {
@@ -739,6 +743,7 @@ var Colorpicker = new Widget({
739
743
  }
740
744
  });
741
745
 
746
+
742
747
  /**
743
748
  * The colors field element
744
749
  *
@@ -751,6 +756,7 @@ var Field = new Wrapper(Element, {
751
756
  }
752
757
  });
753
758
 
759
+
754
760
  /**
755
761
  * The tint picker block
756
762
  *
@@ -763,6 +769,7 @@ var Colors = new Wrapper(Element, {
763
769
  }
764
770
  });
765
771
 
772
+
766
773
  /**
767
774
  * The controls block unit
768
775
  *
@@ -784,8 +791,9 @@ var Controls = new Wrapper(Element, {
784
791
  }
785
792
  });
786
793
 
794
+
787
795
  /**
788
- * This module contains various caluculations logic for
796
+ * This module contains various caluculations logic for
789
797
  * the Colorpicker widget
790
798
  *
791
799
  * Copyright (C) 2010 Nikolay Nemshilov
@@ -800,7 +808,7 @@ Colorpicker.include({
800
808
  toRgb: function(color) {
801
809
  return 'rgb('+ this.color.join(',') +')';
802
810
  },
803
-
811
+
804
812
  /**
805
813
  * Converts the color to a HEX string value
806
814
  *
@@ -810,7 +818,7 @@ Colorpicker.include({
810
818
  toHex: function(color) {
811
819
  return '#'+ this.color.map(function(c) { return (c < 16 ? '0' : '') + c.toString(16); }).join('');
812
820
  },
813
-
821
+
814
822
  /**
815
823
  * Converts a string value into an Array of color
816
824
  *
@@ -819,22 +827,22 @@ Colorpicker.include({
819
827
  */
820
828
  toColor: function(in_value) {
821
829
  var value = in_value.toLowerCase(), match;
822
-
830
+
823
831
  if ((match = /rgb\((\d+),(\d+),(\d+)\)/.exec(value))) {
824
832
  return [match[1], match[2], match[3]].map(parseInt);
825
-
833
+
826
834
  } else if (/#[\da-f]+/.test(value)) {
827
835
  // converting the shortified hex in to the full-length version
828
836
  if ((match = /^#([\da-f])([\da-f])([\da-f])$/.exec(value))) {
829
837
  value = '#'+match[1]+match[1]+match[2]+match[2]+match[3]+match[3];
830
838
  }
831
-
839
+
832
840
  if ((match = /#([\da-f]{2})([\da-f]{2})([\da-f]{2})/.exec(value))) {
833
841
  return [match[1], match[2], match[3]].map(function(n) { return parseInt(n, 16); });
834
842
  }
835
843
  }
836
844
  },
837
-
845
+
838
846
  /**
839
847
  * converts color into the tint, saturation and brightness values
840
848
  *
@@ -843,19 +851,19 @@ Colorpicker.include({
843
851
  color2tint: function() {
844
852
  var color = $A(this.color).sort(function(a,b) { return a-b; }),
845
853
  min = color[0], max = color[2];
846
-
854
+
847
855
  this.bright = max / 255;
848
856
  this.satur = 1 - min / (max || 1);
849
-
857
+
850
858
  this.tint.each(function(value, i) {
851
859
  this.tint[i] = ((!min && !max) || min == max) ? i == 0 ? 1 : 0 :
852
860
  (this.color[i] - min) / (max - min);
853
861
  return this.tint[i];
854
862
  }, this);
855
-
863
+
856
864
  return this;
857
865
  },
858
-
866
+
859
867
  /**
860
868
  * Converts tint, saturation and brightness into the actual RGB color
861
869
  *
@@ -863,15 +871,15 @@ Colorpicker.include({
863
871
  */
864
872
  tint2color: function() {
865
873
  var tint = this.tint, color = this.color;
866
-
874
+
867
875
  for (var i=0; i < 3; i++) {
868
876
  color[i] = 1 + this.satur * (tint[i] - 1);
869
877
  color[i] = Math.round(255 * color[i] * this.bright);
870
878
  }
871
-
879
+
872
880
  return this;
873
881
  },
874
-
882
+
875
883
  /**
876
884
  * bounds the value to the given limits
877
885
  *
@@ -882,18 +890,19 @@ Colorpicker.include({
882
890
  */
883
891
  bound: function(in_value, min, max) {
884
892
  var value = in_value;
885
-
893
+
886
894
  if (min < max) {
887
895
  value = value < min ? min : value > max ? max : value;
888
896
  } else {
889
897
  if (value > max) { value = max; }
890
898
  if (value < min) { value = min; }
891
899
  }
892
-
900
+
893
901
  return value;
894
902
  }
895
903
  });
896
904
 
905
+
897
906
  /**
898
907
  * The document level hooks for colorpicker
899
908
  *
@@ -905,27 +914,27 @@ $(document).on({
905
914
  Colorpicker.tracking.stopTrack();
906
915
  }
907
916
  },
908
-
917
+
909
918
  mousemove: function(event) {
910
919
  if (Colorpicker.tracking) {
911
920
  Colorpicker.tracking.trackMove(event);
912
921
  }
913
922
  },
914
-
923
+
915
924
  focus: function(event) {
916
925
  var target = event.target instanceof Input ? event.target : null;
917
-
926
+
918
927
  Colorpicker.hideAll();
919
-
928
+
920
929
  if (target && (target.colorpicker || target.match(Colorpicker.Options.cssRule))) {
921
930
  (target.colorpicker || new Colorpicker({update: target}))
922
931
  .setValue(target.value()).showAt(target);
923
932
  }
924
933
  },
925
-
934
+
926
935
  blur: function(event) {
927
936
  var target = event.target, colorpicker = target.colorpicker;
928
-
937
+
929
938
  if (colorpicker) {
930
939
  // we use the delay so it didn't get hidden when the user clicks the calendar itself
931
940
  colorpicker._hide_delay = R(function() {
@@ -933,10 +942,10 @@ $(document).on({
933
942
  }).delay(200);
934
943
  }
935
944
  },
936
-
945
+
937
946
  click: function(event) {
938
947
  var target = (event.target instanceof Element) ? event.target : null;
939
-
948
+
940
949
  if (target && (target.colorpicker || target.match(Colorpicker.Options.cssRule))) {
941
950
  if (!(target instanceof Input)) {
942
951
  event.stop();
@@ -947,13 +956,13 @@ $(document).on({
947
956
  Colorpicker.hideAll();
948
957
  }
949
958
  },
950
-
959
+
951
960
  keydown: function(event) {
952
961
  var colorpicker = Colorpicker.current, name = ({
953
962
  27: 'hide', // Escape
954
963
  13: 'done' // Enter
955
964
  })[event.keyCode];
956
-
965
+
957
966
  if (name && colorpicker && colorpicker.visible()) {
958
967
  event.stop();
959
968
  colorpicker[name]();
@@ -961,7 +970,8 @@ $(document).on({
961
970
  }
962
971
  });
963
972
 
973
+
964
974
  document.write("<style type=\"text/css\"> *.rui-button{display:inline-block; *display:inline; *zoom:1;height:1em;line-height:1em;margin:0;padding:.2em .5em;text-align:center;border:1px solid #CCC;border-radius:.2em;-moz-border-radius:.2em;-webkit-border-radius:.2em;cursor:pointer;color:#333;background-color:#FFF;user-select:none;-moz-user-select:none;-webkit-user-select:none} *.rui-button:hover{color:#111;border-color:#999;background-color:#DDD;box-shadow:#888 0 0 .1em;-moz-box-shadow:#888 0 0 .1em;-webkit-box-shadow:#888 0 0 .1em} *.rui-button:active{color:#000;border-color:#777;text-indent:1px;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none} *.rui-button-disabled, *.rui-button-disabled:hover, *.rui-button-disabled:active{color:#888;background:#DDD;border-color:#CCC;cursor:default;text-indent:0;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none}div.rui-re-anchor{margin:0;padding:0;background:none;border:none;float:none;display:inline;position:absolute;z-index:9999}.rui-panel{margin:0;padding:.5em;position:relative;background-color:#EEE;border:1px solid #BBB;border-radius:.3em;-moz-border-radius:.3em;-webkit-border-radius:.3em;box-shadow:.15em .3em .5em #BBB;-moz-box-shadow:.15em .3em .5em #BBB;-webkit-box-shadow:.15em .3em .5em #BBB;cursor:default}div.rui-colorpicker .field,div.rui-colorpicker .field *,div.rui-colorpicker .colors,div.rui-colorpicker .colors *{border:none;background:none;width:auto;height:auto;position:static;float:none;top:none;left:none;right:none;bottom:none;margin:0;padding:0;display:block;font-weight:normal;vertical-align:center}div.rui-colorpicker div.field,div.rui-colorpicker div.field div.pointer,div.rui-colorpicker div.colors,div.rui-colorpicker div.colors div.pointer{background:url(/images/rightjs-ui/colorpicker.png) no-repeat 0 0}div.rui-colorpicker div.field,div.rui-colorpicker div.colors,div.rui-colorpicker div.controls{display:inline-block; *display:inline; *zoom:1;position:relative;vertical-align:top;height:150px}div.rui-colorpicker div.field div.pointer,div.rui-colorpicker div.colors div.pointer{position:absolute;top:0px;left:0;width:9px;height:9px}div.rui-colorpicker input.display,div.rui-colorpicker div.preview,div.rui-colorpicker div.rgb-display,div.rui-colorpicker input.rui-ui-button{font-size:100%;display:block;width:auto;padding:0 .2em}div.rui-colorpicker input.display,div.rui-colorpicker div.preview,div.rui-colorpicker div.rgb-display input,div.rui-colorpicker input.rui-ui-button{border:1px solid #AAA;-moz-border-radius:.2em;-webkit-border-radius:.2em}div.rui-colorpicker div.field{width:150px;background-color:red;cursor:crosshair;margin-right:1.2em}div.rui-colorpicker div.field div.pointer{background-position:-170px 0;margin-left:-2px;margin-top:-2px}div.rui-colorpicker div.colors{width:16px;background-position:-150px 0;border-color:#EEE;cursor:pointer;margin-right:.6em}div.rui-colorpicker div.colors div.pointer{cursor:default;background-position:-170px -20px;margin-left:-8px;margin-top:-3px}div.rui-colorpicker div.controls{width:5em}div.rui-colorpicker div.preview{height:2em;background:white;border-color:#BBB}div.rui-colorpicker input.display{margin-top:.5em;background:#FFF;width:4.5em}div.rui-colorpicker div.rgb-display{padding:0;text-align:right;margin-top:.5em}div.rui-colorpicker div.rgb-display label{display:inline}div.rui-colorpicker div.rgb-display label:after{content:none}div.rui-colorpicker div.rgb-display input{vertical-align:top;font-size:100%;width:2em;text-align:right;margin-left:.2em;padding:0 .2em;background:#FFF;margin-bottom:1px;display:inline}div.rui-colorpicker div.rui-button{cursor:pointer;position:absolute;bottom:0;right:0;width:4em}div.rui-colorpicker-inline{display:inline-block; *display:inline; *zoom:1;position:relative;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none;z-index:auto}</style>");
965
975
 
966
976
  return Colorpicker;
967
- })(document, Math, parseInt, RightJS);
977
+ })(document, Math, parseInt, RightJS);