diff options
author | Andrew Dolgov <[email protected]> | 2010-11-15 10:39:52 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2010-11-15 10:39:52 +0300 |
commit | 2f01fe57a8d37767827d6db42850aef86a767c53 (patch) | |
tree | 516a95ffce2fc2435aed8d9976e444dbcba7dce3 /lib/dijit | |
parent | 951906dcecb1d3c7bcf751976a03e0c196ca6db0 (diff) |
add dijit/dojo stuff; initial ui mockup
Diffstat (limited to 'lib/dijit')
875 files changed, 75804 insertions, 0 deletions
diff --git a/lib/dijit/Calendar.js b/lib/dijit/Calendar.js new file mode 100644 index 000000000..fa82770ee --- /dev/null +++ b/lib/dijit/Calendar.js @@ -0,0 +1,265 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.Calendar"]){ +dojo._hasResource["dijit.Calendar"]=true; +dojo.provide("dijit.Calendar"); +dojo.require("dojo.cldr.supplemental"); +dojo.require("dojo.date"); +dojo.require("dojo.date.locale"); +dojo.require("dijit._Widget"); +dojo.require("dijit._Templated"); +dojo.require("dijit._CssStateMixin"); +dojo.declare("dijit.Calendar",[dijit._Widget,dijit._Templated,dijit._CssStateMixin],{templateString:dojo.cache("dijit","templates/Calendar.html","<table cellspacing=\"0\" cellpadding=\"0\" class=\"dijitCalendarContainer\" role=\"grid\" dojoAttachEvent=\"onkeypress: _onKeyPress\">\n\t<thead>\n\t\t<tr class=\"dijitReset dijitCalendarMonthContainer\" valign=\"top\">\n\t\t\t<th class='dijitReset dijitCalendarArrow' dojoAttachPoint=\"decrementMonth\">\n\t\t\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitCalendarIncrementControl dijitCalendarDecrease\" waiRole=\"presentation\"/>\n\t\t\t\t<span dojoAttachPoint=\"decreaseArrowNode\" class=\"dijitA11ySideArrow\">-</span>\n\t\t\t</th>\n\t\t\t<th class='dijitReset' colspan=\"5\">\n\t\t\t\t<div class=\"dijitVisible\">\n\t\t\t\t\t<div class=\"dijitPopup dijitMenu dijitMenuPassive dijitHidden\" dojoAttachPoint=\"monthDropDown\" dojoAttachEvent=\"onmouseup: _onMonthSelect, onmouseover: _onMenuHover, onmouseout: _onMenuHover\">\n\t\t\t\t\t\t<div class=\"dijitCalendarMonthLabelTemplate dijitCalendarMonthLabel\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div dojoAttachPoint=\"monthLabelSpacer\" class=\"dijitSpacer\"></div>\n\t\t\t\t<div dojoAttachPoint=\"monthLabelNode\" class=\"dijitCalendarMonthLabel dijitInline dijitVisible\" dojoAttachEvent=\"onmousedown: _onMonthToggle\"></div>\n\t\t\t</th>\n\t\t\t<th class='dijitReset dijitCalendarArrow' dojoAttachPoint=\"incrementMonth\">\n\t\t\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitCalendarIncrementControl dijitCalendarIncrease\" waiRole=\"presentation\"/>\n\t\t\t\t<span dojoAttachPoint=\"increaseArrowNode\" class=\"dijitA11ySideArrow\">+</span>\n\t\t\t</th>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<th class=\"dijitReset dijitCalendarDayLabelTemplate\" role=\"columnheader\"><span class=\"dijitCalendarDayLabel\"></span></th>\n\t\t</tr>\n\t</thead>\n\t<tbody dojoAttachEvent=\"onclick: _onDayClick, onmouseover: _onDayMouseOver, onmouseout: _onDayMouseOut, onmousedown: _onDayMouseDown, onmouseup: _onDayMouseUp\" class=\"dijitReset dijitCalendarBodyContainer\">\n\t\t<tr class=\"dijitReset dijitCalendarWeekTemplate\" role=\"row\">\n\t\t\t<td class=\"dijitReset dijitCalendarDateTemplate\" role=\"gridcell\"><span class=\"dijitCalendarDateLabel\"></span></td>\n\t\t</tr>\n\t</tbody>\n\t<tfoot class=\"dijitReset dijitCalendarYearContainer\">\n\t\t<tr>\n\t\t\t<td class='dijitReset' valign=\"top\" colspan=\"7\">\n\t\t\t\t<h3 class=\"dijitCalendarYearLabel\">\n\t\t\t\t\t<span dojoAttachPoint=\"previousYearLabelNode\" class=\"dijitInline dijitCalendarPreviousYear\"></span>\n\t\t\t\t\t<span dojoAttachPoint=\"currentYearLabelNode\" class=\"dijitInline dijitCalendarSelectedYear\"></span>\n\t\t\t\t\t<span dojoAttachPoint=\"nextYearLabelNode\" class=\"dijitInline dijitCalendarNextYear\"></span>\n\t\t\t\t</h3>\n\t\t\t</td>\n\t\t</tr>\n\t</tfoot>\n</table>\n"),value:new Date(),datePackage:"dojo.date",dayWidth:"narrow",tabIndex:"0",baseClass:"dijitCalendar",cssStateNodes:{"decrementMonth":"dijitCalendarArrow","incrementMonth":"dijitCalendarArrow","previousYearLabelNode":"dijitCalendarPreviousYear","nextYearLabelNode":"dijitCalendarNextYear"},attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{tabIndex:"domNode"}),setValue:function(_1){ +dojo.deprecated("dijit.Calendar:setValue() is deprecated. Use set('value', ...) instead.","","2.0"); +this.set("value",_1); +},_getValueAttr:function(){ +var _2=new this.dateClassObj(this.value); +_2.setHours(0,0,0,0); +if(_2.getDate()<this.value.getDate()){ +_2=this.dateFuncObj.add(_2,"hour",1); +} +return _2; +},_setValueAttr:function(_3){ +if(!this.value||this.dateFuncObj.compare(_3,this.value)){ +_3=new this.dateClassObj(_3); +_3.setHours(1); +this.displayMonth=new this.dateClassObj(_3); +if(!this.isDisabledDate(_3,this.lang)){ +this.value=_3; +this.onChange(this.get("value")); +} +dojo.attr(this.domNode,"aria-label",this.dateLocaleModule.format(_3,{selector:"date",formatLength:"full"})); +this._populateGrid(); +} +},_setText:function(_4,_5){ +while(_4.firstChild){ +_4.removeChild(_4.firstChild); +} +_4.appendChild(dojo.doc.createTextNode(_5)); +},_populateGrid:function(){ +var _6=this.displayMonth; +_6.setDate(1); +var _7=_6.getDay(),_8=this.dateFuncObj.getDaysInMonth(_6),_9=this.dateFuncObj.getDaysInMonth(this.dateFuncObj.add(_6,"month",-1)),_a=new this.dateClassObj(),_b=dojo.cldr.supplemental.getFirstDayOfWeek(this.lang); +if(_b>_7){ +_b-=7; +} +dojo.query(".dijitCalendarDateTemplate",this.domNode).forEach(function(_c,i){ +i+=_b; +var _d=new this.dateClassObj(_6),_e,_f="dijitCalendar",adj=0; +if(i<_7){ +_e=_9-_7+i+1; +adj=-1; +_f+="Previous"; +}else{ +if(i>=(_7+_8)){ +_e=i-_7-_8+1; +adj=1; +_f+="Next"; +}else{ +_e=i-_7+1; +_f+="Current"; +} +} +if(adj){ +_d=this.dateFuncObj.add(_d,"month",adj); +} +_d.setDate(_e); +if(!this.dateFuncObj.compare(_d,_a,"date")){ +_f="dijitCalendarCurrentDate "+_f; +} +if(this._isSelectedDate(_d,this.lang)){ +_f="dijitCalendarSelectedDate "+_f; +} +if(this.isDisabledDate(_d,this.lang)){ +_f="dijitCalendarDisabledDate "+_f; +} +var _10=this.getClassForDate(_d,this.lang); +if(_10){ +_f=_10+" "+_f; +} +_c.className=_f+"Month dijitCalendarDateTemplate"; +_c.dijitDateValue=_d.valueOf(); +var _11=dojo.query(".dijitCalendarDateLabel",_c)[0],_12=_d.getDateLocalized?_d.getDateLocalized(this.lang):_d.getDate(); +this._setText(_11,_12); +},this); +var _13=this.dateLocaleModule.getNames("months","wide","standAlone",this.lang,_6); +this._setText(this.monthLabelNode,_13[_6.getMonth()]); +dojo.query(".dijitCalendarMonthLabelTemplate",this.domNode).forEach(function(_14,i){ +dojo.toggleClass(_14,"dijitHidden",!(i in _13)); +this._setText(_14,_13[i]); +},this); +var y=_6.getFullYear()-1; +var d=new this.dateClassObj(); +dojo.forEach(["previous","current","next"],function(_15){ +d.setFullYear(y++); +this._setText(this[_15+"YearLabelNode"],this.dateLocaleModule.format(d,{selector:"year",locale:this.lang})); +},this); +var _16=this; +var _17=function(_18,_19,adj){ +_16._connects.push(dijit.typematic.addMouseListener(_16[_18],_16,function(_1a){ +if(_1a>=0){ +_16._adjustDisplay(_19,adj); +} +},0.8,500)); +}; +_17("incrementMonth","month",1); +_17("decrementMonth","month",-1); +_17("nextYearLabelNode","year",1); +_17("previousYearLabelNode","year",-1); +},goToToday:function(){ +this.set("value",new this.dateClassObj()); +},constructor:function(_1b){ +var _1c=(_1b.datePackage&&(_1b.datePackage!="dojo.date"))?_1b.datePackage+".Date":"Date"; +this.dateClassObj=dojo.getObject(_1c,false); +this.datePackage=_1b.datePackage||this.datePackage; +this.dateFuncObj=dojo.getObject(this.datePackage,false); +this.dateLocaleModule=dojo.getObject(this.datePackage+".locale",false); +},postMixInProperties:function(){ +if(isNaN(this.value)){ +delete this.value; +} +this.inherited(arguments); +},postCreate:function(){ +this.inherited(arguments); +dojo.setSelectable(this.domNode,false); +var _1d=dojo.hitch(this,function(_1e,n){ +var _1f=dojo.query(_1e,this.domNode)[0]; +for(var i=0;i<n;i++){ +_1f.parentNode.appendChild(_1f.cloneNode(true)); +} +}); +_1d(".dijitCalendarDayLabelTemplate",6); +_1d(".dijitCalendarDateTemplate",6); +_1d(".dijitCalendarWeekTemplate",5); +var _20=this.dateLocaleModule.getNames("days",this.dayWidth,"standAlone",this.lang); +var _21=dojo.cldr.supplemental.getFirstDayOfWeek(this.lang); +dojo.query(".dijitCalendarDayLabel",this.domNode).forEach(function(_22,i){ +this._setText(_22,_20[(i+_21)%7]); +},this); +var _23=new this.dateClassObj(this.value); +var _24=this.dateLocaleModule.getNames("months","wide","standAlone",this.lang,_23); +_1d(".dijitCalendarMonthLabelTemplate",_24.length-1); +dojo.query(".dijitCalendarMonthLabelTemplate",this.domNode).forEach(function(_25,i){ +dojo.attr(_25,"month",i); +if(i in _24){ +this._setText(_25,_24[i]); +} +dojo.place(_25.cloneNode(true),this.monthLabelSpacer); +},this); +this.value=null; +this.set("value",_23); +},_onMenuHover:function(e){ +dojo.stopEvent(e); +dojo.toggleClass(e.target,"dijitMenuItemHover"); +},_adjustDisplay:function(_26,_27){ +this.displayMonth=this.dateFuncObj.add(this.displayMonth,_26,_27); +this._populateGrid(); +},_onMonthToggle:function(evt){ +dojo.stopEvent(evt); +if(evt.type=="mousedown"){ +var _28=dojo.position(this.monthLabelNode); +var dim={width:_28.w+"px",top:-this.displayMonth.getMonth()*_28.h+"px"}; +if((dojo.isIE&&dojo.isQuirks)||dojo.isIE<7){ +dim.left=-_28.w/2+"px"; +} +dojo.style(this.monthDropDown,dim); +this._popupHandler=this.connect(document,"onmouseup","_onMonthToggle"); +}else{ +this.disconnect(this._popupHandler); +delete this._popupHandler; +} +dojo.toggleClass(this.monthDropDown,"dijitHidden"); +dojo.toggleClass(this.monthLabelNode,"dijitVisible"); +},_onMonthSelect:function(evt){ +this._onMonthToggle(evt); +this.displayMonth.setMonth(dojo.attr(evt.target,"month")); +this._populateGrid(); +},_onDayClick:function(evt){ +dojo.stopEvent(evt); +for(var _29=evt.target;_29&&!_29.dijitDateValue;_29=_29.parentNode){ +} +if(_29&&!dojo.hasClass(_29,"dijitCalendarDisabledDate")){ +this.set("value",_29.dijitDateValue); +this.onValueSelected(this.get("value")); +} +},_onDayMouseOver:function(evt){ +var _2a=dojo.hasClass(evt.target,"dijitCalendarDateLabel")?evt.target.parentNode:evt.target; +if(_2a&&(_2a.dijitDateValue||_2a==this.previousYearLabelNode||_2a==this.nextYearLabelNode)){ +dojo.addClass(_2a,"dijitCalendarHoveredDate"); +this._currentNode=_2a; +} +},_onDayMouseOut:function(evt){ +if(!this._currentNode){ +return; +} +if(evt.relatedTarget&&evt.relatedTarget.parentNode==this._currentNode){ +return; +} +dojo.removeClass(this._currentNode,"dijitCalendarHoveredDate"); +if(dojo.hasClass(this._currentNode,"dijitCalendarActiveDate")){ +dojo.removeClass(this._currentNode,"dijitCalendarActiveDate"); +} +this._currentNode=null; +},_onDayMouseDown:function(evt){ +var _2b=evt.target.parentNode; +if(_2b&&_2b.dijitDateValue){ +dojo.addClass(_2b,"dijitCalendarActiveDate"); +this._currentNode=_2b; +} +},_onDayMouseUp:function(evt){ +var _2c=evt.target.parentNode; +if(_2c&&_2c.dijitDateValue){ +dojo.removeClass(_2c,"dijitCalendarActiveDate"); +} +},_onKeyPress:function(evt){ +var dk=dojo.keys,_2d=-1,_2e,_2f=this.value; +switch(evt.keyCode){ +case dk.RIGHT_ARROW: +_2d=1; +case dk.LEFT_ARROW: +_2e="day"; +if(!this.isLeftToRight()){ +_2d*=-1; +} +break; +case dk.DOWN_ARROW: +_2d=1; +case dk.UP_ARROW: +_2e="week"; +break; +case dk.PAGE_DOWN: +_2d=1; +case dk.PAGE_UP: +_2e=evt.ctrlKey?"year":"month"; +break; +case dk.END: +_2f=this.dateFuncObj.add(_2f,"month",1); +_2e="day"; +case dk.HOME: +_2f=new Date(_2f).setDate(1); +break; +case dk.ENTER: +this.onValueSelected(this.get("value")); +break; +case dk.ESCAPE: +default: +return; +} +dojo.stopEvent(evt); +if(_2e){ +_2f=this.dateFuncObj.add(_2f,_2e,_2d); +} +this.set("value",_2f); +},onValueSelected:function(_30){ +},onChange:function(_31){ +},_isSelectedDate:function(_32,_33){ +return !this.dateFuncObj.compare(_32,this.value,"date"); +},isDisabledDate:function(_34,_35){ +},getClassForDate:function(_36,_37){ +}}); +} diff --git a/lib/dijit/CheckedMenuItem.js b/lib/dijit/CheckedMenuItem.js new file mode 100644 index 000000000..a84837897 --- /dev/null +++ b/lib/dijit/CheckedMenuItem.js @@ -0,0 +1,24 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.CheckedMenuItem"]){ +dojo._hasResource["dijit.CheckedMenuItem"]=true; +dojo.provide("dijit.CheckedMenuItem"); +dojo.require("dijit.MenuItem"); +dojo.declare("dijit.CheckedMenuItem",dijit.MenuItem,{templateString:dojo.cache("dijit","templates/CheckedMenuItem.html","<tr class=\"dijitReset dijitMenuItem\" dojoAttachPoint=\"focusNode\" waiRole=\"menuitemcheckbox\" tabIndex=\"-1\"\n\t\tdojoAttachEvent=\"onmouseenter:_onHover,onmouseleave:_onUnhover,ondijitclick:_onClick\">\n\t<td class=\"dijitReset dijitMenuItemIconCell\" waiRole=\"presentation\">\n\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitMenuItemIcon dijitCheckedMenuItemIcon\" dojoAttachPoint=\"iconNode\"/>\n\t\t<span class=\"dijitCheckedMenuItemIconChar\">✓</span>\n\t</td>\n\t<td class=\"dijitReset dijitMenuItemLabel\" colspan=\"2\" dojoAttachPoint=\"containerNode,labelNode\"></td>\n\t<td class=\"dijitReset dijitMenuItemAccelKey\" style=\"display: none\" dojoAttachPoint=\"accelKeyNode\"></td>\n\t<td class=\"dijitReset dijitMenuArrowCell\" waiRole=\"presentation\"> </td>\n</tr>\n"),checked:false,_setCheckedAttr:function(_1){ +dojo.toggleClass(this.domNode,"dijitCheckedMenuItemChecked",_1); +dijit.setWaiState(this.domNode,"checked",_1); +this.checked=_1; +},onChange:function(_2){ +},_onClick:function(e){ +if(!this.disabled){ +this.set("checked",!this.checked); +this.onChange(this.checked); +} +this.inherited(arguments); +}}); +} diff --git a/lib/dijit/ColorPalette.js b/lib/dijit/ColorPalette.js new file mode 100644 index 000000000..62aae00df --- /dev/null +++ b/lib/dijit/ColorPalette.js @@ -0,0 +1,31 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.ColorPalette"]){ +dojo._hasResource["dijit.ColorPalette"]=true; +dojo.provide("dijit.ColorPalette"); +dojo.require("dijit._Widget"); +dojo.require("dijit._Templated"); +dojo.require("dojo.colors"); +dojo.require("dojo.i18n"); +dojo.require("dijit._PaletteMixin"); +dojo.requireLocalization("dojo","colors",null,"ROOT,ar,ca,cs,da,de,el,es,fi,fr,he,hu,it,ja,ko,nb,nl,pl,pt,pt-pt,ro,ru,sk,sl,sv,th,tr,zh,zh-tw"); +dojo.declare("dijit.ColorPalette",[dijit._Widget,dijit._Templated,dijit._PaletteMixin],{palette:"7x10",_palettes:{"7x10":[["white","seashell","cornsilk","lemonchiffon","lightyellow","palegreen","paleturquoise","lightcyan","lavender","plum"],["lightgray","pink","bisque","moccasin","khaki","lightgreen","lightseagreen","lightskyblue","cornflowerblue","violet"],["silver","lightcoral","sandybrown","orange","palegoldenrod","chartreuse","mediumturquoise","skyblue","mediumslateblue","orchid"],["gray","red","orangered","darkorange","yellow","limegreen","darkseagreen","royalblue","slateblue","mediumorchid"],["dimgray","crimson","chocolate","coral","gold","forestgreen","seagreen","blue","blueviolet","darkorchid"],["darkslategray","firebrick","saddlebrown","sienna","olive","green","darkcyan","mediumblue","darkslateblue","darkmagenta"],["black","darkred","maroon","brown","darkolivegreen","darkgreen","midnightblue","navy","indigo","purple"]],"3x4":[["white","lime","green","blue"],["silver","yellow","fuchsia","navy"],["gray","red","purple","black"]]},_imagePaths:{"7x10":dojo.moduleUrl("dijit.themes","a11y/colors7x10.png"),"3x4":dojo.moduleUrl("dijit.themes","a11y/colors3x4.png"),"7x10-rtl":dojo.moduleUrl("dijit.themes","a11y/colors7x10-rtl.png"),"3x4-rtl":dojo.moduleUrl("dijit.themes","a11y/colors3x4-rtl.png")},templateString:dojo.cache("dijit","templates/ColorPalette.html","<div class=\"dijitInline dijitColorPalette\">\n\t<img class=\"dijitColorPaletteUnder\" dojoAttachPoint=\"imageNode\" waiRole=\"presentation\" alt=\"\"/>\n\t<table class=\"dijitPaletteTable\" cellSpacing=\"0\" cellPadding=\"0\">\n\t\t<tbody dojoAttachPoint=\"gridNode\"></tbody>\n\t</table>\n</div>\n"),baseClass:"dijitColorPalette",dyeClass:"dijit._Color",buildRendering:function(){ +this.inherited(arguments); +this.imageNode.setAttribute("src",this._imagePaths[this.palette+(this.isLeftToRight()?"":"-rtl")].toString()); +var _1=dojo.i18n.getLocalization("dojo","colors",this.lang); +this._preparePalette(this._palettes[this.palette],_1); +}}); +dojo.declare("dijit._Color",dojo.Color,{constructor:function(_2){ +this._alias=_2; +this.setColor(dojo.Color.named[_2]); +},getValue:function(){ +return this.toHex(); +},fillCell:function(_3,_4){ +dojo.create("img",{src:_4,"class":"dijitPaletteImg",alt:this._alias},_3); +}}); +} diff --git a/lib/dijit/Declaration.js b/lib/dijit/Declaration.js new file mode 100644 index 000000000..57cbfd031 --- /dev/null +++ b/lib/dijit/Declaration.js @@ -0,0 +1,36 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.Declaration"]){ +dojo._hasResource["dijit.Declaration"]=true; +dojo.provide("dijit.Declaration"); +dojo.require("dijit._Widget"); +dojo.require("dijit._Templated"); +dojo.declare("dijit.Declaration",dijit._Widget,{_noScript:true,widgetClass:"",defaults:null,mixins:[],buildRendering:function(){ +var _1=this.srcNodeRef.parentNode.removeChild(this.srcNodeRef),_2=dojo.query("> script[type^='dojo/method'][event]",_1).orphan(),_3=dojo.query("> script[type^='dojo/method']",_1).orphan(),_4=dojo.query("> script[type^='dojo/connect']",_1).orphan(),_5=_1.nodeName; +var _6=this.defaults||{}; +dojo.forEach(_2,function(s){ +var _7=s.getAttribute("event"),_8=dojo.parser._functionFromScript(s); +_6[_7]=_8; +}); +this.mixins=this.mixins.length?dojo.map(this.mixins,function(_9){ +return dojo.getObject(_9); +}):[dijit._Widget,dijit._Templated]; +_6.widgetsInTemplate=true; +_6._skipNodeCache=true; +_6.templateString="<"+_5+" class='"+_1.className+"' dojoAttachPoint='"+(_1.getAttribute("dojoAttachPoint")||"")+"' dojoAttachEvent='"+(_1.getAttribute("dojoAttachEvent")||"")+"' >"+_1.innerHTML.replace(/\%7B/g,"{").replace(/\%7D/g,"}")+"</"+_5+">"; +dojo.query("[dojoType]",_1).forEach(function(_a){ +_a.removeAttribute("dojoType"); +}); +var wc=dojo.declare(this.widgetClass,this.mixins,_6); +var _b=_4.concat(_3); +dojo.forEach(_b,function(s){ +var _c=s.getAttribute("event")||"postscript",_d=dojo.parser._functionFromScript(s); +dojo.connect(wc.prototype,_c,_d); +}); +}}); +} diff --git a/lib/dijit/Dialog.js b/lib/dijit/Dialog.js new file mode 100644 index 000000000..a35d523bf --- /dev/null +++ b/lib/dijit/Dialog.js @@ -0,0 +1,256 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.Dialog"]){ +dojo._hasResource["dijit.Dialog"]=true; +dojo.provide("dijit.Dialog"); +dojo.require("dojo.dnd.move"); +dojo.require("dojo.dnd.TimedMoveable"); +dojo.require("dojo.fx"); +dojo.require("dojo.window"); +dojo.require("dijit._Widget"); +dojo.require("dijit._Templated"); +dojo.require("dijit._CssStateMixin"); +dojo.require("dijit.form._FormMixin"); +dojo.require("dijit._DialogMixin"); +dojo.require("dijit.DialogUnderlay"); +dojo.require("dijit.layout.ContentPane"); +dojo.requireLocalization("dijit","common",null,"ROOT,ar,ca,cs,da,de,el,es,fi,fr,he,hu,it,ja,ko,nb,nl,pl,pt,pt-pt,ro,ru,sk,sl,sv,th,tr,zh,zh-tw"); +dojo.declare("dijit._DialogBase",[dijit._Templated,dijit.form._FormMixin,dijit._DialogMixin,dijit._CssStateMixin],{templateString:dojo.cache("dijit","templates/Dialog.html","<div class=\"dijitDialog\" tabindex=\"-1\" waiRole=\"dialog\" waiState=\"labelledby-${id}_title\">\n\t<div dojoAttachPoint=\"titleBar\" class=\"dijitDialogTitleBar\">\n\t<span dojoAttachPoint=\"titleNode\" class=\"dijitDialogTitle\" id=\"${id}_title\"></span>\n\t<span dojoAttachPoint=\"closeButtonNode\" class=\"dijitDialogCloseIcon\" dojoAttachEvent=\"onclick: onCancel\" title=\"${buttonCancel}\">\n\t\t<span dojoAttachPoint=\"closeText\" class=\"closeText\" title=\"${buttonCancel}\">x</span>\n\t</span>\n\t</div>\n\t\t<div dojoAttachPoint=\"containerNode\" class=\"dijitDialogPaneContent\"></div>\n</div>\n"),baseClass:"dijitDialog",cssStateNodes:{closeButtonNode:"dijitDialogCloseIcon"},attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{title:[{node:"titleNode",type:"innerHTML"},{node:"titleBar",type:"attribute"}],"aria-describedby":""}),open:false,duration:dijit.defaultDuration,refocus:true,autofocus:true,_firstFocusItem:null,_lastFocusItem:null,doLayout:false,draggable:true,"aria-describedby":"",postMixInProperties:function(){ +var _1=dojo.i18n.getLocalization("dijit","common"); +dojo.mixin(this,_1); +this.inherited(arguments); +},postCreate:function(){ +dojo.style(this.domNode,{display:"none",position:"absolute"}); +dojo.body().appendChild(this.domNode); +this.inherited(arguments); +this.connect(this,"onExecute","hide"); +this.connect(this,"onCancel","hide"); +this._modalconnects=[]; +},onLoad:function(){ +this._position(); +if(this.autofocus){ +this._getFocusItems(this.domNode); +dijit.focus(this._firstFocusItem); +} +this.inherited(arguments); +},_endDrag:function(e){ +if(e&&e.node&&e.node===this.domNode){ +this._relativePosition=dojo.position(e.node); +} +},_setup:function(){ +var _2=this.domNode; +if(this.titleBar&&this.draggable){ +this._moveable=(dojo.isIE==6)?new dojo.dnd.TimedMoveable(_2,{handle:this.titleBar}):new dojo.dnd.Moveable(_2,{handle:this.titleBar,timeout:0}); +dojo.subscribe("/dnd/move/stop",this,"_endDrag"); +}else{ +dojo.addClass(_2,"dijitDialogFixed"); +} +this.underlayAttrs={dialogId:this.id,"class":dojo.map(this["class"].split(/\s/),function(s){ +return s+"_underlay"; +}).join(" ")}; +this._fadeIn=dojo.fadeIn({node:_2,duration:this.duration,beforeBegin:dojo.hitch(this,function(){ +var _3=dijit._underlay; +if(!_3){ +_3=dijit._underlay=new dijit.DialogUnderlay(this.underlayAttrs); +}else{ +_3.set(this.underlayAttrs); +} +var ds=dijit._dialogStack,_4=948+ds.length*2; +if(ds.length==1){ +_3.show(); +} +dojo.style(dijit._underlay.domNode,"zIndex",_4); +dojo.style(this.domNode,"zIndex",_4+1); +}),onEnd:dojo.hitch(this,function(){ +if(this.autofocus){ +this._getFocusItems(this.domNode); +dijit.focus(this._firstFocusItem); +} +})}); +this._fadeOut=dojo.fadeOut({node:_2,duration:this.duration,onEnd:dojo.hitch(this,function(){ +_2.style.display="none"; +var ds=dijit._dialogStack; +if(ds.length==0){ +dijit._underlay.hide(); +}else{ +dojo.style(dijit._underlay.domNode,"zIndex",948+ds.length*2); +dijit._underlay.set(ds[ds.length-1].underlayAttrs); +} +if(this.refocus){ +var _5=this._savedFocus; +if(ds.length>0){ +var pd=ds[ds.length-1]; +if(!dojo.isDescendant(_5.node,pd.domNode)){ +pd._getFocusItems(pd.domNode); +_5=pd._firstFocusItem; +} +} +dijit.focus(_5); +} +})}); +},uninitialize:function(){ +var _6=false; +if(this._fadeIn&&this._fadeIn.status()=="playing"){ +_6=true; +this._fadeIn.stop(); +} +if(this._fadeOut&&this._fadeOut.status()=="playing"){ +_6=true; +this._fadeOut.stop(); +} +if((this.open||_6)&&!dijit._underlay._destroyed){ +dijit._underlay.hide(); +} +if(this._moveable){ +this._moveable.destroy(); +} +this.inherited(arguments); +},_size:function(){ +this._checkIfSingleChild(); +if(this._singleChild){ +if(this._singleChildOriginalStyle){ +this._singleChild.domNode.style.cssText=this._singleChildOriginalStyle; +} +delete this._singleChildOriginalStyle; +}else{ +dojo.style(this.containerNode,{width:"auto",height:"auto"}); +} +var mb=dojo.marginBox(this.domNode); +var _7=dojo.window.getBox(); +if(mb.w>=_7.w||mb.h>=_7.h){ +var w=Math.min(mb.w,Math.floor(_7.w*0.75)),h=Math.min(mb.h,Math.floor(_7.h*0.75)); +if(this._singleChild&&this._singleChild.resize){ +this._singleChildOriginalStyle=this._singleChild.domNode.style.cssText; +this._singleChild.resize({w:w,h:h}); +}else{ +dojo.style(this.containerNode,{width:w+"px",height:h+"px",overflow:"auto",position:"relative"}); +} +}else{ +if(this._singleChild&&this._singleChild.resize){ +this._singleChild.resize(); +} +} +},_position:function(){ +if(!dojo.hasClass(dojo.body(),"dojoMove")){ +var _8=this.domNode,_9=dojo.window.getBox(),p=this._relativePosition,bb=p?null:dojo._getBorderBox(_8),l=Math.floor(_9.l+(p?p.x:(_9.w-bb.w)/2)),t=Math.floor(_9.t+(p?p.y:(_9.h-bb.h)/2)); +dojo.style(_8,{left:l+"px",top:t+"px"}); +} +},_onKey:function(_a){ +var ds=dijit._dialogStack; +if(ds[ds.length-1]!=this){ +return; +} +if(_a.charOrCode){ +var dk=dojo.keys; +var _b=_a.target; +if(_a.charOrCode===dk.TAB){ +this._getFocusItems(this.domNode); +} +var _c=(this._firstFocusItem==this._lastFocusItem); +if(_b==this._firstFocusItem&&_a.shiftKey&&_a.charOrCode===dk.TAB){ +if(!_c){ +dijit.focus(this._lastFocusItem); +} +dojo.stopEvent(_a); +}else{ +if(_b==this._lastFocusItem&&_a.charOrCode===dk.TAB&&!_a.shiftKey){ +if(!_c){ +dijit.focus(this._firstFocusItem); +} +dojo.stopEvent(_a); +}else{ +while(_b){ +if(_b==this.domNode||dojo.hasClass(_b,"dijitPopup")){ +if(_a.charOrCode==dk.ESCAPE){ +this.onCancel(); +}else{ +return; +} +} +_b=_b.parentNode; +} +if(_a.charOrCode!==dk.TAB){ +dojo.stopEvent(_a); +}else{ +if(!dojo.isOpera){ +try{ +this._firstFocusItem.focus(); +} +catch(e){ +} +} +} +} +} +} +},show:function(){ +if(this.open){ +return; +} +if(!this._alreadyInitialized){ +this._setup(); +this._alreadyInitialized=true; +} +if(this._fadeOut.status()=="playing"){ +this._fadeOut.stop(); +} +this._modalconnects.push(dojo.connect(window,"onscroll",this,"layout")); +this._modalconnects.push(dojo.connect(window,"onresize",this,function(){ +var _d=dojo.window.getBox(); +if(!this._oldViewport||_d.h!=this._oldViewport.h||_d.w!=this._oldViewport.w){ +this.layout(); +this._oldViewport=_d; +} +})); +this._modalconnects.push(dojo.connect(dojo.doc.documentElement,"onkeypress",this,"_onKey")); +dojo.style(this.domNode,{opacity:0,display:""}); +this.open=true; +this._onShow(); +this._size(); +this._position(); +dijit._dialogStack.push(this); +this._fadeIn.play(); +this._savedFocus=dijit.getFocus(this); +},hide:function(){ +var ds=dijit._dialogStack; +if(!this._alreadyInitialized||this!=ds[ds.length-1]){ +return; +} +if(this._fadeIn.status()=="playing"){ +this._fadeIn.stop(); +} +ds.pop(); +this._fadeOut.play(); +if(this._scrollConnected){ +this._scrollConnected=false; +} +dojo.forEach(this._modalconnects,dojo.disconnect); +this._modalconnects=[]; +if(this._relativePosition){ +delete this._relativePosition; +} +this.open=false; +this.onHide(); +},layout:function(){ +if(this.domNode.style.display!="none"){ +if(dijit._underlay){ +dijit._underlay.layout(); +} +this._position(); +} +},destroy:function(){ +dojo.forEach(this._modalconnects,dojo.disconnect); +if(this.refocus&&this.open){ +setTimeout(dojo.hitch(dijit,"focus",this._savedFocus),25); +} +this.inherited(arguments); +}}); +dojo.declare("dijit.Dialog",[dijit.layout.ContentPane,dijit._DialogBase],{}); +dijit._dialogStack=[]; +dojo.require("dijit.TooltipDialog"); +} diff --git a/lib/dijit/DialogUnderlay.js b/lib/dijit/DialogUnderlay.js new file mode 100644 index 000000000..0056462a5 --- /dev/null +++ b/lib/dijit/DialogUnderlay.js @@ -0,0 +1,42 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.DialogUnderlay"]){ +dojo._hasResource["dijit.DialogUnderlay"]=true; +dojo.provide("dijit.DialogUnderlay"); +dojo.require("dojo.window"); +dojo.require("dijit._Widget"); +dojo.require("dijit._Templated"); +dojo.declare("dijit.DialogUnderlay",[dijit._Widget,dijit._Templated],{templateString:"<div class='dijitDialogUnderlayWrapper'><div class='dijitDialogUnderlay' dojoAttachPoint='node'></div></div>",dialogId:"","class":"",attributeMap:{id:"domNode"},_setDialogIdAttr:function(id){ +dojo.attr(this.node,"id",id+"_underlay"); +},_setClassAttr:function(_1){ +this.node.className="dijitDialogUnderlay "+_1; +},postCreate:function(){ +dojo.body().appendChild(this.domNode); +},layout:function(){ +var is=this.node.style,os=this.domNode.style; +os.display="none"; +var _2=dojo.window.getBox(); +os.top=_2.t+"px"; +os.left=_2.l+"px"; +is.width=_2.w+"px"; +is.height=_2.h+"px"; +os.display="block"; +},show:function(){ +this.domNode.style.display="block"; +this.layout(); +this.bgIframe=new dijit.BackgroundIframe(this.domNode); +},hide:function(){ +this.bgIframe.destroy(); +this.domNode.style.display="none"; +},uninitialize:function(){ +if(this.bgIframe){ +this.bgIframe.destroy(); +} +this.inherited(arguments); +}}); +} diff --git a/lib/dijit/Editor.js b/lib/dijit/Editor.js new file mode 100644 index 000000000..69258eade --- /dev/null +++ b/lib/dijit/Editor.js @@ -0,0 +1,473 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.Editor"]){ +dojo._hasResource["dijit.Editor"]=true; +dojo.provide("dijit.Editor"); +dojo.require("dijit._editor.RichText"); +dojo.require("dijit.Toolbar"); +dojo.require("dijit.ToolbarSeparator"); +dojo.require("dijit._editor._Plugin"); +dojo.require("dijit._editor.plugins.EnterKeyHandling"); +dojo.require("dijit._editor.range"); +dojo.require("dijit._Container"); +dojo.require("dojo.i18n"); +dojo.require("dijit.layout._LayoutWidget"); +dojo.require("dijit._editor.range"); +dojo.requireLocalization("dijit._editor","commands",null,"ROOT,ar,ca,cs,da,de,el,es,fi,fr,he,hu,it,ja,ko,nb,nl,pl,pt,pt-pt,ro,ru,sk,sl,sv,th,tr,zh,zh-tw"); +dojo.declare("dijit.Editor",dijit._editor.RichText,{plugins:null,extraPlugins:null,constructor:function(){ +if(!dojo.isArray(this.plugins)){ +this.plugins=["undo","redo","|","cut","copy","paste","|","bold","italic","underline","strikethrough","|","insertOrderedList","insertUnorderedList","indent","outdent","|","justifyLeft","justifyRight","justifyCenter","justifyFull","dijit._editor.plugins.EnterKeyHandling"]; +} +this._plugins=[]; +this._editInterval=this.editActionInterval*1000; +if(dojo.isIE){ +this.events.push("onBeforeDeactivate"); +this.events.push("onBeforeActivate"); +} +},postCreate:function(){ +this._steps=this._steps.slice(0); +this._undoedSteps=this._undoedSteps.slice(0); +if(dojo.isArray(this.extraPlugins)){ +this.plugins=this.plugins.concat(this.extraPlugins); +} +this.setValueDeferred=new dojo.Deferred(); +this.inherited(arguments); +this.commands=dojo.i18n.getLocalization("dijit._editor","commands",this.lang); +if(!this.toolbar){ +this.toolbar=new dijit.Toolbar({dir:this.dir,lang:this.lang}); +this.header.appendChild(this.toolbar.domNode); +} +dojo.forEach(this.plugins,this.addPlugin,this); +this.setValueDeferred.callback(true); +dojo.addClass(this.iframe.parentNode,"dijitEditorIFrameContainer"); +dojo.addClass(this.iframe,"dijitEditorIFrame"); +dojo.attr(this.iframe,"allowTransparency",true); +if(dojo.isWebKit){ +dojo.style(this.domNode,"KhtmlUserSelect","none"); +} +this.toolbar.startup(); +this.onNormalizedDisplayChanged(); +},destroy:function(){ +dojo.forEach(this._plugins,function(p){ +if(p&&p.destroy){ +p.destroy(); +} +}); +this._plugins=[]; +this.toolbar.destroyRecursive(); +delete this.toolbar; +this.inherited(arguments); +},addPlugin:function(_1,_2){ +var _3=dojo.isString(_1)?{name:_1}:_1; +if(!_3.setEditor){ +var o={"args":_3,"plugin":null,"editor":this}; +dojo.publish(dijit._scopeName+".Editor.getPlugin",[o]); +if(!o.plugin){ +var pc=dojo.getObject(_3.name); +if(pc){ +o.plugin=new pc(_3); +} +} +if(!o.plugin){ +console.warn("Cannot find plugin",_1); +return; +} +_1=o.plugin; +} +if(arguments.length>1){ +this._plugins[_2]=_1; +}else{ +this._plugins.push(_1); +} +_1.setEditor(this); +if(dojo.isFunction(_1.setToolbar)){ +_1.setToolbar(this.toolbar); +} +},startup:function(){ +},resize:function(_4){ +if(_4){ +dijit.layout._LayoutWidget.prototype.resize.apply(this,arguments); +} +},layout:function(){ +var _5=(this._contentBox.h-(this.getHeaderHeight()+this.getFooterHeight()+dojo._getPadBorderExtents(this.iframe.parentNode).h+dojo._getMarginExtents(this.iframe.parentNode).h)); +this.editingArea.style.height=_5+"px"; +if(this.iframe){ +this.iframe.style.height="100%"; +} +this._layoutMode=true; +},_onIEMouseDown:function(e){ +var _6; +var b=this.document.body; +var _7=b.clientWidth; +var _8=b.clientHeight; +var _9=b.clientLeft; +var _a=b.offsetWidth; +var _b=b.offsetHeight; +var _c=b.offsetLeft; +bodyDir=b.dir?b.dir.toLowerCase():""; +if(bodyDir!="rtl"){ +if(_7<_a&&e.x>_7&&e.x<_a){ +_6=true; +} +}else{ +if(e.x<_9&&e.x>_c){ +_6=true; +} +} +if(!_6){ +if(_8<_b&&e.y>_8&&e.y<_b){ +_6=true; +} +} +if(!_6){ +delete this._cursorToStart; +delete this._savedSelection; +if(e.target.tagName=="BODY"){ +setTimeout(dojo.hitch(this,"placeCursorAtEnd"),0); +} +this.inherited(arguments); +} +},onBeforeActivate:function(e){ +this._restoreSelection(); +},onBeforeDeactivate:function(e){ +if(this.customUndo){ +this.endEditing(true); +} +if(e.target.tagName!="BODY"){ +this._saveSelection(); +} +},customUndo:dojo.isIE||dojo.isWebKit,editActionInterval:3,beginEditing:function(_d){ +if(!this._inEditing){ +this._inEditing=true; +this._beginEditing(_d); +} +if(this.editActionInterval>0){ +if(this._editTimer){ +clearTimeout(this._editTimer); +} +this._editTimer=setTimeout(dojo.hitch(this,this.endEditing),this._editInterval); +} +},_steps:[],_undoedSteps:[],execCommand:function(_e){ +if(this.customUndo&&(_e=="undo"||_e=="redo")){ +return this[_e](); +}else{ +if(this.customUndo){ +this.endEditing(); +this._beginEditing(); +} +var r; +try{ +r=this.inherited("execCommand",arguments); +if(dojo.isWebKit&&_e=="paste"&&!r){ +throw {code:1011}; +} +} +catch(e){ +if(e.code==1011&&/copy|cut|paste/.test(_e)){ +var _f=dojo.string.substitute,_10={cut:"X",copy:"C",paste:"V"}; +alert(_f(this.commands.systemShortcut,[this.commands[_e],_f(this.commands[dojo.isMac?"appleKey":"ctrlKey"],[_10[_e]])])); +} +r=false; +} +if(this.customUndo){ +this._endEditing(); +} +return r; +} +},queryCommandEnabled:function(cmd){ +if(this.customUndo&&(cmd=="undo"||cmd=="redo")){ +return cmd=="undo"?(this._steps.length>1):(this._undoedSteps.length>0); +}else{ +return this.inherited("queryCommandEnabled",arguments); +} +},_moveToBookmark:function(b){ +var _11=b.mark; +var _12=b.mark; +var col=b.isCollapsed; +var r,_13,_14,sel; +if(_12){ +if(dojo.isIE){ +if(dojo.isArray(_12)){ +_11=[]; +dojo.forEach(_12,function(n){ +_11.push(dijit.range.getNode(n,this.editNode)); +},this); +dojo.withGlobal(this.window,"moveToBookmark",dijit,[{mark:_11,isCollapsed:col}]); +}else{ +if(_12.startContainer&&_12.endContainer){ +sel=dijit.range.getSelection(this.window); +if(sel&&sel.removeAllRanges){ +sel.removeAllRanges(); +r=dijit.range.create(this.window); +_13=dijit.range.getNode(_12.startContainer,this.editNode); +_14=dijit.range.getNode(_12.endContainer,this.editNode); +if(_13&&_14){ +r.setStart(_13,_12.startOffset); +r.setEnd(_14,_12.endOffset); +sel.addRange(r); +} +} +} +} +}else{ +sel=dijit.range.getSelection(this.window); +if(sel&&sel.removeAllRanges){ +sel.removeAllRanges(); +r=dijit.range.create(this.window); +_13=dijit.range.getNode(_12.startContainer,this.editNode); +_14=dijit.range.getNode(_12.endContainer,this.editNode); +if(_13&&_14){ +r.setStart(_13,_12.startOffset); +r.setEnd(_14,_12.endOffset); +sel.addRange(r); +} +} +} +} +},_changeToStep:function(_15,to){ +this.setValue(to.text); +var b=to.bookmark; +if(!b){ +return; +} +this._moveToBookmark(b); +},undo:function(){ +var ret=false; +if(!this._undoRedoActive){ +this._undoRedoActive=true; +this.endEditing(true); +var s=this._steps.pop(); +if(s&&this._steps.length>0){ +this.focus(); +this._changeToStep(s,this._steps[this._steps.length-1]); +this._undoedSteps.push(s); +this.onDisplayChanged(); +delete this._undoRedoActive; +ret=true; +} +delete this._undoRedoActive; +} +return ret; +},redo:function(){ +var ret=false; +if(!this._undoRedoActive){ +this._undoRedoActive=true; +this.endEditing(true); +var s=this._undoedSteps.pop(); +if(s&&this._steps.length>0){ +this.focus(); +this._changeToStep(this._steps[this._steps.length-1],s); +this._steps.push(s); +this.onDisplayChanged(); +ret=true; +} +delete this._undoRedoActive; +} +return ret; +},endEditing:function(_16){ +if(this._editTimer){ +clearTimeout(this._editTimer); +} +if(this._inEditing){ +this._endEditing(_16); +this._inEditing=false; +} +},_getBookmark:function(){ +var b=dojo.withGlobal(this.window,dijit.getBookmark); +var tmp=[]; +if(b&&b.mark){ +var _17=b.mark; +if(dojo.isIE){ +var sel=dijit.range.getSelection(this.window); +if(!dojo.isArray(_17)){ +if(sel){ +var _18; +if(sel.rangeCount){ +_18=sel.getRangeAt(0); +} +if(_18){ +b.mark=_18.cloneRange(); +}else{ +b.mark=dojo.withGlobal(this.window,dijit.getBookmark); +} +} +}else{ +dojo.forEach(b.mark,function(n){ +tmp.push(dijit.range.getIndex(n,this.editNode).o); +},this); +b.mark=tmp; +} +} +try{ +if(b.mark&&b.mark.startContainer){ +tmp=dijit.range.getIndex(b.mark.startContainer,this.editNode).o; +b.mark={startContainer:tmp,startOffset:b.mark.startOffset,endContainer:b.mark.endContainer===b.mark.startContainer?tmp:dijit.range.getIndex(b.mark.endContainer,this.editNode).o,endOffset:b.mark.endOffset}; +} +} +catch(e){ +b.mark=null; +} +} +return b; +},_beginEditing:function(cmd){ +if(this._steps.length===0){ +this._steps.push({"text":dijit._editor.getChildrenHtml(this.editNode),"bookmark":this._getBookmark()}); +} +},_endEditing:function(_19){ +var v=dijit._editor.getChildrenHtml(this.editNode); +this._undoedSteps=[]; +this._steps.push({text:v,bookmark:this._getBookmark()}); +},onKeyDown:function(e){ +if(!dojo.isIE&&!this.iframe&&e.keyCode==dojo.keys.TAB&&!this.tabIndent){ +this._saveSelection(); +} +if(!this.customUndo){ +this.inherited(arguments); +return; +} +var k=e.keyCode,ks=dojo.keys; +if(e.ctrlKey&&!e.altKey){ +if(k==90||k==122){ +dojo.stopEvent(e); +this.undo(); +return; +}else{ +if(k==89||k==121){ +dojo.stopEvent(e); +this.redo(); +return; +} +} +} +this.inherited(arguments); +switch(k){ +case ks.ENTER: +case ks.BACKSPACE: +case ks.DELETE: +this.beginEditing(); +break; +case 88: +case 86: +if(e.ctrlKey&&!e.altKey&&!e.metaKey){ +this.endEditing(); +if(e.keyCode==88){ +this.beginEditing("cut"); +setTimeout(dojo.hitch(this,this.endEditing),1); +}else{ +this.beginEditing("paste"); +setTimeout(dojo.hitch(this,this.endEditing),1); +} +break; +} +default: +if(!e.ctrlKey&&!e.altKey&&!e.metaKey&&(e.keyCode<dojo.keys.F1||e.keyCode>dojo.keys.F15)){ +this.beginEditing(); +break; +} +case ks.ALT: +this.endEditing(); +break; +case ks.UP_ARROW: +case ks.DOWN_ARROW: +case ks.LEFT_ARROW: +case ks.RIGHT_ARROW: +case ks.HOME: +case ks.END: +case ks.PAGE_UP: +case ks.PAGE_DOWN: +this.endEditing(true); +break; +case ks.CTRL: +case ks.SHIFT: +case ks.TAB: +break; +} +},_onBlur:function(){ +this.inherited("_onBlur",arguments); +this.endEditing(true); +},_saveSelection:function(){ +this._savedSelection=this._getBookmark(); +},_restoreSelection:function(){ +if(this._savedSelection){ +delete this._cursorToStart; +if(dojo.withGlobal(this.window,"isCollapsed",dijit)){ +this._moveToBookmark(this._savedSelection); +} +delete this._savedSelection; +} +},onClick:function(){ +this.endEditing(true); +this.inherited(arguments); +},_setDisabledAttr:function(_1a){ +if(!this.disabled&&_1a){ +this._buttonEnabledPlugins=dojo.filter(this._plugins,function(p){ +if(p&&p.button&&!p.button.get("disabled")){ +p.button.set("disabled",true); +return true; +} +return false; +}); +}else{ +if(this.disabled&&!_1a){ +dojo.forEach(this._buttonEnabledPlugins,function(p){ +p.button.attr("disabled",false); +p.updateState&&p.updateState(); +}); +} +} +this.inherited(arguments); +},_setStateClass:function(){ +this.inherited(arguments); +if(this.document&&this.document.body){ +dojo.style(this.document.body,"color",dojo.style(this.iframe,"color")); +} +}}); +dojo.subscribe(dijit._scopeName+".Editor.getPlugin",null,function(o){ +if(o.plugin){ +return; +} +var _1b=o.args,p; +var _1c=dijit._editor._Plugin; +var _1d=_1b.name; +switch(_1d){ +case "undo": +case "redo": +case "cut": +case "copy": +case "paste": +case "insertOrderedList": +case "insertUnorderedList": +case "indent": +case "outdent": +case "justifyCenter": +case "justifyFull": +case "justifyLeft": +case "justifyRight": +case "delete": +case "selectAll": +case "removeFormat": +case "unlink": +case "insertHorizontalRule": +p=new _1c({command:_1d}); +break; +case "bold": +case "italic": +case "underline": +case "strikethrough": +case "subscript": +case "superscript": +p=new _1c({buttonClass:dijit.form.ToggleButton,command:_1d}); +break; +case "|": +p=new _1c({button:new dijit.ToolbarSeparator(),setEditor:function(_1e){ +this.editor=_1e; +}}); +} +o.plugin=p; +}); +} diff --git a/lib/dijit/InlineEditBox.js b/lib/dijit/InlineEditBox.js new file mode 100644 index 000000000..5d26498a4 --- /dev/null +++ b/lib/dijit/InlineEditBox.js @@ -0,0 +1,231 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.InlineEditBox"]){ +dojo._hasResource["dijit.InlineEditBox"]=true; +dojo.provide("dijit.InlineEditBox"); +dojo.require("dojo.i18n"); +dojo.require("dijit._Widget"); +dojo.require("dijit._Container"); +dojo.require("dijit.form.Button"); +dojo.require("dijit.form.TextBox"); +dojo.requireLocalization("dijit","common",null,"ROOT,ar,ca,cs,da,de,el,es,fi,fr,he,hu,it,ja,ko,nb,nl,pl,pt,pt-pt,ro,ru,sk,sl,sv,th,tr,zh,zh-tw"); +dojo.declare("dijit.InlineEditBox",dijit._Widget,{editing:false,autoSave:true,buttonSave:"",buttonCancel:"",renderAsHtml:false,editor:"dijit.form.TextBox",editorWrapper:"dijit._InlineEditor",editorParams:{},onChange:function(_1){ +},onCancel:function(){ +},width:"100%",value:"",noValueIndicator:dojo.isIE<=6?"<span style='font-family: wingdings; text-decoration: underline;'> ✍ </span>":"<span style='text-decoration: underline;'> ✍ </span>",constructor:function(){ +this.editorParams={}; +},postMixInProperties:function(){ +this.inherited(arguments); +this.displayNode=this.srcNodeRef; +var _2={ondijitclick:"_onClick",onmouseover:"_onMouseOver",onmouseout:"_onMouseOut",onfocus:"_onMouseOver",onblur:"_onMouseOut"}; +for(var _3 in _2){ +this.connect(this.displayNode,_3,_2[_3]); +} +dijit.setWaiRole(this.displayNode,"button"); +if(!this.displayNode.getAttribute("tabIndex")){ +this.displayNode.setAttribute("tabIndex",0); +} +if(!this.value&&!("value" in this.params)){ +this.value=dojo.trim(this.renderAsHtml?this.displayNode.innerHTML:(this.displayNode.innerText||this.displayNode.textContent||"")); +} +if(!this.value){ +this.displayNode.innerHTML=this.noValueIndicator; +} +dojo.addClass(this.displayNode,"dijitInlineEditBoxDisplayMode"); +},setDisabled:function(_4){ +dojo.deprecated("dijit.InlineEditBox.setDisabled() is deprecated. Use set('disabled', bool) instead.","","2.0"); +this.set("disabled",_4); +},_setDisabledAttr:function(_5){ +this.disabled=_5; +dijit.setWaiState(this.domNode,"disabled",_5); +if(_5){ +this.displayNode.removeAttribute("tabIndex"); +}else{ +this.displayNode.setAttribute("tabIndex",0); +} +dojo.toggleClass(this.displayNode,"dijitInlineEditBoxDisplayModeDisabled",_5); +},_onMouseOver:function(){ +if(!this.disabled){ +dojo.addClass(this.displayNode,"dijitInlineEditBoxDisplayModeHover"); +} +},_onMouseOut:function(){ +dojo.removeClass(this.displayNode,"dijitInlineEditBoxDisplayModeHover"); +},_onClick:function(e){ +if(this.disabled){ +return; +} +if(e){ +dojo.stopEvent(e); +} +this._onMouseOut(); +setTimeout(dojo.hitch(this,"edit"),0); +},edit:function(){ +if(this.disabled||this.editing){ +return; +} +this.editing=true; +this._savedPosition=dojo.style(this.displayNode,"position")||"static"; +this._savedOpacity=dojo.style(this.displayNode,"opacity")||"1"; +this._savedTabIndex=dojo.attr(this.displayNode,"tabIndex")||"0"; +if(this.wrapperWidget){ +var ew=this.wrapperWidget.editWidget; +ew.set("displayedValue" in ew?"displayedValue":"value",this.value); +}else{ +var _6=dojo.create("span",null,this.domNode,"before"); +var _7=dojo.getObject(this.editorWrapper); +this.wrapperWidget=new _7({value:this.value,buttonSave:this.buttonSave,buttonCancel:this.buttonCancel,dir:this.dir,lang:this.lang,tabIndex:this._savedTabIndex,editor:this.editor,inlineEditBox:this,sourceStyle:dojo.getComputedStyle(this.displayNode),save:dojo.hitch(this,"save"),cancel:dojo.hitch(this,"cancel")},_6); +} +var ww=this.wrapperWidget; +if(dojo.isIE){ +dijit.focus(dijit.getFocus()); +} +dojo.style(this.displayNode,{position:"absolute",opacity:"0",display:"none"}); +dojo.style(ww.domNode,{position:this._savedPosition,visibility:"visible",opacity:"1"}); +dojo.attr(this.displayNode,"tabIndex","-1"); +setTimeout(dojo.hitch(this,function(){ +ww.focus(); +ww._resetValue=ww.getValue(); +}),0); +},_onBlur:function(){ +this.inherited(arguments); +if(!this.editing){ +} +},destroy:function(){ +if(this.wrapperWidget){ +this.wrapperWidget.destroy(); +delete this.wrapperWidget; +} +this.inherited(arguments); +},_showText:function(_8){ +var ww=this.wrapperWidget; +dojo.style(ww.domNode,{position:"absolute",visibility:"hidden",opacity:"0"}); +dojo.style(this.displayNode,{position:this._savedPosition,opacity:this._savedOpacity,display:""}); +dojo.attr(this.displayNode,"tabIndex",this._savedTabIndex); +if(_8){ +dijit.focus(this.displayNode); +} +},save:function(_9){ +if(this.disabled||!this.editing){ +return; +} +this.editing=false; +var ww=this.wrapperWidget; +var _a=ww.getValue(); +this.set("value",_a); +setTimeout(dojo.hitch(this,"onChange",_a),0); +this._showText(_9); +},setValue:function(_b){ +dojo.deprecated("dijit.InlineEditBox.setValue() is deprecated. Use set('value', ...) instead.","","2.0"); +return this.set("value",_b); +},_setValueAttr:function(_c){ +this.value=_c=dojo.trim(_c); +if(!this.renderAsHtml){ +_c=_c.replace(/&/gm,"&").replace(/</gm,"<").replace(/>/gm,">").replace(/"/gm,""").replace(/\n/g,"<br>"); +} +this.displayNode.innerHTML=_c||this.noValueIndicator; +},getValue:function(){ +dojo.deprecated("dijit.InlineEditBox.getValue() is deprecated. Use get('value') instead.","","2.0"); +return this.get("value"); +},cancel:function(_d){ +if(this.disabled||!this.editing){ +return; +} +this.editing=false; +setTimeout(dojo.hitch(this,"onCancel"),0); +this._showText(_d); +}}); +dojo.declare("dijit._InlineEditor",[dijit._Widget,dijit._Templated],{templateString:dojo.cache("dijit","templates/InlineEditBox.html","<span dojoAttachPoint=\"editNode\" waiRole=\"presentation\" style=\"position: absolute; visibility:hidden\" class=\"dijitReset dijitInline\"\n\tdojoAttachEvent=\"onkeypress: _onKeyPress\"\n\t><span dojoAttachPoint=\"editorPlaceholder\"></span\n\t><span dojoAttachPoint=\"buttonContainer\"\n\t\t><button class='saveButton' dojoAttachPoint=\"saveButton\" dojoType=\"dijit.form.Button\" dojoAttachEvent=\"onClick:save\" label=\"${buttonSave}\"></button\n\t\t><button class='cancelButton' dojoAttachPoint=\"cancelButton\" dojoType=\"dijit.form.Button\" dojoAttachEvent=\"onClick:cancel\" label=\"${buttonCancel}\"></button\n\t></span\n></span>\n"),widgetsInTemplate:true,postMixInProperties:function(){ +this.inherited(arguments); +this.messages=dojo.i18n.getLocalization("dijit","common",this.lang); +dojo.forEach(["buttonSave","buttonCancel"],function(_e){ +if(!this[_e]){ +this[_e]=this.messages[_e]; +} +},this); +},postCreate:function(){ +var _f=dojo.getObject(this.editor); +var _10=this.sourceStyle,_11="line-height:"+_10.lineHeight+";",_12=dojo.getComputedStyle(this.domNode); +dojo.forEach(["Weight","Family","Size","Style"],function(_13){ +var _14=_10["font"+_13],_15=_12["font"+_13]; +if(_15!=_14){ +_11+="font-"+_13+":"+_10["font"+_13]+";"; +} +},this); +dojo.forEach(["marginTop","marginBottom","marginLeft","marginRight"],function(_16){ +this.domNode.style[_16]=_10[_16]; +},this); +var _17=this.inlineEditBox.width; +if(_17=="100%"){ +_11+="width:100%;"; +this.domNode.style.display="block"; +}else{ +_11+="width:"+(_17+(Number(_17)==_17?"px":""))+";"; +} +var _18=dojo.delegate(this.inlineEditBox.editorParams,{style:_11,dir:this.dir,lang:this.lang}); +_18["displayedValue" in _f.prototype?"displayedValue":"value"]=this.value; +var ew=(this.editWidget=new _f(_18,this.editorPlaceholder)); +if(this.inlineEditBox.autoSave){ +dojo.destroy(this.buttonContainer); +this.connect(ew,"onChange","_onChange"); +this.connect(ew,"onKeyPress","_onKeyPress"); +}else{ +if("intermediateChanges" in _f.prototype){ +ew.set("intermediateChanges",true); +this.connect(ew,"onChange","_onIntermediateChange"); +this.saveButton.set("disabled",true); +} +} +},_onIntermediateChange:function(val){ +this.saveButton.set("disabled",(this.getValue()==this._resetValue)||!this.enableSave()); +},destroy:function(){ +this.editWidget.destroy(true); +this.inherited(arguments); +},getValue:function(){ +var ew=this.editWidget; +return String(ew.get("displayedValue" in ew?"displayedValue":"value")); +},_onKeyPress:function(e){ +if(this.inlineEditBox.autoSave&&this.inlineEditBox.editing){ +if(e.altKey||e.ctrlKey){ +return; +} +if(e.charOrCode==dojo.keys.ESCAPE){ +dojo.stopEvent(e); +this.cancel(true); +}else{ +if(e.charOrCode==dojo.keys.ENTER&&e.target.tagName=="INPUT"){ +dojo.stopEvent(e); +this._onChange(); +} +} +} +},_onBlur:function(){ +this.inherited(arguments); +if(this.inlineEditBox.autoSave&&this.inlineEditBox.editing){ +if(this.getValue()==this._resetValue){ +this.cancel(false); +}else{ +if(this.enableSave()){ +this.save(false); +} +} +} +},_onChange:function(){ +if(this.inlineEditBox.autoSave&&this.inlineEditBox.editing&&this.enableSave()){ +dojo.style(this.inlineEditBox.displayNode,{display:""}); +dijit.focus(this.inlineEditBox.displayNode); +} +},enableSave:function(){ +return (this.editWidget.isValid?this.editWidget.isValid():true); +},focus:function(){ +this.editWidget.focus(); +setTimeout(dojo.hitch(this,function(){ +if(this.editWidget.focusNode&&this.editWidget.focusNode.tagName=="INPUT"){ +dijit.selectInputText(this.editWidget.focusNode); +} +}),0); +}}); +} diff --git a/lib/dijit/LICENSE b/lib/dijit/LICENSE new file mode 100644 index 000000000..4c93ded6b --- /dev/null +++ b/lib/dijit/LICENSE @@ -0,0 +1,195 @@ +Dojo is available under *either* the terms of the modified BSD license *or* the +Academic Free License version 2.1. As a recipient of Dojo, you may choose which +license to receive this code under (except as noted in per-module LICENSE +files). Some modules may not be the copyright of the Dojo Foundation. These +modules contain explicit declarations of copyright in both the LICENSE files in +the directories in which they reside and in the code itself. No external +contributions are allowed under licenses which are fundamentally incompatible +with the AFL or BSD licenses that Dojo is distributed under. + +The text of the AFL and BSD licenses is reproduced below. + +------------------------------------------------------------------------------- +The "New" BSD License: +********************** + +Copyright (c) 2005-2010, The Dojo Foundation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of the Dojo Foundation nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +------------------------------------------------------------------------------- +The Academic Free License, v. 2.1: +********************************** + +This Academic Free License (the "License") applies to any original work of +authorship (the "Original Work") whose owner (the "Licensor") has placed the +following notice immediately following the copyright notice for the Original +Work: + +Licensed under the Academic Free License version 2.1 + +1) Grant of Copyright License. Licensor hereby grants You a world-wide, +royalty-free, non-exclusive, perpetual, sublicenseable license to do the +following: + +a) to reproduce the Original Work in copies; + +b) to prepare derivative works ("Derivative Works") based upon the Original +Work; + +c) to distribute copies of the Original Work and Derivative Works to the +public; + +d) to perform the Original Work publicly; and + +e) to display the Original Work publicly. + +2) Grant of Patent License. Licensor hereby grants You a world-wide, +royalty-free, non-exclusive, perpetual, sublicenseable license, under patent +claims owned or controlled by the Licensor that are embodied in the Original +Work as furnished by the Licensor, to make, use, sell and offer for sale the +Original Work and Derivative Works. + +3) Grant of Source Code License. The term "Source Code" means the preferred +form of the Original Work for making modifications to it and all available +documentation describing how to modify the Original Work. Licensor hereby +agrees to provide a machine-readable copy of the Source Code of the Original +Work along with each copy of the Original Work that Licensor distributes. +Licensor reserves the right to satisfy this obligation by placing a +machine-readable copy of the Source Code in an information repository +reasonably calculated to permit inexpensive and convenient access by You for as +long as Licensor continues to distribute the Original Work, and by publishing +the address of that information repository in a notice immediately following +the copyright notice that applies to the Original Work. + +4) Exclusions From License Grant. Neither the names of Licensor, nor the names +of any contributors to the Original Work, nor any of their trademarks or +service marks, may be used to endorse or promote products derived from this +Original Work without express prior written permission of the Licensor. Nothing +in this License shall be deemed to grant any rights to trademarks, copyrights, +patents, trade secrets or any other intellectual property of Licensor except as +expressly stated herein. No patent license is granted to make, use, sell or +offer to sell embodiments of any patent claims other than the licensed claims +defined in Section 2. No right is granted to the trademarks of Licensor even if +such marks are included in the Original Work. Nothing in this License shall be +interpreted to prohibit Licensor from licensing under different terms from this +License any Original Work that Licensor otherwise would have a right to +license. + +5) This section intentionally omitted. + +6) Attribution Rights. You must retain, in the Source Code of any Derivative +Works that You create, all copyright, patent or trademark notices from the +Source Code of the Original Work, as well as any notices of licensing and any +descriptive text identified therein as an "Attribution Notice." You must cause +the Source Code for any Derivative Works that You create to carry a prominent +Attribution Notice reasonably calculated to inform recipients that You have +modified the Original Work. + +7) Warranty of Provenance and Disclaimer of Warranty. Licensor warrants that +the copyright in and to the Original Work and the patent rights granted herein +by Licensor are owned by the Licensor or are sublicensed to You under the terms +of this License with the permission of the contributor(s) of those copyrights +and patent rights. Except as expressly stated in the immediately proceeding +sentence, the Original Work is provided under this License on an "AS IS" BASIS +and WITHOUT WARRANTY, either express or implied, including, without limitation, +the warranties of NON-INFRINGEMENT, MERCHANTABILITY or FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY OF THE ORIGINAL WORK IS WITH YOU. +This DISCLAIMER OF WARRANTY constitutes an essential part of this License. No +license to Original Work is granted hereunder except under this disclaimer. + +8) Limitation of Liability. Under no circumstances and under no legal theory, +whether in tort (including negligence), contract, or otherwise, shall the +Licensor be liable to any person for any direct, indirect, special, incidental, +or consequential damages of any character arising as a result of this License +or the use of the Original Work including, without limitation, damages for loss +of goodwill, work stoppage, computer failure or malfunction, or any and all +other commercial damages or losses. This limitation of liability shall not +apply to liability for death or personal injury resulting from Licensor's +negligence to the extent applicable law prohibits such limitation. Some +jurisdictions do not allow the exclusion or limitation of incidental or +consequential damages, so this exclusion and limitation may not apply to You. + +9) Acceptance and Termination. If You distribute copies of the Original Work or +a Derivative Work, You must make a reasonable effort under the circumstances to +obtain the express assent of recipients to the terms of this License. Nothing +else but this License (or another written agreement between Licensor and You) +grants You permission to create Derivative Works based upon the Original Work +or to exercise any of the rights granted in Section 1 herein, and any attempt +to do so except under the terms of this License (or another written agreement +between Licensor and You) is expressly prohibited by U.S. copyright law, the +equivalent laws of other countries, and by international treaty. Therefore, by +exercising any of the rights granted to You in Section 1 herein, You indicate +Your acceptance of this License and all of its terms and conditions. + +10) Termination for Patent Action. This License shall terminate automatically +and You may no longer exercise any of the rights granted to You by this License +as of the date You commence an action, including a cross-claim or counterclaim, +against Licensor or any licensee alleging that the Original Work infringes a +patent. This termination provision shall not apply for an action alleging +patent infringement by combinations of the Original Work with other software or +hardware. + +11) Jurisdiction, Venue and Governing Law. Any action or suit relating to this +License may be brought only in the courts of a jurisdiction wherein the +Licensor resides or in which Licensor conducts its primary business, and under +the laws of that jurisdiction excluding its conflict-of-law provisions. The +application of the United Nations Convention on Contracts for the International +Sale of Goods is expressly excluded. Any use of the Original Work outside the +scope of this License or after its termination shall be subject to the +requirements and penalties of the U.S. Copyright Act, 17 U.S.C. § 101 et +seq., the equivalent laws of other countries, and international treaty. This +section shall survive the termination of this License. + +12) Attorneys Fees. In any action to enforce the terms of this License or +seeking damages relating thereto, the prevailing party shall be entitled to +recover its costs and expenses, including, without limitation, reasonable +attorneys' fees and costs incurred in connection with such action, including +any appeal of such action. This section shall survive the termination of this +License. + +13) Miscellaneous. This License represents the complete agreement concerning +the subject matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent necessary to +make it enforceable. + +14) Definition of "You" in This License. "You" throughout this License, whether +in upper or lower case, means an individual or a legal entity exercising rights +under, and complying with all of the terms of, this License. For legal +entities, "You" includes any entity that controls, is controlled by, or is +under common control with you. For purposes of this definition, "control" means +(i) the power, direct or indirect, to cause the direction or management of such +entity, whether by contract or otherwise, or (ii) ownership of fifty percent +(50%) or more of the outstanding shares, or (iii) beneficial ownership of such +entity. + +15) Right to Use. You may use the Original Work in all ways not otherwise +restricted or conditioned by this License or by law, and Licensor promises not +to interfere with or be responsible for such uses by You. + +This license is Copyright (C) 2003-2004 Lawrence E. Rosen. All rights reserved. +Permission is hereby granted to copy and distribute this license without +modification. This license may not be modified without the express written +permission of its copyright owner. diff --git a/lib/dijit/Menu.js b/lib/dijit/Menu.js new file mode 100644 index 000000000..83a2ddbad --- /dev/null +++ b/lib/dijit/Menu.js @@ -0,0 +1,325 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.Menu"]){ +dojo._hasResource["dijit.Menu"]=true; +dojo.provide("dijit.Menu"); +dojo.require("dojo.window"); +dojo.require("dijit._Widget"); +dojo.require("dijit._KeyNavContainer"); +dojo.require("dijit._Templated"); +dojo.declare("dijit._MenuBase",[dijit._Widget,dijit._Templated,dijit._KeyNavContainer],{parentMenu:null,popupDelay:500,startup:function(){ +if(this._started){ +return; +} +dojo.forEach(this.getChildren(),function(_1){ +_1.startup(); +}); +this.startupKeyNavChildren(); +this.inherited(arguments); +},onExecute:function(){ +},onCancel:function(_2){ +},_moveToPopup:function(_3){ +if(this.focusedChild&&this.focusedChild.popup&&!this.focusedChild.disabled){ +this.focusedChild._onClick(_3); +}else{ +var _4=this._getTopMenu(); +if(_4&&_4._isMenuBar){ +_4.focusNext(); +} +} +},_onPopupHover:function(_5){ +if(this.currentPopup&&this.currentPopup._pendingClose_timer){ +var _6=this.currentPopup.parentMenu; +if(_6.focusedChild){ +_6.focusedChild._setSelected(false); +} +_6.focusedChild=this.currentPopup.from_item; +_6.focusedChild._setSelected(true); +this._stopPendingCloseTimer(this.currentPopup); +} +},onItemHover:function(_7){ +if(this.isActive){ +this.focusChild(_7); +if(this.focusedChild.popup&&!this.focusedChild.disabled&&!this.hover_timer){ +this.hover_timer=setTimeout(dojo.hitch(this,"_openPopup"),this.popupDelay); +} +} +if(this.focusedChild){ +this.focusChild(_7); +} +this._hoveredChild=_7; +},_onChildBlur:function(_8){ +this._stopPopupTimer(); +_8._setSelected(false); +var _9=_8.popup; +if(_9){ +this._stopPendingCloseTimer(_9); +_9._pendingClose_timer=setTimeout(function(){ +_9._pendingClose_timer=null; +if(_9.parentMenu){ +_9.parentMenu.currentPopup=null; +} +dijit.popup.close(_9); +},this.popupDelay); +} +},onItemUnhover:function(_a){ +if(this.isActive){ +this._stopPopupTimer(); +} +if(this._hoveredChild==_a){ +this._hoveredChild=null; +} +},_stopPopupTimer:function(){ +if(this.hover_timer){ +clearTimeout(this.hover_timer); +this.hover_timer=null; +} +},_stopPendingCloseTimer:function(_b){ +if(_b._pendingClose_timer){ +clearTimeout(_b._pendingClose_timer); +_b._pendingClose_timer=null; +} +},_stopFocusTimer:function(){ +if(this._focus_timer){ +clearTimeout(this._focus_timer); +this._focus_timer=null; +} +},_getTopMenu:function(){ +for(var _c=this;_c.parentMenu;_c=_c.parentMenu){ +} +return _c; +},onItemClick:function(_d,_e){ +if(typeof this.isShowingNow=="undefined"){ +this._markActive(); +} +this.focusChild(_d); +if(_d.disabled){ +return false; +} +if(_d.popup){ +this._openPopup(); +}else{ +this.onExecute(); +_d.onClick(_e); +} +},_openPopup:function(){ +this._stopPopupTimer(); +var _f=this.focusedChild; +if(!_f){ +return; +} +var _10=_f.popup; +if(_10.isShowingNow){ +return; +} +if(this.currentPopup){ +this._stopPendingCloseTimer(this.currentPopup); +dijit.popup.close(this.currentPopup); +} +_10.parentMenu=this; +_10.from_item=_f; +var _11=this; +dijit.popup.open({parent:this,popup:_10,around:_f.domNode,orient:this._orient||(this.isLeftToRight()?{"TR":"TL","TL":"TR","BR":"BL","BL":"BR"}:{"TL":"TR","TR":"TL","BL":"BR","BR":"BL"}),onCancel:function(){ +_11.focusChild(_f); +_11._cleanUp(); +_f._setSelected(true); +_11.focusedChild=_f; +},onExecute:dojo.hitch(this,"_cleanUp")}); +this.currentPopup=_10; +_10.connect(_10.domNode,"onmouseenter",dojo.hitch(_11,"_onPopupHover")); +if(_10.focus){ +_10._focus_timer=setTimeout(dojo.hitch(_10,function(){ +this._focus_timer=null; +this.focus(); +}),0); +} +},_markActive:function(){ +this.isActive=true; +dojo.addClass(this.domNode,"dijitMenuActive"); +dojo.removeClass(this.domNode,"dijitMenuPassive"); +},onOpen:function(e){ +this.isShowingNow=true; +this._markActive(); +},_markInactive:function(){ +this.isActive=false; +dojo.removeClass(this.domNode,"dijitMenuActive"); +dojo.addClass(this.domNode,"dijitMenuPassive"); +},onClose:function(){ +this._stopFocusTimer(); +this._markInactive(); +this.isShowingNow=false; +this.parentMenu=null; +},_closeChild:function(){ +this._stopPopupTimer(); +if(this.focusedChild){ +this.focusedChild._setSelected(false); +this.focusedChild._onUnhover(); +this.focusedChild=null; +} +if(this.currentPopup){ +dijit.popup.close(this.currentPopup); +this.currentPopup=null; +} +},_onItemFocus:function(_12){ +if(this._hoveredChild&&this._hoveredChild!=_12){ +this._hoveredChild._onUnhover(); +} +},_onBlur:function(){ +this._cleanUp(); +this.inherited(arguments); +},_cleanUp:function(){ +this._closeChild(); +if(typeof this.isShowingNow=="undefined"){ +this._markInactive(); +} +}}); +dojo.declare("dijit.Menu",dijit._MenuBase,{constructor:function(){ +this._bindings=[]; +},templateString:dojo.cache("dijit","templates/Menu.html","<table class=\"dijit dijitMenu dijitMenuPassive dijitReset dijitMenuTable\" waiRole=\"menu\" tabIndex=\"${tabIndex}\" dojoAttachEvent=\"onkeypress:_onKeyPress\" cellspacing=0>\n\t<tbody class=\"dijitReset\" dojoAttachPoint=\"containerNode\"></tbody>\n</table>\n"),baseClass:"dijitMenu",targetNodeIds:[],contextMenuForWindow:false,leftClickToOpen:false,refocus:true,postCreate:function(){ +if(this.contextMenuForWindow){ +this.bindDomNode(dojo.body()); +}else{ +dojo.forEach(this.targetNodeIds,this.bindDomNode,this); +} +var k=dojo.keys,l=this.isLeftToRight(); +this._openSubMenuKey=l?k.RIGHT_ARROW:k.LEFT_ARROW; +this._closeSubMenuKey=l?k.LEFT_ARROW:k.RIGHT_ARROW; +this.connectKeyNavHandlers([k.UP_ARROW],[k.DOWN_ARROW]); +},_onKeyPress:function(evt){ +if(evt.ctrlKey||evt.altKey){ +return; +} +switch(evt.charOrCode){ +case this._openSubMenuKey: +this._moveToPopup(evt); +dojo.stopEvent(evt); +break; +case this._closeSubMenuKey: +if(this.parentMenu){ +if(this.parentMenu._isMenuBar){ +this.parentMenu.focusPrev(); +}else{ +this.onCancel(false); +} +}else{ +dojo.stopEvent(evt); +} +break; +} +},_iframeContentWindow:function(_13){ +var win=dojo.window.get(this._iframeContentDocument(_13))||this._iframeContentDocument(_13)["__parent__"]||(_13.name&&dojo.doc.frames[_13.name])||null; +return win; +},_iframeContentDocument:function(_14){ +var doc=_14.contentDocument||(_14.contentWindow&&_14.contentWindow.document)||(_14.name&&dojo.doc.frames[_14.name]&&dojo.doc.frames[_14.name].document)||null; +return doc; +},bindDomNode:function(_15){ +_15=dojo.byId(_15); +var cn; +if(_15.tagName.toLowerCase()=="iframe"){ +var _16=_15,win=this._iframeContentWindow(_16); +cn=dojo.withGlobal(win,dojo.body); +}else{ +cn=(_15==dojo.body()?dojo.doc.documentElement:_15); +} +var _17={node:_15,iframe:_16}; +dojo.attr(_15,"_dijitMenu"+this.id,this._bindings.push(_17)); +var _18=dojo.hitch(this,function(cn){ +return [dojo.connect(cn,this.leftClickToOpen?"onclick":"oncontextmenu",this,function(evt){ +dojo.stopEvent(evt); +this._scheduleOpen(evt.target,_16,{x:evt.pageX,y:evt.pageY}); +}),dojo.connect(cn,"onkeydown",this,function(evt){ +if(evt.shiftKey&&evt.keyCode==dojo.keys.F10){ +dojo.stopEvent(evt); +this._scheduleOpen(evt.target,_16); +} +})]; +}); +_17.connects=cn?_18(cn):[]; +if(_16){ +_17.onloadHandler=dojo.hitch(this,function(){ +var win=this._iframeContentWindow(_16); +cn=dojo.withGlobal(win,dojo.body); +_17.connects=_18(cn); +}); +if(_16.addEventListener){ +_16.addEventListener("load",_17.onloadHandler,false); +}else{ +_16.attachEvent("onload",_17.onloadHandler); +} +} +},unBindDomNode:function(_19){ +var _1a; +try{ +_1a=dojo.byId(_19); +} +catch(e){ +return; +} +var _1b="_dijitMenu"+this.id; +if(_1a&&dojo.hasAttr(_1a,_1b)){ +var bid=dojo.attr(_1a,_1b)-1,b=this._bindings[bid]; +dojo.forEach(b.connects,dojo.disconnect); +var _1c=b.iframe; +if(_1c){ +if(_1c.removeEventListener){ +_1c.removeEventListener("load",b.onloadHandler,false); +}else{ +_1c.detachEvent("onload",b.onloadHandler); +} +} +dojo.removeAttr(_1a,_1b); +delete this._bindings[bid]; +} +},_scheduleOpen:function(_1d,_1e,_1f){ +if(!this._openTimer){ +this._openTimer=setTimeout(dojo.hitch(this,function(){ +delete this._openTimer; +this._openMyself({target:_1d,iframe:_1e,coords:_1f}); +}),1); +} +},_openMyself:function(_20){ +var _21=_20.target,_22=_20.iframe,_23=_20.coords; +if(_23){ +if(_22){ +var od=_21.ownerDocument,ifc=dojo.position(_22,true),win=this._iframeContentWindow(_22),_24=dojo.withGlobal(win,"_docScroll",dojo); +var cs=dojo.getComputedStyle(_22),tp=dojo._toPixelValue,_25=(dojo.isIE&&dojo.isQuirks?0:tp(_22,cs.paddingLeft))+(dojo.isIE&&dojo.isQuirks?tp(_22,cs.borderLeftWidth):0),top=(dojo.isIE&&dojo.isQuirks?0:tp(_22,cs.paddingTop))+(dojo.isIE&&dojo.isQuirks?tp(_22,cs.borderTopWidth):0); +_23.x+=ifc.x+_25-_24.x; +_23.y+=ifc.y+top-_24.y; +} +}else{ +_23=dojo.position(_21,true); +_23.x+=10; +_23.y+=10; +} +var _26=this; +var _27=dijit.getFocus(this); +function _28(){ +if(_26.refocus){ +dijit.focus(_27); +} +dijit.popup.close(_26); +}; +dijit.popup.open({popup:this,x:_23.x,y:_23.y,onExecute:_28,onCancel:_28,orient:this.isLeftToRight()?"L":"R"}); +this.focus(); +this._onBlur=function(){ +this.inherited("_onBlur",arguments); +dijit.popup.close(this); +}; +},uninitialize:function(){ +dojo.forEach(this._bindings,function(b){ +if(b){ +this.unBindDomNode(b.node); +} +},this); +this.inherited(arguments); +}}); +dojo.require("dijit.MenuItem"); +dojo.require("dijit.PopupMenuItem"); +dojo.require("dijit.CheckedMenuItem"); +dojo.require("dijit.MenuSeparator"); +} diff --git a/lib/dijit/MenuBar.js b/lib/dijit/MenuBar.js new file mode 100644 index 000000000..d7eb35438 --- /dev/null +++ b/lib/dijit/MenuBar.js @@ -0,0 +1,38 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.MenuBar"]){ +dojo._hasResource["dijit.MenuBar"]=true; +dojo.provide("dijit.MenuBar"); +dojo.require("dijit.Menu"); +dojo.declare("dijit.MenuBar",dijit._MenuBase,{templateString:dojo.cache("dijit","templates/MenuBar.html","<div class=\"dijitMenuBar dijitMenuPassive\" dojoAttachPoint=\"containerNode\" waiRole=\"menubar\" tabIndex=\"${tabIndex}\" dojoAttachEvent=\"onkeypress: _onKeyPress\"></div>\n"),baseClass:"dijitMenuBar",_isMenuBar:true,postCreate:function(){ +var k=dojo.keys,l=this.isLeftToRight(); +this.connectKeyNavHandlers(l?[k.LEFT_ARROW]:[k.RIGHT_ARROW],l?[k.RIGHT_ARROW]:[k.LEFT_ARROW]); +this._orient=this.isLeftToRight()?{BL:"TL"}:{BR:"TR"}; +},focusChild:function(_1){ +var _2=this.focusedChild,_3=_2&&_2.popup&&_2.popup.isShowingNow; +this.inherited(arguments); +if(_3&&_1.popup&&!_1.disabled){ +this._openPopup(); +} +},_onKeyPress:function(_4){ +if(_4.ctrlKey||_4.altKey){ +return; +} +switch(_4.charOrCode){ +case dojo.keys.DOWN_ARROW: +this._moveToPopup(_4); +dojo.stopEvent(_4); +} +},onItemClick:function(_5,_6){ +if(_5.popup&&_5.popup.isShowingNow){ +_5.popup.onCancel(); +}else{ +this.inherited(arguments); +} +}}); +} diff --git a/lib/dijit/MenuBarItem.js b/lib/dijit/MenuBarItem.js new file mode 100644 index 000000000..77088bff2 --- /dev/null +++ b/lib/dijit/MenuBarItem.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.MenuBarItem"]){ +dojo._hasResource["dijit.MenuBarItem"]=true; +dojo.provide("dijit.MenuBarItem"); +dojo.require("dijit.MenuItem"); +dojo.declare("dijit._MenuBarItemMixin",null,{templateString:dojo.cache("dijit","templates/MenuBarItem.html","<div class=\"dijitReset dijitInline dijitMenuItem dijitMenuItemLabel\" dojoAttachPoint=\"focusNode\" waiRole=\"menuitem\" tabIndex=\"-1\"\n\t\tdojoAttachEvent=\"onmouseenter:_onHover,onmouseleave:_onUnhover,ondijitclick:_onClick\">\n\t<span dojoAttachPoint=\"containerNode\"></span>\n</div>\n"),attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{label:{node:"containerNode",type:"innerHTML"}})}); +dojo.declare("dijit.MenuBarItem",[dijit.MenuItem,dijit._MenuBarItemMixin],{}); +} diff --git a/lib/dijit/MenuItem.js b/lib/dijit/MenuItem.js new file mode 100644 index 000000000..1f890b5f4 --- /dev/null +++ b/lib/dijit/MenuItem.js @@ -0,0 +1,69 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.MenuItem"]){ +dojo._hasResource["dijit.MenuItem"]=true; +dojo.provide("dijit.MenuItem"); +dojo.require("dijit._Widget"); +dojo.require("dijit._Templated"); +dojo.require("dijit._Contained"); +dojo.require("dijit._CssStateMixin"); +dojo.declare("dijit.MenuItem",[dijit._Widget,dijit._Templated,dijit._Contained,dijit._CssStateMixin],{templateString:dojo.cache("dijit","templates/MenuItem.html","<tr class=\"dijitReset dijitMenuItem\" dojoAttachPoint=\"focusNode\" waiRole=\"menuitem\" tabIndex=\"-1\"\n\t\tdojoAttachEvent=\"onmouseenter:_onHover,onmouseleave:_onUnhover,ondijitclick:_onClick\">\n\t<td class=\"dijitReset dijitMenuItemIconCell\" waiRole=\"presentation\">\n\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon dijitMenuItemIcon\" dojoAttachPoint=\"iconNode\"/>\n\t</td>\n\t<td class=\"dijitReset dijitMenuItemLabel\" colspan=\"2\" dojoAttachPoint=\"containerNode\"></td>\n\t<td class=\"dijitReset dijitMenuItemAccelKey\" style=\"display: none\" dojoAttachPoint=\"accelKeyNode\"></td>\n\t<td class=\"dijitReset dijitMenuArrowCell\" waiRole=\"presentation\">\n\t\t<div dojoAttachPoint=\"arrowWrapper\" style=\"visibility: hidden\">\n\t\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitMenuExpand\"/>\n\t\t\t<span class=\"dijitMenuExpandA11y\">+</span>\n\t\t</div>\n\t</td>\n</tr>\n"),attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{label:{node:"containerNode",type:"innerHTML"},iconClass:{node:"iconNode",type:"class"}}),baseClass:"dijitMenuItem",label:"",iconClass:"",accelKey:"",disabled:false,_fillContent:function(_1){ +if(_1&&!("label" in this.params)){ +this.set("label",_1.innerHTML); +} +},postCreate:function(){ +this.inherited(arguments); +dojo.setSelectable(this.domNode,false); +var _2=this.id+"_text"; +dojo.attr(this.containerNode,"id",_2); +if(this.accelKeyNode){ +dojo.attr(this.accelKeyNode,"id",this.id+"_accel"); +_2+=" "+this.id+"_accel"; +} +dijit.setWaiState(this.domNode,"labelledby",_2); +},_onHover:function(){ +this.getParent().onItemHover(this); +},_onUnhover:function(){ +this.getParent().onItemUnhover(this); +this._hovering=false; +this._setStateClass(); +},_onClick:function(_3){ +this.getParent().onItemClick(this,_3); +dojo.stopEvent(_3); +},onClick:function(_4){ +},focus:function(){ +try{ +if(dojo.isIE==8){ +this.containerNode.focus(); +} +dijit.focus(this.focusNode); +} +catch(e){ +} +},_onFocus:function(){ +this._setSelected(true); +this.getParent()._onItemFocus(this); +this.inherited(arguments); +},_setSelected:function(_5){ +dojo.toggleClass(this.domNode,"dijitMenuItemSelected",_5); +},setLabel:function(_6){ +dojo.deprecated("dijit.MenuItem.setLabel() is deprecated. Use set('label', ...) instead.","","2.0"); +this.set("label",_6); +},setDisabled:function(_7){ +dojo.deprecated("dijit.Menu.setDisabled() is deprecated. Use set('disabled', bool) instead.","","2.0"); +this.set("disabled",_7); +},_setDisabledAttr:function(_8){ +this.disabled=_8; +dijit.setWaiState(this.focusNode,"disabled",_8?"true":"false"); +},_setAccelKeyAttr:function(_9){ +this.accelKey=_9; +this.accelKeyNode.style.display=_9?"":"none"; +this.accelKeyNode.innerHTML=_9; +dojo.attr(this.containerNode,"colSpan",_9?"1":"2"); +}}); +} diff --git a/lib/dijit/MenuSeparator.js b/lib/dijit/MenuSeparator.js new file mode 100644 index 000000000..34fa0bada --- /dev/null +++ b/lib/dijit/MenuSeparator.js @@ -0,0 +1,19 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.MenuSeparator"]){ +dojo._hasResource["dijit.MenuSeparator"]=true; +dojo.provide("dijit.MenuSeparator"); +dojo.require("dijit._Widget"); +dojo.require("dijit._Templated"); +dojo.require("dijit._Contained"); +dojo.declare("dijit.MenuSeparator",[dijit._Widget,dijit._Templated,dijit._Contained],{templateString:dojo.cache("dijit","templates/MenuSeparator.html","<tr class=\"dijitMenuSeparator\">\n\t<td class=\"dijitMenuSeparatorIconCell\">\n\t\t<div class=\"dijitMenuSeparatorTop\"></div>\n\t\t<div class=\"dijitMenuSeparatorBottom\"></div>\n\t</td>\n\t<td colspan=\"3\" class=\"dijitMenuSeparatorLabelCell\">\n\t\t<div class=\"dijitMenuSeparatorTop dijitMenuSeparatorLabel\"></div>\n\t\t<div class=\"dijitMenuSeparatorBottom\"></div>\n\t</td>\n</tr>\n"),postCreate:function(){ +dojo.setSelectable(this.domNode,false); +},isFocusable:function(){ +return false; +}}); +} diff --git a/lib/dijit/PopupMenuBarItem.js b/lib/dijit/PopupMenuBarItem.js new file mode 100644 index 000000000..ce2eda546 --- /dev/null +++ b/lib/dijit/PopupMenuBarItem.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.PopupMenuBarItem"]){ +dojo._hasResource["dijit.PopupMenuBarItem"]=true; +dojo.provide("dijit.PopupMenuBarItem"); +dojo.require("dijit.PopupMenuItem"); +dojo.require("dijit.MenuBarItem"); +dojo.declare("dijit.PopupMenuBarItem",[dijit.PopupMenuItem,dijit._MenuBarItemMixin],{}); +} diff --git a/lib/dijit/PopupMenuItem.js b/lib/dijit/PopupMenuItem.js new file mode 100644 index 000000000..29a011cc0 --- /dev/null +++ b/lib/dijit/PopupMenuItem.js @@ -0,0 +1,43 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.PopupMenuItem"]){ +dojo._hasResource["dijit.PopupMenuItem"]=true; +dojo.provide("dijit.PopupMenuItem"); +dojo.require("dijit.MenuItem"); +dojo.declare("dijit.PopupMenuItem",dijit.MenuItem,{_fillContent:function(){ +if(this.srcNodeRef){ +var _1=dojo.query("*",this.srcNodeRef); +dijit.PopupMenuItem.superclass._fillContent.call(this,_1[0]); +this.dropDownContainer=this.srcNodeRef; +} +},startup:function(){ +if(this._started){ +return; +} +this.inherited(arguments); +if(!this.popup){ +var _2=dojo.query("[widgetId]",this.dropDownContainer)[0]; +this.popup=dijit.byNode(_2); +} +dojo.body().appendChild(this.popup.domNode); +this.popup.startup(); +this.popup.domNode.style.display="none"; +if(this.arrowWrapper){ +dojo.style(this.arrowWrapper,"visibility",""); +} +dijit.setWaiState(this.focusNode,"haspopup","true"); +},destroyDescendants:function(){ +if(this.popup){ +if(!this.popup._destroyed){ +this.popup.destroyRecursive(); +} +delete this.popup; +} +this.inherited(arguments); +}}); +} diff --git a/lib/dijit/ProgressBar.js b/lib/dijit/ProgressBar.js new file mode 100644 index 000000000..54b48a3ab --- /dev/null +++ b/lib/dijit/ProgressBar.js @@ -0,0 +1,59 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.ProgressBar"]){ +dojo._hasResource["dijit.ProgressBar"]=true; +dojo.provide("dijit.ProgressBar"); +dojo.require("dojo.fx"); +dojo.require("dojo.number"); +dojo.require("dijit._Widget"); +dojo.require("dijit._Templated"); +dojo.declare("dijit.ProgressBar",[dijit._Widget,dijit._Templated],{progress:"0",maximum:100,places:0,indeterminate:false,name:"",templateString:dojo.cache("dijit","templates/ProgressBar.html","<div class=\"dijitProgressBar dijitProgressBarEmpty\"\n\t><div waiRole=\"progressbar\" dojoAttachPoint=\"internalProgress\" class=\"dijitProgressBarFull\"\n\t\t><div class=\"dijitProgressBarTile\"></div\n\t\t><span style=\"visibility:hidden\"> </span\n\t></div\n\t><div dojoAttachPoint=\"label\" class=\"dijitProgressBarLabel\" id=\"${id}_label\"> </div\n\t><img dojoAttachPoint=\"indeterminateHighContrastImage\" class=\"dijitProgressBarIndeterminateHighContrastImage\" alt=\"\"\n/></div>\n"),_indeterminateHighContrastImagePath:dojo.moduleUrl("dijit","themes/a11y/indeterminate_progress.gif"),postCreate:function(){ +this.inherited(arguments); +this.indeterminateHighContrastImage.setAttribute("src",this._indeterminateHighContrastImagePath.toString()); +this.update(); +},update:function(_1){ +dojo.mixin(this,_1||{}); +var _2=this.internalProgress; +var _3=1,_4; +if(this.indeterminate){ +_4="addClass"; +dijit.removeWaiState(_2,"valuenow"); +dijit.removeWaiState(_2,"valuemin"); +dijit.removeWaiState(_2,"valuemax"); +}else{ +_4="removeClass"; +if(String(this.progress).indexOf("%")!=-1){ +_3=Math.min(parseFloat(this.progress)/100,1); +this.progress=_3*this.maximum; +}else{ +this.progress=Math.min(this.progress,this.maximum); +_3=this.progress/this.maximum; +} +var _5=this.report(_3); +this.label.firstChild.nodeValue=_5; +dijit.setWaiState(_2,"describedby",this.label.id); +dijit.setWaiState(_2,"valuenow",this.progress); +dijit.setWaiState(_2,"valuemin",0); +dijit.setWaiState(_2,"valuemax",this.maximum); +} +dojo[_4](this.domNode,"dijitProgressBarIndeterminate"); +_2.style.width=(_3*100)+"%"; +this.onChange(); +},_setValueAttr:function(v){ +if(v==Infinity){ +this.update({indeterminate:true}); +}else{ +this.update({indeterminate:false,progress:v}); +} +},_getValueAttr:function(){ +return this.progress; +},report:function(_6){ +return dojo.number.format(_6,{type:"percent",places:this.places,locale:this.lang}); +},onChange:function(){ +}}); +} diff --git a/lib/dijit/TitlePane.js b/lib/dijit/TitlePane.js new file mode 100644 index 000000000..f3fc7fade --- /dev/null +++ b/lib/dijit/TitlePane.js @@ -0,0 +1,110 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.TitlePane"]){ +dojo._hasResource["dijit.TitlePane"]=true; +dojo.provide("dijit.TitlePane"); +dojo.require("dojo.fx"); +dojo.require("dijit._Templated"); +dojo.require("dijit.layout.ContentPane"); +dojo.require("dijit._CssStateMixin"); +dojo.declare("dijit.TitlePane",[dijit.layout.ContentPane,dijit._Templated,dijit._CssStateMixin],{title:"",open:true,toggleable:true,tabIndex:"0",duration:dijit.defaultDuration,baseClass:"dijitTitlePane",templateString:dojo.cache("dijit","templates/TitlePane.html","<div>\n\t<div dojoAttachEvent=\"onclick:_onTitleClick, onkeypress:_onTitleKey\"\n\t\t\tclass=\"dijitTitlePaneTitle\" dojoAttachPoint=\"titleBarNode\">\n\t\t<div class=\"dijitTitlePaneTitleFocus\" dojoAttachPoint=\"focusNode\">\n\t\t\t<img src=\"${_blankGif}\" alt=\"\" dojoAttachPoint=\"arrowNode\" class=\"dijitArrowNode\" waiRole=\"presentation\"\n\t\t\t/><span dojoAttachPoint=\"arrowNodeInner\" class=\"dijitArrowNodeInner\"></span\n\t\t\t><span dojoAttachPoint=\"titleNode\" class=\"dijitTitlePaneTextNode\"></span>\n\t\t</div>\n\t</div>\n\t<div class=\"dijitTitlePaneContentOuter\" dojoAttachPoint=\"hideNode\" waiRole=\"presentation\">\n\t\t<div class=\"dijitReset\" dojoAttachPoint=\"wipeNode\" waiRole=\"presentation\">\n\t\t\t<div class=\"dijitTitlePaneContentInner\" dojoAttachPoint=\"containerNode\" waiRole=\"region\" tabindex=\"-1\" id=\"${id}_pane\">\n\t\t\t\t<!-- nested divs because wipeIn()/wipeOut() doesn't work right on node w/padding etc. Put padding on inner div. -->\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n"),attributeMap:dojo.delegate(dijit.layout.ContentPane.prototype.attributeMap,{title:{node:"titleNode",type:"innerHTML"},tooltip:{node:"focusNode",type:"attribute",attribute:"title"},id:""}),postCreate:function(){ +if(!this.open){ +this.hideNode.style.display=this.wipeNode.style.display="none"; +} +if(this.toggleable){ +this._trackMouseState(this.titleBarNode,"dijitTitlePaneTitle"); +} +this._setCss(); +dojo.setSelectable(this.titleNode,false); +var _1=this.hideNode,_2=this.wipeNode; +this._wipeIn=dojo.fx.wipeIn({node:this.wipeNode,duration:this.duration,beforeBegin:function(){ +_1.style.display=""; +}}); +this._wipeOut=dojo.fx.wipeOut({node:this.wipeNode,duration:this.duration,onEnd:function(){ +_1.style.display="none"; +}}); +this.inherited(arguments); +},_setOpenAttr:function(_3){ +if(this.open!==_3){ +this.toggle(); +} +dijit.setWaiState(this.containerNode,"hidden",this.open?"false":"true"); +dijit.setWaiState(this.focusNode,"pressed",this.open?"true":"false"); +},_setToggleableAttr:function(_4){ +this.toggleable=_4; +dijit.setWaiRole(this.focusNode,_4?"button":"heading"); +if(_4){ +dijit.setWaiState(this.focusNode,"controls",this.id+"_pane"); +dojo.attr(this.focusNode,"tabIndex",this.tabIndex); +}else{ +dojo.removeAttr(this.focusNode,"tabIndex"); +} +this._setCss(); +},_setContentAttr:function(_5){ +if(!this.open||!this._wipeOut||this._wipeOut.status()=="playing"){ +this.inherited(arguments); +}else{ +if(this._wipeIn&&this._wipeIn.status()=="playing"){ +this._wipeIn.stop(); +} +dojo.marginBox(this.wipeNode,{h:dojo.marginBox(this.wipeNode).h}); +this.inherited(arguments); +if(this._wipeIn){ +this._wipeIn.play(); +}else{ +this.hideNode.style.display=""; +} +} +},toggle:function(){ +dojo.forEach([this._wipeIn,this._wipeOut],function(_6){ +if(_6&&_6.status()=="playing"){ +_6.stop(); +} +}); +var _7=this[this.open?"_wipeOut":"_wipeIn"]; +if(_7){ +_7.play(); +}else{ +this.hideNode.style.display=this.open?"":"none"; +} +this.open=!this.open; +if(this.open){ +this._onShow(); +}else{ +this.onHide(); +} +this._setCss(); +},_setCss:function(){ +var _8=this.titleBarNode||this.focusNode; +if(this._titleBarClass){ +dojo.removeClass(_8,this._titleBarClass); +} +this._titleBarClass="dijit"+(this.toggleable?"":"Fixed")+(this.open?"Open":"Closed"); +dojo.addClass(_8,this._titleBarClass); +this.arrowNodeInner.innerHTML=this.open?"-":"+"; +},_onTitleKey:function(e){ +if(e.charOrCode==dojo.keys.ENTER||e.charOrCode==" "){ +if(this.toggleable){ +this.toggle(); +} +dojo.stopEvent(e); +}else{ +if(e.charOrCode==dojo.keys.DOWN_ARROW&&this.open){ +this.containerNode.focus(); +e.preventDefault(); +} +} +},_onTitleClick:function(){ +if(this.toggleable){ +this.toggle(); +} +},setTitle:function(_9){ +dojo.deprecated("dijit.TitlePane.setTitle() is deprecated. Use set('title', ...) instead.","","2.0"); +this.set("title",_9); +}}); +} diff --git a/lib/dijit/Toolbar.js b/lib/dijit/Toolbar.js new file mode 100644 index 000000000..e51f7eaf8 --- /dev/null +++ b/lib/dijit/Toolbar.js @@ -0,0 +1,25 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.Toolbar"]){ +dojo._hasResource["dijit.Toolbar"]=true; +dojo.provide("dijit.Toolbar"); +dojo.require("dijit._Widget"); +dojo.require("dijit._KeyNavContainer"); +dojo.require("dijit._Templated"); +dojo.declare("dijit.Toolbar",[dijit._Widget,dijit._Templated,dijit._KeyNavContainer],{templateString:"<div class=\"dijit\" waiRole=\"toolbar\" tabIndex=\"${tabIndex}\" dojoAttachPoint=\"containerNode\">"+"</div>",baseClass:"dijitToolbar",postCreate:function(){ +this.connectKeyNavHandlers(this.isLeftToRight()?[dojo.keys.LEFT_ARROW]:[dojo.keys.RIGHT_ARROW],this.isLeftToRight()?[dojo.keys.RIGHT_ARROW]:[dojo.keys.LEFT_ARROW]); +this.inherited(arguments); +},startup:function(){ +if(this._started){ +return; +} +this.startupKeyNavChildren(); +this.inherited(arguments); +}}); +dojo.require("dijit.ToolbarSeparator"); +} diff --git a/lib/dijit/ToolbarSeparator.js b/lib/dijit/ToolbarSeparator.js new file mode 100644 index 000000000..dca5792f7 --- /dev/null +++ b/lib/dijit/ToolbarSeparator.js @@ -0,0 +1,18 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.ToolbarSeparator"]){ +dojo._hasResource["dijit.ToolbarSeparator"]=true; +dojo.provide("dijit.ToolbarSeparator"); +dojo.require("dijit._Widget"); +dojo.require("dijit._Templated"); +dojo.declare("dijit.ToolbarSeparator",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"dijitToolbarSeparator dijitInline\" waiRole=\"presentation\"></div>",postCreate:function(){ +dojo.setSelectable(this.domNode,false); +},isFocusable:function(){ +return false; +}}); +} diff --git a/lib/dijit/Tooltip.js b/lib/dijit/Tooltip.js new file mode 100644 index 000000000..fea9a0bc1 --- /dev/null +++ b/lib/dijit/Tooltip.js @@ -0,0 +1,155 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.Tooltip"]){ +dojo._hasResource["dijit.Tooltip"]=true; +dojo.provide("dijit.Tooltip"); +dojo.require("dijit._Widget"); +dojo.require("dijit._Templated"); +dojo.declare("dijit._MasterTooltip",[dijit._Widget,dijit._Templated],{duration:dijit.defaultDuration,templateString:dojo.cache("dijit","templates/Tooltip.html","<div class=\"dijitTooltip dijitTooltipLeft\" id=\"dojoTooltip\">\n\t<div class=\"dijitTooltipContainer dijitTooltipContents\" dojoAttachPoint=\"containerNode\" waiRole='alert'></div>\n\t<div class=\"dijitTooltipConnector\"></div>\n</div>\n"),postCreate:function(){ +dojo.body().appendChild(this.domNode); +this.bgIframe=new dijit.BackgroundIframe(this.domNode); +this.fadeIn=dojo.fadeIn({node:this.domNode,duration:this.duration,onEnd:dojo.hitch(this,"_onShow")}); +this.fadeOut=dojo.fadeOut({node:this.domNode,duration:this.duration,onEnd:dojo.hitch(this,"_onHide")}); +},show:function(_1,_2,_3,_4){ +if(this.aroundNode&&this.aroundNode===_2){ +return; +} +if(this.fadeOut.status()=="playing"){ +this._onDeck=arguments; +return; +} +this.containerNode.innerHTML=_1; +var _5=dijit.placeOnScreenAroundElement(this.domNode,_2,dijit.getPopupAroundAlignment((_3&&_3.length)?_3:dijit.Tooltip.defaultPosition,!_4),dojo.hitch(this,"orient")); +dojo.style(this.domNode,"opacity",0); +this.fadeIn.play(); +this.isShowingNow=true; +this.aroundNode=_2; +},orient:function(_6,_7,_8){ +_6.className="dijitTooltip "+{"BL-TL":"dijitTooltipBelow dijitTooltipABLeft","TL-BL":"dijitTooltipAbove dijitTooltipABLeft","BR-TR":"dijitTooltipBelow dijitTooltipABRight","TR-BR":"dijitTooltipAbove dijitTooltipABRight","BR-BL":"dijitTooltipRight","BL-BR":"dijitTooltipLeft"}[_7+"-"+_8]; +},_onShow:function(){ +if(dojo.isIE){ +this.domNode.style.filter=""; +} +},hide:function(_9){ +if(this._onDeck&&this._onDeck[1]==_9){ +this._onDeck=null; +}else{ +if(this.aroundNode===_9){ +this.fadeIn.stop(); +this.isShowingNow=false; +this.aroundNode=null; +this.fadeOut.play(); +}else{ +} +} +},_onHide:function(){ +this.domNode.style.cssText=""; +this.containerNode.innerHTML=""; +if(this._onDeck){ +this.show.apply(this,this._onDeck); +this._onDeck=null; +} +}}); +dijit.showTooltip=function(_a,_b,_c,_d){ +if(!dijit._masterTT){ +dijit._masterTT=new dijit._MasterTooltip(); +} +return dijit._masterTT.show(_a,_b,_c,_d); +}; +dijit.hideTooltip=function(_e){ +if(!dijit._masterTT){ +dijit._masterTT=new dijit._MasterTooltip(); +} +return dijit._masterTT.hide(_e); +}; +dojo.declare("dijit.Tooltip",dijit._Widget,{label:"",showDelay:400,connectId:[],position:[],constructor:function(){ +this._nodeConnectionsById={}; +},_setConnectIdAttr:function(_f){ +for(var _10 in this._nodeConnectionsById){ +this.removeTarget(_10); +} +dojo.forEach(dojo.isArrayLike(_f)?_f:[_f],this.addTarget,this); +},_getConnectIdAttr:function(){ +var ary=[]; +for(var id in this._nodeConnectionsById){ +ary.push(id); +} +return ary; +},addTarget:function(id){ +var _11=dojo.byId(id); +if(!_11){ +return; +} +if(_11.id in this._nodeConnectionsById){ +return; +} +this._nodeConnectionsById[_11.id]=[this.connect(_11,"onmouseenter","_onTargetMouseEnter"),this.connect(_11,"onmouseleave","_onTargetMouseLeave"),this.connect(_11,"onfocus","_onTargetFocus"),this.connect(_11,"onblur","_onTargetBlur")]; +},removeTarget:function(_12){ +var id=_12.id||_12; +if(id in this._nodeConnectionsById){ +dojo.forEach(this._nodeConnectionsById[id],this.disconnect,this); +delete this._nodeConnectionsById[id]; +} +},postCreate:function(){ +dojo.addClass(this.domNode,"dijitTooltipData"); +},startup:function(){ +this.inherited(arguments); +var ids=this.connectId; +dojo.forEach(dojo.isArrayLike(ids)?ids:[ids],this.addTarget,this); +},_onTargetMouseEnter:function(e){ +this._onHover(e); +},_onTargetMouseLeave:function(e){ +this._onUnHover(e); +},_onTargetFocus:function(e){ +this._focus=true; +this._onHover(e); +},_onTargetBlur:function(e){ +this._focus=false; +this._onUnHover(e); +},_onHover:function(e){ +if(!this._showTimer){ +var _13=e.target; +this._showTimer=setTimeout(dojo.hitch(this,function(){ +this.open(_13); +}),this.showDelay); +} +},_onUnHover:function(e){ +if(this._focus){ +return; +} +if(this._showTimer){ +clearTimeout(this._showTimer); +delete this._showTimer; +} +this.close(); +},open:function(_14){ +if(this._showTimer){ +clearTimeout(this._showTimer); +delete this._showTimer; +} +dijit.showTooltip(this.label||this.domNode.innerHTML,_14,this.position,!this.isLeftToRight()); +this._connectNode=_14; +this.onShow(_14,this.position); +},close:function(){ +if(this._connectNode){ +dijit.hideTooltip(this._connectNode); +delete this._connectNode; +this.onHide(); +} +if(this._showTimer){ +clearTimeout(this._showTimer); +delete this._showTimer; +} +},onShow:function(_15,_16){ +},onHide:function(){ +},uninitialize:function(){ +this.close(); +this.inherited(arguments); +}}); +dijit.Tooltip.defaultPosition=["after","before"]; +} diff --git a/lib/dijit/TooltipDialog.js b/lib/dijit/TooltipDialog.js new file mode 100644 index 000000000..13f69dbd3 --- /dev/null +++ b/lib/dijit/TooltipDialog.js @@ -0,0 +1,66 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.TooltipDialog"]){ +dojo._hasResource["dijit.TooltipDialog"]=true; +dojo.provide("dijit.TooltipDialog"); +dojo.require("dijit.layout.ContentPane"); +dojo.require("dijit._Templated"); +dojo.require("dijit.form._FormMixin"); +dojo.require("dijit._DialogMixin"); +dojo.declare("dijit.TooltipDialog",[dijit.layout.ContentPane,dijit._Templated,dijit.form._FormMixin,dijit._DialogMixin],{title:"",doLayout:false,autofocus:true,baseClass:"dijitTooltipDialog",_firstFocusItem:null,_lastFocusItem:null,templateString:dojo.cache("dijit","templates/TooltipDialog.html","<div waiRole=\"presentation\">\n\t<div class=\"dijitTooltipContainer\" waiRole=\"presentation\">\n\t\t<div class =\"dijitTooltipContents dijitTooltipFocusNode\" dojoAttachPoint=\"containerNode\" tabindex=\"-1\" waiRole=\"dialog\"></div>\n\t</div>\n\t<div class=\"dijitTooltipConnector\" waiRole=\"presentation\"></div>\n</div>\n"),postCreate:function(){ +this.inherited(arguments); +this.connect(this.containerNode,"onkeypress","_onKey"); +this.containerNode.title=this.title; +},orient:function(_1,_2,_3){ +var c=this._currentOrientClass; +if(c){ +dojo.removeClass(this.domNode,c); +} +c="dijitTooltipAB"+(_3.charAt(1)=="L"?"Left":"Right")+" dijitTooltip"+(_3.charAt(0)=="T"?"Below":"Above"); +dojo.addClass(this.domNode,c); +this._currentOrientClass=c; +},onOpen:function(_4){ +this.orient(this.domNode,_4.aroundCorner,_4.corner); +this._onShow(); +if(this.autofocus){ +this._getFocusItems(this.containerNode); +dijit.focus(this._firstFocusItem); +} +},onClose:function(){ +this.onHide(); +},_onKey:function(_5){ +var _6=_5.target; +var dk=dojo.keys; +if(_5.charOrCode===dk.TAB){ +this._getFocusItems(this.containerNode); +} +var _7=(this._firstFocusItem==this._lastFocusItem); +if(_5.charOrCode==dk.ESCAPE){ +setTimeout(dojo.hitch(this,"onCancel"),0); +dojo.stopEvent(_5); +}else{ +if(_6==this._firstFocusItem&&_5.shiftKey&&_5.charOrCode===dk.TAB){ +if(!_7){ +dijit.focus(this._lastFocusItem); +} +dojo.stopEvent(_5); +}else{ +if(_6==this._lastFocusItem&&_5.charOrCode===dk.TAB&&!_5.shiftKey){ +if(!_7){ +dijit.focus(this._firstFocusItem); +} +dojo.stopEvent(_5); +}else{ +if(_5.charOrCode===dk.TAB){ +_5.stopPropagation(); +} +} +} +} +}}); +} diff --git a/lib/dijit/Tree.js b/lib/dijit/Tree.js new file mode 100644 index 000000000..761d4c3fc --- /dev/null +++ b/lib/dijit/Tree.js @@ -0,0 +1,678 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.Tree"]){ +dojo._hasResource["dijit.Tree"]=true; +dojo.provide("dijit.Tree"); +dojo.require("dojo.fx"); +dojo.require("dojo.DeferredList"); +dojo.require("dijit._Widget"); +dojo.require("dijit._Templated"); +dojo.require("dijit._Container"); +dojo.require("dijit._Contained"); +dojo.require("dijit._CssStateMixin"); +dojo.require("dojo.cookie"); +dojo.declare("dijit._TreeNode",[dijit._Widget,dijit._Templated,dijit._Container,dijit._Contained,dijit._CssStateMixin],{item:null,isTreeNode:true,label:"",isExpandable:null,isExpanded:false,state:"UNCHECKED",templateString:dojo.cache("dijit","templates/TreeNode.html","<div class=\"dijitTreeNode\" waiRole=\"presentation\"\n\t><div dojoAttachPoint=\"rowNode\" class=\"dijitTreeRow\" waiRole=\"presentation\" dojoAttachEvent=\"onmouseenter:_onMouseEnter, onmouseleave:_onMouseLeave, onclick:_onClick, ondblclick:_onDblClick\"\n\t\t><img src=\"${_blankGif}\" alt=\"\" dojoAttachPoint=\"expandoNode\" class=\"dijitTreeExpando\" waiRole=\"presentation\"\n\t\t/><span dojoAttachPoint=\"expandoNodeText\" class=\"dijitExpandoText\" waiRole=\"presentation\"\n\t\t></span\n\t\t><span dojoAttachPoint=\"contentNode\"\n\t\t\tclass=\"dijitTreeContent\" waiRole=\"presentation\">\n\t\t\t<img src=\"${_blankGif}\" alt=\"\" dojoAttachPoint=\"iconNode\" class=\"dijitIcon dijitTreeIcon\" waiRole=\"presentation\"\n\t\t\t/><span dojoAttachPoint=\"labelNode\" class=\"dijitTreeLabel\" wairole=\"treeitem\" tabindex=\"-1\" waiState=\"selected-false\" dojoAttachEvent=\"onfocus:_onLabelFocus\"></span>\n\t\t</span\n\t></div>\n\t<div dojoAttachPoint=\"containerNode\" class=\"dijitTreeContainer\" waiRole=\"presentation\" style=\"display: none;\"></div>\n</div>\n"),baseClass:"dijitTreeNode",cssStateNodes:{rowNode:"dijitTreeRow",labelNode:"dijitTreeLabel"},attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{label:{node:"labelNode",type:"innerText"},tooltip:{node:"rowNode",type:"attribute",attribute:"title"}}),postCreate:function(){ +this.inherited(arguments); +this._setExpando(); +this._updateItemClasses(this.item); +if(this.isExpandable){ +dijit.setWaiState(this.labelNode,"expanded",this.isExpanded); +} +},_setIndentAttr:function(_1){ +this.indent=_1; +var _2=(Math.max(_1,0)*this.tree._nodePixelIndent)+"px"; +dojo.style(this.domNode,"backgroundPosition",_2+" 0px"); +dojo.style(this.rowNode,this.isLeftToRight()?"paddingLeft":"paddingRight",_2); +dojo.forEach(this.getChildren(),function(_3){ +_3.set("indent",_1+1); +}); +},markProcessing:function(){ +this.state="LOADING"; +this._setExpando(true); +},unmarkProcessing:function(){ +this._setExpando(false); +},_updateItemClasses:function(_4){ +var _5=this.tree,_6=_5.model; +if(_5._v10Compat&&_4===_6.root){ +_4=null; +} +this._applyClassAndStyle(_4,"icon","Icon"); +this._applyClassAndStyle(_4,"label","Label"); +this._applyClassAndStyle(_4,"row","Row"); +},_applyClassAndStyle:function(_7,_8,_9){ +var _a="_"+_8+"Class"; +var _b=_8+"Node"; +if(this[_a]){ +dojo.removeClass(this[_b],this[_a]); +} +this[_a]=this.tree["get"+_9+"Class"](_7,this.isExpanded); +if(this[_a]){ +dojo.addClass(this[_b],this[_a]); +} +dojo.style(this[_b],this.tree["get"+_9+"Style"](_7,this.isExpanded)||{}); +},_updateLayout:function(){ +var _c=this.getParent(); +if(!_c||_c.rowNode.style.display=="none"){ +dojo.addClass(this.domNode,"dijitTreeIsRoot"); +}else{ +dojo.toggleClass(this.domNode,"dijitTreeIsLast",!this.getNextSibling()); +} +},_setExpando:function(_d){ +var _e=["dijitTreeExpandoLoading","dijitTreeExpandoOpened","dijitTreeExpandoClosed","dijitTreeExpandoLeaf"],_f=["*","-","+","*"],idx=_d?0:(this.isExpandable?(this.isExpanded?1:2):3); +dojo.removeClass(this.expandoNode,_e); +dojo.addClass(this.expandoNode,_e[idx]); +this.expandoNodeText.innerHTML=_f[idx]; +},expand:function(){ +if(this._expandDeferred){ +return this._expandDeferred; +} +this._wipeOut&&this._wipeOut.stop(); +this.isExpanded=true; +dijit.setWaiState(this.labelNode,"expanded","true"); +dijit.setWaiRole(this.containerNode,"group"); +dojo.addClass(this.contentNode,"dijitTreeContentExpanded"); +this._setExpando(); +this._updateItemClasses(this.item); +if(this==this.tree.rootNode){ +dijit.setWaiState(this.tree.domNode,"expanded","true"); +} +var def,_10=dojo.fx.wipeIn({node:this.containerNode,duration:dijit.defaultDuration,onEnd:function(){ +def.callback(true); +}}); +def=(this._expandDeferred=new dojo.Deferred(function(){ +_10.stop(); +})); +_10.play(); +return def; +},collapse:function(){ +if(!this.isExpanded){ +return; +} +if(this._expandDeferred){ +this._expandDeferred.cancel(); +delete this._expandDeferred; +} +this.isExpanded=false; +dijit.setWaiState(this.labelNode,"expanded","false"); +if(this==this.tree.rootNode){ +dijit.setWaiState(this.tree.domNode,"expanded","false"); +} +dojo.removeClass(this.contentNode,"dijitTreeContentExpanded"); +this._setExpando(); +this._updateItemClasses(this.item); +if(!this._wipeOut){ +this._wipeOut=dojo.fx.wipeOut({node:this.containerNode,duration:dijit.defaultDuration}); +} +this._wipeOut.play(); +},indent:0,setChildItems:function(_11){ +var _12=this.tree,_13=_12.model,_14=[]; +dojo.forEach(this.getChildren(),function(_15){ +dijit._Container.prototype.removeChild.call(this,_15); +},this); +this.state="LOADED"; +if(_11&&_11.length>0){ +this.isExpandable=true; +dojo.forEach(_11,function(_16){ +var id=_13.getIdentity(_16),_17=_12._itemNodesMap[id],_18; +if(_17){ +for(var i=0;i<_17.length;i++){ +if(_17[i]&&!_17[i].getParent()){ +_18=_17[i]; +_18.set("indent",this.indent+1); +break; +} +} +} +if(!_18){ +_18=this.tree._createTreeNode({item:_16,tree:_12,isExpandable:_13.mayHaveChildren(_16),label:_12.getLabel(_16),tooltip:_12.getTooltip(_16),dir:_12.dir,lang:_12.lang,indent:this.indent+1}); +if(_17){ +_17.push(_18); +}else{ +_12._itemNodesMap[id]=[_18]; +} +} +this.addChild(_18); +if(this.tree.autoExpand||this.tree._state(_16)){ +_14.push(_12._expandNode(_18)); +} +},this); +dojo.forEach(this.getChildren(),function(_19,idx){ +_19._updateLayout(); +}); +}else{ +this.isExpandable=false; +} +if(this._setExpando){ +this._setExpando(false); +} +this._updateItemClasses(this.item); +if(this==_12.rootNode){ +var fc=this.tree.showRoot?this:this.getChildren()[0]; +if(fc){ +fc.setFocusable(true); +_12.lastFocused=fc; +}else{ +_12.domNode.setAttribute("tabIndex","0"); +} +} +return new dojo.DeferredList(_14); +},removeChild:function(_1a){ +this.inherited(arguments); +var _1b=this.getChildren(); +if(_1b.length==0){ +this.isExpandable=false; +this.collapse(); +} +dojo.forEach(_1b,function(_1c){ +_1c._updateLayout(); +}); +},makeExpandable:function(){ +this.isExpandable=true; +this._setExpando(false); +},_onLabelFocus:function(evt){ +this.tree._onNodeFocus(this); +},setSelected:function(_1d){ +dijit.setWaiState(this.labelNode,"selected",_1d); +dojo.toggleClass(this.rowNode,"dijitTreeRowSelected",_1d); +},setFocusable:function(_1e){ +this.labelNode.setAttribute("tabIndex",_1e?"0":"-1"); +},_onClick:function(evt){ +this.tree._onClick(this,evt); +},_onDblClick:function(evt){ +this.tree._onDblClick(this,evt); +},_onMouseEnter:function(evt){ +this.tree._onNodeMouseEnter(this,evt); +},_onMouseLeave:function(evt){ +this.tree._onNodeMouseLeave(this,evt); +}}); +dojo.declare("dijit.Tree",[dijit._Widget,dijit._Templated],{store:null,model:null,query:null,label:"",showRoot:true,childrenAttr:["children"],path:[],selectedItem:null,openOnClick:false,openOnDblClick:false,templateString:dojo.cache("dijit","templates/Tree.html","<div class=\"dijitTree dijitTreeContainer\" waiRole=\"tree\"\n\tdojoAttachEvent=\"onkeypress:_onKeyPress\">\n\t<div class=\"dijitInline dijitTreeIndent\" style=\"position: absolute; top: -9999px\" dojoAttachPoint=\"indentDetector\"></div>\n</div>\n"),persist:true,autoExpand:false,dndController:null,dndParams:["onDndDrop","itemCreator","onDndCancel","checkAcceptance","checkItemAcceptance","dragThreshold","betweenThreshold"],onDndDrop:null,itemCreator:null,onDndCancel:null,checkAcceptance:null,checkItemAcceptance:null,dragThreshold:5,betweenThreshold:0,_nodePixelIndent:19,_publish:function(_1f,_20){ +dojo.publish(this.id,[dojo.mixin({tree:this,event:_1f},_20||{})]); +},postMixInProperties:function(){ +this.tree=this; +if(this.autoExpand){ +this.persist=false; +} +this._itemNodesMap={}; +if(!this.cookieName){ +this.cookieName=this.id+"SaveStateCookie"; +} +this._loadDeferred=new dojo.Deferred(); +this.inherited(arguments); +},postCreate:function(){ +this._initState(); +if(!this.model){ +this._store2model(); +} +this.connect(this.model,"onChange","_onItemChange"); +this.connect(this.model,"onChildrenChange","_onItemChildrenChange"); +this.connect(this.model,"onDelete","_onItemDelete"); +this._load(); +this.inherited(arguments); +if(this.dndController){ +if(dojo.isString(this.dndController)){ +this.dndController=dojo.getObject(this.dndController); +} +var _21={}; +for(var i=0;i<this.dndParams.length;i++){ +if(this[this.dndParams[i]]){ +_21[this.dndParams[i]]=this[this.dndParams[i]]; +} +} +this.dndController=new this.dndController(this,_21); +} +},_store2model:function(){ +this._v10Compat=true; +dojo.deprecated("Tree: from version 2.0, should specify a model object rather than a store/query"); +var _22={id:this.id+"_ForestStoreModel",store:this.store,query:this.query,childrenAttrs:this.childrenAttr}; +if(this.params.mayHaveChildren){ +_22.mayHaveChildren=dojo.hitch(this,"mayHaveChildren"); +} +if(this.params.getItemChildren){ +_22.getChildren=dojo.hitch(this,function(_23,_24,_25){ +this.getItemChildren((this._v10Compat&&_23===this.model.root)?null:_23,_24,_25); +}); +} +this.model=new dijit.tree.ForestStoreModel(_22); +this.showRoot=Boolean(this.label); +},onLoad:function(){ +},_load:function(){ +this.model.getRoot(dojo.hitch(this,function(_26){ +var rn=(this.rootNode=this.tree._createTreeNode({item:_26,tree:this,isExpandable:true,label:this.label||this.getLabel(_26),indent:this.showRoot?0:-1})); +if(!this.showRoot){ +rn.rowNode.style.display="none"; +} +this.domNode.appendChild(rn.domNode); +var _27=this.model.getIdentity(_26); +if(this._itemNodesMap[_27]){ +this._itemNodesMap[_27].push(rn); +}else{ +this._itemNodesMap[_27]=[rn]; +} +rn._updateLayout(); +this._expandNode(rn).addCallback(dojo.hitch(this,function(){ +this._loadDeferred.callback(true); +this.onLoad(); +})); +}),function(err){ +console.error(this,": error loading root: ",err); +}); +},getNodesByItem:function(_28){ +if(!_28){ +return []; +} +var _29=dojo.isString(_28)?_28:this.model.getIdentity(_28); +return [].concat(this._itemNodesMap[_29]); +},_setSelectedItemAttr:function(_2a){ +var _2b=this.get("selectedItem"); +var _2c=(!_2a||dojo.isString(_2a))?_2a:this.model.getIdentity(_2a); +if(_2c==_2b?this.model.getIdentity(_2b):null){ +return; +} +var _2d=this._itemNodesMap[_2c]; +this._selectNode((_2d&&_2d[0])||null); +},_getSelectedItemAttr:function(){ +return this.selectedNode&&this.selectedNode.item; +},_setPathAttr:function(_2e){ +var d=new dojo.Deferred(); +this._selectNode(null); +if(!_2e||!_2e.length){ +d.resolve(true); +return d; +} +this._loadDeferred.addCallback(dojo.hitch(this,function(){ +if(!this.rootNode){ +d.reject(new Error("!this.rootNode")); +return; +} +if(_2e[0]!==this.rootNode.item&&(dojo.isString(_2e[0])&&_2e[0]!=this.model.getIdentity(this.rootNode.item))){ +d.reject(new Error(this.id+":path[0] doesn't match this.rootNode.item. Maybe you are using the wrong tree.")); +return; +} +_2e.shift(); +var _2f=this.rootNode; +function _30(){ +var _31=_2e.shift(),_32=dojo.isString(_31)?_31:this.model.getIdentity(_31); +dojo.some(this._itemNodesMap[_32],function(n){ +if(n.getParent()==_2f){ +_2f=n; +return true; +} +return false; +}); +if(_2e.length){ +this._expandNode(_2f).addCallback(dojo.hitch(this,_30)); +}else{ +this._selectNode(_2f); +d.resolve(true); +} +}; +this._expandNode(_2f).addCallback(dojo.hitch(this,_30)); +})); +return d; +},_getPathAttr:function(){ +if(!this.selectedNode){ +return; +} +var res=[]; +var _33=this.selectedNode; +while(_33&&_33!==this.rootNode){ +res.unshift(_33.item); +_33=_33.getParent(); +} +res.unshift(this.rootNode.item); +return res; +},mayHaveChildren:function(_34){ +},getItemChildren:function(_35,_36){ +},getLabel:function(_37){ +return this.model.getLabel(_37); +},getIconClass:function(_38,_39){ +return (!_38||this.model.mayHaveChildren(_38))?(_39?"dijitFolderOpened":"dijitFolderClosed"):"dijitLeaf"; +},getLabelClass:function(_3a,_3b){ +},getRowClass:function(_3c,_3d){ +},getIconStyle:function(_3e,_3f){ +},getLabelStyle:function(_40,_41){ +},getRowStyle:function(_42,_43){ +},getTooltip:function(_44){ +return ""; +},_onKeyPress:function(e){ +if(e.altKey){ +return; +} +var dk=dojo.keys; +var _45=dijit.getEnclosingWidget(e.target); +if(!_45){ +return; +} +var key=e.charOrCode; +if(typeof key=="string"){ +if(!e.altKey&&!e.ctrlKey&&!e.shiftKey&&!e.metaKey){ +this._onLetterKeyNav({node:_45,key:key.toLowerCase()}); +dojo.stopEvent(e); +} +}else{ +if(this._curSearch){ +clearTimeout(this._curSearch.timer); +delete this._curSearch; +} +var map=this._keyHandlerMap; +if(!map){ +map={}; +map[dk.ENTER]="_onEnterKey"; +map[this.isLeftToRight()?dk.LEFT_ARROW:dk.RIGHT_ARROW]="_onLeftArrow"; +map[this.isLeftToRight()?dk.RIGHT_ARROW:dk.LEFT_ARROW]="_onRightArrow"; +map[dk.UP_ARROW]="_onUpArrow"; +map[dk.DOWN_ARROW]="_onDownArrow"; +map[dk.HOME]="_onHomeKey"; +map[dk.END]="_onEndKey"; +this._keyHandlerMap=map; +} +if(this._keyHandlerMap[key]){ +this[this._keyHandlerMap[key]]({node:_45,item:_45.item,evt:e}); +dojo.stopEvent(e); +} +} +},_onEnterKey:function(_46,evt){ +this._publish("execute",{item:_46.item,node:_46.node}); +this._selectNode(_46.node); +this.onClick(_46.item,_46.node,evt); +},_onDownArrow:function(_47){ +var _48=this._getNextNode(_47.node); +if(_48&&_48.isTreeNode){ +this.focusNode(_48); +} +},_onUpArrow:function(_49){ +var _4a=_49.node; +var _4b=_4a.getPreviousSibling(); +if(_4b){ +_4a=_4b; +while(_4a.isExpandable&&_4a.isExpanded&&_4a.hasChildren()){ +var _4c=_4a.getChildren(); +_4a=_4c[_4c.length-1]; +} +}else{ +var _4d=_4a.getParent(); +if(!(!this.showRoot&&_4d===this.rootNode)){ +_4a=_4d; +} +} +if(_4a&&_4a.isTreeNode){ +this.focusNode(_4a); +} +},_onRightArrow:function(_4e){ +var _4f=_4e.node; +if(_4f.isExpandable&&!_4f.isExpanded){ +this._expandNode(_4f); +}else{ +if(_4f.hasChildren()){ +_4f=_4f.getChildren()[0]; +if(_4f&&_4f.isTreeNode){ +this.focusNode(_4f); +} +} +} +},_onLeftArrow:function(_50){ +var _51=_50.node; +if(_51.isExpandable&&_51.isExpanded){ +this._collapseNode(_51); +}else{ +var _52=_51.getParent(); +if(_52&&_52.isTreeNode&&!(!this.showRoot&&_52===this.rootNode)){ +this.focusNode(_52); +} +} +},_onHomeKey:function(){ +var _53=this._getRootOrFirstNode(); +if(_53){ +this.focusNode(_53); +} +},_onEndKey:function(_54){ +var _55=this.rootNode; +while(_55.isExpanded){ +var c=_55.getChildren(); +_55=c[c.length-1]; +} +if(_55&&_55.isTreeNode){ +this.focusNode(_55); +} +},multiCharSearchDuration:250,_onLetterKeyNav:function(_56){ +var cs=this._curSearch; +if(cs){ +cs.pattern=cs.pattern+_56.key; +clearTimeout(cs.timer); +}else{ +cs=this._curSearch={pattern:_56.key,startNode:_56.node}; +} +var _57=this; +cs.timer=setTimeout(function(){ +delete _57._curSearch; +},this.multiCharSearchDuration); +var _58=cs.startNode; +do{ +_58=this._getNextNode(_58); +if(!_58){ +_58=this._getRootOrFirstNode(); +} +}while(_58!==cs.startNode&&(_58.label.toLowerCase().substr(0,cs.pattern.length)!=cs.pattern)); +if(_58&&_58.isTreeNode){ +if(_58!==cs.startNode){ +this.focusNode(_58); +} +} +},_onClick:function(_59,e){ +var _5a=e.target,_5b=(_5a==_59.expandoNode||_5a==_59.expandoNodeText); +if((this.openOnClick&&_59.isExpandable)||_5b){ +if(_59.isExpandable){ +this._onExpandoClick({node:_59}); +} +}else{ +this._publish("execute",{item:_59.item,node:_59,evt:e}); +this.onClick(_59.item,_59,e); +this.focusNode(_59); +} +if(!_5b){ +this._selectNode(_59); +} +dojo.stopEvent(e); +},_onDblClick:function(_5c,e){ +var _5d=e.target,_5e=(_5d==_5c.expandoNode||_5d==_5c.expandoNodeText); +if((this.openOnDblClick&&_5c.isExpandable)||_5e){ +if(_5c.isExpandable){ +this._onExpandoClick({node:_5c}); +} +}else{ +this._publish("execute",{item:_5c.item,node:_5c,evt:e}); +this.onDblClick(_5c.item,_5c,e); +this.focusNode(_5c); +} +if(!_5e){ +this._selectNode(_5c); +} +dojo.stopEvent(e); +},_onExpandoClick:function(_5f){ +var _60=_5f.node; +this.focusNode(_60); +if(_60.isExpanded){ +this._collapseNode(_60); +}else{ +this._expandNode(_60); +} +},onClick:function(_61,_62,evt){ +},onDblClick:function(_63,_64,evt){ +},onOpen:function(_65,_66){ +},onClose:function(_67,_68){ +},_getNextNode:function(_69){ +if(_69.isExpandable&&_69.isExpanded&&_69.hasChildren()){ +return _69.getChildren()[0]; +}else{ +while(_69&&_69.isTreeNode){ +var _6a=_69.getNextSibling(); +if(_6a){ +return _6a; +} +_69=_69.getParent(); +} +return null; +} +},_getRootOrFirstNode:function(){ +return this.showRoot?this.rootNode:this.rootNode.getChildren()[0]; +},_collapseNode:function(_6b){ +if(_6b._expandNodeDeferred){ +delete _6b._expandNodeDeferred; +} +if(_6b.isExpandable){ +if(_6b.state=="LOADING"){ +return; +} +_6b.collapse(); +this.onClose(_6b.item,_6b); +if(_6b.item){ +this._state(_6b.item,false); +this._saveState(); +} +} +},_expandNode:function(_6c,_6d){ +if(_6c._expandNodeDeferred&&!_6d){ +return _6c._expandNodeDeferred; +} +var _6e=this.model,_6f=_6c.item,_70=this; +switch(_6c.state){ +case "UNCHECKED": +_6c.markProcessing(); +var def=(_6c._expandNodeDeferred=new dojo.Deferred()); +_6e.getChildren(_6f,function(_71){ +_6c.unmarkProcessing(); +var _72=_6c.setChildItems(_71); +var ed=_70._expandNode(_6c,true); +_72.addCallback(function(){ +ed.addCallback(function(){ +def.callback(); +}); +}); +},function(err){ +console.error(_70,": error loading root children: ",err); +}); +break; +default: +def=(_6c._expandNodeDeferred=_6c.expand()); +this.onOpen(_6c.item,_6c); +if(_6f){ +this._state(_6f,true); +this._saveState(); +} +} +return def; +},focusNode:function(_73){ +dijit.focus(_73.labelNode); +},_selectNode:function(_74){ +if(this.selectedNode&&!this.selectedNode._destroyed){ +this.selectedNode.setSelected(false); +} +if(_74){ +_74.setSelected(true); +} +this.selectedNode=_74; +},_onNodeFocus:function(_75){ +if(_75&&_75!=this.lastFocused){ +if(this.lastFocused&&!this.lastFocused._destroyed){ +this.lastFocused.setFocusable(false); +} +_75.setFocusable(true); +this.lastFocused=_75; +} +},_onNodeMouseEnter:function(_76){ +},_onNodeMouseLeave:function(_77){ +},_onItemChange:function(_78){ +var _79=this.model,_7a=_79.getIdentity(_78),_7b=this._itemNodesMap[_7a]; +if(_7b){ +var _7c=this.getLabel(_78),_7d=this.getTooltip(_78); +dojo.forEach(_7b,function(_7e){ +_7e.set({item:_78,label:_7c,tooltip:_7d}); +_7e._updateItemClasses(_78); +}); +} +},_onItemChildrenChange:function(_7f,_80){ +var _81=this.model,_82=_81.getIdentity(_7f),_83=this._itemNodesMap[_82]; +if(_83){ +dojo.forEach(_83,function(_84){ +_84.setChildItems(_80); +}); +} +},_onItemDelete:function(_85){ +var _86=this.model,_87=_86.getIdentity(_85),_88=this._itemNodesMap[_87]; +if(_88){ +dojo.forEach(_88,function(_89){ +var _8a=_89.getParent(); +if(_8a){ +_8a.removeChild(_89); +} +_89.destroyRecursive(); +}); +delete this._itemNodesMap[_87]; +} +},_initState:function(){ +if(this.persist){ +var _8b=dojo.cookie(this.cookieName); +this._openedItemIds={}; +if(_8b){ +dojo.forEach(_8b.split(","),function(_8c){ +this._openedItemIds[_8c]=true; +},this); +} +} +},_state:function(_8d,_8e){ +if(!this.persist){ +return false; +} +var id=this.model.getIdentity(_8d); +if(arguments.length===1){ +return this._openedItemIds[id]; +} +if(_8e){ +this._openedItemIds[id]=true; +}else{ +delete this._openedItemIds[id]; +} +},_saveState:function(){ +if(!this.persist){ +return; +} +var ary=[]; +for(var id in this._openedItemIds){ +ary.push(id); +} +dojo.cookie(this.cookieName,ary.join(","),{expires:365}); +},destroy:function(){ +if(this._curSearch){ +clearTimeout(this._curSearch.timer); +delete this._curSearch; +} +if(this.rootNode){ +this.rootNode.destroyRecursive(); +} +if(this.dndController&&!dojo.isString(this.dndController)){ +this.dndController.destroy(); +} +this.rootNode=null; +this.inherited(arguments); +},destroyRecursive:function(){ +this.destroy(); +},resize:function(_8f){ +if(_8f){ +dojo.marginBox(this.domNode,_8f); +dojo.style(this.domNode,"overflow","auto"); +} +this._nodePixelIndent=dojo.marginBox(this.tree.indentDetector).w; +if(this.tree.rootNode){ +this.tree.rootNode.set("indent",this.showRoot?0:-1); +} +},_createTreeNode:function(_90){ +return new dijit._TreeNode(_90); +}}); +dojo.require("dijit.tree.TreeStoreModel"); +dojo.require("dijit.tree.ForestStoreModel"); +} diff --git a/lib/dijit/_Calendar.js b/lib/dijit/_Calendar.js new file mode 100644 index 000000000..f9bb23918 --- /dev/null +++ b/lib/dijit/_Calendar.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._Calendar"]){ +dojo._hasResource["dijit._Calendar"]=true; +dojo.provide("dijit._Calendar"); +dojo.require("dijit.Calendar"); +dojo.deprecated("dijit._Calendar is deprecated","dijit._Calendar moved to dijit.Calendar",1.5); +dijit._Calendar=dijit.Calendar; +} diff --git a/lib/dijit/_Contained.js b/lib/dijit/_Contained.js new file mode 100644 index 000000000..50d9dc559 --- /dev/null +++ b/lib/dijit/_Contained.js @@ -0,0 +1,31 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._Contained"]){ +dojo._hasResource["dijit._Contained"]=true; +dojo.provide("dijit._Contained"); +dojo.declare("dijit._Contained",null,{getParent:function(){ +var _1=dijit.getEnclosingWidget(this.domNode.parentNode); +return _1&&_1.isContainer?_1:null; +},_getSibling:function(_2){ +var _3=this.domNode; +do{ +_3=_3[_2+"Sibling"]; +}while(_3&&_3.nodeType!=1); +return _3&&dijit.byNode(_3); +},getPreviousSibling:function(){ +return this._getSibling("previous"); +},getNextSibling:function(){ +return this._getSibling("next"); +},getIndexInParent:function(){ +var p=this.getParent(); +if(!p||!p.getIndexOfChild){ +return -1; +} +return p.getIndexOfChild(this); +}}); +} diff --git a/lib/dijit/_Container.js b/lib/dijit/_Container.js new file mode 100644 index 000000000..ce8232cb3 --- /dev/null +++ b/lib/dijit/_Container.js @@ -0,0 +1,62 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._Container"]){ +dojo._hasResource["dijit._Container"]=true; +dojo.provide("dijit._Container"); +dojo.declare("dijit._Container",null,{isContainer:true,buildRendering:function(){ +this.inherited(arguments); +if(!this.containerNode){ +this.containerNode=this.domNode; +} +},addChild:function(_1,_2){ +var _3=this.containerNode; +if(_2&&typeof _2=="number"){ +var _4=this.getChildren(); +if(_4&&_4.length>=_2){ +_3=_4[_2-1].domNode; +_2="after"; +} +} +dojo.place(_1.domNode,_3,_2); +if(this._started&&!_1._started){ +_1.startup(); +} +},removeChild:function(_5){ +if(typeof _5=="number"&&_5>0){ +_5=this.getChildren()[_5]; +} +if(_5){ +var _6=_5.domNode; +if(_6&&_6.parentNode){ +_6.parentNode.removeChild(_6); +} +} +},hasChildren:function(){ +return this.getChildren().length>0; +},destroyDescendants:function(_7){ +dojo.forEach(this.getChildren(),function(_8){ +_8.destroyRecursive(_7); +}); +},_getSiblingOfChild:function(_9,_a){ +var _b=_9.domNode,_c=(_a>0?"nextSibling":"previousSibling"); +do{ +_b=_b[_c]; +}while(_b&&(_b.nodeType!=1||!dijit.byNode(_b))); +return _b&&dijit.byNode(_b); +},getIndexOfChild:function(_d){ +return dojo.indexOf(this.getChildren(),_d); +},startup:function(){ +if(this._started){ +return; +} +dojo.forEach(this.getChildren(),function(_e){ +_e.startup(); +}); +this.inherited(arguments); +}}); +} diff --git a/lib/dijit/_CssStateMixin.js b/lib/dijit/_CssStateMixin.js new file mode 100644 index 000000000..53144804f --- /dev/null +++ b/lib/dijit/_CssStateMixin.js @@ -0,0 +1,149 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._CssStateMixin"]){ +dojo._hasResource["dijit._CssStateMixin"]=true; +dojo.provide("dijit._CssStateMixin"); +dojo.declare("dijit._CssStateMixin",[],{cssStateNodes:{},postCreate:function(){ +this.inherited(arguments); +dojo.forEach(["onmouseenter","onmouseleave","onmousedown"],function(e){ +this.connect(this.domNode,e,"_cssMouseEvent"); +},this); +this.connect(this,"set",function(_1,_2){ +if(arguments.length>=2&&{disabled:true,readOnly:true,checked:true,selected:true}[_1]){ +this._setStateClass(); +} +}); +dojo.forEach(["_onFocus","_onBlur"],function(ap){ +this.connect(this,ap,"_setStateClass"); +},this); +for(var ap in this.cssStateNodes){ +this._trackMouseState(this[ap],this.cssStateNodes[ap]); +} +this._setStateClass(); +},_cssMouseEvent:function(_3){ +if(!this.disabled){ +switch(_3.type){ +case "mouseenter": +case "mouseover": +this._hovering=true; +this._active=this._mouseDown; +break; +case "mouseleave": +case "mouseout": +this._hovering=false; +this._active=false; +break; +case "mousedown": +this._active=true; +this._mouseDown=true; +var _4=this.connect(dojo.body(),"onmouseup",function(){ +this._active=false; +this._mouseDown=false; +this._setStateClass(); +this.disconnect(_4); +}); +break; +} +this._setStateClass(); +} +},_setStateClass:function(){ +var _5=this.baseClass.split(" "); +function _6(_7){ +_5=_5.concat(dojo.map(_5,function(c){ +return c+_7; +}),"dijit"+_7); +}; +if(!this.isLeftToRight()){ +_6("Rtl"); +} +if(this.checked){ +_6("Checked"); +} +if(this.state){ +_6(this.state); +} +if(this.selected){ +_6("Selected"); +} +if(this.disabled){ +_6("Disabled"); +}else{ +if(this.readOnly){ +_6("ReadOnly"); +}else{ +if(this._active){ +_6("Active"); +}else{ +if(this._hovering){ +_6("Hover"); +} +} +} +} +if(this._focused){ +_6("Focused"); +} +var tn=this.stateNode||this.domNode,_8={}; +dojo.forEach(tn.className.split(" "),function(c){ +_8[c]=true; +}); +if("_stateClasses" in this){ +dojo.forEach(this._stateClasses,function(c){ +delete _8[c]; +}); +} +dojo.forEach(_5,function(c){ +_8[c]=true; +}); +var _9=[]; +for(var c in _8){ +_9.push(c); +} +tn.className=_9.join(" "); +this._stateClasses=_5; +},_trackMouseState:function(_a,_b){ +var _c=false,_d=false,_e=false; +var _f=this,cn=dojo.hitch(this,"connect",_a); +function _10(){ +var _11=("disabled" in _f&&_f.disabled)||("readonly" in _f&&_f.readonly); +dojo.toggleClass(_a,_b+"Hover",_c&&!_d&&!_11); +dojo.toggleClass(_a,_b+"Active",_d&&!_11); +dojo.toggleClass(_a,_b+"Focused",_e&&!_11); +}; +cn("onmouseenter",function(){ +_c=true; +_10(); +}); +cn("onmouseleave",function(){ +_c=false; +_d=false; +_10(); +}); +cn("onmousedown",function(){ +_d=true; +_10(); +}); +cn("onmouseup",function(){ +_d=false; +_10(); +}); +cn("onfocus",function(){ +_e=true; +_10(); +}); +cn("onblur",function(){ +_e=false; +_10(); +}); +this.connect(this,"set",function(_12,_13){ +if(_12=="disabled"||_12=="readOnly"){ +_10(); +} +}); +}}); +} diff --git a/lib/dijit/_DialogMixin.js b/lib/dijit/_DialogMixin.js new file mode 100644 index 000000000..f67e8d04c --- /dev/null +++ b/lib/dijit/_DialogMixin.js @@ -0,0 +1,27 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._DialogMixin"]){ +dojo._hasResource["dijit._DialogMixin"]=true; +dojo.provide("dijit._DialogMixin"); +dojo.require("dijit._Widget"); +dojo.declare("dijit._DialogMixin",null,{attributeMap:dijit._Widget.prototype.attributeMap,execute:function(_1){ +},onCancel:function(){ +},onExecute:function(){ +},_onSubmit:function(){ +this.onExecute(); +this.execute(this.get("value")); +},_getFocusItems:function(_2){ +var _3=dijit._getTabNavigable(dojo.byId(_2)); +this._firstFocusItem=_3.lowest||_3.first||_2; +this._lastFocusItem=_3.last||_3.highest||this._firstFocusItem; +if(dojo.isMoz&&this._firstFocusItem.tagName.toLowerCase()=="input"&&dojo.getNodeProp(this._firstFocusItem,"type").toLowerCase()=="file"){ +dojo.attr(_2,"tabIndex","0"); +this._firstFocusItem=_2; +} +}}); +} diff --git a/lib/dijit/_HasDropDown.js b/lib/dijit/_HasDropDown.js new file mode 100644 index 000000000..6606acb00 --- /dev/null +++ b/lib/dijit/_HasDropDown.js @@ -0,0 +1,208 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._HasDropDown"]){ +dojo._hasResource["dijit._HasDropDown"]=true; +dojo.provide("dijit._HasDropDown"); +dojo.require("dijit._base.place"); +dojo.require("dijit._Widget"); +dojo.declare("dijit._HasDropDown",null,{_buttonNode:null,_arrowWrapperNode:null,_popupStateNode:null,_aroundNode:null,dropDown:null,autoWidth:true,forceWidth:false,maxHeight:0,dropDownPosition:["below","above"],_stopClickEvents:true,_onDropDownMouseDown:function(e){ +if(this.disabled||this.readOnly){ +return; +} +this._docHandler=this.connect(dojo.doc,"onmouseup","_onDropDownMouseUp"); +this.toggleDropDown(); +},_onDropDownMouseUp:function(e){ +if(e&&this._docHandler){ +this.disconnect(this._docHandler); +} +var _1=this.dropDown,_2=false; +if(e&&this._opened){ +var c=dojo.position(this._buttonNode,true); +if(!(e.pageX>=c.x&&e.pageX<=c.x+c.w)||!(e.pageY>=c.y&&e.pageY<=c.y+c.h)){ +var t=e.target; +while(t&&!_2){ +if(dojo.hasClass(t,"dijitPopup")){ +_2=true; +}else{ +t=t.parentNode; +} +} +if(_2){ +t=e.target; +if(_1.onItemClick){ +var _3; +while(t&&!(_3=dijit.byNode(t))){ +t=t.parentNode; +} +if(_3&&_3.onClick&&_3.getParent){ +_3.getParent().onItemClick(_3,e); +} +} +return; +} +} +} +if(this._opened&&_1.focus){ +window.setTimeout(dojo.hitch(_1,"focus"),1); +} +},_onDropDownClick:function(e){ +if(this._stopClickEvents){ +dojo.stopEvent(e); +} +},_setupDropdown:function(){ +this._buttonNode=this._buttonNode||this.focusNode||this.domNode; +this._popupStateNode=this._popupStateNode||this.focusNode||this._buttonNode; +this._aroundNode=this._aroundNode||this.domNode; +this.connect(this._buttonNode,"onmousedown","_onDropDownMouseDown"); +this.connect(this._buttonNode,"onclick","_onDropDownClick"); +this.connect(this._buttonNode,"onkeydown","_onDropDownKeydown"); +this.connect(this._buttonNode,"onkeyup","_onKey"); +if(this._setStateClass){ +this.connect(this,"openDropDown","_setStateClass"); +this.connect(this,"closeDropDown","_setStateClass"); +} +var _4={"after":this.isLeftToRight()?"Right":"Left","before":this.isLeftToRight()?"Left":"Right","above":"Up","below":"Down","left":"Left","right":"Right"}[this.dropDownPosition[0]]||this.dropDownPosition[0]||"Down"; +dojo.addClass(this._arrowWrapperNode||this._buttonNode,"dijit"+_4+"ArrowButton"); +},postCreate:function(){ +this._setupDropdown(); +this.inherited(arguments); +},destroyDescendants:function(){ +if(this.dropDown){ +if(!this.dropDown._destroyed){ +this.dropDown.destroyRecursive(); +} +delete this.dropDown; +} +this.inherited(arguments); +},_onDropDownKeydown:function(e){ +if(e.keyCode==dojo.keys.DOWN_ARROW||e.keyCode==dojo.keys.ENTER||e.keyCode==dojo.keys.SPACE){ +e.preventDefault(); +} +},_onKey:function(e){ +if(this.disabled||this.readOnly){ +return; +} +var d=this.dropDown; +if(d&&this._opened&&d.handleKey){ +if(d.handleKey(e)===false){ +return; +} +} +if(d&&this._opened&&e.keyCode==dojo.keys.ESCAPE){ +this.toggleDropDown(); +}else{ +if(d&&!this._opened&&(e.keyCode==dojo.keys.DOWN_ARROW||e.keyCode==dojo.keys.ENTER||e.keyCode==dojo.keys.SPACE)){ +this.toggleDropDown(); +if(d.focus){ +setTimeout(dojo.hitch(d,"focus"),1); +} +} +} +},_onBlur:function(){ +this.closeDropDown(); +this.inherited(arguments); +},isLoaded:function(){ +return true; +},loadDropDown:function(_5){ +_5(); +},toggleDropDown:function(){ +if(this.disabled||this.readOnly){ +return; +} +this.focus(); +var _6=this.dropDown; +if(!_6){ +return; +} +if(!this._opened){ +if(!this.isLoaded()){ +this.loadDropDown(dojo.hitch(this,"openDropDown")); +return; +}else{ +this.openDropDown(); +} +}else{ +this.closeDropDown(); +} +},openDropDown:function(){ +var _7=this.dropDown; +var _8=_7.domNode; +var _9=this; +if(!this._preparedNode){ +dijit.popup.moveOffScreen(_8); +this._preparedNode=true; +if(_8.style.width){ +this._explicitDDWidth=true; +} +if(_8.style.height){ +this._explicitDDHeight=true; +} +} +if(this.maxHeight||this.forceWidth||this.autoWidth){ +var _a={display:"",visibility:"hidden"}; +if(!this._explicitDDWidth){ +_a.width=""; +} +if(!this._explicitDDHeight){ +_a.height=""; +} +dojo.style(_8,_a); +var mb=dojo.marginBox(_8); +var _b=(this.maxHeight&&mb.h>this.maxHeight); +dojo.style(_8,{overflowX:"hidden",overflowY:_b?"auto":"hidden"}); +if(_b){ +mb.h=this.maxHeight; +if("w" in mb){ +mb.w+=16; +} +}else{ +delete mb.h; +} +delete mb.t; +delete mb.l; +if(this.forceWidth){ +mb.w=this.domNode.offsetWidth; +}else{ +if(this.autoWidth){ +mb.w=Math.max(mb.w,this.domNode.offsetWidth); +}else{ +delete mb.w; +} +} +if(dojo.isFunction(_7.resize)){ +_7.resize(mb); +}else{ +dojo.marginBox(_8,mb); +} +} +var _c=dijit.popup.open({parent:this,popup:_7,around:this._aroundNode,orient:dijit.getPopupAroundAlignment((this.dropDownPosition&&this.dropDownPosition.length)?this.dropDownPosition:["below"],this.isLeftToRight()),onExecute:function(){ +_9.closeDropDown(true); +},onCancel:function(){ +_9.closeDropDown(true); +},onClose:function(){ +dojo.attr(_9._popupStateNode,"popupActive",false); +dojo.removeClass(_9._popupStateNode,"dijitHasDropDownOpen"); +_9._opened=false; +_9.state=""; +}}); +dojo.attr(this._popupStateNode,"popupActive","true"); +dojo.addClass(_9._popupStateNode,"dijitHasDropDownOpen"); +this._opened=true; +this.state="Opened"; +return _c; +},closeDropDown:function(_d){ +if(this._opened){ +if(_d){ +this.focus(); +} +dijit.popup.close(this.dropDown); +this._opened=false; +this.state=""; +} +}}); +} diff --git a/lib/dijit/_KeyNavContainer.js b/lib/dijit/_KeyNavContainer.js new file mode 100644 index 000000000..839ba8319 --- /dev/null +++ b/lib/dijit/_KeyNavContainer.js @@ -0,0 +1,95 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._KeyNavContainer"]){ +dojo._hasResource["dijit._KeyNavContainer"]=true; +dojo.provide("dijit._KeyNavContainer"); +dojo.require("dijit._Container"); +dojo.declare("dijit._KeyNavContainer",dijit._Container,{tabIndex:"0",_keyNavCodes:{},connectKeyNavHandlers:function(_1,_2){ +var _3=(this._keyNavCodes={}); +var _4=dojo.hitch(this,this.focusPrev); +var _5=dojo.hitch(this,this.focusNext); +dojo.forEach(_1,function(_6){ +_3[_6]=_4; +}); +dojo.forEach(_2,function(_7){ +_3[_7]=_5; +}); +this.connect(this.domNode,"onkeypress","_onContainerKeypress"); +this.connect(this.domNode,"onfocus","_onContainerFocus"); +},startupKeyNavChildren:function(){ +dojo.forEach(this.getChildren(),dojo.hitch(this,"_startupChild")); +},addChild:function(_8,_9){ +dijit._KeyNavContainer.superclass.addChild.apply(this,arguments); +this._startupChild(_8); +},focus:function(){ +this.focusFirstChild(); +},focusFirstChild:function(){ +var _a=this._getFirstFocusableChild(); +if(_a){ +this.focusChild(_a); +} +},focusNext:function(){ +var _b=this._getNextFocusableChild(this.focusedChild,1); +this.focusChild(_b); +},focusPrev:function(){ +var _c=this._getNextFocusableChild(this.focusedChild,-1); +this.focusChild(_c,true); +},focusChild:function(_d,_e){ +if(this.focusedChild&&_d!==this.focusedChild){ +this._onChildBlur(this.focusedChild); +} +_d.focus(_e?"end":"start"); +this.focusedChild=_d; +},_startupChild:function(_f){ +_f.set("tabIndex","-1"); +this.connect(_f,"_onFocus",function(){ +_f.set("tabIndex",this.tabIndex); +}); +this.connect(_f,"_onBlur",function(){ +_f.set("tabIndex","-1"); +}); +},_onContainerFocus:function(evt){ +if(evt.target!==this.domNode){ +return; +} +this.focusFirstChild(); +dojo.attr(this.domNode,"tabIndex","-1"); +},_onBlur:function(evt){ +if(this.tabIndex){ +dojo.attr(this.domNode,"tabIndex",this.tabIndex); +} +this.inherited(arguments); +},_onContainerKeypress:function(evt){ +if(evt.ctrlKey||evt.altKey){ +return; +} +var _10=this._keyNavCodes[evt.charOrCode]; +if(_10){ +_10(); +dojo.stopEvent(evt); +} +},_onChildBlur:function(_11){ +},_getFirstFocusableChild:function(){ +return this._getNextFocusableChild(null,1); +},_getNextFocusableChild:function(_12,dir){ +if(_12){ +_12=this._getSiblingOfChild(_12,dir); +} +var _13=this.getChildren(); +for(var i=0;i<_13.length;i++){ +if(!_12){ +_12=_13[(dir>0)?0:(_13.length-1)]; +} +if(_12.isFocusable()){ +return _12; +} +_12=this._getSiblingOfChild(_12,dir); +} +return null; +}}); +} diff --git a/lib/dijit/_PaletteMixin.js b/lib/dijit/_PaletteMixin.js new file mode 100644 index 000000000..a12855d12 --- /dev/null +++ b/lib/dijit/_PaletteMixin.js @@ -0,0 +1,98 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._PaletteMixin"]){ +dojo._hasResource["dijit._PaletteMixin"]=true; +dojo.provide("dijit._PaletteMixin"); +dojo.require("dijit._CssStateMixin"); +dojo.declare("dijit._PaletteMixin",[dijit._CssStateMixin],{defaultTimeout:500,timeoutChangeRate:0.9,value:null,_selectedCell:-1,tabIndex:"0",cellClass:"dijitPaletteCell",dyeClass:"",_preparePalette:function(_1,_2){ +this._cells=[]; +var _3=this._blankGif; +var _4=dojo.getObject(this.dyeClass); +for(var _5=0;_5<_1.length;_5++){ +var _6=dojo.create("tr",{tabIndex:"-1"},this.gridNode); +for(var _7=0;_7<_1[_5].length;_7++){ +var _8=_1[_5][_7]; +if(_8){ +var _9=new _4(_8); +var _a=dojo.create("td",{"class":this.cellClass,tabIndex:"-1",title:_2[_8]}); +_9.fillCell(_a,_3); +this.connect(_a,"ondijitclick","_onCellClick"); +this._trackMouseState(_a,this.cellClass); +dojo.place(_a,_6); +_a.index=this._cells.length; +this._cells.push({node:_a,dye:_9}); +} +} +} +this._xDim=_1[0].length; +this._yDim=_1.length; +var _b={UP_ARROW:-this._xDim,DOWN_ARROW:this._xDim,RIGHT_ARROW:this.isLeftToRight()?1:-1,LEFT_ARROW:this.isLeftToRight()?-1:1}; +for(var _c in _b){ +this._connects.push(dijit.typematic.addKeyListener(this.domNode,{charOrCode:dojo.keys[_c],ctrlKey:false,altKey:false,shiftKey:false},this,function(){ +var _d=_b[_c]; +return function(_e){ +this._navigateByKey(_d,_e); +}; +}(),this.timeoutChangeRate,this.defaultTimeout)); +} +},postCreate:function(){ +this.inherited(arguments); +this._setCurrent(this._cells[0].node); +},focus:function(){ +dijit.focus(this._currentFocus); +},_onCellClick:function(_f){ +var _10=_f.currentTarget,_11=this._getDye(_10).getValue(); +this._setCurrent(_10); +setTimeout(dojo.hitch(this,function(){ +dijit.focus(_10); +this._setValueAttr(_11,true); +})); +dojo.removeClass(_10,"dijitPaletteCellHover"); +dojo.stopEvent(_f); +},_setCurrent:function(_12){ +if("_currentFocus" in this){ +dojo.attr(this._currentFocus,"tabIndex","-1"); +} +this._currentFocus=_12; +if(_12){ +dojo.attr(_12,"tabIndex",this.tabIndex); +} +},_setValueAttr:function(_13,_14){ +this.value=null; +if(this._selectedCell>=0){ +dojo.removeClass(this._cells[this._selectedCell].node,"dijitPaletteCellSelected"); +} +this._selectedCell=-1; +if(_13){ +for(var i=0;i<this._cells.length;i++){ +if(_13==this._cells[i].dye.getValue()){ +this._selectedCell=i; +this.value=_13; +dojo.addClass(this._cells[i].node,"dijitPaletteCellSelected"); +if(_14||_14===undefined){ +this.onChange(_13); +} +break; +} +} +} +},onChange:function(_15){ +},_navigateByKey:function(_16,_17){ +if(_17==-1){ +return; +} +var _18=this._currentFocus.index+_16; +if(_18<this._cells.length&&_18>-1){ +var _19=this._cells[_18].node; +this._setCurrent(_19); +setTimeout(dojo.hitch(dijit,"focus",_19),0); +} +},_getDye:function(_1a){ +return this._cells[_1a.index].dye; +}}); +} diff --git a/lib/dijit/_Templated.js b/lib/dijit/_Templated.js new file mode 100644 index 000000000..65ca20bfa --- /dev/null +++ b/lib/dijit/_Templated.js @@ -0,0 +1,184 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._Templated"]){ +dojo._hasResource["dijit._Templated"]=true; +dojo.provide("dijit._Templated"); +dojo.require("dijit._Widget"); +dojo.require("dojo.string"); +dojo.require("dojo.parser"); +dojo.require("dojo.cache"); +dojo.declare("dijit._Templated",null,{templateString:null,templatePath:null,widgetsInTemplate:false,_skipNodeCache:false,_earlyTemplatedStartup:false,constructor:function(){ +this._attachPoints=[]; +},_stringRepl:function(_1){ +var _2=this.declaredClass,_3=this; +return dojo.string.substitute(_1,this,function(_4,_5){ +if(_5.charAt(0)=="!"){ +_4=dojo.getObject(_5.substr(1),false,_3); +} +if(typeof _4=="undefined"){ +throw new Error(_2+" template:"+_5); +} +if(_4==null){ +return ""; +} +return _5.charAt(0)=="!"?_4:_4.toString().replace(/"/g,"""); +},this); +},buildRendering:function(){ +var _6=dijit._Templated.getCachedTemplate(this.templatePath,this.templateString,this._skipNodeCache); +var _7; +if(dojo.isString(_6)){ +_7=dojo._toDom(this._stringRepl(_6)); +if(_7.nodeType!=1){ +throw new Error("Invalid template: "+_6); +} +}else{ +_7=_6.cloneNode(true); +} +this.domNode=_7; +this._attachTemplateNodes(_7); +if(this.widgetsInTemplate){ +var _8=dojo.parser,_9,_a; +if(_8._query!="[dojoType]"){ +_9=_8._query; +_a=_8._attrName; +_8._query="[dojoType]"; +_8._attrName="dojoType"; +} +var cw=(this._startupWidgets=dojo.parser.parse(_7,{noStart:!this._earlyTemplatedStartup,inherited:{dir:this.dir,lang:this.lang}})); +if(_9){ +_8._query=_9; +_8._attrName=_a; +} +this._supportingWidgets=dijit.findWidgets(_7); +this._attachTemplateNodes(cw,function(n,p){ +return n[p]; +}); +} +this._fillContent(this.srcNodeRef); +},_fillContent:function(_b){ +var _c=this.containerNode; +if(_b&&_c){ +while(_b.hasChildNodes()){ +_c.appendChild(_b.firstChild); +} +} +},_attachTemplateNodes:function(_d,_e){ +_e=_e||function(n,p){ +return n.getAttribute(p); +}; +var _f=dojo.isArray(_d)?_d:(_d.all||_d.getElementsByTagName("*")); +var x=dojo.isArray(_d)?0:-1; +for(;x<_f.length;x++){ +var _10=(x==-1)?_d:_f[x]; +if(this.widgetsInTemplate&&_e(_10,"dojoType")){ +continue; +} +var _11=_e(_10,"dojoAttachPoint"); +if(_11){ +var _12,_13=_11.split(/\s*,\s*/); +while((_12=_13.shift())){ +if(dojo.isArray(this[_12])){ +this[_12].push(_10); +}else{ +this[_12]=_10; +} +this._attachPoints.push(_12); +} +} +var _14=_e(_10,"dojoAttachEvent"); +if(_14){ +var _15,_16=_14.split(/\s*,\s*/); +var _17=dojo.trim; +while((_15=_16.shift())){ +if(_15){ +var _18=null; +if(_15.indexOf(":")!=-1){ +var _19=_15.split(":"); +_15=_17(_19[0]); +_18=_17(_19[1]); +}else{ +_15=_17(_15); +} +if(!_18){ +_18=_15; +} +this.connect(_10,_15,_18); +} +} +} +var _1a=_e(_10,"waiRole"); +if(_1a){ +dijit.setWaiRole(_10,_1a); +} +var _1b=_e(_10,"waiState"); +if(_1b){ +dojo.forEach(_1b.split(/\s*,\s*/),function(_1c){ +if(_1c.indexOf("-")!=-1){ +var _1d=_1c.split("-"); +dijit.setWaiState(_10,_1d[0],_1d[1]); +} +}); +} +} +},startup:function(){ +dojo.forEach(this._startupWidgets,function(w){ +if(w&&!w._started&&w.startup){ +w.startup(); +} +}); +this.inherited(arguments); +},destroyRendering:function(){ +dojo.forEach(this._attachPoints,function(_1e){ +delete this[_1e]; +},this); +this._attachPoints=[]; +this.inherited(arguments); +}}); +dijit._Templated._templateCache={}; +dijit._Templated.getCachedTemplate=function(_1f,_20,_21){ +var _22=dijit._Templated._templateCache; +var key=_20||_1f; +var _23=_22[key]; +if(_23){ +try{ +if(!_23.ownerDocument||_23.ownerDocument==dojo.doc){ +return _23; +} +} +catch(e){ +} +dojo.destroy(_23); +} +if(!_20){ +_20=dojo.cache(_1f,{sanitize:true}); +} +_20=dojo.string.trim(_20); +if(_21||_20.match(/\$\{([^\}]+)\}/g)){ +return (_22[key]=_20); +}else{ +var _24=dojo._toDom(_20); +if(_24.nodeType!=1){ +throw new Error("Invalid template: "+_20); +} +return (_22[key]=_24); +} +}; +if(dojo.isIE){ +dojo.addOnWindowUnload(function(){ +var _25=dijit._Templated._templateCache; +for(var key in _25){ +var _26=_25[key]; +if(typeof _26=="object"){ +dojo.destroy(_26); +} +delete _25[key]; +} +}); +} +dojo.extend(dijit._Widget,{dojoAttachEvent:"",dojoAttachPoint:"",waiRole:"",waiState:""}); +} diff --git a/lib/dijit/_TimePicker.js b/lib/dijit/_TimePicker.js new file mode 100644 index 000000000..fc3ae29a8 --- /dev/null +++ b/lib/dijit/_TimePicker.js @@ -0,0 +1,265 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._TimePicker"]){ +dojo._hasResource["dijit._TimePicker"]=true; +dojo.provide("dijit._TimePicker"); +dojo.require("dijit.form._FormWidget"); +dojo.require("dojo.date.locale"); +dojo.declare("dijit._TimePicker",[dijit._Widget,dijit._Templated],{templateString:dojo.cache("dijit","templates/TimePicker.html","<div id=\"widget_${id}\" class=\"dijitMenu\"\n ><div dojoAttachPoint=\"upArrow\" class=\"dijitButtonNode dijitUpArrowButton\" dojoAttachEvent=\"onmouseenter:_buttonMouse,onmouseleave:_buttonMouse\"\n\t\t><div class=\"dijitReset dijitInline dijitArrowButtonInner\" wairole=\"presentation\" role=\"presentation\"> </div\n\t\t><div class=\"dijitArrowButtonChar\">▲</div></div\n ><div dojoAttachPoint=\"timeMenu,focusNode\" dojoAttachEvent=\"onclick:_onOptionSelected,onmouseover,onmouseout\"></div\n ><div dojoAttachPoint=\"downArrow\" class=\"dijitButtonNode dijitDownArrowButton\" dojoAttachEvent=\"onmouseenter:_buttonMouse,onmouseleave:_buttonMouse\"\n\t\t><div class=\"dijitReset dijitInline dijitArrowButtonInner\" wairole=\"presentation\" role=\"presentation\"> </div\n\t\t><div class=\"dijitArrowButtonChar\">▼</div></div\n></div>\n"),baseClass:"dijitTimePicker",clickableIncrement:"T00:15:00",visibleIncrement:"T01:00:00",visibleRange:"T05:00:00",value:new Date(),_visibleIncrement:2,_clickableIncrement:1,_totalIncrements:10,constraints:{},serialize:dojo.date.stamp.toISOString,_filterString:"",setValue:function(_1){ +dojo.deprecated("dijit._TimePicker:setValue() is deprecated. Use set('value', ...) instead.","","2.0"); +this.set("value",_1); +},_setValueAttr:function(_2){ +this.value=_2; +this._showText(); +},onOpen:function(_3){ +if(this._beenOpened&&this.domNode.parentNode){ +var p=dijit.byId(this.domNode.parentNode.dijitPopupParent); +if(p){ +var _4=p.get("displayedValue"); +if(_4&&!p.parse(_4,p.constraints)){ +this._filterString=_4; +}else{ +this._filterString=""; +} +this._showText(); +} +} +this._beenOpened=true; +},isDisabledDate:function(_5,_6){ +return false; +},_getFilteredNodes:function(_7,_8,_9){ +var _a=[],n,i=_7,_b=this._maxIncrement+Math.abs(i),_c=_9?-1:1,_d=_9?1:0,_e=_9?0:1; +do{ +i=i-_d; +n=this._createOption(i); +if(n){ +_a.push(n); +} +i=i+_e; +}while(_a.length<_8&&(i*_c)<_b); +if(_9){ +_a.reverse(); +} +return _a; +},_showText:function(){ +this.timeMenu.innerHTML=""; +var _f=dojo.date.stamp.fromISOString; +this._clickableIncrementDate=_f(this.clickableIncrement); +this._visibleIncrementDate=_f(this.visibleIncrement); +this._visibleRangeDate=_f(this.visibleRange); +var _10=function(_11){ +return _11.getHours()*60*60+_11.getMinutes()*60+_11.getSeconds(); +}; +var _12=_10(this._clickableIncrementDate); +var _13=_10(this._visibleIncrementDate); +var _14=_10(this._visibleRangeDate); +var _15=this.value.getTime(); +this._refDate=new Date(_15-_15%(_13*1000)); +this._refDate.setFullYear(1970,0,1); +this._clickableIncrement=1; +this._totalIncrements=_14/_12; +this._visibleIncrement=_13/_12; +this._maxIncrement=(60*60*24)/_12; +var _16=this._getFilteredNodes(0,this._totalIncrements>>1,true); +var _17=this._getFilteredNodes(0,this._totalIncrements>>1,false); +if(_16.length<this._totalIncrements>>1){ +_16=_16.slice(_16.length/2); +_17=_17.slice(0,_17.length/2); +} +dojo.forEach(_16.concat(_17),function(n){ +this.timeMenu.appendChild(n); +},this); +},postCreate:function(){ +if(this.constraints===dijit._TimePicker.prototype.constraints){ +this.constraints={}; +} +dojo.mixin(this,this.constraints); +if(!this.constraints.locale){ +this.constraints.locale=this.lang; +} +this.connect(this.timeMenu,dojo.isIE?"onmousewheel":"DOMMouseScroll","_mouseWheeled"); +var _18=this; +var _19=function(){ +_18._connects.push(dijit.typematic.addMouseListener.apply(null,arguments)); +}; +_19(this.upArrow,this,this._onArrowUp,1,50); +_19(this.downArrow,this,this._onArrowDown,1,50); +var _1a=function(cb){ +return function(cnt){ +if(cnt>0){ +cb.call(this,arguments); +} +}; +}; +var _1b=function(_1c,cb){ +return function(e){ +dojo.stopEvent(e); +dijit.typematic.trigger(e,this,_1c,_1a(cb),_1c,1,50); +}; +}; +this.connect(this.upArrow,"onmouseover",_1b(this.upArrow,this._onArrowUp)); +this.connect(this.downArrow,"onmouseover",_1b(this.downArrow,this._onArrowDown)); +this.inherited(arguments); +},_buttonMouse:function(e){ +dojo.toggleClass(e.currentTarget,e.currentTarget==this.upArrow?"dijitUpArrowHover":"dijitDownArrowHover",e.type=="mouseenter"||e.type=="mouseover"); +},_createOption:function(_1d){ +var _1e=new Date(this._refDate); +var _1f=this._clickableIncrementDate; +_1e.setHours(_1e.getHours()+_1f.getHours()*_1d,_1e.getMinutes()+_1f.getMinutes()*_1d,_1e.getSeconds()+_1f.getSeconds()*_1d); +if(this.constraints.selector=="time"){ +_1e.setFullYear(1970,0,1); +} +var _20=dojo.date.locale.format(_1e,this.constraints); +if(this._filterString&&_20.toLowerCase().indexOf(this._filterString)!==0){ +return null; +} +var div=dojo.create("div",{"class":this.baseClass+"Item"}); +div.date=_1e; +div.index=_1d; +dojo.create("div",{"class":this.baseClass+"ItemInner",innerHTML:_20},div); +if(_1d%this._visibleIncrement<1&&_1d%this._visibleIncrement>-1){ +dojo.addClass(div,this.baseClass+"Marker"); +}else{ +if(!(_1d%this._clickableIncrement)){ +dojo.addClass(div,this.baseClass+"Tick"); +} +} +if(this.isDisabledDate(_1e)){ +dojo.addClass(div,this.baseClass+"ItemDisabled"); +} +if(!dojo.date.compare(this.value,_1e,this.constraints.selector)){ +div.selected=true; +dojo.addClass(div,this.baseClass+"ItemSelected"); +if(dojo.hasClass(div,this.baseClass+"Marker")){ +dojo.addClass(div,this.baseClass+"MarkerSelected"); +}else{ +dojo.addClass(div,this.baseClass+"TickSelected"); +} +} +return div; +},_onOptionSelected:function(tgt){ +var _21=tgt.target.date||tgt.target.parentNode.date; +if(!_21||this.isDisabledDate(_21)){ +return; +} +this._highlighted_option=null; +this.set("value",_21); +this.onValueSelected(_21); +},onValueSelected:function(_22){ +},_highlightOption:function(_23,_24){ +if(!_23){ +return; +} +if(_24){ +if(this._highlighted_option){ +this._highlightOption(this._highlighted_option,false); +} +this._highlighted_option=_23; +}else{ +if(this._highlighted_option!==_23){ +return; +}else{ +this._highlighted_option=null; +} +} +dojo.toggleClass(_23,this.baseClass+"ItemHover",_24); +if(dojo.hasClass(_23,this.baseClass+"Marker")){ +dojo.toggleClass(_23,this.baseClass+"MarkerHover",_24); +}else{ +dojo.toggleClass(_23,this.baseClass+"TickHover",_24); +} +},onmouseover:function(e){ +this._keyboardSelected=null; +var tgr=(e.target.parentNode===this.timeMenu)?e.target:e.target.parentNode; +if(!dojo.hasClass(tgr,this.baseClass+"Item")){ +return; +} +this._highlightOption(tgr,true); +},onmouseout:function(e){ +this._keyboardSelected=null; +var tgr=(e.target.parentNode===this.timeMenu)?e.target:e.target.parentNode; +this._highlightOption(tgr,false); +},_mouseWheeled:function(e){ +this._keyboardSelected=null; +dojo.stopEvent(e); +var _25=(dojo.isIE?e.wheelDelta:-e.detail); +this[(_25>0?"_onArrowUp":"_onArrowDown")](); +},_onArrowUp:function(_26){ +if(typeof _26=="number"&&_26==-1){ +return; +} +if(!this.timeMenu.childNodes.length){ +return; +} +var _27=this.timeMenu.childNodes[0].index; +var _28=this._getFilteredNodes(_27,1,true); +if(_28.length){ +this.timeMenu.removeChild(this.timeMenu.childNodes[this.timeMenu.childNodes.length-1]); +this.timeMenu.insertBefore(_28[0],this.timeMenu.childNodes[0]); +} +},_onArrowDown:function(_29){ +if(typeof _29=="number"&&_29==-1){ +return; +} +if(!this.timeMenu.childNodes.length){ +return; +} +var _2a=this.timeMenu.childNodes[this.timeMenu.childNodes.length-1].index+1; +var _2b=this._getFilteredNodes(_2a,1,false); +if(_2b.length){ +this.timeMenu.removeChild(this.timeMenu.childNodes[0]); +this.timeMenu.appendChild(_2b[0]); +} +},handleKey:function(e){ +var dk=dojo.keys; +if(e.keyChar||e.charOrCode===dk.BACKSPACE||e.charOrCode==dk.DELETE){ +setTimeout(dojo.hitch(this,function(){ +this._filterString=e.target.value.toLowerCase(); +this._showText(); +}),1); +}else{ +if(e.charOrCode==dk.DOWN_ARROW||e.charOrCode==dk.UP_ARROW){ +dojo.stopEvent(e); +if(this._highlighted_option&&!this._highlighted_option.parentNode){ +this._highlighted_option=null; +} +var _2c=this.timeMenu,tgt=this._highlighted_option||dojo.query("."+this.baseClass+"ItemSelected",_2c)[0]; +if(!tgt){ +tgt=_2c.childNodes[0]; +}else{ +if(_2c.childNodes.length){ +if(e.charOrCode==dk.DOWN_ARROW&&!tgt.nextSibling){ +this._onArrowDown(); +}else{ +if(e.charOrCode==dk.UP_ARROW&&!tgt.previousSibling){ +this._onArrowUp(); +} +} +if(e.charOrCode==dk.DOWN_ARROW){ +tgt=tgt.nextSibling; +}else{ +tgt=tgt.previousSibling; +} +} +} +this._highlightOption(tgt,true); +this._keyboardSelected=tgt; +}else{ +if(this._highlighted_option&&(e.charOrCode==dk.ENTER||e.charOrCode===dk.TAB)){ +if(!this._keyboardSelected&&e.charOrCode===dk.TAB){ +return; +} +if(e.charOrCode==dk.ENTER){ +dojo.stopEvent(e); +} +this._onOptionSelected({target:this._highlighted_option}); +} +} +} +}}); +} diff --git a/lib/dijit/_Widget.js b/lib/dijit/_Widget.js new file mode 100644 index 000000000..d4a2ce96a --- /dev/null +++ b/lib/dijit/_Widget.js @@ -0,0 +1,345 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._Widget"]){ +dojo._hasResource["dijit._Widget"]=true; +dojo.provide("dijit._Widget"); +dojo.require("dijit._base"); +dojo.connect(dojo,"_connect",function(_1,_2){ +if(_1&&dojo.isFunction(_1._onConnect)){ +_1._onConnect(_2); +} +}); +dijit._connectOnUseEventHandler=function(_3){ +}; +dijit._lastKeyDownNode=null; +if(dojo.isIE){ +(function(){ +var _4=function(_5){ +dijit._lastKeyDownNode=_5.srcElement; +}; +dojo.doc.attachEvent("onkeydown",_4); +dojo.addOnWindowUnload(function(){ +dojo.doc.detachEvent("onkeydown",_4); +}); +})(); +}else{ +dojo.doc.addEventListener("keydown",function(_6){ +dijit._lastKeyDownNode=_6.target; +},true); +} +(function(){ +var _7={},_8=function(_9){ +var dc=_9.declaredClass; +if(!_7[dc]){ +var r=[],_a,_b=_9.constructor.prototype; +for(var _c in _b){ +if(dojo.isFunction(_b[_c])&&(_a=_c.match(/^_set([a-zA-Z]*)Attr$/))&&_a[1]){ +r.push(_a[1].charAt(0).toLowerCase()+_a[1].substr(1)); +} +} +_7[dc]=r; +} +return _7[dc]||[]; +}; +dojo.declare("dijit._Widget",null,{id:"",lang:"",dir:"","class":"",style:"",title:"",tooltip:"",baseClass:"",srcNodeRef:null,domNode:null,containerNode:null,attributeMap:{id:"",dir:"",lang:"","class":"",style:"",title:""},_deferredConnects:{onClick:"",onDblClick:"",onKeyDown:"",onKeyPress:"",onKeyUp:"",onMouseMove:"",onMouseDown:"",onMouseOut:"",onMouseOver:"",onMouseLeave:"",onMouseEnter:"",onMouseUp:""},onClick:dijit._connectOnUseEventHandler,onDblClick:dijit._connectOnUseEventHandler,onKeyDown:dijit._connectOnUseEventHandler,onKeyPress:dijit._connectOnUseEventHandler,onKeyUp:dijit._connectOnUseEventHandler,onMouseDown:dijit._connectOnUseEventHandler,onMouseMove:dijit._connectOnUseEventHandler,onMouseOut:dijit._connectOnUseEventHandler,onMouseOver:dijit._connectOnUseEventHandler,onMouseLeave:dijit._connectOnUseEventHandler,onMouseEnter:dijit._connectOnUseEventHandler,onMouseUp:dijit._connectOnUseEventHandler,_blankGif:(dojo.config.blankGif||dojo.moduleUrl("dojo","resources/blank.gif")).toString(),postscript:function(_d,_e){ +this.create(_d,_e); +},create:function(_f,_10){ +this.srcNodeRef=dojo.byId(_10); +this._connects=[]; +this._subscribes=[]; +this._deferredConnects=dojo.clone(this._deferredConnects); +for(var _11 in this.attributeMap){ +delete this._deferredConnects[_11]; +} +for(_11 in this._deferredConnects){ +if(this[_11]!==dijit._connectOnUseEventHandler){ +delete this._deferredConnects[_11]; +} +} +if(this.srcNodeRef&&(typeof this.srcNodeRef.id=="string")){ +this.id=this.srcNodeRef.id; +} +if(_f){ +this.params=_f; +dojo.mixin(this,_f); +} +this.postMixInProperties(); +if(!this.id){ +this.id=dijit.getUniqueId(this.declaredClass.replace(/\./g,"_")); +} +dijit.registry.add(this); +this.buildRendering(); +if(this.domNode){ +this._applyAttributes(); +var _12=this.srcNodeRef; +if(_12&&_12.parentNode){ +_12.parentNode.replaceChild(this.domNode,_12); +} +for(_11 in this.params){ +this._onConnect(_11); +} +} +if(this.domNode){ +this.domNode.setAttribute("widgetId",this.id); +} +this.postCreate(); +if(this.srcNodeRef&&!this.srcNodeRef.parentNode){ +delete this.srcNodeRef; +} +this._created=true; +},_applyAttributes:function(){ +var _13=function(_14,_15){ +if((_15.params&&_14 in _15.params)||_15[_14]){ +_15.set(_14,_15[_14]); +} +}; +for(var _16 in this.attributeMap){ +_13(_16,this); +} +dojo.forEach(_8(this),function(a){ +if(!(a in this.attributeMap)){ +_13(a,this); +} +},this); +},postMixInProperties:function(){ +},buildRendering:function(){ +this.domNode=this.srcNodeRef||dojo.create("div"); +},postCreate:function(){ +if(this.baseClass){ +var _17=this.baseClass.split(" "); +if(!this.isLeftToRight()){ +_17=_17.concat(dojo.map(_17,function(_18){ +return _18+"Rtl"; +})); +} +dojo.addClass(this.domNode,_17); +} +},startup:function(){ +this._started=true; +},destroyRecursive:function(_19){ +this._beingDestroyed=true; +this.destroyDescendants(_19); +this.destroy(_19); +},destroy:function(_1a){ +this._beingDestroyed=true; +this.uninitialize(); +var d=dojo,dfe=d.forEach,dun=d.unsubscribe; +dfe(this._connects,function(_1b){ +dfe(_1b,d.disconnect); +}); +dfe(this._subscribes,function(_1c){ +dun(_1c); +}); +dfe(this._supportingWidgets||[],function(w){ +if(w.destroyRecursive){ +w.destroyRecursive(); +}else{ +if(w.destroy){ +w.destroy(); +} +} +}); +this.destroyRendering(_1a); +dijit.registry.remove(this.id); +this._destroyed=true; +},destroyRendering:function(_1d){ +if(this.bgIframe){ +this.bgIframe.destroy(_1d); +delete this.bgIframe; +} +if(this.domNode){ +if(_1d){ +dojo.removeAttr(this.domNode,"widgetId"); +}else{ +dojo.destroy(this.domNode); +} +delete this.domNode; +} +if(this.srcNodeRef){ +if(!_1d){ +dojo.destroy(this.srcNodeRef); +} +delete this.srcNodeRef; +} +},destroyDescendants:function(_1e){ +dojo.forEach(this.getChildren(),function(_1f){ +if(_1f.destroyRecursive){ +_1f.destroyRecursive(_1e); +} +}); +},uninitialize:function(){ +return false; +},onFocus:function(){ +},onBlur:function(){ +},_onFocus:function(e){ +this.onFocus(); +},_onBlur:function(){ +this.onBlur(); +},_onConnect:function(_20){ +if(_20 in this._deferredConnects){ +var _21=this[this._deferredConnects[_20]||"domNode"]; +this.connect(_21,_20.toLowerCase(),_20); +delete this._deferredConnects[_20]; +} +},_setClassAttr:function(_22){ +var _23=this[this.attributeMap["class"]||"domNode"]; +dojo.removeClass(_23,this["class"]); +this["class"]=_22; +dojo.addClass(_23,_22); +},_setStyleAttr:function(_24){ +var _25=this[this.attributeMap.style||"domNode"]; +if(dojo.isObject(_24)){ +dojo.style(_25,_24); +}else{ +if(_25.style.cssText){ +_25.style.cssText+="; "+_24; +}else{ +_25.style.cssText=_24; +} +} +this.style=_24; +},setAttribute:function(_26,_27){ +dojo.deprecated(this.declaredClass+"::setAttribute(attr, value) is deprecated. Use set() instead.","","2.0"); +this.set(_26,_27); +},_attrToDom:function(_28,_29){ +var _2a=this.attributeMap[_28]; +dojo.forEach(dojo.isArray(_2a)?_2a:[_2a],function(_2b){ +var _2c=this[_2b.node||_2b||"domNode"]; +var _2d=_2b.type||"attribute"; +switch(_2d){ +case "attribute": +if(dojo.isFunction(_29)){ +_29=dojo.hitch(this,_29); +} +var _2e=_2b.attribute?_2b.attribute:(/^on[A-Z][a-zA-Z]*$/.test(_28)?_28.toLowerCase():_28); +dojo.attr(_2c,_2e,_29); +break; +case "innerText": +_2c.innerHTML=""; +_2c.appendChild(dojo.doc.createTextNode(_29)); +break; +case "innerHTML": +_2c.innerHTML=_29; +break; +case "class": +dojo.removeClass(_2c,this[_28]); +dojo.addClass(_2c,_29); +break; +} +},this); +this[_28]=_29; +},attr:function(_2f,_30){ +if(dojo.config.isDebug){ +var _31=arguments.callee._ach||(arguments.callee._ach={}),_32=(arguments.callee.caller||"unknown caller").toString(); +if(!_31[_32]){ +dojo.deprecated(this.declaredClass+"::attr() is deprecated. Use get() or set() instead, called from "+_32,"","2.0"); +_31[_32]=true; +} +} +var _33=arguments.length; +if(_33>=2||typeof _2f==="object"){ +return this.set.apply(this,arguments); +}else{ +return this.get(_2f); +} +},get:function(_34){ +var _35=this._getAttrNames(_34); +return this[_35.g]?this[_35.g]():this[_34]; +},set:function(_36,_37){ +if(typeof _36==="object"){ +for(var x in _36){ +this.set(x,_36[x]); +} +return this; +} +var _38=this._getAttrNames(_36); +if(this[_38.s]){ +var _39=this[_38.s].apply(this,Array.prototype.slice.call(arguments,1)); +}else{ +if(_36 in this.attributeMap){ +this._attrToDom(_36,_37); +} +var _3a=this[_36]; +this[_36]=_37; +} +return _39||this; +},_attrPairNames:{},_getAttrNames:function(_3b){ +var apn=this._attrPairNames; +if(apn[_3b]){ +return apn[_3b]; +} +var uc=_3b.charAt(0).toUpperCase()+_3b.substr(1); +return (apn[_3b]={n:_3b+"Node",s:"_set"+uc+"Attr",g:"_get"+uc+"Attr"}); +},toString:function(){ +return "[Widget "+this.declaredClass+", "+(this.id||"NO ID")+"]"; +},getDescendants:function(){ +return this.containerNode?dojo.query("[widgetId]",this.containerNode).map(dijit.byNode):[]; +},getChildren:function(){ +return this.containerNode?dijit.findWidgets(this.containerNode):[]; +},nodesWithKeyClick:["input","button"],connect:function(obj,_3c,_3d){ +var d=dojo,dc=d._connect,_3e=[]; +if(_3c=="ondijitclick"){ +if(dojo.indexOf(this.nodesWithKeyClick,obj.nodeName.toLowerCase())==-1){ +var m=d.hitch(this,_3d); +_3e.push(dc(obj,"onkeydown",this,function(e){ +if((e.keyCode==d.keys.ENTER||e.keyCode==d.keys.SPACE)&&!e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey){ +dijit._lastKeyDownNode=e.target; +e.preventDefault(); +} +}),dc(obj,"onkeyup",this,function(e){ +if((e.keyCode==d.keys.ENTER||e.keyCode==d.keys.SPACE)&&e.target===dijit._lastKeyDownNode&&!e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey){ +dijit._lastKeyDownNode=null; +return m(e); +} +})); +} +_3c="onclick"; +} +_3e.push(dc(obj,_3c,this,_3d)); +this._connects.push(_3e); +return _3e; +},disconnect:function(_3f){ +for(var i=0;i<this._connects.length;i++){ +if(this._connects[i]==_3f){ +dojo.forEach(_3f,dojo.disconnect); +this._connects.splice(i,1); +return; +} +} +},subscribe:function(_40,_41){ +var d=dojo,_42=d.subscribe(_40,this,_41); +this._subscribes.push(_42); +return _42; +},unsubscribe:function(_43){ +for(var i=0;i<this._subscribes.length;i++){ +if(this._subscribes[i]==_43){ +dojo.unsubscribe(_43); +this._subscribes.splice(i,1); +return; +} +} +},isLeftToRight:function(){ +return this.dir?(this.dir=="ltr"):dojo._isBodyLtr(); +},isFocusable:function(){ +return this.focus&&(dojo.style(this.domNode,"display")!="none"); +},placeAt:function(_44,_45){ +if(_44.declaredClass&&_44.addChild){ +_44.addChild(this,_45); +}else{ +dojo.place(this.domNode,_44,_45); +} +return this; +},_onShow:function(){ +this.onShow(); +},onShow:function(){ +},onHide:function(){ +},onClose:function(){ +return true; +}}); +})(); +} diff --git a/lib/dijit/_base.js b/lib/dijit/_base.js new file mode 100644 index 000000000..ad89055f8 --- /dev/null +++ b/lib/dijit/_base.js @@ -0,0 +1,20 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._base"]){ +dojo._hasResource["dijit._base"]=true; +dojo.provide("dijit._base"); +dojo.require("dijit._base.focus"); +dojo.require("dijit._base.manager"); +dojo.require("dijit._base.place"); +dojo.require("dijit._base.popup"); +dojo.require("dijit._base.scroll"); +dojo.require("dijit._base.sniff"); +dojo.require("dijit._base.typematic"); +dojo.require("dijit._base.wai"); +dojo.require("dijit._base.window"); +} diff --git a/lib/dijit/_base/focus.js b/lib/dijit/_base/focus.js new file mode 100644 index 000000000..32be06aa7 --- /dev/null +++ b/lib/dijit/_base/focus.js @@ -0,0 +1,299 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._base.focus"]){ +dojo._hasResource["dijit._base.focus"]=true; +dojo.provide("dijit._base.focus"); +dojo.require("dojo.window"); +dojo.require("dijit._base.manager"); +dojo.mixin(dijit,{_curFocus:null,_prevFocus:null,isCollapsed:function(){ +return dijit.getBookmark().isCollapsed; +},getBookmark:function(){ +var bm,rg,tg,_1=dojo.doc.selection,cf=dijit._curFocus; +if(dojo.global.getSelection){ +_1=dojo.global.getSelection(); +if(_1){ +if(_1.isCollapsed){ +tg=cf?cf.tagName:""; +if(tg){ +tg=tg.toLowerCase(); +if(tg=="textarea"||(tg=="input"&&(!cf.type||cf.type.toLowerCase()=="text"))){ +_1={start:cf.selectionStart,end:cf.selectionEnd,node:cf,pRange:true}; +return {isCollapsed:(_1.end<=_1.start),mark:_1}; +} +} +bm={isCollapsed:true}; +}else{ +rg=_1.getRangeAt(0); +bm={isCollapsed:false,mark:rg.cloneRange()}; +} +} +}else{ +if(_1){ +tg=cf?cf.tagName:""; +tg=tg.toLowerCase(); +if(cf&&tg&&(tg=="button"||tg=="textarea"||tg=="input")){ +if(_1.type&&_1.type.toLowerCase()=="none"){ +return {isCollapsed:true,mark:null}; +}else{ +rg=_1.createRange(); +return {isCollapsed:rg.text&&rg.text.length?false:true,mark:{range:rg,pRange:true}}; +} +} +bm={}; +try{ +rg=_1.createRange(); +bm.isCollapsed=!(_1.type=="Text"?rg.htmlText.length:rg.length); +} +catch(e){ +bm.isCollapsed=true; +return bm; +} +if(_1.type.toUpperCase()=="CONTROL"){ +if(rg.length){ +bm.mark=[]; +var i=0,_2=rg.length; +while(i<_2){ +bm.mark.push(rg.item(i++)); +} +}else{ +bm.isCollapsed=true; +bm.mark=null; +} +}else{ +bm.mark=rg.getBookmark(); +} +}else{ +console.warn("No idea how to store the current selection for this browser!"); +} +} +return bm; +},moveToBookmark:function(_3){ +var _4=dojo.doc,_5=_3.mark; +if(_5){ +if(dojo.global.getSelection){ +var _6=dojo.global.getSelection(); +if(_6&&_6.removeAllRanges){ +if(_5.pRange){ +var r=_5; +var n=r.node; +n.selectionStart=r.start; +n.selectionEnd=r.end; +}else{ +_6.removeAllRanges(); +_6.addRange(_5); +} +}else{ +console.warn("No idea how to restore selection for this browser!"); +} +}else{ +if(_4.selection&&_5){ +var rg; +if(_5.pRange){ +rg=_5.range; +}else{ +if(dojo.isArray(_5)){ +rg=_4.body.createControlRange(); +dojo.forEach(_5,function(n){ +rg.addElement(n); +}); +}else{ +rg=_4.body.createTextRange(); +rg.moveToBookmark(_5); +} +} +rg.select(); +} +} +} +},getFocus:function(_7,_8){ +var _9=!dijit._curFocus||(_7&&dojo.isDescendant(dijit._curFocus,_7.domNode))?dijit._prevFocus:dijit._curFocus; +return {node:_9,bookmark:(_9==dijit._curFocus)&&dojo.withGlobal(_8||dojo.global,dijit.getBookmark),openedForWindow:_8}; +},focus:function(_a){ +if(!_a){ +return; +} +var _b="node" in _a?_a.node:_a,_c=_a.bookmark,_d=_a.openedForWindow,_e=_c?_c.isCollapsed:false; +if(_b){ +var _f=(_b.tagName.toLowerCase()=="iframe")?_b.contentWindow:_b; +if(_f&&_f.focus){ +try{ +_f.focus(); +} +catch(e){ +} +} +dijit._onFocusNode(_b); +} +if(_c&&dojo.withGlobal(_d||dojo.global,dijit.isCollapsed)&&!_e){ +if(_d){ +_d.focus(); +} +try{ +dojo.withGlobal(_d||dojo.global,dijit.moveToBookmark,null,[_c]); +} +catch(e2){ +} +} +},_activeStack:[],registerIframe:function(_10){ +return dijit.registerWin(_10.contentWindow,_10); +},unregisterIframe:function(_11){ +dijit.unregisterWin(_11); +},registerWin:function(_12,_13){ +var _14=function(evt){ +dijit._justMouseDowned=true; +setTimeout(function(){ +dijit._justMouseDowned=false; +},0); +if(dojo.isIE&&evt&&evt.srcElement&&evt.srcElement.parentNode==null){ +return; +} +dijit._onTouchNode(_13||evt.target||evt.srcElement,"mouse"); +}; +var doc=dojo.isIE?_12.document.documentElement:_12.document; +if(doc){ +if(dojo.isIE){ +doc.attachEvent("onmousedown",_14); +var _15=function(evt){ +if(evt.srcElement.tagName.toLowerCase()!="#document"&&dijit.isTabNavigable(evt.srcElement)){ +dijit._onFocusNode(_13||evt.srcElement); +}else{ +dijit._onTouchNode(_13||evt.srcElement); +} +}; +doc.attachEvent("onactivate",_15); +var _16=function(evt){ +dijit._onBlurNode(_13||evt.srcElement); +}; +doc.attachEvent("ondeactivate",_16); +return function(){ +doc.detachEvent("onmousedown",_14); +doc.detachEvent("onactivate",_15); +doc.detachEvent("ondeactivate",_16); +doc=null; +}; +}else{ +doc.addEventListener("mousedown",_14,true); +var _17=function(evt){ +dijit._onFocusNode(_13||evt.target); +}; +doc.addEventListener("focus",_17,true); +var _18=function(evt){ +dijit._onBlurNode(_13||evt.target); +}; +doc.addEventListener("blur",_18,true); +return function(){ +doc.removeEventListener("mousedown",_14,true); +doc.removeEventListener("focus",_17,true); +doc.removeEventListener("blur",_18,true); +doc=null; +}; +} +} +},unregisterWin:function(_19){ +_19&&_19(); +},_onBlurNode:function(_1a){ +dijit._prevFocus=dijit._curFocus; +dijit._curFocus=null; +if(dijit._justMouseDowned){ +return; +} +if(dijit._clearActiveWidgetsTimer){ +clearTimeout(dijit._clearActiveWidgetsTimer); +} +dijit._clearActiveWidgetsTimer=setTimeout(function(){ +delete dijit._clearActiveWidgetsTimer; +dijit._setStack([]); +dijit._prevFocus=null; +},100); +},_onTouchNode:function(_1b,by){ +if(dijit._clearActiveWidgetsTimer){ +clearTimeout(dijit._clearActiveWidgetsTimer); +delete dijit._clearActiveWidgetsTimer; +} +var _1c=[]; +try{ +while(_1b){ +var _1d=dojo.attr(_1b,"dijitPopupParent"); +if(_1d){ +_1b=dijit.byId(_1d).domNode; +}else{ +if(_1b.tagName&&_1b.tagName.toLowerCase()=="body"){ +if(_1b===dojo.body()){ +break; +} +_1b=dojo.window.get(_1b.ownerDocument).frameElement; +}else{ +var id=_1b.getAttribute&&_1b.getAttribute("widgetId"),_1e=id&&dijit.byId(id); +if(_1e&&!(by=="mouse"&&_1e.get("disabled"))){ +_1c.unshift(id); +} +_1b=_1b.parentNode; +} +} +} +} +catch(e){ +} +dijit._setStack(_1c,by); +},_onFocusNode:function(_1f){ +if(!_1f){ +return; +} +if(_1f.nodeType==9){ +return; +} +dijit._onTouchNode(_1f); +if(_1f==dijit._curFocus){ +return; +} +if(dijit._curFocus){ +dijit._prevFocus=dijit._curFocus; +} +dijit._curFocus=_1f; +dojo.publish("focusNode",[_1f]); +},_setStack:function(_20,by){ +var _21=dijit._activeStack; +dijit._activeStack=_20; +for(var _22=0;_22<Math.min(_21.length,_20.length);_22++){ +if(_21[_22]!=_20[_22]){ +break; +} +} +var _23; +for(var i=_21.length-1;i>=_22;i--){ +_23=dijit.byId(_21[i]); +if(_23){ +_23._focused=false; +_23._hasBeenBlurred=true; +if(_23._onBlur){ +_23._onBlur(by); +} +dojo.publish("widgetBlur",[_23,by]); +} +} +for(i=_22;i<_20.length;i++){ +_23=dijit.byId(_20[i]); +if(_23){ +_23._focused=true; +if(_23._onFocus){ +_23._onFocus(by); +} +dojo.publish("widgetFocus",[_23,by]); +} +} +}}); +dojo.addOnLoad(function(){ +var _24=dijit.registerWin(window); +if(dojo.isIE){ +dojo.addOnWindowUnload(function(){ +dijit.unregisterWin(_24); +_24=null; +}); +} +}); +} diff --git a/lib/dijit/_base/manager.js b/lib/dijit/_base/manager.js new file mode 100644 index 000000000..d8d1cf6d5 --- /dev/null +++ b/lib/dijit/_base/manager.js @@ -0,0 +1,245 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._base.manager"]){ +dojo._hasResource["dijit._base.manager"]=true; +dojo.provide("dijit._base.manager"); +dojo.declare("dijit.WidgetSet",null,{constructor:function(){ +this._hash={}; +this.length=0; +},add:function(_1){ +if(this._hash[_1.id]){ +throw new Error("Tried to register widget with id=="+_1.id+" but that id is already registered"); +} +this._hash[_1.id]=_1; +this.length++; +},remove:function(id){ +if(this._hash[id]){ +delete this._hash[id]; +this.length--; +} +},forEach:function(_2,_3){ +_3=_3||dojo.global; +var i=0,id; +for(id in this._hash){ +_2.call(_3,this._hash[id],i++,this._hash); +} +return this; +},filter:function(_4,_5){ +_5=_5||dojo.global; +var _6=new dijit.WidgetSet(),i=0,id; +for(id in this._hash){ +var w=this._hash[id]; +if(_4.call(_5,w,i++,this._hash)){ +_6.add(w); +} +} +return _6; +},byId:function(id){ +return this._hash[id]; +},byClass:function(_7){ +var _8=new dijit.WidgetSet(),id,_9; +for(id in this._hash){ +_9=this._hash[id]; +if(_9.declaredClass==_7){ +_8.add(_9); +} +} +return _8; +},toArray:function(){ +var ar=[]; +for(var id in this._hash){ +ar.push(this._hash[id]); +} +return ar; +},map:function(_a,_b){ +return dojo.map(this.toArray(),_a,_b); +},every:function(_c,_d){ +_d=_d||dojo.global; +var x=0,i; +for(i in this._hash){ +if(!_c.call(_d,this._hash[i],x++,this._hash)){ +return false; +} +} +return true; +},some:function(_e,_f){ +_f=_f||dojo.global; +var x=0,i; +for(i in this._hash){ +if(_e.call(_f,this._hash[i],x++,this._hash)){ +return true; +} +} +return false; +}}); +(function(){ +dijit.registry=new dijit.WidgetSet(); +var _10=dijit.registry._hash,_11=dojo.attr,_12=dojo.hasAttr,_13=dojo.style; +dijit.byId=function(id){ +return typeof id=="string"?_10[id]:id; +}; +var _14={}; +dijit.getUniqueId=function(_15){ +var id; +do{ +id=_15+"_"+(_15 in _14?++_14[_15]:_14[_15]=0); +}while(_10[id]); +return dijit._scopeName=="dijit"?id:dijit._scopeName+"_"+id; +}; +dijit.findWidgets=function(_16){ +var _17=[]; +function _18(_19){ +for(var _1a=_19.firstChild;_1a;_1a=_1a.nextSibling){ +if(_1a.nodeType==1){ +var _1b=_1a.getAttribute("widgetId"); +if(_1b){ +_17.push(_10[_1b]); +}else{ +_18(_1a); +} +} +} +}; +_18(_16); +return _17; +}; +dijit._destroyAll=function(){ +dijit._curFocus=null; +dijit._prevFocus=null; +dijit._activeStack=[]; +dojo.forEach(dijit.findWidgets(dojo.body()),function(_1c){ +if(!_1c._destroyed){ +if(_1c.destroyRecursive){ +_1c.destroyRecursive(); +}else{ +if(_1c.destroy){ +_1c.destroy(); +} +} +} +}); +}; +if(dojo.isIE){ +dojo.addOnWindowUnload(function(){ +dijit._destroyAll(); +}); +} +dijit.byNode=function(_1d){ +return _10[_1d.getAttribute("widgetId")]; +}; +dijit.getEnclosingWidget=function(_1e){ +while(_1e){ +var id=_1e.getAttribute&&_1e.getAttribute("widgetId"); +if(id){ +return _10[id]; +} +_1e=_1e.parentNode; +} +return null; +}; +var _1f=(dijit._isElementShown=function(_20){ +var s=_13(_20); +return (s.visibility!="hidden")&&(s.visibility!="collapsed")&&(s.display!="none")&&(_11(_20,"type")!="hidden"); +}); +dijit.hasDefaultTabStop=function(_21){ +switch(_21.nodeName.toLowerCase()){ +case "a": +return _12(_21,"href"); +case "area": +case "button": +case "input": +case "object": +case "select": +case "textarea": +return true; +case "iframe": +if(dojo.isMoz){ +try{ +return _21.contentDocument.designMode=="on"; +} +catch(err){ +return false; +} +}else{ +if(dojo.isWebKit){ +var doc=_21.contentDocument,_22=doc&&doc.body; +return _22&&_22.contentEditable=="true"; +}else{ +try{ +doc=_21.contentWindow.document; +_22=doc&&doc.body; +return _22&&_22.firstChild&&_22.firstChild.contentEditable=="true"; +} +catch(e){ +return false; +} +} +} +default: +return _21.contentEditable=="true"; +} +}; +var _23=(dijit.isTabNavigable=function(_24){ +if(_11(_24,"disabled")){ +return false; +}else{ +if(_12(_24,"tabIndex")){ +return _11(_24,"tabIndex")>=0; +}else{ +return dijit.hasDefaultTabStop(_24); +} +} +}); +dijit._getTabNavigable=function(_25){ +var _26,_27,_28,_29,_2a,_2b; +var _2c=function(_2d){ +dojo.query("> *",_2d).forEach(function(_2e){ +if((dojo.isIE&&_2e.scopeName!=="HTML")||!_1f(_2e)){ +return; +} +if(_23(_2e)){ +var _2f=_11(_2e,"tabIndex"); +if(!_12(_2e,"tabIndex")||_2f==0){ +if(!_26){ +_26=_2e; +} +_27=_2e; +}else{ +if(_2f>0){ +if(!_28||_2f<_29){ +_29=_2f; +_28=_2e; +} +if(!_2a||_2f>=_2b){ +_2b=_2f; +_2a=_2e; +} +} +} +} +if(_2e.nodeName.toUpperCase()!="SELECT"){ +_2c(_2e); +} +}); +}; +if(_1f(_25)){ +_2c(_25); +} +return {first:_26,last:_27,lowest:_28,highest:_2a}; +}; +dijit.getFirstInTabbingOrder=function(_30){ +var _31=dijit._getTabNavigable(dojo.byId(_30)); +return _31.lowest?_31.lowest:_31.first; +}; +dijit.getLastInTabbingOrder=function(_32){ +var _33=dijit._getTabNavigable(dojo.byId(_32)); +return _33.last?_33.last:_33.highest; +}; +dijit.defaultDuration=dojo.config["defaultDuration"]||200; +})(); +} diff --git a/lib/dijit/_base/place.js b/lib/dijit/_base/place.js new file mode 100644 index 000000000..ddc38fd08 --- /dev/null +++ b/lib/dijit/_base/place.js @@ -0,0 +1,111 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._base.place"]){ +dojo._hasResource["dijit._base.place"]=true; +dojo.provide("dijit._base.place"); +dojo.require("dojo.window"); +dojo.require("dojo.AdapterRegistry"); +dijit.getViewport=function(){ +return dojo.window.getBox(); +}; +dijit.placeOnScreen=function(_1,_2,_3,_4){ +var _5=dojo.map(_3,function(_6){ +var c={corner:_6,pos:{x:_2.x,y:_2.y}}; +if(_4){ +c.pos.x+=_6.charAt(1)=="L"?_4.x:-_4.x; +c.pos.y+=_6.charAt(0)=="T"?_4.y:-_4.y; +} +return c; +}); +return dijit._place(_1,_5); +}; +dijit._place=function(_7,_8,_9){ +var _a=dojo.window.getBox(); +if(!_7.parentNode||String(_7.parentNode.tagName).toLowerCase()!="body"){ +dojo.body().appendChild(_7); +} +var _b=null; +dojo.some(_8,function(_c){ +var _d=_c.corner; +var _e=_c.pos; +if(_9){ +_9(_7,_c.aroundCorner,_d); +} +var _f=_7.style; +var _10=_f.display; +var _11=_f.visibility; +_f.visibility="hidden"; +_f.display=""; +var mb=dojo.marginBox(_7); +_f.display=_10; +_f.visibility=_11; +var _12=Math.max(_a.l,_d.charAt(1)=="L"?_e.x:(_e.x-mb.w)),_13=Math.max(_a.t,_d.charAt(0)=="T"?_e.y:(_e.y-mb.h)),_14=Math.min(_a.l+_a.w,_d.charAt(1)=="L"?(_12+mb.w):_e.x),_15=Math.min(_a.t+_a.h,_d.charAt(0)=="T"?(_13+mb.h):_e.y),_16=_14-_12,_17=_15-_13,_18=(mb.w-_16)+(mb.h-_17); +if(_b==null||_18<_b.overflow){ +_b={corner:_d,aroundCorner:_c.aroundCorner,x:_12,y:_13,w:_16,h:_17,overflow:_18}; +} +return !_18; +}); +_7.style.left=_b.x+"px"; +_7.style.top=_b.y+"px"; +if(_b.overflow&&_9){ +_9(_7,_b.aroundCorner,_b.corner); +} +return _b; +}; +dijit.placeOnScreenAroundNode=function(_19,_1a,_1b,_1c){ +_1a=dojo.byId(_1a); +var _1d=_1a.style.display; +_1a.style.display=""; +var _1e=dojo.position(_1a,true); +_1a.style.display=_1d; +return dijit._placeOnScreenAroundRect(_19,_1e.x,_1e.y,_1e.w,_1e.h,_1b,_1c); +}; +dijit.placeOnScreenAroundRectangle=function(_1f,_20,_21,_22){ +return dijit._placeOnScreenAroundRect(_1f,_20.x,_20.y,_20.width,_20.height,_21,_22); +}; +dijit._placeOnScreenAroundRect=function(_23,x,y,_24,_25,_26,_27){ +var _28=[]; +for(var _29 in _26){ +_28.push({aroundCorner:_29,corner:_26[_29],pos:{x:x+(_29.charAt(1)=="L"?0:_24),y:y+(_29.charAt(0)=="T"?0:_25)}}); +} +return dijit._place(_23,_28,_27); +}; +dijit.placementRegistry=new dojo.AdapterRegistry(); +dijit.placementRegistry.register("node",function(n,x){ +return typeof x=="object"&&typeof x.offsetWidth!="undefined"&&typeof x.offsetHeight!="undefined"; +},dijit.placeOnScreenAroundNode); +dijit.placementRegistry.register("rect",function(n,x){ +return typeof x=="object"&&"x" in x&&"y" in x&&"width" in x&&"height" in x; +},dijit.placeOnScreenAroundRectangle); +dijit.placeOnScreenAroundElement=function(_2a,_2b,_2c,_2d){ +return dijit.placementRegistry.match.apply(dijit.placementRegistry,arguments); +}; +dijit.getPopupAroundAlignment=function(_2e,_2f){ +var _30={}; +dojo.forEach(_2e,function(pos){ +switch(pos){ +case "after": +_30[_2f?"BR":"BL"]=_2f?"BL":"BR"; +break; +case "before": +_30[_2f?"BL":"BR"]=_2f?"BR":"BL"; +break; +case "below": +_30[_2f?"BL":"BR"]=_2f?"TL":"TR"; +_30[_2f?"BR":"BL"]=_2f?"TR":"TL"; +break; +case "above": +default: +_30[_2f?"TL":"TR"]=_2f?"BL":"BR"; +_30[_2f?"TR":"TL"]=_2f?"BR":"BL"; +break; +} +}); +return _30; +}; +} diff --git a/lib/dijit/_base/popup.js b/lib/dijit/_base/popup.js new file mode 100644 index 000000000..aed046489 --- /dev/null +++ b/lib/dijit/_base/popup.js @@ -0,0 +1,158 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._base.popup"]){ +dojo._hasResource["dijit._base.popup"]=true; +dojo.provide("dijit._base.popup"); +dojo.require("dijit._base.focus"); +dojo.require("dijit._base.place"); +dojo.require("dijit._base.window"); +dijit.popup={_stack:[],_beginZIndex:1000,_idGen:1,moveOffScreen:function(_1){ +var _2=_1.parentNode; +if(!_2||!dojo.hasClass(_2,"dijitPopup")){ +_2=dojo.create("div",{"class":"dijitPopup",style:{visibility:"hidden",top:"-9999px"}},dojo.body()); +dijit.setWaiRole(_2,"presentation"); +_2.appendChild(_1); +} +var s=_1.style; +s.display=""; +s.visibility=""; +s.position=""; +s.top="0px"; +dojo.style(_2,{visibility:"hidden",top:"-9999px"}); +},getTopPopup:function(){ +var _3=this._stack; +for(var pi=_3.length-1;pi>0&&_3[pi].parent===_3[pi-1].widget;pi--){ +} +return _3[pi]; +},open:function(_4){ +var _5=this._stack,_6=_4.popup,_7=_4.orient||((_4.parent?_4.parent.isLeftToRight():dojo._isBodyLtr())?{"BL":"TL","BR":"TR","TL":"BL","TR":"BR"}:{"BR":"TR","BL":"TL","TR":"BR","TL":"BL"}),_8=_4.around,id=(_4.around&&_4.around.id)?(_4.around.id+"_dropdown"):("popup_"+this._idGen++); +var _9=_6.domNode.parentNode; +if(!_9||!dojo.hasClass(_9,"dijitPopup")){ +this.moveOffScreen(_6.domNode); +_9=_6.domNode.parentNode; +} +dojo.attr(_9,{id:id,style:{zIndex:this._beginZIndex+_5.length},"class":"dijitPopup "+(_6.baseClass||_6["class"]||"").split(" ")[0]+"Popup",dijitPopupParent:_4.parent?_4.parent.id:""}); +if(dojo.isIE||dojo.isMoz){ +var _a=_9.childNodes[1]; +if(!_a){ +_a=new dijit.BackgroundIframe(_9); +} +} +var _b=_8?dijit.placeOnScreenAroundElement(_9,_8,_7,_6.orient?dojo.hitch(_6,"orient"):null):dijit.placeOnScreen(_9,_4,_7=="R"?["TR","BR","TL","BL"]:["TL","BL","TR","BR"],_4.padding); +_9.style.visibility="visible"; +_6.domNode.style.visibility="visible"; +var _c=[]; +_c.push(dojo.connect(_9,"onkeypress",this,function(_d){ +if(_d.charOrCode==dojo.keys.ESCAPE&&_4.onCancel){ +dojo.stopEvent(_d); +_4.onCancel(); +}else{ +if(_d.charOrCode===dojo.keys.TAB){ +dojo.stopEvent(_d); +var _e=this.getTopPopup(); +if(_e&&_e.onCancel){ +_e.onCancel(); +} +} +} +})); +if(_6.onCancel){ +_c.push(dojo.connect(_6,"onCancel",_4.onCancel)); +} +_c.push(dojo.connect(_6,_6.onExecute?"onExecute":"onChange",this,function(){ +var _f=this.getTopPopup(); +if(_f&&_f.onExecute){ +_f.onExecute(); +} +})); +_5.push({wrapper:_9,iframe:_a,widget:_6,parent:_4.parent,onExecute:_4.onExecute,onCancel:_4.onCancel,onClose:_4.onClose,handlers:_c}); +if(_6.onOpen){ +_6.onOpen(_b); +} +return _b; +},close:function(_10){ +var _11=this._stack; +while(dojo.some(_11,function(_12){ +return _12.widget==_10; +})){ +var top=_11.pop(),_13=top.wrapper,_14=top.iframe,_15=top.widget,_16=top.onClose; +if(_15.onClose){ +_15.onClose(); +} +dojo.forEach(top.handlers,dojo.disconnect); +if(_15&&_15.domNode){ +this.moveOffScreen(_15.domNode); +}else{ +dojo.destroy(_13); +} +if(_16){ +_16(); +} +} +}}; +dijit._frames=new function(){ +var _17=[]; +this.pop=function(){ +var _18; +if(_17.length){ +_18=_17.pop(); +_18.style.display=""; +}else{ +if(dojo.isIE){ +var _19=dojo.config["dojoBlankHtmlUrl"]||(dojo.moduleUrl("dojo","resources/blank.html")+"")||"javascript:\"\""; +var _1a="<iframe src='"+_19+"'"+" style='position: absolute; left: 0px; top: 0px;"+"z-index: -1; filter:Alpha(Opacity=\"0\");'>"; +_18=dojo.doc.createElement(_1a); +}else{ +_18=dojo.create("iframe"); +_18.src="javascript:\"\""; +_18.className="dijitBackgroundIframe"; +dojo.style(_18,"opacity",0.1); +} +_18.tabIndex=-1; +dijit.setWaiRole(_18,"presentation"); +} +return _18; +}; +this.push=function(_1b){ +_1b.style.display="none"; +_17.push(_1b); +}; +}(); +dijit.BackgroundIframe=function(_1c){ +if(!_1c.id){ +throw new Error("no id"); +} +if(dojo.isIE||dojo.isMoz){ +var _1d=dijit._frames.pop(); +_1c.appendChild(_1d); +if(dojo.isIE<7){ +this.resize(_1c); +this._conn=dojo.connect(_1c,"onresize",this,function(){ +this.resize(_1c); +}); +}else{ +dojo.style(_1d,{width:"100%",height:"100%"}); +} +this.iframe=_1d; +} +}; +dojo.extend(dijit.BackgroundIframe,{resize:function(_1e){ +if(this.iframe&&dojo.isIE<7){ +dojo.style(this.iframe,{width:_1e.offsetWidth+"px",height:_1e.offsetHeight+"px"}); +} +},destroy:function(){ +if(this._conn){ +dojo.disconnect(this._conn); +this._conn=null; +} +if(this.iframe){ +dijit._frames.push(this.iframe); +delete this.iframe; +} +}}); +} diff --git a/lib/dijit/_base/scroll.js b/lib/dijit/_base/scroll.js new file mode 100644 index 000000000..623cea392 --- /dev/null +++ b/lib/dijit/_base/scroll.js @@ -0,0 +1,15 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._base.scroll"]){ +dojo._hasResource["dijit._base.scroll"]=true; +dojo.provide("dijit._base.scroll"); +dojo.require("dojo.window"); +dijit.scrollIntoView=function(_1,_2){ +dojo.window.scrollIntoView(_1,_2); +}; +} diff --git a/lib/dijit/_base/sniff.js b/lib/dijit/_base/sniff.js new file mode 100644 index 000000000..bf5386cfb --- /dev/null +++ b/lib/dijit/_base/sniff.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._base.sniff"]){ +dojo._hasResource["dijit._base.sniff"]=true; +dojo.provide("dijit._base.sniff"); +dojo.require("dojo.uacss"); +} diff --git a/lib/dijit/_base/typematic.js b/lib/dijit/_base/typematic.js new file mode 100644 index 000000000..460e9db1a --- /dev/null +++ b/lib/dijit/_base/typematic.js @@ -0,0 +1,87 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._base.typematic"]){ +dojo._hasResource["dijit._base.typematic"]=true; +dojo.provide("dijit._base.typematic"); +dijit.typematic={_fireEventAndReload:function(){ +this._timer=null; +this._callback(++this._count,this._node,this._evt); +this._currentTimeout=Math.max(this._currentTimeout<0?this._initialDelay:(this._subsequentDelay>1?this._subsequentDelay:Math.round(this._currentTimeout*this._subsequentDelay)),this._minDelay); +this._timer=setTimeout(dojo.hitch(this,"_fireEventAndReload"),this._currentTimeout); +},trigger:function(_1,_2,_3,_4,_5,_6,_7,_8){ +if(_5!=this._obj){ +this.stop(); +this._initialDelay=_7||500; +this._subsequentDelay=_6||0.9; +this._minDelay=_8||10; +this._obj=_5; +this._evt=_1; +this._node=_3; +this._currentTimeout=-1; +this._count=-1; +this._callback=dojo.hitch(_2,_4); +this._fireEventAndReload(); +this._evt=dojo.mixin({faux:true},_1); +} +},stop:function(){ +if(this._timer){ +clearTimeout(this._timer); +this._timer=null; +} +if(this._obj){ +this._callback(-1,this._node,this._evt); +this._obj=null; +} +},addKeyListener:function(_9,_a,_b,_c,_d,_e,_f){ +if(_a.keyCode){ +_a.charOrCode=_a.keyCode; +dojo.deprecated("keyCode attribute parameter for dijit.typematic.addKeyListener is deprecated. Use charOrCode instead.","","2.0"); +}else{ +if(_a.charCode){ +_a.charOrCode=String.fromCharCode(_a.charCode); +dojo.deprecated("charCode attribute parameter for dijit.typematic.addKeyListener is deprecated. Use charOrCode instead.","","2.0"); +} +} +return [dojo.connect(_9,"onkeypress",this,function(evt){ +if(evt.charOrCode==_a.charOrCode&&(_a.ctrlKey===undefined||_a.ctrlKey==evt.ctrlKey)&&(_a.altKey===undefined||_a.altKey==evt.altKey)&&(_a.metaKey===undefined||_a.metaKey==(evt.metaKey||false))&&(_a.shiftKey===undefined||_a.shiftKey==evt.shiftKey)){ +dojo.stopEvent(evt); +dijit.typematic.trigger(evt,_b,_9,_c,_a,_d,_e,_f); +}else{ +if(dijit.typematic._obj==_a){ +dijit.typematic.stop(); +} +} +}),dojo.connect(_9,"onkeyup",this,function(evt){ +if(dijit.typematic._obj==_a){ +dijit.typematic.stop(); +} +})]; +},addMouseListener:function(_10,_11,_12,_13,_14,_15){ +var dc=dojo.connect; +return [dc(_10,"mousedown",this,function(evt){ +dojo.stopEvent(evt); +dijit.typematic.trigger(evt,_11,_10,_12,_10,_13,_14,_15); +}),dc(_10,"mouseup",this,function(evt){ +dojo.stopEvent(evt); +dijit.typematic.stop(); +}),dc(_10,"mouseout",this,function(evt){ +dojo.stopEvent(evt); +dijit.typematic.stop(); +}),dc(_10,"mousemove",this,function(evt){ +evt.preventDefault(); +}),dc(_10,"dblclick",this,function(evt){ +dojo.stopEvent(evt); +if(dojo.isIE){ +dijit.typematic.trigger(evt,_11,_10,_12,_10,_13,_14,_15); +setTimeout(dojo.hitch(this,dijit.typematic.stop),50); +} +})]; +},addListener:function(_16,_17,_18,_19,_1a,_1b,_1c,_1d){ +return this.addKeyListener(_17,_18,_19,_1a,_1b,_1c,_1d).concat(this.addMouseListener(_16,_19,_1a,_1b,_1c,_1d)); +}}; +} diff --git a/lib/dijit/_base/wai.js b/lib/dijit/_base/wai.js new file mode 100644 index 000000000..de67ad17a --- /dev/null +++ b/lib/dijit/_base/wai.js @@ -0,0 +1,64 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._base.wai"]){ +dojo._hasResource["dijit._base.wai"]=true; +dojo.provide("dijit._base.wai"); +dijit.wai={onload:function(){ +var _1=dojo.create("div",{id:"a11yTestNode",style:{cssText:"border: 1px solid;"+"border-color:red green;"+"position: absolute;"+"height: 5px;"+"top: -999px;"+"background-image: url(\""+(dojo.config.blankGif||dojo.moduleUrl("dojo","resources/blank.gif"))+"\");"}},dojo.body()); +var cs=dojo.getComputedStyle(_1); +if(cs){ +var _2=cs.backgroundImage; +var _3=(cs.borderTopColor==cs.borderRightColor)||(_2!=null&&(_2=="none"||_2=="url(invalid-url:)")); +dojo[_3?"addClass":"removeClass"](dojo.body(),"dijit_a11y"); +if(dojo.isIE){ +_1.outerHTML=""; +}else{ +dojo.body().removeChild(_1); +} +} +}}; +if(dojo.isIE||dojo.isMoz){ +dojo._loaders.unshift(dijit.wai.onload); +} +dojo.mixin(dijit,{_XhtmlRoles:/banner|contentinfo|definition|main|navigation|search|note|secondary|seealso/,hasWaiRole:function(_4,_5){ +var _6=this.getWaiRole(_4); +return _5?(_6.indexOf(_5)>-1):(_6.length>0); +},getWaiRole:function(_7){ +return dojo.trim((dojo.attr(_7,"role")||"").replace(this._XhtmlRoles,"").replace("wairole:","")); +},setWaiRole:function(_8,_9){ +var _a=dojo.attr(_8,"role")||""; +if(!this._XhtmlRoles.test(_a)){ +dojo.attr(_8,"role",_9); +}else{ +if((" "+_a+" ").indexOf(" "+_9+" ")<0){ +var _b=dojo.trim(_a.replace(this._XhtmlRoles,"")); +var _c=dojo.trim(_a.replace(_b,"")); +dojo.attr(_8,"role",_c+(_c?" ":"")+_9); +} +} +},removeWaiRole:function(_d,_e){ +var _f=dojo.attr(_d,"role"); +if(!_f){ +return; +} +if(_e){ +var t=dojo.trim((" "+_f+" ").replace(" "+_e+" "," ")); +dojo.attr(_d,"role",t); +}else{ +_d.removeAttribute("role"); +} +},hasWaiState:function(_10,_11){ +return _10.hasAttribute?_10.hasAttribute("aria-"+_11):!!_10.getAttribute("aria-"+_11); +},getWaiState:function(_12,_13){ +return _12.getAttribute("aria-"+_13)||""; +},setWaiState:function(_14,_15,_16){ +_14.setAttribute("aria-"+_15,_16); +},removeWaiState:function(_17,_18){ +_17.removeAttribute("aria-"+_18); +}}); +} diff --git a/lib/dijit/_base/window.js b/lib/dijit/_base/window.js new file mode 100644 index 000000000..57a691436 --- /dev/null +++ b/lib/dijit/_base/window.js @@ -0,0 +1,15 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._base.window"]){ +dojo._hasResource["dijit._base.window"]=true; +dojo.provide("dijit._base.window"); +dojo.require("dojo.window"); +dijit.getDocumentWindow=function(_1){ +return dojo.window.get(_1); +}; +} diff --git a/lib/dijit/_editor/RichText.js b/lib/dijit/_editor/RichText.js new file mode 100644 index 000000000..696715986 --- /dev/null +++ b/lib/dijit/_editor/RichText.js @@ -0,0 +1,1046 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._editor.RichText"]){ +dojo._hasResource["dijit._editor.RichText"]=true; +dojo.provide("dijit._editor.RichText"); +dojo.require("dijit._Widget"); +dojo.require("dijit._CssStateMixin"); +dojo.require("dijit._editor.selection"); +dojo.require("dijit._editor.range"); +dojo.require("dijit._editor.html"); +if(!dojo.config["useXDomain"]||dojo.config["allowXdRichTextSave"]){ +if(dojo._postLoad){ +(function(){ +var _1=dojo.doc.createElement("textarea"); +_1.id=dijit._scopeName+"._editor.RichText.savedContent"; +dojo.style(_1,{display:"none",position:"absolute",top:"-100px",height:"3px",width:"3px"}); +dojo.body().appendChild(_1); +})(); +}else{ +try{ +dojo.doc.write("<textarea id=\""+dijit._scopeName+"._editor.RichText.savedContent\" "+"style=\"display:none;position:absolute;top:-100px;left:-100px;height:3px;width:3px;overflow:hidden;\"></textarea>"); +} +catch(e){ +} +} +} +dojo.declare("dijit._editor.RichText",[dijit._Widget,dijit._CssStateMixin],{constructor:function(_2){ +this.contentPreFilters=[]; +this.contentPostFilters=[]; +this.contentDomPreFilters=[]; +this.contentDomPostFilters=[]; +this.editingAreaStyleSheets=[]; +this.events=[].concat(this.events); +this._keyHandlers={}; +this.contentPreFilters.push(dojo.hitch(this,"_preFixUrlAttributes")); +if(dojo.isMoz){ +this.contentPreFilters.push(this._normalizeFontStyle); +this.contentPostFilters.push(this._removeMozBogus); +} +if(dojo.isWebKit){ +this.contentPreFilters.push(this._removeWebkitBogus); +this.contentPostFilters.push(this._removeWebkitBogus); +} +if(dojo.isIE){ +this.contentPostFilters.push(this._normalizeFontStyle); +} +if(_2&&dojo.isString(_2.value)){ +this.value=_2.value; +} +this.onLoadDeferred=new dojo.Deferred(); +},baseClass:"dijitEditor",inheritWidth:false,focusOnLoad:false,name:"",styleSheets:"",_content:"",height:"300px",minHeight:"1em",isClosed:true,isLoaded:false,_SEPARATOR:"@@**%%__RICHTEXTBOUNDRY__%%**@@",onLoadDeferred:null,isTabIndent:false,disableSpellCheck:false,postCreate:function(){ +if("textarea"==this.domNode.tagName.toLowerCase()){ +console.warn("RichText should not be used with the TEXTAREA tag. See dijit._editor.RichText docs."); +} +this.inherited(arguments); +dojo.publish(dijit._scopeName+"._editor.RichText::init",[this]); +this.open(); +this.setupDefaultShortcuts(); +},setupDefaultShortcuts:function(){ +var _3=dojo.hitch(this,function(_4,_5){ +return function(){ +return !this.execCommand(_4,_5); +}; +}); +var _6={b:_3("bold"),i:_3("italic"),u:_3("underline"),a:_3("selectall"),s:function(){ +this.save(true); +},m:function(){ +this.isTabIndent=!this.isTabIndent; +},"1":_3("formatblock","h1"),"2":_3("formatblock","h2"),"3":_3("formatblock","h3"),"4":_3("formatblock","h4"),"\\":_3("insertunorderedlist")}; +if(!dojo.isIE){ +_6.Z=_3("redo"); +} +for(var _7 in _6){ +this.addKeyHandler(_7,true,false,_6[_7]); +} +},events:["onKeyPress","onKeyDown","onKeyUp","onClick"],captureEvents:[],_editorCommandsLocalized:false,_localizeEditorCommands:function(){ +if(this._editorCommandsLocalized){ +return; +} +this._editorCommandsLocalized=true; +var _8=["div","p","pre","h1","h2","h3","h4","h5","h6","ol","ul","address"]; +var _9="",_a,i=0; +while((_a=_8[i++])){ +if(_a.charAt(1)!="l"){ +_9+="<"+_a+"><span>content</span></"+_a+"><br/>"; +}else{ +_9+="<"+_a+"><li>content</li></"+_a+"><br/>"; +} +} +var _b=dojo.doc.createElement("div"); +dojo.style(_b,{position:"absolute",top:"-2000px"}); +dojo.doc.body.appendChild(_b); +_b.innerHTML=_9; +var _c=_b.firstChild; +while(_c){ +dijit._editor.selection.selectElement(_c.firstChild); +dojo.withGlobal(this.window,"selectElement",dijit._editor.selection,[_c.firstChild]); +var _d=_c.tagName.toLowerCase(); +this._local2NativeFormatNames[_d]=document.queryCommandValue("formatblock"); +this._native2LocalFormatNames[this._local2NativeFormatNames[_d]]=_d; +_c=_c.nextSibling.nextSibling; +} +dojo.body().removeChild(_b); +},open:function(_e){ +if(!this.onLoadDeferred||this.onLoadDeferred.fired>=0){ +this.onLoadDeferred=new dojo.Deferred(); +} +if(!this.isClosed){ +this.close(); +} +dojo.publish(dijit._scopeName+"._editor.RichText::open",[this]); +this._content=""; +if(arguments.length==1&&_e.nodeName){ +this.domNode=_e; +} +var dn=this.domNode; +var _f; +if(dojo.isString(this.value)){ +_f=this.value; +delete this.value; +dn.innerHTML=""; +}else{ +if(dn.nodeName&&dn.nodeName.toLowerCase()=="textarea"){ +var ta=(this.textarea=dn); +this.name=ta.name; +_f=ta.value; +dn=this.domNode=dojo.doc.createElement("div"); +dn.setAttribute("widgetId",this.id); +ta.removeAttribute("widgetId"); +dn.cssText=ta.cssText; +dn.className+=" "+ta.className; +dojo.place(dn,ta,"before"); +var _10=dojo.hitch(this,function(){ +dojo.style(ta,{display:"block",position:"absolute",top:"-1000px"}); +if(dojo.isIE){ +var s=ta.style; +this.__overflow=s.overflow; +s.overflow="hidden"; +} +}); +if(dojo.isIE){ +setTimeout(_10,10); +}else{ +_10(); +} +if(ta.form){ +dojo.connect(ta.form,"onsubmit",this,function(){ +ta.value=this.getValue(); +}); +} +}else{ +_f=dijit._editor.getChildrenHtml(dn); +dn.innerHTML=""; +} +} +var _11=dojo.contentBox(dn); +this._oldHeight=_11.h; +this._oldWidth=_11.w; +this.savedContent=_f; +if(dn.nodeName&&dn.nodeName=="LI"){ +dn.innerHTML=" <br>"; +} +this.header=dn.ownerDocument.createElement("div"); +dn.appendChild(this.header); +this.editingArea=dn.ownerDocument.createElement("div"); +dn.appendChild(this.editingArea); +this.footer=dn.ownerDocument.createElement("div"); +dn.appendChild(this.footer); +if(this.name!==""&&(!dojo.config["useXDomain"]||dojo.config["allowXdRichTextSave"])){ +var _12=dojo.byId(dijit._scopeName+"._editor.RichText.savedContent"); +if(_12.value!==""){ +var _13=_12.value.split(this._SEPARATOR),i=0,dat; +while((dat=_13[i++])){ +var _14=dat.split(":"); +if(_14[0]==this.name){ +_f=_14[1]; +_13.splice(i,1); +break; +} +} +} +dojo.addOnUnload(dojo.hitch(this,"_saveContent")); +} +this.isClosed=false; +var ifr=(this.editorObject=this.iframe=dojo.doc.createElement("iframe")); +ifr.id=this.id+"_iframe"; +this._iframeSrc=this._getIframeDocTxt(); +ifr.style.border="none"; +ifr.style.width="100%"; +if(this._layoutMode){ +ifr.style.height="100%"; +}else{ +if(dojo.isIE>=7){ +if(this.height){ +ifr.style.height=this.height; +} +if(this.minHeight){ +ifr.style.minHeight=this.minHeight; +} +}else{ +ifr.style.height=this.height?this.height:this.minHeight; +} +} +ifr.frameBorder=0; +ifr._loadFunc=dojo.hitch(this,function(win){ +this.window=win; +this.document=this.window.document; +if(dojo.isIE){ +this._localizeEditorCommands(); +} +this.onLoad(_f); +}); +var s="javascript:parent."+dijit._scopeName+".byId(\""+this.id+"\")._iframeSrc"; +ifr.setAttribute("src",s); +this.editingArea.appendChild(ifr); +if(dn.nodeName=="LI"){ +dn.lastChild.style.marginTop="-1.2em"; +} +dojo.addClass(this.domNode,this.baseClass); +},_local2NativeFormatNames:{},_native2LocalFormatNames:{},_getIframeDocTxt:function(){ +var _15=dojo.getComputedStyle(this.domNode); +var _16=""; +var _17=true; +if(dojo.isIE||(!this.height&&!dojo.isMoz)){ +_16="<div id='dijitEditorBody'></div>"; +_17=false; +}else{ +if(dojo.isMoz){ +this._cursorToStart=true; +_16=" "; +} +} +var _18=[_15.fontWeight,_15.fontSize,_15.fontFamily].join(" "); +var _19=_15.lineHeight; +if(_19.indexOf("px")>=0){ +_19=parseFloat(_19)/parseFloat(_15.fontSize); +}else{ +if(_19.indexOf("em")>=0){ +_19=parseFloat(_19); +}else{ +_19="normal"; +} +} +var _1a=""; +var _1b=this; +this.style.replace(/(^|;)\s*(line-|font-?)[^;]+/ig,function(_1c){ +_1c=_1c.replace(/^;/ig,"")+";"; +var s=_1c.split(":")[0]; +if(s){ +s=dojo.trim(s); +s=s.toLowerCase(); +var i; +var sC=""; +for(i=0;i<s.length;i++){ +var c=s.charAt(i); +switch(c){ +case "-": +i++; +c=s.charAt(i).toUpperCase(); +default: +sC+=c; +} +} +dojo.style(_1b.domNode,sC,""); +} +_1a+=_1c+";"; +}); +var _1d=dojo.query("label[for=\""+this.id+"\"]"); +return [this.isLeftToRight()?"<html>\n<head>\n":"<html dir='rtl'>\n<head>\n",(dojo.isMoz&&_1d.length?"<title>"+_1d[0].innerHTML+"</title>\n":""),"<meta http-equiv='Content-Type' content='text/html'>\n","<style>\n","\tbody,html {\n","\t\tbackground:transparent;\n","\t\tpadding: 1px 0 0 0;\n","\t\tmargin: -1px 0 0 0;\n",((dojo.isWebKit)?"\t\twidth: 100%;\n":""),((dojo.isWebKit)?"\t\theight: 100%;\n":""),"\t}\n","\tbody{\n","\t\ttop:0px;\n","\t\tleft:0px;\n","\t\tright:0px;\n","\t\tfont:",_18,";\n",((this.height||dojo.isOpera)?"":"\t\tposition: fixed;\n"),"\t\tmin-height:",this.minHeight,";\n","\t\tline-height:",_19,";\n","\t}\n","\tp{ margin: 1em 0; }\n",(!_17&&!this.height?"\tbody,html {overflow-y: hidden;}\n":""),"\t#dijitEditorBody{overflow-x: auto; overflow-y:"+(this.height?"auto;":"hidden;")+"}\n","\tli > ul:-moz-first-node, li > ol:-moz-first-node{ padding-top: 1.2em; }\n","\tli{ min-height:1.2em; }\n","</style>\n",this._applyEditingAreaStyleSheets(),"\n","</head>\n<body ",(_17?"id='dijitEditorBody' ":""),"onload='frameElement._loadFunc(window,document)' style='"+_1a+"'>",_16,"</body>\n</html>"].join(""); +},_applyEditingAreaStyleSheets:function(){ +var _1e=[]; +if(this.styleSheets){ +_1e=this.styleSheets.split(";"); +this.styleSheets=""; +} +_1e=_1e.concat(this.editingAreaStyleSheets); +this.editingAreaStyleSheets=[]; +var _1f="",i=0,url; +while((url=_1e[i++])){ +var _20=(new dojo._Url(dojo.global.location,url)).toString(); +this.editingAreaStyleSheets.push(_20); +_1f+="<link rel=\"stylesheet\" type=\"text/css\" href=\""+_20+"\"/>"; +} +return _1f; +},addStyleSheet:function(uri){ +var url=uri.toString(); +if(url.charAt(0)=="."||(url.charAt(0)!="/"&&!uri.host)){ +url=(new dojo._Url(dojo.global.location,url)).toString(); +} +if(dojo.indexOf(this.editingAreaStyleSheets,url)>-1){ +return; +} +this.editingAreaStyleSheets.push(url); +this.onLoadDeferred.addCallback(dojo.hitch(function(){ +if(this.document.createStyleSheet){ +this.document.createStyleSheet(url); +}else{ +var _21=this.document.getElementsByTagName("head")[0]; +var _22=this.document.createElement("link"); +_22.rel="stylesheet"; +_22.type="text/css"; +_22.href=url; +_21.appendChild(_22); +} +})); +},removeStyleSheet:function(uri){ +var url=uri.toString(); +if(url.charAt(0)=="."||(url.charAt(0)!="/"&&!uri.host)){ +url=(new dojo._Url(dojo.global.location,url)).toString(); +} +var _23=dojo.indexOf(this.editingAreaStyleSheets,url); +if(_23==-1){ +return; +} +delete this.editingAreaStyleSheets[_23]; +dojo.withGlobal(this.window,"query",dojo,["link:[href=\""+url+"\"]"]).orphan(); +},disabled:false,_mozSettingProps:{"styleWithCSS":false},_setDisabledAttr:function(_24){ +this.disabled=_24; +if(!this.isLoaded){ +return; +} +_24=!!_24; +if(dojo.isIE||dojo.isWebKit||dojo.isOpera){ +var _25=dojo.isIE&&(this.isLoaded||!this.focusOnLoad); +if(_25){ +this.editNode.unselectable="on"; +} +this.editNode.contentEditable=!_24; +if(_25){ +var _26=this; +setTimeout(function(){ +_26.editNode.unselectable="off"; +},0); +} +}else{ +try{ +this.document.designMode=(_24?"off":"on"); +} +catch(e){ +return; +} +if(!_24&&this._mozSettingProps){ +var ps=this._mozSettingProps; +for(var n in ps){ +if(ps.hasOwnProperty(n)){ +try{ +this.document.execCommand(n,false,ps[n]); +} +catch(e2){ +} +} +} +} +} +this._disabledOK=true; +},onLoad:function(_27){ +if(!this.window.__registeredWindow){ +this.window.__registeredWindow=true; +this._iframeRegHandle=dijit.registerIframe(this.iframe); +} +if(!dojo.isIE&&(this.height||dojo.isMoz)){ +this.editNode=this.document.body; +}else{ +this.editNode=this.document.body.firstChild; +var _28=this; +if(dojo.isIE){ +var _29=(this.tabStop=dojo.doc.createElement("<div tabIndex=-1>")); +this.editingArea.appendChild(_29); +this.iframe.onfocus=function(){ +_28.editNode.setActive(); +}; +} +} +this.focusNode=this.editNode; +var _2a=this.events.concat(this.captureEvents); +var ap=this.iframe?this.document:this.editNode; +dojo.forEach(_2a,function(_2b){ +this.connect(ap,_2b.toLowerCase(),_2b); +},this); +if(dojo.isIE){ +this.connect(this.document,"onmousedown","_onIEMouseDown"); +this.editNode.style.zoom=1; +}else{ +this.connect(this.document,"onmousedown",function(){ +delete this._cursorToStart; +}); +} +if(dojo.isWebKit){ +this._webkitListener=this.connect(this.document,"onmouseup","onDisplayChanged"); +} +if(dojo.isIE){ +try{ +this.document.execCommand("RespectVisibilityInDesign",true,null); +} +catch(e){ +} +} +this.isLoaded=true; +this.set("disabled",this.disabled); +var _2c=dojo.hitch(this,function(){ +this.setValue(_27); +if(this.onLoadDeferred){ +this.onLoadDeferred.callback(true); +} +this.onDisplayChanged(); +if(this.focusOnLoad){ +dojo.addOnLoad(dojo.hitch(this,function(){ +setTimeout(dojo.hitch(this,"focus"),this.updateInterval); +})); +} +this.savedContent=this.getValue(true); +}); +if(this.setValueDeferred){ +this.setValueDeferred.addCallback(_2c); +}else{ +_2c(); +} +},onKeyDown:function(e){ +if(e.keyCode===dojo.keys.TAB&&this.isTabIndent){ +dojo.stopEvent(e); +if(this.queryCommandEnabled((e.shiftKey?"outdent":"indent"))){ +this.execCommand((e.shiftKey?"outdent":"indent")); +} +} +if(dojo.isIE){ +if(e.keyCode==dojo.keys.TAB&&!this.isTabIndent){ +if(e.shiftKey&&!e.ctrlKey&&!e.altKey){ +this.iframe.focus(); +}else{ +if(!e.shiftKey&&!e.ctrlKey&&!e.altKey){ +this.tabStop.focus(); +} +} +}else{ +if(e.keyCode===dojo.keys.BACKSPACE&&this.document.selection.type==="Control"){ +dojo.stopEvent(e); +this.execCommand("delete"); +}else{ +if((65<=e.keyCode&&e.keyCode<=90)||(e.keyCode>=37&&e.keyCode<=40)){ +e.charCode=e.keyCode; +this.onKeyPress(e); +} +} +} +} +return true; +},onKeyUp:function(e){ +return; +},setDisabled:function(_2d){ +dojo.deprecated("dijit.Editor::setDisabled is deprecated","use dijit.Editor::attr(\"disabled\",boolean) instead",2); +this.set("disabled",_2d); +},_setValueAttr:function(_2e){ +this.setValue(_2e); +},_setDisableSpellCheckAttr:function(_2f){ +if(this.document){ +dojo.attr(this.document.body,"spellcheck",!_2f); +}else{ +this.onLoadDeferred.addCallback(dojo.hitch(this,function(){ +dojo.attr(this.document.body,"spellcheck",!_2f); +})); +} +this.disableSpellCheck=_2f; +},onKeyPress:function(e){ +var c=(e.keyChar&&e.keyChar.toLowerCase())||e.keyCode,_30=this._keyHandlers[c],_31=arguments; +if(_30&&!e.altKey){ +dojo.some(_30,function(h){ +if(!(h.shift^e.shiftKey)&&!(h.ctrl^(e.ctrlKey||e.metaKey))){ +if(!h.handler.apply(this,_31)){ +e.preventDefault(); +} +return true; +} +},this); +} +if(!this._onKeyHitch){ +this._onKeyHitch=dojo.hitch(this,"onKeyPressed"); +} +setTimeout(this._onKeyHitch,1); +return true; +},addKeyHandler:function(key,_32,_33,_34){ +if(!dojo.isArray(this._keyHandlers[key])){ +this._keyHandlers[key]=[]; +} +this._keyHandlers[key].push({shift:_33||false,ctrl:_32||false,handler:_34}); +},onKeyPressed:function(){ +this.onDisplayChanged(); +},onClick:function(e){ +this.onDisplayChanged(e); +},_onIEMouseDown:function(e){ +if(!this._focused&&!this.disabled){ +this.focus(); +} +},_onBlur:function(e){ +this.inherited(arguments); +var _35=this.getValue(true); +if(_35!=this.savedContent){ +this.onChange(_35); +this.savedContent=_35; +} +},_onFocus:function(e){ +if(!this.disabled){ +if(!this._disabledOK){ +this.set("disabled",false); +} +this.inherited(arguments); +} +},blur:function(){ +if(!dojo.isIE&&this.window.document.documentElement&&this.window.document.documentElement.focus){ +this.window.document.documentElement.focus(); +}else{ +if(dojo.doc.body.focus){ +dojo.doc.body.focus(); +} +} +},focus:function(){ +if(!this.isLoaded){ +this.focusOnLoad=true; +return; +} +if(this._cursorToStart){ +delete this._cursorToStart; +if(this.editNode.childNodes){ +this.placeCursorAtStart(); +return; +} +} +if(!dojo.isIE){ +dijit.focus(this.iframe); +}else{ +if(this.editNode&&this.editNode.focus){ +this.iframe.fireEvent("onfocus",document.createEventObject()); +} +} +},updateInterval:200,_updateTimer:null,onDisplayChanged:function(e){ +if(this._updateTimer){ +clearTimeout(this._updateTimer); +} +if(!this._updateHandler){ +this._updateHandler=dojo.hitch(this,"onNormalizedDisplayChanged"); +} +this._updateTimer=setTimeout(this._updateHandler,this.updateInterval); +},onNormalizedDisplayChanged:function(){ +delete this._updateTimer; +},onChange:function(_36){ +},_normalizeCommand:function(cmd,_37){ +var _38=cmd.toLowerCase(); +if(_38=="formatblock"){ +if(dojo.isSafari&&_37===undefined){ +_38="heading"; +} +}else{ +if(_38=="hilitecolor"&&!dojo.isMoz){ +_38="backcolor"; +} +} +return _38; +},_qcaCache:{},queryCommandAvailable:function(_39){ +var ca=this._qcaCache[_39]; +if(ca!==undefined){ +return ca; +} +return (this._qcaCache[_39]=this._queryCommandAvailable(_39)); +},_queryCommandAvailable:function(_3a){ +var ie=1; +var _3b=1<<1; +var _3c=1<<2; +var _3d=1<<3; +var _3e=1<<4; +function _3f(_40){ +return {ie:Boolean(_40&ie),mozilla:Boolean(_40&_3b),webkit:Boolean(_40&_3c),webkit420:Boolean(_40&_3e),opera:Boolean(_40&_3d)}; +}; +var _41=null; +switch(_3a.toLowerCase()){ +case "bold": +case "italic": +case "underline": +case "subscript": +case "superscript": +case "fontname": +case "fontsize": +case "forecolor": +case "hilitecolor": +case "justifycenter": +case "justifyfull": +case "justifyleft": +case "justifyright": +case "delete": +case "selectall": +case "toggledir": +_41=_3f(_3b|ie|_3c|_3d); +break; +case "createlink": +case "unlink": +case "removeformat": +case "inserthorizontalrule": +case "insertimage": +case "insertorderedlist": +case "insertunorderedlist": +case "indent": +case "outdent": +case "formatblock": +case "inserthtml": +case "undo": +case "redo": +case "strikethrough": +case "tabindent": +_41=_3f(_3b|ie|_3d|_3e); +break; +case "blockdirltr": +case "blockdirrtl": +case "dirltr": +case "dirrtl": +case "inlinedirltr": +case "inlinedirrtl": +_41=_3f(ie); +break; +case "cut": +case "copy": +case "paste": +_41=_3f(ie|_3b|_3e); +break; +case "inserttable": +_41=_3f(_3b|ie); +break; +case "insertcell": +case "insertcol": +case "insertrow": +case "deletecells": +case "deletecols": +case "deleterows": +case "mergecells": +case "splitcell": +_41=_3f(ie|_3b); +break; +default: +return false; +} +return (dojo.isIE&&_41.ie)||(dojo.isMoz&&_41.mozilla)||(dojo.isWebKit&&_41.webkit)||(dojo.isWebKit>420&&_41.webkit420)||(dojo.isOpera&&_41.opera); +},execCommand:function(_42,_43){ +var _44; +this.focus(); +_42=this._normalizeCommand(_42,_43); +if(_43!==undefined){ +if(_42=="heading"){ +throw new Error("unimplemented"); +}else{ +if((_42=="formatblock")&&dojo.isIE){ +_43="<"+_43+">"; +} +} +} +var _45="_"+_42+"Impl"; +if(this[_45]){ +_44=this[_45](_43); +}else{ +_43=arguments.length>1?_43:null; +if(_43||_42!="createlink"){ +_44=this.document.execCommand(_42,false,_43); +} +} +this.onDisplayChanged(); +return _44; +},queryCommandEnabled:function(_46){ +if(this.disabled||!this._disabledOK){ +return false; +} +_46=this._normalizeCommand(_46); +if(dojo.isMoz||dojo.isWebKit){ +if(_46=="unlink"){ +return this._sCall("hasAncestorElement",["a"]); +}else{ +if(_46=="inserttable"){ +return true; +} +} +} +if(dojo.isWebKit){ +if(_46=="copy"){ +_46="cut"; +}else{ +if(_46=="paste"){ +return true; +} +} +} +var _47=dojo.isIE?this.document.selection.createRange():this.document; +try{ +return _47.queryCommandEnabled(_46); +} +catch(e){ +return false; +} +},queryCommandState:function(_48){ +if(this.disabled||!this._disabledOK){ +return false; +} +_48=this._normalizeCommand(_48); +try{ +return this.document.queryCommandState(_48); +} +catch(e){ +return false; +} +},queryCommandValue:function(_49){ +if(this.disabled||!this._disabledOK){ +return false; +} +var r; +_49=this._normalizeCommand(_49); +if(dojo.isIE&&_49=="formatblock"){ +r=this._native2LocalFormatNames[this.document.queryCommandValue(_49)]; +}else{ +if(dojo.isMoz&&_49==="hilitecolor"){ +var _4a; +try{ +_4a=this.document.queryCommandValue("styleWithCSS"); +} +catch(e){ +_4a=false; +} +this.document.execCommand("styleWithCSS",false,true); +r=this.document.queryCommandValue(_49); +this.document.execCommand("styleWithCSS",false,_4a); +}else{ +r=this.document.queryCommandValue(_49); +} +} +return r; +},_sCall:function(_4b,_4c){ +return dojo.withGlobal(this.window,_4b,dijit._editor.selection,_4c); +},placeCursorAtStart:function(){ +this.focus(); +var _4d=false; +if(dojo.isMoz){ +var _4e=this.editNode.firstChild; +while(_4e){ +if(_4e.nodeType==3){ +if(_4e.nodeValue.replace(/^\s+|\s+$/g,"").length>0){ +_4d=true; +this._sCall("selectElement",[_4e]); +break; +} +}else{ +if(_4e.nodeType==1){ +_4d=true; +var tg=_4e.tagName?_4e.tagName.toLowerCase():""; +if(/br|input|img|base|meta|area|basefont|hr|link/.test(tg)){ +this._sCall("selectElement",[_4e]); +}else{ +this._sCall("selectElementChildren",[_4e]); +} +break; +} +} +_4e=_4e.nextSibling; +} +}else{ +_4d=true; +this._sCall("selectElementChildren",[this.editNode]); +} +if(_4d){ +this._sCall("collapse",[true]); +} +},placeCursorAtEnd:function(){ +this.focus(); +var _4f=false; +if(dojo.isMoz){ +var _50=this.editNode.lastChild; +while(_50){ +if(_50.nodeType==3){ +if(_50.nodeValue.replace(/^\s+|\s+$/g,"").length>0){ +_4f=true; +this._sCall("selectElement",[_50]); +break; +} +}else{ +if(_50.nodeType==1){ +_4f=true; +if(_50.lastChild){ +this._sCall("selectElement",[_50.lastChild]); +}else{ +this._sCall("selectElement",[_50]); +} +break; +} +} +_50=_50.previousSibling; +} +}else{ +_4f=true; +this._sCall("selectElementChildren",[this.editNode]); +} +if(_4f){ +this._sCall("collapse",[false]); +} +},getValue:function(_51){ +if(this.textarea){ +if(this.isClosed||!this.isLoaded){ +return this.textarea.value; +} +} +return this._postFilterContent(null,_51); +},_getValueAttr:function(){ +return this.getValue(true); +},setValue:function(_52){ +if(!this.isLoaded){ +this.onLoadDeferred.addCallback(dojo.hitch(this,function(){ +this.setValue(_52); +})); +return; +} +this._cursorToStart=true; +if(this.textarea&&(this.isClosed||!this.isLoaded)){ +this.textarea.value=_52; +}else{ +_52=this._preFilterContent(_52); +var _53=this.isClosed?this.domNode:this.editNode; +if(!_52&&dojo.isWebKit){ +_52=" "; +} +_53.innerHTML=_52; +this._preDomFilterContent(_53); +} +this.onDisplayChanged(); +},replaceValue:function(_54){ +if(this.isClosed){ +this.setValue(_54); +}else{ +if(this.window&&this.window.getSelection&&!dojo.isMoz){ +this.setValue(_54); +}else{ +if(this.window&&this.window.getSelection){ +_54=this._preFilterContent(_54); +this.execCommand("selectall"); +if(!_54){ +this._cursorToStart=true; +_54=" "; +} +this.execCommand("inserthtml",_54); +this._preDomFilterContent(this.editNode); +}else{ +if(this.document&&this.document.selection){ +this.setValue(_54); +} +} +} +} +},_preFilterContent:function(_55){ +var ec=_55; +dojo.forEach(this.contentPreFilters,function(ef){ +if(ef){ +ec=ef(ec); +} +}); +return ec; +},_preDomFilterContent:function(dom){ +dom=dom||this.editNode; +dojo.forEach(this.contentDomPreFilters,function(ef){ +if(ef&&dojo.isFunction(ef)){ +ef(dom); +} +},this); +},_postFilterContent:function(dom,_56){ +var ec; +if(!dojo.isString(dom)){ +dom=dom||this.editNode; +if(this.contentDomPostFilters.length){ +if(_56){ +dom=dojo.clone(dom); +} +dojo.forEach(this.contentDomPostFilters,function(ef){ +dom=ef(dom); +}); +} +ec=dijit._editor.getChildrenHtml(dom); +}else{ +ec=dom; +} +if(!dojo.trim(ec.replace(/^\xA0\xA0*/,"").replace(/\xA0\xA0*$/,"")).length){ +ec=""; +} +dojo.forEach(this.contentPostFilters,function(ef){ +ec=ef(ec); +}); +return ec; +},_saveContent:function(e){ +var _57=dojo.byId(dijit._scopeName+"._editor.RichText.savedContent"); +if(_57.value){ +_57.value+=this._SEPARATOR; +} +_57.value+=this.name+":"+this.getValue(true); +},escapeXml:function(str,_58){ +str=str.replace(/&/gm,"&").replace(/</gm,"<").replace(/>/gm,">").replace(/"/gm,"""); +if(!_58){ +str=str.replace(/'/gm,"'"); +} +return str; +},getNodeHtml:function(_59){ +dojo.deprecated("dijit.Editor::getNodeHtml is deprecated","use dijit._editor.getNodeHtml instead",2); +return dijit._editor.getNodeHtml(_59); +},getNodeChildrenHtml:function(dom){ +dojo.deprecated("dijit.Editor::getNodeChildrenHtml is deprecated","use dijit._editor.getChildrenHtml instead",2); +return dijit._editor.getChildrenHtml(dom); +},close:function(_5a){ +if(this.isClosed){ +return false; +} +if(!arguments.length){ +_5a=true; +} +this._content=this.getValue(); +var _5b=(this.savedContent!=this._content); +if(this.interval){ +clearInterval(this.interval); +} +if(this._webkitListener){ +this.disconnect(this._webkitListener); +delete this._webkitListener; +} +if(dojo.isIE){ +this.iframe.onfocus=null; +} +this.iframe._loadFunc=null; +if(this._iframeRegHandle){ +dijit.unregisterIframe(this._iframeRegHandle); +delete this._iframeRegHandle; +} +if(this.textarea){ +var s=this.textarea.style; +s.position=""; +s.left=s.top=""; +if(dojo.isIE){ +s.overflow=this.__overflow; +this.__overflow=null; +} +this.textarea.value=_5a?this._content:this.savedContent; +dojo.destroy(this.domNode); +this.domNode=this.textarea; +}else{ +this.domNode.innerHTML=_5a?this._content:this.savedContent; +} +delete this.iframe; +dojo.removeClass(this.domNode,this.baseClass); +this.isClosed=true; +this.isLoaded=false; +delete this.editNode; +delete this.focusNode; +if(this.window&&this.window._frameElement){ +this.window._frameElement=null; +} +this.window=null; +this.document=null; +this.editingArea=null; +this.editorObject=null; +return _5b; +},destroy:function(){ +if(!this.isClosed){ +this.close(false); +} +this.inherited(arguments); +},_removeMozBogus:function(_5c){ +return _5c.replace(/\stype="_moz"/gi,"").replace(/\s_moz_dirty=""/gi,"").replace(/_moz_resizing="(true|false)"/gi,""); +},_removeWebkitBogus:function(_5d){ +_5d=_5d.replace(/\sclass="webkit-block-placeholder"/gi,""); +_5d=_5d.replace(/\sclass="apple-style-span"/gi,""); +return _5d; +},_normalizeFontStyle:function(_5e){ +return _5e.replace(/<(\/)?strong([ \>])/gi,"<$1b$2").replace(/<(\/)?em([ \>])/gi,"<$1i$2"); +},_preFixUrlAttributes:function(_5f){ +return _5f.replace(/(?:(<a(?=\s).*?\shref=)("|')(.*?)\2)|(?:(<a\s.*?href=)([^"'][^ >]+))/gi,"$1$4$2$3$5$2 _djrealurl=$2$3$5$2").replace(/(?:(<img(?=\s).*?\ssrc=)("|')(.*?)\2)|(?:(<img\s.*?src=)([^"'][^ >]+))/gi,"$1$4$2$3$5$2 _djrealurl=$2$3$5$2"); +},_inserthorizontalruleImpl:function(_60){ +if(dojo.isIE){ +return this._inserthtmlImpl("<hr>"); +} +return this.document.execCommand("inserthorizontalrule",false,_60); +},_unlinkImpl:function(_61){ +if((this.queryCommandEnabled("unlink"))&&(dojo.isMoz||dojo.isWebKit)){ +var a=this._sCall("getAncestorElement",["a"]); +this._sCall("selectElement",[a]); +return this.document.execCommand("unlink",false,null); +} +return this.document.execCommand("unlink",false,_61); +},_hilitecolorImpl:function(_62){ +var _63; +if(dojo.isMoz){ +this.document.execCommand("styleWithCSS",false,true); +_63=this.document.execCommand("hilitecolor",false,_62); +this.document.execCommand("styleWithCSS",false,false); +}else{ +_63=this.document.execCommand("hilitecolor",false,_62); +} +return _63; +},_backcolorImpl:function(_64){ +if(dojo.isIE){ +_64=_64?_64:null; +} +return this.document.execCommand("backcolor",false,_64); +},_forecolorImpl:function(_65){ +if(dojo.isIE){ +_65=_65?_65:null; +} +return this.document.execCommand("forecolor",false,_65); +},_inserthtmlImpl:function(_66){ +_66=this._preFilterContent(_66); +var rv=true; +if(dojo.isIE){ +var _67=this.document.selection.createRange(); +if(this.document.selection.type.toUpperCase()=="CONTROL"){ +var n=_67.item(0); +while(_67.length){ +_67.remove(_67.item(0)); +} +n.outerHTML=_66; +}else{ +_67.pasteHTML(_66); +} +_67.select(); +}else{ +if(dojo.isMoz&&!_66.length){ +this._sCall("remove"); +}else{ +rv=this.document.execCommand("inserthtml",false,_66); +} +} +return rv; +},getHeaderHeight:function(){ +return this._getNodeChildrenHeight(this.header); +},getFooterHeight:function(){ +return this._getNodeChildrenHeight(this.footer); +},_getNodeChildrenHeight:function(_68){ +var h=0; +if(_68&&_68.childNodes){ +var i; +for(i=0;i<_68.childNodes.length;i++){ +var _69=dojo.position(_68.childNodes[i]); +h+=_69.h; +} +} +return h; +}}); +} diff --git a/lib/dijit/_editor/_Plugin.js b/lib/dijit/_editor/_Plugin.js new file mode 100644 index 000000000..f3c95aae0 --- /dev/null +++ b/lib/dijit/_editor/_Plugin.js @@ -0,0 +1,73 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._editor._Plugin"]){ +dojo._hasResource["dijit._editor._Plugin"]=true; +dojo.provide("dijit._editor._Plugin"); +dojo.require("dijit._Widget"); +dojo.require("dijit.form.Button"); +dojo.declare("dijit._editor._Plugin",null,{constructor:function(_1,_2){ +this.params=_1||{}; +dojo.mixin(this,this.params); +this._connects=[]; +},editor:null,iconClassPrefix:"dijitEditorIcon",button:null,command:"",useDefaultCommand:true,buttonClass:dijit.form.Button,getLabel:function(_3){ +return this.editor.commands[_3]; +},_initButton:function(){ +if(this.command.length){ +var _4=this.getLabel(this.command),_5=this.editor,_6=this.iconClassPrefix+" "+this.iconClassPrefix+this.command.charAt(0).toUpperCase()+this.command.substr(1); +if(!this.button){ +var _7=dojo.mixin({label:_4,dir:_5.dir,lang:_5.lang,showLabel:false,iconClass:_6,dropDown:this.dropDown,tabIndex:"-1"},this.params||{}); +this.button=new this.buttonClass(_7); +} +} +},destroy:function(){ +dojo.forEach(this._connects,dojo.disconnect); +if(this.dropDown){ +this.dropDown.destroyRecursive(); +} +},connect:function(o,f,tf){ +this._connects.push(dojo.connect(o,f,this,tf)); +},updateState:function(){ +var e=this.editor,c=this.command,_8,_9; +if(!e||!e.isLoaded||!c.length){ +return; +} +if(this.button){ +try{ +_9=e.queryCommandEnabled(c); +if(this.enabled!==_9){ +this.enabled=_9; +this.button.set("disabled",!_9); +} +if(typeof this.button.checked=="boolean"){ +_8=e.queryCommandState(c); +if(this.checked!==_8){ +this.checked=_8; +this.button.set("checked",e.queryCommandState(c)); +} +} +} +catch(e){ +} +} +},setEditor:function(_a){ +this.editor=_a; +this._initButton(); +if(this.button&&this.useDefaultCommand){ +if(this.editor.queryCommandAvailable(this.command)){ +this.connect(this.button,"onClick",dojo.hitch(this.editor,"execCommand",this.command,this.commandArg)); +}else{ +this.button.domNode.style.display="none"; +} +} +this.connect(this.editor,"onNormalizedDisplayChanged","updateState"); +},setToolbar:function(_b){ +if(this.button){ +_b.addChild(this.button); +} +}}); +} diff --git a/lib/dijit/_editor/html.js b/lib/dijit/_editor/html.js new file mode 100644 index 000000000..7db85c7d9 --- /dev/null +++ b/lib/dijit/_editor/html.js @@ -0,0 +1,147 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._editor.html"]){ +dojo._hasResource["dijit._editor.html"]=true; +dojo.provide("dijit._editor.html"); +dijit._editor.escapeXml=function(_1,_2){ +_1=_1.replace(/&/gm,"&").replace(/</gm,"<").replace(/>/gm,">").replace(/"/gm,"""); +if(!_2){ +_1=_1.replace(/'/gm,"'"); +} +return _1; +}; +dijit._editor.getNodeHtml=function(_3){ +var _4; +switch(_3.nodeType){ +case 1: +var _5=_3.nodeName.toLowerCase(); +if(!_5||_5.charAt(0)=="/"){ +return ""; +} +_4="<"+_5; +var _6=[]; +var _7; +if(dojo.isIE&&_3.outerHTML){ +var s=_3.outerHTML; +s=s.substr(0,s.indexOf(">")).replace(/(['"])[^"']*\1/g,""); +var _8=/(\b\w+)\s?=/g; +var m,_9; +while((m=_8.exec(s))){ +_9=m[1]; +if(_9.substr(0,3)!="_dj"){ +if(_9=="src"||_9=="href"){ +if(_3.getAttribute("_djrealurl")){ +_6.push([_9,_3.getAttribute("_djrealurl")]); +continue; +} +} +var _a,_b; +switch(_9){ +case "style": +_a=_3.style.cssText.toLowerCase(); +break; +case "class": +_a=_3.className; +break; +case "width": +if(_5==="img"){ +_b=/width=(\S+)/i.exec(s); +if(_b){ +_a=_b[1]; +} +break; +} +case "height": +if(_5==="img"){ +_b=/height=(\S+)/i.exec(s); +if(_b){ +_a=_b[1]; +} +break; +} +default: +_a=_3.getAttribute(_9); +} +if(_a!=null){ +_6.push([_9,_a.toString()]); +} +} +} +}else{ +var i=0; +while((_7=_3.attributes[i++])){ +var n=_7.name; +if(n.substr(0,3)!="_dj"){ +var v=_7.value; +if(n=="src"||n=="href"){ +if(_3.getAttribute("_djrealurl")){ +v=_3.getAttribute("_djrealurl"); +} +} +_6.push([n,v]); +} +} +} +_6.sort(function(a,b){ +return a[0]<b[0]?-1:(a[0]==b[0]?0:1); +}); +var j=0; +while((_7=_6[j++])){ +_4+=" "+_7[0]+"=\""+(dojo.isString(_7[1])?dijit._editor.escapeXml(_7[1],true):_7[1])+"\""; +} +if(_5==="script"){ +_4+=">"+_3.innerHTML+"</"+_5+">"; +}else{ +if(_3.childNodes.length){ +_4+=">"+dijit._editor.getChildrenHtml(_3)+"</"+_5+">"; +}else{ +switch(_5){ +case "br": +case "hr": +case "img": +case "input": +case "base": +case "meta": +case "area": +case "basefont": +_4+=" />"; +break; +default: +_4+="></"+_5+">"; +} +} +} +break; +case 4: +case 3: +_4=dijit._editor.escapeXml(_3.nodeValue,true); +break; +case 8: +_4="<!--"+dijit._editor.escapeXml(_3.nodeValue,true)+"-->"; +break; +default: +_4="<!-- Element not recognized - Type: "+_3.nodeType+" Name: "+_3.nodeName+"-->"; +} +return _4; +}; +dijit._editor.getChildrenHtml=function(_c){ +var _d=""; +if(!_c){ +return _d; +} +var _e=_c["childNodes"]||_c; +var _f=!dojo.isIE||_e!==_c; +var _10,i=0; +while((_10=_e[i++])){ +if(!_f||_10.parentNode==_c){ +_d+=dijit._editor.getNodeHtml(_10); +} +} +return _d; +}; +} diff --git a/lib/dijit/_editor/nls/FontChoice.js b/lib/dijit/_editor/nls/FontChoice.js new file mode 100644 index 000000000..f2b6e0c90 --- /dev/null +++ b/lib/dijit/_editor/nls/FontChoice.js @@ -0,0 +1 @@ +({"noFormat":"None","1":"xx-small","2":"x-small","formatBlock":"Format","3":"small","4":"medium","5":"large","6":"x-large","7":"xx-large","fantasy":"fantasy","serif":"serif","p":"Paragraph","pre":"Pre-formatted","sans-serif":"sans-serif","fontName":"Font","h1":"Heading","h2":"Subheading","h3":"Sub-subheading","monospace":"monospace","fontSize":"Size","cursive":"cursive"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/LinkDialog.js b/lib/dijit/_editor/nls/LinkDialog.js new file mode 100644 index 000000000..0dd81f149 --- /dev/null +++ b/lib/dijit/_editor/nls/LinkDialog.js @@ -0,0 +1 @@ +({"text":"Description:","insertImageTitle":"Image Properties","set":"Set","newWindow":"New Window","topWindow":"Topmost Window","target":"Target:","createLinkTitle":"Link Properties","parentWindow":"Parent Window","currentWindow":"Current Window","url":"URL:"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/ar/FontChoice.js b/lib/dijit/_editor/nls/ar/FontChoice.js new file mode 100644 index 000000000..71683c008 --- /dev/null +++ b/lib/dijit/_editor/nls/ar/FontChoice.js @@ -0,0 +1 @@ +({"1":"صغير جدا جدا","2":"صغير جدا","formatBlock":"النسق","3":"صغير","4":"متوسط","5":"كبير","6":"كبير جدا","7":"كبير جدا جدا","fantasy":"خيالي","serif":"serif","p":"فقرة","pre":"منسق بصفة مسبقة","sans-serif":"sans-serif","fontName":"طاقم طباعة","h1":"عنوان","h2":"عنوان فرعي","h3":"فرعي-عنوان فرعي","monospace":"أحادي المسافة","fontSize":"الحجم","cursive":"كتابة بحروف متصلة","noFormat":"None"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/ar/LinkDialog.js b/lib/dijit/_editor/nls/ar/LinkDialog.js new file mode 100644 index 000000000..1a1b32e59 --- /dev/null +++ b/lib/dijit/_editor/nls/ar/LinkDialog.js @@ -0,0 +1 @@ +({"text":"الوصف:","insertImageTitle":"خصائص الصورة","set":"تحديد","newWindow":"نافذة جديدة","topWindow":"النافذة العلوية","target":"الهدف: ","createLinkTitle":"خصائص الوصلة","parentWindow":"النافذة الرئيسية","currentWindow":"النافذة الحالية","url":"عنوان URL:"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/ar/commands.js b/lib/dijit/_editor/nls/ar/commands.js new file mode 100644 index 000000000..3e524ea91 --- /dev/null +++ b/lib/dijit/_editor/nls/ar/commands.js @@ -0,0 +1 @@ +({"removeFormat":"ازالة النسق","copy":"نسخ","paste":"لصق","selectAll":"اختيار كل","insertOrderedList":"كشف مرقم","insertTable":"ادراج/تحرير جدول","print":"طباعة","underline":"~تسطير","foreColor":"لون الواجهة الأمامية","htmlToggle":"مصدر HTML","formatBlock":"نمط الفقرة","newPage":"صفحة جديدة","insertHorizontalRule":"مسطرة أفقية","delete":"حذف","insertUnorderedList":"كشف نقطي","tableProp":"خصائص الجدول","insertImage":"ادراج صورة","superscript":"رمز علوي","subscript":"رمز سفلي","createLink":"تكوين وصلة","undo":"تراجع","fullScreen":"تبديل الشاشة الكاملة","italic":"~مائل","fontName":"اسم طاقم الطباعة","justifyLeft":"محاذاة الى اليسار","unlink":"ازالة وصلة","toggleTableBorder":"تبديل حدود الجدول","viewSource":"مشاهدة مصدر HTML","ctrlKey":"ctrl+${0}","fontSize":"حجم طاقم الطباعة","systemShortcut":"التصرف \"${0}\" يكون متاحا فقط في برنامج الاستعراض الخاص بك باستخدام المسار المختصر للوحة المفاتيح. استخدم ${1}.","indent":"ازاحة للداخل","redo":"اعادة","strikethrough":"تشطيب","justifyFull":"ضبط","justifyCenter":"محاذاة في الوسط","hiliteColor":"لون الخلفية","deleteTable":"حذف جدول","outdent":"ازاحة للخارج","cut":"قص","plainFormatBlock":"نمط الفقرة","toggleDir":"تبديل الاتجاه","bold":"عري~ض","tabIndent":"ازاحة للداخل باستخدام Tab","justifyRight":"محاذاة الى اليمين","appleKey":"⌘${0}"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/ca/FontChoice.js b/lib/dijit/_editor/nls/ca/FontChoice.js new file mode 100644 index 000000000..efba7dec4 --- /dev/null +++ b/lib/dijit/_editor/nls/ca/FontChoice.js @@ -0,0 +1 @@ +({"1":"xx-petit","2":"x-petit","formatBlock":"Format","3":"petit","4":"mitjà","5":"gran","6":"x-gran","7":"xx-gran","fantasy":"Fantasia","serif":"serif","p":"Paràgraf","pre":"Format previ","sans-serif":"sans-serif","fontName":"Tipus de lletra","h1":"Títol","h2":"Subtítol","h3":"Subsubtítol","monospace":"monoespai","fontSize":"Mida","cursive":"Cursiva","noFormat":"None"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/ca/LinkDialog.js b/lib/dijit/_editor/nls/ca/LinkDialog.js new file mode 100644 index 000000000..b030a2ced --- /dev/null +++ b/lib/dijit/_editor/nls/ca/LinkDialog.js @@ -0,0 +1 @@ +({"text":"Descipció:","insertImageTitle":"Propietats de la imatge","set":"Defineix","newWindow":"Finestra nova","topWindow":"Finestra superior","target":"Destinació:","createLinkTitle":"Propietats de l'enllaç","parentWindow":"Finestra pare","currentWindow":"Finestra actual","url":"URL:"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/ca/commands.js b/lib/dijit/_editor/nls/ca/commands.js new file mode 100644 index 000000000..f78e71c85 --- /dev/null +++ b/lib/dijit/_editor/nls/ca/commands.js @@ -0,0 +1 @@ +({"removeFormat":"Elimina el format","copy":"Copia","paste":"Enganxa","selectAll":"Selecciona-ho tot","insertOrderedList":"Llista numerada","insertTable":"Insereix/edita la taula","print":"Imprimeix","underline":"Subratllat","foreColor":"Color de primer pla","htmlToggle":"Font HTML","formatBlock":"Estil de paràgraf","newPage":"Pàgina nova","insertHorizontalRule":"Regle horitzontal","delete":"Suprimeix","insertUnorderedList":"Llista de vinyetes","tableProp":"Propietat de taula","insertImage":"Insereix imatge","superscript":"Superíndex","subscript":"Subíndex","createLink":"Crea un enllaç","undo":"Desfés","fullScreen":"Commuta pantalla completa","italic":"Cursiva","fontName":"Nom del tipus de lletra","justifyLeft":"Alinea a la esquerra","unlink":"Elimina l'enllaç","toggleTableBorder":"Inverteix els contorns de taula","viewSource":"Visualitza font HTML","ctrlKey":"control+${0}","fontSize":"Cos de la lletra","systemShortcut":"L'acció \"${0}\" és l'única disponible al navegador utilitzant una drecera del teclat. Utilitzeu ${1}.","indent":"Sagnat","redo":"Refés","strikethrough":"Ratllat","justifyFull":"Justifica","justifyCenter":"Centra","hiliteColor":"Color de fons","deleteTable":"Suprimeix la taula","outdent":"Sagna a l'esquerra","cut":"Retalla","plainFormatBlock":"Estil de paràgraf","toggleDir":"Inverteix la direcció","bold":"Negreta","tabIndent":"Sagnat","justifyRight":"Alinea a la dreta","appleKey":"⌘${0}"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/commands.js b/lib/dijit/_editor/nls/commands.js new file mode 100644 index 000000000..582b782c0 --- /dev/null +++ b/lib/dijit/_editor/nls/commands.js @@ -0,0 +1 @@ +({"removeFormat":"Remove Format","copy":"Copy","paste":"Paste","selectAll":"Select All","insertOrderedList":"Numbered List","insertTable":"Insert/Edit Table","print":"Print","underline":"Underline","foreColor":"Foreground Color","htmlToggle":"HTML Source","formatBlock":"Paragraph Style","newPage":"New Page","insertHorizontalRule":"Horizontal Rule","delete":"Delete","appleKey":"⌘${0}","insertUnorderedList":"Bullet List","tableProp":"Table Property","insertImage":"Insert Image","superscript":"Superscript","subscript":"Subscript","createLink":"Create Link","undo":"Undo","fullScreen":"Toggle Full Screen","italic":"Italic","fontName":"Font Name","justifyLeft":"Align Left","unlink":"Remove Link","toggleTableBorder":"Toggle Table Border","viewSource":"View HTML Source","ctrlKey":"ctrl+${0}","fontSize":"Font Size","systemShortcut":"The \"${0}\" action is only available in your browser using a keyboard shortcut. Use ${1}.","indent":"Indent","redo":"Redo","strikethrough":"Strikethrough","justifyFull":"Justify","justifyCenter":"Align Center","hiliteColor":"Background Color","deleteTable":"Delete Table","outdent":"Outdent","cut":"Cut","plainFormatBlock":"Paragraph Style","toggleDir":"Toggle Direction","bold":"Bold","tabIndent":"Tab Indent","justifyRight":"Align Right"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/cs/FontChoice.js b/lib/dijit/_editor/nls/cs/FontChoice.js new file mode 100644 index 000000000..447fe6685 --- /dev/null +++ b/lib/dijit/_editor/nls/cs/FontChoice.js @@ -0,0 +1 @@ +({"1":"extra malé","2":"velmi malé","formatBlock":"Formát","3":"malé","4":"střední","5":"velké","6":"velmi velké","7":"extra velké","fantasy":"fantasy","serif":"serif","p":"Odstavec","pre":"Předformátované","sans-serif":"sans-serif","fontName":"Písmo","h1":"Nadpis","h2":"Podnadpis","h3":"Podnadpis 2","monospace":"monospace","fontSize":"Velikost","cursive":"cursive","noFormat":"None"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/cs/LinkDialog.js b/lib/dijit/_editor/nls/cs/LinkDialog.js new file mode 100644 index 000000000..41dad34f6 --- /dev/null +++ b/lib/dijit/_editor/nls/cs/LinkDialog.js @@ -0,0 +1 @@ +({"text":"Popis:","insertImageTitle":"Vlastnosti obrázku","set":"Nastavit","newWindow":"Nové okno","topWindow":"Okno nejvyšší úrovně","target":"Cíl:","createLinkTitle":"Vlastnosti odkazu","parentWindow":"Nadřízené okno","currentWindow":"Aktuální okno","url":"Adresa URL:"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/cs/commands.js b/lib/dijit/_editor/nls/cs/commands.js new file mode 100644 index 000000000..ce515587c --- /dev/null +++ b/lib/dijit/_editor/nls/cs/commands.js @@ -0,0 +1 @@ +({"removeFormat":"Odebrat formát","copy":"Kopírovat","paste":"Vložit","selectAll":"Vybrat vše","insertOrderedList":"Číslovaný seznam","insertTable":"Vložit/upravit tabulku","print":"Tisk","underline":"Podtržení","foreColor":"Barva popředí","htmlToggle":"Zdroj HTML","formatBlock":"Styl odstavce","newPage":"Nová stránka","insertHorizontalRule":"Vodorovná čára","delete":"Odstranit","insertUnorderedList":"Seznam s odrážkami","tableProp":"Vlastnost tabulky","insertImage":"Vložit obrázek","superscript":"Horní index","subscript":"Dolní index","createLink":"Vytvořit odkaz","undo":"Zpět","fullScreen":"Přepnout režim celé obrazovky","italic":"Kurzíva","fontName":"Název písma","justifyLeft":"Zarovnat vlevo","unlink":"Odebrat odkaz","toggleTableBorder":"Přepnout ohraničení tabulky","viewSource":"Zobrazit zdroj ve formátu HTML","fontSize":"Velikost písma","systemShortcut":"Akce \"${0}\" je v prohlížeči dostupná pouze prostřednictvím klávesové zkratky. Použijte klávesovou zkratku ${1}.","indent":"Odsadit","redo":"Opakovat","strikethrough":"Přeškrtnutí","justifyFull":"Do bloku","justifyCenter":"Zarovnat na střed","hiliteColor":"Barva pozadí","deleteTable":"Odstranit tabulku","outdent":"Předsadit","cut":"Vyjmout","plainFormatBlock":"Styl odstavce","toggleDir":"Přepnout směr","bold":"Tučné","tabIndent":"Odsazení tabulátoru","justifyRight":"Zarovnat vpravo","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/da/FontChoice.js b/lib/dijit/_editor/nls/da/FontChoice.js new file mode 100644 index 000000000..5b380ece6 --- /dev/null +++ b/lib/dijit/_editor/nls/da/FontChoice.js @@ -0,0 +1 @@ +({"1":"xx-small","2":"x-small","formatBlock":"Format","3":"small","4":"medium","5":"large","6":"x-large","7":"xx-large","fantasy":"fantasy","serif":"serif","p":"Afsnit","pre":"Forudformateret","sans-serif":"sans-serif","fontName":"Skrifttype","h1":"Overskrift","h2":"Underoverskrift","h3":"Underunderoverskrift","monospace":"monospace","fontSize":"Størrelse","cursive":"kursiv","noFormat":"None"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/da/LinkDialog.js b/lib/dijit/_editor/nls/da/LinkDialog.js new file mode 100644 index 000000000..9b757f75d --- /dev/null +++ b/lib/dijit/_editor/nls/da/LinkDialog.js @@ -0,0 +1 @@ +({"text":"Beskrivelse:","insertImageTitle":"Billedegenskaber","set":"Definér","newWindow":"Nyt vindue","topWindow":"Øverste vindue","target":"Mål:","createLinkTitle":"Linkegenskaber","parentWindow":"Overordnet vindue","currentWindow":"Aktuelt vindue","url":"URL:"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/da/commands.js b/lib/dijit/_editor/nls/da/commands.js new file mode 100644 index 000000000..d2d93547e --- /dev/null +++ b/lib/dijit/_editor/nls/da/commands.js @@ -0,0 +1 @@ +({"removeFormat":"Fjern format","copy":"Kopiér","paste":"Sæt ind","selectAll":"Markér alle","insertOrderedList":"Nummereret liste","insertTable":"Indsæt/redigér tabel","print":"Udskriv","underline":"Understreget","foreColor":"Forgrundsfarve","htmlToggle":"HTML-kilde","formatBlock":"Afsnitstypografi","newPage":"Ny side","insertHorizontalRule":"Vandret linje","delete":"Slet","insertUnorderedList":"Punktliste","tableProp":"Tabelegenskab","insertImage":"Indsæt billede","superscript":"Hævet skrift","subscript":"Sænket skrift","createLink":"Opret link","undo":"Fortryd","fullScreen":"Aktivér/deaktivér fuldskærm","italic":"Kursiv","fontName":"Skriftnavn","justifyLeft":"Venstrejusteret","unlink":"Fjern link","toggleTableBorder":"Skift tabelramme","viewSource":"Vis HTML-kilde","ctrlKey":"Ctrl+${0}","fontSize":"Skriftstørrelse","systemShortcut":"Funktionen \"${0}\" kan kun bruges i din browser med en tastaturgenvej. Brug ${1}.","indent":"Indrykning","redo":"Annullér Fortryd","strikethrough":"Gennemstreget","justifyFull":"Lige margener","justifyCenter":"Centreret","hiliteColor":"Baggrundsfarve","deleteTable":"Slet tabel","outdent":"Udrykning","cut":"Klip","plainFormatBlock":"Afsnitstypografi","toggleDir":"Skift retning","bold":"Fed","tabIndent":"Indrykning med tabulator","justifyRight":"Højrejusteret","appleKey":"⌘${0}"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/de/FontChoice.js b/lib/dijit/_editor/nls/de/FontChoice.js new file mode 100644 index 000000000..ed65ff3e7 --- /dev/null +++ b/lib/dijit/_editor/nls/de/FontChoice.js @@ -0,0 +1 @@ +({"1":"XXS","2":"XS","formatBlock":"Format","3":"S","4":"M","5":"L","6":"XL","7":"XXL","fantasy":"Fantasie","serif":"Serife","p":"Absatz","pre":"Vorformatiert","sans-serif":"Serifenlos","fontName":"Schriftart","h1":"Überschrift","h2":"Unterüberschrift","h3":"Unterunterüberschrift","monospace":"Monospaceschrift","fontSize":"Größe","cursive":"Kursiv","noFormat":"None"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/de/LinkDialog.js b/lib/dijit/_editor/nls/de/LinkDialog.js new file mode 100644 index 000000000..b1eab6cb4 --- /dev/null +++ b/lib/dijit/_editor/nls/de/LinkDialog.js @@ -0,0 +1 @@ +({"text":"Beschreibung:","insertImageTitle":"Grafikeigenschaften","set":"Festlegen","newWindow":"Neues Fenster","topWindow":"Aktives Fenster","target":"Ziel:","createLinkTitle":"Linkeigenschaften","parentWindow":"Übergeordnetes Fenster","currentWindow":"Aktuelles Fenster","url":"URL:"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/de/commands.js b/lib/dijit/_editor/nls/de/commands.js new file mode 100644 index 000000000..8fa589cc7 --- /dev/null +++ b/lib/dijit/_editor/nls/de/commands.js @@ -0,0 +1 @@ +({"removeFormat":"Formatierung entfernen","copy":"Kopieren","paste":"Einfügen","selectAll":"Alles auswählen","insertOrderedList":"Nummerierung","insertTable":"Tabelle einfügen/bearbeiten","print":"Drucken","underline":"Unterstrichen","foreColor":"Vordergrundfarbe","htmlToggle":"HTML-Quelltext","formatBlock":"Absatzstil","newPage":"Neue Seite","insertHorizontalRule":"Horizontaler Strich","delete":"Löschen","insertUnorderedList":"Aufzählungszeichen","tableProp":"Tabelleneigenschaft","insertImage":"Grafik einfügen","superscript":"Hochgestellt","subscript":"Tiefgestellt","createLink":"Link erstellen","undo":"Rückgängig","fullScreen":"Gesamtanzeige","italic":"Kursiv","fontName":"Schriftartname","justifyLeft":"Linksbündig","unlink":"Link entfernen","toggleTableBorder":"Tabellenumrandung ein-/ausschalten","viewSource":"HTML-Quelle","ctrlKey":"Strg+${0}","fontSize":"Schriftgröße","systemShortcut":"Die Aktion \"${0}\" ist nur über einen Direktaufruf in Ihrem Browser verfügbar. Verwenden Sie ${1}.","indent":"Einrücken","redo":"Wiederherstellen","strikethrough":"Durchgestrichen","justifyFull":"Blocksatz","justifyCenter":"Zentriert","hiliteColor":"Hintergrundfarbe","deleteTable":"Tabelle löschen","outdent":"Ausrücken","cut":"Ausschneiden","plainFormatBlock":"Absatzstil","toggleDir":"Wechselrichtung","bold":"Fett","tabIndent":"Tabulatoreinrückung","justifyRight":"Rechtsbündig","appleKey":"⌘${0}"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/el/FontChoice.js b/lib/dijit/_editor/nls/el/FontChoice.js new file mode 100644 index 000000000..13c661c63 --- /dev/null +++ b/lib/dijit/_editor/nls/el/FontChoice.js @@ -0,0 +1 @@ +({"1":"xx-μικρά","2":"x-μικρά","formatBlock":"Μορφή","3":"μικρά","4":"μεσαία","5":"μεγάλα","6":"x-μεγάλα","7":"xx-μεγάλα","fantasy":"φαντασίας","serif":"με πατούρες (serif)","p":"Παράγραφος","pre":"Προ-μορφοποιημένο","sans-serif":"χωρίς πατούρες (sans-serif)","fontName":"Γραμματοσειρά","h1":"Επικεφαλίδα","h2":"Δευτερεύουσα επικεφαλίδα","h3":"Δευτερεύουσα επικεφαλίδα τρίτου επιπέδου","monospace":"σταθερού πλάτους","fontSize":"Μέγεθος","cursive":"πλάγιοι","noFormat":"None"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/el/LinkDialog.js b/lib/dijit/_editor/nls/el/LinkDialog.js new file mode 100644 index 000000000..8a1e121e8 --- /dev/null +++ b/lib/dijit/_editor/nls/el/LinkDialog.js @@ -0,0 +1 @@ +({"text":"Περιγραφή:","insertImageTitle":"Ιδιότητες εικόνας","set":"Ορισμός","newWindow":"Νέο παράθυρο","topWindow":"Παράθυρο σε πρώτο πλάνο","target":"Προορισμός:","createLinkTitle":"Ιδιότητες σύνδεσης","parentWindow":"Γονικό παράθυρο","currentWindow":"Τρέχον παράθυρο","url":"Διεύθυνση URL:"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/el/commands.js b/lib/dijit/_editor/nls/el/commands.js new file mode 100644 index 000000000..dc8540574 --- /dev/null +++ b/lib/dijit/_editor/nls/el/commands.js @@ -0,0 +1 @@ +({"removeFormat":"Αφαίρεση μορφοποίησης","copy":"Αντιγραφή","paste":"Επικόλληση","selectAll":"Επιλογή όλων","insertOrderedList":"Αριθμημένη λίστα","insertTable":"Εισαγωγή/Τροποποίηση πίνακα","print":"Εκτύπωση","underline":"Υπογράμμιση","foreColor":"Χρώμα προσκηνίου","htmlToggle":"Πρωτογενής κώδικας HTML","formatBlock":"Στυλ παραγράφου","newPage":"Νέα σελίδα","insertHorizontalRule":"Οριζόντια γραμμή","delete":"Διαγραφή","insertUnorderedList":"Λίστα με κουκίδες","tableProp":"Ιδιότητα πίνακα","insertImage":"Εισαγωγή εικόνας","superscript":"Εκθέτης","subscript":"Δείκτης","createLink":"Δημιουργία σύνδεσης","undo":"Αναίρεση","fullScreen":"Εναλλαγή κατάστασης πλήρους οθόνης","italic":"Πλάγια","fontName":"Όνομα γραμματοσειράς","justifyLeft":"Στοίχιση αριστερά","unlink":"Αφαίρεση σύνδεσης","toggleTableBorder":"Εναλλαγή εμφάνισης περιγράμματος πίνακα","viewSource":"Προβολή προέλευσης HTML","fontSize":"Μέγεθος γραμματοσειράς","systemShortcut":"Σε αυτό το πρόγραμμα πλοήγησης, η ενέργεια \"${0}\" είναι διαθέσιμη μόνο με τη χρήση μιας συντόμευσης πληκτρολογίου. Χρησιμοποιήστε τη συντόμευση ${1}.","indent":"Εσοχή","redo":"Ακύρωση αναίρεσης","strikethrough":"Διαγράμμιση","justifyFull":"Πλήρης στοίχιση","justifyCenter":"Στοίχιση στο κέντρο","hiliteColor":"Χρώμα φόντου","deleteTable":"Διαγραφή πίνακα","outdent":"Μείωση περιθωρίου","cut":"Αποκοπή","plainFormatBlock":"Στυλ παραγράφου","toggleDir":"Εναλλαγή κατεύθυνσης","bold":"Έντονα","tabIndent":"Εσοχή με το πλήκτρο Tab","justifyRight":"Στοίχιση δεξιά","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/es/FontChoice.js b/lib/dijit/_editor/nls/es/FontChoice.js new file mode 100644 index 000000000..905a5609a --- /dev/null +++ b/lib/dijit/_editor/nls/es/FontChoice.js @@ -0,0 +1 @@ +({"1":"xx-pequeño","2":"x-pequeño","formatBlock":"Formato","3":"pequeño","4":"medio","5":"grande","6":"x-grande","7":"xx-grande","fantasy":"fantasía","serif":"serif","p":"Párrafo","pre":"Preformateado","sans-serif":"sans-serif","fontName":"Font","h1":"Cabecera","h2":"Subcabecera","h3":"Sub-subcabecera","monospace":"espacio sencillo","fontSize":"Tamaño","cursive":"cursiva","noFormat":"None"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/es/LinkDialog.js b/lib/dijit/_editor/nls/es/LinkDialog.js new file mode 100644 index 000000000..15802d77a --- /dev/null +++ b/lib/dijit/_editor/nls/es/LinkDialog.js @@ -0,0 +1 @@ +({"text":"Descripción: ","insertImageTitle":"Propiedades de la imagen","set":"Establecer","newWindow":"Nueva ventana","topWindow":"Ventana superior","target":"Destino: ","createLinkTitle":"Propiedades del enlace","parentWindow":"Ventana padre","currentWindow":"Ventana actual","url":"URL:"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/es/commands.js b/lib/dijit/_editor/nls/es/commands.js new file mode 100644 index 000000000..0d189dc8d --- /dev/null +++ b/lib/dijit/_editor/nls/es/commands.js @@ -0,0 +1 @@ +({"removeFormat":"Eliminar formato","copy":"Copiar","paste":"Pegar","selectAll":"Seleccionar todo","insertOrderedList":"Lista numerada","insertTable":"Insertar/Editar tabla","print":"Imprimir","underline":"Subrayado","foreColor":"Color de primer plano","htmlToggle":"Fuente HTML","formatBlock":"Estilo de párrafo","newPage":"Nueva página","insertHorizontalRule":"Regla horizontal","delete":"Suprimir","insertUnorderedList":"Lista con viñetas","tableProp":"Propiedad de tabla","insertImage":"Insertar imagen","superscript":"Superíndice","subscript":"Subíndice","createLink":"Crear enlace","undo":"Deshacer","fullScreen":"Conmutar pantalla completa","italic":"Cursiva","fontName":"Nombre de font","justifyLeft":"Alinear izquierda","unlink":"Eliminar enlace","toggleTableBorder":"Conmutar borde de tabla","viewSource":"Ver fuente HTML","ctrlKey":"control+${0}","fontSize":"Tamaño de font","systemShortcut":"La acción \"${0}\" sólo está disponible en su navegador mediante un atajo de teclado. Utilice ${1}.","indent":"Sangría","redo":"Rehacer","strikethrough":"Tachado","justifyFull":"Justificar","justifyCenter":"Alinear centro","hiliteColor":"Color de segundo plano","deleteTable":"Suprimir tabla","outdent":"Anular sangría","cut":"Cortar","plainFormatBlock":"Estilo de párrafo","toggleDir":"Conmutar dirección","bold":"Negrita","tabIndent":"Sangría de tabulador","justifyRight":"Alinear derecha","appleKey":"⌘${0}"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/fi/FontChoice.js b/lib/dijit/_editor/nls/fi/FontChoice.js new file mode 100644 index 000000000..7107971c7 --- /dev/null +++ b/lib/dijit/_editor/nls/fi/FontChoice.js @@ -0,0 +1 @@ +({"1":"xx-small","2":"x-small","formatBlock":"Muoto","3":"small","4":"medium","5":"large","6":"x-large","7":"xx-large","fantasy":"fantasy","serif":"serif","p":"Kappale","pre":"Esimuotoiltu","sans-serif":"sans-serif","fontName":"Fontti","h1":"Otsikko","h2":"Alatason otsikko","h3":"Alimman tason otsikko","monospace":"monospace","fontSize":"Koko","cursive":"cursive","noFormat":"None"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/fi/LinkDialog.js b/lib/dijit/_editor/nls/fi/LinkDialog.js new file mode 100644 index 000000000..817dfe875 --- /dev/null +++ b/lib/dijit/_editor/nls/fi/LinkDialog.js @@ -0,0 +1 @@ +({"text":"Kuvaus:","insertImageTitle":"Kuvan ominaisuudet","set":"Aseta","newWindow":"Uusi ikkuna","topWindow":"Päällimmäinen ikkuna","target":"Kohde:","createLinkTitle":"Linkin ominaisuudet","parentWindow":"Pääikkuna","currentWindow":"Nykyinen ikkuna","url":"URL-osoite:"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/fi/commands.js b/lib/dijit/_editor/nls/fi/commands.js new file mode 100644 index 000000000..b67d4ae62 --- /dev/null +++ b/lib/dijit/_editor/nls/fi/commands.js @@ -0,0 +1 @@ +({"removeFormat":"Poista muotoilu","copy":"Kopioi","paste":"Liitä","selectAll":"Valitse kaikki","insertOrderedList":"Numeroitu luettelo","insertTable":"Lisää taulukko/muokkaa taulukkoa","print":"Tulosta","underline":"Alleviivaus","foreColor":"Edustaväri","htmlToggle":"HTML-lähde","formatBlock":"Kappaletyyli","newPage":"Uusi sivu","insertHorizontalRule":"Vaakasuuntainen viiva","delete":"Poista","insertUnorderedList":"Numeroimaton luettelo","tableProp":"Taulukon ominaisuudet","insertImage":"Lisää kuva","superscript":"Yläindeksi","subscript":"Alaindeksi","createLink":"Luo linkki","undo":"Kumoa","fullScreen":"Vaihda koko näyttö","italic":"Kursivointi","fontName":"Fontin nimi","justifyLeft":"Tasaus vasemmalle","unlink":"Poista linkki","toggleTableBorder":"Ota taulukon kehys käyttöön/poista kehys käytöstä","viewSource":"Näytä HTML-lähde","fontSize":"Fontin koko","systemShortcut":"Toiminto \"${0}\" on käytettävissä selaimessa vain näppäimistön pikatoiminnolla. Käytä seuraavaa: ${1}.","indent":"Sisennä","redo":"Tee uudelleen","strikethrough":"Yliviivaus","justifyFull":"Tasaus","justifyCenter":"Tasaus keskelle","hiliteColor":"Taustaväri","deleteTable":"Poista taulukko","outdent":"Ulonna","cut":"Leikkaa","plainFormatBlock":"Kappaletyyli","toggleDir":"Vaihda suuntaa","bold":"Lihavointi","tabIndent":"Sarkainsisennys","justifyRight":"Tasaus oikealle","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/fr/FontChoice.js b/lib/dijit/_editor/nls/fr/FontChoice.js new file mode 100644 index 000000000..a96fac045 --- /dev/null +++ b/lib/dijit/_editor/nls/fr/FontChoice.js @@ -0,0 +1 @@ +({"1":"xxs","2":"xs","formatBlock":"Mise en forme","3":"s","4":"m","5":"l","6":"xl","7":"xxl","fantasy":"fantaisie","serif":"serif","p":"Paragraphe","pre":"Pré-mise en forme","sans-serif":"sans serif","fontName":"Police","h1":"En-tête","h2":"Sous-en-tête","h3":"Sous-sous-en-tête","monospace":"espacement fixe","fontSize":"Taille","cursive":"cursive","noFormat":"None"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/fr/LinkDialog.js b/lib/dijit/_editor/nls/fr/LinkDialog.js new file mode 100644 index 000000000..70946013a --- /dev/null +++ b/lib/dijit/_editor/nls/fr/LinkDialog.js @@ -0,0 +1 @@ +({"text":"Description :","insertImageTitle":"Propriétés des images","set":"Définir","newWindow":"Nouvelle fenêtre","topWindow":"Première fenêtre","target":"Cible :","createLinkTitle":"Propriétés des liens","parentWindow":"Fenêtre parent","currentWindow":"Fenêtre en cours","url":"URL :"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/fr/commands.js b/lib/dijit/_editor/nls/fr/commands.js new file mode 100644 index 000000000..df8cb3b92 --- /dev/null +++ b/lib/dijit/_editor/nls/fr/commands.js @@ -0,0 +1 @@ +({"removeFormat":"Supprimer la mise en forme","copy":"Copier","paste":"Coller","selectAll":"Sélectionner tout","insertOrderedList":"Liste numérotée","insertTable":"Insérer/Modifier un tableau","print":"Imprimer","underline":"Souligner","foreColor":"Couleur avant-plan","htmlToggle":"Source HTML","formatBlock":"Style de paragraphe","newPage":"Nouvelle page","insertHorizontalRule":"Règle horizontale","delete":"Supprimer","insertUnorderedList":"Liste à puces","tableProp":"Propriété du tableau","insertImage":"Insérer une image","superscript":"Exposant","subscript":"Indice","createLink":"Créer un lien","undo":"Annuler","fullScreen":"Basculer vers le mode plein écran","italic":"Italique","fontName":"Nom de police","justifyLeft":"Aligner à gauche","unlink":"Supprimer le lien","toggleTableBorder":"Afficher/Masquer la bordure du tableau","viewSource":"Afficher la source HTML","fontSize":"Taille de police","systemShortcut":"Action \"${0}\" uniquement disponible dans votre navigateur via un raccourci clavier. Utilisez ${1}.","indent":"Retrait","redo":"Rétablir","strikethrough":"Barrer","justifyFull":"Justifier","justifyCenter":"Aligner au centre","hiliteColor":"Couleur arrière-plan","deleteTable":"Supprimer le tableau","outdent":"Retrait négatif","cut":"Couper","plainFormatBlock":"Style de paragraphe","toggleDir":"Changer de sens","bold":"Gras","tabIndent":"Retrait de tabulation","justifyRight":"Aligner à droite","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/he/FontChoice.js b/lib/dijit/_editor/nls/he/FontChoice.js new file mode 100644 index 000000000..37140fb00 --- /dev/null +++ b/lib/dijit/_editor/nls/he/FontChoice.js @@ -0,0 +1 @@ +({"1":"קטן ביות","2":"קטן מאוד","formatBlock":"עיצוב","3":"קטן","4":"בינוני","5":"גדול","6":"גדול מאוד","7":"גדול ביותר","fantasy":"fantasy","serif":"serif","p":"פיסקה","pre":"מעוצב מראש","sans-serif":"sans-serif","fontName":"גופן","h1":"כותרת","h2":"תת-כותרת","h3":"תת-תת-כותרת","monospace":"monospace","fontSize":"גודל","cursive":"cursive","noFormat":"None"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/he/LinkDialog.js b/lib/dijit/_editor/nls/he/LinkDialog.js new file mode 100644 index 000000000..7b75850de --- /dev/null +++ b/lib/dijit/_editor/nls/he/LinkDialog.js @@ -0,0 +1 @@ +({"text":"תיאור:","insertImageTitle":"תכונות תמונה","set":"הגדרה","newWindow":"חלון חדש","topWindow":"חלון עליון ","target":"יעד:","createLinkTitle":"תכונות קישור","parentWindow":"חלון אב","currentWindow":"חלון נוכחי ","url":"URL:"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/he/commands.js b/lib/dijit/_editor/nls/he/commands.js new file mode 100644 index 000000000..75e95ab3e --- /dev/null +++ b/lib/dijit/_editor/nls/he/commands.js @@ -0,0 +1 @@ +({"removeFormat":"סילוק עיצוב","copy":"עותק","paste":"הדבקה","selectAll":"בחירת הכל","insertOrderedList":"רשימה ממוספרת","insertTable":"הוספת/עריכת טבלה","print":"הדפסה","underline":"קו תחתי","foreColor":"צבע חזית","htmlToggle":"מקור HTML","formatBlock":"סגנון פיסקה","newPage":"דף חדש ","insertHorizontalRule":"קו אופקי","delete":"מחיקה","appleKey":"⌘${0}","insertUnorderedList":"רשימה עם תבליטים","tableProp":"תכונת טבלה","insertImage":"הוספת תמונה","superscript":"כתב עילי","subscript":"כתב תחתי","createLink":"יצירת קישור","undo":"ביטול פעולה","fullScreen":"מיתוג מסך מלא ","italic":"נטוי","fontName":"שם גופן","justifyLeft":"יישור לשמאל","unlink":"סילוק הקישור","toggleTableBorder":"מיתוג גבול טבלה","viewSource":"הצגת מקור HTML ","ctrlKey":"ctrl+${0}","fontSize":"גופן יחסי","systemShortcut":"הפעולה \"${0}\" זמינה בדפדפן רק באמצעות קיצור דרך במקלדת. השתמשו בקיצור ${1}.","indent":"הגדלת כניסה","redo":"שחזור פעולה","strikethrough":"קו חוצה","justifyFull":"יישור דו-צדדי","justifyCenter":"יישור למרכז","hiliteColor":"צבע רקע","deleteTable":"מחיקת טבלה","outdent":"הקטנת כניסה","cut":"גזירה","plainFormatBlock":"סגנון פיסקה","toggleDir":"מיתוג כיוון","bold":"מודגש","tabIndent":"כניסת טאב","justifyRight":"יישור לימין"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/hu/FontChoice.js b/lib/dijit/_editor/nls/hu/FontChoice.js new file mode 100644 index 000000000..7b67d13e9 --- /dev/null +++ b/lib/dijit/_editor/nls/hu/FontChoice.js @@ -0,0 +1 @@ +({"1":"xx-kicsi","2":"x-kicsi","formatBlock":"Formátum","3":"kicsi","4":"közepes","5":"nagy","6":"x-nagy","7":"xx-nagy","fantasy":"fantázia","serif":"talpas","p":"Bekezdés","pre":"Előformázott","sans-serif":"talpatlan","fontName":"Betűtípus","h1":"Címsor","h2":"Alcím","h3":"Al-alcím","monospace":"rögzített szélességű","fontSize":"Méret","cursive":"kurzív","noFormat":"None"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/hu/LinkDialog.js b/lib/dijit/_editor/nls/hu/LinkDialog.js new file mode 100644 index 000000000..23f765ef6 --- /dev/null +++ b/lib/dijit/_editor/nls/hu/LinkDialog.js @@ -0,0 +1 @@ +({"text":"Leírás:","insertImageTitle":"Kép tulajdonságai","set":"Beállítás","newWindow":"Új ablak","topWindow":"Legfelső szintű ablak","target":"Cél:","createLinkTitle":"Hivatkozás tulajdonságai","parentWindow":"Szülő ablak","currentWindow":"Aktuális ablak","url":"URL:"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/hu/commands.js b/lib/dijit/_editor/nls/hu/commands.js new file mode 100644 index 000000000..bd016cf92 --- /dev/null +++ b/lib/dijit/_editor/nls/hu/commands.js @@ -0,0 +1 @@ +({"removeFormat":"Formázás eltávolítása","copy":"Másolás","paste":"Beillesztés","selectAll":"Összes kijelölése","insertOrderedList":"Számozott lista","insertTable":"Táblázat beszúrása/szerkesztése","print":"Nyomtatás","underline":"Aláhúzott","foreColor":"Előtérszín","htmlToggle":"HTML forrás","formatBlock":"Bekezdés stílusa","newPage":"Új oldal","insertHorizontalRule":"Vízszintes vonalzó","delete":"Törlés","insertUnorderedList":"Felsorolásjeles lista","tableProp":"Táblázat tulajdonságai","insertImage":"Kép beszúrása","superscript":"Felső index","subscript":"Alsó index","createLink":"Hivatkozás létrehozása","undo":"Visszavonás","fullScreen":"Váltás teljes képernyőre","italic":"Dőlt","fontName":"Betűtípus","justifyLeft":"Balra igazítás","unlink":"Hivatkozás eltávolítása","toggleTableBorder":"Táblázatszegély ki-/bekapcsolása","viewSource":"HTML forrás megjelenítése","fontSize":"Betűméret","systemShortcut":"A(z) \"${0}\" művelet a böngészőben csak billentyűparancs használatával érhető el. Használja a következőt: ${1}.","indent":"Behúzás","redo":"Újra","strikethrough":"Áthúzott","justifyFull":"Sorkizárás","justifyCenter":"Középre igazítás","hiliteColor":"Háttérszín","deleteTable":"Táblázat törlése","outdent":"Negatív behúzás","cut":"Kivágás","plainFormatBlock":"Bekezdés stílusa","toggleDir":"Irány váltókapcsoló","bold":"Félkövér","tabIndent":"Tab behúzás","justifyRight":"Jobbra igazítás","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/it/FontChoice.js b/lib/dijit/_editor/nls/it/FontChoice.js new file mode 100644 index 000000000..50f234087 --- /dev/null +++ b/lib/dijit/_editor/nls/it/FontChoice.js @@ -0,0 +1 @@ +({"1":"xx-small","2":"x-small","formatBlock":"Formato","3":"small","4":"medium","5":"large","6":"x-large","7":"xx-large","fantasy":"fantasy","serif":"serif","p":"Paragrafo","pre":"Preformattato","sans-serif":"sans-serif","fontName":"Carattere","h1":"Intestazione","h2":"Sottointestazione","h3":"Sottointestazione secondaria","monospace":"spaziatura fissa","fontSize":"Dimensione","cursive":"corsivo","noFormat":"None"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/it/LinkDialog.js b/lib/dijit/_editor/nls/it/LinkDialog.js new file mode 100644 index 000000000..ad3adef0e --- /dev/null +++ b/lib/dijit/_editor/nls/it/LinkDialog.js @@ -0,0 +1 @@ +({"text":"Descrizione:","insertImageTitle":"Proprietà immagine","set":"Imposta","newWindow":"Nuova finestra","topWindow":"Finestra superiore","target":"Destinazione:","createLinkTitle":"Proprietà collegamento","parentWindow":"Finestra padre","currentWindow":"Finestra corrente","url":"URL:"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/it/commands.js b/lib/dijit/_editor/nls/it/commands.js new file mode 100644 index 000000000..4abbd7ec8 --- /dev/null +++ b/lib/dijit/_editor/nls/it/commands.js @@ -0,0 +1 @@ +({"removeFormat":"Rimuovi formato","copy":"Copia","paste":"Incolla","selectAll":"Seleziona tutto","insertOrderedList":"Elenco numerato","insertTable":"Inserisci/Modifica tabella","print":"Stampa","underline":"Sottolinea","foreColor":"Colore primo piano","htmlToggle":"Origine HTML","formatBlock":"Stile paragrafo","newPage":"Nuova pagina","insertHorizontalRule":"Righello orizzontale","delete":"Elimina","insertUnorderedList":"Elenco puntato","tableProp":"Proprietà tabella","insertImage":"Inserisci immagine","superscript":"Apice","subscript":"Pedice","createLink":"Crea collegamento","undo":"Annulla","fullScreen":"Attiva/Disattiva schermo intero","italic":"Corsivo","fontName":"Nome carattere","justifyLeft":"Allinea a sinistra","unlink":"Rimuovi collegamento","toggleTableBorder":"Attiva/Disattiva bordo tabella","viewSource":"Visualizza origine HTML","fontSize":"Dimensione carattere","systemShortcut":"La azione \"${0}\" è disponibile solo nel browser tramite un tasto di scelta rapida. Utilizzare ${1}.","indent":"Rientro","redo":"Ripristina","strikethrough":"Barrato","justifyFull":"Giustifica","justifyCenter":"Allinea al centro","hiliteColor":"Colore sfondo","deleteTable":"Elimina tabella","outdent":"Annulla rientro","cut":"Taglia","plainFormatBlock":"Stile paragrafo","toggleDir":"Attiva/Disattiva direzione","bold":"Grassetto","tabIndent":"Rientro tabulazione","justifyRight":"Allinea a destra","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/ja/FontChoice.js b/lib/dijit/_editor/nls/ja/FontChoice.js new file mode 100644 index 000000000..6083ab381 --- /dev/null +++ b/lib/dijit/_editor/nls/ja/FontChoice.js @@ -0,0 +1 @@ +({"1":"超極小","2":"極小","formatBlock":"フォーマット","3":"小","4":"標準","5":"大","6":"特大","7":"超特大","fantasy":"fantasy","serif":"serif","p":"段落","pre":"事前フォーマット済み","sans-serif":"sans-serif","fontName":"フォント","h1":"見出し","h2":"副見出し","h3":"副見出しの副見出し","monospace":"monospace","fontSize":"サイズ","cursive":"cursive","noFormat":"None"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/ja/LinkDialog.js b/lib/dijit/_editor/nls/ja/LinkDialog.js new file mode 100644 index 000000000..815f5083d --- /dev/null +++ b/lib/dijit/_editor/nls/ja/LinkDialog.js @@ -0,0 +1 @@ +({"text":"説明:","insertImageTitle":"イメージ・プロパティー","set":"設定","newWindow":"新規ウィンドウ","topWindow":"最上位ウィンドウ","target":"ターゲット:","createLinkTitle":"リンク・プロパティー","parentWindow":"親ウィンドウ","currentWindow":"現行ウィンドウ","url":"URL:"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/ja/commands.js b/lib/dijit/_editor/nls/ja/commands.js new file mode 100644 index 000000000..618746e23 --- /dev/null +++ b/lib/dijit/_editor/nls/ja/commands.js @@ -0,0 +1 @@ +({"removeFormat":"形式の除去","copy":"コピー","paste":"貼り付け","selectAll":"すべて選択","insertOrderedList":"番号付きリスト","insertTable":"テーブルの挿入/編集","print":"印刷","underline":"下線","foreColor":"前景色","htmlToggle":"HTML ソース","formatBlock":"段落スタイル","newPage":"新しいページ","insertHorizontalRule":"水平罫線","delete":"削除","insertUnorderedList":"黒丸付きリスト","tableProp":"テーブルプロパティ","insertImage":"イメージの挿入","superscript":"上付き文字","subscript":"下付き文字","createLink":"リンクの作成","undo":"元に戻す","fullScreen":"全画面表示に切り替え","italic":"斜体","fontName":"フォント名","justifyLeft":"左揃え","unlink":"リンクの削除","toggleTableBorder":"テーブルボーダーの切り替え","viewSource":"HTML ソースの表示","fontSize":"フォントサイズ","systemShortcut":"\"${0}\" アクションを使用できるのは、ブラウザーでキーボードショートカットを使用する場合のみです。 ${1} を使用してください。","indent":"インデント","redo":"やり直し","strikethrough":"取り消し線","justifyFull":"両端揃え","justifyCenter":"中央揃え","hiliteColor":"背景色","deleteTable":"テーブルの削除","outdent":"アウトデント","cut":"切り取り","plainFormatBlock":"段落スタイル","toggleDir":"方向の切り替え","bold":"太字","tabIndent":"タブインデント","justifyRight":"右揃え","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/ko/FontChoice.js b/lib/dijit/_editor/nls/ko/FontChoice.js new file mode 100644 index 000000000..fda733702 --- /dev/null +++ b/lib/dijit/_editor/nls/ko/FontChoice.js @@ -0,0 +1 @@ +({"1":"가장 작게","2":"조금 작게","formatBlock":"서식","3":"작게","4":"중간","5":"크게","6":"조금 크게","7":"가장 크게","fantasy":"fantasy","serif":"serif","p":"단락","pre":"서식이 지정됨","sans-serif":"sans-serif","fontName":"글꼴","h1":"제목","h2":"부제목","h3":"하위 부제목","monospace":"monospace","fontSize":"크기","cursive":"cursive","noFormat":"None"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/ko/LinkDialog.js b/lib/dijit/_editor/nls/ko/LinkDialog.js new file mode 100644 index 000000000..1f46bd71f --- /dev/null +++ b/lib/dijit/_editor/nls/ko/LinkDialog.js @@ -0,0 +1 @@ +({"text":"설명:","insertImageTitle":"이미지 특성","set":"설정","newWindow":"새 창","topWindow":"최상위 창","target":"대상:","createLinkTitle":"링크 특성","parentWindow":"상위 창","currentWindow":"현재 창","url":"URL:"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/ko/commands.js b/lib/dijit/_editor/nls/ko/commands.js new file mode 100644 index 000000000..4c8f95493 --- /dev/null +++ b/lib/dijit/_editor/nls/ko/commands.js @@ -0,0 +1 @@ +({"removeFormat":"형식 제거","copy":"복사","paste":"붙여넣기","selectAll":"모두 선택","insertOrderedList":"번호 목록","insertTable":"테이블 삽입/편집","print":"인쇄","underline":"밑줄","foreColor":"전경색","htmlToggle":"HTML 소스","formatBlock":"단락 스타일","newPage":"새 페이지","insertHorizontalRule":"수평 자","delete":"삭제","insertUnorderedList":"글머리표 목록","tableProp":"테이블 특성","insertImage":"이미지 삽입","superscript":"위첨자","subscript":"아래첨자","createLink":"링크 작성","undo":"실행 취소","fullScreen":"토글 전체 화면","italic":"기울임체","fontName":"글꼴 이름","justifyLeft":"왼쪽 맞춤","unlink":"링크 제거","toggleTableBorder":"토글 테이블 테두리","viewSource":"HTML 소스 보기","fontSize":"글꼴 크기","systemShortcut":"\"${0}\" 조치는 브라우저에서 키보드 단축키를 이용해서만 사용할 수 있습니다. ${1}을(를) 사용하십시오.","indent":"들여쓰기","redo":"다시 실행","strikethrough":"취소선","justifyFull":"양쪽 맞춤","justifyCenter":"가운데 맞춤","hiliteColor":"배경색","deleteTable":"테이블 삭제","outdent":"내어쓰기","cut":"잘라내기","plainFormatBlock":"단락 스타일","toggleDir":"토글 방향","bold":"굵은체","tabIndent":"탭 들여쓰기","justifyRight":"오른쪽 맞춤","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/nb/FontChoice.js b/lib/dijit/_editor/nls/nb/FontChoice.js new file mode 100644 index 000000000..b1ad6abf2 --- /dev/null +++ b/lib/dijit/_editor/nls/nb/FontChoice.js @@ -0,0 +1 @@ +({"1":"xx-liten","2":"x-liten","formatBlock":"Format","3":"liten","4":"middels","5":"stor","6":"x-stor","7":"xx-stor","fantasy":"fantasi","serif":"serif","p":"Avsnitt","pre":"Forhåndsformatert","sans-serif":"sans-serif","fontName":"Skrift","h1":"Overskrift","h2":"Undertittel","h3":"Under-undertittel","monospace":"monospace","fontSize":"Størrelse","cursive":"kursiv","noFormat":"None"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/nb/LinkDialog.js b/lib/dijit/_editor/nls/nb/LinkDialog.js new file mode 100644 index 000000000..5a5653cad --- /dev/null +++ b/lib/dijit/_editor/nls/nb/LinkDialog.js @@ -0,0 +1 @@ +({"text":"Beskrivelse:","insertImageTitle":"Bildeegenskaper","set":"Definer","newWindow":"Nytt vindu","topWindow":"Øverste vindu","target":"Mål:","createLinkTitle":"Koblingsegenskaper","parentWindow":"Overordnet vindu","currentWindow":"Gjeldende vindu","url":"URL:"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/nb/commands.js b/lib/dijit/_editor/nls/nb/commands.js new file mode 100644 index 000000000..d1f215f52 --- /dev/null +++ b/lib/dijit/_editor/nls/nb/commands.js @@ -0,0 +1 @@ +({"removeFormat":"Fjern format","copy":"Kopier","paste":"Lim inn","selectAll":"Velg alle","insertOrderedList":"Nummerert liste","insertTable":"Sett inn/rediger tabell","print":"Skriv ut","underline":"Understreking","foreColor":"Forgrunnsfarge","htmlToggle":"HTML-kilde","formatBlock":"Avsnittsstil","newPage":"Ny side","insertHorizontalRule":"Vannrett strek","delete":"Slett","insertUnorderedList":"Punktliste","tableProp":"Tabellegenskap","insertImage":"Sett inn bilde","superscript":"Hevet skrift","subscript":"Senket skrift","createLink":"Opprett kobling","undo":"Angre","fullScreen":"Slå på/av full skjerm","italic":"Kursiv","fontName":"Skriftnavn","justifyLeft":"Venstrejuster","unlink":"Fjern kobling","toggleTableBorder":"Bytt tabellkant","viewSource":"Vis HTML-kilde","fontSize":"Skriftstørrelse","systemShortcut":"Handlingen \"${0}\" er bare tilgjengelig i nettleseren ved hjelp av en tastatursnarvei. Bruk ${1}.","indent":"Innrykk","redo":"Gjør om","strikethrough":"Gjennomstreking","justifyFull":"Juster","justifyCenter":"Midtstill","hiliteColor":"Bakgrunnsfarge","deleteTable":"Slett tabell","outdent":"Fjern innrykk","cut":"Klipp ut","plainFormatBlock":"Avsnittsstil","toggleDir":"Bytt retning","bold":"Fet","tabIndent":"Tabulatorinnrykk","justifyRight":"Høyrejuster","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/nl/FontChoice.js b/lib/dijit/_editor/nls/nl/FontChoice.js new file mode 100644 index 000000000..d3d4f19f3 --- /dev/null +++ b/lib/dijit/_editor/nls/nl/FontChoice.js @@ -0,0 +1 @@ +({"1":"xx-klein","2":"x-klein","formatBlock":"Opmaak","3":"klein","4":"gemiddeld","5":"groot","6":"x-groot","7":"xx-groot","fantasy":"fantasy","serif":"serif","p":"Alinea","pre":"Vooraf opgemaakt","sans-serif":"sans-serif","fontName":"Lettertype","h1":"Kop","h2":"Subkop","h3":"Sub-subkop","monospace":"monospace","fontSize":"Grootte","cursive":"cursief","noFormat":"None"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/nl/LinkDialog.js b/lib/dijit/_editor/nls/nl/LinkDialog.js new file mode 100644 index 000000000..5f4ba588a --- /dev/null +++ b/lib/dijit/_editor/nls/nl/LinkDialog.js @@ -0,0 +1 @@ +({"text":"Beschrijving:","insertImageTitle":"Afbeeldingseigenschappen","set":"Instellen","newWindow":"Nieuw venster","topWindow":"Bovenste venster","target":"Doel:","createLinkTitle":"Linkeigenschappen","parentWindow":"Hoofdvenster","currentWindow":"Huidig venster","url":"URL:"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/nl/commands.js b/lib/dijit/_editor/nls/nl/commands.js new file mode 100644 index 000000000..ebc7c9947 --- /dev/null +++ b/lib/dijit/_editor/nls/nl/commands.js @@ -0,0 +1 @@ +({"removeFormat":"Opmaak verwijderen","copy":"Kopiëren","paste":"Plakken","selectAll":"Alles selecteren","insertOrderedList":"Genummerde lijst","insertTable":"Tabel invoegen/bewerken","print":"Afdrukken","underline":"Onderstrepen","foreColor":"Voorgrondkleur","htmlToggle":"HTML-bron","formatBlock":"Alineastijl","newPage":"Nieuwe pagina","insertHorizontalRule":"Horizontale liniaal","delete":"Wissen","insertUnorderedList":"Lijst met opsommingstekens","tableProp":"Tabeleigenschap","insertImage":"Afbeelding invoegen","superscript":"Superscript","subscript":"Subscript","createLink":"Link maken","undo":"Ongedaan maken","fullScreen":"Volledig scherm in-/uitschakelen","italic":"Cursief","fontName":"Lettertype","justifyLeft":"Links uitlijnen","unlink":"Link verwijderen","toggleTableBorder":"Tabelkader wijzigen","viewSource":"HTML-bron bekijken","fontSize":"Lettergrootte","systemShortcut":"De actie \"${0}\" is alleen beschikbaar in uw browser via een sneltoetscombinatie. Gebruik ${1}.","indent":"Inspringen","redo":"Opnieuw","strikethrough":"Doorhalen","justifyFull":"Uitvullen","justifyCenter":"Centreren","hiliteColor":"Achtergrondkleur","deleteTable":"Tabel wissen","outdent":"Uitspringen","cut":"Knippen","plainFormatBlock":"Alineastijl","toggleDir":"Schrijfrichting wijzigen","bold":"Vet","tabIndent":"Inspringen","justifyRight":"Rechts uitlijnen","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/pl/FontChoice.js b/lib/dijit/_editor/nls/pl/FontChoice.js new file mode 100644 index 000000000..8beb6bf63 --- /dev/null +++ b/lib/dijit/_editor/nls/pl/FontChoice.js @@ -0,0 +1 @@ +({"1":"najmniejsza","2":"mniejsza","formatBlock":"Format","3":"mała","4":"średnia","5":"duża","6":"większa","7":"największa","fantasy":"fantazyjna","serif":"szeryfowa","p":"Akapit","pre":"Wstępnie sformatowane","sans-serif":"bezszeryfowa","fontName":"Czcionka","h1":"Nagłówek","h2":"Nagłówek 2-go poziomu","h3":"Nagłówek 3-go poziomu","monospace":"czcionka o stałej szerokości","fontSize":"Wielkość","cursive":"kursywa","noFormat":"None"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/pl/LinkDialog.js b/lib/dijit/_editor/nls/pl/LinkDialog.js new file mode 100644 index 000000000..86f71e53c --- /dev/null +++ b/lib/dijit/_editor/nls/pl/LinkDialog.js @@ -0,0 +1 @@ +({"text":"Opis:","insertImageTitle":"Właściwości obrazu","set":"Ustaw","newWindow":"Nowe okno","topWindow":"Okno najwyższego poziomu","target":"Cel:","createLinkTitle":"Właściwości odsyłacza","parentWindow":"Okno macierzyste","currentWindow":"Bieżące okno","url":"Adres URL:"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/pl/commands.js b/lib/dijit/_editor/nls/pl/commands.js new file mode 100644 index 000000000..8ee8acfa9 --- /dev/null +++ b/lib/dijit/_editor/nls/pl/commands.js @@ -0,0 +1 @@ +({"removeFormat":"Usuń formatowanie","copy":"Kopiuj","paste":"Wklej","selectAll":"Wybierz wszystko","insertOrderedList":"Lista numerowana","insertTable":"Wstaw/edytuj tabelę","print":"Drukuj","underline":"Podkreślenie","foreColor":"Kolor pierwszego planu","htmlToggle":"Źródło HTML","formatBlock":"Styl akapitu","newPage":"Nowa strona","insertHorizontalRule":"Linia pozioma","delete":"Usuń","insertUnorderedList":"Lista wypunktowana","tableProp":"Właściwość tabeli","insertImage":"Wstaw obraz","superscript":"Indeks górny","subscript":"Indeks dolny","createLink":"Utwórz odsyłacz","undo":"Cofnij","fullScreen":"Przełącz pełny ekran","italic":"Kursywa","fontName":"Nazwa czcionki","justifyLeft":"Wyrównaj do lewej","unlink":"Usuń odsyłacz","toggleTableBorder":"Przełącz ramkę tabeli","viewSource":"Wyświetl kod źródłowy HTML","ctrlKey":"Ctrl+${0}","fontSize":"Wielkość czcionki","systemShortcut":"Działanie ${0} jest dostępne w tej przeglądarce wyłącznie przy użyciu skrótu klawiaturowego. Należy użyć klawiszy ${1}.","indent":"Wcięcie","redo":"Ponów","strikethrough":"Przekreślenie","justifyFull":"Wyrównaj do lewej i prawej","justifyCenter":"Wyrównaj do środka","hiliteColor":"Kolor tła","deleteTable":"Usuń tabelę","outdent":"Usuń wcięcie","cut":"Wytnij","plainFormatBlock":"Styl akapitu","toggleDir":"Przełącz kierunek","bold":"Pogrubienie","tabIndent":"Wcięcie o tabulator","justifyRight":"Wyrównaj do prawej","appleKey":"⌘${0}"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/pt-pt/FontChoice.js b/lib/dijit/_editor/nls/pt-pt/FontChoice.js new file mode 100644 index 000000000..dec5354e1 --- /dev/null +++ b/lib/dijit/_editor/nls/pt-pt/FontChoice.js @@ -0,0 +1 @@ +({"1":"xxs","2":"xs","formatBlock":"Formato","3":"small","4":"medium","5":"large","6":"xl","7":"xxl","fantasy":"fantasy","serif":"serif","p":"Parágrafo","pre":"Pré-formatado","sans-serif":"sans-serif","fontName":"Tipo de letra","h1":"Título","h2":"Sub-título","h3":"Sub-subtítulo","monospace":"monospace","fontSize":"Tamanho","cursive":"cursive","noFormat":"None"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/pt-pt/LinkDialog.js b/lib/dijit/_editor/nls/pt-pt/LinkDialog.js new file mode 100644 index 000000000..4499fa7c0 --- /dev/null +++ b/lib/dijit/_editor/nls/pt-pt/LinkDialog.js @@ -0,0 +1 @@ +({"text":"Descrição:","insertImageTitle":"Propriedades da imagem","set":"Definir","newWindow":"Nova janela","topWindow":"Janela superior","target":"Destino:","createLinkTitle":"Propriedades da ligação","parentWindow":"Janela ascendente","currentWindow":"Janela actual","url":"URL:"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/pt-pt/commands.js b/lib/dijit/_editor/nls/pt-pt/commands.js new file mode 100644 index 000000000..fbf5182ef --- /dev/null +++ b/lib/dijit/_editor/nls/pt-pt/commands.js @@ -0,0 +1 @@ +({"removeFormat":"Remover formato","copy":"Copiar","paste":"Colar","selectAll":"Seleccionar tudo","insertOrderedList":"Lista numerada","insertTable":"Inserir/Editar tabela","print":"Imprimir","underline":"Sublinhado","foreColor":"Cor de primeiro plano","htmlToggle":"Origem HTML","formatBlock":"Estilo de parágrafo","newPage":"Nova página","insertHorizontalRule":"Régua horizontal","delete":"Eliminar","insertUnorderedList":"Lista marcada","tableProp":"Propriedades da tabela","insertImage":"Inserir imagem","superscript":"Superior à linha","subscript":"Inferior à linha","createLink":"Criar ligação","undo":"Anular","fullScreen":"Alternar ecrã completo","italic":"Itálico","fontName":"Nome do tipo de letra","justifyLeft":"Alinhar à esquerda","unlink":"Remover ligação","toggleTableBorder":"Alternar contorno da tabela","viewSource":"Ver origem HTML","fontSize":"Tamanho do tipo de letra","systemShortcut":"A acção \"${0}\" apenas está disponível no navegador utilizando um atalho de teclado. Utilize ${1}.","indent":"Indentar","redo":"Repetir","strikethrough":"Rasurado","justifyFull":"Justificar","justifyCenter":"Alinhar ao centro","hiliteColor":"Cor de segundo plano","deleteTable":"Eliminar tabela","outdent":"Recuar","cut":"Cortar","plainFormatBlock":"Estilo de parágrafo","toggleDir":"Alternar direcção","bold":"Negrito","tabIndent":"Indentar com a tecla Tab","justifyRight":"Alinhar à direita","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/pt/FontChoice.js b/lib/dijit/_editor/nls/pt/FontChoice.js new file mode 100644 index 000000000..50de220af --- /dev/null +++ b/lib/dijit/_editor/nls/pt/FontChoice.js @@ -0,0 +1 @@ +({"1":"extra-extra-pequeno","2":"extra-pequeno","formatBlock":"Formatar","3":"pequena","4":"médio","5":"grande","6":"extra-grande","7":"extra-extra-grande","fantasy":"fantasy","serif":"serif","p":"Parágrafo","pre":"Pré-formatado","sans-serif":"sans-serif","fontName":"Fonte","h1":"Título","h2":"Subtítulo","h3":"Sub-subtítulo","monospace":"espaço simples","fontSize":"Tamanho","cursive":"cursiva","noFormat":"None"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/pt/LinkDialog.js b/lib/dijit/_editor/nls/pt/LinkDialog.js new file mode 100644 index 000000000..0a55795eb --- /dev/null +++ b/lib/dijit/_editor/nls/pt/LinkDialog.js @@ -0,0 +1 @@ +({"text":"Descrição:","insertImageTitle":"Propriedades de Imagem","set":"Definir","newWindow":"Nova Janela","topWindow":"Primeira Janela","target":"Destino:","createLinkTitle":"Propriedades de Link","parentWindow":"Janela Pai","currentWindow":"Janela Atual","url":"URL:"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/pt/commands.js b/lib/dijit/_editor/nls/pt/commands.js new file mode 100644 index 000000000..271c6cf51 --- /dev/null +++ b/lib/dijit/_editor/nls/pt/commands.js @@ -0,0 +1 @@ +({"removeFormat":"Remover Formato","copy":"Copiar","paste":"Colar","selectAll":"Selecionar Todos","insertOrderedList":"Lista Numerada","insertTable":"Inserir/Editar Tabela","print":"Impressão","underline":"Sublinhado","foreColor":"Cor do Primeiro Plano","htmlToggle":"Origem HTML","formatBlock":"Estilo de Parágrafo","newPage":"Nova Página","insertHorizontalRule":"Régua Horizontal","delete":"Excluir","insertUnorderedList":"Lista com Marcadores","tableProp":"Propriedade da Tabela","insertImage":"Inserir Imagem","superscript":"Sobrescrito","subscript":"Subscrito","createLink":"Criar Link","undo":"Desfazer","fullScreen":"Comutar Tela Cheia","italic":"Itálico","fontName":"Nome da Fonte","justifyLeft":"Alinhar pela Esquerda","unlink":"Remover Link","toggleTableBorder":"Alternar Moldura da Tabela","viewSource":"Visualizar Origem HTML","fontSize":"Tamanho da Fonte","systemShortcut":"A ação \"${0}\" está disponível em seu navegador apenas usando um atalho do teclado. Use ${1}.","indent":"Recuar","redo":"Refazer","strikethrough":"Tachado","justifyFull":"Justificar","justifyCenter":"Alinhar pelo Centro","hiliteColor":"Cor de segundo plano","deleteTable":"Excluir Tabela","outdent":"Não-chanfrado","cut":"Recortar","plainFormatBlock":"Estilo de Parágrafo","toggleDir":"Comutar Direção","bold":"Negrito","tabIndent":"Recuo de Guia","justifyRight":"Alinhar pela Direita","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/ro/FontChoice.js b/lib/dijit/_editor/nls/ro/FontChoice.js new file mode 100644 index 000000000..4806cb3e9 --- /dev/null +++ b/lib/dijit/_editor/nls/ro/FontChoice.js @@ -0,0 +1 @@ +({"noFormat":"Fără","1":"xxs (xx-small)","2":"xs (x-small)","formatBlock":"Format","3":"s (small)","4":"m (medium)","5":"l (large)","6":"xl (x-large)","7":"xxl (xx-large)","fantasy":"fantasy","serif":"serif","p":"Paragraf","pre":"Preformatat","sans-serif":"sans-serif","fontName":"Font","h1":"Titlu","h2":"Subtitlu","h3":"Sub-subtitlu","monospace":"monospace","fontSize":"Dimensiune","cursive":"cursive"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/ro/LinkDialog.js b/lib/dijit/_editor/nls/ro/LinkDialog.js new file mode 100644 index 000000000..c3cfb3990 --- /dev/null +++ b/lib/dijit/_editor/nls/ro/LinkDialog.js @@ -0,0 +1 @@ +({"text":"Descriere:","insertImageTitle":"Proprietăţi imagine","set":"Setare","newWindow":"Fereastră nouă","topWindow":"Fereastra cea mai de sus","target":"Ţintă:","createLinkTitle":"Proprietăţi legătură","parentWindow":"Fereastra părinte","currentWindow":"Fereastra curentă","url":"URL:"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/ro/commands.js b/lib/dijit/_editor/nls/ro/commands.js new file mode 100644 index 000000000..f73017cbf --- /dev/null +++ b/lib/dijit/_editor/nls/ro/commands.js @@ -0,0 +1 @@ +({"removeFormat":"Înlăturare format","copy":"Copiere","paste":"Lipire","selectAll":"Selectare toate","insertOrderedList":"Listă numerotată","insertTable":"Inserare/Editare tabelă","print":"Tipărire","underline":"Subliniere","foreColor":"Culoare prim plan","htmlToggle":"Sursă HTML","formatBlock":"Stil paragraf","newPage":"Pagină nouă","insertHorizontalRule":"Regulă orizontală","delete":"Ştergere","insertUnorderedList":"Listă cu marcaje","tableProp":"Proprietăţi tabelă","insertImage":"Inserare imagine","superscript":"Scriere indice superior","subscript":"Scriere indice inferior","createLink":"Creare legătură","undo":"Anulare acţiune","fullScreen":"Comutare ecran complet","italic":"Cursive","fontName":"Nume font","justifyLeft":"Aliniere la stânga","unlink":"Înlăturare legătură","toggleTableBorder":"Comutare bordură tabelă","viewSource":"Vizualizare sursă HTML","fontSize":"Dimensiune font","systemShortcut":"Acţiunea \"${0}\" este disponibilă în browser folosind o scurtătură de la tastatură. Folosiţi ${1}.","indent":"Indentare","redo":"Repetare acţiune","strikethrough":"Suprascriere linie","justifyFull":"Aliniere","justifyCenter":"Aliniere pe centru","hiliteColor":"Culoare fundal","deleteTable":"Ştergere tabelă","outdent":"Outdentare","cut":"Tăiere","plainFormatBlock":"Stil paragraf","toggleDir":"Comutare direcţie","bold":"Aldine","tabIndent":"Indentare cu tab","justifyRight":"Aliniere la dreapta","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/ru/FontChoice.js b/lib/dijit/_editor/nls/ru/FontChoice.js new file mode 100644 index 000000000..bdc10430a --- /dev/null +++ b/lib/dijit/_editor/nls/ru/FontChoice.js @@ -0,0 +1 @@ +({"1":"самый маленький","2":"очень маленький","formatBlock":"Формат","3":"маленький","4":"средний","5":"большой","6":"очень большой","7":"самый большой","fantasy":"артистический","serif":"с засечками","p":"Абзац","pre":"Заранее отформатированный","sans-serif":"без засечек","fontName":"Шрифт","h1":"Заголовок","h2":"Подзаголовок","h3":"Вложенный подзаголовок","monospace":"непропорциональный","fontSize":"Размер","cursive":"курсив","noFormat":"None"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/ru/LinkDialog.js b/lib/dijit/_editor/nls/ru/LinkDialog.js new file mode 100644 index 000000000..ddc2f7b0f --- /dev/null +++ b/lib/dijit/_editor/nls/ru/LinkDialog.js @@ -0,0 +1 @@ +({"text":"Описание:","insertImageTitle":"Свойства изображения","set":"Задать","newWindow":"Новое окно","topWindow":"Окно верхнего уровня","target":"Целевой объект:","createLinkTitle":"Свойства ссылки","parentWindow":"Родительское окно","currentWindow":"Текущее окно","url":"URL:"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/ru/commands.js b/lib/dijit/_editor/nls/ru/commands.js new file mode 100644 index 000000000..bbc76174a --- /dev/null +++ b/lib/dijit/_editor/nls/ru/commands.js @@ -0,0 +1 @@ +({"removeFormat":"Удалить формат","copy":"Копировать","paste":"Вставить","selectAll":"Выбрать все","insertOrderedList":"Нумерованный список","insertTable":"Вставить/изменить таблицу","print":"Печать","underline":"Подчеркивание","foreColor":"Цвет текста","htmlToggle":"Код HTML","formatBlock":"Стиль абзаца","newPage":"Создать страницу","insertHorizontalRule":"Горизонтальная линейка","delete":"Удалить","insertUnorderedList":"Список с маркерами","tableProp":"Свойства таблицы","insertImage":"Вставить изображение","superscript":"Верхний индекс","subscript":"Нижний индекс","createLink":"Создать ссылку","undo":"Отменить","fullScreen":"Переключить полноэкранный режим","italic":"Курсив","fontName":"Название шрифта","justifyLeft":"По левому краю","unlink":"Удалить ссылку","toggleTableBorder":"Переключить рамку таблицы","viewSource":"Показать исходный код HTML","fontSize":"Размер шрифта","systemShortcut":"Действие \"${0}\" можно выполнить в браузере только путем нажатия клавиш ${1}.","indent":"Отступ","redo":"Повторить","strikethrough":"Перечеркивание","justifyFull":"По ширине","justifyCenter":"По центру","hiliteColor":"Цвет фона","deleteTable":"Удалить таблицу","outdent":"Втяжка","cut":"Вырезать","plainFormatBlock":"Стиль абзаца","toggleDir":"Изменить направление","bold":"Полужирный","tabIndent":"Табуляция","justifyRight":"По правому краю","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/sk/FontChoice.js b/lib/dijit/_editor/nls/sk/FontChoice.js new file mode 100644 index 000000000..b7415e83d --- /dev/null +++ b/lib/dijit/_editor/nls/sk/FontChoice.js @@ -0,0 +1 @@ +({"1":"xx-small","2":"x-small","formatBlock":"Formát","3":"small","4":"medium","5":"large","6":"x-large","7":"xx-large","fantasy":"fantasy","serif":"serif","p":"Odsek","pre":"Predformátované","sans-serif":"sans-serif","fontName":"Písmo","h1":"Hlavička","h2":"Podhlavička","h3":"Pod-podhlavička","monospace":"monospace","fontSize":"Veľkosť","cursive":"cursive","noFormat":"None"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/sk/LinkDialog.js b/lib/dijit/_editor/nls/sk/LinkDialog.js new file mode 100644 index 000000000..75d0f885e --- /dev/null +++ b/lib/dijit/_editor/nls/sk/LinkDialog.js @@ -0,0 +1 @@ +({"text":"Opis:","insertImageTitle":"Vlastnosti obrázka ","set":"Nastaviť","newWindow":"Nové okno ","topWindow":"Najvrchnejšie okno ","target":"Cieľ:","createLinkTitle":"Pripojiť vlastnosti","parentWindow":"Rodičovské okno ","currentWindow":"Aktuálne okno ","url":"URL:"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/sk/commands.js b/lib/dijit/_editor/nls/sk/commands.js new file mode 100644 index 000000000..a59975e72 --- /dev/null +++ b/lib/dijit/_editor/nls/sk/commands.js @@ -0,0 +1 @@ +({"removeFormat":"Odstrániť formát","copy":"Kopírovať","paste":"Nalepiť","selectAll":"Vybrať všetko","insertOrderedList":"Číslovaný zoznam","insertTable":"Vložiť/upraviť tabuľku","print":"Tlačiť","underline":"Podčiarknuť","foreColor":"Farba popredia","htmlToggle":"Zdroj HTML","formatBlock":"Štýl odseku","newPage":"Nová stránka ","insertHorizontalRule":"Horizontálna čiara","delete":"Vymazať","insertUnorderedList":"Zoznam s odrážkami","tableProp":"Vlastnosť tabuľky","insertImage":"Vložiť obrázok","superscript":"Horný index","subscript":"Dolný index","createLink":"Vytvoriť prepojenie","undo":"Vrátiť späť","fullScreen":"Zobraziť na celú obrazovku","italic":"Kurzíva","fontName":"Názov písma","justifyLeft":"Zarovnať doľava","unlink":"Odstrániť prepojenie","toggleTableBorder":"Prepnúť rámček tabuľky","viewSource":"Zobraziť zdrojový kód HTML ","fontSize":"Veľkosť písma","systemShortcut":"Akcia \"${0}\" je vo vašom prehliadači dostupná len s použitím klávesovej skratky. Použite ${1}.","indent":"Odsadiť","redo":"Znova vykonať","strikethrough":"Prečiarknuť","justifyFull":"Zarovnať podľa okraja","justifyCenter":"Zarovnať na stred","hiliteColor":"Farba pozadia","deleteTable":"Vymazať tabuľku","outdent":"Predsadiť","cut":"Vystrihnúť","plainFormatBlock":"Štýl odseku","toggleDir":"Prepnúť smer","bold":"Tučné písmo","tabIndent":"Odsadenie tabulátora","justifyRight":"Zarovnať doprava","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/sl/FontChoice.js b/lib/dijit/_editor/nls/sl/FontChoice.js new file mode 100644 index 000000000..2dcfed191 --- /dev/null +++ b/lib/dijit/_editor/nls/sl/FontChoice.js @@ -0,0 +1 @@ +({"1":"xx-majhno","2":"x-majhno","formatBlock":"Oblika","3":"majhno","4":"srednje","5":"veliko","6":"x-veliko","7":"xx-veliko","fantasy":"fantasy","serif":"serif","p":"Odstavek","pre":"Vnaprej oblikovano","sans-serif":"sans-serif","fontName":"Pisava","h1":"Naslov","h2":"Podnaslov","h3":"Pod podnaslov","monospace":"monospace","fontSize":"Velikost","cursive":"cursive","noFormat":"None"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/sl/LinkDialog.js b/lib/dijit/_editor/nls/sl/LinkDialog.js new file mode 100644 index 000000000..bad7dd641 --- /dev/null +++ b/lib/dijit/_editor/nls/sl/LinkDialog.js @@ -0,0 +1 @@ +({"text":"Opis:","insertImageTitle":"Lastnosti slike","set":"Nastavi","newWindow":"Novo okno","topWindow":"Najvišje okno","target":"Cilj:","createLinkTitle":"Lastnosti povezave","parentWindow":"Nadrejeno okno","currentWindow":"Trenutno okno","url":"URL:"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/sl/commands.js b/lib/dijit/_editor/nls/sl/commands.js new file mode 100644 index 000000000..72431aa71 --- /dev/null +++ b/lib/dijit/_editor/nls/sl/commands.js @@ -0,0 +1 @@ +({"removeFormat":"Odstrani obliko zapisa","copy":"Prekopiraj","paste":"Prilepi","selectAll":"Izberi vse","insertOrderedList":"Oštevilčen seznam","insertTable":"Vstavi/uredi tabelo","print":"Natisni","underline":"Podčrtano","foreColor":"Barva ospredja","htmlToggle":"Izvorna koda HTML","formatBlock":"Slog odstavka","newPage":"Nova stran","insertHorizontalRule":"Vodoravno ravnilo","delete":"Izbriši","insertUnorderedList":"Naštevni seznam","tableProp":"Lastnost tabele","insertImage":"Vstavi sliko","superscript":"Nadpisano","subscript":"Podpisano","createLink":"Ustvari povezavo","undo":"Razveljavi","fullScreen":"Preklopi na celozaslonski način","italic":"Ležeče","fontName":"Ime pisave","justifyLeft":"Poravnaj levo","unlink":"Odstrani povezavo","toggleTableBorder":"Preklopi na rob tabele","viewSource":"Prikaži izvorno kodo HTML","fontSize":"Velikost pisave","systemShortcut":"Dejanje \"${0}\" lahko v vašem brskalniku uporabite samo z bližnjico na tipkovnici. Uporabite ${1}.","indent":"Zamik","redo":"Znova uveljavi","strikethrough":"Prečrtano","justifyFull":"Obojestranska poravnava","justifyCenter":"Poravnaj na sredino","hiliteColor":"Barva ozadja","deleteTable":"Izbriši tabelo","outdent":"Viseč odstavek","cut":"Izreži","plainFormatBlock":"Slog odstavka","toggleDir":"Preklopi na usmeritev","bold":"Krepko","tabIndent":"Zamik tabulatorja","justifyRight":"Poravnaj desno","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/sv/FontChoice.js b/lib/dijit/_editor/nls/sv/FontChoice.js new file mode 100644 index 000000000..a778cc83b --- /dev/null +++ b/lib/dijit/_editor/nls/sv/FontChoice.js @@ -0,0 +1 @@ +({"1":"mycket, mycket litet","2":"mycket litet","formatBlock":"Format","3":"litet","4":"medelstort","5":"stort","6":"extra stort","7":"extra extra stort","fantasy":"fantasy","serif":"serif","p":"Stycke","pre":"Förformaterat","sans-serif":"sans-serif","fontName":"Teckensnitt","h1":"Rubrik","h2":"Underrubrik","h3":"Underunderrubrik","monospace":"monospace","fontSize":"Storlek","cursive":"kursivt","noFormat":"None"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/sv/LinkDialog.js b/lib/dijit/_editor/nls/sv/LinkDialog.js new file mode 100644 index 000000000..80a1259cf --- /dev/null +++ b/lib/dijit/_editor/nls/sv/LinkDialog.js @@ -0,0 +1 @@ +({"text":"Beskrivning:","insertImageTitle":"Bildegenskaper","set":"Ange","newWindow":"nytt fönster","topWindow":"översta fönstret","target":"Mål:","createLinkTitle":"Länkegenskaper","parentWindow":"överordnat fönster","currentWindow":"aktuellt fönster","url":"URL-adress:"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/sv/commands.js b/lib/dijit/_editor/nls/sv/commands.js new file mode 100644 index 000000000..b571e8233 --- /dev/null +++ b/lib/dijit/_editor/nls/sv/commands.js @@ -0,0 +1 @@ +({"removeFormat":"Ta bort format","copy":"Kopiera","paste":"Klistra in","selectAll":"Markera allt","insertOrderedList":"Numrerad lista","insertTable":"Infoga/redigera tabell","print":"Skriv ut","underline":"Understrykning","foreColor":"Förgrundsfärg","htmlToggle":"HTML-källkod","formatBlock":"Styckeformat","newPage":"Ny sida","insertHorizontalRule":"Horisontell linjal","delete":"Ta bort","appleKey":"⌘+${0}","insertUnorderedList":"Punktlista","tableProp":"Tabellegenskap","insertImage":"Infoga bild","superscript":"Upphöjt","subscript":"Nedsänkt","createLink":"Skapa länk","undo":"Ångra","fullScreen":"Växla helskärm","italic":"Kursiv","fontName":"Teckensnittsnamn","justifyLeft":"Vänsterjustera","unlink":"Ta bort länk","toggleTableBorder":"Aktivera/avaktivera tabellram","viewSource":"Visa HTML-kod","ctrlKey":"Ctrl+${0}","fontSize":"Teckenstorlek","systemShortcut":"Åtgärden \"${0}\" är endast tillgänglig i webbläsaren med hjälp av ett kortkommando. Använd ${1}.","indent":"Indrag","redo":"Gör om","strikethrough":"Genomstruken","justifyFull":"Marginaljustera","justifyCenter":"Centrera","hiliteColor":"Bakgrundsfärg","deleteTable":"Ta bort tabell","outdent":"Utdrag","cut":"Klipp ut","plainFormatBlock":"Styckeformat","toggleDir":"Växla riktning","bold":"Fetstil","tabIndent":"Tabbindrag","justifyRight":"Högerjustera"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/th/FontChoice.js b/lib/dijit/_editor/nls/th/FontChoice.js new file mode 100644 index 000000000..c3e8f811d --- /dev/null +++ b/lib/dijit/_editor/nls/th/FontChoice.js @@ -0,0 +1 @@ +({"1":"xx-small","2":"x-small","formatBlock":"รูปแบบ","3":"small","4":"medium","5":"large","6":"x-large","7":"xx-large","fantasy":"fantasy","serif":"serif","p":"ย่อหน้า","pre":"การกำหนดรูปแบบล่วงหน้า","sans-serif":"sans-serif","fontName":"ฟอนต์","h1":"ส่วนหัว","h2":"ส่วนหัวย่อย","h3":"ส่วนย่อยของส่วนหัวย่อย","monospace":"monospace","fontSize":"ขนาด","cursive":"cursive","noFormat":"None"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/th/LinkDialog.js b/lib/dijit/_editor/nls/th/LinkDialog.js new file mode 100644 index 000000000..d571c53b4 --- /dev/null +++ b/lib/dijit/_editor/nls/th/LinkDialog.js @@ -0,0 +1 @@ +({"text":"รายละเอียด","insertImageTitle":"คุณสมบัติอิมเมจ","set":"ตั้งค่า","newWindow":"หน้าต่างใหม่","topWindow":"หน้าต่างบนสุด","target":"เป้าหมาย:","createLinkTitle":"คุณสมบัติลิงก์","parentWindow":"หน้าต่างหลัก","currentWindow":"หน้าต่างปัจจุบัน","url":"URL:"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/th/commands.js b/lib/dijit/_editor/nls/th/commands.js new file mode 100644 index 000000000..a98942a8d --- /dev/null +++ b/lib/dijit/_editor/nls/th/commands.js @@ -0,0 +1 @@ +({"removeFormat":"ลบรูปแบบออก","copy":"คัดลอก","paste":"วาง","selectAll":"เลือกทั้งหมด","insertOrderedList":"ลำดับเลข","insertTable":"แทรก/แก้ไขตาราง","print":"พิมพ์","underline":"ขีดเส้นใต้","foreColor":"สีพื้นหน้า","htmlToggle":"ซอร์ส HTML","formatBlock":"ลักษณะย่อหน้า","newPage":"หน้าใหม่","insertHorizontalRule":"ไม้บรรทัดแนวนอน","delete":"ลบ","insertUnorderedList":"หัวข้อย่อย","tableProp":"คุณสมบัติตาราง","insertImage":"แทรกอิมเมจ","superscript":"ตัวยก","subscript":"ตัวห้อย","createLink":"สร้างลิงก์","undo":"เลิกทำ","fullScreen":"สลับจอภาพแบบเต็ม","italic":"ตัวเอียง","fontName":"ชื่อฟอนต์","justifyLeft":"จัดชิดซ้าย","unlink":"ลบลิงก์ออก","toggleTableBorder":"สลับเส้นขอบตาราง","viewSource":"ดูซอร์ส HTML","fontSize":"ขนาดฟอนต์","systemShortcut":"การดำเนินการ\"${0}\" ใช้งานได้เฉพาะกับเบราว์เซอร์ของคุณโดยใช้แป้นพิมพ์ลัด ใช้ ${1}","indent":"เพิ่มการเยื้อง","redo":"ทำซ้ำ","strikethrough":"ขีดทับ","justifyFull":"จัดชิดขอบ","justifyCenter":"จัดกึ่งกลาง","hiliteColor":"สีพื้นหลัง","deleteTable":"ลบตาราง","outdent":"ลดการเยื้อง","cut":"ตัด","plainFormatBlock":"ลักษณะย่อหน้า","toggleDir":"สลับทิศทาง","bold":"ตัวหนา","tabIndent":"เยื้องแท็บ","justifyRight":"จัดชิดขวา","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/tr/FontChoice.js b/lib/dijit/_editor/nls/tr/FontChoice.js new file mode 100644 index 000000000..c9cdfea53 --- /dev/null +++ b/lib/dijit/_editor/nls/tr/FontChoice.js @@ -0,0 +1 @@ +({"1":"xx-küçük","2":"x-küçük","formatBlock":"Biçim","3":"küçük","4":"orta","5":"büyük","6":"x-büyük","7":"xx-büyük","fantasy":"fantazi","serif":"serif","p":"Paragraf","pre":"Önceden Biçimlendirilmiş","sans-serif":"sans-serif","fontName":"Yazı Tipi","h1":"Başlık","h2":"Alt Başlık","h3":"Alt Alt Başlık","monospace":"tek aralıklı","fontSize":"Boyut","cursive":"el yazısı","noFormat":"None"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/tr/LinkDialog.js b/lib/dijit/_editor/nls/tr/LinkDialog.js new file mode 100644 index 000000000..64bf3e219 --- /dev/null +++ b/lib/dijit/_editor/nls/tr/LinkDialog.js @@ -0,0 +1 @@ +({"text":"Açıklama:","insertImageTitle":"Resim Özellikleri","set":"Ayarla","newWindow":"Yeni Pencere","topWindow":"En Üst Pencere","target":"Hedef:","createLinkTitle":"Bağlantı Özellikleri","parentWindow":"Üst Pencere","currentWindow":"Geçerli Pencere","url":"URL:"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/tr/commands.js b/lib/dijit/_editor/nls/tr/commands.js new file mode 100644 index 000000000..ed7b66db8 --- /dev/null +++ b/lib/dijit/_editor/nls/tr/commands.js @@ -0,0 +1 @@ +({"removeFormat":"Biçimi Kaldır","copy":"Kopyala","paste":"Yapıştır","selectAll":"Tümünü Seç","insertOrderedList":"Numaralı Liste","insertTable":"Tablo Ekle/Düzenle","print":"Yazdır","underline":"Altı Çizili","foreColor":"Ön Plan Rengi","htmlToggle":"HTML Kaynağı","formatBlock":"Paragraf Stili","newPage":"Yeni Sayfa","insertHorizontalRule":"Yatay Kural","delete":"Sil","insertUnorderedList":"Madde İşaretli Liste","tableProp":"Tablo Özelliği","insertImage":"Resim Ekle","superscript":"Üst Simge","subscript":"Alt Simge","createLink":"Bağlantı Oluştur","undo":"Geri Al","fullScreen":"Tam Ekranı Aç/Kapat","italic":"İtalik","fontName":"Yazı Tipi Adı","justifyLeft":"Sola Hizala","unlink":"Bağlantıyı Kaldır","toggleTableBorder":"Tablo Kenarlığını Göster/Gizle","viewSource":"HTML Kaynağını Görüntüle","fontSize":"Yazı Tipi Boyutu","systemShortcut":"\"${0}\" işlemi yalnızca tarayıcınızda bir klavye kısayoluyla birlikte kullanılabilir. Şunu kullanın: ${1}.","indent":"Girinti","redo":"Yinele","strikethrough":"Üstü Çizili","justifyFull":"Yasla","justifyCenter":"Ortaya Hizala","hiliteColor":"Arka Plan Rengi","deleteTable":"Tabloyu Sil","outdent":"Çıkıntı","cut":"Kes","plainFormatBlock":"Paragraf Stili","toggleDir":"Yönü Değiştir","bold":"Kalın","tabIndent":"Sekme Girintisi","justifyRight":"Sağa Hizala","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/zh-tw/FontChoice.js b/lib/dijit/_editor/nls/zh-tw/FontChoice.js new file mode 100644 index 000000000..b821ec0ec --- /dev/null +++ b/lib/dijit/_editor/nls/zh-tw/FontChoice.js @@ -0,0 +1 @@ +({"1":"最小","2":"較小","formatBlock":"格式","3":"小","4":"中","5":"大","6":"較大","7":"最大","fantasy":"Fantasy","serif":"新細明體","p":"段落","pre":"預先格式化","sans-serif":"新細明體","fontName":"字型","h1":"標題","h2":"子標題","h3":"次子標題","monospace":"等寬","fontSize":"大小","cursive":"Cursive","noFormat":"None"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/zh-tw/LinkDialog.js b/lib/dijit/_editor/nls/zh-tw/LinkDialog.js new file mode 100644 index 000000000..949318b40 --- /dev/null +++ b/lib/dijit/_editor/nls/zh-tw/LinkDialog.js @@ -0,0 +1 @@ +({"text":"說明:","insertImageTitle":"影像內容","set":"設定","newWindow":"新視窗","topWindow":"最上面的視窗","target":"目標:","createLinkTitle":"鏈結內容","parentWindow":"上層視窗","currentWindow":"現行視窗","url":"URL:"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/zh-tw/commands.js b/lib/dijit/_editor/nls/zh-tw/commands.js new file mode 100644 index 000000000..d72dc4ec4 --- /dev/null +++ b/lib/dijit/_editor/nls/zh-tw/commands.js @@ -0,0 +1 @@ +({"removeFormat":"移除格式","copy":"複製","paste":"貼上","selectAll":"全選","insertOrderedList":"編號清單","insertTable":"插入/編輯表格","print":"列印","underline":"底線","foreColor":"前景顏色","htmlToggle":"HTML 原始檔","formatBlock":"段落樣式","newPage":"新建頁面","insertHorizontalRule":"水平尺規","delete":"刪除","insertUnorderedList":"項目符號清單","tableProp":"表格內容","insertImage":"插入影像","superscript":"上標","subscript":"下標","createLink":"建立鏈結","undo":"復原","fullScreen":"切換全螢幕","italic":"斜體","fontName":"字型名稱","justifyLeft":"靠左對齊","unlink":"移除鏈結","toggleTableBorder":"切換表格邊框","viewSource":"檢視 HTML 原始檔","fontSize":"字型大小","systemShortcut":"\"${0}\" 動作只能在瀏覽器中透過使用鍵盤快速鍵來使用。請使用 ${1}。","indent":"縮排","redo":"重做","strikethrough":"加刪除線","justifyFull":"對齊","justifyCenter":"置中對齊","hiliteColor":"背景顏色","deleteTable":"刪除表格","outdent":"凸排","cut":"剪下","plainFormatBlock":"段落樣式","toggleDir":"切換方向","bold":"粗體","tabIndent":"定位點縮排","justifyRight":"靠右對齊","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/zh/FontChoice.js b/lib/dijit/_editor/nls/zh/FontChoice.js new file mode 100644 index 000000000..4d52bb78e --- /dev/null +++ b/lib/dijit/_editor/nls/zh/FontChoice.js @@ -0,0 +1 @@ +({"1":"XXS 号","2":"XS 号","formatBlock":"格式","3":"S 号","4":"M 号","5":"L 号","6":"XL 号","7":"XXL 号","fantasy":"虚线","serif":"有衬线","p":"段落","pre":"预设有格式的","sans-serif":"无衬线","fontName":"字体","h1":"标题","h2":"子标题","h3":"二级子标题","monospace":"等宽字体","fontSize":"大小","cursive":"草书","noFormat":"None"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/zh/LinkDialog.js b/lib/dijit/_editor/nls/zh/LinkDialog.js new file mode 100644 index 000000000..da4c50026 --- /dev/null +++ b/lib/dijit/_editor/nls/zh/LinkDialog.js @@ -0,0 +1 @@ +({"text":"描述:","insertImageTitle":"图像属性","set":"设置","newWindow":"新窗口","topWindow":"最顶部窗口","target":"目标:","createLinkTitle":"链接属性","parentWindow":"父窗口","currentWindow":"当前窗口","url":"URL:"})
\ No newline at end of file diff --git a/lib/dijit/_editor/nls/zh/commands.js b/lib/dijit/_editor/nls/zh/commands.js new file mode 100644 index 000000000..11763dfc4 --- /dev/null +++ b/lib/dijit/_editor/nls/zh/commands.js @@ -0,0 +1 @@ +({"removeFormat":"除去格式","copy":"复制","paste":"粘贴","selectAll":"全选","insertOrderedList":"编号列表","insertTable":"插入/编辑表","print":"打印","underline":"下划线","foreColor":"前景色","htmlToggle":"HTML 源代码","formatBlock":"段落样式","newPage":"新建页面","insertHorizontalRule":"水平线","delete":"删除","insertUnorderedList":"符号列表","tableProp":"表属性","insertImage":"插入图像","superscript":"上标","subscript":"下标","createLink":"创建链接","undo":"撤销","fullScreen":"切换全屏幕","italic":"斜体","fontName":"字体名称","justifyLeft":"左对齐","unlink":"除去链接","toggleTableBorder":"切换表边框","viewSource":"查看 HTML 源代码","fontSize":"字体大小","systemShortcut":"只能在浏览器中通过键盘快捷方式执行“${0}”操作。使用 ${1}。","indent":"增加缩进","redo":"重做","strikethrough":"删除线","justifyFull":"对齐","justifyCenter":"居中","hiliteColor":"背景色","deleteTable":"删除表","outdent":"减少缩进","cut":"剪切","plainFormatBlock":"段落样式","toggleDir":"固定方向","bold":"粗体","tabIndent":"制表符缩进","justifyRight":"右对齐","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"})
\ No newline at end of file diff --git a/lib/dijit/_editor/plugins/AlwaysShowToolbar.js b/lib/dijit/_editor/plugins/AlwaysShowToolbar.js new file mode 100644 index 000000000..1e0e2ed3f --- /dev/null +++ b/lib/dijit/_editor/plugins/AlwaysShowToolbar.js @@ -0,0 +1,119 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._editor.plugins.AlwaysShowToolbar"]){ +dojo._hasResource["dijit._editor.plugins.AlwaysShowToolbar"]=true; +dojo.provide("dijit._editor.plugins.AlwaysShowToolbar"); +dojo.declare("dijit._editor.plugins.AlwaysShowToolbar",dijit._editor._Plugin,{_handleScroll:true,setEditor:function(e){ +if(!e.iframe){ +return; +} +this.editor=e; +e.onLoadDeferred.addCallback(dojo.hitch(this,this.enable)); +},enable:function(d){ +this._updateHeight(); +this.connect(window,"onscroll","globalOnScrollHandler"); +this.connect(this.editor,"onNormalizedDisplayChanged","_updateHeight"); +return d; +},_updateHeight:function(){ +var e=this.editor; +if(!e.isLoaded){ +return; +} +if(e.height){ +return; +} +var _1=dojo.marginBox(e.editNode).h; +if(dojo.isOpera){ +_1=e.editNode.scrollHeight; +} +if(!_1){ +_1=dojo.marginBox(e.document.body).h; +} +if(_1==0){ +return; +} +if(dojo.isIE<=7&&this.editor.minHeight){ +var _2=parseInt(this.editor.minHeight); +if(_1<_2){ +_1=_2; +} +} +if(_1!=this._lastHeight){ +this._lastHeight=_1; +dojo.marginBox(e.iframe,{h:this._lastHeight}); +} +},_lastHeight:0,globalOnScrollHandler:function(){ +var _3=dojo.isIE<7; +if(!this._handleScroll){ +return; +} +var _4=this.editor.header; +var db=dojo.body; +if(!this._scrollSetUp){ +this._scrollSetUp=true; +this._scrollThreshold=dojo.position(_4,true).y; +} +var _5=dojo._docScroll().y; +var s=_4.style; +if(_5>this._scrollThreshold&&_5<this._scrollThreshold+this._lastHeight){ +if(!this._fixEnabled){ +var _6=dojo.marginBox(_4); +this.editor.iframe.style.marginTop=_6.h+"px"; +if(_3){ +s.left=dojo.position(_4).x; +if(_4.previousSibling){ +this._IEOriginalPos=["after",_4.previousSibling]; +}else{ +if(_4.nextSibling){ +this._IEOriginalPos=["before",_4.nextSibling]; +}else{ +this._IEOriginalPos=["last",_4.parentNode]; +} +} +dojo.body().appendChild(_4); +dojo.addClass(_4,"dijitIEFixedToolbar"); +}else{ +s.position="fixed"; +s.top="0px"; +} +dojo.marginBox(_4,{w:_6.w}); +s.zIndex=2000; +this._fixEnabled=true; +} +var _7=(this.height)?parseInt(this.editor.height):this.editor._lastHeight; +s.display=(_5>this._scrollThreshold+_7)?"none":""; +}else{ +if(this._fixEnabled){ +this.editor.iframe.style.marginTop=""; +s.position=""; +s.top=""; +s.zIndex=""; +s.display=""; +if(_3){ +s.left=""; +dojo.removeClass(_4,"dijitIEFixedToolbar"); +if(this._IEOriginalPos){ +dojo.place(_4,this._IEOriginalPos[1],this._IEOriginalPos[0]); +this._IEOriginalPos=null; +}else{ +dojo.place(_4,this.editor.iframe,"before"); +} +} +s.width=""; +this._fixEnabled=false; +} +} +},destroy:function(){ +this._IEOriginalPos=null; +this._handleScroll=false; +dojo.forEach(this._connects,dojo.disconnect); +if(dojo.isIE<7){ +dojo.removeClass(this.editor.header,"dijitIEFixedToolbar"); +} +}}); +} diff --git a/lib/dijit/_editor/plugins/EnterKeyHandling.js b/lib/dijit/_editor/plugins/EnterKeyHandling.js new file mode 100644 index 000000000..51a8fdde8 --- /dev/null +++ b/lib/dijit/_editor/plugins/EnterKeyHandling.js @@ -0,0 +1,423 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._editor.plugins.EnterKeyHandling"]){ +dojo._hasResource["dijit._editor.plugins.EnterKeyHandling"]=true; +dojo.provide("dijit._editor.plugins.EnterKeyHandling"); +dojo.require("dojo.window"); +dojo.declare("dijit._editor.plugins.EnterKeyHandling",dijit._editor._Plugin,{blockNodeForEnter:"BR",constructor:function(_1){ +if(_1){ +dojo.mixin(this,_1); +} +},setEditor:function(_2){ +this.editor=_2; +if(this.blockNodeForEnter=="BR"){ +if(dojo.isIE){ +_2.contentDomPreFilters.push(dojo.hitch(this,"regularPsToSingleLinePs")); +_2.contentDomPostFilters.push(dojo.hitch(this,"singleLinePsToRegularPs")); +_2.onLoadDeferred.addCallback(dojo.hitch(this,"_fixNewLineBehaviorForIE")); +}else{ +_2.onLoadDeferred.addCallback(dojo.hitch(this,function(d){ +try{ +this.editor.document.execCommand("insertBrOnReturn",false,true); +} +catch(e){ +} +return d; +})); +} +}else{ +if(this.blockNodeForEnter){ +dojo["require"]("dijit._editor.range"); +var h=dojo.hitch(this,this.handleEnterKey); +_2.addKeyHandler(13,0,0,h); +_2.addKeyHandler(13,0,1,h); +this.connect(this.editor,"onKeyPressed","onKeyPressed"); +} +} +},onKeyPressed:function(e){ +if(this._checkListLater){ +if(dojo.withGlobal(this.editor.window,"isCollapsed",dijit)){ +var _3=dojo.withGlobal(this.editor.window,"getAncestorElement",dijit._editor.selection,["LI"]); +if(!_3){ +dijit._editor.RichText.prototype.execCommand.call(this.editor,"formatblock",this.blockNodeForEnter); +var _4=dojo.withGlobal(this.editor.window,"getAncestorElement",dijit._editor.selection,[this.blockNodeForEnter]); +if(_4){ +_4.innerHTML=this.bogusHtmlContent; +if(dojo.isIE){ +var r=this.editor.document.selection.createRange(); +r.move("character",-1); +r.select(); +} +}else{ +console.error("onKeyPressed: Cannot find the new block node"); +} +}else{ +if(dojo.isMoz){ +if(_3.parentNode.parentNode.nodeName=="LI"){ +_3=_3.parentNode.parentNode; +} +} +var fc=_3.firstChild; +if(fc&&fc.nodeType==1&&(fc.nodeName=="UL"||fc.nodeName=="OL")){ +_3.insertBefore(fc.ownerDocument.createTextNode(" "),fc); +var _5=dijit.range.create(this.editor.window); +_5.setStart(_3.firstChild,0); +var _6=dijit.range.getSelection(this.editor.window,true); +_6.removeAllRanges(); +_6.addRange(_5); +} +} +} +this._checkListLater=false; +} +if(this._pressedEnterInBlock){ +if(this._pressedEnterInBlock.previousSibling){ +this.removeTrailingBr(this._pressedEnterInBlock.previousSibling); +} +delete this._pressedEnterInBlock; +} +},bogusHtmlContent:" ",blockNodes:/^(?:P|H1|H2|H3|H4|H5|H6|LI)$/,handleEnterKey:function(e){ +var _7,_8,_9,_a=this.editor.document,br; +if(e.shiftKey){ +var _b=dojo.withGlobal(this.editor.window,"getParentElement",dijit._editor.selection); +var _c=dijit.range.getAncestor(_b,this.blockNodes); +if(_c){ +if(!e.shiftKey&&_c.tagName=="LI"){ +return true; +} +_7=dijit.range.getSelection(this.editor.window); +_8=_7.getRangeAt(0); +if(!_8.collapsed){ +_8.deleteContents(); +_7=dijit.range.getSelection(this.editor.window); +_8=_7.getRangeAt(0); +} +if(dijit.range.atBeginningOfContainer(_c,_8.startContainer,_8.startOffset)){ +if(e.shiftKey){ +br=_a.createElement("br"); +_9=dijit.range.create(this.editor.window); +_c.insertBefore(br,_c.firstChild); +_9.setStartBefore(br.nextSibling); +_7.removeAllRanges(); +_7.addRange(_9); +}else{ +dojo.place(br,_c,"before"); +} +}else{ +if(dijit.range.atEndOfContainer(_c,_8.startContainer,_8.startOffset)){ +_9=dijit.range.create(this.editor.window); +br=_a.createElement("br"); +if(e.shiftKey){ +_c.appendChild(br); +_c.appendChild(_a.createTextNode(" ")); +_9.setStart(_c.lastChild,0); +}else{ +dojo.place(br,_c,"after"); +_9.setStartAfter(_c); +} +_7.removeAllRanges(); +_7.addRange(_9); +}else{ +return true; +} +} +}else{ +dijit._editor.RichText.prototype.execCommand.call(this.editor,"inserthtml","<br>"); +} +return false; +} +var _d=true; +_7=dijit.range.getSelection(this.editor.window); +_8=_7.getRangeAt(0); +if(!_8.collapsed){ +_8.deleteContents(); +_7=dijit.range.getSelection(this.editor.window); +_8=_7.getRangeAt(0); +} +var _e=dijit.range.getBlockAncestor(_8.endContainer,null,this.editor.editNode); +var _f=_e.blockNode; +if((this._checkListLater=(_f&&(_f.nodeName=="LI"||_f.parentNode.nodeName=="LI")))){ +if(dojo.isMoz){ +this._pressedEnterInBlock=_f; +} +if(/^(\s| |\xA0|<span\b[^>]*\bclass=['"]Apple-style-span['"][^>]*>(\s| |\xA0)<\/span>)?(<br>)?$/.test(_f.innerHTML)){ +_f.innerHTML=""; +if(dojo.isWebKit){ +_9=dijit.range.create(this.editor.window); +_9.setStart(_f,0); +_7.removeAllRanges(); +_7.addRange(_9); +} +this._checkListLater=false; +} +return true; +} +if(!_e.blockNode||_e.blockNode===this.editor.editNode){ +try{ +dijit._editor.RichText.prototype.execCommand.call(this.editor,"formatblock",this.blockNodeForEnter); +} +catch(e2){ +} +_e={blockNode:dojo.withGlobal(this.editor.window,"getAncestorElement",dijit._editor.selection,[this.blockNodeForEnter]),blockContainer:this.editor.editNode}; +if(_e.blockNode){ +if(_e.blockNode!=this.editor.editNode&&(!(_e.blockNode.textContent||_e.blockNode.innerHTML).replace(/^\s+|\s+$/g,"").length)){ +this.removeTrailingBr(_e.blockNode); +return false; +} +}else{ +_e.blockNode=this.editor.editNode; +} +_7=dijit.range.getSelection(this.editor.window); +_8=_7.getRangeAt(0); +} +var _10=_a.createElement(this.blockNodeForEnter); +_10.innerHTML=this.bogusHtmlContent; +this.removeTrailingBr(_e.blockNode); +if(dijit.range.atEndOfContainer(_e.blockNode,_8.endContainer,_8.endOffset)){ +if(_e.blockNode===_e.blockContainer){ +_e.blockNode.appendChild(_10); +}else{ +dojo.place(_10,_e.blockNode,"after"); +} +_d=false; +_9=dijit.range.create(this.editor.window); +_9.setStart(_10,0); +_7.removeAllRanges(); +_7.addRange(_9); +if(this.editor.height){ +dojo.window.scrollIntoView(_10); +} +}else{ +if(dijit.range.atBeginningOfContainer(_e.blockNode,_8.startContainer,_8.startOffset)){ +dojo.place(_10,_e.blockNode,_e.blockNode===_e.blockContainer?"first":"before"); +if(_10.nextSibling&&this.editor.height){ +_9=dijit.range.create(this.editor.window); +_9.setStart(_10.nextSibling,0); +_7.removeAllRanges(); +_7.addRange(_9); +dojo.window.scrollIntoView(_10.nextSibling); +} +_d=false; +}else{ +if(_e.blockNode===_e.blockContainer){ +_e.blockNode.appendChild(_10); +}else{ +dojo.place(_10,_e.blockNode,"after"); +} +_d=false; +if(_e.blockNode.style){ +if(_10.style){ +if(_e.blockNode.style.cssText){ +_10.style.cssText=_e.blockNode.style.cssText; +} +} +} +var rs=_8.startContainer; +if(rs&&rs.nodeType==3){ +var _11,_12; +var txt=rs.nodeValue; +var _13=_a.createTextNode(txt.substring(0,_8.startOffset)); +var _14=_a.createTextNode(txt.substring(_8.startOffset,txt.length)); +dojo.place(_13,rs,"before"); +dojo.place(_14,rs,"after"); +dojo.destroy(rs); +var _15=_13.parentNode; +while(_15!==_e.blockNode){ +var tg=_15.tagName; +var _16=_a.createElement(tg); +if(_15.style){ +if(_16.style){ +if(_15.style.cssText){ +_16.style.cssText=_15.style.cssText; +} +} +} +_11=_14; +while(_11){ +_12=_11.nextSibling; +_16.appendChild(_11); +_11=_12; +} +dojo.place(_16,_15,"after"); +_13=_15; +_14=_16; +_15=_15.parentNode; +} +_11=_14; +if(_11.nodeType==1||(_11.nodeType==3&&_11.nodeValue)){ +_10.innerHTML=""; +} +while(_11){ +_12=_11.nextSibling; +_10.appendChild(_11); +_11=_12; +} +} +_9=dijit.range.create(this.editor.window); +_9.setStart(_10,0); +_7.removeAllRanges(); +_7.addRange(_9); +if(this.editor.height){ +dijit.scrollIntoView(_10); +} +if(dojo.isMoz){ +this._pressedEnterInBlock=_e.blockNode; +} +} +} +return _d; +},removeTrailingBr:function(_17){ +var _18=/P|DIV|LI/i.test(_17.tagName)?_17:dijit._editor.selection.getParentOfType(_17,["P","DIV","LI"]); +if(!_18){ +return; +} +if(_18.lastChild){ +if((_18.childNodes.length>1&&_18.lastChild.nodeType==3&&/^[\s\xAD]*$/.test(_18.lastChild.nodeValue))||_18.lastChild.tagName=="BR"){ +dojo.destroy(_18.lastChild); +} +} +if(!_18.childNodes.length){ +_18.innerHTML=this.bogusHtmlContent; +} +},_fixNewLineBehaviorForIE:function(d){ +var doc=this.editor.document; +if(doc.__INSERTED_EDITIOR_NEWLINE_CSS===undefined){ +var _19=dojo.create("style",{type:"text/css"},doc.getElementsByTagName("head")[0]); +_19.styleSheet.cssText="p{margin:0;}"; +this.editor.document.__INSERTED_EDITIOR_NEWLINE_CSS=true; +} +return d; +},regularPsToSingleLinePs:function(_1a,_1b){ +function _1c(el){ +function _1d(_1e){ +var _1f=_1e[0].ownerDocument.createElement("p"); +_1e[0].parentNode.insertBefore(_1f,_1e[0]); +dojo.forEach(_1e,function(_20){ +_1f.appendChild(_20); +}); +}; +var _21=0; +var _22=[]; +var _23; +while(_21<el.childNodes.length){ +_23=el.childNodes[_21]; +if(_23.nodeType==3||(_23.nodeType==1&&_23.nodeName!="BR"&&dojo.style(_23,"display")!="block")){ +_22.push(_23); +}else{ +var _24=_23.nextSibling; +if(_22.length){ +_1d(_22); +_21=(_21+1)-_22.length; +if(_23.nodeName=="BR"){ +dojo.destroy(_23); +} +} +_22=[]; +} +_21++; +} +if(_22.length){ +_1d(_22); +} +}; +function _25(el){ +var _26=null; +var _27=[]; +var _28=el.childNodes.length-1; +for(var i=_28;i>=0;i--){ +_26=el.childNodes[i]; +if(_26.nodeName=="BR"){ +var _29=_26.ownerDocument.createElement("p"); +dojo.place(_29,el,"after"); +if(_27.length==0&&i!=_28){ +_29.innerHTML=" "; +} +dojo.forEach(_27,function(_2a){ +_29.appendChild(_2a); +}); +dojo.destroy(_26); +_27=[]; +}else{ +_27.unshift(_26); +} +} +}; +var _2b=[]; +var ps=_1a.getElementsByTagName("p"); +dojo.forEach(ps,function(p){ +_2b.push(p); +}); +dojo.forEach(_2b,function(p){ +var _2c=p.previousSibling; +if((_2c)&&(_2c.nodeType==1)&&(_2c.nodeName=="P"||dojo.style(_2c,"display")!="block")){ +var _2d=p.parentNode.insertBefore(this.document.createElement("p"),p); +_2d.innerHTML=_1b?"":" "; +} +_25(p); +},this.editor); +_1c(_1a); +return _1a; +},singleLinePsToRegularPs:function(_2e){ +function _2f(_30){ +var ps=_30.getElementsByTagName("p"); +var _31=[]; +for(var i=0;i<ps.length;i++){ +var p=ps[i]; +var _32=false; +for(var k=0;k<_31.length;k++){ +if(_31[k]===p.parentNode){ +_32=true; +break; +} +} +if(!_32){ +_31.push(p.parentNode); +} +} +return _31; +}; +function _33(_34){ +return (!_34.childNodes.length||_34.innerHTML==" "); +}; +var _35=_2f(_2e); +for(var i=0;i<_35.length;i++){ +var _36=_35[i]; +var _37=null; +var _38=_36.firstChild; +var _39=null; +while(_38){ +if(_38.nodeType!=1||_38.tagName!="P"||(_38.getAttributeNode("style")||{}).specified){ +_37=null; +}else{ +if(_33(_38)){ +_39=_38; +_37=null; +}else{ +if(_37==null){ +_37=_38; +}else{ +if((!_37.lastChild||_37.lastChild.nodeName!="BR")&&(_38.firstChild)&&(_38.firstChild.nodeName!="BR")){ +_37.appendChild(this.editor.document.createElement("br")); +} +while(_38.firstChild){ +_37.appendChild(_38.firstChild); +} +_39=_38; +} +} +} +_38=_38.nextSibling; +if(_39){ +dojo.destroy(_39); +_39=null; +} +} +} +return _2e; +}}); +} diff --git a/lib/dijit/_editor/plugins/FontChoice.js b/lib/dijit/_editor/plugins/FontChoice.js new file mode 100644 index 000000000..c5578e3fb --- /dev/null +++ b/lib/dijit/_editor/plugins/FontChoice.js @@ -0,0 +1,265 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._editor.plugins.FontChoice"]){ +dojo._hasResource["dijit._editor.plugins.FontChoice"]=true; +dojo.provide("dijit._editor.plugins.FontChoice"); +dojo.require("dijit._editor._Plugin"); +dojo.require("dijit._editor.range"); +dojo.require("dijit._editor.selection"); +dojo.require("dijit.form.FilteringSelect"); +dojo.require("dojo.data.ItemFileReadStore"); +dojo.require("dojo.i18n"); +dojo.requireLocalization("dijit._editor","FontChoice",null,"ROOT,ar,ca,cs,da,de,el,es,fi,fr,he,hu,it,ja,ko,nb,nl,pl,pt,pt-pt,ro,ru,sk,sl,sv,th,tr,zh,zh-tw"); +dojo.declare("dijit._editor.plugins._FontDropDown",[dijit._Widget,dijit._Templated],{label:"",widgetsInTemplate:true,plainText:false,templateString:"<span style='white-space: nowrap' class='dijit dijitReset dijitInline'>"+"<label class='dijitLeft dijitInline' for='${selectId}'>${label}</label>"+"<input dojoType='dijit.form.FilteringSelect' required=false labelType=html labelAttr=label searchAttr=name "+"tabIndex='-1' id='${selectId}' dojoAttachPoint='select' value=''/>"+"</span>",postMixInProperties:function(){ +this.inherited(arguments); +this.strings=dojo.i18n.getLocalization("dijit._editor","FontChoice"); +this.label=this.strings[this.command]; +this.id=dijit.getUniqueId(this.declaredClass.replace(/\./g,"_")); +this.selectId=this.id+"_select"; +this.inherited(arguments); +},postCreate:function(){ +var _1=dojo.map(this.values,function(_2){ +var _3=this.strings[_2]||_2; +return {label:this.getLabel(_2,_3),name:_3,value:_2}; +},this); +this.select.store=new dojo.data.ItemFileReadStore({data:{identifier:"value",items:_1}}); +this.select.set("value","",false); +this.disabled=this.select.get("disabled"); +},_setValueAttr:function(_4,_5){ +_5=_5!==false?true:false; +this.select.set("value",dojo.indexOf(this.values,_4)<0?"":_4,_5); +if(!_5){ +this.select._lastValueReported=null; +} +},_getValueAttr:function(){ +return this.select.get("value"); +},focus:function(){ +this.select.focus(); +},_setDisabledAttr:function(_6){ +this.disabled=_6; +this.select.set("disabled",_6); +}}); +dojo.declare("dijit._editor.plugins._FontNameDropDown",dijit._editor.plugins._FontDropDown,{generic:false,command:"fontName",postMixInProperties:function(){ +if(!this.values){ +this.values=this.generic?["serif","sans-serif","monospace","cursive","fantasy"]:["Arial","Times New Roman","Comic Sans MS","Courier New"]; +} +this.inherited(arguments); +},getLabel:function(_7,_8){ +if(this.plainText){ +return _8; +}else{ +return "<div style='font-family: "+_7+"'>"+_8+"</div>"; +} +},_setValueAttr:function(_9,_a){ +_a=_a!==false?true:false; +if(this.generic){ +var _b={"Arial":"sans-serif","Helvetica":"sans-serif","Myriad":"sans-serif","Times":"serif","Times New Roman":"serif","Comic Sans MS":"cursive","Apple Chancery":"cursive","Courier":"monospace","Courier New":"monospace","Papyrus":"fantasy"}; +_9=_b[_9]||_9; +} +this.inherited(arguments,[_9,_a]); +}}); +dojo.declare("dijit._editor.plugins._FontSizeDropDown",dijit._editor.plugins._FontDropDown,{command:"fontSize",values:[1,2,3,4,5,6,7],getLabel:function(_c,_d){ +if(this.plainText){ +return _d; +}else{ +return "<font size="+_c+"'>"+_d+"</font>"; +} +},_setValueAttr:function(_e,_f){ +_f=_f!==false?true:false; +if(_e.indexOf&&_e.indexOf("px")!=-1){ +var _10=parseInt(_e,10); +_e={10:1,13:2,16:3,18:4,24:5,32:6,48:7}[_10]||_e; +} +this.inherited(arguments,[_e,_f]); +}}); +dojo.declare("dijit._editor.plugins._FormatBlockDropDown",dijit._editor.plugins._FontDropDown,{command:"formatBlock",values:["noFormat","p","h1","h2","h3","pre"],postCreate:function(){ +this.inherited(arguments); +this.set("value","noFormat",false); +},getLabel:function(_11,_12){ +if(this.plainText){ +return _12; +}else{ +return "<"+_11+">"+_12+"</"+_11+">"; +} +},_execCommand:function(_13,_14,_15){ +if(_15==="noFormat"){ +var _16; +var end; +var sel=dijit.range.getSelection(_13.window); +if(sel&&sel.rangeCount>0){ +var _17=sel.getRangeAt(0); +var _18,tag; +if(_17){ +_16=_17.startContainer; +end=_17.endContainer; +while(_16&&_16!==_13.editNode&&_16!==_13.document.body&&_16.nodeType!==1){ +_16=_16.parentNode; +} +while(end&&end!==_13.editNode&&end!==_13.document.body&&end.nodeType!==1){ +end=end.parentNode; +} +var _19=dojo.hitch(this,function(_1a,_1b){ +if(_1a.childNodes&&_1a.childNodes.length){ +var i; +for(i=0;i<_1a.childNodes.length;i++){ +var c=_1a.childNodes[i]; +if(c.nodeType==1){ +if(dojo.withGlobal(_13.window,"inSelection",dijit._editor.selection,[c])){ +var tag=c.tagName?c.tagName.toLowerCase():""; +if(dojo.indexOf(this.values,tag)!==-1){ +_1b.push(c); +} +_19(c,_1b); +} +} +} +} +}); +var _1c=dojo.hitch(this,function(_1d){ +if(_1d&&_1d.length){ +_13.beginEditing(); +while(_1d.length){ +this._removeFormat(_13,_1d.pop()); +} +_13.endEditing(); +} +}); +var _1e=[]; +if(_16==end){ +var _1f; +_18=_16; +while(_18&&_18!==_13.editNode&&_18!==_13.document.body){ +if(_18.nodeType==1){ +tag=_18.tagName?_18.tagName.toLowerCase():""; +if(dojo.indexOf(this.values,tag)!==-1){ +_1f=_18; +break; +} +} +_18=_18.parentNode; +} +_19(_16,_1e); +if(_1f){ +_1e=[_1f].concat(_1e); +} +_1c(_1e); +}else{ +_18=_16; +while(dojo.withGlobal(_13.window,"inSelection",dijit._editor.selection,[_18])){ +if(_18.nodeType==1){ +tag=_18.tagName?_18.tagName.toLowerCase():""; +if(dojo.indexOf(this.values,tag)!==-1){ +_1e.push(_18); +} +_19(_18,_1e); +} +_18=_18.nextSibling; +} +_1c(_1e); +} +_13.onDisplayChanged(); +} +} +}else{ +_13.execCommand(_14,_15); +} +},_removeFormat:function(_20,_21){ +if(_20.customUndo){ +while(_21.firstChild){ +dojo.place(_21.firstChild,_21,"before"); +} +_21.parentNode.removeChild(_21); +}else{ +dojo.withGlobal(_20.window,"selectElementChildren",dijit._editor.selection,[_21]); +var _22=dojo.withGlobal(_20.window,"getSelectedHtml",dijit._editor.selection,[null]); +dojo.withGlobal(_20.window,"selectElement",dijit._editor.selection,[_21]); +_20.execCommand("inserthtml",_22||""); +} +}}); +dojo.declare("dijit._editor.plugins.FontChoice",dijit._editor._Plugin,{useDefaultCommand:false,_initButton:function(){ +var _23={fontName:dijit._editor.plugins._FontNameDropDown,fontSize:dijit._editor.plugins._FontSizeDropDown,formatBlock:dijit._editor.plugins._FormatBlockDropDown}[this.command],_24=this.params; +if(this.params.custom){ +_24.values=this.params.custom; +} +var _25=this.editor; +this.button=new _23(dojo.delegate({dir:_25.dir,lang:_25.lang},_24)); +this.connect(this.button.select,"onChange",function(_26){ +this.editor.focus(); +if(this.command=="fontName"&&_26.indexOf(" ")!=-1){ +_26="'"+_26+"'"; +} +if(this.button._execCommand){ +this.button._execCommand(this.editor,this.command,_26); +}else{ +this.editor.execCommand(this.command,_26); +} +this.editor.customUndo=this.editor.customUndo||dojo.isWebKit; +}); +},updateState:function(){ +var _27=this.editor; +var _28=this.command; +if(!_27||!_27.isLoaded||!_28.length){ +return; +} +if(this.button){ +var _29; +try{ +_29=_27.queryCommandValue(_28)||""; +} +catch(e){ +_29=""; +} +var _2a=dojo.isString(_29)&&_29.match(/'([^']*)'/); +if(_2a){ +_29=_2a[1]; +} +if(_28==="formatBlock"){ +if(!_29||_29=="p"){ +_29=null; +var _2b; +var sel=dijit.range.getSelection(this.editor.window); +if(sel&&sel.rangeCount>0){ +var _2c=sel.getRangeAt(0); +if(_2c){ +_2b=_2c.endContainer; +} +} +while(_2b&&_2b!==_27.editNode&&_2b!==_27.document){ +var tg=_2b.tagName?_2b.tagName.toLowerCase():""; +if(tg&&dojo.indexOf(this.button.values,tg)>-1){ +_29=tg; +break; +} +_2b=_2b.parentNode; +} +if(!_29){ +_29="noFormat"; +} +}else{ +if(dojo.indexOf(this.button.values,_29)<0){ +_29="noFormat"; +} +} +} +if(_29!==this.button.get("value")){ +this.button.set("value",_29,false); +} +} +}}); +dojo.subscribe(dijit._scopeName+".Editor.getPlugin",null,function(o){ +if(o.plugin){ +return; +} +switch(o.args.name){ +case "fontName": +case "fontSize": +case "formatBlock": +o.plugin=new dijit._editor.plugins.FontChoice({command:o.args.name,plainText:o.args.plainText?o.args.plainText:false}); +} +}); +} diff --git a/lib/dijit/_editor/plugins/FullScreen.js b/lib/dijit/_editor/plugins/FullScreen.js new file mode 100644 index 000000000..7a6dac55d --- /dev/null +++ b/lib/dijit/_editor/plugins/FullScreen.js @@ -0,0 +1,232 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._editor.plugins.FullScreen"]){ +dojo._hasResource["dijit._editor.plugins.FullScreen"]=true; +dojo.provide("dijit._editor.plugins.FullScreen"); +dojo.require("dojo.window"); +dojo.require("dojo.i18n"); +dojo.require("dijit._editor._Plugin"); +dojo.require("dijit.form.Button"); +dojo.requireLocalization("dijit._editor","commands",null,"ROOT,ar,ca,cs,da,de,el,es,fi,fr,he,hu,it,ja,ko,nb,nl,pl,pt,pt-pt,ro,ru,sk,sl,sv,th,tr,zh,zh-tw"); +dojo.declare("dijit._editor.plugins.FullScreen",dijit._editor._Plugin,{zIndex:500,_origState:null,_origiFrameState:null,_resizeHandle:null,isFullscreen:false,toggle:function(){ +this.button.set("checked",!this.button.get("checked")); +},_initButton:function(){ +var _1=dojo.i18n.getLocalization("dijit._editor","commands"),_2=this.editor; +this.button=new dijit.form.ToggleButton({label:_1["fullScreen"],dir:_2.dir,lang:_2.lang,showLabel:false,iconClass:this.iconClassPrefix+" "+this.iconClassPrefix+"FullScreen",tabIndex:"-1",onChange:dojo.hitch(this,"_setFullScreen")}); +},setEditor:function(_3){ +this.editor=_3; +this._initButton(); +this.editor.addKeyHandler(dojo.keys.F11,true,true,dojo.hitch(this,function(e){ +this.toggle(); +dojo.stopEvent(e); +setTimeout(dojo.hitch(this,function(){ +this.editor.focus(); +}),250); +return true; +})); +this.connect(this.editor.domNode,"onkeydown","_containFocus"); +},_containFocus:function(e){ +if(this.isFullscreen){ +var ed=this.editor; +if(!ed.isTabIndent&&ed._fullscreen_oldOnKeyDown&&e.keyCode===dojo.keys.TAB){ +var f=dijit.getFocus(); +var _4=this._getAltViewNode(); +if(f.node==ed.iframe||(_4&&f.node===_4)){ +setTimeout(dojo.hitch(this,function(){ +ed.toolbar.focus(); +}),10); +}else{ +if(_4&&dojo.style(ed.iframe,"display")==="none"){ +setTimeout(dojo.hitch(this,function(){ +dijit.focus(_4); +}),10); +}else{ +setTimeout(dojo.hitch(this,function(){ +ed.focus(); +}),10); +} +} +dojo.stopEvent(e); +}else{ +if(ed._fullscreen_oldOnKeyDown){ +ed._fullscreen_oldOnKeyDown(e); +} +} +} +},_resizeEditor:function(){ +var vp=dojo.window.getBox(); +dojo.marginBox(this.editor.domNode,{w:vp.w,h:vp.h}); +var _5=this.editor.getHeaderHeight(); +var _6=this.editor.getFooterHeight(); +var _7=dojo._getPadBorderExtents(this.editor.domNode); +var _8=dojo._getPadBorderExtents(this.editor.iframe.parentNode); +var _9=dojo._getMarginExtents(this.editor.iframe.parentNode); +var _a=vp.h-(_5+_7.h+_6); +dojo.marginBox(this.editor.iframe.parentNode,{h:_a,w:vp.w}); +dojo.marginBox(this.editor.iframe,{h:_a-(_8.h+_9.h)}); +},_getAltViewNode:function(){ +},_setFullScreen:function(_b){ +var vp=dojo.window.getBox(); +var ed=this.editor; +var _c=dojo.body(); +var _d=ed.domNode.parentNode; +this.isFullscreen=_b; +if(_b){ +while(_d&&_d!==dojo.body()){ +dojo.addClass(_d,"dijitForceStatic"); +_d=_d.parentNode; +} +this._editorResizeHolder=this.editor.resize; +ed.resize=function(){ +}; +ed._fullscreen_oldOnKeyDown=ed.onKeyDown; +ed.onKeyDown=dojo.hitch(this,this._containFocus); +this._origState={}; +this._origiFrameState={}; +var _e=ed.domNode,_f=_e&&_e.style||{}; +this._origState={width:_f.width||"",height:_f.height||"",top:dojo.style(_e,"top")||"",left:dojo.style(_e,"left")||"",position:dojo.style(_e,"position")||"static",marginBox:dojo.marginBox(ed.domNode)}; +var _10=ed.iframe,_11=_10&&_10.style||{}; +var bc=dojo.style(ed.iframe,"backgroundColor"); +this._origiFrameState={backgroundColor:bc||"transparent",width:_11.width||"auto",height:_11.height||"auto",zIndex:_11.zIndex||""}; +dojo.style(ed.domNode,{position:"absolute",top:"0px",left:"0px",zIndex:this.zIndex,width:vp.w+"px",height:vp.h+"px"}); +dojo.style(ed.iframe,{height:"100%",width:"100%",zIndex:this.zIndex,backgroundColor:bc!=="transparent"&&bc!=="rgba(0, 0, 0, 0)"?bc:"white"}); +dojo.style(ed.iframe.parentNode,{height:"95%",width:"100%"}); +if(_c.style&&_c.style.overflow){ +this._oldOverflow=dojo.style(_c,"overflow"); +}else{ +this._oldOverflow=""; +} +if(dojo.isIE&&!dojo.isQuirks){ +if(_c.parentNode&&_c.parentNode.style&&_c.parentNode.style.overflow){ +this._oldBodyParentOverflow=_c.parentNode.style.overflow; +}else{ +try{ +this._oldBodyParentOverflow=dojo.style(_c.parentNode,"overflow"); +} +catch(e){ +this._oldBodyParentOverflow="scroll"; +} +} +dojo.style(_c.parentNode,"overflow","hidden"); +} +dojo.style(_c,"overflow","hidden"); +var _12=function(){ +var vp=dojo.window.getBox(); +if("_prevW" in this&&"_prevH" in this){ +if(vp.w===this._prevW&&vp.h===this._prevH){ +return; +} +}else{ +this._prevW=vp.w; +this._prevH=vp.h; +} +if(this._resizer){ +clearTimeout(this._resizer); +delete this._resizer; +} +this._resizer=setTimeout(dojo.hitch(this,function(){ +delete this._resizer; +this._resizeEditor(); +}),10); +}; +this._resizeHandle=dojo.connect(window,"onresize",this,_12); +this._resizeHandle2=dojo.connect(ed,"resize",dojo.hitch(this,function(){ +if(this._resizer){ +clearTimeout(this._resizer); +delete this._resizer; +} +this._resizer=setTimeout(dojo.hitch(this,function(){ +delete this._resizer; +this._resizeEditor(); +}),10); +})); +this._resizeEditor(); +var dn=this.editor.toolbar.domNode; +setTimeout(function(){ +dojo.window.scrollIntoView(dn); +},250); +}else{ +if(this._resizeHandle){ +dojo.disconnect(this._resizeHandle); +this._resizeHandle=null; +} +if(this._resizeHandle2){ +dojo.disconnect(this._resizeHandle2); +this._resizeHandle2=null; +} +if(this._rst){ +clearTimeout(this._rst); +this._rst=null; +} +while(_d&&_d!==dojo.body()){ +dojo.removeClass(_d,"dijitForceStatic"); +_d=_d.parentNode; +} +if(this._editorResizeHolder){ +this.editor.resize=this._editorResizeHolder; +} +if(!this._origState&&!this._origiFrameState){ +return; +} +if(ed._fullscreen_oldOnKeyDown){ +ed.onKeyDown=ed._fullscreen_oldOnKeyDown; +delete ed._fullscreen_oldOnKeyDown; +} +var _13=this; +setTimeout(function(){ +var mb=_13._origState.marginBox; +var oh=_13._origState.height; +if(dojo.isIE&&!dojo.isQuirks){ +_c.parentNode.style.overflow=_13._oldBodyParentOverflow; +delete _13._oldBodyParentOverflow; +} +dojo.style(_c,"overflow",_13._oldOverflow); +delete _13._oldOverflow; +dojo.style(ed.domNode,_13._origState); +dojo.style(ed.iframe.parentNode,{height:"",width:""}); +dojo.style(ed.iframe,_13._origiFrameState); +delete _13._origState; +delete _13._origiFrameState; +var _14=dijit.getEnclosingWidget(ed.domNode.parentNode); +if(_14&&_14.resize){ +_14.resize(); +}else{ +if(!oh||oh.indexOf("%")<0){ +setTimeout(dojo.hitch(this,function(){ +ed.resize({h:mb.h}); +}),0); +} +} +dojo.window.scrollIntoView(_13.editor.toolbar.domNode); +},100); +} +},destroy:function(){ +if(this._resizeHandle){ +dojo.disconnect(this._resizeHandle); +this._resizeHandle=null; +} +if(this._resizeHandle2){ +dojo.disconnect(this._resizeHandle2); +this._resizeHandle2=null; +} +if(this._resizer){ +clearTimeout(this._resizer); +this._resizer=null; +} +this.inherited(arguments); +}}); +dojo.subscribe(dijit._scopeName+".Editor.getPlugin",null,function(o){ +if(o.plugin){ +return; +} +var _15=o.args.name.toLowerCase(); +if(_15==="fullscreen"){ +o.plugin=new dijit._editor.plugins.FullScreen({zIndex:("zIndex" in o.args)?o.args.zIndex:500}); +} +}); +} diff --git a/lib/dijit/_editor/plugins/LinkDialog.js b/lib/dijit/_editor/plugins/LinkDialog.js new file mode 100644 index 000000000..71de3ad8f --- /dev/null +++ b/lib/dijit/_editor/plugins/LinkDialog.js @@ -0,0 +1,236 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._editor.plugins.LinkDialog"]){ +dojo._hasResource["dijit._editor.plugins.LinkDialog"]=true; +dojo.provide("dijit._editor.plugins.LinkDialog"); +dojo.require("dijit._Widget"); +dojo.require("dijit._Templated"); +dojo.require("dijit._editor._Plugin"); +dojo.require("dijit.TooltipDialog"); +dojo.require("dijit.form.Button"); +dojo.require("dijit.form.ValidationTextBox"); +dojo.require("dijit.form.Select"); +dojo.require("dijit._editor.range"); +dojo.require("dojo.i18n"); +dojo.require("dojo.string"); +dojo.requireLocalization("dijit","common",null,"ROOT,ar,ca,cs,da,de,el,es,fi,fr,he,hu,it,ja,ko,nb,nl,pl,pt,pt-pt,ro,ru,sk,sl,sv,th,tr,zh,zh-tw"); +dojo.requireLocalization("dijit._editor","LinkDialog",null,"ROOT,ar,ca,cs,da,de,el,es,fi,fr,he,hu,it,ja,ko,nb,nl,pl,pt,pt-pt,ro,ru,sk,sl,sv,th,tr,zh,zh-tw"); +dojo.declare("dijit._editor.plugins.LinkDialog",dijit._editor._Plugin,{buttonClass:dijit.form.DropDownButton,useDefaultCommand:false,urlRegExp:"((https?|ftps?|file)\\://|./|/|)(/[a-zA-Z]{1,1}:/|)(((?:(?:[\\da-zA-Z](?:[-\\da-zA-Z]{0,61}[\\da-zA-Z])?)\\.)*(?:[a-zA-Z](?:[-\\da-zA-Z]{0,80}[\\da-zA-Z])?)\\.?)|(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.){3}(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])|(0[xX]0*[\\da-fA-F]?[\\da-fA-F]\\.){3}0[xX]0*[\\da-fA-F]?[\\da-fA-F]|(0+[0-3][0-7][0-7]\\.){3}0+[0-3][0-7][0-7]|(0|[1-9]\\d{0,8}|[1-3]\\d{9}|4[01]\\d{8}|42[0-8]\\d{7}|429[0-3]\\d{6}|4294[0-8]\\d{5}|42949[0-5]\\d{4}|429496[0-6]\\d{3}|4294967[01]\\d{2}|42949672[0-8]\\d|429496729[0-5])|0[xX]0*[\\da-fA-F]{1,8}|([\\da-fA-F]{1,4}\\:){7}[\\da-fA-F]{1,4}|([\\da-fA-F]{1,4}\\:){6}((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.){3}(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])))(\\:\\d+)?(/(?:[^?#\\s/]+/)*(?:[^?#\\s/]+(?:\\?[^?#\\s/]*)?(?:#.*)?)?)?",emailRegExp:"<?(mailto\\:)([!#-'*+\\-\\/-9=?A-Z^-~]+[.])*[!#-'*+\\-\\/-9=?A-Z^-~]+"+"@"+"((?:(?:[\\da-zA-Z](?:[-\\da-zA-Z]{0,61}[\\da-zA-Z])?)\\.)+(?:[a-zA-Z](?:[-\\da-zA-Z]{0,6}[\\da-zA-Z])?)\\.?)|localhost|^[^-][a-zA-Z0-9_-]*>?",htmlTemplate:"<a href=\"${urlInput}\" _djrealurl=\"${urlInput}\""+" target=\"${targetSelect}\""+">${textInput}</a>",tag:"a",_hostRxp:new RegExp("^((([^\\[:]+):)?([^@]+)@)?(\\[([^\\]]+)\\]|([^\\[:]*))(:([0-9]+))?$"),_userAtRxp:new RegExp("^([!#-'*+\\-\\/-9=?A-Z^-~]+[.])*[!#-'*+\\-\\/-9=?A-Z^-~]+@","i"),linkDialogTemplate:["<table><tr><td>","<label for='${id}_urlInput'>${url}</label>","</td><td>","<input dojoType='dijit.form.ValidationTextBox' required='true' "+"id='${id}_urlInput' name='urlInput' intermediateChanges='true'>","</td></tr><tr><td>","<label for='${id}_textInput'>${text}</label>","</td><td>","<input dojoType='dijit.form.ValidationTextBox' required='true' id='${id}_textInput' "+"name='textInput' intermediateChanges='true'>","</td></tr><tr><td>","<label for='${id}_targetSelect'>${target}</label>","</td><td>","<select id='${id}_targetSelect' name='targetSelect' dojoType='dijit.form.Select'>","<option selected='selected' value='_self'>${currentWindow}</option>","<option value='_blank'>${newWindow}</option>","<option value='_top'>${topWindow}</option>","<option value='_parent'>${parentWindow}</option>","</select>","</td></tr><tr><td colspan='2'>","<button dojoType='dijit.form.Button' type='submit' id='${id}_setButton'>${set}</button>","<button dojoType='dijit.form.Button' type='button' id='${id}_cancelButton'>${buttonCancel}</button>","</td></tr></table>"].join(""),_initButton:function(){ +var _1=this; +this.tag=this.command=="insertImage"?"img":"a"; +var _2=dojo.mixin(dojo.i18n.getLocalization("dijit","common",this.lang),dojo.i18n.getLocalization("dijit._editor","LinkDialog",this.lang)); +var _3=(this.dropDown=new dijit.TooltipDialog({title:_2[this.command+"Title"],execute:dojo.hitch(this,"setValue"),onOpen:function(){ +_1._onOpenDialog(); +dijit.TooltipDialog.prototype.onOpen.apply(this,arguments); +},onCancel:function(){ +setTimeout(dojo.hitch(_1,"_onCloseDialog"),0); +}})); +_2.urlRegExp=this.urlRegExp; +_2.id=dijit.getUniqueId(this.editor.id); +this._uniqueId=_2.id; +this._setContent(_3.title+"<div style='border-bottom: 1px black solid;padding-bottom:2pt;margin-bottom:4pt'></div>"+dojo.string.substitute(this.linkDialogTemplate,_2)); +_3.startup(); +this._urlInput=dijit.byId(this._uniqueId+"_urlInput"); +this._textInput=dijit.byId(this._uniqueId+"_textInput"); +this._setButton=dijit.byId(this._uniqueId+"_setButton"); +this.connect(dijit.byId(this._uniqueId+"_cancelButton"),"onClick",function(){ +this.dropDown.onCancel(); +}); +if(this._urlInput){ +this.connect(this._urlInput,"onChange","_checkAndFixInput"); +} +if(this._textInput){ +this.connect(this._textInput,"onChange","_checkAndFixInput"); +} +this._urlRegExp=new RegExp("^"+this.urlRegExp+"$","i"); +this._emailRegExp=new RegExp("^"+this.emailRegExp+"$","i"); +this._urlInput.isValid=dojo.hitch(this,function(){ +var _4=this._urlInput.get("value"); +return this._urlRegExp.test(_4)||this._emailRegExp.test(_4); +}); +this._connectTagEvents(); +this.inherited(arguments); +},_checkAndFixInput:function(){ +var _5=this; +var _6=this._urlInput.get("value"); +var _7=function(_8){ +var _9=false; +var _a=false; +if(_8&&_8.length>1){ +_8=dojo.trim(_8); +if(_8.indexOf("mailto:")!==0){ +if(_8.indexOf("/")>0){ +if(_8.indexOf("://")===-1){ +if(_8.charAt(0)!=="/"&&_8.indexOf("./")!==0){ +if(_5._hostRxp.test(_8)){ +_9=true; +} +} +} +}else{ +if(_5._userAtRxp.test(_8)){ +_a=true; +} +} +} +} +if(_9){ +_5._urlInput.set("value","http://"+_8); +} +if(_a){ +_5._urlInput.set("value","mailto:"+_8); +} +_5._setButton.set("disabled",!_5._isValid()); +}; +if(this._delayedCheck){ +clearTimeout(this._delayedCheck); +this._delayedCheck=null; +} +this._delayedCheck=setTimeout(function(){ +_7(_6); +},250); +},_connectTagEvents:function(){ +this.editor.onLoadDeferred.addCallback(dojo.hitch(this,function(){ +this.connect(this.editor.editNode,"ondblclick",this._onDblClick); +})); +},_isValid:function(){ +return this._urlInput.isValid()&&this._textInput.isValid(); +},_setContent:function(_b){ +this.dropDown.set("content",_b); +},_checkValues:function(_c){ +if(_c&&_c.urlInput){ +_c.urlInput=_c.urlInput.replace(/"/g,"""); +} +return _c; +},setValue:function(_d){ +this._onCloseDialog(); +if(dojo.isIE){ +var _e=dijit.range.getSelection(this.editor.window); +var _f=_e.getRangeAt(0); +var a=_f.endContainer; +if(a.nodeType===3){ +a=a.parentNode; +} +if(a&&(a.nodeName&&a.nodeName.toLowerCase()!==this.tag)){ +a=dojo.withGlobal(this.editor.window,"getSelectedElement",dijit._editor.selection,[this.tag]); +} +if(a&&(a.nodeName&&a.nodeName.toLowerCase()===this.tag)){ +if(this.editor.queryCommandEnabled("unlink")){ +dojo.withGlobal(this.editor.window,"selectElementChildren",dijit._editor.selection,[a]); +this.editor.execCommand("unlink"); +} +} +} +_d=this._checkValues(_d); +this.editor.execCommand("inserthtml",dojo.string.substitute(this.htmlTemplate,_d)); +},_onCloseDialog:function(){ +this.editor.focus(); +},_getCurrentValues:function(a){ +var url,_10,_11; +if(a&&a.tagName.toLowerCase()===this.tag){ +url=a.getAttribute("_djrealurl")||a.getAttribute("href"); +_11=a.getAttribute("target")||"_self"; +_10=a.textContent||a.innerText; +dojo.withGlobal(this.editor.window,"selectElement",dijit._editor.selection,[a,true]); +}else{ +_10=dojo.withGlobal(this.editor.window,dijit._editor.selection.getSelectedText); +} +return {urlInput:url||"",textInput:_10||"",targetSelect:_11||""}; +},_onOpenDialog:function(){ +var a; +if(dojo.isIE){ +var sel=dijit.range.getSelection(this.editor.window); +var _12=sel.getRangeAt(0); +a=_12.endContainer; +if(a.nodeType===3){ +a=a.parentNode; +} +if(a&&(a.nodeName&&a.nodeName.toLowerCase()!==this.tag)){ +a=dojo.withGlobal(this.editor.window,"getSelectedElement",dijit._editor.selection,[this.tag]); +} +}else{ +a=dojo.withGlobal(this.editor.window,"getAncestorElement",dijit._editor.selection,[this.tag]); +} +this.dropDown.reset(); +this._setButton.set("disabled",true); +this.dropDown.set("value",this._getCurrentValues(a)); +},_onDblClick:function(e){ +if(e&&e.target){ +var t=e.target; +var tg=t.tagName?t.tagName.toLowerCase():""; +if(tg===this.tag&&dojo.attr(t,"href")){ +dojo.withGlobal(this.editor.window,"selectElement",dijit._editor.selection,[t]); +this.editor.onDisplayChanged(); +setTimeout(dojo.hitch(this,function(){ +this.button.set("disabled",false); +this.button.openDropDown(); +}),10); +} +} +}}); +dojo.declare("dijit._editor.plugins.ImgLinkDialog",[dijit._editor.plugins.LinkDialog],{linkDialogTemplate:["<table><tr><td>","<label for='${id}_urlInput'>${url}</label>","</td><td>","<input dojoType='dijit.form.ValidationTextBox' regExp='${urlRegExp}' "+"required='true' id='${id}_urlInput' name='urlInput' intermediateChanges='true'>","</td></tr><tr><td>","<label for='${id}_textInput'>${text}</label>","</td><td>","<input dojoType='dijit.form.ValidationTextBox' required='false' id='${id}_textInput' "+"name='textInput' intermediateChanges='true'>","</td></tr><tr><td>","</td><td>","</td></tr><tr><td colspan='2'>","<button dojoType='dijit.form.Button' type='submit' id='${id}_setButton'>${set}</button>","<button dojoType='dijit.form.Button' type='button' id='${id}_cancelButton'>${buttonCancel}</button>","</td></tr></table>"].join(""),htmlTemplate:"<img src=\"${urlInput}\" _djrealurl=\"${urlInput}\" alt=\"${textInput}\" />",tag:"img",_getCurrentValues:function(img){ +var url,_13; +if(img&&img.tagName.toLowerCase()===this.tag){ +url=img.getAttribute("_djrealurl")||img.getAttribute("src"); +_13=img.getAttribute("alt"); +dojo.withGlobal(this.editor.window,"selectElement",dijit._editor.selection,[img,true]); +}else{ +_13=dojo.withGlobal(this.editor.window,dijit._editor.selection.getSelectedText); +} +return {urlInput:url||"",textInput:_13||""}; +},_isValid:function(){ +return this._urlInput.isValid(); +},_connectTagEvents:function(){ +this.inherited(arguments); +this.editor.onLoadDeferred.addCallback(dojo.hitch(this,function(){ +this.connect(this.editor.editNode,"onmousedown",this._selectTag); +})); +},_selectTag:function(e){ +if(e&&e.target){ +var t=e.target; +var tg=t.tagName?t.tagName.toLowerCase():""; +if(tg===this.tag){ +dojo.withGlobal(this.editor.window,"selectElement",dijit._editor.selection,[t]); +} +} +},_checkValues:function(_14){ +if(_14&&_14.urlInput){ +_14.urlInput=_14.urlInput.replace(/"/g,"""); +} +if(_14&&_14.textInput){ +_14.textInput=_14.textInput.replace(/"/g,"""); +} +return _14; +},_onDblClick:function(e){ +if(e&&e.target){ +var t=e.target; +var tg=t.tagName?t.tagName.toLowerCase():""; +if(tg===this.tag&&dojo.attr(t,"src")){ +dojo.withGlobal(this.editor.window,"selectElement",dijit._editor.selection,[t]); +this.editor.onDisplayChanged(); +setTimeout(dojo.hitch(this,function(){ +this.button.set("disabled",false); +this.button.openDropDown(); +}),10); +} +} +}}); +dojo.subscribe(dijit._scopeName+".Editor.getPlugin",null,function(o){ +if(o.plugin){ +return; +} +switch(o.args.name){ +case "createLink": +o.plugin=new dijit._editor.plugins.LinkDialog({command:o.args.name}); +break; +case "insertImage": +o.plugin=new dijit._editor.plugins.ImgLinkDialog({command:o.args.name}); +break; +} +}); +} diff --git a/lib/dijit/_editor/plugins/NewPage.js b/lib/dijit/_editor/plugins/NewPage.js new file mode 100644 index 000000000..14c2cfa62 --- /dev/null +++ b/lib/dijit/_editor/plugins/NewPage.js @@ -0,0 +1,36 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._editor.plugins.NewPage"]){ +dojo._hasResource["dijit._editor.plugins.NewPage"]=true; +dojo.provide("dijit._editor.plugins.NewPage"); +dojo.require("dijit._editor._Plugin"); +dojo.require("dijit.form.Button"); +dojo.require("dojo.i18n"); +dojo.requireLocalization("dijit._editor","commands",null,"ROOT,ar,ca,cs,da,de,el,es,fi,fr,he,hu,it,ja,ko,nb,nl,pl,pt,pt-pt,ro,ru,sk,sl,sv,th,tr,zh,zh-tw"); +dojo.declare("dijit._editor.plugins.NewPage",dijit._editor._Plugin,{content:"<br>",_initButton:function(){ +var _1=dojo.i18n.getLocalization("dijit._editor","commands"),_2=this.editor; +this.button=new dijit.form.Button({label:_1["newPage"],dir:_2.dir,lang:_2.lang,showLabel:false,iconClass:this.iconClassPrefix+" "+this.iconClassPrefix+"NewPage",tabIndex:"-1",onClick:dojo.hitch(this,"_newPage")}); +},setEditor:function(_3){ +this.editor=_3; +this._initButton(); +},_newPage:function(){ +this.editor.beginEditing(); +this.editor.set("value",this.content); +this.editor.endEditing(); +this.editor.focus(); +}}); +dojo.subscribe(dijit._scopeName+".Editor.getPlugin",null,function(o){ +if(o.plugin){ +return; +} +var _4=o.args.name.toLowerCase(); +if(_4==="newpage"){ +o.plugin=new dijit._editor.plugins.NewPage({content:("content" in o.args)?o.args.content:"<br>"}); +} +}); +} diff --git a/lib/dijit/_editor/plugins/Print.js b/lib/dijit/_editor/plugins/Print.js new file mode 100644 index 000000000..b2e739aee --- /dev/null +++ b/lib/dijit/_editor/plugins/Print.js @@ -0,0 +1,65 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._editor.plugins.Print"]){ +dojo._hasResource["dijit._editor.plugins.Print"]=true; +dojo.provide("dijit._editor.plugins.Print"); +dojo.require("dijit._editor._Plugin"); +dojo.require("dijit.form.Button"); +dojo.require("dojo.i18n"); +dojo.requireLocalization("dijit._editor","commands",null,"ROOT,ar,ca,cs,da,de,el,es,fi,fr,he,hu,it,ja,ko,nb,nl,pl,pt,pt-pt,ro,ru,sk,sl,sv,th,tr,zh,zh-tw"); +dojo.declare("dijit._editor.plugins.Print",dijit._editor._Plugin,{_initButton:function(){ +var _1=dojo.i18n.getLocalization("dijit._editor","commands"),_2=this.editor; +this.button=new dijit.form.Button({label:_1["print"],dir:_2.dir,lang:_2.lang,showLabel:false,iconClass:this.iconClassPrefix+" "+this.iconClassPrefix+"Print",tabIndex:"-1",onClick:dojo.hitch(this,"_print")}); +},setEditor:function(_3){ +this.editor=_3; +this._initButton(); +this.editor.onLoadDeferred.addCallback(dojo.hitch(this,function(){ +if(!this.editor.iframe.contentWindow["print"]){ +this.button.set("disabled",true); +} +})); +},_print:function(){ +var _4=this.editor.iframe; +if(_4.contentWindow["print"]){ +if(!dojo.isOpera&&!dojo.isChrome){ +dijit.focus(_4); +_4.contentWindow.print(); +}else{ +var _5=this.editor.document; +var _6=this.editor.get("value"); +_6="<html><head><meta http-equiv='Content-Type' "+"content='text/html; charset='UTF-8'></head><body>"+_6+"</body></html>"; +var _7=window.open("javascript: ''","","status=0,menubar=0,location=0,toolbar=0,"+"width=1,height=1,resizable=0,scrollbars=0"); +_7.document.open(); +_7.document.write(_6); +_7.document.close(); +var _8=[]; +var _9=_5.getElementsByTagName("style"); +if(_9){ +var i; +for(i=0;i<_9.length;i++){ +var _a=_9[i].innerHTML; +var _b=_7.document.createElement("style"); +_b.appendChild(_7.document.createTextNode(_a)); +_7.document.getElementsByTagName("head")[0].appendChild(_b); +} +} +_7.print(); +_7.close(); +} +} +}}); +dojo.subscribe(dijit._scopeName+".Editor.getPlugin",null,function(o){ +if(o.plugin){ +return; +} +var _c=o.args.name.toLowerCase(); +if(_c==="print"){ +o.plugin=new dijit._editor.plugins.Print({command:"print"}); +} +}); +} diff --git a/lib/dijit/_editor/plugins/TabIndent.js b/lib/dijit/_editor/plugins/TabIndent.js new file mode 100644 index 000000000..74cda400f --- /dev/null +++ b/lib/dijit/_editor/plugins/TabIndent.js @@ -0,0 +1,33 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._editor.plugins.TabIndent"]){ +dojo._hasResource["dijit._editor.plugins.TabIndent"]=true; +dojo.provide("dijit._editor.plugins.TabIndent"); +dojo.experimental("dijit._editor.plugins.TabIndent"); +dojo.require("dijit._editor._Plugin"); +dojo.require("dijit.form.ToggleButton"); +dojo.declare("dijit._editor.plugins.TabIndent",dijit._editor._Plugin,{useDefaultCommand:false,buttonClass:dijit.form.ToggleButton,command:"tabIndent",_initButton:function(){ +this.inherited(arguments); +var e=this.editor; +this.connect(this.button,"onChange",function(_1){ +e.set("isTabIndent",_1); +}); +this.updateState(); +},updateState:function(){ +this.button.set("checked",this.editor.isTabIndent,false); +}}); +dojo.subscribe(dijit._scopeName+".Editor.getPlugin",null,function(o){ +if(o.plugin){ +return; +} +switch(o.args.name){ +case "tabIndent": +o.plugin=new dijit._editor.plugins.TabIndent({command:o.args.name}); +} +}); +} diff --git a/lib/dijit/_editor/plugins/TextColor.js b/lib/dijit/_editor/plugins/TextColor.js new file mode 100644 index 000000000..da7bbc9a6 --- /dev/null +++ b/lib/dijit/_editor/plugins/TextColor.js @@ -0,0 +1,62 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._editor.plugins.TextColor"]){ +dojo._hasResource["dijit._editor.plugins.TextColor"]=true; +dojo.provide("dijit._editor.plugins.TextColor"); +dojo.require("dijit._editor._Plugin"); +dojo.require("dijit.ColorPalette"); +dojo.declare("dijit._editor.plugins.TextColor",dijit._editor._Plugin,{buttonClass:dijit.form.DropDownButton,useDefaultCommand:false,constructor:function(){ +this.dropDown=new dijit.ColorPalette(); +this.connect(this.dropDown,"onChange",function(_1){ +this.editor.execCommand(this.command,_1); +}); +},updateState:function(){ +var _2=this.editor; +var _3=this.command; +if(!_2||!_2.isLoaded||!_3.length){ +return; +} +if(this.button){ +var _4; +try{ +_4=_2.queryCommandValue(_3)||""; +} +catch(e){ +_4=""; +} +} +if(_4==""){ +_4="#000000"; +} +if(_4=="transparent"){ +_4="#ffffff"; +} +if(typeof _4=="string"){ +if(_4.indexOf("rgb")>-1){ +_4=dojo.colorFromRgb(_4).toHex(); +} +}else{ +_4=((_4&255)<<16)|(_4&65280)|((_4&16711680)>>>16); +_4=_4.toString(16); +_4="#000000".slice(0,7-_4.length)+_4; +} +if(_4!==this.dropDown.get("value")){ +this.dropDown.set("value",_4,false); +} +}}); +dojo.subscribe(dijit._scopeName+".Editor.getPlugin",null,function(o){ +if(o.plugin){ +return; +} +switch(o.args.name){ +case "foreColor": +case "hiliteColor": +o.plugin=new dijit._editor.plugins.TextColor({command:o.args.name}); +} +}); +} diff --git a/lib/dijit/_editor/plugins/ToggleDir.js b/lib/dijit/_editor/plugins/ToggleDir.js new file mode 100644 index 000000000..f5ecb7909 --- /dev/null +++ b/lib/dijit/_editor/plugins/ToggleDir.js @@ -0,0 +1,42 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._editor.plugins.ToggleDir"]){ +dojo._hasResource["dijit._editor.plugins.ToggleDir"]=true; +dojo.provide("dijit._editor.plugins.ToggleDir"); +dojo.experimental("dijit._editor.plugins.ToggleDir"); +dojo.require("dijit._editor._Plugin"); +dojo.require("dijit.form.ToggleButton"); +dojo.declare("dijit._editor.plugins.ToggleDir",dijit._editor._Plugin,{useDefaultCommand:false,command:"toggleDir",buttonClass:dijit.form.ToggleButton,_initButton:function(){ +this.inherited(arguments); +this.editor.onLoadDeferred.addCallback(dojo.hitch(this,function(){ +var _1=this.editor.editorObject.contentWindow.document.documentElement; +_1=_1.getElementsByTagName("body")[0]; +var _2=dojo.getComputedStyle(_1).direction=="ltr"; +this.button.set("checked",!_2); +this.connect(this.button,"onChange","_setRtl"); +})); +},updateState:function(){ +},_setRtl:function(_3){ +var _4="ltr"; +if(_3){ +_4="rtl"; +} +var _5=this.editor.editorObject.contentWindow.document.documentElement; +_5=_5.getElementsByTagName("body")[0]; +_5.dir=_4; +}}); +dojo.subscribe(dijit._scopeName+".Editor.getPlugin",null,function(o){ +if(o.plugin){ +return; +} +switch(o.args.name){ +case "toggleDir": +o.plugin=new dijit._editor.plugins.ToggleDir({command:o.args.name}); +} +}); +} diff --git a/lib/dijit/_editor/plugins/ViewSource.js b/lib/dijit/_editor/plugins/ViewSource.js new file mode 100644 index 000000000..41ea2970f --- /dev/null +++ b/lib/dijit/_editor/plugins/ViewSource.js @@ -0,0 +1,317 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._editor.plugins.ViewSource"]){ +dojo._hasResource["dijit._editor.plugins.ViewSource"]=true; +dojo.provide("dijit._editor.plugins.ViewSource"); +dojo.require("dojo.window"); +dojo.require("dojo.i18n"); +dojo.require("dijit._editor._Plugin"); +dojo.require("dijit.form.Button"); +dojo.requireLocalization("dijit._editor","commands",null,"ROOT,ar,ca,cs,da,de,el,es,fi,fr,he,hu,it,ja,ko,nb,nl,pl,pt,pt-pt,ro,ru,sk,sl,sv,th,tr,zh,zh-tw"); +dojo.declare("dijit._editor.plugins.ViewSource",dijit._editor._Plugin,{stripScripts:true,stripComments:true,stripIFrames:true,readOnly:false,_fsPlugin:null,toggle:function(){ +if(dojo.isWebKit){ +this._vsFocused=true; +} +this.button.set("checked",!this.button.get("checked")); +},_initButton:function(){ +var _1=dojo.i18n.getLocalization("dijit._editor","commands"),_2=this.editor; +this.button=new dijit.form.ToggleButton({label:_1["viewSource"],dir:_2.dir,lang:_2.lang,showLabel:false,iconClass:this.iconClassPrefix+" "+this.iconClassPrefix+"ViewSource",tabIndex:"-1",onChange:dojo.hitch(this,"_showSource")}); +if(dojo.isIE==7){ +this._ieFixNode=dojo.create("div",{style:{opacity:"0",zIndex:"-1000",position:"absolute",top:"-1000px"}},dojo.body()); +} +this.button.set("readOnly",false); +},setEditor:function(_3){ +this.editor=_3; +this._initButton(); +this.editor.addKeyHandler(dojo.keys.F12,true,true,dojo.hitch(this,function(e){ +this.button.focus(); +this.toggle(); +dojo.stopEvent(e); +setTimeout(dojo.hitch(this,function(){ +this.editor.focus(); +}),100); +})); +},_showSource:function(_4){ +var ed=this.editor; +var _5=ed._plugins; +var _6; +this._sourceShown=_4; +var _7=this; +try{ +if(!this.sourceArea){ +this._createSourceView(); +} +if(_4){ +ed._sourceQueryCommandEnabled=ed.queryCommandEnabled; +ed.queryCommandEnabled=function(_8){ +var _9=_8.toLowerCase(); +if(_9==="viewsource"){ +return true; +}else{ +return false; +} +}; +this.editor.onDisplayChanged(); +_6=ed.get("value"); +_6=this._filter(_6); +ed.set("value",_6); +this._pluginList=[]; +this._disabledPlugins=dojo.filter(_5,function(p){ +if(p&&p.button&&!p.button.get("disabled")&&!(p instanceof dijit._editor.plugins.ViewSource)){ +p._vs_updateState=p.updateState; +p.updateState=function(){ +return false; +}; +p.button.set("disabled",true); +if(p.command){ +switch(p.command){ +case "bold": +case "italic": +case "underline": +case "strikethrough": +case "superscript": +case "subscript": +p.button.set("checked",false); +break; +default: +break; +} +} +return true; +} +}); +if(this._fsPlugin){ +this._fsPlugin._getAltViewNode=function(){ +return _7.sourceArea; +}; +} +this.sourceArea.value=_6; +var is=dojo.marginBox(ed.iframe.parentNode); +dojo.marginBox(this.sourceArea,{w:is.w,h:is.h}); +dojo.style(ed.iframe,"display","none"); +dojo.style(this.sourceArea,{display:"block"}); +var _a=function(){ +var vp=dojo.window.getBox(); +if("_prevW" in this&&"_prevH" in this){ +if(vp.w===this._prevW&&vp.h===this._prevH){ +return; +}else{ +this._prevW=vp.w; +this._prevH=vp.h; +} +}else{ +this._prevW=vp.w; +this._prevH=vp.h; +} +if(this._resizer){ +clearTimeout(this._resizer); +delete this._resizer; +} +this._resizer=setTimeout(dojo.hitch(this,function(){ +delete this._resizer; +this._resize(); +}),10); +}; +this._resizeHandle=dojo.connect(window,"onresize",this,_a); +setTimeout(dojo.hitch(this,this._resize),100); +this.editor.onNormalizedDisplayChanged(); +}else{ +if(!ed._sourceQueryCommandEnabled){ +return; +} +dojo.disconnect(this._resizeHandle); +delete this._resizeHandle; +ed.queryCommandEnabled=ed._sourceQueryCommandEnabled; +if(!this._readOnly){ +_6=this.sourceArea.value; +_6=this._filter(_6); +ed.beginEditing(); +ed.set("value",_6); +ed.endEditing(); +} +dojo.forEach(this._disabledPlugins,function(p){ +p.button.set("disabled",false); +if(p._vs_updateState){ +p.updateState=p._vs_updateState; +} +}); +this._disabledPlugins=null; +dojo.style(this.sourceArea,"display","none"); +dojo.style(ed.iframe,"display","block"); +delete ed._sourceQueryCommandEnabled; +this.editor.onDisplayChanged(); +} +setTimeout(dojo.hitch(this,function(){ +var _b=ed.domNode.parentNode; +if(_b){ +var _c=dijit.getEnclosingWidget(_b); +if(_c&&_c.resize){ +_c.resize(); +} +} +ed.resize(); +}),300); +} +catch(e){ +} +},_resize:function(){ +var ed=this.editor; +var _d=ed.getHeaderHeight(); +var fH=ed.getFooterHeight(); +var eb=dojo.position(ed.domNode); +var _e=dojo._getPadBorderExtents(ed.iframe.parentNode); +var _f=dojo._getMarginExtents(ed.iframe.parentNode); +var _10=dojo._getPadBorderExtents(ed.domNode); +var _11=dojo._getMarginExtents(ed.domNode); +var edb={w:eb.w-(_10.w+_11.w),h:eb.h-(_d+_10.h+_11.h+fH)}; +if(this._fsPlugin&&this._fsPlugin.isFullscreen){ +var vp=dojo.window.getBox(); +edb.w=(vp.w-_10.w); +edb.h=(vp.h-(_d+_10.h+fH)); +} +if(dojo.isIE){ +edb.h-=2; +} +if(this._ieFixNode){ +var _12=-this._ieFixNode.offsetTop/1000; +edb.w=Math.floor((edb.w+0.9)/_12); +edb.h=Math.floor((edb.h+0.9)/_12); +} +dojo.marginBox(this.sourceArea,{w:edb.w-(_e.w+_f.w),h:edb.h-(_e.h+_f.h)}); +dojo.marginBox(ed.iframe.parentNode,{h:edb.h}); +},_createSourceView:function(){ +var ed=this.editor; +var _13=ed._plugins; +this.sourceArea=dojo.create("textarea"); +if(this.readOnly){ +dojo.attr(this.sourceArea,"readOnly",true); +this._readOnly=true; +} +dojo.style(this.sourceArea,{padding:"0px",margin:"0px",borderWidth:"0px",borderStyle:"none"}); +dojo.place(this.sourceArea,ed.iframe,"before"); +if(dojo.isIE&&ed.iframe.parentNode.lastChild!==ed.iframe){ +dojo.style(ed.iframe.parentNode.lastChild,{width:"0px",height:"0px",padding:"0px",margin:"0px",borderWidth:"0px",borderStyle:"none"}); +} +ed._viewsource_oldFocus=ed.focus; +var _14=this; +ed.focus=function(){ +if(_14._sourceShown){ +_14.setSourceAreaCaret(); +}else{ +try{ +if(this._vsFocused){ +delete this._vsFocused; +dijit.focus(ed.editNode); +}else{ +ed._viewsource_oldFocus(); +} +} +catch(e){ +} +} +}; +var i,p; +for(i=0;i<_13.length;i++){ +p=_13[i]; +if(p&&(p.declaredClass==="dijit._editor.plugins.FullScreen"||p.declaredClass===(dijit._scopeName+"._editor.plugins.FullScreen"))){ +this._fsPlugin=p; +break; +} +} +if(this._fsPlugin){ +this._fsPlugin._viewsource_getAltViewNode=this._fsPlugin._getAltViewNode; +this._fsPlugin._getAltViewNode=function(){ +return _14._sourceShown?_14.sourceArea:this._viewsource_getAltViewNode(); +}; +} +this.connect(this.sourceArea,"onkeydown",dojo.hitch(this,function(e){ +if(this._sourceShown&&e.keyCode==dojo.keys.F12&&e.ctrlKey&&e.shiftKey){ +this.button.focus(); +this.button.set("checked",false); +setTimeout(dojo.hitch(this,function(){ +ed.focus(); +}),100); +dojo.stopEvent(e); +} +})); +},_stripScripts:function(_15){ +if(_15){ +_15=_15.replace(/<\s*script[^>]*>((.|\s)*?)<\\?\/\s*script\s*>/ig,""); +_15=_15.replace(/<\s*script\b([^<>]|\s)*>?/ig,""); +_15=_15.replace(/<[^>]*=(\s|)*[("|')]javascript:[^$1][(\s|.)]*[$1][^>]*>/ig,""); +} +return _15; +},_stripComments:function(_16){ +if(_16){ +_16=_16.replace(/<!--(.|\s){1,}?-->/g,""); +} +return _16; +},_stripIFrames:function(_17){ +if(_17){ +_17=_17.replace(/<\s*iframe[^>]*>((.|\s)*?)<\\?\/\s*iframe\s*>/ig,""); +} +return _17; +},_filter:function(_18){ +if(_18){ +if(this.stripScripts){ +_18=this._stripScripts(_18); +} +if(this.stripComments){ +_18=this._stripComments(_18); +} +if(this.stripIFrames){ +_18=this._stripIFrames(_18); +} +} +return _18; +},setSourceAreaCaret:function(){ +var win=dojo.global; +var _19=this.sourceArea; +dijit.focus(_19); +if(this._sourceShown&&!this.readOnly){ +if(dojo.isIE){ +if(this.sourceArea.createTextRange){ +var _1a=_19.createTextRange(); +_1a.collapse(true); +_1a.moveStart("character",-99999); +_1a.moveStart("character",0); +_1a.moveEnd("character",0); +_1a.select(); +} +}else{ +if(win.getSelection){ +if(_19.setSelectionRange){ +_19.setSelectionRange(0,0); +} +} +} +} +},destroy:function(){ +if(this._ieFixNode){ +dojo.body().removeChild(this._ieFixNode); +} +if(this._resizer){ +clearTimeout(this._resizer); +delete this._resizer; +} +if(this._resizeHandle){ +dojo.disconnect(this._resizeHandle); +delete this._resizeHandle; +} +this.inherited(arguments); +}}); +dojo.subscribe(dijit._scopeName+".Editor.getPlugin",null,function(o){ +if(o.plugin){ +return; +} +var _1b=o.args.name.toLowerCase(); +if(_1b==="viewsource"){ +o.plugin=new dijit._editor.plugins.ViewSource({readOnly:("readOnly" in o.args)?o.args.readOnly:false,stripComments:("stripComments" in o.args)?o.args.stripComments:true,stripScripts:("stripScripts" in o.args)?o.args.stripScripts:true,stripIFrames:("stripIFrames" in o.args)?o.args.stripIFrames:true}); +} +}); +} diff --git a/lib/dijit/_editor/range.js b/lib/dijit/_editor/range.js new file mode 100644 index 000000000..2b1bd81e3 --- /dev/null +++ b/lib/dijit/_editor/range.js @@ -0,0 +1,453 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._editor.range"]){ +dojo._hasResource["dijit._editor.range"]=true; +dojo.provide("dijit._editor.range"); +dijit.range={}; +dijit.range.getIndex=function(_1,_2){ +var _3=[],_4=[]; +var _5=_2; +var _6=_1; +var _7,n; +while(_1!=_5){ +var i=0; +_7=_1.parentNode; +while((n=_7.childNodes[i++])){ +if(n===_1){ +--i; +break; +} +} +_3.unshift(i); +_4.unshift(i-_7.childNodes.length); +_1=_7; +} +if(_3.length>0&&_6.nodeType==3){ +n=_6.previousSibling; +while(n&&n.nodeType==3){ +_3[_3.length-1]--; +n=n.previousSibling; +} +n=_6.nextSibling; +while(n&&n.nodeType==3){ +_4[_4.length-1]++; +n=n.nextSibling; +} +} +return {o:_3,r:_4}; +}; +dijit.range.getNode=function(_8,_9){ +if(!dojo.isArray(_8)||_8.length==0){ +return _9; +} +var _a=_9; +dojo.every(_8,function(i){ +if(i>=0&&i<_a.childNodes.length){ +_a=_a.childNodes[i]; +}else{ +_a=null; +return false; +} +return true; +}); +return _a; +}; +dijit.range.getCommonAncestor=function(n1,n2,_b){ +_b=_b||n1.ownerDocument.body; +var _c=function(n){ +var as=[]; +while(n){ +as.unshift(n); +if(n!==_b){ +n=n.parentNode; +}else{ +break; +} +} +return as; +}; +var _d=_c(n1); +var _e=_c(n2); +var m=Math.min(_d.length,_e.length); +var _f=_d[0]; +for(var i=1;i<m;i++){ +if(_d[i]===_e[i]){ +_f=_d[i]; +}else{ +break; +} +} +return _f; +}; +dijit.range.getAncestor=function(_10,_11,_12){ +_12=_12||_10.ownerDocument.body; +while(_10&&_10!==_12){ +var _13=_10.nodeName.toUpperCase(); +if(_11.test(_13)){ +return _10; +} +_10=_10.parentNode; +} +return null; +}; +dijit.range.BlockTagNames=/^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DT|DE)$/; +dijit.range.getBlockAncestor=function(_14,_15,_16){ +_16=_16||_14.ownerDocument.body; +_15=_15||dijit.range.BlockTagNames; +var _17=null,_18; +while(_14&&_14!==_16){ +var _19=_14.nodeName.toUpperCase(); +if(!_17&&_15.test(_19)){ +_17=_14; +} +if(!_18&&(/^(?:BODY|TD|TH|CAPTION)$/).test(_19)){ +_18=_14; +} +_14=_14.parentNode; +} +return {blockNode:_17,blockContainer:_18||_14.ownerDocument.body}; +}; +dijit.range.atBeginningOfContainer=function(_1a,_1b,_1c){ +var _1d=false; +var _1e=(_1c==0); +if(!_1e&&_1b.nodeType==3){ +if(/^[\s\xA0]+$/.test(_1b.nodeValue.substr(0,_1c))){ +_1e=true; +} +} +if(_1e){ +var _1f=_1b; +_1d=true; +while(_1f&&_1f!==_1a){ +if(_1f.previousSibling){ +_1d=false; +break; +} +_1f=_1f.parentNode; +} +} +return _1d; +}; +dijit.range.atEndOfContainer=function(_20,_21,_22){ +var _23=false; +var _24=(_22==(_21.length||_21.childNodes.length)); +if(!_24&&_21.nodeType==3){ +if(/^[\s\xA0]+$/.test(_21.nodeValue.substr(_22))){ +_24=true; +} +} +if(_24){ +var _25=_21; +_23=true; +while(_25&&_25!==_20){ +if(_25.nextSibling){ +_23=false; +break; +} +_25=_25.parentNode; +} +} +return _23; +}; +dijit.range.adjacentNoneTextNode=function(_26,_27){ +var _28=_26; +var len=(0-_26.length)||0; +var _29=_27?"nextSibling":"previousSibling"; +while(_28){ +if(_28.nodeType!=3){ +break; +} +len+=_28.length; +_28=_28[_29]; +} +return [_28,len]; +}; +dijit.range._w3c=Boolean(window["getSelection"]); +dijit.range.create=function(win){ +if(dijit.range._w3c){ +return (win||dojo.global).document.createRange(); +}else{ +return new dijit.range.W3CRange; +} +}; +dijit.range.getSelection=function(win,_2a){ +if(dijit.range._w3c){ +return win.getSelection(); +}else{ +var s=new dijit.range.ie.selection(win); +if(!_2a){ +s._getCurrentSelection(); +} +return s; +} +}; +if(!dijit.range._w3c){ +dijit.range.ie={cachedSelection:{},selection:function(win){ +this._ranges=[]; +this.addRange=function(r,_2b){ +this._ranges.push(r); +if(!_2b){ +r._select(); +} +this.rangeCount=this._ranges.length; +}; +this.removeAllRanges=function(){ +this._ranges=[]; +this.rangeCount=0; +}; +var _2c=function(){ +var r=win.document.selection.createRange(); +var _2d=win.document.selection.type.toUpperCase(); +if(_2d=="CONTROL"){ +return new dijit.range.W3CRange(dijit.range.ie.decomposeControlRange(r)); +}else{ +return new dijit.range.W3CRange(dijit.range.ie.decomposeTextRange(r)); +} +}; +this.getRangeAt=function(i){ +return this._ranges[i]; +}; +this._getCurrentSelection=function(){ +this.removeAllRanges(); +var r=_2c(); +if(r){ +this.addRange(r,true); +} +}; +},decomposeControlRange:function(_2e){ +var _2f=_2e.item(0),_30=_2e.item(_2e.length-1); +var _31=_2f.parentNode,_32=_30.parentNode; +var _33=dijit.range.getIndex(_2f,_31).o; +var _34=dijit.range.getIndex(_30,_32).o+1; +return [_31,_33,_32,_34]; +},getEndPoint:function(_35,end){ +var _36=_35.duplicate(); +_36.collapse(!end); +var _37="EndTo"+(end?"End":"Start"); +var _38=_36.parentElement(); +var _39,_3a,_3b; +if(_38.childNodes.length>0){ +dojo.every(_38.childNodes,function(_3c,i){ +var _3d; +if(_3c.nodeType!=3){ +_36.moveToElementText(_3c); +if(_36.compareEndPoints(_37,_35)>0){ +if(_3b&&_3b.nodeType==3){ +_39=_3b; +_3d=true; +}else{ +_39=_38; +_3a=i; +return false; +} +}else{ +if(i==_38.childNodes.length-1){ +_39=_38; +_3a=_38.childNodes.length; +return false; +} +} +}else{ +if(i==_38.childNodes.length-1){ +_39=_3c; +_3d=true; +} +} +if(_3d&&_39){ +var _3e=dijit.range.adjacentNoneTextNode(_39)[0]; +if(_3e){ +_39=_3e.nextSibling; +}else{ +_39=_38.firstChild; +} +var _3f=dijit.range.adjacentNoneTextNode(_39); +_3e=_3f[0]; +var _40=_3f[1]; +if(_3e){ +_36.moveToElementText(_3e); +_36.collapse(false); +}else{ +_36.moveToElementText(_38); +} +_36.setEndPoint(_37,_35); +_3a=_36.text.length-_40; +return false; +} +_3b=_3c; +return true; +}); +}else{ +_39=_38; +_3a=0; +} +if(!end&&_39.nodeType==1&&_3a==_39.childNodes.length){ +var _41=_39.nextSibling; +if(_41&&_41.nodeType==3){ +_39=_41; +_3a=0; +} +} +return [_39,_3a]; +},setEndPoint:function(_42,_43,_44){ +var _45=_42.duplicate(),_46,len; +if(_43.nodeType!=3){ +if(_44>0){ +_46=_43.childNodes[_44-1]; +if(_46){ +if(_46.nodeType==3){ +_43=_46; +_44=_46.length; +}else{ +if(_46.nextSibling&&_46.nextSibling.nodeType==3){ +_43=_46.nextSibling; +_44=0; +}else{ +_45.moveToElementText(_46.nextSibling?_46:_43); +var _47=_46.parentNode; +var _48=_47.insertBefore(_46.ownerDocument.createTextNode(" "),_46.nextSibling); +_45.collapse(false); +_47.removeChild(_48); +} +} +} +}else{ +_45.moveToElementText(_43); +_45.collapse(true); +} +} +if(_43.nodeType==3){ +var _49=dijit.range.adjacentNoneTextNode(_43); +var _4a=_49[0]; +len=_49[1]; +if(_4a){ +_45.moveToElementText(_4a); +_45.collapse(false); +if(_4a.contentEditable!="inherit"){ +len++; +} +}else{ +_45.moveToElementText(_43.parentNode); +_45.collapse(true); +} +_44+=len; +if(_44>0){ +if(_45.move("character",_44)!=_44){ +console.error("Error when moving!"); +} +} +} +return _45; +},decomposeTextRange:function(_4b){ +var _4c=dijit.range.ie.getEndPoint(_4b); +var _4d=_4c[0],_4e=_4c[1]; +var _4f=_4c[0],_50=_4c[1]; +if(_4b.htmlText.length){ +if(_4b.htmlText==_4b.text){ +_50=_4e+_4b.text.length; +}else{ +_4c=dijit.range.ie.getEndPoint(_4b,true); +_4f=_4c[0],_50=_4c[1]; +} +} +return [_4d,_4e,_4f,_50]; +},setRange:function(_51,_52,_53,_54,_55,_56){ +var _57=dijit.range.ie.setEndPoint(_51,_52,_53); +_51.setEndPoint("StartToStart",_57); +if(!_56){ +var end=dijit.range.ie.setEndPoint(_51,_54,_55); +} +_51.setEndPoint("EndToEnd",end||_57); +return _51; +}}; +dojo.declare("dijit.range.W3CRange",null,{constructor:function(){ +if(arguments.length>0){ +this.setStart(arguments[0][0],arguments[0][1]); +this.setEnd(arguments[0][2],arguments[0][3]); +}else{ +this.commonAncestorContainer=null; +this.startContainer=null; +this.startOffset=0; +this.endContainer=null; +this.endOffset=0; +this.collapsed=true; +} +},_updateInternal:function(){ +if(this.startContainer!==this.endContainer){ +this.commonAncestorContainer=dijit.range.getCommonAncestor(this.startContainer,this.endContainer); +}else{ +this.commonAncestorContainer=this.startContainer; +} +this.collapsed=(this.startContainer===this.endContainer)&&(this.startOffset==this.endOffset); +},setStart:function(_58,_59){ +_59=parseInt(_59); +if(this.startContainer===_58&&this.startOffset==_59){ +return; +} +delete this._cachedBookmark; +this.startContainer=_58; +this.startOffset=_59; +if(!this.endContainer){ +this.setEnd(_58,_59); +}else{ +this._updateInternal(); +} +},setEnd:function(_5a,_5b){ +_5b=parseInt(_5b); +if(this.endContainer===_5a&&this.endOffset==_5b){ +return; +} +delete this._cachedBookmark; +this.endContainer=_5a; +this.endOffset=_5b; +if(!this.startContainer){ +this.setStart(_5a,_5b); +}else{ +this._updateInternal(); +} +},setStartAfter:function(_5c,_5d){ +this._setPoint("setStart",_5c,_5d,1); +},setStartBefore:function(_5e,_5f){ +this._setPoint("setStart",_5e,_5f,0); +},setEndAfter:function(_60,_61){ +this._setPoint("setEnd",_60,_61,1); +},setEndBefore:function(_62,_63){ +this._setPoint("setEnd",_62,_63,0); +},_setPoint:function(_64,_65,_66,ext){ +var _67=dijit.range.getIndex(_65,_65.parentNode).o; +this[_64](_65.parentNode,_67.pop()+ext); +},_getIERange:function(){ +var r=(this._body||this.endContainer.ownerDocument.body).createTextRange(); +dijit.range.ie.setRange(r,this.startContainer,this.startOffset,this.endContainer,this.endOffset,this.collapsed); +return r; +},getBookmark:function(_68){ +this._getIERange(); +return this._cachedBookmark; +},_select:function(){ +var r=this._getIERange(); +r.select(); +},deleteContents:function(){ +var r=this._getIERange(); +r.pasteHTML(""); +this.endContainer=this.startContainer; +this.endOffset=this.startOffset; +this.collapsed=true; +},cloneRange:function(){ +var r=new dijit.range.W3CRange([this.startContainer,this.startOffset,this.endContainer,this.endOffset]); +r._body=this._body; +return r; +},detach:function(){ +this._body=null; +this.commonAncestorContainer=null; +this.startContainer=null; +this.startOffset=0; +this.endContainer=null; +this.endOffset=0; +this.collapsed=true; +}}); +} +} diff --git a/lib/dijit/_editor/selection.js b/lib/dijit/_editor/selection.js new file mode 100644 index 000000000..3c99c0610 --- /dev/null +++ b/lib/dijit/_editor/selection.js @@ -0,0 +1,267 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._editor.selection"]){ +dojo._hasResource["dijit._editor.selection"]=true; +dojo.provide("dijit._editor.selection"); +dojo.mixin(dijit._editor.selection,{getType:function(){ +if(dojo.isIE){ +return dojo.doc.selection.type.toLowerCase(); +}else{ +var _1="text"; +var _2; +try{ +_2=dojo.global.getSelection(); +} +catch(e){ +} +if(_2&&_2.rangeCount==1){ +var _3=_2.getRangeAt(0); +if((_3.startContainer==_3.endContainer)&&((_3.endOffset-_3.startOffset)==1)&&(_3.startContainer.nodeType!=3)){ +_1="control"; +} +} +return _1; +} +},getSelectedText:function(){ +if(dojo.isIE){ +if(dijit._editor.selection.getType()=="control"){ +return null; +} +return dojo.doc.selection.createRange().text; +}else{ +var _4=dojo.global.getSelection(); +if(_4){ +return _4.toString(); +} +} +return ""; +},getSelectedHtml:function(){ +if(dojo.isIE){ +if(dijit._editor.selection.getType()=="control"){ +return null; +} +return dojo.doc.selection.createRange().htmlText; +}else{ +var _5=dojo.global.getSelection(); +if(_5&&_5.rangeCount){ +var i; +var _6=""; +for(i=0;i<_5.rangeCount;i++){ +var _7=_5.getRangeAt(i).cloneContents(); +var _8=dojo.doc.createElement("div"); +_8.appendChild(_7); +_6+=_8.innerHTML; +} +return _6; +} +return null; +} +},getSelectedElement:function(){ +if(dijit._editor.selection.getType()=="control"){ +if(dojo.isIE){ +var _9=dojo.doc.selection.createRange(); +if(_9&&_9.item){ +return dojo.doc.selection.createRange().item(0); +} +}else{ +var _a=dojo.global.getSelection(); +return _a.anchorNode.childNodes[_a.anchorOffset]; +} +} +return null; +},getParentElement:function(){ +if(dijit._editor.selection.getType()=="control"){ +var p=this.getSelectedElement(); +if(p){ +return p.parentNode; +} +}else{ +if(dojo.isIE){ +var r=dojo.doc.selection.createRange(); +r.collapse(true); +return r.parentElement(); +}else{ +var _b=dojo.global.getSelection(); +if(_b){ +var _c=_b.anchorNode; +while(_c&&(_c.nodeType!=1)){ +_c=_c.parentNode; +} +return _c; +} +} +} +return null; +},hasAncestorElement:function(_d){ +return this.getAncestorElement.apply(this,arguments)!=null; +},getAncestorElement:function(_e){ +var _f=this.getSelectedElement()||this.getParentElement(); +return this.getParentOfType(_f,arguments); +},isTag:function(_10,_11){ +if(_10&&_10.tagName){ +var _12=_10.tagName.toLowerCase(); +for(var i=0;i<_11.length;i++){ +var _13=String(_11[i]).toLowerCase(); +if(_12==_13){ +return _13; +} +} +} +return ""; +},getParentOfType:function(_14,_15){ +while(_14){ +if(this.isTag(_14,_15).length){ +return _14; +} +_14=_14.parentNode; +} +return null; +},collapse:function(_16){ +if(window.getSelection){ +var _17=dojo.global.getSelection(); +if(_17.removeAllRanges){ +if(_16){ +_17.collapseToStart(); +}else{ +_17.collapseToEnd(); +} +}else{ +_17.collapse(_16); +} +}else{ +if(dojo.isIE){ +var _18=dojo.doc.selection.createRange(); +_18.collapse(_16); +_18.select(); +} +} +},remove:function(){ +var sel=dojo.doc.selection; +if(dojo.isIE){ +if(sel.type.toLowerCase()!="none"){ +sel.clear(); +} +return sel; +}else{ +sel=dojo.global.getSelection(); +sel.deleteFromDocument(); +return sel; +} +},selectElementChildren:function(_19,_1a){ +var win=dojo.global; +var doc=dojo.doc; +var _1b; +_19=dojo.byId(_19); +if(doc.selection&&dojo.isIE&&dojo.body().createTextRange){ +_1b=_19.ownerDocument.body.createTextRange(); +_1b.moveToElementText(_19); +if(!_1a){ +try{ +_1b.select(); +} +catch(e){ +} +} +}else{ +if(win.getSelection){ +var _1c=dojo.global.getSelection(); +if(dojo.isOpera){ +if(_1c.rangeCount){ +_1b=_1c.getRangeAt(0); +}else{ +_1b=doc.createRange(); +} +_1b.setStart(_19,0); +_1b.setEnd(_19,(_19.nodeType==3)?_19.length:_19.childNodes.length); +_1c.addRange(_1b); +}else{ +_1c.selectAllChildren(_19); +} +} +} +},selectElement:function(_1d,_1e){ +var _1f; +var doc=dojo.doc; +var win=dojo.global; +_1d=dojo.byId(_1d); +if(dojo.isIE&&dojo.body().createTextRange){ +try{ +_1f=dojo.body().createControlRange(); +_1f.addElement(_1d); +if(!_1e){ +_1f.select(); +} +} +catch(e){ +this.selectElementChildren(_1d,_1e); +} +}else{ +if(dojo.global.getSelection){ +var _20=win.getSelection(); +_1f=doc.createRange(); +if(_20.removeAllRanges){ +if(dojo.isOpera){ +if(_20.getRangeAt(0)){ +_1f=_20.getRangeAt(0); +} +} +_1f.selectNode(_1d); +_20.removeAllRanges(); +_20.addRange(_1f); +} +} +} +},inSelection:function(_21){ +if(_21){ +var _22; +var doc=dojo.doc; +var _23; +if(dojo.global.getSelection){ +var sel=dojo.global.getSelection(); +if(sel&&sel.rangeCount>0){ +_23=sel.getRangeAt(0); +} +if(_23&&_23.compareBoundaryPoints&&doc.createRange){ +try{ +_22=doc.createRange(); +_22.setStart(_21,0); +if(_23.compareBoundaryPoints(_23.START_TO_END,_22)===1){ +return true; +} +} +catch(e){ +} +} +}else{ +if(doc.selection){ +_23=doc.selection.createRange(); +try{ +_22=_21.ownerDocument.body.createControlRange(); +if(_22){ +_22.addElement(_21); +} +} +catch(e1){ +try{ +_22=_21.ownerDocument.body.createTextRange(); +_22.moveToElementText(_21); +} +catch(e2){ +} +} +if(_23&&_22){ +if(_23.compareEndPoints("EndToStart",_22)===1){ +return true; +} +} +} +} +} +return false; +}}); +} diff --git a/lib/dijit/_tree/dndSource.js b/lib/dijit/_tree/dndSource.js new file mode 100644 index 000000000..41f9f2adc --- /dev/null +++ b/lib/dijit/_tree/dndSource.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit._tree.dndSource"]){ +dojo._hasResource["dijit._tree.dndSource"]=true; +dojo.provide("dijit._tree.dndSource"); +dojo.require("dijit.tree.dndSource"); +dojo.deprecated("dijit._tree.dndSource has been moved to dijit.tree.dndSource, use that instead","","2.0"); +dijit._tree.dndSource=dijit.tree.dndSource; +} diff --git a/lib/dijit/dijit-all.js b/lib/dijit/dijit-all.js new file mode 100644 index 000000000..40393115c --- /dev/null +++ b/lib/dijit/dijit-all.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + +/* + This is an optimized version of Dojo, built for deployment and not for + development. To get sources and documentation, please visit: + + http://dojotoolkit.org +*/ + +if(!dojo._hasResource["dojo.colors"]){dojo._hasResource["dojo.colors"]=true;dojo.provide("dojo.colors");(function(){var _1=function(m1,m2,h){if(h<0){++h;}if(h>1){--h;}var h6=6*h;if(h6<1){return m1+(m2-m1)*h6;}if(2*h<1){return m2;}if(3*h<2){return m1+(m2-m1)*(2/3-h)*6;}return m1;};dojo.colorFromRgb=function(_2,_3){var m=_2.toLowerCase().match(/^(rgba?|hsla?)\(([\s\.\-,%0-9]+)\)/);if(m){var c=m[2].split(/\s*,\s*/),l=c.length,t=m[1],a;if((t=="rgb"&&l==3)||(t=="rgba"&&l==4)){var r=c[0];if(r.charAt(r.length-1)=="%"){a=dojo.map(c,function(x){return parseFloat(x)*2.56;});if(l==4){a[3]=c[3];}return dojo.colorFromArray(a,_3);}return dojo.colorFromArray(c,_3);}if((t=="hsl"&&l==3)||(t=="hsla"&&l==4)){var H=((parseFloat(c[0])%360)+360)%360/360,S=parseFloat(c[1])/100,L=parseFloat(c[2])/100,m2=L<=0.5?L*(S+1):L+S-L*S,m1=2*L-m2;a=[_1(m1,m2,H+1/3)*256,_1(m1,m2,H)*256,_1(m1,m2,H-1/3)*256,1];if(l==4){a[3]=c[3];}return dojo.colorFromArray(a,_3);}}return null;};var _4=function(c,_5,_6){c=Number(c);return isNaN(c)?_6:c<_5?_5:c>_6?_6:c;};dojo.Color.prototype.sanitize=function(){var t=this;t.r=Math.round(_4(t.r,0,255));t.g=Math.round(_4(t.g,0,255));t.b=Math.round(_4(t.b,0,255));t.a=_4(t.a,0,1);return this;};})();dojo.colors.makeGrey=function(g,a){return dojo.colorFromArray([g,g,g,a]);};dojo.mixin(dojo.Color.named,{aliceblue:[240,248,255],antiquewhite:[250,235,215],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],blanchedalmond:[255,235,205],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],oldlace:[253,245,230],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],thistle:[216,191,216],tomato:[255,99,71],transparent:[0,0,0,0],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],whitesmoke:[245,245,245],yellowgreen:[154,205,50]});}if(!dojo._hasResource["dojo.i18n"]){dojo._hasResource["dojo.i18n"]=true;dojo.provide("dojo.i18n");dojo.i18n.getLocalization=function(_7,_8,_9){_9=dojo.i18n.normalizeLocale(_9);var _a=_9.split("-");var _b=[_7,"nls",_8].join(".");var _c=dojo._loadedModules[_b];if(_c){var _d;for(var i=_a.length;i>0;i--){var _e=_a.slice(0,i).join("_");if(_c[_e]){_d=_c[_e];break;}}if(!_d){_d=_c.ROOT;}if(_d){var _f=function(){};_f.prototype=_d;return new _f();}}throw new Error("Bundle not found: "+_8+" in "+_7+" , locale="+_9);};dojo.i18n.normalizeLocale=function(_10){var _11=_10?_10.toLowerCase():dojo.locale;if(_11=="root"){_11="ROOT";}return _11;};dojo.i18n._requireLocalization=function(_12,_13,_14,_15){var _16=dojo.i18n.normalizeLocale(_14);var _17=[_12,"nls",_13].join(".");var _18="";if(_15){var _19=_15.split(",");for(var i=0;i<_19.length;i++){if(_16["indexOf"](_19[i])==0){if(_19[i].length>_18.length){_18=_19[i];}}}if(!_18){_18="ROOT";}}var _1a=_15?_18:_16;var _1b=dojo._loadedModules[_17];var _1c=null;if(_1b){if(dojo.config.localizationComplete&&_1b._built){return;}var _1d=_1a.replace(/-/g,"_");var _1e=_17+"."+_1d;_1c=dojo._loadedModules[_1e];}if(!_1c){_1b=dojo["provide"](_17);var _1f=dojo._getModuleSymbols(_12);var _20=_1f.concat("nls").join("/");var _21;dojo.i18n._searchLocalePath(_1a,_15,function(loc){var _22=loc.replace(/-/g,"_");var _23=_17+"."+_22;var _24=false;if(!dojo._loadedModules[_23]){dojo["provide"](_23);var _25=[_20];if(loc!="ROOT"){_25.push(loc);}_25.push(_13);var _26=_25.join("/")+".js";_24=dojo._loadPath(_26,null,function(_27){var _28=function(){};_28.prototype=_21;_1b[_22]=new _28();for(var j in _27){_1b[_22][j]=_27[j];}});}else{_24=true;}if(_24&&_1b[_22]){_21=_1b[_22];}else{_1b[_22]=_21;}if(_15){return true;}});}if(_15&&_16!=_18){_1b[_16.replace(/-/g,"_")]=_1b[_18.replace(/-/g,"_")];}};(function(){var _29=dojo.config.extraLocale;if(_29){if(!_29 instanceof Array){_29=[_29];}var req=dojo.i18n._requireLocalization;dojo.i18n._requireLocalization=function(m,b,_2a,_2b){req(m,b,_2a,_2b);if(_2a){return;}for(var i=0;i<_29.length;i++){req(m,b,_29[i],_2b);}};}})();dojo.i18n._searchLocalePath=function(_2c,_2d,_2e){_2c=dojo.i18n.normalizeLocale(_2c);var _2f=_2c.split("-");var _30=[];for(var i=_2f.length;i>0;i--){_30.push(_2f.slice(0,i).join("-"));}_30.push(false);if(_2d){_30.reverse();}for(var j=_30.length-1;j>=0;j--){var loc=_30[j]||"ROOT";var _31=_2e(loc);if(_31){break;}}};dojo.i18n._preloadLocalizations=function(_32,_33){function _34(_35){_35=dojo.i18n.normalizeLocale(_35);dojo.i18n._searchLocalePath(_35,true,function(loc){for(var i=0;i<_33.length;i++){if(_33[i]==loc){dojo["require"](_32+"_"+loc);return true;}}return false;});};_34();var _36=dojo.config.extraLocale||[];for(var i=0;i<_36.length;i++){_34(_36[i]);}};}if(!dojo._hasResource["dijit._PaletteMixin"]){dojo._hasResource["dijit._PaletteMixin"]=true;dojo.provide("dijit._PaletteMixin");dojo.declare("dijit._PaletteMixin",[dijit._CssStateMixin],{defaultTimeout:500,timeoutChangeRate:0.9,value:null,_selectedCell:-1,tabIndex:"0",cellClass:"dijitPaletteCell",dyeClass:"",_preparePalette:function(_37,_38){this._cells=[];var url=this._blankGif;var _39=dojo.getObject(this.dyeClass);for(var row=0;row<_37.length;row++){var _3a=dojo.create("tr",{tabIndex:"-1"},this.gridNode);for(var col=0;col<_37[row].length;col++){var _3b=_37[row][col];if(_3b){var _3c=new _39(_3b);var _3d=dojo.create("td",{"class":this.cellClass,tabIndex:"-1",title:_38[_3b]});_3c.fillCell(_3d,url);this.connect(_3d,"ondijitclick","_onCellClick");this._trackMouseState(_3d,this.cellClass);dojo.place(_3d,_3a);_3d.index=this._cells.length;this._cells.push({node:_3d,dye:_3c});}}}this._xDim=_37[0].length;this._yDim=_37.length;var _3e={UP_ARROW:-this._xDim,DOWN_ARROW:this._xDim,RIGHT_ARROW:this.isLeftToRight()?1:-1,LEFT_ARROW:this.isLeftToRight()?-1:1};for(var key in _3e){this._connects.push(dijit.typematic.addKeyListener(this.domNode,{charOrCode:dojo.keys[key],ctrlKey:false,altKey:false,shiftKey:false},this,function(){var _3f=_3e[key];return function(_40){this._navigateByKey(_3f,_40);};}(),this.timeoutChangeRate,this.defaultTimeout));}},postCreate:function(){this.inherited(arguments);this._setCurrent(this._cells[0].node);},focus:function(){dijit.focus(this._currentFocus);},_onCellClick:function(evt){var _41=evt.currentTarget,_42=this._getDye(_41).getValue();this._setCurrent(_41);setTimeout(dojo.hitch(this,function(){dijit.focus(_41);this._setValueAttr(_42,true);}));dojo.removeClass(_41,"dijitPaletteCellHover");dojo.stopEvent(evt);},_setCurrent:function(_43){if("_currentFocus" in this){dojo.attr(this._currentFocus,"tabIndex","-1");}this._currentFocus=_43;if(_43){dojo.attr(_43,"tabIndex",this.tabIndex);}},_setValueAttr:function(_44,_45){this.value=null;if(this._selectedCell>=0){dojo.removeClass(this._cells[this._selectedCell].node,"dijitPaletteCellSelected");}this._selectedCell=-1;if(_44){for(var i=0;i<this._cells.length;i++){if(_44==this._cells[i].dye.getValue()){this._selectedCell=i;this.value=_44;dojo.addClass(this._cells[i].node,"dijitPaletteCellSelected");if(_45||_45===undefined){this.onChange(_44);}break;}}}},onChange:function(_46){},_navigateByKey:function(_47,_48){if(_48==-1){return;}var _49=this._currentFocus.index+_47;if(_49<this._cells.length&&_49>-1){var _4a=this._cells[_49].node;this._setCurrent(_4a);setTimeout(dojo.hitch(dijit,"focus",_4a),0);}},_getDye:function(_4b){return this._cells[_4b.index].dye;}});}if(!dojo._hasResource["dijit.ColorPalette"]){dojo._hasResource["dijit.ColorPalette"]=true;dojo.provide("dijit.ColorPalette");dojo.declare("dijit.ColorPalette",[dijit._Widget,dijit._Templated,dijit._PaletteMixin],{palette:"7x10",_palettes:{"7x10":[["white","seashell","cornsilk","lemonchiffon","lightyellow","palegreen","paleturquoise","lightcyan","lavender","plum"],["lightgray","pink","bisque","moccasin","khaki","lightgreen","lightseagreen","lightskyblue","cornflowerblue","violet"],["silver","lightcoral","sandybrown","orange","palegoldenrod","chartreuse","mediumturquoise","skyblue","mediumslateblue","orchid"],["gray","red","orangered","darkorange","yellow","limegreen","darkseagreen","royalblue","slateblue","mediumorchid"],["dimgray","crimson","chocolate","coral","gold","forestgreen","seagreen","blue","blueviolet","darkorchid"],["darkslategray","firebrick","saddlebrown","sienna","olive","green","darkcyan","mediumblue","darkslateblue","darkmagenta"],["black","darkred","maroon","brown","darkolivegreen","darkgreen","midnightblue","navy","indigo","purple"]],"3x4":[["white","lime","green","blue"],["silver","yellow","fuchsia","navy"],["gray","red","purple","black"]]},_imagePaths:{"7x10":dojo.moduleUrl("dijit.themes","a11y/colors7x10.png"),"3x4":dojo.moduleUrl("dijit.themes","a11y/colors3x4.png"),"7x10-rtl":dojo.moduleUrl("dijit.themes","a11y/colors7x10-rtl.png"),"3x4-rtl":dojo.moduleUrl("dijit.themes","a11y/colors3x4-rtl.png")},templateString:dojo.cache("dijit","templates/ColorPalette.html","<div class=\"dijitInline dijitColorPalette\">\n\t<img class=\"dijitColorPaletteUnder\" dojoAttachPoint=\"imageNode\" waiRole=\"presentation\" alt=\"\"/>\n\t<table class=\"dijitPaletteTable\" cellSpacing=\"0\" cellPadding=\"0\">\n\t\t<tbody dojoAttachPoint=\"gridNode\"></tbody>\n\t</table>\n</div>\n"),baseClass:"dijitColorPalette",dyeClass:"dijit._Color",buildRendering:function(){this.inherited(arguments);this.imageNode.setAttribute("src",this._imagePaths[this.palette+(this.isLeftToRight()?"":"-rtl")].toString());var _4c=dojo.i18n.getLocalization("dojo","colors",this.lang);this._preparePalette(this._palettes[this.palette],_4c);}});dojo.declare("dijit._Color",dojo.Color,{constructor:function(_4d){this._alias=_4d;this.setColor(dojo.Color.named[_4d]);},getValue:function(){return this.toHex();},fillCell:function(_4e,_4f){dojo.create("img",{src:_4f,"class":"dijitPaletteImg",alt:this._alias},_4e);}});}if(!dojo._hasResource["dijit.Declaration"]){dojo._hasResource["dijit.Declaration"]=true;dojo.provide("dijit.Declaration");dojo.declare("dijit.Declaration",dijit._Widget,{_noScript:true,widgetClass:"",defaults:null,mixins:[],buildRendering:function(){var src=this.srcNodeRef.parentNode.removeChild(this.srcNodeRef),_50=dojo.query("> script[type^='dojo/method'][event]",src).orphan(),_51=dojo.query("> script[type^='dojo/method']",src).orphan(),_52=dojo.query("> script[type^='dojo/connect']",src).orphan(),_53=src.nodeName;var _54=this.defaults||{};dojo.forEach(_50,function(s){var evt=s.getAttribute("event"),_55=dojo.parser._functionFromScript(s);_54[evt]=_55;});this.mixins=this.mixins.length?dojo.map(this.mixins,function(_56){return dojo.getObject(_56);}):[dijit._Widget,dijit._Templated];_54.widgetsInTemplate=true;_54._skipNodeCache=true;_54.templateString="<"+_53+" class='"+src.className+"' dojoAttachPoint='"+(src.getAttribute("dojoAttachPoint")||"")+"' dojoAttachEvent='"+(src.getAttribute("dojoAttachEvent")||"")+"' >"+src.innerHTML.replace(/\%7B/g,"{").replace(/\%7D/g,"}")+"</"+_53+">";dojo.query("[dojoType]",src).forEach(function(_57){_57.removeAttribute("dojoType");});var wc=dojo.declare(this.widgetClass,this.mixins,_54);var _58=_52.concat(_51);dojo.forEach(_58,function(s){var evt=s.getAttribute("event")||"postscript",_59=dojo.parser._functionFromScript(s);dojo.connect(wc.prototype,evt,_59);});}});}if(!dojo._hasResource["dojo.dnd.common"]){dojo._hasResource["dojo.dnd.common"]=true;dojo.provide("dojo.dnd.common");dojo.dnd.getCopyKeyState=dojo.isCopyKey;dojo.dnd._uniqueId=0;dojo.dnd.getUniqueId=function(){var id;do{id=dojo._scopeName+"Unique"+(++dojo.dnd._uniqueId);}while(dojo.byId(id));return id;};dojo.dnd._empty={};dojo.dnd.isFormElement=function(e){var t=e.target;if(t.nodeType==3){t=t.parentNode;}return " button textarea input select option ".indexOf(" "+t.tagName.toLowerCase()+" ")>=0;};}if(!dojo._hasResource["dojo.dnd.autoscroll"]){dojo._hasResource["dojo.dnd.autoscroll"]=true;dojo.provide("dojo.dnd.autoscroll");dojo.dnd.getViewport=function(){var d=dojo.doc,dd=d.documentElement,w=window,b=dojo.body();if(dojo.isMozilla){return {w:dd.clientWidth,h:w.innerHeight};}else{if(!dojo.isOpera&&w.innerWidth){return {w:w.innerWidth,h:w.innerHeight};}else{if(!dojo.isOpera&&dd&&dd.clientWidth){return {w:dd.clientWidth,h:dd.clientHeight};}else{if(b.clientWidth){return {w:b.clientWidth,h:b.clientHeight};}}}}return null;};dojo.dnd.V_TRIGGER_AUTOSCROLL=32;dojo.dnd.H_TRIGGER_AUTOSCROLL=32;dojo.dnd.V_AUTOSCROLL_VALUE=16;dojo.dnd.H_AUTOSCROLL_VALUE=16;dojo.dnd.autoScroll=function(e){var v=dojo.dnd.getViewport(),dx=0,dy=0;if(e.clientX<dojo.dnd.H_TRIGGER_AUTOSCROLL){dx=-dojo.dnd.H_AUTOSCROLL_VALUE;}else{if(e.clientX>v.w-dojo.dnd.H_TRIGGER_AUTOSCROLL){dx=dojo.dnd.H_AUTOSCROLL_VALUE;}}if(e.clientY<dojo.dnd.V_TRIGGER_AUTOSCROLL){dy=-dojo.dnd.V_AUTOSCROLL_VALUE;}else{if(e.clientY>v.h-dojo.dnd.V_TRIGGER_AUTOSCROLL){dy=dojo.dnd.V_AUTOSCROLL_VALUE;}}window.scrollBy(dx,dy);};dojo.dnd._validNodes={"div":1,"p":1,"td":1};dojo.dnd._validOverflow={"auto":1,"scroll":1};dojo.dnd.autoScrollNodes=function(e){for(var n=e.target;n;){if(n.nodeType==1&&(n.tagName.toLowerCase() in dojo.dnd._validNodes)){var s=dojo.getComputedStyle(n);if(s.overflow.toLowerCase() in dojo.dnd._validOverflow){var b=dojo._getContentBox(n,s),t=dojo.position(n,true);var w=Math.min(dojo.dnd.H_TRIGGER_AUTOSCROLL,b.w/2),h=Math.min(dojo.dnd.V_TRIGGER_AUTOSCROLL,b.h/2),rx=e.pageX-t.x,ry=e.pageY-t.y,dx=0,dy=0;if(dojo.isWebKit||dojo.isOpera){rx+=dojo.body().scrollLeft,ry+=dojo.body().scrollTop;}if(rx>0&&rx<b.w){if(rx<w){dx=-w;}else{if(rx>b.w-w){dx=w;}}}if(ry>0&&ry<b.h){if(ry<h){dy=-h;}else{if(ry>b.h-h){dy=h;}}}var _5a=n.scrollLeft,_5b=n.scrollTop;n.scrollLeft=n.scrollLeft+dx;n.scrollTop=n.scrollTop+dy;if(_5a!=n.scrollLeft||_5b!=n.scrollTop){return;}}}try{n=n.parentNode;}catch(x){n=null;}}dojo.dnd.autoScroll(e);};}if(!dojo._hasResource["dojo.dnd.Mover"]){dojo._hasResource["dojo.dnd.Mover"]=true;dojo.provide("dojo.dnd.Mover");dojo.declare("dojo.dnd.Mover",null,{constructor:function(_5c,e,_5d){this.node=dojo.byId(_5c);this.marginBox={l:e.pageX,t:e.pageY};this.mouseButton=e.button;var h=this.host=_5d,d=_5c.ownerDocument,_5e=dojo.connect(d,"onmousemove",this,"onFirstMove");this.events=[dojo.connect(d,"onmousemove",this,"onMouseMove"),dojo.connect(d,"onmouseup",this,"onMouseUp"),dojo.connect(d,"ondragstart",dojo.stopEvent),dojo.connect(d.body,"onselectstart",dojo.stopEvent),_5e];if(h&&h.onMoveStart){h.onMoveStart(this);}},onMouseMove:function(e){dojo.dnd.autoScroll(e);var m=this.marginBox;this.host.onMove(this,{l:m.l+e.pageX,t:m.t+e.pageY},e);dojo.stopEvent(e);},onMouseUp:function(e){if(dojo.isWebKit&&dojo.isMac&&this.mouseButton==2?e.button==0:this.mouseButton==e.button){this.destroy();}dojo.stopEvent(e);},onFirstMove:function(e){var s=this.node.style,l,t,h=this.host;switch(s.position){case "relative":case "absolute":l=Math.round(parseFloat(s.left))||0;t=Math.round(parseFloat(s.top))||0;break;default:s.position="absolute";var m=dojo.marginBox(this.node);var b=dojo.doc.body;var bs=dojo.getComputedStyle(b);var bm=dojo._getMarginBox(b,bs);var bc=dojo._getContentBox(b,bs);l=m.l-(bc.l-bm.l);t=m.t-(bc.t-bm.t);break;}this.marginBox.l=l-this.marginBox.l;this.marginBox.t=t-this.marginBox.t;if(h&&h.onFirstMove){h.onFirstMove(this,e);}dojo.disconnect(this.events.pop());},destroy:function(){dojo.forEach(this.events,dojo.disconnect);var h=this.host;if(h&&h.onMoveStop){h.onMoveStop(this);}this.events=this.node=this.host=null;}});}if(!dojo._hasResource["dojo.dnd.Moveable"]){dojo._hasResource["dojo.dnd.Moveable"]=true;dojo.provide("dojo.dnd.Moveable");dojo.declare("dojo.dnd.Moveable",null,{handle:"",delay:0,skip:false,constructor:function(_5f,_60){this.node=dojo.byId(_5f);if(!_60){_60={};}this.handle=_60.handle?dojo.byId(_60.handle):null;if(!this.handle){this.handle=this.node;}this.delay=_60.delay>0?_60.delay:0;this.skip=_60.skip;this.mover=_60.mover?_60.mover:dojo.dnd.Mover;this.events=[dojo.connect(this.handle,"onmousedown",this,"onMouseDown"),dojo.connect(this.handle,"ondragstart",this,"onSelectStart"),dojo.connect(this.handle,"onselectstart",this,"onSelectStart")];},markupFactory:function(_61,_62){return new dojo.dnd.Moveable(_62,_61);},destroy:function(){dojo.forEach(this.events,dojo.disconnect);this.events=this.node=this.handle=null;},onMouseDown:function(e){if(this.skip&&dojo.dnd.isFormElement(e)){return;}if(this.delay){this.events.push(dojo.connect(this.handle,"onmousemove",this,"onMouseMove"),dojo.connect(this.handle,"onmouseup",this,"onMouseUp"));this._lastX=e.pageX;this._lastY=e.pageY;}else{this.onDragDetected(e);}dojo.stopEvent(e);},onMouseMove:function(e){if(Math.abs(e.pageX-this._lastX)>this.delay||Math.abs(e.pageY-this._lastY)>this.delay){this.onMouseUp(e);this.onDragDetected(e);}dojo.stopEvent(e);},onMouseUp:function(e){for(var i=0;i<2;++i){dojo.disconnect(this.events.pop());}dojo.stopEvent(e);},onSelectStart:function(e){if(!this.skip||!dojo.dnd.isFormElement(e)){dojo.stopEvent(e);}},onDragDetected:function(e){new this.mover(this.node,e,this);},onMoveStart:function(_63){dojo.publish("/dnd/move/start",[_63]);dojo.addClass(dojo.body(),"dojoMove");dojo.addClass(this.node,"dojoMoveItem");},onMoveStop:function(_64){dojo.publish("/dnd/move/stop",[_64]);dojo.removeClass(dojo.body(),"dojoMove");dojo.removeClass(this.node,"dojoMoveItem");},onFirstMove:function(_65,e){},onMove:function(_66,_67,e){this.onMoving(_66,_67);var s=_66.node.style;s.left=_67.l+"px";s.top=_67.t+"px";this.onMoved(_66,_67);},onMoving:function(_68,_69){},onMoved:function(_6a,_6b){}});}if(!dojo._hasResource["dojo.dnd.move"]){dojo._hasResource["dojo.dnd.move"]=true;dojo.provide("dojo.dnd.move");dojo.declare("dojo.dnd.move.constrainedMoveable",dojo.dnd.Moveable,{constraints:function(){},within:false,markupFactory:function(_6c,_6d){return new dojo.dnd.move.constrainedMoveable(_6d,_6c);},constructor:function(_6e,_6f){if(!_6f){_6f={};}this.constraints=_6f.constraints;this.within=_6f.within;},onFirstMove:function(_70){var c=this.constraintBox=this.constraints.call(this,_70);c.r=c.l+c.w;c.b=c.t+c.h;if(this.within){var mb=dojo.marginBox(_70.node);c.r-=mb.w;c.b-=mb.h;}},onMove:function(_71,_72){var c=this.constraintBox,s=_71.node.style;s.left=(_72.l<c.l?c.l:c.r<_72.l?c.r:_72.l)+"px";s.top=(_72.t<c.t?c.t:c.b<_72.t?c.b:_72.t)+"px";}});dojo.declare("dojo.dnd.move.boxConstrainedMoveable",dojo.dnd.move.constrainedMoveable,{box:{},markupFactory:function(_73,_74){return new dojo.dnd.move.boxConstrainedMoveable(_74,_73);},constructor:function(_75,_76){var box=_76&&_76.box;this.constraints=function(){return box;};}});dojo.declare("dojo.dnd.move.parentConstrainedMoveable",dojo.dnd.move.constrainedMoveable,{area:"content",markupFactory:function(_77,_78){return new dojo.dnd.move.parentConstrainedMoveable(_78,_77);},constructor:function(_79,_7a){var _7b=_7a&&_7a.area;this.constraints=function(){var n=this.node.parentNode,s=dojo.getComputedStyle(n),mb=dojo._getMarginBox(n,s);if(_7b=="margin"){return mb;}var t=dojo._getMarginExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;if(_7b=="border"){return mb;}t=dojo._getBorderExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;if(_7b=="padding"){return mb;}t=dojo._getPadExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;return mb;};}});dojo.dnd.move.constrainedMover=function(fun,_7c){dojo.deprecated("dojo.dnd.move.constrainedMover, use dojo.dnd.move.constrainedMoveable instead");var _7d=function(_7e,e,_7f){dojo.dnd.Mover.call(this,_7e,e,_7f);};dojo.extend(_7d,dojo.dnd.Mover.prototype);dojo.extend(_7d,{onMouseMove:function(e){dojo.dnd.autoScroll(e);var m=this.marginBox,c=this.constraintBox,l=m.l+e.pageX,t=m.t+e.pageY;l=l<c.l?c.l:c.r<l?c.r:l;t=t<c.t?c.t:c.b<t?c.b:t;this.host.onMove(this,{l:l,t:t});},onFirstMove:function(){dojo.dnd.Mover.prototype.onFirstMove.call(this);var c=this.constraintBox=fun.call(this);c.r=c.l+c.w;c.b=c.t+c.h;if(_7c){var mb=dojo.marginBox(this.node);c.r-=mb.w;c.b-=mb.h;}}});return _7d;};dojo.dnd.move.boxConstrainedMover=function(box,_80){dojo.deprecated("dojo.dnd.move.boxConstrainedMover, use dojo.dnd.move.boxConstrainedMoveable instead");return dojo.dnd.move.constrainedMover(function(){return box;},_80);};dojo.dnd.move.parentConstrainedMover=function(_81,_82){dojo.deprecated("dojo.dnd.move.parentConstrainedMover, use dojo.dnd.move.parentConstrainedMoveable instead");var fun=function(){var n=this.node.parentNode,s=dojo.getComputedStyle(n),mb=dojo._getMarginBox(n,s);if(_81=="margin"){return mb;}var t=dojo._getMarginExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;if(_81=="border"){return mb;}t=dojo._getBorderExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;if(_81=="padding"){return mb;}t=dojo._getPadExtents(n,s);mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;return mb;};return dojo.dnd.move.constrainedMover(fun,_82);};dojo.dnd.constrainedMover=dojo.dnd.move.constrainedMover;dojo.dnd.boxConstrainedMover=dojo.dnd.move.boxConstrainedMover;dojo.dnd.parentConstrainedMover=dojo.dnd.move.parentConstrainedMover;}if(!dojo._hasResource["dojo.dnd.TimedMoveable"]){dojo._hasResource["dojo.dnd.TimedMoveable"]=true;dojo.provide("dojo.dnd.TimedMoveable");(function(){var _83=dojo.dnd.Moveable.prototype.onMove;dojo.declare("dojo.dnd.TimedMoveable",dojo.dnd.Moveable,{timeout:40,constructor:function(_84,_85){if(!_85){_85={};}if(_85.timeout&&typeof _85.timeout=="number"&&_85.timeout>=0){this.timeout=_85.timeout;}},markupFactory:function(_86,_87){return new dojo.dnd.TimedMoveable(_87,_86);},onMoveStop:function(_88){if(_88._timer){clearTimeout(_88._timer);_83.call(this,_88,_88._leftTop);}dojo.dnd.Moveable.prototype.onMoveStop.apply(this,arguments);},onMove:function(_89,_8a){_89._leftTop=_8a;if(!_89._timer){var _8b=this;_89._timer=setTimeout(function(){_89._timer=null;_83.call(_8b,_89,_89._leftTop);},this.timeout);}}});})();}if(!dojo._hasResource["dojo.fx.Toggler"]){dojo._hasResource["dojo.fx.Toggler"]=true;dojo.provide("dojo.fx.Toggler");dojo.declare("dojo.fx.Toggler",null,{node:null,showFunc:dojo.fadeIn,hideFunc:dojo.fadeOut,showDuration:200,hideDuration:200,constructor:function(_8c){var _8d=this;dojo.mixin(_8d,_8c);_8d.node=_8c.node;_8d._showArgs=dojo.mixin({},_8c);_8d._showArgs.node=_8d.node;_8d._showArgs.duration=_8d.showDuration;_8d.showAnim=_8d.showFunc(_8d._showArgs);_8d._hideArgs=dojo.mixin({},_8c);_8d._hideArgs.node=_8d.node;_8d._hideArgs.duration=_8d.hideDuration;_8d.hideAnim=_8d.hideFunc(_8d._hideArgs);dojo.connect(_8d.showAnim,"beforeBegin",dojo.hitch(_8d.hideAnim,"stop",true));dojo.connect(_8d.hideAnim,"beforeBegin",dojo.hitch(_8d.showAnim,"stop",true));},show:function(_8e){return this.showAnim.play(_8e||0);},hide:function(_8f){return this.hideAnim.play(_8f||0);}});}if(!dojo._hasResource["dojo.fx"]){dojo._hasResource["dojo.fx"]=true;dojo.provide("dojo.fx");(function(){var d=dojo,_90={_fire:function(evt,_91){if(this[evt]){this[evt].apply(this,_91||[]);}return this;}};var _92=function(_93){this._index=-1;this._animations=_93||[];this._current=this._onAnimateCtx=this._onEndCtx=null;this.duration=0;d.forEach(this._animations,function(a){this.duration+=a.duration;if(a.delay){this.duration+=a.delay;}},this);};d.extend(_92,{_onAnimate:function(){this._fire("onAnimate",arguments);},_onEnd:function(){d.disconnect(this._onAnimateCtx);d.disconnect(this._onEndCtx);this._onAnimateCtx=this._onEndCtx=null;if(this._index+1==this._animations.length){this._fire("onEnd");}else{this._current=this._animations[++this._index];this._onAnimateCtx=d.connect(this._current,"onAnimate",this,"_onAnimate");this._onEndCtx=d.connect(this._current,"onEnd",this,"_onEnd");this._current.play(0,true);}},play:function(_94,_95){if(!this._current){this._current=this._animations[this._index=0];}if(!_95&&this._current.status()=="playing"){return this;}var _96=d.connect(this._current,"beforeBegin",this,function(){this._fire("beforeBegin");}),_97=d.connect(this._current,"onBegin",this,function(arg){this._fire("onBegin",arguments);}),_98=d.connect(this._current,"onPlay",this,function(arg){this._fire("onPlay",arguments);d.disconnect(_96);d.disconnect(_97);d.disconnect(_98);});if(this._onAnimateCtx){d.disconnect(this._onAnimateCtx);}this._onAnimateCtx=d.connect(this._current,"onAnimate",this,"_onAnimate");if(this._onEndCtx){d.disconnect(this._onEndCtx);}this._onEndCtx=d.connect(this._current,"onEnd",this,"_onEnd");this._current.play.apply(this._current,arguments);return this;},pause:function(){if(this._current){var e=d.connect(this._current,"onPause",this,function(arg){this._fire("onPause",arguments);d.disconnect(e);});this._current.pause();}return this;},gotoPercent:function(_99,_9a){this.pause();var _9b=this.duration*_99;this._current=null;d.some(this._animations,function(a){if(a.duration<=_9b){this._current=a;return true;}_9b-=a.duration;return false;});if(this._current){this._current.gotoPercent(_9b/this._current.duration,_9a);}return this;},stop:function(_9c){if(this._current){if(_9c){for(;this._index+1<this._animations.length;++this._index){this._animations[this._index].stop(true);}this._current=this._animations[this._index];}var e=d.connect(this._current,"onStop",this,function(arg){this._fire("onStop",arguments);d.disconnect(e);});this._current.stop();}return this;},status:function(){return this._current?this._current.status():"stopped";},destroy:function(){if(this._onAnimateCtx){d.disconnect(this._onAnimateCtx);}if(this._onEndCtx){d.disconnect(this._onEndCtx);}}});d.extend(_92,_90);dojo.fx.chain=function(_9d){return new _92(_9d);};var _9e=function(_9f){this._animations=_9f||[];this._connects=[];this._finished=0;this.duration=0;d.forEach(_9f,function(a){var _a0=a.duration;if(a.delay){_a0+=a.delay;}if(this.duration<_a0){this.duration=_a0;}this._connects.push(d.connect(a,"onEnd",this,"_onEnd"));},this);this._pseudoAnimation=new d.Animation({curve:[0,1],duration:this.duration});var _a1=this;d.forEach(["beforeBegin","onBegin","onPlay","onAnimate","onPause","onStop","onEnd"],function(evt){_a1._connects.push(d.connect(_a1._pseudoAnimation,evt,function(){_a1._fire(evt,arguments);}));});};d.extend(_9e,{_doAction:function(_a2,_a3){d.forEach(this._animations,function(a){a[_a2].apply(a,_a3);});return this;},_onEnd:function(){if(++this._finished>this._animations.length){this._fire("onEnd");}},_call:function(_a4,_a5){var t=this._pseudoAnimation;t[_a4].apply(t,_a5);},play:function(_a6,_a7){this._finished=0;this._doAction("play",arguments);this._call("play",arguments);return this;},pause:function(){this._doAction("pause",arguments);this._call("pause",arguments);return this;},gotoPercent:function(_a8,_a9){var ms=this.duration*_a8;d.forEach(this._animations,function(a){a.gotoPercent(a.duration<ms?1:(ms/a.duration),_a9);});this._call("gotoPercent",arguments);return this;},stop:function(_aa){this._doAction("stop",arguments);this._call("stop",arguments);return this;},status:function(){return this._pseudoAnimation.status();},destroy:function(){d.forEach(this._connects,dojo.disconnect);}});d.extend(_9e,_90);dojo.fx.combine=function(_ab){return new _9e(_ab);};dojo.fx.wipeIn=function(_ac){var _ad=_ac.node=d.byId(_ac.node),s=_ad.style,o;var _ae=d.animateProperty(d.mixin({properties:{height:{start:function(){o=s.overflow;s.overflow="hidden";if(s.visibility=="hidden"||s.display=="none"){s.height="1px";s.display="";s.visibility="";return 1;}else{var _af=d.style(_ad,"height");return Math.max(_af,1);}},end:function(){return _ad.scrollHeight;}}}},_ac));d.connect(_ae,"onEnd",function(){s.height="auto";s.overflow=o;});return _ae;};dojo.fx.wipeOut=function(_b0){var _b1=_b0.node=d.byId(_b0.node),s=_b1.style,o;var _b2=d.animateProperty(d.mixin({properties:{height:{end:1}}},_b0));d.connect(_b2,"beforeBegin",function(){o=s.overflow;s.overflow="hidden";s.display="";});d.connect(_b2,"onEnd",function(){s.overflow=o;s.height="auto";s.display="none";});return _b2;};dojo.fx.slideTo=function(_b3){var _b4=_b3.node=d.byId(_b3.node),top=null,_b5=null;var _b6=(function(n){return function(){var cs=d.getComputedStyle(n);var pos=cs.position;top=(pos=="absolute"?n.offsetTop:parseInt(cs.top)||0);_b5=(pos=="absolute"?n.offsetLeft:parseInt(cs.left)||0);if(pos!="absolute"&&pos!="relative"){var ret=d.position(n,true);top=ret.y;_b5=ret.x;n.style.position="absolute";n.style.top=top+"px";n.style.left=_b5+"px";}};})(_b4);_b6();var _b7=d.animateProperty(d.mixin({properties:{top:_b3.top||0,left:_b3.left||0}},_b3));d.connect(_b7,"beforeBegin",_b7,_b6);return _b7;};})();}if(!dojo._hasResource["dijit.form._FormMixin"]){dojo._hasResource["dijit.form._FormMixin"]=true;dojo.provide("dijit.form._FormMixin");dojo.declare("dijit.form._FormMixin",null,{reset:function(){dojo.forEach(this.getDescendants(),function(_b8){if(_b8.reset){_b8.reset();}});},validate:function(){var _b9=false;return dojo.every(dojo.map(this.getDescendants(),function(_ba){_ba._hasBeenBlurred=true;var _bb=_ba.disabled||!_ba.validate||_ba.validate();if(!_bb&&!_b9){dojo.window.scrollIntoView(_ba.containerNode||_ba.domNode);_ba.focus();_b9=true;}return _bb;}),function(_bc){return _bc;});},setValues:function(val){dojo.deprecated(this.declaredClass+"::setValues() is deprecated. Use set('value', val) instead.","","2.0");return this.set("value",val);},_setValueAttr:function(obj){var map={};dojo.forEach(this.getDescendants(),function(_bd){if(!_bd.name){return;}var _be=map[_bd.name]||(map[_bd.name]=[]);_be.push(_bd);});for(var _bf in map){if(!map.hasOwnProperty(_bf)){continue;}var _c0=map[_bf],_c1=dojo.getObject(_bf,false,obj);if(_c1===undefined){continue;}if(!dojo.isArray(_c1)){_c1=[_c1];}if(typeof _c0[0].checked=="boolean"){dojo.forEach(_c0,function(w,i){w.set("value",dojo.indexOf(_c1,w.value)!=-1);});}else{if(_c0[0].multiple){_c0[0].set("value",_c1);}else{dojo.forEach(_c0,function(w,i){w.set("value",_c1[i]);});}}}},getValues:function(){dojo.deprecated(this.declaredClass+"::getValues() is deprecated. Use get('value') instead.","","2.0");return this.get("value");},_getValueAttr:function(){var obj={};dojo.forEach(this.getDescendants(),function(_c2){var _c3=_c2.name;if(!_c3||_c2.disabled){return;}var _c4=_c2.get("value");if(typeof _c2.checked=="boolean"){if(/Radio/.test(_c2.declaredClass)){if(_c4!==false){dojo.setObject(_c3,_c4,obj);}else{_c4=dojo.getObject(_c3,false,obj);if(_c4===undefined){dojo.setObject(_c3,null,obj);}}}else{var ary=dojo.getObject(_c3,false,obj);if(!ary){ary=[];dojo.setObject(_c3,ary,obj);}if(_c4!==false){ary.push(_c4);}}}else{var _c5=dojo.getObject(_c3,false,obj);if(typeof _c5!="undefined"){if(dojo.isArray(_c5)){_c5.push(_c4);}else{dojo.setObject(_c3,[_c5,_c4],obj);}}else{dojo.setObject(_c3,_c4,obj);}}});return obj;},isValid:function(){this._invalidWidgets=dojo.filter(this.getDescendants(),function(_c6){return !_c6.disabled&&_c6.isValid&&!_c6.isValid();});return !this._invalidWidgets.length;},onValidStateChange:function(_c7){},_widgetChange:function(_c8){var _c9=this._lastValidState;if(!_c8||this._lastValidState===undefined){_c9=this.isValid();if(this._lastValidState===undefined){this._lastValidState=_c9;}}else{if(_c8.isValid){this._invalidWidgets=dojo.filter(this._invalidWidgets||[],function(w){return (w!=_c8);},this);if(!_c8.isValid()&&!_c8.get("disabled")){this._invalidWidgets.push(_c8);}_c9=(this._invalidWidgets.length===0);}}if(_c9!==this._lastValidState){this._lastValidState=_c9;this.onValidStateChange(_c9);}},connectChildren:function(){dojo.forEach(this._changeConnections,dojo.hitch(this,"disconnect"));var _ca=this;var _cb=(this._changeConnections=[]);dojo.forEach(dojo.filter(this.getDescendants(),function(_cc){return _cc.validate;}),function(_cd){_cb.push(_ca.connect(_cd,"validate",dojo.hitch(_ca,"_widgetChange",_cd)));_cb.push(_ca.connect(_cd,"_setDisabledAttr",dojo.hitch(_ca,"_widgetChange",_cd)));});this._widgetChange(null);},startup:function(){this.inherited(arguments);this._changeConnections=[];this.connectChildren();}});}if(!dojo._hasResource["dijit._DialogMixin"]){dojo._hasResource["dijit._DialogMixin"]=true;dojo.provide("dijit._DialogMixin");dojo.declare("dijit._DialogMixin",null,{attributeMap:dijit._Widget.prototype.attributeMap,execute:function(_ce){},onCancel:function(){},onExecute:function(){},_onSubmit:function(){this.onExecute();this.execute(this.get("value"));},_getFocusItems:function(_cf){var _d0=dijit._getTabNavigable(dojo.byId(_cf));this._firstFocusItem=_d0.lowest||_d0.first||_cf;this._lastFocusItem=_d0.last||_d0.highest||this._firstFocusItem;if(dojo.isMoz&&this._firstFocusItem.tagName.toLowerCase()=="input"&&dojo.getNodeProp(this._firstFocusItem,"type").toLowerCase()=="file"){dojo.attr(_cf,"tabIndex","0");this._firstFocusItem=_cf;}}});}if(!dojo._hasResource["dijit.DialogUnderlay"]){dojo._hasResource["dijit.DialogUnderlay"]=true;dojo.provide("dijit.DialogUnderlay");dojo.declare("dijit.DialogUnderlay",[dijit._Widget,dijit._Templated],{templateString:"<div class='dijitDialogUnderlayWrapper'><div class='dijitDialogUnderlay' dojoAttachPoint='node'></div></div>",dialogId:"","class":"",attributeMap:{id:"domNode"},_setDialogIdAttr:function(id){dojo.attr(this.node,"id",id+"_underlay");},_setClassAttr:function(_d1){this.node.className="dijitDialogUnderlay "+_d1;},postCreate:function(){dojo.body().appendChild(this.domNode);},layout:function(){var is=this.node.style,os=this.domNode.style;os.display="none";var _d2=dojo.window.getBox();os.top=_d2.t+"px";os.left=_d2.l+"px";is.width=_d2.w+"px";is.height=_d2.h+"px";os.display="block";},show:function(){this.domNode.style.display="block";this.layout();this.bgIframe=new dijit.BackgroundIframe(this.domNode);},hide:function(){this.bgIframe.destroy();this.domNode.style.display="none";},uninitialize:function(){if(this.bgIframe){this.bgIframe.destroy();}this.inherited(arguments);}});}if(!dojo._hasResource["dojo.html"]){dojo._hasResource["dojo.html"]=true;dojo.provide("dojo.html");(function(){var _d3=0,d=dojo;dojo.html._secureForInnerHtml=function(_d4){return _d4.replace(/(?:\s*<!DOCTYPE\s[^>]+>|<title[^>]*>[\s\S]*?<\/title>)/ig,"");};dojo.html._emptyNode=dojo.empty;dojo.html._setNodeContent=function(_d5,_d6){d.empty(_d5);if(_d6){if(typeof _d6=="string"){_d6=d._toDom(_d6,_d5.ownerDocument);}if(!_d6.nodeType&&d.isArrayLike(_d6)){for(var _d7=_d6.length,i=0;i<_d6.length;i=_d7==_d6.length?i+1:0){d.place(_d6[i],_d5,"last");}}else{d.place(_d6,_d5,"last");}}return _d5;};dojo.declare("dojo.html._ContentSetter",null,{node:"",content:"",id:"",cleanContent:false,extractContent:false,parseContent:false,constructor:function(_d8,_d9){dojo.mixin(this,_d8||{});_d9=this.node=dojo.byId(this.node||_d9);if(!this.id){this.id=["Setter",(_d9)?_d9.id||_d9.tagName:"",_d3++].join("_");}},set:function(_da,_db){if(undefined!==_da){this.content=_da;}if(_db){this._mixin(_db);}this.onBegin();this.setContent();this.onEnd();return this.node;},setContent:function(){var _dc=this.node;if(!_dc){throw new Error(this.declaredClass+": setContent given no node");}try{_dc=dojo.html._setNodeContent(_dc,this.content);}catch(e){var _dd=this.onContentError(e);try{_dc.innerHTML=_dd;}catch(e){console.error("Fatal "+this.declaredClass+".setContent could not change content due to "+e.message,e);}}this.node=_dc;},empty:function(){if(this.parseResults&&this.parseResults.length){dojo.forEach(this.parseResults,function(w){if(w.destroy){w.destroy();}});delete this.parseResults;}dojo.html._emptyNode(this.node);},onBegin:function(){var _de=this.content;if(dojo.isString(_de)){if(this.cleanContent){_de=dojo.html._secureForInnerHtml(_de);}if(this.extractContent){var _df=_de.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);if(_df){_de=_df[1];}}}this.empty();this.content=_de;return this.node;},onEnd:function(){if(this.parseContent){this._parse();}return this.node;},tearDown:function(){delete this.parseResults;delete this.node;delete this.content;},onContentError:function(err){return "Error occured setting content: "+err;},_mixin:function(_e0){var _e1={},key;for(key in _e0){if(key in _e1){continue;}this[key]=_e0[key];}},_parse:function(){var _e2=this.node;try{this.parseResults=dojo.parser.parse({rootNode:_e2,dir:this.dir,lang:this.lang});}catch(e){this._onError("Content",e,"Error parsing in _ContentSetter#"+this.id);}},_onError:function(_e3,err,_e4){var _e5=this["on"+_e3+"Error"].call(this,err);if(_e4){console.error(_e4,err);}else{if(_e5){dojo.html._setNodeContent(this.node,_e5,true);}}}});dojo.html.set=function(_e6,_e7,_e8){if(undefined==_e7){console.warn("dojo.html.set: no cont argument provided, using empty string");_e7="";}if(!_e8){return dojo.html._setNodeContent(_e6,_e7,true);}else{var op=new dojo.html._ContentSetter(dojo.mixin(_e8,{content:_e7,node:_e6}));return op.set();}};})();}if(!dojo._hasResource["dijit.layout.ContentPane"]){dojo._hasResource["dijit.layout.ContentPane"]=true;dojo.provide("dijit.layout.ContentPane");dojo.declare("dijit.layout.ContentPane",dijit._Widget,{href:"",extractContent:false,parseOnLoad:true,preventCache:false,preload:false,refreshOnShow:false,loadingMessage:"<span class='dijitContentPaneLoading'>${loadingState}</span>",errorMessage:"<span class='dijitContentPaneError'>${errorState}</span>",isLoaded:false,baseClass:"dijitContentPane",doLayout:true,ioArgs:{},isContainer:true,isLayoutContainer:true,onLoadDeferred:null,attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{title:[]}),postMixInProperties:function(){this.inherited(arguments);var _e9=dojo.i18n.getLocalization("dijit","loading",this.lang);this.loadingMessage=dojo.string.substitute(this.loadingMessage,_e9);this.errorMessage=dojo.string.substitute(this.errorMessage,_e9);if(!this.href&&this.srcNodeRef&&this.srcNodeRef.innerHTML){this.isLoaded=true;}},buildRendering:function(){this.inherited(arguments);if(!this.containerNode){this.containerNode=this.domNode;}},postCreate:function(){this.domNode.title="";if(!dojo.attr(this.domNode,"role")){dijit.setWaiRole(this.domNode,"group");}dojo.addClass(this.domNode,this.baseClass);},startup:function(){if(this._started){return;}var _ea=dijit._Contained.prototype.getParent.call(this);this._childOfLayoutWidget=_ea&&_ea.isLayoutContainer;this._needLayout=!this._childOfLayoutWidget;if(this.isLoaded){dojo.forEach(this.getChildren(),function(_eb){_eb.startup();});}if(this._isShown()||this.preload){this._onShow();}this.inherited(arguments);},_checkIfSingleChild:function(){var _ec=dojo.query("> *",this.containerNode).filter(function(_ed){return _ed.tagName!=="SCRIPT";}),_ee=_ec.filter(function(_ef){return dojo.hasAttr(_ef,"dojoType")||dojo.hasAttr(_ef,"widgetId");}),_f0=dojo.filter(_ee.map(dijit.byNode),function(_f1){return _f1&&_f1.domNode&&_f1.resize;});if(_ec.length==_ee.length&&_f0.length==1){this._singleChild=_f0[0];}else{delete this._singleChild;}dojo.toggleClass(this.containerNode,this.baseClass+"SingleChild",!!this._singleChild);},setHref:function(_f2){dojo.deprecated("dijit.layout.ContentPane.setHref() is deprecated. Use set('href', ...) instead.","","2.0");return this.set("href",_f2);},_setHrefAttr:function(_f3){this.cancel();this.onLoadDeferred=new dojo.Deferred(dojo.hitch(this,"cancel"));this.href=_f3;if(this._created&&(this.preload||this._isShown())){this._load();}else{this._hrefChanged=true;}return this.onLoadDeferred;},setContent:function(_f4){dojo.deprecated("dijit.layout.ContentPane.setContent() is deprecated. Use set('content', ...) instead.","","2.0");this.set("content",_f4);},_setContentAttr:function(_f5){this.href="";this.cancel();this.onLoadDeferred=new dojo.Deferred(dojo.hitch(this,"cancel"));this._setContent(_f5||"");this._isDownloaded=false;return this.onLoadDeferred;},_getContentAttr:function(){return this.containerNode.innerHTML;},cancel:function(){if(this._xhrDfd&&(this._xhrDfd.fired==-1)){this._xhrDfd.cancel();}delete this._xhrDfd;this.onLoadDeferred=null;},uninitialize:function(){if(this._beingDestroyed){this.cancel();}this.inherited(arguments);},destroyRecursive:function(_f6){if(this._beingDestroyed){return;}this.inherited(arguments);},resize:function(_f7,_f8){if(!this._wasShown){this._onShow();}this._resizeCalled=true;if(_f7){dojo.marginBox(this.domNode,_f7);}var cn=this.containerNode;if(cn===this.domNode){var mb=_f8||{};dojo.mixin(mb,_f7||{});if(!("h" in mb)||!("w" in mb)){mb=dojo.mixin(dojo.marginBox(cn),mb);}this._contentBox=dijit.layout.marginBox2contentBox(cn,mb);}else{this._contentBox=dojo.contentBox(cn);}this._layoutChildren();},_isShown:function(){if(this._childOfLayoutWidget){if(this._resizeCalled&&"open" in this){return this.open;}return this._resizeCalled;}else{if("open" in this){return this.open;}else{var _f9=this.domNode;return (_f9.style.display!="none")&&(_f9.style.visibility!="hidden")&&!dojo.hasClass(_f9,"dijitHidden");}}},_onShow:function(){if(this.href){if(!this._xhrDfd&&(!this.isLoaded||this._hrefChanged||this.refreshOnShow)){this.refresh();}}else{if(!this._childOfLayoutWidget&&this._needLayout){this._layoutChildren();}}this.inherited(arguments);this._wasShown=true;},refresh:function(){this.cancel();this.onLoadDeferred=new dojo.Deferred(dojo.hitch(this,"cancel"));this._load();return this.onLoadDeferred;},_load:function(){this._setContent(this.onDownloadStart(),true);var _fa=this;var _fb={preventCache:(this.preventCache||this.refreshOnShow),url:this.href,handleAs:"text"};if(dojo.isObject(this.ioArgs)){dojo.mixin(_fb,this.ioArgs);}var _fc=(this._xhrDfd=(this.ioMethod||dojo.xhrGet)(_fb));_fc.addCallback(function(_fd){try{_fa._isDownloaded=true;_fa._setContent(_fd,false);_fa.onDownloadEnd();}catch(err){_fa._onError("Content",err);}delete _fa._xhrDfd;return _fd;});_fc.addErrback(function(err){if(!_fc.canceled){_fa._onError("Download",err);}delete _fa._xhrDfd;return err;});delete this._hrefChanged;},_onLoadHandler:function(_fe){this.isLoaded=true;try{this.onLoadDeferred.callback(_fe);this.onLoad(_fe);}catch(e){console.error("Error "+this.widgetId+" running custom onLoad code: "+e.message);}},_onUnloadHandler:function(){this.isLoaded=false;try{this.onUnload();}catch(e){console.error("Error "+this.widgetId+" running custom onUnload code: "+e.message);}},destroyDescendants:function(){if(this.isLoaded){this._onUnloadHandler();}var _ff=this._contentSetter;dojo.forEach(this.getChildren(),function(_100){if(_100.destroyRecursive){_100.destroyRecursive();}});if(_ff){dojo.forEach(_ff.parseResults,function(_101){if(_101.destroyRecursive&&_101.domNode&&_101.domNode.parentNode==dojo.body()){_101.destroyRecursive();}});delete _ff.parseResults;}dojo.html._emptyNode(this.containerNode);delete this._singleChild;},_setContent:function(cont,_102){this.destroyDescendants();var _103=this._contentSetter;if(!(_103&&_103 instanceof dojo.html._ContentSetter)){_103=this._contentSetter=new dojo.html._ContentSetter({node:this.containerNode,_onError:dojo.hitch(this,this._onError),onContentError:dojo.hitch(this,function(e){var _104=this.onContentError(e);try{this.containerNode.innerHTML=_104;}catch(e){console.error("Fatal "+this.id+" could not change content due to "+e.message,e);}})});}var _105=dojo.mixin({cleanContent:this.cleanContent,extractContent:this.extractContent,parseContent:this.parseOnLoad,dir:this.dir,lang:this.lang},this._contentSetterParams||{});dojo.mixin(_103,_105);_103.set((dojo.isObject(cont)&&cont.domNode)?cont.domNode:cont);delete this._contentSetterParams;if(!_102){dojo.forEach(this.getChildren(),function(_106){if(!this.parseOnLoad||_106.getParent){_106.startup();}},this);this._scheduleLayout();this._onLoadHandler(cont);}},_onError:function(type,err,_107){this.onLoadDeferred.errback(err);var _108=this["on"+type+"Error"].call(this,err);if(_107){console.error(_107,err);}else{if(_108){this._setContent(_108,true);}}},_scheduleLayout:function(){if(this._isShown()){this._layoutChildren();}else{this._needLayout=true;}},_layoutChildren:function(){if(this.doLayout){this._checkIfSingleChild();}if(this._singleChild&&this._singleChild.resize){var cb=this._contentBox||dojo.contentBox(this.containerNode);this._singleChild.resize({w:cb.w,h:cb.h});}else{dojo.forEach(this.getChildren(),function(_109){if(_109.resize){_109.resize();}});}delete this._needLayout;},onLoad:function(data){},onUnload:function(){},onDownloadStart:function(){return this.loadingMessage;},onContentError:function(_10a){},onDownloadError:function(_10b){return this.errorMessage;},onDownloadEnd:function(){}});}if(!dojo._hasResource["dijit.TooltipDialog"]){dojo._hasResource["dijit.TooltipDialog"]=true;dojo.provide("dijit.TooltipDialog");dojo.declare("dijit.TooltipDialog",[dijit.layout.ContentPane,dijit._Templated,dijit.form._FormMixin,dijit._DialogMixin],{title:"",doLayout:false,autofocus:true,baseClass:"dijitTooltipDialog",_firstFocusItem:null,_lastFocusItem:null,templateString:dojo.cache("dijit","templates/TooltipDialog.html","<div waiRole=\"presentation\">\n\t<div class=\"dijitTooltipContainer\" waiRole=\"presentation\">\n\t\t<div class =\"dijitTooltipContents dijitTooltipFocusNode\" dojoAttachPoint=\"containerNode\" tabindex=\"-1\" waiRole=\"dialog\"></div>\n\t</div>\n\t<div class=\"dijitTooltipConnector\" waiRole=\"presentation\"></div>\n</div>\n"),postCreate:function(){this.inherited(arguments);this.connect(this.containerNode,"onkeypress","_onKey");this.containerNode.title=this.title;},orient:function(node,_10c,_10d){var c=this._currentOrientClass;if(c){dojo.removeClass(this.domNode,c);}c="dijitTooltipAB"+(_10d.charAt(1)=="L"?"Left":"Right")+" dijitTooltip"+(_10d.charAt(0)=="T"?"Below":"Above");dojo.addClass(this.domNode,c);this._currentOrientClass=c;},onOpen:function(pos){this.orient(this.domNode,pos.aroundCorner,pos.corner);this._onShow();if(this.autofocus){this._getFocusItems(this.containerNode);dijit.focus(this._firstFocusItem);}},onClose:function(){this.onHide();},_onKey:function(evt){var node=evt.target;var dk=dojo.keys;if(evt.charOrCode===dk.TAB){this._getFocusItems(this.containerNode);}var _10e=(this._firstFocusItem==this._lastFocusItem);if(evt.charOrCode==dk.ESCAPE){setTimeout(dojo.hitch(this,"onCancel"),0);dojo.stopEvent(evt);}else{if(node==this._firstFocusItem&&evt.shiftKey&&evt.charOrCode===dk.TAB){if(!_10e){dijit.focus(this._lastFocusItem);}dojo.stopEvent(evt);}else{if(node==this._lastFocusItem&&evt.charOrCode===dk.TAB&&!evt.shiftKey){if(!_10e){dijit.focus(this._firstFocusItem);}dojo.stopEvent(evt);}else{if(evt.charOrCode===dk.TAB){evt.stopPropagation();}}}}}});}if(!dojo._hasResource["dijit.Dialog"]){dojo._hasResource["dijit.Dialog"]=true;dojo.provide("dijit.Dialog");dojo.declare("dijit._DialogBase",[dijit._Templated,dijit.form._FormMixin,dijit._DialogMixin,dijit._CssStateMixin],{templateString:dojo.cache("dijit","templates/Dialog.html","<div class=\"dijitDialog\" tabindex=\"-1\" waiRole=\"dialog\" waiState=\"labelledby-${id}_title\">\n\t<div dojoAttachPoint=\"titleBar\" class=\"dijitDialogTitleBar\">\n\t<span dojoAttachPoint=\"titleNode\" class=\"dijitDialogTitle\" id=\"${id}_title\"></span>\n\t<span dojoAttachPoint=\"closeButtonNode\" class=\"dijitDialogCloseIcon\" dojoAttachEvent=\"onclick: onCancel\" title=\"${buttonCancel}\">\n\t\t<span dojoAttachPoint=\"closeText\" class=\"closeText\" title=\"${buttonCancel}\">x</span>\n\t</span>\n\t</div>\n\t\t<div dojoAttachPoint=\"containerNode\" class=\"dijitDialogPaneContent\"></div>\n</div>\n"),baseClass:"dijitDialog",cssStateNodes:{closeButtonNode:"dijitDialogCloseIcon"},attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{title:[{node:"titleNode",type:"innerHTML"},{node:"titleBar",type:"attribute"}],"aria-describedby":""}),open:false,duration:dijit.defaultDuration,refocus:true,autofocus:true,_firstFocusItem:null,_lastFocusItem:null,doLayout:false,draggable:true,"aria-describedby":"",postMixInProperties:function(){var _10f=dojo.i18n.getLocalization("dijit","common");dojo.mixin(this,_10f);this.inherited(arguments);},postCreate:function(){dojo.style(this.domNode,{display:"none",position:"absolute"});dojo.body().appendChild(this.domNode);this.inherited(arguments);this.connect(this,"onExecute","hide");this.connect(this,"onCancel","hide");this._modalconnects=[];},onLoad:function(){this._position();if(this.autofocus){this._getFocusItems(this.domNode);dijit.focus(this._firstFocusItem);}this.inherited(arguments);},_endDrag:function(e){if(e&&e.node&&e.node===this.domNode){this._relativePosition=dojo.position(e.node);}},_setup:function(){var node=this.domNode;if(this.titleBar&&this.draggable){this._moveable=(dojo.isIE==6)?new dojo.dnd.TimedMoveable(node,{handle:this.titleBar}):new dojo.dnd.Moveable(node,{handle:this.titleBar,timeout:0});dojo.subscribe("/dnd/move/stop",this,"_endDrag");}else{dojo.addClass(node,"dijitDialogFixed");}this.underlayAttrs={dialogId:this.id,"class":dojo.map(this["class"].split(/\s/),function(s){return s+"_underlay";}).join(" ")};this._fadeIn=dojo.fadeIn({node:node,duration:this.duration,beforeBegin:dojo.hitch(this,function(){var _110=dijit._underlay;if(!_110){_110=dijit._underlay=new dijit.DialogUnderlay(this.underlayAttrs);}else{_110.set(this.underlayAttrs);}var ds=dijit._dialogStack,_111=948+ds.length*2;if(ds.length==1){_110.show();}dojo.style(dijit._underlay.domNode,"zIndex",_111);dojo.style(this.domNode,"zIndex",_111+1);}),onEnd:dojo.hitch(this,function(){if(this.autofocus){this._getFocusItems(this.domNode);dijit.focus(this._firstFocusItem);}})});this._fadeOut=dojo.fadeOut({node:node,duration:this.duration,onEnd:dojo.hitch(this,function(){node.style.display="none";var ds=dijit._dialogStack;if(ds.length==0){dijit._underlay.hide();}else{dojo.style(dijit._underlay.domNode,"zIndex",948+ds.length*2);dijit._underlay.set(ds[ds.length-1].underlayAttrs);}if(this.refocus){var _112=this._savedFocus;if(ds.length>0){var pd=ds[ds.length-1];if(!dojo.isDescendant(_112.node,pd.domNode)){pd._getFocusItems(pd.domNode);_112=pd._firstFocusItem;}}dijit.focus(_112);}})});},uninitialize:function(){var _113=false;if(this._fadeIn&&this._fadeIn.status()=="playing"){_113=true;this._fadeIn.stop();}if(this._fadeOut&&this._fadeOut.status()=="playing"){_113=true;this._fadeOut.stop();}if((this.open||_113)&&!dijit._underlay._destroyed){dijit._underlay.hide();}if(this._moveable){this._moveable.destroy();}this.inherited(arguments);},_size:function(){this._checkIfSingleChild();if(this._singleChild){if(this._singleChildOriginalStyle){this._singleChild.domNode.style.cssText=this._singleChildOriginalStyle;}delete this._singleChildOriginalStyle;}else{dojo.style(this.containerNode,{width:"auto",height:"auto"});}var mb=dojo.marginBox(this.domNode);var _114=dojo.window.getBox();if(mb.w>=_114.w||mb.h>=_114.h){var w=Math.min(mb.w,Math.floor(_114.w*0.75)),h=Math.min(mb.h,Math.floor(_114.h*0.75));if(this._singleChild&&this._singleChild.resize){this._singleChildOriginalStyle=this._singleChild.domNode.style.cssText;this._singleChild.resize({w:w,h:h});}else{dojo.style(this.containerNode,{width:w+"px",height:h+"px",overflow:"auto",position:"relative"});}}else{if(this._singleChild&&this._singleChild.resize){this._singleChild.resize();}}},_position:function(){if(!dojo.hasClass(dojo.body(),"dojoMove")){var node=this.domNode,_115=dojo.window.getBox(),p=this._relativePosition,bb=p?null:dojo._getBorderBox(node),l=Math.floor(_115.l+(p?p.x:(_115.w-bb.w)/2)),t=Math.floor(_115.t+(p?p.y:(_115.h-bb.h)/2));dojo.style(node,{left:l+"px",top:t+"px"});}},_onKey:function(evt){var ds=dijit._dialogStack;if(ds[ds.length-1]!=this){return;}if(evt.charOrCode){var dk=dojo.keys;var node=evt.target;if(evt.charOrCode===dk.TAB){this._getFocusItems(this.domNode);}var _116=(this._firstFocusItem==this._lastFocusItem);if(node==this._firstFocusItem&&evt.shiftKey&&evt.charOrCode===dk.TAB){if(!_116){dijit.focus(this._lastFocusItem);}dojo.stopEvent(evt);}else{if(node==this._lastFocusItem&&evt.charOrCode===dk.TAB&&!evt.shiftKey){if(!_116){dijit.focus(this._firstFocusItem);}dojo.stopEvent(evt);}else{while(node){if(node==this.domNode||dojo.hasClass(node,"dijitPopup")){if(evt.charOrCode==dk.ESCAPE){this.onCancel();}else{return;}}node=node.parentNode;}if(evt.charOrCode!==dk.TAB){dojo.stopEvent(evt);}else{if(!dojo.isOpera){try{this._firstFocusItem.focus();}catch(e){}}}}}}},show:function(){if(this.open){return;}if(!this._alreadyInitialized){this._setup();this._alreadyInitialized=true;}if(this._fadeOut.status()=="playing"){this._fadeOut.stop();}this._modalconnects.push(dojo.connect(window,"onscroll",this,"layout"));this._modalconnects.push(dojo.connect(window,"onresize",this,function(){var _117=dojo.window.getBox();if(!this._oldViewport||_117.h!=this._oldViewport.h||_117.w!=this._oldViewport.w){this.layout();this._oldViewport=_117;}}));this._modalconnects.push(dojo.connect(dojo.doc.documentElement,"onkeypress",this,"_onKey"));dojo.style(this.domNode,{opacity:0,display:""});this.open=true;this._onShow();this._size();this._position();dijit._dialogStack.push(this);this._fadeIn.play();this._savedFocus=dijit.getFocus(this);},hide:function(){var ds=dijit._dialogStack;if(!this._alreadyInitialized||this!=ds[ds.length-1]){return;}if(this._fadeIn.status()=="playing"){this._fadeIn.stop();}ds.pop();this._fadeOut.play();if(this._scrollConnected){this._scrollConnected=false;}dojo.forEach(this._modalconnects,dojo.disconnect);this._modalconnects=[];if(this._relativePosition){delete this._relativePosition;}this.open=false;this.onHide();},layout:function(){if(this.domNode.style.display!="none"){if(dijit._underlay){dijit._underlay.layout();}this._position();}},destroy:function(){dojo.forEach(this._modalconnects,dojo.disconnect);if(this.refocus&&this.open){setTimeout(dojo.hitch(dijit,"focus",this._savedFocus),25);}this.inherited(arguments);}});dojo.declare("dijit.Dialog",[dijit.layout.ContentPane,dijit._DialogBase],{});dijit._dialogStack=[];}if(!dojo._hasResource["dijit._editor.selection"]){dojo._hasResource["dijit._editor.selection"]=true;dojo.provide("dijit._editor.selection");dojo.mixin(dijit._editor.selection,{getType:function(){if(dojo.isIE){return dojo.doc.selection.type.toLowerCase();}else{var _118="text";var oSel;try{oSel=dojo.global.getSelection();}catch(e){}if(oSel&&oSel.rangeCount==1){var _119=oSel.getRangeAt(0);if((_119.startContainer==_119.endContainer)&&((_119.endOffset-_119.startOffset)==1)&&(_119.startContainer.nodeType!=3)){_118="control";}}return _118;}},getSelectedText:function(){if(dojo.isIE){if(dijit._editor.selection.getType()=="control"){return null;}return dojo.doc.selection.createRange().text;}else{var _11a=dojo.global.getSelection();if(_11a){return _11a.toString();}}return "";},getSelectedHtml:function(){if(dojo.isIE){if(dijit._editor.selection.getType()=="control"){return null;}return dojo.doc.selection.createRange().htmlText;}else{var _11b=dojo.global.getSelection();if(_11b&&_11b.rangeCount){var i;var html="";for(i=0;i<_11b.rangeCount;i++){var frag=_11b.getRangeAt(i).cloneContents();var div=dojo.doc.createElement("div");div.appendChild(frag);html+=div.innerHTML;}return html;}return null;}},getSelectedElement:function(){if(dijit._editor.selection.getType()=="control"){if(dojo.isIE){var _11c=dojo.doc.selection.createRange();if(_11c&&_11c.item){return dojo.doc.selection.createRange().item(0);}}else{var _11d=dojo.global.getSelection();return _11d.anchorNode.childNodes[_11d.anchorOffset];}}return null;},getParentElement:function(){if(dijit._editor.selection.getType()=="control"){var p=this.getSelectedElement();if(p){return p.parentNode;}}else{if(dojo.isIE){var r=dojo.doc.selection.createRange();r.collapse(true);return r.parentElement();}else{var _11e=dojo.global.getSelection();if(_11e){var node=_11e.anchorNode;while(node&&(node.nodeType!=1)){node=node.parentNode;}return node;}}}return null;},hasAncestorElement:function(_11f){return this.getAncestorElement.apply(this,arguments)!=null;},getAncestorElement:function(_120){var node=this.getSelectedElement()||this.getParentElement();return this.getParentOfType(node,arguments);},isTag:function(node,tags){if(node&&node.tagName){var _121=node.tagName.toLowerCase();for(var i=0;i<tags.length;i++){var _122=String(tags[i]).toLowerCase();if(_121==_122){return _122;}}}return "";},getParentOfType:function(node,tags){while(node){if(this.isTag(node,tags).length){return node;}node=node.parentNode;}return null;},collapse:function(_123){if(window.getSelection){var _124=dojo.global.getSelection();if(_124.removeAllRanges){if(_123){_124.collapseToStart();}else{_124.collapseToEnd();}}else{_124.collapse(_123);}}else{if(dojo.isIE){var _125=dojo.doc.selection.createRange();_125.collapse(_123);_125.select();}}},remove:function(){var sel=dojo.doc.selection;if(dojo.isIE){if(sel.type.toLowerCase()!="none"){sel.clear();}return sel;}else{sel=dojo.global.getSelection();sel.deleteFromDocument();return sel;}},selectElementChildren:function(_126,_127){var win=dojo.global;var doc=dojo.doc;var _128;_126=dojo.byId(_126);if(doc.selection&&dojo.isIE&&dojo.body().createTextRange){_128=_126.ownerDocument.body.createTextRange();_128.moveToElementText(_126);if(!_127){try{_128.select();}catch(e){}}}else{if(win.getSelection){var _129=dojo.global.getSelection();if(dojo.isOpera){if(_129.rangeCount){_128=_129.getRangeAt(0);}else{_128=doc.createRange();}_128.setStart(_126,0);_128.setEnd(_126,(_126.nodeType==3)?_126.length:_126.childNodes.length);_129.addRange(_128);}else{_129.selectAllChildren(_126);}}}},selectElement:function(_12a,_12b){var _12c;var doc=dojo.doc;var win=dojo.global;_12a=dojo.byId(_12a);if(dojo.isIE&&dojo.body().createTextRange){try{_12c=dojo.body().createControlRange();_12c.addElement(_12a);if(!_12b){_12c.select();}}catch(e){this.selectElementChildren(_12a,_12b);}}else{if(dojo.global.getSelection){var _12d=win.getSelection();_12c=doc.createRange();if(_12d.removeAllRanges){if(dojo.isOpera){if(_12d.getRangeAt(0)){_12c=_12d.getRangeAt(0);}}_12c.selectNode(_12a);_12d.removeAllRanges();_12d.addRange(_12c);}}}},inSelection:function(node){if(node){var _12e;var doc=dojo.doc;var _12f;if(dojo.global.getSelection){var sel=dojo.global.getSelection();if(sel&&sel.rangeCount>0){_12f=sel.getRangeAt(0);}if(_12f&&_12f.compareBoundaryPoints&&doc.createRange){try{_12e=doc.createRange();_12e.setStart(node,0);if(_12f.compareBoundaryPoints(_12f.START_TO_END,_12e)===1){return true;}}catch(e){}}}else{if(doc.selection){_12f=doc.selection.createRange();try{_12e=node.ownerDocument.body.createControlRange();if(_12e){_12e.addElement(node);}}catch(e1){try{_12e=node.ownerDocument.body.createTextRange();_12e.moveToElementText(node);}catch(e2){}}if(_12f&&_12e){if(_12f.compareEndPoints("EndToStart",_12e)===1){return true;}}}}}return false;}});}if(!dojo._hasResource["dijit._editor.range"]){dojo._hasResource["dijit._editor.range"]=true;dojo.provide("dijit._editor.range");dijit.range={};dijit.range.getIndex=function(node,_130){var ret=[],retR=[];var stop=_130;var _131=node;var _132,n;while(node!=stop){var i=0;_132=node.parentNode;while((n=_132.childNodes[i++])){if(n===node){--i;break;}}ret.unshift(i);retR.unshift(i-_132.childNodes.length);node=_132;}if(ret.length>0&&_131.nodeType==3){n=_131.previousSibling;while(n&&n.nodeType==3){ret[ret.length-1]--;n=n.previousSibling;}n=_131.nextSibling;while(n&&n.nodeType==3){retR[retR.length-1]++;n=n.nextSibling;}}return {o:ret,r:retR};};dijit.range.getNode=function(_133,_134){if(!dojo.isArray(_133)||_133.length==0){return _134;}var node=_134;dojo.every(_133,function(i){if(i>=0&&i<node.childNodes.length){node=node.childNodes[i];}else{node=null;return false;}return true;});return node;};dijit.range.getCommonAncestor=function(n1,n2,root){root=root||n1.ownerDocument.body;var _135=function(n){var as=[];while(n){as.unshift(n);if(n!==root){n=n.parentNode;}else{break;}}return as;};var n1as=_135(n1);var n2as=_135(n2);var m=Math.min(n1as.length,n2as.length);var com=n1as[0];for(var i=1;i<m;i++){if(n1as[i]===n2as[i]){com=n1as[i];}else{break;}}return com;};dijit.range.getAncestor=function(node,_136,root){root=root||node.ownerDocument.body;while(node&&node!==root){var name=node.nodeName.toUpperCase();if(_136.test(name)){return node;}node=node.parentNode;}return null;};dijit.range.BlockTagNames=/^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DT|DE)$/;dijit.range.getBlockAncestor=function(node,_137,root){root=root||node.ownerDocument.body;_137=_137||dijit.range.BlockTagNames;var _138=null,_139;while(node&&node!==root){var name=node.nodeName.toUpperCase();if(!_138&&_137.test(name)){_138=node;}if(!_139&&(/^(?:BODY|TD|TH|CAPTION)$/).test(name)){_139=node;}node=node.parentNode;}return {blockNode:_138,blockContainer:_139||node.ownerDocument.body};};dijit.range.atBeginningOfContainer=function(_13a,node,_13b){var _13c=false;var _13d=(_13b==0);if(!_13d&&node.nodeType==3){if(/^[\s\xA0]+$/.test(node.nodeValue.substr(0,_13b))){_13d=true;}}if(_13d){var _13e=node;_13c=true;while(_13e&&_13e!==_13a){if(_13e.previousSibling){_13c=false;break;}_13e=_13e.parentNode;}}return _13c;};dijit.range.atEndOfContainer=function(_13f,node,_140){var _141=false;var _142=(_140==(node.length||node.childNodes.length));if(!_142&&node.nodeType==3){if(/^[\s\xA0]+$/.test(node.nodeValue.substr(_140))){_142=true;}}if(_142){var _143=node;_141=true;while(_143&&_143!==_13f){if(_143.nextSibling){_141=false;break;}_143=_143.parentNode;}}return _141;};dijit.range.adjacentNoneTextNode=function(_144,next){var node=_144;var len=(0-_144.length)||0;var prop=next?"nextSibling":"previousSibling";while(node){if(node.nodeType!=3){break;}len+=node.length;node=node[prop];}return [node,len];};dijit.range._w3c=Boolean(window["getSelection"]);dijit.range.create=function(win){if(dijit.range._w3c){return (win||dojo.global).document.createRange();}else{return new dijit.range.W3CRange;}};dijit.range.getSelection=function(win,_145){if(dijit.range._w3c){return win.getSelection();}else{var s=new dijit.range.ie.selection(win);if(!_145){s._getCurrentSelection();}return s;}};if(!dijit.range._w3c){dijit.range.ie={cachedSelection:{},selection:function(win){this._ranges=[];this.addRange=function(r,_146){this._ranges.push(r);if(!_146){r._select();}this.rangeCount=this._ranges.length;};this.removeAllRanges=function(){this._ranges=[];this.rangeCount=0;};var _147=function(){var r=win.document.selection.createRange();var type=win.document.selection.type.toUpperCase();if(type=="CONTROL"){return new dijit.range.W3CRange(dijit.range.ie.decomposeControlRange(r));}else{return new dijit.range.W3CRange(dijit.range.ie.decomposeTextRange(r));}};this.getRangeAt=function(i){return this._ranges[i];};this._getCurrentSelection=function(){this.removeAllRanges();var r=_147();if(r){this.addRange(r,true);}};},decomposeControlRange:function(_148){var _149=_148.item(0),_14a=_148.item(_148.length-1);var _14b=_149.parentNode,_14c=_14a.parentNode;var _14d=dijit.range.getIndex(_149,_14b).o;var _14e=dijit.range.getIndex(_14a,_14c).o+1;return [_14b,_14d,_14c,_14e];},getEndPoint:function(_14f,end){var _150=_14f.duplicate();_150.collapse(!end);var _151="EndTo"+(end?"End":"Start");var _152=_150.parentElement();var _153,_154,_155;if(_152.childNodes.length>0){dojo.every(_152.childNodes,function(node,i){var _156;if(node.nodeType!=3){_150.moveToElementText(node);if(_150.compareEndPoints(_151,_14f)>0){if(_155&&_155.nodeType==3){_153=_155;_156=true;}else{_153=_152;_154=i;return false;}}else{if(i==_152.childNodes.length-1){_153=_152;_154=_152.childNodes.length;return false;}}}else{if(i==_152.childNodes.length-1){_153=node;_156=true;}}if(_156&&_153){var _157=dijit.range.adjacentNoneTextNode(_153)[0];if(_157){_153=_157.nextSibling;}else{_153=_152.firstChild;}var _158=dijit.range.adjacentNoneTextNode(_153);_157=_158[0];var _159=_158[1];if(_157){_150.moveToElementText(_157);_150.collapse(false);}else{_150.moveToElementText(_152);}_150.setEndPoint(_151,_14f);_154=_150.text.length-_159;return false;}_155=node;return true;});}else{_153=_152;_154=0;}if(!end&&_153.nodeType==1&&_154==_153.childNodes.length){var _15a=_153.nextSibling;if(_15a&&_15a.nodeType==3){_153=_15a;_154=0;}}return [_153,_154];},setEndPoint:function(_15b,_15c,_15d){var _15e=_15b.duplicate(),node,len;if(_15c.nodeType!=3){if(_15d>0){node=_15c.childNodes[_15d-1];if(node){if(node.nodeType==3){_15c=node;_15d=node.length;}else{if(node.nextSibling&&node.nextSibling.nodeType==3){_15c=node.nextSibling;_15d=0;}else{_15e.moveToElementText(node.nextSibling?node:_15c);var _15f=node.parentNode;var _160=_15f.insertBefore(node.ownerDocument.createTextNode(" "),node.nextSibling);_15e.collapse(false);_15f.removeChild(_160);}}}}else{_15e.moveToElementText(_15c);_15e.collapse(true);}}if(_15c.nodeType==3){var _161=dijit.range.adjacentNoneTextNode(_15c);var _162=_161[0];len=_161[1];if(_162){_15e.moveToElementText(_162);_15e.collapse(false);if(_162.contentEditable!="inherit"){len++;}}else{_15e.moveToElementText(_15c.parentNode);_15e.collapse(true);}_15d+=len;if(_15d>0){if(_15e.move("character",_15d)!=_15d){console.error("Error when moving!");}}}return _15e;},decomposeTextRange:function(_163){var _164=dijit.range.ie.getEndPoint(_163);var _165=_164[0],_166=_164[1];var _167=_164[0],_168=_164[1];if(_163.htmlText.length){if(_163.htmlText==_163.text){_168=_166+_163.text.length;}else{_164=dijit.range.ie.getEndPoint(_163,true);_167=_164[0],_168=_164[1];}}return [_165,_166,_167,_168];},setRange:function(_169,_16a,_16b,_16c,_16d,_16e){var _16f=dijit.range.ie.setEndPoint(_169,_16a,_16b);_169.setEndPoint("StartToStart",_16f);if(!_16e){var end=dijit.range.ie.setEndPoint(_169,_16c,_16d);}_169.setEndPoint("EndToEnd",end||_16f);return _169;}};dojo.declare("dijit.range.W3CRange",null,{constructor:function(){if(arguments.length>0){this.setStart(arguments[0][0],arguments[0][1]);this.setEnd(arguments[0][2],arguments[0][3]);}else{this.commonAncestorContainer=null;this.startContainer=null;this.startOffset=0;this.endContainer=null;this.endOffset=0;this.collapsed=true;}},_updateInternal:function(){if(this.startContainer!==this.endContainer){this.commonAncestorContainer=dijit.range.getCommonAncestor(this.startContainer,this.endContainer);}else{this.commonAncestorContainer=this.startContainer;}this.collapsed=(this.startContainer===this.endContainer)&&(this.startOffset==this.endOffset);},setStart:function(node,_170){_170=parseInt(_170);if(this.startContainer===node&&this.startOffset==_170){return;}delete this._cachedBookmark;this.startContainer=node;this.startOffset=_170;if(!this.endContainer){this.setEnd(node,_170);}else{this._updateInternal();}},setEnd:function(node,_171){_171=parseInt(_171);if(this.endContainer===node&&this.endOffset==_171){return;}delete this._cachedBookmark;this.endContainer=node;this.endOffset=_171;if(!this.startContainer){this.setStart(node,_171);}else{this._updateInternal();}},setStartAfter:function(node,_172){this._setPoint("setStart",node,_172,1);},setStartBefore:function(node,_173){this._setPoint("setStart",node,_173,0);},setEndAfter:function(node,_174){this._setPoint("setEnd",node,_174,1);},setEndBefore:function(node,_175){this._setPoint("setEnd",node,_175,0);},_setPoint:function(what,node,_176,ext){var _177=dijit.range.getIndex(node,node.parentNode).o;this[what](node.parentNode,_177.pop()+ext);},_getIERange:function(){var r=(this._body||this.endContainer.ownerDocument.body).createTextRange();dijit.range.ie.setRange(r,this.startContainer,this.startOffset,this.endContainer,this.endOffset,this.collapsed);return r;},getBookmark:function(body){this._getIERange();return this._cachedBookmark;},_select:function(){var r=this._getIERange();r.select();},deleteContents:function(){var r=this._getIERange();r.pasteHTML("");this.endContainer=this.startContainer;this.endOffset=this.startOffset;this.collapsed=true;},cloneRange:function(){var r=new dijit.range.W3CRange([this.startContainer,this.startOffset,this.endContainer,this.endOffset]);r._body=this._body;return r;},detach:function(){this._body=null;this.commonAncestorContainer=null;this.startContainer=null;this.startOffset=0;this.endContainer=null;this.endOffset=0;this.collapsed=true;}});}}if(!dojo._hasResource["dijit._editor.html"]){dojo._hasResource["dijit._editor.html"]=true;dojo.provide("dijit._editor.html");dijit._editor.escapeXml=function(str,_178){str=str.replace(/&/gm,"&").replace(/</gm,"<").replace(/>/gm,">").replace(/"/gm,""");if(!_178){str=str.replace(/'/gm,"'");}return str;};dijit._editor.getNodeHtml=function(node){var _179;switch(node.nodeType){case 1:var _17a=node.nodeName.toLowerCase();if(!_17a||_17a.charAt(0)=="/"){return "";}_179="<"+_17a;var _17b=[];var attr;if(dojo.isIE&&node.outerHTML){var s=node.outerHTML;s=s.substr(0,s.indexOf(">")).replace(/(['"])[^"']*\1/g,"");var reg=/(\b\w+)\s?=/g;var m,key;while((m=reg.exec(s))){key=m[1];if(key.substr(0,3)!="_dj"){if(key=="src"||key=="href"){if(node.getAttribute("_djrealurl")){_17b.push([key,node.getAttribute("_djrealurl")]);continue;}}var val,_17c;switch(key){case "style":val=node.style.cssText.toLowerCase();break;case "class":val=node.className;break;case "width":if(_17a==="img"){_17c=/width=(\S+)/i.exec(s);if(_17c){val=_17c[1];}break;}case "height":if(_17a==="img"){_17c=/height=(\S+)/i.exec(s);if(_17c){val=_17c[1];}break;}default:val=node.getAttribute(key);}if(val!=null){_17b.push([key,val.toString()]);}}}}else{var i=0;while((attr=node.attributes[i++])){var n=attr.name;if(n.substr(0,3)!="_dj"){var v=attr.value;if(n=="src"||n=="href"){if(node.getAttribute("_djrealurl")){v=node.getAttribute("_djrealurl");}}_17b.push([n,v]);}}}_17b.sort(function(a,b){return a[0]<b[0]?-1:(a[0]==b[0]?0:1);});var j=0;while((attr=_17b[j++])){_179+=" "+attr[0]+"=\""+(dojo.isString(attr[1])?dijit._editor.escapeXml(attr[1],true):attr[1])+"\"";}if(_17a==="script"){_179+=">"+node.innerHTML+"</"+_17a+">";}else{if(node.childNodes.length){_179+=">"+dijit._editor.getChildrenHtml(node)+"</"+_17a+">";}else{switch(_17a){case "br":case "hr":case "img":case "input":case "base":case "meta":case "area":case "basefont":_179+=" />";break;default:_179+="></"+_17a+">";}}}break;case 4:case 3:_179=dijit._editor.escapeXml(node.nodeValue,true);break;case 8:_179="<!--"+dijit._editor.escapeXml(node.nodeValue,true)+"-->";break;default:_179="<!-- Element not recognized - Type: "+node.nodeType+" Name: "+node.nodeName+"-->";}return _179;};dijit._editor.getChildrenHtml=function(dom){var out="";if(!dom){return out;}var _17d=dom["childNodes"]||dom;var _17e=!dojo.isIE||_17d!==dom;var node,i=0;while((node=_17d[i++])){if(!_17e||node.parentNode==dom){out+=dijit._editor.getNodeHtml(node);}}return out;};}if(!dojo._hasResource["dijit._editor.RichText"]){dojo._hasResource["dijit._editor.RichText"]=true;dojo.provide("dijit._editor.RichText");if(!dojo.config["useXDomain"]||dojo.config["allowXdRichTextSave"]){if(dojo._postLoad){(function(){var _17f=dojo.doc.createElement("textarea");_17f.id=dijit._scopeName+"._editor.RichText.savedContent";dojo.style(_17f,{display:"none",position:"absolute",top:"-100px",height:"3px",width:"3px"});dojo.body().appendChild(_17f);})();}else{try{dojo.doc.write("<textarea id=\""+dijit._scopeName+"._editor.RichText.savedContent\" "+"style=\"display:none;position:absolute;top:-100px;left:-100px;height:3px;width:3px;overflow:hidden;\"></textarea>");}catch(e){}}}dojo.declare("dijit._editor.RichText",[dijit._Widget,dijit._CssStateMixin],{constructor:function(_180){this.contentPreFilters=[];this.contentPostFilters=[];this.contentDomPreFilters=[];this.contentDomPostFilters=[];this.editingAreaStyleSheets=[];this.events=[].concat(this.events);this._keyHandlers={};this.contentPreFilters.push(dojo.hitch(this,"_preFixUrlAttributes"));if(dojo.isMoz){this.contentPreFilters.push(this._normalizeFontStyle);this.contentPostFilters.push(this._removeMozBogus);}if(dojo.isWebKit){this.contentPreFilters.push(this._removeWebkitBogus);this.contentPostFilters.push(this._removeWebkitBogus);}if(dojo.isIE){this.contentPostFilters.push(this._normalizeFontStyle);}if(_180&&dojo.isString(_180.value)){this.value=_180.value;}this.onLoadDeferred=new dojo.Deferred();},baseClass:"dijitEditor",inheritWidth:false,focusOnLoad:false,name:"",styleSheets:"",_content:"",height:"300px",minHeight:"1em",isClosed:true,isLoaded:false,_SEPARATOR:"@@**%%__RICHTEXTBOUNDRY__%%**@@",onLoadDeferred:null,isTabIndent:false,disableSpellCheck:false,postCreate:function(){if("textarea"==this.domNode.tagName.toLowerCase()){console.warn("RichText should not be used with the TEXTAREA tag. See dijit._editor.RichText docs.");}this.inherited(arguments);dojo.publish(dijit._scopeName+"._editor.RichText::init",[this]);this.open();this.setupDefaultShortcuts();},setupDefaultShortcuts:function(){var exec=dojo.hitch(this,function(cmd,arg){return function(){return !this.execCommand(cmd,arg);};});var _181={b:exec("bold"),i:exec("italic"),u:exec("underline"),a:exec("selectall"),s:function(){this.save(true);},m:function(){this.isTabIndent=!this.isTabIndent;},"1":exec("formatblock","h1"),"2":exec("formatblock","h2"),"3":exec("formatblock","h3"),"4":exec("formatblock","h4"),"\\":exec("insertunorderedlist")};if(!dojo.isIE){_181.Z=exec("redo");}for(var key in _181){this.addKeyHandler(key,true,false,_181[key]);}},events:["onKeyPress","onKeyDown","onKeyUp","onClick"],captureEvents:[],_editorCommandsLocalized:false,_localizeEditorCommands:function(){if(this._editorCommandsLocalized){return;}this._editorCommandsLocalized=true;var _182=["div","p","pre","h1","h2","h3","h4","h5","h6","ol","ul","address"];var _183="",_184,i=0;while((_184=_182[i++])){if(_184.charAt(1)!="l"){_183+="<"+_184+"><span>content</span></"+_184+"><br/>";}else{_183+="<"+_184+"><li>content</li></"+_184+"><br/>";}}var div=dojo.doc.createElement("div");dojo.style(div,{position:"absolute",top:"-2000px"});dojo.doc.body.appendChild(div);div.innerHTML=_183;var node=div.firstChild;while(node){dijit._editor.selection.selectElement(node.firstChild);dojo.withGlobal(this.window,"selectElement",dijit._editor.selection,[node.firstChild]);var _185=node.tagName.toLowerCase();this._local2NativeFormatNames[_185]=document.queryCommandValue("formatblock");this._native2LocalFormatNames[this._local2NativeFormatNames[_185]]=_185;node=node.nextSibling.nextSibling;}dojo.body().removeChild(div);},open:function(_186){if(!this.onLoadDeferred||this.onLoadDeferred.fired>=0){this.onLoadDeferred=new dojo.Deferred();}if(!this.isClosed){this.close();}dojo.publish(dijit._scopeName+"._editor.RichText::open",[this]);this._content="";if(arguments.length==1&&_186.nodeName){this.domNode=_186;}var dn=this.domNode;var html;if(dojo.isString(this.value)){html=this.value;delete this.value;dn.innerHTML="";}else{if(dn.nodeName&&dn.nodeName.toLowerCase()=="textarea"){var ta=(this.textarea=dn);this.name=ta.name;html=ta.value;dn=this.domNode=dojo.doc.createElement("div");dn.setAttribute("widgetId",this.id);ta.removeAttribute("widgetId");dn.cssText=ta.cssText;dn.className+=" "+ta.className;dojo.place(dn,ta,"before");var _187=dojo.hitch(this,function(){dojo.style(ta,{display:"block",position:"absolute",top:"-1000px"});if(dojo.isIE){var s=ta.style;this.__overflow=s.overflow;s.overflow="hidden";}});if(dojo.isIE){setTimeout(_187,10);}else{_187();}if(ta.form){dojo.connect(ta.form,"onsubmit",this,function(){ta.value=this.getValue();});}}else{html=dijit._editor.getChildrenHtml(dn);dn.innerHTML="";}}var _188=dojo.contentBox(dn);this._oldHeight=_188.h;this._oldWidth=_188.w;this.savedContent=html;if(dn.nodeName&&dn.nodeName=="LI"){dn.innerHTML=" <br>";}this.header=dn.ownerDocument.createElement("div");dn.appendChild(this.header);this.editingArea=dn.ownerDocument.createElement("div");dn.appendChild(this.editingArea);this.footer=dn.ownerDocument.createElement("div");dn.appendChild(this.footer);if(this.name!==""&&(!dojo.config["useXDomain"]||dojo.config["allowXdRichTextSave"])){var _189=dojo.byId(dijit._scopeName+"._editor.RichText.savedContent");if(_189.value!==""){var _18a=_189.value.split(this._SEPARATOR),i=0,dat;while((dat=_18a[i++])){var data=dat.split(":");if(data[0]==this.name){html=data[1];_18a.splice(i,1);break;}}}dojo.addOnUnload(dojo.hitch(this,"_saveContent"));}this.isClosed=false;var ifr=(this.editorObject=this.iframe=dojo.doc.createElement("iframe"));ifr.id=this.id+"_iframe";this._iframeSrc=this._getIframeDocTxt();ifr.style.border="none";ifr.style.width="100%";if(this._layoutMode){ifr.style.height="100%";}else{if(dojo.isIE>=7){if(this.height){ifr.style.height=this.height;}if(this.minHeight){ifr.style.minHeight=this.minHeight;}}else{ifr.style.height=this.height?this.height:this.minHeight;}}ifr.frameBorder=0;ifr._loadFunc=dojo.hitch(this,function(win){this.window=win;this.document=this.window.document;if(dojo.isIE){this._localizeEditorCommands();}this.onLoad(html);});var s="javascript:parent."+dijit._scopeName+".byId(\""+this.id+"\")._iframeSrc";ifr.setAttribute("src",s);this.editingArea.appendChild(ifr);if(dn.nodeName=="LI"){dn.lastChild.style.marginTop="-1.2em";}dojo.addClass(this.domNode,this.baseClass);},_local2NativeFormatNames:{},_native2LocalFormatNames:{},_getIframeDocTxt:function(){var _18b=dojo.getComputedStyle(this.domNode);var html="";var _18c=true;if(dojo.isIE||(!this.height&&!dojo.isMoz)){html="<div id='dijitEditorBody'></div>";_18c=false;}else{if(dojo.isMoz){this._cursorToStart=true;html=" ";}}var font=[_18b.fontWeight,_18b.fontSize,_18b.fontFamily].join(" ");var _18d=_18b.lineHeight;if(_18d.indexOf("px")>=0){_18d=parseFloat(_18d)/parseFloat(_18b.fontSize);}else{if(_18d.indexOf("em")>=0){_18d=parseFloat(_18d);}else{_18d="normal";}}var _18e="";var self=this;this.style.replace(/(^|;)\s*(line-|font-?)[^;]+/ig,function(_18f){_18f=_18f.replace(/^;/ig,"")+";";var s=_18f.split(":")[0];if(s){s=dojo.trim(s);s=s.toLowerCase();var i;var sC="";for(i=0;i<s.length;i++){var c=s.charAt(i);switch(c){case "-":i++;c=s.charAt(i).toUpperCase();default:sC+=c;}}dojo.style(self.domNode,sC,"");}_18e+=_18f+";";});var _190=dojo.query("label[for=\""+this.id+"\"]");return [this.isLeftToRight()?"<html>\n<head>\n":"<html dir='rtl'>\n<head>\n",(dojo.isMoz&&_190.length?"<title>"+_190[0].innerHTML+"</title>\n":""),"<meta http-equiv='Content-Type' content='text/html'>\n","<style>\n","\tbody,html {\n","\t\tbackground:transparent;\n","\t\tpadding: 1px 0 0 0;\n","\t\tmargin: -1px 0 0 0;\n",((dojo.isWebKit)?"\t\twidth: 100%;\n":""),((dojo.isWebKit)?"\t\theight: 100%;\n":""),"\t}\n","\tbody{\n","\t\ttop:0px;\n","\t\tleft:0px;\n","\t\tright:0px;\n","\t\tfont:",font,";\n",((this.height||dojo.isOpera)?"":"\t\tposition: fixed;\n"),"\t\tmin-height:",this.minHeight,";\n","\t\tline-height:",_18d,";\n","\t}\n","\tp{ margin: 1em 0; }\n",(!_18c&&!this.height?"\tbody,html {overflow-y: hidden;}\n":""),"\t#dijitEditorBody{overflow-x: auto; overflow-y:"+(this.height?"auto;":"hidden;")+"}\n","\tli > ul:-moz-first-node, li > ol:-moz-first-node{ padding-top: 1.2em; }\n","\tli{ min-height:1.2em; }\n","</style>\n",this._applyEditingAreaStyleSheets(),"\n","</head>\n<body ",(_18c?"id='dijitEditorBody' ":""),"onload='frameElement._loadFunc(window,document)' style='"+_18e+"'>",html,"</body>\n</html>"].join("");},_applyEditingAreaStyleSheets:function(){var _191=[];if(this.styleSheets){_191=this.styleSheets.split(";");this.styleSheets="";}_191=_191.concat(this.editingAreaStyleSheets);this.editingAreaStyleSheets=[];var text="",i=0,url;while((url=_191[i++])){var _192=(new dojo._Url(dojo.global.location,url)).toString();this.editingAreaStyleSheets.push(_192);text+="<link rel=\"stylesheet\" type=\"text/css\" href=\""+_192+"\"/>";}return text;},addStyleSheet:function(uri){var url=uri.toString();if(url.charAt(0)=="."||(url.charAt(0)!="/"&&!uri.host)){url=(new dojo._Url(dojo.global.location,url)).toString();}if(dojo.indexOf(this.editingAreaStyleSheets,url)>-1){return;}this.editingAreaStyleSheets.push(url);this.onLoadDeferred.addCallback(dojo.hitch(function(){if(this.document.createStyleSheet){this.document.createStyleSheet(url);}else{var head=this.document.getElementsByTagName("head")[0];var _193=this.document.createElement("link");_193.rel="stylesheet";_193.type="text/css";_193.href=url;head.appendChild(_193);}}));},removeStyleSheet:function(uri){var url=uri.toString();if(url.charAt(0)=="."||(url.charAt(0)!="/"&&!uri.host)){url=(new dojo._Url(dojo.global.location,url)).toString();}var _194=dojo.indexOf(this.editingAreaStyleSheets,url);if(_194==-1){return;}delete this.editingAreaStyleSheets[_194];dojo.withGlobal(this.window,"query",dojo,["link:[href=\""+url+"\"]"]).orphan();},disabled:false,_mozSettingProps:{"styleWithCSS":false},_setDisabledAttr:function(_195){this.disabled=_195;if(!this.isLoaded){return;}_195=!!_195;if(dojo.isIE||dojo.isWebKit||dojo.isOpera){var _196=dojo.isIE&&(this.isLoaded||!this.focusOnLoad);if(_196){this.editNode.unselectable="on";}this.editNode.contentEditable=!_195;if(_196){var _197=this;setTimeout(function(){_197.editNode.unselectable="off";},0);}}else{try{this.document.designMode=(_195?"off":"on");}catch(e){return;}if(!_195&&this._mozSettingProps){var ps=this._mozSettingProps;for(var n in ps){if(ps.hasOwnProperty(n)){try{this.document.execCommand(n,false,ps[n]);}catch(e2){}}}}}this._disabledOK=true;},onLoad:function(html){if(!this.window.__registeredWindow){this.window.__registeredWindow=true;this._iframeRegHandle=dijit.registerIframe(this.iframe);}if(!dojo.isIE&&(this.height||dojo.isMoz)){this.editNode=this.document.body;}else{this.editNode=this.document.body.firstChild;var _198=this;if(dojo.isIE){var _199=(this.tabStop=dojo.doc.createElement("<div tabIndex=-1>"));this.editingArea.appendChild(_199);this.iframe.onfocus=function(){_198.editNode.setActive();};}}this.focusNode=this.editNode;var _19a=this.events.concat(this.captureEvents);var ap=this.iframe?this.document:this.editNode;dojo.forEach(_19a,function(item){this.connect(ap,item.toLowerCase(),item);},this);if(dojo.isIE){this.connect(this.document,"onmousedown","_onIEMouseDown");this.editNode.style.zoom=1;}else{this.connect(this.document,"onmousedown",function(){delete this._cursorToStart;});}if(dojo.isWebKit){this._webkitListener=this.connect(this.document,"onmouseup","onDisplayChanged");}if(dojo.isIE){try{this.document.execCommand("RespectVisibilityInDesign",true,null);}catch(e){}}this.isLoaded=true;this.set("disabled",this.disabled);var _19b=dojo.hitch(this,function(){this.setValue(html);if(this.onLoadDeferred){this.onLoadDeferred.callback(true);}this.onDisplayChanged();if(this.focusOnLoad){dojo.addOnLoad(dojo.hitch(this,function(){setTimeout(dojo.hitch(this,"focus"),this.updateInterval);}));}this.savedContent=this.getValue(true);});if(this.setValueDeferred){this.setValueDeferred.addCallback(_19b);}else{_19b();}},onKeyDown:function(e){if(e.keyCode===dojo.keys.TAB&&this.isTabIndent){dojo.stopEvent(e);if(this.queryCommandEnabled((e.shiftKey?"outdent":"indent"))){this.execCommand((e.shiftKey?"outdent":"indent"));}}if(dojo.isIE){if(e.keyCode==dojo.keys.TAB&&!this.isTabIndent){if(e.shiftKey&&!e.ctrlKey&&!e.altKey){this.iframe.focus();}else{if(!e.shiftKey&&!e.ctrlKey&&!e.altKey){this.tabStop.focus();}}}else{if(e.keyCode===dojo.keys.BACKSPACE&&this.document.selection.type==="Control"){dojo.stopEvent(e);this.execCommand("delete");}else{if((65<=e.keyCode&&e.keyCode<=90)||(e.keyCode>=37&&e.keyCode<=40)){e.charCode=e.keyCode;this.onKeyPress(e);}}}}return true;},onKeyUp:function(e){return;},setDisabled:function(_19c){dojo.deprecated("dijit.Editor::setDisabled is deprecated","use dijit.Editor::attr(\"disabled\",boolean) instead",2);this.set("disabled",_19c);},_setValueAttr:function(_19d){this.setValue(_19d);},_setDisableSpellCheckAttr:function(_19e){if(this.document){dojo.attr(this.document.body,"spellcheck",!_19e);}else{this.onLoadDeferred.addCallback(dojo.hitch(this,function(){dojo.attr(this.document.body,"spellcheck",!_19e);}));}this.disableSpellCheck=_19e;},onKeyPress:function(e){var c=(e.keyChar&&e.keyChar.toLowerCase())||e.keyCode,_19f=this._keyHandlers[c],args=arguments;if(_19f&&!e.altKey){dojo.some(_19f,function(h){if(!(h.shift^e.shiftKey)&&!(h.ctrl^(e.ctrlKey||e.metaKey))){if(!h.handler.apply(this,args)){e.preventDefault();}return true;}},this);}if(!this._onKeyHitch){this._onKeyHitch=dojo.hitch(this,"onKeyPressed");}setTimeout(this._onKeyHitch,1);return true;},addKeyHandler:function(key,ctrl,_1a0,_1a1){if(!dojo.isArray(this._keyHandlers[key])){this._keyHandlers[key]=[];}this._keyHandlers[key].push({shift:_1a0||false,ctrl:ctrl||false,handler:_1a1});},onKeyPressed:function(){this.onDisplayChanged();},onClick:function(e){this.onDisplayChanged(e);},_onIEMouseDown:function(e){if(!this._focused&&!this.disabled){this.focus();}},_onBlur:function(e){this.inherited(arguments);var _1a2=this.getValue(true);if(_1a2!=this.savedContent){this.onChange(_1a2);this.savedContent=_1a2;}},_onFocus:function(e){if(!this.disabled){if(!this._disabledOK){this.set("disabled",false);}this.inherited(arguments);}},blur:function(){if(!dojo.isIE&&this.window.document.documentElement&&this.window.document.documentElement.focus){this.window.document.documentElement.focus();}else{if(dojo.doc.body.focus){dojo.doc.body.focus();}}},focus:function(){if(!this.isLoaded){this.focusOnLoad=true;return;}if(this._cursorToStart){delete this._cursorToStart;if(this.editNode.childNodes){this.placeCursorAtStart();return;}}if(!dojo.isIE){dijit.focus(this.iframe);}else{if(this.editNode&&this.editNode.focus){this.iframe.fireEvent("onfocus",document.createEventObject());}}},updateInterval:200,_updateTimer:null,onDisplayChanged:function(e){if(this._updateTimer){clearTimeout(this._updateTimer);}if(!this._updateHandler){this._updateHandler=dojo.hitch(this,"onNormalizedDisplayChanged");}this._updateTimer=setTimeout(this._updateHandler,this.updateInterval);},onNormalizedDisplayChanged:function(){delete this._updateTimer;},onChange:function(_1a3){},_normalizeCommand:function(cmd,_1a4){var _1a5=cmd.toLowerCase();if(_1a5=="formatblock"){if(dojo.isSafari&&_1a4===undefined){_1a5="heading";}}else{if(_1a5=="hilitecolor"&&!dojo.isMoz){_1a5="backcolor";}}return _1a5;},_qcaCache:{},queryCommandAvailable:function(_1a6){var ca=this._qcaCache[_1a6];if(ca!==undefined){return ca;}return (this._qcaCache[_1a6]=this._queryCommandAvailable(_1a6));},_queryCommandAvailable:function(_1a7){var ie=1;var _1a8=1<<1;var _1a9=1<<2;var _1aa=1<<3;var _1ab=1<<4;function _1ac(_1ad){return {ie:Boolean(_1ad&ie),mozilla:Boolean(_1ad&_1a8),webkit:Boolean(_1ad&_1a9),webkit420:Boolean(_1ad&_1ab),opera:Boolean(_1ad&_1aa)};};var _1ae=null;switch(_1a7.toLowerCase()){case "bold":case "italic":case "underline":case "subscript":case "superscript":case "fontname":case "fontsize":case "forecolor":case "hilitecolor":case "justifycenter":case "justifyfull":case "justifyleft":case "justifyright":case "delete":case "selectall":case "toggledir":_1ae=_1ac(_1a8|ie|_1a9|_1aa);break;case "createlink":case "unlink":case "removeformat":case "inserthorizontalrule":case "insertimage":case "insertorderedlist":case "insertunorderedlist":case "indent":case "outdent":case "formatblock":case "inserthtml":case "undo":case "redo":case "strikethrough":case "tabindent":_1ae=_1ac(_1a8|ie|_1aa|_1ab);break;case "blockdirltr":case "blockdirrtl":case "dirltr":case "dirrtl":case "inlinedirltr":case "inlinedirrtl":_1ae=_1ac(ie);break;case "cut":case "copy":case "paste":_1ae=_1ac(ie|_1a8|_1ab);break;case "inserttable":_1ae=_1ac(_1a8|ie);break;case "insertcell":case "insertcol":case "insertrow":case "deletecells":case "deletecols":case "deleterows":case "mergecells":case "splitcell":_1ae=_1ac(ie|_1a8);break;default:return false;}return (dojo.isIE&&_1ae.ie)||(dojo.isMoz&&_1ae.mozilla)||(dojo.isWebKit&&_1ae.webkit)||(dojo.isWebKit>420&&_1ae.webkit420)||(dojo.isOpera&&_1ae.opera);},execCommand:function(_1af,_1b0){var _1b1;this.focus();_1af=this._normalizeCommand(_1af,_1b0);if(_1b0!==undefined){if(_1af=="heading"){throw new Error("unimplemented");}else{if((_1af=="formatblock")&&dojo.isIE){_1b0="<"+_1b0+">";}}}var _1b2="_"+_1af+"Impl";if(this[_1b2]){_1b1=this[_1b2](_1b0);}else{_1b0=arguments.length>1?_1b0:null;if(_1b0||_1af!="createlink"){_1b1=this.document.execCommand(_1af,false,_1b0);}}this.onDisplayChanged();return _1b1;},queryCommandEnabled:function(_1b3){if(this.disabled||!this._disabledOK){return false;}_1b3=this._normalizeCommand(_1b3);if(dojo.isMoz||dojo.isWebKit){if(_1b3=="unlink"){return this._sCall("hasAncestorElement",["a"]);}else{if(_1b3=="inserttable"){return true;}}}if(dojo.isWebKit){if(_1b3=="copy"){_1b3="cut";}else{if(_1b3=="paste"){return true;}}}var elem=dojo.isIE?this.document.selection.createRange():this.document;try{return elem.queryCommandEnabled(_1b3);}catch(e){return false;}},queryCommandState:function(_1b4){if(this.disabled||!this._disabledOK){return false;}_1b4=this._normalizeCommand(_1b4);try{return this.document.queryCommandState(_1b4);}catch(e){return false;}},queryCommandValue:function(_1b5){if(this.disabled||!this._disabledOK){return false;}var r;_1b5=this._normalizeCommand(_1b5);if(dojo.isIE&&_1b5=="formatblock"){r=this._native2LocalFormatNames[this.document.queryCommandValue(_1b5)];}else{if(dojo.isMoz&&_1b5==="hilitecolor"){var _1b6;try{_1b6=this.document.queryCommandValue("styleWithCSS");}catch(e){_1b6=false;}this.document.execCommand("styleWithCSS",false,true);r=this.document.queryCommandValue(_1b5);this.document.execCommand("styleWithCSS",false,_1b6);}else{r=this.document.queryCommandValue(_1b5);}}return r;},_sCall:function(name,args){return dojo.withGlobal(this.window,name,dijit._editor.selection,args);},placeCursorAtStart:function(){this.focus();var _1b7=false;if(dojo.isMoz){var _1b8=this.editNode.firstChild;while(_1b8){if(_1b8.nodeType==3){if(_1b8.nodeValue.replace(/^\s+|\s+$/g,"").length>0){_1b7=true;this._sCall("selectElement",[_1b8]);break;}}else{if(_1b8.nodeType==1){_1b7=true;var tg=_1b8.tagName?_1b8.tagName.toLowerCase():"";if(/br|input|img|base|meta|area|basefont|hr|link/.test(tg)){this._sCall("selectElement",[_1b8]);}else{this._sCall("selectElementChildren",[_1b8]);}break;}}_1b8=_1b8.nextSibling;}}else{_1b7=true;this._sCall("selectElementChildren",[this.editNode]);}if(_1b7){this._sCall("collapse",[true]);}},placeCursorAtEnd:function(){this.focus();var _1b9=false;if(dojo.isMoz){var last=this.editNode.lastChild;while(last){if(last.nodeType==3){if(last.nodeValue.replace(/^\s+|\s+$/g,"").length>0){_1b9=true;this._sCall("selectElement",[last]);break;}}else{if(last.nodeType==1){_1b9=true;if(last.lastChild){this._sCall("selectElement",[last.lastChild]);}else{this._sCall("selectElement",[last]);}break;}}last=last.previousSibling;}}else{_1b9=true;this._sCall("selectElementChildren",[this.editNode]);}if(_1b9){this._sCall("collapse",[false]);}},getValue:function(_1ba){if(this.textarea){if(this.isClosed||!this.isLoaded){return this.textarea.value;}}return this._postFilterContent(null,_1ba);},_getValueAttr:function(){return this.getValue(true);},setValue:function(html){if(!this.isLoaded){this.onLoadDeferred.addCallback(dojo.hitch(this,function(){this.setValue(html);}));return;}this._cursorToStart=true;if(this.textarea&&(this.isClosed||!this.isLoaded)){this.textarea.value=html;}else{html=this._preFilterContent(html);var node=this.isClosed?this.domNode:this.editNode;if(!html&&dojo.isWebKit){html=" ";}node.innerHTML=html;this._preDomFilterContent(node);}this.onDisplayChanged();},replaceValue:function(html){if(this.isClosed){this.setValue(html);}else{if(this.window&&this.window.getSelection&&!dojo.isMoz){this.setValue(html);}else{if(this.window&&this.window.getSelection){html=this._preFilterContent(html);this.execCommand("selectall");if(!html){this._cursorToStart=true;html=" ";}this.execCommand("inserthtml",html);this._preDomFilterContent(this.editNode);}else{if(this.document&&this.document.selection){this.setValue(html);}}}}},_preFilterContent:function(html){var ec=html;dojo.forEach(this.contentPreFilters,function(ef){if(ef){ec=ef(ec);}});return ec;},_preDomFilterContent:function(dom){dom=dom||this.editNode;dojo.forEach(this.contentDomPreFilters,function(ef){if(ef&&dojo.isFunction(ef)){ef(dom);}},this);},_postFilterContent:function(dom,_1bb){var ec;if(!dojo.isString(dom)){dom=dom||this.editNode;if(this.contentDomPostFilters.length){if(_1bb){dom=dojo.clone(dom);}dojo.forEach(this.contentDomPostFilters,function(ef){dom=ef(dom);});}ec=dijit._editor.getChildrenHtml(dom);}else{ec=dom;}if(!dojo.trim(ec.replace(/^\xA0\xA0*/,"").replace(/\xA0\xA0*$/,"")).length){ec="";}dojo.forEach(this.contentPostFilters,function(ef){ec=ef(ec);});return ec;},_saveContent:function(e){var _1bc=dojo.byId(dijit._scopeName+"._editor.RichText.savedContent");if(_1bc.value){_1bc.value+=this._SEPARATOR;}_1bc.value+=this.name+":"+this.getValue(true);},escapeXml:function(str,_1bd){str=str.replace(/&/gm,"&").replace(/</gm,"<").replace(/>/gm,">").replace(/"/gm,""");if(!_1bd){str=str.replace(/'/gm,"'");}return str;},getNodeHtml:function(node){dojo.deprecated("dijit.Editor::getNodeHtml is deprecated","use dijit._editor.getNodeHtml instead",2);return dijit._editor.getNodeHtml(node);},getNodeChildrenHtml:function(dom){dojo.deprecated("dijit.Editor::getNodeChildrenHtml is deprecated","use dijit._editor.getChildrenHtml instead",2);return dijit._editor.getChildrenHtml(dom);},close:function(save){if(this.isClosed){return false;}if(!arguments.length){save=true;}this._content=this.getValue();var _1be=(this.savedContent!=this._content);if(this.interval){clearInterval(this.interval);}if(this._webkitListener){this.disconnect(this._webkitListener);delete this._webkitListener;}if(dojo.isIE){this.iframe.onfocus=null;}this.iframe._loadFunc=null;if(this._iframeRegHandle){dijit.unregisterIframe(this._iframeRegHandle);delete this._iframeRegHandle;}if(this.textarea){var s=this.textarea.style;s.position="";s.left=s.top="";if(dojo.isIE){s.overflow=this.__overflow;this.__overflow=null;}this.textarea.value=save?this._content:this.savedContent;dojo.destroy(this.domNode);this.domNode=this.textarea;}else{this.domNode.innerHTML=save?this._content:this.savedContent;}delete this.iframe;dojo.removeClass(this.domNode,this.baseClass);this.isClosed=true;this.isLoaded=false;delete this.editNode;delete this.focusNode;if(this.window&&this.window._frameElement){this.window._frameElement=null;}this.window=null;this.document=null;this.editingArea=null;this.editorObject=null;return _1be;},destroy:function(){if(!this.isClosed){this.close(false);}this.inherited(arguments);},_removeMozBogus:function(html){return html.replace(/\stype="_moz"/gi,"").replace(/\s_moz_dirty=""/gi,"").replace(/_moz_resizing="(true|false)"/gi,"");},_removeWebkitBogus:function(html){html=html.replace(/\sclass="webkit-block-placeholder"/gi,"");html=html.replace(/\sclass="apple-style-span"/gi,"");return html;},_normalizeFontStyle:function(html){return html.replace(/<(\/)?strong([ \>])/gi,"<$1b$2").replace(/<(\/)?em([ \>])/gi,"<$1i$2");},_preFixUrlAttributes:function(html){return html.replace(/(?:(<a(?=\s).*?\shref=)("|')(.*?)\2)|(?:(<a\s.*?href=)([^"'][^ >]+))/gi,"$1$4$2$3$5$2 _djrealurl=$2$3$5$2").replace(/(?:(<img(?=\s).*?\ssrc=)("|')(.*?)\2)|(?:(<img\s.*?src=)([^"'][^ >]+))/gi,"$1$4$2$3$5$2 _djrealurl=$2$3$5$2");},_inserthorizontalruleImpl:function(_1bf){if(dojo.isIE){return this._inserthtmlImpl("<hr>");}return this.document.execCommand("inserthorizontalrule",false,_1bf);},_unlinkImpl:function(_1c0){if((this.queryCommandEnabled("unlink"))&&(dojo.isMoz||dojo.isWebKit)){var a=this._sCall("getAncestorElement",["a"]);this._sCall("selectElement",[a]);return this.document.execCommand("unlink",false,null);}return this.document.execCommand("unlink",false,_1c0);},_hilitecolorImpl:function(_1c1){var _1c2;if(dojo.isMoz){this.document.execCommand("styleWithCSS",false,true);_1c2=this.document.execCommand("hilitecolor",false,_1c1);this.document.execCommand("styleWithCSS",false,false);}else{_1c2=this.document.execCommand("hilitecolor",false,_1c1);}return _1c2;},_backcolorImpl:function(_1c3){if(dojo.isIE){_1c3=_1c3?_1c3:null;}return this.document.execCommand("backcolor",false,_1c3);},_forecolorImpl:function(_1c4){if(dojo.isIE){_1c4=_1c4?_1c4:null;}return this.document.execCommand("forecolor",false,_1c4);},_inserthtmlImpl:function(_1c5){_1c5=this._preFilterContent(_1c5);var rv=true;if(dojo.isIE){var _1c6=this.document.selection.createRange();if(this.document.selection.type.toUpperCase()=="CONTROL"){var n=_1c6.item(0);while(_1c6.length){_1c6.remove(_1c6.item(0));}n.outerHTML=_1c5;}else{_1c6.pasteHTML(_1c5);}_1c6.select();}else{if(dojo.isMoz&&!_1c5.length){this._sCall("remove");}else{rv=this.document.execCommand("inserthtml",false,_1c5);}}return rv;},getHeaderHeight:function(){return this._getNodeChildrenHeight(this.header);},getFooterHeight:function(){return this._getNodeChildrenHeight(this.footer);},_getNodeChildrenHeight:function(node){var h=0;if(node&&node.childNodes){var i;for(i=0;i<node.childNodes.length;i++){var size=dojo.position(node.childNodes[i]);h+=size.h;}}return h;}});}if(!dojo._hasResource["dijit._KeyNavContainer"]){dojo._hasResource["dijit._KeyNavContainer"]=true;dojo.provide("dijit._KeyNavContainer");dojo.declare("dijit._KeyNavContainer",dijit._Container,{tabIndex:"0",_keyNavCodes:{},connectKeyNavHandlers:function(_1c7,_1c8){var _1c9=(this._keyNavCodes={});var prev=dojo.hitch(this,this.focusPrev);var next=dojo.hitch(this,this.focusNext);dojo.forEach(_1c7,function(code){_1c9[code]=prev;});dojo.forEach(_1c8,function(code){_1c9[code]=next;});this.connect(this.domNode,"onkeypress","_onContainerKeypress");this.connect(this.domNode,"onfocus","_onContainerFocus");},startupKeyNavChildren:function(){dojo.forEach(this.getChildren(),dojo.hitch(this,"_startupChild"));},addChild:function(_1ca,_1cb){dijit._KeyNavContainer.superclass.addChild.apply(this,arguments);this._startupChild(_1ca);},focus:function(){this.focusFirstChild();},focusFirstChild:function(){var _1cc=this._getFirstFocusableChild();if(_1cc){this.focusChild(_1cc);}},focusNext:function(){var _1cd=this._getNextFocusableChild(this.focusedChild,1);this.focusChild(_1cd);},focusPrev:function(){var _1ce=this._getNextFocusableChild(this.focusedChild,-1);this.focusChild(_1ce,true);},focusChild:function(_1cf,last){if(this.focusedChild&&_1cf!==this.focusedChild){this._onChildBlur(this.focusedChild);}_1cf.focus(last?"end":"start");this.focusedChild=_1cf;},_startupChild:function(_1d0){_1d0.set("tabIndex","-1");this.connect(_1d0,"_onFocus",function(){_1d0.set("tabIndex",this.tabIndex);});this.connect(_1d0,"_onBlur",function(){_1d0.set("tabIndex","-1");});},_onContainerFocus:function(evt){if(evt.target!==this.domNode){return;}this.focusFirstChild();dojo.attr(this.domNode,"tabIndex","-1");},_onBlur:function(evt){if(this.tabIndex){dojo.attr(this.domNode,"tabIndex",this.tabIndex);}this.inherited(arguments);},_onContainerKeypress:function(evt){if(evt.ctrlKey||evt.altKey){return;}var func=this._keyNavCodes[evt.charOrCode];if(func){func();dojo.stopEvent(evt);}},_onChildBlur:function(_1d1){},_getFirstFocusableChild:function(){return this._getNextFocusableChild(null,1);},_getNextFocusableChild:function(_1d2,dir){if(_1d2){_1d2=this._getSiblingOfChild(_1d2,dir);}var _1d3=this.getChildren();for(var i=0;i<_1d3.length;i++){if(!_1d2){_1d2=_1d3[(dir>0)?0:(_1d3.length-1)];}if(_1d2.isFocusable()){return _1d2;}_1d2=this._getSiblingOfChild(_1d2,dir);}return null;}});}if(!dojo._hasResource["dijit.ToolbarSeparator"]){dojo._hasResource["dijit.ToolbarSeparator"]=true;dojo.provide("dijit.ToolbarSeparator");dojo.declare("dijit.ToolbarSeparator",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"dijitToolbarSeparator dijitInline\" waiRole=\"presentation\"></div>",postCreate:function(){dojo.setSelectable(this.domNode,false);},isFocusable:function(){return false;}});}if(!dojo._hasResource["dijit.Toolbar"]){dojo._hasResource["dijit.Toolbar"]=true;dojo.provide("dijit.Toolbar");dojo.declare("dijit.Toolbar",[dijit._Widget,dijit._Templated,dijit._KeyNavContainer],{templateString:"<div class=\"dijit\" waiRole=\"toolbar\" tabIndex=\"${tabIndex}\" dojoAttachPoint=\"containerNode\">"+"</div>",baseClass:"dijitToolbar",postCreate:function(){this.connectKeyNavHandlers(this.isLeftToRight()?[dojo.keys.LEFT_ARROW]:[dojo.keys.RIGHT_ARROW],this.isLeftToRight()?[dojo.keys.RIGHT_ARROW]:[dojo.keys.LEFT_ARROW]);this.inherited(arguments);},startup:function(){if(this._started){return;}this.startupKeyNavChildren();this.inherited(arguments);}});}if(!dojo._hasResource["dijit._HasDropDown"]){dojo._hasResource["dijit._HasDropDown"]=true;dojo.provide("dijit._HasDropDown");dojo.declare("dijit._HasDropDown",null,{_buttonNode:null,_arrowWrapperNode:null,_popupStateNode:null,_aroundNode:null,dropDown:null,autoWidth:true,forceWidth:false,maxHeight:0,dropDownPosition:["below","above"],_stopClickEvents:true,_onDropDownMouseDown:function(e){if(this.disabled||this.readOnly){return;}this._docHandler=this.connect(dojo.doc,"onmouseup","_onDropDownMouseUp");this.toggleDropDown();},_onDropDownMouseUp:function(e){if(e&&this._docHandler){this.disconnect(this._docHandler);}var _1d4=this.dropDown,_1d5=false;if(e&&this._opened){var c=dojo.position(this._buttonNode,true);if(!(e.pageX>=c.x&&e.pageX<=c.x+c.w)||!(e.pageY>=c.y&&e.pageY<=c.y+c.h)){var t=e.target;while(t&&!_1d5){if(dojo.hasClass(t,"dijitPopup")){_1d5=true;}else{t=t.parentNode;}}if(_1d5){t=e.target;if(_1d4.onItemClick){var _1d6;while(t&&!(_1d6=dijit.byNode(t))){t=t.parentNode;}if(_1d6&&_1d6.onClick&&_1d6.getParent){_1d6.getParent().onItemClick(_1d6,e);}}return;}}}if(this._opened&&_1d4.focus){window.setTimeout(dojo.hitch(_1d4,"focus"),1);}},_onDropDownClick:function(e){if(this._stopClickEvents){dojo.stopEvent(e);}},_setupDropdown:function(){this._buttonNode=this._buttonNode||this.focusNode||this.domNode;this._popupStateNode=this._popupStateNode||this.focusNode||this._buttonNode;this._aroundNode=this._aroundNode||this.domNode;this.connect(this._buttonNode,"onmousedown","_onDropDownMouseDown");this.connect(this._buttonNode,"onclick","_onDropDownClick");this.connect(this._buttonNode,"onkeydown","_onDropDownKeydown");this.connect(this._buttonNode,"onkeyup","_onKey");if(this._setStateClass){this.connect(this,"openDropDown","_setStateClass");this.connect(this,"closeDropDown","_setStateClass");}var _1d7={"after":this.isLeftToRight()?"Right":"Left","before":this.isLeftToRight()?"Left":"Right","above":"Up","below":"Down","left":"Left","right":"Right"}[this.dropDownPosition[0]]||this.dropDownPosition[0]||"Down";dojo.addClass(this._arrowWrapperNode||this._buttonNode,"dijit"+_1d7+"ArrowButton");},postCreate:function(){this._setupDropdown();this.inherited(arguments);},destroyDescendants:function(){if(this.dropDown){if(!this.dropDown._destroyed){this.dropDown.destroyRecursive();}delete this.dropDown;}this.inherited(arguments);},_onDropDownKeydown:function(e){if(e.keyCode==dojo.keys.DOWN_ARROW||e.keyCode==dojo.keys.ENTER||e.keyCode==dojo.keys.SPACE){e.preventDefault();}},_onKey:function(e){if(this.disabled||this.readOnly){return;}var d=this.dropDown;if(d&&this._opened&&d.handleKey){if(d.handleKey(e)===false){return;}}if(d&&this._opened&&e.keyCode==dojo.keys.ESCAPE){this.toggleDropDown();}else{if(d&&!this._opened&&(e.keyCode==dojo.keys.DOWN_ARROW||e.keyCode==dojo.keys.ENTER||e.keyCode==dojo.keys.SPACE)){this.toggleDropDown();if(d.focus){setTimeout(dojo.hitch(d,"focus"),1);}}}},_onBlur:function(){this.closeDropDown();this.inherited(arguments);},isLoaded:function(){return true;},loadDropDown:function(_1d8){_1d8();},toggleDropDown:function(){if(this.disabled||this.readOnly){return;}this.focus();var _1d9=this.dropDown;if(!_1d9){return;}if(!this._opened){if(!this.isLoaded()){this.loadDropDown(dojo.hitch(this,"openDropDown"));return;}else{this.openDropDown();}}else{this.closeDropDown();}},openDropDown:function(){var _1da=this.dropDown;var _1db=_1da.domNode;var self=this;if(!this._preparedNode){dijit.popup.moveOffScreen(_1db);this._preparedNode=true;if(_1db.style.width){this._explicitDDWidth=true;}if(_1db.style.height){this._explicitDDHeight=true;}}if(this.maxHeight||this.forceWidth||this.autoWidth){var _1dc={display:"",visibility:"hidden"};if(!this._explicitDDWidth){_1dc.width="";}if(!this._explicitDDHeight){_1dc.height="";}dojo.style(_1db,_1dc);var mb=dojo.marginBox(_1db);var _1dd=(this.maxHeight&&mb.h>this.maxHeight);dojo.style(_1db,{overflowX:"hidden",overflowY:_1dd?"auto":"hidden"});if(_1dd){mb.h=this.maxHeight;if("w" in mb){mb.w+=16;}}else{delete mb.h;}delete mb.t;delete mb.l;if(this.forceWidth){mb.w=this.domNode.offsetWidth;}else{if(this.autoWidth){mb.w=Math.max(mb.w,this.domNode.offsetWidth);}else{delete mb.w;}}if(dojo.isFunction(_1da.resize)){_1da.resize(mb);}else{dojo.marginBox(_1db,mb);}}var _1de=dijit.popup.open({parent:this,popup:_1da,around:this._aroundNode,orient:dijit.getPopupAroundAlignment((this.dropDownPosition&&this.dropDownPosition.length)?this.dropDownPosition:["below"],this.isLeftToRight()),onExecute:function(){self.closeDropDown(true);},onCancel:function(){self.closeDropDown(true);},onClose:function(){dojo.attr(self._popupStateNode,"popupActive",false);dojo.removeClass(self._popupStateNode,"dijitHasDropDownOpen");self._opened=false;self.state="";}});dojo.attr(this._popupStateNode,"popupActive","true");dojo.addClass(self._popupStateNode,"dijitHasDropDownOpen");this._opened=true;this.state="Opened";return _1de;},closeDropDown:function(_1df){if(this._opened){if(_1df){this.focus();}dijit.popup.close(this.dropDown);this._opened=false;this.state="";}}});}if(!dojo._hasResource["dijit.form.Button"]){dojo._hasResource["dijit.form.Button"]=true;dojo.provide("dijit.form.Button");dojo.declare("dijit.form.Button",dijit.form._FormWidget,{label:"",showLabel:true,iconClass:"",type:"button",baseClass:"dijitButton",templateString:dojo.cache("dijit.form","templates/Button.html","<span class=\"dijit dijitReset dijitInline\"\n\t><span class=\"dijitReset dijitInline dijitButtonNode\"\n\t\tdojoAttachEvent=\"ondijitclick:_onButtonClick\"\n\t\t><span class=\"dijitReset dijitStretch dijitButtonContents\"\n\t\t\tdojoAttachPoint=\"titleNode,focusNode\"\n\t\t\twaiRole=\"button\" waiState=\"labelledby-${id}_label\"\n\t\t\t><span class=\"dijitReset dijitInline dijitIcon\" dojoAttachPoint=\"iconNode\"></span\n\t\t\t><span class=\"dijitReset dijitToggleButtonIconChar\">●</span\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\"\n\t\t\t\tid=\"${id}_label\"\n\t\t\t\tdojoAttachPoint=\"containerNode\"\n\t\t\t></span\n\t\t></span\n\t></span\n\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" class=\"dijitOffScreen\"\n\t\tdojoAttachPoint=\"valueNode\"\n/></span>\n"),attributeMap:dojo.delegate(dijit.form._FormWidget.prototype.attributeMap,{value:"valueNode",iconClass:{node:"iconNode",type:"class"}}),_onClick:function(e){if(this.disabled){return false;}this._clicked();return this.onClick(e);},_onButtonClick:function(e){if(this._onClick(e)===false){e.preventDefault();}else{if(this.type=="submit"&&!(this.valueNode||this.focusNode).form){for(var node=this.domNode;node.parentNode;node=node.parentNode){var _1e0=dijit.byNode(node);if(_1e0&&typeof _1e0._onSubmit=="function"){_1e0._onSubmit(e);break;}}}else{if(this.valueNode){this.valueNode.click();e.preventDefault();}}}},_fillContent:function(_1e1){if(_1e1&&(!this.params||!("label" in this.params))){this.set("label",_1e1.innerHTML);}},postCreate:function(){dojo.setSelectable(this.focusNode,false);this.inherited(arguments);},_setShowLabelAttr:function(val){if(this.containerNode){dojo.toggleClass(this.containerNode,"dijitDisplayNone",!val);}this.showLabel=val;},onClick:function(e){return true;},_clicked:function(e){},setLabel:function(_1e2){dojo.deprecated("dijit.form.Button.setLabel() is deprecated. Use set('label', ...) instead.","","2.0");this.set("label",_1e2);},_setLabelAttr:function(_1e3){this.containerNode.innerHTML=this.label=_1e3;if(this.showLabel==false&&!this.params.title){this.titleNode.title=dojo.trim(this.containerNode.innerText||this.containerNode.textContent||"");}}});dojo.declare("dijit.form.DropDownButton",[dijit.form.Button,dijit._Container,dijit._HasDropDown],{baseClass:"dijitDropDownButton",templateString:dojo.cache("dijit.form","templates/DropDownButton.html","<span class=\"dijit dijitReset dijitInline\"\n\t><span class='dijitReset dijitInline dijitButtonNode'\n\t\tdojoAttachEvent=\"ondijitclick:_onButtonClick\" dojoAttachPoint=\"_buttonNode\"\n\t\t><span class=\"dijitReset dijitStretch dijitButtonContents\"\n\t\t\tdojoAttachPoint=\"focusNode,titleNode,_arrowWrapperNode\"\n\t\t\twaiRole=\"button\" waiState=\"haspopup-true,labelledby-${id}_label\"\n\t\t\t><span class=\"dijitReset dijitInline dijitIcon\"\n\t\t\t\tdojoAttachPoint=\"iconNode\"\n\t\t\t></span\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\"\n\t\t\t\tdojoAttachPoint=\"containerNode,_popupStateNode\"\n\t\t\t\tid=\"${id}_label\"\n\t\t\t></span\n\t\t\t><span class=\"dijitReset dijitInline dijitArrowButtonInner\"></span\n\t\t\t><span class=\"dijitReset dijitInline dijitArrowButtonChar\">▼</span\n\t\t></span\n\t></span\n\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" class=\"dijitOffScreen\"\n\t\tdojoAttachPoint=\"valueNode\"\n/></span>\n"),_fillContent:function(){if(this.srcNodeRef){var _1e4=dojo.query("*",this.srcNodeRef);dijit.form.DropDownButton.superclass._fillContent.call(this,_1e4[0]);this.dropDownContainer=this.srcNodeRef;}},startup:function(){if(this._started){return;}if(!this.dropDown){var _1e5=dojo.query("[widgetId]",this.dropDownContainer)[0];this.dropDown=dijit.byNode(_1e5);delete this.dropDownContainer;}dijit.popup.moveOffScreen(this.dropDown.domNode);this.inherited(arguments);},isLoaded:function(){var _1e6=this.dropDown;return (!_1e6.href||_1e6.isLoaded);},loadDropDown:function(){var _1e7=this.dropDown;if(!_1e7){return;}if(!this.isLoaded()){var _1e8=dojo.connect(_1e7,"onLoad",this,function(){dojo.disconnect(_1e8);this.openDropDown();});_1e7.refresh();}else{this.openDropDown();}},isFocusable:function(){return this.inherited(arguments)&&!this._mouseDown;}});dojo.declare("dijit.form.ComboButton",dijit.form.DropDownButton,{templateString:dojo.cache("dijit.form","templates/ComboButton.html","<table class=\"dijit dijitReset dijitInline dijitLeft\"\n\tcellspacing='0' cellpadding='0' waiRole=\"presentation\"\n\t><tbody waiRole=\"presentation\"><tr waiRole=\"presentation\"\n\t\t><td class=\"dijitReset dijitStretch dijitButtonNode\" dojoAttachPoint=\"buttonNode\" dojoAttachEvent=\"ondijitclick:_onButtonClick,onkeypress:_onButtonKeyPress\"\n\t\t><div id=\"${id}_button\" class=\"dijitReset dijitButtonContents\"\n\t\t\tdojoAttachPoint=\"titleNode\"\n\t\t\twaiRole=\"button\" waiState=\"labelledby-${id}_label\"\n\t\t\t><div class=\"dijitReset dijitInline dijitIcon\" dojoAttachPoint=\"iconNode\" waiRole=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitInline dijitButtonText\" id=\"${id}_label\" dojoAttachPoint=\"containerNode\" waiRole=\"presentation\"></div\n\t\t></div\n\t\t></td\n\t\t><td id=\"${id}_arrow\" class='dijitReset dijitRight dijitButtonNode dijitArrowButton'\n\t\t\tdojoAttachPoint=\"_popupStateNode,focusNode,_buttonNode\"\n\t\t\tdojoAttachEvent=\"onkeypress:_onArrowKeyPress\"\n\t\t\ttitle=\"${optionsTitle}\"\n\t\t\twaiRole=\"button\" waiState=\"haspopup-true\"\n\t\t\t><div class=\"dijitReset dijitArrowButtonInner\" waiRole=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitArrowButtonChar\" waiRole=\"presentation\">▼</div\n\t\t></td\n\t\t><td style=\"display:none !important;\"\n\t\t\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" dojoAttachPoint=\"valueNode\"\n\t\t/></td></tr></tbody\n></table>\n"),attributeMap:dojo.mixin(dojo.clone(dijit.form.Button.prototype.attributeMap),{id:"",tabIndex:["focusNode","titleNode"],title:"titleNode"}),optionsTitle:"",baseClass:"dijitComboButton",cssStateNodes:{"buttonNode":"dijitButtonNode","titleNode":"dijitButtonContents","_popupStateNode":"dijitDownArrowButton"},_focusedNode:null,_onButtonKeyPress:function(evt){if(evt.charOrCode==dojo.keys[this.isLeftToRight()?"RIGHT_ARROW":"LEFT_ARROW"]){dijit.focus(this._popupStateNode);dojo.stopEvent(evt);}},_onArrowKeyPress:function(evt){if(evt.charOrCode==dojo.keys[this.isLeftToRight()?"LEFT_ARROW":"RIGHT_ARROW"]){dijit.focus(this.titleNode);dojo.stopEvent(evt);}},focus:function(_1e9){dijit.focus(_1e9=="start"?this.titleNode:this._popupStateNode);}});dojo.declare("dijit.form.ToggleButton",dijit.form.Button,{baseClass:"dijitToggleButton",checked:false,attributeMap:dojo.mixin(dojo.clone(dijit.form.Button.prototype.attributeMap),{checked:"focusNode"}),_clicked:function(evt){this.set("checked",!this.checked);},_setCheckedAttr:function(_1ea,_1eb){this.checked=_1ea;dojo.attr(this.focusNode||this.domNode,"checked",_1ea);dijit.setWaiState(this.focusNode||this.domNode,"pressed",_1ea);this._handleOnChange(_1ea,_1eb);},setChecked:function(_1ec){dojo.deprecated("setChecked("+_1ec+") is deprecated. Use set('checked',"+_1ec+") instead.","","2.0");this.set("checked",_1ec);},reset:function(){this._hasBeenBlurred=false;this.set("checked",this.params.checked||false);}});}if(!dojo._hasResource["dijit._editor._Plugin"]){dojo._hasResource["dijit._editor._Plugin"]=true;dojo.provide("dijit._editor._Plugin");dojo.declare("dijit._editor._Plugin",null,{constructor:function(args,node){this.params=args||{};dojo.mixin(this,this.params);this._connects=[];},editor:null,iconClassPrefix:"dijitEditorIcon",button:null,command:"",useDefaultCommand:true,buttonClass:dijit.form.Button,getLabel:function(key){return this.editor.commands[key];},_initButton:function(){if(this.command.length){var _1ed=this.getLabel(this.command),_1ee=this.editor,_1ef=this.iconClassPrefix+" "+this.iconClassPrefix+this.command.charAt(0).toUpperCase()+this.command.substr(1);if(!this.button){var _1f0=dojo.mixin({label:_1ed,dir:_1ee.dir,lang:_1ee.lang,showLabel:false,iconClass:_1ef,dropDown:this.dropDown,tabIndex:"-1"},this.params||{});this.button=new this.buttonClass(_1f0);}}},destroy:function(){dojo.forEach(this._connects,dojo.disconnect);if(this.dropDown){this.dropDown.destroyRecursive();}},connect:function(o,f,tf){this._connects.push(dojo.connect(o,f,this,tf));},updateState:function(){var e=this.editor,c=this.command,_1f1,_1f2;if(!e||!e.isLoaded||!c.length){return;}if(this.button){try{_1f2=e.queryCommandEnabled(c);if(this.enabled!==_1f2){this.enabled=_1f2;this.button.set("disabled",!_1f2);}if(typeof this.button.checked=="boolean"){_1f1=e.queryCommandState(c);if(this.checked!==_1f1){this.checked=_1f1;this.button.set("checked",e.queryCommandState(c));}}}catch(e){}}},setEditor:function(_1f3){this.editor=_1f3;this._initButton();if(this.button&&this.useDefaultCommand){if(this.editor.queryCommandAvailable(this.command)){this.connect(this.button,"onClick",dojo.hitch(this.editor,"execCommand",this.command,this.commandArg));}else{this.button.domNode.style.display="none";}}this.connect(this.editor,"onNormalizedDisplayChanged","updateState");},setToolbar:function(_1f4){if(this.button){_1f4.addChild(this.button);}}});}if(!dojo._hasResource["dijit._editor.plugins.EnterKeyHandling"]){dojo._hasResource["dijit._editor.plugins.EnterKeyHandling"]=true;dojo.provide("dijit._editor.plugins.EnterKeyHandling");dojo.declare("dijit._editor.plugins.EnterKeyHandling",dijit._editor._Plugin,{blockNodeForEnter:"BR",constructor:function(args){if(args){dojo.mixin(this,args);}},setEditor:function(_1f5){this.editor=_1f5;if(this.blockNodeForEnter=="BR"){if(dojo.isIE){_1f5.contentDomPreFilters.push(dojo.hitch(this,"regularPsToSingleLinePs"));_1f5.contentDomPostFilters.push(dojo.hitch(this,"singleLinePsToRegularPs"));_1f5.onLoadDeferred.addCallback(dojo.hitch(this,"_fixNewLineBehaviorForIE"));}else{_1f5.onLoadDeferred.addCallback(dojo.hitch(this,function(d){try{this.editor.document.execCommand("insertBrOnReturn",false,true);}catch(e){}return d;}));}}else{if(this.blockNodeForEnter){dojo["require"]("dijit._editor.range");var h=dojo.hitch(this,this.handleEnterKey);_1f5.addKeyHandler(13,0,0,h);_1f5.addKeyHandler(13,0,1,h);this.connect(this.editor,"onKeyPressed","onKeyPressed");}}},onKeyPressed:function(e){if(this._checkListLater){if(dojo.withGlobal(this.editor.window,"isCollapsed",dijit)){var _1f6=dojo.withGlobal(this.editor.window,"getAncestorElement",dijit._editor.selection,["LI"]);if(!_1f6){dijit._editor.RichText.prototype.execCommand.call(this.editor,"formatblock",this.blockNodeForEnter);var _1f7=dojo.withGlobal(this.editor.window,"getAncestorElement",dijit._editor.selection,[this.blockNodeForEnter]);if(_1f7){_1f7.innerHTML=this.bogusHtmlContent;if(dojo.isIE){var r=this.editor.document.selection.createRange();r.move("character",-1);r.select();}}else{console.error("onKeyPressed: Cannot find the new block node");}}else{if(dojo.isMoz){if(_1f6.parentNode.parentNode.nodeName=="LI"){_1f6=_1f6.parentNode.parentNode;}}var fc=_1f6.firstChild;if(fc&&fc.nodeType==1&&(fc.nodeName=="UL"||fc.nodeName=="OL")){_1f6.insertBefore(fc.ownerDocument.createTextNode(" "),fc);var _1f8=dijit.range.create(this.editor.window);_1f8.setStart(_1f6.firstChild,0);var _1f9=dijit.range.getSelection(this.editor.window,true);_1f9.removeAllRanges();_1f9.addRange(_1f8);}}}this._checkListLater=false;}if(this._pressedEnterInBlock){if(this._pressedEnterInBlock.previousSibling){this.removeTrailingBr(this._pressedEnterInBlock.previousSibling);}delete this._pressedEnterInBlock;}},bogusHtmlContent:" ",blockNodes:/^(?:P|H1|H2|H3|H4|H5|H6|LI)$/,handleEnterKey:function(e){var _1fa,_1fb,_1fc,doc=this.editor.document,br;if(e.shiftKey){var _1fd=dojo.withGlobal(this.editor.window,"getParentElement",dijit._editor.selection);var _1fe=dijit.range.getAncestor(_1fd,this.blockNodes);if(_1fe){if(!e.shiftKey&&_1fe.tagName=="LI"){return true;}_1fa=dijit.range.getSelection(this.editor.window);_1fb=_1fa.getRangeAt(0);if(!_1fb.collapsed){_1fb.deleteContents();_1fa=dijit.range.getSelection(this.editor.window);_1fb=_1fa.getRangeAt(0);}if(dijit.range.atBeginningOfContainer(_1fe,_1fb.startContainer,_1fb.startOffset)){if(e.shiftKey){br=doc.createElement("br");_1fc=dijit.range.create(this.editor.window);_1fe.insertBefore(br,_1fe.firstChild);_1fc.setStartBefore(br.nextSibling);_1fa.removeAllRanges();_1fa.addRange(_1fc);}else{dojo.place(br,_1fe,"before");}}else{if(dijit.range.atEndOfContainer(_1fe,_1fb.startContainer,_1fb.startOffset)){_1fc=dijit.range.create(this.editor.window);br=doc.createElement("br");if(e.shiftKey){_1fe.appendChild(br);_1fe.appendChild(doc.createTextNode(" "));_1fc.setStart(_1fe.lastChild,0);}else{dojo.place(br,_1fe,"after");_1fc.setStartAfter(_1fe);}_1fa.removeAllRanges();_1fa.addRange(_1fc);}else{return true;}}}else{dijit._editor.RichText.prototype.execCommand.call(this.editor,"inserthtml","<br>");}return false;}var _1ff=true;_1fa=dijit.range.getSelection(this.editor.window);_1fb=_1fa.getRangeAt(0);if(!_1fb.collapsed){_1fb.deleteContents();_1fa=dijit.range.getSelection(this.editor.window);_1fb=_1fa.getRangeAt(0);}var _200=dijit.range.getBlockAncestor(_1fb.endContainer,null,this.editor.editNode);var _201=_200.blockNode;if((this._checkListLater=(_201&&(_201.nodeName=="LI"||_201.parentNode.nodeName=="LI")))){if(dojo.isMoz){this._pressedEnterInBlock=_201;}if(/^(\s| |\xA0|<span\b[^>]*\bclass=['"]Apple-style-span['"][^>]*>(\s| |\xA0)<\/span>)?(<br>)?$/.test(_201.innerHTML)){_201.innerHTML="";if(dojo.isWebKit){_1fc=dijit.range.create(this.editor.window);_1fc.setStart(_201,0);_1fa.removeAllRanges();_1fa.addRange(_1fc);}this._checkListLater=false;}return true;}if(!_200.blockNode||_200.blockNode===this.editor.editNode){try{dijit._editor.RichText.prototype.execCommand.call(this.editor,"formatblock",this.blockNodeForEnter);}catch(e2){}_200={blockNode:dojo.withGlobal(this.editor.window,"getAncestorElement",dijit._editor.selection,[this.blockNodeForEnter]),blockContainer:this.editor.editNode};if(_200.blockNode){if(_200.blockNode!=this.editor.editNode&&(!(_200.blockNode.textContent||_200.blockNode.innerHTML).replace(/^\s+|\s+$/g,"").length)){this.removeTrailingBr(_200.blockNode);return false;}}else{_200.blockNode=this.editor.editNode;}_1fa=dijit.range.getSelection(this.editor.window);_1fb=_1fa.getRangeAt(0);}var _202=doc.createElement(this.blockNodeForEnter);_202.innerHTML=this.bogusHtmlContent;this.removeTrailingBr(_200.blockNode);if(dijit.range.atEndOfContainer(_200.blockNode,_1fb.endContainer,_1fb.endOffset)){if(_200.blockNode===_200.blockContainer){_200.blockNode.appendChild(_202);}else{dojo.place(_202,_200.blockNode,"after");}_1ff=false;_1fc=dijit.range.create(this.editor.window);_1fc.setStart(_202,0);_1fa.removeAllRanges();_1fa.addRange(_1fc);if(this.editor.height){dojo.window.scrollIntoView(_202);}}else{if(dijit.range.atBeginningOfContainer(_200.blockNode,_1fb.startContainer,_1fb.startOffset)){dojo.place(_202,_200.blockNode,_200.blockNode===_200.blockContainer?"first":"before");if(_202.nextSibling&&this.editor.height){_1fc=dijit.range.create(this.editor.window);_1fc.setStart(_202.nextSibling,0);_1fa.removeAllRanges();_1fa.addRange(_1fc);dojo.window.scrollIntoView(_202.nextSibling);}_1ff=false;}else{if(_200.blockNode===_200.blockContainer){_200.blockNode.appendChild(_202);}else{dojo.place(_202,_200.blockNode,"after");}_1ff=false;if(_200.blockNode.style){if(_202.style){if(_200.blockNode.style.cssText){_202.style.cssText=_200.blockNode.style.cssText;}}}var rs=_1fb.startContainer;if(rs&&rs.nodeType==3){var _203,_204;var txt=rs.nodeValue;var _205=doc.createTextNode(txt.substring(0,_1fb.startOffset));var _206=doc.createTextNode(txt.substring(_1fb.startOffset,txt.length));dojo.place(_205,rs,"before");dojo.place(_206,rs,"after");dojo.destroy(rs);var _207=_205.parentNode;while(_207!==_200.blockNode){var tg=_207.tagName;var _208=doc.createElement(tg);if(_207.style){if(_208.style){if(_207.style.cssText){_208.style.cssText=_207.style.cssText;}}}_203=_206;while(_203){_204=_203.nextSibling;_208.appendChild(_203);_203=_204;}dojo.place(_208,_207,"after");_205=_207;_206=_208;_207=_207.parentNode;}_203=_206;if(_203.nodeType==1||(_203.nodeType==3&&_203.nodeValue)){_202.innerHTML="";}while(_203){_204=_203.nextSibling;_202.appendChild(_203);_203=_204;}}_1fc=dijit.range.create(this.editor.window);_1fc.setStart(_202,0);_1fa.removeAllRanges();_1fa.addRange(_1fc);if(this.editor.height){dijit.scrollIntoView(_202);}if(dojo.isMoz){this._pressedEnterInBlock=_200.blockNode;}}}return _1ff;},removeTrailingBr:function(_209){var para=/P|DIV|LI/i.test(_209.tagName)?_209:dijit._editor.selection.getParentOfType(_209,["P","DIV","LI"]);if(!para){return;}if(para.lastChild){if((para.childNodes.length>1&¶.lastChild.nodeType==3&&/^[\s\xAD]*$/.test(para.lastChild.nodeValue))||para.lastChild.tagName=="BR"){dojo.destroy(para.lastChild);}}if(!para.childNodes.length){para.innerHTML=this.bogusHtmlContent;}},_fixNewLineBehaviorForIE:function(d){var doc=this.editor.document;if(doc.__INSERTED_EDITIOR_NEWLINE_CSS===undefined){var _20a=dojo.create("style",{type:"text/css"},doc.getElementsByTagName("head")[0]);_20a.styleSheet.cssText="p{margin:0;}";this.editor.document.__INSERTED_EDITIOR_NEWLINE_CSS=true;}return d;},regularPsToSingleLinePs:function(_20b,_20c){function _20d(el){function _20e(_20f){var newP=_20f[0].ownerDocument.createElement("p");_20f[0].parentNode.insertBefore(newP,_20f[0]);dojo.forEach(_20f,function(node){newP.appendChild(node);});};var _210=0;var _211=[];var _212;while(_210<el.childNodes.length){_212=el.childNodes[_210];if(_212.nodeType==3||(_212.nodeType==1&&_212.nodeName!="BR"&&dojo.style(_212,"display")!="block")){_211.push(_212);}else{var _213=_212.nextSibling;if(_211.length){_20e(_211);_210=(_210+1)-_211.length;if(_212.nodeName=="BR"){dojo.destroy(_212);}}_211=[];}_210++;}if(_211.length){_20e(_211);}};function _214(el){var _215=null;var _216=[];var _217=el.childNodes.length-1;for(var i=_217;i>=0;i--){_215=el.childNodes[i];if(_215.nodeName=="BR"){var newP=_215.ownerDocument.createElement("p");dojo.place(newP,el,"after");if(_216.length==0&&i!=_217){newP.innerHTML=" ";}dojo.forEach(_216,function(node){newP.appendChild(node);});dojo.destroy(_215);_216=[];}else{_216.unshift(_215);}}};var _218=[];var ps=_20b.getElementsByTagName("p");dojo.forEach(ps,function(p){_218.push(p);});dojo.forEach(_218,function(p){var _219=p.previousSibling;if((_219)&&(_219.nodeType==1)&&(_219.nodeName=="P"||dojo.style(_219,"display")!="block")){var newP=p.parentNode.insertBefore(this.document.createElement("p"),p);newP.innerHTML=_20c?"":" ";}_214(p);},this.editor);_20d(_20b);return _20b;},singleLinePsToRegularPs:function(_21a){function _21b(node){var ps=node.getElementsByTagName("p");var _21c=[];for(var i=0;i<ps.length;i++){var p=ps[i];var _21d=false;for(var k=0;k<_21c.length;k++){if(_21c[k]===p.parentNode){_21d=true;break;}}if(!_21d){_21c.push(p.parentNode);}}return _21c;};function _21e(node){return (!node.childNodes.length||node.innerHTML==" ");};var _21f=_21b(_21a);for(var i=0;i<_21f.length;i++){var _220=_21f[i];var _221=null;var node=_220.firstChild;var _222=null;while(node){if(node.nodeType!=1||node.tagName!="P"||(node.getAttributeNode("style")||{}).specified){_221=null;}else{if(_21e(node)){_222=node;_221=null;}else{if(_221==null){_221=node;}else{if((!_221.lastChild||_221.lastChild.nodeName!="BR")&&(node.firstChild)&&(node.firstChild.nodeName!="BR")){_221.appendChild(this.editor.document.createElement("br"));}while(node.firstChild){_221.appendChild(node.firstChild);}_222=node;}}}node=node.nextSibling;if(_222){dojo.destroy(_222);_222=null;}}}return _21a;}});}if(!dojo._hasResource["dijit.Editor"]){dojo._hasResource["dijit.Editor"]=true;dojo.provide("dijit.Editor");dojo.declare("dijit.Editor",dijit._editor.RichText,{plugins:null,extraPlugins:null,constructor:function(){if(!dojo.isArray(this.plugins)){this.plugins=["undo","redo","|","cut","copy","paste","|","bold","italic","underline","strikethrough","|","insertOrderedList","insertUnorderedList","indent","outdent","|","justifyLeft","justifyRight","justifyCenter","justifyFull","dijit._editor.plugins.EnterKeyHandling"];}this._plugins=[];this._editInterval=this.editActionInterval*1000;if(dojo.isIE){this.events.push("onBeforeDeactivate");this.events.push("onBeforeActivate");}},postCreate:function(){this._steps=this._steps.slice(0);this._undoedSteps=this._undoedSteps.slice(0);if(dojo.isArray(this.extraPlugins)){this.plugins=this.plugins.concat(this.extraPlugins);}this.setValueDeferred=new dojo.Deferred();this.inherited(arguments);this.commands=dojo.i18n.getLocalization("dijit._editor","commands",this.lang);if(!this.toolbar){this.toolbar=new dijit.Toolbar({dir:this.dir,lang:this.lang});this.header.appendChild(this.toolbar.domNode);}dojo.forEach(this.plugins,this.addPlugin,this);this.setValueDeferred.callback(true);dojo.addClass(this.iframe.parentNode,"dijitEditorIFrameContainer");dojo.addClass(this.iframe,"dijitEditorIFrame");dojo.attr(this.iframe,"allowTransparency",true);if(dojo.isWebKit){dojo.style(this.domNode,"KhtmlUserSelect","none");}this.toolbar.startup();this.onNormalizedDisplayChanged();},destroy:function(){dojo.forEach(this._plugins,function(p){if(p&&p.destroy){p.destroy();}});this._plugins=[];this.toolbar.destroyRecursive();delete this.toolbar;this.inherited(arguments);},addPlugin:function(_223,_224){var args=dojo.isString(_223)?{name:_223}:_223;if(!args.setEditor){var o={"args":args,"plugin":null,"editor":this};dojo.publish(dijit._scopeName+".Editor.getPlugin",[o]);if(!o.plugin){var pc=dojo.getObject(args.name);if(pc){o.plugin=new pc(args);}}if(!o.plugin){console.warn("Cannot find plugin",_223);return;}_223=o.plugin;}if(arguments.length>1){this._plugins[_224]=_223;}else{this._plugins.push(_223);}_223.setEditor(this);if(dojo.isFunction(_223.setToolbar)){_223.setToolbar(this.toolbar);}},startup:function(){},resize:function(size){if(size){dijit.layout._LayoutWidget.prototype.resize.apply(this,arguments);}},layout:function(){var _225=(this._contentBox.h-(this.getHeaderHeight()+this.getFooterHeight()+dojo._getPadBorderExtents(this.iframe.parentNode).h+dojo._getMarginExtents(this.iframe.parentNode).h));this.editingArea.style.height=_225+"px";if(this.iframe){this.iframe.style.height="100%";}this._layoutMode=true;},_onIEMouseDown:function(e){var _226;var b=this.document.body;var _227=b.clientWidth;var _228=b.clientHeight;var _229=b.clientLeft;var _22a=b.offsetWidth;var _22b=b.offsetHeight;var _22c=b.offsetLeft;bodyDir=b.dir?b.dir.toLowerCase():"";if(bodyDir!="rtl"){if(_227<_22a&&e.x>_227&&e.x<_22a){_226=true;}}else{if(e.x<_229&&e.x>_22c){_226=true;}}if(!_226){if(_228<_22b&&e.y>_228&&e.y<_22b){_226=true;}}if(!_226){delete this._cursorToStart;delete this._savedSelection;if(e.target.tagName=="BODY"){setTimeout(dojo.hitch(this,"placeCursorAtEnd"),0);}this.inherited(arguments);}},onBeforeActivate:function(e){this._restoreSelection();},onBeforeDeactivate:function(e){if(this.customUndo){this.endEditing(true);}if(e.target.tagName!="BODY"){this._saveSelection();}},customUndo:dojo.isIE||dojo.isWebKit,editActionInterval:3,beginEditing:function(cmd){if(!this._inEditing){this._inEditing=true;this._beginEditing(cmd);}if(this.editActionInterval>0){if(this._editTimer){clearTimeout(this._editTimer);}this._editTimer=setTimeout(dojo.hitch(this,this.endEditing),this._editInterval);}},_steps:[],_undoedSteps:[],execCommand:function(cmd){if(this.customUndo&&(cmd=="undo"||cmd=="redo")){return this[cmd]();}else{if(this.customUndo){this.endEditing();this._beginEditing();}var r;try{r=this.inherited("execCommand",arguments);if(dojo.isWebKit&&cmd=="paste"&&!r){throw {code:1011};}}catch(e){if(e.code==1011&&/copy|cut|paste/.test(cmd)){var sub=dojo.string.substitute,_22d={cut:"X",copy:"C",paste:"V"};alert(sub(this.commands.systemShortcut,[this.commands[cmd],sub(this.commands[dojo.isMac?"appleKey":"ctrlKey"],[_22d[cmd]])]));}r=false;}if(this.customUndo){this._endEditing();}return r;}},queryCommandEnabled:function(cmd){if(this.customUndo&&(cmd=="undo"||cmd=="redo")){return cmd=="undo"?(this._steps.length>1):(this._undoedSteps.length>0);}else{return this.inherited("queryCommandEnabled",arguments);}},_moveToBookmark:function(b){var _22e=b.mark;var mark=b.mark;var col=b.isCollapsed;var r,_22f,_230,sel;if(mark){if(dojo.isIE){if(dojo.isArray(mark)){_22e=[];dojo.forEach(mark,function(n){_22e.push(dijit.range.getNode(n,this.editNode));},this);dojo.withGlobal(this.window,"moveToBookmark",dijit,[{mark:_22e,isCollapsed:col}]);}else{if(mark.startContainer&&mark.endContainer){sel=dijit.range.getSelection(this.window);if(sel&&sel.removeAllRanges){sel.removeAllRanges();r=dijit.range.create(this.window);_22f=dijit.range.getNode(mark.startContainer,this.editNode);_230=dijit.range.getNode(mark.endContainer,this.editNode);if(_22f&&_230){r.setStart(_22f,mark.startOffset);r.setEnd(_230,mark.endOffset);sel.addRange(r);}}}}}else{sel=dijit.range.getSelection(this.window);if(sel&&sel.removeAllRanges){sel.removeAllRanges();r=dijit.range.create(this.window);_22f=dijit.range.getNode(mark.startContainer,this.editNode);_230=dijit.range.getNode(mark.endContainer,this.editNode);if(_22f&&_230){r.setStart(_22f,mark.startOffset);r.setEnd(_230,mark.endOffset);sel.addRange(r);}}}}},_changeToStep:function(from,to){this.setValue(to.text);var b=to.bookmark;if(!b){return;}this._moveToBookmark(b);},undo:function(){var ret=false;if(!this._undoRedoActive){this._undoRedoActive=true;this.endEditing(true);var s=this._steps.pop();if(s&&this._steps.length>0){this.focus();this._changeToStep(s,this._steps[this._steps.length-1]);this._undoedSteps.push(s);this.onDisplayChanged();delete this._undoRedoActive;ret=true;}delete this._undoRedoActive;}return ret;},redo:function(){var ret=false;if(!this._undoRedoActive){this._undoRedoActive=true;this.endEditing(true);var s=this._undoedSteps.pop();if(s&&this._steps.length>0){this.focus();this._changeToStep(this._steps[this._steps.length-1],s);this._steps.push(s);this.onDisplayChanged();ret=true;}delete this._undoRedoActive;}return ret;},endEditing:function(_231){if(this._editTimer){clearTimeout(this._editTimer);}if(this._inEditing){this._endEditing(_231);this._inEditing=false;}},_getBookmark:function(){var b=dojo.withGlobal(this.window,dijit.getBookmark);var tmp=[];if(b&&b.mark){var mark=b.mark;if(dojo.isIE){var sel=dijit.range.getSelection(this.window);if(!dojo.isArray(mark)){if(sel){var _232;if(sel.rangeCount){_232=sel.getRangeAt(0);}if(_232){b.mark=_232.cloneRange();}else{b.mark=dojo.withGlobal(this.window,dijit.getBookmark);}}}else{dojo.forEach(b.mark,function(n){tmp.push(dijit.range.getIndex(n,this.editNode).o);},this);b.mark=tmp;}}try{if(b.mark&&b.mark.startContainer){tmp=dijit.range.getIndex(b.mark.startContainer,this.editNode).o;b.mark={startContainer:tmp,startOffset:b.mark.startOffset,endContainer:b.mark.endContainer===b.mark.startContainer?tmp:dijit.range.getIndex(b.mark.endContainer,this.editNode).o,endOffset:b.mark.endOffset};}}catch(e){b.mark=null;}}return b;},_beginEditing:function(cmd){if(this._steps.length===0){this._steps.push({"text":dijit._editor.getChildrenHtml(this.editNode),"bookmark":this._getBookmark()});}},_endEditing:function(_233){var v=dijit._editor.getChildrenHtml(this.editNode);this._undoedSteps=[];this._steps.push({text:v,bookmark:this._getBookmark()});},onKeyDown:function(e){if(!dojo.isIE&&!this.iframe&&e.keyCode==dojo.keys.TAB&&!this.tabIndent){this._saveSelection();}if(!this.customUndo){this.inherited(arguments);return;}var k=e.keyCode,ks=dojo.keys;if(e.ctrlKey&&!e.altKey){if(k==90||k==122){dojo.stopEvent(e);this.undo();return;}else{if(k==89||k==121){dojo.stopEvent(e);this.redo();return;}}}this.inherited(arguments);switch(k){case ks.ENTER:case ks.BACKSPACE:case ks.DELETE:this.beginEditing();break;case 88:case 86:if(e.ctrlKey&&!e.altKey&&!e.metaKey){this.endEditing();if(e.keyCode==88){this.beginEditing("cut");setTimeout(dojo.hitch(this,this.endEditing),1);}else{this.beginEditing("paste");setTimeout(dojo.hitch(this,this.endEditing),1);}break;}default:if(!e.ctrlKey&&!e.altKey&&!e.metaKey&&(e.keyCode<dojo.keys.F1||e.keyCode>dojo.keys.F15)){this.beginEditing();break;}case ks.ALT:this.endEditing();break;case ks.UP_ARROW:case ks.DOWN_ARROW:case ks.LEFT_ARROW:case ks.RIGHT_ARROW:case ks.HOME:case ks.END:case ks.PAGE_UP:case ks.PAGE_DOWN:this.endEditing(true);break;case ks.CTRL:case ks.SHIFT:case ks.TAB:break;}},_onBlur:function(){this.inherited("_onBlur",arguments);this.endEditing(true);},_saveSelection:function(){this._savedSelection=this._getBookmark();},_restoreSelection:function(){if(this._savedSelection){delete this._cursorToStart;if(dojo.withGlobal(this.window,"isCollapsed",dijit)){this._moveToBookmark(this._savedSelection);}delete this._savedSelection;}},onClick:function(){this.endEditing(true);this.inherited(arguments);},_setDisabledAttr:function(_234){if(!this.disabled&&_234){this._buttonEnabledPlugins=dojo.filter(this._plugins,function(p){if(p&&p.button&&!p.button.get("disabled")){p.button.set("disabled",true);return true;}return false;});}else{if(this.disabled&&!_234){dojo.forEach(this._buttonEnabledPlugins,function(p){p.button.attr("disabled",false);p.updateState&&p.updateState();});}}this.inherited(arguments);},_setStateClass:function(){this.inherited(arguments);if(this.document&&this.document.body){dojo.style(this.document.body,"color",dojo.style(this.iframe,"color"));}}});dojo.subscribe(dijit._scopeName+".Editor.getPlugin",null,function(o){if(o.plugin){return;}var args=o.args,p;var _235=dijit._editor._Plugin;var name=args.name;switch(name){case "undo":case "redo":case "cut":case "copy":case "paste":case "insertOrderedList":case "insertUnorderedList":case "indent":case "outdent":case "justifyCenter":case "justifyFull":case "justifyLeft":case "justifyRight":case "delete":case "selectAll":case "removeFormat":case "unlink":case "insertHorizontalRule":p=new _235({command:name});break;case "bold":case "italic":case "underline":case "strikethrough":case "subscript":case "superscript":p=new _235({buttonClass:dijit.form.ToggleButton,command:name});break;case "|":p=new _235({button:new dijit.ToolbarSeparator(),setEditor:function(_236){this.editor=_236;}});}o.plugin=p;});}if(!dojo._hasResource["dojo.regexp"]){dojo._hasResource["dojo.regexp"]=true;dojo.provide("dojo.regexp");dojo.regexp.escapeString=function(str,_237){return str.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,function(ch){if(_237&&_237.indexOf(ch)!=-1){return ch;}return "\\"+ch;});};dojo.regexp.buildGroupRE=function(arr,re,_238){if(!(arr instanceof Array)){return re(arr);}var b=[];for(var i=0;i<arr.length;i++){b.push(re(arr[i]));}return dojo.regexp.group(b.join("|"),_238);};dojo.regexp.group=function(_239,_23a){return "("+(_23a?"?:":"")+_239+")";};}if(!dojo._hasResource["dojo.data.util.sorter"]){dojo._hasResource["dojo.data.util.sorter"]=true;dojo.provide("dojo.data.util.sorter");dojo.data.util.sorter.basicComparator=function(a,b){var r=-1;if(a===null){a=undefined;}if(b===null){b=undefined;}if(a==b){r=0;}else{if(a>b||a==null){r=1;}}return r;};dojo.data.util.sorter.createSortFunction=function(_23b,_23c){var _23d=[];function _23e(attr,dir,comp,s){return function(_23f,_240){var a=s.getValue(_23f,attr);var b=s.getValue(_240,attr);return dir*comp(a,b);};};var _241;var map=_23c.comparatorMap;var bc=dojo.data.util.sorter.basicComparator;for(var i=0;i<_23b.length;i++){_241=_23b[i];var attr=_241.attribute;if(attr){var dir=(_241.descending)?-1:1;var comp=bc;if(map){if(typeof attr!=="string"&&("toString" in attr)){attr=attr.toString();}comp=map[attr]||bc;}_23d.push(_23e(attr,dir,comp,_23c));}}return function(rowA,rowB){var i=0;while(i<_23d.length){var ret=_23d[i++](rowA,rowB);if(ret!==0){return ret;}}return 0;};};}if(!dojo._hasResource["dojo.data.util.simpleFetch"]){dojo._hasResource["dojo.data.util.simpleFetch"]=true;dojo.provide("dojo.data.util.simpleFetch");dojo.data.util.simpleFetch.fetch=function(_242){_242=_242||{};if(!_242.store){_242.store=this;}var self=this;var _243=function(_244,_245){if(_245.onError){var _246=_245.scope||dojo.global;_245.onError.call(_246,_244,_245);}};var _247=function(_248,_249){var _24a=_249.abort||null;var _24b=false;var _24c=_249.start?_249.start:0;var _24d=(_249.count&&(_249.count!==Infinity))?(_24c+_249.count):_248.length;_249.abort=function(){_24b=true;if(_24a){_24a.call(_249);}};var _24e=_249.scope||dojo.global;if(!_249.store){_249.store=self;}if(_249.onBegin){_249.onBegin.call(_24e,_248.length,_249);}if(_249.sort){_248.sort(dojo.data.util.sorter.createSortFunction(_249.sort,self));}if(_249.onItem){for(var i=_24c;(i<_248.length)&&(i<_24d);++i){var item=_248[i];if(!_24b){_249.onItem.call(_24e,item,_249);}}}if(_249.onComplete&&!_24b){var _24f=null;if(!_249.onItem){_24f=_248.slice(_24c,_24d);}_249.onComplete.call(_24e,_24f,_249);}};this._fetchItems(_242,_247,_243);return _242;};}if(!dojo._hasResource["dojo.data.util.filter"]){dojo._hasResource["dojo.data.util.filter"]=true;dojo.provide("dojo.data.util.filter");dojo.data.util.filter.patternToRegExp=function(_250,_251){var rxp="^";var c=null;for(var i=0;i<_250.length;i++){c=_250.charAt(i);switch(c){case "\\":rxp+=c;i++;rxp+=_250.charAt(i);break;case "*":rxp+=".*";break;case "?":rxp+=".";break;case "$":case "^":case "/":case "+":case ".":case "|":case "(":case ")":case "{":case "}":case "[":case "]":rxp+="\\";default:rxp+=c;}}rxp+="$";if(_251){return new RegExp(rxp,"mi");}else{return new RegExp(rxp,"m");}};}if(!dojo._hasResource["dijit.form.TextBox"]){dojo._hasResource["dijit.form.TextBox"]=true;dojo.provide("dijit.form.TextBox");dojo.declare("dijit.form.TextBox",dijit.form._FormValueWidget,{trim:false,uppercase:false,lowercase:false,propercase:false,maxLength:"",selectOnClick:false,placeHolder:"",templateString:dojo.cache("dijit.form","templates/TextBox.html","<div class=\"dijit dijitReset dijitInline dijitLeft\" id=\"widget_${id}\" waiRole=\"presentation\"\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class=\"dijitReset dijitInputInner\" dojoAttachPoint='textbox,focusNode' autocomplete=\"off\"\n\t\t\t${!nameAttrSetting} type='${type}'\n\t/></div\n></div>\n"),_singleNodeTemplate:"<input class=\"dijit dijitReset dijitLeft dijitInputField\" dojoAttachPoint=\"textbox,focusNode\" autocomplete=\"off\" type=\"${type}\" ${!nameAttrSetting} />",_buttonInputDisabled:dojo.isIE?"disabled":"",baseClass:"dijitTextBox",attributeMap:dojo.delegate(dijit.form._FormValueWidget.prototype.attributeMap,{maxLength:"focusNode"}),postMixInProperties:function(){var type=this.type.toLowerCase();if(this.templateString.toLowerCase()=="input"||((type=="hidden"||type=="file")&&this.templateString==dijit.form.TextBox.prototype.templateString)){this.templateString=this._singleNodeTemplate;}this.inherited(arguments);},_setPlaceHolderAttr:function(v){this.placeHolder=v;if(!this._phspan){this._attachPoints.push("_phspan");this._phspan=dojo.create("span",{className:"dijitPlaceHolder dijitInputField"},this.textbox,"after");}this._phspan.innerHTML="";this._phspan.appendChild(document.createTextNode(v));this._updatePlaceHolder();},_updatePlaceHolder:function(){if(this._phspan){this._phspan.style.display=(this.placeHolder&&!this._focused&&!this.textbox.value)?"":"none";}},_getValueAttr:function(){return this.parse(this.get("displayedValue"),this.constraints);},_setValueAttr:function(_252,_253,_254){var _255;if(_252!==undefined){_255=this.filter(_252);if(typeof _254!="string"){if(_255!==null&&((typeof _255!="number")||!isNaN(_255))){_254=this.filter(this.format(_255,this.constraints));}else{_254="";}}}if(_254!=null&&_254!=undefined&&((typeof _254)!="number"||!isNaN(_254))&&this.textbox.value!=_254){this.textbox.value=_254;}this._updatePlaceHolder();this.inherited(arguments,[_255,_253]);},displayedValue:"",getDisplayedValue:function(){dojo.deprecated(this.declaredClass+"::getDisplayedValue() is deprecated. Use set('displayedValue') instead.","","2.0");return this.get("displayedValue");},_getDisplayedValueAttr:function(){return this.filter(this.textbox.value);},setDisplayedValue:function(_256){dojo.deprecated(this.declaredClass+"::setDisplayedValue() is deprecated. Use set('displayedValue', ...) instead.","","2.0");this.set("displayedValue",_256);},_setDisplayedValueAttr:function(_257){if(_257===null||_257===undefined){_257="";}else{if(typeof _257!="string"){_257=String(_257);}}this.textbox.value=_257;this._setValueAttr(this.get("value"),undefined,_257);},format:function(_258,_259){return ((_258==null||_258==undefined)?"":(_258.toString?_258.toString():_258));},parse:function(_25a,_25b){return _25a;},_refreshState:function(){},_onInput:function(e){if(e&&e.type&&/key/i.test(e.type)&&e.keyCode){switch(e.keyCode){case dojo.keys.SHIFT:case dojo.keys.ALT:case dojo.keys.CTRL:case dojo.keys.TAB:return;}}if(this.intermediateChanges){var _25c=this;setTimeout(function(){_25c._handleOnChange(_25c.get("value"),false);},0);}this._refreshState();},postCreate:function(){if(dojo.isIE){var s=dojo.getComputedStyle(this.domNode);if(s){var ff=s.fontFamily;if(ff){var _25d=this.domNode.getElementsByTagName("INPUT");if(_25d){for(var i=0;i<_25d.length;i++){_25d[i].style.fontFamily=ff;}}}}}this.textbox.setAttribute("value",this.textbox.value);this.inherited(arguments);if(dojo.isMoz||dojo.isOpera){this.connect(this.textbox,"oninput",this._onInput);}else{this.connect(this.textbox,"onkeydown",this._onInput);this.connect(this.textbox,"onkeyup",this._onInput);this.connect(this.textbox,"onpaste",this._onInput);this.connect(this.textbox,"oncut",this._onInput);}},_blankValue:"",filter:function(val){if(val===null){return this._blankValue;}if(typeof val!="string"){return val;}if(this.trim){val=dojo.trim(val);}if(this.uppercase){val=val.toUpperCase();}if(this.lowercase){val=val.toLowerCase();}if(this.propercase){val=val.replace(/[^\s]+/g,function(word){return word.substring(0,1).toUpperCase()+word.substring(1);});}return val;},_setBlurValue:function(){this._setValueAttr(this.get("value"),true);},_onBlur:function(e){if(this.disabled){return;}this._setBlurValue();this.inherited(arguments);if(this._selectOnClickHandle){this.disconnect(this._selectOnClickHandle);}if(this.selectOnClick&&dojo.isMoz){this.textbox.selectionStart=this.textbox.selectionEnd=undefined;}this._updatePlaceHolder();},_onFocus:function(by){if(this.disabled||this.readOnly){return;}if(this.selectOnClick&&by=="mouse"){this._selectOnClickHandle=this.connect(this.domNode,"onmouseup",function(){this.disconnect(this._selectOnClickHandle);var _25e;if(dojo.isIE){var _25f=dojo.doc.selection.createRange();var _260=_25f.parentElement();_25e=_260==this.textbox&&_25f.text.length==0;}else{_25e=this.textbox.selectionStart==this.textbox.selectionEnd;}if(_25e){dijit.selectInputText(this.textbox);}});}this._updatePlaceHolder();this._refreshState();this.inherited(arguments);},reset:function(){this.textbox.value="";this.inherited(arguments);}});dijit.selectInputText=function(_261,_262,stop){var _263=dojo.global;var _264=dojo.doc;_261=dojo.byId(_261);if(isNaN(_262)){_262=0;}if(isNaN(stop)){stop=_261.value?_261.value.length:0;}dijit.focus(_261);if(_264["selection"]&&dojo.body()["createTextRange"]){if(_261.createTextRange){var _265=_261.createTextRange();with(_265){collapse(true);moveStart("character",-99999);moveStart("character",_262);moveEnd("character",stop-_262);select();}}}else{if(_263["getSelection"]){if(_261.setSelectionRange){_261.setSelectionRange(_262,stop);}}}};}if(!dojo._hasResource["dijit.Tooltip"]){dojo._hasResource["dijit.Tooltip"]=true;dojo.provide("dijit.Tooltip");dojo.declare("dijit._MasterTooltip",[dijit._Widget,dijit._Templated],{duration:dijit.defaultDuration,templateString:dojo.cache("dijit","templates/Tooltip.html","<div class=\"dijitTooltip dijitTooltipLeft\" id=\"dojoTooltip\">\n\t<div class=\"dijitTooltipContainer dijitTooltipContents\" dojoAttachPoint=\"containerNode\" waiRole='alert'></div>\n\t<div class=\"dijitTooltipConnector\"></div>\n</div>\n"),postCreate:function(){dojo.body().appendChild(this.domNode);this.bgIframe=new dijit.BackgroundIframe(this.domNode);this.fadeIn=dojo.fadeIn({node:this.domNode,duration:this.duration,onEnd:dojo.hitch(this,"_onShow")});this.fadeOut=dojo.fadeOut({node:this.domNode,duration:this.duration,onEnd:dojo.hitch(this,"_onHide")});},show:function(_266,_267,_268,rtl){if(this.aroundNode&&this.aroundNode===_267){return;}if(this.fadeOut.status()=="playing"){this._onDeck=arguments;return;}this.containerNode.innerHTML=_266;var pos=dijit.placeOnScreenAroundElement(this.domNode,_267,dijit.getPopupAroundAlignment((_268&&_268.length)?_268:dijit.Tooltip.defaultPosition,!rtl),dojo.hitch(this,"orient"));dojo.style(this.domNode,"opacity",0);this.fadeIn.play();this.isShowingNow=true;this.aroundNode=_267;},orient:function(node,_269,_26a){node.className="dijitTooltip "+{"BL-TL":"dijitTooltipBelow dijitTooltipABLeft","TL-BL":"dijitTooltipAbove dijitTooltipABLeft","BR-TR":"dijitTooltipBelow dijitTooltipABRight","TR-BR":"dijitTooltipAbove dijitTooltipABRight","BR-BL":"dijitTooltipRight","BL-BR":"dijitTooltipLeft"}[_269+"-"+_26a];},_onShow:function(){if(dojo.isIE){this.domNode.style.filter="";}},hide:function(_26b){if(this._onDeck&&this._onDeck[1]==_26b){this._onDeck=null;}else{if(this.aroundNode===_26b){this.fadeIn.stop();this.isShowingNow=false;this.aroundNode=null;this.fadeOut.play();}else{}}},_onHide:function(){this.domNode.style.cssText="";this.containerNode.innerHTML="";if(this._onDeck){this.show.apply(this,this._onDeck);this._onDeck=null;}}});dijit.showTooltip=function(_26c,_26d,_26e,rtl){if(!dijit._masterTT){dijit._masterTT=new dijit._MasterTooltip();}return dijit._masterTT.show(_26c,_26d,_26e,rtl);};dijit.hideTooltip=function(_26f){if(!dijit._masterTT){dijit._masterTT=new dijit._MasterTooltip();}return dijit._masterTT.hide(_26f);};dojo.declare("dijit.Tooltip",dijit._Widget,{label:"",showDelay:400,connectId:[],position:[],constructor:function(){this._nodeConnectionsById={};},_setConnectIdAttr:function(_270){for(var _271 in this._nodeConnectionsById){this.removeTarget(_271);}dojo.forEach(dojo.isArrayLike(_270)?_270:[_270],this.addTarget,this);},_getConnectIdAttr:function(){var ary=[];for(var id in this._nodeConnectionsById){ary.push(id);}return ary;},addTarget:function(id){var node=dojo.byId(id);if(!node){return;}if(node.id in this._nodeConnectionsById){return;}this._nodeConnectionsById[node.id]=[this.connect(node,"onmouseenter","_onTargetMouseEnter"),this.connect(node,"onmouseleave","_onTargetMouseLeave"),this.connect(node,"onfocus","_onTargetFocus"),this.connect(node,"onblur","_onTargetBlur")];},removeTarget:function(node){var id=node.id||node;if(id in this._nodeConnectionsById){dojo.forEach(this._nodeConnectionsById[id],this.disconnect,this);delete this._nodeConnectionsById[id];}},postCreate:function(){dojo.addClass(this.domNode,"dijitTooltipData");},startup:function(){this.inherited(arguments);var ids=this.connectId;dojo.forEach(dojo.isArrayLike(ids)?ids:[ids],this.addTarget,this);},_onTargetMouseEnter:function(e){this._onHover(e);},_onTargetMouseLeave:function(e){this._onUnHover(e);},_onTargetFocus:function(e){this._focus=true;this._onHover(e);},_onTargetBlur:function(e){this._focus=false;this._onUnHover(e);},_onHover:function(e){if(!this._showTimer){var _272=e.target;this._showTimer=setTimeout(dojo.hitch(this,function(){this.open(_272);}),this.showDelay);}},_onUnHover:function(e){if(this._focus){return;}if(this._showTimer){clearTimeout(this._showTimer);delete this._showTimer;}this.close();},open:function(_273){if(this._showTimer){clearTimeout(this._showTimer);delete this._showTimer;}dijit.showTooltip(this.label||this.domNode.innerHTML,_273,this.position,!this.isLeftToRight());this._connectNode=_273;this.onShow(_273,this.position);},close:function(){if(this._connectNode){dijit.hideTooltip(this._connectNode);delete this._connectNode;this.onHide();}if(this._showTimer){clearTimeout(this._showTimer);delete this._showTimer;}},onShow:function(_274,_275){},onHide:function(){},uninitialize:function(){this.close();this.inherited(arguments);}});dijit.Tooltip.defaultPosition=["after","before"];}if(!dojo._hasResource["dijit.form.ValidationTextBox"]){dojo._hasResource["dijit.form.ValidationTextBox"]=true;dojo.provide("dijit.form.ValidationTextBox");dojo.declare("dijit.form.ValidationTextBox",dijit.form.TextBox,{templateString:dojo.cache("dijit.form","templates/ValidationTextBox.html","<div class=\"dijit dijitReset dijitInlineTable dijitLeft\"\n\tid=\"widget_${id}\" waiRole=\"presentation\"\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"Χ \" type=\"text\" tabIndex=\"-1\" readOnly waiRole=\"presentation\"\n\t/></div\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class=\"dijitReset dijitInputInner\" dojoAttachPoint='textbox,focusNode' autocomplete=\"off\"\n\t\t\t${!nameAttrSetting} type='${type}'\n\t/></div\n></div>\n"),baseClass:"dijitTextBox dijitValidationTextBox",required:false,promptMessage:"",invalidMessage:"$_unset_$",missingMessage:"$_unset_$",constraints:{},regExp:".*",regExpGen:function(_276){return this.regExp;},state:"",tooltipPosition:[],_setValueAttr:function(){this.inherited(arguments);this.validate(this._focused);},validator:function(_277,_278){return (new RegExp("^(?:"+this.regExpGen(_278)+")"+(this.required?"":"?")+"$")).test(_277)&&(!this.required||!this._isEmpty(_277))&&(this._isEmpty(_277)||this.parse(_277,_278)!==undefined);},_isValidSubset:function(){return this.textbox.value.search(this._partialre)==0;},isValid:function(_279){return this.validator(this.textbox.value,this.constraints);},_isEmpty:function(_27a){return /^\s*$/.test(_27a);},getErrorMessage:function(_27b){return (this.required&&this._isEmpty(this.textbox.value))?this.missingMessage:this.invalidMessage;},getPromptMessage:function(_27c){return this.promptMessage;},_maskValidSubsetError:true,validate:function(_27d){var _27e="";var _27f=this.disabled||this.isValid(_27d);if(_27f){this._maskValidSubsetError=true;}var _280=this._isEmpty(this.textbox.value);var _281=!_27f&&!_280&&_27d&&this._isValidSubset();this.state=((_27f||((!this._hasBeenBlurred||_27d)&&_280)||_281)&&this._maskValidSubsetError)?"":"Error";if(this.state=="Error"){this._maskValidSubsetError=_27d;}this._setStateClass();dijit.setWaiState(this.focusNode,"invalid",_27f?"false":"true");if(_27d){if(this.state=="Error"){_27e=this.getErrorMessage(true);}else{_27e=this.getPromptMessage(true);}this._maskValidSubsetError=true;}this.displayMessage(_27e);return _27f;},_message:"",displayMessage:function(_282){if(this._message==_282){return;}this._message=_282;dijit.hideTooltip(this.domNode);if(_282){dijit.showTooltip(_282,this.domNode,this.tooltipPosition,!this.isLeftToRight());}},_refreshState:function(){this.validate(this._focused);this.inherited(arguments);},constructor:function(){this.constraints={};},_setConstraintsAttr:function(_283){if(!_283.locale&&this.lang){_283.locale=this.lang;}this.constraints=_283;this._computePartialRE();},_computePartialRE:function(){var p=this.regExpGen(this.constraints);this.regExp=p;var _284="";if(p!=".*"){this.regExp.replace(/\\.|\[\]|\[.*?[^\\]{1}\]|\{.*?\}|\(\?[=:!]|./g,function(re){switch(re.charAt(0)){case "{":case "+":case "?":case "*":case "^":case "$":case "|":case "(":_284+=re;break;case ")":_284+="|$)";break;default:_284+="(?:"+re+"|$)";break;}});}try{"".search(_284);}catch(e){_284=this.regExp;console.warn("RegExp error in "+this.declaredClass+": "+this.regExp);}this._partialre="^(?:"+_284+")$";},postMixInProperties:function(){this.inherited(arguments);this.messages=dojo.i18n.getLocalization("dijit.form","validate",this.lang);if(this.invalidMessage=="$_unset_$"){this.invalidMessage=this.messages.invalidMessage;}if(!this.invalidMessage){this.invalidMessage=this.promptMessage;}if(this.missingMessage=="$_unset_$"){this.missingMessage=this.messages.missingMessage;}if(!this.missingMessage){this.missingMessage=this.invalidMessage;}this._setConstraintsAttr(this.constraints);},_setDisabledAttr:function(_285){this.inherited(arguments);this._refreshState();},_setRequiredAttr:function(_286){this.required=_286;dijit.setWaiState(this.focusNode,"required",_286);this._refreshState();},reset:function(){this._maskValidSubsetError=true;this.inherited(arguments);},_onBlur:function(){this.displayMessage("");this.inherited(arguments);}});dojo.declare("dijit.form.MappedTextBox",dijit.form.ValidationTextBox,{postMixInProperties:function(){this.inherited(arguments);this.nameAttrSetting="";},serialize:function(val,_287){return val.toString?val.toString():"";},toString:function(){var val=this.filter(this.get("value"));return val!=null?(typeof val=="string"?val:this.serialize(val,this.constraints)):"";},validate:function(){this.valueNode.value=this.toString();return this.inherited(arguments);},buildRendering:function(){this.inherited(arguments);this.valueNode=dojo.place("<input type='hidden'"+(this.name?" name='"+this.name+"'":"")+">",this.textbox,"after");},reset:function(){this.valueNode.value="";this.inherited(arguments);}});dojo.declare("dijit.form.RangeBoundTextBox",dijit.form.MappedTextBox,{rangeMessage:"",rangeCheck:function(_288,_289){return ("min" in _289?(this.compare(_288,_289.min)>=0):true)&&("max" in _289?(this.compare(_288,_289.max)<=0):true);},isInRange:function(_28a){return this.rangeCheck(this.get("value"),this.constraints);},_isDefinitelyOutOfRange:function(){var val=this.get("value");var _28b=false;var _28c=false;if("min" in this.constraints){var min=this.constraints.min;min=this.compare(val,((typeof min=="number")&&min>=0&&val!=0)?0:min);_28b=(typeof min=="number")&&min<0;}if("max" in this.constraints){var max=this.constraints.max;max=this.compare(val,((typeof max!="number")||max>0)?max:0);_28c=(typeof max=="number")&&max>0;}return _28b||_28c;},_isValidSubset:function(){return this.inherited(arguments)&&!this._isDefinitelyOutOfRange();},isValid:function(_28d){return this.inherited(arguments)&&((this._isEmpty(this.textbox.value)&&!this.required)||this.isInRange(_28d));},getErrorMessage:function(_28e){var v=this.get("value");if(v!==null&&v!==""&&v!==undefined&&(typeof v!="number"||!isNaN(v))&&!this.isInRange(_28e)){return this.rangeMessage;}return this.inherited(arguments);},postMixInProperties:function(){this.inherited(arguments);if(!this.rangeMessage){this.messages=dojo.i18n.getLocalization("dijit.form","validate",this.lang);this.rangeMessage=this.messages.rangeMessage;}},_setConstraintsAttr:function(_28f){this.inherited(arguments);if(this.focusNode){if(this.constraints.min!==undefined){dijit.setWaiState(this.focusNode,"valuemin",this.constraints.min);}else{dijit.removeWaiState(this.focusNode,"valuemin");}if(this.constraints.max!==undefined){dijit.setWaiState(this.focusNode,"valuemax",this.constraints.max);}else{dijit.removeWaiState(this.focusNode,"valuemax");}}},_setValueAttr:function(_290,_291){dijit.setWaiState(this.focusNode,"valuenow",_290);this.inherited(arguments);}});}if(!dojo._hasResource["dijit.form.ComboBox"]){dojo._hasResource["dijit.form.ComboBox"]=true;dojo.provide("dijit.form.ComboBox");dojo.declare("dijit.form.ComboBoxMixin",null,{item:null,pageSize:Infinity,store:null,fetchProperties:{},query:{},autoComplete:true,highlightMatch:"first",searchDelay:100,searchAttr:"name",labelAttr:"",labelType:"text",queryExpr:"${0}*",ignoreCase:true,hasDownArrow:true,templateString:dojo.cache("dijit.form","templates/ComboBox.html","<div class=\"dijit dijitReset dijitInlineTable dijitLeft\"\n\tid=\"widget_${id}\"\n\tdojoAttachPoint=\"comboNode\" waiRole=\"combobox\"\n\t><div class='dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer'\n\t\tdojoAttachPoint=\"downArrowNode\" waiRole=\"presentation\"\n\t\tdojoAttachEvent=\"onmousedown:_onArrowMouseDown\"\n\t\t><input class=\"dijitReset dijitInputField dijitArrowButtonInner\" value=\"▼ \" type=\"text\" tabIndex=\"-1\" readOnly waiRole=\"presentation\"\n\t\t\t${_buttonInputDisabled}\n\t/></div\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"Χ \" type=\"text\" tabIndex=\"-1\" readOnly waiRole=\"presentation\"\n\t/></div\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class='dijitReset dijitInputInner' ${!nameAttrSetting} type=\"text\" autocomplete=\"off\"\n\t\t\tdojoAttachEvent=\"onkeypress:_onKeyPress,compositionend\"\n\t\t\tdojoAttachPoint=\"textbox,focusNode\" waiRole=\"textbox\" waiState=\"haspopup-true,autocomplete-list\"\n\t/></div\n></div>\n"),baseClass:"dijitTextBox dijitComboBox",cssStateNodes:{"downArrowNode":"dijitDownArrowButton"},_getCaretPos:function(_292){var pos=0;if(typeof (_292.selectionStart)=="number"){pos=_292.selectionStart;}else{if(dojo.isIE){var tr=dojo.doc.selection.createRange().duplicate();var ntr=_292.createTextRange();tr.move("character",0);ntr.move("character",0);try{ntr.setEndPoint("EndToEnd",tr);pos=String(ntr.text).replace(/\r/g,"").length;}catch(e){}}}return pos;},_setCaretPos:function(_293,_294){_294=parseInt(_294);dijit.selectInputText(_293,_294,_294);},_setDisabledAttr:function(_295){this.inherited(arguments);dijit.setWaiState(this.comboNode,"disabled",_295);},_abortQuery:function(){if(this.searchTimer){clearTimeout(this.searchTimer);this.searchTimer=null;}if(this._fetchHandle){if(this._fetchHandle.abort){this._fetchHandle.abort();}this._fetchHandle=null;}},_onInput:function(evt){if(!this.searchTimer&&(evt.type=="paste"||evt.type=="input")&&this._lastInput!=this.textbox.value){this.searchTimer=setTimeout(dojo.hitch(this,function(){this._onKeyPress({charOrCode:229});}),100);}this.inherited(arguments);},_onKeyPress:function(evt){var key=evt.charOrCode;if(evt.altKey||((evt.ctrlKey||evt.metaKey)&&(key!="x"&&key!="v"))||key==dojo.keys.SHIFT){return;}var _296=false;var _297="_startSearchFromInput";var pw=this._popupWidget;var dk=dojo.keys;var _298=null;this._prev_key_backspace=false;this._abortQuery();if(this._isShowingNow){pw.handleKey(key);_298=pw.getHighlightedOption();}switch(key){case dk.PAGE_DOWN:case dk.DOWN_ARROW:case dk.PAGE_UP:case dk.UP_ARROW:if(!this._isShowingNow){_296=true;_297="_startSearchAll";}else{this._announceOption(_298);}dojo.stopEvent(evt);break;case dk.ENTER:if(_298){if(_298==pw.nextButton){this._nextSearch(1);dojo.stopEvent(evt);break;}else{if(_298==pw.previousButton){this._nextSearch(-1);dojo.stopEvent(evt);break;}}}else{this._setBlurValue();this._setCaretPos(this.focusNode,this.focusNode.value.length);}evt.preventDefault();case dk.TAB:var _299=this.get("displayedValue");if(pw&&(_299==pw._messages["previousMessage"]||_299==pw._messages["nextMessage"])){break;}if(_298){this._selectOption();}if(this._isShowingNow){this._lastQuery=null;this._hideResultList();}break;case " ":if(_298){dojo.stopEvent(evt);this._selectOption();this._hideResultList();}else{_296=true;}break;case dk.ESCAPE:if(this._isShowingNow){dojo.stopEvent(evt);this._hideResultList();}break;case dk.DELETE:case dk.BACKSPACE:this._prev_key_backspace=true;_296=true;break;default:_296=typeof key=="string"||key==229;}if(_296){this.item=undefined;this.searchTimer=setTimeout(dojo.hitch(this,_297),1);}},_autoCompleteText:function(text){var fn=this.focusNode;dijit.selectInputText(fn,fn.value.length);var _29a=this.ignoreCase?"toLowerCase":"substr";if(text[_29a](0).indexOf(this.focusNode.value[_29a](0))==0){var cpos=this._getCaretPos(fn);if((cpos+1)>fn.value.length){fn.value=text;dijit.selectInputText(fn,cpos);}}else{fn.value=text;dijit.selectInputText(fn);}},_openResultList:function(_29b,_29c){this._fetchHandle=null;if(this.disabled||this.readOnly||(_29c.query[this.searchAttr]!=this._lastQuery)){return;}this._popupWidget.clearResultList();if(!_29b.length&&!this._maxOptions){this._hideResultList();return;}_29c._maxOptions=this._maxOptions;var _29d=this._popupWidget.createOptions(_29b,_29c,dojo.hitch(this,"_getMenuLabelFromItem"));this._showResultList();if(_29c.direction){if(1==_29c.direction){this._popupWidget.highlightFirstOption();}else{if(-1==_29c.direction){this._popupWidget.highlightLastOption();}}this._announceOption(this._popupWidget.getHighlightedOption());}else{if(this.autoComplete&&!this._prev_key_backspace&&!/^[*]+$/.test(_29c.query[this.searchAttr])){this._announceOption(_29d[1]);}}},_showResultList:function(){this._hideResultList();this.displayMessage("");dojo.style(this._popupWidget.domNode,{width:"",height:""});var best=this.open();var _29e=dojo.marginBox(this._popupWidget.domNode);this._popupWidget.domNode.style.overflow=((best.h==_29e.h)&&(best.w==_29e.w))?"hidden":"auto";var _29f=best.w;if(best.h<this._popupWidget.domNode.scrollHeight){_29f+=16;}dojo.marginBox(this._popupWidget.domNode,{h:best.h,w:Math.max(_29f,this.domNode.offsetWidth)});if(_29f<this.domNode.offsetWidth){this._popupWidget.domNode.parentNode.style.left=dojo.position(this.domNode,true).x+"px";}dijit.setWaiState(this.comboNode,"expanded","true");},_hideResultList:function(){this._abortQuery();if(this._isShowingNow){dijit.popup.close(this._popupWidget);this._isShowingNow=false;dijit.setWaiState(this.comboNode,"expanded","false");dijit.removeWaiState(this.focusNode,"activedescendant");}},_setBlurValue:function(){var _2a0=this.get("displayedValue");var pw=this._popupWidget;if(pw&&(_2a0==pw._messages["previousMessage"]||_2a0==pw._messages["nextMessage"])){this._setValueAttr(this._lastValueReported,true);}else{if(typeof this.item=="undefined"){this.item=null;this.set("displayedValue",_2a0);}else{if(this.value!=this._lastValueReported){dijit.form._FormValueWidget.prototype._setValueAttr.call(this,this.value,true);}this._refreshState();}}},_onBlur:function(){this._hideResultList();this.inherited(arguments);},_setItemAttr:function(item,_2a1,_2a2){if(!_2a2){_2a2=this.labelFunc(item,this.store);}this.value=this._getValueField()!=this.searchAttr?this.store.getIdentity(item):_2a2;this.item=item;dijit.form.ComboBox.superclass._setValueAttr.call(this,this.value,_2a1,_2a2);},_announceOption:function(node){if(!node){return;}var _2a3;if(node==this._popupWidget.nextButton||node==this._popupWidget.previousButton){_2a3=node.innerHTML;this.item=undefined;this.value="";}else{_2a3=this.labelFunc(node.item,this.store);this.set("item",node.item,false,_2a3);}this.focusNode.value=this.focusNode.value.substring(0,this._lastInput.length);dijit.setWaiState(this.focusNode,"activedescendant",dojo.attr(node,"id"));this._autoCompleteText(_2a3);},_selectOption:function(evt){if(evt){this._announceOption(evt.target);}this._hideResultList();this._setCaretPos(this.focusNode,this.focusNode.value.length);dijit.form._FormValueWidget.prototype._setValueAttr.call(this,this.value,true);},_onArrowMouseDown:function(evt){if(this.disabled||this.readOnly){return;}dojo.stopEvent(evt);this.focus();if(this._isShowingNow){this._hideResultList();}else{this._startSearchAll();}},_startSearchAll:function(){this._startSearch("");},_startSearchFromInput:function(){this._startSearch(this.focusNode.value.replace(/([\\\*\?])/g,"\\$1"));},_getQueryString:function(text){return dojo.string.substitute(this.queryExpr,[text]);},_startSearch:function(key){if(!this._popupWidget){var _2a4=this.id+"_popup";this._popupWidget=new dijit.form._ComboBoxMenu({onChange:dojo.hitch(this,this._selectOption),id:_2a4,dir:this.dir});dijit.removeWaiState(this.focusNode,"activedescendant");dijit.setWaiState(this.textbox,"owns",_2a4);}var _2a5=dojo.clone(this.query);this._lastInput=key;this._lastQuery=_2a5[this.searchAttr]=this._getQueryString(key);this.searchTimer=setTimeout(dojo.hitch(this,function(_2a6,_2a7){this.searchTimer=null;var _2a8={queryOptions:{ignoreCase:this.ignoreCase,deep:true},query:_2a6,onBegin:dojo.hitch(this,"_setMaxOptions"),onComplete:dojo.hitch(this,"_openResultList"),onError:function(_2a9){_2a7._fetchHandle=null;console.error("dijit.form.ComboBox: "+_2a9);dojo.hitch(_2a7,"_hideResultList")();},start:0,count:this.pageSize};dojo.mixin(_2a8,_2a7.fetchProperties);this._fetchHandle=_2a7.store.fetch(_2a8);var _2aa=function(_2ab,_2ac){_2ab.start+=_2ab.count*_2ac;_2ab.direction=_2ac;this._fetchHandle=this.store.fetch(_2ab);};this._nextSearch=this._popupWidget.onPage=dojo.hitch(this,_2aa,this._fetchHandle);},_2a5,this),this.searchDelay);},_setMaxOptions:function(size,_2ad){this._maxOptions=size;},_getValueField:function(){return this.searchAttr;},compositionend:function(evt){this._onKeyPress({charOrCode:229});},constructor:function(){this.query={};this.fetchProperties={};},postMixInProperties:function(){if(!this.store){var _2ae=this.srcNodeRef;this.store=new dijit.form._ComboBoxDataStore(_2ae);if(!("value" in this.params)){var item=this.store.fetchSelectedItem();if(item){var _2af=this._getValueField();this.value=_2af!=this.searchAttr?this.store.getValue(item,_2af):this.labelFunc(item,this.store);}}}this.inherited(arguments);},postCreate:function(){if(!this.hasDownArrow){this.downArrowNode.style.display="none";}var _2b0=dojo.query("label[for=\""+this.id+"\"]");if(_2b0.length){_2b0[0].id=(this.id+"_label");var cn=this.comboNode;dijit.setWaiState(cn,"labelledby",_2b0[0].id);}this.inherited(arguments);},uninitialize:function(){if(this._popupWidget&&!this._popupWidget._destroyed){this._hideResultList();this._popupWidget.destroy();}this.inherited(arguments);},_getMenuLabelFromItem:function(item){var _2b1=this.labelAttr?this.store.getValue(item,this.labelAttr):this.labelFunc(item,this.store);var _2b2=this.labelType;if(this.highlightMatch!="none"&&this.labelType=="text"&&this._lastInput){_2b1=this.doHighlight(_2b1,this._escapeHtml(this._lastInput));_2b2="html";}return {html:_2b2=="html",label:_2b1};},doHighlight:function(_2b3,find){var _2b4="i"+(this.highlightMatch=="all"?"g":"");var _2b5=this._escapeHtml(_2b3);find=dojo.regexp.escapeString(find);var ret=_2b5.replace(new RegExp("(^|\\s)("+find+")",_2b4),"$1<span class=\"dijitComboBoxHighlightMatch\">$2</span>");return ret;},_escapeHtml:function(str){str=String(str).replace(/&/gm,"&").replace(/</gm,"<").replace(/>/gm,">").replace(/"/gm,""");return str;},open:function(){this._isShowingNow=true;return dijit.popup.open({popup:this._popupWidget,around:this.domNode,parent:this});},reset:function(){this.item=null;this.inherited(arguments);},labelFunc:function(item,_2b6){return _2b6.getValue(item,this.searchAttr).toString();}});dojo.declare("dijit.form._ComboBoxMenu",[dijit._Widget,dijit._Templated,dijit._CssStateMixin],{templateString:"<ul class='dijitReset dijitMenu' dojoAttachEvent='onmousedown:_onMouseDown,onmouseup:_onMouseUp,onmouseover:_onMouseOver,onmouseout:_onMouseOut' tabIndex='-1' style='overflow: \"auto\"; overflow-x: \"hidden\";'>"+"<li class='dijitMenuItem dijitMenuPreviousButton' dojoAttachPoint='previousButton' waiRole='option'></li>"+"<li class='dijitMenuItem dijitMenuNextButton' dojoAttachPoint='nextButton' waiRole='option'></li>"+"</ul>",_messages:null,baseClass:"dijitComboBoxMenu",postMixInProperties:function(){this._messages=dojo.i18n.getLocalization("dijit.form","ComboBox",this.lang);this.inherited(arguments);},_setValueAttr:function(_2b7){this.value=_2b7;this.onChange(_2b7);},onChange:function(_2b8){},onPage:function(_2b9){},postCreate:function(){this.previousButton.innerHTML=this._messages["previousMessage"];this.nextButton.innerHTML=this._messages["nextMessage"];this.inherited(arguments);},onClose:function(){this._blurOptionNode();},_createOption:function(item,_2ba){var _2bb=_2ba(item);var _2bc=dojo.doc.createElement("li");dijit.setWaiRole(_2bc,"option");if(_2bb.html){_2bc.innerHTML=_2bb.label;}else{_2bc.appendChild(dojo.doc.createTextNode(_2bb.label));}if(_2bc.innerHTML==""){_2bc.innerHTML=" ";}_2bc.item=item;return _2bc;},createOptions:function(_2bd,_2be,_2bf){this.previousButton.style.display=(_2be.start==0)?"none":"";dojo.attr(this.previousButton,"id",this.id+"_prev");dojo.forEach(_2bd,function(item,i){var _2c0=this._createOption(item,_2bf);_2c0.className="dijitReset dijitMenuItem"+(this.isLeftToRight()?"":" dijitMenuItemRtl");dojo.attr(_2c0,"id",this.id+i);this.domNode.insertBefore(_2c0,this.nextButton);},this);var _2c1=false;if(_2be._maxOptions&&_2be._maxOptions!=-1){if((_2be.start+_2be.count)<_2be._maxOptions){_2c1=true;}else{if((_2be.start+_2be.count)>_2be._maxOptions&&_2be.count==_2bd.length){_2c1=true;}}}else{if(_2be.count==_2bd.length){_2c1=true;}}this.nextButton.style.display=_2c1?"":"none";dojo.attr(this.nextButton,"id",this.id+"_next");return this.domNode.childNodes;},clearResultList:function(){while(this.domNode.childNodes.length>2){this.domNode.removeChild(this.domNode.childNodes[this.domNode.childNodes.length-2]);}},_onMouseDown:function(evt){dojo.stopEvent(evt);},_onMouseUp:function(evt){if(evt.target===this.domNode||!this._highlighted_option){return;}else{if(evt.target==this.previousButton){this.onPage(-1);}else{if(evt.target==this.nextButton){this.onPage(1);}else{var tgt=evt.target;while(!tgt.item){tgt=tgt.parentNode;}this._setValueAttr({target:tgt},true);}}}},_onMouseOver:function(evt){if(evt.target===this.domNode){return;}var tgt=evt.target;if(!(tgt==this.previousButton||tgt==this.nextButton)){while(!tgt.item){tgt=tgt.parentNode;}}this._focusOptionNode(tgt);},_onMouseOut:function(evt){if(evt.target===this.domNode){return;}this._blurOptionNode();},_focusOptionNode:function(node){if(this._highlighted_option!=node){this._blurOptionNode();this._highlighted_option=node;dojo.addClass(this._highlighted_option,"dijitMenuItemSelected");}},_blurOptionNode:function(){if(this._highlighted_option){dojo.removeClass(this._highlighted_option,"dijitMenuItemSelected");this._highlighted_option=null;}},_highlightNextOption:function(){if(!this.getHighlightedOption()){var fc=this.domNode.firstChild;this._focusOptionNode(fc.style.display=="none"?fc.nextSibling:fc);}else{var ns=this._highlighted_option.nextSibling;if(ns&&ns.style.display!="none"){this._focusOptionNode(ns);}else{this.highlightFirstOption();}}dojo.window.scrollIntoView(this._highlighted_option);},highlightFirstOption:function(){var _2c2=this.domNode.firstChild;var _2c3=_2c2.nextSibling;this._focusOptionNode(_2c3.style.display=="none"?_2c2:_2c3);dojo.window.scrollIntoView(this._highlighted_option);},highlightLastOption:function(){this._focusOptionNode(this.domNode.lastChild.previousSibling);dojo.window.scrollIntoView(this._highlighted_option);},_highlightPrevOption:function(){if(!this.getHighlightedOption()){var lc=this.domNode.lastChild;this._focusOptionNode(lc.style.display=="none"?lc.previousSibling:lc);}else{var ps=this._highlighted_option.previousSibling;if(ps&&ps.style.display!="none"){this._focusOptionNode(ps);}else{this.highlightLastOption();}}dojo.window.scrollIntoView(this._highlighted_option);},_page:function(up){var _2c4=0;var _2c5=this.domNode.scrollTop;var _2c6=dojo.style(this.domNode,"height");if(!this.getHighlightedOption()){this._highlightNextOption();}while(_2c4<_2c6){if(up){if(!this.getHighlightedOption().previousSibling||this._highlighted_option.previousSibling.style.display=="none"){break;}this._highlightPrevOption();}else{if(!this.getHighlightedOption().nextSibling||this._highlighted_option.nextSibling.style.display=="none"){break;}this._highlightNextOption();}var _2c7=this.domNode.scrollTop;_2c4+=(_2c7-_2c5)*(up?-1:1);_2c5=_2c7;}},pageUp:function(){this._page(true);},pageDown:function(){this._page(false);},getHighlightedOption:function(){var ho=this._highlighted_option;return (ho&&ho.parentNode)?ho:null;},handleKey:function(key){switch(key){case dojo.keys.DOWN_ARROW:this._highlightNextOption();break;case dojo.keys.PAGE_DOWN:this.pageDown();break;case dojo.keys.UP_ARROW:this._highlightPrevOption();break;case dojo.keys.PAGE_UP:this.pageUp();break;}}});dojo.declare("dijit.form.ComboBox",[dijit.form.ValidationTextBox,dijit.form.ComboBoxMixin],{_setValueAttr:function(_2c8,_2c9,_2ca){this.item=null;if(!_2c8){_2c8="";}dijit.form.ValidationTextBox.prototype._setValueAttr.call(this,_2c8,_2c9,_2ca);}});dojo.declare("dijit.form._ComboBoxDataStore",null,{constructor:function(root){this.root=root;if(root.tagName!="SELECT"&&root.firstChild){root=dojo.query("select",root);if(root.length>0){root=root[0];}else{this.root.innerHTML="<SELECT>"+this.root.innerHTML+"</SELECT>";root=this.root.firstChild;}this.root=root;}dojo.query("> option",root).forEach(function(node){node.innerHTML=dojo.trim(node.innerHTML);});},getValue:function(item,_2cb,_2cc){return (_2cb=="value")?item.value:(item.innerText||item.textContent||"");},isItemLoaded:function(_2cd){return true;},getFeatures:function(){return {"dojo.data.api.Read":true,"dojo.data.api.Identity":true};},_fetchItems:function(args,_2ce,_2cf){if(!args.query){args.query={};}if(!args.query.name){args.query.name="";}if(!args.queryOptions){args.queryOptions={};}var _2d0=dojo.data.util.filter.patternToRegExp(args.query.name,args.queryOptions.ignoreCase),_2d1=dojo.query("> option",this.root).filter(function(_2d2){return (_2d2.innerText||_2d2.textContent||"").match(_2d0);});if(args.sort){_2d1.sort(dojo.data.util.sorter.createSortFunction(args.sort,this));}_2ce(_2d1,args);},close:function(_2d3){return;},getLabel:function(item){return item.innerHTML;},getIdentity:function(item){return dojo.attr(item,"value");},fetchItemByIdentity:function(args){var item=dojo.query("> option[value='"+args.identity+"']",this.root)[0];args.onItem(item);},fetchSelectedItem:function(){var root=this.root,si=root.selectedIndex;return typeof si=="number"?dojo.query("> option:nth-child("+(si!=-1?si+1:1)+")",root)[0]:null;}});dojo.extend(dijit.form._ComboBoxDataStore,dojo.data.util.simpleFetch);}if(!dojo._hasResource["dijit.form.FilteringSelect"]){dojo._hasResource["dijit.form.FilteringSelect"]=true;dojo.provide("dijit.form.FilteringSelect");dojo.declare("dijit.form.FilteringSelect",[dijit.form.MappedTextBox,dijit.form.ComboBoxMixin],{_isvalid:true,required:true,_lastDisplayedValue:"",isValid:function(){return this._isvalid||(!this.required&&this.get("displayedValue")=="");},_refreshState:function(){if(!this.searchTimer){this.inherited(arguments);}},_callbackSetLabel:function(_2d4,_2d5,_2d6){if((_2d5&&_2d5.query[this.searchAttr]!=this._lastQuery)||(!_2d5&&_2d4.length&&this.store.getIdentity(_2d4[0])!=this._lastQuery)){return;}if(!_2d4.length){this.valueNode.value="";dijit.form.TextBox.superclass._setValueAttr.call(this,"",_2d6||(_2d6===undefined&&!this._focused));this._isvalid=false;this.validate(this._focused);this.item=null;}else{this.set("item",_2d4[0],_2d6);}},_openResultList:function(_2d7,_2d8){if(_2d8.query[this.searchAttr]!=this._lastQuery){return;}if(this.item===undefined){this._isvalid=_2d7.length!=0||this._maxOptions!=0;this.validate(true);}dijit.form.ComboBoxMixin.prototype._openResultList.apply(this,arguments);},_getValueAttr:function(){return this.valueNode.value;},_getValueField:function(){return "value";},_setValueAttr:function(_2d9,_2da){if(!this._onChangeActive){_2da=null;}this._lastQuery=_2d9;if(_2d9===null||_2d9===""){this._setDisplayedValueAttr("",_2da);return;}var self=this;this.store.fetchItemByIdentity({identity:_2d9,onItem:function(item){self._callbackSetLabel(item?[item]:[],undefined,_2da);}});},_setItemAttr:function(item,_2db,_2dc){this._isvalid=true;this.inherited(arguments);this.valueNode.value=this.value;this._lastDisplayedValue=this.textbox.value;},_getDisplayQueryString:function(text){return text.replace(/([\\\*\?])/g,"\\$1");},_setDisplayedValueAttr:function(_2dd,_2de){if(!this._created){_2de=false;}if(this.store){this._hideResultList();var _2df=dojo.clone(this.query);this._lastQuery=_2df[this.searchAttr]=this._getDisplayQueryString(_2dd);this.textbox.value=_2dd;this._lastDisplayedValue=_2dd;var _2e0=this;var _2e1={query:_2df,queryOptions:{ignoreCase:this.ignoreCase,deep:true},onComplete:function(_2e2,_2e3){_2e0._fetchHandle=null;dojo.hitch(_2e0,"_callbackSetLabel")(_2e2,_2e3,_2de);},onError:function(_2e4){_2e0._fetchHandle=null;console.error("dijit.form.FilteringSelect: "+_2e4);dojo.hitch(_2e0,"_callbackSetLabel")([],undefined,false);}};dojo.mixin(_2e1,this.fetchProperties);this._fetchHandle=this.store.fetch(_2e1);}},postMixInProperties:function(){this.inherited(arguments);this._isvalid=!this.required;},undo:function(){this.set("displayedValue",this._lastDisplayedValue);}});}if(!dojo._hasResource["dojo.data.ItemFileReadStore"]){dojo._hasResource["dojo.data.ItemFileReadStore"]=true;dojo.provide("dojo.data.ItemFileReadStore");dojo.declare("dojo.data.ItemFileReadStore",null,{constructor:function(_2e5){this._arrayOfAllItems=[];this._arrayOfTopLevelItems=[];this._loadFinished=false;this._jsonFileUrl=_2e5.url;this._ccUrl=_2e5.url;this.url=_2e5.url;this._jsonData=_2e5.data;this.data=null;this._datatypeMap=_2e5.typeMap||{};if(!this._datatypeMap["Date"]){this._datatypeMap["Date"]={type:Date,deserialize:function(_2e6){return dojo.date.stamp.fromISOString(_2e6);}};}this._features={"dojo.data.api.Read":true,"dojo.data.api.Identity":true};this._itemsByIdentity=null;this._storeRefPropName="_S";this._itemNumPropName="_0";this._rootItemPropName="_RI";this._reverseRefMap="_RRM";this._loadInProgress=false;this._queuedFetches=[];if(_2e5.urlPreventCache!==undefined){this.urlPreventCache=_2e5.urlPreventCache?true:false;}if(_2e5.hierarchical!==undefined){this.hierarchical=_2e5.hierarchical?true:false;}if(_2e5.clearOnClose){this.clearOnClose=true;}if("failOk" in _2e5){this.failOk=_2e5.failOk?true:false;}},url:"",_ccUrl:"",data:null,typeMap:null,clearOnClose:false,urlPreventCache:false,failOk:false,hierarchical:true,_assertIsItem:function(item){if(!this.isItem(item)){throw new Error("dojo.data.ItemFileReadStore: Invalid item argument.");}},_assertIsAttribute:function(_2e7){if(typeof _2e7!=="string"){throw new Error("dojo.data.ItemFileReadStore: Invalid attribute argument.");}},getValue:function(item,_2e8,_2e9){var _2ea=this.getValues(item,_2e8);return (_2ea.length>0)?_2ea[0]:_2e9;},getValues:function(item,_2eb){this._assertIsItem(item);this._assertIsAttribute(_2eb);return (item[_2eb]||[]).slice(0);},getAttributes:function(item){this._assertIsItem(item);var _2ec=[];for(var key in item){if((key!==this._storeRefPropName)&&(key!==this._itemNumPropName)&&(key!==this._rootItemPropName)&&(key!==this._reverseRefMap)){_2ec.push(key);}}return _2ec;},hasAttribute:function(item,_2ed){this._assertIsItem(item);this._assertIsAttribute(_2ed);return (_2ed in item);},containsValue:function(item,_2ee,_2ef){var _2f0=undefined;if(typeof _2ef==="string"){_2f0=dojo.data.util.filter.patternToRegExp(_2ef,false);}return this._containsValue(item,_2ee,_2ef,_2f0);},_containsValue:function(item,_2f1,_2f2,_2f3){return dojo.some(this.getValues(item,_2f1),function(_2f4){if(_2f4!==null&&!dojo.isObject(_2f4)&&_2f3){if(_2f4.toString().match(_2f3)){return true;}}else{if(_2f2===_2f4){return true;}}});},isItem:function(_2f5){if(_2f5&&_2f5[this._storeRefPropName]===this){if(this._arrayOfAllItems[_2f5[this._itemNumPropName]]===_2f5){return true;}}return false;},isItemLoaded:function(_2f6){return this.isItem(_2f6);},loadItem:function(_2f7){this._assertIsItem(_2f7.item);},getFeatures:function(){return this._features;},getLabel:function(item){if(this._labelAttr&&this.isItem(item)){return this.getValue(item,this._labelAttr);}return undefined;},getLabelAttributes:function(item){if(this._labelAttr){return [this._labelAttr];}return null;},_fetchItems:function(_2f8,_2f9,_2fa){var self=this,_2fb=function(_2fc,_2fd){var _2fe=[],i,key;if(_2fc.query){var _2ff,_300=_2fc.queryOptions?_2fc.queryOptions.ignoreCase:false;var _301={};for(key in _2fc.query){_2ff=_2fc.query[key];if(typeof _2ff==="string"){_301[key]=dojo.data.util.filter.patternToRegExp(_2ff,_300);}else{if(_2ff instanceof RegExp){_301[key]=_2ff;}}}for(i=0;i<_2fd.length;++i){var _302=true;var _303=_2fd[i];if(_303===null){_302=false;}else{for(key in _2fc.query){_2ff=_2fc.query[key];if(!self._containsValue(_303,key,_2ff,_301[key])){_302=false;}}}if(_302){_2fe.push(_303);}}_2f9(_2fe,_2fc);}else{for(i=0;i<_2fd.length;++i){var item=_2fd[i];if(item!==null){_2fe.push(item);}}_2f9(_2fe,_2fc);}};if(this._loadFinished){_2fb(_2f8,this._getItemsArray(_2f8.queryOptions));}else{if(this._jsonFileUrl!==this._ccUrl){dojo.deprecated("dojo.data.ItemFileReadStore: ","To change the url, set the url property of the store,"+" not _jsonFileUrl. _jsonFileUrl support will be removed in 2.0");this._ccUrl=this._jsonFileUrl;this.url=this._jsonFileUrl;}else{if(this.url!==this._ccUrl){this._jsonFileUrl=this.url;this._ccUrl=this.url;}}if(this.data!=null&&this._jsonData==null){this._jsonData=this.data;this.data=null;}if(this._jsonFileUrl){if(this._loadInProgress){this._queuedFetches.push({args:_2f8,filter:_2fb});}else{this._loadInProgress=true;var _304={url:self._jsonFileUrl,handleAs:"json-comment-optional",preventCache:this.urlPreventCache,failOk:this.failOk};var _305=dojo.xhrGet(_304);_305.addCallback(function(data){try{self._getItemsFromLoadedData(data);self._loadFinished=true;self._loadInProgress=false;_2fb(_2f8,self._getItemsArray(_2f8.queryOptions));self._handleQueuedFetches();}catch(e){self._loadFinished=true;self._loadInProgress=false;_2fa(e,_2f8);}});_305.addErrback(function(_306){self._loadInProgress=false;_2fa(_306,_2f8);});var _307=null;if(_2f8.abort){_307=_2f8.abort;}_2f8.abort=function(){var df=_305;if(df&&df.fired===-1){df.cancel();df=null;}if(_307){_307.call(_2f8);}};}}else{if(this._jsonData){try{this._loadFinished=true;this._getItemsFromLoadedData(this._jsonData);this._jsonData=null;_2fb(_2f8,this._getItemsArray(_2f8.queryOptions));}catch(e){_2fa(e,_2f8);}}else{_2fa(new Error("dojo.data.ItemFileReadStore: No JSON source data was provided as either URL or a nested Javascript object."),_2f8);}}}},_handleQueuedFetches:function(){if(this._queuedFetches.length>0){for(var i=0;i<this._queuedFetches.length;i++){var _308=this._queuedFetches[i],_309=_308.args,_30a=_308.filter;if(_30a){_30a(_309,this._getItemsArray(_309.queryOptions));}else{this.fetchItemByIdentity(_309);}}this._queuedFetches=[];}},_getItemsArray:function(_30b){if(_30b&&_30b.deep){return this._arrayOfAllItems;}return this._arrayOfTopLevelItems;},close:function(_30c){if(this.clearOnClose&&this._loadFinished&&!this._loadInProgress){if(((this._jsonFileUrl==""||this._jsonFileUrl==null)&&(this.url==""||this.url==null))&&this.data==null){}this._arrayOfAllItems=[];this._arrayOfTopLevelItems=[];this._loadFinished=false;this._itemsByIdentity=null;this._loadInProgress=false;this._queuedFetches=[];}},_getItemsFromLoadedData:function(_30d){var _30e=false,self=this;function _30f(_310){var _311=((_310!==null)&&(typeof _310==="object")&&(!dojo.isArray(_310)||_30e)&&(!dojo.isFunction(_310))&&(_310.constructor==Object||dojo.isArray(_310))&&(typeof _310._reference==="undefined")&&(typeof _310._type==="undefined")&&(typeof _310._value==="undefined")&&self.hierarchical);return _311;};function _312(_313){self._arrayOfAllItems.push(_313);for(var _314 in _313){var _315=_313[_314];if(_315){if(dojo.isArray(_315)){var _316=_315;for(var k=0;k<_316.length;++k){var _317=_316[k];if(_30f(_317)){_312(_317);}}}else{if(_30f(_315)){_312(_315);}}}}};this._labelAttr=_30d.label;var i,item;this._arrayOfAllItems=[];this._arrayOfTopLevelItems=_30d.items;for(i=0;i<this._arrayOfTopLevelItems.length;++i){item=this._arrayOfTopLevelItems[i];if(dojo.isArray(item)){_30e=true;}_312(item);item[this._rootItemPropName]=true;}var _318={},key;for(i=0;i<this._arrayOfAllItems.length;++i){item=this._arrayOfAllItems[i];for(key in item){if(key!==this._rootItemPropName){var _319=item[key];if(_319!==null){if(!dojo.isArray(_319)){item[key]=[_319];}}else{item[key]=[null];}}_318[key]=key;}}while(_318[this._storeRefPropName]){this._storeRefPropName+="_";}while(_318[this._itemNumPropName]){this._itemNumPropName+="_";}while(_318[this._reverseRefMap]){this._reverseRefMap+="_";}var _31a;var _31b=_30d.identifier;if(_31b){this._itemsByIdentity={};this._features["dojo.data.api.Identity"]=_31b;for(i=0;i<this._arrayOfAllItems.length;++i){item=this._arrayOfAllItems[i];_31a=item[_31b];var _31c=_31a[0];if(!this._itemsByIdentity[_31c]){this._itemsByIdentity[_31c]=item;}else{if(this._jsonFileUrl){throw new Error("dojo.data.ItemFileReadStore: The json data as specified by: ["+this._jsonFileUrl+"] is malformed. Items within the list have identifier: ["+_31b+"]. Value collided: ["+_31c+"]");}else{if(this._jsonData){throw new Error("dojo.data.ItemFileReadStore: The json data provided by the creation arguments is malformed. Items within the list have identifier: ["+_31b+"]. Value collided: ["+_31c+"]");}}}}}else{this._features["dojo.data.api.Identity"]=Number;}for(i=0;i<this._arrayOfAllItems.length;++i){item=this._arrayOfAllItems[i];item[this._storeRefPropName]=this;item[this._itemNumPropName]=i;}for(i=0;i<this._arrayOfAllItems.length;++i){item=this._arrayOfAllItems[i];for(key in item){_31a=item[key];for(var j=0;j<_31a.length;++j){_319=_31a[j];if(_319!==null&&typeof _319=="object"){if(("_type" in _319)&&("_value" in _319)){var type=_319._type;var _31d=this._datatypeMap[type];if(!_31d){throw new Error("dojo.data.ItemFileReadStore: in the typeMap constructor arg, no object class was specified for the datatype '"+type+"'");}else{if(dojo.isFunction(_31d)){_31a[j]=new _31d(_319._value);}else{if(dojo.isFunction(_31d.deserialize)){_31a[j]=_31d.deserialize(_319._value);}else{throw new Error("dojo.data.ItemFileReadStore: Value provided in typeMap was neither a constructor, nor a an object with a deserialize function");}}}}if(_319._reference){var _31e=_319._reference;if(!dojo.isObject(_31e)){_31a[j]=this._getItemByIdentity(_31e);}else{for(var k=0;k<this._arrayOfAllItems.length;++k){var _31f=this._arrayOfAllItems[k],_320=true;for(var _321 in _31e){if(_31f[_321]!=_31e[_321]){_320=false;}}if(_320){_31a[j]=_31f;}}}if(this.referenceIntegrity){var _322=_31a[j];if(this.isItem(_322)){this._addReferenceToMap(_322,item,key);}}}else{if(this.isItem(_319)){if(this.referenceIntegrity){this._addReferenceToMap(_319,item,key);}}}}}}}},_addReferenceToMap:function(_323,_324,_325){},getIdentity:function(item){var _326=this._features["dojo.data.api.Identity"];if(_326===Number){return item[this._itemNumPropName];}else{var _327=item[_326];if(_327){return _327[0];}}return null;},fetchItemByIdentity:function(_328){var item,_329;if(!this._loadFinished){var self=this;if(this._jsonFileUrl!==this._ccUrl){dojo.deprecated("dojo.data.ItemFileReadStore: ","To change the url, set the url property of the store,"+" not _jsonFileUrl. _jsonFileUrl support will be removed in 2.0");this._ccUrl=this._jsonFileUrl;this.url=this._jsonFileUrl;}else{if(this.url!==this._ccUrl){this._jsonFileUrl=this.url;this._ccUrl=this.url;}}if(this.data!=null&&this._jsonData==null){this._jsonData=this.data;this.data=null;}if(this._jsonFileUrl){if(this._loadInProgress){this._queuedFetches.push({args:_328});}else{this._loadInProgress=true;var _32a={url:self._jsonFileUrl,handleAs:"json-comment-optional",preventCache:this.urlPreventCache,failOk:this.failOk};var _32b=dojo.xhrGet(_32a);_32b.addCallback(function(data){var _32c=_328.scope?_328.scope:dojo.global;try{self._getItemsFromLoadedData(data);self._loadFinished=true;self._loadInProgress=false;item=self._getItemByIdentity(_328.identity);if(_328.onItem){_328.onItem.call(_32c,item);}self._handleQueuedFetches();}catch(error){self._loadInProgress=false;if(_328.onError){_328.onError.call(_32c,error);}}});_32b.addErrback(function(_32d){self._loadInProgress=false;if(_328.onError){var _32e=_328.scope?_328.scope:dojo.global;_328.onError.call(_32e,_32d);}});}}else{if(this._jsonData){self._getItemsFromLoadedData(self._jsonData);self._jsonData=null;self._loadFinished=true;item=self._getItemByIdentity(_328.identity);if(_328.onItem){_329=_328.scope?_328.scope:dojo.global;_328.onItem.call(_329,item);}}}}else{item=this._getItemByIdentity(_328.identity);if(_328.onItem){_329=_328.scope?_328.scope:dojo.global;_328.onItem.call(_329,item);}}},_getItemByIdentity:function(_32f){var item=null;if(this._itemsByIdentity){item=this._itemsByIdentity[_32f];}else{item=this._arrayOfAllItems[_32f];}if(item===undefined){item=null;}return item;},getIdentityAttributes:function(item){var _330=this._features["dojo.data.api.Identity"];if(_330===Number){return null;}else{return [_330];}},_forceLoad:function(){var self=this;if(this._jsonFileUrl!==this._ccUrl){dojo.deprecated("dojo.data.ItemFileReadStore: ","To change the url, set the url property of the store,"+" not _jsonFileUrl. _jsonFileUrl support will be removed in 2.0");this._ccUrl=this._jsonFileUrl;this.url=this._jsonFileUrl;}else{if(this.url!==this._ccUrl){this._jsonFileUrl=this.url;this._ccUrl=this.url;}}if(this.data!=null&&this._jsonData==null){this._jsonData=this.data;this.data=null;}if(this._jsonFileUrl){var _331={url:this._jsonFileUrl,handleAs:"json-comment-optional",preventCache:this.urlPreventCache,failOk:this.failOk,sync:true};var _332=dojo.xhrGet(_331);_332.addCallback(function(data){try{if(self._loadInProgress!==true&&!self._loadFinished){self._getItemsFromLoadedData(data);self._loadFinished=true;}else{if(self._loadInProgress){throw new Error("dojo.data.ItemFileReadStore: Unable to perform a synchronous load, an async load is in progress.");}}}catch(e){throw e;}});_332.addErrback(function(_333){throw _333;});}else{if(this._jsonData){self._getItemsFromLoadedData(self._jsonData);self._jsonData=null;self._loadFinished=true;}}}});dojo.extend(dojo.data.ItemFileReadStore,dojo.data.util.simpleFetch);}if(!dojo._hasResource["dijit._editor.plugins.FontChoice"]){dojo._hasResource["dijit._editor.plugins.FontChoice"]=true;dojo.provide("dijit._editor.plugins.FontChoice");dojo.declare("dijit._editor.plugins._FontDropDown",[dijit._Widget,dijit._Templated],{label:"",widgetsInTemplate:true,plainText:false,templateString:"<span style='white-space: nowrap' class='dijit dijitReset dijitInline'>"+"<label class='dijitLeft dijitInline' for='${selectId}'>${label}</label>"+"<input dojoType='dijit.form.FilteringSelect' required=false labelType=html labelAttr=label searchAttr=name "+"tabIndex='-1' id='${selectId}' dojoAttachPoint='select' value=''/>"+"</span>",postMixInProperties:function(){this.inherited(arguments);this.strings=dojo.i18n.getLocalization("dijit._editor","FontChoice");this.label=this.strings[this.command];this.id=dijit.getUniqueId(this.declaredClass.replace(/\./g,"_"));this.selectId=this.id+"_select";this.inherited(arguments);},postCreate:function(){var _334=dojo.map(this.values,function(_335){var name=this.strings[_335]||_335;return {label:this.getLabel(_335,name),name:name,value:_335};},this);this.select.store=new dojo.data.ItemFileReadStore({data:{identifier:"value",items:_334}});this.select.set("value","",false);this.disabled=this.select.get("disabled");},_setValueAttr:function(_336,_337){_337=_337!==false?true:false;this.select.set("value",dojo.indexOf(this.values,_336)<0?"":_336,_337);if(!_337){this.select._lastValueReported=null;}},_getValueAttr:function(){return this.select.get("value");},focus:function(){this.select.focus();},_setDisabledAttr:function(_338){this.disabled=_338;this.select.set("disabled",_338);}});dojo.declare("dijit._editor.plugins._FontNameDropDown",dijit._editor.plugins._FontDropDown,{generic:false,command:"fontName",postMixInProperties:function(){if(!this.values){this.values=this.generic?["serif","sans-serif","monospace","cursive","fantasy"]:["Arial","Times New Roman","Comic Sans MS","Courier New"];}this.inherited(arguments);},getLabel:function(_339,name){if(this.plainText){return name;}else{return "<div style='font-family: "+_339+"'>"+name+"</div>";}},_setValueAttr:function(_33a,_33b){_33b=_33b!==false?true:false;if(this.generic){var map={"Arial":"sans-serif","Helvetica":"sans-serif","Myriad":"sans-serif","Times":"serif","Times New Roman":"serif","Comic Sans MS":"cursive","Apple Chancery":"cursive","Courier":"monospace","Courier New":"monospace","Papyrus":"fantasy"};_33a=map[_33a]||_33a;}this.inherited(arguments,[_33a,_33b]);}});dojo.declare("dijit._editor.plugins._FontSizeDropDown",dijit._editor.plugins._FontDropDown,{command:"fontSize",values:[1,2,3,4,5,6,7],getLabel:function(_33c,name){if(this.plainText){return name;}else{return "<font size="+_33c+"'>"+name+"</font>";}},_setValueAttr:function(_33d,_33e){_33e=_33e!==false?true:false;if(_33d.indexOf&&_33d.indexOf("px")!=-1){var _33f=parseInt(_33d,10);_33d={10:1,13:2,16:3,18:4,24:5,32:6,48:7}[_33f]||_33d;}this.inherited(arguments,[_33d,_33e]);}});dojo.declare("dijit._editor.plugins._FormatBlockDropDown",dijit._editor.plugins._FontDropDown,{command:"formatBlock",values:["noFormat","p","h1","h2","h3","pre"],postCreate:function(){this.inherited(arguments);this.set("value","noFormat",false);},getLabel:function(_340,name){if(this.plainText){return name;}else{return "<"+_340+">"+name+"</"+_340+">";}},_execCommand:function(_341,_342,_343){if(_343==="noFormat"){var _344;var end;var sel=dijit.range.getSelection(_341.window);if(sel&&sel.rangeCount>0){var _345=sel.getRangeAt(0);var node,tag;if(_345){_344=_345.startContainer;end=_345.endContainer;while(_344&&_344!==_341.editNode&&_344!==_341.document.body&&_344.nodeType!==1){_344=_344.parentNode;}while(end&&end!==_341.editNode&&end!==_341.document.body&&end.nodeType!==1){end=end.parentNode;}var _346=dojo.hitch(this,function(node,_347){if(node.childNodes&&node.childNodes.length){var i;for(i=0;i<node.childNodes.length;i++){var c=node.childNodes[i];if(c.nodeType==1){if(dojo.withGlobal(_341.window,"inSelection",dijit._editor.selection,[c])){var tag=c.tagName?c.tagName.toLowerCase():"";if(dojo.indexOf(this.values,tag)!==-1){_347.push(c);}_346(c,_347);}}}}});var _348=dojo.hitch(this,function(_349){if(_349&&_349.length){_341.beginEditing();while(_349.length){this._removeFormat(_341,_349.pop());}_341.endEditing();}});var _34a=[];if(_344==end){var _34b;node=_344;while(node&&node!==_341.editNode&&node!==_341.document.body){if(node.nodeType==1){tag=node.tagName?node.tagName.toLowerCase():"";if(dojo.indexOf(this.values,tag)!==-1){_34b=node;break;}}node=node.parentNode;}_346(_344,_34a);if(_34b){_34a=[_34b].concat(_34a);}_348(_34a);}else{node=_344;while(dojo.withGlobal(_341.window,"inSelection",dijit._editor.selection,[node])){if(node.nodeType==1){tag=node.tagName?node.tagName.toLowerCase():"";if(dojo.indexOf(this.values,tag)!==-1){_34a.push(node);}_346(node,_34a);}node=node.nextSibling;}_348(_34a);}_341.onDisplayChanged();}}}else{_341.execCommand(_342,_343);}},_removeFormat:function(_34c,node){if(_34c.customUndo){while(node.firstChild){dojo.place(node.firstChild,node,"before");}node.parentNode.removeChild(node);}else{dojo.withGlobal(_34c.window,"selectElementChildren",dijit._editor.selection,[node]);var html=dojo.withGlobal(_34c.window,"getSelectedHtml",dijit._editor.selection,[null]);dojo.withGlobal(_34c.window,"selectElement",dijit._editor.selection,[node]);_34c.execCommand("inserthtml",html||"");}}});dojo.declare("dijit._editor.plugins.FontChoice",dijit._editor._Plugin,{useDefaultCommand:false,_initButton:function(){var _34d={fontName:dijit._editor.plugins._FontNameDropDown,fontSize:dijit._editor.plugins._FontSizeDropDown,formatBlock:dijit._editor.plugins._FormatBlockDropDown}[this.command],_34e=this.params;if(this.params.custom){_34e.values=this.params.custom;}var _34f=this.editor;this.button=new _34d(dojo.delegate({dir:_34f.dir,lang:_34f.lang},_34e));this.connect(this.button.select,"onChange",function(_350){this.editor.focus();if(this.command=="fontName"&&_350.indexOf(" ")!=-1){_350="'"+_350+"'";}if(this.button._execCommand){this.button._execCommand(this.editor,this.command,_350);}else{this.editor.execCommand(this.command,_350);}this.editor.customUndo=this.editor.customUndo||dojo.isWebKit;});},updateState:function(){var _351=this.editor;var _352=this.command;if(!_351||!_351.isLoaded||!_352.length){return;}if(this.button){var _353;try{_353=_351.queryCommandValue(_352)||"";}catch(e){_353="";}var _354=dojo.isString(_353)&&_353.match(/'([^']*)'/);if(_354){_353=_354[1];}if(_352==="formatBlock"){if(!_353||_353=="p"){_353=null;var elem;var sel=dijit.range.getSelection(this.editor.window);if(sel&&sel.rangeCount>0){var _355=sel.getRangeAt(0);if(_355){elem=_355.endContainer;}}while(elem&&elem!==_351.editNode&&elem!==_351.document){var tg=elem.tagName?elem.tagName.toLowerCase():"";if(tg&&dojo.indexOf(this.button.values,tg)>-1){_353=tg;break;}elem=elem.parentNode;}if(!_353){_353="noFormat";}}else{if(dojo.indexOf(this.button.values,_353)<0){_353="noFormat";}}}if(_353!==this.button.get("value")){this.button.set("value",_353,false);}}}});dojo.subscribe(dijit._scopeName+".Editor.getPlugin",null,function(o){if(o.plugin){return;}switch(o.args.name){case "fontName":case "fontSize":case "formatBlock":o.plugin=new dijit._editor.plugins.FontChoice({command:o.args.name,plainText:o.args.plainText?o.args.plainText:false});}});}if(!dojo._hasResource["dijit.form._FormSelectWidget"]){dojo._hasResource["dijit.form._FormSelectWidget"]=true;dojo.provide("dijit.form._FormSelectWidget");dojo.declare("dijit.form._FormSelectWidget",dijit.form._FormValueWidget,{multiple:false,options:null,store:null,query:null,queryOptions:null,onFetch:null,sortByLabel:true,loadChildrenOnOpen:false,getOptions:function(_356){var _357=_356,opts=this.options||[],l=opts.length;if(_357===undefined){return opts;}if(dojo.isArray(_357)){return dojo.map(_357,"return this.getOptions(item);",this);}if(dojo.isObject(_356)){if(!dojo.some(this.options,function(o,idx){if(o===_357||(o.value&&o.value===_357.value)){_357=idx;return true;}return false;})){_357=-1;}}if(typeof _357=="string"){for(var i=0;i<l;i++){if(opts[i].value===_357){_357=i;break;}}}if(typeof _357=="number"&&_357>=0&&_357<l){return this.options[_357];}return null;},addOption:function(_358){if(!dojo.isArray(_358)){_358=[_358];}dojo.forEach(_358,function(i){if(i&&dojo.isObject(i)){this.options.push(i);}},this);this._loadChildren();},removeOption:function(_359){if(!dojo.isArray(_359)){_359=[_359];}var _35a=this.getOptions(_359);dojo.forEach(_35a,function(i){if(i){this.options=dojo.filter(this.options,function(node,idx){return (node.value!==i.value);});this._removeOptionItem(i);}},this);this._loadChildren();},updateOption:function(_35b){if(!dojo.isArray(_35b)){_35b=[_35b];}dojo.forEach(_35b,function(i){var _35c=this.getOptions(i),k;if(_35c){for(k in i){_35c[k]=i[k];}}},this);this._loadChildren();},setStore:function(_35d,_35e,_35f){var _360=this.store;_35f=_35f||{};if(_360!==_35d){dojo.forEach(this._notifyConnections||[],dojo.disconnect);delete this._notifyConnections;if(_35d&&_35d.getFeatures()["dojo.data.api.Notification"]){this._notifyConnections=[dojo.connect(_35d,"onNew",this,"_onNewItem"),dojo.connect(_35d,"onDelete",this,"_onDeleteItem"),dojo.connect(_35d,"onSet",this,"_onSetItem")];}this.store=_35d;}this._onChangeActive=false;if(this.options&&this.options.length){this.removeOption(this.options);}if(_35d){var cb=function(_361){if(this.sortByLabel&&!_35f.sort&&_361.length){_361.sort(dojo.data.util.sorter.createSortFunction([{attribute:_35d.getLabelAttributes(_361[0])[0]}],_35d));}if(_35f.onFetch){_361=_35f.onFetch(_361);}dojo.forEach(_361,function(i){this._addOptionForItem(i);},this);this._loadingStore=false;this.set("value",(("_pendingValue" in this)?this._pendingValue:_35e));delete this._pendingValue;if(!this.loadChildrenOnOpen){this._loadChildren();}else{this._pseudoLoadChildren(_361);}this._fetchedWith=opts;this._lastValueReported=this.multiple?[]:null;this._onChangeActive=true;this.onSetStore();this._handleOnChange(this.value);};var opts=dojo.mixin({onComplete:cb,scope:this},_35f);this._loadingStore=true;_35d.fetch(opts);}else{delete this._fetchedWith;}return _360;},_setValueAttr:function(_362,_363){if(this._loadingStore){this._pendingValue=_362;return;}var opts=this.getOptions()||[];if(!dojo.isArray(_362)){_362=[_362];}dojo.forEach(_362,function(i,idx){if(!dojo.isObject(i)){i=i+"";}if(typeof i==="string"){_362[idx]=dojo.filter(opts,function(node){return node.value===i;})[0]||{value:"",label:""};}},this);_362=dojo.filter(_362,function(i){return i&&i.value;});if(!this.multiple&&(!_362[0]||!_362[0].value)&&opts.length){_362[0]=opts[0];}dojo.forEach(opts,function(i){i.selected=dojo.some(_362,function(v){return v.value===i.value;});});var val=dojo.map(_362,function(i){return i.value;}),disp=dojo.map(_362,function(i){return i.label;});this.value=this.multiple?val:val[0];this._setDisplay(this.multiple?disp:disp[0]);this._updateSelection();this._handleOnChange(this.value,_363);},_getDisplayedValueAttr:function(){var val=this.get("value");if(!dojo.isArray(val)){val=[val];}var ret=dojo.map(this.getOptions(val),function(v){if(v&&"label" in v){return v.label;}else{if(v){return v.value;}}return null;},this);return this.multiple?ret:ret[0];},_getValueDeprecated:false,getValue:function(){return this._lastValue;},undo:function(){this._setValueAttr(this._lastValueReported,false);},_loadChildren:function(){if(this._loadingStore){return;}dojo.forEach(this._getChildren(),function(_364){_364.destroyRecursive();});dojo.forEach(this.options,this._addOptionItem,this);this._updateSelection();},_updateSelection:function(){this.value=this._getValueFromOpts();var val=this.value;if(!dojo.isArray(val)){val=[val];}if(val&&val[0]){dojo.forEach(this._getChildren(),function(_365){var _366=dojo.some(val,function(v){return _365.option&&(v===_365.option.value);});dojo.toggleClass(_365.domNode,this.baseClass+"SelectedOption",_366);dijit.setWaiState(_365.domNode,"selected",_366);},this);}this._handleOnChange(this.value);},_getValueFromOpts:function(){var opts=this.getOptions()||[];if(!this.multiple&&opts.length){var opt=dojo.filter(opts,function(i){return i.selected;})[0];if(opt&&opt.value){return opt.value;}else{opts[0].selected=true;return opts[0].value;}}else{if(this.multiple){return dojo.map(dojo.filter(opts,function(i){return i.selected;}),function(i){return i.value;})||[];}}return "";},_onNewItem:function(item,_367){if(!_367||!_367.parent){this._addOptionForItem(item);}},_onDeleteItem:function(item){var _368=this.store;this.removeOption(_368.getIdentity(item));},_onSetItem:function(item){this.updateOption(this._getOptionObjForItem(item));},_getOptionObjForItem:function(item){var _369=this.store,_36a=_369.getLabel(item),_36b=(_36a?_369.getIdentity(item):null);return {value:_36b,label:_36a,item:item};},_addOptionForItem:function(item){var _36c=this.store;if(!_36c.isItemLoaded(item)){_36c.loadItem({item:item,onComplete:function(i){this._addOptionForItem(item);},scope:this});return;}var _36d=this._getOptionObjForItem(item);this.addOption(_36d);},constructor:function(_36e){this._oValue=(_36e||{}).value||null;},_fillContent:function(){var opts=this.options;if(!opts){opts=this.options=this.srcNodeRef?dojo.query(">",this.srcNodeRef).map(function(node){if(node.getAttribute("type")==="separator"){return {value:"",label:"",selected:false,disabled:false};}return {value:node.getAttribute("value"),label:String(node.innerHTML),selected:node.getAttribute("selected")||false,disabled:node.getAttribute("disabled")||false};},this):[];}if(!this.value){this.value=this._getValueFromOpts();}else{if(this.multiple&&typeof this.value=="string"){this.value=this.value.split(",");}}},postCreate:function(){dojo.setSelectable(this.focusNode,false);this.inherited(arguments);this.connect(this,"onChange","_updateSelection");this.connect(this,"startup","_loadChildren");this._setValueAttr(this.value,null);},startup:function(){this.inherited(arguments);var _36f=this.store,_370={};dojo.forEach(["query","queryOptions","onFetch"],function(i){if(this[i]){_370[i]=this[i];}delete this[i];},this);if(_36f&&_36f.getFeatures()["dojo.data.api.Identity"]){this.store=null;this.setStore(_36f,this._oValue,_370);}},destroy:function(){dojo.forEach(this._notifyConnections||[],dojo.disconnect);this.inherited(arguments);},_addOptionItem:function(_371){},_removeOptionItem:function(_372){},_setDisplay:function(_373){},_getChildren:function(){return [];},_getSelectedOptionsAttr:function(){return this.getOptions(this.get("value"));},_pseudoLoadChildren:function(_374){},onSetStore:function(){}});}if(!dojo._hasResource["dijit.MenuItem"]){dojo._hasResource["dijit.MenuItem"]=true;dojo.provide("dijit.MenuItem");dojo.declare("dijit.MenuItem",[dijit._Widget,dijit._Templated,dijit._Contained,dijit._CssStateMixin],{templateString:dojo.cache("dijit","templates/MenuItem.html","<tr class=\"dijitReset dijitMenuItem\" dojoAttachPoint=\"focusNode\" waiRole=\"menuitem\" tabIndex=\"-1\"\n\t\tdojoAttachEvent=\"onmouseenter:_onHover,onmouseleave:_onUnhover,ondijitclick:_onClick\">\n\t<td class=\"dijitReset dijitMenuItemIconCell\" waiRole=\"presentation\">\n\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon dijitMenuItemIcon\" dojoAttachPoint=\"iconNode\"/>\n\t</td>\n\t<td class=\"dijitReset dijitMenuItemLabel\" colspan=\"2\" dojoAttachPoint=\"containerNode\"></td>\n\t<td class=\"dijitReset dijitMenuItemAccelKey\" style=\"display: none\" dojoAttachPoint=\"accelKeyNode\"></td>\n\t<td class=\"dijitReset dijitMenuArrowCell\" waiRole=\"presentation\">\n\t\t<div dojoAttachPoint=\"arrowWrapper\" style=\"visibility: hidden\">\n\t\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitMenuExpand\"/>\n\t\t\t<span class=\"dijitMenuExpandA11y\">+</span>\n\t\t</div>\n\t</td>\n</tr>\n"),attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{label:{node:"containerNode",type:"innerHTML"},iconClass:{node:"iconNode",type:"class"}}),baseClass:"dijitMenuItem",label:"",iconClass:"",accelKey:"",disabled:false,_fillContent:function(_375){if(_375&&!("label" in this.params)){this.set("label",_375.innerHTML);}},postCreate:function(){this.inherited(arguments);dojo.setSelectable(this.domNode,false);var _376=this.id+"_text";dojo.attr(this.containerNode,"id",_376);if(this.accelKeyNode){dojo.attr(this.accelKeyNode,"id",this.id+"_accel");_376+=" "+this.id+"_accel";}dijit.setWaiState(this.domNode,"labelledby",_376);},_onHover:function(){this.getParent().onItemHover(this);},_onUnhover:function(){this.getParent().onItemUnhover(this);this._hovering=false;this._setStateClass();},_onClick:function(evt){this.getParent().onItemClick(this,evt);dojo.stopEvent(evt);},onClick:function(evt){},focus:function(){try{if(dojo.isIE==8){this.containerNode.focus();}dijit.focus(this.focusNode);}catch(e){}},_onFocus:function(){this._setSelected(true);this.getParent()._onItemFocus(this);this.inherited(arguments);},_setSelected:function(_377){dojo.toggleClass(this.domNode,"dijitMenuItemSelected",_377);},setLabel:function(_378){dojo.deprecated("dijit.MenuItem.setLabel() is deprecated. Use set('label', ...) instead.","","2.0");this.set("label",_378);},setDisabled:function(_379){dojo.deprecated("dijit.Menu.setDisabled() is deprecated. Use set('disabled', bool) instead.","","2.0");this.set("disabled",_379);},_setDisabledAttr:function(_37a){this.disabled=_37a;dijit.setWaiState(this.focusNode,"disabled",_37a?"true":"false");},_setAccelKeyAttr:function(_37b){this.accelKey=_37b;this.accelKeyNode.style.display=_37b?"":"none";this.accelKeyNode.innerHTML=_37b;dojo.attr(this.containerNode,"colSpan",_37b?"1":"2");}});}if(!dojo._hasResource["dijit.PopupMenuItem"]){dojo._hasResource["dijit.PopupMenuItem"]=true;dojo.provide("dijit.PopupMenuItem");dojo.declare("dijit.PopupMenuItem",dijit.MenuItem,{_fillContent:function(){if(this.srcNodeRef){var _37c=dojo.query("*",this.srcNodeRef);dijit.PopupMenuItem.superclass._fillContent.call(this,_37c[0]);this.dropDownContainer=this.srcNodeRef;}},startup:function(){if(this._started){return;}this.inherited(arguments);if(!this.popup){var node=dojo.query("[widgetId]",this.dropDownContainer)[0];this.popup=dijit.byNode(node);}dojo.body().appendChild(this.popup.domNode);this.popup.startup();this.popup.domNode.style.display="none";if(this.arrowWrapper){dojo.style(this.arrowWrapper,"visibility","");}dijit.setWaiState(this.focusNode,"haspopup","true");},destroyDescendants:function(){if(this.popup){if(!this.popup._destroyed){this.popup.destroyRecursive();}delete this.popup;}this.inherited(arguments);}});}if(!dojo._hasResource["dijit.CheckedMenuItem"]){dojo._hasResource["dijit.CheckedMenuItem"]=true;dojo.provide("dijit.CheckedMenuItem");dojo.declare("dijit.CheckedMenuItem",dijit.MenuItem,{templateString:dojo.cache("dijit","templates/CheckedMenuItem.html","<tr class=\"dijitReset dijitMenuItem\" dojoAttachPoint=\"focusNode\" waiRole=\"menuitemcheckbox\" tabIndex=\"-1\"\n\t\tdojoAttachEvent=\"onmouseenter:_onHover,onmouseleave:_onUnhover,ondijitclick:_onClick\">\n\t<td class=\"dijitReset dijitMenuItemIconCell\" waiRole=\"presentation\">\n\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitMenuItemIcon dijitCheckedMenuItemIcon\" dojoAttachPoint=\"iconNode\"/>\n\t\t<span class=\"dijitCheckedMenuItemIconChar\">✓</span>\n\t</td>\n\t<td class=\"dijitReset dijitMenuItemLabel\" colspan=\"2\" dojoAttachPoint=\"containerNode,labelNode\"></td>\n\t<td class=\"dijitReset dijitMenuItemAccelKey\" style=\"display: none\" dojoAttachPoint=\"accelKeyNode\"></td>\n\t<td class=\"dijitReset dijitMenuArrowCell\" waiRole=\"presentation\"> </td>\n</tr>\n"),checked:false,_setCheckedAttr:function(_37d){dojo.toggleClass(this.domNode,"dijitCheckedMenuItemChecked",_37d);dijit.setWaiState(this.domNode,"checked",_37d);this.checked=_37d;},onChange:function(_37e){},_onClick:function(e){if(!this.disabled){this.set("checked",!this.checked);this.onChange(this.checked);}this.inherited(arguments);}});}if(!dojo._hasResource["dijit.MenuSeparator"]){dojo._hasResource["dijit.MenuSeparator"]=true;dojo.provide("dijit.MenuSeparator");dojo.declare("dijit.MenuSeparator",[dijit._Widget,dijit._Templated,dijit._Contained],{templateString:dojo.cache("dijit","templates/MenuSeparator.html","<tr class=\"dijitMenuSeparator\">\n\t<td class=\"dijitMenuSeparatorIconCell\">\n\t\t<div class=\"dijitMenuSeparatorTop\"></div>\n\t\t<div class=\"dijitMenuSeparatorBottom\"></div>\n\t</td>\n\t<td colspan=\"3\" class=\"dijitMenuSeparatorLabelCell\">\n\t\t<div class=\"dijitMenuSeparatorTop dijitMenuSeparatorLabel\"></div>\n\t\t<div class=\"dijitMenuSeparatorBottom\"></div>\n\t</td>\n</tr>\n"),postCreate:function(){dojo.setSelectable(this.domNode,false);},isFocusable:function(){return false;}});}if(!dojo._hasResource["dijit.Menu"]){dojo._hasResource["dijit.Menu"]=true;dojo.provide("dijit.Menu");dojo.declare("dijit._MenuBase",[dijit._Widget,dijit._Templated,dijit._KeyNavContainer],{parentMenu:null,popupDelay:500,startup:function(){if(this._started){return;}dojo.forEach(this.getChildren(),function(_37f){_37f.startup();});this.startupKeyNavChildren();this.inherited(arguments);},onExecute:function(){},onCancel:function(_380){},_moveToPopup:function(evt){if(this.focusedChild&&this.focusedChild.popup&&!this.focusedChild.disabled){this.focusedChild._onClick(evt);}else{var _381=this._getTopMenu();if(_381&&_381._isMenuBar){_381.focusNext();}}},_onPopupHover:function(evt){if(this.currentPopup&&this.currentPopup._pendingClose_timer){var _382=this.currentPopup.parentMenu;if(_382.focusedChild){_382.focusedChild._setSelected(false);}_382.focusedChild=this.currentPopup.from_item;_382.focusedChild._setSelected(true);this._stopPendingCloseTimer(this.currentPopup);}},onItemHover:function(item){if(this.isActive){this.focusChild(item);if(this.focusedChild.popup&&!this.focusedChild.disabled&&!this.hover_timer){this.hover_timer=setTimeout(dojo.hitch(this,"_openPopup"),this.popupDelay);}}if(this.focusedChild){this.focusChild(item);}this._hoveredChild=item;},_onChildBlur:function(item){this._stopPopupTimer();item._setSelected(false);var _383=item.popup;if(_383){this._stopPendingCloseTimer(_383);_383._pendingClose_timer=setTimeout(function(){_383._pendingClose_timer=null;if(_383.parentMenu){_383.parentMenu.currentPopup=null;}dijit.popup.close(_383);},this.popupDelay);}},onItemUnhover:function(item){if(this.isActive){this._stopPopupTimer();}if(this._hoveredChild==item){this._hoveredChild=null;}},_stopPopupTimer:function(){if(this.hover_timer){clearTimeout(this.hover_timer);this.hover_timer=null;}},_stopPendingCloseTimer:function(_384){if(_384._pendingClose_timer){clearTimeout(_384._pendingClose_timer);_384._pendingClose_timer=null;}},_stopFocusTimer:function(){if(this._focus_timer){clearTimeout(this._focus_timer);this._focus_timer=null;}},_getTopMenu:function(){for(var top=this;top.parentMenu;top=top.parentMenu){}return top;},onItemClick:function(item,evt){if(typeof this.isShowingNow=="undefined"){this._markActive();}this.focusChild(item);if(item.disabled){return false;}if(item.popup){this._openPopup();}else{this.onExecute();item.onClick(evt);}},_openPopup:function(){this._stopPopupTimer();var _385=this.focusedChild;if(!_385){return;}var _386=_385.popup;if(_386.isShowingNow){return;}if(this.currentPopup){this._stopPendingCloseTimer(this.currentPopup);dijit.popup.close(this.currentPopup);}_386.parentMenu=this;_386.from_item=_385;var self=this;dijit.popup.open({parent:this,popup:_386,around:_385.domNode,orient:this._orient||(this.isLeftToRight()?{"TR":"TL","TL":"TR","BR":"BL","BL":"BR"}:{"TL":"TR","TR":"TL","BL":"BR","BR":"BL"}),onCancel:function(){self.focusChild(_385);self._cleanUp();_385._setSelected(true);self.focusedChild=_385;},onExecute:dojo.hitch(this,"_cleanUp")});this.currentPopup=_386;_386.connect(_386.domNode,"onmouseenter",dojo.hitch(self,"_onPopupHover"));if(_386.focus){_386._focus_timer=setTimeout(dojo.hitch(_386,function(){this._focus_timer=null;this.focus();}),0);}},_markActive:function(){this.isActive=true;dojo.addClass(this.domNode,"dijitMenuActive");dojo.removeClass(this.domNode,"dijitMenuPassive");},onOpen:function(e){this.isShowingNow=true;this._markActive();},_markInactive:function(){this.isActive=false;dojo.removeClass(this.domNode,"dijitMenuActive");dojo.addClass(this.domNode,"dijitMenuPassive");},onClose:function(){this._stopFocusTimer();this._markInactive();this.isShowingNow=false;this.parentMenu=null;},_closeChild:function(){this._stopPopupTimer();if(this.focusedChild){this.focusedChild._setSelected(false);this.focusedChild._onUnhover();this.focusedChild=null;}if(this.currentPopup){dijit.popup.close(this.currentPopup);this.currentPopup=null;}},_onItemFocus:function(item){if(this._hoveredChild&&this._hoveredChild!=item){this._hoveredChild._onUnhover();}},_onBlur:function(){this._cleanUp();this.inherited(arguments);},_cleanUp:function(){this._closeChild();if(typeof this.isShowingNow=="undefined"){this._markInactive();}}});dojo.declare("dijit.Menu",dijit._MenuBase,{constructor:function(){this._bindings=[];},templateString:dojo.cache("dijit","templates/Menu.html","<table class=\"dijit dijitMenu dijitMenuPassive dijitReset dijitMenuTable\" waiRole=\"menu\" tabIndex=\"${tabIndex}\" dojoAttachEvent=\"onkeypress:_onKeyPress\" cellspacing=0>\n\t<tbody class=\"dijitReset\" dojoAttachPoint=\"containerNode\"></tbody>\n</table>\n"),baseClass:"dijitMenu",targetNodeIds:[],contextMenuForWindow:false,leftClickToOpen:false,refocus:true,postCreate:function(){if(this.contextMenuForWindow){this.bindDomNode(dojo.body());}else{dojo.forEach(this.targetNodeIds,this.bindDomNode,this);}var k=dojo.keys,l=this.isLeftToRight();this._openSubMenuKey=l?k.RIGHT_ARROW:k.LEFT_ARROW;this._closeSubMenuKey=l?k.LEFT_ARROW:k.RIGHT_ARROW;this.connectKeyNavHandlers([k.UP_ARROW],[k.DOWN_ARROW]);},_onKeyPress:function(evt){if(evt.ctrlKey||evt.altKey){return;}switch(evt.charOrCode){case this._openSubMenuKey:this._moveToPopup(evt);dojo.stopEvent(evt);break;case this._closeSubMenuKey:if(this.parentMenu){if(this.parentMenu._isMenuBar){this.parentMenu.focusPrev();}else{this.onCancel(false);}}else{dojo.stopEvent(evt);}break;}},_iframeContentWindow:function(_387){var win=dojo.window.get(this._iframeContentDocument(_387))||this._iframeContentDocument(_387)["__parent__"]||(_387.name&&dojo.doc.frames[_387.name])||null;return win;},_iframeContentDocument:function(_388){var doc=_388.contentDocument||(_388.contentWindow&&_388.contentWindow.document)||(_388.name&&dojo.doc.frames[_388.name]&&dojo.doc.frames[_388.name].document)||null;return doc;},bindDomNode:function(node){node=dojo.byId(node);var cn;if(node.tagName.toLowerCase()=="iframe"){var _389=node,win=this._iframeContentWindow(_389);cn=dojo.withGlobal(win,dojo.body);}else{cn=(node==dojo.body()?dojo.doc.documentElement:node);}var _38a={node:node,iframe:_389};dojo.attr(node,"_dijitMenu"+this.id,this._bindings.push(_38a));var _38b=dojo.hitch(this,function(cn){return [dojo.connect(cn,this.leftClickToOpen?"onclick":"oncontextmenu",this,function(evt){dojo.stopEvent(evt);this._scheduleOpen(evt.target,_389,{x:evt.pageX,y:evt.pageY});}),dojo.connect(cn,"onkeydown",this,function(evt){if(evt.shiftKey&&evt.keyCode==dojo.keys.F10){dojo.stopEvent(evt);this._scheduleOpen(evt.target,_389);}})];});_38a.connects=cn?_38b(cn):[];if(_389){_38a.onloadHandler=dojo.hitch(this,function(){var win=this._iframeContentWindow(_389);cn=dojo.withGlobal(win,dojo.body);_38a.connects=_38b(cn);});if(_389.addEventListener){_389.addEventListener("load",_38a.onloadHandler,false);}else{_389.attachEvent("onload",_38a.onloadHandler);}}},unBindDomNode:function(_38c){var node;try{node=dojo.byId(_38c);}catch(e){return;}var _38d="_dijitMenu"+this.id;if(node&&dojo.hasAttr(node,_38d)){var bid=dojo.attr(node,_38d)-1,b=this._bindings[bid];dojo.forEach(b.connects,dojo.disconnect);var _38e=b.iframe;if(_38e){if(_38e.removeEventListener){_38e.removeEventListener("load",b.onloadHandler,false);}else{_38e.detachEvent("onload",b.onloadHandler);}}dojo.removeAttr(node,_38d);delete this._bindings[bid];}},_scheduleOpen:function(_38f,_390,_391){if(!this._openTimer){this._openTimer=setTimeout(dojo.hitch(this,function(){delete this._openTimer;this._openMyself({target:_38f,iframe:_390,coords:_391});}),1);}},_openMyself:function(args){var _392=args.target,_393=args.iframe,_394=args.coords;if(_394){if(_393){var od=_392.ownerDocument,ifc=dojo.position(_393,true),win=this._iframeContentWindow(_393),_395=dojo.withGlobal(win,"_docScroll",dojo);var cs=dojo.getComputedStyle(_393),tp=dojo._toPixelValue,left=(dojo.isIE&&dojo.isQuirks?0:tp(_393,cs.paddingLeft))+(dojo.isIE&&dojo.isQuirks?tp(_393,cs.borderLeftWidth):0),top=(dojo.isIE&&dojo.isQuirks?0:tp(_393,cs.paddingTop))+(dojo.isIE&&dojo.isQuirks?tp(_393,cs.borderTopWidth):0);_394.x+=ifc.x+left-_395.x;_394.y+=ifc.y+top-_395.y;}}else{_394=dojo.position(_392,true);_394.x+=10;_394.y+=10;}var self=this;var _396=dijit.getFocus(this);function _397(){if(self.refocus){dijit.focus(_396);}dijit.popup.close(self);};dijit.popup.open({popup:this,x:_394.x,y:_394.y,onExecute:_397,onCancel:_397,orient:this.isLeftToRight()?"L":"R"});this.focus();this._onBlur=function(){this.inherited("_onBlur",arguments);dijit.popup.close(this);};},uninitialize:function(){dojo.forEach(this._bindings,function(b){if(b){this.unBindDomNode(b.node);}},this);this.inherited(arguments);}});}if(!dojo._hasResource["dijit.form.Select"]){dojo._hasResource["dijit.form.Select"]=true;dojo.provide("dijit.form.Select");dojo.declare("dijit.form._SelectMenu",dijit.Menu,{buildRendering:function(){this.inherited(arguments);var o=(this.menuTableNode=this.domNode);var n=(this.domNode=dojo.create("div",{style:{overflowX:"hidden",overflowY:"scroll"}}));if(o.parentNode){o.parentNode.replaceChild(n,o);}dojo.removeClass(o,"dijitMenuTable");n.className=o.className+" dijitSelectMenu";o.className="dijitReset dijitMenuTable";dijit.setWaiRole(o,"listbox");dijit.setWaiRole(n,"presentation");n.appendChild(o);},resize:function(mb){if(mb){dojo.marginBox(this.domNode,mb);if("w" in mb){this.menuTableNode.style.width="100%";}}}});dojo.declare("dijit.form.Select",[dijit.form._FormSelectWidget,dijit._HasDropDown],{baseClass:"dijitSelect",templateString:dojo.cache("dijit.form","templates/Select.html","<table class=\"dijit dijitReset dijitInline dijitLeft\"\n\tdojoAttachPoint=\"_buttonNode,tableNode,focusNode\" cellspacing='0' cellpadding='0'\n\twaiRole=\"combobox\" waiState=\"haspopup-true\"\n\t><tbody waiRole=\"presentation\"><tr waiRole=\"presentation\"\n\t\t><td class=\"dijitReset dijitStretch dijitButtonContents dijitButtonNode\" waiRole=\"presentation\"\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\" dojoAttachPoint=\"containerNode,_popupStateNode\"></span\n\t\t\t><input type=\"hidden\" ${!nameAttrSetting} dojoAttachPoint=\"valueNode\" value=\"${value}\" waiState=\"hidden-true\"\n\t\t/></td><td class=\"dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton\"\n\t\t\t\tdojoAttachPoint=\"titleNode\" waiRole=\"presentation\"\n\t\t\t><div class=\"dijitReset dijitArrowButtonInner\" waiRole=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitArrowButtonChar\" waiRole=\"presentation\">▼</div\n\t\t></td\n\t></tr></tbody\n></table>\n"),attributeMap:dojo.mixin(dojo.clone(dijit.form._FormSelectWidget.prototype.attributeMap),{style:"tableNode"}),required:false,state:"",tooltipPosition:[],emptyLabel:"",_isLoaded:false,_childrenLoaded:false,_fillContent:function(){this.inherited(arguments);if(this.options.length&&!this.value&&this.srcNodeRef){var si=this.srcNodeRef.selectedIndex;this.value=this.options[si!=-1?si:0].value;}this.dropDown=new dijit.form._SelectMenu({id:this.id+"_menu"});dojo.addClass(this.dropDown.domNode,this.baseClass+"Menu");},_getMenuItemForOption:function(_398){if(!_398.value){return new dijit.MenuSeparator();}else{var _399=dojo.hitch(this,"_setValueAttr",_398);var item=new dijit.MenuItem({option:_398,label:_398.label,onClick:_399,disabled:_398.disabled||false});dijit.setWaiRole(item.focusNode,"listitem");return item;}},_addOptionItem:function(_39a){if(this.dropDown){this.dropDown.addChild(this._getMenuItemForOption(_39a));}},_getChildren:function(){if(!this.dropDown){return [];}return this.dropDown.getChildren();},_loadChildren:function(_39b){if(_39b===true){if(this.dropDown){delete this.dropDown.focusedChild;}if(this.options.length){this.inherited(arguments);}else{dojo.forEach(this._getChildren(),function(_39c){_39c.destroyRecursive();});var item=new dijit.MenuItem({label:" "});this.dropDown.addChild(item);}}else{this._updateSelection();}var len=this.options.length;this._isLoaded=false;this._childrenLoaded=true;if(!this._loadingStore){this._setValueAttr(this.value);}},_setValueAttr:function(_39d){this.inherited(arguments);dojo.attr(this.valueNode,"value",this.get("value"));},_setDisplay:function(_39e){this.containerNode.innerHTML="<span class=\"dijitReset dijitInline "+this.baseClass+"Label\">"+(_39e||this.emptyLabel||" ")+"</span>";dijit.setWaiState(this.focusNode,"valuetext",(_39e||this.emptyLabel||" "));},validate:function(_39f){var _3a0=this.isValid(_39f);this.state=_3a0?"":"Error";this._setStateClass();dijit.setWaiState(this.focusNode,"invalid",_3a0?"false":"true");var _3a1=_3a0?"":this._missingMsg;if(this._message!==_3a1){this._message=_3a1;dijit.hideTooltip(this.domNode);if(_3a1){dijit.showTooltip(_3a1,this.domNode,this.tooltipPosition,!this.isLeftToRight());}}return _3a0;},isValid:function(_3a2){return (!this.required||!(/^\s*$/.test(this.value)));},reset:function(){this.inherited(arguments);dijit.hideTooltip(this.domNode);this.state="";this._setStateClass();delete this._message;},postMixInProperties:function(){this.inherited(arguments);this._missingMsg=dojo.i18n.getLocalization("dijit.form","validate",this.lang).missingMessage;},postCreate:function(){this.inherited(arguments);if(this.tableNode.style.width){dojo.addClass(this.domNode,this.baseClass+"FixedWidth");}},isLoaded:function(){return this._isLoaded;},loadDropDown:function(_3a3){this._loadChildren(true);this._isLoaded=true;_3a3();},closeDropDown:function(){this.inherited(arguments);if(this.dropDown&&this.dropDown.menuTableNode){this.dropDown.menuTableNode.style.width="";}},uninitialize:function(_3a4){if(this.dropDown&&!this.dropDown._destroyed){this.dropDown.destroyRecursive(_3a4);delete this.dropDown;}this.inherited(arguments);}});}if(!dojo._hasResource["dijit._editor.plugins.LinkDialog"]){dojo._hasResource["dijit._editor.plugins.LinkDialog"]=true;dojo.provide("dijit._editor.plugins.LinkDialog");dojo.declare("dijit._editor.plugins.LinkDialog",dijit._editor._Plugin,{buttonClass:dijit.form.DropDownButton,useDefaultCommand:false,urlRegExp:"((https?|ftps?|file)\\://|./|/|)(/[a-zA-Z]{1,1}:/|)(((?:(?:[\\da-zA-Z](?:[-\\da-zA-Z]{0,61}[\\da-zA-Z])?)\\.)*(?:[a-zA-Z](?:[-\\da-zA-Z]{0,80}[\\da-zA-Z])?)\\.?)|(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.){3}(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])|(0[xX]0*[\\da-fA-F]?[\\da-fA-F]\\.){3}0[xX]0*[\\da-fA-F]?[\\da-fA-F]|(0+[0-3][0-7][0-7]\\.){3}0+[0-3][0-7][0-7]|(0|[1-9]\\d{0,8}|[1-3]\\d{9}|4[01]\\d{8}|42[0-8]\\d{7}|429[0-3]\\d{6}|4294[0-8]\\d{5}|42949[0-5]\\d{4}|429496[0-6]\\d{3}|4294967[01]\\d{2}|42949672[0-8]\\d|429496729[0-5])|0[xX]0*[\\da-fA-F]{1,8}|([\\da-fA-F]{1,4}\\:){7}[\\da-fA-F]{1,4}|([\\da-fA-F]{1,4}\\:){6}((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.){3}(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])))(\\:\\d+)?(/(?:[^?#\\s/]+/)*(?:[^?#\\s/]+(?:\\?[^?#\\s/]*)?(?:#.*)?)?)?",emailRegExp:"<?(mailto\\:)([!#-'*+\\-\\/-9=?A-Z^-~]+[.])*[!#-'*+\\-\\/-9=?A-Z^-~]+"+"@"+"((?:(?:[\\da-zA-Z](?:[-\\da-zA-Z]{0,61}[\\da-zA-Z])?)\\.)+(?:[a-zA-Z](?:[-\\da-zA-Z]{0,6}[\\da-zA-Z])?)\\.?)|localhost|^[^-][a-zA-Z0-9_-]*>?",htmlTemplate:"<a href=\"${urlInput}\" _djrealurl=\"${urlInput}\""+" target=\"${targetSelect}\""+">${textInput}</a>",tag:"a",_hostRxp:new RegExp("^((([^\\[:]+):)?([^@]+)@)?(\\[([^\\]]+)\\]|([^\\[:]*))(:([0-9]+))?$"),_userAtRxp:new RegExp("^([!#-'*+\\-\\/-9=?A-Z^-~]+[.])*[!#-'*+\\-\\/-9=?A-Z^-~]+@","i"),linkDialogTemplate:["<table><tr><td>","<label for='${id}_urlInput'>${url}</label>","</td><td>","<input dojoType='dijit.form.ValidationTextBox' required='true' "+"id='${id}_urlInput' name='urlInput' intermediateChanges='true'>","</td></tr><tr><td>","<label for='${id}_textInput'>${text}</label>","</td><td>","<input dojoType='dijit.form.ValidationTextBox' required='true' id='${id}_textInput' "+"name='textInput' intermediateChanges='true'>","</td></tr><tr><td>","<label for='${id}_targetSelect'>${target}</label>","</td><td>","<select id='${id}_targetSelect' name='targetSelect' dojoType='dijit.form.Select'>","<option selected='selected' value='_self'>${currentWindow}</option>","<option value='_blank'>${newWindow}</option>","<option value='_top'>${topWindow}</option>","<option value='_parent'>${parentWindow}</option>","</select>","</td></tr><tr><td colspan='2'>","<button dojoType='dijit.form.Button' type='submit' id='${id}_setButton'>${set}</button>","<button dojoType='dijit.form.Button' type='button' id='${id}_cancelButton'>${buttonCancel}</button>","</td></tr></table>"].join(""),_initButton:function(){var _3a5=this;this.tag=this.command=="insertImage"?"img":"a";var _3a6=dojo.mixin(dojo.i18n.getLocalization("dijit","common",this.lang),dojo.i18n.getLocalization("dijit._editor","LinkDialog",this.lang));var _3a7=(this.dropDown=new dijit.TooltipDialog({title:_3a6[this.command+"Title"],execute:dojo.hitch(this,"setValue"),onOpen:function(){_3a5._onOpenDialog();dijit.TooltipDialog.prototype.onOpen.apply(this,arguments);},onCancel:function(){setTimeout(dojo.hitch(_3a5,"_onCloseDialog"),0);}}));_3a6.urlRegExp=this.urlRegExp;_3a6.id=dijit.getUniqueId(this.editor.id);this._uniqueId=_3a6.id;this._setContent(_3a7.title+"<div style='border-bottom: 1px black solid;padding-bottom:2pt;margin-bottom:4pt'></div>"+dojo.string.substitute(this.linkDialogTemplate,_3a6));_3a7.startup();this._urlInput=dijit.byId(this._uniqueId+"_urlInput");this._textInput=dijit.byId(this._uniqueId+"_textInput");this._setButton=dijit.byId(this._uniqueId+"_setButton");this.connect(dijit.byId(this._uniqueId+"_cancelButton"),"onClick",function(){this.dropDown.onCancel();});if(this._urlInput){this.connect(this._urlInput,"onChange","_checkAndFixInput");}if(this._textInput){this.connect(this._textInput,"onChange","_checkAndFixInput");}this._urlRegExp=new RegExp("^"+this.urlRegExp+"$","i");this._emailRegExp=new RegExp("^"+this.emailRegExp+"$","i");this._urlInput.isValid=dojo.hitch(this,function(){var _3a8=this._urlInput.get("value");return this._urlRegExp.test(_3a8)||this._emailRegExp.test(_3a8);});this._connectTagEvents();this.inherited(arguments);},_checkAndFixInput:function(){var self=this;var url=this._urlInput.get("value");var _3a9=function(url){var _3aa=false;var _3ab=false;if(url&&url.length>1){url=dojo.trim(url);if(url.indexOf("mailto:")!==0){if(url.indexOf("/")>0){if(url.indexOf("://")===-1){if(url.charAt(0)!=="/"&&url.indexOf("./")!==0){if(self._hostRxp.test(url)){_3aa=true;}}}}else{if(self._userAtRxp.test(url)){_3ab=true;}}}}if(_3aa){self._urlInput.set("value","http://"+url);}if(_3ab){self._urlInput.set("value","mailto:"+url);}self._setButton.set("disabled",!self._isValid());};if(this._delayedCheck){clearTimeout(this._delayedCheck);this._delayedCheck=null;}this._delayedCheck=setTimeout(function(){_3a9(url);},250);},_connectTagEvents:function(){this.editor.onLoadDeferred.addCallback(dojo.hitch(this,function(){this.connect(this.editor.editNode,"ondblclick",this._onDblClick);}));},_isValid:function(){return this._urlInput.isValid()&&this._textInput.isValid();},_setContent:function(_3ac){this.dropDown.set("content",_3ac);},_checkValues:function(args){if(args&&args.urlInput){args.urlInput=args.urlInput.replace(/"/g,""");}return args;},setValue:function(args){this._onCloseDialog();if(dojo.isIE){var sel=dijit.range.getSelection(this.editor.window);var _3ad=sel.getRangeAt(0);var a=_3ad.endContainer;if(a.nodeType===3){a=a.parentNode;}if(a&&(a.nodeName&&a.nodeName.toLowerCase()!==this.tag)){a=dojo.withGlobal(this.editor.window,"getSelectedElement",dijit._editor.selection,[this.tag]);}if(a&&(a.nodeName&&a.nodeName.toLowerCase()===this.tag)){if(this.editor.queryCommandEnabled("unlink")){dojo.withGlobal(this.editor.window,"selectElementChildren",dijit._editor.selection,[a]);this.editor.execCommand("unlink");}}}args=this._checkValues(args);this.editor.execCommand("inserthtml",dojo.string.substitute(this.htmlTemplate,args));},_onCloseDialog:function(){this.editor.focus();},_getCurrentValues:function(a){var url,text,_3ae;if(a&&a.tagName.toLowerCase()===this.tag){url=a.getAttribute("_djrealurl")||a.getAttribute("href");_3ae=a.getAttribute("target")||"_self";text=a.textContent||a.innerText;dojo.withGlobal(this.editor.window,"selectElement",dijit._editor.selection,[a,true]);}else{text=dojo.withGlobal(this.editor.window,dijit._editor.selection.getSelectedText);}return {urlInput:url||"",textInput:text||"",targetSelect:_3ae||""};},_onOpenDialog:function(){var a;if(dojo.isIE){var sel=dijit.range.getSelection(this.editor.window);var _3af=sel.getRangeAt(0);a=_3af.endContainer;if(a.nodeType===3){a=a.parentNode;}if(a&&(a.nodeName&&a.nodeName.toLowerCase()!==this.tag)){a=dojo.withGlobal(this.editor.window,"getSelectedElement",dijit._editor.selection,[this.tag]);}}else{a=dojo.withGlobal(this.editor.window,"getAncestorElement",dijit._editor.selection,[this.tag]);}this.dropDown.reset();this._setButton.set("disabled",true);this.dropDown.set("value",this._getCurrentValues(a));},_onDblClick:function(e){if(e&&e.target){var t=e.target;var tg=t.tagName?t.tagName.toLowerCase():"";if(tg===this.tag&&dojo.attr(t,"href")){dojo.withGlobal(this.editor.window,"selectElement",dijit._editor.selection,[t]);this.editor.onDisplayChanged();setTimeout(dojo.hitch(this,function(){this.button.set("disabled",false);this.button.openDropDown();}),10);}}}});dojo.declare("dijit._editor.plugins.ImgLinkDialog",[dijit._editor.plugins.LinkDialog],{linkDialogTemplate:["<table><tr><td>","<label for='${id}_urlInput'>${url}</label>","</td><td>","<input dojoType='dijit.form.ValidationTextBox' regExp='${urlRegExp}' "+"required='true' id='${id}_urlInput' name='urlInput' intermediateChanges='true'>","</td></tr><tr><td>","<label for='${id}_textInput'>${text}</label>","</td><td>","<input dojoType='dijit.form.ValidationTextBox' required='false' id='${id}_textInput' "+"name='textInput' intermediateChanges='true'>","</td></tr><tr><td>","</td><td>","</td></tr><tr><td colspan='2'>","<button dojoType='dijit.form.Button' type='submit' id='${id}_setButton'>${set}</button>","<button dojoType='dijit.form.Button' type='button' id='${id}_cancelButton'>${buttonCancel}</button>","</td></tr></table>"].join(""),htmlTemplate:"<img src=\"${urlInput}\" _djrealurl=\"${urlInput}\" alt=\"${textInput}\" />",tag:"img",_getCurrentValues:function(img){var url,text;if(img&&img.tagName.toLowerCase()===this.tag){url=img.getAttribute("_djrealurl")||img.getAttribute("src");text=img.getAttribute("alt");dojo.withGlobal(this.editor.window,"selectElement",dijit._editor.selection,[img,true]);}else{text=dojo.withGlobal(this.editor.window,dijit._editor.selection.getSelectedText);}return {urlInput:url||"",textInput:text||""};},_isValid:function(){return this._urlInput.isValid();},_connectTagEvents:function(){this.inherited(arguments);this.editor.onLoadDeferred.addCallback(dojo.hitch(this,function(){this.connect(this.editor.editNode,"onmousedown",this._selectTag);}));},_selectTag:function(e){if(e&&e.target){var t=e.target;var tg=t.tagName?t.tagName.toLowerCase():"";if(tg===this.tag){dojo.withGlobal(this.editor.window,"selectElement",dijit._editor.selection,[t]);}}},_checkValues:function(args){if(args&&args.urlInput){args.urlInput=args.urlInput.replace(/"/g,""");}if(args&&args.textInput){args.textInput=args.textInput.replace(/"/g,""");}return args;},_onDblClick:function(e){if(e&&e.target){var t=e.target;var tg=t.tagName?t.tagName.toLowerCase():"";if(tg===this.tag&&dojo.attr(t,"src")){dojo.withGlobal(this.editor.window,"selectElement",dijit._editor.selection,[t]);this.editor.onDisplayChanged();setTimeout(dojo.hitch(this,function(){this.button.set("disabled",false);this.button.openDropDown();}),10);}}}});dojo.subscribe(dijit._scopeName+".Editor.getPlugin",null,function(o){if(o.plugin){return;}switch(o.args.name){case "createLink":o.plugin=new dijit._editor.plugins.LinkDialog({command:o.args.name});break;case "insertImage":o.plugin=new dijit._editor.plugins.ImgLinkDialog({command:o.args.name});break;}});}if(!dojo._hasResource["dijit.MenuBar"]){dojo._hasResource["dijit.MenuBar"]=true;dojo.provide("dijit.MenuBar");dojo.declare("dijit.MenuBar",dijit._MenuBase,{templateString:dojo.cache("dijit","templates/MenuBar.html","<div class=\"dijitMenuBar dijitMenuPassive\" dojoAttachPoint=\"containerNode\" waiRole=\"menubar\" tabIndex=\"${tabIndex}\" dojoAttachEvent=\"onkeypress: _onKeyPress\"></div>\n"),baseClass:"dijitMenuBar",_isMenuBar:true,postCreate:function(){var k=dojo.keys,l=this.isLeftToRight();this.connectKeyNavHandlers(l?[k.LEFT_ARROW]:[k.RIGHT_ARROW],l?[k.RIGHT_ARROW]:[k.LEFT_ARROW]);this._orient=this.isLeftToRight()?{BL:"TL"}:{BR:"TR"};},focusChild:function(item){var _3b0=this.focusedChild,_3b1=_3b0&&_3b0.popup&&_3b0.popup.isShowingNow;this.inherited(arguments);if(_3b1&&item.popup&&!item.disabled){this._openPopup();}},_onKeyPress:function(evt){if(evt.ctrlKey||evt.altKey){return;}switch(evt.charOrCode){case dojo.keys.DOWN_ARROW:this._moveToPopup(evt);dojo.stopEvent(evt);}},onItemClick:function(item,evt){if(item.popup&&item.popup.isShowingNow){item.popup.onCancel();}else{this.inherited(arguments);}}});}if(!dojo._hasResource["dijit.MenuBarItem"]){dojo._hasResource["dijit.MenuBarItem"]=true;dojo.provide("dijit.MenuBarItem");dojo.declare("dijit._MenuBarItemMixin",null,{templateString:dojo.cache("dijit","templates/MenuBarItem.html","<div class=\"dijitReset dijitInline dijitMenuItem dijitMenuItemLabel\" dojoAttachPoint=\"focusNode\" waiRole=\"menuitem\" tabIndex=\"-1\"\n\t\tdojoAttachEvent=\"onmouseenter:_onHover,onmouseleave:_onUnhover,ondijitclick:_onClick\">\n\t<span dojoAttachPoint=\"containerNode\"></span>\n</div>\n"),attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{label:{node:"containerNode",type:"innerHTML"}})});dojo.declare("dijit.MenuBarItem",[dijit.MenuItem,dijit._MenuBarItemMixin],{});}if(!dojo._hasResource["dijit.PopupMenuBarItem"]){dojo._hasResource["dijit.PopupMenuBarItem"]=true;dojo.provide("dijit.PopupMenuBarItem");dojo.declare("dijit.PopupMenuBarItem",[dijit.PopupMenuItem,dijit._MenuBarItemMixin],{});}if(!dojo._hasResource["dojo.number"]){dojo._hasResource["dojo.number"]=true;dojo.provide("dojo.number");dojo.number.format=function(_3b2,_3b3){_3b3=dojo.mixin({},_3b3||{});var _3b4=dojo.i18n.normalizeLocale(_3b3.locale),_3b5=dojo.i18n.getLocalization("dojo.cldr","number",_3b4);_3b3.customs=_3b5;var _3b6=_3b3.pattern||_3b5[(_3b3.type||"decimal")+"Format"];if(isNaN(_3b2)||Math.abs(_3b2)==Infinity){return null;}return dojo.number._applyPattern(_3b2,_3b6,_3b3);};dojo.number._numberPatternRE=/[#0,]*[#0](?:\.0*#*)?/;dojo.number._applyPattern=function(_3b7,_3b8,_3b9){_3b9=_3b9||{};var _3ba=_3b9.customs.group,_3bb=_3b9.customs.decimal,_3bc=_3b8.split(";"),_3bd=_3bc[0];_3b8=_3bc[(_3b7<0)?1:0]||("-"+_3bd);if(_3b8.indexOf("%")!=-1){_3b7*=100;}else{if(_3b8.indexOf("‰")!=-1){_3b7*=1000;}else{if(_3b8.indexOf("¤")!=-1){_3ba=_3b9.customs.currencyGroup||_3ba;_3bb=_3b9.customs.currencyDecimal||_3bb;_3b8=_3b8.replace(/\u00a4{1,3}/,function(_3be){var prop=["symbol","currency","displayName"][_3be.length-1];return _3b9[prop]||_3b9.currency||"";});}else{if(_3b8.indexOf("E")!=-1){throw new Error("exponential notation not supported");}}}}var _3bf=dojo.number._numberPatternRE;var _3c0=_3bd.match(_3bf);if(!_3c0){throw new Error("unable to find a number expression in pattern: "+_3b8);}if(_3b9.fractional===false){_3b9.places=0;}return _3b8.replace(_3bf,dojo.number._formatAbsolute(_3b7,_3c0[0],{decimal:_3bb,group:_3ba,places:_3b9.places,round:_3b9.round}));};dojo.number.round=function(_3c1,_3c2,_3c3){var _3c4=10/(_3c3||10);return (_3c4*+_3c1).toFixed(_3c2)/_3c4;};if((0.9).toFixed()==0){(function(){var _3c5=dojo.number.round;dojo.number.round=function(v,p,m){var d=Math.pow(10,-p||0),a=Math.abs(v);if(!v||a>=d||a*Math.pow(10,p+1)<5){d=0;}return _3c5(v,p,m)+(v>0?d:-d);};})();}dojo.number._formatAbsolute=function(_3c6,_3c7,_3c8){_3c8=_3c8||{};if(_3c8.places===true){_3c8.places=0;}if(_3c8.places===Infinity){_3c8.places=6;}var _3c9=_3c7.split("."),_3ca=typeof _3c8.places=="string"&&_3c8.places.indexOf(","),_3cb=_3c8.places;if(_3ca){_3cb=_3c8.places.substring(_3ca+1);}else{if(!(_3cb>=0)){_3cb=(_3c9[1]||[]).length;}}if(!(_3c8.round<0)){_3c6=dojo.number.round(_3c6,_3cb,_3c8.round);}var _3cc=String(Math.abs(_3c6)).split("."),_3cd=_3cc[1]||"";if(_3c9[1]||_3c8.places){if(_3ca){_3c8.places=_3c8.places.substring(0,_3ca);}var pad=_3c8.places!==undefined?_3c8.places:(_3c9[1]&&_3c9[1].lastIndexOf("0")+1);if(pad>_3cd.length){_3cc[1]=dojo.string.pad(_3cd,pad,"0",true);}if(_3cb<_3cd.length){_3cc[1]=_3cd.substr(0,_3cb);}}else{if(_3cc[1]){_3cc.pop();}}var _3ce=_3c9[0].replace(",","");pad=_3ce.indexOf("0");if(pad!=-1){pad=_3ce.length-pad;if(pad>_3cc[0].length){_3cc[0]=dojo.string.pad(_3cc[0],pad);}if(_3ce.indexOf("#")==-1){_3cc[0]=_3cc[0].substr(_3cc[0].length-pad);}}var _3cf=_3c9[0].lastIndexOf(","),_3d0,_3d1;if(_3cf!=-1){_3d0=_3c9[0].length-_3cf-1;var _3d2=_3c9[0].substr(0,_3cf);_3cf=_3d2.lastIndexOf(",");if(_3cf!=-1){_3d1=_3d2.length-_3cf-1;}}var _3d3=[];for(var _3d4=_3cc[0];_3d4;){var off=_3d4.length-_3d0;_3d3.push((off>0)?_3d4.substr(off):_3d4);_3d4=(off>0)?_3d4.slice(0,off):"";if(_3d1){_3d0=_3d1;delete _3d1;}}_3cc[0]=_3d3.reverse().join(_3c8.group||",");return _3cc.join(_3c8.decimal||".");};dojo.number.regexp=function(_3d5){return dojo.number._parseInfo(_3d5).regexp;};dojo.number._parseInfo=function(_3d6){_3d6=_3d6||{};var _3d7=dojo.i18n.normalizeLocale(_3d6.locale),_3d8=dojo.i18n.getLocalization("dojo.cldr","number",_3d7),_3d9=_3d6.pattern||_3d8[(_3d6.type||"decimal")+"Format"],_3da=_3d8.group,_3db=_3d8.decimal,_3dc=1;if(_3d9.indexOf("%")!=-1){_3dc/=100;}else{if(_3d9.indexOf("‰")!=-1){_3dc/=1000;}else{var _3dd=_3d9.indexOf("¤")!=-1;if(_3dd){_3da=_3d8.currencyGroup||_3da;_3db=_3d8.currencyDecimal||_3db;}}}var _3de=_3d9.split(";");if(_3de.length==1){_3de.push("-"+_3de[0]);}var re=dojo.regexp.buildGroupRE(_3de,function(_3df){_3df="(?:"+dojo.regexp.escapeString(_3df,".")+")";return _3df.replace(dojo.number._numberPatternRE,function(_3e0){var _3e1={signed:false,separator:_3d6.strict?_3da:[_3da,""],fractional:_3d6.fractional,decimal:_3db,exponent:false},_3e2=_3e0.split("."),_3e3=_3d6.places;if(_3e2.length==1&&_3dc!=1){_3e2[1]="###";}if(_3e2.length==1||_3e3===0){_3e1.fractional=false;}else{if(_3e3===undefined){_3e3=_3d6.pattern?_3e2[1].lastIndexOf("0")+1:Infinity;}if(_3e3&&_3d6.fractional==undefined){_3e1.fractional=true;}if(!_3d6.places&&(_3e3<_3e2[1].length)){_3e3+=","+_3e2[1].length;}_3e1.places=_3e3;}var _3e4=_3e2[0].split(",");if(_3e4.length>1){_3e1.groupSize=_3e4.pop().length;if(_3e4.length>1){_3e1.groupSize2=_3e4.pop().length;}}return "("+dojo.number._realNumberRegexp(_3e1)+")";});},true);if(_3dd){re=re.replace(/([\s\xa0]*)(\u00a4{1,3})([\s\xa0]*)/g,function(_3e5,_3e6,_3e7,_3e8){var prop=["symbol","currency","displayName"][_3e7.length-1],_3e9=dojo.regexp.escapeString(_3d6[prop]||_3d6.currency||"");_3e6=_3e6?"[\\s\\xa0]":"";_3e8=_3e8?"[\\s\\xa0]":"";if(!_3d6.strict){if(_3e6){_3e6+="*";}if(_3e8){_3e8+="*";}return "(?:"+_3e6+_3e9+_3e8+")?";}return _3e6+_3e9+_3e8;});}return {regexp:re.replace(/[\xa0 ]/g,"[\\s\\xa0]"),group:_3da,decimal:_3db,factor:_3dc};};dojo.number.parse=function(_3ea,_3eb){var info=dojo.number._parseInfo(_3eb),_3ec=(new RegExp("^"+info.regexp+"$")).exec(_3ea);if(!_3ec){return NaN;}var _3ed=_3ec[1];if(!_3ec[1]){if(!_3ec[2]){return NaN;}_3ed=_3ec[2];info.factor*=-1;}_3ed=_3ed.replace(new RegExp("["+info.group+"\\s\\xa0"+"]","g"),"").replace(info.decimal,".");return _3ed*info.factor;};dojo.number._realNumberRegexp=function(_3ee){_3ee=_3ee||{};if(!("places" in _3ee)){_3ee.places=Infinity;}if(typeof _3ee.decimal!="string"){_3ee.decimal=".";}if(!("fractional" in _3ee)||/^0/.test(_3ee.places)){_3ee.fractional=[true,false];}if(!("exponent" in _3ee)){_3ee.exponent=[true,false];}if(!("eSigned" in _3ee)){_3ee.eSigned=[true,false];}var _3ef=dojo.number._integerRegexp(_3ee),_3f0=dojo.regexp.buildGroupRE(_3ee.fractional,function(q){var re="";if(q&&(_3ee.places!==0)){re="\\"+_3ee.decimal;if(_3ee.places==Infinity){re="(?:"+re+"\\d+)?";}else{re+="\\d{"+_3ee.places+"}";}}return re;},true);var _3f1=dojo.regexp.buildGroupRE(_3ee.exponent,function(q){if(q){return "([eE]"+dojo.number._integerRegexp({signed:_3ee.eSigned})+")";}return "";});var _3f2=_3ef+_3f0;if(_3f0){_3f2="(?:(?:"+_3f2+")|(?:"+_3f0+"))";}return _3f2+_3f1;};dojo.number._integerRegexp=function(_3f3){_3f3=_3f3||{};if(!("signed" in _3f3)){_3f3.signed=[true,false];}if(!("separator" in _3f3)){_3f3.separator="";}else{if(!("groupSize" in _3f3)){_3f3.groupSize=3;}}var _3f4=dojo.regexp.buildGroupRE(_3f3.signed,function(q){return q?"[-+]":"";},true);var _3f5=dojo.regexp.buildGroupRE(_3f3.separator,function(sep){if(!sep){return "(?:\\d+)";}sep=dojo.regexp.escapeString(sep);if(sep==" "){sep="\\s";}else{if(sep==" "){sep="\\s\\xa0";}}var grp=_3f3.groupSize,grp2=_3f3.groupSize2;if(grp2){var _3f6="(?:0|[1-9]\\d{0,"+(grp2-1)+"}(?:["+sep+"]\\d{"+grp2+"})*["+sep+"]\\d{"+grp+"})";return ((grp-grp2)>0)?"(?:"+_3f6+"|(?:0|[1-9]\\d{0,"+(grp-1)+"}))":_3f6;}return "(?:0|[1-9]\\d{0,"+(grp-1)+"}(?:["+sep+"]\\d{"+grp+"})*)";},true);return _3f4+_3f5;};}if(!dojo._hasResource["dijit.ProgressBar"]){dojo._hasResource["dijit.ProgressBar"]=true;dojo.provide("dijit.ProgressBar");dojo.declare("dijit.ProgressBar",[dijit._Widget,dijit._Templated],{progress:"0",maximum:100,places:0,indeterminate:false,name:"",templateString:dojo.cache("dijit","templates/ProgressBar.html","<div class=\"dijitProgressBar dijitProgressBarEmpty\"\n\t><div waiRole=\"progressbar\" dojoAttachPoint=\"internalProgress\" class=\"dijitProgressBarFull\"\n\t\t><div class=\"dijitProgressBarTile\"></div\n\t\t><span style=\"visibility:hidden\"> </span\n\t></div\n\t><div dojoAttachPoint=\"label\" class=\"dijitProgressBarLabel\" id=\"${id}_label\"> </div\n\t><img dojoAttachPoint=\"indeterminateHighContrastImage\" class=\"dijitProgressBarIndeterminateHighContrastImage\" alt=\"\"\n/></div>\n"),_indeterminateHighContrastImagePath:dojo.moduleUrl("dijit","themes/a11y/indeterminate_progress.gif"),postCreate:function(){this.inherited(arguments);this.indeterminateHighContrastImage.setAttribute("src",this._indeterminateHighContrastImagePath.toString());this.update();},update:function(_3f7){dojo.mixin(this,_3f7||{});var tip=this.internalProgress;var _3f8=1,_3f9;if(this.indeterminate){_3f9="addClass";dijit.removeWaiState(tip,"valuenow");dijit.removeWaiState(tip,"valuemin");dijit.removeWaiState(tip,"valuemax");}else{_3f9="removeClass";if(String(this.progress).indexOf("%")!=-1){_3f8=Math.min(parseFloat(this.progress)/100,1);this.progress=_3f8*this.maximum;}else{this.progress=Math.min(this.progress,this.maximum);_3f8=this.progress/this.maximum;}var text=this.report(_3f8);this.label.firstChild.nodeValue=text;dijit.setWaiState(tip,"describedby",this.label.id);dijit.setWaiState(tip,"valuenow",this.progress);dijit.setWaiState(tip,"valuemin",0);dijit.setWaiState(tip,"valuemax",this.maximum);}dojo[_3f9](this.domNode,"dijitProgressBarIndeterminate");tip.style.width=(_3f8*100)+"%";this.onChange();},_setValueAttr:function(v){if(v==Infinity){this.update({indeterminate:true});}else{this.update({indeterminate:false,progress:v});}},_getValueAttr:function(){return this.progress;},report:function(_3fa){return dojo.number.format(_3fa,{type:"percent",places:this.places,locale:this.lang});},onChange:function(){}});}if(!dojo._hasResource["dijit.TitlePane"]){dojo._hasResource["dijit.TitlePane"]=true;dojo.provide("dijit.TitlePane");dojo.declare("dijit.TitlePane",[dijit.layout.ContentPane,dijit._Templated,dijit._CssStateMixin],{title:"",open:true,toggleable:true,tabIndex:"0",duration:dijit.defaultDuration,baseClass:"dijitTitlePane",templateString:dojo.cache("dijit","templates/TitlePane.html","<div>\n\t<div dojoAttachEvent=\"onclick:_onTitleClick, onkeypress:_onTitleKey\"\n\t\t\tclass=\"dijitTitlePaneTitle\" dojoAttachPoint=\"titleBarNode\">\n\t\t<div class=\"dijitTitlePaneTitleFocus\" dojoAttachPoint=\"focusNode\">\n\t\t\t<img src=\"${_blankGif}\" alt=\"\" dojoAttachPoint=\"arrowNode\" class=\"dijitArrowNode\" waiRole=\"presentation\"\n\t\t\t/><span dojoAttachPoint=\"arrowNodeInner\" class=\"dijitArrowNodeInner\"></span\n\t\t\t><span dojoAttachPoint=\"titleNode\" class=\"dijitTitlePaneTextNode\"></span>\n\t\t</div>\n\t</div>\n\t<div class=\"dijitTitlePaneContentOuter\" dojoAttachPoint=\"hideNode\" waiRole=\"presentation\">\n\t\t<div class=\"dijitReset\" dojoAttachPoint=\"wipeNode\" waiRole=\"presentation\">\n\t\t\t<div class=\"dijitTitlePaneContentInner\" dojoAttachPoint=\"containerNode\" waiRole=\"region\" tabindex=\"-1\" id=\"${id}_pane\">\n\t\t\t\t<!-- nested divs because wipeIn()/wipeOut() doesn't work right on node w/padding etc. Put padding on inner div. -->\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n"),attributeMap:dojo.delegate(dijit.layout.ContentPane.prototype.attributeMap,{title:{node:"titleNode",type:"innerHTML"},tooltip:{node:"focusNode",type:"attribute",attribute:"title"},id:""}),postCreate:function(){if(!this.open){this.hideNode.style.display=this.wipeNode.style.display="none";}if(this.toggleable){this._trackMouseState(this.titleBarNode,"dijitTitlePaneTitle");}this._setCss();dojo.setSelectable(this.titleNode,false);var _3fb=this.hideNode,_3fc=this.wipeNode;this._wipeIn=dojo.fx.wipeIn({node:this.wipeNode,duration:this.duration,beforeBegin:function(){_3fb.style.display="";}});this._wipeOut=dojo.fx.wipeOut({node:this.wipeNode,duration:this.duration,onEnd:function(){_3fb.style.display="none";}});this.inherited(arguments);},_setOpenAttr:function(open){if(this.open!==open){this.toggle();}dijit.setWaiState(this.containerNode,"hidden",this.open?"false":"true");dijit.setWaiState(this.focusNode,"pressed",this.open?"true":"false");},_setToggleableAttr:function(_3fd){this.toggleable=_3fd;dijit.setWaiRole(this.focusNode,_3fd?"button":"heading");if(_3fd){dijit.setWaiState(this.focusNode,"controls",this.id+"_pane");dojo.attr(this.focusNode,"tabIndex",this.tabIndex);}else{dojo.removeAttr(this.focusNode,"tabIndex");}this._setCss();},_setContentAttr:function(_3fe){if(!this.open||!this._wipeOut||this._wipeOut.status()=="playing"){this.inherited(arguments);}else{if(this._wipeIn&&this._wipeIn.status()=="playing"){this._wipeIn.stop();}dojo.marginBox(this.wipeNode,{h:dojo.marginBox(this.wipeNode).h});this.inherited(arguments);if(this._wipeIn){this._wipeIn.play();}else{this.hideNode.style.display="";}}},toggle:function(){dojo.forEach([this._wipeIn,this._wipeOut],function(_3ff){if(_3ff&&_3ff.status()=="playing"){_3ff.stop();}});var anim=this[this.open?"_wipeOut":"_wipeIn"];if(anim){anim.play();}else{this.hideNode.style.display=this.open?"":"none";}this.open=!this.open;if(this.open){this._onShow();}else{this.onHide();}this._setCss();},_setCss:function(){var node=this.titleBarNode||this.focusNode;if(this._titleBarClass){dojo.removeClass(node,this._titleBarClass);}this._titleBarClass="dijit"+(this.toggleable?"":"Fixed")+(this.open?"Open":"Closed");dojo.addClass(node,this._titleBarClass);this.arrowNodeInner.innerHTML=this.open?"-":"+";},_onTitleKey:function(e){if(e.charOrCode==dojo.keys.ENTER||e.charOrCode==" "){if(this.toggleable){this.toggle();}dojo.stopEvent(e);}else{if(e.charOrCode==dojo.keys.DOWN_ARROW&&this.open){this.containerNode.focus();e.preventDefault();}}},_onTitleClick:function(){if(this.toggleable){this.toggle();}},setTitle:function(_400){dojo.deprecated("dijit.TitlePane.setTitle() is deprecated. Use set('title', ...) instead.","","2.0");this.set("title",_400);}});}if(!dojo._hasResource["dojo.DeferredList"]){dojo._hasResource["dojo.DeferredList"]=true;dojo.provide("dojo.DeferredList");dojo.DeferredList=function(list,_401,_402,_403,_404){var _405=[];dojo.Deferred.call(this);var self=this;if(list.length===0&&!_401){this.resolve([0,[]]);}var _406=0;dojo.forEach(list,function(item,i){item.then(function(_407){if(_401){self.resolve([i,_407]);}else{_408(true,_407);}},function(_409){if(_402){self.reject(_409);}else{_408(false,_409);}if(_403){return null;}throw _409;});function _408(_40a,_40b){_405[i]=[_40a,_40b];_406++;if(_406===list.length){self.resolve(_405);}};});};dojo.DeferredList.prototype=new dojo.Deferred();dojo.DeferredList.prototype.gatherResults=function(_40c){var d=new dojo.DeferredList(_40c,false,true,false);d.addCallback(function(_40d){var ret=[];dojo.forEach(_40d,function(_40e){ret.push(_40e[1]);});return ret;});return d;};}if(!dojo._hasResource["dojo.cookie"]){dojo._hasResource["dojo.cookie"]=true;dojo.provide("dojo.cookie");dojo.cookie=function(name,_40f,_410){var c=document.cookie;if(arguments.length==1){var _411=c.match(new RegExp("(?:^|; )"+dojo.regexp.escapeString(name)+"=([^;]*)"));return _411?decodeURIComponent(_411[1]):undefined;}else{_410=_410||{};var exp=_410.expires;if(typeof exp=="number"){var d=new Date();d.setTime(d.getTime()+exp*24*60*60*1000);exp=_410.expires=d;}if(exp&&exp.toUTCString){_410.expires=exp.toUTCString();}_40f=encodeURIComponent(_40f);var _412=name+"="+_40f,_413;for(_413 in _410){_412+="; "+_413;var _414=_410[_413];if(_414!==true){_412+="="+_414;}}document.cookie=_412;}};dojo.cookie.isSupported=function(){if(!("cookieEnabled" in navigator)){this("__djCookieTest__","CookiesAllowed");navigator.cookieEnabled=this("__djCookieTest__")=="CookiesAllowed";if(navigator.cookieEnabled){this("__djCookieTest__","",{expires:-1});}}return navigator.cookieEnabled;};}if(!dojo._hasResource["dijit.tree.TreeStoreModel"]){dojo._hasResource["dijit.tree.TreeStoreModel"]=true;dojo.provide("dijit.tree.TreeStoreModel");dojo.declare("dijit.tree.TreeStoreModel",null,{store:null,childrenAttrs:["children"],newItemIdAttr:"id",labelAttr:"",root:null,query:null,deferItemLoadingUntilExpand:false,constructor:function(args){dojo.mixin(this,args);this.connects=[];var _415=this.store;if(!_415.getFeatures()["dojo.data.api.Identity"]){throw new Error("dijit.Tree: store must support dojo.data.Identity");}if(_415.getFeatures()["dojo.data.api.Notification"]){this.connects=this.connects.concat([dojo.connect(_415,"onNew",this,"onNewItem"),dojo.connect(_415,"onDelete",this,"onDeleteItem"),dojo.connect(_415,"onSet",this,"onSetItem")]);}},destroy:function(){dojo.forEach(this.connects,dojo.disconnect);},getRoot:function(_416,_417){if(this.root){_416(this.root);}else{this.store.fetch({query:this.query,onComplete:dojo.hitch(this,function(_418){if(_418.length!=1){throw new Error(this.declaredClass+": query "+dojo.toJson(this.query)+" returned "+_418.length+" items, but must return exactly one item");}this.root=_418[0];_416(this.root);}),onError:_417});}},mayHaveChildren:function(item){return dojo.some(this.childrenAttrs,function(attr){return this.store.hasAttribute(item,attr);},this);},getChildren:function(_419,_41a,_41b){var _41c=this.store;if(!_41c.isItemLoaded(_419)){var _41d=dojo.hitch(this,arguments.callee);_41c.loadItem({item:_419,onItem:function(_41e){_41d(_41e,_41a,_41b);},onError:_41b});return;}var _41f=[];for(var i=0;i<this.childrenAttrs.length;i++){var vals=_41c.getValues(_419,this.childrenAttrs[i]);_41f=_41f.concat(vals);}var _420=0;if(!this.deferItemLoadingUntilExpand){dojo.forEach(_41f,function(item){if(!_41c.isItemLoaded(item)){_420++;}});}if(_420==0){_41a(_41f);}else{dojo.forEach(_41f,function(item,idx){if(!_41c.isItemLoaded(item)){_41c.loadItem({item:item,onItem:function(item){_41f[idx]=item;if(--_420==0){_41a(_41f);}},onError:_41b});}});}},isItem:function(_421){return this.store.isItem(_421);},fetchItemByIdentity:function(_422){this.store.fetchItemByIdentity(_422);},getIdentity:function(item){return this.store.getIdentity(item);},getLabel:function(item){if(this.labelAttr){return this.store.getValue(item,this.labelAttr);}else{return this.store.getLabel(item);}},newItem:function(args,_423,_424){var _425={parent:_423,attribute:this.childrenAttrs[0],insertIndex:_424};if(this.newItemIdAttr&&args[this.newItemIdAttr]){this.fetchItemByIdentity({identity:args[this.newItemIdAttr],scope:this,onItem:function(item){if(item){this.pasteItem(item,null,_423,true,_424);}else{this.store.newItem(args,_425);}}});}else{this.store.newItem(args,_425);}},pasteItem:function(_426,_427,_428,_429,_42a){var _42b=this.store,_42c=this.childrenAttrs[0];if(_427){dojo.forEach(this.childrenAttrs,function(attr){if(_42b.containsValue(_427,attr,_426)){if(!_429){var _42d=dojo.filter(_42b.getValues(_427,attr),function(x){return x!=_426;});_42b.setValues(_427,attr,_42d);}_42c=attr;}});}if(_428){if(typeof _42a=="number"){var _42e=_42b.getValues(_428,_42c).slice();_42e.splice(_42a,0,_426);_42b.setValues(_428,_42c,_42e);}else{_42b.setValues(_428,_42c,_42b.getValues(_428,_42c).concat(_426));}}},onChange:function(item){},onChildrenChange:function(_42f,_430){},onDelete:function(_431,_432){},onNewItem:function(item,_433){if(!_433){return;}this.getChildren(_433.item,dojo.hitch(this,function(_434){this.onChildrenChange(_433.item,_434);}));},onDeleteItem:function(item){this.onDelete(item);},onSetItem:function(item,_435,_436,_437){if(dojo.indexOf(this.childrenAttrs,_435)!=-1){this.getChildren(item,dojo.hitch(this,function(_438){this.onChildrenChange(item,_438);}));}else{this.onChange(item);}}});}if(!dojo._hasResource["dijit.tree.ForestStoreModel"]){dojo._hasResource["dijit.tree.ForestStoreModel"]=true;dojo.provide("dijit.tree.ForestStoreModel");dojo.declare("dijit.tree.ForestStoreModel",dijit.tree.TreeStoreModel,{rootId:"$root$",rootLabel:"ROOT",query:null,constructor:function(_439){this.root={store:this,root:true,id:_439.rootId,label:_439.rootLabel,children:_439.rootChildren};},mayHaveChildren:function(item){return item===this.root||this.inherited(arguments);},getChildren:function(_43a,_43b,_43c){if(_43a===this.root){if(this.root.children){_43b(this.root.children);}else{this.store.fetch({query:this.query,onComplete:dojo.hitch(this,function(_43d){this.root.children=_43d;_43b(_43d);}),onError:_43c});}}else{this.inherited(arguments);}},isItem:function(_43e){return (_43e===this.root)?true:this.inherited(arguments);},fetchItemByIdentity:function(_43f){if(_43f.identity==this.root.id){var _440=_43f.scope?_43f.scope:dojo.global;if(_43f.onItem){_43f.onItem.call(_440,this.root);}}else{this.inherited(arguments);}},getIdentity:function(item){return (item===this.root)?this.root.id:this.inherited(arguments);},getLabel:function(item){return (item===this.root)?this.root.label:this.inherited(arguments);},newItem:function(args,_441,_442){if(_441===this.root){this.onNewRootItem(args);return this.store.newItem(args);}else{return this.inherited(arguments);}},onNewRootItem:function(args){},pasteItem:function(_443,_444,_445,_446,_447){if(_444===this.root){if(!_446){this.onLeaveRoot(_443);}}dijit.tree.TreeStoreModel.prototype.pasteItem.call(this,_443,_444===this.root?null:_444,_445===this.root?null:_445,_446,_447);if(_445===this.root){this.onAddToRoot(_443);}},onAddToRoot:function(item){},onLeaveRoot:function(item){},_requeryTop:function(){var _448=this.root.children||[];this.store.fetch({query:this.query,onComplete:dojo.hitch(this,function(_449){this.root.children=_449;if(_448.length!=_449.length||dojo.some(_448,function(item,idx){return _449[idx]!=item;})){this.onChildrenChange(this.root,_449);}})});},onNewItem:function(item,_44a){this._requeryTop();this.inherited(arguments);},onDeleteItem:function(item){if(dojo.indexOf(this.root.children,item)!=-1){this._requeryTop();}this.inherited(arguments);}});}if(!dojo._hasResource["dijit.Tree"]){dojo._hasResource["dijit.Tree"]=true;dojo.provide("dijit.Tree");dojo.declare("dijit._TreeNode",[dijit._Widget,dijit._Templated,dijit._Container,dijit._Contained,dijit._CssStateMixin],{item:null,isTreeNode:true,label:"",isExpandable:null,isExpanded:false,state:"UNCHECKED",templateString:dojo.cache("dijit","templates/TreeNode.html","<div class=\"dijitTreeNode\" waiRole=\"presentation\"\n\t><div dojoAttachPoint=\"rowNode\" class=\"dijitTreeRow\" waiRole=\"presentation\" dojoAttachEvent=\"onmouseenter:_onMouseEnter, onmouseleave:_onMouseLeave, onclick:_onClick, ondblclick:_onDblClick\"\n\t\t><img src=\"${_blankGif}\" alt=\"\" dojoAttachPoint=\"expandoNode\" class=\"dijitTreeExpando\" waiRole=\"presentation\"\n\t\t/><span dojoAttachPoint=\"expandoNodeText\" class=\"dijitExpandoText\" waiRole=\"presentation\"\n\t\t></span\n\t\t><span dojoAttachPoint=\"contentNode\"\n\t\t\tclass=\"dijitTreeContent\" waiRole=\"presentation\">\n\t\t\t<img src=\"${_blankGif}\" alt=\"\" dojoAttachPoint=\"iconNode\" class=\"dijitIcon dijitTreeIcon\" waiRole=\"presentation\"\n\t\t\t/><span dojoAttachPoint=\"labelNode\" class=\"dijitTreeLabel\" wairole=\"treeitem\" tabindex=\"-1\" waiState=\"selected-false\" dojoAttachEvent=\"onfocus:_onLabelFocus\"></span>\n\t\t</span\n\t></div>\n\t<div dojoAttachPoint=\"containerNode\" class=\"dijitTreeContainer\" waiRole=\"presentation\" style=\"display: none;\"></div>\n</div>\n"),baseClass:"dijitTreeNode",cssStateNodes:{rowNode:"dijitTreeRow",labelNode:"dijitTreeLabel"},attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{label:{node:"labelNode",type:"innerText"},tooltip:{node:"rowNode",type:"attribute",attribute:"title"}}),postCreate:function(){this.inherited(arguments);this._setExpando();this._updateItemClasses(this.item);if(this.isExpandable){dijit.setWaiState(this.labelNode,"expanded",this.isExpanded);}},_setIndentAttr:function(_44b){this.indent=_44b;var _44c=(Math.max(_44b,0)*this.tree._nodePixelIndent)+"px";dojo.style(this.domNode,"backgroundPosition",_44c+" 0px");dojo.style(this.rowNode,this.isLeftToRight()?"paddingLeft":"paddingRight",_44c);dojo.forEach(this.getChildren(),function(_44d){_44d.set("indent",_44b+1);});},markProcessing:function(){this.state="LOADING";this._setExpando(true);},unmarkProcessing:function(){this._setExpando(false);},_updateItemClasses:function(item){var tree=this.tree,_44e=tree.model;if(tree._v10Compat&&item===_44e.root){item=null;}this._applyClassAndStyle(item,"icon","Icon");this._applyClassAndStyle(item,"label","Label");this._applyClassAndStyle(item,"row","Row");},_applyClassAndStyle:function(item,_44f,_450){var _451="_"+_44f+"Class";var _452=_44f+"Node";if(this[_451]){dojo.removeClass(this[_452],this[_451]);}this[_451]=this.tree["get"+_450+"Class"](item,this.isExpanded);if(this[_451]){dojo.addClass(this[_452],this[_451]);}dojo.style(this[_452],this.tree["get"+_450+"Style"](item,this.isExpanded)||{});},_updateLayout:function(){var _453=this.getParent();if(!_453||_453.rowNode.style.display=="none"){dojo.addClass(this.domNode,"dijitTreeIsRoot");}else{dojo.toggleClass(this.domNode,"dijitTreeIsLast",!this.getNextSibling());}},_setExpando:function(_454){var _455=["dijitTreeExpandoLoading","dijitTreeExpandoOpened","dijitTreeExpandoClosed","dijitTreeExpandoLeaf"],_456=["*","-","+","*"],idx=_454?0:(this.isExpandable?(this.isExpanded?1:2):3);dojo.removeClass(this.expandoNode,_455);dojo.addClass(this.expandoNode,_455[idx]);this.expandoNodeText.innerHTML=_456[idx];},expand:function(){if(this._expandDeferred){return this._expandDeferred;}this._wipeOut&&this._wipeOut.stop();this.isExpanded=true;dijit.setWaiState(this.labelNode,"expanded","true");dijit.setWaiRole(this.containerNode,"group");dojo.addClass(this.contentNode,"dijitTreeContentExpanded");this._setExpando();this._updateItemClasses(this.item);if(this==this.tree.rootNode){dijit.setWaiState(this.tree.domNode,"expanded","true");}var def,_457=dojo.fx.wipeIn({node:this.containerNode,duration:dijit.defaultDuration,onEnd:function(){def.callback(true);}});def=(this._expandDeferred=new dojo.Deferred(function(){_457.stop();}));_457.play();return def;},collapse:function(){if(!this.isExpanded){return;}if(this._expandDeferred){this._expandDeferred.cancel();delete this._expandDeferred;}this.isExpanded=false;dijit.setWaiState(this.labelNode,"expanded","false");if(this==this.tree.rootNode){dijit.setWaiState(this.tree.domNode,"expanded","false");}dojo.removeClass(this.contentNode,"dijitTreeContentExpanded");this._setExpando();this._updateItemClasses(this.item);if(!this._wipeOut){this._wipeOut=dojo.fx.wipeOut({node:this.containerNode,duration:dijit.defaultDuration});}this._wipeOut.play();},indent:0,setChildItems:function(_458){var tree=this.tree,_459=tree.model,defs=[];dojo.forEach(this.getChildren(),function(_45a){dijit._Container.prototype.removeChild.call(this,_45a);},this);this.state="LOADED";if(_458&&_458.length>0){this.isExpandable=true;dojo.forEach(_458,function(item){var id=_459.getIdentity(item),_45b=tree._itemNodesMap[id],node;if(_45b){for(var i=0;i<_45b.length;i++){if(_45b[i]&&!_45b[i].getParent()){node=_45b[i];node.set("indent",this.indent+1);break;}}}if(!node){node=this.tree._createTreeNode({item:item,tree:tree,isExpandable:_459.mayHaveChildren(item),label:tree.getLabel(item),tooltip:tree.getTooltip(item),dir:tree.dir,lang:tree.lang,indent:this.indent+1});if(_45b){_45b.push(node);}else{tree._itemNodesMap[id]=[node];}}this.addChild(node);if(this.tree.autoExpand||this.tree._state(item)){defs.push(tree._expandNode(node));}},this);dojo.forEach(this.getChildren(),function(_45c,idx){_45c._updateLayout();});}else{this.isExpandable=false;}if(this._setExpando){this._setExpando(false);}this._updateItemClasses(this.item);if(this==tree.rootNode){var fc=this.tree.showRoot?this:this.getChildren()[0];if(fc){fc.setFocusable(true);tree.lastFocused=fc;}else{tree.domNode.setAttribute("tabIndex","0");}}return new dojo.DeferredList(defs);},removeChild:function(node){this.inherited(arguments);var _45d=this.getChildren();if(_45d.length==0){this.isExpandable=false;this.collapse();}dojo.forEach(_45d,function(_45e){_45e._updateLayout();});},makeExpandable:function(){this.isExpandable=true;this._setExpando(false);},_onLabelFocus:function(evt){this.tree._onNodeFocus(this);},setSelected:function(_45f){dijit.setWaiState(this.labelNode,"selected",_45f);dojo.toggleClass(this.rowNode,"dijitTreeRowSelected",_45f);},setFocusable:function(_460){this.labelNode.setAttribute("tabIndex",_460?"0":"-1");},_onClick:function(evt){this.tree._onClick(this,evt);},_onDblClick:function(evt){this.tree._onDblClick(this,evt);},_onMouseEnter:function(evt){this.tree._onNodeMouseEnter(this,evt);},_onMouseLeave:function(evt){this.tree._onNodeMouseLeave(this,evt);}});dojo.declare("dijit.Tree",[dijit._Widget,dijit._Templated],{store:null,model:null,query:null,label:"",showRoot:true,childrenAttr:["children"],path:[],selectedItem:null,openOnClick:false,openOnDblClick:false,templateString:dojo.cache("dijit","templates/Tree.html","<div class=\"dijitTree dijitTreeContainer\" waiRole=\"tree\"\n\tdojoAttachEvent=\"onkeypress:_onKeyPress\">\n\t<div class=\"dijitInline dijitTreeIndent\" style=\"position: absolute; top: -9999px\" dojoAttachPoint=\"indentDetector\"></div>\n</div>\n"),persist:true,autoExpand:false,dndController:null,dndParams:["onDndDrop","itemCreator","onDndCancel","checkAcceptance","checkItemAcceptance","dragThreshold","betweenThreshold"],onDndDrop:null,itemCreator:null,onDndCancel:null,checkAcceptance:null,checkItemAcceptance:null,dragThreshold:5,betweenThreshold:0,_nodePixelIndent:19,_publish:function(_461,_462){dojo.publish(this.id,[dojo.mixin({tree:this,event:_461},_462||{})]);},postMixInProperties:function(){this.tree=this;if(this.autoExpand){this.persist=false;}this._itemNodesMap={};if(!this.cookieName){this.cookieName=this.id+"SaveStateCookie";}this._loadDeferred=new dojo.Deferred();this.inherited(arguments);},postCreate:function(){this._initState();if(!this.model){this._store2model();}this.connect(this.model,"onChange","_onItemChange");this.connect(this.model,"onChildrenChange","_onItemChildrenChange");this.connect(this.model,"onDelete","_onItemDelete");this._load();this.inherited(arguments);if(this.dndController){if(dojo.isString(this.dndController)){this.dndController=dojo.getObject(this.dndController);}var _463={};for(var i=0;i<this.dndParams.length;i++){if(this[this.dndParams[i]]){_463[this.dndParams[i]]=this[this.dndParams[i]];}}this.dndController=new this.dndController(this,_463);}},_store2model:function(){this._v10Compat=true;dojo.deprecated("Tree: from version 2.0, should specify a model object rather than a store/query");var _464={id:this.id+"_ForestStoreModel",store:this.store,query:this.query,childrenAttrs:this.childrenAttr};if(this.params.mayHaveChildren){_464.mayHaveChildren=dojo.hitch(this,"mayHaveChildren");}if(this.params.getItemChildren){_464.getChildren=dojo.hitch(this,function(item,_465,_466){this.getItemChildren((this._v10Compat&&item===this.model.root)?null:item,_465,_466);});}this.model=new dijit.tree.ForestStoreModel(_464);this.showRoot=Boolean(this.label);},onLoad:function(){},_load:function(){this.model.getRoot(dojo.hitch(this,function(item){var rn=(this.rootNode=this.tree._createTreeNode({item:item,tree:this,isExpandable:true,label:this.label||this.getLabel(item),indent:this.showRoot?0:-1}));if(!this.showRoot){rn.rowNode.style.display="none";}this.domNode.appendChild(rn.domNode);var _467=this.model.getIdentity(item);if(this._itemNodesMap[_467]){this._itemNodesMap[_467].push(rn);}else{this._itemNodesMap[_467]=[rn];}rn._updateLayout();this._expandNode(rn).addCallback(dojo.hitch(this,function(){this._loadDeferred.callback(true);this.onLoad();}));}),function(err){console.error(this,": error loading root: ",err);});},getNodesByItem:function(item){if(!item){return [];}var _468=dojo.isString(item)?item:this.model.getIdentity(item);return [].concat(this._itemNodesMap[_468]);},_setSelectedItemAttr:function(item){var _469=this.get("selectedItem");var _46a=(!item||dojo.isString(item))?item:this.model.getIdentity(item);if(_46a==_469?this.model.getIdentity(_469):null){return;}var _46b=this._itemNodesMap[_46a];this._selectNode((_46b&&_46b[0])||null);},_getSelectedItemAttr:function(){return this.selectedNode&&this.selectedNode.item;},_setPathAttr:function(path){var d=new dojo.Deferred();this._selectNode(null);if(!path||!path.length){d.resolve(true);return d;}this._loadDeferred.addCallback(dojo.hitch(this,function(){if(!this.rootNode){d.reject(new Error("!this.rootNode"));return;}if(path[0]!==this.rootNode.item&&(dojo.isString(path[0])&&path[0]!=this.model.getIdentity(this.rootNode.item))){d.reject(new Error(this.id+":path[0] doesn't match this.rootNode.item. Maybe you are using the wrong tree."));return;}path.shift();var node=this.rootNode;function _46c(){var item=path.shift(),_46d=dojo.isString(item)?item:this.model.getIdentity(item);dojo.some(this._itemNodesMap[_46d],function(n){if(n.getParent()==node){node=n;return true;}return false;});if(path.length){this._expandNode(node).addCallback(dojo.hitch(this,_46c));}else{this._selectNode(node);d.resolve(true);}};this._expandNode(node).addCallback(dojo.hitch(this,_46c));}));return d;},_getPathAttr:function(){if(!this.selectedNode){return;}var res=[];var _46e=this.selectedNode;while(_46e&&_46e!==this.rootNode){res.unshift(_46e.item);_46e=_46e.getParent();}res.unshift(this.rootNode.item);return res;},mayHaveChildren:function(item){},getItemChildren:function(_46f,_470){},getLabel:function(item){return this.model.getLabel(item);},getIconClass:function(item,_471){return (!item||this.model.mayHaveChildren(item))?(_471?"dijitFolderOpened":"dijitFolderClosed"):"dijitLeaf";},getLabelClass:function(item,_472){},getRowClass:function(item,_473){},getIconStyle:function(item,_474){},getLabelStyle:function(item,_475){},getRowStyle:function(item,_476){},getTooltip:function(item){return "";},_onKeyPress:function(e){if(e.altKey){return;}var dk=dojo.keys;var _477=dijit.getEnclosingWidget(e.target);if(!_477){return;}var key=e.charOrCode;if(typeof key=="string"){if(!e.altKey&&!e.ctrlKey&&!e.shiftKey&&!e.metaKey){this._onLetterKeyNav({node:_477,key:key.toLowerCase()});dojo.stopEvent(e);}}else{if(this._curSearch){clearTimeout(this._curSearch.timer);delete this._curSearch;}var map=this._keyHandlerMap;if(!map){map={};map[dk.ENTER]="_onEnterKey";map[this.isLeftToRight()?dk.LEFT_ARROW:dk.RIGHT_ARROW]="_onLeftArrow";map[this.isLeftToRight()?dk.RIGHT_ARROW:dk.LEFT_ARROW]="_onRightArrow";map[dk.UP_ARROW]="_onUpArrow";map[dk.DOWN_ARROW]="_onDownArrow";map[dk.HOME]="_onHomeKey";map[dk.END]="_onEndKey";this._keyHandlerMap=map;}if(this._keyHandlerMap[key]){this[this._keyHandlerMap[key]]({node:_477,item:_477.item,evt:e});dojo.stopEvent(e);}}},_onEnterKey:function(_478,evt){this._publish("execute",{item:_478.item,node:_478.node});this._selectNode(_478.node);this.onClick(_478.item,_478.node,evt);},_onDownArrow:function(_479){var node=this._getNextNode(_479.node);if(node&&node.isTreeNode){this.focusNode(node);}},_onUpArrow:function(_47a){var node=_47a.node;var _47b=node.getPreviousSibling();if(_47b){node=_47b;while(node.isExpandable&&node.isExpanded&&node.hasChildren()){var _47c=node.getChildren();node=_47c[_47c.length-1];}}else{var _47d=node.getParent();if(!(!this.showRoot&&_47d===this.rootNode)){node=_47d;}}if(node&&node.isTreeNode){this.focusNode(node);}},_onRightArrow:function(_47e){var node=_47e.node;if(node.isExpandable&&!node.isExpanded){this._expandNode(node);}else{if(node.hasChildren()){node=node.getChildren()[0];if(node&&node.isTreeNode){this.focusNode(node);}}}},_onLeftArrow:function(_47f){var node=_47f.node;if(node.isExpandable&&node.isExpanded){this._collapseNode(node);}else{var _480=node.getParent();if(_480&&_480.isTreeNode&&!(!this.showRoot&&_480===this.rootNode)){this.focusNode(_480);}}},_onHomeKey:function(){var node=this._getRootOrFirstNode();if(node){this.focusNode(node);}},_onEndKey:function(_481){var node=this.rootNode;while(node.isExpanded){var c=node.getChildren();node=c[c.length-1];}if(node&&node.isTreeNode){this.focusNode(node);}},multiCharSearchDuration:250,_onLetterKeyNav:function(_482){var cs=this._curSearch;if(cs){cs.pattern=cs.pattern+_482.key;clearTimeout(cs.timer);}else{cs=this._curSearch={pattern:_482.key,startNode:_482.node};}var self=this;cs.timer=setTimeout(function(){delete self._curSearch;},this.multiCharSearchDuration);var node=cs.startNode;do{node=this._getNextNode(node);if(!node){node=this._getRootOrFirstNode();}}while(node!==cs.startNode&&(node.label.toLowerCase().substr(0,cs.pattern.length)!=cs.pattern));if(node&&node.isTreeNode){if(node!==cs.startNode){this.focusNode(node);}}},_onClick:function(_483,e){var _484=e.target,_485=(_484==_483.expandoNode||_484==_483.expandoNodeText);if((this.openOnClick&&_483.isExpandable)||_485){if(_483.isExpandable){this._onExpandoClick({node:_483});}}else{this._publish("execute",{item:_483.item,node:_483,evt:e});this.onClick(_483.item,_483,e);this.focusNode(_483);}if(!_485){this._selectNode(_483);}dojo.stopEvent(e);},_onDblClick:function(_486,e){var _487=e.target,_488=(_487==_486.expandoNode||_487==_486.expandoNodeText);if((this.openOnDblClick&&_486.isExpandable)||_488){if(_486.isExpandable){this._onExpandoClick({node:_486});}}else{this._publish("execute",{item:_486.item,node:_486,evt:e});this.onDblClick(_486.item,_486,e);this.focusNode(_486);}if(!_488){this._selectNode(_486);}dojo.stopEvent(e);},_onExpandoClick:function(_489){var node=_489.node;this.focusNode(node);if(node.isExpanded){this._collapseNode(node);}else{this._expandNode(node);}},onClick:function(item,node,evt){},onDblClick:function(item,node,evt){},onOpen:function(item,node){},onClose:function(item,node){},_getNextNode:function(node){if(node.isExpandable&&node.isExpanded&&node.hasChildren()){return node.getChildren()[0];}else{while(node&&node.isTreeNode){var _48a=node.getNextSibling();if(_48a){return _48a;}node=node.getParent();}return null;}},_getRootOrFirstNode:function(){return this.showRoot?this.rootNode:this.rootNode.getChildren()[0];},_collapseNode:function(node){if(node._expandNodeDeferred){delete node._expandNodeDeferred;}if(node.isExpandable){if(node.state=="LOADING"){return;}node.collapse();this.onClose(node.item,node);if(node.item){this._state(node.item,false);this._saveState();}}},_expandNode:function(node,_48b){if(node._expandNodeDeferred&&!_48b){return node._expandNodeDeferred;}var _48c=this.model,item=node.item,_48d=this;switch(node.state){case "UNCHECKED":node.markProcessing();var def=(node._expandNodeDeferred=new dojo.Deferred());_48c.getChildren(item,function(_48e){node.unmarkProcessing();var scid=node.setChildItems(_48e);var ed=_48d._expandNode(node,true);scid.addCallback(function(){ed.addCallback(function(){def.callback();});});},function(err){console.error(_48d,": error loading root children: ",err);});break;default:def=(node._expandNodeDeferred=node.expand());this.onOpen(node.item,node);if(item){this._state(item,true);this._saveState();}}return def;},focusNode:function(node){dijit.focus(node.labelNode);},_selectNode:function(node){if(this.selectedNode&&!this.selectedNode._destroyed){this.selectedNode.setSelected(false);}if(node){node.setSelected(true);}this.selectedNode=node;},_onNodeFocus:function(node){if(node&&node!=this.lastFocused){if(this.lastFocused&&!this.lastFocused._destroyed){this.lastFocused.setFocusable(false);}node.setFocusable(true);this.lastFocused=node;}},_onNodeMouseEnter:function(node){},_onNodeMouseLeave:function(node){},_onItemChange:function(item){var _48f=this.model,_490=_48f.getIdentity(item),_491=this._itemNodesMap[_490];if(_491){var _492=this.getLabel(item),_493=this.getTooltip(item);dojo.forEach(_491,function(node){node.set({item:item,label:_492,tooltip:_493});node._updateItemClasses(item);});}},_onItemChildrenChange:function(_494,_495){var _496=this.model,_497=_496.getIdentity(_494),_498=this._itemNodesMap[_497];if(_498){dojo.forEach(_498,function(_499){_499.setChildItems(_495);});}},_onItemDelete:function(item){var _49a=this.model,_49b=_49a.getIdentity(item),_49c=this._itemNodesMap[_49b];if(_49c){dojo.forEach(_49c,function(node){var _49d=node.getParent();if(_49d){_49d.removeChild(node);}node.destroyRecursive();});delete this._itemNodesMap[_49b];}},_initState:function(){if(this.persist){var _49e=dojo.cookie(this.cookieName);this._openedItemIds={};if(_49e){dojo.forEach(_49e.split(","),function(item){this._openedItemIds[item]=true;},this);}}},_state:function(item,_49f){if(!this.persist){return false;}var id=this.model.getIdentity(item);if(arguments.length===1){return this._openedItemIds[id];}if(_49f){this._openedItemIds[id]=true;}else{delete this._openedItemIds[id];}},_saveState:function(){if(!this.persist){return;}var ary=[];for(var id in this._openedItemIds){ary.push(id);}dojo.cookie(this.cookieName,ary.join(","),{expires:365});},destroy:function(){if(this._curSearch){clearTimeout(this._curSearch.timer);delete this._curSearch;}if(this.rootNode){this.rootNode.destroyRecursive();}if(this.dndController&&!dojo.isString(this.dndController)){this.dndController.destroy();}this.rootNode=null;this.inherited(arguments);},destroyRecursive:function(){this.destroy();},resize:function(_4a0){if(_4a0){dojo.marginBox(this.domNode,_4a0);dojo.style(this.domNode,"overflow","auto");}this._nodePixelIndent=dojo.marginBox(this.tree.indentDetector).w;if(this.tree.rootNode){this.tree.rootNode.set("indent",this.showRoot?0:-1);}},_createTreeNode:function(args){return new dijit._TreeNode(args);}});}if(!dojo._hasResource["dijit.InlineEditBox"]){dojo._hasResource["dijit.InlineEditBox"]=true;dojo.provide("dijit.InlineEditBox");dojo.declare("dijit.InlineEditBox",dijit._Widget,{editing:false,autoSave:true,buttonSave:"",buttonCancel:"",renderAsHtml:false,editor:"dijit.form.TextBox",editorWrapper:"dijit._InlineEditor",editorParams:{},onChange:function(_4a1){},onCancel:function(){},width:"100%",value:"",noValueIndicator:dojo.isIE<=6?"<span style='font-family: wingdings; text-decoration: underline;'> ✍ </span>":"<span style='text-decoration: underline;'> ✍ </span>",constructor:function(){this.editorParams={};},postMixInProperties:function(){this.inherited(arguments);this.displayNode=this.srcNodeRef;var _4a2={ondijitclick:"_onClick",onmouseover:"_onMouseOver",onmouseout:"_onMouseOut",onfocus:"_onMouseOver",onblur:"_onMouseOut"};for(var name in _4a2){this.connect(this.displayNode,name,_4a2[name]);}dijit.setWaiRole(this.displayNode,"button");if(!this.displayNode.getAttribute("tabIndex")){this.displayNode.setAttribute("tabIndex",0);}if(!this.value&&!("value" in this.params)){this.value=dojo.trim(this.renderAsHtml?this.displayNode.innerHTML:(this.displayNode.innerText||this.displayNode.textContent||""));}if(!this.value){this.displayNode.innerHTML=this.noValueIndicator;}dojo.addClass(this.displayNode,"dijitInlineEditBoxDisplayMode");},setDisabled:function(_4a3){dojo.deprecated("dijit.InlineEditBox.setDisabled() is deprecated. Use set('disabled', bool) instead.","","2.0");this.set("disabled",_4a3);},_setDisabledAttr:function(_4a4){this.disabled=_4a4;dijit.setWaiState(this.domNode,"disabled",_4a4);if(_4a4){this.displayNode.removeAttribute("tabIndex");}else{this.displayNode.setAttribute("tabIndex",0);}dojo.toggleClass(this.displayNode,"dijitInlineEditBoxDisplayModeDisabled",_4a4);},_onMouseOver:function(){if(!this.disabled){dojo.addClass(this.displayNode,"dijitInlineEditBoxDisplayModeHover");}},_onMouseOut:function(){dojo.removeClass(this.displayNode,"dijitInlineEditBoxDisplayModeHover");},_onClick:function(e){if(this.disabled){return;}if(e){dojo.stopEvent(e);}this._onMouseOut();setTimeout(dojo.hitch(this,"edit"),0);},edit:function(){if(this.disabled||this.editing){return;}this.editing=true;this._savedPosition=dojo.style(this.displayNode,"position")||"static";this._savedOpacity=dojo.style(this.displayNode,"opacity")||"1";this._savedTabIndex=dojo.attr(this.displayNode,"tabIndex")||"0";if(this.wrapperWidget){var ew=this.wrapperWidget.editWidget;ew.set("displayedValue" in ew?"displayedValue":"value",this.value);}else{var _4a5=dojo.create("span",null,this.domNode,"before");var ewc=dojo.getObject(this.editorWrapper);this.wrapperWidget=new ewc({value:this.value,buttonSave:this.buttonSave,buttonCancel:this.buttonCancel,dir:this.dir,lang:this.lang,tabIndex:this._savedTabIndex,editor:this.editor,inlineEditBox:this,sourceStyle:dojo.getComputedStyle(this.displayNode),save:dojo.hitch(this,"save"),cancel:dojo.hitch(this,"cancel")},_4a5);}var ww=this.wrapperWidget;if(dojo.isIE){dijit.focus(dijit.getFocus());}dojo.style(this.displayNode,{position:"absolute",opacity:"0",display:"none"});dojo.style(ww.domNode,{position:this._savedPosition,visibility:"visible",opacity:"1"});dojo.attr(this.displayNode,"tabIndex","-1");setTimeout(dojo.hitch(this,function(){ww.focus();ww._resetValue=ww.getValue();}),0);},_onBlur:function(){this.inherited(arguments);if(!this.editing){}},destroy:function(){if(this.wrapperWidget){this.wrapperWidget.destroy();delete this.wrapperWidget;}this.inherited(arguments);},_showText:function(_4a6){var ww=this.wrapperWidget;dojo.style(ww.domNode,{position:"absolute",visibility:"hidden",opacity:"0"});dojo.style(this.displayNode,{position:this._savedPosition,opacity:this._savedOpacity,display:""});dojo.attr(this.displayNode,"tabIndex",this._savedTabIndex);if(_4a6){dijit.focus(this.displayNode);}},save:function(_4a7){if(this.disabled||!this.editing){return;}this.editing=false;var ww=this.wrapperWidget;var _4a8=ww.getValue();this.set("value",_4a8);setTimeout(dojo.hitch(this,"onChange",_4a8),0);this._showText(_4a7);},setValue:function(val){dojo.deprecated("dijit.InlineEditBox.setValue() is deprecated. Use set('value', ...) instead.","","2.0");return this.set("value",val);},_setValueAttr:function(val){this.value=val=dojo.trim(val);if(!this.renderAsHtml){val=val.replace(/&/gm,"&").replace(/</gm,"<").replace(/>/gm,">").replace(/"/gm,""").replace(/\n/g,"<br>");}this.displayNode.innerHTML=val||this.noValueIndicator;},getValue:function(){dojo.deprecated("dijit.InlineEditBox.getValue() is deprecated. Use get('value') instead.","","2.0");return this.get("value");},cancel:function(_4a9){if(this.disabled||!this.editing){return;}this.editing=false;setTimeout(dojo.hitch(this,"onCancel"),0);this._showText(_4a9);}});dojo.declare("dijit._InlineEditor",[dijit._Widget,dijit._Templated],{templateString:dojo.cache("dijit","templates/InlineEditBox.html","<span dojoAttachPoint=\"editNode\" waiRole=\"presentation\" style=\"position: absolute; visibility:hidden\" class=\"dijitReset dijitInline\"\n\tdojoAttachEvent=\"onkeypress: _onKeyPress\"\n\t><span dojoAttachPoint=\"editorPlaceholder\"></span\n\t><span dojoAttachPoint=\"buttonContainer\"\n\t\t><button class='saveButton' dojoAttachPoint=\"saveButton\" dojoType=\"dijit.form.Button\" dojoAttachEvent=\"onClick:save\" label=\"${buttonSave}\"></button\n\t\t><button class='cancelButton' dojoAttachPoint=\"cancelButton\" dojoType=\"dijit.form.Button\" dojoAttachEvent=\"onClick:cancel\" label=\"${buttonCancel}\"></button\n\t></span\n></span>\n"),widgetsInTemplate:true,postMixInProperties:function(){this.inherited(arguments);this.messages=dojo.i18n.getLocalization("dijit","common",this.lang);dojo.forEach(["buttonSave","buttonCancel"],function(prop){if(!this[prop]){this[prop]=this.messages[prop];}},this);},postCreate:function(){var cls=dojo.getObject(this.editor);var _4aa=this.sourceStyle,_4ab="line-height:"+_4aa.lineHeight+";",_4ac=dojo.getComputedStyle(this.domNode);dojo.forEach(["Weight","Family","Size","Style"],function(prop){var _4ad=_4aa["font"+prop],_4ae=_4ac["font"+prop];if(_4ae!=_4ad){_4ab+="font-"+prop+":"+_4aa["font"+prop]+";";}},this);dojo.forEach(["marginTop","marginBottom","marginLeft","marginRight"],function(prop){this.domNode.style[prop]=_4aa[prop];},this);var _4af=this.inlineEditBox.width;if(_4af=="100%"){_4ab+="width:100%;";this.domNode.style.display="block";}else{_4ab+="width:"+(_4af+(Number(_4af)==_4af?"px":""))+";";}var _4b0=dojo.delegate(this.inlineEditBox.editorParams,{style:_4ab,dir:this.dir,lang:this.lang});_4b0["displayedValue" in cls.prototype?"displayedValue":"value"]=this.value;var ew=(this.editWidget=new cls(_4b0,this.editorPlaceholder));if(this.inlineEditBox.autoSave){dojo.destroy(this.buttonContainer);this.connect(ew,"onChange","_onChange");this.connect(ew,"onKeyPress","_onKeyPress");}else{if("intermediateChanges" in cls.prototype){ew.set("intermediateChanges",true);this.connect(ew,"onChange","_onIntermediateChange");this.saveButton.set("disabled",true);}}},_onIntermediateChange:function(val){this.saveButton.set("disabled",(this.getValue()==this._resetValue)||!this.enableSave());},destroy:function(){this.editWidget.destroy(true);this.inherited(arguments);},getValue:function(){var ew=this.editWidget;return String(ew.get("displayedValue" in ew?"displayedValue":"value"));},_onKeyPress:function(e){if(this.inlineEditBox.autoSave&&this.inlineEditBox.editing){if(e.altKey||e.ctrlKey){return;}if(e.charOrCode==dojo.keys.ESCAPE){dojo.stopEvent(e);this.cancel(true);}else{if(e.charOrCode==dojo.keys.ENTER&&e.target.tagName=="INPUT"){dojo.stopEvent(e);this._onChange();}}}},_onBlur:function(){this.inherited(arguments);if(this.inlineEditBox.autoSave&&this.inlineEditBox.editing){if(this.getValue()==this._resetValue){this.cancel(false);}else{if(this.enableSave()){this.save(false);}}}},_onChange:function(){if(this.inlineEditBox.autoSave&&this.inlineEditBox.editing&&this.enableSave()){dojo.style(this.inlineEditBox.displayNode,{display:""});dijit.focus(this.inlineEditBox.displayNode);}},enableSave:function(){return (this.editWidget.isValid?this.editWidget.isValid():true);},focus:function(){this.editWidget.focus();setTimeout(dojo.hitch(this,function(){if(this.editWidget.focusNode&&this.editWidget.focusNode.tagName=="INPUT"){dijit.selectInputText(this.editWidget.focusNode);}}),0);}});}if(!dojo._hasResource["dijit.form.Form"]){dojo._hasResource["dijit.form.Form"]=true;dojo.provide("dijit.form.Form");dojo.declare("dijit.form.Form",[dijit._Widget,dijit._Templated,dijit.form._FormMixin],{name:"",action:"",method:"",encType:"","accept-charset":"",accept:"",target:"",templateString:"<form dojoAttachPoint='containerNode' dojoAttachEvent='onreset:_onReset,onsubmit:_onSubmit' ${!nameAttrSetting}></form>",attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{action:"",method:"",encType:"","accept-charset":"",accept:"",target:""}),postMixInProperties:function(){this.nameAttrSetting=this.name?("name='"+this.name+"'"):"";this.inherited(arguments);},execute:function(_4b1){},onExecute:function(){},_setEncTypeAttr:function(_4b2){this.encType=_4b2;dojo.attr(this.domNode,"encType",_4b2);if(dojo.isIE){this.domNode.encoding=_4b2;}},postCreate:function(){if(dojo.isIE&&this.srcNodeRef&&this.srcNodeRef.attributes){var item=this.srcNodeRef.attributes.getNamedItem("encType");if(item&&!item.specified&&(typeof item.value=="string")){this.set("encType",item.value);}}this.inherited(arguments);},reset:function(e){var faux={returnValue:true,preventDefault:function(){this.returnValue=false;},stopPropagation:function(){},currentTarget:e?e.target:this.domNode,target:e?e.target:this.domNode};if(!(this.onReset(faux)===false)&&faux.returnValue){this.inherited(arguments,[]);}},onReset:function(e){return true;},_onReset:function(e){this.reset(e);dojo.stopEvent(e);return false;},_onSubmit:function(e){var fp=dijit.form.Form.prototype;if(this.execute!=fp.execute||this.onExecute!=fp.onExecute){dojo.deprecated("dijit.form.Form:execute()/onExecute() are deprecated. Use onSubmit() instead.","","2.0");this.onExecute();this.execute(this.getValues());}if(this.onSubmit(e)===false){dojo.stopEvent(e);}},onSubmit:function(e){return this.isValid();},submit:function(){if(!(this.onSubmit()===false)){this.containerNode.submit();}}});}if(!dojo._hasResource["dijit.form.DropDownButton"]){dojo._hasResource["dijit.form.DropDownButton"]=true;dojo.provide("dijit.form.DropDownButton");}if(!dojo._hasResource["dijit.form.ComboButton"]){dojo._hasResource["dijit.form.ComboButton"]=true;dojo.provide("dijit.form.ComboButton");}if(!dojo._hasResource["dijit.form.ToggleButton"]){dojo._hasResource["dijit.form.ToggleButton"]=true;dojo.provide("dijit.form.ToggleButton");}if(!dojo._hasResource["dijit.form.CheckBox"]){dojo._hasResource["dijit.form.CheckBox"]=true;dojo.provide("dijit.form.CheckBox");dojo.declare("dijit.form.CheckBox",dijit.form.ToggleButton,{templateString:dojo.cache("dijit.form","templates/CheckBox.html","<div class=\"dijit dijitReset dijitInline\" waiRole=\"presentation\"\n\t><input\n\t \t${!nameAttrSetting} type=\"${type}\" ${checkedAttrSetting}\n\t\tclass=\"dijitReset dijitCheckBoxInput\"\n\t\tdojoAttachPoint=\"focusNode\"\n\t \tdojoAttachEvent=\"onclick:_onClick\"\n/></div>\n"),baseClass:"dijitCheckBox",type:"checkbox",value:"on",readOnly:false,attributeMap:dojo.delegate(dijit.form._FormWidget.prototype.attributeMap,{readOnly:"focusNode"}),_setReadOnlyAttr:function(_4b3){this.readOnly=_4b3;dojo.attr(this.focusNode,"readOnly",_4b3);dijit.setWaiState(this.focusNode,"readonly",_4b3);},_setValueAttr:function(_4b4,_4b5){if(typeof _4b4=="string"){this.value=_4b4;dojo.attr(this.focusNode,"value",_4b4);_4b4=true;}if(this._created){this.set("checked",_4b4,_4b5);}},_getValueAttr:function(){return (this.checked?this.value:false);},_setLabelAttr:undefined,postMixInProperties:function(){if(this.value==""){this.value="on";}this.checkedAttrSetting=this.checked?"checked":"";this.inherited(arguments);},_fillContent:function(_4b6){},reset:function(){this._hasBeenBlurred=false;this.set("checked",this.params.checked||false);this.value=this.params.value||"on";dojo.attr(this.focusNode,"value",this.value);},_onFocus:function(){if(this.id){dojo.query("label[for='"+this.id+"']").addClass("dijitFocusedLabel");}this.inherited(arguments);},_onBlur:function(){if(this.id){dojo.query("label[for='"+this.id+"']").removeClass("dijitFocusedLabel");}this.inherited(arguments);},_onClick:function(e){if(this.readOnly){return false;}return this.inherited(arguments);}});dojo.declare("dijit.form.RadioButton",dijit.form.CheckBox,{type:"radio",baseClass:"dijitRadio",_setCheckedAttr:function(_4b7){this.inherited(arguments);if(!this._created){return;}if(_4b7){var _4b8=this;dojo.query("INPUT[type=radio]",this.focusNode.form||dojo.doc).forEach(function(_4b9){if(_4b9.name==_4b8.name&&_4b9!=_4b8.focusNode&&_4b9.form==_4b8.focusNode.form){var _4ba=dijit.getEnclosingWidget(_4b9);if(_4ba&&_4ba.checked){_4ba.set("checked",false);}}});}},_clicked:function(e){if(!this.checked){this.set("checked",true);}}});}if(!dojo._hasResource["dijit.form.RadioButton"]){dojo._hasResource["dijit.form.RadioButton"]=true;dojo.provide("dijit.form.RadioButton");}if(!dojo._hasResource["dojo.cldr.monetary"]){dojo._hasResource["dojo.cldr.monetary"]=true;dojo.provide("dojo.cldr.monetary");dojo.cldr.monetary.getData=function(code){var _4bb={ADP:0,AFN:0,ALL:0,AMD:0,BHD:3,BIF:0,BYR:0,CLF:0,CLP:0,COP:0,CRC:0,DJF:0,ESP:0,GNF:0,GYD:0,HUF:0,IDR:0,IQD:0,IRR:3,ISK:0,ITL:0,JOD:3,JPY:0,KMF:0,KPW:0,KRW:0,KWD:3,LAK:0,LBP:0,LUF:0,LYD:3,MGA:0,MGF:0,MMK:0,MNT:0,MRO:0,MUR:0,OMR:3,PKR:0,PYG:0,RSD:0,RWF:0,SLL:0,SOS:0,STD:0,SYP:0,TMM:0,TND:3,TRL:0,TZS:0,UGX:0,UZS:0,VND:0,VUV:0,XAF:0,XOF:0,XPF:0,YER:0,ZMK:0,ZWD:0};var _4bc={CHF:5};var _4bd=_4bb[code],_4be=_4bc[code];if(typeof _4bd=="undefined"){_4bd=2;}if(typeof _4be=="undefined"){_4be=0;}return {places:_4bd,round:_4be};};}if(!dojo._hasResource["dojo.currency"]){dojo._hasResource["dojo.currency"]=true;dojo.provide("dojo.currency");dojo.currency._mixInDefaults=function(_4bf){_4bf=_4bf||{};_4bf.type="currency";var _4c0=dojo.i18n.getLocalization("dojo.cldr","currency",_4bf.locale)||{};var iso=_4bf.currency;var data=dojo.cldr.monetary.getData(iso);dojo.forEach(["displayName","symbol","group","decimal"],function(prop){data[prop]=_4c0[iso+"_"+prop];});data.fractional=[true,false];return dojo.mixin(data,_4bf);};dojo.currency.format=function(_4c1,_4c2){return dojo.number.format(_4c1,dojo.currency._mixInDefaults(_4c2));};dojo.currency.regexp=function(_4c3){return dojo.number.regexp(dojo.currency._mixInDefaults(_4c3));};dojo.currency.parse=function(_4c4,_4c5){return dojo.number.parse(_4c4,dojo.currency._mixInDefaults(_4c5));};}if(!dojo._hasResource["dijit.form.NumberTextBox"]){dojo._hasResource["dijit.form.NumberTextBox"]=true;dojo.provide("dijit.form.NumberTextBox");dojo.declare("dijit.form.NumberTextBoxMixin",null,{regExpGen:dojo.number.regexp,value:NaN,editOptions:{pattern:"#.######"},_formatter:dojo.number.format,_setConstraintsAttr:function(_4c6){var _4c7=typeof _4c6.places=="number"?_4c6.places:0;if(_4c7){_4c7++;}if(typeof _4c6.max!="number"){_4c6.max=9*Math.pow(10,15-_4c7);}if(typeof _4c6.min!="number"){_4c6.min=-9*Math.pow(10,15-_4c7);}this.inherited(arguments,[_4c6]);if(this.focusNode&&this.focusNode.value&&!isNaN(this.value)){this.set("value",this.value);}},_onFocus:function(){if(this.disabled){return;}var val=this.get("value");if(typeof val=="number"&&!isNaN(val)){var _4c8=this.format(val,this.constraints);if(_4c8!==undefined){this.textbox.value=_4c8;}}this.inherited(arguments);},format:function(_4c9,_4ca){var _4cb=String(_4c9);if(typeof _4c9!="number"){return _4cb;}if(isNaN(_4c9)){return "";}if(!("rangeCheck" in this&&this.rangeCheck(_4c9,_4ca))&&_4ca.exponent!==false&&/\de[-+]?\d/i.test(_4cb)){return _4cb;}if(this.editOptions&&this._focused){_4ca=dojo.mixin({},_4ca,this.editOptions);}return this._formatter(_4c9,_4ca);},parse:dojo.number.parse,_getDisplayedValueAttr:function(){var v=this.inherited(arguments);return isNaN(v)?this.textbox.value:v;},filter:function(_4cc){return (_4cc===null||_4cc===""||_4cc===undefined)?NaN:this.inherited(arguments);},serialize:function(_4cd,_4ce){return (typeof _4cd!="number"||isNaN(_4cd))?"":this.inherited(arguments);},_setValueAttr:function(_4cf,_4d0,_4d1){if(_4cf!==undefined&&_4d1===undefined){_4d1=String(_4cf);if(typeof _4cf=="number"){if(isNaN(_4cf)){_4d1="";}else{if(("rangeCheck" in this&&this.rangeCheck(_4cf,this.constraints))||this.constraints.exponent===false||!/\de[-+]?\d/i.test(_4d1)){_4d1=undefined;}}}else{if(!_4cf){_4d1="";_4cf=NaN;}else{_4cf=undefined;}}}this.inherited(arguments,[_4cf,_4d0,_4d1]);},_getValueAttr:function(){var v=this.inherited(arguments);if(isNaN(v)&&this.textbox.value!==""){if(this.constraints.exponent!==false&&/\de[-+]?\d/i.test(this.textbox.value)&&(new RegExp("^"+dojo.number._realNumberRegexp(dojo.mixin({},this.constraints))+"$").test(this.textbox.value))){var n=Number(this.textbox.value);return isNaN(n)?undefined:n;}else{return undefined;}}else{return v;}},isValid:function(_4d2){if(!this._focused||this._isEmpty(this.textbox.value)){return this.inherited(arguments);}else{var v=this.get("value");if(!isNaN(v)&&this.rangeCheck(v,this.constraints)){if(this.constraints.exponent!==false&&/\de[-+]?\d/i.test(this.textbox.value)){return true;}else{return this.inherited(arguments);}}else{return false;}}}});dojo.declare("dijit.form.NumberTextBox",[dijit.form.RangeBoundTextBox,dijit.form.NumberTextBoxMixin],{});}if(!dojo._hasResource["dijit.form.CurrencyTextBox"]){dojo._hasResource["dijit.form.CurrencyTextBox"]=true;dojo.provide("dijit.form.CurrencyTextBox");dojo.declare("dijit.form.CurrencyTextBox",dijit.form.NumberTextBox,{currency:"",baseClass:"dijitTextBox dijitCurrencyTextBox",regExpGen:function(_4d3){return "("+(this._focused?this.inherited(arguments,[dojo.mixin({},_4d3,this.editOptions)])+"|":"")+dojo.currency.regexp(_4d3)+")";},_formatter:dojo.currency.format,parse:function(_4d4,_4d5){var v=dojo.currency.parse(_4d4,_4d5);if(isNaN(v)&&/\d+/.test(_4d4)){return this.inherited(arguments,[_4d4,dojo.mixin({},_4d5,this.editOptions)]);}return v;},_setConstraintsAttr:function(_4d6){if(!_4d6.currency&&this.currency){_4d6.currency=this.currency;}this.inherited(arguments,[dojo.currency._mixInDefaults(dojo.mixin(_4d6,{exponent:false}))]);}});}if(!dojo._hasResource["dojo.cldr.supplemental"]){dojo._hasResource["dojo.cldr.supplemental"]=true;dojo.provide("dojo.cldr.supplemental");dojo.cldr.supplemental.getFirstDayOfWeek=function(_4d7){var _4d8={mv:5,af:6,bh:6,dj:6,dz:6,eg:6,er:6,et:6,iq:6,ir:6,jo:6,ke:6,kw:6,ly:6,ma:6,om:6,qa:6,sa:6,sd:6,so:6,tn:6,ye:6,ar:0,as:0,az:0,bw:0,ca:0,cn:0,fo:0,ge:0,gl:0,gu:0,hk:0,ie:0,il:0,"in":0,is:0,jm:0,jp:0,kg:0,kr:0,la:0,mh:0,mn:0,mo:0,mp:0,mt:0,nz:0,ph:0,pk:0,sg:0,sy:0,th:0,tt:0,tw:0,um:0,us:0,uz:0,vi:0,zw:0};var _4d9=dojo.cldr.supplemental._region(_4d7);var dow=_4d8[_4d9];return (dow===undefined)?1:dow;};dojo.cldr.supplemental._region=function(_4da){_4da=dojo.i18n.normalizeLocale(_4da);var tags=_4da.split("-");var _4db=tags[1];if(!_4db){_4db={de:"de",en:"us",es:"es",fi:"fi",fr:"fr",he:"il",hu:"hu",it:"it",ja:"jp",ko:"kr",nl:"nl",pt:"br",sv:"se",zh:"cn"}[tags[0]];}else{if(_4db.length==4){_4db=tags[2];}}return _4db;};dojo.cldr.supplemental.getWeekend=function(_4dc){var _4dd={"in":0,af:4,dz:4,ir:4,om:4,sa:4,ye:4,ae:5,bh:5,eg:5,il:5,iq:5,jo:5,kw:5,ly:5,ma:5,qa:5,sd:5,sy:5,tn:5};var _4de={af:5,dz:5,ir:5,om:5,sa:5,ye:5,ae:6,bh:5,eg:6,il:6,iq:6,jo:6,kw:6,ly:6,ma:6,qa:6,sd:6,sy:6,tn:6};var _4df=dojo.cldr.supplemental._region(_4dc);var _4e0=_4dd[_4df];var end=_4de[_4df];if(_4e0===undefined){_4e0=6;}if(end===undefined){end=0;}return {start:_4e0,end:end};};}if(!dojo._hasResource["dojo.date"]){dojo._hasResource["dojo.date"]=true;dojo.provide("dojo.date");dojo.date.getDaysInMonth=function(_4e1){var _4e2=_4e1.getMonth();var days=[31,28,31,30,31,30,31,31,30,31,30,31];if(_4e2==1&&dojo.date.isLeapYear(_4e1)){return 29;}return days[_4e2];};dojo.date.isLeapYear=function(_4e3){var year=_4e3.getFullYear();return !(year%400)||(!(year%4)&&!!(year%100));};dojo.date.getTimezoneName=function(_4e4){var str=_4e4.toString();var tz="";var _4e5;var pos=str.indexOf("(");if(pos>-1){tz=str.substring(++pos,str.indexOf(")"));}else{var pat=/([A-Z\/]+) \d{4}$/;if((_4e5=str.match(pat))){tz=_4e5[1];}else{str=_4e4.toLocaleString();pat=/ ([A-Z\/]+)$/;if((_4e5=str.match(pat))){tz=_4e5[1];}}}return (tz=="AM"||tz=="PM")?"":tz;};dojo.date.compare=function(_4e6,_4e7,_4e8){_4e6=new Date(+_4e6);_4e7=new Date(+(_4e7||new Date()));if(_4e8=="date"){_4e6.setHours(0,0,0,0);_4e7.setHours(0,0,0,0);}else{if(_4e8=="time"){_4e6.setFullYear(0,0,0);_4e7.setFullYear(0,0,0);}}if(_4e6>_4e7){return 1;}if(_4e6<_4e7){return -1;}return 0;};dojo.date.add=function(date,_4e9,_4ea){var sum=new Date(+date);var _4eb=false;var _4ec="Date";switch(_4e9){case "day":break;case "weekday":var days,_4ed;var mod=_4ea%5;if(!mod){days=(_4ea>0)?5:-5;_4ed=(_4ea>0)?((_4ea-5)/5):((_4ea+5)/5);}else{days=mod;_4ed=parseInt(_4ea/5);}var strt=date.getDay();var adj=0;if(strt==6&&_4ea>0){adj=1;}else{if(strt==0&&_4ea<0){adj=-1;}}var trgt=strt+days;if(trgt==0||trgt==6){adj=(_4ea>0)?2:-2;}_4ea=(7*_4ed)+days+adj;break;case "year":_4ec="FullYear";_4eb=true;break;case "week":_4ea*=7;break;case "quarter":_4ea*=3;case "month":_4eb=true;_4ec="Month";break;default:_4ec="UTC"+_4e9.charAt(0).toUpperCase()+_4e9.substring(1)+"s";}if(_4ec){sum["set"+_4ec](sum["get"+_4ec]()+_4ea);}if(_4eb&&(sum.getDate()<date.getDate())){sum.setDate(0);}return sum;};dojo.date.difference=function(_4ee,_4ef,_4f0){_4ef=_4ef||new Date();_4f0=_4f0||"day";var _4f1=_4ef.getFullYear()-_4ee.getFullYear();var _4f2=1;switch(_4f0){case "quarter":var m1=_4ee.getMonth();var m2=_4ef.getMonth();var q1=Math.floor(m1/3)+1;var q2=Math.floor(m2/3)+1;q2+=(_4f1*4);_4f2=q2-q1;break;case "weekday":var days=Math.round(dojo.date.difference(_4ee,_4ef,"day"));var _4f3=parseInt(dojo.date.difference(_4ee,_4ef,"week"));var mod=days%7;if(mod==0){days=_4f3*5;}else{var adj=0;var aDay=_4ee.getDay();var bDay=_4ef.getDay();_4f3=parseInt(days/7);mod=days%7;var _4f4=new Date(_4ee);_4f4.setDate(_4f4.getDate()+(_4f3*7));var _4f5=_4f4.getDay();if(days>0){switch(true){case aDay==6:adj=-1;break;case aDay==0:adj=0;break;case bDay==6:adj=-1;break;case bDay==0:adj=-2;break;case (_4f5+mod)>5:adj=-2;}}else{if(days<0){switch(true){case aDay==6:adj=0;break;case aDay==0:adj=1;break;case bDay==6:adj=2;break;case bDay==0:adj=1;break;case (_4f5+mod)<0:adj=2;}}}days+=adj;days-=(_4f3*2);}_4f2=days;break;case "year":_4f2=_4f1;break;case "month":_4f2=(_4ef.getMonth()-_4ee.getMonth())+(_4f1*12);break;case "week":_4f2=parseInt(dojo.date.difference(_4ee,_4ef,"day")/7);break;case "day":_4f2/=24;case "hour":_4f2/=60;case "minute":_4f2/=60;case "second":_4f2/=1000;case "millisecond":_4f2*=_4ef.getTime()-_4ee.getTime();}return Math.round(_4f2);};}if(!dojo._hasResource["dojo.date.locale"]){dojo._hasResource["dojo.date.locale"]=true;dojo.provide("dojo.date.locale");(function(){function _4f6(_4f7,_4f8,_4f9,_4fa){return _4fa.replace(/([a-z])\1*/ig,function(_4fb){var s,pad,c=_4fb.charAt(0),l=_4fb.length,_4fc=["abbr","wide","narrow"];switch(c){case "G":s=_4f8[(l<4)?"eraAbbr":"eraNames"][_4f7.getFullYear()<0?0:1];break;case "y":s=_4f7.getFullYear();switch(l){case 1:break;case 2:if(!_4f9.fullYear){s=String(s);s=s.substr(s.length-2);break;}default:pad=true;}break;case "Q":case "q":s=Math.ceil((_4f7.getMonth()+1)/3);pad=true;break;case "M":var m=_4f7.getMonth();if(l<3){s=m+1;pad=true;}else{var _4fd=["months","format",_4fc[l-3]].join("-");s=_4f8[_4fd][m];}break;case "w":var _4fe=0;s=dojo.date.locale._getWeekOfYear(_4f7,_4fe);pad=true;break;case "d":s=_4f7.getDate();pad=true;break;case "D":s=dojo.date.locale._getDayOfYear(_4f7);pad=true;break;case "E":var d=_4f7.getDay();if(l<3){s=d+1;pad=true;}else{var _4ff=["days","format",_4fc[l-3]].join("-");s=_4f8[_4ff][d];}break;case "a":var _500=(_4f7.getHours()<12)?"am":"pm";s=_4f8["dayPeriods-format-wide-"+_500];break;case "h":case "H":case "K":case "k":var h=_4f7.getHours();switch(c){case "h":s=(h%12)||12;break;case "H":s=h;break;case "K":s=(h%12);break;case "k":s=h||24;break;}pad=true;break;case "m":s=_4f7.getMinutes();pad=true;break;case "s":s=_4f7.getSeconds();pad=true;break;case "S":s=Math.round(_4f7.getMilliseconds()*Math.pow(10,l-3));pad=true;break;case "v":case "z":s=dojo.date.locale._getZone(_4f7,true,_4f9);if(s){break;}l=4;case "Z":var _501=dojo.date.locale._getZone(_4f7,false,_4f9);var tz=[(_501<=0?"+":"-"),dojo.string.pad(Math.floor(Math.abs(_501)/60),2),dojo.string.pad(Math.abs(_501)%60,2)];if(l==4){tz.splice(0,0,"GMT");tz.splice(3,0,":");}s=tz.join("");break;default:throw new Error("dojo.date.locale.format: invalid pattern char: "+_4fa);}if(pad){s=dojo.string.pad(s,l);}return s;});};dojo.date.locale._getZone=function(_502,_503,_504){if(_503){return dojo.date.getTimezoneName(_502);}else{return _502.getTimezoneOffset();}};dojo.date.locale.format=function(_505,_506){_506=_506||{};var _507=dojo.i18n.normalizeLocale(_506.locale),_508=_506.formatLength||"short",_509=dojo.date.locale._getGregorianBundle(_507),str=[],_50a=dojo.hitch(this,_4f6,_505,_509,_506);if(_506.selector=="year"){return _50b(_509["dateFormatItem-yyyy"]||"yyyy",_50a);}var _50c;if(_506.selector!="date"){_50c=_506.timePattern||_509["timeFormat-"+_508];if(_50c){str.push(_50b(_50c,_50a));}}if(_506.selector!="time"){_50c=_506.datePattern||_509["dateFormat-"+_508];if(_50c){str.push(_50b(_50c,_50a));}}return str.length==1?str[0]:_509["dateTimeFormat-"+_508].replace(/\{(\d+)\}/g,function(_50d,key){return str[key];});};dojo.date.locale.regexp=function(_50e){return dojo.date.locale._parseInfo(_50e).regexp;};dojo.date.locale._parseInfo=function(_50f){_50f=_50f||{};var _510=dojo.i18n.normalizeLocale(_50f.locale),_511=dojo.date.locale._getGregorianBundle(_510),_512=_50f.formatLength||"short",_513=_50f.datePattern||_511["dateFormat-"+_512],_514=_50f.timePattern||_511["timeFormat-"+_512],_515;if(_50f.selector=="date"){_515=_513;}else{if(_50f.selector=="time"){_515=_514;}else{_515=_511["dateTimeFormat-"+_512].replace(/\{(\d+)\}/g,function(_516,key){return [_514,_513][key];});}}var _517=[],re=_50b(_515,dojo.hitch(this,_518,_517,_511,_50f));return {regexp:re,tokens:_517,bundle:_511};};dojo.date.locale.parse=function(_519,_51a){var info=dojo.date.locale._parseInfo(_51a),_51b=info.tokens,_51c=info.bundle,re=new RegExp("^"+info.regexp+"$",info.strict?"":"i"),_51d=re.exec(_519);if(!_51d){return null;}var _51e=["abbr","wide","narrow"],_51f=[1970,0,1,0,0,0,0],amPm="",_520=dojo.every(_51d,function(v,i){if(!i){return true;}var _521=_51b[i-1];var l=_521.length;switch(_521.charAt(0)){case "y":if(l!=2&&_51a.strict){_51f[0]=v;}else{if(v<100){v=Number(v);var year=""+new Date().getFullYear(),_522=year.substring(0,2)*100,_523=Math.min(Number(year.substring(2,4))+20,99),num=(v<_523)?_522+v:_522-100+v;_51f[0]=num;}else{if(_51a.strict){return false;}_51f[0]=v;}}break;case "M":if(l>2){var _524=_51c["months-format-"+_51e[l-3]].concat();if(!_51a.strict){v=v.replace(".","").toLowerCase();_524=dojo.map(_524,function(s){return s.replace(".","").toLowerCase();});}v=dojo.indexOf(_524,v);if(v==-1){return false;}}else{v--;}_51f[1]=v;break;case "E":case "e":var days=_51c["days-format-"+_51e[l-3]].concat();if(!_51a.strict){v=v.toLowerCase();days=dojo.map(days,function(d){return d.toLowerCase();});}v=dojo.indexOf(days,v);if(v==-1){return false;}break;case "D":_51f[1]=0;case "d":_51f[2]=v;break;case "a":var am=_51a.am||_51c["dayPeriods-format-wide-am"],pm=_51a.pm||_51c["dayPeriods-format-wide-pm"];if(!_51a.strict){var _525=/\./g;v=v.replace(_525,"").toLowerCase();am=am.replace(_525,"").toLowerCase();pm=pm.replace(_525,"").toLowerCase();}if(_51a.strict&&v!=am&&v!=pm){return false;}amPm=(v==pm)?"p":(v==am)?"a":"";break;case "K":if(v==24){v=0;}case "h":case "H":case "k":if(v>23){return false;}_51f[3]=v;break;case "m":_51f[4]=v;break;case "s":_51f[5]=v;break;case "S":_51f[6]=v;}return true;});var _526=+_51f[3];if(amPm==="p"&&_526<12){_51f[3]=_526+12;}else{if(amPm==="a"&&_526==12){_51f[3]=0;}}var _527=new Date(_51f[0],_51f[1],_51f[2],_51f[3],_51f[4],_51f[5],_51f[6]);if(_51a.strict){_527.setFullYear(_51f[0]);}var _528=_51b.join(""),_529=_528.indexOf("d")!=-1,_52a=_528.indexOf("M")!=-1;if(!_520||(_52a&&_527.getMonth()>_51f[1])||(_529&&_527.getDate()>_51f[2])){return null;}if((_52a&&_527.getMonth()<_51f[1])||(_529&&_527.getDate()<_51f[2])){_527=dojo.date.add(_527,"hour",1);}return _527;};function _50b(_52b,_52c,_52d,_52e){var _52f=function(x){return x;};_52c=_52c||_52f;_52d=_52d||_52f;_52e=_52e||_52f;var _530=_52b.match(/(''|[^'])+/g),_531=_52b.charAt(0)=="'";dojo.forEach(_530,function(_532,i){if(!_532){_530[i]="";}else{_530[i]=(_531?_52d:_52c)(_532.replace(/''/g,"'"));_531=!_531;}});return _52e(_530.join(""));};function _518(_533,_534,_535,_536){_536=dojo.regexp.escapeString(_536);if(!_535.strict){_536=_536.replace(" a"," ?a");}return _536.replace(/([a-z])\1*/ig,function(_537){var s,c=_537.charAt(0),l=_537.length,p2="",p3="";if(_535.strict){if(l>1){p2="0"+"{"+(l-1)+"}";}if(l>2){p3="0"+"{"+(l-2)+"}";}}else{p2="0?";p3="0{0,2}";}switch(c){case "y":s="\\d{2,4}";break;case "M":s=(l>2)?"\\S+?":p2+"[1-9]|1[0-2]";break;case "D":s=p2+"[1-9]|"+p3+"[1-9][0-9]|[12][0-9][0-9]|3[0-5][0-9]|36[0-6]";break;case "d":s="3[01]|[12]\\d|"+p2+"[1-9]";break;case "w":s=p2+"[1-9]|[1-4][0-9]|5[0-3]";break;case "E":s="\\S+";break;case "h":s=p2+"[1-9]|1[0-2]";break;case "k":s=p2+"\\d|1[01]";break;case "H":s=p2+"\\d|1\\d|2[0-3]";break;case "K":s=p2+"[1-9]|1\\d|2[0-4]";break;case "m":case "s":s="[0-5]\\d";break;case "S":s="\\d{"+l+"}";break;case "a":var am=_535.am||_534["dayPeriods-format-wide-am"],pm=_535.pm||_534["dayPeriods-format-wide-pm"];if(_535.strict){s=am+"|"+pm;}else{s=am+"|"+pm;if(am!=am.toLowerCase()){s+="|"+am.toLowerCase();}if(pm!=pm.toLowerCase()){s+="|"+pm.toLowerCase();}if(s.indexOf(".")!=-1){s+="|"+s.replace(/\./g,"");}}s=s.replace(/\./g,"\\.");break;default:s=".*";}if(_533){_533.push(_537);}return "("+s+")";}).replace(/[\xa0 ]/g,"[\\s\\xa0]");};})();(function(){var _538=[];dojo.date.locale.addCustomFormats=function(_539,_53a){_538.push({pkg:_539,name:_53a});};dojo.date.locale._getGregorianBundle=function(_53b){var _53c={};dojo.forEach(_538,function(desc){var _53d=dojo.i18n.getLocalization(desc.pkg,desc.name,_53b);_53c=dojo.mixin(_53c,_53d);},this);return _53c;};})();dojo.date.locale.addCustomFormats("dojo.cldr","gregorian");dojo.date.locale.getNames=function(item,type,_53e,_53f){var _540,_541=dojo.date.locale._getGregorianBundle(_53f),_542=[item,_53e,type];if(_53e=="standAlone"){var key=_542.join("-");_540=_541[key];if(_540[0]==1){_540=undefined;}}_542[1]="format";return (_540||_541[_542.join("-")]).concat();};dojo.date.locale.isWeekend=function(_543,_544){var _545=dojo.cldr.supplemental.getWeekend(_544),day=(_543||new Date()).getDay();if(_545.end<_545.start){_545.end+=7;if(day<_545.start){day+=7;}}return day>=_545.start&&day<=_545.end;};dojo.date.locale._getDayOfYear=function(_546){return dojo.date.difference(new Date(_546.getFullYear(),0,1,_546.getHours()),_546)+1;};dojo.date.locale._getWeekOfYear=function(_547,_548){if(arguments.length==1){_548=0;}var _549=new Date(_547.getFullYear(),0,1).getDay(),adj=(_549-_548+7)%7,week=Math.floor((dojo.date.locale._getDayOfYear(_547)+adj-1)/7);if(_549==_548){week++;}return week;};}if(!dojo._hasResource["dijit.Calendar"]){dojo._hasResource["dijit.Calendar"]=true;dojo.provide("dijit.Calendar");dojo.declare("dijit.Calendar",[dijit._Widget,dijit._Templated,dijit._CssStateMixin],{templateString:dojo.cache("dijit","templates/Calendar.html","<table cellspacing=\"0\" cellpadding=\"0\" class=\"dijitCalendarContainer\" role=\"grid\" dojoAttachEvent=\"onkeypress: _onKeyPress\">\n\t<thead>\n\t\t<tr class=\"dijitReset dijitCalendarMonthContainer\" valign=\"top\">\n\t\t\t<th class='dijitReset dijitCalendarArrow' dojoAttachPoint=\"decrementMonth\">\n\t\t\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitCalendarIncrementControl dijitCalendarDecrease\" waiRole=\"presentation\"/>\n\t\t\t\t<span dojoAttachPoint=\"decreaseArrowNode\" class=\"dijitA11ySideArrow\">-</span>\n\t\t\t</th>\n\t\t\t<th class='dijitReset' colspan=\"5\">\n\t\t\t\t<div class=\"dijitVisible\">\n\t\t\t\t\t<div class=\"dijitPopup dijitMenu dijitMenuPassive dijitHidden\" dojoAttachPoint=\"monthDropDown\" dojoAttachEvent=\"onmouseup: _onMonthSelect, onmouseover: _onMenuHover, onmouseout: _onMenuHover\">\n\t\t\t\t\t\t<div class=\"dijitCalendarMonthLabelTemplate dijitCalendarMonthLabel\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div dojoAttachPoint=\"monthLabelSpacer\" class=\"dijitSpacer\"></div>\n\t\t\t\t<div dojoAttachPoint=\"monthLabelNode\" class=\"dijitCalendarMonthLabel dijitInline dijitVisible\" dojoAttachEvent=\"onmousedown: _onMonthToggle\"></div>\n\t\t\t</th>\n\t\t\t<th class='dijitReset dijitCalendarArrow' dojoAttachPoint=\"incrementMonth\">\n\t\t\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitCalendarIncrementControl dijitCalendarIncrease\" waiRole=\"presentation\"/>\n\t\t\t\t<span dojoAttachPoint=\"increaseArrowNode\" class=\"dijitA11ySideArrow\">+</span>\n\t\t\t</th>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<th class=\"dijitReset dijitCalendarDayLabelTemplate\" role=\"columnheader\"><span class=\"dijitCalendarDayLabel\"></span></th>\n\t\t</tr>\n\t</thead>\n\t<tbody dojoAttachEvent=\"onclick: _onDayClick, onmouseover: _onDayMouseOver, onmouseout: _onDayMouseOut, onmousedown: _onDayMouseDown, onmouseup: _onDayMouseUp\" class=\"dijitReset dijitCalendarBodyContainer\">\n\t\t<tr class=\"dijitReset dijitCalendarWeekTemplate\" role=\"row\">\n\t\t\t<td class=\"dijitReset dijitCalendarDateTemplate\" role=\"gridcell\"><span class=\"dijitCalendarDateLabel\"></span></td>\n\t\t</tr>\n\t</tbody>\n\t<tfoot class=\"dijitReset dijitCalendarYearContainer\">\n\t\t<tr>\n\t\t\t<td class='dijitReset' valign=\"top\" colspan=\"7\">\n\t\t\t\t<h3 class=\"dijitCalendarYearLabel\">\n\t\t\t\t\t<span dojoAttachPoint=\"previousYearLabelNode\" class=\"dijitInline dijitCalendarPreviousYear\"></span>\n\t\t\t\t\t<span dojoAttachPoint=\"currentYearLabelNode\" class=\"dijitInline dijitCalendarSelectedYear\"></span>\n\t\t\t\t\t<span dojoAttachPoint=\"nextYearLabelNode\" class=\"dijitInline dijitCalendarNextYear\"></span>\n\t\t\t\t</h3>\n\t\t\t</td>\n\t\t</tr>\n\t</tfoot>\n</table>\n"),value:new Date(),datePackage:"dojo.date",dayWidth:"narrow",tabIndex:"0",baseClass:"dijitCalendar",cssStateNodes:{"decrementMonth":"dijitCalendarArrow","incrementMonth":"dijitCalendarArrow","previousYearLabelNode":"dijitCalendarPreviousYear","nextYearLabelNode":"dijitCalendarNextYear"},attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{tabIndex:"domNode"}),setValue:function(_54a){dojo.deprecated("dijit.Calendar:setValue() is deprecated. Use set('value', ...) instead.","","2.0");this.set("value",_54a);},_getValueAttr:function(){var _54b=new this.dateClassObj(this.value);_54b.setHours(0,0,0,0);if(_54b.getDate()<this.value.getDate()){_54b=this.dateFuncObj.add(_54b,"hour",1);}return _54b;},_setValueAttr:function(_54c){if(!this.value||this.dateFuncObj.compare(_54c,this.value)){_54c=new this.dateClassObj(_54c);_54c.setHours(1);this.displayMonth=new this.dateClassObj(_54c);if(!this.isDisabledDate(_54c,this.lang)){this.value=_54c;this.onChange(this.get("value"));}dojo.attr(this.domNode,"aria-label",this.dateLocaleModule.format(_54c,{selector:"date",formatLength:"full"}));this._populateGrid();}},_setText:function(node,text){while(node.firstChild){node.removeChild(node.firstChild);}node.appendChild(dojo.doc.createTextNode(text));},_populateGrid:function(){var _54d=this.displayMonth;_54d.setDate(1);var _54e=_54d.getDay(),_54f=this.dateFuncObj.getDaysInMonth(_54d),_550=this.dateFuncObj.getDaysInMonth(this.dateFuncObj.add(_54d,"month",-1)),_551=new this.dateClassObj(),_552=dojo.cldr.supplemental.getFirstDayOfWeek(this.lang);if(_552>_54e){_552-=7;}dojo.query(".dijitCalendarDateTemplate",this.domNode).forEach(function(_553,i){i+=_552;var date=new this.dateClassObj(_54d),_554,_555="dijitCalendar",adj=0;if(i<_54e){_554=_550-_54e+i+1;adj=-1;_555+="Previous";}else{if(i>=(_54e+_54f)){_554=i-_54e-_54f+1;adj=1;_555+="Next";}else{_554=i-_54e+1;_555+="Current";}}if(adj){date=this.dateFuncObj.add(date,"month",adj);}date.setDate(_554);if(!this.dateFuncObj.compare(date,_551,"date")){_555="dijitCalendarCurrentDate "+_555;}if(this._isSelectedDate(date,this.lang)){_555="dijitCalendarSelectedDate "+_555;}if(this.isDisabledDate(date,this.lang)){_555="dijitCalendarDisabledDate "+_555;}var _556=this.getClassForDate(date,this.lang);if(_556){_555=_556+" "+_555;}_553.className=_555+"Month dijitCalendarDateTemplate";_553.dijitDateValue=date.valueOf();var _557=dojo.query(".dijitCalendarDateLabel",_553)[0],text=date.getDateLocalized?date.getDateLocalized(this.lang):date.getDate();this._setText(_557,text);},this);var _558=this.dateLocaleModule.getNames("months","wide","standAlone",this.lang,_54d);this._setText(this.monthLabelNode,_558[_54d.getMonth()]);dojo.query(".dijitCalendarMonthLabelTemplate",this.domNode).forEach(function(node,i){dojo.toggleClass(node,"dijitHidden",!(i in _558));this._setText(node,_558[i]);},this);var y=_54d.getFullYear()-1;var d=new this.dateClassObj();dojo.forEach(["previous","current","next"],function(name){d.setFullYear(y++);this._setText(this[name+"YearLabelNode"],this.dateLocaleModule.format(d,{selector:"year",locale:this.lang}));},this);var _559=this;var _55a=function(_55b,_55c,adj){_559._connects.push(dijit.typematic.addMouseListener(_559[_55b],_559,function(_55d){if(_55d>=0){_559._adjustDisplay(_55c,adj);}},0.8,500));};_55a("incrementMonth","month",1);_55a("decrementMonth","month",-1);_55a("nextYearLabelNode","year",1);_55a("previousYearLabelNode","year",-1);},goToToday:function(){this.set("value",new this.dateClassObj());},constructor:function(args){var _55e=(args.datePackage&&(args.datePackage!="dojo.date"))?args.datePackage+".Date":"Date";this.dateClassObj=dojo.getObject(_55e,false);this.datePackage=args.datePackage||this.datePackage;this.dateFuncObj=dojo.getObject(this.datePackage,false);this.dateLocaleModule=dojo.getObject(this.datePackage+".locale",false);},postMixInProperties:function(){if(isNaN(this.value)){delete this.value;}this.inherited(arguments);},postCreate:function(){this.inherited(arguments);dojo.setSelectable(this.domNode,false);var _55f=dojo.hitch(this,function(_560,n){var _561=dojo.query(_560,this.domNode)[0];for(var i=0;i<n;i++){_561.parentNode.appendChild(_561.cloneNode(true));}});_55f(".dijitCalendarDayLabelTemplate",6);_55f(".dijitCalendarDateTemplate",6);_55f(".dijitCalendarWeekTemplate",5);var _562=this.dateLocaleModule.getNames("days",this.dayWidth,"standAlone",this.lang);var _563=dojo.cldr.supplemental.getFirstDayOfWeek(this.lang);dojo.query(".dijitCalendarDayLabel",this.domNode).forEach(function(_564,i){this._setText(_564,_562[(i+_563)%7]);},this);var _565=new this.dateClassObj(this.value);var _566=this.dateLocaleModule.getNames("months","wide","standAlone",this.lang,_565);_55f(".dijitCalendarMonthLabelTemplate",_566.length-1);dojo.query(".dijitCalendarMonthLabelTemplate",this.domNode).forEach(function(node,i){dojo.attr(node,"month",i);if(i in _566){this._setText(node,_566[i]);}dojo.place(node.cloneNode(true),this.monthLabelSpacer);},this);this.value=null;this.set("value",_565);},_onMenuHover:function(e){dojo.stopEvent(e);dojo.toggleClass(e.target,"dijitMenuItemHover");},_adjustDisplay:function(part,_567){this.displayMonth=this.dateFuncObj.add(this.displayMonth,part,_567);this._populateGrid();},_onMonthToggle:function(evt){dojo.stopEvent(evt);if(evt.type=="mousedown"){var _568=dojo.position(this.monthLabelNode);var dim={width:_568.w+"px",top:-this.displayMonth.getMonth()*_568.h+"px"};if((dojo.isIE&&dojo.isQuirks)||dojo.isIE<7){dim.left=-_568.w/2+"px";}dojo.style(this.monthDropDown,dim);this._popupHandler=this.connect(document,"onmouseup","_onMonthToggle");}else{this.disconnect(this._popupHandler);delete this._popupHandler;}dojo.toggleClass(this.monthDropDown,"dijitHidden");dojo.toggleClass(this.monthLabelNode,"dijitVisible");},_onMonthSelect:function(evt){this._onMonthToggle(evt);this.displayMonth.setMonth(dojo.attr(evt.target,"month"));this._populateGrid();},_onDayClick:function(evt){dojo.stopEvent(evt);for(var node=evt.target;node&&!node.dijitDateValue;node=node.parentNode){}if(node&&!dojo.hasClass(node,"dijitCalendarDisabledDate")){this.set("value",node.dijitDateValue);this.onValueSelected(this.get("value"));}},_onDayMouseOver:function(evt){var node=dojo.hasClass(evt.target,"dijitCalendarDateLabel")?evt.target.parentNode:evt.target;if(node&&(node.dijitDateValue||node==this.previousYearLabelNode||node==this.nextYearLabelNode)){dojo.addClass(node,"dijitCalendarHoveredDate");this._currentNode=node;}},_onDayMouseOut:function(evt){if(!this._currentNode){return;}if(evt.relatedTarget&&evt.relatedTarget.parentNode==this._currentNode){return;}dojo.removeClass(this._currentNode,"dijitCalendarHoveredDate");if(dojo.hasClass(this._currentNode,"dijitCalendarActiveDate")){dojo.removeClass(this._currentNode,"dijitCalendarActiveDate");}this._currentNode=null;},_onDayMouseDown:function(evt){var node=evt.target.parentNode;if(node&&node.dijitDateValue){dojo.addClass(node,"dijitCalendarActiveDate");this._currentNode=node;}},_onDayMouseUp:function(evt){var node=evt.target.parentNode;if(node&&node.dijitDateValue){dojo.removeClass(node,"dijitCalendarActiveDate");}},_onKeyPress:function(evt){var dk=dojo.keys,_569=-1,_56a,_56b=this.value;switch(evt.keyCode){case dk.RIGHT_ARROW:_569=1;case dk.LEFT_ARROW:_56a="day";if(!this.isLeftToRight()){_569*=-1;}break;case dk.DOWN_ARROW:_569=1;case dk.UP_ARROW:_56a="week";break;case dk.PAGE_DOWN:_569=1;case dk.PAGE_UP:_56a=evt.ctrlKey?"year":"month";break;case dk.END:_56b=this.dateFuncObj.add(_56b,"month",1);_56a="day";case dk.HOME:_56b=new Date(_56b).setDate(1);break;case dk.ENTER:this.onValueSelected(this.get("value"));break;case dk.ESCAPE:default:return;}dojo.stopEvent(evt);if(_56a){_56b=this.dateFuncObj.add(_56b,_56a,_569);}this.set("value",_56b);},onValueSelected:function(date){},onChange:function(date){},_isSelectedDate:function(_56c,_56d){return !this.dateFuncObj.compare(_56c,this.value,"date");},isDisabledDate:function(_56e,_56f){},getClassForDate:function(_570,_571){}});}if(!dojo._hasResource["dijit.form._DateTimeTextBox"]){dojo._hasResource["dijit.form._DateTimeTextBox"]=true;dojo.provide("dijit.form._DateTimeTextBox");new Date("X");dojo.declare("dijit.form._DateTimeTextBox",dijit.form.RangeBoundTextBox,{regExpGen:dojo.date.locale.regexp,datePackage:"dojo.date",compare:dojo.date.compare,format:function(_572,_573){if(!_572){return "";}return this.dateLocaleModule.format(_572,_573);},parse:function(_574,_575){return this.dateLocaleModule.parse(_574,_575)||(this._isEmpty(_574)?null:undefined);},serialize:function(val,_576){if(val.toGregorian){val=val.toGregorian();}return dojo.date.stamp.toISOString(val,_576);},value:new Date(""),_blankValue:null,popupClass:"",_selector:"",constructor:function(args){var _577=args.datePackage?args.datePackage+".Date":"Date";this.dateClassObj=dojo.getObject(_577,false);this.value=new this.dateClassObj("");this.datePackage=args.datePackage||this.datePackage;this.dateLocaleModule=dojo.getObject(this.datePackage+".locale",false);this.regExpGen=this.dateLocaleModule.regexp;},_setConstraintsAttr:function(_578){_578.selector=this._selector;_578.fullYear=true;var _579=dojo.date.stamp.fromISOString;if(typeof _578.min=="string"){_578.min=_579(_578.min);}if(typeof _578.max=="string"){_578.max=_579(_578.max);}this.inherited(arguments,[_578]);},_onFocus:function(evt){this._open();this.inherited(arguments);},_setValueAttr:function(_57a,_57b,_57c){if(_57a!==undefined){if(!_57a||_57a.toString()==dijit.form._DateTimeTextBox.prototype.value.toString()){_57a=null;}if(_57a instanceof Date&&!(this.dateClassObj instanceof Date)){_57a=new this.dateClassObj(_57a);}}this.inherited(arguments,[_57a,_57b,_57c]);if(this._picker){if(!_57a){_57a=new this.dateClassObj();}this._picker.set("value",_57a);}},_open:function(){if(this.disabled||this.readOnly||!this.popupClass){return;}var _57d=this;if(!this._picker){var _57e=dojo.getObject(this.popupClass,false);this._picker=new _57e({onValueSelected:function(_57f){if(_57d._tabbingAway){delete _57d._tabbingAway;}else{_57d.focus();}setTimeout(dojo.hitch(_57d,"_close"),1);dijit.form._DateTimeTextBox.superclass._setValueAttr.call(_57d,_57f,true);},id:this.id+"_popup",dir:_57d.dir,lang:_57d.lang,value:this.get("value")||new this.dateClassObj(),constraints:_57d.constraints,datePackage:_57d.datePackage,isDisabledDate:function(date){var _580=dojo.date.compare;var _581=_57d.constraints;return _581&&((_581.min&&_580(_581.min,date,_57d._selector)>0)||(_581.max&&_580(_581.max,date,_57d._selector)<0));}});}if(!this._opened){dijit.popup.open({parent:this,popup:this._picker,orient:{"BL":"TL","TL":"BL"},around:this.domNode,onCancel:dojo.hitch(this,this._close),onClose:function(){_57d._opened=false;}});this._opened=true;}dojo.marginBox(this._picker.domNode,{w:this.domNode.offsetWidth});},_close:function(){if(this._opened){dijit.popup.close(this._picker);this._opened=false;}},_onBlur:function(){this._close();if(this._picker){this._picker.destroy();delete this._picker;}this.inherited(arguments);},_getDisplayedValueAttr:function(){return this.textbox.value;},_setDisplayedValueAttr:function(_582,_583){this._setValueAttr(this.parse(_582,this.constraints),_583,_582);},destroy:function(){if(this._picker){this._picker.destroy();delete this._picker;}this.inherited(arguments);},postCreate:function(){this.inherited(arguments);this.connect(this.focusNode,"onkeypress",this._onKeyPress);this.connect(this.focusNode,"onclick",this._open);},_onKeyPress:function(e){var p=this._picker,dk=dojo.keys;if(p&&this._opened&&p.handleKey){if(p.handleKey(e)===false){return;}}if(this._opened&&e.charOrCode==dk.ESCAPE&&!(e.shiftKey||e.ctrlKey||e.altKey||e.metaKey)){this._close();dojo.stopEvent(e);}else{if(!this._opened&&e.charOrCode==dk.DOWN_ARROW){this._open();dojo.stopEvent(e);}else{if(e.charOrCode===dk.TAB){this._tabbingAway=true;}else{if(this._opened&&(e.keyChar||e.charOrCode===dk.BACKSPACE||e.charOrCode==dk.DELETE)){setTimeout(dojo.hitch(this,function(){if(this._picker&&this._opened){dijit.placeOnScreenAroundElement(p.domNode.parentNode,this.domNode,{"BL":"TL","TL":"BL"},p.orient?dojo.hitch(p,"orient"):null);}}),1);}}}}}});}if(!dojo._hasResource["dijit.form.DateTextBox"]){dojo._hasResource["dijit.form.DateTextBox"]=true;dojo.provide("dijit.form.DateTextBox");dojo.declare("dijit.form.DateTextBox",dijit.form._DateTimeTextBox,{baseClass:"dijitTextBox dijitDateTextBox",popupClass:"dijit.Calendar",_selector:"date",value:new Date("")});}if(!dojo._hasResource["dijit.form._Spinner"]){dojo._hasResource["dijit.form._Spinner"]=true;dojo.provide("dijit.form._Spinner");dojo.declare("dijit.form._Spinner",dijit.form.RangeBoundTextBox,{defaultTimeout:500,minimumTimeout:10,timeoutChangeRate:0.9,smallDelta:1,largeDelta:10,templateString:dojo.cache("dijit.form","templates/Spinner.html","<div class=\"dijit dijitReset dijitInlineTable dijitLeft\"\n\tid=\"widget_${id}\" waiRole=\"presentation\"\n\t><div class=\"dijitReset dijitButtonNode dijitSpinnerButtonContainer\"\n\t\t><input class=\"dijitReset dijitInputField dijitSpinnerButtonInner\" type=\"text\" tabIndex=\"-1\" readOnly waiRole=\"presentation\"\n\t\t/><div class=\"dijitReset dijitLeft dijitButtonNode dijitArrowButton dijitUpArrowButton\"\n\t\t\tdojoAttachPoint=\"upArrowNode\"\n\t\t\t><div class=\"dijitArrowButtonInner\"\n\t\t\t\t><input class=\"dijitReset dijitInputField\" value=\"▲\" type=\"text\" tabIndex=\"-1\" readOnly waiRole=\"presentation\"\n\t\t\t\t\t${_buttonInputDisabled}\n\t\t\t/></div\n\t\t></div\n\t\t><div class=\"dijitReset dijitLeft dijitButtonNode dijitArrowButton dijitDownArrowButton\"\n\t\t\tdojoAttachPoint=\"downArrowNode\"\n\t\t\t><div class=\"dijitArrowButtonInner\"\n\t\t\t\t><input class=\"dijitReset dijitInputField\" value=\"▼\" type=\"text\" tabIndex=\"-1\" readOnly waiRole=\"presentation\"\n\t\t\t\t\t${_buttonInputDisabled}\n\t\t\t/></div\n\t\t></div\n\t></div\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"Χ \" type=\"text\" tabIndex=\"-1\" readOnly waiRole=\"presentation\"\n\t/></div\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class='dijitReset dijitInputInner' dojoAttachPoint=\"textbox,focusNode\" type=\"${type}\" dojoAttachEvent=\"onkeypress:_onKeyPress\"\n\t\t\twaiRole=\"spinbutton\" autocomplete=\"off\" ${!nameAttrSetting}\n\t/></div\n></div>\n"),baseClass:"dijitTextBox dijitSpinner",cssStateNodes:{"upArrowNode":"dijitUpArrowButton","downArrowNode":"dijitDownArrowButton"},adjust:function(val,_584){return val;},_arrowPressed:function(_585,_586,_587){if(this.disabled||this.readOnly){return;}this._setValueAttr(this.adjust(this.get("value"),_586*_587),false);dijit.selectInputText(this.textbox,this.textbox.value.length);},_arrowReleased:function(node){this._wheelTimer=null;if(this.disabled||this.readOnly){return;}},_typematicCallback:function(_588,node,evt){var inc=this.smallDelta;if(node==this.textbox){var k=dojo.keys;var key=evt.charOrCode;inc=(key==k.PAGE_UP||key==k.PAGE_DOWN)?this.largeDelta:this.smallDelta;node=(key==k.UP_ARROW||key==k.PAGE_UP)?this.upArrowNode:this.downArrowNode;}if(_588==-1){this._arrowReleased(node);}else{this._arrowPressed(node,(node==this.upArrowNode)?1:-1,inc);}},_wheelTimer:null,_mouseWheeled:function(evt){dojo.stopEvent(evt);var _589=evt.detail?(evt.detail*-1):(evt.wheelDelta/120);if(_589!==0){var node=this[(_589>0?"upArrowNode":"downArrowNode")];this._arrowPressed(node,_589,this.smallDelta);if(!this._wheelTimer){clearTimeout(this._wheelTimer);}this._wheelTimer=setTimeout(dojo.hitch(this,"_arrowReleased",node),50);}},postCreate:function(){this.inherited(arguments);this.connect(this.domNode,!dojo.isMozilla?"onmousewheel":"DOMMouseScroll","_mouseWheeled");this._connects.push(dijit.typematic.addListener(this.upArrowNode,this.textbox,{charOrCode:dojo.keys.UP_ARROW,ctrlKey:false,altKey:false,shiftKey:false,metaKey:false},this,"_typematicCallback",this.timeoutChangeRate,this.defaultTimeout,this.minimumTimeout));this._connects.push(dijit.typematic.addListener(this.downArrowNode,this.textbox,{charOrCode:dojo.keys.DOWN_ARROW,ctrlKey:false,altKey:false,shiftKey:false,metaKey:false},this,"_typematicCallback",this.timeoutChangeRate,this.defaultTimeout,this.minimumTimeout));this._connects.push(dijit.typematic.addListener(this.upArrowNode,this.textbox,{charOrCode:dojo.keys.PAGE_UP,ctrlKey:false,altKey:false,shiftKey:false,metaKey:false},this,"_typematicCallback",this.timeoutChangeRate,this.defaultTimeout,this.minimumTimeout));this._connects.push(dijit.typematic.addListener(this.downArrowNode,this.textbox,{charOrCode:dojo.keys.PAGE_DOWN,ctrlKey:false,altKey:false,shiftKey:false,metaKey:false},this,"_typematicCallback",this.timeoutChangeRate,this.defaultTimeout,this.minimumTimeout));}});}if(!dojo._hasResource["dijit.form.NumberSpinner"]){dojo._hasResource["dijit.form.NumberSpinner"]=true;dojo.provide("dijit.form.NumberSpinner");dojo.declare("dijit.form.NumberSpinner",[dijit.form._Spinner,dijit.form.NumberTextBoxMixin],{adjust:function(val,_58a){var tc=this.constraints,v=isNaN(val),_58b=!isNaN(tc.max),_58c=!isNaN(tc.min);if(v&&_58a!=0){val=(_58a>0)?_58c?tc.min:_58b?tc.max:0:_58b?this.constraints.max:_58c?tc.min:0;}var _58d=val+_58a;if(v||isNaN(_58d)){return val;}if(_58b&&(_58d>tc.max)){_58d=tc.max;}if(_58c&&(_58d<tc.min)){_58d=tc.min;}return _58d;},_onKeyPress:function(e){if((e.charOrCode==dojo.keys.HOME||e.charOrCode==dojo.keys.END)&&!(e.ctrlKey||e.altKey||e.metaKey)&&typeof this.get("value")!="undefined"){var _58e=this.constraints[(e.charOrCode==dojo.keys.HOME?"min":"max")];if(typeof _58e=="number"){this._setValueAttr(_58e,false);}dojo.stopEvent(e);}}});}if(!dojo._hasResource["dijit.form.MultiSelect"]){dojo._hasResource["dijit.form.MultiSelect"]=true;dojo.provide("dijit.form.MultiSelect");dojo.declare("dijit.form.MultiSelect",dijit.form._FormValueWidget,{size:7,templateString:"<select multiple='true' ${!nameAttrSetting} dojoAttachPoint='containerNode,focusNode' dojoAttachEvent='onchange: _onChange'></select>",attributeMap:dojo.delegate(dijit.form._FormWidget.prototype.attributeMap,{size:"focusNode"}),reset:function(){this._hasBeenBlurred=false;this._setValueAttr(this._resetValue,true);},addSelected:function(_58f){_58f.getSelected().forEach(function(n){this.containerNode.appendChild(n);this.domNode.scrollTop=this.domNode.offsetHeight;var _590=_58f.domNode.scrollTop;_58f.domNode.scrollTop=0;_58f.domNode.scrollTop=_590;},this);},getSelected:function(){return dojo.query("option",this.containerNode).filter(function(n){return n.selected;});},_getValueAttr:function(){return this.getSelected().map(function(n){return n.value;});},multiple:true,_setValueAttr:function(_591){dojo.query("option",this.containerNode).forEach(function(n){n.selected=(dojo.indexOf(_591,n.value)!=-1);});},invertSelection:function(_592){dojo.query("option",this.containerNode).forEach(function(n){n.selected=!n.selected;});this._handleOnChange(this.get("value"),_592==true);},_onChange:function(e){this._handleOnChange(this.get("value"),true);},resize:function(size){if(size){dojo.marginBox(this.domNode,size);}},postCreate:function(){this._onChange();}});}if(!dojo._hasResource["dijit.form.HorizontalSlider"]){dojo._hasResource["dijit.form.HorizontalSlider"]=true;dojo.provide("dijit.form.HorizontalSlider");dojo.declare("dijit.form.HorizontalSlider",[dijit.form._FormValueWidget,dijit._Container],{templateString:dojo.cache("dijit.form","templates/HorizontalSlider.html","<table class=\"dijit dijitReset dijitSlider dijitSliderH\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" rules=\"none\" dojoAttachEvent=\"onkeypress:_onKeyPress,onkeyup:_onKeyUp\"\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t\t><td dojoAttachPoint=\"topDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationT dijitSliderDecorationH\"></td\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerH\"\n\t\t\t><div class=\"dijitSliderDecrementIconH\" tabIndex=\"-1\" style=\"display:none\" dojoAttachPoint=\"decrementButton\"><span class=\"dijitSliderButtonInner\">-</span></div\n\t\t></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperH dijitSliderLeftBumper\" dojoAttachEvent=\"onmousedown:_onClkDecBumper\"></div\n\t\t></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><input dojoAttachPoint=\"valueNode\" type=\"hidden\" ${!nameAttrSetting}\n\t\t\t/><div class=\"dijitReset dijitSliderBarContainerH\" waiRole=\"presentation\" dojoAttachPoint=\"sliderBarContainer\"\n\t\t\t\t><div waiRole=\"presentation\" dojoAttachPoint=\"progressBar\" class=\"dijitSliderBar dijitSliderBarH dijitSliderProgressBar dijitSliderProgressBarH\" dojoAttachEvent=\"onmousedown:_onBarClick\"\n\t\t\t\t\t><div class=\"dijitSliderMoveable dijitSliderMoveableH\"\n\t\t\t\t\t\t><div dojoAttachPoint=\"sliderHandle,focusNode\" class=\"dijitSliderImageHandle dijitSliderImageHandleH\" dojoAttachEvent=\"onmousedown:_onHandleClick\" waiRole=\"slider\" valuemin=\"${minimum}\" valuemax=\"${maximum}\"></div\n\t\t\t\t\t></div\n\t\t\t\t></div\n\t\t\t\t><div waiRole=\"presentation\" dojoAttachPoint=\"remainingBar\" class=\"dijitSliderBar dijitSliderBarH dijitSliderRemainingBar dijitSliderRemainingBarH\" dojoAttachEvent=\"onmousedown:_onBarClick\"></div\n\t\t\t></div\n\t\t></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperH dijitSliderRightBumper\" dojoAttachEvent=\"onmousedown:_onClkIncBumper\"></div\n\t\t></td\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerH\"\n\t\t\t><div class=\"dijitSliderIncrementIconH\" tabIndex=\"-1\" style=\"display:none\" dojoAttachPoint=\"incrementButton\"><span class=\"dijitSliderButtonInner\">+</span></div\n\t\t></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t\t><td dojoAttachPoint=\"containerNode,bottomDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationB dijitSliderDecorationH\"></td\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t></tr\n></table>\n"),value:0,showButtons:true,minimum:0,maximum:100,discreteValues:Infinity,pageIncrement:2,clickSelect:true,slideDuration:dijit.defaultDuration,widgetsInTemplate:true,attributeMap:dojo.delegate(dijit.form._FormWidget.prototype.attributeMap,{id:""}),baseClass:"dijitSlider",cssStateNodes:{incrementButton:"dijitSliderIncrementButton",decrementButton:"dijitSliderDecrementButton",focusNode:"dijitSliderThumb"},_mousePixelCoord:"pageX",_pixelCount:"w",_startingPixelCoord:"x",_startingPixelCount:"l",_handleOffsetCoord:"left",_progressPixelSize:"width",_onKeyUp:function(e){if(this.disabled||this.readOnly||e.altKey||e.ctrlKey||e.metaKey){return;}this._setValueAttr(this.value,true);},_onKeyPress:function(e){if(this.disabled||this.readOnly||e.altKey||e.ctrlKey||e.metaKey){return;}switch(e.charOrCode){case dojo.keys.HOME:this._setValueAttr(this.minimum,false);break;case dojo.keys.END:this._setValueAttr(this.maximum,false);break;case ((this._descending||this.isLeftToRight())?dojo.keys.RIGHT_ARROW:dojo.keys.LEFT_ARROW):case (this._descending===false?dojo.keys.DOWN_ARROW:dojo.keys.UP_ARROW):case (this._descending===false?dojo.keys.PAGE_DOWN:dojo.keys.PAGE_UP):this.increment(e);break;case ((this._descending||this.isLeftToRight())?dojo.keys.LEFT_ARROW:dojo.keys.RIGHT_ARROW):case (this._descending===false?dojo.keys.UP_ARROW:dojo.keys.DOWN_ARROW):case (this._descending===false?dojo.keys.PAGE_UP:dojo.keys.PAGE_DOWN):this.decrement(e);break;default:return;}dojo.stopEvent(e);},_onHandleClick:function(e){if(this.disabled||this.readOnly){return;}if(!dojo.isIE){dijit.focus(this.sliderHandle);}dojo.stopEvent(e);},_isReversed:function(){return !this.isLeftToRight();},_onBarClick:function(e){if(this.disabled||this.readOnly||!this.clickSelect){return;}dijit.focus(this.sliderHandle);dojo.stopEvent(e);var _593=dojo.position(this.sliderBarContainer,true);var _594=e[this._mousePixelCoord]-_593[this._startingPixelCoord];this._setPixelValue(this._isReversed()?(_593[this._pixelCount]-_594):_594,_593[this._pixelCount],true);this._movable.onMouseDown(e);},_setPixelValue:function(_595,_596,_597){if(this.disabled||this.readOnly){return;}_595=_595<0?0:_596<_595?_596:_595;var _598=this.discreteValues;if(_598<=1||_598==Infinity){_598=_596;}_598--;var _599=_596/_598;var _59a=Math.round(_595/_599);this._setValueAttr((this.maximum-this.minimum)*_59a/_598+this.minimum,_597);},_setValueAttr:function(_59b,_59c){this.valueNode.value=this.value=_59b;dijit.setWaiState(this.focusNode,"valuenow",_59b);this.inherited(arguments);var _59d=(_59b-this.minimum)/(this.maximum-this.minimum);var _59e=(this._descending===false)?this.remainingBar:this.progressBar;var _59f=(this._descending===false)?this.progressBar:this.remainingBar;if(this._inProgressAnim&&this._inProgressAnim.status!="stopped"){this._inProgressAnim.stop(true);}if(_59c&&this.slideDuration>0&&_59e.style[this._progressPixelSize]){var _5a0=this;var _5a1={};var _5a2=parseFloat(_59e.style[this._progressPixelSize]);var _5a3=this.slideDuration*(_59d-_5a2/100);if(_5a3==0){return;}if(_5a3<0){_5a3=0-_5a3;}_5a1[this._progressPixelSize]={start:_5a2,end:_59d*100,units:"%"};this._inProgressAnim=dojo.animateProperty({node:_59e,duration:_5a3,onAnimate:function(v){_59f.style[_5a0._progressPixelSize]=(100-parseFloat(v[_5a0._progressPixelSize]))+"%";},onEnd:function(){delete _5a0._inProgressAnim;},properties:_5a1});this._inProgressAnim.play();}else{_59e.style[this._progressPixelSize]=(_59d*100)+"%";_59f.style[this._progressPixelSize]=((1-_59d)*100)+"%";}},_bumpValue:function(_5a4,_5a5){if(this.disabled||this.readOnly){return;}var s=dojo.getComputedStyle(this.sliderBarContainer);var c=dojo._getContentBox(this.sliderBarContainer,s);var _5a6=this.discreteValues;if(_5a6<=1||_5a6==Infinity){_5a6=c[this._pixelCount];}_5a6--;var _5a7=(this.value-this.minimum)*_5a6/(this.maximum-this.minimum)+_5a4;if(_5a7<0){_5a7=0;}if(_5a7>_5a6){_5a7=_5a6;}_5a7=_5a7*(this.maximum-this.minimum)/_5a6+this.minimum;this._setValueAttr(_5a7,_5a5);},_onClkBumper:function(val){if(this.disabled||this.readOnly||!this.clickSelect){return;}this._setValueAttr(val,true);},_onClkIncBumper:function(){this._onClkBumper(this._descending===false?this.minimum:this.maximum);},_onClkDecBumper:function(){this._onClkBumper(this._descending===false?this.maximum:this.minimum);},decrement:function(e){this._bumpValue(e.charOrCode==dojo.keys.PAGE_DOWN?-this.pageIncrement:-1);},increment:function(e){this._bumpValue(e.charOrCode==dojo.keys.PAGE_UP?this.pageIncrement:1);},_mouseWheeled:function(evt){dojo.stopEvent(evt);var _5a8=!dojo.isMozilla;var _5a9=evt[(_5a8?"wheelDelta":"detail")]*(_5a8?1:-1);this._bumpValue(_5a9<0?-1:1,true);},startup:function(){if(this._started){return;}dojo.forEach(this.getChildren(),function(_5aa){if(this[_5aa.container]!=this.containerNode){this[_5aa.container].appendChild(_5aa.domNode);}},this);this.inherited(arguments);},_typematicCallback:function(_5ab,_5ac,e){if(_5ab==-1){this._setValueAttr(this.value,true);}else{this[(_5ac==(this._descending?this.incrementButton:this.decrementButton))?"decrement":"increment"](e);}},postCreate:function(){if(this.showButtons){this.incrementButton.style.display="";this.decrementButton.style.display="";this._connects.push(dijit.typematic.addMouseListener(this.decrementButton,this,"_typematicCallback",25,500));this._connects.push(dijit.typematic.addMouseListener(this.incrementButton,this,"_typematicCallback",25,500));}this.connect(this.domNode,!dojo.isMozilla?"onmousewheel":"DOMMouseScroll","_mouseWheeled");var _5ad=dojo.declare(dijit.form._SliderMover,{widget:this});this._movable=new dojo.dnd.Moveable(this.sliderHandle,{mover:_5ad});var _5ae=dojo.query("label[for=\""+this.id+"\"]");if(_5ae.length){_5ae[0].id=(this.id+"_label");dijit.setWaiState(this.focusNode,"labelledby",_5ae[0].id);}dijit.setWaiState(this.focusNode,"valuemin",this.minimum);dijit.setWaiState(this.focusNode,"valuemax",this.maximum);this.inherited(arguments);this._layoutHackIE7();},destroy:function(){this._movable.destroy();if(this._inProgressAnim&&this._inProgressAnim.status!="stopped"){this._inProgressAnim.stop(true);}this._supportingWidgets=dijit.findWidgets(this.domNode);this.inherited(arguments);}});dojo.declare("dijit.form._SliderMover",dojo.dnd.Mover,{onMouseMove:function(e){var _5af=this.widget;var _5b0=_5af._abspos;if(!_5b0){_5b0=_5af._abspos=dojo.position(_5af.sliderBarContainer,true);_5af._setPixelValue_=dojo.hitch(_5af,"_setPixelValue");_5af._isReversed_=_5af._isReversed();}var _5b1=e[_5af._mousePixelCoord]-_5b0[_5af._startingPixelCoord];_5af._setPixelValue_(_5af._isReversed_?(_5b0[_5af._pixelCount]-_5b1):_5b1,_5b0[_5af._pixelCount],false);},destroy:function(e){dojo.dnd.Mover.prototype.destroy.apply(this,arguments);var _5b2=this.widget;_5b2._abspos=null;_5b2._setValueAttr(_5b2.value,true);}});}if(!dojo._hasResource["dijit.form.VerticalSlider"]){dojo._hasResource["dijit.form.VerticalSlider"]=true;dojo.provide("dijit.form.VerticalSlider");dojo.declare("dijit.form.VerticalSlider",dijit.form.HorizontalSlider,{templateString:dojo.cache("dijit.form","templates/VerticalSlider.html","<table class=\"dijit dijitReset dijitSlider dijitSliderV\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" rules=\"none\" dojoAttachEvent=\"onkeypress:_onKeyPress,onkeyup:_onKeyUp\"\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerV\"\n\t\t\t><div class=\"dijitSliderIncrementIconV\" tabIndex=\"-1\" style=\"display:none\" dojoAttachPoint=\"decrementButton\"><span class=\"dijitSliderButtonInner\">+</span></div\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><center><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperV dijitSliderTopBumper\" dojoAttachEvent=\"onmousedown:_onClkIncBumper\"></div></center\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td dojoAttachPoint=\"leftDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationL dijitSliderDecorationV\"></td\n\t\t><td class=\"dijitReset\" style=\"height:100%;\"\n\t\t\t><input dojoAttachPoint=\"valueNode\" type=\"hidden\" ${!nameAttrSetting}\n\t\t\t/><center class=\"dijitReset dijitSliderBarContainerV\" waiRole=\"presentation\" dojoAttachPoint=\"sliderBarContainer\"\n\t\t\t\t><div waiRole=\"presentation\" dojoAttachPoint=\"remainingBar\" class=\"dijitSliderBar dijitSliderBarV dijitSliderRemainingBar dijitSliderRemainingBarV\" dojoAttachEvent=\"onmousedown:_onBarClick\"><!--#5629--></div\n\t\t\t\t><div waiRole=\"presentation\" dojoAttachPoint=\"progressBar\" class=\"dijitSliderBar dijitSliderBarV dijitSliderProgressBar dijitSliderProgressBarV\" dojoAttachEvent=\"onmousedown:_onBarClick\"\n\t\t\t\t\t><div class=\"dijitSliderMoveable dijitSliderMoveableV\" style=\"vertical-align:top;\"\n\t\t\t\t\t\t><div dojoAttachPoint=\"sliderHandle,focusNode\" class=\"dijitSliderImageHandle dijitSliderImageHandleV\" dojoAttachEvent=\"onmousedown:_onHandleClick\" waiRole=\"slider\" valuemin=\"${minimum}\" valuemax=\"${maximum}\"></div\n\t\t\t\t\t></div\n\t\t\t\t></div\n\t\t\t></center\n\t\t></td\n\t\t><td dojoAttachPoint=\"containerNode,rightDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationR dijitSliderDecorationV\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><center><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperV dijitSliderBottomBumper\" dojoAttachEvent=\"onmousedown:_onClkDecBumper\"></div></center\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerV\"\n\t\t\t><div class=\"dijitSliderDecrementIconV\" tabIndex=\"-1\" style=\"display:none\" dojoAttachPoint=\"incrementButton\"><span class=\"dijitSliderButtonInner\">-</span></div\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n></table>\n"),_mousePixelCoord:"pageY",_pixelCount:"h",_startingPixelCoord:"y",_startingPixelCount:"t",_handleOffsetCoord:"top",_progressPixelSize:"height",_descending:true,_isReversed:function(){return this._descending;}});}if(!dojo._hasResource["dijit.form.HorizontalRule"]){dojo._hasResource["dijit.form.HorizontalRule"]=true;dojo.provide("dijit.form.HorizontalRule");dojo.declare("dijit.form.HorizontalRule",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"dijitRuleContainer dijitRuleContainerH\"></div>",count:3,container:"containerNode",ruleStyle:"",_positionPrefix:"<div class=\"dijitRuleMark dijitRuleMarkH\" style=\"left:",_positionSuffix:"%;",_suffix:"\"></div>",_genHTML:function(pos,ndx){return this._positionPrefix+pos+this._positionSuffix+this.ruleStyle+this._suffix;},_isHorizontal:true,postCreate:function(){var _5b3;if(this.count==1){_5b3=this._genHTML(50,0);}else{var i;var _5b4=100/(this.count-1);if(!this._isHorizontal||this.isLeftToRight()){_5b3=this._genHTML(0,0);for(i=1;i<this.count-1;i++){_5b3+=this._genHTML(_5b4*i,i);}_5b3+=this._genHTML(100,this.count-1);}else{_5b3=this._genHTML(100,0);for(i=1;i<this.count-1;i++){_5b3+=this._genHTML(100-_5b4*i,i);}_5b3+=this._genHTML(0,this.count-1);}}this.domNode.innerHTML=_5b3;}});}if(!dojo._hasResource["dijit.form.VerticalRule"]){dojo._hasResource["dijit.form.VerticalRule"]=true;dojo.provide("dijit.form.VerticalRule");dojo.declare("dijit.form.VerticalRule",dijit.form.HorizontalRule,{templateString:"<div class=\"dijitRuleContainer dijitRuleContainerV\"></div>",_positionPrefix:"<div class=\"dijitRuleMark dijitRuleMarkV\" style=\"top:",_isHorizontal:false});}if(!dojo._hasResource["dijit.form.HorizontalRuleLabels"]){dojo._hasResource["dijit.form.HorizontalRuleLabels"]=true;dojo.provide("dijit.form.HorizontalRuleLabels");dojo.declare("dijit.form.HorizontalRuleLabels",dijit.form.HorizontalRule,{templateString:"<div class=\"dijitRuleContainer dijitRuleContainerH dijitRuleLabelsContainer dijitRuleLabelsContainerH\"></div>",labelStyle:"",labels:[],numericMargin:0,minimum:0,maximum:1,constraints:{pattern:"#%"},_positionPrefix:"<div class=\"dijitRuleLabelContainer dijitRuleLabelContainerH\" style=\"left:",_labelPrefix:"\"><div class=\"dijitRuleLabel dijitRuleLabelH\">",_suffix:"</div></div>",_calcPosition:function(pos){return pos;},_genHTML:function(pos,ndx){return this._positionPrefix+this._calcPosition(pos)+this._positionSuffix+this.labelStyle+this._labelPrefix+this.labels[ndx]+this._suffix;},getLabels:function(){var _5b5=this.labels;if(!_5b5.length){_5b5=dojo.query("> li",this.srcNodeRef).map(function(node){return String(node.innerHTML);});}this.srcNodeRef.innerHTML="";if(!_5b5.length&&this.count>1){var _5b6=this.minimum;var inc=(this.maximum-_5b6)/(this.count-1);for(var i=0;i<this.count;i++){_5b5.push((i<this.numericMargin||i>=(this.count-this.numericMargin))?"":dojo.number.format(_5b6,this.constraints));_5b6+=inc;}}return _5b5;},postMixInProperties:function(){this.inherited(arguments);this.labels=this.getLabels();this.count=this.labels.length;}});}if(!dojo._hasResource["dijit.form.VerticalRuleLabels"]){dojo._hasResource["dijit.form.VerticalRuleLabels"]=true;dojo.provide("dijit.form.VerticalRuleLabels");dojo.declare("dijit.form.VerticalRuleLabels",dijit.form.HorizontalRuleLabels,{templateString:"<div class=\"dijitRuleContainer dijitRuleContainerV dijitRuleLabelsContainer dijitRuleLabelsContainerV\"></div>",_positionPrefix:"<div class=\"dijitRuleLabelContainer dijitRuleLabelContainerV\" style=\"top:",_labelPrefix:"\"><span class=\"dijitRuleLabel dijitRuleLabelV\">",_calcPosition:function(pos){return 100-pos;},_isHorizontal:false});}if(!dojo._hasResource["dijit.form.SimpleTextarea"]){dojo._hasResource["dijit.form.SimpleTextarea"]=true;dojo.provide("dijit.form.SimpleTextarea");dojo.declare("dijit.form.SimpleTextarea",dijit.form.TextBox,{baseClass:"dijitTextBox dijitTextArea",attributeMap:dojo.delegate(dijit.form._FormValueWidget.prototype.attributeMap,{rows:"textbox",cols:"textbox"}),rows:"3",cols:"20",templateString:"<textarea ${!nameAttrSetting} dojoAttachPoint='focusNode,containerNode,textbox' autocomplete='off'></textarea>",postMixInProperties:function(){if(!this.value&&this.srcNodeRef){this.value=this.srcNodeRef.value;}this.inherited(arguments);},filter:function(_5b7){if(_5b7){_5b7=_5b7.replace(/\r/g,"");}return this.inherited(arguments);},postCreate:function(){this.inherited(arguments);if(dojo.isIE&&this.cols){dojo.addClass(this.textbox,"dijitTextAreaCols");}},_previousValue:"",_onInput:function(e){if(this.maxLength){var _5b8=parseInt(this.maxLength);var _5b9=this.textbox.value.replace(/\r/g,"");var _5ba=_5b9.length-_5b8;if(_5ba>0){if(e){dojo.stopEvent(e);}var _5bb=this.textbox;if(_5bb.selectionStart){var pos=_5bb.selectionStart;var cr=0;if(dojo.isOpera){cr=(this.textbox.value.substring(0,pos).match(/\r/g)||[]).length;}this.textbox.value=_5b9.substring(0,pos-_5ba-cr)+_5b9.substring(pos-cr);_5bb.setSelectionRange(pos-_5ba,pos-_5ba);}else{if(dojo.doc.selection){_5bb.focus();var _5bc=dojo.doc.selection.createRange();_5bc.moveStart("character",-_5ba);_5bc.text="";_5bc.select();}}}this._previousValue=this.textbox.value;}this.inherited(arguments);}});}if(!dojo._hasResource["dijit.form.Textarea"]){dojo._hasResource["dijit.form.Textarea"]=true;dojo.provide("dijit.form.Textarea");dojo.declare("dijit.form.Textarea",dijit.form.SimpleTextarea,{cols:"",_previousNewlines:0,_strictMode:(dojo.doc.compatMode!="BackCompat"),_getHeight:function(_5bd){var newH=_5bd.scrollHeight;if(dojo.isIE){newH+=_5bd.offsetHeight-_5bd.clientHeight-((dojo.isIE<8&&this._strictMode)?dojo._getPadBorderExtents(_5bd).h:0);}else{if(dojo.isMoz){newH+=_5bd.offsetHeight-_5bd.clientHeight;}else{if(dojo.isWebKit&&!(dojo.isSafari<4)){newH+=dojo._getBorderExtents(_5bd).h;}else{newH+=dojo._getPadBorderExtents(_5bd).h;}}}return newH;},_estimateHeight:function(_5be){_5be.style.maxHeight="";_5be.style.height="auto";_5be.rows=(_5be.value.match(/\n/g)||[]).length+1;},_needsHelpShrinking:dojo.isMoz||dojo.isWebKit,_onInput:function(){this.inherited(arguments);if(this._busyResizing){return;}this._busyResizing=true;var _5bf=this.textbox;if(_5bf.scrollHeight&&_5bf.offsetHeight&&_5bf.clientHeight){var newH=this._getHeight(_5bf)+"px";if(_5bf.style.height!=newH){_5bf.style.maxHeight=_5bf.style.height=newH;}if(this._needsHelpShrinking){if(this._setTimeoutHandle){clearTimeout(this._setTimeoutHandle);}this._setTimeoutHandle=setTimeout(dojo.hitch(this,"_shrink"),0);}}else{this._estimateHeight(_5bf);}this._busyResizing=false;},_busyResizing:false,_shrink:function(){this._setTimeoutHandle=null;if(this._needsHelpShrinking&&!this._busyResizing){this._busyResizing=true;var _5c0=this.textbox;var _5c1=false;if(_5c0.value==""){_5c0.value=" ";_5c1=true;}var _5c2=_5c0.scrollHeight;if(!_5c2){this._estimateHeight(_5c0);}else{var _5c3=_5c0.style.paddingBottom;var _5c4=dojo._getPadExtents(_5c0);_5c4=_5c4.h-_5c4.t;_5c0.style.paddingBottom=_5c4+1+"px";var newH=this._getHeight(_5c0)-1+"px";if(_5c0.style.maxHeight!=newH){_5c0.style.paddingBottom=_5c4+_5c2+"px";_5c0.scrollTop=0;_5c0.style.maxHeight=this._getHeight(_5c0)-_5c2+"px";}_5c0.style.paddingBottom=_5c3;}if(_5c1){_5c0.value="";}this._busyResizing=false;}},resize:function(){this._onInput();},_setValueAttr:function(){this.inherited(arguments);this.resize();},postCreate:function(){this.inherited(arguments);dojo.style(this.textbox,{overflowY:"hidden",overflowX:"auto",boxSizing:"border-box",MsBoxSizing:"border-box",WebkitBoxSizing:"border-box",MozBoxSizing:"border-box"});this.connect(this.textbox,"onscroll",this._onInput);this.connect(this.textbox,"onresize",this._onInput);this.connect(this.textbox,"onfocus",this._onInput);this._setTimeoutHandle=setTimeout(dojo.hitch(this,"resize"),0);},uninitialize:function(){if(this._setTimeoutHandle){clearTimeout(this._setTimeoutHandle);}this.inherited(arguments);}});}if(!dojo._hasResource["dijit.layout.StackController"]){dojo._hasResource["dijit.layout.StackController"]=true;dojo.provide("dijit.layout.StackController");dojo.declare("dijit.layout.StackController",[dijit._Widget,dijit._Templated,dijit._Container],{templateString:"<span wairole='tablist' dojoAttachEvent='onkeypress' class='dijitStackController'></span>",containerId:"",buttonWidget:"dijit.layout._StackButton",postCreate:function(){dijit.setWaiRole(this.domNode,"tablist");this.pane2button={};this.pane2handles={};this.subscribe(this.containerId+"-startup","onStartup");this.subscribe(this.containerId+"-addChild","onAddChild");this.subscribe(this.containerId+"-removeChild","onRemoveChild");this.subscribe(this.containerId+"-selectChild","onSelectChild");this.subscribe(this.containerId+"-containerKeyPress","onContainerKeyPress");},onStartup:function(info){dojo.forEach(info.children,this.onAddChild,this);if(info.selected){this.onSelectChild(info.selected);}},destroy:function(){for(var pane in this.pane2button){this.onRemoveChild(dijit.byId(pane));}this.inherited(arguments);},onAddChild:function(page,_5c5){var cls=dojo.getObject(this.buttonWidget);var _5c6=new cls({id:this.id+"_"+page.id,label:page.title,dir:page.dir,lang:page.lang,showLabel:page.showTitle,iconClass:page.iconClass,closeButton:page.closable,title:page.tooltip});dijit.setWaiState(_5c6.focusNode,"selected","false");this.pane2handles[page.id]=[this.connect(page,"set",function(name,_5c7){var _5c8={title:"label",showTitle:"showLabel",iconClass:"iconClass",closable:"closeButton",tooltip:"title"}[name];if(_5c8){_5c6.set(_5c8,_5c7);}}),this.connect(_5c6,"onClick",dojo.hitch(this,"onButtonClick",page)),this.connect(_5c6,"onClickCloseButton",dojo.hitch(this,"onCloseButtonClick",page))];this.addChild(_5c6,_5c5);this.pane2button[page.id]=_5c6;page.controlButton=_5c6;if(!this._currentChild){_5c6.focusNode.setAttribute("tabIndex","0");dijit.setWaiState(_5c6.focusNode,"selected","true");this._currentChild=page;}if(!this.isLeftToRight()&&dojo.isIE&&this._rectifyRtlTabList){this._rectifyRtlTabList();}},onRemoveChild:function(page){if(this._currentChild===page){this._currentChild=null;}dojo.forEach(this.pane2handles[page.id],this.disconnect,this);delete this.pane2handles[page.id];var _5c9=this.pane2button[page.id];if(_5c9){this.removeChild(_5c9);delete this.pane2button[page.id];_5c9.destroy();}delete page.controlButton;},onSelectChild:function(page){if(!page){return;}if(this._currentChild){var _5ca=this.pane2button[this._currentChild.id];_5ca.set("checked",false);dijit.setWaiState(_5ca.focusNode,"selected","false");_5ca.focusNode.setAttribute("tabIndex","-1");}var _5cb=this.pane2button[page.id];_5cb.set("checked",true);dijit.setWaiState(_5cb.focusNode,"selected","true");this._currentChild=page;_5cb.focusNode.setAttribute("tabIndex","0");var _5cc=dijit.byId(this.containerId);dijit.setWaiState(_5cc.containerNode,"labelledby",_5cb.id);},onButtonClick:function(page){var _5cd=dijit.byId(this.containerId);_5cd.selectChild(page);},onCloseButtonClick:function(page){var _5ce=dijit.byId(this.containerId);_5ce.closeChild(page);if(this._currentChild){var b=this.pane2button[this._currentChild.id];if(b){dijit.focus(b.focusNode||b.domNode);}}},adjacent:function(_5cf){if(!this.isLeftToRight()&&(!this.tabPosition||/top|bottom/.test(this.tabPosition))){_5cf=!_5cf;}var _5d0=this.getChildren();var _5d1=dojo.indexOf(_5d0,this.pane2button[this._currentChild.id]);var _5d2=_5cf?1:_5d0.length-1;return _5d0[(_5d1+_5d2)%_5d0.length];},onkeypress:function(e){if(this.disabled||e.altKey){return;}var _5d3=null;if(e.ctrlKey||!e._djpage){var k=dojo.keys;switch(e.charOrCode){case k.LEFT_ARROW:case k.UP_ARROW:if(!e._djpage){_5d3=false;}break;case k.PAGE_UP:if(e.ctrlKey){_5d3=false;}break;case k.RIGHT_ARROW:case k.DOWN_ARROW:if(!e._djpage){_5d3=true;}break;case k.PAGE_DOWN:if(e.ctrlKey){_5d3=true;}break;case k.DELETE:if(this._currentChild.closable){this.onCloseButtonClick(this._currentChild);}dojo.stopEvent(e);break;default:if(e.ctrlKey){if(e.charOrCode===k.TAB){this.adjacent(!e.shiftKey).onClick();dojo.stopEvent(e);}else{if(e.charOrCode=="w"){if(this._currentChild.closable){this.onCloseButtonClick(this._currentChild);}dojo.stopEvent(e);}}}}if(_5d3!==null){this.adjacent(_5d3).onClick();dojo.stopEvent(e);}}},onContainerKeyPress:function(info){info.e._djpage=info.page;this.onkeypress(info.e);}});dojo.declare("dijit.layout._StackButton",dijit.form.ToggleButton,{tabIndex:"-1",postCreate:function(evt){dijit.setWaiRole((this.focusNode||this.domNode),"tab");this.inherited(arguments);},onClick:function(evt){dijit.focus(this.focusNode);},onClickCloseButton:function(evt){evt.stopPropagation();}});}if(!dojo._hasResource["dijit.layout.StackContainer"]){dojo._hasResource["dijit.layout.StackContainer"]=true;dojo.provide("dijit.layout.StackContainer");dojo.declare("dijit.layout.StackContainer",dijit.layout._LayoutWidget,{doLayout:true,persist:false,baseClass:"dijitStackContainer",postCreate:function(){this.inherited(arguments);dojo.addClass(this.domNode,"dijitLayoutContainer");dijit.setWaiRole(this.containerNode,"tabpanel");this.connect(this.domNode,"onkeypress",this._onKeyPress);},startup:function(){if(this._started){return;}var _5d4=this.getChildren();dojo.forEach(_5d4,this._setupChild,this);if(this.persist){this.selectedChildWidget=dijit.byId(dojo.cookie(this.id+"_selectedChild"));}else{dojo.some(_5d4,function(_5d5){if(_5d5.selected){this.selectedChildWidget=_5d5;}return _5d5.selected;},this);}var _5d6=this.selectedChildWidget;if(!_5d6&&_5d4[0]){_5d6=this.selectedChildWidget=_5d4[0];_5d6.selected=true;}dojo.publish(this.id+"-startup",[{children:_5d4,selected:_5d6}]);this.inherited(arguments);},resize:function(){var _5d7=this.selectedChildWidget;if(_5d7&&!this._hasBeenShown){this._hasBeenShown=true;this._showChild(_5d7);}this.inherited(arguments);},_setupChild:function(_5d8){this.inherited(arguments);dojo.removeClass(_5d8.domNode,"dijitVisible");dojo.addClass(_5d8.domNode,"dijitHidden");_5d8.domNode.title="";},addChild:function(_5d9,_5da){this.inherited(arguments);if(this._started){dojo.publish(this.id+"-addChild",[_5d9,_5da]);this.layout();if(!this.selectedChildWidget){this.selectChild(_5d9);}}},removeChild:function(page){this.inherited(arguments);if(this._started){dojo.publish(this.id+"-removeChild",[page]);}if(this._beingDestroyed){return;}if(this.selectedChildWidget===page){this.selectedChildWidget=undefined;if(this._started){var _5db=this.getChildren();if(_5db.length){this.selectChild(_5db[0]);}}}if(this._started){this.layout();}},selectChild:function(page,_5dc){page=dijit.byId(page);if(this.selectedChildWidget!=page){this._transition(page,this.selectedChildWidget,_5dc);this.selectedChildWidget=page;dojo.publish(this.id+"-selectChild",[page]);if(this.persist){dojo.cookie(this.id+"_selectedChild",this.selectedChildWidget.id);}}},_transition:function(_5dd,_5de){if(_5de){this._hideChild(_5de);}this._showChild(_5dd);if(_5dd.resize){if(this.doLayout){_5dd.resize(this._containerContentBox||this._contentBox);}else{_5dd.resize();}}},_adjacent:function(_5df){var _5e0=this.getChildren();var _5e1=dojo.indexOf(_5e0,this.selectedChildWidget);_5e1+=_5df?1:_5e0.length-1;return _5e0[_5e1%_5e0.length];},forward:function(){this.selectChild(this._adjacent(true),true);},back:function(){this.selectChild(this._adjacent(false),true);},_onKeyPress:function(e){dojo.publish(this.id+"-containerKeyPress",[{e:e,page:this}]);},layout:function(){if(this.doLayout&&this.selectedChildWidget&&this.selectedChildWidget.resize){this.selectedChildWidget.resize(this._containerContentBox||this._contentBox);}},_showChild:function(page){var _5e2=this.getChildren();page.isFirstChild=(page==_5e2[0]);page.isLastChild=(page==_5e2[_5e2.length-1]);page.selected=true;dojo.removeClass(page.domNode,"dijitHidden");dojo.addClass(page.domNode,"dijitVisible");page._onShow();},_hideChild:function(page){page.selected=false;dojo.removeClass(page.domNode,"dijitVisible");dojo.addClass(page.domNode,"dijitHidden");page.onHide();},closeChild:function(page){var _5e3=page.onClose(this,page);if(_5e3){this.removeChild(page);page.destroyRecursive();}},destroyDescendants:function(_5e4){dojo.forEach(this.getChildren(),function(_5e5){this.removeChild(_5e5);_5e5.destroyRecursive(_5e4);},this);}});dojo.extend(dijit._Widget,{selected:false,closable:false,iconClass:"",showTitle:true});}if(!dojo._hasResource["dijit.layout.AccordionPane"]){dojo._hasResource["dijit.layout.AccordionPane"]=true;dojo.provide("dijit.layout.AccordionPane");dojo.declare("dijit.layout.AccordionPane",dijit.layout.ContentPane,{constructor:function(){dojo.deprecated("dijit.layout.AccordionPane deprecated, use ContentPane instead","","2.0");},onSelected:function(){}});}if(!dojo._hasResource["dijit.layout.AccordionContainer"]){dojo._hasResource["dijit.layout.AccordionContainer"]=true;dojo.provide("dijit.layout.AccordionContainer");dojo.declare("dijit.layout.AccordionContainer",dijit.layout.StackContainer,{duration:dijit.defaultDuration,buttonWidget:"dijit.layout._AccordionButton",_verticalSpace:0,baseClass:"dijitAccordionContainer",postCreate:function(){this.domNode.style.overflow="hidden";this.inherited(arguments);dijit.setWaiRole(this.domNode,"tablist");},startup:function(){if(this._started){return;}this.inherited(arguments);if(this.selectedChildWidget){var _5e6=this.selectedChildWidget.containerNode.style;_5e6.display="";_5e6.overflow="auto";this.selectedChildWidget._wrapperWidget.set("selected",true);}},_getTargetHeight:function(node){var cs=dojo.getComputedStyle(node);return Math.max(this._verticalSpace-dojo._getPadBorderExtents(node,cs).h-dojo._getMarginExtents(node,cs).h,0);},layout:function(){var _5e7=this.selectedChildWidget;if(!_5e7){return;}var _5e8=_5e7._wrapperWidget.domNode,_5e9=dojo._getMarginExtents(_5e8),_5ea=dojo._getPadBorderExtents(_5e8),_5eb=this._contentBox;var _5ec=0;dojo.forEach(this.getChildren(),function(_5ed){if(_5ed!=_5e7){_5ec+=dojo.marginBox(_5ed._wrapperWidget.domNode).h;}});this._verticalSpace=_5eb.h-_5ec-_5e9.h-_5ea.h-_5e7._buttonWidget.getTitleHeight();this._containerContentBox={h:this._verticalSpace,w:this._contentBox.w-_5e9.w-_5ea.w};if(_5e7){_5e7.resize(this._containerContentBox);}},_setupChild:function(_5ee){_5ee._wrapperWidget=new dijit.layout._AccordionInnerContainer({contentWidget:_5ee,buttonWidget:this.buttonWidget,id:_5ee.id+"_wrapper",dir:_5ee.dir,lang:_5ee.lang,parent:this});this.inherited(arguments);},addChild:function(_5ef,_5f0){if(this._started){dojo.place(_5ef.domNode,this.containerNode,_5f0);if(!_5ef._started){_5ef.startup();}this._setupChild(_5ef);dojo.publish(this.id+"-addChild",[_5ef,_5f0]);this.layout();if(!this.selectedChildWidget){this.selectChild(_5ef);}}else{this.inherited(arguments);}},removeChild:function(_5f1){_5f1._wrapperWidget.destroy();delete _5f1._wrapperWidget;dojo.removeClass(_5f1.domNode,"dijitHidden");this.inherited(arguments);},getChildren:function(){return dojo.map(this.inherited(arguments),function(_5f2){return _5f2.declaredClass=="dijit.layout._AccordionInnerContainer"?_5f2.contentWidget:_5f2;},this);},destroy:function(){dojo.forEach(this.getChildren(),function(_5f3){_5f3._wrapperWidget.destroy();});this.inherited(arguments);},_transition:function(_5f4,_5f5,_5f6){if(this._inTransition){return;}var _5f7=[];var _5f8=this._verticalSpace;if(_5f4){_5f4._wrapperWidget.set("selected",true);this._showChild(_5f4);if(this.doLayout&&_5f4.resize){_5f4.resize(this._containerContentBox);}var _5f9=_5f4.domNode;dojo.addClass(_5f9,"dijitVisible");dojo.removeClass(_5f9,"dijitHidden");if(_5f6){var _5fa=_5f9.style.overflow;_5f9.style.overflow="hidden";_5f7.push(dojo.animateProperty({node:_5f9,duration:this.duration,properties:{height:{start:1,end:this._getTargetHeight(_5f9)}},onEnd:function(){_5f9.style.overflow=_5fa;if(dojo.isIE){setTimeout(function(){dojo.removeClass(_5f9.parentNode,"dijitAccordionInnerContainerFocused");setTimeout(function(){dojo.addClass(_5f9.parentNode,"dijitAccordionInnerContainerFocused");},0);},0);}}}));}}if(_5f5){_5f5._wrapperWidget.set("selected",false);var _5fb=_5f5.domNode;if(_5f6){var _5fc=_5fb.style.overflow;_5fb.style.overflow="hidden";_5f7.push(dojo.animateProperty({node:_5fb,duration:this.duration,properties:{height:{start:this._getTargetHeight(_5fb),end:1}},onEnd:function(){dojo.addClass(_5fb,"dijitHidden");dojo.removeClass(_5fb,"dijitVisible");_5fb.style.overflow=_5fc;if(_5f5.onHide){_5f5.onHide();}}}));}else{dojo.addClass(_5fb,"dijitHidden");dojo.removeClass(_5fb,"dijitVisible");if(_5f5.onHide){_5f5.onHide();}}}if(_5f6){this._inTransition=true;var _5fd=dojo.fx.combine(_5f7);_5fd.onEnd=dojo.hitch(this,function(){delete this._inTransition;});_5fd.play();}},_onKeyPress:function(e,_5fe){if(this._inTransition||this.disabled||e.altKey||!(_5fe||e.ctrlKey)){if(this._inTransition){dojo.stopEvent(e);}return;}var k=dojo.keys,c=e.charOrCode;if((_5fe&&(c==k.LEFT_ARROW||c==k.UP_ARROW))||(e.ctrlKey&&c==k.PAGE_UP)){this._adjacent(false)._buttonWidget._onTitleClick();dojo.stopEvent(e);}else{if((_5fe&&(c==k.RIGHT_ARROW||c==k.DOWN_ARROW))||(e.ctrlKey&&(c==k.PAGE_DOWN||c==k.TAB))){this._adjacent(true)._buttonWidget._onTitleClick();dojo.stopEvent(e);}}}});dojo.declare("dijit.layout._AccordionInnerContainer",[dijit._Widget,dijit._CssStateMixin],{baseClass:"dijitAccordionInnerContainer",isContainer:true,isLayoutContainer:true,buildRendering:function(){this.domNode=dojo.place("<div class='"+this.baseClass+"'>",this.contentWidget.domNode,"after");var _5ff=this.contentWidget,cls=dojo.getObject(this.buttonWidget);this.button=_5ff._buttonWidget=(new cls({contentWidget:_5ff,label:_5ff.title,title:_5ff.tooltip,dir:_5ff.dir,lang:_5ff.lang,iconClass:_5ff.iconClass,id:_5ff.id+"_button",parent:this.parent})).placeAt(this.domNode);dojo.place(this.contentWidget.domNode,this.domNode);},postCreate:function(){this.inherited(arguments);this.connect(this.contentWidget,"set",function(name,_600){var _601={title:"label",tooltip:"title",iconClass:"iconClass"}[name];if(_601){this.button.set(_601,_600);}},this);},_setSelectedAttr:function(_602){this.selected=_602;this.button.set("selected",_602);if(_602){var cw=this.contentWidget;if(cw.onSelected){cw.onSelected();}}},startup:function(){this.contentWidget.startup();},destroy:function(){this.button.destroyRecursive();delete this.contentWidget._buttonWidget;delete this.contentWidget._wrapperWidget;this.inherited(arguments);},destroyDescendants:function(){this.contentWidget.destroyRecursive();}});dojo.declare("dijit.layout._AccordionButton",[dijit._Widget,dijit._Templated,dijit._CssStateMixin],{templateString:dojo.cache("dijit.layout","templates/AccordionButton.html","<div dojoAttachEvent='onclick:_onTitleClick' class='dijitAccordionTitle'>\n\t<div dojoAttachPoint='titleNode,focusNode' dojoAttachEvent='onkeypress:_onTitleKeyPress'\n\t\t\tclass='dijitAccordionTitleFocus' wairole=\"tab\" waiState=\"expanded-false\"\n\t\t><span class='dijitInline dijitAccordionArrow' waiRole=\"presentation\"></span\n\t\t><span class='arrowTextUp' waiRole=\"presentation\">+</span\n\t\t><span class='arrowTextDown' waiRole=\"presentation\">-</span\n\t\t><img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon\" dojoAttachPoint='iconNode' style=\"vertical-align: middle\" waiRole=\"presentation\"/>\n\t\t<span waiRole=\"presentation\" dojoAttachPoint='titleTextNode' class='dijitAccordionText'></span>\n\t</div>\n</div>\n"),attributeMap:dojo.mixin(dojo.clone(dijit.layout.ContentPane.prototype.attributeMap),{label:{node:"titleTextNode",type:"innerHTML"},title:{node:"titleTextNode",type:"attribute",attribute:"title"},iconClass:{node:"iconNode",type:"class"}}),baseClass:"dijitAccordionTitle",getParent:function(){return this.parent;},postCreate:function(){this.inherited(arguments);dojo.setSelectable(this.domNode,false);var _603=dojo.attr(this.domNode,"id").replace(" ","_");dojo.attr(this.titleTextNode,"id",_603+"_title");dijit.setWaiState(this.focusNode,"labelledby",dojo.attr(this.titleTextNode,"id"));},getTitleHeight:function(){return dojo.marginBox(this.domNode).h;},_onTitleClick:function(){var _604=this.getParent();if(!_604._inTransition){_604.selectChild(this.contentWidget,true);dijit.focus(this.focusNode);}},_onTitleKeyPress:function(evt){return this.getParent()._onKeyPress(evt,this.contentWidget);},_setSelectedAttr:function(_605){this.selected=_605;dijit.setWaiState(this.focusNode,"expanded",_605);dijit.setWaiState(this.focusNode,"selected",_605);this.focusNode.setAttribute("tabIndex",_605?"0":"-1");}});}if(!dojo._hasResource["dijit.layout.BorderContainer"]){dojo._hasResource["dijit.layout.BorderContainer"]=true;dojo.provide("dijit.layout.BorderContainer");dojo.declare("dijit.layout.BorderContainer",dijit.layout._LayoutWidget,{design:"headline",gutters:true,liveSplitters:true,persist:false,baseClass:"dijitBorderContainer",_splitterClass:"dijit.layout._Splitter",postMixInProperties:function(){if(!this.gutters){this.baseClass+="NoGutter";}this.inherited(arguments);},postCreate:function(){this.inherited(arguments);this._splitters={};this._splitterThickness={};},startup:function(){if(this._started){return;}dojo.forEach(this.getChildren(),this._setupChild,this);this.inherited(arguments);},_setupChild:function(_606){var _607=_606.region;if(_607){this.inherited(arguments);dojo.addClass(_606.domNode,this.baseClass+"Pane");var ltr=this.isLeftToRight();if(_607=="leading"){_607=ltr?"left":"right";}if(_607=="trailing"){_607=ltr?"right":"left";}this["_"+_607]=_606.domNode;this["_"+_607+"Widget"]=_606;if((_606.splitter||this.gutters)&&!this._splitters[_607]){var _608=dojo.getObject(_606.splitter?this._splitterClass:"dijit.layout._Gutter");var _609=new _608({id:_606.id+"_splitter",container:this,child:_606,region:_607,live:this.liveSplitters});_609.isSplitter=true;this._splitters[_607]=_609.domNode;dojo.place(this._splitters[_607],_606.domNode,"after");_609.startup();}_606.region=_607;}},_computeSplitterThickness:function(_60a){this._splitterThickness[_60a]=this._splitterThickness[_60a]||dojo.marginBox(this._splitters[_60a])[(/top|bottom/.test(_60a)?"h":"w")];},layout:function(){for(var _60b in this._splitters){this._computeSplitterThickness(_60b);}this._layoutChildren();},addChild:function(_60c,_60d){this.inherited(arguments);if(this._started){this.layout();}},removeChild:function(_60e){var _60f=_60e.region;var _610=this._splitters[_60f];if(_610){dijit.byNode(_610).destroy();delete this._splitters[_60f];delete this._splitterThickness[_60f];}this.inherited(arguments);delete this["_"+_60f];delete this["_"+_60f+"Widget"];if(this._started){this._layoutChildren();}dojo.removeClass(_60e.domNode,this.baseClass+"Pane");},getChildren:function(){return dojo.filter(this.inherited(arguments),function(_611){return !_611.isSplitter;});},getSplitter:function(_612){var _613=this._splitters[_612];return _613?dijit.byNode(_613):null;},resize:function(_614,_615){if(!this.cs||!this.pe){var node=this.domNode;this.cs=dojo.getComputedStyle(node);this.pe=dojo._getPadExtents(node,this.cs);this.pe.r=dojo._toPixelValue(node,this.cs.paddingRight);this.pe.b=dojo._toPixelValue(node,this.cs.paddingBottom);dojo.style(node,"padding","0px");}this.inherited(arguments);},_layoutChildren:function(_616,_617){if(!this._borderBox||!this._borderBox.h){return;}var _618=(this.design=="sidebar");var _619=0,_61a=0,_61b=0,_61c=0;var _61d={},_61e={},_61f={},_620={},_621=(this._center&&this._center.style)||{};var _622=/left|right/.test(_616);var _623=!_616||(!_622&&!_618);var _624=!_616||(_622&&_618);if(this._top){_61d=(_616=="top"||_624)&&this._top.style;_619=_616=="top"?_617:dojo.marginBox(this._top).h;}if(this._left){_61e=(_616=="left"||_623)&&this._left.style;_61b=_616=="left"?_617:dojo.marginBox(this._left).w;}if(this._right){_61f=(_616=="right"||_623)&&this._right.style;_61c=_616=="right"?_617:dojo.marginBox(this._right).w;}if(this._bottom){_620=(_616=="bottom"||_624)&&this._bottom.style;_61a=_616=="bottom"?_617:dojo.marginBox(this._bottom).h;}var _625=this._splitters;var _626=_625.top,_627=_625.bottom,_628=_625.left,_629=_625.right;var _62a=this._splitterThickness;var _62b=_62a.top||0,_62c=_62a.left||0,_62d=_62a.right||0,_62e=_62a.bottom||0;if(_62c>50||_62d>50){setTimeout(dojo.hitch(this,function(){this._splitterThickness={};for(var _62f in this._splitters){this._computeSplitterThickness(_62f);}this._layoutChildren();}),50);return false;}var pe=this.pe;var _630={left:(_618?_61b+_62c:0)+pe.l+"px",right:(_618?_61c+_62d:0)+pe.r+"px"};if(_626){dojo.mixin(_626.style,_630);_626.style.top=_619+pe.t+"px";}if(_627){dojo.mixin(_627.style,_630);_627.style.bottom=_61a+pe.b+"px";}_630={top:(_618?0:_619+_62b)+pe.t+"px",bottom:(_618?0:_61a+_62e)+pe.b+"px"};if(_628){dojo.mixin(_628.style,_630);_628.style.left=_61b+pe.l+"px";}if(_629){dojo.mixin(_629.style,_630);_629.style.right=_61c+pe.r+"px";}dojo.mixin(_621,{top:pe.t+_619+_62b+"px",left:pe.l+_61b+_62c+"px",right:pe.r+_61c+_62d+"px",bottom:pe.b+_61a+_62e+"px"});var _631={top:_618?pe.t+"px":_621.top,bottom:_618?pe.b+"px":_621.bottom};dojo.mixin(_61e,_631);dojo.mixin(_61f,_631);_61e.left=pe.l+"px";_61f.right=pe.r+"px";_61d.top=pe.t+"px";_620.bottom=pe.b+"px";if(_618){_61d.left=_620.left=_61b+_62c+pe.l+"px";_61d.right=_620.right=_61c+_62d+pe.r+"px";}else{_61d.left=_620.left=pe.l+"px";_61d.right=_620.right=pe.r+"px";}var _632=this._borderBox.h-pe.t-pe.b,_633=_632-(_619+_62b+_61a+_62e),_634=_618?_632:_633;var _635=this._borderBox.w-pe.l-pe.r,_636=_635-(_61b+_62c+_61c+_62d),_637=_618?_636:_635;var dim={top:{w:_637,h:_619},bottom:{w:_637,h:_61a},left:{w:_61b,h:_634},right:{w:_61c,h:_634},center:{h:_633,w:_636}};if(_616){var _638=this["_"+_616+"Widget"],mb={};mb[/top|bottom/.test(_616)?"h":"w"]=_617;_638.resize?_638.resize(mb,dim[_638.region]):dojo.marginBox(_638.domNode,mb);}var _639=dojo.isIE<8||(dojo.isIE&&dojo.isQuirks)||dojo.some(this.getChildren(),function(_63a){return _63a.domNode.tagName=="TEXTAREA"||_63a.domNode.tagName=="INPUT";});if(_639){var _63b=function(_63c,_63d,_63e){if(_63c){(_63c.resize?_63c.resize(_63d,_63e):dojo.marginBox(_63c.domNode,_63d));}};if(_628){_628.style.height=_634;}if(_629){_629.style.height=_634;}_63b(this._leftWidget,{h:_634},dim.left);_63b(this._rightWidget,{h:_634},dim.right);if(_626){_626.style.width=_637;}if(_627){_627.style.width=_637;}_63b(this._topWidget,{w:_637},dim.top);_63b(this._bottomWidget,{w:_637},dim.bottom);_63b(this._centerWidget,dim.center);}else{var _63f=!_616||(/top|bottom/.test(_616)&&this.design!="sidebar"),_640=!_616||(/left|right/.test(_616)&&this.design=="sidebar"),_641={center:true,left:_63f,right:_63f,top:_640,bottom:_640};dojo.forEach(this.getChildren(),function(_642){if(_642.resize&&_641[_642.region]){_642.resize(null,dim[_642.region]);}},this);}},destroy:function(){for(var _643 in this._splitters){var _644=this._splitters[_643];dijit.byNode(_644).destroy();dojo.destroy(_644);}delete this._splitters;delete this._splitterThickness;this.inherited(arguments);}});dojo.extend(dijit._Widget,{region:"",splitter:false,minSize:0,maxSize:Infinity});dojo.declare("dijit.layout._Splitter",[dijit._Widget,dijit._Templated],{live:true,templateString:"<div class=\"dijitSplitter\" dojoAttachEvent=\"onkeypress:_onKeyPress,onmousedown:_startDrag,onmouseenter:_onMouse,onmouseleave:_onMouse\" tabIndex=\"0\" waiRole=\"separator\"><div class=\"dijitSplitterThumb\"></div></div>",postCreate:function(){this.inherited(arguments);this.horizontal=/top|bottom/.test(this.region);dojo.addClass(this.domNode,"dijitSplitter"+(this.horizontal?"H":"V"));this._factor=/top|left/.test(this.region)?1:-1;this._cookieName=this.container.id+"_"+this.region;if(this.container.persist){var _645=dojo.cookie(this._cookieName);if(_645){this.child.domNode.style[this.horizontal?"height":"width"]=_645;}}},_computeMaxSize:function(){var dim=this.horizontal?"h":"w",_646=this.container._splitterThickness[this.region];var flip={left:"right",right:"left",top:"bottom",bottom:"top",leading:"trailing",trailing:"leading"},_647=this.container["_"+flip[this.region]];var _648=dojo.contentBox(this.container.domNode)[dim]-(_647?dojo.marginBox(_647)[dim]:0)-20-_646*2;return Math.min(this.child.maxSize,_648);},_startDrag:function(e){if(!this.cover){this.cover=dojo.doc.createElement("div");dojo.addClass(this.cover,"dijitSplitterCover");dojo.place(this.cover,this.child.domNode,"after");}dojo.addClass(this.cover,"dijitSplitterCoverActive");if(this.fake){dojo.destroy(this.fake);}if(!(this._resize=this.live)){(this.fake=this.domNode.cloneNode(true)).removeAttribute("id");dojo.addClass(this.domNode,"dijitSplitterShadow");dojo.place(this.fake,this.domNode,"after");}dojo.addClass(this.domNode,"dijitSplitterActive");dojo.addClass(this.domNode,"dijitSplitter"+(this.horizontal?"H":"V")+"Active");if(this.fake){dojo.removeClass(this.fake,"dijitSplitterHover");dojo.removeClass(this.fake,"dijitSplitter"+(this.horizontal?"H":"V")+"Hover");}var _649=this._factor,max=this._computeMaxSize(),min=this.child.minSize||20,_64a=this.horizontal,axis=_64a?"pageY":"pageX",_64b=e[axis],_64c=this.domNode.style,dim=_64a?"h":"w",_64d=dojo.marginBox(this.child.domNode)[dim],_64e=this.region,_64f=parseInt(this.domNode.style[_64e],10),_650=this._resize,_651=this.child.domNode,_652=dojo.hitch(this.container,this.container._layoutChildren),de=dojo.doc;this._handlers=(this._handlers||[]).concat([dojo.connect(de,"onmousemove",this._drag=function(e,_653){var _654=e[axis]-_64b,_655=_649*_654+_64d,_656=Math.max(Math.min(_655,max),min);if(_650||_653){_652(_64e,_656);}_64c[_64e]=_649*_654+_64f+(_656-_655)+"px";}),dojo.connect(de,"ondragstart",dojo.stopEvent),dojo.connect(dojo.body(),"onselectstart",dojo.stopEvent),dojo.connect(de,"onmouseup",this,"_stopDrag")]);dojo.stopEvent(e);},_onMouse:function(e){var o=(e.type=="mouseover"||e.type=="mouseenter");dojo.toggleClass(this.domNode,"dijitSplitterHover",o);dojo.toggleClass(this.domNode,"dijitSplitter"+(this.horizontal?"H":"V")+"Hover",o);},_stopDrag:function(e){try{if(this.cover){dojo.removeClass(this.cover,"dijitSplitterCoverActive");}if(this.fake){dojo.destroy(this.fake);}dojo.removeClass(this.domNode,"dijitSplitterActive");dojo.removeClass(this.domNode,"dijitSplitter"+(this.horizontal?"H":"V")+"Active");dojo.removeClass(this.domNode,"dijitSplitterShadow");this._drag(e);this._drag(e,true);}finally{this._cleanupHandlers();delete this._drag;}if(this.container.persist){dojo.cookie(this._cookieName,this.child.domNode.style[this.horizontal?"height":"width"],{expires:365});}},_cleanupHandlers:function(){dojo.forEach(this._handlers,dojo.disconnect);delete this._handlers;},_onKeyPress:function(e){this._resize=true;var _657=this.horizontal;var tick=1;var dk=dojo.keys;switch(e.charOrCode){case _657?dk.UP_ARROW:dk.LEFT_ARROW:tick*=-1;case _657?dk.DOWN_ARROW:dk.RIGHT_ARROW:break;default:return;}var _658=dojo.marginBox(this.child.domNode)[_657?"h":"w"]+this._factor*tick;this.container._layoutChildren(this.region,Math.max(Math.min(_658,this._computeMaxSize()),this.child.minSize));dojo.stopEvent(e);},destroy:function(){this._cleanupHandlers();delete this.child;delete this.container;delete this.cover;delete this.fake;this.inherited(arguments);}});dojo.declare("dijit.layout._Gutter",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"dijitGutter\" waiRole=\"presentation\"></div>",postCreate:function(){this.horizontal=/top|bottom/.test(this.region);dojo.addClass(this.domNode,"dijitGutter"+(this.horizontal?"H":"V"));}});}if(!dojo._hasResource["dijit.layout.LayoutContainer"]){dojo._hasResource["dijit.layout.LayoutContainer"]=true;dojo.provide("dijit.layout.LayoutContainer");dojo.declare("dijit.layout.LayoutContainer",dijit.layout._LayoutWidget,{baseClass:"dijitLayoutContainer",constructor:function(){dojo.deprecated("dijit.layout.LayoutContainer is deprecated","use BorderContainer instead",2);},layout:function(){dijit.layout.layoutChildren(this.domNode,this._contentBox,this.getChildren());},addChild:function(_659,_65a){this.inherited(arguments);if(this._started){dijit.layout.layoutChildren(this.domNode,this._contentBox,this.getChildren());}},removeChild:function(_65b){this.inherited(arguments);if(this._started){dijit.layout.layoutChildren(this.domNode,this._contentBox,this.getChildren());}}});dojo.extend(dijit._Widget,{layoutAlign:"none"});}if(!dojo._hasResource["dijit.layout.LinkPane"]){dojo._hasResource["dijit.layout.LinkPane"]=true;dojo.provide("dijit.layout.LinkPane");dojo.declare("dijit.layout.LinkPane",[dijit.layout.ContentPane,dijit._Templated],{templateString:"<div class=\"dijitLinkPane\" dojoAttachPoint=\"containerNode\"></div>",postMixInProperties:function(){if(this.srcNodeRef){this.title+=this.srcNodeRef.innerHTML;}this.inherited(arguments);},_fillContent:function(_65c){}});}if(!dojo._hasResource["dijit.layout.SplitContainer"]){dojo._hasResource["dijit.layout.SplitContainer"]=true;dojo.provide("dijit.layout.SplitContainer");dojo.declare("dijit.layout.SplitContainer",dijit.layout._LayoutWidget,{constructor:function(){dojo.deprecated("dijit.layout.SplitContainer is deprecated","use BorderContainer with splitter instead",2);},activeSizing:false,sizerWidth:7,orientation:"horizontal",persist:true,baseClass:"dijitSplitContainer",postMixInProperties:function(){this.inherited("postMixInProperties",arguments);this.isHorizontal=(this.orientation=="horizontal");},postCreate:function(){this.inherited(arguments);this.sizers=[];if(dojo.isMozilla){this.domNode.style.overflow="-moz-scrollbars-none";}if(typeof this.sizerWidth=="object"){try{this.sizerWidth=parseInt(this.sizerWidth.toString());}catch(e){this.sizerWidth=7;}}var _65d=dojo.doc.createElement("div");this.virtualSizer=_65d;_65d.style.position="relative";_65d.style.zIndex=10;_65d.className=this.isHorizontal?"dijitSplitContainerVirtualSizerH":"dijitSplitContainerVirtualSizerV";this.domNode.appendChild(_65d);dojo.setSelectable(_65d,false);},destroy:function(){delete this.virtualSizer;dojo.forEach(this._ownconnects,dojo.disconnect);this.inherited(arguments);},startup:function(){if(this._started){return;}dojo.forEach(this.getChildren(),function(_65e,i,_65f){this._setupChild(_65e);if(i<_65f.length-1){this._addSizer();}},this);if(this.persist){this._restoreState();}this.inherited(arguments);},_setupChild:function(_660){this.inherited(arguments);_660.domNode.style.position="absolute";dojo.addClass(_660.domNode,"dijitSplitPane");},_onSizerMouseDown:function(e){if(e.target.id){for(var i=0;i<this.sizers.length;i++){if(this.sizers[i].id==e.target.id){break;}}if(i<this.sizers.length){this.beginSizing(e,i);}}},_addSizer:function(_661){_661=_661===undefined?this.sizers.length:_661;var _662=dojo.doc.createElement("div");_662.id=dijit.getUniqueId("dijit_layout_SplitterContainer_Splitter");this.sizers.splice(_661,0,_662);this.domNode.appendChild(_662);_662.className=this.isHorizontal?"dijitSplitContainerSizerH":"dijitSplitContainerSizerV";var _663=dojo.doc.createElement("div");_663.className="thumb";_662.appendChild(_663);this.connect(_662,"onmousedown","_onSizerMouseDown");dojo.setSelectable(_662,false);},removeChild:function(_664){if(this.sizers.length){var i=dojo.indexOf(this.getChildren(),_664);if(i!=-1){if(i==this.sizers.length){i--;}dojo.destroy(this.sizers[i]);this.sizers.splice(i,1);}}this.inherited(arguments);if(this._started){this.layout();}},addChild:function(_665,_666){this.inherited(arguments);if(this._started){var _667=this.getChildren();if(_667.length>1){this._addSizer(_666);}this.layout();}},layout:function(){this.paneWidth=this._contentBox.w;this.paneHeight=this._contentBox.h;var _668=this.getChildren();if(!_668.length){return;}var _669=this.isHorizontal?this.paneWidth:this.paneHeight;if(_668.length>1){_669-=this.sizerWidth*(_668.length-1);}var _66a=0;dojo.forEach(_668,function(_66b){_66a+=_66b.sizeShare;});var _66c=_669/_66a;var _66d=0;dojo.forEach(_668.slice(0,_668.length-1),function(_66e){var size=Math.round(_66c*_66e.sizeShare);_66e.sizeActual=size;_66d+=size;});_668[_668.length-1].sizeActual=_669-_66d;this._checkSizes();var pos=0;var size=_668[0].sizeActual;this._movePanel(_668[0],pos,size);_668[0].position=pos;pos+=size;if(!this.sizers){return;}dojo.some(_668.slice(1),function(_66f,i){if(!this.sizers[i]){return true;}this._moveSlider(this.sizers[i],pos,this.sizerWidth);this.sizers[i].position=pos;pos+=this.sizerWidth;size=_66f.sizeActual;this._movePanel(_66f,pos,size);_66f.position=pos;pos+=size;},this);},_movePanel:function(_670,pos,size){if(this.isHorizontal){_670.domNode.style.left=pos+"px";_670.domNode.style.top=0;var box={w:size,h:this.paneHeight};if(_670.resize){_670.resize(box);}else{dojo.marginBox(_670.domNode,box);}}else{_670.domNode.style.left=0;_670.domNode.style.top=pos+"px";var box={w:this.paneWidth,h:size};if(_670.resize){_670.resize(box);}else{dojo.marginBox(_670.domNode,box);}}},_moveSlider:function(_671,pos,size){if(this.isHorizontal){_671.style.left=pos+"px";_671.style.top=0;dojo.marginBox(_671,{w:size,h:this.paneHeight});}else{_671.style.left=0;_671.style.top=pos+"px";dojo.marginBox(_671,{w:this.paneWidth,h:size});}},_growPane:function(_672,pane){if(_672>0){if(pane.sizeActual>pane.sizeMin){if((pane.sizeActual-pane.sizeMin)>_672){pane.sizeActual=pane.sizeActual-_672;_672=0;}else{_672-=pane.sizeActual-pane.sizeMin;pane.sizeActual=pane.sizeMin;}}}return _672;},_checkSizes:function(){var _673=0;var _674=0;var _675=this.getChildren();dojo.forEach(_675,function(_676){_674+=_676.sizeActual;_673+=_676.sizeMin;});if(_673<=_674){var _677=0;dojo.forEach(_675,function(_678){if(_678.sizeActual<_678.sizeMin){_677+=_678.sizeMin-_678.sizeActual;_678.sizeActual=_678.sizeMin;}});if(_677>0){var list=this.isDraggingLeft?_675.reverse():_675;dojo.forEach(list,function(_679){_677=this._growPane(_677,_679);},this);}}else{dojo.forEach(_675,function(_67a){_67a.sizeActual=Math.round(_674*(_67a.sizeMin/_673));});}},beginSizing:function(e,i){var _67b=this.getChildren();this.paneBefore=_67b[i];this.paneAfter=_67b[i+1];this.isSizing=true;this.sizingSplitter=this.sizers[i];if(!this.cover){this.cover=dojo.create("div",{style:{position:"absolute",zIndex:5,top:0,left:0,width:"100%",height:"100%"}},this.domNode);}else{this.cover.style.zIndex=5;}this.sizingSplitter.style.zIndex=6;this.originPos=dojo.position(_67b[0].domNode,true);if(this.isHorizontal){var _67c=e.layerX||e.offsetX||0;var _67d=e.pageX;this.originPos=this.originPos.x;}else{var _67c=e.layerY||e.offsetY||0;var _67d=e.pageY;this.originPos=this.originPos.y;}this.startPoint=this.lastPoint=_67d;this.screenToClientOffset=_67d-_67c;this.dragOffset=this.lastPoint-this.paneBefore.sizeActual-this.originPos-this.paneBefore.position;if(!this.activeSizing){this._showSizingLine();}this._ownconnects=[];this._ownconnects.push(dojo.connect(dojo.doc.documentElement,"onmousemove",this,"changeSizing"));this._ownconnects.push(dojo.connect(dojo.doc.documentElement,"onmouseup",this,"endSizing"));dojo.stopEvent(e);},changeSizing:function(e){if(!this.isSizing){return;}this.lastPoint=this.isHorizontal?e.pageX:e.pageY;this.movePoint();if(this.activeSizing){this._updateSize();}else{this._moveSizingLine();}dojo.stopEvent(e);},endSizing:function(e){if(!this.isSizing){return;}if(this.cover){this.cover.style.zIndex=-1;}if(!this.activeSizing){this._hideSizingLine();}this._updateSize();this.isSizing=false;if(this.persist){this._saveState(this);}dojo.forEach(this._ownconnects,dojo.disconnect);},movePoint:function(){var p=this.lastPoint-this.screenToClientOffset;var a=p-this.dragOffset;a=this.legaliseSplitPoint(a);p=a+this.dragOffset;this.lastPoint=p+this.screenToClientOffset;},legaliseSplitPoint:function(a){a+=this.sizingSplitter.position;this.isDraggingLeft=!!(a>0);if(!this.activeSizing){var min=this.paneBefore.position+this.paneBefore.sizeMin;if(a<min){a=min;}var max=this.paneAfter.position+(this.paneAfter.sizeActual-(this.sizerWidth+this.paneAfter.sizeMin));if(a>max){a=max;}}a-=this.sizingSplitter.position;this._checkSizes();return a;},_updateSize:function(){var pos=this.lastPoint-this.dragOffset-this.originPos;var _67e=this.paneBefore.position;var _67f=this.paneAfter.position+this.paneAfter.sizeActual;this.paneBefore.sizeActual=pos-_67e;this.paneAfter.position=pos+this.sizerWidth;this.paneAfter.sizeActual=_67f-this.paneAfter.position;dojo.forEach(this.getChildren(),function(_680){_680.sizeShare=_680.sizeActual;});if(this._started){this.layout();}},_showSizingLine:function(){this._moveSizingLine();dojo.marginBox(this.virtualSizer,this.isHorizontal?{w:this.sizerWidth,h:this.paneHeight}:{w:this.paneWidth,h:this.sizerWidth});this.virtualSizer.style.display="block";},_hideSizingLine:function(){this.virtualSizer.style.display="none";},_moveSizingLine:function(){var pos=(this.lastPoint-this.startPoint)+this.sizingSplitter.position;dojo.style(this.virtualSizer,(this.isHorizontal?"left":"top"),pos+"px");},_getCookieName:function(i){return this.id+"_"+i;},_restoreState:function(){dojo.forEach(this.getChildren(),function(_681,i){var _682=this._getCookieName(i);var _683=dojo.cookie(_682);if(_683){var pos=parseInt(_683);if(typeof pos=="number"){_681.sizeShare=pos;}}},this);},_saveState:function(){if(!this.persist){return;}dojo.forEach(this.getChildren(),function(_684,i){dojo.cookie(this._getCookieName(i),_684.sizeShare,{expires:365});},this);}});dojo.extend(dijit._Widget,{sizeMin:10,sizeShare:10});}if(!dojo._hasResource["dijit.layout._TabContainerBase"]){dojo._hasResource["dijit.layout._TabContainerBase"]=true;dojo.provide("dijit.layout._TabContainerBase");dojo.declare("dijit.layout._TabContainerBase",[dijit.layout.StackContainer,dijit._Templated],{tabPosition:"top",baseClass:"dijitTabContainer",tabStrip:false,nested:false,templateString:dojo.cache("dijit.layout","templates/TabContainer.html","<div class=\"dijitTabContainer\">\n\t<div class=\"dijitTabListWrapper\" dojoAttachPoint=\"tablistNode\"></div>\n\t<div dojoAttachPoint=\"tablistSpacer\" class=\"dijitTabSpacer ${baseClass}-spacer\"></div>\n\t<div class=\"dijitTabPaneWrapper ${baseClass}-container\" dojoAttachPoint=\"containerNode\"></div>\n</div>\n"),postMixInProperties:function(){this.baseClass+=this.tabPosition.charAt(0).toUpperCase()+this.tabPosition.substr(1).replace(/-.*/,"");this.srcNodeRef&&dojo.style(this.srcNodeRef,"visibility","hidden");this.inherited(arguments);},postCreate:function(){this.inherited(arguments);this.tablist=this._makeController(this.tablistNode);if(!this.doLayout){dojo.addClass(this.domNode,"dijitTabContainerNoLayout");}if(this.nested){dojo.addClass(this.domNode,"dijitTabContainerNested");dojo.addClass(this.tablist.containerNode,"dijitTabContainerTabListNested");dojo.addClass(this.tablistSpacer,"dijitTabContainerSpacerNested");dojo.addClass(this.containerNode,"dijitTabPaneWrapperNested");}else{dojo.addClass(this.domNode,"tabStrip-"+(this.tabStrip?"enabled":"disabled"));}},_setupChild:function(tab){dojo.addClass(tab.domNode,"dijitTabPane");this.inherited(arguments);},startup:function(){if(this._started){return;}this.tablist.startup();this.inherited(arguments);},layout:function(){if(!this._contentBox||typeof (this._contentBox.l)=="undefined"){return;}var sc=this.selectedChildWidget;if(this.doLayout){var _685=this.tabPosition.replace(/-h/,"");this.tablist.layoutAlign=_685;var _686=[this.tablist,{domNode:this.tablistSpacer,layoutAlign:_685},{domNode:this.containerNode,layoutAlign:"client"}];dijit.layout.layoutChildren(this.domNode,this._contentBox,_686);this._containerContentBox=dijit.layout.marginBox2contentBox(this.containerNode,_686[2]);if(sc&&sc.resize){sc.resize(this._containerContentBox);}}else{if(this.tablist.resize){this.tablist.resize({w:dojo.contentBox(this.domNode).w});}if(sc&&sc.resize){sc.resize();}}},destroy:function(){if(this.tablist){this.tablist.destroy();}this.inherited(arguments);}});}if(!dojo._hasResource["dijit.layout.TabController"]){dojo._hasResource["dijit.layout.TabController"]=true;dojo.provide("dijit.layout.TabController");dojo.declare("dijit.layout.TabController",dijit.layout.StackController,{templateString:"<div wairole='tablist' dojoAttachEvent='onkeypress:onkeypress'></div>",tabPosition:"top",buttonWidget:"dijit.layout._TabButton",_rectifyRtlTabList:function(){if(0>=this.tabPosition.indexOf("-h")){return;}if(!this.pane2button){return;}var _687=0;for(var pane in this.pane2button){var ow=this.pane2button[pane].innerDiv.scrollWidth;_687=Math.max(_687,ow);}for(pane in this.pane2button){this.pane2button[pane].innerDiv.style.width=_687+"px";}}});dojo.declare("dijit.layout._TabButton",dijit.layout._StackButton,{baseClass:"dijitTab",cssStateNodes:{closeNode:"dijitTabCloseButton"},templateString:dojo.cache("dijit.layout","templates/_TabButton.html","<div waiRole=\"presentation\" dojoAttachPoint=\"titleNode\" dojoAttachEvent='onclick:onClick'>\n <div waiRole=\"presentation\" class='dijitTabInnerDiv' dojoAttachPoint='innerDiv'>\n <div waiRole=\"presentation\" class='dijitTabContent' dojoAttachPoint='tabContent'>\n \t<div waiRole=\"presentation\" dojoAttachPoint='focusNode'>\n\t\t <img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon\" dojoAttachPoint='iconNode' />\n\t\t <span dojoAttachPoint='containerNode' class='tabLabel'></span>\n\t\t <span class=\"dijitInline dijitTabCloseButton dijitTabCloseIcon\" dojoAttachPoint='closeNode'\n\t\t \t\tdojoAttachEvent='onclick: onClickCloseButton' waiRole=\"presentation\">\n\t\t <span dojoAttachPoint='closeText' class='dijitTabCloseText'>x</span\n\t\t ></span>\n\t\t\t</div>\n </div>\n </div>\n</div>\n"),scrollOnFocus:false,postMixInProperties:function(){if(!this.iconClass){this.iconClass="dijitTabButtonIcon";}},postCreate:function(){this.inherited(arguments);dojo.setSelectable(this.containerNode,false);if(this.iconNode.className=="dijitTabButtonIcon"){dojo.style(this.iconNode,"width","1px");}},startup:function(){this.inherited(arguments);var n=this.domNode;setTimeout(function(){n.className=n.className;},1);},_setCloseButtonAttr:function(disp){this.closeButton=disp;dojo.toggleClass(this.innerDiv,"dijitClosable",disp);this.closeNode.style.display=disp?"":"none";if(disp){var _688=dojo.i18n.getLocalization("dijit","common");if(this.closeNode){dojo.attr(this.closeNode,"title",_688.itemClose);}var _688=dojo.i18n.getLocalization("dijit","common");this._closeMenu=new dijit.Menu({id:this.id+"_Menu",dir:this.dir,lang:this.lang,targetNodeIds:[this.domNode]});this._closeMenu.addChild(new dijit.MenuItem({label:_688.itemClose,dir:this.dir,lang:this.lang,onClick:dojo.hitch(this,"onClickCloseButton")}));}else{if(this._closeMenu){this._closeMenu.destroyRecursive();delete this._closeMenu;}}},_setLabelAttr:function(_689){this.inherited(arguments);if(this.showLabel==false&&!this.params.title){this.iconNode.alt=dojo.trim(this.containerNode.innerText||this.containerNode.textContent||"");}},destroy:function(){if(this._closeMenu){this._closeMenu.destroyRecursive();delete this._closeMenu;}this.inherited(arguments);}});}if(!dojo._hasResource["dijit.layout.ScrollingTabController"]){dojo._hasResource["dijit.layout.ScrollingTabController"]=true;dojo.provide("dijit.layout.ScrollingTabController");dojo.declare("dijit.layout.ScrollingTabController",dijit.layout.TabController,{templateString:dojo.cache("dijit.layout","templates/ScrollingTabController.html","<div class=\"dijitTabListContainer-${tabPosition}\" style=\"visibility:hidden\">\n\t<div dojoType=\"dijit.layout._ScrollingTabControllerButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_menuBtn\" iconClass=\"dijitTabStripMenuIcon\"\n\t\t\tdojoAttachPoint=\"_menuBtn\" showLabel=false>▼</div>\n\t<div dojoType=\"dijit.layout._ScrollingTabControllerButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_leftBtn\" iconClass=\"dijitTabStripSlideLeftIcon\"\n\t\t\tdojoAttachPoint=\"_leftBtn\" dojoAttachEvent=\"onClick: doSlideLeft\" showLabel=false>◀</div>\n\t<div dojoType=\"dijit.layout._ScrollingTabControllerButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_rightBtn\" iconClass=\"dijitTabStripSlideRightIcon\"\n\t\t\tdojoAttachPoint=\"_rightBtn\" dojoAttachEvent=\"onClick: doSlideRight\" showLabel=false>▶</div>\n\t<div class='dijitTabListWrapper' dojoAttachPoint='tablistWrapper'>\n\t\t<div wairole='tablist' dojoAttachEvent='onkeypress:onkeypress'\n\t\t\t\tdojoAttachPoint='containerNode' class='nowrapTabStrip'></div>\n\t</div>\n</div>\n"),useMenu:true,useSlider:true,tabStripClass:"",widgetsInTemplate:true,_minScroll:5,attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{"class":"containerNode"}),postCreate:function(){this.inherited(arguments);var n=this.domNode;this.scrollNode=this.tablistWrapper;this._initButtons();if(!this.tabStripClass){this.tabStripClass="dijitTabContainer"+this.tabPosition.charAt(0).toUpperCase()+this.tabPosition.substr(1).replace(/-.*/,"")+"None";dojo.addClass(n,"tabStrip-disabled");}dojo.addClass(this.tablistWrapper,this.tabStripClass);},onStartup:function(){this.inherited(arguments);dojo.style(this.domNode,"visibility","visible");this._postStartup=true;},onAddChild:function(page,_68a){this.inherited(arguments);var _68b;if(this.useMenu){var _68c=this.containerId;_68b=new dijit.MenuItem({id:page.id+"_stcMi",label:page.title,dir:page.dir,lang:page.lang,onClick:dojo.hitch(this,function(){var _68d=dijit.byId(_68c);_68d.selectChild(page);})});this._menuChildren[page.id]=_68b;this._menu.addChild(_68b,_68a);}this.pane2handles[page.id].push(this.connect(this.pane2button[page.id],"set",function(name,_68e){if(this._postStartup){if(name=="label"){if(_68b){_68b.set(name,_68e);}if(this._dim){this.resize(this._dim);}}}}));dojo.style(this.containerNode,"width",(dojo.style(this.containerNode,"width")+200)+"px");},onRemoveChild:function(page,_68f){var _690=this.pane2button[page.id];if(this._selectedTab===_690.domNode){this._selectedTab=null;}if(this.useMenu&&page&&page.id&&this._menuChildren[page.id]){this._menu.removeChild(this._menuChildren[page.id]);this._menuChildren[page.id].destroy();delete this._menuChildren[page.id];}this.inherited(arguments);},_initButtons:function(){this._menuChildren={};this._btnWidth=0;this._buttons=dojo.query("> .tabStripButton",this.domNode).filter(function(btn){if((this.useMenu&&btn==this._menuBtn.domNode)||(this.useSlider&&(btn==this._rightBtn.domNode||btn==this._leftBtn.domNode))){this._btnWidth+=dojo.marginBox(btn).w;return true;}else{dojo.style(btn,"display","none");return false;}},this);if(this.useMenu){this._menu=new dijit.Menu({id:this.id+"_menu",dir:this.dir,lang:this.lang,targetNodeIds:[this._menuBtn.domNode],leftClickToOpen:true,refocus:false});this._supportingWidgets.push(this._menu);}},_getTabsWidth:function(){var _691=this.getChildren();if(_691.length){var _692=_691[this.isLeftToRight()?0:_691.length-1].domNode,_693=_691[this.isLeftToRight()?_691.length-1:0].domNode;return _693.offsetLeft+dojo.style(_693,"width")-_692.offsetLeft;}else{return 0;}},_enableBtn:function(_694){var _695=this._getTabsWidth();_694=_694||dojo.style(this.scrollNode,"width");return _695>0&&_694<_695;},resize:function(dim){if(this.domNode.offsetWidth==0){return;}this._dim=dim;this.scrollNode.style.height="auto";this._contentBox=dijit.layout.marginBox2contentBox(this.domNode,{h:0,w:dim.w});this._contentBox.h=this.scrollNode.offsetHeight;dojo.contentBox(this.domNode,this._contentBox);var _696=this._enableBtn(this._contentBox.w);this._buttons.style("display",_696?"":"none");this._leftBtn.layoutAlign="left";this._rightBtn.layoutAlign="right";this._menuBtn.layoutAlign=this.isLeftToRight()?"right":"left";dijit.layout.layoutChildren(this.domNode,this._contentBox,[this._menuBtn,this._leftBtn,this._rightBtn,{domNode:this.scrollNode,layoutAlign:"client"}]);if(this._selectedTab){if(this._anim&&this._anim.status()=="playing"){this._anim.stop();}var w=this.scrollNode,sl=this._convertToScrollLeft(this._getScrollForSelectedTab());w.scrollLeft=sl;}this._setButtonClass(this._getScroll());this._postResize=true;},_getScroll:function(){var sl=(this.isLeftToRight()||dojo.isIE<8||(dojo.isIE&&dojo.isQuirks)||dojo.isWebKit)?this.scrollNode.scrollLeft:dojo.style(this.containerNode,"width")-dojo.style(this.scrollNode,"width")+(dojo.isIE==8?-1:1)*this.scrollNode.scrollLeft;return sl;},_convertToScrollLeft:function(val){if(this.isLeftToRight()||dojo.isIE<8||(dojo.isIE&&dojo.isQuirks)||dojo.isWebKit){return val;}else{var _697=dojo.style(this.containerNode,"width")-dojo.style(this.scrollNode,"width");return (dojo.isIE==8?-1:1)*(val-_697);}},onSelectChild:function(page){var tab=this.pane2button[page.id];if(!tab||!page){return;}var node=tab.domNode;if(this._postResize&&node!=this._selectedTab){this._selectedTab=node;var sl=this._getScroll();if(sl>node.offsetLeft||sl+dojo.style(this.scrollNode,"width")<node.offsetLeft+dojo.style(node,"width")){this.createSmoothScroll().play();}}this.inherited(arguments);},_getScrollBounds:function(){var _698=this.getChildren(),_699=dojo.style(this.scrollNode,"width"),_69a=dojo.style(this.containerNode,"width"),_69b=_69a-_699,_69c=this._getTabsWidth();if(_698.length&&_69c>_699){return {min:this.isLeftToRight()?0:_698[_698.length-1].domNode.offsetLeft,max:this.isLeftToRight()?(_698[_698.length-1].domNode.offsetLeft+dojo.style(_698[_698.length-1].domNode,"width"))-_699:_69b};}else{var _69d=this.isLeftToRight()?0:_69b;return {min:_69d,max:_69d};}},_getScrollForSelectedTab:function(){var w=this.scrollNode,n=this._selectedTab,_69e=dojo.style(this.scrollNode,"width"),_69f=this._getScrollBounds();var pos=(n.offsetLeft+dojo.style(n,"width")/2)-_69e/2;pos=Math.min(Math.max(pos,_69f.min),_69f.max);return pos;},createSmoothScroll:function(x){if(arguments.length>0){var _6a0=this._getScrollBounds();x=Math.min(Math.max(x,_6a0.min),_6a0.max);}else{x=this._getScrollForSelectedTab();}if(this._anim&&this._anim.status()=="playing"){this._anim.stop();}var self=this,w=this.scrollNode,anim=new dojo._Animation({beforeBegin:function(){if(this.curve){delete this.curve;}var oldS=w.scrollLeft,newS=self._convertToScrollLeft(x);anim.curve=new dojo._Line(oldS,newS);},onAnimate:function(val){w.scrollLeft=val;}});this._anim=anim;this._setButtonClass(x);return anim;},_getBtnNode:function(e){var n=e.target;while(n&&!dojo.hasClass(n,"tabStripButton")){n=n.parentNode;}return n;},doSlideRight:function(e){this.doSlide(1,this._getBtnNode(e));},doSlideLeft:function(e){this.doSlide(-1,this._getBtnNode(e));},doSlide:function(_6a1,node){if(node&&dojo.hasClass(node,"dijitTabDisabled")){return;}var _6a2=dojo.style(this.scrollNode,"width");var d=(_6a2*0.75)*_6a1;var to=this._getScroll()+d;this._setButtonClass(to);this.createSmoothScroll(to).play();},_setButtonClass:function(_6a3){var _6a4=this._getScrollBounds();this._leftBtn.set("disabled",_6a3<=_6a4.min);this._rightBtn.set("disabled",_6a3>=_6a4.max);}});dojo.declare("dijit.layout._ScrollingTabControllerButton",dijit.form.Button,{baseClass:"dijitTab tabStripButton",templateString:dojo.cache("dijit.layout","templates/_ScrollingTabControllerButton.html","<div dojoAttachEvent=\"onclick:_onButtonClick\">\n\t<div waiRole=\"presentation\" class=\"dijitTabInnerDiv\" dojoattachpoint=\"innerDiv,focusNode\">\n\t\t<div waiRole=\"presentation\" class=\"dijitTabContent dijitButtonContents\" dojoattachpoint=\"tabContent\">\n\t\t\t<img waiRole=\"presentation\" alt=\"\" src=\"${_blankGif}\" class=\"dijitTabStripIcon\" dojoAttachPoint=\"iconNode\"/>\n\t\t\t<span dojoAttachPoint=\"containerNode,titleNode\" class=\"dijitButtonText\"></span>\n\t\t</div>\n\t</div>\n</div>\n"),tabIndex:"-1"});}if(!dojo._hasResource["dijit.layout.TabContainer"]){dojo._hasResource["dijit.layout.TabContainer"]=true;dojo.provide("dijit.layout.TabContainer");dojo.declare("dijit.layout.TabContainer",dijit.layout._TabContainerBase,{useMenu:true,useSlider:true,controllerWidget:"",_makeController:function(_6a5){var cls=this.baseClass+"-tabs"+(this.doLayout?"":" dijitTabNoLayout"),_6a6=dojo.getObject(this.controllerWidget);return new _6a6({id:this.id+"_tablist",dir:this.dir,lang:this.lang,tabPosition:this.tabPosition,doLayout:this.doLayout,containerId:this.id,"class":cls,nested:this.nested,useMenu:this.useMenu,useSlider:this.useSlider,tabStripClass:this.tabStrip?this.baseClass+(this.tabStrip?"":"No")+"Strip":null},_6a5);},postMixInProperties:function(){this.inherited(arguments);if(!this.controllerWidget){this.controllerWidget=(this.tabPosition=="top"||this.tabPosition=="bottom")&&!this.nested?"dijit.layout.ScrollingTabController":"dijit.layout.TabController";}}});}if(!dojo._hasResource["dijit.dijit-all"]){dojo._hasResource["dijit.dijit-all"]=true;console.warn("dijit-all may include much more code than your application actually requires. We strongly recommend that you investigate a custom build or the web build tool");dojo.provide("dijit.dijit-all");}dojo.i18n._preloadLocalizations("dijit.nls.dijit-all",["ROOT","ar","ca","cs","da","de","de-de","el","en","en-gb","en-us","es","es-es","fi","fi-fi","fr","fr-fr","he","he-il","hu","it","it-it","ja","ja-jp","ko","ko-kr","nb","nl","nl-nl","pl","pt","pt-br","pt-pt","ru","sk","sl","sv","th","tr","xx","zh","zh-cn","zh-tw"]); diff --git a/lib/dijit/dijit-all.js.uncompressed.js b/lib/dijit/dijit-all.js.uncompressed.js new file mode 100644 index 000000000..1ce604128 --- /dev/null +++ b/lib/dijit/dijit-all.js.uncompressed.js @@ -0,0 +1,28580 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + +/* + This is an optimized version of Dojo, built for deployment and not for + development. To get sources and documentation, please visit: + + http://dojotoolkit.org +*/ + +if(!dojo._hasResource["dojo.colors"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.colors"] = true; +dojo.provide("dojo.colors"); + +//TODO: this module appears to break naming conventions + +/*===== +dojo.colors = { + // summary: Color utilities +} +=====*/ + +(function(){ + // this is a standard conversion prescribed by the CSS3 Color Module + var hue2rgb = function(m1, m2, h){ + if(h < 0){ ++h; } + if(h > 1){ --h; } + var h6 = 6 * h; + if(h6 < 1){ return m1 + (m2 - m1) * h6; } + if(2 * h < 1){ return m2; } + if(3 * h < 2){ return m1 + (m2 - m1) * (2 / 3 - h) * 6; } + return m1; + }; + + dojo.colorFromRgb = function(/*String*/ color, /*dojo.Color?*/ obj){ + // summary: + // get rgb(a) array from css-style color declarations + // description: + // this function can handle all 4 CSS3 Color Module formats: rgb, + // rgba, hsl, hsla, including rgb(a) with percentage values. + var m = color.toLowerCase().match(/^(rgba?|hsla?)\(([\s\.\-,%0-9]+)\)/); + if(m){ + var c = m[2].split(/\s*,\s*/), l = c.length, t = m[1], a; + if((t == "rgb" && l == 3) || (t == "rgba" && l == 4)){ + var r = c[0]; + if(r.charAt(r.length - 1) == "%"){ + // 3 rgb percentage values + a = dojo.map(c, function(x){ + return parseFloat(x) * 2.56; + }); + if(l == 4){ a[3] = c[3]; } + return dojo.colorFromArray(a, obj); // dojo.Color + } + return dojo.colorFromArray(c, obj); // dojo.Color + } + if((t == "hsl" && l == 3) || (t == "hsla" && l == 4)){ + // normalize hsl values + var H = ((parseFloat(c[0]) % 360) + 360) % 360 / 360, + S = parseFloat(c[1]) / 100, + L = parseFloat(c[2]) / 100, + // calculate rgb according to the algorithm + // recommended by the CSS3 Color Module + m2 = L <= 0.5 ? L * (S + 1) : L + S - L * S, + m1 = 2 * L - m2; + a = [ + hue2rgb(m1, m2, H + 1 / 3) * 256, + hue2rgb(m1, m2, H) * 256, + hue2rgb(m1, m2, H - 1 / 3) * 256, + 1 + ]; + if(l == 4){ a[3] = c[3]; } + return dojo.colorFromArray(a, obj); // dojo.Color + } + } + return null; // dojo.Color + }; + + var confine = function(c, low, high){ + // summary: + // sanitize a color component by making sure it is a number, + // and clamping it to valid values + c = Number(c); + return isNaN(c) ? high : c < low ? low : c > high ? high : c; // Number + }; + + dojo.Color.prototype.sanitize = function(){ + // summary: makes sure that the object has correct attributes + var t = this; + t.r = Math.round(confine(t.r, 0, 255)); + t.g = Math.round(confine(t.g, 0, 255)); + t.b = Math.round(confine(t.b, 0, 255)); + t.a = confine(t.a, 0, 1); + return this; // dojo.Color + }; +})(); + + +dojo.colors.makeGrey = function(/*Number*/ g, /*Number?*/ a){ + // summary: creates a greyscale color with an optional alpha + return dojo.colorFromArray([g, g, g, a]); +}; + +// mixin all CSS3 named colors not already in _base, along with SVG 1.0 variant spellings +dojo.mixin(dojo.Color.named, { + aliceblue: [240,248,255], + antiquewhite: [250,235,215], + aquamarine: [127,255,212], + azure: [240,255,255], + beige: [245,245,220], + bisque: [255,228,196], + blanchedalmond: [255,235,205], + blueviolet: [138,43,226], + brown: [165,42,42], + burlywood: [222,184,135], + cadetblue: [95,158,160], + chartreuse: [127,255,0], + chocolate: [210,105,30], + coral: [255,127,80], + cornflowerblue: [100,149,237], + cornsilk: [255,248,220], + crimson: [220,20,60], + cyan: [0,255,255], + darkblue: [0,0,139], + darkcyan: [0,139,139], + darkgoldenrod: [184,134,11], + darkgray: [169,169,169], + darkgreen: [0,100,0], + darkgrey: [169,169,169], + darkkhaki: [189,183,107], + darkmagenta: [139,0,139], + darkolivegreen: [85,107,47], + darkorange: [255,140,0], + darkorchid: [153,50,204], + darkred: [139,0,0], + darksalmon: [233,150,122], + darkseagreen: [143,188,143], + darkslateblue: [72,61,139], + darkslategray: [47,79,79], + darkslategrey: [47,79,79], + darkturquoise: [0,206,209], + darkviolet: [148,0,211], + deeppink: [255,20,147], + deepskyblue: [0,191,255], + dimgray: [105,105,105], + dimgrey: [105,105,105], + dodgerblue: [30,144,255], + firebrick: [178,34,34], + floralwhite: [255,250,240], + forestgreen: [34,139,34], + gainsboro: [220,220,220], + ghostwhite: [248,248,255], + gold: [255,215,0], + goldenrod: [218,165,32], + greenyellow: [173,255,47], + grey: [128,128,128], + honeydew: [240,255,240], + hotpink: [255,105,180], + indianred: [205,92,92], + indigo: [75,0,130], + ivory: [255,255,240], + khaki: [240,230,140], + lavender: [230,230,250], + lavenderblush: [255,240,245], + lawngreen: [124,252,0], + lemonchiffon: [255,250,205], + lightblue: [173,216,230], + lightcoral: [240,128,128], + lightcyan: [224,255,255], + lightgoldenrodyellow: [250,250,210], + lightgray: [211,211,211], + lightgreen: [144,238,144], + lightgrey: [211,211,211], + lightpink: [255,182,193], + lightsalmon: [255,160,122], + lightseagreen: [32,178,170], + lightskyblue: [135,206,250], + lightslategray: [119,136,153], + lightslategrey: [119,136,153], + lightsteelblue: [176,196,222], + lightyellow: [255,255,224], + limegreen: [50,205,50], + linen: [250,240,230], + magenta: [255,0,255], + mediumaquamarine: [102,205,170], + mediumblue: [0,0,205], + mediumorchid: [186,85,211], + mediumpurple: [147,112,219], + mediumseagreen: [60,179,113], + mediumslateblue: [123,104,238], + mediumspringgreen: [0,250,154], + mediumturquoise: [72,209,204], + mediumvioletred: [199,21,133], + midnightblue: [25,25,112], + mintcream: [245,255,250], + mistyrose: [255,228,225], + moccasin: [255,228,181], + navajowhite: [255,222,173], + oldlace: [253,245,230], + olivedrab: [107,142,35], + orange: [255,165,0], + orangered: [255,69,0], + orchid: [218,112,214], + palegoldenrod: [238,232,170], + palegreen: [152,251,152], + paleturquoise: [175,238,238], + palevioletred: [219,112,147], + papayawhip: [255,239,213], + peachpuff: [255,218,185], + peru: [205,133,63], + pink: [255,192,203], + plum: [221,160,221], + powderblue: [176,224,230], + rosybrown: [188,143,143], + royalblue: [65,105,225], + saddlebrown: [139,69,19], + salmon: [250,128,114], + sandybrown: [244,164,96], + seagreen: [46,139,87], + seashell: [255,245,238], + sienna: [160,82,45], + skyblue: [135,206,235], + slateblue: [106,90,205], + slategray: [112,128,144], + slategrey: [112,128,144], + snow: [255,250,250], + springgreen: [0,255,127], + steelblue: [70,130,180], + tan: [210,180,140], + thistle: [216,191,216], + tomato: [255,99,71], + transparent: [0, 0, 0, 0], + turquoise: [64,224,208], + violet: [238,130,238], + wheat: [245,222,179], + whitesmoke: [245,245,245], + yellowgreen: [154,205,50] +}); + +} + +if(!dojo._hasResource["dojo.i18n"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.i18n"] = true; +dojo.provide("dojo.i18n"); + +/*===== +dojo.i18n = { + // summary: Utility classes to enable loading of resources for internationalization (i18n) +}; +=====*/ + +dojo.i18n.getLocalization = function(/*String*/packageName, /*String*/bundleName, /*String?*/locale){ + // summary: + // Returns an Object containing the localization for a given resource + // bundle in a package, matching the specified locale. + // description: + // Returns a hash containing name/value pairs in its prototypesuch + // that values can be easily overridden. Throws an exception if the + // bundle is not found. Bundle must have already been loaded by + // `dojo.requireLocalization()` or by a build optimization step. NOTE: + // try not to call this method as part of an object property + // definition (`var foo = { bar: dojo.i18n.getLocalization() }`). In + // some loading situations, the bundle may not be available in time + // for the object definition. Instead, call this method inside a + // function that is run after all modules load or the page loads (like + // in `dojo.addOnLoad()`), or in a widget lifecycle method. + // packageName: + // package which is associated with this resource + // bundleName: + // the base filename of the resource bundle (without the ".js" suffix) + // locale: + // the variant to load (optional). By default, the locale defined by + // the host environment: dojo.locale + + locale = dojo.i18n.normalizeLocale(locale); + + // look for nearest locale match + var elements = locale.split('-'); + var module = [packageName,"nls",bundleName].join('.'); + var bundle = dojo._loadedModules[module]; + if(bundle){ + var localization; + for(var i = elements.length; i > 0; i--){ + var loc = elements.slice(0, i).join('_'); + if(bundle[loc]){ + localization = bundle[loc]; + break; + } + } + if(!localization){ + localization = bundle.ROOT; + } + + // make a singleton prototype so that the caller won't accidentally change the values globally + if(localization){ + var clazz = function(){}; + clazz.prototype = localization; + return new clazz(); // Object + } + } + + throw new Error("Bundle not found: " + bundleName + " in " + packageName+" , locale=" + locale); +}; + +dojo.i18n.normalizeLocale = function(/*String?*/locale){ + // summary: + // Returns canonical form of locale, as used by Dojo. + // + // description: + // All variants are case-insensitive and are separated by '-' as specified in [RFC 3066](http://www.ietf.org/rfc/rfc3066.txt). + // If no locale is specified, the dojo.locale is returned. dojo.locale is defined by + // the user agent's locale unless overridden by djConfig. + + var result = locale ? locale.toLowerCase() : dojo.locale; + if(result == "root"){ + result = "ROOT"; + } + return result; // String +}; + +dojo.i18n._requireLocalization = function(/*String*/moduleName, /*String*/bundleName, /*String?*/locale, /*String?*/availableFlatLocales){ + // summary: + // See dojo.requireLocalization() + // description: + // Called by the bootstrap, but factored out so that it is only + // included in the build when needed. + + var targetLocale = dojo.i18n.normalizeLocale(locale); + var bundlePackage = [moduleName, "nls", bundleName].join("."); + // NOTE: + // When loading these resources, the packaging does not match what is + // on disk. This is an implementation detail, as this is just a + // private data structure to hold the loaded resources. e.g. + // `tests/hello/nls/en-us/salutations.js` is loaded as the object + // `tests.hello.nls.salutations.en_us={...}` The structure on disk is + // intended to be most convenient for developers and translators, but + // in memory it is more logical and efficient to store in a different + // order. Locales cannot use dashes, since the resulting path will + // not evaluate as valid JS, so we translate them to underscores. + + //Find the best-match locale to load if we have available flat locales. + var bestLocale = ""; + if(availableFlatLocales){ + var flatLocales = availableFlatLocales.split(","); + for(var i = 0; i < flatLocales.length; i++){ + //Locale must match from start of string. + //Using ["indexOf"] so customBase builds do not see + //this as a dojo._base.array dependency. + if(targetLocale["indexOf"](flatLocales[i]) == 0){ + if(flatLocales[i].length > bestLocale.length){ + bestLocale = flatLocales[i]; + } + } + } + if(!bestLocale){ + bestLocale = "ROOT"; + } + } + + //See if the desired locale is already loaded. + var tempLocale = availableFlatLocales ? bestLocale : targetLocale; + var bundle = dojo._loadedModules[bundlePackage]; + var localizedBundle = null; + if(bundle){ + if(dojo.config.localizationComplete && bundle._built){return;} + var jsLoc = tempLocale.replace(/-/g, '_'); + var translationPackage = bundlePackage+"."+jsLoc; + localizedBundle = dojo._loadedModules[translationPackage]; + } + + if(!localizedBundle){ + bundle = dojo["provide"](bundlePackage); + var syms = dojo._getModuleSymbols(moduleName); + var modpath = syms.concat("nls").join("/"); + var parent; + + dojo.i18n._searchLocalePath(tempLocale, availableFlatLocales, function(loc){ + var jsLoc = loc.replace(/-/g, '_'); + var translationPackage = bundlePackage + "." + jsLoc; + var loaded = false; + if(!dojo._loadedModules[translationPackage]){ + // Mark loaded whether it's found or not, so that further load attempts will not be made + dojo["provide"](translationPackage); + var module = [modpath]; + if(loc != "ROOT"){module.push(loc);} + module.push(bundleName); + var filespec = module.join("/") + '.js'; + loaded = dojo._loadPath(filespec, null, function(hash){ + // Use singleton with prototype to point to parent bundle, then mix-in result from loadPath + var clazz = function(){}; + clazz.prototype = parent; + bundle[jsLoc] = new clazz(); + for(var j in hash){ bundle[jsLoc][j] = hash[j]; } + }); + }else{ + loaded = true; + } + if(loaded && bundle[jsLoc]){ + parent = bundle[jsLoc]; + }else{ + bundle[jsLoc] = parent; + } + + if(availableFlatLocales){ + //Stop the locale path searching if we know the availableFlatLocales, since + //the first call to this function will load the only bundle that is needed. + return true; + } + }); + } + + //Save the best locale bundle as the target locale bundle when we know the + //the available bundles. + if(availableFlatLocales && targetLocale != bestLocale){ + bundle[targetLocale.replace(/-/g, '_')] = bundle[bestLocale.replace(/-/g, '_')]; + } +}; + +(function(){ + // If other locales are used, dojo.requireLocalization should load them as + // well, by default. + // + // Override dojo.requireLocalization to do load the default bundle, then + // iterate through the extraLocale list and load those translations as + // well, unless a particular locale was requested. + + var extra = dojo.config.extraLocale; + if(extra){ + if(!extra instanceof Array){ + extra = [extra]; + } + + var req = dojo.i18n._requireLocalization; + dojo.i18n._requireLocalization = function(m, b, locale, availableFlatLocales){ + req(m,b,locale, availableFlatLocales); + if(locale){return;} + for(var i=0; i<extra.length; i++){ + req(m,b,extra[i], availableFlatLocales); + } + }; + } +})(); + +dojo.i18n._searchLocalePath = function(/*String*/locale, /*Boolean*/down, /*Function*/searchFunc){ + // summary: + // A helper method to assist in searching for locale-based resources. + // Will iterate through the variants of a particular locale, either up + // or down, executing a callback function. For example, "en-us" and + // true will try "en-us" followed by "en" and finally "ROOT". + + locale = dojo.i18n.normalizeLocale(locale); + + var elements = locale.split('-'); + var searchlist = []; + for(var i = elements.length; i > 0; i--){ + searchlist.push(elements.slice(0, i).join('-')); + } + searchlist.push(false); + if(down){searchlist.reverse();} + + for(var j = searchlist.length - 1; j >= 0; j--){ + var loc = searchlist[j] || "ROOT"; + var stop = searchFunc(loc); + if(stop){ break; } + } +}; + +dojo.i18n._preloadLocalizations = function(/*String*/bundlePrefix, /*Array*/localesGenerated){ + // summary: + // Load built, flattened resource bundles, if available for all + // locales used in the page. Only called by built layer files. + + function preload(locale){ + locale = dojo.i18n.normalizeLocale(locale); + dojo.i18n._searchLocalePath(locale, true, function(loc){ + for(var i=0; i<localesGenerated.length;i++){ + if(localesGenerated[i] == loc){ + dojo["require"](bundlePrefix+"_"+loc); + return true; // Boolean + } + } + return false; // Boolean + }); + } + preload(); + var extra = dojo.config.extraLocale||[]; + for(var i=0; i<extra.length; i++){ + preload(extra[i]); + } +}; + +} + +if(!dojo._hasResource["dijit._PaletteMixin"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit._PaletteMixin"] = true; +dojo.provide("dijit._PaletteMixin"); + + +dojo.declare("dijit._PaletteMixin", + [dijit._CssStateMixin], + { + // summary: + // A keyboard accessible palette, for picking a color/emoticon/etc. + // description: + // A mixin for a grid showing various entities, so the user can pick a certain entity. + + // defaultTimeout: Number + // Number of milliseconds before a held key or button becomes typematic + defaultTimeout: 500, + + // timeoutChangeRate: Number + // Fraction of time used to change the typematic timer between events + // 1.0 means that each typematic event fires at defaultTimeout intervals + // < 1.0 means that each typematic event fires at an increasing faster rate + timeoutChangeRate: 0.90, + + // value: String + // Currently selected color/emoticon/etc. + value: null, + + // _selectedCell: [private] Integer + // Index of the currently selected cell. Initially, none selected + _selectedCell: -1, + + // _currentFocus: [private] DomNode + // The currently focused cell (if the palette itself has focus), or otherwise + // the cell to be focused when the palette itself gets focus. + // Different from value, which represents the selected (i.e. clicked) cell. +/*===== + _currentFocus: null, +=====*/ + + // _xDim: [protected] Integer + // This is the number of cells horizontally across. +/*===== + _xDim: null, +=====*/ + + // _yDim: [protected] Integer + // This is the number of cells vertically down. +/*===== + _yDim: null, +=====*/ + + // tabIndex: String + // Widget tab index. + tabIndex: "0", + + // cellClass: [protected] String + // CSS class applied to each cell in the palette + cellClass: "dijitPaletteCell", + + // dyeClass: [protected] String + // Name of javascript class for Object created for each cell of the palette. + // dyeClass should implements dijit.Dye interface + dyeClass: '', + + _preparePalette: function(choices, titles) { + // summary: + // Subclass must call _preparePalette() from postCreate(), passing in the tooltip + // for each cell + // choices: String[][] + // id's for each cell of the palette, used to create Dye JS object for each cell + // titles: String[] + // Localized tooltip for each cell + + this._cells = []; + var url = this._blankGif; + + var dyeClassObj = dojo.getObject(this.dyeClass); + + for(var row=0; row < choices.length; row++){ + var rowNode = dojo.create("tr", {tabIndex: "-1"}, this.gridNode); + for(var col=0; col < choices[row].length; col++){ + var value = choices[row][col]; + if(value){ + var cellObject = new dyeClassObj(value); + + var cellNode = dojo.create("td", { + "class": this.cellClass, + tabIndex: "-1", + title: titles[value] + }); + + // prepare cell inner structure + cellObject.fillCell(cellNode, url); + + this.connect(cellNode, "ondijitclick", "_onCellClick"); + this._trackMouseState(cellNode, this.cellClass); + + dojo.place(cellNode, rowNode); + + cellNode.index = this._cells.length; + + // save cell info into _cells + this._cells.push({node:cellNode, dye:cellObject}); + } + } + } + this._xDim = choices[0].length; + this._yDim = choices.length; + + // Now set all events + // The palette itself is navigated to with the tab key on the keyboard + // Keyboard navigation within the Palette is with the arrow keys + // Spacebar selects the cell. + // For the up key the index is changed by negative the x dimension. + + var keyIncrementMap = { + UP_ARROW: -this._xDim, + // The down key the index is increase by the x dimension. + DOWN_ARROW: this._xDim, + // Right and left move the index by 1. + RIGHT_ARROW: this.isLeftToRight() ? 1 : -1, + LEFT_ARROW: this.isLeftToRight() ? -1 : 1 + }; + for(var key in keyIncrementMap){ + this._connects.push( + dijit.typematic.addKeyListener( + this.domNode, + {charOrCode:dojo.keys[key], ctrlKey:false, altKey:false, shiftKey:false}, + this, + function(){ + var increment = keyIncrementMap[key]; + return function(count){ this._navigateByKey(increment, count); }; + }(), + this.timeoutChangeRate, + this.defaultTimeout + ) + ); + } + }, + + postCreate: function(){ + this.inherited(arguments); + + // Set initial navigable node. + this._setCurrent(this._cells[0].node); + }, + + focus: function(){ + // summary: + // Focus this widget. Puts focus on the most recently focused cell. + + // The cell already has tabIndex set, just need to set CSS and focus it + dijit.focus(this._currentFocus); + }, + + _onCellClick: function(/*Event*/ evt){ + // summary: + // Handler for click, enter key & space key. Selects the cell. + // evt: + // The event. + // tags: + // private + + var target = evt.currentTarget, + value = this._getDye(target).getValue(); + + // First focus the clicked cell, and then send onChange() notification. + // onChange() (via _setValueAttr) must be after the focus call, because + // it may trigger a refocus to somewhere else (like the Editor content area), and that + // second focus should win. + // Use setTimeout because IE doesn't like changing focus inside of an event handler. + this._setCurrent(target); + setTimeout(dojo.hitch(this, function(){ + dijit.focus(target); + this._setValueAttr(value, true); + })); + + // workaround bug where hover class is not removed on popup because the popup is + // closed and then there's no onblur event on the cell + dojo.removeClass(target, "dijitPaletteCellHover"); + + dojo.stopEvent(evt); + }, + + _setCurrent: function(/*DomNode*/ node){ + // summary: + // Sets which node is the focused cell. + // description: + // At any point in time there's exactly one + // cell with tabIndex != -1. If focus is inside the palette then + // focus is on that cell. + // + // After calling this method, arrow key handlers and mouse click handlers + // should focus the cell in a setTimeout(). + // tags: + // protected + if("_currentFocus" in this){ + // Remove tabIndex on old cell + dojo.attr(this._currentFocus, "tabIndex", "-1"); + } + + // Set tabIndex of new cell + this._currentFocus = node; + if(node){ + dojo.attr(node, "tabIndex", this.tabIndex); + } + }, + + _setValueAttr: function(value, priorityChange){ + // summary: + // This selects a cell. It triggers the onChange event. + // value: String value of the cell to select + // tags: + // protected + // priorityChange: + // Optional parameter used to tell the select whether or not to fire + // onChange event. + + // clear old value and selected cell + this.value = null; + if(this._selectedCell >= 0){ + dojo.removeClass(this._cells[this._selectedCell].node, "dijitPaletteCellSelected"); + } + this._selectedCell = -1; + + // search for cell matching specified value + if(value){ + for(var i = 0; i < this._cells.length; i++){ + if(value == this._cells[i].dye.getValue()){ + this._selectedCell = i; + this.value = value; + + dojo.addClass(this._cells[i].node, "dijitPaletteCellSelected"); + + if(priorityChange || priorityChange === undefined){ + this.onChange(value); + } + + break; + } + } + } + }, + + onChange: function(value){ + // summary: + // Callback when a cell is selected. + // value: String + // Value corresponding to cell. + }, + + _navigateByKey: function(increment, typeCount){ + // summary: + // This is the callback for typematic. + // It changes the focus and the highlighed cell. + // increment: + // How much the key is navigated. + // typeCount: + // How many times typematic has fired. + // tags: + // private + + // typecount == -1 means the key is released. + if(typeCount == -1){ return; } + + var newFocusIndex = this._currentFocus.index + increment; + if(newFocusIndex < this._cells.length && newFocusIndex > -1){ + var focusNode = this._cells[newFocusIndex].node; + this._setCurrent(focusNode); + + // Actually focus the node, for the benefit of screen readers. + // Use setTimeout because IE doesn't like changing focus inside of an event handler + setTimeout(dojo.hitch(dijit, "focus", focusNode), 0); + } + }, + + _getDye: function(/*DomNode*/ cell){ + // summary: + // Get JS object for given cell DOMNode + + return this._cells[cell.index].dye; + } +}); + +/*===== +dojo.declare("dijit.Dye", + null, + { + // summary: + // Interface for the JS Object associated with a palette cell (i.e. DOMNode) + + constructor: function(alias){ + // summary: + // Initialize according to value or alias like "white" + // alias: String + }, + + getValue: function(){ + // summary: + // Return "value" of cell; meaning of "value" varies by subclass. + // description: + // For example color hex value, emoticon ascii value etc, entity hex value. + }, + + fillCell: function(cell, blankGif){ + // summary: + // Add cell DOMNode inner structure + // cell: DomNode + // The surrounding cell + // blankGif: String + // URL for blank cell image + } + } +); +=====*/ + +} + +if(!dojo._hasResource["dijit.ColorPalette"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.ColorPalette"] = true; +dojo.provide("dijit.ColorPalette"); + + + + + + + + + + +dojo.declare("dijit.ColorPalette", + [dijit._Widget, dijit._Templated, dijit._PaletteMixin], + { + // summary: + // A keyboard accessible color-picking widget + // description: + // Grid showing various colors, so the user can pick a certain color. + // Can be used standalone, or as a popup. + // + // example: + // | <div dojoType="dijit.ColorPalette"></div> + // + // example: + // | var picker = new dijit.ColorPalette({ },srcNode); + // | picker.startup(); + + + // palette: String + // Size of grid, either "7x10" or "3x4". + palette: "7x10", + + // _palettes: [protected] Map + // This represents the value of the colors. + // The first level is a hashmap of the different palettes available. + // The next two dimensions represent the columns and rows of colors. + _palettes: { + "7x10": [["white", "seashell", "cornsilk", "lemonchiffon","lightyellow", "palegreen", "paleturquoise", "lightcyan", "lavender", "plum"], + ["lightgray", "pink", "bisque", "moccasin", "khaki", "lightgreen", "lightseagreen", "lightskyblue", "cornflowerblue", "violet"], + ["silver", "lightcoral", "sandybrown", "orange", "palegoldenrod", "chartreuse", "mediumturquoise", "skyblue", "mediumslateblue","orchid"], + ["gray", "red", "orangered", "darkorange", "yellow", "limegreen", "darkseagreen", "royalblue", "slateblue", "mediumorchid"], + ["dimgray", "crimson", "chocolate", "coral", "gold", "forestgreen", "seagreen", "blue", "blueviolet", "darkorchid"], + ["darkslategray","firebrick","saddlebrown", "sienna", "olive", "green", "darkcyan", "mediumblue","darkslateblue", "darkmagenta" ], + ["black", "darkred", "maroon", "brown", "darkolivegreen", "darkgreen", "midnightblue", "navy", "indigo", "purple"]], + + "3x4": [["white", "lime", "green", "blue"], + ["silver", "yellow", "fuchsia", "navy"], + ["gray", "red", "purple", "black"]] + }, + + // _imagePaths: [protected] Map + // This is stores the path to the palette images + _imagePaths: { + "7x10": dojo.moduleUrl("dijit.themes", "a11y/colors7x10.png"), + "3x4": dojo.moduleUrl("dijit.themes", "a11y/colors3x4.png"), + "7x10-rtl": dojo.moduleUrl("dijit.themes", "a11y/colors7x10-rtl.png"), + "3x4-rtl": dojo.moduleUrl("dijit.themes", "a11y/colors3x4-rtl.png") + }, + + // templateString: String + // The template of this widget. + templateString: dojo.cache("dijit", "templates/ColorPalette.html", "<div class=\"dijitInline dijitColorPalette\">\n\t<img class=\"dijitColorPaletteUnder\" dojoAttachPoint=\"imageNode\" waiRole=\"presentation\" alt=\"\"/>\n\t<table class=\"dijitPaletteTable\" cellSpacing=\"0\" cellPadding=\"0\">\n\t\t<tbody dojoAttachPoint=\"gridNode\"></tbody>\n\t</table>\n</div>\n"), + + baseClass: "dijitColorPalette", + + dyeClass: 'dijit._Color', + + buildRendering: function(){ + // Instantiate the template, which makes a skeleton into which we'll insert a bunch of + // <img> nodes + + this.inherited(arguments); + + this.imageNode.setAttribute("src", this._imagePaths[this.palette + (this.isLeftToRight() ? "" : "-rtl")].toString()); + + var i18nColorNames = dojo.i18n.getLocalization("dojo", "colors", this.lang); + this._preparePalette( + this._palettes[this.palette], + i18nColorNames + ); + } +}); + +dojo.declare("dijit._Color", dojo.Color, + // summary: + // Object associated with each cell in a ColorPalette palette. + // Implements dijit.Dye. + { + constructor: function(/*String*/alias){ + this._alias = alias; + this.setColor(dojo.Color.named[alias]); + }, + + getValue: function(){ + // summary: + // Note that although dijit._Color is initialized with a value like "white" getValue() always + // returns a hex value + return this.toHex(); + }, + + fillCell: function(/*DOMNode*/ cell, /*String*/ blankGif){ + dojo.create("img", { + src: blankGif, + "class": "dijitPaletteImg", + alt: this._alias + }, cell); + } + } +); + +} + +if(!dojo._hasResource["dijit.Declaration"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.Declaration"] = true; +dojo.provide("dijit.Declaration"); + + + +dojo.declare( + "dijit.Declaration", + dijit._Widget, + { + // summary: + // The Declaration widget allows a developer to declare new widget + // classes directly from a snippet of markup. + + // _noScript: [private] Boolean + // Flag to parser to leave alone the script tags contained inside of me + _noScript: true, + + // widgetClass: String + // Name of class being declared, ex: "acme.myWidget" + widgetClass: "", + + // propList: Object + // Set of attributes for this widget along with default values, ex: + // {delay: 100, title: "hello world"} + defaults: null, + + // mixins: String[] + // List containing the prototype for this widget, and also any mixins, + // ex: ["dijit._Widget", "dijit._Container"] + mixins: [], + + buildRendering: function(){ + var src = this.srcNodeRef.parentNode.removeChild(this.srcNodeRef), + methods = dojo.query("> script[type^='dojo/method'][event]", src).orphan(), + postscriptConnects = dojo.query("> script[type^='dojo/method']", src).orphan(), + regularConnects = dojo.query("> script[type^='dojo/connect']", src).orphan(), + srcType = src.nodeName; + + var propList = this.defaults || {}; + + // For all methods defined like <script type="dojo/method" event="foo">, + // add that method to prototype + dojo.forEach(methods, function(s){ + var evt = s.getAttribute("event"), + func = dojo.parser._functionFromScript(s); + propList[evt] = func; + }); + + // map array of strings like [ "dijit.form.Button" ] to array of mixin objects + // (note that dojo.map(this.mixins, dojo.getObject) doesn't work because it passes + // a bogus third argument to getObject(), confusing it) + this.mixins = this.mixins.length ? + dojo.map(this.mixins, function(name){ return dojo.getObject(name); } ) : + [ dijit._Widget, dijit._Templated ]; + + propList.widgetsInTemplate = true; + propList._skipNodeCache = true; + propList.templateString = "<"+srcType+" class='"+src.className+"' dojoAttachPoint='"+(src.getAttribute("dojoAttachPoint") || '')+"' dojoAttachEvent='"+(src.getAttribute("dojoAttachEvent") || '')+"' >"+src.innerHTML.replace(/\%7B/g,"{").replace(/\%7D/g,"}")+"</"+srcType+">"; + + // strip things so we don't create stuff under us in the initial setup phase + dojo.query("[dojoType]", src).forEach(function(node){ + node.removeAttribute("dojoType"); + }); + + // create the new widget class + var wc = dojo.declare( + this.widgetClass, + this.mixins, + propList + ); + + // Handle <script> blocks of form: + // <script type="dojo/connect" event="foo"> + // and + // <script type="dojo/method"> + // (Note that the second one is just shorthand for a dojo/connect to postscript) + // Since this is a connect in the declaration, we are actually connection to the method + // in the _prototype_. + var connects = regularConnects.concat(postscriptConnects); + dojo.forEach(connects, function(s){ + var evt = s.getAttribute("event") || "postscript", + func = dojo.parser._functionFromScript(s); + dojo.connect(wc.prototype, evt, func); + }); + } + } +); + +} + +if(!dojo._hasResource["dojo.dnd.common"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.dnd.common"] = true; +dojo.provide("dojo.dnd.common"); + +dojo.dnd.getCopyKeyState = dojo.isCopyKey; + +dojo.dnd._uniqueId = 0; +dojo.dnd.getUniqueId = function(){ + // summary: + // returns a unique string for use with any DOM element + var id; + do{ + id = dojo._scopeName + "Unique" + (++dojo.dnd._uniqueId); + }while(dojo.byId(id)); + return id; +}; + +dojo.dnd._empty = {}; + +dojo.dnd.isFormElement = function(/*Event*/ e){ + // summary: + // returns true if user clicked on a form element + var t = e.target; + if(t.nodeType == 3 /*TEXT_NODE*/){ + t = t.parentNode; + } + return " button textarea input select option ".indexOf(" " + t.tagName.toLowerCase() + " ") >= 0; // Boolean +}; + +} + +if(!dojo._hasResource["dojo.dnd.autoscroll"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.dnd.autoscroll"] = true; +dojo.provide("dojo.dnd.autoscroll"); + +dojo.dnd.getViewport = function(){ + // summary: + // Returns a viewport size (visible part of the window) + + // TODO: remove this when getViewport() moved to dojo core, see #7028 + + // FIXME: need more docs!! + var d = dojo.doc, dd = d.documentElement, w = window, b = dojo.body(); + if(dojo.isMozilla){ + return {w: dd.clientWidth, h: w.innerHeight}; // Object + }else if(!dojo.isOpera && w.innerWidth){ + return {w: w.innerWidth, h: w.innerHeight}; // Object + }else if (!dojo.isOpera && dd && dd.clientWidth){ + return {w: dd.clientWidth, h: dd.clientHeight}; // Object + }else if (b.clientWidth){ + return {w: b.clientWidth, h: b.clientHeight}; // Object + } + return null; // Object +}; + +dojo.dnd.V_TRIGGER_AUTOSCROLL = 32; +dojo.dnd.H_TRIGGER_AUTOSCROLL = 32; + +dojo.dnd.V_AUTOSCROLL_VALUE = 16; +dojo.dnd.H_AUTOSCROLL_VALUE = 16; + +dojo.dnd.autoScroll = function(e){ + // summary: + // a handler for onmousemove event, which scrolls the window, if + // necesary + // e: Event + // onmousemove event + + // FIXME: needs more docs! + var v = dojo.dnd.getViewport(), dx = 0, dy = 0; + if(e.clientX < dojo.dnd.H_TRIGGER_AUTOSCROLL){ + dx = -dojo.dnd.H_AUTOSCROLL_VALUE; + }else if(e.clientX > v.w - dojo.dnd.H_TRIGGER_AUTOSCROLL){ + dx = dojo.dnd.H_AUTOSCROLL_VALUE; + } + if(e.clientY < dojo.dnd.V_TRIGGER_AUTOSCROLL){ + dy = -dojo.dnd.V_AUTOSCROLL_VALUE; + }else if(e.clientY > v.h - dojo.dnd.V_TRIGGER_AUTOSCROLL){ + dy = dojo.dnd.V_AUTOSCROLL_VALUE; + } + window.scrollBy(dx, dy); +}; + +dojo.dnd._validNodes = {"div": 1, "p": 1, "td": 1}; +dojo.dnd._validOverflow = {"auto": 1, "scroll": 1}; + +dojo.dnd.autoScrollNodes = function(e){ + // summary: + // a handler for onmousemove event, which scrolls the first avaialble + // Dom element, it falls back to dojo.dnd.autoScroll() + // e: Event + // onmousemove event + + // FIXME: needs more docs! + for(var n = e.target; n;){ + if(n.nodeType == 1 && (n.tagName.toLowerCase() in dojo.dnd._validNodes)){ + var s = dojo.getComputedStyle(n); + if(s.overflow.toLowerCase() in dojo.dnd._validOverflow){ + var b = dojo._getContentBox(n, s), t = dojo.position(n, true); + //console.log(b.l, b.t, t.x, t.y, n.scrollLeft, n.scrollTop); + var w = Math.min(dojo.dnd.H_TRIGGER_AUTOSCROLL, b.w / 2), + h = Math.min(dojo.dnd.V_TRIGGER_AUTOSCROLL, b.h / 2), + rx = e.pageX - t.x, ry = e.pageY - t.y, dx = 0, dy = 0; + if(dojo.isWebKit || dojo.isOpera){ + // FIXME: this code should not be here, it should be taken into account + // either by the event fixing code, or the dojo.position() + // FIXME: this code doesn't work on Opera 9.5 Beta + rx += dojo.body().scrollLeft, ry += dojo.body().scrollTop; + } + if(rx > 0 && rx < b.w){ + if(rx < w){ + dx = -w; + }else if(rx > b.w - w){ + dx = w; + } + } + //console.log("ry =", ry, "b.h =", b.h, "h =", h); + if(ry > 0 && ry < b.h){ + if(ry < h){ + dy = -h; + }else if(ry > b.h - h){ + dy = h; + } + } + var oldLeft = n.scrollLeft, oldTop = n.scrollTop; + n.scrollLeft = n.scrollLeft + dx; + n.scrollTop = n.scrollTop + dy; + if(oldLeft != n.scrollLeft || oldTop != n.scrollTop){ return; } + } + } + try{ + n = n.parentNode; + }catch(x){ + n = null; + } + } + dojo.dnd.autoScroll(e); +}; + +} + +if(!dojo._hasResource["dojo.dnd.Mover"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.dnd.Mover"] = true; +dojo.provide("dojo.dnd.Mover"); + + + + +dojo.declare("dojo.dnd.Mover", null, { + constructor: function(node, e, host){ + // summary: + // an object, which makes a node follow the mouse. + // Used as a default mover, and as a base class for custom movers. + // node: Node + // a node (or node's id) to be moved + // e: Event + // a mouse event, which started the move; + // only pageX and pageY properties are used + // host: Object? + // object which implements the functionality of the move, + // and defines proper events (onMoveStart and onMoveStop) + this.node = dojo.byId(node); + this.marginBox = {l: e.pageX, t: e.pageY}; + this.mouseButton = e.button; + var h = this.host = host, d = node.ownerDocument, + firstEvent = dojo.connect(d, "onmousemove", this, "onFirstMove"); + this.events = [ + dojo.connect(d, "onmousemove", this, "onMouseMove"), + dojo.connect(d, "onmouseup", this, "onMouseUp"), + // cancel text selection and text dragging + dojo.connect(d, "ondragstart", dojo.stopEvent), + dojo.connect(d.body, "onselectstart", dojo.stopEvent), + firstEvent + ]; + // notify that the move has started + if(h && h.onMoveStart){ + h.onMoveStart(this); + } + }, + // mouse event processors + onMouseMove: function(e){ + // summary: + // event processor for onmousemove + // e: Event + // mouse event + dojo.dnd.autoScroll(e); + var m = this.marginBox; + this.host.onMove(this, {l: m.l + e.pageX, t: m.t + e.pageY}, e); + dojo.stopEvent(e); + }, + onMouseUp: function(e){ + if(dojo.isWebKit && dojo.isMac && this.mouseButton == 2 ? + e.button == 0 : this.mouseButton == e.button){ + this.destroy(); + } + dojo.stopEvent(e); + }, + // utilities + onFirstMove: function(e){ + // summary: + // makes the node absolute; it is meant to be called only once. + // relative and absolutely positioned nodes are assumed to use pixel units + var s = this.node.style, l, t, h = this.host; + switch(s.position){ + case "relative": + case "absolute": + // assume that left and top values are in pixels already + l = Math.round(parseFloat(s.left)) || 0; + t = Math.round(parseFloat(s.top)) || 0; + break; + default: + s.position = "absolute"; // enforcing the absolute mode + var m = dojo.marginBox(this.node); + // event.pageX/pageY (which we used to generate the initial + // margin box) includes padding and margin set on the body. + // However, setting the node's position to absolute and then + // doing dojo.marginBox on it *doesn't* take that additional + // space into account - so we need to subtract the combined + // padding and margin. We use getComputedStyle and + // _getMarginBox/_getContentBox to avoid the extra lookup of + // the computed style. + var b = dojo.doc.body; + var bs = dojo.getComputedStyle(b); + var bm = dojo._getMarginBox(b, bs); + var bc = dojo._getContentBox(b, bs); + l = m.l - (bc.l - bm.l); + t = m.t - (bc.t - bm.t); + break; + } + this.marginBox.l = l - this.marginBox.l; + this.marginBox.t = t - this.marginBox.t; + if(h && h.onFirstMove){ + h.onFirstMove(this, e); + } + dojo.disconnect(this.events.pop()); + }, + destroy: function(){ + // summary: + // stops the move, deletes all references, so the object can be garbage-collected + dojo.forEach(this.events, dojo.disconnect); + // undo global settings + var h = this.host; + if(h && h.onMoveStop){ + h.onMoveStop(this); + } + // destroy objects + this.events = this.node = this.host = null; + } +}); + +} + +if(!dojo._hasResource["dojo.dnd.Moveable"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.dnd.Moveable"] = true; +dojo.provide("dojo.dnd.Moveable"); + + + +/*===== +dojo.declare("dojo.dnd.__MoveableArgs", [], { + // handle: Node||String + // A node (or node's id), which is used as a mouse handle. + // If omitted, the node itself is used as a handle. + handle: null, + + // delay: Number + // delay move by this number of pixels + delay: 0, + + // skip: Boolean + // skip move of form elements + skip: false, + + // mover: Object + // a constructor of custom Mover + mover: dojo.dnd.Mover +}); +=====*/ + +dojo.declare("dojo.dnd.Moveable", null, { + // object attributes (for markup) + handle: "", + delay: 0, + skip: false, + + constructor: function(node, params){ + // summary: + // an object, which makes a node moveable + // node: Node + // a node (or node's id) to be moved + // params: dojo.dnd.__MoveableArgs? + // optional parameters + this.node = dojo.byId(node); + if(!params){ params = {}; } + this.handle = params.handle ? dojo.byId(params.handle) : null; + if(!this.handle){ this.handle = this.node; } + this.delay = params.delay > 0 ? params.delay : 0; + this.skip = params.skip; + this.mover = params.mover ? params.mover : dojo.dnd.Mover; + this.events = [ + dojo.connect(this.handle, "onmousedown", this, "onMouseDown"), + // cancel text selection and text dragging + dojo.connect(this.handle, "ondragstart", this, "onSelectStart"), + dojo.connect(this.handle, "onselectstart", this, "onSelectStart") + ]; + }, + + // markup methods + markupFactory: function(params, node){ + return new dojo.dnd.Moveable(node, params); + }, + + // methods + destroy: function(){ + // summary: + // stops watching for possible move, deletes all references, so the object can be garbage-collected + dojo.forEach(this.events, dojo.disconnect); + this.events = this.node = this.handle = null; + }, + + // mouse event processors + onMouseDown: function(e){ + // summary: + // event processor for onmousedown, creates a Mover for the node + // e: Event + // mouse event + if(this.skip && dojo.dnd.isFormElement(e)){ return; } + if(this.delay){ + this.events.push( + dojo.connect(this.handle, "onmousemove", this, "onMouseMove"), + dojo.connect(this.handle, "onmouseup", this, "onMouseUp") + ); + this._lastX = e.pageX; + this._lastY = e.pageY; + }else{ + this.onDragDetected(e); + } + dojo.stopEvent(e); + }, + onMouseMove: function(e){ + // summary: + // event processor for onmousemove, used only for delayed drags + // e: Event + // mouse event + if(Math.abs(e.pageX - this._lastX) > this.delay || Math.abs(e.pageY - this._lastY) > this.delay){ + this.onMouseUp(e); + this.onDragDetected(e); + } + dojo.stopEvent(e); + }, + onMouseUp: function(e){ + // summary: + // event processor for onmouseup, used only for delayed drags + // e: Event + // mouse event + for(var i = 0; i < 2; ++i){ + dojo.disconnect(this.events.pop()); + } + dojo.stopEvent(e); + }, + onSelectStart: function(e){ + // summary: + // event processor for onselectevent and ondragevent + // e: Event + // mouse event + if(!this.skip || !dojo.dnd.isFormElement(e)){ + dojo.stopEvent(e); + } + }, + + // local events + onDragDetected: function(/* Event */ e){ + // summary: + // called when the drag is detected; + // responsible for creation of the mover + new this.mover(this.node, e, this); + }, + onMoveStart: function(/* dojo.dnd.Mover */ mover){ + // summary: + // called before every move operation + dojo.publish("/dnd/move/start", [mover]); + dojo.addClass(dojo.body(), "dojoMove"); + dojo.addClass(this.node, "dojoMoveItem"); + }, + onMoveStop: function(/* dojo.dnd.Mover */ mover){ + // summary: + // called after every move operation + dojo.publish("/dnd/move/stop", [mover]); + dojo.removeClass(dojo.body(), "dojoMove"); + dojo.removeClass(this.node, "dojoMoveItem"); + }, + onFirstMove: function(/* dojo.dnd.Mover */ mover, /* Event */ e){ + // summary: + // called during the very first move notification; + // can be used to initialize coordinates, can be overwritten. + + // default implementation does nothing + }, + onMove: function(/* dojo.dnd.Mover */ mover, /* Object */ leftTop, /* Event */ e){ + // summary: + // called during every move notification; + // should actually move the node; can be overwritten. + this.onMoving(mover, leftTop); + var s = mover.node.style; + s.left = leftTop.l + "px"; + s.top = leftTop.t + "px"; + this.onMoved(mover, leftTop); + }, + onMoving: function(/* dojo.dnd.Mover */ mover, /* Object */ leftTop){ + // summary: + // called before every incremental move; can be overwritten. + + // default implementation does nothing + }, + onMoved: function(/* dojo.dnd.Mover */ mover, /* Object */ leftTop){ + // summary: + // called after every incremental move; can be overwritten. + + // default implementation does nothing + } +}); + +} + +if(!dojo._hasResource["dojo.dnd.move"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.dnd.move"] = true; +dojo.provide("dojo.dnd.move"); + + + + +/*===== +dojo.declare("dojo.dnd.move.__constrainedMoveableArgs", [dojo.dnd.__MoveableArgs], { + // constraints: Function + // Calculates a constraint box. + // It is called in a context of the moveable object. + constraints: function(){}, + + // within: Boolean + // restrict move within boundaries. + within: false +}); +=====*/ + +dojo.declare("dojo.dnd.move.constrainedMoveable", dojo.dnd.Moveable, { + // object attributes (for markup) + constraints: function(){}, + within: false, + + // markup methods + markupFactory: function(params, node){ + return new dojo.dnd.move.constrainedMoveable(node, params); + }, + + constructor: function(node, params){ + // summary: + // an object that makes a node moveable + // node: Node + // a node (or node's id) to be moved + // params: dojo.dnd.move.__constrainedMoveableArgs? + // an optional object with additional parameters; + // the rest is passed to the base class + if(!params){ params = {}; } + this.constraints = params.constraints; + this.within = params.within; + }, + onFirstMove: function(/* dojo.dnd.Mover */ mover){ + // summary: + // called during the very first move notification; + // can be used to initialize coordinates, can be overwritten. + var c = this.constraintBox = this.constraints.call(this, mover); + c.r = c.l + c.w; + c.b = c.t + c.h; + if(this.within){ + var mb = dojo.marginBox(mover.node); + c.r -= mb.w; + c.b -= mb.h; + } + }, + onMove: function(/* dojo.dnd.Mover */ mover, /* Object */ leftTop){ + // summary: + // called during every move notification; + // should actually move the node; can be overwritten. + var c = this.constraintBox, s = mover.node.style; + s.left = (leftTop.l < c.l ? c.l : c.r < leftTop.l ? c.r : leftTop.l) + "px"; + s.top = (leftTop.t < c.t ? c.t : c.b < leftTop.t ? c.b : leftTop.t) + "px"; + } +}); + +/*===== +dojo.declare("dojo.dnd.move.__boxConstrainedMoveableArgs", [dojo.dnd.move.__constrainedMoveableArgs], { + // box: Object + // a constraint box + box: {} +}); +=====*/ + +dojo.declare("dojo.dnd.move.boxConstrainedMoveable", dojo.dnd.move.constrainedMoveable, { + // box: + // object attributes (for markup) + box: {}, + + // markup methods + markupFactory: function(params, node){ + return new dojo.dnd.move.boxConstrainedMoveable(node, params); + }, + + constructor: function(node, params){ + // summary: + // an object, which makes a node moveable + // node: Node + // a node (or node's id) to be moved + // params: dojo.dnd.move.__boxConstrainedMoveableArgs? + // an optional object with parameters + var box = params && params.box; + this.constraints = function(){ return box; }; + } +}); + +/*===== +dojo.declare("dojo.dnd.move.__parentConstrainedMoveableArgs", [dojo.dnd.move.__constrainedMoveableArgs], { + // area: String + // A parent's area to restrict the move. + // Can be "margin", "border", "padding", or "content". + area: "" +}); +=====*/ + +dojo.declare("dojo.dnd.move.parentConstrainedMoveable", dojo.dnd.move.constrainedMoveable, { + // area: + // object attributes (for markup) + area: "content", + + // markup methods + markupFactory: function(params, node){ + return new dojo.dnd.move.parentConstrainedMoveable(node, params); + }, + + constructor: function(node, params){ + // summary: + // an object, which makes a node moveable + // node: Node + // a node (or node's id) to be moved + // params: dojo.dnd.move.__parentConstrainedMoveableArgs? + // an optional object with parameters + var area = params && params.area; + this.constraints = function(){ + var n = this.node.parentNode, + s = dojo.getComputedStyle(n), + mb = dojo._getMarginBox(n, s); + if(area == "margin"){ + return mb; // Object + } + var t = dojo._getMarginExtents(n, s); + mb.l += t.l, mb.t += t.t, mb.w -= t.w, mb.h -= t.h; + if(area == "border"){ + return mb; // Object + } + t = dojo._getBorderExtents(n, s); + mb.l += t.l, mb.t += t.t, mb.w -= t.w, mb.h -= t.h; + if(area == "padding"){ + return mb; // Object + } + t = dojo._getPadExtents(n, s); + mb.l += t.l, mb.t += t.t, mb.w -= t.w, mb.h -= t.h; + return mb; // Object + }; + } +}); + +// WARNING: below are obsolete objects, instead of custom movers use custom moveables (above) + +dojo.dnd.move.constrainedMover = function(fun, within){ + // summary: + // returns a constrained version of dojo.dnd.Mover + // description: + // this function produces n object, which will put a constraint on + // the margin box of dragged object in absolute coordinates + // fun: Function + // called on drag, and returns a constraint box + // within: Boolean + // if true, constraints the whole dragged object withtin the rectangle, + // otherwise the constraint is applied to the left-top corner + + dojo.deprecated("dojo.dnd.move.constrainedMover, use dojo.dnd.move.constrainedMoveable instead"); + var mover = function(node, e, notifier){ + dojo.dnd.Mover.call(this, node, e, notifier); + }; + dojo.extend(mover, dojo.dnd.Mover.prototype); + dojo.extend(mover, { + onMouseMove: function(e){ + // summary: event processor for onmousemove + // e: Event: mouse event + dojo.dnd.autoScroll(e); + var m = this.marginBox, c = this.constraintBox, + l = m.l + e.pageX, t = m.t + e.pageY; + l = l < c.l ? c.l : c.r < l ? c.r : l; + t = t < c.t ? c.t : c.b < t ? c.b : t; + this.host.onMove(this, {l: l, t: t}); + }, + onFirstMove: function(){ + // summary: called once to initialize things; it is meant to be called only once + dojo.dnd.Mover.prototype.onFirstMove.call(this); + var c = this.constraintBox = fun.call(this); + c.r = c.l + c.w; + c.b = c.t + c.h; + if(within){ + var mb = dojo.marginBox(this.node); + c.r -= mb.w; + c.b -= mb.h; + } + } + }); + return mover; // Object +}; + +dojo.dnd.move.boxConstrainedMover = function(box, within){ + // summary: + // a specialization of dojo.dnd.constrainedMover, which constrains to the specified box + // box: Object + // a constraint box (l, t, w, h) + // within: Boolean + // if true, constraints the whole dragged object withtin the rectangle, + // otherwise the constraint is applied to the left-top corner + + dojo.deprecated("dojo.dnd.move.boxConstrainedMover, use dojo.dnd.move.boxConstrainedMoveable instead"); + return dojo.dnd.move.constrainedMover(function(){ return box; }, within); // Object +}; + +dojo.dnd.move.parentConstrainedMover = function(area, within){ + // summary: + // a specialization of dojo.dnd.constrainedMover, which constrains to the parent node + // area: String + // "margin" to constrain within the parent's margin box, "border" for the border box, + // "padding" for the padding box, and "content" for the content box; "content" is the default value. + // within: Boolean + // if true, constraints the whole dragged object within the rectangle, + // otherwise the constraint is applied to the left-top corner + + dojo.deprecated("dojo.dnd.move.parentConstrainedMover, use dojo.dnd.move.parentConstrainedMoveable instead"); + var fun = function(){ + var n = this.node.parentNode, + s = dojo.getComputedStyle(n), + mb = dojo._getMarginBox(n, s); + if(area == "margin"){ + return mb; // Object + } + var t = dojo._getMarginExtents(n, s); + mb.l += t.l, mb.t += t.t, mb.w -= t.w, mb.h -= t.h; + if(area == "border"){ + return mb; // Object + } + t = dojo._getBorderExtents(n, s); + mb.l += t.l, mb.t += t.t, mb.w -= t.w, mb.h -= t.h; + if(area == "padding"){ + return mb; // Object + } + t = dojo._getPadExtents(n, s); + mb.l += t.l, mb.t += t.t, mb.w -= t.w, mb.h -= t.h; + return mb; // Object + }; + return dojo.dnd.move.constrainedMover(fun, within); // Object +}; + +// patching functions one level up for compatibility + +dojo.dnd.constrainedMover = dojo.dnd.move.constrainedMover; +dojo.dnd.boxConstrainedMover = dojo.dnd.move.boxConstrainedMover; +dojo.dnd.parentConstrainedMover = dojo.dnd.move.parentConstrainedMover; + +} + +if(!dojo._hasResource["dojo.dnd.TimedMoveable"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.dnd.TimedMoveable"] = true; +dojo.provide("dojo.dnd.TimedMoveable"); + + + +/*===== +dojo.declare("dojo.dnd.__TimedMoveableArgs", [dojo.dnd.__MoveableArgs], { + // timeout: Number + // delay move by this number of ms, + // accumulating position changes during the timeout + timeout: 0 +}); +=====*/ + +(function(){ + // precalculate long expressions + var oldOnMove = dojo.dnd.Moveable.prototype.onMove; + + dojo.declare("dojo.dnd.TimedMoveable", dojo.dnd.Moveable, { + // summary: + // A specialized version of Moveable to support an FPS throttling. + // This class puts an upper restriction on FPS, which may reduce + // the CPU load. The additional parameter "timeout" regulates + // the delay before actually moving the moveable object. + + // object attributes (for markup) + timeout: 40, // in ms, 40ms corresponds to 25 fps + + constructor: function(node, params){ + // summary: + // an object that makes a node moveable with a timer + // node: Node||String + // a node (or node's id) to be moved + // params: dojo.dnd.__TimedMoveableArgs + // object with additional parameters. + + // sanitize parameters + if(!params){ params = {}; } + if(params.timeout && typeof params.timeout == "number" && params.timeout >= 0){ + this.timeout = params.timeout; + } + }, + + // markup methods + markupFactory: function(params, node){ + return new dojo.dnd.TimedMoveable(node, params); + }, + + onMoveStop: function(/* dojo.dnd.Mover */ mover){ + if(mover._timer){ + // stop timer + clearTimeout(mover._timer) + // reflect the last received position + oldOnMove.call(this, mover, mover._leftTop) + } + dojo.dnd.Moveable.prototype.onMoveStop.apply(this, arguments); + }, + onMove: function(/* dojo.dnd.Mover */ mover, /* Object */ leftTop){ + mover._leftTop = leftTop; + if(!mover._timer){ + var _t = this; // to avoid using dojo.hitch() + mover._timer = setTimeout(function(){ + // we don't have any pending requests + mover._timer = null; + // reflect the last received position + oldOnMove.call(_t, mover, mover._leftTop); + }, this.timeout); + } + } + }); +})(); + +} + +if(!dojo._hasResource["dojo.fx.Toggler"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.fx.Toggler"] = true; +dojo.provide("dojo.fx.Toggler"); + +dojo.declare("dojo.fx.Toggler", null, { + // summary: + // A simple `dojo.Animation` toggler API. + // + // description: + // class constructor for an animation toggler. It accepts a packed + // set of arguments about what type of animation to use in each + // direction, duration, etc. All available members are mixed into + // these animations from the constructor (for example, `node`, + // `showDuration`, `hideDuration`). + // + // example: + // | var t = new dojo.fx.Toggler({ + // | node: "nodeId", + // | showDuration: 500, + // | // hideDuration will default to "200" + // | showFunc: dojo.fx.wipeIn, + // | // hideFunc will default to "fadeOut" + // | }); + // | t.show(100); // delay showing for 100ms + // | // ...time passes... + // | t.hide(); + + // node: DomNode + // the node to target for the showing and hiding animations + node: null, + + // showFunc: Function + // The function that returns the `dojo.Animation` to show the node + showFunc: dojo.fadeIn, + + // hideFunc: Function + // The function that returns the `dojo.Animation` to hide the node + hideFunc: dojo.fadeOut, + + // showDuration: + // Time in milliseconds to run the show Animation + showDuration: 200, + + // hideDuration: + // Time in milliseconds to run the hide Animation + hideDuration: 200, + + // FIXME: need a policy for where the toggler should "be" the next + // time show/hide are called if we're stopped somewhere in the + // middle. + // FIXME: also would be nice to specify individual showArgs/hideArgs mixed into + // each animation individually. + // FIXME: also would be nice to have events from the animations exposed/bridged + + /*===== + _showArgs: null, + _showAnim: null, + + _hideArgs: null, + _hideAnim: null, + + _isShowing: false, + _isHiding: false, + =====*/ + + constructor: function(args){ + var _t = this; + + dojo.mixin(_t, args); + _t.node = args.node; + _t._showArgs = dojo.mixin({}, args); + _t._showArgs.node = _t.node; + _t._showArgs.duration = _t.showDuration; + _t.showAnim = _t.showFunc(_t._showArgs); + + _t._hideArgs = dojo.mixin({}, args); + _t._hideArgs.node = _t.node; + _t._hideArgs.duration = _t.hideDuration; + _t.hideAnim = _t.hideFunc(_t._hideArgs); + + dojo.connect(_t.showAnim, "beforeBegin", dojo.hitch(_t.hideAnim, "stop", true)); + dojo.connect(_t.hideAnim, "beforeBegin", dojo.hitch(_t.showAnim, "stop", true)); + }, + + show: function(delay){ + // summary: Toggle the node to showing + // delay: Integer? + // Ammount of time to stall playing the show animation + return this.showAnim.play(delay || 0); + }, + + hide: function(delay){ + // summary: Toggle the node to hidden + // delay: Integer? + // Ammount of time to stall playing the hide animation + return this.hideAnim.play(delay || 0); + } +}); + +} + +if(!dojo._hasResource["dojo.fx"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.fx"] = true; +dojo.provide("dojo.fx"); + // FIXME: remove this back-compat require in 2.0 +/*===== +dojo.fx = { + // summary: Effects library on top of Base animations +}; +=====*/ +(function(){ + + var d = dojo, + _baseObj = { + _fire: function(evt, args){ + if(this[evt]){ + this[evt].apply(this, args||[]); + } + return this; + } + }; + + var _chain = function(animations){ + this._index = -1; + this._animations = animations||[]; + this._current = this._onAnimateCtx = this._onEndCtx = null; + + this.duration = 0; + d.forEach(this._animations, function(a){ + this.duration += a.duration; + if(a.delay){ this.duration += a.delay; } + }, this); + }; + d.extend(_chain, { + _onAnimate: function(){ + this._fire("onAnimate", arguments); + }, + _onEnd: function(){ + d.disconnect(this._onAnimateCtx); + d.disconnect(this._onEndCtx); + this._onAnimateCtx = this._onEndCtx = null; + if(this._index + 1 == this._animations.length){ + this._fire("onEnd"); + }else{ + // switch animations + this._current = this._animations[++this._index]; + this._onAnimateCtx = d.connect(this._current, "onAnimate", this, "_onAnimate"); + this._onEndCtx = d.connect(this._current, "onEnd", this, "_onEnd"); + this._current.play(0, true); + } + }, + play: function(/*int?*/ delay, /*Boolean?*/ gotoStart){ + if(!this._current){ this._current = this._animations[this._index = 0]; } + if(!gotoStart && this._current.status() == "playing"){ return this; } + var beforeBegin = d.connect(this._current, "beforeBegin", this, function(){ + this._fire("beforeBegin"); + }), + onBegin = d.connect(this._current, "onBegin", this, function(arg){ + this._fire("onBegin", arguments); + }), + onPlay = d.connect(this._current, "onPlay", this, function(arg){ + this._fire("onPlay", arguments); + d.disconnect(beforeBegin); + d.disconnect(onBegin); + d.disconnect(onPlay); + }); + if(this._onAnimateCtx){ + d.disconnect(this._onAnimateCtx); + } + this._onAnimateCtx = d.connect(this._current, "onAnimate", this, "_onAnimate"); + if(this._onEndCtx){ + d.disconnect(this._onEndCtx); + } + this._onEndCtx = d.connect(this._current, "onEnd", this, "_onEnd"); + this._current.play.apply(this._current, arguments); + return this; + }, + pause: function(){ + if(this._current){ + var e = d.connect(this._current, "onPause", this, function(arg){ + this._fire("onPause", arguments); + d.disconnect(e); + }); + this._current.pause(); + } + return this; + }, + gotoPercent: function(/*Decimal*/percent, /*Boolean?*/ andPlay){ + this.pause(); + var offset = this.duration * percent; + this._current = null; + d.some(this._animations, function(a){ + if(a.duration <= offset){ + this._current = a; + return true; + } + offset -= a.duration; + return false; + }); + if(this._current){ + this._current.gotoPercent(offset / this._current.duration, andPlay); + } + return this; + }, + stop: function(/*boolean?*/ gotoEnd){ + if(this._current){ + if(gotoEnd){ + for(; this._index + 1 < this._animations.length; ++this._index){ + this._animations[this._index].stop(true); + } + this._current = this._animations[this._index]; + } + var e = d.connect(this._current, "onStop", this, function(arg){ + this._fire("onStop", arguments); + d.disconnect(e); + }); + this._current.stop(); + } + return this; + }, + status: function(){ + return this._current ? this._current.status() : "stopped"; + }, + destroy: function(){ + if(this._onAnimateCtx){ d.disconnect(this._onAnimateCtx); } + if(this._onEndCtx){ d.disconnect(this._onEndCtx); } + } + }); + d.extend(_chain, _baseObj); + + dojo.fx.chain = function(/*dojo.Animation[]*/ animations){ + // summary: + // Chain a list of `dojo.Animation`s to run in sequence + // + // description: + // Return a `dojo.Animation` which will play all passed + // `dojo.Animation` instances in sequence, firing its own + // synthesized events simulating a single animation. (eg: + // onEnd of this animation means the end of the chain, + // not the individual animations within) + // + // example: + // Once `node` is faded out, fade in `otherNode` + // | dojo.fx.chain([ + // | dojo.fadeIn({ node:node }), + // | dojo.fadeOut({ node:otherNode }) + // | ]).play(); + // + return new _chain(animations) // dojo.Animation + }; + + var _combine = function(animations){ + this._animations = animations||[]; + this._connects = []; + this._finished = 0; + + this.duration = 0; + d.forEach(animations, function(a){ + var duration = a.duration; + if(a.delay){ duration += a.delay; } + if(this.duration < duration){ this.duration = duration; } + this._connects.push(d.connect(a, "onEnd", this, "_onEnd")); + }, this); + + this._pseudoAnimation = new d.Animation({curve: [0, 1], duration: this.duration}); + var self = this; + d.forEach(["beforeBegin", "onBegin", "onPlay", "onAnimate", "onPause", "onStop", "onEnd"], + function(evt){ + self._connects.push(d.connect(self._pseudoAnimation, evt, + function(){ self._fire(evt, arguments); } + )); + } + ); + }; + d.extend(_combine, { + _doAction: function(action, args){ + d.forEach(this._animations, function(a){ + a[action].apply(a, args); + }); + return this; + }, + _onEnd: function(){ + if(++this._finished > this._animations.length){ + this._fire("onEnd"); + } + }, + _call: function(action, args){ + var t = this._pseudoAnimation; + t[action].apply(t, args); + }, + play: function(/*int?*/ delay, /*Boolean?*/ gotoStart){ + this._finished = 0; + this._doAction("play", arguments); + this._call("play", arguments); + return this; + }, + pause: function(){ + this._doAction("pause", arguments); + this._call("pause", arguments); + return this; + }, + gotoPercent: function(/*Decimal*/percent, /*Boolean?*/ andPlay){ + var ms = this.duration * percent; + d.forEach(this._animations, function(a){ + a.gotoPercent(a.duration < ms ? 1 : (ms / a.duration), andPlay); + }); + this._call("gotoPercent", arguments); + return this; + }, + stop: function(/*boolean?*/ gotoEnd){ + this._doAction("stop", arguments); + this._call("stop", arguments); + return this; + }, + status: function(){ + return this._pseudoAnimation.status(); + }, + destroy: function(){ + d.forEach(this._connects, dojo.disconnect); + } + }); + d.extend(_combine, _baseObj); + + dojo.fx.combine = function(/*dojo.Animation[]*/ animations){ + // summary: + // Combine a list of `dojo.Animation`s to run in parallel + // + // description: + // Combine an array of `dojo.Animation`s to run in parallel, + // providing a new `dojo.Animation` instance encompasing each + // animation, firing standard animation events. + // + // example: + // Fade out `node` while fading in `otherNode` simultaneously + // | dojo.fx.combine([ + // | dojo.fadeIn({ node:node }), + // | dojo.fadeOut({ node:otherNode }) + // | ]).play(); + // + // example: + // When the longest animation ends, execute a function: + // | var anim = dojo.fx.combine([ + // | dojo.fadeIn({ node: n, duration:700 }), + // | dojo.fadeOut({ node: otherNode, duration: 300 }) + // | ]); + // | dojo.connect(anim, "onEnd", function(){ + // | // overall animation is done. + // | }); + // | anim.play(); // play the animation + // + return new _combine(animations); // dojo.Animation + }; + + dojo.fx.wipeIn = function(/*Object*/ args){ + // summary: + // Expand a node to it's natural height. + // + // description: + // Returns an animation that will expand the + // node defined in 'args' object from it's current height to + // it's natural height (with no scrollbar). + // Node must have no margin/border/padding. + // + // args: Object + // A hash-map of standard `dojo.Animation` constructor properties + // (such as easing: node: duration: and so on) + // + // example: + // | dojo.fx.wipeIn({ + // | node:"someId" + // | }).play() + var node = args.node = d.byId(args.node), s = node.style, o; + + var anim = d.animateProperty(d.mixin({ + properties: { + height: { + // wrapped in functions so we wait till the last second to query (in case value has changed) + start: function(){ + // start at current [computed] height, but use 1px rather than 0 + // because 0 causes IE to display the whole panel + o = s.overflow; + s.overflow = "hidden"; + if(s.visibility == "hidden" || s.display == "none"){ + s.height = "1px"; + s.display = ""; + s.visibility = ""; + return 1; + }else{ + var height = d.style(node, "height"); + return Math.max(height, 1); + } + }, + end: function(){ + return node.scrollHeight; + } + } + } + }, args)); + + d.connect(anim, "onEnd", function(){ + s.height = "auto"; + s.overflow = o; + }); + + return anim; // dojo.Animation + } + + dojo.fx.wipeOut = function(/*Object*/ args){ + // summary: + // Shrink a node to nothing and hide it. + // + // description: + // Returns an animation that will shrink node defined in "args" + // from it's current height to 1px, and then hide it. + // + // args: Object + // A hash-map of standard `dojo.Animation` constructor properties + // (such as easing: node: duration: and so on) + // + // example: + // | dojo.fx.wipeOut({ node:"someId" }).play() + + var node = args.node = d.byId(args.node), s = node.style, o; + + var anim = d.animateProperty(d.mixin({ + properties: { + height: { + end: 1 // 0 causes IE to display the whole panel + } + } + }, args)); + + d.connect(anim, "beforeBegin", function(){ + o = s.overflow; + s.overflow = "hidden"; + s.display = ""; + }); + d.connect(anim, "onEnd", function(){ + s.overflow = o; + s.height = "auto"; + s.display = "none"; + }); + + return anim; // dojo.Animation + } + + dojo.fx.slideTo = function(/*Object*/ args){ + // summary: + // Slide a node to a new top/left position + // + // description: + // Returns an animation that will slide "node" + // defined in args Object from its current position to + // the position defined by (args.left, args.top). + // + // args: Object + // A hash-map of standard `dojo.Animation` constructor properties + // (such as easing: node: duration: and so on). Special args members + // are `top` and `left`, which indicate the new position to slide to. + // + // example: + // | dojo.fx.slideTo({ node: node, left:"40", top:"50", units:"px" }).play() + + var node = args.node = d.byId(args.node), + top = null, left = null; + + var init = (function(n){ + return function(){ + var cs = d.getComputedStyle(n); + var pos = cs.position; + top = (pos == 'absolute' ? n.offsetTop : parseInt(cs.top) || 0); + left = (pos == 'absolute' ? n.offsetLeft : parseInt(cs.left) || 0); + if(pos != 'absolute' && pos != 'relative'){ + var ret = d.position(n, true); + top = ret.y; + left = ret.x; + n.style.position="absolute"; + n.style.top=top+"px"; + n.style.left=left+"px"; + } + }; + })(node); + init(); + + var anim = d.animateProperty(d.mixin({ + properties: { + top: args.top || 0, + left: args.left || 0 + } + }, args)); + d.connect(anim, "beforeBegin", anim, init); + + return anim; // dojo.Animation + } + +})(); + +} + +if(!dojo._hasResource["dijit.form._FormMixin"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.form._FormMixin"] = true; +dojo.provide("dijit.form._FormMixin"); + + + +dojo.declare("dijit.form._FormMixin", null, + { + // summary: + // Mixin for containers of form widgets (i.e. widgets that represent a single value + // and can be children of a <form> node or dijit.form.Form widget) + // description: + // Can extract all the form widgets + // values and combine them into a single javascript object, or alternately + // take such an object and set the values for all the contained + // form widgets + +/*===== + // value: Object + // Name/value hash for each child widget with a name and value. + // Child widgets without names are not part of the hash. + // + // If there are multiple child widgets w/the same name, value is an array, + // unless they are radio buttons in which case value is a scalar (since only + // one radio button can be checked at a time). + // + // If a child widget's name is a dot separated list (like a.b.c.d), it's a nested structure. + // + // Example: + // | { name: "John Smith", interests: ["sports", "movies"] } +=====*/ + + // TODO: + // * Repeater + // * better handling for arrays. Often form elements have names with [] like + // * people[3].sex (for a list of people [{name: Bill, sex: M}, ...]) + // + // + + reset: function(){ + dojo.forEach(this.getDescendants(), function(widget){ + if(widget.reset){ + widget.reset(); + } + }); + }, + + validate: function(){ + // summary: + // returns if the form is valid - same as isValid - but + // provides a few additional (ui-specific) features. + // 1 - it will highlight any sub-widgets that are not + // valid + // 2 - it will call focus() on the first invalid + // sub-widget + var didFocus = false; + return dojo.every(dojo.map(this.getDescendants(), function(widget){ + // Need to set this so that "required" widgets get their + // state set. + widget._hasBeenBlurred = true; + var valid = widget.disabled || !widget.validate || widget.validate(); + if(!valid && !didFocus){ + // Set focus of the first non-valid widget + dojo.window.scrollIntoView(widget.containerNode || widget.domNode); + widget.focus(); + didFocus = true; + } + return valid; + }), function(item){ return item; }); + }, + + setValues: function(val){ + dojo.deprecated(this.declaredClass+"::setValues() is deprecated. Use set('value', val) instead.", "", "2.0"); + return this.set('value', val); + }, + _setValueAttr: function(/*object*/obj){ + // summary: + // Fill in form values from according to an Object (in the format returned by attr('value')) + + // generate map from name --> [list of widgets with that name] + var map = { }; + dojo.forEach(this.getDescendants(), function(widget){ + if(!widget.name){ return; } + var entry = map[widget.name] || (map[widget.name] = [] ); + entry.push(widget); + }); + + for(var name in map){ + if(!map.hasOwnProperty(name)){ + continue; + } + var widgets = map[name], // array of widgets w/this name + values = dojo.getObject(name, false, obj); // list of values for those widgets + + if(values === undefined){ + continue; + } + if(!dojo.isArray(values)){ + values = [ values ]; + } + if(typeof widgets[0].checked == 'boolean'){ + // for checkbox/radio, values is a list of which widgets should be checked + dojo.forEach(widgets, function(w, i){ + w.set('value', dojo.indexOf(values, w.value) != -1); + }); + }else if(widgets[0].multiple){ + // it takes an array (e.g. multi-select) + widgets[0].set('value', values); + }else{ + // otherwise, values is a list of values to be assigned sequentially to each widget + dojo.forEach(widgets, function(w, i){ + w.set('value', values[i]); + }); + } + } + + /*** + * TODO: code for plain input boxes (this shouldn't run for inputs that are part of widgets) + + dojo.forEach(this.containerNode.elements, function(element){ + if(element.name == ''){return}; // like "continue" + var namePath = element.name.split("."); + var myObj=obj; + var name=namePath[namePath.length-1]; + for(var j=1,len2=namePath.length;j<len2;++j){ + var p=namePath[j - 1]; + // repeater support block + var nameA=p.split("["); + if(nameA.length > 1){ + if(typeof(myObj[nameA[0]]) == "undefined"){ + myObj[nameA[0]]=[ ]; + } // if + + nameIndex=parseInt(nameA[1]); + if(typeof(myObj[nameA[0]][nameIndex]) == "undefined"){ + myObj[nameA[0]][nameIndex] = { }; + } + myObj=myObj[nameA[0]][nameIndex]; + continue; + } // repeater support ends + + if(typeof(myObj[p]) == "undefined"){ + myObj=undefined; + break; + }; + myObj=myObj[p]; + } + + if(typeof(myObj) == "undefined"){ + return; // like "continue" + } + if(typeof(myObj[name]) == "undefined" && this.ignoreNullValues){ + return; // like "continue" + } + + // TODO: widget values (just call attr('value', ...) on the widget) + + // TODO: maybe should call dojo.getNodeProp() instead + switch(element.type){ + case "checkbox": + element.checked = (name in myObj) && + dojo.some(myObj[name], function(val){ return val == element.value; }); + break; + case "radio": + element.checked = (name in myObj) && myObj[name] == element.value; + break; + case "select-multiple": + element.selectedIndex=-1; + dojo.forEach(element.options, function(option){ + option.selected = dojo.some(myObj[name], function(val){ return option.value == val; }); + }); + break; + case "select-one": + element.selectedIndex="0"; + dojo.forEach(element.options, function(option){ + option.selected = option.value == myObj[name]; + }); + break; + case "hidden": + case "text": + case "textarea": + case "password": + element.value = myObj[name] || ""; + break; + } + }); + */ + }, + + getValues: function(){ + dojo.deprecated(this.declaredClass+"::getValues() is deprecated. Use get('value') instead.", "", "2.0"); + return this.get('value'); + }, + _getValueAttr: function(){ + // summary: + // Returns Object representing form values. + // description: + // Returns name/value hash for each form element. + // If there are multiple elements w/the same name, value is an array, + // unless they are radio buttons in which case value is a scalar since only + // one can be checked at a time. + // + // If the name is a dot separated list (like a.b.c.d), creates a nested structure. + // Only works on widget form elements. + // example: + // | { name: "John Smith", interests: ["sports", "movies"] } + + // get widget values + var obj = { }; + dojo.forEach(this.getDescendants(), function(widget){ + var name = widget.name; + if(!name || widget.disabled){ return; } + + // Single value widget (checkbox, radio, or plain <input> type widget + var value = widget.get('value'); + + // Store widget's value(s) as a scalar, except for checkboxes which are automatically arrays + if(typeof widget.checked == 'boolean'){ + if(/Radio/.test(widget.declaredClass)){ + // radio button + if(value !== false){ + dojo.setObject(name, value, obj); + }else{ + // give radio widgets a default of null + value = dojo.getObject(name, false, obj); + if(value === undefined){ + dojo.setObject(name, null, obj); + } + } + }else{ + // checkbox/toggle button + var ary=dojo.getObject(name, false, obj); + if(!ary){ + ary=[]; + dojo.setObject(name, ary, obj); + } + if(value !== false){ + ary.push(value); + } + } + }else{ + var prev=dojo.getObject(name, false, obj); + if(typeof prev != "undefined"){ + if(dojo.isArray(prev)){ + prev.push(value); + }else{ + dojo.setObject(name, [prev, value], obj); + } + }else{ + // unique name + dojo.setObject(name, value, obj); + } + } + }); + + /*** + * code for plain input boxes (see also dojo.formToObject, can we use that instead of this code? + * but it doesn't understand [] notation, presumably) + var obj = { }; + dojo.forEach(this.containerNode.elements, function(elm){ + if(!elm.name) { + return; // like "continue" + } + var namePath = elm.name.split("."); + var myObj=obj; + var name=namePath[namePath.length-1]; + for(var j=1,len2=namePath.length;j<len2;++j){ + var nameIndex = null; + var p=namePath[j - 1]; + var nameA=p.split("["); + if(nameA.length > 1){ + if(typeof(myObj[nameA[0]]) == "undefined"){ + myObj[nameA[0]]=[ ]; + } // if + nameIndex=parseInt(nameA[1]); + if(typeof(myObj[nameA[0]][nameIndex]) == "undefined"){ + myObj[nameA[0]][nameIndex] = { }; + } + } else if(typeof(myObj[nameA[0]]) == "undefined"){ + myObj[nameA[0]] = { } + } // if + + if(nameA.length == 1){ + myObj=myObj[nameA[0]]; + } else{ + myObj=myObj[nameA[0]][nameIndex]; + } // if + } // for + + if((elm.type != "select-multiple" && elm.type != "checkbox" && elm.type != "radio") || (elm.type == "radio" && elm.checked)){ + if(name == name.split("[")[0]){ + myObj[name]=elm.value; + } else{ + // can not set value when there is no name + } + } else if(elm.type == "checkbox" && elm.checked){ + if(typeof(myObj[name]) == 'undefined'){ + myObj[name]=[ ]; + } + myObj[name].push(elm.value); + } else if(elm.type == "select-multiple"){ + if(typeof(myObj[name]) == 'undefined'){ + myObj[name]=[ ]; + } + for(var jdx=0,len3=elm.options.length; jdx<len3; ++jdx){ + if(elm.options[jdx].selected){ + myObj[name].push(elm.options[jdx].value); + } + } + } // if + name=undefined; + }); // forEach + ***/ + return obj; + }, + + // TODO: ComboBox might need time to process a recently input value. This should be async? + isValid: function(){ + // summary: + // Returns true if all of the widgets are valid + + // This also populate this._invalidWidgets[] array with list of invalid widgets... + // TODO: put that into separate function? It's confusing to have that as a side effect + // of a method named isValid(). + + this._invalidWidgets = dojo.filter(this.getDescendants(), function(widget){ + return !widget.disabled && widget.isValid && !widget.isValid(); + }); + return !this._invalidWidgets.length; + }, + + + onValidStateChange: function(isValid){ + // summary: + // Stub function to connect to if you want to do something + // (like disable/enable a submit button) when the valid + // state changes on the form as a whole. + }, + + _widgetChange: function(widget){ + // summary: + // Connected to a widget's onChange function - update our + // valid state, if needed. + var isValid = this._lastValidState; + if(!widget || this._lastValidState === undefined){ + // We have passed a null widget, or we haven't been validated + // yet - let's re-check all our children + // This happens when we connect (or reconnect) our children + isValid = this.isValid(); + if(this._lastValidState === undefined){ + // Set this so that we don't fire an onValidStateChange + // the first time + this._lastValidState = isValid; + } + }else if(widget.isValid){ + this._invalidWidgets = dojo.filter(this._invalidWidgets || [], function(w){ + return (w != widget); + }, this); + if(!widget.isValid() && !widget.get("disabled")){ + this._invalidWidgets.push(widget); + } + isValid = (this._invalidWidgets.length === 0); + } + if(isValid !== this._lastValidState){ + this._lastValidState = isValid; + this.onValidStateChange(isValid); + } + }, + + connectChildren: function(){ + // summary: + // Connects to the onChange function of all children to + // track valid state changes. You can call this function + // directly, ex. in the event that you programmatically + // add a widget to the form *after* the form has been + // initialized. + dojo.forEach(this._changeConnections, dojo.hitch(this, "disconnect")); + var _this = this; + + // we connect to validate - so that it better reflects the states + // of the widgets - also, we only connect if it has a validate + // function (to avoid too many unneeded connections) + var conns = (this._changeConnections = []); + dojo.forEach(dojo.filter(this.getDescendants(), + function(item){ return item.validate; } + ), + function(widget){ + // We are interested in whenever the widget is validated - or + // whenever the disabled attribute on that widget is changed + conns.push(_this.connect(widget, "validate", + dojo.hitch(_this, "_widgetChange", widget))); + conns.push(_this.connect(widget, "_setDisabledAttr", + dojo.hitch(_this, "_widgetChange", widget))); + }); + + // Call the widget change function to update the valid state, in + // case something is different now. + this._widgetChange(null); + }, + + startup: function(){ + this.inherited(arguments); + // Initialize our valid state tracking. Needs to be done in startup + // because it's not guaranteed that our children are initialized + // yet. + this._changeConnections = []; + this.connectChildren(); + } + }); + +} + +if(!dojo._hasResource["dijit._DialogMixin"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit._DialogMixin"] = true; +dojo.provide("dijit._DialogMixin"); + + + +dojo.declare("dijit._DialogMixin", null, + { + // summary: + // This provides functions useful to Dialog and TooltipDialog + + attributeMap: dijit._Widget.prototype.attributeMap, + + execute: function(/*Object*/ formContents){ + // summary: + // Callback when the user hits the submit button. + // Override this method to handle Dialog execution. + // description: + // After the user has pressed the submit button, the Dialog + // first calls onExecute() to notify the container to hide the + // dialog and restore focus to wherever it used to be. + // + // *Then* this method is called. + // type: + // callback + }, + + onCancel: function(){ + // summary: + // Called when user has pressed the Dialog's cancel button, to notify container. + // description: + // Developer shouldn't override or connect to this method; + // it's a private communication device between the TooltipDialog + // and the thing that opened it (ex: `dijit.form.DropDownButton`) + // type: + // protected + }, + + onExecute: function(){ + // summary: + // Called when user has pressed the dialog's OK button, to notify container. + // description: + // Developer shouldn't override or connect to this method; + // it's a private communication device between the TooltipDialog + // and the thing that opened it (ex: `dijit.form.DropDownButton`) + // type: + // protected + }, + + _onSubmit: function(){ + // summary: + // Callback when user hits submit button + // type: + // protected + this.onExecute(); // notify container that we are about to execute + this.execute(this.get('value')); + }, + + _getFocusItems: function(/*Node*/ dialogNode){ + // summary: + // Find focusable Items each time a dialog is opened, + // setting _firstFocusItem and _lastFocusItem + // tags: + // protected + + var elems = dijit._getTabNavigable(dojo.byId(dialogNode)); + this._firstFocusItem = elems.lowest || elems.first || dialogNode; + this._lastFocusItem = elems.last || elems.highest || this._firstFocusItem; + if(dojo.isMoz && this._firstFocusItem.tagName.toLowerCase() == "input" && + dojo.getNodeProp(this._firstFocusItem, "type").toLowerCase() == "file"){ + // FF doesn't behave well when first element is input type=file, set first focusable to dialog container + dojo.attr(dialogNode, "tabIndex", "0"); + this._firstFocusItem = dialogNode; + } + } + } +); + +} + +if(!dojo._hasResource["dijit.DialogUnderlay"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.DialogUnderlay"] = true; +dojo.provide("dijit.DialogUnderlay"); + + + + + + +dojo.declare( + "dijit.DialogUnderlay", + [dijit._Widget, dijit._Templated], + { + // summary: + // The component that blocks the screen behind a `dijit.Dialog` + // + // description: + // A component used to block input behind a `dijit.Dialog`. Only a single + // instance of this widget is created by `dijit.Dialog`, and saved as + // a reference to be shared between all Dialogs as `dijit._underlay` + // + // The underlay itself can be styled based on and id: + // | #myDialog_underlay { background-color:red; } + // + // In the case of `dijit.Dialog`, this id is based on the id of the Dialog, + // suffixed with _underlay. + + // Template has two divs; outer div is used for fade-in/fade-out, and also to hold background iframe. + // Inner div has opacity specified in CSS file. + templateString: "<div class='dijitDialogUnderlayWrapper'><div class='dijitDialogUnderlay' dojoAttachPoint='node'></div></div>", + + // Parameters on creation or updatable later + + // dialogId: String + // Id of the dialog.... DialogUnderlay's id is based on this id + dialogId: "", + + // class: String + // This class name is used on the DialogUnderlay node, in addition to dijitDialogUnderlay + "class": "", + + attributeMap: { id: "domNode" }, + + _setDialogIdAttr: function(id){ + dojo.attr(this.node, "id", id + "_underlay"); + }, + + _setClassAttr: function(clazz){ + this.node.className = "dijitDialogUnderlay " + clazz; + }, + + postCreate: function(){ + // summary: + // Append the underlay to the body + dojo.body().appendChild(this.domNode); + }, + + layout: function(){ + // summary: + // Sets the background to the size of the viewport + // + // description: + // Sets the background to the size of the viewport (rather than the size + // of the document) since we need to cover the whole browser window, even + // if the document is only a few lines long. + // tags: + // private + + var is = this.node.style, + os = this.domNode.style; + + // hide the background temporarily, so that the background itself isn't + // causing scrollbars to appear (might happen when user shrinks browser + // window and then we are called to resize) + os.display = "none"; + + // then resize and show + var viewport = dojo.window.getBox(); + os.top = viewport.t + "px"; + os.left = viewport.l + "px"; + is.width = viewport.w + "px"; + is.height = viewport.h + "px"; + os.display = "block"; + }, + + show: function(){ + // summary: + // Show the dialog underlay + this.domNode.style.display = "block"; + this.layout(); + this.bgIframe = new dijit.BackgroundIframe(this.domNode); + }, + + hide: function(){ + // summary: + // Hides the dialog underlay + this.bgIframe.destroy(); + this.domNode.style.display = "none"; + }, + + uninitialize: function(){ + if(this.bgIframe){ + this.bgIframe.destroy(); + } + this.inherited(arguments); + } + } +); + +} + +if(!dojo._hasResource["dojo.html"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.html"] = true; +dojo.provide("dojo.html"); + +// the parser might be needed.. + + +(function(){ // private scope, sort of a namespace + + // idCounter is incremented with each instantiation to allow asignment of a unique id for tracking, logging purposes + var idCounter = 0, + d = dojo; + + dojo.html._secureForInnerHtml = function(/*String*/ cont){ + // summary: + // removes !DOCTYPE and title elements from the html string. + // + // khtml is picky about dom faults, you can't attach a style or <title> node as child of body + // must go into head, so we need to cut out those tags + // cont: + // An html string for insertion into the dom + // + return cont.replace(/(?:\s*<!DOCTYPE\s[^>]+>|<title[^>]*>[\s\S]*?<\/title>)/ig, ""); // String + }; + +/*==== + dojo.html._emptyNode = function(node){ + // summary: + // removes all child nodes from the given node + // node: DOMNode + // the parent element + }; +=====*/ + dojo.html._emptyNode = dojo.empty; + + dojo.html._setNodeContent = function(/* DomNode */ node, /* String|DomNode|NodeList */ cont){ + // summary: + // inserts the given content into the given node + // node: + // the parent element + // content: + // the content to be set on the parent element. + // This can be an html string, a node reference or a NodeList, dojo.NodeList, Array or other enumerable list of nodes + + // always empty + d.empty(node); + + if(cont) { + if(typeof cont == "string") { + cont = d._toDom(cont, node.ownerDocument); + } + if(!cont.nodeType && d.isArrayLike(cont)) { + // handle as enumerable, but it may shrink as we enumerate it + for(var startlen=cont.length, i=0; i<cont.length; i=startlen==cont.length ? i+1 : 0) { + d.place( cont[i], node, "last"); + } + } else { + // pass nodes, documentFragments and unknowns through to dojo.place + d.place(cont, node, "last"); + } + } + + // return DomNode + return node; + }; + + // we wrap up the content-setting operation in a object + dojo.declare("dojo.html._ContentSetter", null, + { + // node: DomNode|String + // An node which will be the parent element that we set content into + node: "", + + // content: String|DomNode|DomNode[] + // The content to be placed in the node. Can be an HTML string, a node reference, or a enumerable list of nodes + content: "", + + // id: String? + // Usually only used internally, and auto-generated with each instance + id: "", + + // cleanContent: Boolean + // Should the content be treated as a full html document, + // and the real content stripped of <html>, <body> wrapper before injection + cleanContent: false, + + // extractContent: Boolean + // Should the content be treated as a full html document, and the real content stripped of <html>, <body> wrapper before injection + extractContent: false, + + // parseContent: Boolean + // Should the node by passed to the parser after the new content is set + parseContent: false, + + // lifecyle methods + constructor: function(/* Object */params, /* String|DomNode */node){ + // summary: + // Provides a configurable, extensible object to wrap the setting on content on a node + // call the set() method to actually set the content.. + + // the original params are mixed directly into the instance "this" + dojo.mixin(this, params || {}); + + // give precedence to params.node vs. the node argument + // and ensure its a node, not an id string + node = this.node = dojo.byId( this.node || node ); + + if(!this.id){ + this.id = [ + "Setter", + (node) ? node.id || node.tagName : "", + idCounter++ + ].join("_"); + } + }, + set: function(/* String|DomNode|NodeList? */ cont, /* Object? */ params){ + // summary: + // front-end to the set-content sequence + // cont: + // An html string, node or enumerable list of nodes for insertion into the dom + // If not provided, the object's content property will be used + if(undefined !== cont){ + this.content = cont; + } + // in the re-use scenario, set needs to be able to mixin new configuration + if(params){ + this._mixin(params); + } + + this.onBegin(); + this.setContent(); + this.onEnd(); + + return this.node; + }, + setContent: function(){ + // summary: + // sets the content on the node + + var node = this.node; + if(!node) { + // can't proceed + throw new Error(this.declaredClass + ": setContent given no node"); + } + try{ + node = dojo.html._setNodeContent(node, this.content); + }catch(e){ + // check if a domfault occurs when we are appending this.errorMessage + // like for instance if domNode is a UL and we try append a DIV + + // FIXME: need to allow the user to provide a content error message string + var errMess = this.onContentError(e); + try{ + node.innerHTML = errMess; + }catch(e){ + console.error('Fatal ' + this.declaredClass + '.setContent could not change content due to '+e.message, e); + } + } + // always put back the node for the next method + this.node = node; // DomNode + }, + + empty: function() { + // summary + // cleanly empty out existing content + + // destroy any widgets from a previous run + // NOTE: if you dont want this you'll need to empty + // the parseResults array property yourself to avoid bad things happenning + if(this.parseResults && this.parseResults.length) { + dojo.forEach(this.parseResults, function(w) { + if(w.destroy){ + w.destroy(); + } + }); + delete this.parseResults; + } + // this is fast, but if you know its already empty or safe, you could + // override empty to skip this step + dojo.html._emptyNode(this.node); + }, + + onBegin: function(){ + // summary + // Called after instantiation, but before set(); + // It allows modification of any of the object properties + // - including the node and content provided - before the set operation actually takes place + // This default implementation checks for cleanContent and extractContent flags to + // optionally pre-process html string content + var cont = this.content; + + if(dojo.isString(cont)){ + if(this.cleanContent){ + cont = dojo.html._secureForInnerHtml(cont); + } + + if(this.extractContent){ + var match = cont.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im); + if(match){ cont = match[1]; } + } + } + + // clean out the node and any cruft associated with it - like widgets + this.empty(); + + this.content = cont; + return this.node; /* DomNode */ + }, + + onEnd: function(){ + // summary + // Called after set(), when the new content has been pushed into the node + // It provides an opportunity for post-processing before handing back the node to the caller + // This default implementation checks a parseContent flag to optionally run the dojo parser over the new content + if(this.parseContent){ + // populates this.parseResults if you need those.. + this._parse(); + } + return this.node; /* DomNode */ + }, + + tearDown: function(){ + // summary + // manually reset the Setter instance if its being re-used for example for another set() + // description + // tearDown() is not called automatically. + // In normal use, the Setter instance properties are simply allowed to fall out of scope + // but the tearDown method can be called to explicitly reset this instance. + delete this.parseResults; + delete this.node; + delete this.content; + }, + + onContentError: function(err){ + return "Error occured setting content: " + err; + }, + + _mixin: function(params){ + // mix properties/methods into the instance + // TODO: the intention with tearDown is to put the Setter's state + // back to that of the original constructor (vs. deleting/resetting everything regardless of ctor params) + // so we could do something here to move the original properties aside for later restoration + var empty = {}, key; + for(key in params){ + if(key in empty){ continue; } + // TODO: here's our opportunity to mask the properties we dont consider configurable/overridable + // .. but history shows we'll almost always guess wrong + this[key] = params[key]; + } + }, + _parse: function(){ + // summary: + // runs the dojo parser over the node contents, storing any results in this.parseResults + // Any errors resulting from parsing are passed to _onError for handling + + var rootNode = this.node; + try{ + // store the results (widgets, whatever) for potential retrieval + this.parseResults = dojo.parser.parse({ + rootNode: rootNode, + dir: this.dir, + lang: this.lang + }); + }catch(e){ + this._onError('Content', e, "Error parsing in _ContentSetter#"+this.id); + } + }, + + _onError: function(type, err, consoleText){ + // summary: + // shows user the string that is returned by on[type]Error + // overide/implement on[type]Error and return your own string to customize + var errText = this['on' + type + 'Error'].call(this, err); + if(consoleText){ + console.error(consoleText, err); + }else if(errText){ // a empty string won't change current content + dojo.html._setNodeContent(this.node, errText, true); + } + } + }); // end dojo.declare() + + dojo.html.set = function(/* DomNode */ node, /* String|DomNode|NodeList */ cont, /* Object? */ params){ + // summary: + // inserts (replaces) the given content into the given node. dojo.place(cont, node, "only") + // may be a better choice for simple HTML insertion. + // description: + // Unless you need to use the params capabilities of this method, you should use + // dojo.place(cont, node, "only"). dojo.place() has more robust support for injecting + // an HTML string into the DOM, but it only handles inserting an HTML string as DOM + // elements, or inserting a DOM node. dojo.place does not handle NodeList insertions + // or the other capabilities as defined by the params object for this method. + // node: + // the parent element that will receive the content + // cont: + // the content to be set on the parent element. + // This can be an html string, a node reference or a NodeList, dojo.NodeList, Array or other enumerable list of nodes + // params: + // Optional flags/properties to configure the content-setting. See dojo.html._ContentSetter + // example: + // A safe string/node/nodelist content replacement/injection with hooks for extension + // Example Usage: + // dojo.html.set(node, "some string"); + // dojo.html.set(node, contentNode, {options}); + // dojo.html.set(node, myNode.childNodes, {options}); + if(undefined == cont){ + console.warn("dojo.html.set: no cont argument provided, using empty string"); + cont = ""; + } + if(!params){ + // simple and fast + return dojo.html._setNodeContent(node, cont, true); + }else{ + // more options but slower + // note the arguments are reversed in order, to match the convention for instantiation via the parser + var op = new dojo.html._ContentSetter(dojo.mixin( + params, + { content: cont, node: node } + )); + return op.set(); + } + }; +})(); + +} + +if(!dojo._hasResource["dijit.layout.ContentPane"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.layout.ContentPane"] = true; +dojo.provide("dijit.layout.ContentPane"); + + + + // for dijit.layout.marginBox2contentBox() + + + + + + +dojo.declare( + "dijit.layout.ContentPane", dijit._Widget, +{ + // summary: + // A widget that acts as a container for mixed HTML and widgets, and includes an Ajax interface + // description: + // A widget that can be used as a stand alone widget + // or as a base class for other widgets. + // + // Handles replacement of document fragment using either external uri or javascript + // generated markup or DOM content, instantiating widgets within that content. + // Don't confuse it with an iframe, it only needs/wants document fragments. + // It's useful as a child of LayoutContainer, SplitContainer, or TabContainer. + // But note that those classes can contain any widget as a child. + // example: + // Some quick samples: + // To change the innerHTML use .set('content', '<b>new content</b>') + // + // Or you can send it a NodeList, .set('content', dojo.query('div [class=selected]', userSelection)) + // please note that the nodes in NodeList will copied, not moved + // + // To do a ajax update use .set('href', url) + + // href: String + // The href of the content that displays now. + // Set this at construction if you want to load data externally when the + // pane is shown. (Set preload=true to load it immediately.) + // Changing href after creation doesn't have any effect; Use set('href', ...); + href: "", + +/*===== + // content: String || DomNode || NodeList || dijit._Widget + // The innerHTML of the ContentPane. + // Note that the initialization parameter / argument to attr("content", ...) + // can be a String, DomNode, Nodelist, or _Widget. + content: "", +=====*/ + + // extractContent: Boolean + // Extract visible content from inside of <body> .... </body>. + // I.e., strip <html> and <head> (and it's contents) from the href + extractContent: false, + + // parseOnLoad: Boolean + // Parse content and create the widgets, if any. + parseOnLoad: true, + + // preventCache: Boolean + // Prevent caching of data from href's by appending a timestamp to the href. + preventCache: false, + + // preload: Boolean + // Force load of data on initialization even if pane is hidden. + preload: false, + + // refreshOnShow: Boolean + // Refresh (re-download) content when pane goes from hidden to shown + refreshOnShow: false, + + // loadingMessage: String + // Message that shows while downloading + loadingMessage: "<span class='dijitContentPaneLoading'>${loadingState}</span>", + + // errorMessage: String + // Message that shows if an error occurs + errorMessage: "<span class='dijitContentPaneError'>${errorState}</span>", + + // isLoaded: [readonly] Boolean + // True if the ContentPane has data in it, either specified + // during initialization (via href or inline content), or set + // via attr('content', ...) / attr('href', ...) + // + // False if it doesn't have any content, or if ContentPane is + // still in the process of downloading href. + isLoaded: false, + + baseClass: "dijitContentPane", + + // doLayout: Boolean + // - false - don't adjust size of children + // - true - if there is a single visible child widget, set it's size to + // however big the ContentPane is + doLayout: true, + + // ioArgs: Object + // Parameters to pass to xhrGet() request, for example: + // | <div dojoType="dijit.layout.ContentPane" href="./bar" ioArgs="{timeout: 500}"> + ioArgs: {}, + + // isContainer: [protected] Boolean + // Indicates that this widget acts as a "parent" to the descendant widgets. + // When the parent is started it will call startup() on the child widgets. + // See also `isLayoutContainer`. + isContainer: true, + + // isLayoutContainer: [protected] Boolean + // Indicates that this widget will call resize() on it's child widgets + // when they become visible. + isLayoutContainer: true, + + // onLoadDeferred: [readonly] dojo.Deferred + // This is the `dojo.Deferred` returned by attr('href', ...) and refresh(). + // Calling onLoadDeferred.addCallback() or addErrback() registers your + // callback to be called only once, when the prior attr('href', ...) call or + // the initial href parameter to the constructor finishes loading. + // + // This is different than an onLoad() handler which gets called any time any href is loaded. + onLoadDeferred: null, + + // Override _Widget's attributeMap because we don't want the title attribute (used to specify + // tab labels) to be copied to ContentPane.domNode... otherwise a tooltip shows up over the + // entire pane. + attributeMap: dojo.delegate(dijit._Widget.prototype.attributeMap, { + title: [] + }), + + postMixInProperties: function(){ + this.inherited(arguments); + var messages = dojo.i18n.getLocalization("dijit", "loading", this.lang); + this.loadingMessage = dojo.string.substitute(this.loadingMessage, messages); + this.errorMessage = dojo.string.substitute(this.errorMessage, messages); + + // Detect if we were initialized with data + if(!this.href && this.srcNodeRef && this.srcNodeRef.innerHTML){ + this.isLoaded = true; + } + }, + + buildRendering: function(){ + // Overrides Widget.buildRendering(). + // Since we have no template we need to set this.containerNode ourselves. + // For subclasses of ContentPane do have a template, does nothing. + this.inherited(arguments); + if(!this.containerNode){ + // make getDescendants() work + this.containerNode = this.domNode; + } + }, + + postCreate: function(){ + // remove the title attribute so it doesn't show up when hovering + // over a node + this.domNode.title = ""; + + if(!dojo.attr(this.domNode,"role")){ + dijit.setWaiRole(this.domNode, "group"); + } + + dojo.addClass(this.domNode, this.baseClass); + }, + + startup: function(){ + // summary: + // See `dijit.layout._LayoutWidget.startup` for description. + // Although ContentPane doesn't extend _LayoutWidget, it does implement + // the same API. + if(this._started){ return; } + + var parent = dijit._Contained.prototype.getParent.call(this); + this._childOfLayoutWidget = parent && parent.isLayoutContainer; + + // I need to call resize() on my child/children (when I become visible), unless + // I'm the child of a layout widget in which case my parent will call resize() on me and I'll do it then. + this._needLayout = !this._childOfLayoutWidget; + + if(this.isLoaded){ + dojo.forEach(this.getChildren(), function(child){ + child.startup(); + }); + } + + if(this._isShown() || this.preload){ + this._onShow(); + } + + this.inherited(arguments); + }, + + _checkIfSingleChild: function(){ + // summary: + // Test if we have exactly one visible widget as a child, + // and if so assume that we are a container for that widget, + // and should propogate startup() and resize() calls to it. + // Skips over things like data stores since they aren't visible. + + var childNodes = dojo.query("> *", this.containerNode).filter(function(node){ + return node.tagName !== "SCRIPT"; // or a regexp for hidden elements like script|area|map|etc.. + }), + childWidgetNodes = childNodes.filter(function(node){ + return dojo.hasAttr(node, "dojoType") || dojo.hasAttr(node, "widgetId"); + }), + candidateWidgets = dojo.filter(childWidgetNodes.map(dijit.byNode), function(widget){ + return widget && widget.domNode && widget.resize; + }); + + if( + // all child nodes are widgets + childNodes.length == childWidgetNodes.length && + + // all but one are invisible (like dojo.data) + candidateWidgets.length == 1 + ){ + this._singleChild = candidateWidgets[0]; + }else{ + delete this._singleChild; + } + + // So we can set overflow: hidden to avoid a safari bug w/scrollbars showing up (#9449) + dojo.toggleClass(this.containerNode, this.baseClass + "SingleChild", !!this._singleChild); + }, + + setHref: function(/*String|Uri*/ href){ + // summary: + // Deprecated. Use set('href', ...) instead. + dojo.deprecated("dijit.layout.ContentPane.setHref() is deprecated. Use set('href', ...) instead.", "", "2.0"); + return this.set("href", href); + }, + _setHrefAttr: function(/*String|Uri*/ href){ + // summary: + // Hook so attr("href", ...) works. + // description: + // Reset the (external defined) content of this pane and replace with new url + // Note: It delays the download until widget is shown if preload is false. + // href: + // url to the page you want to get, must be within the same domain as your mainpage + + // Cancel any in-flight requests (an attr('href') will cancel any in-flight attr('href', ...)) + this.cancel(); + + this.onLoadDeferred = new dojo.Deferred(dojo.hitch(this, "cancel")); + + this.href = href; + + // _setHrefAttr() is called during creation and by the user, after creation. + // only in the second case do we actually load the URL; otherwise it's done in startup() + if(this._created && (this.preload || this._isShown())){ + this._load(); + }else{ + // Set flag to indicate that href needs to be loaded the next time the + // ContentPane is made visible + this._hrefChanged = true; + } + + return this.onLoadDeferred; // dojo.Deferred + }, + + setContent: function(/*String|DomNode|Nodelist*/data){ + // summary: + // Deprecated. Use set('content', ...) instead. + dojo.deprecated("dijit.layout.ContentPane.setContent() is deprecated. Use set('content', ...) instead.", "", "2.0"); + this.set("content", data); + }, + _setContentAttr: function(/*String|DomNode|Nodelist*/data){ + // summary: + // Hook to make attr("content", ...) work. + // Replaces old content with data content, include style classes from old content + // data: + // the new Content may be String, DomNode or NodeList + // + // if data is a NodeList (or an array of nodes) nodes are copied + // so you can import nodes from another document implicitly + + // clear href so we can't run refresh and clear content + // refresh should only work if we downloaded the content + this.href = ""; + + // Cancel any in-flight requests (an attr('content') will cancel any in-flight attr('href', ...)) + this.cancel(); + + // Even though user is just setting content directly, still need to define an onLoadDeferred + // because the _onLoadHandler() handler is still getting called from setContent() + this.onLoadDeferred = new dojo.Deferred(dojo.hitch(this, "cancel")); + + this._setContent(data || ""); + + this._isDownloaded = false; // mark that content is from a attr('content') not an attr('href') + + return this.onLoadDeferred; // dojo.Deferred + }, + _getContentAttr: function(){ + // summary: + // Hook to make attr("content") work + return this.containerNode.innerHTML; + }, + + cancel: function(){ + // summary: + // Cancels an in-flight download of content + if(this._xhrDfd && (this._xhrDfd.fired == -1)){ + this._xhrDfd.cancel(); + } + delete this._xhrDfd; // garbage collect + + this.onLoadDeferred = null; + }, + + uninitialize: function(){ + if(this._beingDestroyed){ + this.cancel(); + } + this.inherited(arguments); + }, + + destroyRecursive: function(/*Boolean*/ preserveDom){ + // summary: + // Destroy the ContentPane and its contents + + // if we have multiple controllers destroying us, bail after the first + if(this._beingDestroyed){ + return; + } + this.inherited(arguments); + }, + + resize: function(changeSize, resultSize){ + // summary: + // See `dijit.layout._LayoutWidget.resize` for description. + // Although ContentPane doesn't extend _LayoutWidget, it does implement + // the same API. + + // For the TabContainer --> BorderContainer --> ContentPane case, _onShow() is + // never called, so resize() is our trigger to do the initial href download. + if(!this._wasShown){ + this._onShow(); + } + + this._resizeCalled = true; + + // Set margin box size, unless it wasn't specified, in which case use current size. + if(changeSize){ + dojo.marginBox(this.domNode, changeSize); + } + + // Compute content box size of containerNode in case we [later] need to size our single child. + var cn = this.containerNode; + if(cn === this.domNode){ + // If changeSize or resultSize was passed to this method and this.containerNode == + // this.domNode then we can compute the content-box size without querying the node, + // which is more reliable (similar to LayoutWidget.resize) (see for example #9449). + var mb = resultSize || {}; + dojo.mixin(mb, changeSize || {}); // changeSize overrides resultSize + if(!("h" in mb) || !("w" in mb)){ + mb = dojo.mixin(dojo.marginBox(cn), mb); // just use dojo.marginBox() to fill in missing values + } + this._contentBox = dijit.layout.marginBox2contentBox(cn, mb); + }else{ + this._contentBox = dojo.contentBox(cn); + } + + // Make my children layout, or size my single child widget + this._layoutChildren(); + }, + + _isShown: function(){ + // summary: + // Returns true if the content is currently shown. + // description: + // If I am a child of a layout widget then it actually returns true if I've ever been visible, + // not whether I'm currently visible, since that's much faster than tracing up the DOM/widget + // tree every call, and at least solves the performance problem on page load by deferring loading + // hidden ContentPanes until they are first shown + + if(this._childOfLayoutWidget){ + // If we are TitlePane, etc - we return that only *IF* we've been resized + if(this._resizeCalled && "open" in this){ + return this.open; + } + return this._resizeCalled; + }else if("open" in this){ + return this.open; // for TitlePane, etc. + }else{ + // TODO: with _childOfLayoutWidget check maybe this branch no longer necessary? + var node = this.domNode; + return (node.style.display != 'none') && (node.style.visibility != 'hidden') && !dojo.hasClass(node, "dijitHidden"); + } + }, + + _onShow: function(){ + // summary: + // Called when the ContentPane is made visible + // description: + // For a plain ContentPane, this is called on initialization, from startup(). + // If the ContentPane is a hidden pane of a TabContainer etc., then it's + // called whenever the pane is made visible. + // + // Does necessary processing, including href download and layout/resize of + // child widget(s) + + if(this.href){ + if(!this._xhrDfd && // if there's an href that isn't already being loaded + (!this.isLoaded || this._hrefChanged || this.refreshOnShow) + ){ + this.refresh(); + } + }else{ + // If we are the child of a layout widget then the layout widget will call resize() on + // us, and then we will size our child/children. Otherwise, we need to do it now. + if(!this._childOfLayoutWidget && this._needLayout){ + // If a layout has been scheduled for when we become visible, do it now + this._layoutChildren(); + } + } + + this.inherited(arguments); + + // Need to keep track of whether ContentPane has been shown (which is different than + // whether or not it's currently visible). + this._wasShown = true; + }, + + refresh: function(){ + // summary: + // [Re]download contents of href and display + // description: + // 1. cancels any currently in-flight requests + // 2. posts "loading..." message + // 3. sends XHR to download new data + + // Cancel possible prior in-flight request + this.cancel(); + + this.onLoadDeferred = new dojo.Deferred(dojo.hitch(this, "cancel")); + this._load(); + return this.onLoadDeferred; + }, + + _load: function(){ + // summary: + // Load/reload the href specified in this.href + + // display loading message + this._setContent(this.onDownloadStart(), true); + + var self = this; + var getArgs = { + preventCache: (this.preventCache || this.refreshOnShow), + url: this.href, + handleAs: "text" + }; + if(dojo.isObject(this.ioArgs)){ + dojo.mixin(getArgs, this.ioArgs); + } + + var hand = (this._xhrDfd = (this.ioMethod || dojo.xhrGet)(getArgs)); + + hand.addCallback(function(html){ + try{ + self._isDownloaded = true; + self._setContent(html, false); + self.onDownloadEnd(); + }catch(err){ + self._onError('Content', err); // onContentError + } + delete self._xhrDfd; + return html; + }); + + hand.addErrback(function(err){ + if(!hand.canceled){ + // show error message in the pane + self._onError('Download', err); // onDownloadError + } + delete self._xhrDfd; + return err; + }); + + // Remove flag saying that a load is needed + delete this._hrefChanged; + }, + + _onLoadHandler: function(data){ + // summary: + // This is called whenever new content is being loaded + this.isLoaded = true; + try{ + this.onLoadDeferred.callback(data); + this.onLoad(data); + }catch(e){ + console.error('Error '+this.widgetId+' running custom onLoad code: ' + e.message); + } + }, + + _onUnloadHandler: function(){ + // summary: + // This is called whenever the content is being unloaded + this.isLoaded = false; + try{ + this.onUnload(); + }catch(e){ + console.error('Error '+this.widgetId+' running custom onUnload code: ' + e.message); + } + }, + + destroyDescendants: function(){ + // summary: + // Destroy all the widgets inside the ContentPane and empty containerNode + + // Make sure we call onUnload (but only when the ContentPane has real content) + if(this.isLoaded){ + this._onUnloadHandler(); + } + + // Even if this.isLoaded == false there might still be a "Loading..." message + // to erase, so continue... + + // For historical reasons we need to delete all widgets under this.containerNode, + // even ones that the user has created manually. + var setter = this._contentSetter; + dojo.forEach(this.getChildren(), function(widget){ + if(widget.destroyRecursive){ + widget.destroyRecursive(); + } + }); + if(setter){ + // Most of the widgets in setter.parseResults have already been destroyed, but + // things like Menu that have been moved to <body> haven't yet + dojo.forEach(setter.parseResults, function(widget){ + if(widget.destroyRecursive && widget.domNode && widget.domNode.parentNode == dojo.body()){ + widget.destroyRecursive(); + } + }); + delete setter.parseResults; + } + + // And then clear away all the DOM nodes + dojo.html._emptyNode(this.containerNode); + + // Delete any state information we have about current contents + delete this._singleChild; + }, + + _setContent: function(cont, isFakeContent){ + // summary: + // Insert the content into the container node + + // first get rid of child widgets + this.destroyDescendants(); + + // dojo.html.set will take care of the rest of the details + // we provide an override for the error handling to ensure the widget gets the errors + // configure the setter instance with only the relevant widget instance properties + // NOTE: unless we hook into attr, or provide property setters for each property, + // we need to re-configure the ContentSetter with each use + var setter = this._contentSetter; + if(! (setter && setter instanceof dojo.html._ContentSetter)){ + setter = this._contentSetter = new dojo.html._ContentSetter({ + node: this.containerNode, + _onError: dojo.hitch(this, this._onError), + onContentError: dojo.hitch(this, function(e){ + // fires if a domfault occurs when we are appending this.errorMessage + // like for instance if domNode is a UL and we try append a DIV + var errMess = this.onContentError(e); + try{ + this.containerNode.innerHTML = errMess; + }catch(e){ + console.error('Fatal '+this.id+' could not change content due to '+e.message, e); + } + })/*, + _onError */ + }); + }; + + var setterParams = dojo.mixin({ + cleanContent: this.cleanContent, + extractContent: this.extractContent, + parseContent: this.parseOnLoad, + dir: this.dir, + lang: this.lang + }, this._contentSetterParams || {}); + + dojo.mixin(setter, setterParams); + + setter.set( (dojo.isObject(cont) && cont.domNode) ? cont.domNode : cont ); + + // setter params must be pulled afresh from the ContentPane each time + delete this._contentSetterParams; + + if(!isFakeContent){ + // Startup each top level child widget (and they will start their children, recursively) + dojo.forEach(this.getChildren(), function(child){ + // The parser has already called startup on all widgets *without* a getParent() method + if(!this.parseOnLoad || child.getParent){ + child.startup(); + } + }, this); + + // Call resize() on each of my child layout widgets, + // or resize() on my single child layout widget... + // either now (if I'm currently visible) + // or when I become visible + this._scheduleLayout(); + + this._onLoadHandler(cont); + } + }, + + _onError: function(type, err, consoleText){ + this.onLoadDeferred.errback(err); + + // shows user the string that is returned by on[type]Error + // overide on[type]Error and return your own string to customize + var errText = this['on' + type + 'Error'].call(this, err); + if(consoleText){ + console.error(consoleText, err); + }else if(errText){// a empty string won't change current content + this._setContent(errText, true); + } + }, + + _scheduleLayout: function(){ + // summary: + // Call resize() on each of my child layout widgets, either now + // (if I'm currently visible) or when I become visible + if(this._isShown()){ + this._layoutChildren(); + }else{ + this._needLayout = true; + } + }, + + _layoutChildren: function(){ + // summary: + // Since I am a Container widget, each of my children expects me to + // call resize() or layout() on them. + // description: + // Should be called on initialization and also whenever we get new content + // (from an href, or from attr('content', ...))... but deferred until + // the ContentPane is visible + + if(this.doLayout){ + this._checkIfSingleChild(); + } + + if(this._singleChild && this._singleChild.resize){ + var cb = this._contentBox || dojo.contentBox(this.containerNode); + + // note: if widget has padding this._contentBox will have l and t set, + // but don't pass them to resize() or it will doubly-offset the child + this._singleChild.resize({w: cb.w, h: cb.h}); + }else{ + // All my child widgets are independently sized (rather than matching my size), + // but I still need to call resize() on each child to make it layout. + dojo.forEach(this.getChildren(), function(widget){ + if(widget.resize){ + widget.resize(); + } + }); + } + delete this._needLayout; + }, + + // EVENT's, should be overide-able + onLoad: function(data){ + // summary: + // Event hook, is called after everything is loaded and widgetified + // tags: + // callback + }, + + onUnload: function(){ + // summary: + // Event hook, is called before old content is cleared + // tags: + // callback + }, + + onDownloadStart: function(){ + // summary: + // Called before download starts. + // description: + // The string returned by this function will be the html + // that tells the user we are loading something. + // Override with your own function if you want to change text. + // tags: + // extension + return this.loadingMessage; + }, + + onContentError: function(/*Error*/ error){ + // summary: + // Called on DOM faults, require faults etc. in content. + // + // In order to display an error message in the pane, return + // the error message from this method, as an HTML string. + // + // By default (if this method is not overriden), it returns + // nothing, so the error message is just printed to the console. + // tags: + // extension + }, + + onDownloadError: function(/*Error*/ error){ + // summary: + // Called when download error occurs. + // + // In order to display an error message in the pane, return + // the error message from this method, as an HTML string. + // + // Default behavior (if this method is not overriden) is to display + // the error message inside the pane. + // tags: + // extension + return this.errorMessage; + }, + + onDownloadEnd: function(){ + // summary: + // Called when download is finished. + // tags: + // callback + } +}); + +} + +if(!dojo._hasResource["dijit.TooltipDialog"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.TooltipDialog"] = true; +dojo.provide("dijit.TooltipDialog"); + + + + + + +dojo.declare( + "dijit.TooltipDialog", + [dijit.layout.ContentPane, dijit._Templated, dijit.form._FormMixin, dijit._DialogMixin], + { + // summary: + // Pops up a dialog that appears like a Tooltip + + // title: String + // Description of tooltip dialog (required for a11y) + title: "", + + // doLayout: [protected] Boolean + // Don't change this parameter from the default value. + // This ContentPane parameter doesn't make sense for TooltipDialog, since TooltipDialog + // is never a child of a layout container, nor can you specify the size of + // TooltipDialog in order to control the size of an inner widget. + doLayout: false, + + // autofocus: Boolean + // A Toggle to modify the default focus behavior of a Dialog, which + // is to focus on the first dialog element after opening the dialog. + // False will disable autofocusing. Default: true + autofocus: true, + + // baseClass: [protected] String + // The root className to use for the various states of this widget + baseClass: "dijitTooltipDialog", + + // _firstFocusItem: [private] [readonly] DomNode + // The pointer to the first focusable node in the dialog. + // Set by `dijit._DialogMixin._getFocusItems`. + _firstFocusItem: null, + + // _lastFocusItem: [private] [readonly] DomNode + // The pointer to which node has focus prior to our dialog. + // Set by `dijit._DialogMixin._getFocusItems`. + _lastFocusItem: null, + + templateString: dojo.cache("dijit", "templates/TooltipDialog.html", "<div waiRole=\"presentation\">\n\t<div class=\"dijitTooltipContainer\" waiRole=\"presentation\">\n\t\t<div class =\"dijitTooltipContents dijitTooltipFocusNode\" dojoAttachPoint=\"containerNode\" tabindex=\"-1\" waiRole=\"dialog\"></div>\n\t</div>\n\t<div class=\"dijitTooltipConnector\" waiRole=\"presentation\"></div>\n</div>\n"), + + postCreate: function(){ + this.inherited(arguments); + this.connect(this.containerNode, "onkeypress", "_onKey"); + this.containerNode.title = this.title; + }, + + orient: function(/*DomNode*/ node, /*String*/ aroundCorner, /*String*/ corner){ + // summary: + // Configure widget to be displayed in given position relative to the button. + // This is called from the dijit.popup code, and should not be called + // directly. + // tags: + // protected + var c = this._currentOrientClass; + if(c){ + dojo.removeClass(this.domNode, c); + } + c = "dijitTooltipAB"+(corner.charAt(1) == 'L'?"Left":"Right")+" dijitTooltip"+(corner.charAt(0) == 'T' ? "Below" : "Above"); + dojo.addClass(this.domNode, c); + this._currentOrientClass = c; + }, + + onOpen: function(/*Object*/ pos){ + // summary: + // Called when dialog is displayed. + // This is called from the dijit.popup code, and should not be called directly. + // tags: + // protected + + this.orient(this.domNode,pos.aroundCorner, pos.corner); + this._onShow(); // lazy load trigger + + if(this.autofocus){ + this._getFocusItems(this.containerNode); + dijit.focus(this._firstFocusItem); + } + }, + + onClose: function(){ + // summary: + // Called when dialog is hidden. + // This is called from the dijit.popup code, and should not be called directly. + // tags: + // protected + this.onHide(); + }, + + _onKey: function(/*Event*/ evt){ + // summary: + // Handler for keyboard events + // description: + // Keep keyboard focus in dialog; close dialog on escape key + // tags: + // private + + var node = evt.target; + var dk = dojo.keys; + if(evt.charOrCode === dk.TAB){ + this._getFocusItems(this.containerNode); + } + var singleFocusItem = (this._firstFocusItem == this._lastFocusItem); + if(evt.charOrCode == dk.ESCAPE){ + // Use setTimeout to avoid crash on IE, see #10396. + setTimeout(dojo.hitch(this, "onCancel"), 0); + dojo.stopEvent(evt); + }else if(node == this._firstFocusItem && evt.shiftKey && evt.charOrCode === dk.TAB){ + if(!singleFocusItem){ + dijit.focus(this._lastFocusItem); // send focus to last item in dialog + } + dojo.stopEvent(evt); + }else if(node == this._lastFocusItem && evt.charOrCode === dk.TAB && !evt.shiftKey){ + if(!singleFocusItem){ + dijit.focus(this._firstFocusItem); // send focus to first item in dialog + } + dojo.stopEvent(evt); + }else if(evt.charOrCode === dk.TAB){ + // we want the browser's default tab handling to move focus + // but we don't want the tab to propagate upwards + evt.stopPropagation(); + } + } + } + ); + +} + +if(!dojo._hasResource["dijit.Dialog"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.Dialog"] = true; +dojo.provide("dijit.Dialog"); + + + + + + + + + + + + + + + +/*===== +dijit._underlay = function(kwArgs){ + // summary: + // A shared instance of a `dijit.DialogUnderlay` + // + // description: + // A shared instance of a `dijit.DialogUnderlay` created and + // used by `dijit.Dialog`, though never created until some Dialog + // or subclass thereof is shown. +}; +=====*/ + +dojo.declare( + "dijit._DialogBase", + [dijit._Templated, dijit.form._FormMixin, dijit._DialogMixin, dijit._CssStateMixin], + { + // summary: + // A modal dialog Widget + // + // description: + // Pops up a modal dialog window, blocking access to the screen + // and also graying out the screen Dialog is extended from + // ContentPane so it supports all the same parameters (href, etc.) + // + // example: + // | <div dojoType="dijit.Dialog" href="test.html"></div> + // + // example: + // | var foo = new dijit.Dialog({ title: "test dialog", content: "test content" }; + // | dojo.body().appendChild(foo.domNode); + // | foo.startup(); + + templateString: dojo.cache("dijit", "templates/Dialog.html", "<div class=\"dijitDialog\" tabindex=\"-1\" waiRole=\"dialog\" waiState=\"labelledby-${id}_title\">\n\t<div dojoAttachPoint=\"titleBar\" class=\"dijitDialogTitleBar\">\n\t<span dojoAttachPoint=\"titleNode\" class=\"dijitDialogTitle\" id=\"${id}_title\"></span>\n\t<span dojoAttachPoint=\"closeButtonNode\" class=\"dijitDialogCloseIcon\" dojoAttachEvent=\"onclick: onCancel\" title=\"${buttonCancel}\">\n\t\t<span dojoAttachPoint=\"closeText\" class=\"closeText\" title=\"${buttonCancel}\">x</span>\n\t</span>\n\t</div>\n\t\t<div dojoAttachPoint=\"containerNode\" class=\"dijitDialogPaneContent\"></div>\n</div>\n"), + + baseClass: "dijitDialog", + + cssStateNodes: { + closeButtonNode: "dijitDialogCloseIcon" + }, + + attributeMap: dojo.delegate(dijit._Widget.prototype.attributeMap, { + title: [ + { node: "titleNode", type: "innerHTML" }, + { node: "titleBar", type: "attribute" } + ], + "aria-describedby":"" + }), + + // open: Boolean + // True if Dialog is currently displayed on screen. + open: false, + + // duration: Integer + // The time in milliseconds it takes the dialog to fade in and out + duration: dijit.defaultDuration, + + // refocus: Boolean + // A Toggle to modify the default focus behavior of a Dialog, which + // is to re-focus the element which had focus before being opened. + // False will disable refocusing. Default: true + refocus: true, + + // autofocus: Boolean + // A Toggle to modify the default focus behavior of a Dialog, which + // is to focus on the first dialog element after opening the dialog. + // False will disable autofocusing. Default: true + autofocus: true, + + // _firstFocusItem: [private] [readonly] DomNode + // The pointer to the first focusable node in the dialog. + // Set by `dijit._DialogMixin._getFocusItems`. + _firstFocusItem: null, + + // _lastFocusItem: [private] [readonly] DomNode + // The pointer to which node has focus prior to our dialog. + // Set by `dijit._DialogMixin._getFocusItems`. + _lastFocusItem: null, + + // doLayout: [protected] Boolean + // Don't change this parameter from the default value. + // This ContentPane parameter doesn't make sense for Dialog, since Dialog + // is never a child of a layout container, nor can you specify the size of + // Dialog in order to control the size of an inner widget. + doLayout: false, + + // draggable: Boolean + // Toggles the moveable aspect of the Dialog. If true, Dialog + // can be dragged by it's title. If false it will remain centered + // in the viewport. + draggable: true, + + //aria-describedby: String + // Allows the user to add an aria-describedby attribute onto the dialog. The value should + // be the id of the container element of text that describes the dialog purpose (usually + // the first text in the dialog). + // <div dojoType="dijit.Dialog" aria-describedby="intro" .....> + // <div id="intro">Introductory text</div> + // <div>rest of dialog contents</div> + // </div> + "aria-describedby":"", + + postMixInProperties: function(){ + var _nlsResources = dojo.i18n.getLocalization("dijit", "common"); + dojo.mixin(this, _nlsResources); + this.inherited(arguments); + }, + + postCreate: function(){ + dojo.style(this.domNode, { + display: "none", + position:"absolute" + }); + dojo.body().appendChild(this.domNode); + + this.inherited(arguments); + + this.connect(this, "onExecute", "hide"); + this.connect(this, "onCancel", "hide"); + this._modalconnects = []; + }, + + onLoad: function(){ + // summary: + // Called when data has been loaded from an href. + // Unlike most other callbacks, this function can be connected to (via `dojo.connect`) + // but should *not* be overriden. + // tags: + // callback + + // when href is specified we need to reposition the dialog after the data is loaded + // and find the focusable elements + this._position(); + if(this.autofocus){ + this._getFocusItems(this.domNode); + dijit.focus(this._firstFocusItem); + } + this.inherited(arguments); + }, + + _endDrag: function(e){ + // summary: + // Called after dragging the Dialog. Saves the position of the dialog in the viewport. + // tags: + // private + if(e && e.node && e.node === this.domNode){ + this._relativePosition = dojo.position(e.node); + } + }, + + _setup: function(){ + // summary: + // Stuff we need to do before showing the Dialog for the first + // time (but we defer it until right beforehand, for + // performance reasons). + // tags: + // private + + var node = this.domNode; + + if(this.titleBar && this.draggable){ + this._moveable = (dojo.isIE == 6) ? + new dojo.dnd.TimedMoveable(node, { handle: this.titleBar }) : // prevent overload, see #5285 + new dojo.dnd.Moveable(node, { handle: this.titleBar, timeout: 0 }); + dojo.subscribe("/dnd/move/stop",this,"_endDrag"); + }else{ + dojo.addClass(node,"dijitDialogFixed"); + } + + this.underlayAttrs = { + dialogId: this.id, + "class": dojo.map(this["class"].split(/\s/), function(s){ return s+"_underlay"; }).join(" ") + }; + + this._fadeIn = dojo.fadeIn({ + node: node, + duration: this.duration, + beforeBegin: dojo.hitch(this, function(){ + var underlay = dijit._underlay; + if(!underlay){ + underlay = dijit._underlay = new dijit.DialogUnderlay(this.underlayAttrs); + }else{ + underlay.set(this.underlayAttrs); + } + + var ds = dijit._dialogStack, + zIndex = 948 + ds.length*2; + if(ds.length == 1){ // first dialog + underlay.show(); + } + dojo.style(dijit._underlay.domNode, 'zIndex', zIndex); + dojo.style(this.domNode, 'zIndex', zIndex + 1); + }), + onEnd: dojo.hitch(this, function(){ + if(this.autofocus){ + // find focusable Items each time dialog is shown since if dialog contains a widget the + // first focusable items can change + this._getFocusItems(this.domNode); + dijit.focus(this._firstFocusItem); + } + }) + }); + + this._fadeOut = dojo.fadeOut({ + node: node, + duration: this.duration, + onEnd: dojo.hitch(this, function(){ + node.style.display = "none"; + + // Restore the previous dialog in the stack, or if this is the only dialog + // then restore to original page + var ds = dijit._dialogStack; + if(ds.length == 0){ + dijit._underlay.hide(); + }else{ + dojo.style(dijit._underlay.domNode, 'zIndex', 948 + ds.length*2); + dijit._underlay.set(ds[ds.length-1].underlayAttrs); + } + + // Restore focus to wherever it was before this dialog was displayed + if(this.refocus){ + var focus = this._savedFocus; + + // If we are returning control to a previous dialog but for some reason + // that dialog didn't have a focused field, set focus to first focusable item. + // This situation could happen if two dialogs appeared at nearly the same time, + // since a dialog doesn't set it's focus until the fade-in is finished. + if(ds.length > 0){ + var pd = ds[ds.length-1]; + if(!dojo.isDescendant(focus.node, pd.domNode)){ + pd._getFocusItems(pd.domNode); + focus = pd._firstFocusItem; + } + } + + dijit.focus(focus); + } + }) + }); + }, + + uninitialize: function(){ + var wasPlaying = false; + if(this._fadeIn && this._fadeIn.status() == "playing"){ + wasPlaying = true; + this._fadeIn.stop(); + } + if(this._fadeOut && this._fadeOut.status() == "playing"){ + wasPlaying = true; + this._fadeOut.stop(); + } + + // Hide the underlay, unless the underlay widget has already been destroyed + // because we are being called during page unload (when all widgets are destroyed) + if((this.open || wasPlaying) && !dijit._underlay._destroyed){ + dijit._underlay.hide(); + } + + if(this._moveable){ + this._moveable.destroy(); + } + this.inherited(arguments); + }, + + _size: function(){ + // summary: + // If necessary, shrink dialog contents so dialog fits in viewport + // tags: + // private + + this._checkIfSingleChild(); + + // If we resized the dialog contents earlier, reset them back to original size, so + // that if the user later increases the viewport size, the dialog can display w/out a scrollbar. + // Need to do this before the dojo.marginBox(this.domNode) call below. + if(this._singleChild){ + if(this._singleChildOriginalStyle){ + this._singleChild.domNode.style.cssText = this._singleChildOriginalStyle; + } + delete this._singleChildOriginalStyle; + }else{ + dojo.style(this.containerNode, { + width:"auto", + height:"auto" + }); + } + + var mb = dojo.marginBox(this.domNode); + var viewport = dojo.window.getBox(); + if(mb.w >= viewport.w || mb.h >= viewport.h){ + // Reduce size of dialog contents so that dialog fits in viewport + + var w = Math.min(mb.w, Math.floor(viewport.w * 0.75)), + h = Math.min(mb.h, Math.floor(viewport.h * 0.75)); + + if(this._singleChild && this._singleChild.resize){ + this._singleChildOriginalStyle = this._singleChild.domNode.style.cssText; + this._singleChild.resize({w: w, h: h}); + }else{ + dojo.style(this.containerNode, { + width: w + "px", + height: h + "px", + overflow: "auto", + position: "relative" // workaround IE bug moving scrollbar or dragging dialog + }); + } + }else{ + if(this._singleChild && this._singleChild.resize){ + this._singleChild.resize(); + } + } + }, + + _position: function(){ + // summary: + // Position modal dialog in the viewport. If no relative offset + // in the viewport has been determined (by dragging, for instance), + // center the node. Otherwise, use the Dialog's stored relative offset, + // and position the node to top: left: values based on the viewport. + // tags: + // private + if(!dojo.hasClass(dojo.body(),"dojoMove")){ + var node = this.domNode, + viewport = dojo.window.getBox(), + p = this._relativePosition, + bb = p ? null : dojo._getBorderBox(node), + l = Math.floor(viewport.l + (p ? p.x : (viewport.w - bb.w) / 2)), + t = Math.floor(viewport.t + (p ? p.y : (viewport.h - bb.h) / 2)) + ; + dojo.style(node,{ + left: l + "px", + top: t + "px" + }); + } + }, + + _onKey: function(/*Event*/ evt){ + // summary: + // Handles the keyboard events for accessibility reasons + // tags: + // private + + var ds = dijit._dialogStack; + if(ds[ds.length-1] != this){ + // console.debug(this.id + ': skipping because', this, 'is not the active dialog'); + return; + } + + if(evt.charOrCode){ + var dk = dojo.keys; + var node = evt.target; + if(evt.charOrCode === dk.TAB){ + this._getFocusItems(this.domNode); + } + var singleFocusItem = (this._firstFocusItem == this._lastFocusItem); + // see if we are shift-tabbing from first focusable item on dialog + if(node == this._firstFocusItem && evt.shiftKey && evt.charOrCode === dk.TAB){ + if(!singleFocusItem){ + dijit.focus(this._lastFocusItem); // send focus to last item in dialog + } + dojo.stopEvent(evt); + }else if(node == this._lastFocusItem && evt.charOrCode === dk.TAB && !evt.shiftKey){ + if(!singleFocusItem){ + dijit.focus(this._firstFocusItem); // send focus to first item in dialog + } + dojo.stopEvent(evt); + }else{ + // see if the key is for the dialog + while(node){ + if(node == this.domNode || dojo.hasClass(node, "dijitPopup")){ + if(evt.charOrCode == dk.ESCAPE){ + this.onCancel(); + }else{ + return; // just let it go + } + } + node = node.parentNode; + } + // this key is for the disabled document window + if(evt.charOrCode !== dk.TAB){ // allow tabbing into the dialog for a11y + dojo.stopEvent(evt); + // opera won't tab to a div + }else if(!dojo.isOpera){ + try{ + this._firstFocusItem.focus(); + }catch(e){ /*squelch*/ } + } + } + } + }, + + show: function(){ + // summary: + // Display the dialog + if(this.open){ return; } + + // first time we show the dialog, there's some initialization stuff to do + if(!this._alreadyInitialized){ + this._setup(); + this._alreadyInitialized=true; + } + + if(this._fadeOut.status() == "playing"){ + this._fadeOut.stop(); + } + + this._modalconnects.push(dojo.connect(window, "onscroll", this, "layout")); + this._modalconnects.push(dojo.connect(window, "onresize", this, function(){ + // IE gives spurious resize events and can actually get stuck + // in an infinite loop if we don't ignore them + var viewport = dojo.window.getBox(); + if(!this._oldViewport || + viewport.h != this._oldViewport.h || + viewport.w != this._oldViewport.w){ + this.layout(); + this._oldViewport = viewport; + } + })); + this._modalconnects.push(dojo.connect(dojo.doc.documentElement, "onkeypress", this, "_onKey")); + + dojo.style(this.domNode, { + opacity:0, + display:"" + }); + + this.open = true; + this._onShow(); // lazy load trigger + + this._size(); + this._position(); + dijit._dialogStack.push(this); + this._fadeIn.play(); + + this._savedFocus = dijit.getFocus(this); + }, + + hide: function(){ + // summary: + // Hide the dialog + + // if we haven't been initialized yet then we aren't showing and we can just return + // or if we aren't the active dialog, don't allow us to close yet + var ds = dijit._dialogStack; + if(!this._alreadyInitialized || this != ds[ds.length-1]){ + return; + } + + if(this._fadeIn.status() == "playing"){ + this._fadeIn.stop(); + } + + // throw away current active dialog from stack -- making the previous dialog or the node on the original page active + ds.pop(); + + this._fadeOut.play(); + + if(this._scrollConnected){ + this._scrollConnected = false; + } + dojo.forEach(this._modalconnects, dojo.disconnect); + this._modalconnects = []; + + if(this._relativePosition){ + delete this._relativePosition; + } + this.open = false; + + this.onHide(); + }, + + layout: function(){ + // summary: + // Position the Dialog and the underlay + // tags: + // private + if(this.domNode.style.display != "none"){ + if(dijit._underlay){ // avoid race condition during show() + dijit._underlay.layout(); + } + this._position(); + } + }, + + destroy: function(){ + dojo.forEach(this._modalconnects, dojo.disconnect); + if(this.refocus && this.open){ + setTimeout(dojo.hitch(dijit,"focus",this._savedFocus), 25); + } + this.inherited(arguments); + } + } +); + +dojo.declare( + "dijit.Dialog", + [dijit.layout.ContentPane, dijit._DialogBase], + {} +); + +// Stack of currenctly displayed dialogs, layered on top of each other +dijit._dialogStack = []; + +// For back-compat. TODO: remove in 2.0 + + +} + +if(!dojo._hasResource["dijit._editor.selection"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit._editor.selection"] = true; +dojo.provide("dijit._editor.selection"); + +// FIXME: +// all of these methods branch internally for IE. This is probably +// sub-optimal in terms of runtime performance. We should investigate the +// size difference for differentiating at definition time. + +dojo.mixin(dijit._editor.selection, { + getType: function(){ + // summary: + // Get the selection type (like dojo.doc.select.type in IE). + if(dojo.isIE){ + return dojo.doc.selection.type.toLowerCase(); + }else{ + var stype = "text"; + + // Check if the actual selection is a CONTROL (IMG, TABLE, HR, etc...). + var oSel; + try{ + oSel = dojo.global.getSelection(); + }catch(e){ /*squelch*/ } + + if(oSel && oSel.rangeCount == 1){ + var oRange = oSel.getRangeAt(0); + if( (oRange.startContainer == oRange.endContainer) && + ((oRange.endOffset - oRange.startOffset) == 1) && + (oRange.startContainer.nodeType != 3 /* text node*/) + ){ + stype = "control"; + } + } + return stype; //String + } + }, + + getSelectedText: function(){ + // summary: + // Return the text (no html tags) included in the current selection or null if no text is selected + if(dojo.isIE){ + if(dijit._editor.selection.getType() == 'control'){ + return null; + } + return dojo.doc.selection.createRange().text; + }else{ + var selection = dojo.global.getSelection(); + if(selection){ + return selection.toString(); //String + } + } + return ''; + }, + + getSelectedHtml: function(){ + // summary: + // Return the html text of the current selection or null if unavailable + if(dojo.isIE){ + if(dijit._editor.selection.getType() == 'control'){ + return null; + } + return dojo.doc.selection.createRange().htmlText; + }else{ + var selection = dojo.global.getSelection(); + if(selection && selection.rangeCount){ + var i; + var html = ""; + for(i = 0; i < selection.rangeCount; i++){ + //Handle selections spanning ranges, such as Opera + var frag = selection.getRangeAt(i).cloneContents(); + var div = dojo.doc.createElement("div"); + div.appendChild(frag); + html += div.innerHTML; + } + return html; //String + } + return null; + } + }, + + getSelectedElement: function(){ + // summary: + // Retrieves the selected element (if any), just in the case that + // a single element (object like and image or a table) is + // selected. + if(dijit._editor.selection.getType() == "control"){ + if(dojo.isIE){ + var range = dojo.doc.selection.createRange(); + if(range && range.item){ + return dojo.doc.selection.createRange().item(0); + } + }else{ + var selection = dojo.global.getSelection(); + return selection.anchorNode.childNodes[ selection.anchorOffset ]; + } + } + return null; + }, + + getParentElement: function(){ + // summary: + // Get the parent element of the current selection + if(dijit._editor.selection.getType() == "control"){ + var p = this.getSelectedElement(); + if(p){ return p.parentNode; } + }else{ + if(dojo.isIE){ + var r = dojo.doc.selection.createRange(); + r.collapse(true); + return r.parentElement(); + }else{ + var selection = dojo.global.getSelection(); + if(selection){ + var node = selection.anchorNode; + while(node && (node.nodeType != 1)){ // not an element + node = node.parentNode; + } + return node; + } + } + } + return null; + }, + + hasAncestorElement: function(/*String*/tagName /* ... */){ + // summary: + // Check whether current selection has a parent element which is + // of type tagName (or one of the other specified tagName) + // tagName: String + // The tag name to determine if it has an ancestor of. + return this.getAncestorElement.apply(this, arguments) != null; //Boolean + }, + + getAncestorElement: function(/*String*/tagName /* ... */){ + // summary: + // Return the parent element of the current selection which is of + // type tagName (or one of the other specified tagName) + // tagName: String + // The tag name to determine if it has an ancestor of. + var node = this.getSelectedElement() || this.getParentElement(); + return this.getParentOfType(node, arguments); //DOMNode + }, + + isTag: function(/*DomNode*/ node, /*String[]*/ tags){ + // summary: + // Function to determine if a node is one of an array of tags. + // node: + // The node to inspect. + // tags: + // An array of tag name strings to check to see if the node matches. + if(node && node.tagName){ + var _nlc = node.tagName.toLowerCase(); + for(var i=0; i<tags.length; i++){ + var _tlc = String(tags[i]).toLowerCase(); + if(_nlc == _tlc){ + return _tlc; // String + } + } + } + return ""; + }, + + getParentOfType: function(/*DomNode*/ node, /*String[]*/ tags){ + // summary: + // Function to locate a parent node that matches one of a set of tags + // node: + // The node to inspect. + // tags: + // An array of tag name strings to check to see if the node matches. + while(node){ + if(this.isTag(node, tags).length){ + return node; // DOMNode + } + node = node.parentNode; + } + return null; + }, + + collapse: function(/*Boolean*/beginning){ + // summary: + // Function to collapse (clear), the current selection + // beginning: Boolean + // Boolean to indicate whether to collapse the cursor to the beginning of the selection or end. + if(window.getSelection){ + var selection = dojo.global.getSelection(); + if(selection.removeAllRanges){ // Mozilla + if(beginning){ + selection.collapseToStart(); + }else{ + selection.collapseToEnd(); + } + }else{ // Safari + // pulled from WebCore/ecma/kjs_window.cpp, line 2536 + selection.collapse(beginning); + } + }else if(dojo.isIE){ // IE + var range = dojo.doc.selection.createRange(); + range.collapse(beginning); + range.select(); + } + }, + + remove: function(){ + // summary: + // Function to delete the currently selected content from the document. + var sel = dojo.doc.selection; + if(dojo.isIE){ + if(sel.type.toLowerCase() != "none"){ + sel.clear(); + } + return sel; //Selection + }else{ + sel = dojo.global.getSelection(); + sel.deleteFromDocument(); + return sel; //Selection + } + }, + + selectElementChildren: function(/*DomNode*/element,/*Boolean?*/nochangefocus){ + // summary: + // clear previous selection and select the content of the node + // (excluding the node itself) + // element: DOMNode + // The element you wish to select the children content of. + // nochangefocus: Boolean + // Boolean to indicate if the foxus should change or not. + var win = dojo.global; + var doc = dojo.doc; + var range; + element = dojo.byId(element); + if(doc.selection && dojo.isIE && dojo.body().createTextRange){ // IE + range = element.ownerDocument.body.createTextRange(); + range.moveToElementText(element); + if(!nochangefocus){ + try{ + range.select(); // IE throws an exception here if the widget is hidden. See #5439 + }catch(e){ /* squelch */} + } + }else if(win.getSelection){ + var selection = dojo.global.getSelection(); + if(dojo.isOpera){ + //Opera's selectAllChildren doesn't seem to work right + //against <body> nodes and possibly others ... so + //we use the W3C range API + if(selection.rangeCount){ + range = selection.getRangeAt(0); + }else{ + range = doc.createRange(); + } + range.setStart(element, 0); + range.setEnd(element,(element.nodeType == 3)?element.length:element.childNodes.length); + selection.addRange(range); + }else{ + selection.selectAllChildren(element); + } + } + }, + + selectElement: function(/*DomNode*/element,/*Boolean?*/nochangefocus){ + // summary: + // clear previous selection and select element (including all its children) + // element: DOMNode + // The element to select. + // nochangefocus: Boolean + // Boolean indicating if the focus should be changed. IE only. + var range; + var doc = dojo.doc; + var win = dojo.global; + element = dojo.byId(element); + if(dojo.isIE && dojo.body().createTextRange){ + try{ + range = dojo.body().createControlRange(); + range.addElement(element); + if(!nochangefocus){ + range.select(); + } + }catch(e){ + this.selectElementChildren(element,nochangefocus); + } + }else if(dojo.global.getSelection){ + var selection = win.getSelection(); + range = doc.createRange(); + if(selection.removeAllRanges){ // Mozilla + // FIXME: does this work on Safari? + if(dojo.isOpera){ + //Opera works if you use the current range on + //the selection if present. + if(selection.getRangeAt(0)){ + range = selection.getRangeAt(0); + } + } + range.selectNode(element); + selection.removeAllRanges(); + selection.addRange(range); + } + } + }, + + inSelection: function(node){ + // summary: + // This function determines if 'node' is + // in the current selection. + // tags: + // public + if(node){ + var newRange; + var doc = dojo.doc; + var range; + + if(dojo.global.getSelection){ + //WC3 + var sel = dojo.global.getSelection(); + if(sel && sel.rangeCount > 0){ + range = sel.getRangeAt(0); + } + if(range && range.compareBoundaryPoints && doc.createRange){ + try{ + newRange = doc.createRange(); + newRange.setStart(node, 0); + if(range.compareBoundaryPoints(range.START_TO_END, newRange) === 1){ + return true; + } + }catch(e){ /* squelch */} + } + }else if(doc.selection){ + // Probably IE, so we can't use the range object as the pseudo + // range doesn't implement the boundry checking, we have to + // use IE specific crud. + range = doc.selection.createRange(); + try{ + newRange = node.ownerDocument.body.createControlRange(); + if(newRange){ + newRange.addElement(node); + } + }catch(e1){ + try{ + newRange = node.ownerDocument.body.createTextRange(); + newRange.moveToElementText(node); + }catch(e2){/* squelch */} + } + if(range && newRange){ + // We can finally compare similar to W3C + if(range.compareEndPoints("EndToStart", newRange) === 1){ + return true; + } + } + } + } + return false; // boolean + } + +}); + +} + +if(!dojo._hasResource["dijit._editor.range"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit._editor.range"] = true; +dojo.provide("dijit._editor.range"); + +dijit.range={}; + +dijit.range.getIndex=function(/*DomNode*/node, /*DomNode*/parent){ +// dojo.profile.start("dijit.range.getIndex"); + var ret=[], retR=[]; + var stop = parent; + var onode = node; + + var pnode, n; + while(node != stop){ + var i = 0; + pnode = node.parentNode; + while((n=pnode.childNodes[i++])){ + if(n === node){ + --i; + break; + } + } + //if(i>=pnode.childNodes.length){ + //dojo.debug("Error finding index of a node in dijit.range.getIndex"); + //} + ret.unshift(i); + retR.unshift(i-pnode.childNodes.length); + node = pnode; + } + + //normalized() can not be called so often to prevent + //invalidating selection/range, so we have to detect + //here that any text nodes in a row + if(ret.length > 0 && onode.nodeType == 3){ + n = onode.previousSibling; + while(n && n.nodeType == 3){ + ret[ret.length-1]--; + n = n.previousSibling; + } + n = onode.nextSibling; + while(n && n.nodeType == 3){ + retR[retR.length-1]++; + n = n.nextSibling; + } + } +// dojo.profile.end("dijit.range.getIndex"); + return {o: ret, r:retR}; +} + +dijit.range.getNode = function(/*Array*/index, /*DomNode*/parent){ + if(!dojo.isArray(index) || index.length == 0){ + return parent; + } + var node = parent; +// if(!node)debugger + dojo.every(index, function(i){ + if(i >= 0 && i < node.childNodes.length){ + node = node.childNodes[i]; + }else{ + node = null; + //console.debug('Error: can not find node with index',index,'under parent node',parent ); + return false; //terminate dojo.every + } + return true; //carry on the every loop + }); + + return node; +} + +dijit.range.getCommonAncestor = function(n1,n2,root){ + root = root||n1.ownerDocument.body; + var getAncestors = function(n){ + var as=[]; + while(n){ + as.unshift(n); + if(n !== root){ + n = n.parentNode; + }else{ + break; + } + } + return as; + }; + var n1as = getAncestors(n1); + var n2as = getAncestors(n2); + + var m = Math.min(n1as.length,n2as.length); + var com = n1as[0]; //at least, one element should be in the array: the root (BODY by default) + for(var i=1;i<m;i++){ + if(n1as[i] === n2as[i]){ + com = n1as[i] + }else{ + break; + } + } + return com; +} + +dijit.range.getAncestor = function(/*DomNode*/node, /*RegEx?*/regex, /*DomNode?*/root){ + root = root || node.ownerDocument.body; + while(node && node !== root){ + var name = node.nodeName.toUpperCase() ; + if(regex.test(name)){ + return node; + } + + node = node.parentNode; + } + return null; +} + +dijit.range.BlockTagNames = /^(?:P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|DT|DE)$/; +dijit.range.getBlockAncestor = function(/*DomNode*/node, /*RegEx?*/regex, /*DomNode?*/root){ + root = root || node.ownerDocument.body; + regex = regex || dijit.range.BlockTagNames; + var block=null, blockContainer; + while(node && node !== root){ + var name = node.nodeName.toUpperCase() ; + if(!block && regex.test(name)){ + block = node; + } + if(!blockContainer && (/^(?:BODY|TD|TH|CAPTION)$/).test(name)){ + blockContainer = node; + } + + node = node.parentNode; + } + return {blockNode:block, blockContainer:blockContainer || node.ownerDocument.body}; +} + +dijit.range.atBeginningOfContainer = function(/*DomNode*/container, /*DomNode*/node, /*Int*/offset){ + var atBeginning = false; + var offsetAtBeginning = (offset == 0); + if(!offsetAtBeginning && node.nodeType == 3){ //if this is a text node, check whether the left part is all space + if(/^[\s\xA0]+$/.test(node.nodeValue.substr(0,offset))){ + offsetAtBeginning = true; + } + } + if(offsetAtBeginning){ + var cnode = node; + atBeginning = true; + while(cnode && cnode !== container){ + if(cnode.previousSibling){ + atBeginning = false; + break; + } + cnode = cnode.parentNode; + } + } + return atBeginning; +} + +dijit.range.atEndOfContainer = function(/*DomNode*/container, /*DomNode*/node, /*Int*/offset){ + var atEnd = false; + var offsetAtEnd = (offset == (node.length || node.childNodes.length)); + if(!offsetAtEnd && node.nodeType == 3){ //if this is a text node, check whether the right part is all space + if(/^[\s\xA0]+$/.test(node.nodeValue.substr(offset))){ + offsetAtEnd = true; + } + } + if(offsetAtEnd){ + var cnode = node; + atEnd = true; + while(cnode && cnode !== container){ + if(cnode.nextSibling){ + atEnd = false; + break; + } + cnode = cnode.parentNode; + } + } + return atEnd; +} + +dijit.range.adjacentNoneTextNode=function(startnode, next){ + var node = startnode; + var len = (0-startnode.length) || 0; + var prop = next?'nextSibling':'previousSibling'; + while(node){ + if(node.nodeType!=3){ + break; + } + len += node.length + node = node[prop]; + } + return [node,len]; +} + +dijit.range._w3c = Boolean(window['getSelection']); +dijit.range.create = function(/*Window?*/win){ + if(dijit.range._w3c){ + return (win || dojo.global).document.createRange(); + }else{//IE + return new dijit.range.W3CRange; + } +} + +dijit.range.getSelection = function(/*Window*/win, /*Boolean?*/ignoreUpdate){ + if(dijit.range._w3c){ + return win.getSelection(); + }else{//IE + var s = new dijit.range.ie.selection(win); + if(!ignoreUpdate){ + s._getCurrentSelection(); + } + return s; + } +} + +if(!dijit.range._w3c){ + dijit.range.ie={ + cachedSelection: {}, + selection: function(win){ + this._ranges = []; + this.addRange = function(r, /*boolean*/internal){ + this._ranges.push(r); + if(!internal){ + r._select(); + } + this.rangeCount = this._ranges.length; + }; + this.removeAllRanges = function(){ + //don't detach, the range may be used later +// for(var i=0;i<this._ranges.length;i++){ +// this._ranges[i].detach(); +// } + this._ranges = []; + this.rangeCount = 0; + }; + var _initCurrentRange = function(){ + var r = win.document.selection.createRange(); + var type=win.document.selection.type.toUpperCase(); + if(type == "CONTROL"){ + //TODO: multiple range selection(?) + return new dijit.range.W3CRange(dijit.range.ie.decomposeControlRange(r)); + }else{ + return new dijit.range.W3CRange(dijit.range.ie.decomposeTextRange(r)); + } + }; + this.getRangeAt = function(i){ + return this._ranges[i]; + }; + this._getCurrentSelection = function(){ + this.removeAllRanges(); + var r=_initCurrentRange(); + if(r){ + this.addRange(r, true); + } + }; + }, + decomposeControlRange: function(range){ + var firstnode = range.item(0), lastnode = range.item(range.length-1); + var startContainer = firstnode.parentNode, endContainer = lastnode.parentNode; + var startOffset = dijit.range.getIndex(firstnode, startContainer).o; + var endOffset = dijit.range.getIndex(lastnode, endContainer).o+1; + return [startContainer, startOffset,endContainer, endOffset]; + }, + getEndPoint: function(range, end){ + var atmrange = range.duplicate(); + atmrange.collapse(!end); + var cmpstr = 'EndTo' + (end?'End':'Start'); + var parentNode = atmrange.parentElement(); + + var startnode, startOffset, lastNode; + if(parentNode.childNodes.length>0){ + dojo.every(parentNode.childNodes, function(node,i){ + var calOffset; + if(node.nodeType != 3){ + atmrange.moveToElementText(node); + + if(atmrange.compareEndPoints(cmpstr,range) > 0){ + //startnode = node.previousSibling; + if(lastNode && lastNode.nodeType == 3){ + //where shall we put the start? in the text node or after? + startnode = lastNode; + calOffset = true; + }else{ + startnode = parentNode; + startOffset = i; + return false; + } + }else{ + if(i == parentNode.childNodes.length-1){ + startnode = parentNode; + startOffset = parentNode.childNodes.length; + return false; + } + } + }else{ + if(i == parentNode.childNodes.length-1){//at the end of this node + startnode = node; + calOffset = true; + } + } + // try{ + if(calOffset && startnode){ + var prevnode = dijit.range.adjacentNoneTextNode(startnode)[0]; + if(prevnode){ + startnode = prevnode.nextSibling; + }else{ + startnode = parentNode.firstChild; //firstChild must be a text node + } + var prevnodeobj = dijit.range.adjacentNoneTextNode(startnode); + prevnode = prevnodeobj[0]; + var lenoffset = prevnodeobj[1]; + if(prevnode){ + atmrange.moveToElementText(prevnode); + atmrange.collapse(false); + }else{ + atmrange.moveToElementText(parentNode); + } + atmrange.setEndPoint(cmpstr, range); + startOffset = atmrange.text.length-lenoffset; + + return false; + } + // }catch(e){ debugger } + lastNode = node; + return true; + }); + }else{ + startnode = parentNode; + startOffset = 0; + } + + //if at the end of startnode and we are dealing with start container, then + //move the startnode to nextSibling if it is a text node + //TODO: do this for end container? + if(!end && startnode.nodeType == 1 && startOffset == startnode.childNodes.length){ + var nextnode=startnode.nextSibling; + if(nextnode && nextnode.nodeType == 3){ + startnode = nextnode; + startOffset = 0; + } + } + return [startnode, startOffset]; + }, + setEndPoint: function(range, container, offset){ + //text node + var atmrange = range.duplicate(), node, len; + if(container.nodeType!=3){ //normal node + if(offset > 0){ + node = container.childNodes[offset-1]; + if(node){ + if(node.nodeType == 3){ + container = node; + offset = node.length; + //pass through + }else{ + if(node.nextSibling && node.nextSibling.nodeType == 3){ + container=node.nextSibling; + offset=0; + //pass through + }else{ + atmrange.moveToElementText(node.nextSibling?node:container); + var parent = node.parentNode; + var tempNode = parent.insertBefore(node.ownerDocument.createTextNode(' '), node.nextSibling); + atmrange.collapse(false); + parent.removeChild(tempNode); + } + } + } + }else{ + atmrange.moveToElementText(container); + atmrange.collapse(true); + } + } + if(container.nodeType == 3){ + var prevnodeobj = dijit.range.adjacentNoneTextNode(container); + var prevnode = prevnodeobj[0]; + len = prevnodeobj[1]; + if(prevnode){ + atmrange.moveToElementText(prevnode); + atmrange.collapse(false); + //if contentEditable is not inherit, the above collapse won't make the end point + //in the correctly position: it always has a -1 offset, so compensate it + if(prevnode.contentEditable!='inherit'){ + len++; + } + }else{ + atmrange.moveToElementText(container.parentNode); + atmrange.collapse(true); + } + + offset += len; + if(offset>0){ + if(atmrange.move('character',offset) != offset){ + console.error('Error when moving!'); + } + } + } + + return atmrange; + }, + decomposeTextRange: function(range){ + var tmpary = dijit.range.ie.getEndPoint(range); + var startContainer = tmpary[0], startOffset = tmpary[1]; + var endContainer = tmpary[0], endOffset = tmpary[1]; + + if(range.htmlText.length){ + if(range.htmlText == range.text){ //in the same text node + endOffset = startOffset+range.text.length; + }else{ + tmpary = dijit.range.ie.getEndPoint(range,true); + endContainer = tmpary[0], endOffset = tmpary[1]; +// if(startContainer.tagName == "BODY"){ +// startContainer = startContainer.firstChild; +// } + } + } + return [startContainer, startOffset, endContainer, endOffset]; + }, + setRange: function(range, startContainer, + startOffset, endContainer, endOffset, collapsed){ + var start=dijit.range.ie.setEndPoint(range, startContainer, startOffset); + + range.setEndPoint('StartToStart',start); + if(!collapsed){ + var end=dijit.range.ie.setEndPoint(range, endContainer, endOffset); + } + range.setEndPoint('EndToEnd',end || start); + + return range; + } + } + +dojo.declare("dijit.range.W3CRange",null, { + constructor: function(){ + if(arguments.length>0){ + this.setStart(arguments[0][0],arguments[0][1]); + this.setEnd(arguments[0][2],arguments[0][3]); + }else{ + this.commonAncestorContainer = null; + this.startContainer = null; + this.startOffset = 0; + this.endContainer = null; + this.endOffset = 0; + this.collapsed = true; + } + }, + _updateInternal: function(){ + if(this.startContainer !== this.endContainer){ + this.commonAncestorContainer = dijit.range.getCommonAncestor(this.startContainer, this.endContainer); + }else{ + this.commonAncestorContainer = this.startContainer; + } + this.collapsed = (this.startContainer === this.endContainer) && (this.startOffset == this.endOffset); + }, + setStart: function(node, offset){ + offset=parseInt(offset); + if(this.startContainer === node && this.startOffset == offset){ + return; + } + delete this._cachedBookmark; + + this.startContainer = node; + this.startOffset = offset; + if(!this.endContainer){ + this.setEnd(node, offset); + }else{ + this._updateInternal(); + } + }, + setEnd: function(node, offset){ + offset=parseInt(offset); + if(this.endContainer === node && this.endOffset == offset){ + return; + } + delete this._cachedBookmark; + + this.endContainer = node; + this.endOffset = offset; + if(!this.startContainer){ + this.setStart(node, offset); + }else{ + this._updateInternal(); + } + }, + setStartAfter: function(node, offset){ + this._setPoint('setStart', node, offset, 1); + }, + setStartBefore: function(node, offset){ + this._setPoint('setStart', node, offset, 0); + }, + setEndAfter: function(node, offset){ + this._setPoint('setEnd', node, offset, 1); + }, + setEndBefore: function(node, offset){ + this._setPoint('setEnd', node, offset, 0); + }, + _setPoint: function(what, node, offset, ext){ + var index = dijit.range.getIndex(node, node.parentNode).o; + this[what](node.parentNode, index.pop()+ext); + }, + _getIERange: function(){ + var r = (this._body || this.endContainer.ownerDocument.body).createTextRange(); + dijit.range.ie.setRange(r, this.startContainer, this.startOffset, this.endContainer, this.endOffset, this.collapsed); + return r; + }, + getBookmark: function(body){ + this._getIERange(); + return this._cachedBookmark; + }, + _select: function(){ + var r = this._getIERange(); + r.select(); + }, + deleteContents: function(){ + var r = this._getIERange(); + r.pasteHTML(''); + this.endContainer = this.startContainer; + this.endOffset = this.startOffset; + this.collapsed = true; + }, + cloneRange: function(){ + var r = new dijit.range.W3CRange([this.startContainer,this.startOffset, + this.endContainer,this.endOffset]); + r._body = this._body; + return r; + }, + detach: function(){ + this._body = null; + this.commonAncestorContainer = null; + this.startContainer = null; + this.startOffset = 0; + this.endContainer = null; + this.endOffset = 0; + this.collapsed = true; +} +}); +} //if(!dijit.range._w3c) + +} + +if(!dojo._hasResource["dijit._editor.html"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit._editor.html"] = true; +dojo.provide("dijit._editor.html"); + +dijit._editor.escapeXml=function(/*String*/str, /*Boolean?*/noSingleQuotes){ + // summary: + // Adds escape sequences for special characters in XML: &<>"' + // Optionally skips escapes for single quotes + str = str.replace(/&/gm, "&").replace(/</gm, "<").replace(/>/gm, ">").replace(/"/gm, """); + if(!noSingleQuotes){ + str = str.replace(/'/gm, "'"); + } + return str; // string +}; + +dijit._editor.getNodeHtml=function(/* DomNode */node){ + var output; + switch(node.nodeType){ + case 1: //element node + var lName = node.nodeName.toLowerCase(); + if(!lName || lName.charAt(0) == "/"){ + // IE does some strange things with malformed HTML input, like + // treating a close tag </span> without an open tag <span>, as + // a new tag with tagName of /span. Corrupts output HTML, remove + // them. Other browsers don't prefix tags that way, so will + // never show up. + return ""; + } + output = '<' + lName; + + //store the list of attributes and sort it to have the + //attributes appear in the dictionary order + var attrarray = []; + var attr; + if(dojo.isIE && node.outerHTML){ + var s = node.outerHTML; + s = s.substr(0, s.indexOf('>')) + .replace(/(['"])[^"']*\1/g, ''); //to make the following regexp safe + var reg = /(\b\w+)\s?=/g; + var m, key; + while((m = reg.exec(s))){ + key = m[1]; + if(key.substr(0,3) != '_dj'){ + if(key == 'src' || key == 'href'){ + if(node.getAttribute('_djrealurl')){ + attrarray.push([key,node.getAttribute('_djrealurl')]); + continue; + } + } + var val, match; + switch(key){ + case 'style': + val = node.style.cssText.toLowerCase(); + break; + case 'class': + val = node.className; + break; + case 'width': + if(lName === "img"){ + // This somehow gets lost on IE for IMG tags and the like + // and we have to find it in outerHTML, known IE oddity. + match=/width=(\S+)/i.exec(s); + if(match){ + val = match[1]; + } + break; + } + case 'height': + if(lName === "img"){ + // This somehow gets lost on IE for IMG tags and the like + // and we have to find it in outerHTML, known IE oddity. + match=/height=(\S+)/i.exec(s); + if(match){ + val = match[1]; + } + break; + } + default: + val = node.getAttribute(key); + } + if(val != null){ + attrarray.push([key, val.toString()]); + } + } + } + }else{ + var i = 0; + while((attr = node.attributes[i++])){ + //ignore all attributes starting with _dj which are + //internal temporary attributes used by the editor + var n = attr.name; + if(n.substr(0,3) != '_dj' /*&& + (attr.specified == undefined || attr.specified)*/){ + var v = attr.value; + if(n == 'src' || n == 'href'){ + if(node.getAttribute('_djrealurl')){ + v = node.getAttribute('_djrealurl'); + } + } + attrarray.push([n,v]); + } + } + } + attrarray.sort(function(a,b){ + return a[0] < b[0] ? -1 : (a[0] == b[0] ? 0 : 1); + }); + var j = 0; + while((attr = attrarray[j++])){ + output += ' ' + attr[0] + '="' + + (dojo.isString(attr[1]) ? dijit._editor.escapeXml(attr[1], true) : attr[1]) + '"'; + } + if(lName === "script"){ + // Browsers handle script tags differently in how you get content, + // but innerHTML always seems to work, so insert its content that way + // Yes, it's bad to allow script tags in the editor code, but some people + // seem to want to do it, so we need to at least return them right. + // other plugins/filters can strip them. + output += '>' + node.innerHTML +'</' + lName + '>'; + }else{ + if(node.childNodes.length){ + output += '>' + dijit._editor.getChildrenHtml(node)+'</' + lName +'>'; + }else{ + switch(lName){ + case 'br': + case 'hr': + case 'img': + case 'input': + case 'base': + case 'meta': + case 'area': + case 'basefont': + // These should all be singly closed + output += ' />'; + break; + default: + // Assume XML style separate closure for everything else. + output += '></' + lName + '>'; + } + } + } + break; + case 4: // cdata + case 3: // text + // FIXME: + output = dijit._editor.escapeXml(node.nodeValue, true); + break; + case 8: //comment + // FIXME: + output = '<!--' + dijit._editor.escapeXml(node.nodeValue, true) + '-->'; + break; + default: + output = "<!-- Element not recognized - Type: " + node.nodeType + " Name: " + node.nodeName + "-->"; + } + return output; +}; + +dijit._editor.getChildrenHtml = function(/* DomNode */dom){ + // summary: + // Returns the html content of a DomNode and children + var out = ""; + if(!dom){ return out; } + var nodes = dom["childNodes"] || dom; + + //IE issue. + //If we have an actual node we can check parent relationships on for IE, + //We should check, as IE sometimes builds invalid DOMS. If no parent, we can't check + //And should just process it and hope for the best. + var checkParent = !dojo.isIE || nodes !== dom; + + var node, i = 0; + while((node = nodes[i++])){ + //IE is broken. DOMs are supposed to be a tree. But in the case of malformed HTML, IE generates a graph + //meaning one node ends up with multiple references (multiple parents). This is totally wrong and invalid, but + //such is what it is. We have to keep track and check for this because otherise the source output HTML will have dups. + //No other browser generates a graph. Leave it to IE to break a fundamental DOM rule. So, we check the parent if we can + //If we can't, nothing more we can do other than walk it. + if(!checkParent || node.parentNode == dom){ + out += dijit._editor.getNodeHtml(node); + } + } + return out; // String +}; + +} + +if(!dojo._hasResource["dijit._editor.RichText"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit._editor.RichText"] = true; +dojo.provide("dijit._editor.RichText"); + + + + + + + +// used to restore content when user leaves this page then comes back +// but do not try doing dojo.doc.write if we are using xd loading. +// dojo.doc.write will only work if RichText.js is included in the dojo.js +// file. If it is included in dojo.js and you want to allow rich text saving +// for back/forward actions, then set dojo.config.allowXdRichTextSave = true. +if(!dojo.config["useXDomain"] || dojo.config["allowXdRichTextSave"]){ + if(dojo._postLoad){ + (function(){ + var savetextarea = dojo.doc.createElement('textarea'); + savetextarea.id = dijit._scopeName + "._editor.RichText.savedContent"; + dojo.style(savetextarea, { + display:'none', + position:'absolute', + top:"-100px", + height:"3px", + width:"3px" + }); + dojo.body().appendChild(savetextarea); + })(); + }else{ + //dojo.body() is not available before onLoad is fired + try{ + dojo.doc.write('<textarea id="' + dijit._scopeName + '._editor.RichText.savedContent" ' + + 'style="display:none;position:absolute;top:-100px;left:-100px;height:3px;width:3px;overflow:hidden;"></textarea>'); + }catch(e){ } + } +} + +dojo.declare("dijit._editor.RichText", [dijit._Widget, dijit._CssStateMixin], { + constructor: function(params){ + // summary: + // dijit._editor.RichText is the core of dijit.Editor, which provides basic + // WYSIWYG editing features. + // + // description: + // dijit._editor.RichText is the core of dijit.Editor, which provides basic + // WYSIWYG editing features. It also encapsulates the differences + // of different js engines for various browsers. Do not use this widget + // with an HTML <TEXTAREA> tag, since the browser unescapes XML escape characters, + // like <. This can have unexpected behavior and lead to security issues + // such as scripting attacks. + // + // tags: + // private + + // contentPreFilters: Function(String)[] + // Pre content filter function register array. + // these filters will be executed before the actual + // editing area gets the html content. + this.contentPreFilters = []; + + // contentPostFilters: Function(String)[] + // post content filter function register array. + // These will be used on the resulting html + // from contentDomPostFilters. The resulting + // content is the final html (returned by getValue()). + this.contentPostFilters = []; + + // contentDomPreFilters: Function(DomNode)[] + // Pre content dom filter function register array. + // These filters are applied after the result from + // contentPreFilters are set to the editing area. + this.contentDomPreFilters = []; + + // contentDomPostFilters: Function(DomNode)[] + // Post content dom filter function register array. + // These filters are executed on the editing area dom. + // The result from these will be passed to contentPostFilters. + this.contentDomPostFilters = []; + + // editingAreaStyleSheets: dojo._URL[] + // array to store all the stylesheets applied to the editing area + this.editingAreaStyleSheets = []; + + // Make a copy of this.events before we start writing into it, otherwise we + // will modify the prototype which leads to bad things on pages w/multiple editors + this.events = [].concat(this.events); + + this._keyHandlers = {}; + this.contentPreFilters.push(dojo.hitch(this, "_preFixUrlAttributes")); + if(dojo.isMoz){ + this.contentPreFilters.push(this._normalizeFontStyle); + this.contentPostFilters.push(this._removeMozBogus); + } + if(dojo.isWebKit){ + // Try to clean up WebKit bogus artifacts. The inserted classes + // made by WebKit sometimes messes things up. + this.contentPreFilters.push(this._removeWebkitBogus); + this.contentPostFilters.push(this._removeWebkitBogus); + } + if(dojo.isIE){ + // IE generates <strong> and <em> but we want to normalize to <b> and <i> + this.contentPostFilters.push(this._normalizeFontStyle); + } + //this.contentDomPostFilters.push(this._postDomFixUrlAttributes); + + if(params && dojo.isString(params.value)){ + this.value = params.value; + } + + this.onLoadDeferred = new dojo.Deferred(); + }, + + baseClass: "dijitEditor", + + // inheritWidth: Boolean + // whether to inherit the parent's width or simply use 100% + inheritWidth: false, + + // focusOnLoad: [deprecated] Boolean + // Focus into this widget when the page is loaded + focusOnLoad: false, + + // name: String? + // Specifies the name of a (hidden) <textarea> node on the page that's used to save + // the editor content on page leave. Used to restore editor contents after navigating + // to a new page and then hitting the back button. + name: "", + + // styleSheets: [const] String + // semicolon (";") separated list of css files for the editing area + styleSheets: "", + + // _content: [private] String + // temporary content storage + _content: "", + + // height: String + // Set height to fix the editor at a specific height, with scrolling. + // By default, this is 300px. If you want to have the editor always + // resizes to accommodate the content, use AlwaysShowToolbar plugin + // and set height="". If this editor is used within a layout widget, + // set height="100%". + height: "300px", + + // minHeight: String + // The minimum height that the editor should have. + minHeight: "1em", + + // isClosed: [private] Boolean + isClosed: true, + + // isLoaded: [private] Boolean + isLoaded: false, + + // _SEPARATOR: [private] String + // Used to concat contents from multiple editors into a single string, + // so they can be saved into a single <textarea> node. See "name" attribute. + _SEPARATOR: "@@**%%__RICHTEXTBOUNDRY__%%**@@", + + // onLoadDeferred: [protected] dojo.Deferred + // Deferred which is fired when the editor finishes loading + onLoadDeferred: null, + + // isTabIndent: Boolean + // Make tab key and shift-tab indent and outdent rather than navigating. + // Caution: sing this makes web pages inaccessible to users unable to use a mouse. + isTabIndent: false, + + // disableSpellCheck: [const] Boolean + // When true, disables the browser's native spell checking, if supported. + // Works only in Firefox. + disableSpellCheck: false, + + postCreate: function(){ + if("textarea" == this.domNode.tagName.toLowerCase()){ + console.warn("RichText should not be used with the TEXTAREA tag. See dijit._editor.RichText docs."); + } + + this.inherited(arguments); + + dojo.publish(dijit._scopeName + "._editor.RichText::init", [this]); + this.open(); + this.setupDefaultShortcuts(); + }, + + setupDefaultShortcuts: function(){ + // summary: + // Add some default key handlers + // description: + // Overwrite this to setup your own handlers. The default + // implementation does not use Editor commands, but directly + // executes the builtin commands within the underlying browser + // support. + // tags: + // protected + var exec = dojo.hitch(this, function(cmd, arg){ + return function(){ + return !this.execCommand(cmd,arg); + }; + }); + + var ctrlKeyHandlers = { + b: exec("bold"), + i: exec("italic"), + u: exec("underline"), + a: exec("selectall"), + s: function(){ this.save(true); }, + m: function(){ this.isTabIndent = !this.isTabIndent; }, + + "1": exec("formatblock", "h1"), + "2": exec("formatblock", "h2"), + "3": exec("formatblock", "h3"), + "4": exec("formatblock", "h4"), + + "\\": exec("insertunorderedlist") + }; + + if(!dojo.isIE){ + ctrlKeyHandlers.Z = exec("redo"); //FIXME: undo? + } + + for(var key in ctrlKeyHandlers){ + this.addKeyHandler(key, true, false, ctrlKeyHandlers[key]); + } + }, + + // events: [private] String[] + // events which should be connected to the underlying editing area + events: ["onKeyPress", "onKeyDown", "onKeyUp", "onClick"], + + // captureEvents: [deprecated] String[] + // Events which should be connected to the underlying editing + // area, events in this array will be addListener with + // capture=true. + // TODO: looking at the code I don't see any distinction between events and captureEvents, + // so get rid of this for 2.0 if not sooner + captureEvents: [], + + _editorCommandsLocalized: false, + _localizeEditorCommands: function(){ + // summary: + // When IE is running in a non-English locale, the API actually changes, + // so that we have to say (for example) danraku instead of p (for paragraph). + // Handle that here. + // tags: + // private + if(this._editorCommandsLocalized){ + return; + } + this._editorCommandsLocalized = true; + + //in IE, names for blockformat is locale dependent, so we cache the values here + + //if the normal way fails, we try the hard way to get the list + + //do not use _cacheLocalBlockFormatNames here, as it will + //trigger security warning in IE7 + + //put p after div, so if IE returns Normal, we show it as paragraph + //We can distinguish p and div if IE returns Normal, however, in order to detect that, + //we have to call this.document.selection.createRange().parentElement() or such, which + //could slow things down. Leave it as it is for now + var formats = ['div', 'p', 'pre', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ol', 'ul', 'address']; + var localhtml = "", format, i=0; + while((format=formats[i++])){ + //append a <br> after each element to separate the elements more reliably + if(format.charAt(1) != 'l'){ + localhtml += "<"+format+"><span>content</span></"+format+"><br/>"; + }else{ + localhtml += "<"+format+"><li>content</li></"+format+"><br/>"; + } + } + //queryCommandValue returns empty if we hide editNode, so move it out of screen temporary + var div = dojo.doc.createElement('div'); + dojo.style(div, { + position: "absolute", + top: "-2000px" + }); + dojo.doc.body.appendChild(div); + div.innerHTML = localhtml; + var node = div.firstChild; + while(node){ + dijit._editor.selection.selectElement(node.firstChild); + dojo.withGlobal(this.window, "selectElement", dijit._editor.selection, [node.firstChild]); + var nativename = node.tagName.toLowerCase(); + this._local2NativeFormatNames[nativename] = document.queryCommandValue("formatblock"); + //this.queryCommandValue("formatblock"); + this._native2LocalFormatNames[this._local2NativeFormatNames[nativename]] = nativename; + node = node.nextSibling.nextSibling; + } + dojo.body().removeChild(div); + }, + + open: function(/*DomNode?*/ element){ + // summary: + // Transforms the node referenced in this.domNode into a rich text editing + // node. + // description: + // Sets up the editing area asynchronously. This will result in + // the creation and replacement with an iframe. + // + // A dojo.Deferred object is created at this.onLoadDeferred, and + // users may attach to it to be informed when the rich-text area + // initialization is finalized. + // tags: + // private + + if(!this.onLoadDeferred || this.onLoadDeferred.fired >= 0){ + this.onLoadDeferred = new dojo.Deferred(); + } + + if(!this.isClosed){ this.close(); } + dojo.publish(dijit._scopeName + "._editor.RichText::open", [ this ]); + + this._content = ""; + if(arguments.length == 1 && element.nodeName){ // else unchanged + this.domNode = element; + } + + var dn = this.domNode; + + // "html" will hold the innerHTML of the srcNodeRef and will be used to + // initialize the editor. + var html; + + if(dojo.isString(this.value)){ + // Allow setting the editor content programmatically instead of + // relying on the initial content being contained within the target + // domNode. + html = this.value; + delete this.value; + dn.innerHTML = ""; + }else if(dn.nodeName && dn.nodeName.toLowerCase() == "textarea"){ + // if we were created from a textarea, then we need to create a + // new editing harness node. + var ta = (this.textarea = dn); + this.name = ta.name; + html = ta.value; + dn = this.domNode = dojo.doc.createElement("div"); + dn.setAttribute('widgetId', this.id); + ta.removeAttribute('widgetId'); + dn.cssText = ta.cssText; + dn.className += " " + ta.className; + dojo.place(dn, ta, "before"); + var tmpFunc = dojo.hitch(this, function(){ + //some browsers refuse to submit display=none textarea, so + //move the textarea off screen instead + dojo.style(ta, { + display: "block", + position: "absolute", + top: "-1000px" + }); + + if(dojo.isIE){ //nasty IE bug: abnormal formatting if overflow is not hidden + var s = ta.style; + this.__overflow = s.overflow; + s.overflow = "hidden"; + } + }); + if(dojo.isIE){ + setTimeout(tmpFunc, 10); + }else{ + tmpFunc(); + } + + if(ta.form){ + dojo.connect(ta.form, "onsubmit", this, function(){ + // FIXME: should we be calling close() here instead? + ta.value = this.getValue(); + }); + } + }else{ + html = dijit._editor.getChildrenHtml(dn); + dn.innerHTML = ""; + } + + var content = dojo.contentBox(dn); + this._oldHeight = content.h; + this._oldWidth = content.w; + + this.savedContent = html; + + // If we're a list item we have to put in a blank line to force the + // bullet to nicely align at the top of text + if(dn.nodeName && dn.nodeName == "LI"){ + dn.innerHTML = " <br>"; + } + + // Construct the editor div structure. + this.header = dn.ownerDocument.createElement("div"); + dn.appendChild(this.header); + this.editingArea = dn.ownerDocument.createElement("div"); + dn.appendChild(this.editingArea); + this.footer = dn.ownerDocument.createElement("div"); + dn.appendChild(this.footer); + + // User has pressed back/forward button so we lost the text in the editor, but it's saved + // in a hidden <textarea> (which contains the data for all the editors on this page), + // so get editor value from there + if(this.name !== "" && (!dojo.config["useXDomain"] || dojo.config["allowXdRichTextSave"])){ + var saveTextarea = dojo.byId(dijit._scopeName + "._editor.RichText.savedContent"); + if(saveTextarea.value !== ""){ + var datas = saveTextarea.value.split(this._SEPARATOR), i=0, dat; + while((dat=datas[i++])){ + var data = dat.split(":"); + if(data[0] == this.name){ + html = data[1]; + datas.splice(i, 1); // TODO: this has no effect + break; + } + } + } + + // TODO: this is troublesome if this editor has been destroyed, should have global handler. + // TODO: need to clear <textarea> in global handler + dojo.addOnUnload(dojo.hitch(this, "_saveContent")); + } + + this.isClosed = false; + + var ifr = (this.editorObject = this.iframe = dojo.doc.createElement('iframe')); + ifr.id = this.id+"_iframe"; + this._iframeSrc = this._getIframeDocTxt(); + ifr.style.border = "none"; + ifr.style.width = "100%"; + if(this._layoutMode){ + // iframe should be 100% height, thus getting it's height from surrounding + // <div> (which has the correct height set by Editor) + ifr.style.height = "100%"; + }else{ + if(dojo.isIE >= 7){ + if(this.height){ + ifr.style.height = this.height; + } + if(this.minHeight){ + ifr.style.minHeight = this.minHeight; + } + }else{ + ifr.style.height = this.height ? this.height : this.minHeight; + } + } + ifr.frameBorder = 0; + ifr._loadFunc = dojo.hitch( this, function(win){ + this.window = win; + this.document = this.window.document; + + if(dojo.isIE){ + this._localizeEditorCommands(); + } + + // Do final setup and set initial contents of editor + this.onLoad(html); + }); + + // Set the iframe's initial (blank) content. + var s = 'javascript:parent.' + dijit._scopeName + '.byId("'+this.id+'")._iframeSrc'; + ifr.setAttribute('src', s); + this.editingArea.appendChild(ifr); + + // TODO: this is a guess at the default line-height, kinda works + if(dn.nodeName == "LI"){ + dn.lastChild.style.marginTop = "-1.2em"; + } + + dojo.addClass(this.domNode, this.baseClass); + }, + + //static cache variables shared among all instance of this class + _local2NativeFormatNames: {}, + _native2LocalFormatNames: {}, + + _getIframeDocTxt: function(){ + // summary: + // Generates the boilerplate text of the document inside the iframe (ie, <html><head>...</head><body/></html>). + // Editor content (if not blank) should be added afterwards. + // tags: + // private + var _cs = dojo.getComputedStyle(this.domNode); + + // The contents inside of <body>. The real contents are set later via a call to setValue(). + var html = ""; + var setBodyId = true; + if(dojo.isIE || (!this.height && !dojo.isMoz)){ + // In auto-expand mode, need a wrapper div for AlwaysShowToolbar plugin to correctly + // expand/contract the editor as the content changes. + html = "<div id='dijitEditorBody'></div>"; + setBodyId = false; + }else if(dojo.isMoz){ + // workaround bug where can't select then delete text (until user types something + // into the editor)... and/or issue where typing doesn't erase selected text + this._cursorToStart = true; + html = " "; + } + + var font = [ _cs.fontWeight, _cs.fontSize, _cs.fontFamily ].join(" "); + + // line height is tricky - applying a units value will mess things up. + // if we can't get a non-units value, bail out. + var lineHeight = _cs.lineHeight; + if(lineHeight.indexOf("px") >= 0){ + lineHeight = parseFloat(lineHeight)/parseFloat(_cs.fontSize); + // console.debug(lineHeight); + }else if(lineHeight.indexOf("em")>=0){ + lineHeight = parseFloat(lineHeight); + }else{ + // If we can't get a non-units value, just default + // it to the CSS spec default of 'normal'. Seems to + // work better, esp on IE, than '1.0' + lineHeight = "normal"; + } + var userStyle = ""; + var self = this; + this.style.replace(/(^|;)\s*(line-|font-?)[^;]+/ig, function(match){ + match = match.replace(/^;/ig,"") + ';'; + var s = match.split(":")[0]; + if(s){ + s = dojo.trim(s); + s = s.toLowerCase(); + var i; + var sC = ""; + for(i = 0; i < s.length; i++){ + var c = s.charAt(i); + switch(c){ + case "-": + i++; + c = s.charAt(i).toUpperCase(); + default: + sC += c; + } + } + dojo.style(self.domNode, sC, ""); + } + userStyle += match + ';'; + }); + + + // need to find any associated label element and update iframe document title + var label=dojo.query('label[for="'+this.id+'"]'); + + return [ + this.isLeftToRight() ? "<html>\n<head>\n" : "<html dir='rtl'>\n<head>\n", + (dojo.isMoz && label.length ? "<title>" + label[0].innerHTML + "</title>\n" : ""), + "<meta http-equiv='Content-Type' content='text/html'>\n", + "<style>\n", + "\tbody,html {\n", + "\t\tbackground:transparent;\n", + "\t\tpadding: 1px 0 0 0;\n", + "\t\tmargin: -1px 0 0 0;\n", // remove extraneous vertical scrollbar on safari and firefox + + // Set the html/body sizing. Webkit always needs this, other browsers + // only set it when height is defined (not auto-expanding), otherwise + // scrollers do not appear. + ((dojo.isWebKit)?"\t\twidth: 100%;\n":""), + ((dojo.isWebKit)?"\t\theight: 100%;\n":""), + "\t}\n", + + // TODO: left positioning will cause contents to disappear out of view + // if it gets too wide for the visible area + "\tbody{\n", + "\t\ttop:0px;\n", + "\t\tleft:0px;\n", + "\t\tright:0px;\n", + "\t\tfont:", font, ";\n", + ((this.height||dojo.isOpera) ? "" : "\t\tposition: fixed;\n"), + // FIXME: IE 6 won't understand min-height? + "\t\tmin-height:", this.minHeight, ";\n", + "\t\tline-height:", lineHeight,";\n", + "\t}\n", + "\tp{ margin: 1em 0; }\n", + + // Determine how scrollers should be applied. In autoexpand mode (height = "") no scrollers on y at all. + // But in fixed height mode we want both x/y scrollers. Also, if it's using wrapping div and in auto-expand + // (Mainly IE) we need to kill the y scroller on body and html. + (!setBodyId && !this.height ? "\tbody,html {overflow-y: hidden;}\n" : ""), + "\t#dijitEditorBody{overflow-x: auto; overflow-y:" + (this.height ? "auto;" : "hidden;") + "}\n", + "\tli > ul:-moz-first-node, li > ol:-moz-first-node{ padding-top: 1.2em; }\n", + "\tli{ min-height:1.2em; }\n", + "</style>\n", + this._applyEditingAreaStyleSheets(),"\n", + "</head>\n<body ", + (setBodyId?"id='dijitEditorBody' ":""), + "onload='frameElement._loadFunc(window,document)' style='"+userStyle+"'>", html, "</body>\n</html>" + ].join(""); // String + }, + + _applyEditingAreaStyleSheets: function(){ + // summary: + // apply the specified css files in styleSheets + // tags: + // private + var files = []; + if(this.styleSheets){ + files = this.styleSheets.split(';'); + this.styleSheets = ''; + } + + //empty this.editingAreaStyleSheets here, as it will be filled in addStyleSheet + files = files.concat(this.editingAreaStyleSheets); + this.editingAreaStyleSheets = []; + + var text='', i=0, url; + while((url=files[i++])){ + var abstring = (new dojo._Url(dojo.global.location, url)).toString(); + this.editingAreaStyleSheets.push(abstring); + text += '<link rel="stylesheet" type="text/css" href="'+abstring+'"/>'; + } + return text; + }, + + addStyleSheet: function(/*dojo._Url*/ uri){ + // summary: + // add an external stylesheet for the editing area + // uri: + // A dojo.uri.Uri pointing to the url of the external css file + var url=uri.toString(); + + //if uri is relative, then convert it to absolute so that it can be resolved correctly in iframe + if(url.charAt(0) == '.' || (url.charAt(0) != '/' && !uri.host)){ + url = (new dojo._Url(dojo.global.location, url)).toString(); + } + + if(dojo.indexOf(this.editingAreaStyleSheets, url) > -1){ +// console.debug("dijit._editor.RichText.addStyleSheet: Style sheet "+url+" is already applied"); + return; + } + + this.editingAreaStyleSheets.push(url); + this.onLoadDeferred.addCallback(dojo.hitch(function(){ + if(this.document.createStyleSheet){ //IE + this.document.createStyleSheet(url); + }else{ //other browser + var head = this.document.getElementsByTagName("head")[0]; + var stylesheet = this.document.createElement("link"); + stylesheet.rel="stylesheet"; + stylesheet.type="text/css"; + stylesheet.href=url; + head.appendChild(stylesheet); + } + })); + }, + + removeStyleSheet: function(/*dojo._Url*/ uri){ + // summary: + // remove an external stylesheet for the editing area + var url=uri.toString(); + //if uri is relative, then convert it to absolute so that it can be resolved correctly in iframe + if(url.charAt(0) == '.' || (url.charAt(0) != '/' && !uri.host)){ + url = (new dojo._Url(dojo.global.location, url)).toString(); + } + var index = dojo.indexOf(this.editingAreaStyleSheets, url); + if(index == -1){ +// console.debug("dijit._editor.RichText.removeStyleSheet: Style sheet "+url+" has not been applied"); + return; + } + delete this.editingAreaStyleSheets[index]; + dojo.withGlobal(this.window,'query', dojo, ['link:[href="'+url+'"]']).orphan(); + }, + + // disabled: Boolean + // The editor is disabled; the text cannot be changed. + disabled: false, + + _mozSettingProps: {'styleWithCSS':false}, + _setDisabledAttr: function(/*Boolean*/ value){ + this.disabled = value; + if(!this.isLoaded){ return; } // this method requires init to be complete + value = !!value; + if(dojo.isIE || dojo.isWebKit || dojo.isOpera){ + var preventIEfocus = dojo.isIE && (this.isLoaded || !this.focusOnLoad); + if(preventIEfocus){ this.editNode.unselectable = "on"; } + this.editNode.contentEditable = !value; + if(preventIEfocus){ + var _this = this; + setTimeout(function(){ _this.editNode.unselectable = "off"; }, 0); + } + }else{ //moz + try{ + this.document.designMode=(value?'off':'on'); + }catch(e){ return; } // ! _disabledOK + if(!value && this._mozSettingProps){ + var ps = this._mozSettingProps; + for(var n in ps){ + if(ps.hasOwnProperty(n)){ + try{ + this.document.execCommand(n,false,ps[n]); + }catch(e2){} + } + } + } +// this.document.execCommand('contentReadOnly', false, value); +// if(value){ +// this.blur(); //to remove the blinking caret +// } + } + this._disabledOK = true; + }, + +/* Event handlers + *****************/ + + onLoad: function(/*String*/ html){ + // summary: + // Handler after the iframe finishes loading. + // html: String + // Editor contents should be set to this value + // tags: + // protected + + // TODO: rename this to _onLoad, make empty public onLoad() method, deprecate/make protected onLoadDeferred handler? + + if(!this.window.__registeredWindow){ + this.window.__registeredWindow = true; + this._iframeRegHandle = dijit.registerIframe(this.iframe); + } + if(!dojo.isIE && (this.height || dojo.isMoz)){ + this.editNode=this.document.body; + }else{ + // there's a wrapper div around the content, see _getIframeDocTxt(). + this.editNode=this.document.body.firstChild; + var _this = this; + if(dojo.isIE){ // #4996 IE wants to focus the BODY tag + var tabStop = (this.tabStop = dojo.doc.createElement('<div tabIndex=-1>')); + this.editingArea.appendChild(tabStop); + this.iframe.onfocus = function(){ _this.editNode.setActive(); }; + } + } + this.focusNode = this.editNode; // for InlineEditBox + + + var events = this.events.concat(this.captureEvents); + var ap = this.iframe ? this.document : this.editNode; + dojo.forEach(events, function(item){ + this.connect(ap, item.toLowerCase(), item); + }, this); + + if(dojo.isIE){ // IE contentEditable + this.connect(this.document, "onmousedown", "_onIEMouseDown"); // #4996 fix focus + + // give the node Layout on IE + // TODO: this may no longer be needed, since we've reverted IE to using an iframe, + // not contentEditable. Removing it would also probably remove the need for creating + // the extra <div> in _getIframeDocTxt() + this.editNode.style.zoom = 1.0; + }else{ + this.connect(this.document, "onmousedown", function(){ + // Clear the moveToStart focus, as mouse + // down will set cursor point. Required to properly + // work with selection/position driven plugins and clicks in + // the window. refs: #10678 + delete this._cursorToStart; + }); + } + + if(dojo.isWebKit){ + //WebKit sometimes doesn't fire right on selections, so the toolbar + //doesn't update right. Therefore, help it out a bit with an additional + //listener. A mouse up will typically indicate a display change, so fire this + //and get the toolbar to adapt. Reference: #9532 + this._webkitListener = this.connect(this.document, "onmouseup", "onDisplayChanged"); + } + + if(dojo.isIE){ + // Try to make sure 'hidden' elements aren't visible in edit mode (like browsers other than IE + // do). See #9103 + try{ + this.document.execCommand('RespectVisibilityInDesign', true, null); + }catch(e){/* squelch */} + } + + this.isLoaded = true; + + this.set('disabled', this.disabled); // initialize content to editable (or not) + + // Note that setValue() call will only work after isLoaded is set to true (above) + + // Set up a function to allow delaying the setValue until a callback is fired + // This ensures extensions like dijit.Editor have a way to hold the value set + // until plugins load (and do things like register filters. + var setContent = dojo.hitch(this, function(){ + this.setValue(html); + if(this.onLoadDeferred){ + this.onLoadDeferred.callback(true); + } + this.onDisplayChanged(); + if(this.focusOnLoad){ + // after the document loads, then set focus after updateInterval expires so that + // onNormalizedDisplayChanged has run to avoid input caret issues + dojo.addOnLoad(dojo.hitch(this, function(){ setTimeout(dojo.hitch(this, "focus"), this.updateInterval); })); + } + // Save off the initial content now + this.savedContent = this.getValue(true); + }); + if(this.setValueDeferred){ + this.setValueDeferred.addCallback(setContent); + }else{ + setContent(); + } + + }, + + onKeyDown: function(/* Event */ e){ + // summary: + // Handler for onkeydown event + // tags: + // protected + + // we need this event at the moment to get the events from control keys + // such as the backspace. It might be possible to add this to Dojo, so that + // keyPress events can be emulated by the keyDown and keyUp detection. + + if(e.keyCode === dojo.keys.TAB && this.isTabIndent ){ + dojo.stopEvent(e); //prevent tab from moving focus out of editor + + // FIXME: this is a poor-man's indent/outdent. It would be + // better if it added 4 " " chars in an undoable way. + // Unfortunately pasteHTML does not prove to be undoable + if(this.queryCommandEnabled((e.shiftKey ? "outdent" : "indent"))){ + this.execCommand((e.shiftKey ? "outdent" : "indent")); + } + } + if(dojo.isIE){ + if(e.keyCode == dojo.keys.TAB && !this.isTabIndent){ + if(e.shiftKey && !e.ctrlKey && !e.altKey){ + // focus the BODY so the browser will tab away from it instead + this.iframe.focus(); + }else if(!e.shiftKey && !e.ctrlKey && !e.altKey){ + // focus the BODY so the browser will tab away from it instead + this.tabStop.focus(); + } + }else if(e.keyCode === dojo.keys.BACKSPACE && this.document.selection.type === "Control"){ + // IE has a bug where if a non-text object is selected in the editor, + // hitting backspace would act as if the browser's back button was + // clicked instead of deleting the object. see #1069 + dojo.stopEvent(e); + this.execCommand("delete"); + }else if((65 <= e.keyCode && e.keyCode <= 90) || + (e.keyCode>=37 && e.keyCode<=40) // FIXME: get this from connect() instead! + ){ //arrow keys + e.charCode = e.keyCode; + this.onKeyPress(e); + } + } + return true; + }, + + onKeyUp: function(e){ + // summary: + // Handler for onkeyup event + // tags: + // callback + return; + }, + + setDisabled: function(/*Boolean*/ disabled){ + // summary: + // Deprecated, use set('disabled', ...) instead. + // tags: + // deprecated + dojo.deprecated('dijit.Editor::setDisabled is deprecated','use dijit.Editor::attr("disabled",boolean) instead', 2.0); + this.set('disabled',disabled); + }, + _setValueAttr: function(/*String*/ value){ + // summary: + // Registers that attr("value", foo) should call setValue(foo) + this.setValue(value); + }, + _setDisableSpellCheckAttr: function(/*Boolean*/ disabled){ + if(this.document){ + dojo.attr(this.document.body, "spellcheck", !disabled); + }else{ + // try again after the editor is finished loading + this.onLoadDeferred.addCallback(dojo.hitch(this, function(){ + dojo.attr(this.document.body, "spellcheck", !disabled); + })); + } + this.disableSpellCheck = disabled; + }, + + onKeyPress: function(e){ + // summary: + // Handle the various key events + // tags: + // protected + + var c = (e.keyChar && e.keyChar.toLowerCase()) || e.keyCode, + handlers = this._keyHandlers[c], + args = arguments; + + if(handlers && !e.altKey){ + dojo.some(handlers, function(h){ + // treat meta- same as ctrl-, for benefit of mac users + if(!(h.shift ^ e.shiftKey) && !(h.ctrl ^ (e.ctrlKey||e.metaKey))){ + if(!h.handler.apply(this, args)){ + e.preventDefault(); + } + return true; + } + }, this); + } + + // function call after the character has been inserted + if(!this._onKeyHitch){ + this._onKeyHitch = dojo.hitch(this, "onKeyPressed"); + } + setTimeout(this._onKeyHitch, 1); + return true; + }, + + addKeyHandler: function(/*String*/ key, /*Boolean*/ ctrl, /*Boolean*/ shift, /*Function*/ handler){ + // summary: + // Add a handler for a keyboard shortcut + // description: + // The key argument should be in lowercase if it is a letter character + // tags: + // protected + if(!dojo.isArray(this._keyHandlers[key])){ + this._keyHandlers[key] = []; + } + //TODO: would be nice to make this a hash instead of an array for quick lookups + this._keyHandlers[key].push({ + shift: shift || false, + ctrl: ctrl || false, + handler: handler + }); + }, + + onKeyPressed: function(){ + // summary: + // Handler for after the user has pressed a key, and the display has been updated. + // (Runs on a timer so that it runs after the display is updated) + // tags: + // private + this.onDisplayChanged(/*e*/); // can't pass in e + }, + + onClick: function(/*Event*/ e){ + // summary: + // Handler for when the user clicks. + // tags: + // private + + // console.info('onClick',this._tryDesignModeOn); + this.onDisplayChanged(e); + }, + + _onIEMouseDown: function(/*Event*/ e){ + // summary: + // IE only to prevent 2 clicks to focus + // tags: + // protected + + if(!this._focused && !this.disabled){ + this.focus(); + } + }, + + _onBlur: function(e){ + // summary: + // Called from focus manager when focus has moved away from this editor + // tags: + // protected + + // console.info('_onBlur') + + this.inherited(arguments); + var _c=this.getValue(true); + + if(_c!=this.savedContent){ + this.onChange(_c); + this.savedContent=_c; + } + }, + _onFocus: function(/*Event*/ e){ + // summary: + // Called from focus manager when focus has moved into this editor + // tags: + // protected + + // console.info('_onFocus') + if(!this.disabled){ + if(!this._disabledOK){ + this.set('disabled', false); + } + this.inherited(arguments); + } + }, + + // TODO: why is this needed - should we deprecate this ? + blur: function(){ + // summary: + // Remove focus from this instance. + // tags: + // deprecated + if(!dojo.isIE && this.window.document.documentElement && this.window.document.documentElement.focus){ + this.window.document.documentElement.focus(); + }else if(dojo.doc.body.focus){ + dojo.doc.body.focus(); + } + }, + + focus: function(){ + // summary: + // Move focus to this editor + if(!this.isLoaded){ + this.focusOnLoad = true; + return; + } + if(this._cursorToStart){ + delete this._cursorToStart; + if(this.editNode.childNodes){ + this.placeCursorAtStart(); // this calls focus() so return + return; + } + } + if(!dojo.isIE){ + dijit.focus(this.iframe); + }else if(this.editNode && this.editNode.focus){ + // editNode may be hidden in display:none div, lets just punt in this case + //this.editNode.focus(); -> causes IE to scroll always (strict and quirks mode) to the top the Iframe + // if we fire the event manually and let the browser handle the focusing, the latest + // cursor position is focused like in FF + this.iframe.fireEvent('onfocus', document.createEventObject()); // createEventObject only in IE + // }else{ + // TODO: should we throw here? + // console.debug("Have no idea how to focus into the editor!"); + } + }, + + // _lastUpdate: 0, + updateInterval: 200, + _updateTimer: null, + onDisplayChanged: function(/*Event*/ e){ + // summary: + // This event will be fired everytime the display context + // changes and the result needs to be reflected in the UI. + // description: + // If you don't want to have update too often, + // onNormalizedDisplayChanged should be used instead + // tags: + // private + + // var _t=new Date(); + if(this._updateTimer){ + clearTimeout(this._updateTimer); + } + if(!this._updateHandler){ + this._updateHandler = dojo.hitch(this,"onNormalizedDisplayChanged"); + } + this._updateTimer = setTimeout(this._updateHandler, this.updateInterval); + }, + onNormalizedDisplayChanged: function(){ + // summary: + // This event is fired every updateInterval ms or more + // description: + // If something needs to happen immediately after a + // user change, please use onDisplayChanged instead. + // tags: + // private + delete this._updateTimer; + }, + onChange: function(newContent){ + // summary: + // This is fired if and only if the editor loses focus and + // the content is changed. + }, + _normalizeCommand: function(/*String*/ cmd, /*Anything?*/argument){ + // summary: + // Used as the advice function by dojo.connect to map our + // normalized set of commands to those supported by the target + // browser. + // tags: + // private + + var command = cmd.toLowerCase(); + if(command == "formatblock"){ + if(dojo.isSafari && argument === undefined){ command = "heading"; } + }else if(command == "hilitecolor" && !dojo.isMoz){ + command = "backcolor"; + } + + return command; + }, + + _qcaCache: {}, + queryCommandAvailable: function(/*String*/ command){ + // summary: + // Tests whether a command is supported by the host. Clients + // SHOULD check whether a command is supported before attempting + // to use it, behaviour for unsupported commands is undefined. + // command: + // The command to test for + // tags: + // private + + // memoizing version. See _queryCommandAvailable for computing version + var ca = this._qcaCache[command]; + if(ca !== undefined){ return ca; } + return (this._qcaCache[command] = this._queryCommandAvailable(command)); + }, + + _queryCommandAvailable: function(/*String*/ command){ + // summary: + // See queryCommandAvailable(). + // tags: + // private + + var ie = 1; + var mozilla = 1 << 1; + var webkit = 1 << 2; + var opera = 1 << 3; + var webkit420 = 1 << 4; + + function isSupportedBy(browsers){ + return { + ie: Boolean(browsers & ie), + mozilla: Boolean(browsers & mozilla), + webkit: Boolean(browsers & webkit), + webkit420: Boolean(browsers & webkit420), + opera: Boolean(browsers & opera) + }; + } + + var supportedBy = null; + + switch(command.toLowerCase()){ + case "bold": case "italic": case "underline": + case "subscript": case "superscript": + case "fontname": case "fontsize": + case "forecolor": case "hilitecolor": + case "justifycenter": case "justifyfull": case "justifyleft": + case "justifyright": case "delete": case "selectall": case "toggledir": + supportedBy = isSupportedBy(mozilla | ie | webkit | opera); + break; + + case "createlink": case "unlink": case "removeformat": + case "inserthorizontalrule": case "insertimage": + case "insertorderedlist": case "insertunorderedlist": + case "indent": case "outdent": case "formatblock": + case "inserthtml": case "undo": case "redo": case "strikethrough": case "tabindent": + supportedBy = isSupportedBy(mozilla | ie | opera | webkit420); + break; + + case "blockdirltr": case "blockdirrtl": + case "dirltr": case "dirrtl": + case "inlinedirltr": case "inlinedirrtl": + supportedBy = isSupportedBy(ie); + break; + case "cut": case "copy": case "paste": + supportedBy = isSupportedBy( ie | mozilla | webkit420); + break; + + case "inserttable": + supportedBy = isSupportedBy(mozilla | ie); + break; + + case "insertcell": case "insertcol": case "insertrow": + case "deletecells": case "deletecols": case "deleterows": + case "mergecells": case "splitcell": + supportedBy = isSupportedBy(ie | mozilla); + break; + + default: return false; + } + + return (dojo.isIE && supportedBy.ie) || + (dojo.isMoz && supportedBy.mozilla) || + (dojo.isWebKit && supportedBy.webkit) || + (dojo.isWebKit > 420 && supportedBy.webkit420) || + (dojo.isOpera && supportedBy.opera); // Boolean return true if the command is supported, false otherwise + }, + + execCommand: function(/*String*/ command, argument){ + // summary: + // Executes a command in the Rich Text area + // command: + // The command to execute + // argument: + // An optional argument to the command + // tags: + // protected + var returnValue; + + //focus() is required for IE to work + //In addition, focus() makes sure after the execution of + //the command, the editor receives the focus as expected + this.focus(); + + command = this._normalizeCommand(command, argument); + + + if(argument !== undefined){ + if(command == "heading"){ + throw new Error("unimplemented"); + }else if((command == "formatblock") && dojo.isIE){ + argument = '<'+argument+'>'; + } + } + + //Check to see if we have any over-rides for commands, they will be functions on this + //widget of the form _commandImpl. If we don't, fall through to the basic native + //exec command of the browser. + var implFunc = "_" + command + "Impl"; + if(this[implFunc]){ + returnValue = this[implFunc](argument); + }else{ + argument = arguments.length > 1 ? argument : null; + if(argument || command!="createlink"){ + returnValue = this.document.execCommand(command, false, argument); + } + } + + this.onDisplayChanged(); + return returnValue; + }, + + queryCommandEnabled: function(/*String*/ command){ + // summary: + // Check whether a command is enabled or not. + // tags: + // protected + if(this.disabled || !this._disabledOK){ return false; } + command = this._normalizeCommand(command); + if(dojo.isMoz || dojo.isWebKit){ + if(command == "unlink"){ // mozilla returns true always + // console.debug(this._sCall("hasAncestorElement", ['a'])); + return this._sCall("hasAncestorElement", ["a"]); + }else if(command == "inserttable"){ + return true; + } + } + //see #4109 + if(dojo.isWebKit){ + if(command == "copy"){ + command = "cut"; + }else if(command == "paste"){ + return true; + } + } + + var elem = dojo.isIE ? this.document.selection.createRange() : this.document; + try{ + return elem.queryCommandEnabled(command); + }catch(e){ + //Squelch, occurs if editor is hidden on FF 3 (and maybe others.) + return false; + } + + }, + + queryCommandState: function(command){ + // summary: + // Check the state of a given command and returns true or false. + // tags: + // protected + + if(this.disabled || !this._disabledOK){ return false; } + command = this._normalizeCommand(command); + try{ + return this.document.queryCommandState(command); + }catch(e){ + //Squelch, occurs if editor is hidden on FF 3 (and maybe others.) + return false; + } + }, + + queryCommandValue: function(command){ + // summary: + // Check the value of a given command. This matters most for + // custom selections and complex values like font value setting. + // tags: + // protected + + if(this.disabled || !this._disabledOK){ return false; } + var r; + command = this._normalizeCommand(command); + if(dojo.isIE && command == "formatblock"){ + r = this._native2LocalFormatNames[this.document.queryCommandValue(command)]; + }else if(dojo.isMoz && command === "hilitecolor"){ + var oldValue; + try{ + oldValue = this.document.queryCommandValue("styleWithCSS"); + }catch(e){ + oldValue = false; + } + this.document.execCommand("styleWithCSS", false, true); + r = this.document.queryCommandValue(command); + this.document.execCommand("styleWithCSS", false, oldValue); + }else{ + r = this.document.queryCommandValue(command); + } + return r; + }, + + // Misc. + + _sCall: function(name, args){ + // summary: + // Run the named method of dijit._editor.selection over the + // current editor instance's window, with the passed args. + // tags: + // private + return dojo.withGlobal(this.window, name, dijit._editor.selection, args); + }, + + // FIXME: this is a TON of code duplication. Why? + + placeCursorAtStart: function(){ + // summary: + // Place the cursor at the start of the editing area. + // tags: + // private + + this.focus(); + + //see comments in placeCursorAtEnd + var isvalid=false; + if(dojo.isMoz){ + // TODO: Is this branch even necessary? + var first=this.editNode.firstChild; + while(first){ + if(first.nodeType == 3){ + if(first.nodeValue.replace(/^\s+|\s+$/g, "").length>0){ + isvalid=true; + this._sCall("selectElement", [ first ]); + break; + } + }else if(first.nodeType == 1){ + isvalid=true; + var tg = first.tagName ? first.tagName.toLowerCase() : ""; + // Collapse before childless tags. + if(/br|input|img|base|meta|area|basefont|hr|link/.test(tg)){ + this._sCall("selectElement", [ first ]); + }else{ + // Collapse inside tags with children. + this._sCall("selectElementChildren", [ first ]); + } + break; + } + first = first.nextSibling; + } + }else{ + isvalid=true; + this._sCall("selectElementChildren", [ this.editNode ]); + } + if(isvalid){ + this._sCall("collapse", [ true ]); + } + }, + + placeCursorAtEnd: function(){ + // summary: + // Place the cursor at the end of the editing area. + // tags: + // private + + this.focus(); + + //In mozilla, if last child is not a text node, we have to use + // selectElementChildren on this.editNode.lastChild otherwise the + // cursor would be placed at the end of the closing tag of + //this.editNode.lastChild + var isvalid=false; + if(dojo.isMoz){ + var last=this.editNode.lastChild; + while(last){ + if(last.nodeType == 3){ + if(last.nodeValue.replace(/^\s+|\s+$/g, "").length>0){ + isvalid=true; + this._sCall("selectElement", [ last ]); + break; + } + }else if(last.nodeType == 1){ + isvalid=true; + if(last.lastChild){ + this._sCall("selectElement", [ last.lastChild ]); + }else{ + this._sCall("selectElement", [ last ]); + } + break; + } + last = last.previousSibling; + } + }else{ + isvalid=true; + this._sCall("selectElementChildren", [ this.editNode ]); + } + if(isvalid){ + this._sCall("collapse", [ false ]); + } + }, + + getValue: function(/*Boolean?*/ nonDestructive){ + // summary: + // Return the current content of the editing area (post filters + // are applied). Users should call attr('value') instead. + // nonDestructive: + // defaults to false. Should the post-filtering be run over a copy + // of the live DOM? Most users should pass "true" here unless they + // *really* know that none of the installed filters are going to + // mess up the editing session. + // tags: + // private + if(this.textarea){ + if(this.isClosed || !this.isLoaded){ + return this.textarea.value; + } + } + + return this._postFilterContent(null, nonDestructive); + }, + _getValueAttr: function(){ + // summary: + // Hook to make attr("value") work + return this.getValue(true); + }, + + setValue: function(/*String*/ html){ + // summary: + // This function sets the content. No undo history is preserved. + // Users should use set('value', ...) instead. + // tags: + // deprecated + + // TODO: remove this and getValue() for 2.0, and move code to _setValueAttr() + + if(!this.isLoaded){ + // try again after the editor is finished loading + this.onLoadDeferred.addCallback(dojo.hitch(this, function(){ + this.setValue(html); + })); + return; + } + this._cursorToStart = true; + if(this.textarea && (this.isClosed || !this.isLoaded)){ + this.textarea.value=html; + }else{ + html = this._preFilterContent(html); + var node = this.isClosed ? this.domNode : this.editNode; + + // Use to avoid webkit problems where editor is disabled until the user clicks it + if(!html && dojo.isWebKit){ + html = " "; + } + node.innerHTML = html; + this._preDomFilterContent(node); + } + this.onDisplayChanged(); + }, + + replaceValue: function(/*String*/ html){ + // summary: + // This function set the content while trying to maintain the undo stack + // (now only works fine with Moz, this is identical to setValue in all + // other browsers) + // tags: + // protected + + if(this.isClosed){ + this.setValue(html); + }else if(this.window && this.window.getSelection && !dojo.isMoz){ // Safari + // look ma! it's a totally f'd browser! + this.setValue(html); + }else if(this.window && this.window.getSelection){ // Moz + html = this._preFilterContent(html); + this.execCommand("selectall"); + if(!html){ + this._cursorToStart = true; + html = " "; + } + this.execCommand("inserthtml", html); + this._preDomFilterContent(this.editNode); + }else if(this.document && this.document.selection){//IE + //In IE, when the first element is not a text node, say + //an <a> tag, when replacing the content of the editing + //area, the <a> tag will be around all the content + //so for now, use setValue for IE too + this.setValue(html); + } + }, + + _preFilterContent: function(/*String*/ html){ + // summary: + // Filter the input before setting the content of the editing + // area. DOM pre-filtering may happen after this + // string-based filtering takes place but as of 1.2, this is not + // guaranteed for operations such as the inserthtml command. + // tags: + // private + + var ec = html; + dojo.forEach(this.contentPreFilters, function(ef){ if(ef){ ec = ef(ec); } }); + return ec; + }, + _preDomFilterContent: function(/*DomNode*/ dom){ + // summary: + // filter the input's live DOM. All filter operations should be + // considered to be "live" and operating on the DOM that the user + // will be interacting with in their editing session. + // tags: + // private + dom = dom || this.editNode; + dojo.forEach(this.contentDomPreFilters, function(ef){ + if(ef && dojo.isFunction(ef)){ + ef(dom); + } + }, this); + }, + + _postFilterContent: function( + /*DomNode|DomNode[]|String?*/ dom, + /*Boolean?*/ nonDestructive){ + // summary: + // filter the output after getting the content of the editing area + // + // description: + // post-filtering allows plug-ins and users to specify any number + // of transforms over the editor's content, enabling many common + // use-cases such as transforming absolute to relative URLs (and + // vice-versa), ensuring conformance with a particular DTD, etc. + // The filters are registered in the contentDomPostFilters and + // contentPostFilters arrays. Each item in the + // contentDomPostFilters array is a function which takes a DOM + // Node or array of nodes as its only argument and returns the + // same. It is then passed down the chain for further filtering. + // The contentPostFilters array behaves the same way, except each + // member operates on strings. Together, the DOM and string-based + // filtering allow the full range of post-processing that should + // be necessaray to enable even the most agressive of post-editing + // conversions to take place. + // + // If nonDestructive is set to "true", the nodes are cloned before + // filtering proceeds to avoid potentially destructive transforms + // to the content which may still needed to be edited further. + // Once DOM filtering has taken place, the serialized version of + // the DOM which is passed is run through each of the + // contentPostFilters functions. + // + // dom: + // a node, set of nodes, which to filter using each of the current + // members of the contentDomPostFilters and contentPostFilters arrays. + // + // nonDestructive: + // defaults to "false". If true, ensures that filtering happens on + // a clone of the passed-in content and not the actual node + // itself. + // + // tags: + // private + + var ec; + if(!dojo.isString(dom)){ + dom = dom || this.editNode; + if(this.contentDomPostFilters.length){ + if(nonDestructive){ + dom = dojo.clone(dom); + } + dojo.forEach(this.contentDomPostFilters, function(ef){ + dom = ef(dom); + }); + } + ec = dijit._editor.getChildrenHtml(dom); + }else{ + ec = dom; + } + + if(!dojo.trim(ec.replace(/^\xA0\xA0*/, '').replace(/\xA0\xA0*$/, '')).length){ + ec = ""; + } + + // if(dojo.isIE){ + // //removing appended <P> </P> for IE + // ec = ec.replace(/(?:<p> </p>[\n\r]*)+$/i,""); + // } + dojo.forEach(this.contentPostFilters, function(ef){ + ec = ef(ec); + }); + + return ec; + }, + + _saveContent: function(/*Event*/ e){ + // summary: + // Saves the content in an onunload event if the editor has not been closed + // tags: + // private + + var saveTextarea = dojo.byId(dijit._scopeName + "._editor.RichText.savedContent"); + if(saveTextarea.value){ + saveTextarea.value += this._SEPARATOR; + } + saveTextarea.value += this.name + ":" + this.getValue(true); + }, + + + escapeXml: function(/*String*/ str, /*Boolean*/ noSingleQuotes){ + // summary: + // Adds escape sequences for special characters in XML. + // Optionally skips escapes for single quotes + // tags: + // private + + str = str.replace(/&/gm, "&").replace(/</gm, "<").replace(/>/gm, ">").replace(/"/gm, """); + if(!noSingleQuotes){ + str = str.replace(/'/gm, "'"); + } + return str; // string + }, + + getNodeHtml: function(/* DomNode */ node){ + // summary: + // Deprecated. Use dijit._editor._getNodeHtml() instead. + // tags: + // deprecated + dojo.deprecated('dijit.Editor::getNodeHtml is deprecated','use dijit._editor.getNodeHtml instead', 2); + return dijit._editor.getNodeHtml(node); // String + }, + + getNodeChildrenHtml: function(/* DomNode */ dom){ + // summary: + // Deprecated. Use dijit._editor.getChildrenHtml() instead. + // tags: + // deprecated + dojo.deprecated('dijit.Editor::getNodeChildrenHtml is deprecated','use dijit._editor.getChildrenHtml instead', 2); + return dijit._editor.getChildrenHtml(dom); + }, + + close: function(/*Boolean*/ save){ + // summary: + // Kills the editor and optionally writes back the modified contents to the + // element from which it originated. + // save: + // Whether or not to save the changes. If false, the changes are discarded. + // tags: + // private + + if(this.isClosed){return false; } + + if(!arguments.length){ save = true; } + this._content = this.getValue(); + var changed = (this.savedContent != this._content); + + // line height is squashed for iframes + // FIXME: why was this here? if (this.iframe){ this.domNode.style.lineHeight = null; } + + if(this.interval){ clearInterval(this.interval); } + + if(this._webkitListener){ + //Cleaup of WebKit fix: #9532 + this.disconnect(this._webkitListener); + delete this._webkitListener; + } + + // Guard against memory leaks on IE (see #9268) + if(dojo.isIE){ + this.iframe.onfocus = null; + } + this.iframe._loadFunc = null; + + if(this._iframeRegHandle){ + dijit.unregisterIframe(this._iframeRegHandle); + delete this._iframeRegHandle; + } + + if(this.textarea){ + var s = this.textarea.style; + s.position = ""; + s.left = s.top = ""; + if(dojo.isIE){ + s.overflow = this.__overflow; + this.__overflow = null; + } + this.textarea.value = save ? this._content : this.savedContent; + dojo.destroy(this.domNode); + this.domNode = this.textarea; + }else{ + // if(save){ + // why we treat moz differently? comment out to fix #1061 + // if(dojo.isMoz){ + // var nc = dojo.doc.createElement("span"); + // this.domNode.appendChild(nc); + // nc.innerHTML = this.editNode.innerHTML; + // }else{ + // this.domNode.innerHTML = this._content; + // } + // } + + // Note that this destroys the iframe + this.domNode.innerHTML = save ? this._content : this.savedContent; + } + delete this.iframe; + + dojo.removeClass(this.domNode, this.baseClass); + this.isClosed = true; + this.isLoaded = false; + + delete this.editNode; + delete this.focusNode; + + if(this.window && this.window._frameElement){ + this.window._frameElement = null; + } + + this.window = null; + this.document = null; + this.editingArea = null; + this.editorObject = null; + + return changed; // Boolean: whether the content has been modified + }, + + destroy: function(){ + if(!this.isClosed){ this.close(false); } + this.inherited(arguments); + }, + + _removeMozBogus: function(/* String */ html){ + // summary: + // Post filter to remove unwanted HTML attributes generated by mozilla + // tags: + // private + return html.replace(/\stype="_moz"/gi, '').replace(/\s_moz_dirty=""/gi, '').replace(/_moz_resizing="(true|false)"/gi,''); // String + }, + _removeWebkitBogus: function(/* String */ html){ + // summary: + // Post filter to remove unwanted HTML attributes generated by webkit + // tags: + // private + html = html.replace(/\sclass="webkit-block-placeholder"/gi, ''); + html = html.replace(/\sclass="apple-style-span"/gi, ''); + return html; // String + }, + _normalizeFontStyle: function(/* String */ html){ + // summary: + // Convert 'strong' and 'em' to 'b' and 'i'. + // description: + // Moz can not handle strong/em tags correctly, so to help + // mozilla and also to normalize output, convert them to 'b' and 'i'. + // + // Note the IE generates 'strong' and 'em' rather than 'b' and 'i' + // tags: + // private + return html.replace(/<(\/)?strong([ \>])/gi, '<$1b$2') + .replace(/<(\/)?em([ \>])/gi, '<$1i$2' ); // String + }, + + _preFixUrlAttributes: function(/* String */ html){ + // summary: + // Pre-filter to do fixing to href attributes on <a> and <img> tags + // tags: + // private + return html.replace(/(?:(<a(?=\s).*?\shref=)("|')(.*?)\2)|(?:(<a\s.*?href=)([^"'][^ >]+))/gi, + '$1$4$2$3$5$2 _djrealurl=$2$3$5$2') + .replace(/(?:(<img(?=\s).*?\ssrc=)("|')(.*?)\2)|(?:(<img\s.*?src=)([^"'][^ >]+))/gi, + '$1$4$2$3$5$2 _djrealurl=$2$3$5$2'); // String + }, + + /***************************************************************************** + The following functions implement HTML manipulation commands for various + browser/contentEditable implementations. The goal of them is to enforce + standard behaviors of them. + ******************************************************************************/ + + _inserthorizontalruleImpl: function(argument){ + // summary: + // This function implements the insertion of HTML 'HR' tags. + // into a point on the page. IE doesn't to it right, so + // we have to use an alternate form + // argument: + // arguments to the exec command, if any. + // tags: + // protected + if(dojo.isIE){ + return this._inserthtmlImpl("<hr>"); + } + return this.document.execCommand("inserthorizontalrule", false, argument); + }, + + _unlinkImpl: function(argument){ + // summary: + // This function implements the unlink of an 'a' tag. + // argument: + // arguments to the exec command, if any. + // tags: + // protected + if((this.queryCommandEnabled("unlink")) && (dojo.isMoz || dojo.isWebKit)){ + var a = this._sCall("getAncestorElement", [ "a" ]); + this._sCall("selectElement", [ a ]); + return this.document.execCommand("unlink", false, null); + } + return this.document.execCommand("unlink", false, argument); + }, + + _hilitecolorImpl: function(argument){ + // summary: + // This function implements the hilitecolor command + // argument: + // arguments to the exec command, if any. + // tags: + // protected + var returnValue; + if(dojo.isMoz){ + // mozilla doesn't support hilitecolor properly when useCSS is + // set to false (bugzilla #279330) + this.document.execCommand("styleWithCSS", false, true); + returnValue = this.document.execCommand("hilitecolor", false, argument); + this.document.execCommand("styleWithCSS", false, false); + }else{ + returnValue = this.document.execCommand("hilitecolor", false, argument); + } + return returnValue; + }, + + _backcolorImpl: function(argument){ + // summary: + // This function implements the backcolor command + // argument: + // arguments to the exec command, if any. + // tags: + // protected + if(dojo.isIE){ + // Tested under IE 6 XP2, no problem here, comment out + // IE weirdly collapses ranges when we exec these commands, so prevent it + // var tr = this.document.selection.createRange(); + argument = argument ? argument : null; + } + return this.document.execCommand("backcolor", false, argument); + }, + + _forecolorImpl: function(argument){ + // summary: + // This function implements the forecolor command + // argument: + // arguments to the exec command, if any. + // tags: + // protected + if(dojo.isIE){ + // Tested under IE 6 XP2, no problem here, comment out + // IE weirdly collapses ranges when we exec these commands, so prevent it + // var tr = this.document.selection.createRange(); + argument = argument? argument : null; + } + return this.document.execCommand("forecolor", false, argument); + }, + + _inserthtmlImpl: function(argument){ + // summary: + // This function implements the insertion of HTML content into + // a point on the page. + // argument: + // The content to insert, if any. + // tags: + // protected + argument = this._preFilterContent(argument); + var rv = true; + if(dojo.isIE){ + var insertRange = this.document.selection.createRange(); + if(this.document.selection.type.toUpperCase() == 'CONTROL'){ + var n=insertRange.item(0); + while(insertRange.length){ + insertRange.remove(insertRange.item(0)); + } + n.outerHTML=argument; + }else{ + insertRange.pasteHTML(argument); + } + insertRange.select(); + //insertRange.collapse(true); + }else if(dojo.isMoz && !argument.length){ + //mozilla can not inserthtml an empty html to delete current selection + //so we delete the selection instead in this case + this._sCall("remove"); // FIXME + }else{ + rv = this.document.execCommand("inserthtml", false, argument); + } + return rv; + }, + + getHeaderHeight: function(){ + // summary: + // A function for obtaining the height of the header node + return this._getNodeChildrenHeight(this.header); // Number + }, + + getFooterHeight: function(){ + // summary: + // A function for obtaining the height of the footer node + return this._getNodeChildrenHeight(this.footer); // Number + }, + + _getNodeChildrenHeight: function(node){ + // summary: + // An internal function for computing the cumulative height of all child nodes of 'node' + // node: + // The node to process the children of; + var h = 0; + if(node && node.childNodes){ + // IE didn't compute it right when position was obtained on the node directly is some cases, + // so we have to walk over all the children manually. + var i; + for(i = 0; i < node.childNodes.length; i++){ + var size = dojo.position(node.childNodes[i]); + h += size.h; + } + } + return h; // Number + } +}); + +} + +if(!dojo._hasResource["dijit._KeyNavContainer"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit._KeyNavContainer"] = true; +dojo.provide("dijit._KeyNavContainer"); + + +dojo.declare("dijit._KeyNavContainer", + dijit._Container, + { + + // summary: + // A _Container with keyboard navigation of its children. + // description: + // To use this mixin, call connectKeyNavHandlers() in + // postCreate() and call startupKeyNavChildren() in startup(). + // It provides normalized keyboard and focusing code for Container + // widgets. +/*===== + // focusedChild: [protected] Widget + // The currently focused child widget, or null if there isn't one + focusedChild: null, +=====*/ + + // tabIndex: Integer + // Tab index of the container; same as HTML tabIndex attribute. + // Note then when user tabs into the container, focus is immediately + // moved to the first item in the container. + tabIndex: "0", + + _keyNavCodes: {}, + + connectKeyNavHandlers: function(/*dojo.keys[]*/ prevKeyCodes, /*dojo.keys[]*/ nextKeyCodes){ + // summary: + // Call in postCreate() to attach the keyboard handlers + // to the container. + // preKeyCodes: dojo.keys[] + // Key codes for navigating to the previous child. + // nextKeyCodes: dojo.keys[] + // Key codes for navigating to the next child. + // tags: + // protected + + var keyCodes = (this._keyNavCodes = {}); + var prev = dojo.hitch(this, this.focusPrev); + var next = dojo.hitch(this, this.focusNext); + dojo.forEach(prevKeyCodes, function(code){ keyCodes[code] = prev; }); + dojo.forEach(nextKeyCodes, function(code){ keyCodes[code] = next; }); + this.connect(this.domNode, "onkeypress", "_onContainerKeypress"); + this.connect(this.domNode, "onfocus", "_onContainerFocus"); + }, + + startupKeyNavChildren: function(){ + // summary: + // Call in startup() to set child tabindexes to -1 + // tags: + // protected + dojo.forEach(this.getChildren(), dojo.hitch(this, "_startupChild")); + }, + + addChild: function(/*dijit._Widget*/ widget, /*int?*/ insertIndex){ + // summary: + // Add a child to our _Container + dijit._KeyNavContainer.superclass.addChild.apply(this, arguments); + this._startupChild(widget); + }, + + focus: function(){ + // summary: + // Default focus() implementation: focus the first child. + this.focusFirstChild(); + }, + + focusFirstChild: function(){ + // summary: + // Focus the first focusable child in the container. + // tags: + // protected + var child = this._getFirstFocusableChild(); + if(child){ // edge case: Menu could be empty or hidden + this.focusChild(child); + } + }, + + focusNext: function(){ + // summary: + // Focus the next widget + // tags: + // protected + var child = this._getNextFocusableChild(this.focusedChild, 1); + this.focusChild(child); + }, + + focusPrev: function(){ + // summary: + // Focus the last focusable node in the previous widget + // (ex: go to the ComboButton icon section rather than button section) + // tags: + // protected + var child = this._getNextFocusableChild(this.focusedChild, -1); + this.focusChild(child, true); + }, + + focusChild: function(/*dijit._Widget*/ widget, /*Boolean*/ last){ + // summary: + // Focus widget. + // widget: + // Reference to container's child widget + // last: + // If true and if widget has multiple focusable nodes, focus the + // last one instead of the first one + // tags: + // protected + + if(this.focusedChild && widget !== this.focusedChild){ + this._onChildBlur(this.focusedChild); + } + widget.focus(last ? "end" : "start"); + this.focusedChild = widget; + }, + + _startupChild: function(/*dijit._Widget*/ widget){ + // summary: + // Setup for each child widget + // description: + // Sets tabIndex=-1 on each child, so that the tab key will + // leave the container rather than visiting each child. + // tags: + // private + + widget.set("tabIndex", "-1"); + + this.connect(widget, "_onFocus", function(){ + // Set valid tabIndex so tabbing away from widget goes to right place, see #10272 + widget.set("tabIndex", this.tabIndex); + }); + this.connect(widget, "_onBlur", function(){ + widget.set("tabIndex", "-1"); + }); + }, + + _onContainerFocus: function(evt){ + // summary: + // Handler for when the container gets focus + // description: + // Initially the container itself has a tabIndex, but when it gets + // focus, switch focus to first child... + // tags: + // private + + // Note that we can't use _onFocus() because switching focus from the + // _onFocus() handler confuses the focus.js code + // (because it causes _onFocusNode() to be called recursively) + + // focus bubbles on Firefox, + // so just make sure that focus has really gone to the container + if(evt.target !== this.domNode){ return; } + + this.focusFirstChild(); + + // and then set the container's tabIndex to -1, + // (don't remove as that breaks Safari 4) + // so that tab or shift-tab will go to the fields after/before + // the container, rather than the container itself + dojo.attr(this.domNode, "tabIndex", "-1"); + }, + + _onBlur: function(evt){ + // When focus is moved away the container, and its descendant (popup) widgets, + // then restore the container's tabIndex so that user can tab to it again. + // Note that using _onBlur() so that this doesn't happen when focus is shifted + // to one of my child widgets (typically a popup) + if(this.tabIndex){ + dojo.attr(this.domNode, "tabIndex", this.tabIndex); + } + this.inherited(arguments); + }, + + _onContainerKeypress: function(evt){ + // summary: + // When a key is pressed, if it's an arrow key etc. then + // it's handled here. + // tags: + // private + if(evt.ctrlKey || evt.altKey){ return; } + var func = this._keyNavCodes[evt.charOrCode]; + if(func){ + func(); + dojo.stopEvent(evt); + } + }, + + _onChildBlur: function(/*dijit._Widget*/ widget){ + // summary: + // Called when focus leaves a child widget to go + // to a sibling widget. + // tags: + // protected + }, + + _getFirstFocusableChild: function(){ + // summary: + // Returns first child that can be focused + return this._getNextFocusableChild(null, 1); // dijit._Widget + }, + + _getNextFocusableChild: function(child, dir){ + // summary: + // Returns the next or previous focusable child, compared + // to "child" + // child: Widget + // The current widget + // dir: Integer + // * 1 = after + // * -1 = before + if(child){ + child = this._getSiblingOfChild(child, dir); + } + var children = this.getChildren(); + for(var i=0; i < children.length; i++){ + if(!child){ + child = children[(dir>0) ? 0 : (children.length-1)]; + } + if(child.isFocusable()){ + return child; // dijit._Widget + } + child = this._getSiblingOfChild(child, dir); + } + // no focusable child found + return null; // dijit._Widget + } + } +); + +} + +if(!dojo._hasResource["dijit.ToolbarSeparator"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.ToolbarSeparator"] = true; +dojo.provide("dijit.ToolbarSeparator"); + + + + +dojo.declare("dijit.ToolbarSeparator", + [ dijit._Widget, dijit._Templated ], + { + // summary: + // A spacer between two `dijit.Toolbar` items + templateString: '<div class="dijitToolbarSeparator dijitInline" waiRole="presentation"></div>', + postCreate: function(){ dojo.setSelectable(this.domNode, false); }, + isFocusable: function(){ + // summary: + // This widget isn't focusable, so pass along that fact. + // tags: + // protected + return false; + } + + }); + + + +} + +if(!dojo._hasResource["dijit.Toolbar"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.Toolbar"] = true; +dojo.provide("dijit.Toolbar"); + + + + + +dojo.declare("dijit.Toolbar", + [dijit._Widget, dijit._Templated, dijit._KeyNavContainer], + { + // summary: + // A Toolbar widget, used to hold things like `dijit.Editor` buttons + + templateString: + '<div class="dijit" waiRole="toolbar" tabIndex="${tabIndex}" dojoAttachPoint="containerNode">' + + // '<table style="table-layout: fixed" class="dijitReset dijitToolbarTable">' + // factor out style + // '<tr class="dijitReset" dojoAttachPoint="containerNode"></tr>'+ + // '</table>' + + '</div>', + + baseClass: "dijitToolbar", + + postCreate: function(){ + this.connectKeyNavHandlers( + this.isLeftToRight() ? [dojo.keys.LEFT_ARROW] : [dojo.keys.RIGHT_ARROW], + this.isLeftToRight() ? [dojo.keys.RIGHT_ARROW] : [dojo.keys.LEFT_ARROW] + ); + this.inherited(arguments); + }, + + startup: function(){ + if(this._started){ return; } + + this.startupKeyNavChildren(); + + this.inherited(arguments); + } +} +); + +// For back-compat, remove for 2.0 + + +} + +if(!dojo._hasResource["dijit._HasDropDown"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit._HasDropDown"] = true; +dojo.provide("dijit._HasDropDown"); + + + + +dojo.declare("dijit._HasDropDown", + null, + { + // summary: + // Mixin for widgets that need drop down ability. + + // _buttonNode: [protected] DomNode + // The button/icon/node to click to display the drop down. + // Can be set via a dojoAttachPoint assignment. + // If missing, then either focusNode or domNode (if focusNode is also missing) will be used. + _buttonNode: null, + + // _arrowWrapperNode: [protected] DomNode + // Will set CSS class dijitUpArrow, dijitDownArrow, dijitRightArrow etc. on this node depending + // on where the drop down is set to be positioned. + // Can be set via a dojoAttachPoint assignment. + // If missing, then _buttonNode will be used. + _arrowWrapperNode: null, + + // _popupStateNode: [protected] DomNode + // The node to set the popupActive class on. + // Can be set via a dojoAttachPoint assignment. + // If missing, then focusNode or _buttonNode (if focusNode is missing) will be used. + _popupStateNode: null, + + // _aroundNode: [protected] DomNode + // The node to display the popup around. + // Can be set via a dojoAttachPoint assignment. + // If missing, then domNode will be used. + _aroundNode: null, + + // dropDown: [protected] Widget + // The widget to display as a popup. This widget *must* be + // defined before the startup function is called. + dropDown: null, + + // autoWidth: [protected] Boolean + // Set to true to make the drop down at least as wide as this + // widget. Set to false if the drop down should just be its + // default width + autoWidth: true, + + // forceWidth: [protected] Boolean + // Set to true to make the drop down exactly as wide as this + // widget. Overrides autoWidth. + forceWidth: false, + + // maxHeight: [protected] Integer + // The max height for our dropdown. Set to 0 for no max height. + // any dropdown taller than this will have scrollbars + maxHeight: 0, + + // dropDownPosition: [const] String[] + // This variable controls the position of the drop down. + // It's an array of strings with the following values: + // + // * before: places drop down to the left of the target node/widget, or to the right in + // the case of RTL scripts like Hebrew and Arabic + // * after: places drop down to the right of the target node/widget, or to the left in + // the case of RTL scripts like Hebrew and Arabic + // * above: drop down goes above target node + // * below: drop down goes below target node + // + // The list is positions is tried, in order, until a position is found where the drop down fits + // within the viewport. + // + dropDownPosition: ["below","above"], + + // _stopClickEvents: Boolean + // When set to false, the click events will not be stopped, in + // case you want to use them in your subwidget + _stopClickEvents: true, + + _onDropDownMouseDown: function(/*Event*/ e){ + // summary: + // Callback when the user mousedown's on the arrow icon + + if(this.disabled || this.readOnly){ return; } + + this._docHandler = this.connect(dojo.doc, "onmouseup", "_onDropDownMouseUp"); + + this.toggleDropDown(); + }, + + _onDropDownMouseUp: function(/*Event?*/ e){ + // summary: + // Callback when the user lifts their mouse after mouse down on the arrow icon. + // If the drop is a simple menu and the mouse is over the menu, we execute it, otherwise, we focus our + // dropDown node. If the event is missing, then we are not + // a mouseup event. + // + // This is useful for the common mouse movement pattern + // with native browser <select> nodes: + // 1. mouse down on the select node (probably on the arrow) + // 2. move mouse to a menu item while holding down the mouse button + // 3. mouse up. this selects the menu item as though the user had clicked it. + if(e && this._docHandler){ + this.disconnect(this._docHandler); + } + var dropDown = this.dropDown, overMenu = false; + + if(e && this._opened){ + // This code deals with the corner-case when the drop down covers the original widget, + // because it's so large. In that case mouse-up shouldn't select a value from the menu. + // Find out if our target is somewhere in our dropdown widget, + // but not over our _buttonNode (the clickable node) + var c = dojo.position(this._buttonNode, true); + if(!(e.pageX >= c.x && e.pageX <= c.x + c.w) || + !(e.pageY >= c.y && e.pageY <= c.y + c.h)){ + var t = e.target; + while(t && !overMenu){ + if(dojo.hasClass(t, "dijitPopup")){ + overMenu = true; + }else{ + t = t.parentNode; + } + } + if(overMenu){ + t = e.target; + if(dropDown.onItemClick){ + var menuItem; + while(t && !(menuItem = dijit.byNode(t))){ + t = t.parentNode; + } + if(menuItem && menuItem.onClick && menuItem.getParent){ + menuItem.getParent().onItemClick(menuItem, e); + } + } + return; + } + } + } + if(this._opened && dropDown.focus){ + // Focus the dropdown widget - do it on a delay so that we + // don't steal our own focus. + window.setTimeout(dojo.hitch(dropDown, "focus"), 1); + } + }, + + _onDropDownClick: function(/*Event*/ e){ + // the drop down was already opened on mousedown/keydown; just need to call stopEvent() + if(this._stopClickEvents){ + dojo.stopEvent(e); + } + }, + + _setupDropdown: function(){ + // summary: + // set up nodes and connect our mouse and keypress events + this._buttonNode = this._buttonNode || this.focusNode || this.domNode; + this._popupStateNode = this._popupStateNode || this.focusNode || this._buttonNode; + this._aroundNode = this._aroundNode || this.domNode; + this.connect(this._buttonNode, "onmousedown", "_onDropDownMouseDown"); + this.connect(this._buttonNode, "onclick", "_onDropDownClick"); + this.connect(this._buttonNode, "onkeydown", "_onDropDownKeydown"); + this.connect(this._buttonNode, "onkeyup", "_onKey"); + + // If we have a _setStateClass function (which happens when + // we are a form widget), then we need to connect our open/close + // functions to it + if(this._setStateClass){ + this.connect(this, "openDropDown", "_setStateClass"); + this.connect(this, "closeDropDown", "_setStateClass"); + } + + // Add a class to the "dijitDownArrowButton" type class to _buttonNode so theme can set direction of arrow + // based on where drop down will normally appear + var defaultPos = { + "after" : this.isLeftToRight() ? "Right" : "Left", + "before" : this.isLeftToRight() ? "Left" : "Right", + "above" : "Up", + "below" : "Down", + "left" : "Left", + "right" : "Right" + }[this.dropDownPosition[0]] || this.dropDownPosition[0] || "Down"; + dojo.addClass(this._arrowWrapperNode || this._buttonNode, "dijit" + defaultPos + "ArrowButton"); + }, + + postCreate: function(){ + this._setupDropdown(); + this.inherited(arguments); + }, + + destroyDescendants: function(){ + if(this.dropDown){ + // Destroy the drop down, unless it's already been destroyed. This can happen because + // the drop down is a direct child of <body> even though it's logically my child. + if(!this.dropDown._destroyed){ + this.dropDown.destroyRecursive(); + } + delete this.dropDown; + } + this.inherited(arguments); + }, + + _onDropDownKeydown: function(/*Event*/ e){ + if(e.keyCode == dojo.keys.DOWN_ARROW || e.keyCode == dojo.keys.ENTER || e.keyCode == dojo.keys.SPACE){ + e.preventDefault(); // stop IE screen jump + } + }, + + _onKey: function(/*Event*/ e){ + // summary: + // Callback when the user presses a key while focused on the button node + + if(this.disabled || this.readOnly){ return; } + var d = this.dropDown; + if(d && this._opened && d.handleKey){ + if(d.handleKey(e) === false){ return; } + } + if(d && this._opened && e.keyCode == dojo.keys.ESCAPE){ + this.toggleDropDown(); + }else if(d && !this._opened && + (e.keyCode == dojo.keys.DOWN_ARROW || e.keyCode == dojo.keys.ENTER || e.keyCode == dojo.keys.SPACE)){ + this.toggleDropDown(); + if(d.focus){ + setTimeout(dojo.hitch(d, "focus"), 1); + } + } + }, + + _onBlur: function(){ + // summary: + // Called magically when focus has shifted away from this widget and it's dropdown + + this.closeDropDown(); + // don't focus on button. the user has explicitly focused on something else. + this.inherited(arguments); + }, + + isLoaded: function(){ + // summary: + // Returns whether or not the dropdown is loaded. This can + // be overridden in order to force a call to loadDropDown(). + // tags: + // protected + + return true; + }, + + loadDropDown: function(/* Function */ loadCallback){ + // summary: + // Loads the data for the dropdown, and at some point, calls + // the given callback + // tags: + // protected + + loadCallback(); + }, + + toggleDropDown: function(){ + // summary: + // Toggle the drop-down widget; if it is up, close it, if not, open it + // tags: + // protected + + if(this.disabled || this.readOnly){ return; } + this.focus(); + var dropDown = this.dropDown; + if(!dropDown){ return; } + if(!this._opened){ + // If we aren't loaded, load it first so there isn't a flicker + if(!this.isLoaded()){ + this.loadDropDown(dojo.hitch(this, "openDropDown")); + return; + }else{ + this.openDropDown(); + } + }else{ + this.closeDropDown(); + } + }, + + openDropDown: function(){ + // summary: + // Opens the dropdown for this widget - it returns the + // return value of dijit.popup.open + // tags: + // protected + + var dropDown = this.dropDown; + var ddNode = dropDown.domNode; + var self = this; + + // Prepare our popup's height and honor maxHeight if it exists. + + // TODO: isn't maxHeight dependent on the return value from dijit.popup.open(), + // ie, dependent on how much space is available (BK) + + if(!this._preparedNode){ + dijit.popup.moveOffScreen(ddNode); + this._preparedNode = true; + // Check if we have explicitly set width and height on the dropdown widget dom node + if(ddNode.style.width){ + this._explicitDDWidth = true; + } + if(ddNode.style.height){ + this._explicitDDHeight = true; + } + } + + // Code for resizing dropdown (height limitation, or increasing width to match my width) + if(this.maxHeight || this.forceWidth || this.autoWidth){ + var myStyle = { + display: "", + visibility: "hidden" + }; + if(!this._explicitDDWidth){ + myStyle.width = ""; + } + if(!this._explicitDDHeight){ + myStyle.height = ""; + } + dojo.style(ddNode, myStyle); + + // Get size of drop down, and determine if vertical scroll bar needed + var mb = dojo.marginBox(ddNode); + var overHeight = (this.maxHeight && mb.h > this.maxHeight); + dojo.style(ddNode, { + overflowX: "hidden", + overflowY: overHeight ? "auto" : "hidden" + }); + if(overHeight){ + mb.h = this.maxHeight; + if("w" in mb){ + mb.w += 16; // room for vertical scrollbar + } + }else{ + delete mb.h; + } + delete mb.t; + delete mb.l; + + // Adjust dropdown width to match or be larger than my width + if(this.forceWidth){ + mb.w = this.domNode.offsetWidth; + }else if(this.autoWidth){ + mb.w = Math.max(mb.w, this.domNode.offsetWidth); + }else{ + delete mb.w; + } + + // And finally, resize the dropdown to calculated height and width + if(dojo.isFunction(dropDown.resize)){ + dropDown.resize(mb); + }else{ + dojo.marginBox(ddNode, mb); + } + } + + var retVal = dijit.popup.open({ + parent: this, + popup: dropDown, + around: this._aroundNode, + orient: dijit.getPopupAroundAlignment((this.dropDownPosition && this.dropDownPosition.length) ? this.dropDownPosition : ["below"],this.isLeftToRight()), + onExecute: function(){ + self.closeDropDown(true); + }, + onCancel: function(){ + self.closeDropDown(true); + }, + onClose: function(){ + dojo.attr(self._popupStateNode, "popupActive", false); + dojo.removeClass(self._popupStateNode, "dijitHasDropDownOpen"); + self._opened = false; + self.state = ""; + } + }); + dojo.attr(this._popupStateNode, "popupActive", "true"); + dojo.addClass(self._popupStateNode, "dijitHasDropDownOpen"); + this._opened=true; + this.state="Opened"; + // TODO: set this.checked and call setStateClass(), to affect button look while drop down is shown + return retVal; + }, + + closeDropDown: function(/*Boolean*/ focus){ + // summary: + // Closes the drop down on this widget + // tags: + // protected + + if(this._opened){ + if(focus){ this.focus(); } + dijit.popup.close(this.dropDown); + this._opened = false; + this.state = ""; + } + } + + } +); + +} + +if(!dojo._hasResource["dijit.form.Button"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.form.Button"] = true; +dojo.provide("dijit.form.Button"); + + + + + +dojo.declare("dijit.form.Button", + dijit.form._FormWidget, + { + // summary: + // Basically the same thing as a normal HTML button, but with special styling. + // description: + // Buttons can display a label, an icon, or both. + // A label should always be specified (through innerHTML) or the label + // attribute. It can be hidden via showLabel=false. + // example: + // | <button dojoType="dijit.form.Button" onClick="...">Hello world</button> + // + // example: + // | var button1 = new dijit.form.Button({label: "hello world", onClick: foo}); + // | dojo.body().appendChild(button1.domNode); + + // label: HTML String + // Text to display in button. + // If the label is hidden (showLabel=false) then and no title has + // been specified, then label is also set as title attribute of icon. + label: "", + + // showLabel: Boolean + // Set this to true to hide the label text and display only the icon. + // (If showLabel=false then iconClass must be specified.) + // Especially useful for toolbars. + // If showLabel=true, the label will become the title (a.k.a. tooltip/hint) of the icon. + // + // The exception case is for computers in high-contrast mode, where the label + // will still be displayed, since the icon doesn't appear. + showLabel: true, + + // iconClass: String + // Class to apply to DOMNode in button to make it display an icon + iconClass: "", + + // type: String + // Defines the type of button. "button", "submit", or "reset". + type: "button", + + baseClass: "dijitButton", + + templateString: dojo.cache("dijit.form", "templates/Button.html", "<span class=\"dijit dijitReset dijitInline\"\n\t><span class=\"dijitReset dijitInline dijitButtonNode\"\n\t\tdojoAttachEvent=\"ondijitclick:_onButtonClick\"\n\t\t><span class=\"dijitReset dijitStretch dijitButtonContents\"\n\t\t\tdojoAttachPoint=\"titleNode,focusNode\"\n\t\t\twaiRole=\"button\" waiState=\"labelledby-${id}_label\"\n\t\t\t><span class=\"dijitReset dijitInline dijitIcon\" dojoAttachPoint=\"iconNode\"></span\n\t\t\t><span class=\"dijitReset dijitToggleButtonIconChar\">●</span\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\"\n\t\t\t\tid=\"${id}_label\"\n\t\t\t\tdojoAttachPoint=\"containerNode\"\n\t\t\t></span\n\t\t></span\n\t></span\n\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" class=\"dijitOffScreen\"\n\t\tdojoAttachPoint=\"valueNode\"\n/></span>\n"), + + attributeMap: dojo.delegate(dijit.form._FormWidget.prototype.attributeMap, { + value: "valueNode", + iconClass: { node: "iconNode", type: "class" } + }), + + + _onClick: function(/*Event*/ e){ + // summary: + // Internal function to handle click actions + if(this.disabled){ + return false; + } + this._clicked(); // widget click actions + return this.onClick(e); // user click actions + }, + + _onButtonClick: function(/*Event*/ e){ + // summary: + // Handler when the user activates the button portion. + if(this._onClick(e) === false){ // returning nothing is same as true + e.preventDefault(); // needed for checkbox + }else if(this.type == "submit" && !(this.valueNode||this.focusNode).form){ // see if a nonform widget needs to be signalled + for(var node=this.domNode; node.parentNode/*#5935*/; node=node.parentNode){ + var widget=dijit.byNode(node); + if(widget && typeof widget._onSubmit == "function"){ + widget._onSubmit(e); + break; + } + } + }else if(this.valueNode){ + this.valueNode.click(); + e.preventDefault(); // cancel BUTTON click and continue with hidden INPUT click + } + }, + + _fillContent: function(/*DomNode*/ source){ + // Overrides _Templated._fillContent(). + // If button label is specified as srcNodeRef.innerHTML rather than + // this.params.label, handle it here. + if(source && (!this.params || !("label" in this.params))){ + this.set('label', source.innerHTML); + } + }, + + postCreate: function(){ + dojo.setSelectable(this.focusNode, false); + this.inherited(arguments); + }, + + _setShowLabelAttr: function(val){ + if(this.containerNode){ + dojo.toggleClass(this.containerNode, "dijitDisplayNone", !val); + } + this.showLabel = val; + }, + + onClick: function(/*Event*/ e){ + // summary: + // Callback for when button is clicked. + // If type="submit", return true to perform submit, or false to cancel it. + // type: + // callback + return true; // Boolean + }, + + _clicked: function(/*Event*/ e){ + // summary: + // Internal overridable function for when the button is clicked + }, + + setLabel: function(/*String*/ content){ + // summary: + // Deprecated. Use set('label', ...) instead. + dojo.deprecated("dijit.form.Button.setLabel() is deprecated. Use set('label', ...) instead.", "", "2.0"); + this.set("label", content); + }, + + _setLabelAttr: function(/*String*/ content){ + // summary: + // Hook for attr('label', ...) to work. + // description: + // Set the label (text) of the button; takes an HTML string. + this.containerNode.innerHTML = this.label = content; + if(this.showLabel == false && !this.params.title){ + this.titleNode.title = dojo.trim(this.containerNode.innerText || this.containerNode.textContent || ''); + } + } +}); + + +dojo.declare("dijit.form.DropDownButton", [dijit.form.Button, dijit._Container, dijit._HasDropDown], { + // summary: + // A button with a drop down + // + // example: + // | <button dojoType="dijit.form.DropDownButton" label="Hello world"> + // | <div dojotype="dijit.Menu">...</div> + // | </button> + // + // example: + // | var button1 = new dijit.form.DropDownButton({ label: "hi", dropDown: new dijit.Menu(...) }); + // | dojo.body().appendChild(button1); + // + + baseClass : "dijitDropDownButton", + + templateString: dojo.cache("dijit.form", "templates/DropDownButton.html", "<span class=\"dijit dijitReset dijitInline\"\n\t><span class='dijitReset dijitInline dijitButtonNode'\n\t\tdojoAttachEvent=\"ondijitclick:_onButtonClick\" dojoAttachPoint=\"_buttonNode\"\n\t\t><span class=\"dijitReset dijitStretch dijitButtonContents\"\n\t\t\tdojoAttachPoint=\"focusNode,titleNode,_arrowWrapperNode\"\n\t\t\twaiRole=\"button\" waiState=\"haspopup-true,labelledby-${id}_label\"\n\t\t\t><span class=\"dijitReset dijitInline dijitIcon\"\n\t\t\t\tdojoAttachPoint=\"iconNode\"\n\t\t\t></span\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\"\n\t\t\t\tdojoAttachPoint=\"containerNode,_popupStateNode\"\n\t\t\t\tid=\"${id}_label\"\n\t\t\t></span\n\t\t\t><span class=\"dijitReset dijitInline dijitArrowButtonInner\"></span\n\t\t\t><span class=\"dijitReset dijitInline dijitArrowButtonChar\">▼</span\n\t\t></span\n\t></span\n\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" class=\"dijitOffScreen\"\n\t\tdojoAttachPoint=\"valueNode\"\n/></span>\n"), + + _fillContent: function(){ + // Overrides Button._fillContent(). + // + // My inner HTML contains both the button contents and a drop down widget, like + // <DropDownButton> <span>push me</span> <Menu> ... </Menu> </DropDownButton> + // The first node is assumed to be the button content. The widget is the popup. + + if(this.srcNodeRef){ // programatically created buttons might not define srcNodeRef + //FIXME: figure out how to filter out the widget and use all remaining nodes as button + // content, not just nodes[0] + var nodes = dojo.query("*", this.srcNodeRef); + dijit.form.DropDownButton.superclass._fillContent.call(this, nodes[0]); + + // save pointer to srcNode so we can grab the drop down widget after it's instantiated + this.dropDownContainer = this.srcNodeRef; + } + }, + + startup: function(){ + if(this._started){ return; } + + // the child widget from srcNodeRef is the dropdown widget. Insert it in the page DOM, + // make it invisible, and store a reference to pass to the popup code. + if(!this.dropDown){ + var dropDownNode = dojo.query("[widgetId]", this.dropDownContainer)[0]; + this.dropDown = dijit.byNode(dropDownNode); + delete this.dropDownContainer; + } + dijit.popup.moveOffScreen(this.dropDown.domNode); + + this.inherited(arguments); + }, + + isLoaded: function(){ + // Returns whether or not we are loaded - if our dropdown has an href, + // then we want to check that. + var dropDown = this.dropDown; + return (!dropDown.href || dropDown.isLoaded); + }, + + loadDropDown: function(){ + // Loads our dropdown + var dropDown = this.dropDown; + if(!dropDown){ return; } + if(!this.isLoaded()){ + var handler = dojo.connect(dropDown, "onLoad", this, function(){ + dojo.disconnect(handler); + this.openDropDown(); + }); + dropDown.refresh(); + }else{ + this.openDropDown(); + } + }, + + isFocusable: function(){ + // Overridden so that focus is handled by the _HasDropDown mixin, not by + // the _FormWidget mixin. + return this.inherited(arguments) && !this._mouseDown; + } +}); + +dojo.declare("dijit.form.ComboButton", dijit.form.DropDownButton, { + // summary: + // A combination button and drop-down button. + // Users can click one side to "press" the button, or click an arrow + // icon to display the drop down. + // + // example: + // | <button dojoType="dijit.form.ComboButton" onClick="..."> + // | <span>Hello world</span> + // | <div dojoType="dijit.Menu">...</div> + // | </button> + // + // example: + // | var button1 = new dijit.form.ComboButton({label: "hello world", onClick: foo, dropDown: "myMenu"}); + // | dojo.body().appendChild(button1.domNode); + // + + templateString: dojo.cache("dijit.form", "templates/ComboButton.html", "<table class=\"dijit dijitReset dijitInline dijitLeft\"\n\tcellspacing='0' cellpadding='0' waiRole=\"presentation\"\n\t><tbody waiRole=\"presentation\"><tr waiRole=\"presentation\"\n\t\t><td class=\"dijitReset dijitStretch dijitButtonNode\" dojoAttachPoint=\"buttonNode\" dojoAttachEvent=\"ondijitclick:_onButtonClick,onkeypress:_onButtonKeyPress\"\n\t\t><div id=\"${id}_button\" class=\"dijitReset dijitButtonContents\"\n\t\t\tdojoAttachPoint=\"titleNode\"\n\t\t\twaiRole=\"button\" waiState=\"labelledby-${id}_label\"\n\t\t\t><div class=\"dijitReset dijitInline dijitIcon\" dojoAttachPoint=\"iconNode\" waiRole=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitInline dijitButtonText\" id=\"${id}_label\" dojoAttachPoint=\"containerNode\" waiRole=\"presentation\"></div\n\t\t></div\n\t\t></td\n\t\t><td id=\"${id}_arrow\" class='dijitReset dijitRight dijitButtonNode dijitArrowButton'\n\t\t\tdojoAttachPoint=\"_popupStateNode,focusNode,_buttonNode\"\n\t\t\tdojoAttachEvent=\"onkeypress:_onArrowKeyPress\"\n\t\t\ttitle=\"${optionsTitle}\"\n\t\t\twaiRole=\"button\" waiState=\"haspopup-true\"\n\t\t\t><div class=\"dijitReset dijitArrowButtonInner\" waiRole=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitArrowButtonChar\" waiRole=\"presentation\">▼</div\n\t\t></td\n\t\t><td style=\"display:none !important;\"\n\t\t\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" dojoAttachPoint=\"valueNode\"\n\t\t/></td></tr></tbody\n></table>\n"), + + attributeMap: dojo.mixin(dojo.clone(dijit.form.Button.prototype.attributeMap), { + id: "", + tabIndex: ["focusNode", "titleNode"], + title: "titleNode" + }), + + // optionsTitle: String + // Text that describes the options menu (accessibility) + optionsTitle: "", + + baseClass: "dijitComboButton", + + // Set classes like dijitButtonContentsHover or dijitArrowButtonActive depending on + // mouse action over specified node + cssStateNodes: { + "buttonNode": "dijitButtonNode", + "titleNode": "dijitButtonContents", + "_popupStateNode": "dijitDownArrowButton" + }, + + _focusedNode: null, + + _onButtonKeyPress: function(/*Event*/ evt){ + // summary: + // Handler for right arrow key when focus is on left part of button + if(evt.charOrCode == dojo.keys[this.isLeftToRight() ? "RIGHT_ARROW" : "LEFT_ARROW"]){ + dijit.focus(this._popupStateNode); + dojo.stopEvent(evt); + } + }, + + _onArrowKeyPress: function(/*Event*/ evt){ + // summary: + // Handler for left arrow key when focus is on right part of button + if(evt.charOrCode == dojo.keys[this.isLeftToRight() ? "LEFT_ARROW" : "RIGHT_ARROW"]){ + dijit.focus(this.titleNode); + dojo.stopEvent(evt); + } + }, + + focus: function(/*String*/ position){ + // summary: + // Focuses this widget to according to position, if specified, + // otherwise on arrow node + // position: + // "start" or "end" + + dijit.focus(position == "start" ? this.titleNode : this._popupStateNode); + } +}); + +dojo.declare("dijit.form.ToggleButton", dijit.form.Button, { + // summary: + // A button that can be in two states (checked or not). + // Can be base class for things like tabs or checkbox or radio buttons + + baseClass: "dijitToggleButton", + + // checked: Boolean + // Corresponds to the native HTML <input> element's attribute. + // In markup, specified as "checked='checked'" or just "checked". + // True if the button is depressed, or the checkbox is checked, + // or the radio button is selected, etc. + checked: false, + + attributeMap: dojo.mixin(dojo.clone(dijit.form.Button.prototype.attributeMap), { + checked:"focusNode" + }), + + _clicked: function(/*Event*/ evt){ + this.set('checked', !this.checked); + }, + + _setCheckedAttr: function(/*Boolean*/ value, /* Boolean? */ priorityChange){ + this.checked = value; + dojo.attr(this.focusNode || this.domNode, "checked", value); + dijit.setWaiState(this.focusNode || this.domNode, "pressed", value); + this._handleOnChange(value, priorityChange); + }, + + setChecked: function(/*Boolean*/ checked){ + // summary: + // Deprecated. Use set('checked', true/false) instead. + dojo.deprecated("setChecked("+checked+") is deprecated. Use set('checked',"+checked+") instead.", "", "2.0"); + this.set('checked', checked); + }, + + reset: function(){ + // summary: + // Reset the widget's value to what it was at initialization time + + this._hasBeenBlurred = false; + + // set checked state to original setting + this.set('checked', this.params.checked || false); + } +}); + +} + +if(!dojo._hasResource["dijit._editor._Plugin"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit._editor._Plugin"] = true; +dojo.provide("dijit._editor._Plugin"); + + + +dojo.declare("dijit._editor._Plugin", null, { + // summary + // Base class for a "plugin" to the editor, which is usually + // a single button on the Toolbar and some associated code + + constructor: function(/*Object?*/args, /*DomNode?*/node){ + this.params = args || {}; + dojo.mixin(this, this.params); + this._connects=[]; + }, + + // editor: [const] dijit.Editor + // Points to the parent editor + editor: null, + + // iconClassPrefix: [const] String + // The CSS class name for the button node is formed from `iconClassPrefix` and `command` + iconClassPrefix: "dijitEditorIcon", + + // button: dijit._Widget? + // Pointer to `dijit.form.Button` or other widget (ex: `dijit.form.FilteringSelect`) + // that is added to the toolbar to control this plugin. + // If not specified, will be created on initialization according to `buttonClass` + button: null, + + // command: String + // String like "insertUnorderedList", "outdent", "justifyCenter", etc. that represents an editor command. + // Passed to editor.execCommand() if `useDefaultCommand` is true. + command: "", + + // useDefaultCommand: Boolean + // If true, this plugin executes by calling Editor.execCommand() with the argument specified in `command`. + useDefaultCommand: true, + + // buttonClass: Widget Class + // Class of widget (ex: dijit.form.Button or dijit.form.FilteringSelect) + // that is added to the toolbar to control this plugin. + // This is used to instantiate the button, unless `button` itself is specified directly. + buttonClass: dijit.form.Button, + + getLabel: function(/*String*/key){ + // summary: + // Returns the label to use for the button + // tags: + // private + return this.editor.commands[key]; // String + }, + + _initButton: function(){ + // summary: + // Initialize the button or other widget that will control this plugin. + // This code only works for plugins controlling built-in commands in the editor. + // tags: + // protected extension + if(this.command.length){ + var label = this.getLabel(this.command), + editor = this.editor, + className = this.iconClassPrefix+" "+this.iconClassPrefix + this.command.charAt(0).toUpperCase() + this.command.substr(1); + if(!this.button){ + var props = dojo.mixin({ + label: label, + dir: editor.dir, + lang: editor.lang, + showLabel: false, + iconClass: className, + dropDown: this.dropDown, + tabIndex: "-1" + }, this.params || {}); + this.button = new this.buttonClass(props); + } + } + }, + + destroy: function(){ + // summary: + // Destroy this plugin + + dojo.forEach(this._connects, dojo.disconnect); + if(this.dropDown){ + this.dropDown.destroyRecursive(); + } + }, + + connect: function(o, f, tf){ + // summary: + // Make a dojo.connect() that is automatically disconnected when this plugin is destroyed. + // Similar to `dijit._Widget.connect`. + // tags: + // protected + this._connects.push(dojo.connect(o, f, this, tf)); + }, + + updateState: function(){ + // summary: + // Change state of the plugin to respond to events in the editor. + // description: + // This is called on meaningful events in the editor, such as change of selection + // or caret position (but not simple typing of alphanumeric keys). It gives the + // plugin a chance to update the CSS of its button. + // + // For example, the "bold" plugin will highlight/unhighlight the bold button depending on whether the + // characters next to the caret are bold or not. + // + // Only makes sense when `useDefaultCommand` is true, as it calls Editor.queryCommandEnabled(`command`). + var e = this.editor, + c = this.command, + checked, enabled; + if(!e || !e.isLoaded || !c.length){ return; } + if(this.button){ + try{ + enabled = e.queryCommandEnabled(c); + if(this.enabled !== enabled){ + this.enabled = enabled; + this.button.set('disabled', !enabled); + } + if(typeof this.button.checked == 'boolean'){ + checked = e.queryCommandState(c); + if(this.checked !== checked){ + this.checked = checked; + this.button.set('checked', e.queryCommandState(c)); + } + } + }catch(e){ + console.log(e); // FIXME: we shouldn't have debug statements in our code. Log as an error? + } + } + }, + + setEditor: function(/*dijit.Editor*/ editor){ + // summary: + // Tell the plugin which Editor it is associated with. + + // TODO: refactor code to just pass editor to constructor. + + // FIXME: detach from previous editor!! + this.editor = editor; + + // FIXME: prevent creating this if we don't need to (i.e., editor can't handle our command) + this._initButton(); + + // Processing for buttons that execute by calling editor.execCommand() + if(this.button && this.useDefaultCommand){ + if(this.editor.queryCommandAvailable(this.command)){ + this.connect(this.button, "onClick", + dojo.hitch(this.editor, "execCommand", this.command, this.commandArg) + ); + }else{ + // hide button because editor doesn't support command (due to browser limitations) + this.button.domNode.style.display = "none"; + } + } + + this.connect(this.editor, "onNormalizedDisplayChanged", "updateState"); + }, + + setToolbar: function(/*dijit.Toolbar*/ toolbar){ + // summary: + // Tell the plugin to add it's controller widget (often a button) + // to the toolbar. Does nothing if there is no controller widget. + + // TODO: refactor code to just pass toolbar to constructor. + + if(this.button){ + toolbar.addChild(this.button); + } + // console.debug("adding", this.button, "to:", toolbar); + } +}); + +} + +if(!dojo._hasResource["dijit._editor.plugins.EnterKeyHandling"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit._editor.plugins.EnterKeyHandling"] = true; +dojo.provide("dijit._editor.plugins.EnterKeyHandling"); + + + +dojo.declare("dijit._editor.plugins.EnterKeyHandling", dijit._editor._Plugin, { + // summary: + // This plugin tries to make all browsers behave consistently w.r.t + // displaying paragraphs, specifically dealing with when the user presses + // the ENTER key. + // + // It deals mainly with how the text appears on the screen (specifically + // address the double-spaced line problem on IE), but also has some code + // to normalize what attr('value') returns. + // + // description: + // This plugin has three modes: + // + // * blockModeForEnter=BR + // * blockModeForEnter=DIV + // * blockModeForEnter=P + // + // In blockModeForEnter=P, the ENTER key semantically means "start a new + // paragraph", whereas shift-ENTER means "new line in the current paragraph". + // For example: + // + // | first paragraph <shift-ENTER> + // | second line of first paragraph <ENTER> + // | + // | second paragraph + // + // In the other two modes, the ENTER key means to go to a new line in the + // current paragraph, and users [visually] create a new paragraph by pressing ENTER twice. + // For example, if the user enters text into an editor like this: + // + // | one <ENTER> + // | two <ENTER> + // | three <ENTER> + // | <ENTER> + // | four <ENTER> + // | five <ENTER> + // | six <ENTER> + // + // It will appear on the screen as two paragraphs of three lines each. + // + // blockNodeForEnter=BR + // -------------------- + // On IE, typing the above keystrokes in the editor will internally produce DOM of: + // + // | <p>one</p> + // | <p>two</p> + // | <p>three</p> + // | <p></p> + // | <p>four</p> + // | <p>five</p> + // | <p>six</p> + // + // However, blockNodeForEnter=BR makes the Editor on IE display like other browsers, by + // changing the CSS for the <p> node to not have top/bottom margins, + // thus eliminating the double-spaced appearance. + // + // Also, attr('value') when used w/blockNodeForEnter=br on IE will return: + // + // | <p> one <br> two <br> three </p> + // | <p> four <br> five <br> six </p> + // + // This output normalization implemented by a filter when the + // editor writes out it's data, to convert consecutive <p> + // nodes into a single <p> node with internal <br> separators. + // + // There's also a pre-filter to mirror the post-filter. + // It converts a single <p> with <br> line breaks + // into separate <p> nodes, and creates empty <p> nodes for spacing + // between paragraphs. + // + // On FF typing the above keystrokes will internally generate: + // + // | one <br> two <br> three <br> <br> four <br> five <br> six <br> + // + // And on Safari it will generate: + // + // | "one" + // | <div>two</div> + // | <div>three</div> + // | <div><br></div> + // | <div>four</div> + // | <div>five</div> + // | <div>six</div> + // + // Thus, Safari and FF already look correct although semantically their content is a bit strange. + // On Safari or Firefox blockNodeForEnter=BR uses the builtin editor command "insertBrOnReturn", + // but that doesn't seem to do anything. + // Thus, attr('value') on safari/FF returns the browser-specific HTML listed above, + // rather than the semantically meaningful value that IE returns: <p>one<br>two</p> <p>three<br>four</p>. + // + // (Note: originally based on http://bugs.dojotoolkit.org/ticket/2859) + // + // blockNodeForEnter=P + // ------------------- + // Plugin will monitor keystrokes and update the editor's content on the fly, + // so that the ENTER key will create a new <p> on FF and Safari (it already + // works that way by default on IE). + // + // blockNodeForEnter=DIV + // --------------------- + // Follows the same code path as blockNodeForEnter=P but inserting a <div> + // on ENTER key. Although it produces strange internal DOM, like this: + // + // | <div>paragraph one</div> + // | <div>paragraph one, line 2</div> + // | <div> </div> + // | <div>paragraph two</div> + // + // it does provide a consistent look on all browsers, and the on-the-fly DOM updating + // can be useful for collaborative editing. + + // blockNodeForEnter: String + // This property decides the behavior of Enter key. It can be either P, + // DIV, BR, or empty (which means disable this feature). Anything else + // will trigger errors. + // + // See class description for more details. + blockNodeForEnter: 'BR', + + constructor: function(args){ + if(args){ + dojo.mixin(this,args); + } + }, + + setEditor: function(editor){ + // Overrides _Plugin.setEditor(). + this.editor = editor; + if(this.blockNodeForEnter == 'BR'){ + if(dojo.isIE){ + editor.contentDomPreFilters.push(dojo.hitch(this, "regularPsToSingleLinePs")); + editor.contentDomPostFilters.push(dojo.hitch(this, "singleLinePsToRegularPs")); + editor.onLoadDeferred.addCallback(dojo.hitch(this, "_fixNewLineBehaviorForIE")); + }else{ + editor.onLoadDeferred.addCallback(dojo.hitch(this,function(d){ + try{ + this.editor.document.execCommand("insertBrOnReturn", false, true); + }catch(e){} + return d; + })); + } + }else if(this.blockNodeForEnter){ + // add enter key handler + // FIXME: need to port to the new event code!! + dojo['require']('dijit._editor.range'); + var h = dojo.hitch(this,this.handleEnterKey); + editor.addKeyHandler(13, 0, 0, h); //enter + editor.addKeyHandler(13, 0, 1, h); //shift+enter + this.connect(this.editor,'onKeyPressed','onKeyPressed'); + } + }, + onKeyPressed: function(e){ + // summary: + // Handler for keypress events. + // tags: + // private + if(this._checkListLater){ + if(dojo.withGlobal(this.editor.window, 'isCollapsed', dijit)){ + var liparent=dojo.withGlobal(this.editor.window, 'getAncestorElement', dijit._editor.selection, ['LI']); + if(!liparent){ + // circulate the undo detection code by calling RichText::execCommand directly + dijit._editor.RichText.prototype.execCommand.call(this.editor, 'formatblock',this.blockNodeForEnter); + // set the innerHTML of the new block node + var block = dojo.withGlobal(this.editor.window, 'getAncestorElement', dijit._editor.selection, [this.blockNodeForEnter]); + if(block){ + block.innerHTML=this.bogusHtmlContent; + if(dojo.isIE){ + // move to the start by moving backwards one char + var r = this.editor.document.selection.createRange(); + r.move('character',-1); + r.select(); + } + }else{ + console.error('onKeyPressed: Cannot find the new block node'); // FIXME + } + }else{ + if(dojo.isMoz){ + if(liparent.parentNode.parentNode.nodeName == 'LI'){ + liparent=liparent.parentNode.parentNode; + } + } + var fc=liparent.firstChild; + if(fc && fc.nodeType == 1 && (fc.nodeName == 'UL' || fc.nodeName == 'OL')){ + liparent.insertBefore(fc.ownerDocument.createTextNode('\xA0'),fc); + var newrange = dijit.range.create(this.editor.window); + newrange.setStart(liparent.firstChild,0); + var selection = dijit.range.getSelection(this.editor.window, true); + selection.removeAllRanges(); + selection.addRange(newrange); + } + } + } + this._checkListLater = false; + } + if(this._pressedEnterInBlock){ + // the new created is the original current P, so we have previousSibling below + if(this._pressedEnterInBlock.previousSibling){ + this.removeTrailingBr(this._pressedEnterInBlock.previousSibling); + } + delete this._pressedEnterInBlock; + } + }, + + // bogusHtmlContent: [private] String + // HTML to stick into a new empty block + bogusHtmlContent: ' ', + + // blockNodes: [private] Regex + // Regex for testing if a given tag is a block level (display:block) tag + blockNodes: /^(?:P|H1|H2|H3|H4|H5|H6|LI)$/, + + handleEnterKey: function(e){ + // summary: + // Handler for enter key events when blockModeForEnter is DIV or P. + // description: + // Manually handle enter key event to make the behavior consistent across + // all supported browsers. See class description for details. + // tags: + // private + + var selection, range, newrange, doc=this.editor.document,br; + if(e.shiftKey){ // shift+enter always generates <br> + var parent = dojo.withGlobal(this.editor.window, "getParentElement", dijit._editor.selection); + var header = dijit.range.getAncestor(parent,this.blockNodes); + if(header){ + if(!e.shiftKey && header.tagName == 'LI'){ + return true; // let browser handle + } + selection = dijit.range.getSelection(this.editor.window); + range = selection.getRangeAt(0); + if(!range.collapsed){ + range.deleteContents(); + selection = dijit.range.getSelection(this.editor.window); + range = selection.getRangeAt(0); + } + if(dijit.range.atBeginningOfContainer(header, range.startContainer, range.startOffset)){ + if(e.shiftKey){ + br=doc.createElement('br'); + newrange = dijit.range.create(this.editor.window); + header.insertBefore(br,header.firstChild); + newrange.setStartBefore(br.nextSibling); + selection.removeAllRanges(); + selection.addRange(newrange); + }else{ + dojo.place(br, header, "before"); + } + }else if(dijit.range.atEndOfContainer(header, range.startContainer, range.startOffset)){ + newrange = dijit.range.create(this.editor.window); + br=doc.createElement('br'); + if(e.shiftKey){ + header.appendChild(br); + header.appendChild(doc.createTextNode('\xA0')); + newrange.setStart(header.lastChild,0); + }else{ + dojo.place(br, header, "after"); + newrange.setStartAfter(header); + } + + selection.removeAllRanges(); + selection.addRange(newrange); + }else{ + return true; // let browser handle + } + }else{ + // don't change this: do not call this.execCommand, as that may have other logic in subclass + dijit._editor.RichText.prototype.execCommand.call(this.editor, 'inserthtml', '<br>'); + } + return false; + } + var _letBrowserHandle = true; + + // first remove selection + selection = dijit.range.getSelection(this.editor.window); + range = selection.getRangeAt(0); + if(!range.collapsed){ + range.deleteContents(); + selection = dijit.range.getSelection(this.editor.window); + range = selection.getRangeAt(0); + } + + var block = dijit.range.getBlockAncestor(range.endContainer, null, this.editor.editNode); + var blockNode = block.blockNode; + + // if this is under a LI or the parent of the blockNode is LI, just let browser to handle it + if((this._checkListLater = (blockNode && (blockNode.nodeName == 'LI' || blockNode.parentNode.nodeName == 'LI')))){ + if(dojo.isMoz){ + // press enter in middle of P may leave a trailing <br/>, let's remove it later + this._pressedEnterInBlock = blockNode; + } + // if this li only contains spaces, set the content to empty so the browser will outdent this item + if(/^(\s| |\xA0|<span\b[^>]*\bclass=['"]Apple-style-span['"][^>]*>(\s| |\xA0)<\/span>)?(<br>)?$/.test(blockNode.innerHTML)){ + // empty LI node + blockNode.innerHTML = ''; + if(dojo.isWebKit){ // WebKit tosses the range when innerHTML is reset + newrange = dijit.range.create(this.editor.window); + newrange.setStart(blockNode, 0); + selection.removeAllRanges(); + selection.addRange(newrange); + } + this._checkListLater = false; // nothing to check since the browser handles outdent + } + return true; + } + + // text node directly under body, let's wrap them in a node + if(!block.blockNode || block.blockNode===this.editor.editNode){ + try{ + dijit._editor.RichText.prototype.execCommand.call(this.editor, 'formatblock',this.blockNodeForEnter); + }catch(e2){ /*squelch FF3 exception bug when editor content is a single BR*/ } + // get the newly created block node + // FIXME + block = {blockNode:dojo.withGlobal(this.editor.window, "getAncestorElement", dijit._editor.selection, [this.blockNodeForEnter]), + blockContainer: this.editor.editNode}; + if(block.blockNode){ + if(block.blockNode != this.editor.editNode && + (!(block.blockNode.textContent || block.blockNode.innerHTML).replace(/^\s+|\s+$/g, "").length)){ + this.removeTrailingBr(block.blockNode); + return false; + } + }else{ // we shouldn't be here if formatblock worked + block.blockNode = this.editor.editNode; + } + selection = dijit.range.getSelection(this.editor.window); + range = selection.getRangeAt(0); + } + + var newblock = doc.createElement(this.blockNodeForEnter); + newblock.innerHTML=this.bogusHtmlContent; + this.removeTrailingBr(block.blockNode); + if(dijit.range.atEndOfContainer(block.blockNode, range.endContainer, range.endOffset)){ + if(block.blockNode === block.blockContainer){ + block.blockNode.appendChild(newblock); + }else{ + dojo.place(newblock, block.blockNode, "after"); + } + _letBrowserHandle = false; + // lets move caret to the newly created block + newrange = dijit.range.create(this.editor.window); + newrange.setStart(newblock, 0); + selection.removeAllRanges(); + selection.addRange(newrange); + if(this.editor.height){ + dojo.window.scrollIntoView(newblock); + } + }else if(dijit.range.atBeginningOfContainer(block.blockNode, + range.startContainer, range.startOffset)){ + dojo.place(newblock, block.blockNode, block.blockNode === block.blockContainer ? "first" : "before"); + if(newblock.nextSibling && this.editor.height){ + // position input caret - mostly WebKit needs this + newrange = dijit.range.create(this.editor.window); + newrange.setStart(newblock.nextSibling, 0); + selection.removeAllRanges(); + selection.addRange(newrange); + // browser does not scroll the caret position into view, do it manually + dojo.window.scrollIntoView(newblock.nextSibling); + } + _letBrowserHandle = false; + }else{ //press enter in the middle of P/DIV/Whatever/ + if(block.blockNode === block.blockContainer){ + block.blockNode.appendChild(newblock); + }else{ + dojo.place(newblock, block.blockNode, "after"); + } + _letBrowserHandle = false; + + // Clone any block level styles. + if(block.blockNode.style){ + if(newblock.style){ + if(block.blockNode.style.cssText){ + newblock.style.cssText = block.blockNode.style.cssText; + } + } + } + + // Okay, we probably have to split. + var rs = range.startContainer; + if(rs && rs.nodeType == 3){ + // Text node, we have to split it. + var nodeToMove, tNode; + var txt = rs.nodeValue; + var startNode = doc.createTextNode(txt.substring(0, range.startOffset)); + var endNode = doc.createTextNode(txt.substring(range.startOffset, txt.length)); + + // Place the split, then remove original nodes. + dojo.place(startNode, rs, "before"); + dojo.place(endNode, rs, "after"); + dojo.destroy(rs); + + // Okay, we split the text. Now we need to see if we're + // parented to the block element we're splitting and if + // not, we have to split all the way up. Ugh. + var parentC = startNode.parentNode; + while(parentC !== block.blockNode){ + var tg = parentC.tagName; + var newTg = doc.createElement(tg); + // Clone over any 'style' data. + if(parentC.style){ + if(newTg.style){ + if(parentC.style.cssText){ + newTg.style.cssText = parentC.style.cssText; + } + } + } + + nodeToMove = endNode; + while(nodeToMove){ + tNode = nodeToMove.nextSibling; + newTg.appendChild(nodeToMove); + nodeToMove = tNode; + } + dojo.place(newTg, parentC, "after"); + startNode = parentC; + endNode = newTg; + parentC = parentC.parentNode; + } + + // Lastly, move the split out tags to the new block. + // as they should now be split properly. + nodeToMove = endNode; + if(nodeToMove.nodeType == 1 || (nodeToMove.nodeType == 3 && nodeToMove.nodeValue)){ + // Non-blank text and non-text nodes need to clear out that blank space + // before moving the contents. + newblock.innerHTML = ""; + } + while(nodeToMove){ + tNode = nodeToMove.nextSibling; + newblock.appendChild(nodeToMove); + nodeToMove = tNode; + } + } + + //lets move caret to the newly created block + newrange = dijit.range.create(this.editor.window); + newrange.setStart(newblock, 0); + selection.removeAllRanges(); + selection.addRange(newrange); + if(this.editor.height){ + dijit.scrollIntoView(newblock); + } + if(dojo.isMoz){ + // press enter in middle of P may leave a trailing <br/>, let's remove it later + this._pressedEnterInBlock = block.blockNode; + } + } + return _letBrowserHandle; + }, + + removeTrailingBr: function(container){ + // summary: + // If last child of container is a <br>, then remove it. + // tags: + // private + var para = /P|DIV|LI/i.test(container.tagName) ? + container : dijit._editor.selection.getParentOfType(container,['P','DIV','LI']); + + if(!para){ return; } + if(para.lastChild){ + if((para.childNodes.length > 1 && para.lastChild.nodeType == 3 && /^[\s\xAD]*$/.test(para.lastChild.nodeValue)) || + para.lastChild.tagName=='BR'){ + + dojo.destroy(para.lastChild); + } + } + if(!para.childNodes.length){ + para.innerHTML=this.bogusHtmlContent; + } + }, + _fixNewLineBehaviorForIE: function(d){ + // summary: + // Insert CSS so <p> nodes don't have spacing around them, + // thus hiding the fact that ENTER key on IE is creating new + // paragraphs + + // cannot use !important since there may be custom user styling; + var doc = this.editor.document; + if(doc.__INSERTED_EDITIOR_NEWLINE_CSS === undefined){ + var style = dojo.create("style", {type: "text/css"}, doc.getElementsByTagName("head")[0]); + style.styleSheet.cssText = "p{margin:0;}"; // cannot use !important since there may be custom user styling; + this.editor.document.__INSERTED_EDITIOR_NEWLINE_CSS = true; + } + return d; + }, + regularPsToSingleLinePs: function(element, noWhiteSpaceInEmptyP){ + // summary: + // Converts a <p> node containing <br>'s into multiple <p> nodes. + // description: + // See singleLinePsToRegularPs(). This method does the + // opposite thing, and is used as a pre-filter when loading the + // editor, to mirror the effects of the post-filter at end of edit. + // tags: + // private + function wrapLinesInPs(el){ + // move "lines" of top-level text nodes into ps + function wrapNodes(nodes){ + // nodes are assumed to all be siblings + var newP = nodes[0].ownerDocument.createElement('p'); // FIXME: not very idiomatic + nodes[0].parentNode.insertBefore(newP, nodes[0]); + dojo.forEach(nodes, function(node){ + newP.appendChild(node); + }); + } + + var currentNodeIndex = 0; + var nodesInLine = []; + var currentNode; + while(currentNodeIndex < el.childNodes.length){ + currentNode = el.childNodes[currentNodeIndex]; + if( currentNode.nodeType==3 || // text node + (currentNode.nodeType==1 && currentNode.nodeName!='BR' && dojo.style(currentNode, "display")!="block") + ){ + nodesInLine.push(currentNode); + }else{ + // hit line delimiter; process nodesInLine if there are any + var nextCurrentNode = currentNode.nextSibling; + if(nodesInLine.length){ + wrapNodes(nodesInLine); + currentNodeIndex = (currentNodeIndex+1)-nodesInLine.length; + if(currentNode.nodeName=="BR"){ + dojo.destroy(currentNode); + } + } + nodesInLine = []; + } + currentNodeIndex++; + } + if(nodesInLine.length){ wrapNodes(nodesInLine); } + } + + function splitP(el){ + // split a paragraph into seperate paragraphs at BRs + var currentNode = null; + var trailingNodes = []; + var lastNodeIndex = el.childNodes.length-1; + for(var i=lastNodeIndex; i>=0; i--){ + currentNode = el.childNodes[i]; + if(currentNode.nodeName=="BR"){ + var newP = currentNode.ownerDocument.createElement('p'); + dojo.place(newP, el, "after"); + if(trailingNodes.length==0 && i != lastNodeIndex){ + newP.innerHTML = " " + } + dojo.forEach(trailingNodes, function(node){ + newP.appendChild(node); + }); + dojo.destroy(currentNode); + trailingNodes = []; + }else{ + trailingNodes.unshift(currentNode); + } + } + } + + var pList = []; + var ps = element.getElementsByTagName('p'); + dojo.forEach(ps, function(p){ pList.push(p); }); + dojo.forEach(pList, function(p){ + var prevSib = p.previousSibling; + if( (prevSib) && (prevSib.nodeType == 1) && + (prevSib.nodeName == 'P' || dojo.style(prevSib, 'display') != 'block') + ){ + var newP = p.parentNode.insertBefore(this.document.createElement('p'), p); + // this is essential to prevent IE from losing the P. + // if it's going to be innerHTML'd later we need + // to add the to _really_ force the issue + newP.innerHTML = noWhiteSpaceInEmptyP ? "" : " "; + } + splitP(p); + },this.editor); + wrapLinesInPs(element); + return element; + }, + + singleLinePsToRegularPs: function(element){ + // summary: + // Called as post-filter. + // Apparently collapses adjacent <p> nodes into a single <p> + // nodes with <br> separating each line. + // + // example: + // Given this input: + // | <p>line 1</p> + // | <p>line 2</p> + // | <ol> + // | <li>item 1 + // | <li>item 2 + // | </ol> + // | <p>line 3</p> + // | <p>line 4</p> + // + // Will convert to: + // | <p>line 1<br>line 2</p> + // | <ol> + // | <li>item 1 + // | <li>item 2 + // | </ol> + // | <p>line 3<br>line 4</p> + // + // Not sure why this situation would even come up after the pre-filter and + // the enter-key-handling code. + // + // tags: + // private + + function getParagraphParents(node){ + // summary: + // Used to get list of all nodes that contain paragraphs. + // Seems like that would just be the very top node itself, but apparently not. + var ps = node.getElementsByTagName('p'); + var parents = []; + for(var i=0; i<ps.length; i++){ + var p = ps[i]; + var knownParent = false; + for(var k=0; k < parents.length; k++){ + if(parents[k] === p.parentNode){ + knownParent = true; + break; + } + } + if(!knownParent){ + parents.push(p.parentNode); + } + } + return parents; + } + + function isParagraphDelimiter(node){ + return (!node.childNodes.length || node.innerHTML==" "); + } + + var paragraphContainers = getParagraphParents(element); + for(var i=0; i<paragraphContainers.length; i++){ + var container = paragraphContainers[i]; + var firstPInBlock = null; + var node = container.firstChild; + var deleteNode = null; + while(node){ + if(node.nodeType != 1 || node.tagName != 'P' || + (node.getAttributeNode('style') || {/*no style*/}).specified){ + firstPInBlock = null; + }else if(isParagraphDelimiter(node)){ + deleteNode = node; + firstPInBlock = null; + }else{ + if(firstPInBlock == null){ + firstPInBlock = node; + }else{ + if( (!firstPInBlock.lastChild || firstPInBlock.lastChild.nodeName != 'BR') && + (node.firstChild) && + (node.firstChild.nodeName != 'BR') + ){ + firstPInBlock.appendChild(this.editor.document.createElement('br')); + } + while(node.firstChild){ + firstPInBlock.appendChild(node.firstChild); + } + deleteNode = node; + } + } + node = node.nextSibling; + if(deleteNode){ + dojo.destroy(deleteNode); + deleteNode = null; + } + } + } + return element; + } +}); + +} + +if(!dojo._hasResource["dijit.Editor"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.Editor"] = true; +dojo.provide("dijit.Editor"); + + + + + + + + + + + + + +dojo.declare( + "dijit.Editor", + dijit._editor.RichText, + { + // summary: + // A rich text Editing widget + // + // description: + // This widget provides basic WYSIWYG editing features, based on the browser's + // underlying rich text editing capability, accompanied by a toolbar (`dijit.Toolbar`). + // A plugin model is available to extend the editor's capabilities as well as the + // the options available in the toolbar. Content generation may vary across + // browsers, and clipboard operations may have different results, to name + // a few limitations. Note: this widget should not be used with the HTML + // <TEXTAREA> tag -- see dijit._editor.RichText for details. + + // plugins: Object[] + // A list of plugin names (as strings) or instances (as objects) + // for this widget. + // + // When declared in markup, it might look like: + // | plugins="['bold',{name:'dijit._editor.plugins.FontChoice', command:'fontName', generic:true}]" + plugins: null, + + // extraPlugins: Object[] + // A list of extra plugin names which will be appended to plugins array + extraPlugins: null, + + constructor: function(){ + // summary: + // Runs on widget initialization to setup arrays etc. + // tags: + // private + + if(!dojo.isArray(this.plugins)){ + this.plugins=["undo","redo","|","cut","copy","paste","|","bold","italic","underline","strikethrough","|", + "insertOrderedList","insertUnorderedList","indent","outdent","|","justifyLeft","justifyRight","justifyCenter","justifyFull", + "dijit._editor.plugins.EnterKeyHandling" /*, "createLink"*/]; + } + + this._plugins=[]; + this._editInterval = this.editActionInterval * 1000; + + //IE will always lose focus when other element gets focus, while for FF and safari, + //when no iframe is used, focus will be lost whenever another element gets focus. + //For IE, we can connect to onBeforeDeactivate, which will be called right before + //the focus is lost, so we can obtain the selected range. For other browsers, + //no equivelent of onBeforeDeactivate, so we need to do two things to make sure + //selection is properly saved before focus is lost: 1) when user clicks another + //element in the page, in which case we listen to mousedown on the entire page and + //see whether user clicks out of a focus editor, if so, save selection (focus will + //only lost after onmousedown event is fired, so we can obtain correct caret pos.) + //2) when user tabs away from the editor, which is handled in onKeyDown below. + if(dojo.isIE){ + this.events.push("onBeforeDeactivate"); + this.events.push("onBeforeActivate"); + } + }, + + postCreate: function(){ + //for custom undo/redo, if enabled. + this._steps=this._steps.slice(0); + this._undoedSteps=this._undoedSteps.slice(0); + + if(dojo.isArray(this.extraPlugins)){ + this.plugins=this.plugins.concat(this.extraPlugins); + } + + // Set up a deferred so that the value isn't applied to the editor + // until all the plugins load, needed to avoid timing condition + // reported in #10537. + this.setValueDeferred = new dojo.Deferred(); + + this.inherited(arguments); + + this.commands = dojo.i18n.getLocalization("dijit._editor", "commands", this.lang); + + if(!this.toolbar){ + // if we haven't been assigned a toolbar, create one + this.toolbar = new dijit.Toolbar({ + dir: this.dir, + lang: this.lang + }); + this.header.appendChild(this.toolbar.domNode); + } + + dojo.forEach(this.plugins, this.addPlugin, this); + + // Okay, denote the value can now be set. + this.setValueDeferred.callback(true); + + dojo.addClass(this.iframe.parentNode, "dijitEditorIFrameContainer"); + dojo.addClass(this.iframe, "dijitEditorIFrame"); + dojo.attr(this.iframe, "allowTransparency", true); + + if(dojo.isWebKit){ + // Disable selecting the entire editor by inadvertant double-clicks. + // on buttons, title bar, etc. Otherwise clicking too fast on + // a button such as undo/redo selects the entire editor. + dojo.style(this.domNode, "KhtmlUserSelect", "none"); + } + this.toolbar.startup(); + this.onNormalizedDisplayChanged(); //update toolbar button status + }, + destroy: function(){ + dojo.forEach(this._plugins, function(p){ + if(p && p.destroy){ + p.destroy(); + } + }); + this._plugins=[]; + this.toolbar.destroyRecursive(); + delete this.toolbar; + this.inherited(arguments); + }, + addPlugin: function(/*String||Object*/plugin, /*Integer?*/index){ + // summary: + // takes a plugin name as a string or a plugin instance and + // adds it to the toolbar and associates it with this editor + // instance. The resulting plugin is added to the Editor's + // plugins array. If index is passed, it's placed in the plugins + // array at that index. No big magic, but a nice helper for + // passing in plugin names via markup. + // + // plugin: String, args object or plugin instance + // + // args: + // This object will be passed to the plugin constructor + // + // index: Integer + // Used when creating an instance from + // something already in this.plugins. Ensures that the new + // instance is assigned to this.plugins at that index. + var args=dojo.isString(plugin)?{name:plugin}:plugin; + if(!args.setEditor){ + var o={"args":args,"plugin":null,"editor":this}; + dojo.publish(dijit._scopeName + ".Editor.getPlugin",[o]); + if(!o.plugin){ + var pc = dojo.getObject(args.name); + if(pc){ + o.plugin=new pc(args); + } + } + if(!o.plugin){ + console.warn('Cannot find plugin',plugin); + return; + } + plugin=o.plugin; + } + if(arguments.length > 1){ + this._plugins[index] = plugin; + }else{ + this._plugins.push(plugin); + } + plugin.setEditor(this); + if(dojo.isFunction(plugin.setToolbar)){ + plugin.setToolbar(this.toolbar); + } + }, + //the following 3 functions are required to make the editor play nice under a layout widget, see #4070 + startup: function(){ + // summary: + // Exists to make Editor work as a child of a layout widget. + // Developers don't need to call this method. + // tags: + // protected + //console.log('startup',arguments); + }, + resize: function(size){ + // summary: + // Resize the editor to the specified size, see `dijit.layout._LayoutWidget.resize` + if(size){ + // we've been given a height/width for the entire editor (toolbar + contents), calls layout() + // to split the allocated size between the toolbar and the contents + dijit.layout._LayoutWidget.prototype.resize.apply(this, arguments); + } + /* + else{ + // do nothing, the editor is already laid out correctly. The user has probably specified + // the height parameter, which was used to set a size on the iframe + } + */ + }, + layout: function(){ + // summary: + // Called from `dijit.layout._LayoutWidget.resize`. This shouldn't be called directly + // tags: + // protected + + // Converts the iframe (or rather the <div> surrounding it) to take all the available space + // except what's needed for the header (toolbars) and footer (breadcrumbs, etc). + // A class was added to the iframe container and some themes style it, so we have to + // calc off the added margins and padding too. See tracker: #10662 + var areaHeight = (this._contentBox.h - + (this.getHeaderHeight() + this.getFooterHeight() + + dojo._getPadBorderExtents(this.iframe.parentNode).h + + dojo._getMarginExtents(this.iframe.parentNode).h)); + this.editingArea.style.height = areaHeight + "px"; + if(this.iframe){ + this.iframe.style.height="100%"; + } + this._layoutMode = true; + }, + _onIEMouseDown: function(/*Event*/ e){ + // summary: + // IE only to prevent 2 clicks to focus + // tags: + // private + var outsideClientArea; + // IE 8's componentFromPoint is broken, which is a shame since it + // was smaller code, but oh well. We have to do this brute force + // to detect if the click was scroller or not. + var b = this.document.body; + var clientWidth = b.clientWidth; + var clientHeight = b.clientHeight; + var clientLeft = b.clientLeft; + var offsetWidth = b.offsetWidth; + var offsetHeight = b.offsetHeight; + var offsetLeft = b.offsetLeft; + + //Check for vertical scroller click. + bodyDir = b.dir?b.dir.toLowerCase():"" + if(bodyDir != "rtl"){ + if(clientWidth < offsetWidth && e.x > clientWidth && e.x < offsetWidth){ + // Check the click was between width and offset width, if so, scroller + outsideClientArea = true; + } + }else{ + // RTL mode, we have to go by the left offsets. + if(e.x < clientLeft && e.x > offsetLeft){ + // Check the click was between width and offset width, if so, scroller + outsideClientArea = true; + } + } + if(!outsideClientArea){ + // Okay, might be horiz scroller, check that. + if(clientHeight < offsetHeight && e.y > clientHeight && e.y < offsetHeight){ + // Horizontal scroller. + outsideClientArea = true; + } + } + if(!outsideClientArea){ + delete this._cursorToStart; // Remove the force to cursor to start position. + delete this._savedSelection; // new mouse position overrides old selection + if(e.target.tagName == "BODY"){ + setTimeout(dojo.hitch(this, "placeCursorAtEnd"), 0); + } + this.inherited(arguments); + } + }, + onBeforeActivate: function(e){ + this._restoreSelection(); + }, + onBeforeDeactivate: function(e){ + // summary: + // Called on IE right before focus is lost. Saves the selected range. + // tags: + // private + if(this.customUndo){ + this.endEditing(true); + } + //in IE, the selection will be lost when other elements get focus, + //let's save focus before the editor is deactivated + if(e.target.tagName != "BODY"){ + this._saveSelection(); + } + //console.log('onBeforeDeactivate',this); + }, + + /* beginning of custom undo/redo support */ + + // customUndo: Boolean + // Whether we shall use custom undo/redo support instead of the native + // browser support. By default, we only enable customUndo for IE, as it + // has broken native undo/redo support. Note: the implementation does + // support other browsers which have W3C DOM2 Range API implemented. + // It was also enabled on WebKit, to fix undo/redo enablement. (#9613) + customUndo: dojo.isIE || dojo.isWebKit, + + // editActionInterval: Integer + // When using customUndo, not every keystroke will be saved as a step. + // Instead typing (including delete) will be grouped together: after + // a user stops typing for editActionInterval seconds, a step will be + // saved; if a user resume typing within editActionInterval seconds, + // the timeout will be restarted. By default, editActionInterval is 3 + // seconds. + editActionInterval: 3, + + beginEditing: function(cmd){ + // summary: + // Called to note that the user has started typing alphanumeric characters, if it's not already noted. + // Deals with saving undo; see editActionInterval parameter. + // tags: + // private + if(!this._inEditing){ + this._inEditing=true; + this._beginEditing(cmd); + } + if(this.editActionInterval>0){ + if(this._editTimer){ + clearTimeout(this._editTimer); + } + this._editTimer = setTimeout(dojo.hitch(this, this.endEditing), this._editInterval); + } + }, + _steps:[], + _undoedSteps:[], + execCommand: function(cmd){ + // summary: + // Main handler for executing any commands to the editor, like paste, bold, etc. + // Called by plugins, but not meant to be called by end users. + // tags: + // protected + if(this.customUndo && (cmd == 'undo' || cmd == 'redo')){ + return this[cmd](); + }else{ + if(this.customUndo){ + this.endEditing(); + this._beginEditing(); + } + var r; + try{ + r = this.inherited('execCommand', arguments); + if(dojo.isWebKit && cmd == 'paste' && !r){ //see #4598: safari does not support invoking paste from js + throw { code: 1011 }; // throw an object like Mozilla's error + } + }catch(e){ + //TODO: when else might we get an exception? Do we need the Mozilla test below? + if(e.code == 1011 /* Mozilla: service denied */ && /copy|cut|paste/.test(cmd)){ + // Warn user of platform limitation. Cannot programmatically access clipboard. See ticket #4136 + var sub = dojo.string.substitute, + accel = {cut:'X', copy:'C', paste:'V'}; + alert(sub(this.commands.systemShortcut, + [this.commands[cmd], sub(this.commands[dojo.isMac ? 'appleKey' : 'ctrlKey'], [accel[cmd]])])); + } + r = false; + } + if(this.customUndo){ + this._endEditing(); + } + return r; + } + }, + queryCommandEnabled: function(cmd){ + // summary: + // Returns true if specified editor command is enabled. + // Used by the plugins to know when to highlight/not highlight buttons. + // tags: + // protected + if(this.customUndo && (cmd == 'undo' || cmd == 'redo')){ + return cmd == 'undo' ? (this._steps.length > 1) : (this._undoedSteps.length > 0); + }else{ + return this.inherited('queryCommandEnabled',arguments); + } + }, + _moveToBookmark: function(b){ + // summary: + // Selects the text specified in bookmark b + // tags: + // private + var bookmark = b.mark; + var mark = b.mark; + var col = b.isCollapsed; + var r, sNode, eNode, sel; + if(mark){ + if(dojo.isIE){ + if(dojo.isArray(mark)){ + //IE CONTROL, have to use the native bookmark. + bookmark = []; + dojo.forEach(mark,function(n){ + bookmark.push(dijit.range.getNode(n,this.editNode)); + },this); + dojo.withGlobal(this.window,'moveToBookmark',dijit,[{mark: bookmark, isCollapsed: col}]); + }else{ + if(mark.startContainer && mark.endContainer){ + // Use the pseudo WC3 range API. This works better for positions + // than the IE native bookmark code. + sel = dijit.range.getSelection(this.window); + if(sel && sel.removeAllRanges){ + sel.removeAllRanges(); + r = dijit.range.create(this.window); + sNode = dijit.range.getNode(mark.startContainer,this.editNode); + eNode = dijit.range.getNode(mark.endContainer,this.editNode); + if(sNode && eNode){ + // Okay, we believe we found the position, so add it into the selection + // There are cases where it may not be found, particularly in undo/redo, when + // IE changes the underlying DOM on us (wraps text in a <p> tag or similar. + // So, in those cases, don't bother restoring selection. + r.setStart(sNode,mark.startOffset); + r.setEnd(eNode,mark.endOffset); + sel.addRange(r); + } + } + } + } + }else{//w3c range + sel = dijit.range.getSelection(this.window); + if(sel && sel.removeAllRanges){ + sel.removeAllRanges(); + r = dijit.range.create(this.window); + sNode = dijit.range.getNode(mark.startContainer,this.editNode); + eNode = dijit.range.getNode(mark.endContainer,this.editNode); + if(sNode && eNode){ + // Okay, we believe we found the position, so add it into the selection + // There are cases where it may not be found, particularly in undo/redo, when + // formatting as been done and so on, so don't restore selection then. + r.setStart(sNode,mark.startOffset); + r.setEnd(eNode,mark.endOffset); + sel.addRange(r); + } + } + } + } + }, + _changeToStep: function(from, to){ + // summary: + // Reverts editor to "to" setting, from the undo stack. + // tags: + // private + this.setValue(to.text); + var b=to.bookmark; + if(!b){ return; } + this._moveToBookmark(b); + }, + undo: function(){ + // summary: + // Handler for editor undo (ex: ctrl-z) operation + // tags: + // private + //console.log('undo'); + var ret = false; + if(!this._undoRedoActive){ + this._undoRedoActive = true; + this.endEditing(true); + var s=this._steps.pop(); + if(s && this._steps.length>0){ + this.focus(); + this._changeToStep(s,this._steps[this._steps.length-1]); + this._undoedSteps.push(s); + this.onDisplayChanged(); + delete this._undoRedoActive; + ret = true; + } + delete this._undoRedoActive; + } + return ret; + }, + redo: function(){ + // summary: + // Handler for editor redo (ex: ctrl-y) operation + // tags: + // private + //console.log('redo'); + var ret = false; + if(!this._undoRedoActive){ + this._undoRedoActive = true; + this.endEditing(true); + var s=this._undoedSteps.pop(); + if(s && this._steps.length>0){ + this.focus(); + this._changeToStep(this._steps[this._steps.length-1],s); + this._steps.push(s); + this.onDisplayChanged(); + ret = true; + } + delete this._undoRedoActive; + } + return ret; + }, + endEditing: function(ignore_caret){ + // summary: + // Called to note that the user has stopped typing alphanumeric characters, if it's not already noted. + // Deals with saving undo; see editActionInterval parameter. + // tags: + // private + if(this._editTimer){ + clearTimeout(this._editTimer); + } + if(this._inEditing){ + this._endEditing(ignore_caret); + this._inEditing=false; + } + }, + + _getBookmark: function(){ + // summary: + // Get the currently selected text + // tags: + // protected + var b=dojo.withGlobal(this.window,dijit.getBookmark); + var tmp=[]; + if(b && b.mark){ + var mark = b.mark; + if(dojo.isIE){ + // Try to use the pseudo range API on IE for better accuracy. + var sel = dijit.range.getSelection(this.window); + if(!dojo.isArray(mark)){ + if(sel){ + var range; + if(sel.rangeCount){ + range = sel.getRangeAt(0); + } + if(range){ + b.mark = range.cloneRange(); + }else{ + b.mark = dojo.withGlobal(this.window,dijit.getBookmark); + } + } + }else{ + // Control ranges (img, table, etc), handle differently. + dojo.forEach(b.mark,function(n){ + tmp.push(dijit.range.getIndex(n,this.editNode).o); + },this); + b.mark = tmp; + } + } + try{ + if(b.mark && b.mark.startContainer){ + tmp=dijit.range.getIndex(b.mark.startContainer,this.editNode).o; + b.mark={startContainer:tmp, + startOffset:b.mark.startOffset, + endContainer:b.mark.endContainer===b.mark.startContainer?tmp:dijit.range.getIndex(b.mark.endContainer,this.editNode).o, + endOffset:b.mark.endOffset}; + } + }catch(e){ + b.mark = null; + } + } + return b; + }, + _beginEditing: function(cmd){ + // summary: + // Called when the user starts typing alphanumeric characters. + // Deals with saving undo; see editActionInterval parameter. + // tags: + // private + if(this._steps.length === 0){ + // You want to use the editor content without post filtering + // to make sure selection restores right for the 'initial' state. + // and undo is called. So not using this.savedContent, as it was 'processed' + // and the line-up for selections may have been altered. + this._steps.push({'text':dijit._editor.getChildrenHtml(this.editNode),'bookmark':this._getBookmark()}); + } + }, + _endEditing: function(ignore_caret){ + // summary: + // Called when the user stops typing alphanumeric characters. + // Deals with saving undo; see editActionInterval parameter. + // tags: + // private + // Avoid filtering to make sure selections restore. + var v = dijit._editor.getChildrenHtml(this.editNode); + + this._undoedSteps=[];//clear undoed steps + this._steps.push({text: v, bookmark: this._getBookmark()}); + }, + onKeyDown: function(e){ + // summary: + // Handler for onkeydown event. + // tags: + // private + + //We need to save selection if the user TAB away from this editor + //no need to call _saveSelection for IE, as that will be taken care of in onBeforeDeactivate + if(!dojo.isIE && !this.iframe && e.keyCode == dojo.keys.TAB && !this.tabIndent){ + this._saveSelection(); + } + if(!this.customUndo){ + this.inherited(arguments); + return; + } + var k = e.keyCode, ks = dojo.keys; + if(e.ctrlKey && !e.altKey){//undo and redo only if the special right Alt + z/y are not pressed #5892 + if(k == 90 || k == 122){ //z + dojo.stopEvent(e); + this.undo(); + return; + }else if(k == 89 || k == 121){ //y + dojo.stopEvent(e); + this.redo(); + return; + } + } + this.inherited(arguments); + + switch(k){ + case ks.ENTER: + case ks.BACKSPACE: + case ks.DELETE: + this.beginEditing(); + break; + case 88: //x + case 86: //v + if(e.ctrlKey && !e.altKey && !e.metaKey){ + this.endEditing();//end current typing step if any + if(e.keyCode == 88){ + this.beginEditing('cut'); + //use timeout to trigger after the cut is complete + setTimeout(dojo.hitch(this, this.endEditing), 1); + }else{ + this.beginEditing('paste'); + //use timeout to trigger after the paste is complete + setTimeout(dojo.hitch(this, this.endEditing), 1); + } + break; + } + //pass through + default: + if(!e.ctrlKey && !e.altKey && !e.metaKey && (e.keyCode<dojo.keys.F1 || e.keyCode>dojo.keys.F15)){ + this.beginEditing(); + break; + } + //pass through + case ks.ALT: + this.endEditing(); + break; + case ks.UP_ARROW: + case ks.DOWN_ARROW: + case ks.LEFT_ARROW: + case ks.RIGHT_ARROW: + case ks.HOME: + case ks.END: + case ks.PAGE_UP: + case ks.PAGE_DOWN: + this.endEditing(true); + break; + //maybe ctrl+backspace/delete, so don't endEditing when ctrl is pressed + case ks.CTRL: + case ks.SHIFT: + case ks.TAB: + break; + } + }, + _onBlur: function(){ + // summary: + // Called from focus manager when focus has moved away from this editor + // tags: + // protected + + //this._saveSelection(); + this.inherited('_onBlur',arguments); + this.endEditing(true); + }, + _saveSelection: function(){ + // summary: + // Save the currently selected text in _savedSelection attribute + // tags: + // private + this._savedSelection=this._getBookmark(); + //console.log('save selection',this._savedSelection,this); + }, + _restoreSelection: function(){ + // summary: + // Re-select the text specified in _savedSelection attribute; + // see _saveSelection(). + // tags: + // private + if(this._savedSelection){ + // Clear off cursor to start, we're deliberately going to a selection. + delete this._cursorToStart; + // only restore the selection if the current range is collapsed + // if not collapsed, then it means the editor does not lose + // selection and there is no need to restore it + if(dojo.withGlobal(this.window,'isCollapsed',dijit)){ + this._moveToBookmark(this._savedSelection); + } + delete this._savedSelection; + } + }, + + onClick: function(){ + // summary: + // Handler for when editor is clicked + // tags: + // protected + this.endEditing(true); + this.inherited(arguments); + }, + + _setDisabledAttr: function(/*Boolean*/ value){ + if(!this.disabled && value){ + // Disable editor: disable all enabled buttons and remember that list + this._buttonEnabledPlugins = dojo.filter(this._plugins, function(p){ + if (p && p.button && !p.button.get("disabled")) { + p.button.set("disabled", true); + return true; + } + return false; + }); + }else if(this.disabled && !value){ + // Enable editor: we only want to enable the buttons that should be + // enabled (for example, the outdent button shouldn't be enabled if the current + // text can't be outdented). + dojo.forEach(this._buttonEnabledPlugins, function(p){ + p.button.attr("disabled", false); + p.updateState && p.updateState(); // just in case something changed, like caret position + }); + } + + this.inherited(arguments); + }, + + _setStateClass: function(){ + this.inherited(arguments); + + // Let theme set the editor's text color based on editor enabled/disabled state. + // We need to jump through hoops because the main document (where the theme CSS is) + // is separate from the iframe's document. + if(this.document && this.document.body){ + dojo.style(this.document.body, "color", dojo.style(this.iframe, "color")); + } + } + } +); + +// Register the "default plugins", ie, the built-in editor commands +dojo.subscribe(dijit._scopeName + ".Editor.getPlugin",null,function(o){ + if(o.plugin){ return; } + var args = o.args, p; + var _p = dijit._editor._Plugin; + var name = args.name; + switch(name){ + case "undo": case "redo": case "cut": case "copy": case "paste": case "insertOrderedList": + case "insertUnorderedList": case "indent": case "outdent": case "justifyCenter": + case "justifyFull": case "justifyLeft": case "justifyRight": case "delete": + case "selectAll": case "removeFormat": case "unlink": + case "insertHorizontalRule": + p = new _p({ command: name }); + break; + + case "bold": case "italic": case "underline": case "strikethrough": + case "subscript": case "superscript": + p = new _p({ buttonClass: dijit.form.ToggleButton, command: name }); + break; + case "|": + p = new _p({ button: new dijit.ToolbarSeparator(), setEditor: function(editor) {this.editor = editor;} }); + } +// console.log('name',name,p); + o.plugin=p; +}); + +} + +if(!dojo._hasResource["dojo.regexp"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.regexp"] = true; +dojo.provide("dojo.regexp"); + +/*===== +dojo.regexp = { + // summary: Regular expressions and Builder resources +}; +=====*/ + +dojo.regexp.escapeString = function(/*String*/str, /*String?*/except){ + // summary: + // Adds escape sequences for special characters in regular expressions + // except: + // a String with special characters to be left unescaped + + return str.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, function(ch){ + if(except && except.indexOf(ch) != -1){ + return ch; + } + return "\\" + ch; + }); // String +} + +dojo.regexp.buildGroupRE = function(/*Object|Array*/arr, /*Function*/re, /*Boolean?*/nonCapture){ + // summary: + // Builds a regular expression that groups subexpressions + // description: + // A utility function used by some of the RE generators. The + // subexpressions are constructed by the function, re, in the second + // parameter. re builds one subexpression for each elem in the array + // a, in the first parameter. Returns a string for a regular + // expression that groups all the subexpressions. + // arr: + // A single value or an array of values. + // re: + // A function. Takes one parameter and converts it to a regular + // expression. + // nonCapture: + // If true, uses non-capturing match, otherwise matches are retained + // by regular expression. Defaults to false + + // case 1: a is a single value. + if(!(arr instanceof Array)){ + return re(arr); // String + } + + // case 2: a is an array + var b = []; + for(var i = 0; i < arr.length; i++){ + // convert each elem to a RE + b.push(re(arr[i])); + } + + // join the REs as alternatives in a RE group. + return dojo.regexp.group(b.join("|"), nonCapture); // String +} + +dojo.regexp.group = function(/*String*/expression, /*Boolean?*/nonCapture){ + // summary: + // adds group match to expression + // nonCapture: + // If true, uses non-capturing match, otherwise matches are retained + // by regular expression. + return "(" + (nonCapture ? "?:":"") + expression + ")"; // String +} + +} + +if(!dojo._hasResource["dojo.data.util.sorter"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.data.util.sorter"] = true; +dojo.provide("dojo.data.util.sorter"); + +dojo.data.util.sorter.basicComparator = function( /*anything*/ a, + /*anything*/ b){ + // summary: + // Basic comparision function that compares if an item is greater or less than another item + // description: + // returns 1 if a > b, -1 if a < b, 0 if equal. + // 'null' values (null, undefined) are treated as larger values so that they're pushed to the end of the list. + // And compared to each other, null is equivalent to undefined. + + //null is a problematic compare, so if null, we set to undefined. + //Makes the check logic simple, compact, and consistent + //And (null == undefined) === true, so the check later against null + //works for undefined and is less bytes. + var r = -1; + if(a === null){ + a = undefined; + } + if(b === null){ + b = undefined; + } + if(a == b){ + r = 0; + }else if(a > b || a == null){ + r = 1; + } + return r; //int {-1,0,1} +}; + +dojo.data.util.sorter.createSortFunction = function( /* attributes array */sortSpec, + /*dojo.data.core.Read*/ store){ + // summary: + // Helper function to generate the sorting function based off the list of sort attributes. + // description: + // The sort function creation will look for a property on the store called 'comparatorMap'. If it exists + // it will look in the mapping for comparisons function for the attributes. If one is found, it will + // use it instead of the basic comparator, which is typically used for strings, ints, booleans, and dates. + // Returns the sorting function for this particular list of attributes and sorting directions. + // + // sortSpec: array + // A JS object that array that defines out what attribute names to sort on and whether it should be descenting or asending. + // The objects should be formatted as follows: + // { + // attribute: "attributeName-string" || attribute, + // descending: true|false; // Default is false. + // } + // store: object + // The datastore object to look up item values from. + // + var sortFunctions=[]; + + function createSortFunction(attr, dir, comp, s){ + //Passing in comp and s (comparator and store), makes this + //function much faster. + return function(itemA, itemB){ + var a = s.getValue(itemA, attr); + var b = s.getValue(itemB, attr); + return dir * comp(a,b); //int + }; + } + var sortAttribute; + var map = store.comparatorMap; + var bc = dojo.data.util.sorter.basicComparator; + for(var i = 0; i < sortSpec.length; i++){ + sortAttribute = sortSpec[i]; + var attr = sortAttribute.attribute; + if(attr){ + var dir = (sortAttribute.descending) ? -1 : 1; + var comp = bc; + if(map){ + if(typeof attr !== "string" && ("toString" in attr)){ + attr = attr.toString(); + } + comp = map[attr] || bc; + } + sortFunctions.push(createSortFunction(attr, + dir, comp, store)); + } + } + return function(rowA, rowB){ + var i=0; + while(i < sortFunctions.length){ + var ret = sortFunctions[i++](rowA, rowB); + if(ret !== 0){ + return ret;//int + } + } + return 0; //int + }; // Function +}; + +} + +if(!dojo._hasResource["dojo.data.util.simpleFetch"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.data.util.simpleFetch"] = true; +dojo.provide("dojo.data.util.simpleFetch"); + + +dojo.data.util.simpleFetch.fetch = function(/* Object? */ request){ + // summary: + // The simpleFetch mixin is designed to serve as a set of function(s) that can + // be mixed into other datastore implementations to accelerate their development. + // The simpleFetch mixin should work well for any datastore that can respond to a _fetchItems() + // call by returning an array of all the found items that matched the query. The simpleFetch mixin + // is not designed to work for datastores that respond to a fetch() call by incrementally + // loading items, or sequentially loading partial batches of the result + // set. For datastores that mixin simpleFetch, simpleFetch + // implements a fetch method that automatically handles eight of the fetch() + // arguments -- onBegin, onItem, onComplete, onError, start, count, sort and scope + // The class mixing in simpleFetch should not implement fetch(), + // but should instead implement a _fetchItems() method. The _fetchItems() + // method takes three arguments, the keywordArgs object that was passed + // to fetch(), a callback function to be called when the result array is + // available, and an error callback to be called if something goes wrong. + // The _fetchItems() method should ignore any keywordArgs parameters for + // start, count, onBegin, onItem, onComplete, onError, sort, and scope. + // The _fetchItems() method needs to correctly handle any other keywordArgs + // parameters, including the query parameter and any optional parameters + // (such as includeChildren). The _fetchItems() method should create an array of + // result items and pass it to the fetchHandler along with the original request object + // -- or, the _fetchItems() method may, if it wants to, create an new request object + // with other specifics about the request that are specific to the datastore and pass + // that as the request object to the handler. + // + // For more information on this specific function, see dojo.data.api.Read.fetch() + request = request || {}; + if(!request.store){ + request.store = this; + } + var self = this; + + var _errorHandler = function(errorData, requestObject){ + if(requestObject.onError){ + var scope = requestObject.scope || dojo.global; + requestObject.onError.call(scope, errorData, requestObject); + } + }; + + var _fetchHandler = function(items, requestObject){ + var oldAbortFunction = requestObject.abort || null; + var aborted = false; + + var startIndex = requestObject.start?requestObject.start:0; + var endIndex = (requestObject.count && (requestObject.count !== Infinity))?(startIndex + requestObject.count):items.length; + + requestObject.abort = function(){ + aborted = true; + if(oldAbortFunction){ + oldAbortFunction.call(requestObject); + } + }; + + var scope = requestObject.scope || dojo.global; + if(!requestObject.store){ + requestObject.store = self; + } + if(requestObject.onBegin){ + requestObject.onBegin.call(scope, items.length, requestObject); + } + if(requestObject.sort){ + items.sort(dojo.data.util.sorter.createSortFunction(requestObject.sort, self)); + } + if(requestObject.onItem){ + for(var i = startIndex; (i < items.length) && (i < endIndex); ++i){ + var item = items[i]; + if(!aborted){ + requestObject.onItem.call(scope, item, requestObject); + } + } + } + if(requestObject.onComplete && !aborted){ + var subset = null; + if(!requestObject.onItem){ + subset = items.slice(startIndex, endIndex); + } + requestObject.onComplete.call(scope, subset, requestObject); + } + }; + this._fetchItems(request, _fetchHandler, _errorHandler); + return request; // Object +}; + +} + +if(!dojo._hasResource["dojo.data.util.filter"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.data.util.filter"] = true; +dojo.provide("dojo.data.util.filter"); + +dojo.data.util.filter.patternToRegExp = function(/*String*/pattern, /*boolean?*/ ignoreCase){ + // summary: + // Helper function to convert a simple pattern to a regular expression for matching. + // description: + // Returns a regular expression object that conforms to the defined conversion rules. + // For example: + // ca* -> /^ca.*$/ + // *ca* -> /^.*ca.*$/ + // *c\*a* -> /^.*c\*a.*$/ + // *c\*a?* -> /^.*c\*a..*$/ + // and so on. + // + // pattern: string + // A simple matching pattern to convert that follows basic rules: + // * Means match anything, so ca* means match anything starting with ca + // ? Means match single character. So, b?b will match to bob and bab, and so on. + // \ is an escape character. So for example, \* means do not treat * as a match, but literal character *. + // To use a \ as a character in the string, it must be escaped. So in the pattern it should be + // represented by \\ to be treated as an ordinary \ character instead of an escape. + // + // ignoreCase: + // An optional flag to indicate if the pattern matching should be treated as case-sensitive or not when comparing + // By default, it is assumed case sensitive. + + var rxp = "^"; + var c = null; + for(var i = 0; i < pattern.length; i++){ + c = pattern.charAt(i); + switch(c){ + case '\\': + rxp += c; + i++; + rxp += pattern.charAt(i); + break; + case '*': + rxp += ".*"; break; + case '?': + rxp += "."; break; + case '$': + case '^': + case '/': + case '+': + case '.': + case '|': + case '(': + case ')': + case '{': + case '}': + case '[': + case ']': + rxp += "\\"; //fallthrough + default: + rxp += c; + } + } + rxp += "$"; + if(ignoreCase){ + return new RegExp(rxp,"mi"); //RegExp + }else{ + return new RegExp(rxp,"m"); //RegExp + } + +}; + +} + +if(!dojo._hasResource["dijit.form.TextBox"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.form.TextBox"] = true; +dojo.provide("dijit.form.TextBox"); + + + +dojo.declare( + "dijit.form.TextBox", + dijit.form._FormValueWidget, + { + // summary: + // A base class for textbox form inputs + + // trim: Boolean + // Removes leading and trailing whitespace if true. Default is false. + trim: false, + + // uppercase: Boolean + // Converts all characters to uppercase if true. Default is false. + uppercase: false, + + // lowercase: Boolean + // Converts all characters to lowercase if true. Default is false. + lowercase: false, + + // propercase: Boolean + // Converts the first character of each word to uppercase if true. + propercase: false, + + // maxLength: String + // HTML INPUT tag maxLength declaration. + maxLength: "", + + // selectOnClick: [const] Boolean + // If true, all text will be selected when focused with mouse + selectOnClick: false, + + // placeHolder: String + // Defines a hint to help users fill out the input field (as defined in HTML 5). + // This should only contain plain text (no html markup). + placeHolder: "", + + templateString: dojo.cache("dijit.form", "templates/TextBox.html", "<div class=\"dijit dijitReset dijitInline dijitLeft\" id=\"widget_${id}\" waiRole=\"presentation\"\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class=\"dijitReset dijitInputInner\" dojoAttachPoint='textbox,focusNode' autocomplete=\"off\"\n\t\t\t${!nameAttrSetting} type='${type}'\n\t/></div\n></div>\n"), + _singleNodeTemplate: '<input class="dijit dijitReset dijitLeft dijitInputField" dojoAttachPoint="textbox,focusNode" autocomplete="off" type="${type}" ${!nameAttrSetting} />', + + _buttonInputDisabled: dojo.isIE ? "disabled" : "", // allows IE to disallow focus, but Firefox cannot be disabled for mousedown events + + baseClass: "dijitTextBox", + + attributeMap: dojo.delegate(dijit.form._FormValueWidget.prototype.attributeMap, { + maxLength: "focusNode" + }), + + postMixInProperties: function(){ + var type = this.type.toLowerCase(); + if(this.templateString.toLowerCase() == "input" || ((type == "hidden" || type == "file") && this.templateString == dijit.form.TextBox.prototype.templateString)){ + this.templateString = this._singleNodeTemplate; + } + this.inherited(arguments); + }, + + _setPlaceHolderAttr: function(v){ + this.placeHolder = v; + if(!this._phspan){ + this._attachPoints.push('_phspan'); + /* dijitInputField class gives placeHolder same padding as the input field + * parent node already has dijitInputField class but it doesn't affect this <span> + * since it's position: absolute. + */ + this._phspan = dojo.create('span',{className:'dijitPlaceHolder dijitInputField'},this.textbox,'after'); + } + this._phspan.innerHTML=""; + this._phspan.appendChild(document.createTextNode(v)); + + this._updatePlaceHolder(); + }, + + _updatePlaceHolder: function(){ + if(this._phspan){ + this._phspan.style.display=(this.placeHolder&&!this._focused&&!this.textbox.value)?"":"none"; + } + }, + + _getValueAttr: function(){ + // summary: + // Hook so attr('value') works as we like. + // description: + // For `dijit.form.TextBox` this basically returns the value of the <input>. + // + // For `dijit.form.MappedTextBox` subclasses, which have both + // a "displayed value" and a separate "submit value", + // This treats the "displayed value" as the master value, computing the + // submit value from it via this.parse(). + return this.parse(this.get('displayedValue'), this.constraints); + }, + + _setValueAttr: function(value, /*Boolean?*/ priorityChange, /*String?*/ formattedValue){ + // summary: + // Hook so attr('value', ...) works. + // + // description: + // Sets the value of the widget to "value" which can be of + // any type as determined by the widget. + // + // value: + // The visual element value is also set to a corresponding, + // but not necessarily the same, value. + // + // formattedValue: + // If specified, used to set the visual element value, + // otherwise a computed visual value is used. + // + // priorityChange: + // If true, an onChange event is fired immediately instead of + // waiting for the next blur event. + + var filteredValue; + if(value !== undefined){ + // TODO: this is calling filter() on both the display value and the actual value. + // I added a comment to the filter() definition about this, but it should be changed. + filteredValue = this.filter(value); + if(typeof formattedValue != "string"){ + if(filteredValue !== null && ((typeof filteredValue != "number") || !isNaN(filteredValue))){ + formattedValue = this.filter(this.format(filteredValue, this.constraints)); + }else{ formattedValue = ''; } + } + } + if(formattedValue != null && formattedValue != undefined && ((typeof formattedValue) != "number" || !isNaN(formattedValue)) && this.textbox.value != formattedValue){ + this.textbox.value = formattedValue; + } + + this._updatePlaceHolder(); + + this.inherited(arguments, [filteredValue, priorityChange]); + }, + + // displayedValue: String + // For subclasses like ComboBox where the displayed value + // (ex: Kentucky) and the serialized value (ex: KY) are different, + // this represents the displayed value. + // + // Setting 'displayedValue' through attr('displayedValue', ...) + // updates 'value', and vice-versa. Otherwise 'value' is updated + // from 'displayedValue' periodically, like onBlur etc. + // + // TODO: move declaration to MappedTextBox? + // Problem is that ComboBox references displayedValue, + // for benefit of FilteringSelect. + displayedValue: "", + + getDisplayedValue: function(){ + // summary: + // Deprecated. Use set('displayedValue') instead. + // tags: + // deprecated + dojo.deprecated(this.declaredClass+"::getDisplayedValue() is deprecated. Use set('displayedValue') instead.", "", "2.0"); + return this.get('displayedValue'); + }, + + _getDisplayedValueAttr: function(){ + // summary: + // Hook so attr('displayedValue') works. + // description: + // Returns the displayed value (what the user sees on the screen), + // after filtering (ie, trimming spaces etc.). + // + // For some subclasses of TextBox (like ComboBox), the displayed value + // is different from the serialized value that's actually + // sent to the server (see dijit.form.ValidationTextBox.serialize) + + return this.filter(this.textbox.value); + }, + + setDisplayedValue: function(/*String*/value){ + // summary: + // Deprecated. Use set('displayedValue', ...) instead. + // tags: + // deprecated + dojo.deprecated(this.declaredClass+"::setDisplayedValue() is deprecated. Use set('displayedValue', ...) instead.", "", "2.0"); + this.set('displayedValue', value); + }, + + _setDisplayedValueAttr: function(/*String*/value){ + // summary: + // Hook so attr('displayedValue', ...) works. + // description: + // Sets the value of the visual element to the string "value". + // The widget value is also set to a corresponding, + // but not necessarily the same, value. + + if(value === null || value === undefined){ value = '' } + else if(typeof value != "string"){ value = String(value) } + this.textbox.value = value; + this._setValueAttr(this.get('value'), undefined, value); + }, + + format: function(/* String */ value, /* Object */ constraints){ + // summary: + // Replacable function to convert a value to a properly formatted string. + // tags: + // protected extension + return ((value == null || value == undefined) ? "" : (value.toString ? value.toString() : value)); + }, + + parse: function(/* String */ value, /* Object */ constraints){ + // summary: + // Replacable function to convert a formatted string to a value + // tags: + // protected extension + + return value; // String + }, + + _refreshState: function(){ + // summary: + // After the user types some characters, etc., this method is + // called to check the field for validity etc. The base method + // in `dijit.form.TextBox` does nothing, but subclasses override. + // tags: + // protected + }, + + _onInput: function(e){ + if(e && e.type && /key/i.test(e.type) && e.keyCode){ + switch(e.keyCode){ + case dojo.keys.SHIFT: + case dojo.keys.ALT: + case dojo.keys.CTRL: + case dojo.keys.TAB: + return; + } + } + if(this.intermediateChanges){ + var _this = this; + // the setTimeout allows the key to post to the widget input box + setTimeout(function(){ _this._handleOnChange(_this.get('value'), false); }, 0); + } + this._refreshState(); + }, + + postCreate: function(){ + // setting the value here is needed since value="" in the template causes "undefined" + // and setting in the DOM (instead of the JS object) helps with form reset actions + if(dojo.isIE){ // IE INPUT tag fontFamily has to be set directly using STYLE + var s = dojo.getComputedStyle(this.domNode); + if(s){ + var ff = s.fontFamily; + if(ff){ + var inputs = this.domNode.getElementsByTagName("INPUT"); + if(inputs){ + for(var i=0; i < inputs.length; i++){ + inputs[i].style.fontFamily = ff; + } + } + } + } + } + this.textbox.setAttribute("value", this.textbox.value); // DOM and JS values shuld be the same + this.inherited(arguments); + if(dojo.isMoz || dojo.isOpera){ + this.connect(this.textbox, "oninput", this._onInput); + }else{ + this.connect(this.textbox, "onkeydown", this._onInput); + this.connect(this.textbox, "onkeyup", this._onInput); + this.connect(this.textbox, "onpaste", this._onInput); + this.connect(this.textbox, "oncut", this._onInput); + } + }, + + _blankValue: '', // if the textbox is blank, what value should be reported + filter: function(val){ + // summary: + // Auto-corrections (such as trimming) that are applied to textbox + // value on blur or form submit. + // description: + // For MappedTextBox subclasses, this is called twice + // - once with the display value + // - once the value as set/returned by attr('value', ...) + // and attr('value'), ex: a Number for NumberTextBox. + // + // In the latter case it does corrections like converting null to NaN. In + // the former case the NumberTextBox.filter() method calls this.inherited() + // to execute standard trimming code in TextBox.filter(). + // + // TODO: break this into two methods in 2.0 + // + // tags: + // protected extension + if(val === null){ return this._blankValue; } + if(typeof val != "string"){ return val; } + if(this.trim){ + val = dojo.trim(val); + } + if(this.uppercase){ + val = val.toUpperCase(); + } + if(this.lowercase){ + val = val.toLowerCase(); + } + if(this.propercase){ + val = val.replace(/[^\s]+/g, function(word){ + return word.substring(0,1).toUpperCase() + word.substring(1); + }); + } + return val; + }, + + _setBlurValue: function(){ + this._setValueAttr(this.get('value'), true); + }, + + _onBlur: function(e){ + if(this.disabled){ return; } + this._setBlurValue(); + this.inherited(arguments); + + if(this._selectOnClickHandle){ + this.disconnect(this._selectOnClickHandle); + } + if(this.selectOnClick && dojo.isMoz){ + this.textbox.selectionStart = this.textbox.selectionEnd = undefined; // clear selection so that the next mouse click doesn't reselect + } + + this._updatePlaceHolder(); + }, + + _onFocus: function(/*String*/ by){ + if(this.disabled || this.readOnly){ return; } + + // Select all text on focus via click if nothing already selected. + // Since mouse-up will clear the selection need to defer selection until after mouse-up. + // Don't do anything on focus by tabbing into the widget since there's no associated mouse-up event. + if(this.selectOnClick && by == "mouse"){ + this._selectOnClickHandle = this.connect(this.domNode, "onmouseup", function(){ + // Only select all text on first click; otherwise users would have no way to clear + // the selection. + this.disconnect(this._selectOnClickHandle); + + // Check if the user selected some text manually (mouse-down, mouse-move, mouse-up) + // and if not, then select all the text + var textIsNotSelected; + if(dojo.isIE){ + var range = dojo.doc.selection.createRange(); + var parent = range.parentElement(); + textIsNotSelected = parent == this.textbox && range.text.length == 0; + }else{ + textIsNotSelected = this.textbox.selectionStart == this.textbox.selectionEnd; + } + if(textIsNotSelected){ + dijit.selectInputText(this.textbox); + } + }); + } + + this._updatePlaceHolder(); + + this._refreshState(); + this.inherited(arguments); + }, + + reset: function(){ + // Overrides dijit._FormWidget.reset(). + // Additionally resets the displayed textbox value to '' + this.textbox.value = ''; + this.inherited(arguments); + } + } +); + +dijit.selectInputText = function(/*DomNode*/element, /*Number?*/ start, /*Number?*/ stop){ + // summary: + // Select text in the input element argument, from start (default 0), to stop (default end). + + // TODO: use functions in _editor/selection.js? + var _window = dojo.global; + var _document = dojo.doc; + element = dojo.byId(element); + if(isNaN(start)){ start = 0; } + if(isNaN(stop)){ stop = element.value ? element.value.length : 0; } + dijit.focus(element); + if(_document["selection"] && dojo.body()["createTextRange"]){ // IE + if(element.createTextRange){ + var range = element.createTextRange(); + with(range){ + collapse(true); + moveStart("character", -99999); // move to 0 + moveStart("character", start); // delta from 0 is the correct position + moveEnd("character", stop-start); + select(); + } + } + }else if(_window["getSelection"]){ + if(element.setSelectionRange){ + element.setSelectionRange(start, stop); + } + } +}; + +} + +if(!dojo._hasResource["dijit.Tooltip"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.Tooltip"] = true; +dojo.provide("dijit.Tooltip"); + + + + +dojo.declare( + "dijit._MasterTooltip", + [dijit._Widget, dijit._Templated], + { + // summary: + // Internal widget that holds the actual tooltip markup, + // which occurs once per page. + // Called by Tooltip widgets which are just containers to hold + // the markup + // tags: + // protected + + // duration: Integer + // Milliseconds to fade in/fade out + duration: dijit.defaultDuration, + + templateString: dojo.cache("dijit", "templates/Tooltip.html", "<div class=\"dijitTooltip dijitTooltipLeft\" id=\"dojoTooltip\">\n\t<div class=\"dijitTooltipContainer dijitTooltipContents\" dojoAttachPoint=\"containerNode\" waiRole='alert'></div>\n\t<div class=\"dijitTooltipConnector\"></div>\n</div>\n"), + + postCreate: function(){ + dojo.body().appendChild(this.domNode); + + this.bgIframe = new dijit.BackgroundIframe(this.domNode); + + // Setup fade-in and fade-out functions. + this.fadeIn = dojo.fadeIn({ node: this.domNode, duration: this.duration, onEnd: dojo.hitch(this, "_onShow") }); + this.fadeOut = dojo.fadeOut({ node: this.domNode, duration: this.duration, onEnd: dojo.hitch(this, "_onHide") }); + + }, + + show: function(/*String*/ innerHTML, /*DomNode*/ aroundNode, /*String[]?*/ position, /*Boolean*/ rtl){ + // summary: + // Display tooltip w/specified contents to right of specified node + // (To left if there's no space on the right, or if rtl == true) + + if(this.aroundNode && this.aroundNode === aroundNode){ + return; + } + + if(this.fadeOut.status() == "playing"){ + // previous tooltip is being hidden; wait until the hide completes then show new one + this._onDeck=arguments; + return; + } + this.containerNode.innerHTML=innerHTML; + + var pos = dijit.placeOnScreenAroundElement(this.domNode, aroundNode, dijit.getPopupAroundAlignment((position && position.length) ? position : dijit.Tooltip.defaultPosition, !rtl), dojo.hitch(this, "orient")); + + // show it + dojo.style(this.domNode, "opacity", 0); + this.fadeIn.play(); + this.isShowingNow = true; + this.aroundNode = aroundNode; + }, + + orient: function(/* DomNode */ node, /* String */ aroundCorner, /* String */ tooltipCorner){ + // summary: + // Private function to set CSS for tooltip node based on which position it's in. + // This is called by the dijit popup code. + // tags: + // protected + + node.className = "dijitTooltip " + + { + "BL-TL": "dijitTooltipBelow dijitTooltipABLeft", + "TL-BL": "dijitTooltipAbove dijitTooltipABLeft", + "BR-TR": "dijitTooltipBelow dijitTooltipABRight", + "TR-BR": "dijitTooltipAbove dijitTooltipABRight", + "BR-BL": "dijitTooltipRight", + "BL-BR": "dijitTooltipLeft" + }[aroundCorner + "-" + tooltipCorner]; + }, + + _onShow: function(){ + // summary: + // Called at end of fade-in operation + // tags: + // protected + if(dojo.isIE){ + // the arrow won't show up on a node w/an opacity filter + this.domNode.style.filter=""; + } + }, + + hide: function(aroundNode){ + // summary: + // Hide the tooltip + if(this._onDeck && this._onDeck[1] == aroundNode){ + // this hide request is for a show() that hasn't even started yet; + // just cancel the pending show() + this._onDeck=null; + }else if(this.aroundNode === aroundNode){ + // this hide request is for the currently displayed tooltip + this.fadeIn.stop(); + this.isShowingNow = false; + this.aroundNode = null; + this.fadeOut.play(); + }else{ + // just ignore the call, it's for a tooltip that has already been erased + } + }, + + _onHide: function(){ + // summary: + // Called at end of fade-out operation + // tags: + // protected + + this.domNode.style.cssText=""; // to position offscreen again + this.containerNode.innerHTML=""; + if(this._onDeck){ + // a show request has been queued up; do it now + this.show.apply(this, this._onDeck); + this._onDeck=null; + } + } + + } +); + +dijit.showTooltip = function(/*String*/ innerHTML, /*DomNode*/ aroundNode, /*String[]?*/ position, /*Boolean*/ rtl){ + // summary: + // Display tooltip w/specified contents in specified position. + // See description of dijit.Tooltip.defaultPosition for details on position parameter. + // If position is not specified then dijit.Tooltip.defaultPosition is used. + if(!dijit._masterTT){ dijit._masterTT = new dijit._MasterTooltip(); } + return dijit._masterTT.show(innerHTML, aroundNode, position, rtl); +}; + +dijit.hideTooltip = function(aroundNode){ + // summary: + // Hide the tooltip + if(!dijit._masterTT){ dijit._masterTT = new dijit._MasterTooltip(); } + return dijit._masterTT.hide(aroundNode); +}; + +dojo.declare( + "dijit.Tooltip", + dijit._Widget, + { + // summary: + // Pops up a tooltip (a help message) when you hover over a node. + + // label: String + // Text to display in the tooltip. + // Specified as innerHTML when creating the widget from markup. + label: "", + + // showDelay: Integer + // Number of milliseconds to wait after hovering over/focusing on the object, before + // the tooltip is displayed. + showDelay: 400, + + // connectId: [const] String[] + // Id's of domNodes to attach the tooltip to. + // When user hovers over any of the specified dom nodes, the tooltip will appear. + // + // Note: Currently connectId can only be specified on initialization, it cannot + // be changed via attr('connectId', ...) + // + // Note: in 2.0 this will be renamed to connectIds for less confusion. + connectId: [], + + // position: String[] + // See description of `dijit.Tooltip.defaultPosition` for details on position parameter. + position: [], + + constructor: function(){ + // Map id's of nodes I'm connected to to a list of the this.connect() handles + this._nodeConnectionsById = {}; + }, + + _setConnectIdAttr: function(newIds){ + for(var oldId in this._nodeConnectionsById){ + this.removeTarget(oldId); + } + dojo.forEach(dojo.isArrayLike(newIds) ? newIds : [newIds], this.addTarget, this); + }, + + _getConnectIdAttr: function(){ + var ary = []; + for(var id in this._nodeConnectionsById){ + ary.push(id); + } + return ary; + }, + + addTarget: function(/*DOMNODE || String*/ id){ + // summary: + // Attach tooltip to specified node, if it's not already connected + var node = dojo.byId(id); + if(!node){ return; } + if(node.id in this._nodeConnectionsById){ return; }//Already connected + + this._nodeConnectionsById[node.id] = [ + this.connect(node, "onmouseenter", "_onTargetMouseEnter"), + this.connect(node, "onmouseleave", "_onTargetMouseLeave"), + this.connect(node, "onfocus", "_onTargetFocus"), + this.connect(node, "onblur", "_onTargetBlur") + ]; + }, + + removeTarget: function(/*DOMNODE || String*/ node){ + // summary: + // Detach tooltip from specified node + + // map from DOMNode back to plain id string + var id = node.id || node; + + if(id in this._nodeConnectionsById){ + dojo.forEach(this._nodeConnectionsById[id], this.disconnect, this); + delete this._nodeConnectionsById[id]; + } + }, + + postCreate: function(){ + dojo.addClass(this.domNode,"dijitTooltipData"); + }, + + startup: function(){ + this.inherited(arguments); + + // If this tooltip was created in a template, or for some other reason the specified connectId[s] + // didn't exist during the widget's initialization, then connect now. + var ids = this.connectId; + dojo.forEach(dojo.isArrayLike(ids) ? ids : [ids], this.addTarget, this); + }, + + _onTargetMouseEnter: function(/*Event*/ e){ + // summary: + // Handler for mouseenter event on the target node + // tags: + // private + this._onHover(e); + }, + + _onTargetMouseLeave: function(/*Event*/ e){ + // summary: + // Handler for mouseleave event on the target node + // tags: + // private + this._onUnHover(e); + }, + + _onTargetFocus: function(/*Event*/ e){ + // summary: + // Handler for focus event on the target node + // tags: + // private + + this._focus = true; + this._onHover(e); + }, + + _onTargetBlur: function(/*Event*/ e){ + // summary: + // Handler for blur event on the target node + // tags: + // private + + this._focus = false; + this._onUnHover(e); + }, + + _onHover: function(/*Event*/ e){ + // summary: + // Despite the name of this method, it actually handles both hover and focus + // events on the target node, setting a timer to show the tooltip. + // tags: + // private + if(!this._showTimer){ + var target = e.target; + this._showTimer = setTimeout(dojo.hitch(this, function(){this.open(target)}), this.showDelay); + } + }, + + _onUnHover: function(/*Event*/ e){ + // summary: + // Despite the name of this method, it actually handles both mouseleave and blur + // events on the target node, hiding the tooltip. + // tags: + // private + + // keep a tooltip open if the associated element still has focus (even though the + // mouse moved away) + if(this._focus){ return; } + + if(this._showTimer){ + clearTimeout(this._showTimer); + delete this._showTimer; + } + this.close(); + }, + + open: function(/*DomNode*/ target){ + // summary: + // Display the tooltip; usually not called directly. + // tags: + // private + + if(this._showTimer){ + clearTimeout(this._showTimer); + delete this._showTimer; + } + dijit.showTooltip(this.label || this.domNode.innerHTML, target, this.position, !this.isLeftToRight()); + + this._connectNode = target; + this.onShow(target, this.position); + }, + + close: function(){ + // summary: + // Hide the tooltip or cancel timer for show of tooltip + // tags: + // private + + if(this._connectNode){ + // if tooltip is currently shown + dijit.hideTooltip(this._connectNode); + delete this._connectNode; + this.onHide(); + } + if(this._showTimer){ + // if tooltip is scheduled to be shown (after a brief delay) + clearTimeout(this._showTimer); + delete this._showTimer; + } + }, + + onShow: function(target, position){ + // summary: + // Called when the tooltip is shown + // tags: + // callback + }, + + onHide: function(){ + // summary: + // Called when the tooltip is hidden + // tags: + // callback + }, + + uninitialize: function(){ + this.close(); + this.inherited(arguments); + } + } +); + +// dijit.Tooltip.defaultPosition: String[] +// This variable controls the position of tooltips, if the position is not specified to +// the Tooltip widget or *TextBox widget itself. It's an array of strings with the following values: +// +// * before: places tooltip to the left of the target node/widget, or to the right in +// the case of RTL scripts like Hebrew and Arabic +// * after: places tooltip to the right of the target node/widget, or to the left in +// the case of RTL scripts like Hebrew and Arabic +// * above: tooltip goes above target node +// * below: tooltip goes below target node +// +// The list is positions is tried, in order, until a position is found where the tooltip fits +// within the viewport. +// +// Be careful setting this parameter. A value of "above" may work fine until the user scrolls +// the screen so that there's no room above the target node. Nodes with drop downs, like +// DropDownButton or FilteringSelect, are especially problematic, in that you need to be sure +// that the drop down and tooltip don't overlap, even when the viewport is scrolled so that there +// is only room below (or above) the target node, but not both. +dijit.Tooltip.defaultPosition = ["after", "before"]; + +} + +if(!dojo._hasResource["dijit.form.ValidationTextBox"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.form.ValidationTextBox"] = true; +dojo.provide("dijit.form.ValidationTextBox"); + + + + + + + + +/*===== + dijit.form.ValidationTextBox.__Constraints = function(){ + // locale: String + // locale used for validation, picks up value from this widget's lang attribute + // _flags_: anything + // various flags passed to regExpGen function + this.locale = ""; + this._flags_ = ""; + } +=====*/ + +dojo.declare( + "dijit.form.ValidationTextBox", + dijit.form.TextBox, + { + // summary: + // Base class for textbox widgets with the ability to validate content of various types and provide user feedback. + // tags: + // protected + + templateString: dojo.cache("dijit.form", "templates/ValidationTextBox.html", "<div class=\"dijit dijitReset dijitInlineTable dijitLeft\"\n\tid=\"widget_${id}\" waiRole=\"presentation\"\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"Χ \" type=\"text\" tabIndex=\"-1\" readOnly waiRole=\"presentation\"\n\t/></div\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class=\"dijitReset dijitInputInner\" dojoAttachPoint='textbox,focusNode' autocomplete=\"off\"\n\t\t\t${!nameAttrSetting} type='${type}'\n\t/></div\n></div>\n"), + baseClass: "dijitTextBox dijitValidationTextBox", + + // required: Boolean + // User is required to enter data into this field. + required: false, + + // promptMessage: String + // If defined, display this hint string immediately on focus to the textbox, if empty. + // Think of this like a tooltip that tells the user what to do, not an error message + // that tells the user what they've done wrong. + // + // Message disappears when user starts typing. + promptMessage: "", + + // invalidMessage: String + // The message to display if value is invalid. + // The translated string value is read from the message file by default. + // Set to "" to use the promptMessage instead. + invalidMessage: "$_unset_$", + + // missingMessage: String + // The message to display if value is empty and the field is required. + // The translated string value is read from the message file by default. + // Set to "" to use the invalidMessage instead. + missingMessage: "$_unset_$", + + // constraints: dijit.form.ValidationTextBox.__Constraints + // user-defined object needed to pass parameters to the validator functions + constraints: {}, + + // regExp: [extension protected] String + // regular expression string used to validate the input + // Do not specify both regExp and regExpGen + regExp: ".*", + + regExpGen: function(/*dijit.form.ValidationTextBox.__Constraints*/constraints){ + // summary: + // Overridable function used to generate regExp when dependent on constraints. + // Do not specify both regExp and regExpGen. + // tags: + // extension protected + return this.regExp; // String + }, + + // state: [readonly] String + // Shows current state (ie, validation result) of input (Normal, Warning, or Error) + state: "", + + // tooltipPosition: String[] + // See description of `dijit.Tooltip.defaultPosition` for details on this parameter. + tooltipPosition: [], + + _setValueAttr: function(){ + // summary: + // Hook so attr('value', ...) works. + this.inherited(arguments); + this.validate(this._focused); + }, + + validator: function(/*anything*/value, /*dijit.form.ValidationTextBox.__Constraints*/constraints){ + // summary: + // Overridable function used to validate the text input against the regular expression. + // tags: + // protected + return (new RegExp("^(?:" + this.regExpGen(constraints) + ")"+(this.required?"":"?")+"$")).test(value) && + (!this.required || !this._isEmpty(value)) && + (this._isEmpty(value) || this.parse(value, constraints) !== undefined); // Boolean + }, + + _isValidSubset: function(){ + // summary: + // Returns true if the value is either already valid or could be made valid by appending characters. + // This is used for validation while the user [may be] still typing. + return this.textbox.value.search(this._partialre) == 0; + }, + + isValid: function(/*Boolean*/ isFocused){ + // summary: + // Tests if value is valid. + // Can override with your own routine in a subclass. + // tags: + // protected + return this.validator(this.textbox.value, this.constraints); + }, + + _isEmpty: function(value){ + // summary: + // Checks for whitespace + return /^\s*$/.test(value); // Boolean + }, + + getErrorMessage: function(/*Boolean*/ isFocused){ + // summary: + // Return an error message to show if appropriate + // tags: + // protected + return (this.required && this._isEmpty(this.textbox.value)) ? this.missingMessage : this.invalidMessage; // String + }, + + getPromptMessage: function(/*Boolean*/ isFocused){ + // summary: + // Return a hint message to show when widget is first focused + // tags: + // protected + return this.promptMessage; // String + }, + + _maskValidSubsetError: true, + validate: function(/*Boolean*/ isFocused){ + // summary: + // Called by oninit, onblur, and onkeypress. + // description: + // Show missing or invalid messages if appropriate, and highlight textbox field. + // tags: + // protected + var message = ""; + var isValid = this.disabled || this.isValid(isFocused); + if(isValid){ this._maskValidSubsetError = true; } + var isEmpty = this._isEmpty(this.textbox.value); + var isValidSubset = !isValid && !isEmpty && isFocused && this._isValidSubset(); + this.state = ((isValid || ((!this._hasBeenBlurred || isFocused) && isEmpty) || isValidSubset) && this._maskValidSubsetError) ? "" : "Error"; + if(this.state == "Error"){ this._maskValidSubsetError = isFocused; } // we want the error to show up afer a blur and refocus + this._setStateClass(); + dijit.setWaiState(this.focusNode, "invalid", isValid ? "false" : "true"); + if(isFocused){ + if(this.state == "Error"){ + message = this.getErrorMessage(true); + }else{ + message = this.getPromptMessage(true); // show the prompt whever there's no error + } + this._maskValidSubsetError = true; // since we're focused, always mask warnings + } + this.displayMessage(message); + return isValid; + }, + + // _message: String + // Currently displayed message + _message: "", + + displayMessage: function(/*String*/ message){ + // summary: + // Overridable method to display validation errors/hints. + // By default uses a tooltip. + // tags: + // extension + if(this._message == message){ return; } + this._message = message; + dijit.hideTooltip(this.domNode); + if(message){ + dijit.showTooltip(message, this.domNode, this.tooltipPosition, !this.isLeftToRight()); + } + }, + + _refreshState: function(){ + // Overrides TextBox._refreshState() + this.validate(this._focused); + this.inherited(arguments); + }, + + //////////// INITIALIZATION METHODS /////////////////////////////////////// + + constructor: function(){ + this.constraints = {}; + }, + + _setConstraintsAttr: function(/* Object */ constraints){ + if(!constraints.locale && this.lang){ + constraints.locale = this.lang; + } + this.constraints = constraints; + this._computePartialRE(); + }, + + _computePartialRE: function(){ + var p = this.regExpGen(this.constraints); + this.regExp = p; + var partialre = ""; + // parse the regexp and produce a new regexp that matches valid subsets + // if the regexp is .* then there's no use in matching subsets since everything is valid + if(p != ".*"){ this.regExp.replace(/\\.|\[\]|\[.*?[^\\]{1}\]|\{.*?\}|\(\?[=:!]|./g, + function (re){ + switch(re.charAt(0)){ + case '{': + case '+': + case '?': + case '*': + case '^': + case '$': + case '|': + case '(': + partialre += re; + break; + case ")": + partialre += "|$)"; + break; + default: + partialre += "(?:"+re+"|$)"; + break; + } + } + );} + try{ // this is needed for now since the above regexp parsing needs more test verification + "".search(partialre); + }catch(e){ // should never be here unless the original RE is bad or the parsing is bad + partialre = this.regExp; + console.warn('RegExp error in ' + this.declaredClass + ': ' + this.regExp); + } // should never be here unless the original RE is bad or the parsing is bad + this._partialre = "^(?:" + partialre + ")$"; + }, + + postMixInProperties: function(){ + this.inherited(arguments); + this.messages = dojo.i18n.getLocalization("dijit.form", "validate", this.lang); + if(this.invalidMessage == "$_unset_$"){ this.invalidMessage = this.messages.invalidMessage; } + if(!this.invalidMessage){ this.invalidMessage = this.promptMessage; } + if(this.missingMessage == "$_unset_$"){ this.missingMessage = this.messages.missingMessage; } + if(!this.missingMessage){ this.missingMessage = this.invalidMessage; } + this._setConstraintsAttr(this.constraints); // this needs to happen now (and later) due to codependency on _set*Attr calls attachPoints + }, + + _setDisabledAttr: function(/*Boolean*/ value){ + this.inherited(arguments); // call FormValueWidget._setDisabledAttr() + this._refreshState(); + }, + + _setRequiredAttr: function(/*Boolean*/ value){ + this.required = value; + dijit.setWaiState(this.focusNode, "required", value); + this._refreshState(); + }, + + reset:function(){ + // Overrides dijit.form.TextBox.reset() by also + // hiding errors about partial matches + this._maskValidSubsetError = true; + this.inherited(arguments); + }, + + _onBlur: function(){ + this.displayMessage(''); + this.inherited(arguments); + } + } +); + +dojo.declare( + "dijit.form.MappedTextBox", + dijit.form.ValidationTextBox, + { + // summary: + // A dijit.form.ValidationTextBox subclass which provides a base class for widgets that have + // a visible formatted display value, and a serializable + // value in a hidden input field which is actually sent to the server. + // description: + // The visible display may + // be locale-dependent and interactive. The value sent to the server is stored in a hidden + // input field which uses the `name` attribute declared by the original widget. That value sent + // to the server is defined by the dijit.form.MappedTextBox.serialize method and is typically + // locale-neutral. + // tags: + // protected + + postMixInProperties: function(){ + this.inherited(arguments); + + // we want the name attribute to go to the hidden <input>, not the displayed <input>, + // so override _FormWidget.postMixInProperties() setting of nameAttrSetting + this.nameAttrSetting = ""; + }, + + serialize: function(/*anything*/val, /*Object?*/options){ + // summary: + // Overridable function used to convert the attr('value') result to a canonical + // (non-localized) string. For example, will print dates in ISO format, and + // numbers the same way as they are represented in javascript. + // tags: + // protected extension + return val.toString ? val.toString() : ""; // String + }, + + toString: function(){ + // summary: + // Returns widget as a printable string using the widget's value + // tags: + // protected + var val = this.filter(this.get('value')); // call filter in case value is nonstring and filter has been customized + return val != null ? (typeof val == "string" ? val : this.serialize(val, this.constraints)) : ""; // String + }, + + validate: function(){ + // Overrides `dijit.form.TextBox.validate` + this.valueNode.value = this.toString(); + return this.inherited(arguments); + }, + + buildRendering: function(){ + // Overrides `dijit._Templated.buildRendering` + + this.inherited(arguments); + + // Create a hidden <input> node with the serialized value used for submit + // (as opposed to the displayed value). + // Passing in name as markup rather than calling dojo.create() with an attrs argument + // to make dojo.query(input[name=...]) work on IE. (see #8660) + this.valueNode = dojo.place("<input type='hidden'" + (this.name ? " name='" + this.name + "'" : "") + ">", this.textbox, "after"); + }, + + reset:function(){ + // Overrides `dijit.form.ValidationTextBox.reset` to + // reset the hidden textbox value to '' + this.valueNode.value = ''; + this.inherited(arguments); + } + } +); + +/*===== + dijit.form.RangeBoundTextBox.__Constraints = function(){ + // min: Number + // Minimum signed value. Default is -Infinity + // max: Number + // Maximum signed value. Default is +Infinity + this.min = min; + this.max = max; + } +=====*/ + +dojo.declare( + "dijit.form.RangeBoundTextBox", + dijit.form.MappedTextBox, + { + // summary: + // Base class for textbox form widgets which defines a range of valid values. + + // rangeMessage: String + // The message to display if value is out-of-range + rangeMessage: "", + + /*===== + // constraints: dijit.form.RangeBoundTextBox.__Constraints + constraints: {}, + ======*/ + + rangeCheck: function(/*Number*/ primitive, /*dijit.form.RangeBoundTextBox.__Constraints*/ constraints){ + // summary: + // Overridable function used to validate the range of the numeric input value. + // tags: + // protected + return ("min" in constraints? (this.compare(primitive,constraints.min) >= 0) : true) && + ("max" in constraints? (this.compare(primitive,constraints.max) <= 0) : true); // Boolean + }, + + isInRange: function(/*Boolean*/ isFocused){ + // summary: + // Tests if the value is in the min/max range specified in constraints + // tags: + // protected + return this.rangeCheck(this.get('value'), this.constraints); + }, + + _isDefinitelyOutOfRange: function(){ + // summary: + // Returns true if the value is out of range and will remain + // out of range even if the user types more characters + var val = this.get('value'); + var isTooLittle = false; + var isTooMuch = false; + if("min" in this.constraints){ + var min = this.constraints.min; + min = this.compare(val, ((typeof min == "number") && min >= 0 && val !=0) ? 0 : min); + isTooLittle = (typeof min == "number") && min < 0; + } + if("max" in this.constraints){ + var max = this.constraints.max; + max = this.compare(val, ((typeof max != "number") || max > 0) ? max : 0); + isTooMuch = (typeof max == "number") && max > 0; + } + return isTooLittle || isTooMuch; + }, + + _isValidSubset: function(){ + // summary: + // Overrides `dijit.form.ValidationTextBox._isValidSubset`. + // Returns true if the input is syntactically valid, and either within + // range or could be made in range by more typing. + return this.inherited(arguments) && !this._isDefinitelyOutOfRange(); + }, + + isValid: function(/*Boolean*/ isFocused){ + // Overrides dijit.form.ValidationTextBox.isValid to check that the value is also in range. + return this.inherited(arguments) && + ((this._isEmpty(this.textbox.value) && !this.required) || this.isInRange(isFocused)); // Boolean + }, + + getErrorMessage: function(/*Boolean*/ isFocused){ + // Overrides dijit.form.ValidationTextBox.getErrorMessage to print "out of range" message if appropriate + var v = this.get('value'); + if(v !== null && v !== '' && v !== undefined && (typeof v != "number" || !isNaN(v)) && !this.isInRange(isFocused)){ // don't check isInRange w/o a real value + return this.rangeMessage; // String + } + return this.inherited(arguments); + }, + + postMixInProperties: function(){ + this.inherited(arguments); + if(!this.rangeMessage){ + this.messages = dojo.i18n.getLocalization("dijit.form", "validate", this.lang); + this.rangeMessage = this.messages.rangeMessage; + } + }, + + _setConstraintsAttr: function(/* Object */ constraints){ + this.inherited(arguments); + if(this.focusNode){ // not set when called from postMixInProperties + if(this.constraints.min !== undefined){ + dijit.setWaiState(this.focusNode, "valuemin", this.constraints.min); + }else{ + dijit.removeWaiState(this.focusNode, "valuemin"); + } + if(this.constraints.max !== undefined){ + dijit.setWaiState(this.focusNode, "valuemax", this.constraints.max); + }else{ + dijit.removeWaiState(this.focusNode, "valuemax"); + } + } + }, + + _setValueAttr: function(/*Number*/ value, /*Boolean?*/ priorityChange){ + // summary: + // Hook so attr('value', ...) works. + + dijit.setWaiState(this.focusNode, "valuenow", value); + this.inherited(arguments); + } + } +); + +} + +if(!dojo._hasResource["dijit.form.ComboBox"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.form.ComboBox"] = true; +dojo.provide("dijit.form.ComboBox"); + + + + + + + + + + + + +dojo.declare( + "dijit.form.ComboBoxMixin", + null, + { + // summary: + // Implements the base functionality for `dijit.form.ComboBox`/`dijit.form.FilteringSelect` + // description: + // All widgets that mix in dijit.form.ComboBoxMixin must extend `dijit.form._FormValueWidget`. + // tags: + // protected + + // item: Object + // This is the item returned by the dojo.data.store implementation that + // provides the data for this ComboBox, it's the currently selected item. + item: null, + + // pageSize: Integer + // Argument to data provider. + // Specifies number of search results per page (before hitting "next" button) + pageSize: Infinity, + + // store: Object + // Reference to data provider object used by this ComboBox + store: null, + + // fetchProperties: Object + // Mixin to the dojo.data store's fetch. + // For example, to set the sort order of the ComboBox menu, pass: + // | { sort: {attribute:"name",descending: true} } + // To override the default queryOptions so that deep=false, do: + // | { queryOptions: {ignoreCase: true, deep: false} } + fetchProperties:{}, + + // query: Object + // A query that can be passed to 'store' to initially filter the items, + // before doing further filtering based on `searchAttr` and the key. + // Any reference to the `searchAttr` is ignored. + query: {}, + + // autoComplete: Boolean + // If user types in a partial string, and then tab out of the `<input>` box, + // automatically copy the first entry displayed in the drop down list to + // the `<input>` field + autoComplete: true, + + // highlightMatch: String + // One of: "first", "all" or "none". + // + // If the ComboBox/FilteringSelect opens with the search results and the searched + // string can be found, it will be highlighted. If set to "all" + // then will probably want to change `queryExpr` parameter to '*${0}*' + // + // Highlighting is only performed when `labelType` is "text", so as to not + // interfere with any HTML markup an HTML label might contain. + highlightMatch: "first", + + // searchDelay: Integer + // Delay in milliseconds between when user types something and we start + // searching based on that value + searchDelay: 100, + + // searchAttr: String + // Search for items in the data store where this attribute (in the item) + // matches what the user typed + searchAttr: "name", + + // labelAttr: String? + // The entries in the drop down list come from this attribute in the + // dojo.data items. + // If not specified, the searchAttr attribute is used instead. + labelAttr: "", + + // labelType: String + // Specifies how to interpret the labelAttr in the data store items. + // Can be "html" or "text". + labelType: "text", + + // queryExpr: String + // This specifies what query ComboBox/FilteringSelect sends to the data store, + // based on what the user has typed. Changing this expression will modify + // whether the drop down shows only exact matches, a "starting with" match, + // etc. Use it in conjunction with highlightMatch. + // dojo.data query expression pattern. + // `${0}` will be substituted for the user text. + // `*` is used for wildcards. + // `${0}*` means "starts with", `*${0}*` means "contains", `${0}` means "is" + queryExpr: "${0}*", + + // ignoreCase: Boolean + // Set true if the ComboBox/FilteringSelect should ignore case when matching possible items + ignoreCase: true, + + // hasDownArrow: [const] Boolean + // Set this textbox to have a down arrow button, to display the drop down list. + // Defaults to true. + hasDownArrow: true, + + templateString: dojo.cache("dijit.form", "templates/ComboBox.html", "<div class=\"dijit dijitReset dijitInlineTable dijitLeft\"\n\tid=\"widget_${id}\"\n\tdojoAttachPoint=\"comboNode\" waiRole=\"combobox\"\n\t><div class='dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer'\n\t\tdojoAttachPoint=\"downArrowNode\" waiRole=\"presentation\"\n\t\tdojoAttachEvent=\"onmousedown:_onArrowMouseDown\"\n\t\t><input class=\"dijitReset dijitInputField dijitArrowButtonInner\" value=\"▼ \" type=\"text\" tabIndex=\"-1\" readOnly waiRole=\"presentation\"\n\t\t\t${_buttonInputDisabled}\n\t/></div\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"Χ \" type=\"text\" tabIndex=\"-1\" readOnly waiRole=\"presentation\"\n\t/></div\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class='dijitReset dijitInputInner' ${!nameAttrSetting} type=\"text\" autocomplete=\"off\"\n\t\t\tdojoAttachEvent=\"onkeypress:_onKeyPress,compositionend\"\n\t\t\tdojoAttachPoint=\"textbox,focusNode\" waiRole=\"textbox\" waiState=\"haspopup-true,autocomplete-list\"\n\t/></div\n></div>\n"), + + baseClass: "dijitTextBox dijitComboBox", + + // Set classes like dijitDownArrowButtonHover depending on + // mouse action over button node + cssStateNodes: { + "downArrowNode": "dijitDownArrowButton" + }, + + _getCaretPos: function(/*DomNode*/ element){ + // khtml 3.5.2 has selection* methods as does webkit nightlies from 2005-06-22 + var pos = 0; + if(typeof(element.selectionStart) == "number"){ + // FIXME: this is totally borked on Moz < 1.3. Any recourse? + pos = element.selectionStart; + }else if(dojo.isIE){ + // in the case of a mouse click in a popup being handled, + // then the dojo.doc.selection is not the textarea, but the popup + // var r = dojo.doc.selection.createRange(); + // hack to get IE 6 to play nice. What a POS browser. + var tr = dojo.doc.selection.createRange().duplicate(); + var ntr = element.createTextRange(); + tr.move("character",0); + ntr.move("character",0); + try{ + // If control doesnt have focus, you get an exception. + // Seems to happen on reverse-tab, but can also happen on tab (seems to be a race condition - only happens sometimes). + // There appears to be no workaround for this - googled for quite a while. + ntr.setEndPoint("EndToEnd", tr); + pos = String(ntr.text).replace(/\r/g,"").length; + }catch(e){ + // If focus has shifted, 0 is fine for caret pos. + } + } + return pos; + }, + + _setCaretPos: function(/*DomNode*/ element, /*Number*/ location){ + location = parseInt(location); + dijit.selectInputText(element, location, location); + }, + + _setDisabledAttr: function(/*Boolean*/ value){ + // Additional code to set disabled state of ComboBox node. + // Overrides _FormValueWidget._setDisabledAttr() or ValidationTextBox._setDisabledAttr(). + this.inherited(arguments); + dijit.setWaiState(this.comboNode, "disabled", value); + }, + + _abortQuery: function(){ + // stop in-progress query + if(this.searchTimer){ + clearTimeout(this.searchTimer); + this.searchTimer = null; + } + if(this._fetchHandle){ + if(this._fetchHandle.abort){ this._fetchHandle.abort(); } + this._fetchHandle = null; + } + }, + + _onInput: function(/*Event*/ evt){ + // summary: + // Handles paste events + if(!this.searchTimer && (evt.type == 'paste'/*IE|WebKit*/ || evt.type == 'input'/*Firefox*/) && this._lastInput != this.textbox.value){ + this.searchTimer = setTimeout(dojo.hitch(this, function(){ + this._onKeyPress({charOrCode: 229}); // fake IME key to cause a search + }), 100); // long delay that will probably be preempted by keyboard input + } + this.inherited(arguments); + }, + + _onKeyPress: function(/*Event*/ evt){ + // summary: + // Handles keyboard events + var key = evt.charOrCode; + // except for cutting/pasting case - ctrl + x/v + if(evt.altKey || ((evt.ctrlKey || evt.metaKey) && (key != 'x' && key != 'v')) || key == dojo.keys.SHIFT){ + return; // throw out weird key combinations and spurious events + } + var doSearch = false; + var searchFunction = "_startSearchFromInput"; + var pw = this._popupWidget; + var dk = dojo.keys; + var highlighted = null; + this._prev_key_backspace = false; + this._abortQuery(); + if(this._isShowingNow){ + pw.handleKey(key); + highlighted = pw.getHighlightedOption(); + } + switch(key){ + case dk.PAGE_DOWN: + case dk.DOWN_ARROW: + case dk.PAGE_UP: + case dk.UP_ARROW: + if(!this._isShowingNow){ + doSearch = true; + searchFunction = "_startSearchAll"; + }else{ + this._announceOption(highlighted); + } + dojo.stopEvent(evt); + break; + + case dk.ENTER: + // prevent submitting form if user presses enter. Also + // prevent accepting the value if either Next or Previous + // are selected + if(highlighted){ + // only stop event on prev/next + if(highlighted == pw.nextButton){ + this._nextSearch(1); + dojo.stopEvent(evt); + break; + }else if(highlighted == pw.previousButton){ + this._nextSearch(-1); + dojo.stopEvent(evt); + break; + } + }else{ + // Update 'value' (ex: KY) according to currently displayed text + this._setBlurValue(); // set value if needed + this._setCaretPos(this.focusNode, this.focusNode.value.length); // move cursor to end and cancel highlighting + } + // default case: + // prevent submit, but allow event to bubble + evt.preventDefault(); + // fall through + + case dk.TAB: + var newvalue = this.get('displayedValue'); + // if the user had More Choices selected fall into the + // _onBlur handler + if(pw && ( + newvalue == pw._messages["previousMessage"] || + newvalue == pw._messages["nextMessage"]) + ){ + break; + } + if(highlighted){ + this._selectOption(); + } + if(this._isShowingNow){ + this._lastQuery = null; // in case results come back later + this._hideResultList(); + } + break; + + case ' ': + if(highlighted){ + dojo.stopEvent(evt); + this._selectOption(); + this._hideResultList(); + }else{ + doSearch = true; + } + break; + + case dk.ESCAPE: + if(this._isShowingNow){ + dojo.stopEvent(evt); + this._hideResultList(); + } + break; + + case dk.DELETE: + case dk.BACKSPACE: + this._prev_key_backspace = true; + doSearch = true; + break; + + default: + // Non char keys (F1-F12 etc..) shouldn't open list. + // Ascii characters and IME input (Chinese, Japanese etc.) should. + // On IE and safari, IME input produces keycode == 229, and we simulate + // it on firefox by attaching to compositionend event (see compositionend method) + doSearch = typeof key == 'string' || key == 229; + } + if(doSearch){ + // need to wait a tad before start search so that the event + // bubbles through DOM and we have value visible + this.item = undefined; // undefined means item needs to be set + this.searchTimer = setTimeout(dojo.hitch(this, searchFunction),1); + } + }, + + _autoCompleteText: function(/*String*/ text){ + // summary: + // Fill in the textbox with the first item from the drop down + // list, and highlight the characters that were + // auto-completed. For example, if user typed "CA" and the + // drop down list appeared, the textbox would be changed to + // "California" and "ifornia" would be highlighted. + + var fn = this.focusNode; + + // IE7: clear selection so next highlight works all the time + dijit.selectInputText(fn, fn.value.length); + // does text autoComplete the value in the textbox? + var caseFilter = this.ignoreCase? 'toLowerCase' : 'substr'; + if(text[caseFilter](0).indexOf(this.focusNode.value[caseFilter](0)) == 0){ + var cpos = this._getCaretPos(fn); + // only try to extend if we added the last character at the end of the input + if((cpos+1) > fn.value.length){ + // only add to input node as we would overwrite Capitalisation of chars + // actually, that is ok + fn.value = text;//.substr(cpos); + // visually highlight the autocompleted characters + dijit.selectInputText(fn, cpos); + } + }else{ + // text does not autoComplete; replace the whole value and highlight + fn.value = text; + dijit.selectInputText(fn); + } + }, + + _openResultList: function(/*Object*/ results, /*Object*/ dataObject){ + this._fetchHandle = null; + if( this.disabled || + this.readOnly || + (dataObject.query[this.searchAttr] != this._lastQuery) + ){ + return; + } + this._popupWidget.clearResultList(); + if(!results.length && !this._maxOptions){ // this condition needs to match !this._isvalid set in FilteringSelect::_openResultList + this._hideResultList(); + return; + } + + + // Fill in the textbox with the first item from the drop down list, + // and highlight the characters that were auto-completed. For + // example, if user typed "CA" and the drop down list appeared, the + // textbox would be changed to "California" and "ifornia" would be + // highlighted. + + dataObject._maxOptions = this._maxOptions; + var nodes = this._popupWidget.createOptions( + results, + dataObject, + dojo.hitch(this, "_getMenuLabelFromItem") + ); + + // show our list (only if we have content, else nothing) + this._showResultList(); + + // #4091: + // tell the screen reader that the paging callback finished by + // shouting the next choice + if(dataObject.direction){ + if(1 == dataObject.direction){ + this._popupWidget.highlightFirstOption(); + }else if(-1 == dataObject.direction){ + this._popupWidget.highlightLastOption(); + } + this._announceOption(this._popupWidget.getHighlightedOption()); + }else if(this.autoComplete && !this._prev_key_backspace /*&& !dataObject.direction*/ + // when the user clicks the arrow button to show the full list, + // startSearch looks for "*". + // it does not make sense to autocomplete + // if they are just previewing the options available. + && !/^[*]+$/.test(dataObject.query[this.searchAttr])){ + this._announceOption(nodes[1]); // 1st real item + } + }, + + _showResultList: function(){ + this._hideResultList(); + // hide the tooltip + this.displayMessage(""); + + // Position the list and if it's too big to fit on the screen then + // size it to the maximum possible height + // Our dear friend IE doesnt take max-height so we need to + // calculate that on our own every time + + // TODO: want to redo this, see + // http://trac.dojotoolkit.org/ticket/3272 + // and + // http://trac.dojotoolkit.org/ticket/4108 + + + // natural size of the list has changed, so erase old + // width/height settings, which were hardcoded in a previous + // call to this function (via dojo.marginBox() call) + dojo.style(this._popupWidget.domNode, {width: "", height: ""}); + + var best = this.open(); + // #3212: + // only set auto scroll bars if necessary prevents issues with + // scroll bars appearing when they shouldn't when node is made + // wider (fractional pixels cause this) + var popupbox = dojo.marginBox(this._popupWidget.domNode); + this._popupWidget.domNode.style.overflow = + ((best.h == popupbox.h) && (best.w == popupbox.w)) ? "hidden" : "auto"; + // #4134: + // borrow TextArea scrollbar test so content isn't covered by + // scrollbar and horizontal scrollbar doesn't appear + var newwidth = best.w; + if(best.h < this._popupWidget.domNode.scrollHeight){ + newwidth += 16; + } + dojo.marginBox(this._popupWidget.domNode, { + h: best.h, + w: Math.max(newwidth, this.domNode.offsetWidth) + }); + + // If we increased the width of drop down to match the width of ComboBox.domNode, + // then need to reposition the drop down (wrapper) so (all of) the drop down still + // appears underneath the ComboBox.domNode + if(newwidth < this.domNode.offsetWidth){ + this._popupWidget.domNode.parentNode.style.left = dojo.position(this.domNode, true).x + "px"; + } + + dijit.setWaiState(this.comboNode, "expanded", "true"); + }, + + _hideResultList: function(){ + this._abortQuery(); + if(this._isShowingNow){ + dijit.popup.close(this._popupWidget); + this._isShowingNow=false; + dijit.setWaiState(this.comboNode, "expanded", "false"); + dijit.removeWaiState(this.focusNode,"activedescendant"); + } + }, + + _setBlurValue: function(){ + // if the user clicks away from the textbox OR tabs away, set the + // value to the textbox value + // #4617: + // if value is now more choices or previous choices, revert + // the value + var newvalue = this.get('displayedValue'); + var pw = this._popupWidget; + if(pw && ( + newvalue == pw._messages["previousMessage"] || + newvalue == pw._messages["nextMessage"] + ) + ){ + this._setValueAttr(this._lastValueReported, true); + }else if(typeof this.item == "undefined"){ + // Update 'value' (ex: KY) according to currently displayed text + this.item = null; + this.set('displayedValue', newvalue); + }else{ + if(this.value != this._lastValueReported){ + dijit.form._FormValueWidget.prototype._setValueAttr.call(this, this.value, true); + } + this._refreshState(); + } + }, + + _onBlur: function(){ + // summary: + // Called magically when focus has shifted away from this widget and it's drop down + this._hideResultList(); + this.inherited(arguments); + }, + + _setItemAttr: function(/*item*/ item, /*Boolean?*/ priorityChange, /*String?*/ displayedValue){ + // summary: + // Set the displayed valued in the input box, and the hidden value + // that gets submitted, based on a dojo.data store item. + // description: + // Users shouldn't call this function; they should be calling + // attr('item', value) + // tags: + // private + if(!displayedValue){ displayedValue = this.labelFunc(item, this.store); } + this.value = this._getValueField() != this.searchAttr? this.store.getIdentity(item) : displayedValue; + this.item = item; + dijit.form.ComboBox.superclass._setValueAttr.call(this, this.value, priorityChange, displayedValue); + }, + + _announceOption: function(/*Node*/ node){ + // summary: + // a11y code that puts the highlighted option in the textbox. + // This way screen readers will know what is happening in the + // menu. + + if(!node){ + return; + } + // pull the text value from the item attached to the DOM node + var newValue; + if(node == this._popupWidget.nextButton || + node == this._popupWidget.previousButton){ + newValue = node.innerHTML; + this.item = undefined; + this.value = ''; + }else{ + newValue = this.labelFunc(node.item, this.store); + this.set('item', node.item, false, newValue); + } + // get the text that the user manually entered (cut off autocompleted text) + this.focusNode.value = this.focusNode.value.substring(0, this._lastInput.length); + // set up ARIA activedescendant + dijit.setWaiState(this.focusNode, "activedescendant", dojo.attr(node, "id")); + // autocomplete the rest of the option to announce change + this._autoCompleteText(newValue); + }, + + _selectOption: function(/*Event*/ evt){ + // summary: + // Menu callback function, called when an item in the menu is selected. + if(evt){ + this._announceOption(evt.target); + } + this._hideResultList(); + this._setCaretPos(this.focusNode, this.focusNode.value.length); + dijit.form._FormValueWidget.prototype._setValueAttr.call(this, this.value, true); // set this.value and fire onChange + }, + + _onArrowMouseDown: function(evt){ + // summary: + // Callback when arrow is clicked + if(this.disabled || this.readOnly){ + return; + } + dojo.stopEvent(evt); + this.focus(); + if(this._isShowingNow){ + this._hideResultList(); + }else{ + // forces full population of results, if they click + // on the arrow it means they want to see more options + this._startSearchAll(); + } + }, + + _startSearchAll: function(){ + this._startSearch(''); + }, + + _startSearchFromInput: function(){ + this._startSearch(this.focusNode.value.replace(/([\\\*\?])/g, "\\$1")); + }, + + _getQueryString: function(/*String*/ text){ + return dojo.string.substitute(this.queryExpr, [text]); + }, + + _startSearch: function(/*String*/ key){ + if(!this._popupWidget){ + var popupId = this.id + "_popup"; + this._popupWidget = new dijit.form._ComboBoxMenu({ + onChange: dojo.hitch(this, this._selectOption), + id: popupId, + dir: this.dir + }); + dijit.removeWaiState(this.focusNode,"activedescendant"); + dijit.setWaiState(this.textbox,"owns",popupId); // associate popup with textbox + } + // create a new query to prevent accidentally querying for a hidden + // value from FilteringSelect's keyField + var query = dojo.clone(this.query); // #5970 + this._lastInput = key; // Store exactly what was entered by the user. + this._lastQuery = query[this.searchAttr] = this._getQueryString(key); + // #5970: set _lastQuery, *then* start the timeout + // otherwise, if the user types and the last query returns before the timeout, + // _lastQuery won't be set and their input gets rewritten + this.searchTimer=setTimeout(dojo.hitch(this, function(query, _this){ + this.searchTimer = null; + var fetch = { + queryOptions: { + ignoreCase: this.ignoreCase, + deep: true + }, + query: query, + onBegin: dojo.hitch(this, "_setMaxOptions"), + onComplete: dojo.hitch(this, "_openResultList"), + onError: function(errText){ + _this._fetchHandle = null; + console.error('dijit.form.ComboBox: ' + errText); + dojo.hitch(_this, "_hideResultList")(); + }, + start: 0, + count: this.pageSize + }; + dojo.mixin(fetch, _this.fetchProperties); + this._fetchHandle = _this.store.fetch(fetch); + + var nextSearch = function(dataObject, direction){ + dataObject.start += dataObject.count*direction; + // #4091: + // tell callback the direction of the paging so the screen + // reader knows which menu option to shout + dataObject.direction = direction; + this._fetchHandle = this.store.fetch(dataObject); + }; + this._nextSearch = this._popupWidget.onPage = dojo.hitch(this, nextSearch, this._fetchHandle); + }, query, this), this.searchDelay); + }, + + _setMaxOptions: function(size, request){ + this._maxOptions = size; + }, + + _getValueField: function(){ + // summmary: + // Helper for postMixInProperties() to set this.value based on data inlined into the markup. + // Returns the attribute name in the item (in dijit.form._ComboBoxDataStore) to use as the value. + return this.searchAttr; + }, + + /////////////// Event handlers ///////////////////// + + // FIXME: For 2.0, rename to "_compositionEnd" + compositionend: function(/*Event*/ evt){ + // summary: + // When inputting characters using an input method, such as + // Asian languages, it will generate this event instead of + // onKeyDown event. + // Note: this event is only triggered in FF (not in IE/safari) + // tags: + // private + + // 229 is the code produced by IE and safari while pressing keys during + // IME input mode + this._onKeyPress({charOrCode: 229}); + }, + + //////////// INITIALIZATION METHODS /////////////////////////////////////// + + constructor: function(){ + this.query={}; + this.fetchProperties={}; + }, + + postMixInProperties: function(){ + if(!this.store){ + var srcNodeRef = this.srcNodeRef; + + // if user didn't specify store, then assume there are option tags + this.store = new dijit.form._ComboBoxDataStore(srcNodeRef); + + // if there is no value set and there is an option list, set + // the value to the first value to be consistent with native + // Select + + // Firefox and Safari set value + // IE6 and Opera set selectedIndex, which is automatically set + // by the selected attribute of an option tag + // IE6 does not set value, Opera sets value = selectedIndex + if(!("value" in this.params)){ + var item = this.store.fetchSelectedItem(); + if(item){ + var valueField = this._getValueField(); + this.value = valueField != this.searchAttr? this.store.getValue(item, valueField) : this.labelFunc(item, this.store); + } + } + } + this.inherited(arguments); + }, + + postCreate: function(){ + // summary: + // Subclasses must call this method from their postCreate() methods + // tags: + // protected + + if(!this.hasDownArrow){ + this.downArrowNode.style.display = "none"; + } + + // find any associated label element and add to ComboBox node. + var label=dojo.query('label[for="'+this.id+'"]'); + if(label.length){ + label[0].id = (this.id+"_label"); + var cn=this.comboNode; + dijit.setWaiState(cn, "labelledby", label[0].id); + + } + this.inherited(arguments); + }, + + uninitialize: function(){ + if(this._popupWidget && !this._popupWidget._destroyed){ + this._hideResultList(); + this._popupWidget.destroy(); + } + this.inherited(arguments); + }, + + _getMenuLabelFromItem: function(/*Item*/ item){ + var label = this.labelAttr? this.store.getValue(item, this.labelAttr) : this.labelFunc(item, this.store); + var labelType = this.labelType; + // If labelType is not "text" we don't want to screw any markup ot whatever. + if(this.highlightMatch != "none" && this.labelType == "text" && this._lastInput){ + label = this.doHighlight(label, this._escapeHtml(this._lastInput)); + labelType = "html"; + } + return {html: labelType == "html", label: label}; + }, + + doHighlight: function(/*String*/label, /*String*/find){ + // summary: + // Highlights the string entered by the user in the menu. By default this + // highlights the first occurence found. Override this method + // to implement your custom highlighing. + // tags: + // protected + + // Add greedy when this.highlightMatch == "all" + var modifiers = "i"+(this.highlightMatch == "all"?"g":""); + var escapedLabel = this._escapeHtml(label); + find = dojo.regexp.escapeString(find); // escape regexp special chars + var ret = escapedLabel.replace(new RegExp("(^|\\s)("+ find +")", modifiers), + '$1<span class="dijitComboBoxHighlightMatch">$2</span>'); + return ret;// returns String, (almost) valid HTML (entities encoded) + }, + + _escapeHtml: function(/*string*/str){ + // TODO Should become dojo.html.entities(), when exists use instead + // summary: + // Adds escape sequences for special characters in XML: &<>"' + str = String(str).replace(/&/gm, "&").replace(/</gm, "<") + .replace(/>/gm, ">").replace(/"/gm, """); + return str; // string + }, + + open: function(){ + // summary: + // Opens the drop down menu. TODO: rename to _open. + // tags: + // private + this._isShowingNow=true; + return dijit.popup.open({ + popup: this._popupWidget, + around: this.domNode, + parent: this + }); + }, + + reset: function(){ + // Overrides the _FormWidget.reset(). + // Additionally reset the .item (to clean up). + this.item = null; + this.inherited(arguments); + }, + + labelFunc: function(/*item*/ item, /*dojo.data.store*/ store){ + // summary: + // Computes the label to display based on the dojo.data store item. + // returns: + // The label that the ComboBox should display + // tags: + // private + + // Use toString() because XMLStore returns an XMLItem whereas this + // method is expected to return a String (#9354) + return store.getValue(item, this.searchAttr).toString(); // String + } + } +); + +dojo.declare( + "dijit.form._ComboBoxMenu", + [dijit._Widget, dijit._Templated, dijit._CssStateMixin], + { + // summary: + // Focus-less menu for internal use in `dijit.form.ComboBox` + // tags: + // private + + templateString: "<ul class='dijitReset dijitMenu' dojoAttachEvent='onmousedown:_onMouseDown,onmouseup:_onMouseUp,onmouseover:_onMouseOver,onmouseout:_onMouseOut' tabIndex='-1' style='overflow: \"auto\"; overflow-x: \"hidden\";'>" + +"<li class='dijitMenuItem dijitMenuPreviousButton' dojoAttachPoint='previousButton' waiRole='option'></li>" + +"<li class='dijitMenuItem dijitMenuNextButton' dojoAttachPoint='nextButton' waiRole='option'></li>" + +"</ul>", + + // _messages: Object + // Holds "next" and "previous" text for paging buttons on drop down + _messages: null, + + baseClass: "dijitComboBoxMenu", + + postMixInProperties: function(){ + this._messages = dojo.i18n.getLocalization("dijit.form", "ComboBox", this.lang); + this.inherited(arguments); + }, + + _setValueAttr: function(/*Object*/ value){ + this.value = value; + this.onChange(value); + }, + + // stubs + onChange: function(/*Object*/ value){ + // summary: + // Notifies ComboBox/FilteringSelect that user clicked an option in the drop down menu. + // Probably should be called onSelect. + // tags: + // callback + }, + onPage: function(/*Number*/ direction){ + // summary: + // Notifies ComboBox/FilteringSelect that user clicked to advance to next/previous page. + // tags: + // callback + }, + + postCreate: function(){ + // fill in template with i18n messages + this.previousButton.innerHTML = this._messages["previousMessage"]; + this.nextButton.innerHTML = this._messages["nextMessage"]; + this.inherited(arguments); + }, + + onClose: function(){ + // summary: + // Callback from dijit.popup code to this widget, notifying it that it closed + // tags: + // private + this._blurOptionNode(); + }, + + _createOption: function(/*Object*/ item, labelFunc){ + // summary: + // Creates an option to appear on the popup menu subclassed by + // `dijit.form.FilteringSelect`. + + var labelObject = labelFunc(item); + var menuitem = dojo.doc.createElement("li"); + dijit.setWaiRole(menuitem, "option"); + if(labelObject.html){ + menuitem.innerHTML = labelObject.label; + }else{ + menuitem.appendChild( + dojo.doc.createTextNode(labelObject.label) + ); + } + // #3250: in blank options, assign a normal height + if(menuitem.innerHTML == ""){ + menuitem.innerHTML = " "; + } + menuitem.item=item; + return menuitem; + }, + + createOptions: function(results, dataObject, labelFunc){ + // summary: + // Fills in the items in the drop down list + // results: + // Array of dojo.data items + // dataObject: + // dojo.data store + // labelFunc: + // Function to produce a label in the drop down list from a dojo.data item + + //this._dataObject=dataObject; + //this._dataObject.onComplete=dojo.hitch(comboBox, comboBox._openResultList); + // display "Previous . . ." button + this.previousButton.style.display = (dataObject.start == 0) ? "none" : ""; + dojo.attr(this.previousButton, "id", this.id + "_prev"); + // create options using _createOption function defined by parent + // ComboBox (or FilteringSelect) class + // #2309: + // iterate over cache nondestructively + dojo.forEach(results, function(item, i){ + var menuitem = this._createOption(item, labelFunc); + menuitem.className = "dijitReset dijitMenuItem" + + (this.isLeftToRight() ? "" : " dijitMenuItemRtl"); + dojo.attr(menuitem, "id", this.id + i); + this.domNode.insertBefore(menuitem, this.nextButton); + }, this); + // display "Next . . ." button + var displayMore = false; + //Try to determine if we should show 'more'... + if(dataObject._maxOptions && dataObject._maxOptions != -1){ + if((dataObject.start + dataObject.count) < dataObject._maxOptions){ + displayMore = true; + }else if((dataObject.start + dataObject.count) > dataObject._maxOptions && dataObject.count == results.length){ + //Weird return from a datastore, where a start + count > maxOptions + // implies maxOptions isn't really valid and we have to go into faking it. + //And more or less assume more if count == results.length + displayMore = true; + } + }else if(dataObject.count == results.length){ + //Don't know the size, so we do the best we can based off count alone. + //So, if we have an exact match to count, assume more. + displayMore = true; + } + + this.nextButton.style.display = displayMore ? "" : "none"; + dojo.attr(this.nextButton,"id", this.id + "_next"); + return this.domNode.childNodes; + }, + + clearResultList: function(){ + // summary: + // Clears the entries in the drop down list, but of course keeps the previous and next buttons. + while(this.domNode.childNodes.length>2){ + this.domNode.removeChild(this.domNode.childNodes[this.domNode.childNodes.length-2]); + } + }, + + _onMouseDown: function(/*Event*/ evt){ + dojo.stopEvent(evt); + }, + + _onMouseUp: function(/*Event*/ evt){ + if(evt.target === this.domNode || !this._highlighted_option){ + return; + }else if(evt.target == this.previousButton){ + this.onPage(-1); + }else if(evt.target == this.nextButton){ + this.onPage(1); + }else{ + var tgt = evt.target; + // while the clicked node is inside the div + while(!tgt.item){ + // recurse to the top + tgt = tgt.parentNode; + } + this._setValueAttr({ target: tgt }, true); + } + }, + + _onMouseOver: function(/*Event*/ evt){ + if(evt.target === this.domNode){ return; } + var tgt = evt.target; + if(!(tgt == this.previousButton || tgt == this.nextButton)){ + // while the clicked node is inside the div + while(!tgt.item){ + // recurse to the top + tgt = tgt.parentNode; + } + } + this._focusOptionNode(tgt); + }, + + _onMouseOut: function(/*Event*/ evt){ + if(evt.target === this.domNode){ return; } + this._blurOptionNode(); + }, + + _focusOptionNode: function(/*DomNode*/ node){ + // summary: + // Does the actual highlight. + if(this._highlighted_option != node){ + this._blurOptionNode(); + this._highlighted_option = node; + dojo.addClass(this._highlighted_option, "dijitMenuItemSelected"); + } + }, + + _blurOptionNode: function(){ + // summary: + // Removes highlight on highlighted option. + if(this._highlighted_option){ + dojo.removeClass(this._highlighted_option, "dijitMenuItemSelected"); + this._highlighted_option = null; + } + }, + + _highlightNextOption: function(){ + // summary: + // Highlight the item just below the current selection. + // If nothing selected, highlight first option. + + // because each press of a button clears the menu, + // the highlighted option sometimes becomes detached from the menu! + // test to see if the option has a parent to see if this is the case. + if(!this.getHighlightedOption()){ + var fc = this.domNode.firstChild; + this._focusOptionNode(fc.style.display == "none" ? fc.nextSibling : fc); + }else{ + var ns = this._highlighted_option.nextSibling; + if(ns && ns.style.display != "none"){ + this._focusOptionNode(ns); + }else{ + this.highlightFirstOption(); + } + } + // scrollIntoView is called outside of _focusOptionNode because in IE putting it inside causes the menu to scroll up on mouseover + dojo.window.scrollIntoView(this._highlighted_option); + }, + + highlightFirstOption: function(){ + // summary: + // Highlight the first real item in the list (not Previous Choices). + var first = this.domNode.firstChild; + var second = first.nextSibling; + this._focusOptionNode(second.style.display == "none" ? first : second); // remotely possible that Previous Choices is the only thing in the list + dojo.window.scrollIntoView(this._highlighted_option); + }, + + highlightLastOption: function(){ + // summary: + // Highlight the last real item in the list (not More Choices). + this._focusOptionNode(this.domNode.lastChild.previousSibling); + dojo.window.scrollIntoView(this._highlighted_option); + }, + + _highlightPrevOption: function(){ + // summary: + // Highlight the item just above the current selection. + // If nothing selected, highlight last option (if + // you select Previous and try to keep scrolling up the list). + if(!this.getHighlightedOption()){ + var lc = this.domNode.lastChild; + this._focusOptionNode(lc.style.display == "none" ? lc.previousSibling : lc); + }else{ + var ps = this._highlighted_option.previousSibling; + if(ps && ps.style.display != "none"){ + this._focusOptionNode(ps); + }else{ + this.highlightLastOption(); + } + } + dojo.window.scrollIntoView(this._highlighted_option); + }, + + _page: function(/*Boolean*/ up){ + // summary: + // Handles page-up and page-down keypresses + + var scrollamount = 0; + var oldscroll = this.domNode.scrollTop; + var height = dojo.style(this.domNode, "height"); + // if no item is highlighted, highlight the first option + if(!this.getHighlightedOption()){ + this._highlightNextOption(); + } + while(scrollamount<height){ + if(up){ + // stop at option 1 + if(!this.getHighlightedOption().previousSibling || + this._highlighted_option.previousSibling.style.display == "none"){ + break; + } + this._highlightPrevOption(); + }else{ + // stop at last option + if(!this.getHighlightedOption().nextSibling || + this._highlighted_option.nextSibling.style.display == "none"){ + break; + } + this._highlightNextOption(); + } + // going backwards + var newscroll=this.domNode.scrollTop; + scrollamount+=(newscroll-oldscroll)*(up ? -1:1); + oldscroll=newscroll; + } + }, + + pageUp: function(){ + // summary: + // Handles pageup keypress. + // TODO: just call _page directly from handleKey(). + // tags: + // private + this._page(true); + }, + + pageDown: function(){ + // summary: + // Handles pagedown keypress. + // TODO: just call _page directly from handleKey(). + // tags: + // private + this._page(false); + }, + + getHighlightedOption: function(){ + // summary: + // Returns the highlighted option. + var ho = this._highlighted_option; + return (ho && ho.parentNode) ? ho : null; + }, + + handleKey: function(key){ + switch(key){ + case dojo.keys.DOWN_ARROW: + this._highlightNextOption(); + break; + case dojo.keys.PAGE_DOWN: + this.pageDown(); + break; + case dojo.keys.UP_ARROW: + this._highlightPrevOption(); + break; + case dojo.keys.PAGE_UP: + this.pageUp(); + break; + } + } + } +); + +dojo.declare( + "dijit.form.ComboBox", + [dijit.form.ValidationTextBox, dijit.form.ComboBoxMixin], + { + // summary: + // Auto-completing text box, and base class for dijit.form.FilteringSelect. + // + // description: + // The drop down box's values are populated from an class called + // a data provider, which returns a list of values based on the characters + // that the user has typed into the input box. + // If OPTION tags are used as the data provider via markup, + // then the OPTION tag's child text node is used as the widget value + // when selected. The OPTION tag's value attribute is ignored. + // To set the default value when using OPTION tags, specify the selected + // attribute on 1 of the child OPTION tags. + // + // Some of the options to the ComboBox are actually arguments to the data + // provider. + + _setValueAttr: function(/*String*/ value, /*Boolean?*/ priorityChange, /*String?*/ displayedValue){ + // summary: + // Hook so attr('value', value) works. + // description: + // Sets the value of the select. + this.item = null; // value not looked up in store + if(!value){ value = ''; } // null translates to blank + dijit.form.ValidationTextBox.prototype._setValueAttr.call(this, value, priorityChange, displayedValue); + } + } +); + +dojo.declare("dijit.form._ComboBoxDataStore", null, { + // summary: + // Inefficient but small data store specialized for inlined `dijit.form.ComboBox` data + // + // description: + // Provides a store for inlined data like: + // + // | <select> + // | <option value="AL">Alabama</option> + // | ... + // + // Actually. just implements the subset of dojo.data.Read/Notification + // needed for ComboBox and FilteringSelect to work. + // + // Note that an item is just a pointer to the <option> DomNode. + + constructor: function( /*DomNode*/ root){ + this.root = root; + if(root.tagName != "SELECT" && root.firstChild){ + root = dojo.query("select", root); + if(root.length > 0){ // SELECT is a child of srcNodeRef + root = root[0]; + }else{ // no select, so create 1 to parent the option tags to define selectedIndex + this.root.innerHTML = "<SELECT>"+this.root.innerHTML+"</SELECT>"; + root = this.root.firstChild; + } + this.root = root; + } + dojo.query("> option", root).forEach(function(node){ + // TODO: this was added in #3858 but unclear why/if it's needed; doesn't seem to be. + // If it is needed then can we just hide the select itself instead? + //node.style.display="none"; + node.innerHTML = dojo.trim(node.innerHTML); + }); + + }, + + getValue: function( /* item */ item, + /* attribute-name-string */ attribute, + /* value? */ defaultValue){ + return (attribute == "value") ? item.value : (item.innerText || item.textContent || ''); + }, + + isItemLoaded: function(/* anything */ something){ + return true; + }, + + getFeatures: function(){ + return {"dojo.data.api.Read": true, "dojo.data.api.Identity": true}; + }, + + _fetchItems: function( /* Object */ args, + /* Function */ findCallback, + /* Function */ errorCallback){ + // summary: + // See dojo.data.util.simpleFetch.fetch() + if(!args.query){ args.query = {}; } + if(!args.query.name){ args.query.name = ""; } + if(!args.queryOptions){ args.queryOptions = {}; } + var matcher = dojo.data.util.filter.patternToRegExp(args.query.name, args.queryOptions.ignoreCase), + items = dojo.query("> option", this.root).filter(function(option){ + return (option.innerText || option.textContent || '').match(matcher); + } ); + if(args.sort){ + items.sort(dojo.data.util.sorter.createSortFunction(args.sort, this)); + } + findCallback(items, args); + }, + + close: function(/*dojo.data.api.Request || args || null */ request){ + return; + }, + + getLabel: function(/* item */ item){ + return item.innerHTML; + }, + + getIdentity: function(/* item */ item){ + return dojo.attr(item, "value"); + }, + + fetchItemByIdentity: function(/* Object */ args){ + // summary: + // Given the identity of an item, this method returns the item that has + // that identity through the onItem callback. + // Refer to dojo.data.api.Identity.fetchItemByIdentity() for more details. + // + // description: + // Given arguments like: + // + // | {identity: "CA", onItem: function(item){...} + // + // Call `onItem()` with the DOM node `<option value="CA">California</option>` + var item = dojo.query("> option[value='" + args.identity + "']", this.root)[0]; + args.onItem(item); + }, + + fetchSelectedItem: function(){ + // summary: + // Get the option marked as selected, like `<option selected>`. + // Not part of dojo.data API. + var root = this.root, + si = root.selectedIndex; + return typeof si == "number" + ? dojo.query("> option:nth-child(" + (si != -1 ? si+1 : 1) + ")", root)[0] + : null; // dojo.data.Item + } +}); +//Mix in the simple fetch implementation to this class. +dojo.extend(dijit.form._ComboBoxDataStore,dojo.data.util.simpleFetch); + +} + +if(!dojo._hasResource["dijit.form.FilteringSelect"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.form.FilteringSelect"] = true; +dojo.provide("dijit.form.FilteringSelect"); + + + +dojo.declare( + "dijit.form.FilteringSelect", + [dijit.form.MappedTextBox, dijit.form.ComboBoxMixin], + { + // summary: + // An enhanced version of the HTML SELECT tag, populated dynamically + // + // description: + // An enhanced version of the HTML SELECT tag, populated dynamically. It works + // very nicely with very large data sets because it can load and page data as needed. + // It also resembles ComboBox, but does not allow values outside of the provided ones. + // If OPTION tags are used as the data provider via markup, then the + // OPTION tag's child text node is used as the displayed value when selected + // while the OPTION tag's value attribute is used as the widget value on form submit. + // To set the default value when using OPTION tags, specify the selected + // attribute on 1 of the child OPTION tags. + // + // Similar features: + // - There is a drop down list of possible values. + // - You can only enter a value from the drop down list. (You can't + // enter an arbitrary value.) + // - The value submitted with the form is the hidden value (ex: CA), + // not the displayed value a.k.a. label (ex: California) + // + // Enhancements over plain HTML version: + // - If you type in some text then it will filter down the list of + // possible values in the drop down list. + // - List can be specified either as a static list or via a javascript + // function (that can get the list from a server) + + _isvalid: true, + + // required: Boolean + // True (default) if user is required to enter a value into this field. + required: true, + + _lastDisplayedValue: "", + + isValid: function(){ + // Overrides ValidationTextBox.isValid() + return this._isvalid || (!this.required && this.get('displayedValue') == ""); // #5974 + }, + + _refreshState: function(){ + if(!this.searchTimer){ // state will be refreshed after results are returned + this.inherited(arguments); + } + }, + + _callbackSetLabel: function( /*Array*/ result, + /*Object*/ dataObject, + /*Boolean?*/ priorityChange){ + // summary: + // Callback function that dynamically sets the label of the + // ComboBox + + // setValue does a synchronous lookup, + // so it calls _callbackSetLabel directly, + // and so does not pass dataObject + // still need to test against _lastQuery in case it came too late + if((dataObject && dataObject.query[this.searchAttr] != this._lastQuery) || (!dataObject && result.length && this.store.getIdentity(result[0]) != this._lastQuery)){ + return; + } + if(!result.length){ + //#3268: do nothing on bad input + //#3285: change CSS to indicate error + this.valueNode.value = ""; + dijit.form.TextBox.superclass._setValueAttr.call(this, "", priorityChange || (priorityChange === undefined && !this._focused)); + this._isvalid = false; + this.validate(this._focused); + this.item = null; + }else{ + this.set('item', result[0], priorityChange); + } + }, + + _openResultList: function(/*Object*/ results, /*Object*/ dataObject){ + // Overrides ComboBox._openResultList() + + // #3285: tap into search callback to see if user's query resembles a match + if(dataObject.query[this.searchAttr] != this._lastQuery){ + return; + } + if(this.item === undefined){ // item == undefined for keyboard search + this._isvalid = results.length != 0 || this._maxOptions != 0; // result.length==0 && maxOptions != 0 implies the nextChoices item selected but then the datastore returned 0 more entries + this.validate(true); + } + dijit.form.ComboBoxMixin.prototype._openResultList.apply(this, arguments); + }, + + _getValueAttr: function(){ + // summary: + // Hook for attr('value') to work. + + // don't get the textbox value but rather the previously set hidden value. + // Use this.valueNode.value which isn't always set for other MappedTextBox widgets until blur + return this.valueNode.value; + }, + + _getValueField: function(){ + // Overrides ComboBox._getValueField() + return "value"; + }, + + _setValueAttr: function(/*String*/ value, /*Boolean?*/ priorityChange){ + // summary: + // Hook so attr('value', value) works. + // description: + // Sets the value of the select. + // Also sets the label to the corresponding value by reverse lookup. + if(!this._onChangeActive){ priorityChange = null; } + this._lastQuery = value; + + if(value === null || value === ''){ + this._setDisplayedValueAttr('', priorityChange); + return; + } + + //#3347: fetchItemByIdentity if no keyAttr specified + var self = this; + this.store.fetchItemByIdentity({ + identity: value, + onItem: function(item){ + self._callbackSetLabel(item? [item] : [], undefined, priorityChange); + } + }); + }, + + _setItemAttr: function(/*item*/ item, /*Boolean?*/ priorityChange, /*String?*/ displayedValue){ + // summary: + // Set the displayed valued in the input box, and the hidden value + // that gets submitted, based on a dojo.data store item. + // description: + // Users shouldn't call this function; they should be calling + // attr('item', value) + // tags: + // private + this._isvalid = true; + this.inherited(arguments); + this.valueNode.value = this.value; + this._lastDisplayedValue = this.textbox.value; + }, + + _getDisplayQueryString: function(/*String*/ text){ + return text.replace(/([\\\*\?])/g, "\\$1"); + }, + + _setDisplayedValueAttr: function(/*String*/ label, /*Boolean?*/ priorityChange){ + // summary: + // Hook so attr('displayedValue', label) works. + // description: + // Sets textbox to display label. Also performs reverse lookup + // to set the hidden value. + + // When this is called during initialization it'll ping the datastore + // for reverse lookup, and when that completes (after an XHR request) + // will call setValueAttr()... but that shouldn't trigger an onChange() + // event, even when it happens after creation has finished + if(!this._created){ + priorityChange = false; + } + + if(this.store){ + this._hideResultList(); + var query = dojo.clone(this.query); // #6196: populate query with user-specifics + // escape meta characters of dojo.data.util.filter.patternToRegExp(). + this._lastQuery = query[this.searchAttr] = this._getDisplayQueryString(label); + // if the label is not valid, the callback will never set it, + // so the last valid value will get the warning textbox set the + // textbox value now so that the impending warning will make + // sense to the user + this.textbox.value = label; + this._lastDisplayedValue = label; + var _this = this; + var fetch = { + query: query, + queryOptions: { + ignoreCase: this.ignoreCase, + deep: true + }, + onComplete: function(result, dataObject){ + _this._fetchHandle = null; + dojo.hitch(_this, "_callbackSetLabel")(result, dataObject, priorityChange); + }, + onError: function(errText){ + _this._fetchHandle = null; + console.error('dijit.form.FilteringSelect: ' + errText); + dojo.hitch(_this, "_callbackSetLabel")([], undefined, false); + } + }; + dojo.mixin(fetch, this.fetchProperties); + this._fetchHandle = this.store.fetch(fetch); + } + }, + + postMixInProperties: function(){ + this.inherited(arguments); + this._isvalid = !this.required; + }, + + undo: function(){ + this.set('displayedValue', this._lastDisplayedValue); + } + } +); + +} + +if(!dojo._hasResource["dojo.data.ItemFileReadStore"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.data.ItemFileReadStore"] = true; +dojo.provide("dojo.data.ItemFileReadStore"); + + + + + +dojo.declare("dojo.data.ItemFileReadStore", null,{ + // summary: + // The ItemFileReadStore implements the dojo.data.api.Read API and reads + // data from JSON files that have contents in this format -- + // { items: [ + // { name:'Kermit', color:'green', age:12, friends:['Gonzo', {_reference:{name:'Fozzie Bear'}}]}, + // { name:'Fozzie Bear', wears:['hat', 'tie']}, + // { name:'Miss Piggy', pets:'Foo-Foo'} + // ]} + // Note that it can also contain an 'identifer' property that specified which attribute on the items + // in the array of items that acts as the unique identifier for that item. + // + constructor: function(/* Object */ keywordParameters){ + // summary: constructor + // keywordParameters: {url: String} + // keywordParameters: {data: jsonObject} + // keywordParameters: {typeMap: object) + // The structure of the typeMap object is as follows: + // { + // type0: function || object, + // type1: function || object, + // ... + // typeN: function || object + // } + // Where if it is a function, it is assumed to be an object constructor that takes the + // value of _value as the initialization parameters. If it is an object, then it is assumed + // to be an object of general form: + // { + // type: function, //constructor. + // deserialize: function(value) //The function that parses the value and constructs the object defined by type appropriately. + // } + + this._arrayOfAllItems = []; + this._arrayOfTopLevelItems = []; + this._loadFinished = false; + this._jsonFileUrl = keywordParameters.url; + this._ccUrl = keywordParameters.url; + this.url = keywordParameters.url; + this._jsonData = keywordParameters.data; + this.data = null; + this._datatypeMap = keywordParameters.typeMap || {}; + if(!this._datatypeMap['Date']){ + //If no default mapping for dates, then set this as default. + //We use the dojo.date.stamp here because the ISO format is the 'dojo way' + //of generically representing dates. + this._datatypeMap['Date'] = { + type: Date, + deserialize: function(value){ + return dojo.date.stamp.fromISOString(value); + } + }; + } + this._features = {'dojo.data.api.Read':true, 'dojo.data.api.Identity':true}; + this._itemsByIdentity = null; + this._storeRefPropName = "_S"; // Default name for the store reference to attach to every item. + this._itemNumPropName = "_0"; // Default Item Id for isItem to attach to every item. + this._rootItemPropName = "_RI"; // Default Item Id for isItem to attach to every item. + this._reverseRefMap = "_RRM"; // Default attribute for constructing a reverse reference map for use with reference integrity + this._loadInProgress = false; //Got to track the initial load to prevent duelling loads of the dataset. + this._queuedFetches = []; + if(keywordParameters.urlPreventCache !== undefined){ + this.urlPreventCache = keywordParameters.urlPreventCache?true:false; + } + if(keywordParameters.hierarchical !== undefined){ + this.hierarchical = keywordParameters.hierarchical?true:false; + } + if(keywordParameters.clearOnClose){ + this.clearOnClose = true; + } + if("failOk" in keywordParameters){ + this.failOk = keywordParameters.failOk?true:false; + } + }, + + url: "", // use "" rather than undefined for the benefit of the parser (#3539) + + //Internal var, crossCheckUrl. Used so that setting either url or _jsonFileUrl, can still trigger a reload + //when clearOnClose and close is used. + _ccUrl: "", + + data: null, // define this so that the parser can populate it + + typeMap: null, //Define so parser can populate. + + //Parameter to allow users to specify if a close call should force a reload or not. + //By default, it retains the old behavior of not clearing if close is called. But + //if set true, the store will be reset to default state. Note that by doing this, + //all item handles will become invalid and a new fetch must be issued. + clearOnClose: false, + + //Parameter to allow specifying if preventCache should be passed to the xhrGet call or not when loading data from a url. + //Note this does not mean the store calls the server on each fetch, only that the data load has preventCache set as an option. + //Added for tracker: #6072 + urlPreventCache: false, + + //Parameter for specifying that it is OK for the xhrGet call to fail silently. + failOk: false, + + //Parameter to indicate to process data from the url as hierarchical + //(data items can contain other data items in js form). Default is true + //for backwards compatibility. False means only root items are processed + //as items, all child objects outside of type-mapped objects and those in + //specific reference format, are left straight JS data objects. + hierarchical: true, + + _assertIsItem: function(/* item */ item){ + // summary: + // This function tests whether the item passed in is indeed an item in the store. + // item: + // The item to test for being contained by the store. + if(!this.isItem(item)){ + throw new Error("dojo.data.ItemFileReadStore: Invalid item argument."); + } + }, + + _assertIsAttribute: function(/* attribute-name-string */ attribute){ + // summary: + // This function tests whether the item passed in is indeed a valid 'attribute' like type for the store. + // attribute: + // The attribute to test for being contained by the store. + if(typeof attribute !== "string"){ + throw new Error("dojo.data.ItemFileReadStore: Invalid attribute argument."); + } + }, + + getValue: function( /* item */ item, + /* attribute-name-string */ attribute, + /* value? */ defaultValue){ + // summary: + // See dojo.data.api.Read.getValue() + var values = this.getValues(item, attribute); + return (values.length > 0)?values[0]:defaultValue; // mixed + }, + + getValues: function(/* item */ item, + /* attribute-name-string */ attribute){ + // summary: + // See dojo.data.api.Read.getValues() + + this._assertIsItem(item); + this._assertIsAttribute(attribute); + // Clone it before returning. refs: #10474 + return (item[attribute] || []).slice(0); // Array + }, + + getAttributes: function(/* item */ item){ + // summary: + // See dojo.data.api.Read.getAttributes() + this._assertIsItem(item); + var attributes = []; + for(var key in item){ + // Save off only the real item attributes, not the special id marks for O(1) isItem. + if((key !== this._storeRefPropName) && (key !== this._itemNumPropName) && (key !== this._rootItemPropName) && (key !== this._reverseRefMap)){ + attributes.push(key); + } + } + return attributes; // Array + }, + + hasAttribute: function( /* item */ item, + /* attribute-name-string */ attribute){ + // summary: + // See dojo.data.api.Read.hasAttribute() + this._assertIsItem(item); + this._assertIsAttribute(attribute); + return (attribute in item); + }, + + containsValue: function(/* item */ item, + /* attribute-name-string */ attribute, + /* anything */ value){ + // summary: + // See dojo.data.api.Read.containsValue() + var regexp = undefined; + if(typeof value === "string"){ + regexp = dojo.data.util.filter.patternToRegExp(value, false); + } + return this._containsValue(item, attribute, value, regexp); //boolean. + }, + + _containsValue: function( /* item */ item, + /* attribute-name-string */ attribute, + /* anything */ value, + /* RegExp?*/ regexp){ + // summary: + // Internal function for looking at the values contained by the item. + // description: + // Internal function for looking at the values contained by the item. This + // function allows for denoting if the comparison should be case sensitive for + // strings or not (for handling filtering cases where string case should not matter) + // + // item: + // The data item to examine for attribute values. + // attribute: + // The attribute to inspect. + // value: + // The value to match. + // regexp: + // Optional regular expression generated off value if value was of string type to handle wildcarding. + // If present and attribute values are string, then it can be used for comparison instead of 'value' + return dojo.some(this.getValues(item, attribute), function(possibleValue){ + if(possibleValue !== null && !dojo.isObject(possibleValue) && regexp){ + if(possibleValue.toString().match(regexp)){ + return true; // Boolean + } + }else if(value === possibleValue){ + return true; // Boolean + } + }); + }, + + isItem: function(/* anything */ something){ + // summary: + // See dojo.data.api.Read.isItem() + if(something && something[this._storeRefPropName] === this){ + if(this._arrayOfAllItems[something[this._itemNumPropName]] === something){ + return true; + } + } + return false; // Boolean + }, + + isItemLoaded: function(/* anything */ something){ + // summary: + // See dojo.data.api.Read.isItemLoaded() + return this.isItem(something); //boolean + }, + + loadItem: function(/* object */ keywordArgs){ + // summary: + // See dojo.data.api.Read.loadItem() + this._assertIsItem(keywordArgs.item); + }, + + getFeatures: function(){ + // summary: + // See dojo.data.api.Read.getFeatures() + return this._features; //Object + }, + + getLabel: function(/* item */ item){ + // summary: + // See dojo.data.api.Read.getLabel() + if(this._labelAttr && this.isItem(item)){ + return this.getValue(item,this._labelAttr); //String + } + return undefined; //undefined + }, + + getLabelAttributes: function(/* item */ item){ + // summary: + // See dojo.data.api.Read.getLabelAttributes() + if(this._labelAttr){ + return [this._labelAttr]; //array + } + return null; //null + }, + + _fetchItems: function( /* Object */ keywordArgs, + /* Function */ findCallback, + /* Function */ errorCallback){ + // summary: + // See dojo.data.util.simpleFetch.fetch() + var self = this, + filter = function(requestArgs, arrayOfItems){ + var items = [], + i, key; + if(requestArgs.query){ + var value, + ignoreCase = requestArgs.queryOptions ? requestArgs.queryOptions.ignoreCase : false; + + //See if there are any string values that can be regexp parsed first to avoid multiple regexp gens on the + //same value for each item examined. Much more efficient. + var regexpList = {}; + for(key in requestArgs.query){ + value = requestArgs.query[key]; + if(typeof value === "string"){ + regexpList[key] = dojo.data.util.filter.patternToRegExp(value, ignoreCase); + }else if(value instanceof RegExp){ + regexpList[key] = value; + } + } + for(i = 0; i < arrayOfItems.length; ++i){ + var match = true; + var candidateItem = arrayOfItems[i]; + if(candidateItem === null){ + match = false; + }else{ + for(key in requestArgs.query){ + value = requestArgs.query[key]; + if(!self._containsValue(candidateItem, key, value, regexpList[key])){ + match = false; + } + } + } + if(match){ + items.push(candidateItem); + } + } + findCallback(items, requestArgs); + }else{ + // We want a copy to pass back in case the parent wishes to sort the array. + // We shouldn't allow resort of the internal list, so that multiple callers + // can get lists and sort without affecting each other. We also need to + // filter out any null values that have been left as a result of deleteItem() + // calls in ItemFileWriteStore. + for(i = 0; i < arrayOfItems.length; ++i){ + var item = arrayOfItems[i]; + if(item !== null){ + items.push(item); + } + } + findCallback(items, requestArgs); + } + }; + + if(this._loadFinished){ + filter(keywordArgs, this._getItemsArray(keywordArgs.queryOptions)); + }else{ + //Do a check on the JsonFileUrl and crosscheck it. + //If it doesn't match the cross-check, it needs to be updated + //This allows for either url or _jsonFileUrl to he changed to + //reset the store load location. Done this way for backwards + //compatibility. People use _jsonFileUrl (even though officially + //private. + if(this._jsonFileUrl !== this._ccUrl){ + dojo.deprecated("dojo.data.ItemFileReadStore: ", + "To change the url, set the url property of the store," + + " not _jsonFileUrl. _jsonFileUrl support will be removed in 2.0"); + this._ccUrl = this._jsonFileUrl; + this.url = this._jsonFileUrl; + }else if(this.url !== this._ccUrl){ + this._jsonFileUrl = this.url; + this._ccUrl = this.url; + } + + //See if there was any forced reset of data. + if(this.data != null && this._jsonData == null){ + this._jsonData = this.data; + this.data = null; + } + + if(this._jsonFileUrl){ + //If fetches come in before the loading has finished, but while + //a load is in progress, we have to defer the fetching to be + //invoked in the callback. + if(this._loadInProgress){ + this._queuedFetches.push({args: keywordArgs, filter: filter}); + }else{ + this._loadInProgress = true; + var getArgs = { + url: self._jsonFileUrl, + handleAs: "json-comment-optional", + preventCache: this.urlPreventCache, + failOk: this.failOk + }; + var getHandler = dojo.xhrGet(getArgs); + getHandler.addCallback(function(data){ + try{ + self._getItemsFromLoadedData(data); + self._loadFinished = true; + self._loadInProgress = false; + + filter(keywordArgs, self._getItemsArray(keywordArgs.queryOptions)); + self._handleQueuedFetches(); + }catch(e){ + self._loadFinished = true; + self._loadInProgress = false; + errorCallback(e, keywordArgs); + } + }); + getHandler.addErrback(function(error){ + self._loadInProgress = false; + errorCallback(error, keywordArgs); + }); + + //Wire up the cancel to abort of the request + //This call cancel on the deferred if it hasn't been called + //yet and then will chain to the simple abort of the + //simpleFetch keywordArgs + var oldAbort = null; + if(keywordArgs.abort){ + oldAbort = keywordArgs.abort; + } + keywordArgs.abort = function(){ + var df = getHandler; + if(df && df.fired === -1){ + df.cancel(); + df = null; + } + if(oldAbort){ + oldAbort.call(keywordArgs); + } + }; + } + }else if(this._jsonData){ + try{ + this._loadFinished = true; + this._getItemsFromLoadedData(this._jsonData); + this._jsonData = null; + filter(keywordArgs, this._getItemsArray(keywordArgs.queryOptions)); + }catch(e){ + errorCallback(e, keywordArgs); + } + }else{ + errorCallback(new Error("dojo.data.ItemFileReadStore: No JSON source data was provided as either URL or a nested Javascript object."), keywordArgs); + } + } + }, + + _handleQueuedFetches: function(){ + // summary: + // Internal function to execute delayed request in the store. + //Execute any deferred fetches now. + if(this._queuedFetches.length > 0){ + for(var i = 0; i < this._queuedFetches.length; i++){ + var fData = this._queuedFetches[i], + delayedQuery = fData.args, + delayedFilter = fData.filter; + if(delayedFilter){ + delayedFilter(delayedQuery, this._getItemsArray(delayedQuery.queryOptions)); + }else{ + this.fetchItemByIdentity(delayedQuery); + } + } + this._queuedFetches = []; + } + }, + + _getItemsArray: function(/*object?*/queryOptions){ + // summary: + // Internal function to determine which list of items to search over. + // queryOptions: The query options parameter, if any. + if(queryOptions && queryOptions.deep){ + return this._arrayOfAllItems; + } + return this._arrayOfTopLevelItems; + }, + + close: function(/*dojo.data.api.Request || keywordArgs || null */ request){ + // summary: + // See dojo.data.api.Read.close() + if(this.clearOnClose && + this._loadFinished && + !this._loadInProgress){ + //Reset all internalsback to default state. This will force a reload + //on next fetch. This also checks that the data or url param was set + //so that the store knows it can get data. Without one of those being set, + //the next fetch will trigger an error. + + if(((this._jsonFileUrl == "" || this._jsonFileUrl == null) && + (this.url == "" || this.url == null) + ) && this.data == null){ + console.debug("dojo.data.ItemFileReadStore: WARNING! Data reload " + + " information has not been provided." + + " Please set 'url' or 'data' to the appropriate value before" + + " the next fetch"); + } + this._arrayOfAllItems = []; + this._arrayOfTopLevelItems = []; + this._loadFinished = false; + this._itemsByIdentity = null; + this._loadInProgress = false; + this._queuedFetches = []; + } + }, + + _getItemsFromLoadedData: function(/* Object */ dataObject){ + // summary: + // Function to parse the loaded data into item format and build the internal items array. + // description: + // Function to parse the loaded data into item format and build the internal items array. + // + // dataObject: + // The JS data object containing the raw data to convery into item format. + // + // returns: array + // Array of items in store item format. + + // First, we define a couple little utility functions... + var addingArrays = false, + self = this; + + function valueIsAnItem(/* anything */ aValue){ + // summary: + // Given any sort of value that could be in the raw json data, + // return true if we should interpret the value as being an + // item itself, rather than a literal value or a reference. + // example: + // | false == valueIsAnItem("Kermit"); + // | false == valueIsAnItem(42); + // | false == valueIsAnItem(new Date()); + // | false == valueIsAnItem({_type:'Date', _value:'May 14, 1802'}); + // | false == valueIsAnItem({_reference:'Kermit'}); + // | true == valueIsAnItem({name:'Kermit', color:'green'}); + // | true == valueIsAnItem({iggy:'pop'}); + // | true == valueIsAnItem({foo:42}); + var isItem = ( + (aValue !== null) && + (typeof aValue === "object") && + (!dojo.isArray(aValue) || addingArrays) && + (!dojo.isFunction(aValue)) && + (aValue.constructor == Object || dojo.isArray(aValue)) && + (typeof aValue._reference === "undefined") && + (typeof aValue._type === "undefined") && + (typeof aValue._value === "undefined") && + self.hierarchical + ); + return isItem; + } + + function addItemAndSubItemsToArrayOfAllItems(/* Item */ anItem){ + self._arrayOfAllItems.push(anItem); + for(var attribute in anItem){ + var valueForAttribute = anItem[attribute]; + if(valueForAttribute){ + if(dojo.isArray(valueForAttribute)){ + var valueArray = valueForAttribute; + for(var k = 0; k < valueArray.length; ++k){ + var singleValue = valueArray[k]; + if(valueIsAnItem(singleValue)){ + addItemAndSubItemsToArrayOfAllItems(singleValue); + } + } + }else{ + if(valueIsAnItem(valueForAttribute)){ + addItemAndSubItemsToArrayOfAllItems(valueForAttribute); + } + } + } + } + } + + this._labelAttr = dataObject.label; + + // We need to do some transformations to convert the data structure + // that we read from the file into a format that will be convenient + // to work with in memory. + + // Step 1: Walk through the object hierarchy and build a list of all items + var i, + item; + this._arrayOfAllItems = []; + this._arrayOfTopLevelItems = dataObject.items; + + for(i = 0; i < this._arrayOfTopLevelItems.length; ++i){ + item = this._arrayOfTopLevelItems[i]; + if(dojo.isArray(item)){ + addingArrays = true; + } + addItemAndSubItemsToArrayOfAllItems(item); + item[this._rootItemPropName]=true; + } + + // Step 2: Walk through all the attribute values of all the items, + // and replace single values with arrays. For example, we change this: + // { name:'Miss Piggy', pets:'Foo-Foo'} + // into this: + // { name:['Miss Piggy'], pets:['Foo-Foo']} + // + // We also store the attribute names so we can validate our store + // reference and item id special properties for the O(1) isItem + var allAttributeNames = {}, + key; + + for(i = 0; i < this._arrayOfAllItems.length; ++i){ + item = this._arrayOfAllItems[i]; + for(key in item){ + if(key !== this._rootItemPropName){ + var value = item[key]; + if(value !== null){ + if(!dojo.isArray(value)){ + item[key] = [value]; + } + }else{ + item[key] = [null]; + } + } + allAttributeNames[key]=key; + } + } + + // Step 3: Build unique property names to use for the _storeRefPropName and _itemNumPropName + // This should go really fast, it will generally never even run the loop. + while(allAttributeNames[this._storeRefPropName]){ + this._storeRefPropName += "_"; + } + while(allAttributeNames[this._itemNumPropName]){ + this._itemNumPropName += "_"; + } + while(allAttributeNames[this._reverseRefMap]){ + this._reverseRefMap += "_"; + } + + // Step 4: Some data files specify an optional 'identifier', which is + // the name of an attribute that holds the identity of each item. + // If this data file specified an identifier attribute, then build a + // hash table of items keyed by the identity of the items. + var arrayOfValues; + + var identifier = dataObject.identifier; + if(identifier){ + this._itemsByIdentity = {}; + this._features['dojo.data.api.Identity'] = identifier; + for(i = 0; i < this._arrayOfAllItems.length; ++i){ + item = this._arrayOfAllItems[i]; + arrayOfValues = item[identifier]; + var identity = arrayOfValues[0]; + if(!this._itemsByIdentity[identity]){ + this._itemsByIdentity[identity] = item; + }else{ + if(this._jsonFileUrl){ + throw new Error("dojo.data.ItemFileReadStore: The json data as specified by: [" + this._jsonFileUrl + "] is malformed. Items within the list have identifier: [" + identifier + "]. Value collided: [" + identity + "]"); + }else if(this._jsonData){ + throw new Error("dojo.data.ItemFileReadStore: The json data provided by the creation arguments is malformed. Items within the list have identifier: [" + identifier + "]. Value collided: [" + identity + "]"); + } + } + } + }else{ + this._features['dojo.data.api.Identity'] = Number; + } + + // Step 5: Walk through all the items, and set each item's properties + // for _storeRefPropName and _itemNumPropName, so that store.isItem() will return true. + for(i = 0; i < this._arrayOfAllItems.length; ++i){ + item = this._arrayOfAllItems[i]; + item[this._storeRefPropName] = this; + item[this._itemNumPropName] = i; + } + + // Step 6: We walk through all the attribute values of all the items, + // looking for type/value literals and item-references. + // + // We replace item-references with pointers to items. For example, we change: + // { name:['Kermit'], friends:[{_reference:{name:'Miss Piggy'}}] } + // into this: + // { name:['Kermit'], friends:[miss_piggy] } + // (where miss_piggy is the object representing the 'Miss Piggy' item). + // + // We replace type/value pairs with typed-literals. For example, we change: + // { name:['Nelson Mandela'], born:[{_type:'Date', _value:'July 18, 1918'}] } + // into this: + // { name:['Kermit'], born:(new Date('July 18, 1918')) } + // + // We also generate the associate map for all items for the O(1) isItem function. + for(i = 0; i < this._arrayOfAllItems.length; ++i){ + item = this._arrayOfAllItems[i]; // example: { name:['Kermit'], friends:[{_reference:{name:'Miss Piggy'}}] } + for(key in item){ + arrayOfValues = item[key]; // example: [{_reference:{name:'Miss Piggy'}}] + for(var j = 0; j < arrayOfValues.length; ++j){ + value = arrayOfValues[j]; // example: {_reference:{name:'Miss Piggy'}} + if(value !== null && typeof value == "object"){ + if(("_type" in value) && ("_value" in value)){ + var type = value._type; // examples: 'Date', 'Color', or 'ComplexNumber' + var mappingObj = this._datatypeMap[type]; // examples: Date, dojo.Color, foo.math.ComplexNumber, {type: dojo.Color, deserialize(value){ return new dojo.Color(value)}} + if(!mappingObj){ + throw new Error("dojo.data.ItemFileReadStore: in the typeMap constructor arg, no object class was specified for the datatype '" + type + "'"); + }else if(dojo.isFunction(mappingObj)){ + arrayOfValues[j] = new mappingObj(value._value); + }else if(dojo.isFunction(mappingObj.deserialize)){ + arrayOfValues[j] = mappingObj.deserialize(value._value); + }else{ + throw new Error("dojo.data.ItemFileReadStore: Value provided in typeMap was neither a constructor, nor a an object with a deserialize function"); + } + } + if(value._reference){ + var referenceDescription = value._reference; // example: {name:'Miss Piggy'} + if(!dojo.isObject(referenceDescription)){ + // example: 'Miss Piggy' + // from an item like: { name:['Kermit'], friends:[{_reference:'Miss Piggy'}]} + arrayOfValues[j] = this._getItemByIdentity(referenceDescription); + }else{ + // example: {name:'Miss Piggy'} + // from an item like: { name:['Kermit'], friends:[{_reference:{name:'Miss Piggy'}}] } + for(var k = 0; k < this._arrayOfAllItems.length; ++k){ + var candidateItem = this._arrayOfAllItems[k], + found = true; + for(var refKey in referenceDescription){ + if(candidateItem[refKey] != referenceDescription[refKey]){ + found = false; + } + } + if(found){ + arrayOfValues[j] = candidateItem; + } + } + } + if(this.referenceIntegrity){ + var refItem = arrayOfValues[j]; + if(this.isItem(refItem)){ + this._addReferenceToMap(refItem, item, key); + } + } + }else if(this.isItem(value)){ + //It's a child item (not one referenced through _reference). + //We need to treat this as a referenced item, so it can be cleaned up + //in a write store easily. + if(this.referenceIntegrity){ + this._addReferenceToMap(value, item, key); + } + } + } + } + } + } + }, + + _addReferenceToMap: function(/*item*/ refItem, /*item*/ parentItem, /*string*/ attribute){ + // summary: + // Method to add an reference map entry for an item and attribute. + // description: + // Method to add an reference map entry for an item and attribute. // + // refItem: + // The item that is referenced. + // parentItem: + // The item that holds the new reference to refItem. + // attribute: + // The attribute on parentItem that contains the new reference. + + //Stub function, does nothing. Real processing is in ItemFileWriteStore. + }, + + getIdentity: function(/* item */ item){ + // summary: + // See dojo.data.api.Identity.getIdentity() + var identifier = this._features['dojo.data.api.Identity']; + if(identifier === Number){ + return item[this._itemNumPropName]; // Number + }else{ + var arrayOfValues = item[identifier]; + if(arrayOfValues){ + return arrayOfValues[0]; // Object || String + } + } + return null; // null + }, + + fetchItemByIdentity: function(/* Object */ keywordArgs){ + // summary: + // See dojo.data.api.Identity.fetchItemByIdentity() + + // Hasn't loaded yet, we have to trigger the load. + var item, + scope; + if(!this._loadFinished){ + var self = this; + //Do a check on the JsonFileUrl and crosscheck it. + //If it doesn't match the cross-check, it needs to be updated + //This allows for either url or _jsonFileUrl to he changed to + //reset the store load location. Done this way for backwards + //compatibility. People use _jsonFileUrl (even though officially + //private. + if(this._jsonFileUrl !== this._ccUrl){ + dojo.deprecated("dojo.data.ItemFileReadStore: ", + "To change the url, set the url property of the store," + + " not _jsonFileUrl. _jsonFileUrl support will be removed in 2.0"); + this._ccUrl = this._jsonFileUrl; + this.url = this._jsonFileUrl; + }else if(this.url !== this._ccUrl){ + this._jsonFileUrl = this.url; + this._ccUrl = this.url; + } + + //See if there was any forced reset of data. + if(this.data != null && this._jsonData == null){ + this._jsonData = this.data; + this.data = null; + } + + if(this._jsonFileUrl){ + + if(this._loadInProgress){ + this._queuedFetches.push({args: keywordArgs}); + }else{ + this._loadInProgress = true; + var getArgs = { + url: self._jsonFileUrl, + handleAs: "json-comment-optional", + preventCache: this.urlPreventCache, + failOk: this.failOk + }; + var getHandler = dojo.xhrGet(getArgs); + getHandler.addCallback(function(data){ + var scope = keywordArgs.scope?keywordArgs.scope:dojo.global; + try{ + self._getItemsFromLoadedData(data); + self._loadFinished = true; + self._loadInProgress = false; + item = self._getItemByIdentity(keywordArgs.identity); + if(keywordArgs.onItem){ + keywordArgs.onItem.call(scope, item); + } + self._handleQueuedFetches(); + }catch(error){ + self._loadInProgress = false; + if(keywordArgs.onError){ + keywordArgs.onError.call(scope, error); + } + } + }); + getHandler.addErrback(function(error){ + self._loadInProgress = false; + if(keywordArgs.onError){ + var scope = keywordArgs.scope?keywordArgs.scope:dojo.global; + keywordArgs.onError.call(scope, error); + } + }); + } + + }else if(this._jsonData){ + // Passed in data, no need to xhr. + self._getItemsFromLoadedData(self._jsonData); + self._jsonData = null; + self._loadFinished = true; + item = self._getItemByIdentity(keywordArgs.identity); + if(keywordArgs.onItem){ + scope = keywordArgs.scope?keywordArgs.scope:dojo.global; + keywordArgs.onItem.call(scope, item); + } + } + }else{ + // Already loaded. We can just look it up and call back. + item = this._getItemByIdentity(keywordArgs.identity); + if(keywordArgs.onItem){ + scope = keywordArgs.scope?keywordArgs.scope:dojo.global; + keywordArgs.onItem.call(scope, item); + } + } + }, + + _getItemByIdentity: function(/* Object */ identity){ + // summary: + // Internal function to look an item up by its identity map. + var item = null; + if(this._itemsByIdentity){ + item = this._itemsByIdentity[identity]; + }else{ + item = this._arrayOfAllItems[identity]; + } + if(item === undefined){ + item = null; + } + return item; // Object + }, + + getIdentityAttributes: function(/* item */ item){ + // summary: + // See dojo.data.api.Identity.getIdentifierAttributes() + + var identifier = this._features['dojo.data.api.Identity']; + if(identifier === Number){ + // If (identifier === Number) it means getIdentity() just returns + // an integer item-number for each item. The dojo.data.api.Identity + // spec says we need to return null if the identity is not composed + // of attributes + return null; // null + }else{ + return [identifier]; // Array + } + }, + + _forceLoad: function(){ + // summary: + // Internal function to force a load of the store if it hasn't occurred yet. This is required + // for specific functions to work properly. + var self = this; + //Do a check on the JsonFileUrl and crosscheck it. + //If it doesn't match the cross-check, it needs to be updated + //This allows for either url or _jsonFileUrl to he changed to + //reset the store load location. Done this way for backwards + //compatibility. People use _jsonFileUrl (even though officially + //private. + if(this._jsonFileUrl !== this._ccUrl){ + dojo.deprecated("dojo.data.ItemFileReadStore: ", + "To change the url, set the url property of the store," + + " not _jsonFileUrl. _jsonFileUrl support will be removed in 2.0"); + this._ccUrl = this._jsonFileUrl; + this.url = this._jsonFileUrl; + }else if(this.url !== this._ccUrl){ + this._jsonFileUrl = this.url; + this._ccUrl = this.url; + } + + //See if there was any forced reset of data. + if(this.data != null && this._jsonData == null){ + this._jsonData = this.data; + this.data = null; + } + + if(this._jsonFileUrl){ + var getArgs = { + url: this._jsonFileUrl, + handleAs: "json-comment-optional", + preventCache: this.urlPreventCache, + failOk: this.failOk, + sync: true + }; + var getHandler = dojo.xhrGet(getArgs); + getHandler.addCallback(function(data){ + try{ + //Check to be sure there wasn't another load going on concurrently + //So we don't clobber data that comes in on it. If there is a load going on + //then do not save this data. It will potentially clobber current data. + //We mainly wanted to sync/wait here. + //TODO: Revisit the loading scheme of this store to improve multi-initial + //request handling. + if(self._loadInProgress !== true && !self._loadFinished){ + self._getItemsFromLoadedData(data); + self._loadFinished = true; + }else if(self._loadInProgress){ + //Okay, we hit an error state we can't recover from. A forced load occurred + //while an async load was occurring. Since we cannot block at this point, the best + //that can be managed is to throw an error. + throw new Error("dojo.data.ItemFileReadStore: Unable to perform a synchronous load, an async load is in progress."); + } + }catch(e){ + console.log(e); + throw e; + } + }); + getHandler.addErrback(function(error){ + throw error; + }); + }else if(this._jsonData){ + self._getItemsFromLoadedData(self._jsonData); + self._jsonData = null; + self._loadFinished = true; + } + } +}); +//Mix in the simple fetch implementation to this class. +dojo.extend(dojo.data.ItemFileReadStore,dojo.data.util.simpleFetch); + +} + +if(!dojo._hasResource["dijit._editor.plugins.FontChoice"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit._editor.plugins.FontChoice"] = true; +dojo.provide("dijit._editor.plugins.FontChoice"); + + + + + + + + + + +dojo.declare("dijit._editor.plugins._FontDropDown", + [dijit._Widget, dijit._Templated],{ + // summary: + // Base class for widgets that contains a label (like "Font:") + // and a FilteringSelect drop down to pick a value. + // Used as Toolbar entry. + + // label: [public] String + // The label to apply to this particular FontDropDown. + label: "", + + // widgetsInTemplate: [public] boolean + // Over-ride denoting the template has widgets to parse. + widgetsInTemplate: true, + + // plainText: [public] boolean + // Flag to indicate that the returned label should be plain text + // instead of an example. + plainText: false, + + // templateString: [public] String + // The template used to construct the labeled dropdown. + templateString: + "<span style='white-space: nowrap' class='dijit dijitReset dijitInline'>" + + "<label class='dijitLeft dijitInline' for='${selectId}'>${label}</label>" + + "<input dojoType='dijit.form.FilteringSelect' required=false labelType=html labelAttr=label searchAttr=name " + + "tabIndex='-1' id='${selectId}' dojoAttachPoint='select' value=''/>" + + "</span>", + + postMixInProperties: function(){ + // summary: + // Over-ride to misin specific properties. + this.inherited(arguments); + + this.strings = dojo.i18n.getLocalization("dijit._editor", "FontChoice"); + + // Set some substitution variables used in the template + this.label = this.strings[this.command]; + this.id = dijit.getUniqueId(this.declaredClass.replace(/\./g,"_")); + this.selectId = this.id + "_select"; + + this.inherited(arguments); + }, + + postCreate: function(){ + // summary: + // Over-ride for the default postCreate action + // This establishes the filtering selects and the like. + + // Initialize the list of items in the drop down by creating data store with items like: + // {value: 1, name: "xx-small", label: "<font size=1>xx-small</font-size>" } + var items = dojo.map(this.values, function(value){ + var name = this.strings[value] || value; + return { + label: this.getLabel(value, name), + name: name, + value: value + }; + }, this); + + this.select.store = new dojo.data.ItemFileReadStore({ + data: { + identifier: "value", + items: items + } + }); + + this.select.set("value", "", false); + this.disabled = this.select.get("disabled"); + }, + + _setValueAttr: function(value, priorityChange){ + // summary: + // Over-ride for the default action of setting the + // widget value, maps the input to known values + // value: Object|String + // The value to set in the select. + // priorityChange: + // Optional parameter used to tell the select whether or not to fire + // onChange event. + + //if the value is not a permitted value, just set empty string to prevent showing the warning icon + priorityChange = priorityChange !== false?true:false; + this.select.set('value', dojo.indexOf(this.values,value) < 0 ? "" : value, priorityChange); + if(!priorityChange){ + // Clear the last state in case of updateState calls. Ref: #10466 + this.select._lastValueReported=null; + } + }, + + _getValueAttr: function(){ + // summary: + // Allow retreiving the value from the composite select on + // call to button.get("value"); + return this.select.get('value'); + }, + + focus: function(){ + // summary: + // Over-ride for focus control of this widget. Delegates focus down to the + // filtering select. + this.select.focus(); + }, + + _setDisabledAttr: function(value){ + // summary: + // Over-ride for the button's 'disabled' attribute so that it can be + // disabled programmatically. + + // Save off ths disabled state so the get retrieves it correctly + //without needing to have a function proxy it. + this.disabled = value; + this.select.set("disabled", value); + } +}); + + +dojo.declare("dijit._editor.plugins._FontNameDropDown", dijit._editor.plugins._FontDropDown, { + // summary: + // Dropdown to select a font; goes in editor toolbar. + + // generic: Boolean + // Use generic (web standard) font names + generic: false, + + // command: [public] String + // The editor 'command' implemented by this plugin. + command: "fontName", + + postMixInProperties: function(){ + // summary: + // Over-ride for the default posr mixin control + if(!this.values){ + this.values = this.generic ? + ["serif", "sans-serif", "monospace", "cursive", "fantasy"] : // CSS font-family generics + ["Arial", "Times New Roman", "Comic Sans MS", "Courier New"]; + } + this.inherited(arguments); + }, + + getLabel: function(value, name){ + // summary: + // Function used to generate the labels of the format dropdown + // will return a formatted, or plain label based on the value + // of the plainText option. + // value: String + // The 'insert value' associated with a name + // name: String + // The text name of the value + if(this.plainText){ + return name; + }else{ + return "<div style='font-family: "+value+"'>" + name + "</div>"; + } + }, + + _setValueAttr: function(value, priorityChange){ + // summary: + // Over-ride for the default action of setting the + // widget value, maps the input to known values + + priorityChange = priorityChange !== false?true:false; + if(this.generic){ + var map = { + "Arial": "sans-serif", + "Helvetica": "sans-serif", + "Myriad": "sans-serif", + "Times": "serif", + "Times New Roman": "serif", + "Comic Sans MS": "cursive", + "Apple Chancery": "cursive", + "Courier": "monospace", + "Courier New": "monospace", + "Papyrus": "fantasy" +// ,"????": "fantasy" TODO: IE doesn't map fantasy font-family? + }; + value = map[value] || value; + } + this.inherited(arguments, [value, priorityChange]); + } +}); + +dojo.declare("dijit._editor.plugins._FontSizeDropDown", dijit._editor.plugins._FontDropDown, { + // summary: + // Dropdown to select a font size; goes in editor toolbar. + + // command: [public] String + // The editor 'command' implemented by this plugin. + command: "fontSize", + + // values: [public] Number[] + // The HTML font size values supported by this plugin + values: [1,2,3,4,5,6,7], // sizes according to the old HTML FONT SIZE + + getLabel: function(value, name){ + // summary: + // Function used to generate the labels of the format dropdown + // will return a formatted, or plain label based on the value + // of the plainText option. + // We're stuck using the deprecated FONT tag to correspond + // with the size measurements used by the editor + // value: String + // The 'insert value' associated with a name + // name: String + // The text name of the value + if(this.plainText){ + return name; + }else{ + return "<font size=" + value + "'>" + name + "</font>"; + } + }, + + _setValueAttr: function(value, priorityChange){ + // summary: + // Over-ride for the default action of setting the + // widget value, maps the input to known values + priorityChange = priorityChange !== false?true:false; + if(value.indexOf && value.indexOf("px") != -1){ + var pixels = parseInt(value, 10); + value = {10:1, 13:2, 16:3, 18:4, 24:5, 32:6, 48:7}[pixels] || value; + } + + this.inherited(arguments, [value, priorityChange]); + } +}); + + +dojo.declare("dijit._editor.plugins._FormatBlockDropDown", dijit._editor.plugins._FontDropDown, { + // summary: + // Dropdown to select a format (like paragraph or heading); goes in editor toolbar. + + // command: [public] String + // The editor 'command' implemented by this plugin. + command: "formatBlock", + + // values: [public] Array + // The HTML format tags supported by this plugin + values: ["noFormat", "p", "h1", "h2", "h3", "pre"], + + postCreate: function(){ + // Init and set the default value to no formatting. Update state will adjust it + // as needed. + this.inherited(arguments); + this.set("value", "noFormat", false); + }, + + getLabel: function(value, name){ + // summary: + // Function used to generate the labels of the format dropdown + // will return a formatted, or plain label based on the value + // of the plainText option. + // value: String + // The 'insert value' associated with a name + // name: String + // The text name of the value + if(this.plainText){ + return name; + }else{ + return "<" + value + ">" + name + "</" + value + ">"; + } + }, + + _execCommand: function(editor, command, choice){ + // summary: + // Over-ride for default exec-command label. + // Allows us to treat 'none' as special. + if(choice === "noFormat"){ + var start; + var end; + var sel = dijit.range.getSelection(editor.window); + if(sel && sel.rangeCount > 0){ + var range = sel.getRangeAt(0); + var node, tag; + if(range){ + start = range.startContainer; + end = range.endContainer; + + // find containing nodes of start/end. + while(start && start !== editor.editNode && + start !== editor.document.body && + start.nodeType !== 1){ + start = start.parentNode; + } + + while(end && end !== editor.editNode && + end !== editor.document.body && + end.nodeType !== 1){ + end = end.parentNode; + } + + var processChildren = dojo.hitch(this, function(node, array){ + if(node.childNodes && node.childNodes.length){ + var i; + for(i = 0; i < node.childNodes.length; i++){ + var c = node.childNodes[i]; + if(c.nodeType == 1){ + if(dojo.withGlobal(editor.window, "inSelection", dijit._editor.selection, [c])){ + var tag = c.tagName? c.tagName.toLowerCase(): ""; + if(dojo.indexOf(this.values, tag) !== -1){ + array.push(c); + } + processChildren(c,array); + } + } + } + } + }); + + var unformatNodes = dojo.hitch(this, function(nodes){ + // summary: + // Internal function to clear format nodes. + // nodes: + // The array of nodes to strip formatting from. + if(nodes && nodes.length){ + editor.beginEditing(); + while(nodes.length){ + this._removeFormat(editor, nodes.pop()); + } + editor.endEditing(); + } + }); + + var clearNodes = []; + if(start == end){ + //Contained within the same block, may be collapsed, but who cares, see if we + // have a block element to remove. + var block; + node = start; + while(node && node !== editor.editNode && node !== editor.document.body){ + if(node.nodeType == 1){ + tag = node.tagName? node.tagName.toLowerCase(): ""; + if(dojo.indexOf(this.values, tag) !== -1){ + block = node; + break; + } + } + node = node.parentNode; + } + + //Also look for all child nodes in the selection that may need to be + //cleared of formatting + processChildren(start, clearNodes); + if(block) { clearNodes = [block].concat(clearNodes); } + unformatNodes(clearNodes); + }else{ + // Probably a multi select, so we have to process it. Whee. + node = start; + while(dojo.withGlobal(editor.window, "inSelection", dijit._editor.selection, [node])){ + if(node.nodeType == 1){ + tag = node.tagName? node.tagName.toLowerCase(): ""; + if(dojo.indexOf(this.values, tag) !== -1){ + clearNodes.push(node); + } + processChildren(node,clearNodes); + } + node = node.nextSibling; + } + unformatNodes(clearNodes); + } + editor.onDisplayChanged(); + } + } + }else{ + editor.execCommand(command, choice); + } + }, + + _removeFormat: function(editor, node){ + // summary: + // function to remove the block format node. + // node: + // The block format node to remove (and leave the contents behind) + if(editor.customUndo){ + // So of course IE doesn't work right with paste-overs. + // We have to do this manually, which is okay since IE already uses + // customUndo and we turned it on for WebKit. WebKit pasted funny, + // so couldn't use the execCommand approach + while(node.firstChild){ + dojo.place(node.firstChild, node, "before"); + } + node.parentNode.removeChild(node); + }else{ + // Everyone else works fine this way, a paste-over and is native + // undo friendly. + dojo.withGlobal(editor.window, + "selectElementChildren", dijit._editor.selection, [node]); + var html = dojo.withGlobal(editor.window, + "getSelectedHtml", dijit._editor.selection, [null]); + dojo.withGlobal(editor.window, + "selectElement", dijit._editor.selection, [node]); + editor.execCommand("inserthtml", html||""); + } + } +}); + +// TODO: for 2.0, split into FontChoice plugin into three separate classes, +// one for each command (and change registry below) +dojo.declare("dijit._editor.plugins.FontChoice", dijit._editor._Plugin,{ + // summary: + // This plugin provides three drop downs for setting style in the editor + // (font, font size, and format block), as controlled by command. + // + // description: + // The commands provided by this plugin are: + // + // * fontName + // | Provides a drop down to select from a list of font names + // * fontSize + // | Provides a drop down to select from a list of font sizes + // * formatBlock + // | Provides a drop down to select from a list of block styles + // | + // + // which can easily be added to an editor by including one or more of the above commands + // in the `plugins` attribute as follows: + // + // | plugins="['fontName','fontSize',...]" + // + // It is possible to override the default dropdown list by providing an Array for the `custom` property when + // instantiating this plugin, e.g. + // + // | plugins="[{name:'dijit._editor.plugins.FontChoice', command:'fontName', custom:['Verdana','Myriad','Garamond']},...]" + // + // Alternatively, for `fontName` only, `generic:true` may be specified to provide a dropdown with + // [CSS generic font families](http://www.w3.org/TR/REC-CSS2/fonts.html#generic-font-families) + // + // Note that the editor is often unable to properly handle font styling information defined outside + // the context of the current editor instance, such as pre-populated HTML. + + // useDefaultCommand: [protected] booleam + // Override _Plugin.useDefaultCommand... + // processing is handled by this plugin, not by dijit.Editor. + useDefaultCommand: false, + + _initButton: function(){ + // summary: + // Overrides _Plugin._initButton(), to initialize the FilteringSelect+label in toolbar, + // rather than a simple button. + // tags: + // protected + + // Create the widget to go into the toolbar (the so-called "button") + var clazz = { + fontName: dijit._editor.plugins._FontNameDropDown, + fontSize: dijit._editor.plugins._FontSizeDropDown, + formatBlock: dijit._editor.plugins._FormatBlockDropDown + }[this.command], + params = this.params; + + // For back-compat reasons support setting custom values via "custom" parameter + // rather than "values" parameter + if(this.params.custom){ + params.values = this.params.custom; + } + + var editor = this.editor; + this.button = new clazz(dojo.delegate({dir: editor.dir, lang: editor.lang}, params)); + + // Reflect changes to the drop down in the editor + this.connect(this.button.select, "onChange", function(choice){ + // User invoked change, since all internal updates set priorityChange to false and will + // not trigger an onChange event. + this.editor.focus(); + + if(this.command == "fontName" && choice.indexOf(" ") != -1){ choice = "'" + choice + "'"; } + + // Invoke, the editor already normalizes commands called through its + // execCommand. + if(this.button._execCommand){ + this.button._execCommand(this.editor, this.command, choice); + }else{ + this.editor.execCommand(this.command, choice); + } + + // Enable custom undo for webkit, needed for noFormat to work properly + // and still undo. + this.editor.customUndo = this.editor.customUndo || dojo.isWebKit; + }); + }, + + updateState: function(){ + // summary: + // Overrides _Plugin.updateState(). This controls updating the menu + // options to the right values on state changes in the document (that trigger a + // test of the actions.) + // It set value of drop down in toolbar to reflect font/font size/format block + // of text at current caret position. + // tags: + // protected + var _e = this.editor; + var _c = this.command; + if(!_e || !_e.isLoaded || !_c.length){ return; } + if(this.button){ + var value; + try{ + value = _e.queryCommandValue(_c) || ""; + }catch(e){ + //Firefox may throw error above if the editor is just loaded, ignore it + value = ""; + } + + // strip off single quotes, if any + var quoted = dojo.isString(value) && value.match(/'([^']*)'/); + if(quoted){ value = quoted[1]; } + + if(_c === "formatBlock"){ + if(!value || value == "p"){ + // Some browsers (WebKit) doesn't actually get the tag info right. + // and IE returns paragraph when in a DIV!, so incorrect a lot, + // so we have double-check it. + value = null; + var elem; + // Try to find the current element where the caret is. + var sel = dijit.range.getSelection(this.editor.window); + if(sel && sel.rangeCount > 0){ + var range = sel.getRangeAt(0); + if(range){ + elem = range.endContainer; + } + } + + // Okay, now see if we can find one of the formatting types we're in. + while(elem && elem !== _e.editNode && elem !== _e.document){ + var tg = elem.tagName?elem.tagName.toLowerCase():""; + if(tg && dojo.indexOf(this.button.values, tg) > -1){ + value = tg; + break; + } + elem = elem.parentNode; + } + if(!value){ + // Still no value, so lets select 'none'. + value = "noFormat"; + } + }else{ + // Check that the block format is one allowed, if not, + // null it so that it gets set to empty. + if(dojo.indexOf(this.button.values, value) < 0){ + value = "noFormat"; + } + } + } + if(value !== this.button.get("value")){ + // Set the value, but denote it is not a priority change, so no + // onchange fires. + this.button.set('value', value, false); + } + } + } +}); + +// Register this plugin. +dojo.subscribe(dijit._scopeName + ".Editor.getPlugin",null,function(o){ + if(o.plugin){ return; } + switch(o.args.name){ + case "fontName": case "fontSize": case "formatBlock": + o.plugin = new dijit._editor.plugins.FontChoice({ + command: o.args.name, + plainText: o.args.plainText?o.args.plainText:false + }); + } +}); + +} + +if(!dojo._hasResource["dijit.form._FormSelectWidget"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.form._FormSelectWidget"] = true; +dojo.provide("dijit.form._FormSelectWidget"); + + + + +/*===== +dijit.form.__SelectOption = function(){ + // value: String + // The value of the option. Setting to empty (or missing) will + // place a separator at that location + // label: String + // The label for our option. It can contain html tags. + // selected: Boolean + // Whether or not we are a selected option + // disabled: Boolean + // Whether or not this specific option is disabled + this.value = value; + this.label = label; + this.selected = selected; + this.disabled = disabled; +} +=====*/ + +dojo.declare("dijit.form._FormSelectWidget", dijit.form._FormValueWidget, { + // summary: + // Extends _FormValueWidget in order to provide "select-specific" + // values - i.e., those values that are unique to <select> elements. + // This also provides the mechanism for reading the elements from + // a store, if desired. + + // multiple: Boolean + // Whether or not we are multi-valued + multiple: false, + + // options: dijit.form.__SelectOption[] + // The set of options for our select item. Roughly corresponds to + // the html <option> tag. + options: null, + + // store: dojo.data.api.Identity + // A store which, at the very least impelements dojo.data.api.Identity + // to use for getting our list of options - rather than reading them + // from the <option> html tags. + store: null, + + // query: object + // A query to use when fetching items from our store + query: null, + + // queryOptions: object + // Query options to use when fetching from the store + queryOptions: null, + + // onFetch: Function + // A callback to do with an onFetch - but before any items are actually + // iterated over (i.e. to filter even futher what you want to add) + onFetch: null, + + // sortByLabel: boolean + // Flag to sort the options returned from a store by the label of + // the store. + sortByLabel: true, + + + // loadChildrenOnOpen: boolean + // By default loadChildren is called when the items are fetched from the + // store. This property allows delaying loadChildren (and the creation + // of the options/menuitems) until the user opens the click the button. + // dropdown + loadChildrenOnOpen: false, + + getOptions: function(/* anything */ valueOrIdx){ + // summary: + // Returns a given option (or options). + // valueOrIdx: + // If passed in as a string, that string is used to look up the option + // in the array of options - based on the value property. + // (See dijit.form.__SelectOption). + // + // If passed in a number, then the option with the given index (0-based) + // within this select will be returned. + // + // If passed in a dijit.form.__SelectOption, the same option will be + // returned if and only if it exists within this select. + // + // If passed an array, then an array will be returned with each element + // in the array being looked up. + // + // If not passed a value, then all options will be returned + // + // returns: + // The option corresponding with the given value or index. null + // is returned if any of the following are true: + // - A string value is passed in which doesn't exist + // - An index is passed in which is outside the bounds of the array of options + // - A dijit.form.__SelectOption is passed in which is not a part of the select + + // NOTE: the compare for passing in a dijit.form.__SelectOption checks + // if the value property matches - NOT if the exact option exists + // NOTE: if passing in an array, null elements will be placed in the returned + // array when a value is not found. + var lookupValue = valueOrIdx, opts = this.options || [], l = opts.length; + + if(lookupValue === undefined){ + return opts; // dijit.form.__SelectOption[] + } + if(dojo.isArray(lookupValue)){ + return dojo.map(lookupValue, "return this.getOptions(item);", this); // dijit.form.__SelectOption[] + } + if(dojo.isObject(valueOrIdx)){ + // We were passed an option - so see if it's in our array (directly), + // and if it's not, try and find it by value. + if(!dojo.some(this.options, function(o, idx){ + if(o === lookupValue || + (o.value && o.value === lookupValue.value)){ + lookupValue = idx; + return true; + } + return false; + })){ + lookupValue = -1; + } + } + if(typeof lookupValue == "string"){ + for(var i=0; i<l; i++){ + if(opts[i].value === lookupValue){ + lookupValue = i; + break; + } + } + } + if(typeof lookupValue == "number" && lookupValue >= 0 && lookupValue < l){ + return this.options[lookupValue] // dijit.form.__SelectOption + } + return null; // null + }, + + addOption: function(/* dijit.form.__SelectOption, dijit.form.__SelectOption[] */ option){ + // summary: + // Adds an option or options to the end of the select. If value + // of the option is empty or missing, a separator is created instead. + // Passing in an array of options will yield slightly better performance + // since the children are only loaded once. + if(!dojo.isArray(option)){ option = [option]; } + dojo.forEach(option, function(i){ + if(i && dojo.isObject(i)){ + this.options.push(i); + } + }, this); + this._loadChildren(); + }, + + removeOption: function(/* string, dijit.form.__SelectOption, number, or array */ valueOrIdx){ + // summary: + // Removes the given option or options. You can remove by string + // (in which case the value is removed), number (in which case the + // index in the options array is removed), or select option (in + // which case, the select option with a matching value is removed). + // You can also pass in an array of those values for a slightly + // better performance since the children are only loaded once. + if(!dojo.isArray(valueOrIdx)){ valueOrIdx = [valueOrIdx]; } + var oldOpts = this.getOptions(valueOrIdx); + dojo.forEach(oldOpts, function(i){ + // We can get null back in our array - if our option was not found. In + // that case, we don't want to blow up... + if(i){ + this.options = dojo.filter(this.options, function(node, idx){ + return (node.value !== i.value); + }); + this._removeOptionItem(i); + } + }, this); + this._loadChildren(); + }, + + updateOption: function(/* dijit.form.__SelectOption, dijit.form.__SelectOption[] */ newOption){ + // summary: + // Updates the values of the given option. The option to update + // is matched based on the value of the entered option. Passing + // in an array of new options will yeild better performance since + // the children will only be loaded once. + if(!dojo.isArray(newOption)){ newOption = [newOption]; } + dojo.forEach(newOption, function(i){ + var oldOpt = this.getOptions(i), k; + if(oldOpt){ + for(k in i){ oldOpt[k] = i[k]; } + } + }, this); + this._loadChildren(); + }, + + setStore: function(/* dojo.data.api.Identity */ store, + /* anything? */ selectedValue, + /* Object? */ fetchArgs){ + // summary: + // Sets the store you would like to use with this select widget. + // The selected value is the value of the new store to set. This + // function returns the original store, in case you want to reuse + // it or something. + // store: dojo.data.api.Identity + // The store you would like to use - it MUST implement Identity, + // and MAY implement Notification. + // selectedValue: anything? + // The value that this widget should set itself to *after* the store + // has been loaded + // fetchArgs: Object? + // The arguments that will be passed to the store's fetch() function + var oStore = this.store; + fetchArgs = fetchArgs || {}; + if(oStore !== store){ + // Our store has changed, so update our notifications + dojo.forEach(this._notifyConnections || [], dojo.disconnect); + delete this._notifyConnections; + if(store && store.getFeatures()["dojo.data.api.Notification"]){ + this._notifyConnections = [ + dojo.connect(store, "onNew", this, "_onNewItem"), + dojo.connect(store, "onDelete", this, "_onDeleteItem"), + dojo.connect(store, "onSet", this, "_onSetItem") + ]; + } + this.store = store; + } + + // Turn off change notifications while we make all these changes + this._onChangeActive = false; + + // Remove existing options (if there are any) + if(this.options && this.options.length){ + this.removeOption(this.options); + } + + // Add our new options + if(store){ + var cb = function(items){ + if(this.sortByLabel && !fetchArgs.sort && items.length){ + items.sort(dojo.data.util.sorter.createSortFunction([{ + attribute: store.getLabelAttributes(items[0])[0] + }], store)); + } + + if(fetchArgs.onFetch){ + items = fetchArgs.onFetch(items); + } + // TODO: Add these guys as a batch, instead of separately + dojo.forEach(items, function(i){ + this._addOptionForItem(i); + }, this); + + // Set our value (which might be undefined), and then tweak + // it to send a change event with the real value + this._loadingStore = false; + this.set("value", (("_pendingValue" in this) ? this._pendingValue : selectedValue)); + delete this._pendingValue; + + if(!this.loadChildrenOnOpen){ + this._loadChildren(); + }else{ + this._pseudoLoadChildren(items); + } + this._fetchedWith = opts; + this._lastValueReported = this.multiple ? [] : null; + this._onChangeActive = true; + this.onSetStore(); + this._handleOnChange(this.value); + }; + var opts = dojo.mixin({onComplete:cb, scope: this}, fetchArgs); + this._loadingStore = true; + store.fetch(opts); + }else{ + delete this._fetchedWith; + } + return oStore; // dojo.data.api.Identity + }, + + _setValueAttr: function(/*anything*/ newValue, /*Boolean, optional*/ priorityChange){ + // summary: + // set the value of the widget. + // If a string is passed, then we set our value from looking it up. + if(this._loadingStore){ + // Our store is loading - so save our value, and we'll set it when + // we're done + this._pendingValue = newValue; + return; + } + var opts = this.getOptions() || []; + if(!dojo.isArray(newValue)){ + newValue = [newValue]; + } + dojo.forEach(newValue, function(i, idx){ + if(!dojo.isObject(i)){ + i = i + ""; + } + if(typeof i === "string"){ + newValue[idx] = dojo.filter(opts, function(node){ + return node.value === i; + })[0] || {value: "", label: ""}; + } + }, this); + + // Make sure some sane default is set + newValue = dojo.filter(newValue, function(i){ return i && i.value; }); + if(!this.multiple && (!newValue[0] || !newValue[0].value) && opts.length){ + newValue[0] = opts[0]; + } + dojo.forEach(opts, function(i){ + i.selected = dojo.some(newValue, function(v){ return v.value === i.value; }); + }); + var val = dojo.map(newValue, function(i){ return i.value; }), + disp = dojo.map(newValue, function(i){ return i.label; }); + + this.value = this.multiple ? val : val[0]; + this._setDisplay(this.multiple ? disp : disp[0]); + this._updateSelection(); + this._handleOnChange(this.value, priorityChange); + }, + + _getDisplayedValueAttr: function(){ + // summary: + // returns the displayed value of the widget + var val = this.get("value"); + if(!dojo.isArray(val)){ + val = [val]; + } + var ret = dojo.map(this.getOptions(val), function(v){ + if(v && "label" in v){ + return v.label; + }else if(v){ + return v.value; + } + return null; + }, this); + return this.multiple ? ret : ret[0]; + }, + + _getValueDeprecated: false, // remove when _FormWidget:getValue is removed + getValue: function(){ + // summary: + // get the value of the widget. + return this._lastValue; + }, + + undo: function(){ + // summary: + // restore the value to the last value passed to onChange + this._setValueAttr(this._lastValueReported, false); + }, + + _loadChildren: function(){ + // summary: + // Loads the children represented by this widget's options. + // reset the menu to make it "populatable on the next click + if(this._loadingStore){ return; } + dojo.forEach(this._getChildren(), function(child){ + child.destroyRecursive(); + }); + // Add each menu item + dojo.forEach(this.options, this._addOptionItem, this); + + // Update states + this._updateSelection(); + }, + + _updateSelection: function(){ + // summary: + // Sets the "selected" class on the item for styling purposes + this.value = this._getValueFromOpts(); + var val = this.value; + if(!dojo.isArray(val)){ + val = [val]; + } + if(val && val[0]){ + dojo.forEach(this._getChildren(), function(child){ + var isSelected = dojo.some(val, function(v){ + return child.option && (v === child.option.value); + }); + dojo.toggleClass(child.domNode, this.baseClass + "SelectedOption", isSelected); + dijit.setWaiState(child.domNode, "selected", isSelected); + }, this); + } + this._handleOnChange(this.value); + }, + + _getValueFromOpts: function(){ + // summary: + // Returns the value of the widget by reading the options for + // the selected flag + var opts = this.getOptions() || []; + if(!this.multiple && opts.length){ + // Mirror what a select does - choose the first one + var opt = dojo.filter(opts, function(i){ + return i.selected; + })[0]; + if(opt && opt.value){ + return opt.value + }else{ + opts[0].selected = true; + return opts[0].value; + } + }else if(this.multiple){ + // Set value to be the sum of all selected + return dojo.map(dojo.filter(opts, function(i){ + return i.selected; + }), function(i){ + return i.value; + }) || []; + } + return ""; + }, + + // Internal functions to call when we have store notifications come in + _onNewItem: function(/* item */ item, /* Object? */ parentInfo){ + if(!parentInfo || !parentInfo.parent){ + // Only add it if we are top-level + this._addOptionForItem(item); + } + }, + _onDeleteItem: function(/* item */ item){ + var store = this.store; + this.removeOption(store.getIdentity(item)); + }, + _onSetItem: function(/* item */ item){ + this.updateOption(this._getOptionObjForItem(item)); + }, + + _getOptionObjForItem: function(item){ + // summary: + // Returns an option object based off the given item. The "value" + // of the option item will be the identity of the item, the "label" + // of the option will be the label of the item. If the item contains + // children, the children value of the item will be set + var store = this.store, label = store.getLabel(item), + value = (label ? store.getIdentity(item) : null); + return {value: value, label: label, item:item}; // dijit.form.__SelectOption + }, + + _addOptionForItem: function(/* item */ item){ + // summary: + // Creates (and adds) the option for the given item + var store = this.store; + if(!store.isItemLoaded(item)){ + // We are not loaded - so let's load it and add later + store.loadItem({item: item, onComplete: function(i){ + this._addOptionForItem(item); + }, + scope: this}); + return; + } + var newOpt = this._getOptionObjForItem(item); + this.addOption(newOpt); + }, + + constructor: function(/* Object */ keywordArgs){ + // summary: + // Saves off our value, if we have an initial one set so we + // can use it if we have a store as well (see startup()) + this._oValue = (keywordArgs || {}).value || null; + }, + + _fillContent: function(){ + // summary: + // Loads our options and sets up our dropdown correctly. We + // don't want any content, so we don't call any inherit chain + // function. + var opts = this.options; + if(!opts){ + opts = this.options = this.srcNodeRef ? dojo.query(">", + this.srcNodeRef).map(function(node){ + if(node.getAttribute("type") === "separator"){ + return { value: "", label: "", selected: false, disabled: false }; + } + return { value: node.getAttribute("value"), + label: String(node.innerHTML), + selected: node.getAttribute("selected") || false, + disabled: node.getAttribute("disabled") || false }; + }, this) : []; + } + if(!this.value){ + this.value = this._getValueFromOpts(); + }else if(this.multiple && typeof this.value == "string"){ + this.value = this.value.split(","); + } + }, + + postCreate: function(){ + // summary: + // sets up our event handling that we need for functioning + // as a select + dojo.setSelectable(this.focusNode, false); + this.inherited(arguments); + + // Make our event connections for updating state + this.connect(this, "onChange", "_updateSelection"); + this.connect(this, "startup", "_loadChildren"); + + this._setValueAttr(this.value, null); + }, + + startup: function(){ + // summary: + // Connects in our store, if we have one defined + this.inherited(arguments); + var store = this.store, fetchArgs = {}; + dojo.forEach(["query", "queryOptions", "onFetch"], function(i){ + if(this[i]){ + fetchArgs[i] = this[i]; + } + delete this[i]; + }, this); + if(store && store.getFeatures()["dojo.data.api.Identity"]){ + // Temporarily set our store to null so that it will get set + // and connected appropriately + this.store = null; + this.setStore(store, this._oValue, fetchArgs); + } + }, + + destroy: function(){ + // summary: + // Clean up our connections + dojo.forEach(this._notifyConnections || [], dojo.disconnect); + this.inherited(arguments); + }, + + _addOptionItem: function(/* dijit.form.__SelectOption */ option){ + // summary: + // User-overridable function which, for the given option, adds an + // item to the select. If the option doesn't have a value, then a + // separator is added in that place. Make sure to store the option + // in the created option widget. + }, + + _removeOptionItem: function(/* dijit.form.__SelectOption */ option){ + // summary: + // User-overridable function which, for the given option, removes + // its item from the select. + }, + + _setDisplay: function(/*String or String[]*/ newDisplay){ + // summary: + // Overridable function which will set the display for the + // widget. newDisplay is either a string (in the case of + // single selects) or array of strings (in the case of multi-selects) + }, + + _getChildren: function(){ + // summary: + // Overridable function to return the children that this widget contains. + return []; + }, + + _getSelectedOptionsAttr: function(){ + // summary: + // hooks into this.attr to provide a mechanism for getting the + // option items for the current value of the widget. + return this.getOptions(this.get("value")); + }, + + _pseudoLoadChildren: function(/* item[] */ items){ + // summary: + // a function that will "fake" loading children, if needed, and + // if we have set to not load children until the widget opens. + // items: + // An array of items that will be loaded, when needed + }, + + onSetStore: function(){ + // summary: + // a function that can be connected to in order to receive a + // notification that the store has finished loading and all options + // from that store are available + } +}); + +} + +if(!dojo._hasResource["dijit.MenuItem"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.MenuItem"] = true; +dojo.provide("dijit.MenuItem"); + + + + + + +dojo.declare("dijit.MenuItem", + [dijit._Widget, dijit._Templated, dijit._Contained, dijit._CssStateMixin], + { + // summary: + // A line item in a Menu Widget + + // Make 3 columns + // icon, label, and expand arrow (BiDi-dependent) indicating sub-menu + templateString: dojo.cache("dijit", "templates/MenuItem.html", "<tr class=\"dijitReset dijitMenuItem\" dojoAttachPoint=\"focusNode\" waiRole=\"menuitem\" tabIndex=\"-1\"\n\t\tdojoAttachEvent=\"onmouseenter:_onHover,onmouseleave:_onUnhover,ondijitclick:_onClick\">\n\t<td class=\"dijitReset dijitMenuItemIconCell\" waiRole=\"presentation\">\n\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon dijitMenuItemIcon\" dojoAttachPoint=\"iconNode\"/>\n\t</td>\n\t<td class=\"dijitReset dijitMenuItemLabel\" colspan=\"2\" dojoAttachPoint=\"containerNode\"></td>\n\t<td class=\"dijitReset dijitMenuItemAccelKey\" style=\"display: none\" dojoAttachPoint=\"accelKeyNode\"></td>\n\t<td class=\"dijitReset dijitMenuArrowCell\" waiRole=\"presentation\">\n\t\t<div dojoAttachPoint=\"arrowWrapper\" style=\"visibility: hidden\">\n\t\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitMenuExpand\"/>\n\t\t\t<span class=\"dijitMenuExpandA11y\">+</span>\n\t\t</div>\n\t</td>\n</tr>\n"), + + attributeMap: dojo.delegate(dijit._Widget.prototype.attributeMap, { + label: { node: "containerNode", type: "innerHTML" }, + iconClass: { node: "iconNode", type: "class" } + }), + + baseClass: "dijitMenuItem", + + // label: String + // Menu text + label: '', + + // iconClass: String + // Class to apply to DOMNode to make it display an icon. + iconClass: "", + + // accelKey: String + // Text for the accelerator (shortcut) key combination. + // Note that although Menu can display accelerator keys there + // is no infrastructure to actually catch and execute these + // accelerators. + accelKey: "", + + // disabled: Boolean + // If true, the menu item is disabled. + // If false, the menu item is enabled. + disabled: false, + + _fillContent: function(/*DomNode*/ source){ + // If button label is specified as srcNodeRef.innerHTML rather than + // this.params.label, handle it here. + if(source && !("label" in this.params)){ + this.set('label', source.innerHTML); + } + }, + + postCreate: function(){ + this.inherited(arguments); + dojo.setSelectable(this.domNode, false); + var label = this.id+"_text"; + dojo.attr(this.containerNode, "id", label); + if(this.accelKeyNode){ + dojo.attr(this.accelKeyNode, "id", this.id + "_accel"); + label += " " + this.id + "_accel"; + } + dijit.setWaiState(this.domNode, "labelledby", label); + }, + + _onHover: function(){ + // summary: + // Handler when mouse is moved onto menu item + // tags: + // protected + this.getParent().onItemHover(this); + }, + + _onUnhover: function(){ + // summary: + // Handler when mouse is moved off of menu item, + // possibly to a child menu, or maybe to a sibling + // menuitem or somewhere else entirely. + // tags: + // protected + + // if we are unhovering the currently selected item + // then unselect it + this.getParent().onItemUnhover(this); + + // _onUnhover() is called when the menu is hidden (collapsed), due to clicking + // a MenuItem and having it execut. When that happens, FF and IE don't generate + // an onmouseout event for the MenuItem, so give _CssStateMixin some help + this._hovering = false; + this._setStateClass(); + }, + + _onClick: function(evt){ + // summary: + // Internal handler for click events on MenuItem. + // tags: + // private + this.getParent().onItemClick(this, evt); + dojo.stopEvent(evt); + }, + + onClick: function(/*Event*/ evt){ + // summary: + // User defined function to handle clicks + // tags: + // callback + }, + + focus: function(){ + // summary: + // Focus on this MenuItem + try{ + if(dojo.isIE == 8){ + // needed for IE8 which won't scroll TR tags into view on focus yet calling scrollIntoView creates flicker (#10275) + this.containerNode.focus(); + } + dijit.focus(this.focusNode); + }catch(e){ + // this throws on IE (at least) in some scenarios + } + }, + + _onFocus: function(){ + // summary: + // This is called by the focus manager when focus + // goes to this MenuItem or a child menu. + // tags: + // protected + this._setSelected(true); + this.getParent()._onItemFocus(this); + + this.inherited(arguments); + }, + + _setSelected: function(selected){ + // summary: + // Indicate that this node is the currently selected one + // tags: + // private + + /*** + * TODO: remove this method and calls to it, when _onBlur() is working for MenuItem. + * Currently _onBlur() gets called when focus is moved from the MenuItem to a child menu. + * That's not supposed to happen, but the problem is: + * In order to allow dijit.popup's getTopPopup() to work,a sub menu's popupParent + * points to the parent Menu, bypassing the parent MenuItem... thus the + * MenuItem is not in the chain of active widgets and gets a premature call to + * _onBlur() + */ + + dojo.toggleClass(this.domNode, "dijitMenuItemSelected", selected); + }, + + setLabel: function(/*String*/ content){ + // summary: + // Deprecated. Use set('label', ...) instead. + // tags: + // deprecated + dojo.deprecated("dijit.MenuItem.setLabel() is deprecated. Use set('label', ...) instead.", "", "2.0"); + this.set("label", content); + }, + + setDisabled: function(/*Boolean*/ disabled){ + // summary: + // Deprecated. Use set('disabled', bool) instead. + // tags: + // deprecated + dojo.deprecated("dijit.Menu.setDisabled() is deprecated. Use set('disabled', bool) instead.", "", "2.0"); + this.set('disabled', disabled); + }, + _setDisabledAttr: function(/*Boolean*/ value){ + // summary: + // Hook for attr('disabled', ...) to work. + // Enable or disable this menu item. + this.disabled = value; + dijit.setWaiState(this.focusNode, 'disabled', value ? 'true' : 'false'); + }, + _setAccelKeyAttr: function(/*String*/ value){ + // summary: + // Hook for attr('accelKey', ...) to work. + // Set accelKey on this menu item. + this.accelKey=value; + + this.accelKeyNode.style.display=value?"":"none"; + this.accelKeyNode.innerHTML=value; + //have to use colSpan to make it work in IE + dojo.attr(this.containerNode,'colSpan',value?"1":"2"); + } + }); + +} + +if(!dojo._hasResource["dijit.PopupMenuItem"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.PopupMenuItem"] = true; +dojo.provide("dijit.PopupMenuItem"); + + + +dojo.declare("dijit.PopupMenuItem", + dijit.MenuItem, + { + _fillContent: function(){ + // summary: + // When Menu is declared in markup, this code gets the menu label and + // the popup widget from the srcNodeRef. + // description: + // srcNodeRefinnerHTML contains both the menu item text and a popup widget + // The first part holds the menu item text and the second part is the popup + // example: + // | <div dojoType="dijit.PopupMenuItem"> + // | <span>pick me</span> + // | <popup> ... </popup> + // | </div> + // tags: + // protected + + if(this.srcNodeRef){ + var nodes = dojo.query("*", this.srcNodeRef); + dijit.PopupMenuItem.superclass._fillContent.call(this, nodes[0]); + + // save pointer to srcNode so we can grab the drop down widget after it's instantiated + this.dropDownContainer = this.srcNodeRef; + } + }, + + startup: function(){ + if(this._started){ return; } + this.inherited(arguments); + + // we didn't copy the dropdown widget from the this.srcNodeRef, so it's in no-man's + // land now. move it to dojo.doc.body. + if(!this.popup){ + var node = dojo.query("[widgetId]", this.dropDownContainer)[0]; + this.popup = dijit.byNode(node); + } + dojo.body().appendChild(this.popup.domNode); + this.popup.startup(); + + this.popup.domNode.style.display="none"; + if(this.arrowWrapper){ + dojo.style(this.arrowWrapper, "visibility", ""); + } + dijit.setWaiState(this.focusNode, "haspopup", "true"); + }, + + destroyDescendants: function(){ + if(this.popup){ + // Destroy the popup, unless it's already been destroyed. This can happen because + // the popup is a direct child of <body> even though it's logically my child. + if(!this.popup._destroyed){ + this.popup.destroyRecursive(); + } + delete this.popup; + } + this.inherited(arguments); + } + }); + + +} + +if(!dojo._hasResource["dijit.CheckedMenuItem"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.CheckedMenuItem"] = true; +dojo.provide("dijit.CheckedMenuItem"); + + + +dojo.declare("dijit.CheckedMenuItem", + dijit.MenuItem, + { + // summary: + // A checkbox-like menu item for toggling on and off + + templateString: dojo.cache("dijit", "templates/CheckedMenuItem.html", "<tr class=\"dijitReset dijitMenuItem\" dojoAttachPoint=\"focusNode\" waiRole=\"menuitemcheckbox\" tabIndex=\"-1\"\n\t\tdojoAttachEvent=\"onmouseenter:_onHover,onmouseleave:_onUnhover,ondijitclick:_onClick\">\n\t<td class=\"dijitReset dijitMenuItemIconCell\" waiRole=\"presentation\">\n\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitMenuItemIcon dijitCheckedMenuItemIcon\" dojoAttachPoint=\"iconNode\"/>\n\t\t<span class=\"dijitCheckedMenuItemIconChar\">✓</span>\n\t</td>\n\t<td class=\"dijitReset dijitMenuItemLabel\" colspan=\"2\" dojoAttachPoint=\"containerNode,labelNode\"></td>\n\t<td class=\"dijitReset dijitMenuItemAccelKey\" style=\"display: none\" dojoAttachPoint=\"accelKeyNode\"></td>\n\t<td class=\"dijitReset dijitMenuArrowCell\" waiRole=\"presentation\"> </td>\n</tr>\n"), + + // checked: Boolean + // Our checked state + checked: false, + _setCheckedAttr: function(/*Boolean*/ checked){ + // summary: + // Hook so attr('checked', bool) works. + // Sets the class and state for the check box. + dojo.toggleClass(this.domNode, "dijitCheckedMenuItemChecked", checked); + dijit.setWaiState(this.domNode, "checked", checked); + this.checked = checked; + }, + + onChange: function(/*Boolean*/ checked){ + // summary: + // User defined function to handle check/uncheck events + // tags: + // callback + }, + + _onClick: function(/*Event*/ e){ + // summary: + // Clicking this item just toggles its state + // tags: + // private + if(!this.disabled){ + this.set("checked", !this.checked); + this.onChange(this.checked); + } + this.inherited(arguments); + } + }); + +} + +if(!dojo._hasResource["dijit.MenuSeparator"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.MenuSeparator"] = true; +dojo.provide("dijit.MenuSeparator"); + + + + + +dojo.declare("dijit.MenuSeparator", + [dijit._Widget, dijit._Templated, dijit._Contained], + { + // summary: + // A line between two menu items + + templateString: dojo.cache("dijit", "templates/MenuSeparator.html", "<tr class=\"dijitMenuSeparator\">\n\t<td class=\"dijitMenuSeparatorIconCell\">\n\t\t<div class=\"dijitMenuSeparatorTop\"></div>\n\t\t<div class=\"dijitMenuSeparatorBottom\"></div>\n\t</td>\n\t<td colspan=\"3\" class=\"dijitMenuSeparatorLabelCell\">\n\t\t<div class=\"dijitMenuSeparatorTop dijitMenuSeparatorLabel\"></div>\n\t\t<div class=\"dijitMenuSeparatorBottom\"></div>\n\t</td>\n</tr>\n"), + + postCreate: function(){ + dojo.setSelectable(this.domNode, false); + }, + + isFocusable: function(){ + // summary: + // Override to always return false + // tags: + // protected + + return false; // Boolean + } + }); + + +} + +if(!dojo._hasResource["dijit.Menu"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.Menu"] = true; +dojo.provide("dijit.Menu"); + + + + + + + +dojo.declare("dijit._MenuBase", + [dijit._Widget, dijit._Templated, dijit._KeyNavContainer], +{ + // summary: + // Base class for Menu and MenuBar + + // parentMenu: [readonly] Widget + // pointer to menu that displayed me + parentMenu: null, + + // popupDelay: Integer + // number of milliseconds before hovering (without clicking) causes the popup to automatically open. + popupDelay: 500, + + startup: function(){ + if(this._started){ return; } + + dojo.forEach(this.getChildren(), function(child){ child.startup(); }); + this.startupKeyNavChildren(); + + this.inherited(arguments); + }, + + onExecute: function(){ + // summary: + // Attach point for notification about when a menu item has been executed. + // This is an internal mechanism used for Menus to signal to their parent to + // close them, because they are about to execute the onClick handler. In + // general developers should not attach to or override this method. + // tags: + // protected + }, + + onCancel: function(/*Boolean*/ closeAll){ + // summary: + // Attach point for notification about when the user cancels the current menu + // This is an internal mechanism used for Menus to signal to their parent to + // close them. In general developers should not attach to or override this method. + // tags: + // protected + }, + + _moveToPopup: function(/*Event*/ evt){ + // summary: + // This handles the right arrow key (left arrow key on RTL systems), + // which will either open a submenu, or move to the next item in the + // ancestor MenuBar + // tags: + // private + + if(this.focusedChild && this.focusedChild.popup && !this.focusedChild.disabled){ + this.focusedChild._onClick(evt); + }else{ + var topMenu = this._getTopMenu(); + if(topMenu && topMenu._isMenuBar){ + topMenu.focusNext(); + } + } + }, + + _onPopupHover: function(/*Event*/ evt){ + // summary: + // This handler is called when the mouse moves over the popup. + // tags: + // private + + // if the mouse hovers over a menu popup that is in pending-close state, + // then stop the close operation. + // This can't be done in onItemHover since some popup targets don't have MenuItems (e.g. ColorPicker) + if(this.currentPopup && this.currentPopup._pendingClose_timer){ + var parentMenu = this.currentPopup.parentMenu; + // highlight the parent menu item pointing to this popup + if(parentMenu.focusedChild){ + parentMenu.focusedChild._setSelected(false); + } + parentMenu.focusedChild = this.currentPopup.from_item; + parentMenu.focusedChild._setSelected(true); + // cancel the pending close + this._stopPendingCloseTimer(this.currentPopup); + } + }, + + onItemHover: function(/*MenuItem*/ item){ + // summary: + // Called when cursor is over a MenuItem. + // tags: + // protected + + // Don't do anything unless user has "activated" the menu by: + // 1) clicking it + // 2) opening it from a parent menu (which automatically focuses it) + if(this.isActive){ + this.focusChild(item); + if(this.focusedChild.popup && !this.focusedChild.disabled && !this.hover_timer){ + this.hover_timer = setTimeout(dojo.hitch(this, "_openPopup"), this.popupDelay); + } + } + // if the user is mixing mouse and keyboard navigation, + // then the menu may not be active but a menu item has focus, + // but it's not the item that the mouse just hovered over. + // To avoid both keyboard and mouse selections, use the latest. + if(this.focusedChild){ + this.focusChild(item); + } + this._hoveredChild = item; + }, + + _onChildBlur: function(item){ + // summary: + // Called when a child MenuItem becomes inactive because focus + // has been removed from the MenuItem *and* it's descendant menus. + // tags: + // private + this._stopPopupTimer(); + item._setSelected(false); + // Close all popups that are open and descendants of this menu + var itemPopup = item.popup; + if(itemPopup){ + this._stopPendingCloseTimer(itemPopup); + itemPopup._pendingClose_timer = setTimeout(function(){ + itemPopup._pendingClose_timer = null; + if(itemPopup.parentMenu){ + itemPopup.parentMenu.currentPopup = null; + } + dijit.popup.close(itemPopup); // this calls onClose + }, this.popupDelay); + } + }, + + onItemUnhover: function(/*MenuItem*/ item){ + // summary: + // Callback fires when mouse exits a MenuItem + // tags: + // protected + + if(this.isActive){ + this._stopPopupTimer(); + } + if(this._hoveredChild == item){ this._hoveredChild = null; } + }, + + _stopPopupTimer: function(){ + // summary: + // Cancels the popup timer because the user has stop hovering + // on the MenuItem, etc. + // tags: + // private + if(this.hover_timer){ + clearTimeout(this.hover_timer); + this.hover_timer = null; + } + }, + + _stopPendingCloseTimer: function(/*dijit._Widget*/ popup){ + // summary: + // Cancels the pending-close timer because the close has been preempted + // tags: + // private + if(popup._pendingClose_timer){ + clearTimeout(popup._pendingClose_timer); + popup._pendingClose_timer = null; + } + }, + + _stopFocusTimer: function(){ + // summary: + // Cancels the pending-focus timer because the menu was closed before focus occured + // tags: + // private + if(this._focus_timer){ + clearTimeout(this._focus_timer); + this._focus_timer = null; + } + }, + + _getTopMenu: function(){ + // summary: + // Returns the top menu in this chain of Menus + // tags: + // private + for(var top=this; top.parentMenu; top=top.parentMenu); + return top; + }, + + onItemClick: function(/*dijit._Widget*/ item, /*Event*/ evt){ + // summary: + // Handle clicks on an item. + // tags: + // private + + // this can't be done in _onFocus since the _onFocus events occurs asynchronously + if(typeof this.isShowingNow == 'undefined'){ // non-popup menu + this._markActive(); + } + + this.focusChild(item); + + if(item.disabled){ return false; } + + if(item.popup){ + this._openPopup(); + }else{ + // before calling user defined handler, close hierarchy of menus + // and restore focus to place it was when menu was opened + this.onExecute(); + + // user defined handler for click + item.onClick(evt); + } + }, + + _openPopup: function(){ + // summary: + // Open the popup to the side of/underneath the current menu item + // tags: + // protected + + this._stopPopupTimer(); + var from_item = this.focusedChild; + if(!from_item){ return; } // the focused child lost focus since the timer was started + var popup = from_item.popup; + if(popup.isShowingNow){ return; } + if(this.currentPopup){ + this._stopPendingCloseTimer(this.currentPopup); + dijit.popup.close(this.currentPopup); + } + popup.parentMenu = this; + popup.from_item = from_item; // helps finding the parent item that should be focused for this popup + var self = this; + dijit.popup.open({ + parent: this, + popup: popup, + around: from_item.domNode, + orient: this._orient || (this.isLeftToRight() ? + {'TR': 'TL', 'TL': 'TR', 'BR': 'BL', 'BL': 'BR'} : + {'TL': 'TR', 'TR': 'TL', 'BL': 'BR', 'BR': 'BL'}), + onCancel: function(){ // called when the child menu is canceled + // set isActive=false (_closeChild vs _cleanUp) so that subsequent hovering will NOT open child menus + // which seems aligned with the UX of most applications (e.g. notepad, wordpad, paint shop pro) + self.focusChild(from_item); // put focus back on my node + self._cleanUp(); // close the submenu (be sure this is done _after_ focus is moved) + from_item._setSelected(true); // oops, _cleanUp() deselected the item + self.focusedChild = from_item; // and unset focusedChild + }, + onExecute: dojo.hitch(this, "_cleanUp") + }); + + this.currentPopup = popup; + // detect mouseovers to handle lazy mouse movements that temporarily focus other menu items + popup.connect(popup.domNode, "onmouseenter", dojo.hitch(self, "_onPopupHover")); // cleaned up when the popped-up widget is destroyed on close + + if(popup.focus){ + // If user is opening the popup via keyboard (right arrow, or down arrow for MenuBar), + // if the cursor happens to collide with the popup, it will generate an onmouseover event + // even though the mouse wasn't moved. Use a setTimeout() to call popup.focus so that + // our focus() call overrides the onmouseover event, rather than vice-versa. (#8742) + popup._focus_timer = setTimeout(dojo.hitch(popup, function(){ + this._focus_timer = null; + this.focus(); + }), 0); + } + }, + + _markActive: function(){ + // summary: + // Mark this menu's state as active. + // Called when this Menu gets focus from: + // 1) clicking it (mouse or via space/arrow key) + // 2) being opened by a parent menu. + // This is not called just from mouse hover. + // Focusing a menu via TAB does NOT automatically set isActive + // since TAB is a navigation operation and not a selection one. + // For Windows apps, pressing the ALT key focuses the menubar + // menus (similar to TAB navigation) but the menu is not active + // (ie no dropdown) until an item is clicked. + this.isActive = true; + dojo.addClass(this.domNode, "dijitMenuActive"); + dojo.removeClass(this.domNode, "dijitMenuPassive"); + }, + + onOpen: function(/*Event*/ e){ + // summary: + // Callback when this menu is opened. + // This is called by the popup manager as notification that the menu + // was opened. + // tags: + // private + + this.isShowingNow = true; + this._markActive(); + }, + + _markInactive: function(){ + // summary: + // Mark this menu's state as inactive. + this.isActive = false; // don't do this in _onBlur since the state is pending-close until we get here + dojo.removeClass(this.domNode, "dijitMenuActive"); + dojo.addClass(this.domNode, "dijitMenuPassive"); + }, + + onClose: function(){ + // summary: + // Callback when this menu is closed. + // This is called by the popup manager as notification that the menu + // was closed. + // tags: + // private + + this._stopFocusTimer(); + this._markInactive(); + this.isShowingNow = false; + this.parentMenu = null; + }, + + _closeChild: function(){ + // summary: + // Called when submenu is clicked or focus is lost. Close hierarchy of menus. + // tags: + // private + this._stopPopupTimer(); + if(this.focusedChild){ // unhighlight the focused item + this.focusedChild._setSelected(false); + this.focusedChild._onUnhover(); + this.focusedChild = null; + } + if(this.currentPopup){ + // Close all popups that are open and descendants of this menu + dijit.popup.close(this.currentPopup); + this.currentPopup = null; + } + }, + + _onItemFocus: function(/*MenuItem*/ item){ + // summary: + // Called when child of this Menu gets focus from: + // 1) clicking it + // 2) tabbing into it + // 3) being opened by a parent menu. + // This is not called just from mouse hover. + if(this._hoveredChild && this._hoveredChild != item){ + this._hoveredChild._onUnhover(); // any previous mouse movement is trumped by focus selection + } + }, + + _onBlur: function(){ + // summary: + // Called when focus is moved away from this Menu and it's submenus. + // tags: + // protected + this._cleanUp(); + this.inherited(arguments); + }, + + _cleanUp: function(){ + // summary: + // Called when the user is done with this menu. Closes hierarchy of menus. + // tags: + // private + + this._closeChild(); // don't call this.onClose since that's incorrect for MenuBar's that never close + if(typeof this.isShowingNow == 'undefined'){ // non-popup menu doesn't call onClose + this._markInactive(); + } + } +}); + +dojo.declare("dijit.Menu", + dijit._MenuBase, + { + // summary + // A context menu you can assign to multiple elements + + // TODO: most of the code in here is just for context menu (right-click menu) + // support. In retrospect that should have been a separate class (dijit.ContextMenu). + // Split them for 2.0 + + constructor: function(){ + this._bindings = []; + }, + + templateString: dojo.cache("dijit", "templates/Menu.html", "<table class=\"dijit dijitMenu dijitMenuPassive dijitReset dijitMenuTable\" waiRole=\"menu\" tabIndex=\"${tabIndex}\" dojoAttachEvent=\"onkeypress:_onKeyPress\" cellspacing=0>\n\t<tbody class=\"dijitReset\" dojoAttachPoint=\"containerNode\"></tbody>\n</table>\n"), + + baseClass: "dijitMenu", + + // targetNodeIds: [const] String[] + // Array of dom node ids of nodes to attach to. + // Fill this with nodeIds upon widget creation and it becomes context menu for those nodes. + targetNodeIds: [], + + // contextMenuForWindow: [const] Boolean + // If true, right clicking anywhere on the window will cause this context menu to open. + // If false, must specify targetNodeIds. + contextMenuForWindow: false, + + // leftClickToOpen: [const] Boolean + // If true, menu will open on left click instead of right click, similiar to a file menu. + leftClickToOpen: false, + + // refocus: Boolean + // When this menu closes, re-focus the element which had focus before it was opened. + refocus: true, + + postCreate: function(){ + if(this.contextMenuForWindow){ + this.bindDomNode(dojo.body()); + }else{ + // TODO: should have _setTargetNodeIds() method to handle initialization and a possible + // later attr('targetNodeIds', ...) call. There's also a problem that targetNodeIds[] + // gets stale after calls to bindDomNode()/unBindDomNode() as it still is just the original list (see #9610) + dojo.forEach(this.targetNodeIds, this.bindDomNode, this); + } + var k = dojo.keys, l = this.isLeftToRight(); + this._openSubMenuKey = l ? k.RIGHT_ARROW : k.LEFT_ARROW; + this._closeSubMenuKey = l ? k.LEFT_ARROW : k.RIGHT_ARROW; + this.connectKeyNavHandlers([k.UP_ARROW], [k.DOWN_ARROW]); + }, + + _onKeyPress: function(/*Event*/ evt){ + // summary: + // Handle keyboard based menu navigation. + // tags: + // protected + + if(evt.ctrlKey || evt.altKey){ return; } + + switch(evt.charOrCode){ + case this._openSubMenuKey: + this._moveToPopup(evt); + dojo.stopEvent(evt); + break; + case this._closeSubMenuKey: + if(this.parentMenu){ + if(this.parentMenu._isMenuBar){ + this.parentMenu.focusPrev(); + }else{ + this.onCancel(false); + } + }else{ + dojo.stopEvent(evt); + } + break; + } + }, + + // thanks burstlib! + _iframeContentWindow: function(/* HTMLIFrameElement */iframe_el){ + // summary: + // Returns the window reference of the passed iframe + // tags: + // private + var win = dojo.window.get(this._iframeContentDocument(iframe_el)) || + // Moz. TODO: is this available when defaultView isn't? + this._iframeContentDocument(iframe_el)['__parent__'] || + (iframe_el.name && dojo.doc.frames[iframe_el.name]) || null; + return win; // Window + }, + + _iframeContentDocument: function(/* HTMLIFrameElement */iframe_el){ + // summary: + // Returns a reference to the document object inside iframe_el + // tags: + // protected + var doc = iframe_el.contentDocument // W3 + || (iframe_el.contentWindow && iframe_el.contentWindow.document) // IE + || (iframe_el.name && dojo.doc.frames[iframe_el.name] && dojo.doc.frames[iframe_el.name].document) + || null; + return doc; // HTMLDocument + }, + + bindDomNode: function(/*String|DomNode*/ node){ + // summary: + // Attach menu to given node + node = dojo.byId(node); + + var cn; // Connect node + + // Support context menus on iframes. Rather than binding to the iframe itself we need + // to bind to the <body> node inside the iframe. + if(node.tagName.toLowerCase() == "iframe"){ + var iframe = node, + win = this._iframeContentWindow(iframe); + cn = dojo.withGlobal(win, dojo.body); + }else{ + + // To capture these events at the top level, attach to <html>, not <body>. + // Otherwise right-click context menu just doesn't work. + cn = (node == dojo.body() ? dojo.doc.documentElement : node); + } + + + // "binding" is the object to track our connection to the node (ie, the parameter to bindDomNode()) + var binding = { + node: node, + iframe: iframe + }; + + // Save info about binding in _bindings[], and make node itself record index(+1) into + // _bindings[] array. Prefix w/_dijitMenu to avoid setting an attribute that may + // start with a number, which fails on FF/safari. + dojo.attr(node, "_dijitMenu" + this.id, this._bindings.push(binding)); + + // Setup the connections to monitor click etc., unless we are connecting to an iframe which hasn't finished + // loading yet, in which case we need to wait for the onload event first, and then connect + // On linux Shift-F10 produces the oncontextmenu event, but on Windows it doesn't, so + // we need to monitor keyboard events in addition to the oncontextmenu event. + var doConnects = dojo.hitch(this, function(cn){ + return [ + // TODO: when leftClickToOpen is true then shouldn't space/enter key trigger the menu, + // rather than shift-F10? + dojo.connect(cn, this.leftClickToOpen ? "onclick" : "oncontextmenu", this, function(evt){ + // Schedule context menu to be opened unless it's already been scheduled from onkeydown handler + dojo.stopEvent(evt); + this._scheduleOpen(evt.target, iframe, {x: evt.pageX, y: evt.pageY}); + }), + dojo.connect(cn, "onkeydown", this, function(evt){ + if(evt.shiftKey && evt.keyCode == dojo.keys.F10){ + dojo.stopEvent(evt); + this._scheduleOpen(evt.target, iframe); // no coords - open near target node + } + }) + ]; + }); + binding.connects = cn ? doConnects(cn) : []; + + if(iframe){ + // Setup handler to [re]bind to the iframe when the contents are initially loaded, + // and every time the contents change. + // Need to do this b/c we are actually binding to the iframe's <body> node. + // Note: can't use dojo.connect(), see #9609. + + binding.onloadHandler = dojo.hitch(this, function(){ + // want to remove old connections, but IE throws exceptions when trying to + // access the <body> node because it's already gone, or at least in a state of limbo + + var win = this._iframeContentWindow(iframe); + cn = dojo.withGlobal(win, dojo.body); + binding.connects = doConnects(cn); + }); + if(iframe.addEventListener){ + iframe.addEventListener("load", binding.onloadHandler, false); + }else{ + iframe.attachEvent("onload", binding.onloadHandler); + } + } + }, + + unBindDomNode: function(/*String|DomNode*/ nodeName){ + // summary: + // Detach menu from given node + + var node; + try{ + node = dojo.byId(nodeName); + }catch(e){ + // On IE the dojo.byId() call will get an exception if the attach point was + // the <body> node of an <iframe> that has since been reloaded (and thus the + // <body> node is in a limbo state of destruction. + return; + } + + // node["_dijitMenu" + this.id] contains index(+1) into my _bindings[] array + var attrName = "_dijitMenu" + this.id; + if(node && dojo.hasAttr(node, attrName)){ + var bid = dojo.attr(node, attrName)-1, b = this._bindings[bid]; + dojo.forEach(b.connects, dojo.disconnect); + + // Remove listener for iframe onload events + var iframe = b.iframe; + if(iframe){ + if(iframe.removeEventListener){ + iframe.removeEventListener("load", b.onloadHandler, false); + }else{ + iframe.detachEvent("onload", b.onloadHandler); + } + } + + dojo.removeAttr(node, attrName); + delete this._bindings[bid]; + } + }, + + _scheduleOpen: function(/*DomNode?*/ target, /*DomNode?*/ iframe, /*Object?*/ coords){ + // summary: + // Set timer to display myself. Using a timer rather than displaying immediately solves + // two problems: + // + // 1. IE: without the delay, focus work in "open" causes the system + // context menu to appear in spite of stopEvent. + // + // 2. Avoid double-shows on linux, where shift-F10 generates an oncontextmenu event + // even after a dojo.stopEvent(e). (Shift-F10 on windows doesn't generate the + // oncontextmenu event.) + + if(!this._openTimer){ + this._openTimer = setTimeout(dojo.hitch(this, function(){ + delete this._openTimer; + this._openMyself({ + target: target, + iframe: iframe, + coords: coords + }); + }), 1); + } + }, + + _openMyself: function(args){ + // summary: + // Internal function for opening myself when the user does a right-click or something similar. + // args: + // This is an Object containing: + // * target: + // The node that is being clicked + // * iframe: + // If an <iframe> is being clicked, iframe points to that iframe + // * coords: + // Put menu at specified x/y position in viewport, or if iframe is + // specified, then relative to iframe. + // + // _openMyself() formerly took the event object, and since various code references + // evt.target (after connecting to _openMyself()), using an Object for parameters + // (so that old code still works). + + var target = args.target, + iframe = args.iframe, + coords = args.coords; + + // Get coordinates to open menu, either at specified (mouse) position or (if triggered via keyboard) + // then near the node the menu is assigned to. + if(coords){ + if(iframe){ + // Specified coordinates are on <body> node of an <iframe>, convert to match main document + var od = target.ownerDocument, + ifc = dojo.position(iframe, true), + win = this._iframeContentWindow(iframe), + scroll = dojo.withGlobal(win, "_docScroll", dojo); + + var cs = dojo.getComputedStyle(iframe), + tp = dojo._toPixelValue, + left = (dojo.isIE && dojo.isQuirks ? 0 : tp(iframe, cs.paddingLeft)) + (dojo.isIE && dojo.isQuirks ? tp(iframe, cs.borderLeftWidth) : 0), + top = (dojo.isIE && dojo.isQuirks ? 0 : tp(iframe, cs.paddingTop)) + (dojo.isIE && dojo.isQuirks ? tp(iframe, cs.borderTopWidth) : 0); + + coords.x += ifc.x + left - scroll.x; + coords.y += ifc.y + top - scroll.y; + } + }else{ + coords = dojo.position(target, true); + coords.x += 10; + coords.y += 10; + } + + var self=this; + var savedFocus = dijit.getFocus(this); + function closeAndRestoreFocus(){ + // user has clicked on a menu or popup + if(self.refocus){ + dijit.focus(savedFocus); + } + dijit.popup.close(self); + } + dijit.popup.open({ + popup: this, + x: coords.x, + y: coords.y, + onExecute: closeAndRestoreFocus, + onCancel: closeAndRestoreFocus, + orient: this.isLeftToRight() ? 'L' : 'R' + }); + this.focus(); + + this._onBlur = function(){ + this.inherited('_onBlur', arguments); + // Usually the parent closes the child widget but if this is a context + // menu then there is no parent + dijit.popup.close(this); + // don't try to restore focus; user has clicked another part of the screen + // and set focus there + }; + }, + + uninitialize: function(){ + dojo.forEach(this._bindings, function(b){ if(b){ this.unBindDomNode(b.node); } }, this); + this.inherited(arguments); + } +} +); + +// Back-compat (TODO: remove in 2.0) + + + + + + +} + +if(!dojo._hasResource["dijit.form.Select"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.form.Select"] = true; +dojo.provide("dijit.form.Select"); + + + + + + + + +dojo.declare("dijit.form._SelectMenu", dijit.Menu, { + // summary: + // An internally-used menu for dropdown that allows us a vertical scrollbar + buildRendering: function(){ + // summary: + // Stub in our own changes, so that our domNode is not a table + // otherwise, we won't respond correctly to heights/overflows + this.inherited(arguments); + var o = (this.menuTableNode = this.domNode); + var n = (this.domNode = dojo.create("div", {style: {overflowX: "hidden", overflowY: "scroll"}})); + if(o.parentNode){ + o.parentNode.replaceChild(n, o); + } + dojo.removeClass(o, "dijitMenuTable"); + n.className = o.className + " dijitSelectMenu"; + o.className = "dijitReset dijitMenuTable"; + dijit.setWaiRole(o,"listbox"); + dijit.setWaiRole(n,"presentation"); + n.appendChild(o); + }, + resize: function(/*Object*/ mb){ + // summary: + // Overridden so that we are able to handle resizing our + // internal widget. Note that this is not a "full" resize + // implementation - it only works correctly if you pass it a + // marginBox. + // + // mb: Object + // The margin box to set this dropdown to. + if(mb){ + dojo.marginBox(this.domNode, mb); + if("w" in mb){ + // We've explicitly set the wrapper <div>'s width, so set <table> width to match. + // 100% is safer than a pixel value because there may be a scroll bar with + // browser/OS specific width. + this.menuTableNode.style.width = "100%"; + } + } + } +}); + +dojo.declare("dijit.form.Select", [dijit.form._FormSelectWidget, dijit._HasDropDown], { + // summary: + // This is a "styleable" select box - it is basically a DropDownButton which + // can take a <select> as its input. + + baseClass: "dijitSelect", + + templateString: dojo.cache("dijit.form", "templates/Select.html", "<table class=\"dijit dijitReset dijitInline dijitLeft\"\n\tdojoAttachPoint=\"_buttonNode,tableNode,focusNode\" cellspacing='0' cellpadding='0'\n\twaiRole=\"combobox\" waiState=\"haspopup-true\"\n\t><tbody waiRole=\"presentation\"><tr waiRole=\"presentation\"\n\t\t><td class=\"dijitReset dijitStretch dijitButtonContents dijitButtonNode\" waiRole=\"presentation\"\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\" dojoAttachPoint=\"containerNode,_popupStateNode\"></span\n\t\t\t><input type=\"hidden\" ${!nameAttrSetting} dojoAttachPoint=\"valueNode\" value=\"${value}\" waiState=\"hidden-true\"\n\t\t/></td><td class=\"dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton\"\n\t\t\t\tdojoAttachPoint=\"titleNode\" waiRole=\"presentation\"\n\t\t\t><div class=\"dijitReset dijitArrowButtonInner\" waiRole=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitArrowButtonChar\" waiRole=\"presentation\">▼</div\n\t\t></td\n\t></tr></tbody\n></table>\n"), + + // attributeMap: Object + // Add in our style to be applied to the focus node + attributeMap: dojo.mixin(dojo.clone(dijit.form._FormSelectWidget.prototype.attributeMap),{style:"tableNode"}), + + // required: Boolean + // Can be true or false, default is false. + required: false, + + // state: String + // Shows current state (ie, validation result) of input (Normal, Warning, or Error) + state: "", + + // tooltipPosition: String[] + // See description of dijit.Tooltip.defaultPosition for details on this parameter. + tooltipPosition: [], + + // emptyLabel: string + // What to display in an "empty" dropdown + emptyLabel: "", + + // _isLoaded: Boolean + // Whether or not we have been loaded + _isLoaded: false, + + // _childrenLoaded: Boolean + // Whether or not our children have been loaded + _childrenLoaded: false, + + _fillContent: function(){ + // summary: + // Set the value to be the first, or the selected index + this.inherited(arguments); + if(this.options.length && !this.value && this.srcNodeRef){ + var si = this.srcNodeRef.selectedIndex; + this.value = this.options[si != -1 ? si : 0].value; + } + + // Create the dropDown widget + this.dropDown = new dijit.form._SelectMenu({id: this.id + "_menu"}); + dojo.addClass(this.dropDown.domNode, this.baseClass + "Menu"); + }, + + _getMenuItemForOption: function(/*dijit.form.__SelectOption*/ option){ + // summary: + // For the given option, return the menu item that should be + // used to display it. This can be overridden as needed + if(!option.value){ + // We are a separator (no label set for it) + return new dijit.MenuSeparator(); + }else{ + // Just a regular menu option + var click = dojo.hitch(this, "_setValueAttr", option); + var item = new dijit.MenuItem({ + option: option, + label: option.label, + onClick: click, + disabled: option.disabled || false + }); + dijit.setWaiRole(item.focusNode, "listitem"); + return item; + } + }, + + _addOptionItem: function(/*dijit.form.__SelectOption*/ option){ + // summary: + // For the given option, add an option to our dropdown. + // If the option doesn't have a value, then a separator is added + // in that place. + if(this.dropDown){ + this.dropDown.addChild(this._getMenuItemForOption(option)); + } + }, + + _getChildren: function(){ + if(!this.dropDown){ + return []; + } + return this.dropDown.getChildren(); + }, + + _loadChildren: function(/*Boolean*/ loadMenuItems){ + // summary: + // Resets the menu and the length attribute of the button - and + // ensures that the label is appropriately set. + // loadMenuItems: Boolean + // actually loads the child menu items - we only do this when we are + // populating for showing the dropdown. + + if(loadMenuItems === true){ + // this.inherited destroys this.dropDown's child widgets (MenuItems). + // Avoid this.dropDown (Menu widget) having a pointer to a destroyed widget (which will cause + // issues later in _setSelected). (see #10296) + if(this.dropDown){ + delete this.dropDown.focusedChild; + } + if(this.options.length){ + this.inherited(arguments); + }else{ + // Drop down menu is blank but add one blank entry just so something appears on the screen + // to let users know that they are no choices (mimicing native select behavior) + dojo.forEach(this._getChildren(), function(child){ child.destroyRecursive(); }); + var item = new dijit.MenuItem({label: " "}); + this.dropDown.addChild(item); + } + }else{ + this._updateSelection(); + } + + var len = this.options.length; + this._isLoaded = false; + this._childrenLoaded = true; + + if(!this._loadingStore){ + // Don't call this if we are loading - since we will handle it later + this._setValueAttr(this.value); + } + }, + + _setValueAttr: function(value){ + this.inherited(arguments); + dojo.attr(this.valueNode, "value", this.get("value")); + }, + + _setDisplay: function(/*String*/ newDisplay){ + // summary: + // sets the display for the given value (or values) + this.containerNode.innerHTML = '<span class="dijitReset dijitInline ' + this.baseClass + 'Label">' + + (newDisplay || this.emptyLabel || " ") + + '</span>'; + dijit.setWaiState(this.focusNode, "valuetext", (newDisplay || this.emptyLabel || " ") ); + }, + + validate: function(/*Boolean*/ isFocused){ + // summary: + // Called by oninit, onblur, and onkeypress. + // description: + // Show missing or invalid messages if appropriate, and highlight textbox field. + // Used when a select is initially set to no value and the user is required to + // set the value. + + var isValid = this.isValid(isFocused); + this.state = isValid ? "" : "Error"; + this._setStateClass(); + dijit.setWaiState(this.focusNode, "invalid", isValid ? "false" : "true"); + var message = isValid ? "" : this._missingMsg; + if(this._message !== message){ + this._message = message; + dijit.hideTooltip(this.domNode); + if(message){ + dijit.showTooltip(message, this.domNode, this.tooltipPosition, !this.isLeftToRight()); + } + } + return isValid; + }, + + isValid: function(/*Boolean*/ isFocused){ + // summary: + // Whether or not this is a valid value. The only way a Select + // can be invalid is when it's required but nothing is selected. + return (!this.required || !(/^\s*$/.test(this.value))); + }, + + reset: function(){ + // summary: + // Overridden so that the state will be cleared. + this.inherited(arguments); + dijit.hideTooltip(this.domNode); + this.state = ""; + this._setStateClass(); + delete this._message; + }, + + postMixInProperties: function(){ + // summary: + // set the missing message + this.inherited(arguments); + this._missingMsg = dojo.i18n.getLocalization("dijit.form", "validate", + this.lang).missingMessage; + }, + + postCreate: function(){ + this.inherited(arguments); + if(this.tableNode.style.width){ + dojo.addClass(this.domNode, this.baseClass + "FixedWidth"); + } + }, + + isLoaded: function(){ + return this._isLoaded; + }, + + loadDropDown: function(/*Function*/ loadCallback){ + // summary: + // populates the menu + this._loadChildren(true); + this._isLoaded = true; + loadCallback(); + }, + + closeDropDown: function(){ + // overriding _HasDropDown.closeDropDown() + this.inherited(arguments); + + if(this.dropDown && this.dropDown.menuTableNode){ + // Erase possible width: 100% setting from _SelectMenu.resize(). + // Leaving it would interfere with the next openDropDown() call, which + // queries the natural size of the drop down. + this.dropDown.menuTableNode.style.width = ""; + } + }, + + uninitialize: function(preserveDom){ + if(this.dropDown && !this.dropDown._destroyed){ + this.dropDown.destroyRecursive(preserveDom); + delete this.dropDown; + } + this.inherited(arguments); + } +}); + +} + +if(!dojo._hasResource["dijit._editor.plugins.LinkDialog"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit._editor.plugins.LinkDialog"] = true; +dojo.provide("dijit._editor.plugins.LinkDialog"); + + + + + + + + + + + + + + +dojo.declare("dijit._editor.plugins.LinkDialog", dijit._editor._Plugin, { + // summary: + // This plugin provides the basis for an 'anchor' (link) dialog and an extension of it + // provides the image link dialog. + // + // description: + // The command provided by this plugin is: + // * createLink + + // Override _Plugin.buttonClass. This plugin is controlled by a DropDownButton + // (which triggers a TooltipDialog). + buttonClass: dijit.form.DropDownButton, + + // Override _Plugin.useDefaultCommand... processing is handled by this plugin, not by dijit.Editor. + useDefaultCommand: false, + + // urlRegExp: [protected] String + // Used for validating input as correct URL. While file:// urls are not terribly + // useful, they are technically valid. + urlRegExp: "((https?|ftps?|file)\\://|\./|/|)(/[a-zA-Z]{1,1}:/|)(((?:(?:[\\da-zA-Z](?:[-\\da-zA-Z]{0,61}[\\da-zA-Z])?)\\.)*(?:[a-zA-Z](?:[-\\da-zA-Z]{0,80}[\\da-zA-Z])?)\\.?)|(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.){3}(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])|(0[xX]0*[\\da-fA-F]?[\\da-fA-F]\\.){3}0[xX]0*[\\da-fA-F]?[\\da-fA-F]|(0+[0-3][0-7][0-7]\\.){3}0+[0-3][0-7][0-7]|(0|[1-9]\\d{0,8}|[1-3]\\d{9}|4[01]\\d{8}|42[0-8]\\d{7}|429[0-3]\\d{6}|4294[0-8]\\d{5}|42949[0-5]\\d{4}|429496[0-6]\\d{3}|4294967[01]\\d{2}|42949672[0-8]\\d|429496729[0-5])|0[xX]0*[\\da-fA-F]{1,8}|([\\da-fA-F]{1,4}\\:){7}[\\da-fA-F]{1,4}|([\\da-fA-F]{1,4}\\:){6}((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.){3}(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])))(\\:\\d+)?(/(?:[^?#\\s/]+/)*(?:[^?#\\s/]+(?:\\?[^?#\\s/]*)?(?:#.*)?)?)?", + + // emailRegExp: [protected] String + // Used for validating input as correct email address. Taken from dojox.validate + emailRegExp: "<?(mailto\\:)([!#-'*+\\-\\/-9=?A-Z^-~]+[.])*[!#-'*+\\-\\/-9=?A-Z^-~]+" /*username*/ + "@" + + "((?:(?:[\\da-zA-Z](?:[-\\da-zA-Z]{0,61}[\\da-zA-Z])?)\\.)+(?:[a-zA-Z](?:[-\\da-zA-Z]{0,6}[\\da-zA-Z])?)\\.?)|localhost|^[^-][a-zA-Z0-9_-]*>?", // host. + + // htmlTemplate: [protected] String + // String used for templating the HTML to insert at the desired point. + htmlTemplate: "<a href=\"${urlInput}\" _djrealurl=\"${urlInput}\"" + + " target=\"${targetSelect}\"" + + ">${textInput}</a>", + + // tag: [protected] String + // Tag used for the link type. + tag: "a", + + // _hostRxp [private] RegExp + // Regular expression used to validate url fragments (ip address, hostname, etc) + _hostRxp: new RegExp("^((([^\\[:]+):)?([^@]+)@)?(\\[([^\\]]+)\\]|([^\\[:]*))(:([0-9]+))?$"), + + // _userAtRxp [private] RegExp + // Regular expression used to validate e-mail address fragment. + _userAtRxp: new RegExp("^([!#-'*+\\-\\/-9=?A-Z^-~]+[.])*[!#-'*+\\-\\/-9=?A-Z^-~]+@", "i"), + + // linkDialogTemplate: [protected] String + // Template for contents of TooltipDialog to pick URL + linkDialogTemplate: [ + "<table><tr><td>", + "<label for='${id}_urlInput'>${url}</label>", + "</td><td>", + "<input dojoType='dijit.form.ValidationTextBox' required='true' " + + "id='${id}_urlInput' name='urlInput' intermediateChanges='true'>", + "</td></tr><tr><td>", + "<label for='${id}_textInput'>${text}</label>", + "</td><td>", + "<input dojoType='dijit.form.ValidationTextBox' required='true' id='${id}_textInput' " + + "name='textInput' intermediateChanges='true'>", + "</td></tr><tr><td>", + "<label for='${id}_targetSelect'>${target}</label>", + "</td><td>", + "<select id='${id}_targetSelect' name='targetSelect' dojoType='dijit.form.Select'>", + "<option selected='selected' value='_self'>${currentWindow}</option>", + "<option value='_blank'>${newWindow}</option>", + "<option value='_top'>${topWindow}</option>", + "<option value='_parent'>${parentWindow}</option>", + "</select>", + "</td></tr><tr><td colspan='2'>", + "<button dojoType='dijit.form.Button' type='submit' id='${id}_setButton'>${set}</button>", + "<button dojoType='dijit.form.Button' type='button' id='${id}_cancelButton'>${buttonCancel}</button>", + "</td></tr></table>" + ].join(""), + + _initButton: function(){ + // Override _Plugin._initButton() to initialize DropDownButton and TooltipDialog. + var _this = this; + this.tag = this.command == 'insertImage' ? 'img' : 'a'; + var messages = dojo.mixin(dojo.i18n.getLocalization("dijit", "common", this.lang), + dojo.i18n.getLocalization("dijit._editor", "LinkDialog", this.lang)); + var dropDown = (this.dropDown = new dijit.TooltipDialog({ + title: messages[this.command + "Title"], + execute: dojo.hitch(this, "setValue"), + onOpen: function(){ + _this._onOpenDialog(); + dijit.TooltipDialog.prototype.onOpen.apply(this, arguments); + }, + onCancel: function(){ + setTimeout(dojo.hitch(_this, "_onCloseDialog"),0); + } + })); + messages.urlRegExp = this.urlRegExp; + messages.id = dijit.getUniqueId(this.editor.id); + this._uniqueId = messages.id; + this._setContent(dropDown.title + + "<div style='border-bottom: 1px black solid;padding-bottom:2pt;margin-bottom:4pt'></div>" + + dojo.string.substitute(this.linkDialogTemplate, messages)); + dropDown.startup(); + this._urlInput = dijit.byId(this._uniqueId + "_urlInput"); + this._textInput = dijit.byId(this._uniqueId + "_textInput"); + this._setButton = dijit.byId(this._uniqueId + "_setButton"); + this.connect(dijit.byId(this._uniqueId + "_cancelButton"), "onClick", function(){ + this.dropDown.onCancel(); + }); + if(this._urlInput){ + this.connect(this._urlInput, "onChange", "_checkAndFixInput"); + } + if(this._textInput){ + this.connect(this._textInput, "onChange", "_checkAndFixInput"); + } + + // Build up the dual check for http/https/file:, and mailto formats. + this._urlRegExp = new RegExp("^" + this.urlRegExp + "$", "i"); + this._emailRegExp = new RegExp("^" + this.emailRegExp + "$", "i"); + this._urlInput.isValid = dojo.hitch(this, function(){ + // Function over-ride of isValid to test if the input matches a url or a mailto style link. + var value = this._urlInput.get("value"); + return this._urlRegExp.test(value) || this._emailRegExp.test(value); + }); + + this._connectTagEvents(); + this.inherited(arguments); + }, + + _checkAndFixInput: function(){ + // summary: + // A function to listen for onChange events and test the input contents + // for valid information, such as valid urls with http/https/ftp and if + // not present, try and guess if the input url is relative or not, and if + // not, append http:// to it. Also validates other fields as determined by + // the internal _isValid function. + var self = this; + var url = this._urlInput.get("value"); + var fixupUrl = function(url){ + var appendHttp = false; + var appendMailto = false; + if(url && url.length > 1){ + url = dojo.trim(url); + if(url.indexOf("mailto:") !== 0){ + if(url.indexOf("/") > 0){ + if(url.indexOf("://") === -1){ + // Check that it doesn't start with / or ./, which would + // imply 'target server relativeness' + if(url.charAt(0) !== '/' && url.indexOf("./") !== 0){ + if(self._hostRxp.test(url)){ + appendHttp = true; + } + } + } + }else if(self._userAtRxp.test(url)){ + // If it looks like a foo@, append a mailto. + appendMailto = true; + } + } + } + if(appendHttp){ + self._urlInput.set("value", "http://" + url); + } + if(appendMailto){ + self._urlInput.set("value", "mailto:" + url); + } + self._setButton.set("disabled", !self._isValid()); + }; + if(this._delayedCheck){ + clearTimeout(this._delayedCheck); + this._delayedCheck = null; + } + this._delayedCheck = setTimeout(function(){ + fixupUrl(url); + }, 250); + }, + + _connectTagEvents: function(){ + // summary: + // Over-ridable function that connects tag specific events. + this.editor.onLoadDeferred.addCallback(dojo.hitch(this, function(){ + this.connect(this.editor.editNode, "ondblclick", this._onDblClick); + })); + }, + + _isValid: function(){ + // summary: + // Internal function to allow validating of the inputs + // for a link to determine if set should be disabled or not + // tags: + // protected + return this._urlInput.isValid() && this._textInput.isValid(); + }, + + _setContent: function(staticPanel){ + // summary: + // Helper for _initButton above. Not sure why it's a separate method. + this.dropDown.set('content', staticPanel); + }, + + _checkValues: function(args){ + // summary: + // Function to check the values in args and 'fix' them up as needed. + // args: Object + // Content being set. + // tags: + // protected + if(args && args.urlInput){ + args.urlInput = args.urlInput.replace(/"/g, """); + } + return args; + }, + + setValue: function(args){ + // summary: + // Callback from the dialog when user presses "set" button. + // tags: + // private + //TODO: prevent closing popup if the text is empty + this._onCloseDialog(); + if(dojo.isIE){ //see #4151 + var sel = dijit.range.getSelection(this.editor.window); + var range = sel.getRangeAt(0); + var a = range.endContainer; + if(a.nodeType === 3){ + // Text node, may be the link contents, so check parent. + // This plugin doesn't really support nested HTML elements + // in the link, it assumes all link content is text. + a = a.parentNode; + } + if(a && (a.nodeName && a.nodeName.toLowerCase() !== this.tag)){ + // Stll nothing, one last thing to try on IE, as it might be 'img' + // and thus considered a control. + a = dojo.withGlobal(this.editor.window, + "getSelectedElement", dijit._editor.selection, [this.tag]); + } + if(a && (a.nodeName && a.nodeName.toLowerCase() === this.tag)){ + // Okay, we do have a match. IE, for some reason, sometimes pastes before + // instead of removing the targetted paste-over element, so we unlink the + // old one first. If we do not the <a> tag remains, but it has no content, + // so isn't readily visible (but is wrong for the action). + if(this.editor.queryCommandEnabled("unlink")){ + // Select all the link childent, then unlink. The following insert will + // then replace the selected text. + dojo.withGlobal(this.editor.window, + "selectElementChildren", dijit._editor.selection, [a]); + this.editor.execCommand("unlink"); + } + } + } + // make sure values are properly escaped, etc. + args = this._checkValues(args); + this.editor.execCommand('inserthtml', + dojo.string.substitute(this.htmlTemplate, args)); + }, + + _onCloseDialog: function(){ + // summary: + // Handler for close event on the dialog + this.editor.focus(); + }, + + _getCurrentValues: function(a){ + // summary: + // Over-ride for getting the values to set in the dropdown. + // a: + // The anchor/link to process for data for the dropdown. + // tags: + // protected + var url, text, target; + if(a && a.tagName.toLowerCase() === this.tag){ + url = a.getAttribute('_djrealurl') || a.getAttribute('href'); + target = a.getAttribute('target') || "_self"; + text = a.textContent || a.innerText; + dojo.withGlobal(this.editor.window, "selectElement", dijit._editor.selection, [a, true]); + }else{ + text = dojo.withGlobal(this.editor.window, dijit._editor.selection.getSelectedText); + } + return {urlInput: url || '', textInput: text || '', targetSelect: target || ''}; //Object; + }, + + _onOpenDialog: function(){ + // summary: + // Handler for when the dialog is opened. + // If the caret is currently in a URL then populate the URL's info into the dialog. + var a; + if(dojo.isIE){ + // IE is difficult to select the element in, using the range unified + // API seems to work reasonably well. + var sel = dijit.range.getSelection(this.editor.window); + var range = sel.getRangeAt(0); + a = range.endContainer; + if(a.nodeType === 3){ + // Text node, may be the link contents, so check parent. + // This plugin doesn't really support nested HTML elements + // in the link, it assumes all link content is text. + a = a.parentNode; + } + if(a && (a.nodeName && a.nodeName.toLowerCase() !== this.tag)){ + // Stll nothing, one last thing to try on IE, as it might be 'img' + // and thus considered a control. + a = dojo.withGlobal(this.editor.window, + "getSelectedElement", dijit._editor.selection, [this.tag]); + } + }else{ + a = dojo.withGlobal(this.editor.window, + "getAncestorElement", dijit._editor.selection, [this.tag]); + } + this.dropDown.reset(); + this._setButton.set("disabled", true); + this.dropDown.set("value", this._getCurrentValues(a)); + }, + + _onDblClick: function(e){ + // summary: + // Function to define a behavior on double clicks on the element + // type this dialog edits to select it and pop up the editor + // dialog. + // e: Object + // The double-click event. + // tags: + // protected. + if(e && e.target){ + var t = e.target; + var tg = t.tagName? t.tagName.toLowerCase() : ""; + if(tg === this.tag && dojo.attr(t,"href")){ + dojo.withGlobal(this.editor.window, + "selectElement", + dijit._editor.selection, [t]); + this.editor.onDisplayChanged(); + setTimeout(dojo.hitch(this, function(){ + // Focus shift outside the event handler. + // IE doesn't like focus changes in event handles. + this.button.set("disabled", false); + this.button.openDropDown(); + }), 10); + } + } + } +}); + +dojo.declare("dijit._editor.plugins.ImgLinkDialog", [dijit._editor.plugins.LinkDialog], { + // summary: + // This plugin extends LinkDialog and adds in a plugin for handling image links. + // provides the image link dialog. + // + // description: + // The command provided by this plugin is: + // * insertImage + + // linkDialogTemplate: [protected] String + // Over-ride for template since img dialog doesn't need target that anchor tags may. + linkDialogTemplate: [ + "<table><tr><td>", + "<label for='${id}_urlInput'>${url}</label>", + "</td><td>", + "<input dojoType='dijit.form.ValidationTextBox' regExp='${urlRegExp}' " + + "required='true' id='${id}_urlInput' name='urlInput' intermediateChanges='true'>", + "</td></tr><tr><td>", + "<label for='${id}_textInput'>${text}</label>", + "</td><td>", + "<input dojoType='dijit.form.ValidationTextBox' required='false' id='${id}_textInput' " + + "name='textInput' intermediateChanges='true'>", + "</td></tr><tr><td>", + "</td><td>", + "</td></tr><tr><td colspan='2'>", + "<button dojoType='dijit.form.Button' type='submit' id='${id}_setButton'>${set}</button>", + "<button dojoType='dijit.form.Button' type='button' id='${id}_cancelButton'>${buttonCancel}</button>", + "</td></tr></table>" + ].join(""), + + // htmlTemplate: [protected] String + // String used for templating the <img> HTML to insert at the desired point. + htmlTemplate: "<img src=\"${urlInput}\" _djrealurl=\"${urlInput}\" alt=\"${textInput}\" />", + + // tag: [protected] String + // Tag used for the link type (img). + tag: "img", + + _getCurrentValues: function(img){ + // summary: + // Over-ride for getting the values to set in the dropdown. + // a: + // The anchor/link to process for data for the dropdown. + // tags: + // protected + var url, text; + if(img && img.tagName.toLowerCase() === this.tag){ + url = img.getAttribute('_djrealurl') || img.getAttribute('src'); + text = img.getAttribute('alt'); + dojo.withGlobal(this.editor.window, + "selectElement", dijit._editor.selection, [img, true]); + }else{ + text = dojo.withGlobal(this.editor.window, dijit._editor.selection.getSelectedText); + } + return {urlInput: url || '', textInput: text || ''}; //Object; + }, + + _isValid: function(){ + // summary: + // Over-ride for images. You can have alt text of blank, it is valid. + // tags: + // protected + return this._urlInput.isValid(); + }, + + _connectTagEvents: function(){ + // summary: + // Over-ridable function that connects tag specific events. + this.inherited(arguments); + this.editor.onLoadDeferred.addCallback(dojo.hitch(this, function(){ + // Use onmousedown instead of onclick. Seems that IE eats the first onclick + // to wrap it in a selector box, then the second one acts as onclick. See #10420 + this.connect(this.editor.editNode, "onmousedown", this._selectTag); + })); + }, + + _selectTag: function(e){ + // summary: + // A simple event handler that lets me select an image if it is clicked on. + // makes it easier to select images in a standard way across browsers. Otherwise + // selecting an image for edit becomes difficult. + // e: Event + // The mousedown event. + // tags: + // private + if(e && e.target){ + var t = e.target; + var tg = t.tagName? t.tagName.toLowerCase() : ""; + if(tg === this.tag){ + dojo.withGlobal(this.editor.window, + "selectElement", + dijit._editor.selection, [t]); + } + } + }, + + _checkValues: function(args){ + // summary: + // Function to check the values in args and 'fix' them up as needed + // (special characters in the url or alt text) + // args: Object + // Content being set. + // tags: + // protected + if(args && args.urlInput){ + args.urlInput = args.urlInput.replace(/"/g, """); + } + if(args && args.textInput){ + args.textInput = args.textInput.replace(/"/g, """); + } + return args; + }, + + _onDblClick: function(e){ + // summary: + // Function to define a behavior on double clicks on the element + // type this dialog edits to select it and pop up the editor + // dialog. + // e: Object + // The double-click event. + // tags: + // protected. + if(e && e.target){ + var t = e.target; + var tg = t.tagName? t.tagName.toLowerCase() : ""; + if(tg === this.tag && dojo.attr(t,"src")){ + dojo.withGlobal(this.editor.window, + "selectElement", + dijit._editor.selection, [t]); + this.editor.onDisplayChanged(); + setTimeout(dojo.hitch(this, function(){ + // Focus shift outside the event handler. + // IE doesn't like focus changes in event handles. + this.button.set("disabled", false); + this.button.openDropDown(); + }), 10); + } + } + } +}); + +// Register this plugin. +dojo.subscribe(dijit._scopeName + ".Editor.getPlugin",null,function(o){ + if(o.plugin){ return; } + switch(o.args.name){ + case "createLink": + o.plugin = new dijit._editor.plugins.LinkDialog({command: o.args.name}); + break; + case "insertImage": + o.plugin = new dijit._editor.plugins.ImgLinkDialog({command: o.args.name}); + break; + } +}); + +} + +if(!dojo._hasResource["dijit.MenuBar"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.MenuBar"] = true; +dojo.provide("dijit.MenuBar"); + + + +dojo.declare("dijit.MenuBar", dijit._MenuBase, { + // summary: + // A menu bar, listing menu choices horizontally, like the "File" menu in most desktop applications + + templateString: dojo.cache("dijit", "templates/MenuBar.html", "<div class=\"dijitMenuBar dijitMenuPassive\" dojoAttachPoint=\"containerNode\" waiRole=\"menubar\" tabIndex=\"${tabIndex}\" dojoAttachEvent=\"onkeypress: _onKeyPress\"></div>\n"), + + baseClass: "dijitMenuBar", + + // _isMenuBar: [protected] Boolean + // This is a MenuBar widget, not a (vertical) Menu widget. + _isMenuBar: true, + + postCreate: function(){ + var k = dojo.keys, l = this.isLeftToRight(); + this.connectKeyNavHandlers( + l ? [k.LEFT_ARROW] : [k.RIGHT_ARROW], + l ? [k.RIGHT_ARROW] : [k.LEFT_ARROW] + ); + + // parameter to dijit.popup.open() about where to put popup (relative to this.domNode) + this._orient = this.isLeftToRight() ? {BL: 'TL'} : {BR: 'TR'}; + }, + + focusChild: function(item){ + // overload focusChild so that whenever the focus is moved to a new item, + // check the previous focused whether it has its popup open, if so, after + // focusing the new item, open its submenu immediately + var prev_item = this.focusedChild, + showpopup = prev_item && prev_item.popup && prev_item.popup.isShowingNow; + this.inherited(arguments); + if(showpopup && item.popup && !item.disabled){ + this._openPopup(); // TODO: on down arrow, _openPopup() is called here and in onItemClick() + } + }, + + _onKeyPress: function(/*Event*/ evt){ + // summary: + // Handle keyboard based menu navigation. + // tags: + // protected + + if(evt.ctrlKey || evt.altKey){ return; } + + switch(evt.charOrCode){ + case dojo.keys.DOWN_ARROW: + this._moveToPopup(evt); + dojo.stopEvent(evt); + } + }, + + onItemClick: function(/*dijit._Widget*/ item, /*Event*/ evt){ + // summary: + // Handle clicks on an item. Cancels a dropdown if already open. + // tags: + // private + if(item.popup && item.popup.isShowingNow){ + item.popup.onCancel(); + }else{ + this.inherited(arguments); + } + } +}); + +} + +if(!dojo._hasResource["dijit.MenuBarItem"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.MenuBarItem"] = true; +dojo.provide("dijit.MenuBarItem"); + + + +dojo.declare("dijit._MenuBarItemMixin", null, { + templateString: dojo.cache("dijit", "templates/MenuBarItem.html", "<div class=\"dijitReset dijitInline dijitMenuItem dijitMenuItemLabel\" dojoAttachPoint=\"focusNode\" waiRole=\"menuitem\" tabIndex=\"-1\"\n\t\tdojoAttachEvent=\"onmouseenter:_onHover,onmouseleave:_onUnhover,ondijitclick:_onClick\">\n\t<span dojoAttachPoint=\"containerNode\"></span>\n</div>\n"), + + // overriding attributeMap because we don't have icon + attributeMap: dojo.delegate(dijit._Widget.prototype.attributeMap, { + label: { node: "containerNode", type: "innerHTML" } + }) +}); + +dojo.declare("dijit.MenuBarItem", [dijit.MenuItem, dijit._MenuBarItemMixin], { + // summary: + // Item in a MenuBar that's clickable, and doesn't spawn a submenu when pressed (or hovered) + +}); + +} + +if(!dojo._hasResource["dijit.PopupMenuBarItem"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.PopupMenuBarItem"] = true; +dojo.provide("dijit.PopupMenuBarItem"); + + + + +dojo.declare("dijit.PopupMenuBarItem", [dijit.PopupMenuItem, dijit._MenuBarItemMixin], { + // summary: + // Item in a MenuBar like "File" or "Edit", that spawns a submenu when pressed (or hovered) +}); + + +} + +if(!dojo._hasResource["dojo.number"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.number"] = true; +dojo.provide("dojo.number"); + + + + + + + +/*===== +dojo.number = { + // summary: localized formatting and parsing routines for Number +} + +dojo.number.__FormatOptions = function(){ + // pattern: String? + // override [formatting pattern](http://www.unicode.org/reports/tr35/#Number_Format_Patterns) + // with this string. Default value is based on locale. Overriding this property will defeat + // localization. Literal characters in patterns are not supported. + // type: String? + // choose a format type based on the locale from the following: + // decimal, scientific (not yet supported), percent, currency. decimal by default. + // places: Number? + // fixed number of decimal places to show. This overrides any + // information in the provided pattern. + // round: Number? + // 5 rounds to nearest .5; 0 rounds to nearest whole (default). -1 + // means do not round. + // locale: String? + // override the locale used to determine formatting rules + // fractional: Boolean? + // If false, show no decimal places, overriding places and pattern settings. + this.pattern = pattern; + this.type = type; + this.places = places; + this.round = round; + this.locale = locale; + this.fractional = fractional; +} +=====*/ + +dojo.number.format = function(/*Number*/value, /*dojo.number.__FormatOptions?*/options){ + // summary: + // Format a Number as a String, using locale-specific settings + // description: + // Create a string from a Number using a known localized pattern. + // Formatting patterns appropriate to the locale are chosen from the + // [Common Locale Data Repository](http://unicode.org/cldr) as well as the appropriate symbols and + // delimiters. + // If value is Infinity, -Infinity, or is not a valid JavaScript number, return null. + // value: + // the number to be formatted + + options = dojo.mixin({}, options || {}); + var locale = dojo.i18n.normalizeLocale(options.locale), + bundle = dojo.i18n.getLocalization("dojo.cldr", "number", locale); + options.customs = bundle; + var pattern = options.pattern || bundle[(options.type || "decimal") + "Format"]; + if(isNaN(value) || Math.abs(value) == Infinity){ return null; } // null + return dojo.number._applyPattern(value, pattern, options); // String +}; + +//dojo.number._numberPatternRE = /(?:[#0]*,?)*[#0](?:\.0*#*)?/; // not precise, but good enough +dojo.number._numberPatternRE = /[#0,]*[#0](?:\.0*#*)?/; // not precise, but good enough + +dojo.number._applyPattern = function(/*Number*/value, /*String*/pattern, /*dojo.number.__FormatOptions?*/options){ + // summary: + // Apply pattern to format value as a string using options. Gives no + // consideration to local customs. + // value: + // the number to be formatted. + // pattern: + // a pattern string as described by + // [unicode.org TR35](http://www.unicode.org/reports/tr35/#Number_Format_Patterns) + // options: dojo.number.__FormatOptions? + // _applyPattern is usually called via `dojo.number.format()` which + // populates an extra property in the options parameter, "customs". + // The customs object specifies group and decimal parameters if set. + + //TODO: support escapes + options = options || {}; + var group = options.customs.group, + decimal = options.customs.decimal, + patternList = pattern.split(';'), + positivePattern = patternList[0]; + pattern = patternList[(value < 0) ? 1 : 0] || ("-" + positivePattern); + + //TODO: only test against unescaped + if(pattern.indexOf('%') != -1){ + value *= 100; + }else if(pattern.indexOf('\u2030') != -1){ + value *= 1000; // per mille + }else if(pattern.indexOf('\u00a4') != -1){ + group = options.customs.currencyGroup || group;//mixins instead? + decimal = options.customs.currencyDecimal || decimal;// Should these be mixins instead? + pattern = pattern.replace(/\u00a4{1,3}/, function(match){ + var prop = ["symbol", "currency", "displayName"][match.length-1]; + return options[prop] || options.currency || ""; + }); + }else if(pattern.indexOf('E') != -1){ + throw new Error("exponential notation not supported"); + } + + //TODO: support @ sig figs? + var numberPatternRE = dojo.number._numberPatternRE; + var numberPattern = positivePattern.match(numberPatternRE); + if(!numberPattern){ + throw new Error("unable to find a number expression in pattern: "+pattern); + } + if(options.fractional === false){ options.places = 0; } + return pattern.replace(numberPatternRE, + dojo.number._formatAbsolute(value, numberPattern[0], {decimal: decimal, group: group, places: options.places, round: options.round})); +} + +dojo.number.round = function(/*Number*/value, /*Number?*/places, /*Number?*/increment){ + // summary: + // Rounds to the nearest value with the given number of decimal places, away from zero + // description: + // Rounds to the nearest value with the given number of decimal places, away from zero if equal. + // Similar to Number.toFixed(), but compensates for browser quirks. Rounding can be done by + // fractional increments also, such as the nearest quarter. + // NOTE: Subject to floating point errors. See dojox.math.round for experimental workaround. + // value: + // The number to round + // places: + // The number of decimal places where rounding takes place. Defaults to 0 for whole rounding. + // Must be non-negative. + // increment: + // Rounds next place to nearest value of increment/10. 10 by default. + // example: + // >>> dojo.number.round(-0.5) + // -1 + // >>> dojo.number.round(162.295, 2) + // 162.29 // note floating point error. Should be 162.3 + // >>> dojo.number.round(10.71, 0, 2.5) + // 10.75 + var factor = 10 / (increment || 10); + return (factor * +value).toFixed(places) / factor; // Number +} + +if((0.9).toFixed() == 0){ + // (isIE) toFixed() bug workaround: Rounding fails on IE when most significant digit + // is just after the rounding place and is >=5 + (function(){ + var round = dojo.number.round; + dojo.number.round = function(v, p, m){ + var d = Math.pow(10, -p || 0), a = Math.abs(v); + if(!v || a >= d || a * Math.pow(10, p + 1) < 5){ + d = 0; + } + return round(v, p, m) + (v > 0 ? d : -d); + } + })(); +} + +/*===== +dojo.number.__FormatAbsoluteOptions = function(){ + // decimal: String? + // the decimal separator + // group: String? + // the group separator + // places: Number?|String? + // number of decimal places. the range "n,m" will format to m places. + // round: Number? + // 5 rounds to nearest .5; 0 rounds to nearest whole (default). -1 + // means don't round. + this.decimal = decimal; + this.group = group; + this.places = places; + this.round = round; +} +=====*/ + +dojo.number._formatAbsolute = function(/*Number*/value, /*String*/pattern, /*dojo.number.__FormatAbsoluteOptions?*/options){ + // summary: + // Apply numeric pattern to absolute value using options. Gives no + // consideration to local customs. + // value: + // the number to be formatted, ignores sign + // pattern: + // the number portion of a pattern (e.g. `#,##0.00`) + options = options || {}; + if(options.places === true){options.places=0;} + if(options.places === Infinity){options.places=6;} // avoid a loop; pick a limit + + var patternParts = pattern.split("."), + comma = typeof options.places == "string" && options.places.indexOf(","), + maxPlaces = options.places; + if(comma){ + maxPlaces = options.places.substring(comma + 1); + }else if(!(maxPlaces >= 0)){ + maxPlaces = (patternParts[1] || []).length; + } + if(!(options.round < 0)){ + value = dojo.number.round(value, maxPlaces, options.round); + } + + var valueParts = String(Math.abs(value)).split("."), + fractional = valueParts[1] || ""; + if(patternParts[1] || options.places){ + if(comma){ + options.places = options.places.substring(0, comma); + } + // Pad fractional with trailing zeros + var pad = options.places !== undefined ? options.places : (patternParts[1] && patternParts[1].lastIndexOf("0") + 1); + if(pad > fractional.length){ + valueParts[1] = dojo.string.pad(fractional, pad, '0', true); + } + + // Truncate fractional + if(maxPlaces < fractional.length){ + valueParts[1] = fractional.substr(0, maxPlaces); + } + }else{ + if(valueParts[1]){ valueParts.pop(); } + } + + // Pad whole with leading zeros + var patternDigits = patternParts[0].replace(',', ''); + pad = patternDigits.indexOf("0"); + if(pad != -1){ + pad = patternDigits.length - pad; + if(pad > valueParts[0].length){ + valueParts[0] = dojo.string.pad(valueParts[0], pad); + } + + // Truncate whole + if(patternDigits.indexOf("#") == -1){ + valueParts[0] = valueParts[0].substr(valueParts[0].length - pad); + } + } + + // Add group separators + var index = patternParts[0].lastIndexOf(','), + groupSize, groupSize2; + if(index != -1){ + groupSize = patternParts[0].length - index - 1; + var remainder = patternParts[0].substr(0, index); + index = remainder.lastIndexOf(','); + if(index != -1){ + groupSize2 = remainder.length - index - 1; + } + } + var pieces = []; + for(var whole = valueParts[0]; whole;){ + var off = whole.length - groupSize; + pieces.push((off > 0) ? whole.substr(off) : whole); + whole = (off > 0) ? whole.slice(0, off) : ""; + if(groupSize2){ + groupSize = groupSize2; + delete groupSize2; + } + } + valueParts[0] = pieces.reverse().join(options.group || ","); + + return valueParts.join(options.decimal || "."); +}; + +/*===== +dojo.number.__RegexpOptions = function(){ + // pattern: String? + // override [formatting pattern](http://www.unicode.org/reports/tr35/#Number_Format_Patterns) + // with this string. Default value is based on locale. Overriding this property will defeat + // localization. + // type: String? + // choose a format type based on the locale from the following: + // decimal, scientific (not yet supported), percent, currency. decimal by default. + // locale: String? + // override the locale used to determine formatting rules + // strict: Boolean? + // strict parsing, false by default. Strict parsing requires input as produced by the format() method. + // Non-strict is more permissive, e.g. flexible on white space, omitting thousands separators + // places: Number|String? + // number of decimal places to accept: Infinity, a positive number, or + // a range "n,m". Defined by pattern or Infinity if pattern not provided. + this.pattern = pattern; + this.type = type; + this.locale = locale; + this.strict = strict; + this.places = places; +} +=====*/ +dojo.number.regexp = function(/*dojo.number.__RegexpOptions?*/options){ + // summary: + // Builds the regular needed to parse a number + // description: + // Returns regular expression with positive and negative match, group + // and decimal separators + return dojo.number._parseInfo(options).regexp; // String +} + +dojo.number._parseInfo = function(/*Object?*/options){ + options = options || {}; + var locale = dojo.i18n.normalizeLocale(options.locale), + bundle = dojo.i18n.getLocalization("dojo.cldr", "number", locale), + pattern = options.pattern || bundle[(options.type || "decimal") + "Format"], +//TODO: memoize? + group = bundle.group, + decimal = bundle.decimal, + factor = 1; + + if(pattern.indexOf('%') != -1){ + factor /= 100; + }else if(pattern.indexOf('\u2030') != -1){ + factor /= 1000; // per mille + }else{ + var isCurrency = pattern.indexOf('\u00a4') != -1; + if(isCurrency){ + group = bundle.currencyGroup || group; + decimal = bundle.currencyDecimal || decimal; + } + } + + //TODO: handle quoted escapes + var patternList = pattern.split(';'); + if(patternList.length == 1){ + patternList.push("-" + patternList[0]); + } + + var re = dojo.regexp.buildGroupRE(patternList, function(pattern){ + pattern = "(?:"+dojo.regexp.escapeString(pattern, '.')+")"; + return pattern.replace(dojo.number._numberPatternRE, function(format){ + var flags = { + signed: false, + separator: options.strict ? group : [group,""], + fractional: options.fractional, + decimal: decimal, + exponent: false + }, + + parts = format.split('.'), + places = options.places; + + // special condition for percent (factor != 1) + // allow decimal places even if not specified in pattern + if(parts.length == 1 && factor != 1){ + parts[1] = "###"; + } + if(parts.length == 1 || places === 0){ + flags.fractional = false; + }else{ + if(places === undefined){ places = options.pattern ? parts[1].lastIndexOf('0') + 1 : Infinity; } + if(places && options.fractional == undefined){flags.fractional = true;} // required fractional, unless otherwise specified + if(!options.places && (places < parts[1].length)){ places += "," + parts[1].length; } + flags.places = places; + } + var groups = parts[0].split(','); + if(groups.length > 1){ + flags.groupSize = groups.pop().length; + if(groups.length > 1){ + flags.groupSize2 = groups.pop().length; + } + } + return "("+dojo.number._realNumberRegexp(flags)+")"; + }); + }, true); + + if(isCurrency){ + // substitute the currency symbol for the placeholder in the pattern + re = re.replace(/([\s\xa0]*)(\u00a4{1,3})([\s\xa0]*)/g, function(match, before, target, after){ + var prop = ["symbol", "currency", "displayName"][target.length-1], + symbol = dojo.regexp.escapeString(options[prop] || options.currency || ""); + before = before ? "[\\s\\xa0]" : ""; + after = after ? "[\\s\\xa0]" : ""; + if(!options.strict){ + if(before){before += "*";} + if(after){after += "*";} + return "(?:"+before+symbol+after+")?"; + } + return before+symbol+after; + }); + } + +//TODO: substitute localized sign/percent/permille/etc.? + + // normalize whitespace and return + return {regexp: re.replace(/[\xa0 ]/g, "[\\s\\xa0]"), group: group, decimal: decimal, factor: factor}; // Object +} + +/*===== +dojo.number.__ParseOptions = function(){ + // pattern: String? + // override [formatting pattern](http://www.unicode.org/reports/tr35/#Number_Format_Patterns) + // with this string. Default value is based on locale. Overriding this property will defeat + // localization. Literal characters in patterns are not supported. + // type: String? + // choose a format type based on the locale from the following: + // decimal, scientific (not yet supported), percent, currency. decimal by default. + // locale: String? + // override the locale used to determine formatting rules + // strict: Boolean? + // strict parsing, false by default. Strict parsing requires input as produced by the format() method. + // Non-strict is more permissive, e.g. flexible on white space, omitting thousands separators + // fractional: Boolean?|Array? + // Whether to include the fractional portion, where the number of decimal places are implied by pattern + // or explicit 'places' parameter. The value [true,false] makes the fractional portion optional. + this.pattern = pattern; + this.type = type; + this.locale = locale; + this.strict = strict; + this.fractional = fractional; +} +=====*/ +dojo.number.parse = function(/*String*/expression, /*dojo.number.__ParseOptions?*/options){ + // summary: + // Convert a properly formatted string to a primitive Number, using + // locale-specific settings. + // description: + // Create a Number from a string using a known localized pattern. + // Formatting patterns are chosen appropriate to the locale + // and follow the syntax described by + // [unicode.org TR35](http://www.unicode.org/reports/tr35/#Number_Format_Patterns) + // Note that literal characters in patterns are not supported. + // expression: + // A string representation of a Number + var info = dojo.number._parseInfo(options), + results = (new RegExp("^"+info.regexp+"$")).exec(expression); + if(!results){ + return NaN; //NaN + } + var absoluteMatch = results[1]; // match for the positive expression + if(!results[1]){ + if(!results[2]){ + return NaN; //NaN + } + // matched the negative pattern + absoluteMatch =results[2]; + info.factor *= -1; + } + + // Transform it to something Javascript can parse as a number. Normalize + // decimal point and strip out group separators or alternate forms of whitespace + absoluteMatch = absoluteMatch. + replace(new RegExp("["+info.group + "\\s\\xa0"+"]", "g"), ""). + replace(info.decimal, "."); + // Adjust for negative sign, percent, etc. as necessary + return absoluteMatch * info.factor; //Number +}; + +/*===== +dojo.number.__RealNumberRegexpFlags = function(){ + // places: Number? + // The integer number of decimal places or a range given as "n,m". If + // not given, the decimal part is optional and the number of places is + // unlimited. + // decimal: String? + // A string for the character used as the decimal point. Default + // is ".". + // fractional: Boolean?|Array? + // Whether decimal places are used. Can be true, false, or [true, + // false]. Default is [true, false] which means optional. + // exponent: Boolean?|Array? + // Express in exponential notation. Can be true, false, or [true, + // false]. Default is [true, false], (i.e. will match if the + // exponential part is present are not). + // eSigned: Boolean?|Array? + // The leading plus-or-minus sign on the exponent. Can be true, + // false, or [true, false]. Default is [true, false], (i.e. will + // match if it is signed or unsigned). flags in regexp.integer can be + // applied. + this.places = places; + this.decimal = decimal; + this.fractional = fractional; + this.exponent = exponent; + this.eSigned = eSigned; +} +=====*/ + +dojo.number._realNumberRegexp = function(/*dojo.number.__RealNumberRegexpFlags?*/flags){ + // summary: + // Builds a regular expression to match a real number in exponential + // notation + + // assign default values to missing parameters + flags = flags || {}; + //TODO: use mixin instead? + if(!("places" in flags)){ flags.places = Infinity; } + if(typeof flags.decimal != "string"){ flags.decimal = "."; } + if(!("fractional" in flags) || /^0/.test(flags.places)){ flags.fractional = [true, false]; } + if(!("exponent" in flags)){ flags.exponent = [true, false]; } + if(!("eSigned" in flags)){ flags.eSigned = [true, false]; } + + var integerRE = dojo.number._integerRegexp(flags), + decimalRE = dojo.regexp.buildGroupRE(flags.fractional, + function(q){ + var re = ""; + if(q && (flags.places!==0)){ + re = "\\" + flags.decimal; + if(flags.places == Infinity){ + re = "(?:" + re + "\\d+)?"; + }else{ + re += "\\d{" + flags.places + "}"; + } + } + return re; + }, + true + ); + + var exponentRE = dojo.regexp.buildGroupRE(flags.exponent, + function(q){ + if(q){ return "([eE]" + dojo.number._integerRegexp({ signed: flags.eSigned}) + ")"; } + return ""; + } + ); + + var realRE = integerRE + decimalRE; + // allow for decimals without integers, e.g. .25 + if(decimalRE){realRE = "(?:(?:"+ realRE + ")|(?:" + decimalRE + "))";} + return realRE + exponentRE; // String +}; + +/*===== +dojo.number.__IntegerRegexpFlags = function(){ + // signed: Boolean? + // The leading plus-or-minus sign. Can be true, false, or `[true,false]`. + // Default is `[true, false]`, (i.e. will match if it is signed + // or unsigned). + // separator: String? + // The character used as the thousands separator. Default is no + // separator. For more than one symbol use an array, e.g. `[",", ""]`, + // makes ',' optional. + // groupSize: Number? + // group size between separators + // groupSize2: Number? + // second grouping, where separators 2..n have a different interval than the first separator (for India) + this.signed = signed; + this.separator = separator; + this.groupSize = groupSize; + this.groupSize2 = groupSize2; +} +=====*/ + +dojo.number._integerRegexp = function(/*dojo.number.__IntegerRegexpFlags?*/flags){ + // summary: + // Builds a regular expression that matches an integer + + // assign default values to missing parameters + flags = flags || {}; + if(!("signed" in flags)){ flags.signed = [true, false]; } + if(!("separator" in flags)){ + flags.separator = ""; + }else if(!("groupSize" in flags)){ + flags.groupSize = 3; + } + + var signRE = dojo.regexp.buildGroupRE(flags.signed, + function(q){ return q ? "[-+]" : ""; }, + true + ); + + var numberRE = dojo.regexp.buildGroupRE(flags.separator, + function(sep){ + if(!sep){ + return "(?:\\d+)"; + } + + sep = dojo.regexp.escapeString(sep); + if(sep == " "){ sep = "\\s"; } + else if(sep == "\xa0"){ sep = "\\s\\xa0"; } + + var grp = flags.groupSize, grp2 = flags.groupSize2; + //TODO: should we continue to enforce that numbers with separators begin with 1-9? See #6933 + if(grp2){ + var grp2RE = "(?:0|[1-9]\\d{0," + (grp2-1) + "}(?:[" + sep + "]\\d{" + grp2 + "})*[" + sep + "]\\d{" + grp + "})"; + return ((grp-grp2) > 0) ? "(?:" + grp2RE + "|(?:0|[1-9]\\d{0," + (grp-1) + "}))" : grp2RE; + } + return "(?:0|[1-9]\\d{0," + (grp-1) + "}(?:[" + sep + "]\\d{" + grp + "})*)"; + }, + true + ); + + return signRE + numberRE; // String +} + +} + +if(!dojo._hasResource["dijit.ProgressBar"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.ProgressBar"] = true; +dojo.provide("dijit.ProgressBar"); + + + + + + + +dojo.declare("dijit.ProgressBar", [dijit._Widget, dijit._Templated], { + // summary: + // A progress indication widget, showing the amount completed + // (often the percentage completed) of a task. + // + // example: + // | <div dojoType="ProgressBar" + // | places="0" + // | progress="..." maximum="..."> + // | </div> + // + // description: + // Note that the progress bar is updated via (a non-standard) + // update() method, rather than via attr() like other widgets. + + // progress: [const] String (Percentage or Number) + // Number or percentage indicating amount of task completed. + // With "%": percentage value, 0% <= progress <= 100%, or + // without "%": absolute value, 0 <= progress <= maximum + // TODO: rename to value for 2.0 + progress: "0", + + // maximum: [const] Float + // Max sample number + maximum: 100, + + // places: [const] Number + // Number of places to show in values; 0 by default + places: 0, + + // indeterminate: [const] Boolean + // If false: show progress value (number or percentage). + // If true: show that a process is underway but that the amount completed is unknown. + indeterminate: false, + + // name: String + // this is the field name (for a form) if set. This needs to be set if you want to use + // this widget in a dijit.form.Form widget (such as dijit.Dialog) + name: '', + + templateString: dojo.cache("dijit", "templates/ProgressBar.html", "<div class=\"dijitProgressBar dijitProgressBarEmpty\"\n\t><div waiRole=\"progressbar\" dojoAttachPoint=\"internalProgress\" class=\"dijitProgressBarFull\"\n\t\t><div class=\"dijitProgressBarTile\"></div\n\t\t><span style=\"visibility:hidden\"> </span\n\t></div\n\t><div dojoAttachPoint=\"label\" class=\"dijitProgressBarLabel\" id=\"${id}_label\"> </div\n\t><img dojoAttachPoint=\"indeterminateHighContrastImage\" class=\"dijitProgressBarIndeterminateHighContrastImage\" alt=\"\"\n/></div>\n"), + + // _indeterminateHighContrastImagePath: [private] dojo._URL + // URL to image to use for indeterminate progress bar when display is in high contrast mode + _indeterminateHighContrastImagePath: + dojo.moduleUrl("dijit", "themes/a11y/indeterminate_progress.gif"), + + // public functions + postCreate: function(){ + this.inherited(arguments); + this.indeterminateHighContrastImage.setAttribute("src", + this._indeterminateHighContrastImagePath.toString()); + this.update(); + }, + + update: function(/*Object?*/attributes){ + // summary: + // Change attributes of ProgressBar, similar to attr(hash). + // + // attributes: + // May provide progress and/or maximum properties on this parameter; + // see attribute specs for details. + // + // example: + // | myProgressBar.update({'indeterminate': true}); + // | myProgressBar.update({'progress': 80}); + + // TODO: deprecate this method and use set() instead + + dojo.mixin(this, attributes || {}); + var tip = this.internalProgress; + var percent = 1, classFunc; + if(this.indeterminate){ + classFunc = "addClass"; + dijit.removeWaiState(tip, "valuenow"); + dijit.removeWaiState(tip, "valuemin"); + dijit.removeWaiState(tip, "valuemax"); + }else{ + classFunc = "removeClass"; + if(String(this.progress).indexOf("%") != -1){ + percent = Math.min(parseFloat(this.progress)/100, 1); + this.progress = percent * this.maximum; + }else{ + this.progress = Math.min(this.progress, this.maximum); + percent = this.progress / this.maximum; + } + var text = this.report(percent); + this.label.firstChild.nodeValue = text; + dijit.setWaiState(tip, "describedby", this.label.id); + dijit.setWaiState(tip, "valuenow", this.progress); + dijit.setWaiState(tip, "valuemin", 0); + dijit.setWaiState(tip, "valuemax", this.maximum); + } + dojo[classFunc](this.domNode, "dijitProgressBarIndeterminate"); + tip.style.width = (percent * 100) + "%"; + this.onChange(); + }, + + _setValueAttr: function(v){ + if(v == Infinity){ + this.update({indeterminate:true}); + }else{ + this.update({indeterminate:false, progress:v}); + } + }, + + _getValueAttr: function(){ + return this.progress; + }, + + report: function(/*float*/percent){ + // summary: + // Generates message to show inside progress bar (normally indicating amount of task completed). + // May be overridden. + // tags: + // extension + + return dojo.number.format(percent, { type: "percent", places: this.places, locale: this.lang }); + }, + + onChange: function(){ + // summary: + // Callback fired when progress updates. + // tags: + // progress + } +}); + +} + +if(!dojo._hasResource["dijit.TitlePane"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.TitlePane"] = true; +dojo.provide("dijit.TitlePane"); + + + + + + + +dojo.declare( + "dijit.TitlePane", + [dijit.layout.ContentPane, dijit._Templated, dijit._CssStateMixin], +{ + // summary: + // A pane with a title on top, that can be expanded or collapsed. + // + // description: + // An accessible container with a title Heading, and a content + // section that slides open and closed. TitlePane is an extension to + // `dijit.layout.ContentPane`, providing all the useful content-control aspects from it. + // + // example: + // | // load a TitlePane from remote file: + // | var foo = new dijit.TitlePane({ href: "foobar.html", title:"Title" }); + // | foo.startup(); + // + // example: + // | <!-- markup href example: --> + // | <div dojoType="dijit.TitlePane" href="foobar.html" title="Title"></div> + // + // example: + // | <!-- markup with inline data --> + // | <div dojoType="dijit.TitlePane" title="Title"> + // | <p>I am content</p> + // | </div> + + // title: String + // Title of the pane + title: "", + + // open: Boolean + // Whether pane is opened or closed. + open: true, + + // toggleable: Boolean + // Whether pane can be opened or closed by clicking the title bar. + toggleable: true, + + // tabIndex: String + // Tabindex setting for the title (so users can tab to the title then + // use space/enter to open/close the title pane) + tabIndex: "0", + + // duration: Integer + // Time in milliseconds to fade in/fade out + duration: dijit.defaultDuration, + + // baseClass: [protected] String + // The root className to be placed on this widget's domNode. + baseClass: "dijitTitlePane", + + templateString: dojo.cache("dijit", "templates/TitlePane.html", "<div>\n\t<div dojoAttachEvent=\"onclick:_onTitleClick, onkeypress:_onTitleKey\"\n\t\t\tclass=\"dijitTitlePaneTitle\" dojoAttachPoint=\"titleBarNode\">\n\t\t<div class=\"dijitTitlePaneTitleFocus\" dojoAttachPoint=\"focusNode\">\n\t\t\t<img src=\"${_blankGif}\" alt=\"\" dojoAttachPoint=\"arrowNode\" class=\"dijitArrowNode\" waiRole=\"presentation\"\n\t\t\t/><span dojoAttachPoint=\"arrowNodeInner\" class=\"dijitArrowNodeInner\"></span\n\t\t\t><span dojoAttachPoint=\"titleNode\" class=\"dijitTitlePaneTextNode\"></span>\n\t\t</div>\n\t</div>\n\t<div class=\"dijitTitlePaneContentOuter\" dojoAttachPoint=\"hideNode\" waiRole=\"presentation\">\n\t\t<div class=\"dijitReset\" dojoAttachPoint=\"wipeNode\" waiRole=\"presentation\">\n\t\t\t<div class=\"dijitTitlePaneContentInner\" dojoAttachPoint=\"containerNode\" waiRole=\"region\" tabindex=\"-1\" id=\"${id}_pane\">\n\t\t\t\t<!-- nested divs because wipeIn()/wipeOut() doesn't work right on node w/padding etc. Put padding on inner div. -->\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n"), + + attributeMap: dojo.delegate(dijit.layout.ContentPane.prototype.attributeMap, { + title: { node: "titleNode", type: "innerHTML" }, + tooltip: {node: "focusNode", type: "attribute", attribute: "title"}, // focusNode spans the entire width, titleNode doesn't + id:"" + }), + + postCreate: function(){ + if(!this.open){ + this.hideNode.style.display = this.wipeNode.style.display = "none"; + } + + // Hover and focus effect on title bar, except for non-toggleable TitlePanes + // This should really be controlled from _setToggleableAttr() but _CssStateMixin + // doesn't provide a way to disconnect a previous _trackMouseState() call + if(this.toggleable){ + this._trackMouseState(this.titleBarNode, "dijitTitlePaneTitle"); + } + this._setCss(); + dojo.setSelectable(this.titleNode, false); + + // setup open/close animations + var hideNode = this.hideNode, wipeNode = this.wipeNode; + this._wipeIn = dojo.fx.wipeIn({ + node: this.wipeNode, + duration: this.duration, + beforeBegin: function(){ + hideNode.style.display=""; + } + }); + this._wipeOut = dojo.fx.wipeOut({ + node: this.wipeNode, + duration: this.duration, + onEnd: function(){ + hideNode.style.display="none"; + } + }); + this.inherited(arguments); + }, + + _setOpenAttr: function(/* Boolean */ open){ + // summary: + // Hook to make attr("open", boolean) control the open/closed state of the pane. + // open: Boolean + // True if you want to open the pane, false if you want to close it. + if(this.open !== open){ this.toggle(); } + dijit.setWaiState(this.containerNode,"hidden", this.open ? "false" : "true"); + dijit.setWaiState(this.focusNode, "pressed", this.open ? "true" : "false"); + }, + + _setToggleableAttr: function(/* Boolean */ canToggle){ + // summary: + // Hook to make attr("canToggle", boolean) work. + // canToggle: Boolean + // True to allow user to open/close pane by clicking title bar. + this.toggleable = canToggle; + dijit.setWaiRole(this.focusNode, canToggle ? "button" : "heading"); + if(canToggle){ + // TODO: if canToggle is switched from true false shouldn't we remove this setting? + dijit.setWaiState(this.focusNode, "controls", this.id+"_pane"); + dojo.attr(this.focusNode, "tabIndex", this.tabIndex); + } + else{ + dojo.removeAttr(this.focusNode, "tabIndex"); + } + this._setCss(); + }, + + _setContentAttr: function(content){ + // summary: + // Hook to make attr("content", ...) work. + // Typically called when an href is loaded. Our job is to make the animation smooth. + + if(!this.open || !this._wipeOut || this._wipeOut.status() == "playing"){ + // we are currently *closing* the pane (or the pane is closed), so just let that continue + this.inherited(arguments); + }else{ + if(this._wipeIn && this._wipeIn.status() == "playing"){ + this._wipeIn.stop(); + } + + // freeze container at current height so that adding new content doesn't make it jump + dojo.marginBox(this.wipeNode, { h: dojo.marginBox(this.wipeNode).h }); + + // add the new content (erasing the old content, if any) + this.inherited(arguments); + + // call _wipeIn.play() to animate from current height to new height + if(this._wipeIn){ + this._wipeIn.play(); + }else{ + this.hideNode.style.display = ""; + } + } + }, + + toggle: function(){ + // summary: + // Switches between opened and closed state + // tags: + // private + + dojo.forEach([this._wipeIn, this._wipeOut], function(animation){ + if(animation && animation.status() == "playing"){ + animation.stop(); + } + }); + + var anim = this[this.open ? "_wipeOut" : "_wipeIn"] + if(anim){ + anim.play(); + }else{ + this.hideNode.style.display = this.open ? "" : "none"; + } + this.open =! this.open; + + // load content (if this is the first time we are opening the TitlePane + // and content is specified as an href, or href was set when hidden) + if(this.open){ + this._onShow(); + }else{ + this.onHide(); + } + + this._setCss(); + }, + + _setCss: function(){ + // summary: + // Set the open/close css state for the TitlePane + // tags: + // private + + var node = this.titleBarNode || this.focusNode; + + if(this._titleBarClass){ + dojo.removeClass(node, this._titleBarClass); + } + this._titleBarClass = "dijit" + (this.toggleable ? "" : "Fixed") + (this.open ? "Open" : "Closed"); + dojo.addClass(node, this._titleBarClass); + this.arrowNodeInner.innerHTML = this.open ? "-" : "+"; + }, + + _onTitleKey: function(/*Event*/ e){ + // summary: + // Handler for when user hits a key + // tags: + // private + + if(e.charOrCode == dojo.keys.ENTER || e.charOrCode == ' '){ + if(this.toggleable){ + this.toggle(); + } + dojo.stopEvent(e); + }else if(e.charOrCode == dojo.keys.DOWN_ARROW && this.open){ + this.containerNode.focus(); + e.preventDefault(); + } + }, + + _onTitleClick: function(){ + // summary: + // Handler when user clicks the title bar + // tags: + // private + if(this.toggleable){ + this.toggle(); + } + }, + + setTitle: function(/*String*/ title){ + // summary: + // Deprecated. Use set('title', ...) instead. + // tags: + // deprecated + dojo.deprecated("dijit.TitlePane.setTitle() is deprecated. Use set('title', ...) instead.", "", "2.0"); + this.set("title", title); + } +}); + +} + +if(!dojo._hasResource["dojo.DeferredList"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.DeferredList"] = true; +dojo.provide("dojo.DeferredList"); +dojo.DeferredList = function(/*Array*/ list, /*Boolean?*/ fireOnOneCallback, /*Boolean?*/ fireOnOneErrback, /*Boolean?*/ consumeErrors, /*Function?*/ canceller){ + // summary: + // Provides event handling for a group of Deferred objects. + // description: + // DeferredList takes an array of existing deferreds and returns a new deferred of its own + // this new deferred will typically have its callback fired when all of the deferreds in + // the given list have fired their own deferreds. The parameters `fireOnOneCallback` and + // fireOnOneErrback, will fire before all the deferreds as appropriate + // + // list: + // The list of deferreds to be synchronizied with this DeferredList + // fireOnOneCallback: + // Will cause the DeferredLists callback to be fired as soon as any + // of the deferreds in its list have been fired instead of waiting until + // the entire list has finished + // fireonOneErrback: + // Will cause the errback to fire upon any of the deferreds errback + // canceller: + // A deferred canceller function, see dojo.Deferred + var resultList = []; + dojo.Deferred.call(this); + var self = this; + if(list.length === 0 && !fireOnOneCallback){ + this.resolve([0, []]); + } + var finished = 0; + dojo.forEach(list, function(item, i){ + item.then(function(result){ + if(fireOnOneCallback){ + self.resolve([i, result]); + }else{ + addResult(true, result); + } + },function(error){ + if(fireOnOneErrback){ + self.reject(error); + }else{ + addResult(false, error); + } + if(consumeErrors){ + return null; + } + throw error; + }); + function addResult(succeeded, result){ + resultList[i] = [succeeded, result]; + finished++; + if(finished === list.length){ + self.resolve(resultList); + } + + } + }); +}; +dojo.DeferredList.prototype = new dojo.Deferred(); + +dojo.DeferredList.prototype.gatherResults= function(deferredList){ + // summary: + // Gathers the results of the deferreds for packaging + // as the parameters to the Deferred Lists' callback + + var d = new dojo.DeferredList(deferredList, false, true, false); + d.addCallback(function(results){ + var ret = []; + dojo.forEach(results, function(result){ + ret.push(result[1]); + }); + return ret; + }); + return d; +}; + +} + +if(!dojo._hasResource["dojo.cookie"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.cookie"] = true; +dojo.provide("dojo.cookie"); + + + +/*===== +dojo.__cookieProps = function(){ + // expires: Date|String|Number? + // If a number, the number of days from today at which the cookie + // will expire. If a date, the date past which the cookie will expire. + // If expires is in the past, the cookie will be deleted. + // If expires is omitted or is 0, the cookie will expire when the browser closes. << FIXME: 0 seems to disappear right away? FF3. + // path: String? + // The path to use for the cookie. + // domain: String? + // The domain to use for the cookie. + // secure: Boolean? + // Whether to only send the cookie on secure connections + this.expires = expires; + this.path = path; + this.domain = domain; + this.secure = secure; +} +=====*/ + + +dojo.cookie = function(/*String*/name, /*String?*/value, /*dojo.__cookieProps?*/props){ + // summary: + // Get or set a cookie. + // description: + // If one argument is passed, returns the value of the cookie + // For two or more arguments, acts as a setter. + // name: + // Name of the cookie + // value: + // Value for the cookie + // props: + // Properties for the cookie + // example: + // set a cookie with the JSON-serialized contents of an object which + // will expire 5 days from now: + // | dojo.cookie("configObj", dojo.toJson(config), { expires: 5 }); + // + // example: + // de-serialize a cookie back into a JavaScript object: + // | var config = dojo.fromJson(dojo.cookie("configObj")); + // + // example: + // delete a cookie: + // | dojo.cookie("configObj", null, {expires: -1}); + var c = document.cookie; + if(arguments.length == 1){ + var matches = c.match(new RegExp("(?:^|; )" + dojo.regexp.escapeString(name) + "=([^;]*)")); + return matches ? decodeURIComponent(matches[1]) : undefined; // String or undefined + }else{ + props = props || {}; +// FIXME: expires=0 seems to disappear right away, not on close? (FF3) Change docs? + var exp = props.expires; + if(typeof exp == "number"){ + var d = new Date(); + d.setTime(d.getTime() + exp*24*60*60*1000); + exp = props.expires = d; + } + if(exp && exp.toUTCString){ props.expires = exp.toUTCString(); } + + value = encodeURIComponent(value); + var updatedCookie = name + "=" + value, propName; + for(propName in props){ + updatedCookie += "; " + propName; + var propValue = props[propName]; + if(propValue !== true){ updatedCookie += "=" + propValue; } + } + document.cookie = updatedCookie; + } +}; + +dojo.cookie.isSupported = function(){ + // summary: + // Use to determine if the current browser supports cookies or not. + // + // Returns true if user allows cookies. + // Returns false if user doesn't allow cookies. + + if(!("cookieEnabled" in navigator)){ + this("__djCookieTest__", "CookiesAllowed"); + navigator.cookieEnabled = this("__djCookieTest__") == "CookiesAllowed"; + if(navigator.cookieEnabled){ + this("__djCookieTest__", "", {expires: -1}); + } + } + return navigator.cookieEnabled; +}; + +} + +if(!dojo._hasResource["dijit.tree.TreeStoreModel"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.tree.TreeStoreModel"] = true; +dojo.provide("dijit.tree.TreeStoreModel"); + +dojo.declare( + "dijit.tree.TreeStoreModel", + null, + { + // summary: + // Implements dijit.Tree.model connecting to a store with a single + // root item. Any methods passed into the constructor will override + // the ones defined here. + + // store: dojo.data.Store + // Underlying store + store: null, + + // childrenAttrs: String[] + // One or more attribute names (attributes in the dojo.data item) that specify that item's children + childrenAttrs: ["children"], + + // newItemIdAttr: String + // Name of attribute in the Object passed to newItem() that specifies the id. + // + // If newItemIdAttr is set then it's used when newItem() is called to see if an + // item with the same id already exists, and if so just links to the old item + // (so that the old item ends up with two parents). + // + // Setting this to null or "" will make every drop create a new item. + newItemIdAttr: "id", + + // labelAttr: String + // If specified, get label for tree node from this attribute, rather + // than by calling store.getLabel() + labelAttr: "", + + // root: [readonly] dojo.data.Item + // Pointer to the root item (read only, not a parameter) + root: null, + + // query: anything + // Specifies datastore query to return the root item for the tree. + // Must only return a single item. Alternately can just pass in pointer + // to root item. + // example: + // | {id:'ROOT'} + query: null, + + // deferItemLoadingUntilExpand: Boolean + // Setting this to true will cause the TreeStoreModel to defer calling loadItem on nodes + // until they are expanded. This allows for lazying loading where only one + // loadItem (and generally one network call, consequently) per expansion + // (rather than one for each child). + // This relies on partial loading of the children items; each children item of a + // fully loaded item should contain the label and info about having children. + deferItemLoadingUntilExpand: false, + + constructor: function(/* Object */ args){ + // summary: + // Passed the arguments listed above (store, etc) + // tags: + // private + + dojo.mixin(this, args); + + this.connects = []; + + var store = this.store; + if(!store.getFeatures()['dojo.data.api.Identity']){ + throw new Error("dijit.Tree: store must support dojo.data.Identity"); + } + + // if the store supports Notification, subscribe to the notification events + if(store.getFeatures()['dojo.data.api.Notification']){ + this.connects = this.connects.concat([ + dojo.connect(store, "onNew", this, "onNewItem"), + dojo.connect(store, "onDelete", this, "onDeleteItem"), + dojo.connect(store, "onSet", this, "onSetItem") + ]); + } + }, + + destroy: function(){ + dojo.forEach(this.connects, dojo.disconnect); + // TODO: should cancel any in-progress processing of getRoot(), getChildren() + }, + + // ======================================================================= + // Methods for traversing hierarchy + + getRoot: function(onItem, onError){ + // summary: + // Calls onItem with the root item for the tree, possibly a fabricated item. + // Calls onError on error. + if(this.root){ + onItem(this.root); + }else{ + this.store.fetch({ + query: this.query, + onComplete: dojo.hitch(this, function(items){ + if(items.length != 1){ + throw new Error(this.declaredClass + ": query " + dojo.toJson(this.query) + " returned " + items.length + + " items, but must return exactly one item"); + } + this.root = items[0]; + onItem(this.root); + }), + onError: onError + }); + } + }, + + mayHaveChildren: function(/*dojo.data.Item*/ item){ + // summary: + // Tells if an item has or may have children. Implementing logic here + // avoids showing +/- expando icon for nodes that we know don't have children. + // (For efficiency reasons we may not want to check if an element actually + // has children until user clicks the expando node) + return dojo.some(this.childrenAttrs, function(attr){ + return this.store.hasAttribute(item, attr); + }, this); + }, + + getChildren: function(/*dojo.data.Item*/ parentItem, /*function(items)*/ onComplete, /*function*/ onError){ + // summary: + // Calls onComplete() with array of child items of given parent item, all loaded. + + var store = this.store; + if(!store.isItemLoaded(parentItem)){ + // The parent is not loaded yet, we must be in deferItemLoadingUntilExpand + // mode, so we will load it and just return the children (without loading each + // child item) + var getChildren = dojo.hitch(this, arguments.callee); + store.loadItem({ + item: parentItem, + onItem: function(parentItem){ + getChildren(parentItem, onComplete, onError); + }, + onError: onError + }); + return; + } + // get children of specified item + var childItems = []; + for(var i=0; i<this.childrenAttrs.length; i++){ + var vals = store.getValues(parentItem, this.childrenAttrs[i]); + childItems = childItems.concat(vals); + } + + // count how many items need to be loaded + var _waitCount = 0; + if(!this.deferItemLoadingUntilExpand){ + dojo.forEach(childItems, function(item){ if(!store.isItemLoaded(item)){ _waitCount++; } }); + } + + if(_waitCount == 0){ + // all items are already loaded (or we aren't loading them). proceed... + onComplete(childItems); + }else{ + // still waiting for some or all of the items to load + dojo.forEach(childItems, function(item, idx){ + if(!store.isItemLoaded(item)){ + store.loadItem({ + item: item, + onItem: function(item){ + childItems[idx] = item; + if(--_waitCount == 0){ + // all nodes have been loaded, send them to the tree + onComplete(childItems); + } + }, + onError: onError + }); + } + }); + } + }, + + // ======================================================================= + // Inspecting items + + isItem: function(/* anything */ something){ + return this.store.isItem(something); // Boolean + }, + + fetchItemByIdentity: function(/* object */ keywordArgs){ + this.store.fetchItemByIdentity(keywordArgs); + }, + + getIdentity: function(/* item */ item){ + return this.store.getIdentity(item); // Object + }, + + getLabel: function(/*dojo.data.Item*/ item){ + // summary: + // Get the label for an item + if(this.labelAttr){ + return this.store.getValue(item,this.labelAttr); // String + }else{ + return this.store.getLabel(item); // String + } + }, + + // ======================================================================= + // Write interface + + newItem: function(/* dojo.dnd.Item */ args, /*Item*/ parent, /*int?*/ insertIndex){ + // summary: + // Creates a new item. See `dojo.data.api.Write` for details on args. + // Used in drag & drop when item from external source dropped onto tree. + // description: + // Developers will need to override this method if new items get added + // to parents with multiple children attributes, in order to define which + // children attribute points to the new item. + + var pInfo = {parent: parent, attribute: this.childrenAttrs[0], insertIndex: insertIndex}; + + if(this.newItemIdAttr && args[this.newItemIdAttr]){ + // Maybe there's already a corresponding item in the store; if so, reuse it. + this.fetchItemByIdentity({identity: args[this.newItemIdAttr], scope: this, onItem: function(item){ + if(item){ + // There's already a matching item in store, use it + this.pasteItem(item, null, parent, true, insertIndex); + }else{ + // Create new item in the tree, based on the drag source. + this.store.newItem(args, pInfo); + } + }}); + }else{ + // [as far as we know] there is no id so we must assume this is a new item + this.store.newItem(args, pInfo); + } + }, + + pasteItem: function(/*Item*/ childItem, /*Item*/ oldParentItem, /*Item*/ newParentItem, /*Boolean*/ bCopy, /*int?*/ insertIndex){ + // summary: + // Move or copy an item from one parent item to another. + // Used in drag & drop + var store = this.store, + parentAttr = this.childrenAttrs[0]; // name of "children" attr in parent item + + // remove child from source item, and record the attribute that child occurred in + if(oldParentItem){ + dojo.forEach(this.childrenAttrs, function(attr){ + if(store.containsValue(oldParentItem, attr, childItem)){ + if(!bCopy){ + var values = dojo.filter(store.getValues(oldParentItem, attr), function(x){ + return x != childItem; + }); + store.setValues(oldParentItem, attr, values); + } + parentAttr = attr; + } + }); + } + + // modify target item's children attribute to include this item + if(newParentItem){ + if(typeof insertIndex == "number"){ + // call slice() to avoid modifying the original array, confusing the data store + var childItems = store.getValues(newParentItem, parentAttr).slice(); + childItems.splice(insertIndex, 0, childItem); + store.setValues(newParentItem, parentAttr, childItems); + }else{ + store.setValues(newParentItem, parentAttr, + store.getValues(newParentItem, parentAttr).concat(childItem)); + } + } + }, + + // ======================================================================= + // Callbacks + + onChange: function(/*dojo.data.Item*/ item){ + // summary: + // Callback whenever an item has changed, so that Tree + // can update the label, icon, etc. Note that changes + // to an item's children or parent(s) will trigger an + // onChildrenChange() so you can ignore those changes here. + // tags: + // callback + }, + + onChildrenChange: function(/*dojo.data.Item*/ parent, /*dojo.data.Item[]*/ newChildrenList){ + // summary: + // Callback to do notifications about new, updated, or deleted items. + // tags: + // callback + }, + + onDelete: function(/*dojo.data.Item*/ parent, /*dojo.data.Item[]*/ newChildrenList){ + // summary: + // Callback when an item has been deleted. + // description: + // Note that there will also be an onChildrenChange() callback for the parent + // of this item. + // tags: + // callback + }, + + // ======================================================================= + // Events from data store + + onNewItem: function(/* dojo.data.Item */ item, /* Object */ parentInfo){ + // summary: + // Handler for when new items appear in the store, either from a drop operation + // or some other way. Updates the tree view (if necessary). + // description: + // If the new item is a child of an existing item, + // calls onChildrenChange() with the new list of children + // for that existing item. + // + // tags: + // extension + + // We only care about the new item if it has a parent that corresponds to a TreeNode + // we are currently displaying + if(!parentInfo){ + return; + } + + // Call onChildrenChange() on parent (ie, existing) item with new list of children + // In the common case, the new list of children is simply parentInfo.newValue or + // [ parentInfo.newValue ], although if items in the store has multiple + // child attributes (see `childrenAttr`), then it's a superset of parentInfo.newValue, + // so call getChildren() to be sure to get right answer. + this.getChildren(parentInfo.item, dojo.hitch(this, function(children){ + this.onChildrenChange(parentInfo.item, children); + })); + }, + + onDeleteItem: function(/*Object*/ item){ + // summary: + // Handler for delete notifications from underlying store + this.onDelete(item); + }, + + onSetItem: function(/* item */ item, + /* attribute-name-string */ attribute, + /* object | array */ oldValue, + /* object | array */ newValue){ + // summary: + // Updates the tree view according to changes in the data store. + // description: + // Handles updates to an item's children by calling onChildrenChange(), and + // other updates to an item by calling onChange(). + // + // See `onNewItem` for more details on handling updates to an item's children. + // tags: + // extension + + if(dojo.indexOf(this.childrenAttrs, attribute) != -1){ + // item's children list changed + this.getChildren(item, dojo.hitch(this, function(children){ + // See comments in onNewItem() about calling getChildren() + this.onChildrenChange(item, children); + })); + }else{ + // item's label/icon/etc. changed. + this.onChange(item); + } + } + }); + + + +} + +if(!dojo._hasResource["dijit.tree.ForestStoreModel"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.tree.ForestStoreModel"] = true; +dojo.provide("dijit.tree.ForestStoreModel"); + + + +dojo.declare("dijit.tree.ForestStoreModel", dijit.tree.TreeStoreModel, { + // summary: + // Interface between Tree and a dojo.store that doesn't have a root item, + // i.e. has multiple "top level" items. + // + // description + // Use this class to wrap a dojo.store, making all the items matching the specified query + // appear as children of a fabricated "root item". If no query is specified then all the + // items returned by fetch() on the underlying store become children of the root item. + // It allows dijit.Tree to assume a single root item, even if the store doesn't have one. + + // Parameters to constructor + + // rootId: String + // ID of fabricated root item + rootId: "$root$", + + // rootLabel: String + // Label of fabricated root item + rootLabel: "ROOT", + + // query: String + // Specifies the set of children of the root item. + // example: + // | {type:'continent'} + query: null, + + // End of parameters to constructor + + constructor: function(params){ + // summary: + // Sets up variables, etc. + // tags: + // private + + // Make dummy root item + this.root = { + store: this, + root: true, + id: params.rootId, + label: params.rootLabel, + children: params.rootChildren // optional param + }; + }, + + // ======================================================================= + // Methods for traversing hierarchy + + mayHaveChildren: function(/*dojo.data.Item*/ item){ + // summary: + // Tells if an item has or may have children. Implementing logic here + // avoids showing +/- expando icon for nodes that we know don't have children. + // (For efficiency reasons we may not want to check if an element actually + // has children until user clicks the expando node) + // tags: + // extension + return item === this.root || this.inherited(arguments); + }, + + getChildren: function(/*dojo.data.Item*/ parentItem, /*function(items)*/ callback, /*function*/ onError){ + // summary: + // Calls onComplete() with array of child items of given parent item, all loaded. + if(parentItem === this.root){ + if(this.root.children){ + // already loaded, just return + callback(this.root.children); + }else{ + this.store.fetch({ + query: this.query, + onComplete: dojo.hitch(this, function(items){ + this.root.children = items; + callback(items); + }), + onError: onError + }); + } + }else{ + this.inherited(arguments); + } + }, + + // ======================================================================= + // Inspecting items + + isItem: function(/* anything */ something){ + return (something === this.root) ? true : this.inherited(arguments); + }, + + fetchItemByIdentity: function(/* object */ keywordArgs){ + if(keywordArgs.identity == this.root.id){ + var scope = keywordArgs.scope?keywordArgs.scope:dojo.global; + if(keywordArgs.onItem){ + keywordArgs.onItem.call(scope, this.root); + } + }else{ + this.inherited(arguments); + } + }, + + getIdentity: function(/* item */ item){ + return (item === this.root) ? this.root.id : this.inherited(arguments); + }, + + getLabel: function(/* item */ item){ + return (item === this.root) ? this.root.label : this.inherited(arguments); + }, + + // ======================================================================= + // Write interface + + newItem: function(/* dojo.dnd.Item */ args, /*Item*/ parent, /*int?*/ insertIndex){ + // summary: + // Creates a new item. See dojo.data.api.Write for details on args. + // Used in drag & drop when item from external source dropped onto tree. + if(parent === this.root){ + this.onNewRootItem(args); + return this.store.newItem(args); + }else{ + return this.inherited(arguments); + } + }, + + onNewRootItem: function(args){ + // summary: + // User can override this method to modify a new element that's being + // added to the root of the tree, for example to add a flag like root=true + }, + + pasteItem: function(/*Item*/ childItem, /*Item*/ oldParentItem, /*Item*/ newParentItem, /*Boolean*/ bCopy, /*int?*/ insertIndex){ + // summary: + // Move or copy an item from one parent item to another. + // Used in drag & drop + if(oldParentItem === this.root){ + if(!bCopy){ + // It's onLeaveRoot()'s responsibility to modify the item so it no longer matches + // this.query... thus triggering an onChildrenChange() event to notify the Tree + // that this element is no longer a child of the root node + this.onLeaveRoot(childItem); + } + } + dijit.tree.TreeStoreModel.prototype.pasteItem.call(this, childItem, + oldParentItem === this.root ? null : oldParentItem, + newParentItem === this.root ? null : newParentItem, + bCopy, + insertIndex + ); + if(newParentItem === this.root){ + // It's onAddToRoot()'s responsibility to modify the item so it matches + // this.query... thus triggering an onChildrenChange() event to notify the Tree + // that this element is now a child of the root node + this.onAddToRoot(childItem); + } + }, + + // ======================================================================= + // Handling for top level children + + onAddToRoot: function(/* item */ item){ + // summary: + // Called when item added to root of tree; user must override this method + // to modify the item so that it matches the query for top level items + // example: + // | store.setValue(item, "root", true); + // tags: + // extension + console.log(this, ": item ", item, " added to root"); + }, + + onLeaveRoot: function(/* item */ item){ + // summary: + // Called when item removed from root of tree; user must override this method + // to modify the item so it doesn't match the query for top level items + // example: + // | store.unsetAttribute(item, "root"); + // tags: + // extension + console.log(this, ": item ", item, " removed from root"); + }, + + // ======================================================================= + // Events from data store + + _requeryTop: function(){ + // reruns the query for the children of the root node, + // sending out an onSet notification if those children have changed + var oldChildren = this.root.children || []; + this.store.fetch({ + query: this.query, + onComplete: dojo.hitch(this, function(newChildren){ + this.root.children = newChildren; + + // If the list of children or the order of children has changed... + if(oldChildren.length != newChildren.length || + dojo.some(oldChildren, function(item, idx){ return newChildren[idx] != item;})){ + this.onChildrenChange(this.root, newChildren); + } + }) + }); + }, + + onNewItem: function(/* dojo.data.Item */ item, /* Object */ parentInfo){ + // summary: + // Handler for when new items appear in the store. Developers should override this + // method to be more efficient based on their app/data. + // description: + // Note that the default implementation requeries the top level items every time + // a new item is created, since any new item could be a top level item (even in + // addition to being a child of another item, since items can have multiple parents). + // + // Developers can override this function to do something more efficient if they can + // detect which items are possible top level items (based on the item and the + // parentInfo parameters). Often all top level items have parentInfo==null, but + // that will depend on which store you use and what your data is like. + // tags: + // extension + this._requeryTop(); + + this.inherited(arguments); + }, + + onDeleteItem: function(/*Object*/ item){ + // summary: + // Handler for delete notifications from underlying store + + // check if this was a child of root, and if so send notification that root's children + // have changed + if(dojo.indexOf(this.root.children, item) != -1){ + this._requeryTop(); + } + + this.inherited(arguments); + } +}); + + + +} + +if(!dojo._hasResource["dijit.Tree"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.Tree"] = true; +dojo.provide("dijit.Tree"); + + + + + + + + + + + +dojo.declare( + "dijit._TreeNode", + [dijit._Widget, dijit._Templated, dijit._Container, dijit._Contained, dijit._CssStateMixin], +{ + // summary: + // Single node within a tree. This class is used internally + // by Tree and should not be accessed directly. + // tags: + // private + + // item: dojo.data.Item + // the dojo.data entry this tree represents + item: null, + + // isTreeNode: [protected] Boolean + // Indicates that this is a TreeNode. Used by `dijit.Tree` only, + // should not be accessed directly. + isTreeNode: true, + + // label: String + // Text of this tree node + label: "", + + // isExpandable: [private] Boolean + // This node has children, so show the expando node (+ sign) + isExpandable: null, + + // isExpanded: [readonly] Boolean + // This node is currently expanded (ie, opened) + isExpanded: false, + + // state: [private] String + // Dynamic loading-related stuff. + // When an empty folder node appears, it is "UNCHECKED" first, + // then after dojo.data query it becomes "LOADING" and, finally "LOADED" + state: "UNCHECKED", + + templateString: dojo.cache("dijit", "templates/TreeNode.html", "<div class=\"dijitTreeNode\" waiRole=\"presentation\"\n\t><div dojoAttachPoint=\"rowNode\" class=\"dijitTreeRow\" waiRole=\"presentation\" dojoAttachEvent=\"onmouseenter:_onMouseEnter, onmouseleave:_onMouseLeave, onclick:_onClick, ondblclick:_onDblClick\"\n\t\t><img src=\"${_blankGif}\" alt=\"\" dojoAttachPoint=\"expandoNode\" class=\"dijitTreeExpando\" waiRole=\"presentation\"\n\t\t/><span dojoAttachPoint=\"expandoNodeText\" class=\"dijitExpandoText\" waiRole=\"presentation\"\n\t\t></span\n\t\t><span dojoAttachPoint=\"contentNode\"\n\t\t\tclass=\"dijitTreeContent\" waiRole=\"presentation\">\n\t\t\t<img src=\"${_blankGif}\" alt=\"\" dojoAttachPoint=\"iconNode\" class=\"dijitIcon dijitTreeIcon\" waiRole=\"presentation\"\n\t\t\t/><span dojoAttachPoint=\"labelNode\" class=\"dijitTreeLabel\" wairole=\"treeitem\" tabindex=\"-1\" waiState=\"selected-false\" dojoAttachEvent=\"onfocus:_onLabelFocus\"></span>\n\t\t</span\n\t></div>\n\t<div dojoAttachPoint=\"containerNode\" class=\"dijitTreeContainer\" waiRole=\"presentation\" style=\"display: none;\"></div>\n</div>\n"), + + baseClass: "dijitTreeNode", + + // For hover effect for tree node, and focus effect for label + cssStateNodes: { + rowNode: "dijitTreeRow", + labelNode: "dijitTreeLabel" + }, + + attributeMap: dojo.delegate(dijit._Widget.prototype.attributeMap, { + label: {node: "labelNode", type: "innerText"}, + tooltip: {node: "rowNode", type: "attribute", attribute: "title"} + }), + + postCreate: function(){ + this.inherited(arguments); + + // set expand icon for leaf + this._setExpando(); + + // set icon and label class based on item + this._updateItemClasses(this.item); + + if(this.isExpandable){ + dijit.setWaiState(this.labelNode, "expanded", this.isExpanded); + } + }, + + _setIndentAttr: function(indent){ + // summary: + // Tell this node how many levels it should be indented + // description: + // 0 for top level nodes, 1 for their children, 2 for their + // grandchildren, etc. + this.indent = indent; + + // Math.max() is to prevent negative padding on hidden root node (when indent == -1) + var pixels = (Math.max(indent, 0) * this.tree._nodePixelIndent) + "px"; + + dojo.style(this.domNode, "backgroundPosition", pixels + " 0px"); + dojo.style(this.rowNode, this.isLeftToRight() ? "paddingLeft" : "paddingRight", pixels); + + dojo.forEach(this.getChildren(), function(child){ + child.set("indent", indent+1); + }); + }, + + markProcessing: function(){ + // summary: + // Visually denote that tree is loading data, etc. + // tags: + // private + this.state = "LOADING"; + this._setExpando(true); + }, + + unmarkProcessing: function(){ + // summary: + // Clear markup from markProcessing() call + // tags: + // private + this._setExpando(false); + }, + + _updateItemClasses: function(item){ + // summary: + // Set appropriate CSS classes for icon and label dom node + // (used to allow for item updates to change respective CSS) + // tags: + // private + var tree = this.tree, model = tree.model; + if(tree._v10Compat && item === model.root){ + // For back-compat with 1.0, need to use null to specify root item (TODO: remove in 2.0) + item = null; + } + this._applyClassAndStyle(item, "icon", "Icon"); + this._applyClassAndStyle(item, "label", "Label"); + this._applyClassAndStyle(item, "row", "Row"); + }, + + _applyClassAndStyle: function(item, lower, upper){ + // summary: + // Set the appropriate CSS classes and styles for labels, icons and rows. + // + // item: + // The data item. + // + // lower: + // The lower case attribute to use, e.g. 'icon', 'label' or 'row'. + // + // upper: + // The upper case attribute to use, e.g. 'Icon', 'Label' or 'Row'. + // + // tags: + // private + + var clsName = "_" + lower + "Class"; + var nodeName = lower + "Node"; + + if(this[clsName]){ + dojo.removeClass(this[nodeName], this[clsName]); + } + this[clsName] = this.tree["get" + upper + "Class"](item, this.isExpanded); + if(this[clsName]){ + dojo.addClass(this[nodeName], this[clsName]); + } + dojo.style(this[nodeName], this.tree["get" + upper + "Style"](item, this.isExpanded) || {}); + }, + + _updateLayout: function(){ + // summary: + // Set appropriate CSS classes for this.domNode + // tags: + // private + var parent = this.getParent(); + if(!parent || parent.rowNode.style.display == "none"){ + /* if we are hiding the root node then make every first level child look like a root node */ + dojo.addClass(this.domNode, "dijitTreeIsRoot"); + }else{ + dojo.toggleClass(this.domNode, "dijitTreeIsLast", !this.getNextSibling()); + } + }, + + _setExpando: function(/*Boolean*/ processing){ + // summary: + // Set the right image for the expando node + // tags: + // private + + var styles = ["dijitTreeExpandoLoading", "dijitTreeExpandoOpened", + "dijitTreeExpandoClosed", "dijitTreeExpandoLeaf"], + _a11yStates = ["*","-","+","*"], + idx = processing ? 0 : (this.isExpandable ? (this.isExpanded ? 1 : 2) : 3); + + // apply the appropriate class to the expando node + dojo.removeClass(this.expandoNode, styles); + dojo.addClass(this.expandoNode, styles[idx]); + + // provide a non-image based indicator for images-off mode + this.expandoNodeText.innerHTML = _a11yStates[idx]; + + }, + + expand: function(){ + // summary: + // Show my children + // returns: + // Deferred that fires when expansion is complete + + // If there's already an expand in progress or we are already expanded, just return + if(this._expandDeferred){ + return this._expandDeferred; // dojo.Deferred + } + + // cancel in progress collapse operation + this._wipeOut && this._wipeOut.stop(); + + // All the state information for when a node is expanded, maybe this should be + // set when the animation completes instead + this.isExpanded = true; + dijit.setWaiState(this.labelNode, "expanded", "true"); + dijit.setWaiRole(this.containerNode, "group"); + dojo.addClass(this.contentNode,'dijitTreeContentExpanded'); + this._setExpando(); + this._updateItemClasses(this.item); + if(this == this.tree.rootNode){ + dijit.setWaiState(this.tree.domNode, "expanded", "true"); + } + + var def, + wipeIn = dojo.fx.wipeIn({ + node: this.containerNode, duration: dijit.defaultDuration, + onEnd: function(){ + def.callback(true); + } + }); + + // Deferred that fires when expand is complete + def = (this._expandDeferred = new dojo.Deferred(function(){ + // Canceller + wipeIn.stop(); + })); + + wipeIn.play(); + + return def; // dojo.Deferred + }, + + collapse: function(){ + // summary: + // Collapse this node (if it's expanded) + + if(!this.isExpanded){ return; } + + // cancel in progress expand operation + if(this._expandDeferred){ + this._expandDeferred.cancel(); + delete this._expandDeferred; + } + + this.isExpanded = false; + dijit.setWaiState(this.labelNode, "expanded", "false"); + if(this == this.tree.rootNode){ + dijit.setWaiState(this.tree.domNode, "expanded", "false"); + } + dojo.removeClass(this.contentNode,'dijitTreeContentExpanded'); + this._setExpando(); + this._updateItemClasses(this.item); + + if(!this._wipeOut){ + this._wipeOut = dojo.fx.wipeOut({ + node: this.containerNode, duration: dijit.defaultDuration + }); + } + this._wipeOut.play(); + }, + + // indent: Integer + // Levels from this node to the root node + indent: 0, + + setChildItems: function(/* Object[] */ items){ + // summary: + // Sets the child items of this node, removing/adding nodes + // from current children to match specified items[] array. + // Also, if this.persist == true, expands any children that were previously + // opened. + // returns: + // Deferred object that fires after all previously opened children + // have been expanded again (or fires instantly if there are no such children). + + var tree = this.tree, + model = tree.model, + defs = []; // list of deferreds that need to fire before I am complete + + + // Orphan all my existing children. + // If items contains some of the same items as before then we will reattach them. + // Don't call this.removeChild() because that will collapse the tree etc. + dojo.forEach(this.getChildren(), function(child){ + dijit._Container.prototype.removeChild.call(this, child); + }, this); + + this.state = "LOADED"; + + if(items && items.length > 0){ + this.isExpandable = true; + + // Create _TreeNode widget for each specified tree node, unless one already + // exists and isn't being used (presumably it's from a DnD move and was recently + // released + dojo.forEach(items, function(item){ + var id = model.getIdentity(item), + existingNodes = tree._itemNodesMap[id], + node; + if(existingNodes){ + for(var i=0;i<existingNodes.length;i++){ + if(existingNodes[i] && !existingNodes[i].getParent()){ + node = existingNodes[i]; + node.set('indent', this.indent+1); + break; + } + } + } + if(!node){ + node = this.tree._createTreeNode({ + item: item, + tree: tree, + isExpandable: model.mayHaveChildren(item), + label: tree.getLabel(item), + tooltip: tree.getTooltip(item), + dir: tree.dir, + lang: tree.lang, + indent: this.indent + 1 + }); + if(existingNodes){ + existingNodes.push(node); + }else{ + tree._itemNodesMap[id] = [node]; + } + } + this.addChild(node); + + // If node was previously opened then open it again now (this may trigger + // more data store accesses, recursively) + if(this.tree.autoExpand || this.tree._state(item)){ + defs.push(tree._expandNode(node)); + } + }, this); + + // note that updateLayout() needs to be called on each child after + // _all_ the children exist + dojo.forEach(this.getChildren(), function(child, idx){ + child._updateLayout(); + }); + }else{ + this.isExpandable=false; + } + + if(this._setExpando){ + // change expando to/from dot or + icon, as appropriate + this._setExpando(false); + } + + // Set leaf icon or folder icon, as appropriate + this._updateItemClasses(this.item); + + // On initial tree show, make the selected TreeNode as either the root node of the tree, + // or the first child, if the root node is hidden + if(this == tree.rootNode){ + var fc = this.tree.showRoot ? this : this.getChildren()[0]; + if(fc){ + fc.setFocusable(true); + tree.lastFocused = fc; + }else{ + // fallback: no nodes in tree so focus on Tree <div> itself + tree.domNode.setAttribute("tabIndex", "0"); + } + } + + return new dojo.DeferredList(defs); // dojo.Deferred + }, + + removeChild: function(/* treeNode */ node){ + this.inherited(arguments); + + var children = this.getChildren(); + if(children.length == 0){ + this.isExpandable = false; + this.collapse(); + } + + dojo.forEach(children, function(child){ + child._updateLayout(); + }); + }, + + makeExpandable: function(){ + // summary: + // if this node wasn't already showing the expando node, + // turn it into one and call _setExpando() + + // TODO: hmm this isn't called from anywhere, maybe should remove it for 2.0 + + this.isExpandable = true; + this._setExpando(false); + }, + + _onLabelFocus: function(evt){ + // summary: + // Called when this row is focused (possibly programatically) + // Note that we aren't using _onFocus() builtin to dijit + // because it's called when focus is moved to a descendant TreeNode. + // tags: + // private + this.tree._onNodeFocus(this); + }, + + setSelected: function(/*Boolean*/ selected){ + // summary: + // A Tree has a (single) currently selected node. + // Mark that this node is/isn't that currently selected node. + // description: + // In particular, setting a node as selected involves setting tabIndex + // so that when user tabs to the tree, focus will go to that node (only). + dijit.setWaiState(this.labelNode, "selected", selected); + dojo.toggleClass(this.rowNode, "dijitTreeRowSelected", selected); + }, + + setFocusable: function(/*Boolean*/ selected){ + // summary: + // A Tree has a (single) node that's focusable. + // Mark that this node is/isn't that currently focsuable node. + // description: + // In particular, setting a node as selected involves setting tabIndex + // so that when user tabs to the tree, focus will go to that node (only). + + this.labelNode.setAttribute("tabIndex", selected ? "0" : "-1"); + }, + + _onClick: function(evt){ + // summary: + // Handler for onclick event on a node + // tags: + // private + this.tree._onClick(this, evt); + }, + _onDblClick: function(evt){ + // summary: + // Handler for ondblclick event on a node + // tags: + // private + this.tree._onDblClick(this, evt); + }, + + _onMouseEnter: function(evt){ + // summary: + // Handler for onmouseenter event on a node + // tags: + // private + this.tree._onNodeMouseEnter(this, evt); + }, + + _onMouseLeave: function(evt){ + // summary: + // Handler for onmouseenter event on a node + // tags: + // private + this.tree._onNodeMouseLeave(this, evt); + } +}); + +dojo.declare( + "dijit.Tree", + [dijit._Widget, dijit._Templated], +{ + // summary: + // This widget displays hierarchical data from a store. + + // store: [deprecated] String||dojo.data.Store + // Deprecated. Use "model" parameter instead. + // The store to get data to display in the tree. + store: null, + + // model: dijit.Tree.model + // Interface to read tree data, get notifications of changes to tree data, + // and for handling drop operations (i.e drag and drop onto the tree) + model: null, + + // query: [deprecated] anything + // Deprecated. User should specify query to the model directly instead. + // Specifies datastore query to return the root item or top items for the tree. + query: null, + + // label: [deprecated] String + // Deprecated. Use dijit.tree.ForestStoreModel directly instead. + // Used in conjunction with query parameter. + // If a query is specified (rather than a root node id), and a label is also specified, + // then a fake root node is created and displayed, with this label. + label: "", + + // showRoot: [const] Boolean + // Should the root node be displayed, or hidden? + showRoot: true, + + // childrenAttr: [deprecated] String[] + // Deprecated. This information should be specified in the model. + // One ore more attributes that holds children of a tree node + childrenAttr: ["children"], + + // path: String[] or Item[] + // Full path from rootNode to selected node expressed as array of items or array of ids. + // Since setting the path may be asynchronous (because ofwaiting on dojo.data), set("path", ...) + // returns a Deferred to indicate when the set is complete. + path: [], + + // selectedItem: [readonly] Item + // The currently selected item in this tree. + // This property can only be set (via set('selectedItem', ...)) when that item is already + // visible in the tree. (I.e. the tree has already been expanded to show that node.) + // Should generally use `path` attribute to set the selected item instead. + selectedItem: null, + + // openOnClick: Boolean + // If true, clicking a folder node's label will open it, rather than calling onClick() + openOnClick: false, + + // openOnDblClick: Boolean + // If true, double-clicking a folder node's label will open it, rather than calling onDblClick() + openOnDblClick: false, + + templateString: dojo.cache("dijit", "templates/Tree.html", "<div class=\"dijitTree dijitTreeContainer\" waiRole=\"tree\"\n\tdojoAttachEvent=\"onkeypress:_onKeyPress\">\n\t<div class=\"dijitInline dijitTreeIndent\" style=\"position: absolute; top: -9999px\" dojoAttachPoint=\"indentDetector\"></div>\n</div>\n"), + + // persist: Boolean + // Enables/disables use of cookies for state saving. + persist: true, + + // autoExpand: Boolean + // Fully expand the tree on load. Overrides `persist` + autoExpand: false, + + // dndController: [protected] String + // Class name to use as as the dnd controller. Specifying this class enables DnD. + // Generally you should specify this as "dijit.tree.dndSource". + dndController: null, + + // parameters to pull off of the tree and pass on to the dndController as its params + dndParams: ["onDndDrop","itemCreator","onDndCancel","checkAcceptance", "checkItemAcceptance", "dragThreshold", "betweenThreshold"], + + //declare the above items so they can be pulled from the tree's markup + + // onDndDrop: [protected] Function + // Parameter to dndController, see `dijit.tree.dndSource.onDndDrop`. + // Generally this doesn't need to be set. + onDndDrop: null, + + /*===== + itemCreator: function(nodes, target, source){ + // summary: + // Returns objects passed to `Tree.model.newItem()` based on DnD nodes + // dropped onto the tree. Developer must override this method to enable + // dropping from external sources onto this Tree, unless the Tree.model's items + // happen to look like {id: 123, name: "Apple" } with no other attributes. + // description: + // For each node in nodes[], which came from source, create a hash of name/value + // pairs to be passed to Tree.model.newItem(). Returns array of those hashes. + // nodes: DomNode[] + // The DOMNodes dragged from the source container + // target: DomNode + // The target TreeNode.rowNode + // source: dojo.dnd.Source + // The source container the nodes were dragged from, perhaps another Tree or a plain dojo.dnd.Source + // returns: Object[] + // Array of name/value hashes for each new item to be added to the Tree, like: + // | [ + // | { id: 123, label: "apple", foo: "bar" }, + // | { id: 456, label: "pear", zaz: "bam" } + // | ] + // tags: + // extension + return [{}]; + }, + =====*/ + itemCreator: null, + + // onDndCancel: [protected] Function + // Parameter to dndController, see `dijit.tree.dndSource.onDndCancel`. + // Generally this doesn't need to be set. + onDndCancel: null, + +/*===== + checkAcceptance: function(source, nodes){ + // summary: + // Checks if the Tree itself can accept nodes from this source + // source: dijit.tree._dndSource + // The source which provides items + // nodes: DOMNode[] + // Array of DOM nodes corresponding to nodes being dropped, dijitTreeRow nodes if + // source is a dijit.Tree. + // tags: + // extension + return true; // Boolean + }, +=====*/ + checkAcceptance: null, + +/*===== + checkItemAcceptance: function(target, source, position){ + // summary: + // Stub function to be overridden if one wants to check for the ability to drop at the node/item level + // description: + // In the base case, this is called to check if target can become a child of source. + // When betweenThreshold is set, position="before" or "after" means that we + // are asking if the source node can be dropped before/after the target node. + // target: DOMNode + // The dijitTreeRoot DOM node inside of the TreeNode that we are dropping on to + // Use dijit.getEnclosingWidget(target) to get the TreeNode. + // source: dijit.tree.dndSource + // The (set of) nodes we are dropping + // position: String + // "over", "before", or "after" + // tags: + // extension + return true; // Boolean + }, +=====*/ + checkItemAcceptance: null, + + // dragThreshold: Integer + // Number of pixels mouse moves before it's considered the start of a drag operation + dragThreshold: 5, + + // betweenThreshold: Integer + // Set to a positive value to allow drag and drop "between" nodes. + // + // If during DnD mouse is over a (target) node but less than betweenThreshold + // pixels from the bottom edge, dropping the the dragged node will make it + // the next sibling of the target node, rather than the child. + // + // Similarly, if mouse is over a target node but less that betweenThreshold + // pixels from the top edge, dropping the dragged node will make it + // the target node's previous sibling rather than the target node's child. + betweenThreshold: 0, + + // _nodePixelIndent: Integer + // Number of pixels to indent tree nodes (relative to parent node). + // Default is 19 but can be overridden by setting CSS class dijitTreeIndent + // and calling resize() or startup() on tree after it's in the DOM. + _nodePixelIndent: 19, + + _publish: function(/*String*/ topicName, /*Object*/ message){ + // summary: + // Publish a message for this widget/topic + dojo.publish(this.id, [dojo.mixin({tree: this, event: topicName}, message || {})]); + }, + + postMixInProperties: function(){ + this.tree = this; + + if(this.autoExpand){ + // There's little point in saving opened/closed state of nodes for a Tree + // that initially opens all it's nodes. + this.persist = false; + } + + this._itemNodesMap={}; + + if(!this.cookieName){ + this.cookieName = this.id + "SaveStateCookie"; + } + + this._loadDeferred = new dojo.Deferred(); + + this.inherited(arguments); + }, + + postCreate: function(){ + this._initState(); + + // Create glue between store and Tree, if not specified directly by user + if(!this.model){ + this._store2model(); + } + + // monitor changes to items + this.connect(this.model, "onChange", "_onItemChange"); + this.connect(this.model, "onChildrenChange", "_onItemChildrenChange"); + this.connect(this.model, "onDelete", "_onItemDelete"); + + this._load(); + + this.inherited(arguments); + + if(this.dndController){ + if(dojo.isString(this.dndController)){ + this.dndController = dojo.getObject(this.dndController); + } + var params={}; + for(var i=0; i<this.dndParams.length;i++){ + if(this[this.dndParams[i]]){ + params[this.dndParams[i]] = this[this.dndParams[i]]; + } + } + this.dndController = new this.dndController(this, params); + } + }, + + _store2model: function(){ + // summary: + // User specified a store&query rather than model, so create model from store/query + this._v10Compat = true; + dojo.deprecated("Tree: from version 2.0, should specify a model object rather than a store/query"); + + var modelParams = { + id: this.id + "_ForestStoreModel", + store: this.store, + query: this.query, + childrenAttrs: this.childrenAttr + }; + + // Only override the model's mayHaveChildren() method if the user has specified an override + if(this.params.mayHaveChildren){ + modelParams.mayHaveChildren = dojo.hitch(this, "mayHaveChildren"); + } + + if(this.params.getItemChildren){ + modelParams.getChildren = dojo.hitch(this, function(item, onComplete, onError){ + this.getItemChildren((this._v10Compat && item === this.model.root) ? null : item, onComplete, onError); + }); + } + this.model = new dijit.tree.ForestStoreModel(modelParams); + + // For backwards compatibility, the visibility of the root node is controlled by + // whether or not the user has specified a label + this.showRoot = Boolean(this.label); + }, + + onLoad: function(){ + // summary: + // Called when tree finishes loading and expanding. + // description: + // If persist == true the loading may encompass many levels of fetches + // from the data store, each asynchronous. Waits for all to finish. + // tags: + // callback + }, + + _load: function(){ + // summary: + // Initial load of the tree. + // Load root node (possibly hidden) and it's children. + this.model.getRoot( + dojo.hitch(this, function(item){ + var rn = (this.rootNode = this.tree._createTreeNode({ + item: item, + tree: this, + isExpandable: true, + label: this.label || this.getLabel(item), + indent: this.showRoot ? 0 : -1 + })); + if(!this.showRoot){ + rn.rowNode.style.display="none"; + } + this.domNode.appendChild(rn.domNode); + var identity = this.model.getIdentity(item); + if(this._itemNodesMap[identity]){ + this._itemNodesMap[identity].push(rn); + }else{ + this._itemNodesMap[identity] = [rn]; + } + + rn._updateLayout(); // sets "dijitTreeIsRoot" CSS classname + + // load top level children and then fire onLoad() event + this._expandNode(rn).addCallback(dojo.hitch(this, function(){ + this._loadDeferred.callback(true); + this.onLoad(); + })); + }), + function(err){ + console.error(this, ": error loading root: ", err); + } + ); + }, + + getNodesByItem: function(/*dojo.data.Item or id*/ item){ + // summary: + // Returns all tree nodes that refer to an item + // returns: + // Array of tree nodes that refer to passed item + + if(!item){ return []; } + var identity = dojo.isString(item) ? item : this.model.getIdentity(item); + // return a copy so widget don't get messed up by changes to returned array + return [].concat(this._itemNodesMap[identity]); + }, + + _setSelectedItemAttr: function(/*dojo.data.Item or id*/ item){ + // summary: + // Select a tree node related to passed item. + // WARNING: if model use multi-parented items or desired tree node isn't already loaded + // behavior is undefined. Use set('path', ...) instead. + + var oldValue = this.get("selectedItem"); + var identity = (!item || dojo.isString(item)) ? item : this.model.getIdentity(item); + if(identity == oldValue ? this.model.getIdentity(oldValue) : null){ return; } + var nodes = this._itemNodesMap[identity]; + this._selectNode((nodes && nodes[0]) || null); //select the first item + }, + + _getSelectedItemAttr: function(){ + // summary: + // Return item related to selected tree node. + return this.selectedNode && this.selectedNode.item; + }, + + _setPathAttr: function(/*Item[] || String[]*/ path){ + // summary: + // Select the tree node identified by passed path. + // path: + // Array of items or item id's + // returns: + // Deferred to indicate when the set is complete + + var d = new dojo.Deferred(); + + this._selectNode(null); + if(!path || !path.length){ + d.resolve(true); + return d; + } + + // If this is called during initialization, defer running until Tree has finished loading + this._loadDeferred.addCallback(dojo.hitch(this, function(){ + if(!this.rootNode){ + d.reject(new Error("!this.rootNode")); + return; + } + if(path[0] !== this.rootNode.item && (dojo.isString(path[0]) && path[0] != this.model.getIdentity(this.rootNode.item))){ + d.reject(new Error(this.id + ":path[0] doesn't match this.rootNode.item. Maybe you are using the wrong tree.")); + return; + } + path.shift(); + + var node = this.rootNode; + + function advance(){ + // summary: + // Called when "node" has completed loading and expanding. Pop the next item from the path + // (which must be a child of "node") and advance to it, and then recurse. + + // Set item and identity to next item in path (node is pointing to the item that was popped + // from the path _last_ time. + var item = path.shift(), + identity = dojo.isString(item) ? item : this.model.getIdentity(item); + + // Change "node" from previous item in path to the item we just popped from path + dojo.some(this._itemNodesMap[identity], function(n){ + if(n.getParent() == node){ + node = n; + return true; + } + return false; + }); + + if(path.length){ + // Need to do more expanding + this._expandNode(node).addCallback(dojo.hitch(this, advance)); + }else{ + // Final destination node, select it + this._selectNode(node); + + // signal that path setting is finished + d.resolve(true); + } + } + + this._expandNode(node).addCallback(dojo.hitch(this, advance)); + })); + + return d; + }, + + _getPathAttr: function(){ + // summary: + // Return an array of items that is the path to selected tree node. + if(!this.selectedNode){ return; } + var res = []; + var treeNode = this.selectedNode; + while(treeNode && treeNode !== this.rootNode){ + res.unshift(treeNode.item); + treeNode = treeNode.getParent(); + } + res.unshift(this.rootNode.item); + return res; + }, + + ////////////// Data store related functions ////////////////////// + // These just get passed to the model; they are here for back-compat + + mayHaveChildren: function(/*dojo.data.Item*/ item){ + // summary: + // Deprecated. This should be specified on the model itself. + // + // Overridable function to tell if an item has or may have children. + // Controls whether or not +/- expando icon is shown. + // (For efficiency reasons we may not want to check if an element actually + // has children until user clicks the expando node) + // tags: + // deprecated + }, + + getItemChildren: function(/*dojo.data.Item*/ parentItem, /*function(items)*/ onComplete){ + // summary: + // Deprecated. This should be specified on the model itself. + // + // Overridable function that return array of child items of given parent item, + // or if parentItem==null then return top items in tree + // tags: + // deprecated + }, + + /////////////////////////////////////////////////////// + // Functions for converting an item to a TreeNode + getLabel: function(/*dojo.data.Item*/ item){ + // summary: + // Overridable function to get the label for a tree node (given the item) + // tags: + // extension + return this.model.getLabel(item); // String + }, + + getIconClass: function(/*dojo.data.Item*/ item, /*Boolean*/ opened){ + // summary: + // Overridable function to return CSS class name to display icon + // tags: + // extension + return (!item || this.model.mayHaveChildren(item)) ? (opened ? "dijitFolderOpened" : "dijitFolderClosed") : "dijitLeaf" + }, + + getLabelClass: function(/*dojo.data.Item*/ item, /*Boolean*/ opened){ + // summary: + // Overridable function to return CSS class name to display label + // tags: + // extension + }, + + getRowClass: function(/*dojo.data.Item*/ item, /*Boolean*/ opened){ + // summary: + // Overridable function to return CSS class name to display row + // tags: + // extension + }, + + getIconStyle: function(/*dojo.data.Item*/ item, /*Boolean*/ opened){ + // summary: + // Overridable function to return CSS styles to display icon + // returns: + // Object suitable for input to dojo.style() like {backgroundImage: "url(...)"} + // tags: + // extension + }, + + getLabelStyle: function(/*dojo.data.Item*/ item, /*Boolean*/ opened){ + // summary: + // Overridable function to return CSS styles to display label + // returns: + // Object suitable for input to dojo.style() like {color: "red", background: "green"} + // tags: + // extension + }, + + getRowStyle: function(/*dojo.data.Item*/ item, /*Boolean*/ opened){ + // summary: + // Overridable function to return CSS styles to display row + // returns: + // Object suitable for input to dojo.style() like {background-color: "#bbb"} + // tags: + // extension + }, + + getTooltip: function(/*dojo.data.Item*/ item){ + // summary: + // Overridable function to get the tooltip for a tree node (given the item) + // tags: + // extension + return ""; // String + }, + + /////////// Keyboard and Mouse handlers //////////////////// + + _onKeyPress: function(/*Event*/ e){ + // summary: + // Translates keypress events into commands for the controller + if(e.altKey){ return; } + var dk = dojo.keys; + var treeNode = dijit.getEnclosingWidget(e.target); + if(!treeNode){ return; } + + var key = e.charOrCode; + if(typeof key == "string"){ // handle printables (letter navigation) + // Check for key navigation. + if(!e.altKey && !e.ctrlKey && !e.shiftKey && !e.metaKey){ + this._onLetterKeyNav( { node: treeNode, key: key.toLowerCase() } ); + dojo.stopEvent(e); + } + }else{ // handle non-printables (arrow keys) + // clear record of recent printables (being saved for multi-char letter navigation), + // because "a", down-arrow, "b" shouldn't search for "ab" + if(this._curSearch){ + clearTimeout(this._curSearch.timer); + delete this._curSearch; + } + + var map = this._keyHandlerMap; + if(!map){ + // setup table mapping keys to events + map = {}; + map[dk.ENTER]="_onEnterKey"; + map[this.isLeftToRight() ? dk.LEFT_ARROW : dk.RIGHT_ARROW]="_onLeftArrow"; + map[this.isLeftToRight() ? dk.RIGHT_ARROW : dk.LEFT_ARROW]="_onRightArrow"; + map[dk.UP_ARROW]="_onUpArrow"; + map[dk.DOWN_ARROW]="_onDownArrow"; + map[dk.HOME]="_onHomeKey"; + map[dk.END]="_onEndKey"; + this._keyHandlerMap = map; + } + if(this._keyHandlerMap[key]){ + this[this._keyHandlerMap[key]]( { node: treeNode, item: treeNode.item, evt: e } ); + dojo.stopEvent(e); + } + } + }, + + _onEnterKey: function(/*Object*/ message, /*Event*/ evt){ + this._publish("execute", { item: message.item, node: message.node } ); + this._selectNode(message.node); + this.onClick(message.item, message.node, evt); + }, + + _onDownArrow: function(/*Object*/ message){ + // summary: + // down arrow pressed; get next visible node, set focus there + var node = this._getNextNode(message.node); + if(node && node.isTreeNode){ + this.focusNode(node); + } + }, + + _onUpArrow: function(/*Object*/ message){ + // summary: + // Up arrow pressed; move to previous visible node + + var node = message.node; + + // if younger siblings + var previousSibling = node.getPreviousSibling(); + if(previousSibling){ + node = previousSibling; + // if the previous node is expanded, dive in deep + while(node.isExpandable && node.isExpanded && node.hasChildren()){ + // move to the last child + var children = node.getChildren(); + node = children[children.length-1]; + } + }else{ + // if this is the first child, return the parent + // unless the parent is the root of a tree with a hidden root + var parent = node.getParent(); + if(!(!this.showRoot && parent === this.rootNode)){ + node = parent; + } + } + + if(node && node.isTreeNode){ + this.focusNode(node); + } + }, + + _onRightArrow: function(/*Object*/ message){ + // summary: + // Right arrow pressed; go to child node + var node = message.node; + + // if not expanded, expand, else move to 1st child + if(node.isExpandable && !node.isExpanded){ + this._expandNode(node); + }else if(node.hasChildren()){ + node = node.getChildren()[0]; + if(node && node.isTreeNode){ + this.focusNode(node); + } + } + }, + + _onLeftArrow: function(/*Object*/ message){ + // summary: + // Left arrow pressed. + // If not collapsed, collapse, else move to parent. + + var node = message.node; + + if(node.isExpandable && node.isExpanded){ + this._collapseNode(node); + }else{ + var parent = node.getParent(); + if(parent && parent.isTreeNode && !(!this.showRoot && parent === this.rootNode)){ + this.focusNode(parent); + } + } + }, + + _onHomeKey: function(){ + // summary: + // Home key pressed; get first visible node, and set focus there + var node = this._getRootOrFirstNode(); + if(node){ + this.focusNode(node); + } + }, + + _onEndKey: function(/*Object*/ message){ + // summary: + // End key pressed; go to last visible node. + + var node = this.rootNode; + while(node.isExpanded){ + var c = node.getChildren(); + node = c[c.length - 1]; + } + + if(node && node.isTreeNode){ + this.focusNode(node); + } + }, + + // multiCharSearchDuration: Number + // If multiple characters are typed where each keystroke happens within + // multiCharSearchDuration of the previous keystroke, + // search for nodes matching all the keystrokes. + // + // For example, typing "ab" will search for entries starting with + // "ab" unless the delay between "a" and "b" is greater than multiCharSearchDuration. + multiCharSearchDuration: 250, + + _onLetterKeyNav: function(message){ + // summary: + // Called when user presses a prinatable key; search for node starting with recently typed letters. + // message: Object + // Like { node: TreeNode, key: 'a' } where key is the key the user pressed. + + // Branch depending on whether this key starts a new search, or modifies an existing search + var cs = this._curSearch; + if(cs){ + // We are continuing a search. Ex: user has pressed 'a', and now has pressed + // 'b', so we want to search for nodes starting w/"ab". + cs.pattern = cs.pattern + message.key; + clearTimeout(cs.timer); + }else{ + // We are starting a new search + cs = this._curSearch = { + pattern: message.key, + startNode: message.node + }; + } + + // set/reset timer to forget recent keystrokes + var self = this; + cs.timer = setTimeout(function(){ + delete self._curSearch; + }, this.multiCharSearchDuration); + + // Navigate to TreeNode matching keystrokes [entered so far]. + var node = cs.startNode; + do{ + node = this._getNextNode(node); + //check for last node, jump to first node if necessary + if(!node){ + node = this._getRootOrFirstNode(); + } + }while(node !== cs.startNode && (node.label.toLowerCase().substr(0, cs.pattern.length) != cs.pattern)); + if(node && node.isTreeNode){ + // no need to set focus if back where we started + if(node !== cs.startNode){ + this.focusNode(node); + } + } + }, + + _onClick: function(/*TreeNode*/ nodeWidget, /*Event*/ e){ + // summary: + // Translates click events into commands for the controller to process + + var domElement = e.target, + isExpandoClick = (domElement == nodeWidget.expandoNode || domElement == nodeWidget.expandoNodeText); + + if( (this.openOnClick && nodeWidget.isExpandable) || isExpandoClick ){ + // expando node was clicked, or label of a folder node was clicked; open it + if(nodeWidget.isExpandable){ + this._onExpandoClick({node:nodeWidget}); + } + }else{ + this._publish("execute", { item: nodeWidget.item, node: nodeWidget, evt: e } ); + this.onClick(nodeWidget.item, nodeWidget, e); + this.focusNode(nodeWidget); + } + if(!isExpandoClick){ + this._selectNode(nodeWidget); + } + dojo.stopEvent(e); + }, + _onDblClick: function(/*TreeNode*/ nodeWidget, /*Event*/ e){ + // summary: + // Translates double-click events into commands for the controller to process + + var domElement = e.target, + isExpandoClick = (domElement == nodeWidget.expandoNode || domElement == nodeWidget.expandoNodeText); + + if( (this.openOnDblClick && nodeWidget.isExpandable) ||isExpandoClick ){ + // expando node was clicked, or label of a folder node was clicked; open it + if(nodeWidget.isExpandable){ + this._onExpandoClick({node:nodeWidget}); + } + }else{ + this._publish("execute", { item: nodeWidget.item, node: nodeWidget, evt: e } ); + this.onDblClick(nodeWidget.item, nodeWidget, e); + this.focusNode(nodeWidget); + } + if(!isExpandoClick){ + this._selectNode(nodeWidget); + } + dojo.stopEvent(e); + }, + + _onExpandoClick: function(/*Object*/ message){ + // summary: + // User clicked the +/- icon; expand or collapse my children. + var node = message.node; + + // If we are collapsing, we might be hiding the currently focused node. + // Also, clicking the expando node might have erased focus from the current node. + // For simplicity's sake just focus on the node with the expando. + this.focusNode(node); + + if(node.isExpanded){ + this._collapseNode(node); + }else{ + this._expandNode(node); + } + }, + + onClick: function(/* dojo.data */ item, /*TreeNode*/ node, /*Event*/ evt){ + // summary: + // Callback when a tree node is clicked + // tags: + // callback + }, + onDblClick: function(/* dojo.data */ item, /*TreeNode*/ node, /*Event*/ evt){ + // summary: + // Callback when a tree node is double-clicked + // tags: + // callback + }, + onOpen: function(/* dojo.data */ item, /*TreeNode*/ node){ + // summary: + // Callback when a node is opened + // tags: + // callback + }, + onClose: function(/* dojo.data */ item, /*TreeNode*/ node){ + // summary: + // Callback when a node is closed + // tags: + // callback + }, + + _getNextNode: function(node){ + // summary: + // Get next visible node + + if(node.isExpandable && node.isExpanded && node.hasChildren()){ + // if this is an expanded node, get the first child + return node.getChildren()[0]; // _TreeNode + }else{ + // find a parent node with a sibling + while(node && node.isTreeNode){ + var returnNode = node.getNextSibling(); + if(returnNode){ + return returnNode; // _TreeNode + } + node = node.getParent(); + } + return null; + } + }, + + _getRootOrFirstNode: function(){ + // summary: + // Get first visible node + return this.showRoot ? this.rootNode : this.rootNode.getChildren()[0]; + }, + + _collapseNode: function(/*_TreeNode*/ node){ + // summary: + // Called when the user has requested to collapse the node + + if(node._expandNodeDeferred){ + delete node._expandNodeDeferred; + } + + if(node.isExpandable){ + if(node.state == "LOADING"){ + // ignore clicks while we are in the process of loading data + return; + } + + node.collapse(); + this.onClose(node.item, node); + + if(node.item){ + this._state(node.item,false); + this._saveState(); + } + } + }, + + _expandNode: function(/*_TreeNode*/ node, /*Boolean?*/ recursive){ + // summary: + // Called when the user has requested to expand the node + // recursive: + // Internal flag used when _expandNode() calls itself, don't set. + // returns: + // Deferred that fires when the node is loaded and opened and (if persist=true) all it's descendants + // that were previously opened too + + if(node._expandNodeDeferred && !recursive){ + // there's already an expand in progress (or completed), so just return + return node._expandNodeDeferred; // dojo.Deferred + } + + var model = this.model, + item = node.item, + _this = this; + + switch(node.state){ + case "UNCHECKED": + // need to load all the children, and then expand + node.markProcessing(); + + // Setup deferred to signal when the load and expand are finished. + // Save that deferred in this._expandDeferred as a flag that operation is in progress. + var def = (node._expandNodeDeferred = new dojo.Deferred()); + + // Get the children + model.getChildren( + item, + function(items){ + node.unmarkProcessing(); + + // Display the children and also start expanding any children that were previously expanded + // (if this.persist == true). The returned Deferred will fire when those expansions finish. + var scid = node.setChildItems(items); + + // Call _expandNode() again but this time it will just to do the animation (default branch). + // The returned Deferred will fire when the animation completes. + // TODO: seems like I can avoid recursion and just use a deferred to sequence the events? + var ed = _this._expandNode(node, true); + + // After the above two tasks (setChildItems() and recursive _expandNode()) finish, + // signal that I am done. + scid.addCallback(function(){ + ed.addCallback(function(){ + def.callback(); + }) + }); + }, + function(err){ + console.error(_this, ": error loading root children: ", err); + } + ); + break; + + default: // "LOADED" + // data is already loaded; just expand node + def = (node._expandNodeDeferred = node.expand()); + + this.onOpen(node.item, node); + + if(item){ + this._state(item, true); + this._saveState(); + } + } + + return def; // dojo.Deferred + }, + + ////////////////// Miscellaneous functions //////////////// + + focusNode: function(/* _tree.Node */ node){ + // summary: + // Focus on the specified node (which must be visible) + // tags: + // protected + + // set focus so that the label will be voiced using screen readers + dijit.focus(node.labelNode); + }, + + _selectNode: function(/*_tree.Node*/ node){ + // summary: + // Mark specified node as select, and unmark currently selected node. + // tags: + // protected + + if(this.selectedNode && !this.selectedNode._destroyed){ + this.selectedNode.setSelected(false); + } + if(node){ + node.setSelected(true); + } + this.selectedNode = node; + }, + + _onNodeFocus: function(/*dijit._Widget*/ node){ + // summary: + // Called when a TreeNode gets focus, either by user clicking + // it, or programatically by arrow key handling code. + // description: + // It marks that the current node is the selected one, and the previously + // selected node no longer is. + + if(node && node != this.lastFocused){ + if(this.lastFocused && !this.lastFocused._destroyed){ + // mark that the previously focsable node is no longer focusable + this.lastFocused.setFocusable(false); + } + + // mark that the new node is the currently selected one + node.setFocusable(true); + this.lastFocused = node; + } + }, + + _onNodeMouseEnter: function(/*dijit._Widget*/ node){ + // summary: + // Called when mouse is over a node (onmouseenter event), + // this is monitored by the DND code + }, + + _onNodeMouseLeave: function(/*dijit._Widget*/ node){ + // summary: + // Called when mouse leaves a node (onmouseleave event), + // this is monitored by the DND code + }, + + //////////////// Events from the model ////////////////////////// + + _onItemChange: function(/*Item*/ item){ + // summary: + // Processes notification of a change to an item's scalar values like label + var model = this.model, + identity = model.getIdentity(item), + nodes = this._itemNodesMap[identity]; + + if(nodes){ + var label = this.getLabel(item), + tooltip = this.getTooltip(item); + dojo.forEach(nodes, function(node){ + node.set({ + item: item, // theoretically could be new JS Object representing same item + label: label, + tooltip: tooltip + }); + node._updateItemClasses(item); + }); + } + }, + + _onItemChildrenChange: function(/*dojo.data.Item*/ parent, /*dojo.data.Item[]*/ newChildrenList){ + // summary: + // Processes notification of a change to an item's children + var model = this.model, + identity = model.getIdentity(parent), + parentNodes = this._itemNodesMap[identity]; + + if(parentNodes){ + dojo.forEach(parentNodes,function(parentNode){ + parentNode.setChildItems(newChildrenList); + }); + } + }, + + _onItemDelete: function(/*Item*/ item){ + // summary: + // Processes notification of a deletion of an item + var model = this.model, + identity = model.getIdentity(item), + nodes = this._itemNodesMap[identity]; + + if(nodes){ + dojo.forEach(nodes,function(node){ + var parent = node.getParent(); + if(parent){ + // if node has not already been orphaned from a _onSetItem(parent, "children", ..) call... + parent.removeChild(node); + } + node.destroyRecursive(); + }); + delete this._itemNodesMap[identity]; + } + }, + + /////////////// Miscellaneous funcs + + _initState: function(){ + // summary: + // Load in which nodes should be opened automatically + if(this.persist){ + var cookie = dojo.cookie(this.cookieName); + this._openedItemIds = {}; + if(cookie){ + dojo.forEach(cookie.split(','), function(item){ + this._openedItemIds[item] = true; + }, this); + } + } + }, + _state: function(item,expanded){ + // summary: + // Query or set expanded state for an item, + if(!this.persist){ + return false; + } + var id=this.model.getIdentity(item); + if(arguments.length === 1){ + return this._openedItemIds[id]; + } + if(expanded){ + this._openedItemIds[id] = true; + }else{ + delete this._openedItemIds[id]; + } + }, + _saveState: function(){ + // summary: + // Create and save a cookie with the currently expanded nodes identifiers + if(!this.persist){ + return; + } + var ary = []; + for(var id in this._openedItemIds){ + ary.push(id); + } + dojo.cookie(this.cookieName, ary.join(","), {expires:365}); + }, + + destroy: function(){ + if(this._curSearch){ + clearTimeout(this._curSearch.timer); + delete this._curSearch; + } + if(this.rootNode){ + this.rootNode.destroyRecursive(); + } + if(this.dndController && !dojo.isString(this.dndController)){ + this.dndController.destroy(); + } + this.rootNode = null; + this.inherited(arguments); + }, + + destroyRecursive: function(){ + // A tree is treated as a leaf, not as a node with children (like a grid), + // but defining destroyRecursive for back-compat. + this.destroy(); + }, + + resize: function(changeSize){ + if(changeSize){ + dojo.marginBox(this.domNode, changeSize); + dojo.style(this.domNode, "overflow", "auto"); // for scrollbars + } + + // The only JS sizing involved w/tree is the indentation, which is specified + // in CSS and read in through this dummy indentDetector node (tree must be + // visible and attached to the DOM to read this) + this._nodePixelIndent = dojo.marginBox(this.tree.indentDetector).w; + + if(this.tree.rootNode){ + // If tree has already loaded, then reset indent for all the nodes + this.tree.rootNode.set('indent', this.showRoot ? 0 : -1); + } + }, + + _createTreeNode: function(/*Object*/ args){ + // summary: + // creates a TreeNode + // description: + // Developers can override this method to define their own TreeNode class; + // However it will probably be removed in a future release in favor of a way + // of just specifying a widget for the label, rather than one that contains + // the children too. + return new dijit._TreeNode(args); + } +}); + +// For back-compat. TODO: remove in 2.0 + + + +} + +if(!dojo._hasResource["dijit.InlineEditBox"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.InlineEditBox"] = true; +dojo.provide("dijit.InlineEditBox"); + + + + + + + + + + +dojo.declare("dijit.InlineEditBox", + dijit._Widget, + { + // summary: + // An element with in-line edit capabilites + // + // description: + // Behavior for an existing node (`<p>`, `<div>`, `<span>`, etc.) so that + // when you click it, an editor shows up in place of the original + // text. Optionally, Save and Cancel button are displayed below the edit widget. + // When Save is clicked, the text is pulled from the edit + // widget and redisplayed and the edit widget is again hidden. + // By default a plain Textarea widget is used as the editor (or for + // inline values a TextBox), but you can specify an editor such as + // dijit.Editor (for editing HTML) or a Slider (for adjusting a number). + // An edit widget must support the following API to be used: + // - displayedValue or value as initialization parameter, + // and available through set('displayedValue') / set('value') + // - void focus() + // - DOM-node focusNode = node containing editable text + + // editing: [readonly] Boolean + // Is the node currently in edit mode? + editing: false, + + // autoSave: Boolean + // Changing the value automatically saves it; don't have to push save button + // (and save button isn't even displayed) + autoSave: true, + + // buttonSave: String + // Save button label + buttonSave: "", + + // buttonCancel: String + // Cancel button label + buttonCancel: "", + + // renderAsHtml: Boolean + // Set this to true if the specified Editor's value should be interpreted as HTML + // rather than plain text (ex: `dijit.Editor`) + renderAsHtml: false, + + // editor: String + // Class name for Editor widget + editor: "dijit.form.TextBox", + + // editorWrapper: String + // Class name for widget that wraps the editor widget, displaying save/cancel + // buttons. + editorWrapper: "dijit._InlineEditor", + + // editorParams: Object + // Set of parameters for editor, like {required: true} + editorParams: {}, + + onChange: function(value){ + // summary: + // Set this handler to be notified of changes to value. + // tags: + // callback + }, + + onCancel: function(){ + // summary: + // Set this handler to be notified when editing is cancelled. + // tags: + // callback + }, + + // width: String + // Width of editor. By default it's width=100% (ie, block mode). + width: "100%", + + // value: String + // The display value of the widget in read-only mode + value: "", + + // noValueIndicator: [const] String + // The text that gets displayed when there is no value (so that the user has a place to click to edit) + noValueIndicator: dojo.isIE <= 6 ? // font-family needed on IE6 but it messes up IE8 + "<span style='font-family: wingdings; text-decoration: underline;'> ✍ </span>" : + "<span style='text-decoration: underline;'> ✍ </span>", + + constructor: function(){ + // summary: + // Sets up private arrays etc. + // tags: + // private + this.editorParams = {}; + }, + + postMixInProperties: function(){ + this.inherited(arguments); + + // save pointer to original source node, since Widget nulls-out srcNodeRef + this.displayNode = this.srcNodeRef; + + // connect handlers to the display node + var events = { + ondijitclick: "_onClick", + onmouseover: "_onMouseOver", + onmouseout: "_onMouseOut", + onfocus: "_onMouseOver", + onblur: "_onMouseOut" + }; + for(var name in events){ + this.connect(this.displayNode, name, events[name]); + } + dijit.setWaiRole(this.displayNode, "button"); + if(!this.displayNode.getAttribute("tabIndex")){ + this.displayNode.setAttribute("tabIndex", 0); + } + + if(!this.value && !("value" in this.params)){ // "" is a good value if specified directly so check params){ + this.value = dojo.trim(this.renderAsHtml ? this.displayNode.innerHTML : + (this.displayNode.innerText||this.displayNode.textContent||"")); + } + if(!this.value){ + this.displayNode.innerHTML = this.noValueIndicator; + } + + dojo.addClass(this.displayNode, 'dijitInlineEditBoxDisplayMode'); + }, + + setDisabled: function(/*Boolean*/ disabled){ + // summary: + // Deprecated. Use set('disabled', ...) instead. + // tags: + // deprecated + dojo.deprecated("dijit.InlineEditBox.setDisabled() is deprecated. Use set('disabled', bool) instead.", "", "2.0"); + this.set('disabled', disabled); + }, + + _setDisabledAttr: function(/*Boolean*/ disabled){ + // summary: + // Hook to make set("disabled", ...) work. + // Set disabled state of widget. + this.disabled = disabled; + dijit.setWaiState(this.domNode, "disabled", disabled); + if(disabled){ + this.displayNode.removeAttribute("tabIndex"); + }else{ + this.displayNode.setAttribute("tabIndex", 0); + } + dojo.toggleClass(this.displayNode, "dijitInlineEditBoxDisplayModeDisabled", disabled); + }, + + _onMouseOver: function(){ + // summary: + // Handler for onmouseover and onfocus event. + // tags: + // private + if(!this.disabled){ + dojo.addClass(this.displayNode, "dijitInlineEditBoxDisplayModeHover"); + } + }, + + _onMouseOut: function(){ + // summary: + // Handler for onmouseout and onblur event. + // tags: + // private + dojo.removeClass(this.displayNode, "dijitInlineEditBoxDisplayModeHover"); + }, + + _onClick: function(/*Event*/ e){ + // summary: + // Handler for onclick event. + // tags: + // private + if(this.disabled){ return; } + if(e){ dojo.stopEvent(e); } + this._onMouseOut(); + + // Since FF gets upset if you move a node while in an event handler for that node... + setTimeout(dojo.hitch(this, "edit"), 0); + }, + + edit: function(){ + // summary: + // Display the editor widget in place of the original (read only) markup. + // tags: + // private + + if(this.disabled || this.editing){ return; } + this.editing = true; + + // save some display node values that can be restored later + this._savedPosition = dojo.style(this.displayNode, "position") || "static"; + this._savedOpacity = dojo.style(this.displayNode, "opacity") || "1"; + this._savedTabIndex = dojo.attr(this.displayNode, "tabIndex") || "0"; + + if(this.wrapperWidget){ + var ew = this.wrapperWidget.editWidget; + ew.set("displayedValue" in ew ? "displayedValue" : "value", this.value); + }else{ + // Placeholder for edit widget + // Put place holder (and eventually editWidget) before the display node so that it's positioned correctly + // when Calendar dropdown appears, which happens automatically on focus. + var placeholder = dojo.create("span", null, this.domNode, "before"); + + // Create the editor wrapper (the thing that holds the editor widget and the save/cancel buttons) + var ewc = dojo.getObject(this.editorWrapper); + this.wrapperWidget = new ewc({ + value: this.value, + buttonSave: this.buttonSave, + buttonCancel: this.buttonCancel, + dir: this.dir, + lang: this.lang, + tabIndex: this._savedTabIndex, + editor: this.editor, + inlineEditBox: this, + sourceStyle: dojo.getComputedStyle(this.displayNode), + save: dojo.hitch(this, "save"), + cancel: dojo.hitch(this, "cancel") + }, placeholder); + } + var ww = this.wrapperWidget; + + if(dojo.isIE){ + dijit.focus(dijit.getFocus()); // IE (at least 8) needs help with tab order changes + } + // to avoid screen jitter, we first create the editor with position:absolute, visibility:hidden, + // and then when it's finished rendering, we switch from display mode to editor + // position:absolute releases screen space allocated to the display node + // opacity:0 is the same as visibility:hidden but is still focusable + // visiblity:hidden removes focus outline + + dojo.style(this.displayNode, { position: "absolute", opacity: "0", display: "none" }); // makes display node invisible, display style used for focus-ability + dojo.style(ww.domNode, { position: this._savedPosition, visibility: "visible", opacity: "1" }); + dojo.attr(this.displayNode, "tabIndex", "-1"); // needed by WebKit for TAB from editor to skip displayNode + + // Replace the display widget with edit widget, leaving them both displayed for a brief time so that + // focus can be shifted without incident. (browser may needs some time to render the editor.) + setTimeout(dojo.hitch(this, function(){ + ww.focus(); // both nodes are showing, so we can switch focus safely + ww._resetValue = ww.getValue(); + }), 0); + }, + + _onBlur: function(){ + // summary: + // Called when focus moves outside the InlineEditBox. + // Performs garbage collection. + // tags: + // private + + this.inherited(arguments); + if(!this.editing){ + /* causes IE focus problems, see TooltipDialog_a11y.html... + setTimeout(dojo.hitch(this, function(){ + if(this.wrapperWidget){ + this.wrapperWidget.destroy(); + delete this.wrapperWidget; + } + }), 0); + */ + } + }, + + destroy: function(){ + if(this.wrapperWidget){ + this.wrapperWidget.destroy(); + delete this.wrapperWidget; + } + this.inherited(arguments); + }, + + _showText: function(/*Boolean*/ focus){ + // summary: + // Revert to display mode, and optionally focus on display node + // tags: + // private + + var ww = this.wrapperWidget; + dojo.style(ww.domNode, { position: "absolute", visibility: "hidden", opacity: "0" }); // hide the editor from mouse/keyboard events + dojo.style(this.displayNode, { position: this._savedPosition, opacity: this._savedOpacity, display: "" }); // make the original text visible + dojo.attr(this.displayNode, "tabIndex", this._savedTabIndex); + if(focus){ + dijit.focus(this.displayNode); + } + }, + + save: function(/*Boolean*/ focus){ + // summary: + // Save the contents of the editor and revert to display mode. + // focus: Boolean + // Focus on the display mode text + // tags: + // private + + if(this.disabled || !this.editing){ return; } + this.editing = false; + + var ww = this.wrapperWidget; + var value = ww.getValue(); + this.set('value', value); // display changed, formatted value + + // tell the world that we have changed + setTimeout(dojo.hitch(this, "onChange", value), 0); // setTimeout prevents browser freeze for long-running event handlers + + this._showText(focus); // set focus as needed + }, + + setValue: function(/*String*/ val){ + // summary: + // Deprecated. Use set('value', ...) instead. + // tags: + // deprecated + dojo.deprecated("dijit.InlineEditBox.setValue() is deprecated. Use set('value', ...) instead.", "", "2.0"); + return this.set("value", val); + }, + + _setValueAttr: function(/*String*/ val){ + // summary: + // Hook to make set("value", ...) work. + // Inserts specified HTML value into this node, or an "input needed" character if node is blank. + + this.value = val = dojo.trim(val); + if(!this.renderAsHtml){ + val = val.replace(/&/gm, "&").replace(/</gm, "<").replace(/>/gm, ">").replace(/"/gm, """).replace(/\n/g, "<br>"); + } + this.displayNode.innerHTML = val || this.noValueIndicator; + }, + + getValue: function(){ + // summary: + // Deprecated. Use get('value') instead. + // tags: + // deprecated + dojo.deprecated("dijit.InlineEditBox.getValue() is deprecated. Use get('value') instead.", "", "2.0"); + return this.get("value"); + }, + + cancel: function(/*Boolean*/ focus){ + // summary: + // Revert to display mode, discarding any changes made in the editor + // tags: + // private + + if(this.disabled || !this.editing){ return; } + this.editing = false; + + // tell the world that we have no changes + setTimeout(dojo.hitch(this, "onCancel"), 0); // setTimeout prevents browser freeze for long-running event handlers + + this._showText(focus); + } +}); + +dojo.declare( + "dijit._InlineEditor", + [dijit._Widget, dijit._Templated], +{ + // summary: + // Internal widget used by InlineEditBox, displayed when in editing mode + // to display the editor and maybe save/cancel buttons. Calling code should + // connect to save/cancel methods to detect when editing is finished + // + // Has mainly the same parameters as InlineEditBox, plus these values: + // + // style: Object + // Set of CSS attributes of display node, to replicate in editor + // + // value: String + // Value as an HTML string or plain text string, depending on renderAsHTML flag + + templateString: dojo.cache("dijit", "templates/InlineEditBox.html", "<span dojoAttachPoint=\"editNode\" waiRole=\"presentation\" style=\"position: absolute; visibility:hidden\" class=\"dijitReset dijitInline\"\n\tdojoAttachEvent=\"onkeypress: _onKeyPress\"\n\t><span dojoAttachPoint=\"editorPlaceholder\"></span\n\t><span dojoAttachPoint=\"buttonContainer\"\n\t\t><button class='saveButton' dojoAttachPoint=\"saveButton\" dojoType=\"dijit.form.Button\" dojoAttachEvent=\"onClick:save\" label=\"${buttonSave}\"></button\n\t\t><button class='cancelButton' dojoAttachPoint=\"cancelButton\" dojoType=\"dijit.form.Button\" dojoAttachEvent=\"onClick:cancel\" label=\"${buttonCancel}\"></button\n\t></span\n></span>\n"), + widgetsInTemplate: true, + + postMixInProperties: function(){ + this.inherited(arguments); + this.messages = dojo.i18n.getLocalization("dijit", "common", this.lang); + dojo.forEach(["buttonSave", "buttonCancel"], function(prop){ + if(!this[prop]){ this[prop] = this.messages[prop]; } + }, this); + }, + + postCreate: function(){ + // Create edit widget in place in the template + var cls = dojo.getObject(this.editor); + + // Copy the style from the source + // Don't copy ALL properties though, just the necessary/applicable ones. + // wrapperStyle/destStyle code is to workaround IE bug where getComputedStyle().fontSize + // is a relative value like 200%, rather than an absolute value like 24px, and + // the 200% can refer *either* to a setting on the node or it's ancestor (see #11175) + var srcStyle = this.sourceStyle, + editStyle = "line-height:" + srcStyle.lineHeight + ";", + destStyle = dojo.getComputedStyle(this.domNode); + dojo.forEach(["Weight","Family","Size","Style"], function(prop){ + var textStyle = srcStyle["font"+prop], + wrapperStyle = destStyle["font"+prop]; + if(wrapperStyle != textStyle){ + editStyle += "font-"+prop+":"+srcStyle["font"+prop]+";"; + } + }, this); + dojo.forEach(["marginTop","marginBottom","marginLeft", "marginRight"], function(prop){ + this.domNode.style[prop] = srcStyle[prop]; + }, this); + var width = this.inlineEditBox.width; + if(width == "100%"){ + // block mode + editStyle += "width:100%;"; + this.domNode.style.display = "block"; + }else{ + // inline-block mode + editStyle += "width:" + (width + (Number(width) == width ? "px" : "")) + ";"; + } + var editorParams = dojo.delegate(this.inlineEditBox.editorParams, { + style: editStyle, + dir: this.dir, + lang: this.lang + }); + editorParams[ "displayedValue" in cls.prototype ? "displayedValue" : "value"] = this.value; + var ew = (this.editWidget = new cls(editorParams, this.editorPlaceholder)); + + if(this.inlineEditBox.autoSave){ + // Remove the save/cancel buttons since saving is done by simply tabbing away or + // selecting a value from the drop down list + dojo.destroy(this.buttonContainer); + + // Selecting a value from a drop down list causes an onChange event and then we save + this.connect(ew, "onChange", "_onChange"); + + // ESC and TAB should cancel and save. Note that edit widgets do a stopEvent() on ESC key (to + // prevent Dialog from closing when the user just wants to revert the value in the edit widget), + // so this is the only way we can see the key press event. + this.connect(ew, "onKeyPress", "_onKeyPress"); + }else{ + // If possible, enable/disable save button based on whether the user has changed the value + if("intermediateChanges" in cls.prototype){ + ew.set("intermediateChanges", true); + this.connect(ew, "onChange", "_onIntermediateChange"); + this.saveButton.set("disabled", true); + } + } + }, + + _onIntermediateChange: function(val){ + // summary: + // Called for editor widgets that support the intermediateChanges=true flag as a way + // to detect when to enable/disabled the save button + this.saveButton.set("disabled", (this.getValue() == this._resetValue) || !this.enableSave()); + }, + + destroy: function(){ + this.editWidget.destroy(true); // let the parent wrapper widget clean up the DOM + this.inherited(arguments); + }, + + getValue: function(){ + // summary: + // Return the [display] value of the edit widget + var ew = this.editWidget; + return String(ew.get("displayedValue" in ew ? "displayedValue" : "value")); + }, + + _onKeyPress: function(e){ + // summary: + // Handler for keypress in the edit box in autoSave mode. + // description: + // For autoSave widgets, if Esc/Enter, call cancel/save. + // tags: + // private + + if(this.inlineEditBox.autoSave && this.inlineEditBox.editing){ + if(e.altKey || e.ctrlKey){ return; } + // If Enter/Esc pressed, treat as save/cancel. + if(e.charOrCode == dojo.keys.ESCAPE){ + dojo.stopEvent(e); + this.cancel(true); // sets editing=false which short-circuits _onBlur processing + }else if(e.charOrCode == dojo.keys.ENTER && e.target.tagName == "INPUT"){ + dojo.stopEvent(e); + this._onChange(); // fire _onBlur and then save + } + + // _onBlur will handle TAB automatically by allowing + // the TAB to change focus before we mess with the DOM: #6227 + // Expounding by request: + // The current focus is on the edit widget input field. + // save() will hide and destroy this widget. + // We want the focus to jump from the currently hidden + // displayNode, but since it's hidden, it's impossible to + // unhide it, focus it, and then have the browser focus + // away from it to the next focusable element since each + // of these events is asynchronous and the focus-to-next-element + // is already queued. + // So we allow the browser time to unqueue the move-focus event + // before we do all the hide/show stuff. + } + }, + + _onBlur: function(){ + // summary: + // Called when focus moves outside the editor + // tags: + // private + + this.inherited(arguments); + if(this.inlineEditBox.autoSave && this.inlineEditBox.editing){ + if(this.getValue() == this._resetValue){ + this.cancel(false); + }else if(this.enableSave()){ + this.save(false); + } + } + }, + + _onChange: function(){ + // summary: + // Called when the underlying widget fires an onChange event, + // such as when the user selects a value from the drop down list of a ComboBox, + // which means that the user has finished entering the value and we should save. + // tags: + // private + + if(this.inlineEditBox.autoSave && this.inlineEditBox.editing && this.enableSave()){ + dojo.style(this.inlineEditBox.displayNode, { display: "" }); + dijit.focus(this.inlineEditBox.displayNode); // fires _onBlur which will save the formatted value + } + }, + + enableSave: function(){ + // summary: + // User overridable function returning a Boolean to indicate + // if the Save button should be enabled or not - usually due to invalid conditions + // tags: + // extension + return ( + this.editWidget.isValid + ? this.editWidget.isValid() + : true + ); + }, + + focus: function(){ + // summary: + // Focus the edit widget. + // tags: + // protected + + this.editWidget.focus(); + setTimeout(dojo.hitch(this, function(){ + if(this.editWidget.focusNode && this.editWidget.focusNode.tagName == "INPUT"){ + dijit.selectInputText(this.editWidget.focusNode); + } + }), 0); + } +}); + +} + +if(!dojo._hasResource["dijit.form.Form"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.form.Form"] = true; +dojo.provide("dijit.form.Form"); + + + + + +dojo.declare( + "dijit.form.Form", + [dijit._Widget, dijit._Templated, dijit.form._FormMixin], + { + // summary: + // Widget corresponding to HTML form tag, for validation and serialization + // + // example: + // | <form dojoType="dijit.form.Form" id="myForm"> + // | Name: <input type="text" name="name" /> + // | </form> + // | myObj = {name: "John Doe"}; + // | dijit.byId('myForm').set('value', myObj); + // | + // | myObj=dijit.byId('myForm').get('value'); + + // HTML <FORM> attributes + + // name: String? + // Name of form for scripting. + name: "", + + // action: String? + // Server-side form handler. + action: "", + + // method: String? + // HTTP method used to submit the form, either "GET" or "POST". + method: "", + + // encType: String? + // Encoding type for the form, ex: application/x-www-form-urlencoded. + encType: "", + + // accept-charset: String? + // List of supported charsets. + "accept-charset": "", + + // accept: String? + // List of MIME types for file upload. + accept: "", + + // target: String? + // Target frame for the document to be opened in. + target: "", + + templateString: "<form dojoAttachPoint='containerNode' dojoAttachEvent='onreset:_onReset,onsubmit:_onSubmit' ${!nameAttrSetting}></form>", + + attributeMap: dojo.delegate(dijit._Widget.prototype.attributeMap, { + action: "", + method: "", + encType: "", + "accept-charset": "", + accept: "", + target: "" + }), + + postMixInProperties: function(){ + // Setup name=foo string to be referenced from the template (but only if a name has been specified) + // Unfortunately we can't use attributeMap to set the name due to IE limitations, see #8660 + this.nameAttrSetting = this.name ? ("name='" + this.name + "'") : ""; + this.inherited(arguments); + }, + + execute: function(/*Object*/ formContents){ + // summary: + // Deprecated: use submit() + // tags: + // deprecated + }, + + onExecute: function(){ + // summary: + // Deprecated: use onSubmit() + // tags: + // deprecated + }, + + _setEncTypeAttr: function(/*String*/ value){ + this.encType = value; + dojo.attr(this.domNode, "encType", value); + if(dojo.isIE){ this.domNode.encoding = value; } + }, + + postCreate: function(){ + // IE tries to hide encType + // TODO: this code should be in parser, not here. + if(dojo.isIE && this.srcNodeRef && this.srcNodeRef.attributes){ + var item = this.srcNodeRef.attributes.getNamedItem('encType'); + if(item && !item.specified && (typeof item.value == "string")){ + this.set('encType', item.value); + } + } + this.inherited(arguments); + }, + + reset: function(/*Event?*/ e){ + // summary: + // restores all widget values back to their init values, + // calls onReset() which can cancel the reset by returning false + + // create fake event so we can know if preventDefault() is called + var faux = { + returnValue: true, // the IE way + preventDefault: function(){ // not IE + this.returnValue = false; + }, + stopPropagation: function(){}, + currentTarget: e ? e.target : this.domNode, + target: e ? e.target : this.domNode + }; + // if return value is not exactly false, and haven't called preventDefault(), then reset + if(!(this.onReset(faux) === false) && faux.returnValue){ + this.inherited(arguments, []); + } + }, + + onReset: function(/*Event?*/ e){ + // summary: + // Callback when user resets the form. This method is intended + // to be over-ridden. When the `reset` method is called + // programmatically, the return value from `onReset` is used + // to compute whether or not resetting should proceed + // tags: + // callback + return true; // Boolean + }, + + _onReset: function(e){ + this.reset(e); + dojo.stopEvent(e); + return false; + }, + + _onSubmit: function(e){ + var fp = dijit.form.Form.prototype; + // TODO: remove this if statement beginning with 2.0 + if(this.execute != fp.execute || this.onExecute != fp.onExecute){ + dojo.deprecated("dijit.form.Form:execute()/onExecute() are deprecated. Use onSubmit() instead.", "", "2.0"); + this.onExecute(); + this.execute(this.getValues()); + } + if(this.onSubmit(e) === false){ // only exactly false stops submit + dojo.stopEvent(e); + } + }, + + onSubmit: function(/*Event?*/e){ + // summary: + // Callback when user submits the form. + // description: + // This method is intended to be over-ridden, but by default it checks and + // returns the validity of form elements. When the `submit` + // method is called programmatically, the return value from + // `onSubmit` is used to compute whether or not submission + // should proceed + // tags: + // extension + + return this.isValid(); // Boolean + }, + + submit: function(){ + // summary: + // programmatically submit form if and only if the `onSubmit` returns true + if(!(this.onSubmit() === false)){ + this.containerNode.submit(); + } + } + } +); + +} + +if(!dojo._hasResource["dijit.form.DropDownButton"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.form.DropDownButton"] = true; +dojo.provide("dijit.form.DropDownButton"); + + + +} + +if(!dojo._hasResource["dijit.form.ComboButton"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.form.ComboButton"] = true; +dojo.provide("dijit.form.ComboButton"); + + +} + +if(!dojo._hasResource["dijit.form.ToggleButton"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.form.ToggleButton"] = true; +dojo.provide("dijit.form.ToggleButton"); + + +} + +if(!dojo._hasResource["dijit.form.CheckBox"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.form.CheckBox"] = true; +dojo.provide("dijit.form.CheckBox"); + + + +dojo.declare( + "dijit.form.CheckBox", + dijit.form.ToggleButton, + { + // summary: + // Same as an HTML checkbox, but with fancy styling. + // + // description: + // User interacts with real html inputs. + // On onclick (which occurs by mouse click, space-bar, or + // using the arrow keys to switch the selected radio button), + // we update the state of the checkbox/radio. + // + // There are two modes: + // 1. High contrast mode + // 2. Normal mode + // + // In case 1, the regular html inputs are shown and used by the user. + // In case 2, the regular html inputs are invisible but still used by + // the user. They are turned quasi-invisible and overlay the background-image. + + templateString: dojo.cache("dijit.form", "templates/CheckBox.html", "<div class=\"dijit dijitReset dijitInline\" waiRole=\"presentation\"\n\t><input\n\t \t${!nameAttrSetting} type=\"${type}\" ${checkedAttrSetting}\n\t\tclass=\"dijitReset dijitCheckBoxInput\"\n\t\tdojoAttachPoint=\"focusNode\"\n\t \tdojoAttachEvent=\"onclick:_onClick\"\n/></div>\n"), + + baseClass: "dijitCheckBox", + + // type: [private] String + // type attribute on <input> node. + // Overrides `dijit.form.Button.type`. Users should not change this value. + type: "checkbox", + + // value: String + // As an initialization parameter, equivalent to value field on normal checkbox + // (if checked, the value is passed as the value when form is submitted). + // + // However, attr('value') will return either the string or false depending on + // whether or not the checkbox is checked. + // + // attr('value', string) will check the checkbox and change the value to the + // specified string + // + // attr('value', boolean) will change the checked state. + value: "on", + + // readOnly: Boolean + // Should this widget respond to user input? + // In markup, this is specified as "readOnly". + // Similar to disabled except readOnly form values are submitted. + readOnly: false, + + // the attributeMap should inherit from dijit.form._FormWidget.prototype.attributeMap + // instead of ToggleButton as the icon mapping has no meaning for a CheckBox + attributeMap: dojo.delegate(dijit.form._FormWidget.prototype.attributeMap, { + readOnly: "focusNode" + }), + + _setReadOnlyAttr: function(/*Boolean*/ value){ + this.readOnly = value; + dojo.attr(this.focusNode, 'readOnly', value); + dijit.setWaiState(this.focusNode, "readonly", value); + }, + + _setValueAttr: function(/*String or Boolean*/ newValue, /*Boolean*/ priorityChange){ + // summary: + // Handler for value= attribute to constructor, and also calls to + // attr('value', val). + // description: + // During initialization, just saves as attribute to the <input type=checkbox>. + // + // After initialization, + // when passed a boolean, controls whether or not the CheckBox is checked. + // If passed a string, changes the value attribute of the CheckBox (the one + // specified as "value" when the CheckBox was constructed (ex: <input + // dojoType="dijit.CheckBox" value="chicken">) + if(typeof newValue == "string"){ + this.value = newValue; + dojo.attr(this.focusNode, 'value', newValue); + newValue = true; + } + if(this._created){ + this.set('checked', newValue, priorityChange); + } + }, + _getValueAttr: function(){ + // summary: + // Hook so attr('value') works. + // description: + // If the CheckBox is checked, returns the value attribute. + // Otherwise returns false. + return (this.checked ? this.value : false); + }, + + // Override dijit.form.Button._setLabelAttr() since we don't even have a containerNode. + // Normally users won't try to set label, except when CheckBox or RadioButton is the child of a dojox.layout.TabContainer + _setLabelAttr: undefined, + + postMixInProperties: function(){ + if(this.value == ""){ + this.value = "on"; + } + + // Need to set initial checked state as part of template, so that form submit works. + // dojo.attr(node, "checked", bool) doesn't work on IEuntil node has been attached + // to <body>, see #8666 + this.checkedAttrSetting = this.checked ? "checked" : ""; + + this.inherited(arguments); + }, + + _fillContent: function(/*DomNode*/ source){ + // Override Button::_fillContent() since it doesn't make sense for CheckBox, + // since CheckBox doesn't even have a container + }, + + reset: function(){ + // Override ToggleButton.reset() + + this._hasBeenBlurred = false; + + this.set('checked', this.params.checked || false); + + // Handle unlikely event that the <input type=checkbox> value attribute has changed + this.value = this.params.value || "on"; + dojo.attr(this.focusNode, 'value', this.value); + }, + + _onFocus: function(){ + if(this.id){ + dojo.query("label[for='"+this.id+"']").addClass("dijitFocusedLabel"); + } + this.inherited(arguments); + }, + + _onBlur: function(){ + if(this.id){ + dojo.query("label[for='"+this.id+"']").removeClass("dijitFocusedLabel"); + } + this.inherited(arguments); + }, + + _onClick: function(/*Event*/ e){ + // summary: + // Internal function to handle click actions - need to check + // readOnly, since button no longer does that check. + if(this.readOnly){ + return false; + } + return this.inherited(arguments); + } + } +); + +dojo.declare( + "dijit.form.RadioButton", + dijit.form.CheckBox, + { + // summary: + // Same as an HTML radio, but with fancy styling. + + type: "radio", + baseClass: "dijitRadio", + + _setCheckedAttr: function(/*Boolean*/ value){ + // If I am being checked then have to deselect currently checked radio button + this.inherited(arguments); + if(!this._created){ return; } + if(value){ + var _this = this; + // search for radio buttons with the same name that need to be unchecked + dojo.query("INPUT[type=radio]", this.focusNode.form || dojo.doc).forEach( // can't use name= since dojo.query doesn't support [] in the name + function(inputNode){ + if(inputNode.name == _this.name && inputNode != _this.focusNode && inputNode.form == _this.focusNode.form){ + var widget = dijit.getEnclosingWidget(inputNode); + if(widget && widget.checked){ + widget.set('checked', false); + } + } + } + ); + } + }, + + _clicked: function(/*Event*/ e){ + if(!this.checked){ + this.set('checked', true); + } + } + } +); + +} + +if(!dojo._hasResource["dijit.form.RadioButton"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.form.RadioButton"] = true; +dojo.provide("dijit.form.RadioButton"); + + +// TODO: for 2.0, move the RadioButton code into this file + +} + +if(!dojo._hasResource["dojo.cldr.monetary"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.cldr.monetary"] = true; +dojo.provide("dojo.cldr.monetary"); + +dojo.cldr.monetary.getData = function(/*String*/code){ +// summary: A mapping of currency code to currency-specific formatting information. Returns a unique object with properties: places, round. +// code: an [ISO 4217](http://en.wikipedia.org/wiki/ISO_4217) currency code + +// from http://www.unicode.org/cldr/data/common/supplemental/supplementalData.xml:supplementalData/currencyData/fractions + + var placesData = { + ADP:0,AFN:0,ALL:0,AMD:0,BHD:3,BIF:0,BYR:0,CLF:0,CLP:0, + COP:0,CRC:0,DJF:0,ESP:0,GNF:0,GYD:0,HUF:0,IDR:0,IQD:0, + IRR:3,ISK:0,ITL:0,JOD:3,JPY:0,KMF:0,KPW:0,KRW:0,KWD:3, + LAK:0,LBP:0,LUF:0,LYD:3,MGA:0,MGF:0,MMK:0,MNT:0,MRO:0, + MUR:0,OMR:3,PKR:0,PYG:0,RSD:0,RWF:0,SLL:0,SOS:0,STD:0, + SYP:0,TMM:0,TND:3,TRL:0,TZS:0,UGX:0,UZS:0,VND:0,VUV:0, + XAF:0,XOF:0,XPF:0,YER:0,ZMK:0,ZWD:0 + }; + + var roundingData = {CHF:5}; + + var places = placesData[code], round = roundingData[code]; + if(typeof places == "undefined"){ places = 2; } + if(typeof round == "undefined"){ round = 0; } + + return {places: places, round: round}; // Object +}; + +} + +if(!dojo._hasResource["dojo.currency"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.currency"] = true; +dojo.provide("dojo.currency"); + + + + + + +/*===== +dojo.currency = { + // summary: localized formatting and parsing routines for currencies + // + // description: extends dojo.number to provide culturally-appropriate formatting of values + // in various world currencies, including use of a currency symbol. The currencies are specified + // by a three-letter international symbol in all uppercase, and support for the currencies is + // provided by the data in `dojo.cldr`. The scripts generating dojo.cldr specify which + // currency support is included. A fixed number of decimal places is determined based + // on the currency type and is not determined by the 'pattern' argument. The fractional + // portion is optional, by default, and variable length decimals are not supported. +} +=====*/ + +dojo.currency._mixInDefaults = function(options){ + options = options || {}; + options.type = "currency"; + + // Get locale-dependent currency data, like the symbol + var bundle = dojo.i18n.getLocalization("dojo.cldr", "currency", options.locale) || {}; + + // Mixin locale-independent currency data, like # of places + var iso = options.currency; + var data = dojo.cldr.monetary.getData(iso); + + dojo.forEach(["displayName","symbol","group","decimal"], function(prop){ + data[prop] = bundle[iso+"_"+prop]; + }); + + data.fractional = [true, false]; + + // Mixin with provided options + return dojo.mixin(data, options); +} + +/*===== +dojo.declare("dojo.currency.__FormatOptions", [dojo.number.__FormatOptions], { + // type: String? + // Should not be set. Value is assumed to be "currency". + // symbol: String? + // localized currency symbol. The default will be looked up in table of supported currencies in `dojo.cldr` + // A [ISO4217](http://en.wikipedia.org/wiki/ISO_4217) currency code will be used if not found. + // currency: String? + // an [ISO4217](http://en.wikipedia.org/wiki/ISO_4217) currency code, a three letter sequence like "USD". + // For use with dojo.currency only. + // places: Number? + // number of decimal places to show. Default is defined based on which currency is used. + type: "", + symbol: "", + currency: "", + places: "" +}); +=====*/ + +dojo.currency.format = function(/*Number*/value, /*dojo.currency.__FormatOptions?*/options){ +// summary: +// Format a Number as a currency, using locale-specific settings +// +// description: +// Create a string from a Number using a known, localized pattern. +// [Formatting patterns](http://www.unicode.org/reports/tr35/#Number_Elements) +// appropriate to the locale are chosen from the [CLDR](http://unicode.org/cldr) +// as well as the appropriate symbols and delimiters and number of decimal places. +// +// value: +// the number to be formatted. + + return dojo.number.format(value, dojo.currency._mixInDefaults(options)); +} + +dojo.currency.regexp = function(/*dojo.number.__RegexpOptions?*/options){ +// +// summary: +// Builds the regular needed to parse a currency value +// +// description: +// Returns regular expression with positive and negative match, group and decimal separators +// Note: the options.places default, the number of decimal places to accept, is defined by the currency type. + return dojo.number.regexp(dojo.currency._mixInDefaults(options)); // String +} + +/*===== +dojo.declare("dojo.currency.__ParseOptions", [dojo.number.__ParseOptions], { + // type: String? + // Should not be set. Value is assumed to be currency. + // currency: String? + // an [ISO4217](http://en.wikipedia.org/wiki/ISO_4217) currency code, a three letter sequence like "USD". + // For use with dojo.currency only. + // symbol: String? + // localized currency symbol. The default will be looked up in table of supported currencies in `dojo.cldr` + // A [ISO4217](http://en.wikipedia.org/wiki/ISO_4217) currency code will be used if not found. + // places: Number? + // fixed number of decimal places to accept. The default is determined based on which currency is used. + // fractional: Boolean?|Array? + // Whether to include the fractional portion, where the number of decimal places are implied by the currency + // or explicit 'places' parameter. The value [true,false] makes the fractional portion optional. + // By default for currencies, it the fractional portion is optional. + type: "", + currency: "", + symbol: "", + places: "", + fractional: "" +}); +=====*/ + +dojo.currency.parse = function(/*String*/expression, /*dojo.currency.__ParseOptions?*/options){ + // + // summary: + // Convert a properly formatted currency string to a primitive Number, + // using locale-specific settings. + // + // description: + // Create a Number from a string using a known, localized pattern. + // [Formatting patterns](http://www.unicode.org/reports/tr35/#Number_Format_Patterns) + // are chosen appropriate to the locale, as well as the appropriate symbols and delimiters + // and number of decimal places. + // + // expression: A string representation of a currency value + + return dojo.number.parse(expression, dojo.currency._mixInDefaults(options)); +} + +} + +if(!dojo._hasResource["dijit.form.NumberTextBox"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.form.NumberTextBox"] = true; +dojo.provide("dijit.form.NumberTextBox"); + + + + +/*===== +dojo.declare( + "dijit.form.NumberTextBox.__Constraints", + [dijit.form.RangeBoundTextBox.__Constraints, dojo.number.__FormatOptions, dojo.number.__ParseOptions], { + // summary: + // Specifies both the rules on valid/invalid values (minimum, maximum, + // number of required decimal places), and also formatting options for + // displaying the value when the field is not focused. + // example: + // Minimum/maximum: + // To specify a field between 0 and 120: + // | {min:0,max:120} + // To specify a field that must be an integer: + // | {fractional:false} + // To specify a field where 0 to 3 decimal places are allowed on input, + // but after the field is blurred the value is displayed with 3 decimal places: + // | {places:'0,3'} +}); +=====*/ + +dojo.declare("dijit.form.NumberTextBoxMixin", + null, + { + // summary: + // A mixin for all number textboxes + // tags: + // protected + + // Override ValidationTextBox.regExpGen().... we use a reg-ex generating function rather + // than a straight regexp to deal with locale (plus formatting options too?) + regExpGen: dojo.number.regexp, + + /*===== + // constraints: dijit.form.NumberTextBox.__Constraints + // Despite the name, this parameter specifies both constraints on the input + // (including minimum/maximum allowed values) as well as + // formatting options like places (the number of digits to display after + // the decimal point). See `dijit.form.NumberTextBox.__Constraints` for details. + constraints: {}, + ======*/ + + // value: Number + // The value of this NumberTextBox as a Javascript Number (i.e., not a String). + // If the displayed value is blank, the value is NaN, and if the user types in + // an gibberish value (like "hello world"), the value is undefined + // (i.e. attr('value') returns undefined). + // + // Symmetrically, attr('value', NaN) will clear the displayed value, + // whereas attr('value', undefined) will have no effect. + value: NaN, + + // editOptions: [protected] Object + // Properties to mix into constraints when the value is being edited. + // This is here because we edit the number in the format "12345", which is + // different than the display value (ex: "12,345") + editOptions: { pattern: '#.######' }, + + /*===== + _formatter: function(value, options){ + // summary: + // _formatter() is called by format(). It's the base routine for formatting a number, + // as a string, for example converting 12345 into "12,345". + // value: Number + // The number to be converted into a string. + // options: dojo.number.__FormatOptions? + // Formatting options + // tags: + // protected extension + + return "12345"; // String + }, + =====*/ + _formatter: dojo.number.format, + + _setConstraintsAttr: function(/* Object */ constraints){ + var places = typeof constraints.places == "number"? constraints.places : 0; + if(places){ places++; } // decimal rounding errors take away another digit of precision + if(typeof constraints.max != "number"){ + constraints.max = 9 * Math.pow(10, 15-places); + } + if(typeof constraints.min != "number"){ + constraints.min = -9 * Math.pow(10, 15-places); + } + this.inherited(arguments, [ constraints ]); + if(this.focusNode && this.focusNode.value && !isNaN(this.value)){ + this.set('value', this.value); + } + }, + + _onFocus: function(){ + if(this.disabled){ return; } + var val = this.get('value'); + if(typeof val == "number" && !isNaN(val)){ + var formattedValue = this.format(val, this.constraints); + if(formattedValue !== undefined){ + this.textbox.value = formattedValue; + } + } + this.inherited(arguments); + }, + + format: function(/*Number*/ value, /*dojo.number.__FormatOptions*/ constraints){ + // summary: + // Formats the value as a Number, according to constraints. + // tags: + // protected + + var formattedValue = String(value); + if(typeof value != "number"){ return formattedValue; } + if(isNaN(value)){ return ""; } + // check for exponential notation that dojo.number.format chokes on + if(!("rangeCheck" in this && this.rangeCheck(value, constraints)) && constraints.exponent !== false && /\de[-+]?\d/i.test(formattedValue)){ + return formattedValue; + } + if(this.editOptions && this._focused){ + constraints = dojo.mixin({}, constraints, this.editOptions); + } + return this._formatter(value, constraints); + }, + + /*===== + parse: function(value, constraints){ + // summary: + // Parses the string value as a Number, according to constraints. + // value: String + // String representing a number + // constraints: dojo.number.__ParseOptions + // Formatting options + // tags: + // protected + + return 123.45; // Number + }, + =====*/ + parse: dojo.number.parse, + + _getDisplayedValueAttr: function(){ + var v = this.inherited(arguments); + return isNaN(v) ? this.textbox.value : v; + }, + + filter: function(/*Number*/ value){ + // summary: + // This is called with both the display value (string), and the actual value (a number). + // When called with the actual value it does corrections so that '' etc. are represented as NaN. + // Otherwise it dispatches to the superclass's filter() method. + // + // See `dijit.form.TextBox.filter` for more details. + return (value === null || value === '' || value === undefined) ? NaN : this.inherited(arguments); // attr('value', null||''||undefined) should fire onChange(NaN) + }, + + serialize: function(/*Number*/ value, /*Object?*/options){ + // summary: + // Convert value (a Number) into a canonical string (ie, how the number literal is written in javascript/java/C/etc.) + // tags: + // protected + return (typeof value != "number" || isNaN(value)) ? '' : this.inherited(arguments); + }, + + _setValueAttr: function(/*Number*/ value, /*Boolean?*/ priorityChange, /*String?*/formattedValue){ + // summary: + // Hook so attr('value', ...) works. + if(value !== undefined && formattedValue === undefined){ + formattedValue = String(value); + if(typeof value == "number"){ + if(isNaN(value)){ formattedValue = '' } + // check for exponential notation that dojo.number.format chokes on + else if(("rangeCheck" in this && this.rangeCheck(value, this.constraints)) || this.constraints.exponent === false || !/\de[-+]?\d/i.test(formattedValue)){ + formattedValue = undefined; // lets format comnpute a real string value + } + }else if(!value){ // 0 processed in if branch above, ''|null|undefined flow thru here + formattedValue = ''; + value = NaN; + }else{ // non-numeric values + value = undefined; + } + } + this.inherited(arguments, [value, priorityChange, formattedValue]); + }, + + _getValueAttr: function(){ + // summary: + // Hook so attr('value') works. + // Returns Number, NaN for '', or undefined for unparsable text + var v = this.inherited(arguments); // returns Number for all values accepted by parse() or NaN for all other displayed values + + // If the displayed value of the textbox is gibberish (ex: "hello world"), this.inherited() above + // returns NaN; this if() branch converts the return value to undefined. + // Returning undefined prevents user text from being overwritten when doing _setValueAttr(_getValueAttr()). + // A blank displayed value is still returned as NaN. + if(isNaN(v) && this.textbox.value !== ''){ + if(this.constraints.exponent !== false && /\de[-+]?\d/i.test(this.textbox.value) && (new RegExp("^"+dojo.number._realNumberRegexp(dojo.mixin({}, this.constraints))+"$").test(this.textbox.value))){ // check for exponential notation that parse() rejected (erroneously?) + var n = Number(this.textbox.value); + return isNaN(n) ? undefined : n; // return exponential Number or undefined for random text (may not be possible to do with the above RegExp check) + }else{ + return undefined; // gibberish + } + }else{ + return v; // Number or NaN for '' + } + }, + + isValid: function(/*Boolean*/ isFocused){ + // Overrides dijit.form.RangeBoundTextBox.isValid to check that the editing-mode value is valid since + // it may not be formatted according to the regExp vaidation rules + if(!this._focused || this._isEmpty(this.textbox.value)){ + return this.inherited(arguments); + }else{ + var v = this.get('value'); + if(!isNaN(v) && this.rangeCheck(v, this.constraints)){ + if(this.constraints.exponent !== false && /\de[-+]?\d/i.test(this.textbox.value)){ // exponential, parse doesn't like it + return true; // valid exponential number in range + }else{ + return this.inherited(arguments); + } + }else{ + return false; + } + } + } + } +); + +dojo.declare("dijit.form.NumberTextBox", + [dijit.form.RangeBoundTextBox,dijit.form.NumberTextBoxMixin], + { + // summary: + // A TextBox for entering numbers, with formatting and range checking + // description: + // NumberTextBox is a textbox for entering and displaying numbers, supporting + // the following main features: + // + // 1. Enforce minimum/maximum allowed values (as well as enforcing that the user types + // a number rather than a random string) + // 2. NLS support (altering roles of comma and dot as "thousands-separator" and "decimal-point" + // depending on locale). + // 3. Separate modes for editing the value and displaying it, specifically that + // the thousands separator character (typically comma) disappears when editing + // but reappears after the field is blurred. + // 4. Formatting and constraints regarding the number of places (digits after the decimal point) + // allowed on input, and number of places displayed when blurred (see `constraints` parameter). + } +); + +} + +if(!dojo._hasResource["dijit.form.CurrencyTextBox"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.form.CurrencyTextBox"] = true; +dojo.provide("dijit.form.CurrencyTextBox"); + + + + +/*===== +dojo.declare( + "dijit.form.CurrencyTextBox.__Constraints", + [dijit.form.NumberTextBox.__Constraints, dojo.currency.__FormatOptions, dojo.currency.__ParseOptions], { + // summary: + // Specifies both the rules on valid/invalid values (minimum, maximum, + // number of required decimal places), and also formatting options for + // displaying the value when the field is not focused (currency symbol, + // etc.) + // description: + // Follows the pattern of `dijit.form.NumberTextBox.constraints`. + // In general developers won't need to set this parameter + // example: + // To ensure that the user types in the cents (for example, 1.00 instead of just 1): + // | {fractional:true} +}); +=====*/ + +dojo.declare( + "dijit.form.CurrencyTextBox", + dijit.form.NumberTextBox, + { + // summary: + // A validating currency textbox + // description: + // CurrencyTextBox is similar to `dijit.form.NumberTextBox` but has a few + // extra features related to currency: + // + // 1. After specifying the currency type (american dollars, euros, etc.) it automatically + // sets parse/format options such as how many decimal places to show. + // 2. The currency mark (dollar sign, euro mark, etc.) is displayed when the field is blurred + // but erased during editing, so that the user can just enter a plain number. + + // currency: [const] String + // the [ISO4217](http://en.wikipedia.org/wiki/ISO_4217) currency code, a three letter sequence like "USD" + currency: "", + + // constraints: dijit.form.CurrencyTextBox.__Constraints + // Despite the name, this parameter specifies both constraints on the input + // (including minimum/maximum allowed values) as well as + // formatting options. See `dijit.form.CurrencyTextBox.__Constraints` for details. + /*===== + constraints: {}, + ======*/ + + baseClass: "dijitTextBox dijitCurrencyTextBox", + + // Override regExpGen ValidationTextBox.regExpGen().... we use a reg-ex generating function rather + // than a straight regexp to deal with locale (plus formatting options too?) + regExpGen: function(constraints){ + // if focused, accept either currency data or NumberTextBox format + return '(' + (this._focused? this.inherited(arguments, [ dojo.mixin({}, constraints, this.editOptions) ]) + '|' : '') + + dojo.currency.regexp(constraints) + ')'; + }, + + // Override NumberTextBox._formatter to deal with currencies, ex: converts "123.45" to "$123.45" + _formatter: dojo.currency.format, + + parse: function(/* String */ value, /* Object */ constraints){ + // summary: + // Parses string value as a Currency, according to the constraints object + // tags: + // protected extension + var v = dojo.currency.parse(value, constraints); + if(isNaN(v) && /\d+/.test(value)){ // currency parse failed, but it could be because they are using NumberTextBox format so try its parse + return this.inherited(arguments, [ value, dojo.mixin({}, constraints, this.editOptions) ]); + } + return v; + }, + + _setConstraintsAttr: function(/* Object */ constraints){ + if(!constraints.currency && this.currency){ + constraints.currency = this.currency; + } + this.inherited(arguments, [ dojo.currency._mixInDefaults(dojo.mixin(constraints, { exponent: false })) ]); // get places + } + } +); + +} + +if(!dojo._hasResource["dojo.cldr.supplemental"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.cldr.supplemental"] = true; +dojo.provide("dojo.cldr.supplemental"); + + + +dojo.cldr.supplemental.getFirstDayOfWeek = function(/*String?*/locale){ +// summary: Returns a zero-based index for first day of the week +// description: +// Returns a zero-based index for first day of the week, as used by the local (Gregorian) calendar. +// e.g. Sunday (returns 0), or Monday (returns 1) + + // from http://www.unicode.org/cldr/data/common/supplemental/supplementalData.xml:supplementalData/weekData/firstDay + var firstDay = {/*default is 1=Monday*/ + mv:5, + af:6,bh:6,dj:6,dz:6,eg:6,er:6,et:6,iq:6,ir:6,jo:6,ke:6,kw:6, + ly:6,ma:6,om:6,qa:6,sa:6,sd:6,so:6,tn:6,ye:6, + ar:0,as:0,az:0,bw:0,ca:0,cn:0,fo:0,ge:0,gl:0,gu:0,hk:0,ie:0, + il:0,'in':0,is:0,jm:0,jp:0,kg:0,kr:0,la:0,mh:0,mn:0,mo:0,mp:0, + mt:0,nz:0,ph:0,pk:0,sg:0,sy:0,th:0,tt:0,tw:0,um:0,us:0,uz:0, + vi:0,zw:0 +// variant. do not use? gb:0, + }; + + var country = dojo.cldr.supplemental._region(locale); + var dow = firstDay[country]; + return (dow === undefined) ? 1 : dow; /*Number*/ +}; + +dojo.cldr.supplemental._region = function(/*String?*/locale){ + locale = dojo.i18n.normalizeLocale(locale); + var tags = locale.split('-'); + var region = tags[1]; + if(!region){ + // IE often gives language only (#2269) + // Arbitrary mappings of language-only locales to a country: + region = {de:"de", en:"us", es:"es", fi:"fi", fr:"fr", he:"il", hu:"hu", it:"it", + ja:"jp", ko:"kr", nl:"nl", pt:"br", sv:"se", zh:"cn"}[tags[0]]; + }else if(region.length == 4){ + // The ISO 3166 country code is usually in the second position, unless a + // 4-letter script is given. See http://www.ietf.org/rfc/rfc4646.txt + region = tags[2]; + } + return region; +} + +dojo.cldr.supplemental.getWeekend = function(/*String?*/locale){ +// summary: Returns a hash containing the start and end days of the weekend +// description: +// Returns a hash containing the start and end days of the weekend according to local custom using locale, +// or by default in the user's locale. +// e.g. {start:6, end:0} + + // from http://www.unicode.org/cldr/data/common/supplemental/supplementalData.xml:supplementalData/weekData/weekend{Start,End} + var weekendStart = {/*default is 6=Saturday*/ + 'in':0, + af:4,dz:4,ir:4,om:4,sa:4,ye:4, + ae:5,bh:5,eg:5,il:5,iq:5,jo:5,kw:5,ly:5,ma:5,qa:5,sd:5,sy:5,tn:5 + }; + + var weekendEnd = {/*default is 0=Sunday*/ + af:5,dz:5,ir:5,om:5,sa:5,ye:5, + ae:6,bh:5,eg:6,il:6,iq:6,jo:6,kw:6,ly:6,ma:6,qa:6,sd:6,sy:6,tn:6 + }; + + var country = dojo.cldr.supplemental._region(locale); + var start = weekendStart[country]; + var end = weekendEnd[country]; + if(start === undefined){start=6;} + if(end === undefined){end=0;} + return {start:start, end:end}; /*Object {start,end}*/ +}; + +} + +if(!dojo._hasResource["dojo.date"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.date"] = true; +dojo.provide("dojo.date"); + +/*===== +dojo.date = { + // summary: Date manipulation utilities +} +=====*/ + +dojo.date.getDaysInMonth = function(/*Date*/dateObject){ + // summary: + // Returns the number of days in the month used by dateObject + var month = dateObject.getMonth(); + var days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; + if(month == 1 && dojo.date.isLeapYear(dateObject)){ return 29; } // Number + return days[month]; // Number +} + +dojo.date.isLeapYear = function(/*Date*/dateObject){ + // summary: + // Determines if the year of the dateObject is a leap year + // description: + // Leap years are years with an additional day YYYY-02-29, where the + // year number is a multiple of four with the following exception: If + // a year is a multiple of 100, then it is only a leap year if it is + // also a multiple of 400. For example, 1900 was not a leap year, but + // 2000 is one. + + var year = dateObject.getFullYear(); + return !(year%400) || (!(year%4) && !!(year%100)); // Boolean +} + +// FIXME: This is not localized +dojo.date.getTimezoneName = function(/*Date*/dateObject){ + // summary: + // Get the user's time zone as provided by the browser + // dateObject: + // Needed because the timezone may vary with time (daylight savings) + // description: + // Try to get time zone info from toString or toLocaleString method of + // the Date object -- UTC offset is not a time zone. See + // http://www.twinsun.com/tz/tz-link.htm Note: results may be + // inconsistent across browsers. + + var str = dateObject.toString(); // Start looking in toString + var tz = ''; // The result -- return empty string if nothing found + var match; + + // First look for something in parentheses -- fast lookup, no regex + var pos = str.indexOf('('); + if(pos > -1){ + tz = str.substring(++pos, str.indexOf(')')); + }else{ + // If at first you don't succeed ... + // If IE knows about the TZ, it appears before the year + // Capital letters or slash before a 4-digit year + // at the end of string + var pat = /([A-Z\/]+) \d{4}$/; + if((match = str.match(pat))){ + tz = match[1]; + }else{ + // Some browsers (e.g. Safari) glue the TZ on the end + // of toLocaleString instead of putting it in toString + str = dateObject.toLocaleString(); + // Capital letters or slash -- end of string, + // after space + pat = / ([A-Z\/]+)$/; + if((match = str.match(pat))){ + tz = match[1]; + } + } + } + + // Make sure it doesn't somehow end up return AM or PM + return (tz == 'AM' || tz == 'PM') ? '' : tz; // String +} + +// Utility methods to do arithmetic calculations with Dates + +dojo.date.compare = function(/*Date*/date1, /*Date?*/date2, /*String?*/portion){ + // summary: + // Compare two date objects by date, time, or both. + // description: + // Returns 0 if equal, positive if a > b, else negative. + // date1: + // Date object + // date2: + // Date object. If not specified, the current Date is used. + // portion: + // A string indicating the "date" or "time" portion of a Date object. + // Compares both "date" and "time" by default. One of the following: + // "date", "time", "datetime" + + // Extra step required in copy for IE - see #3112 + date1 = new Date(+date1); + date2 = new Date(+(date2 || new Date())); + + if(portion == "date"){ + // Ignore times and compare dates. + date1.setHours(0, 0, 0, 0); + date2.setHours(0, 0, 0, 0); + }else if(portion == "time"){ + // Ignore dates and compare times. + date1.setFullYear(0, 0, 0); + date2.setFullYear(0, 0, 0); + } + + if(date1 > date2){ return 1; } // int + if(date1 < date2){ return -1; } // int + return 0; // int +}; + +dojo.date.add = function(/*Date*/date, /*String*/interval, /*int*/amount){ + // summary: + // Add to a Date in intervals of different size, from milliseconds to years + // date: Date + // Date object to start with + // interval: + // A string representing the interval. One of the following: + // "year", "month", "day", "hour", "minute", "second", + // "millisecond", "quarter", "week", "weekday" + // amount: + // How much to add to the date. + + var sum = new Date(+date); // convert to Number before copying to accomodate IE (#3112) + var fixOvershoot = false; + var property = "Date"; + + switch(interval){ + case "day": + break; + case "weekday": + //i18n FIXME: assumes Saturday/Sunday weekend, but this is not always true. see dojo.cldr.supplemental + + // Divide the increment time span into weekspans plus leftover days + // e.g., 8 days is one 5-day weekspan / and two leftover days + // Can't have zero leftover days, so numbers divisible by 5 get + // a days value of 5, and the remaining days make up the number of weeks + var days, weeks; + var mod = amount % 5; + if(!mod){ + days = (amount > 0) ? 5 : -5; + weeks = (amount > 0) ? ((amount-5)/5) : ((amount+5)/5); + }else{ + days = mod; + weeks = parseInt(amount/5); + } + // Get weekday value for orig date param + var strt = date.getDay(); + // Orig date is Sat / positive incrementer + // Jump over Sun + var adj = 0; + if(strt == 6 && amount > 0){ + adj = 1; + }else if(strt == 0 && amount < 0){ + // Orig date is Sun / negative incrementer + // Jump back over Sat + adj = -1; + } + // Get weekday val for the new date + var trgt = strt + days; + // New date is on Sat or Sun + if(trgt == 0 || trgt == 6){ + adj = (amount > 0) ? 2 : -2; + } + // Increment by number of weeks plus leftover days plus + // weekend adjustments + amount = (7 * weeks) + days + adj; + break; + case "year": + property = "FullYear"; + // Keep increment/decrement from 2/29 out of March + fixOvershoot = true; + break; + case "week": + amount *= 7; + break; + case "quarter": + // Naive quarter is just three months + amount *= 3; + // fallthrough... + case "month": + // Reset to last day of month if you overshoot + fixOvershoot = true; + property = "Month"; + break; +// case "hour": +// case "minute": +// case "second": +// case "millisecond": + default: + property = "UTC"+interval.charAt(0).toUpperCase() + interval.substring(1) + "s"; + } + + if(property){ + sum["set"+property](sum["get"+property]()+amount); + } + + if(fixOvershoot && (sum.getDate() < date.getDate())){ + sum.setDate(0); + } + + return sum; // Date +}; + +dojo.date.difference = function(/*Date*/date1, /*Date?*/date2, /*String?*/interval){ + // summary: + // Get the difference in a specific unit of time (e.g., number of + // months, weeks, days, etc.) between two dates, rounded to the + // nearest integer. + // date1: + // Date object + // date2: + // Date object. If not specified, the current Date is used. + // interval: + // A string representing the interval. One of the following: + // "year", "month", "day", "hour", "minute", "second", + // "millisecond", "quarter", "week", "weekday" + // Defaults to "day". + + date2 = date2 || new Date(); + interval = interval || "day"; + var yearDiff = date2.getFullYear() - date1.getFullYear(); + var delta = 1; // Integer return value + + switch(interval){ + case "quarter": + var m1 = date1.getMonth(); + var m2 = date2.getMonth(); + // Figure out which quarter the months are in + var q1 = Math.floor(m1/3) + 1; + var q2 = Math.floor(m2/3) + 1; + // Add quarters for any year difference between the dates + q2 += (yearDiff * 4); + delta = q2 - q1; + break; + case "weekday": + var days = Math.round(dojo.date.difference(date1, date2, "day")); + var weeks = parseInt(dojo.date.difference(date1, date2, "week")); + var mod = days % 7; + + // Even number of weeks + if(mod == 0){ + days = weeks*5; + }else{ + // Weeks plus spare change (< 7 days) + var adj = 0; + var aDay = date1.getDay(); + var bDay = date2.getDay(); + + weeks = parseInt(days/7); + mod = days % 7; + // Mark the date advanced by the number of + // round weeks (may be zero) + var dtMark = new Date(date1); + dtMark.setDate(dtMark.getDate()+(weeks*7)); + var dayMark = dtMark.getDay(); + + // Spare change days -- 6 or less + if(days > 0){ + switch(true){ + // Range starts on Sat + case aDay == 6: + adj = -1; + break; + // Range starts on Sun + case aDay == 0: + adj = 0; + break; + // Range ends on Sat + case bDay == 6: + adj = -1; + break; + // Range ends on Sun + case bDay == 0: + adj = -2; + break; + // Range contains weekend + case (dayMark + mod) > 5: + adj = -2; + } + }else if(days < 0){ + switch(true){ + // Range starts on Sat + case aDay == 6: + adj = 0; + break; + // Range starts on Sun + case aDay == 0: + adj = 1; + break; + // Range ends on Sat + case bDay == 6: + adj = 2; + break; + // Range ends on Sun + case bDay == 0: + adj = 1; + break; + // Range contains weekend + case (dayMark + mod) < 0: + adj = 2; + } + } + days += adj; + days -= (weeks*2); + } + delta = days; + break; + case "year": + delta = yearDiff; + break; + case "month": + delta = (date2.getMonth() - date1.getMonth()) + (yearDiff * 12); + break; + case "week": + // Truncate instead of rounding + // Don't use Math.floor -- value may be negative + delta = parseInt(dojo.date.difference(date1, date2, "day")/7); + break; + case "day": + delta /= 24; + // fallthrough + case "hour": + delta /= 60; + // fallthrough + case "minute": + delta /= 60; + // fallthrough + case "second": + delta /= 1000; + // fallthrough + case "millisecond": + delta *= date2.getTime() - date1.getTime(); + } + + // Round for fractional values and DST leaps + return Math.round(delta); // Number (integer) +}; + +} + +if(!dojo._hasResource["dojo.date.locale"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.date.locale"] = true; +dojo.provide("dojo.date.locale"); + +// Localization methods for Date. Honor local customs using locale-dependent dojo.cldr data. + + + + + + + +// Load the bundles containing localization information for +// names and formats + + +//NOTE: Everything in this module assumes Gregorian calendars. +// Other calendars will be implemented in separate modules. + +(function(){ + // Format a pattern without literals + function formatPattern(dateObject, bundle, options, pattern){ + return pattern.replace(/([a-z])\1*/ig, function(match){ + var s, pad, + c = match.charAt(0), + l = match.length, + widthList = ["abbr", "wide", "narrow"]; + switch(c){ + case 'G': + s = bundle[(l < 4) ? "eraAbbr" : "eraNames"][dateObject.getFullYear() < 0 ? 0 : 1]; + break; + case 'y': + s = dateObject.getFullYear(); + switch(l){ + case 1: + break; + case 2: + if(!options.fullYear){ + s = String(s); s = s.substr(s.length - 2); + break; + } + // fallthrough + default: + pad = true; + } + break; + case 'Q': + case 'q': + s = Math.ceil((dateObject.getMonth()+1)/3); +// switch(l){ +// case 1: case 2: + pad = true; +// break; +// case 3: case 4: // unimplemented +// } + break; + case 'M': + var m = dateObject.getMonth(); + if(l<3){ + s = m+1; pad = true; + }else{ + var propM = ["months", "format", widthList[l-3]].join("-"); + s = bundle[propM][m]; + } + break; + case 'w': + var firstDay = 0; + s = dojo.date.locale._getWeekOfYear(dateObject, firstDay); pad = true; + break; + case 'd': + s = dateObject.getDate(); pad = true; + break; + case 'D': + s = dojo.date.locale._getDayOfYear(dateObject); pad = true; + break; + case 'E': + var d = dateObject.getDay(); + if(l<3){ + s = d+1; pad = true; + }else{ + var propD = ["days", "format", widthList[l-3]].join("-"); + s = bundle[propD][d]; + } + break; + case 'a': + var timePeriod = (dateObject.getHours() < 12) ? 'am' : 'pm'; + s = bundle['dayPeriods-format-wide-' + timePeriod]; + break; + case 'h': + case 'H': + case 'K': + case 'k': + var h = dateObject.getHours(); + // strange choices in the date format make it impossible to write this succinctly + switch (c){ + case 'h': // 1-12 + s = (h % 12) || 12; + break; + case 'H': // 0-23 + s = h; + break; + case 'K': // 0-11 + s = (h % 12); + break; + case 'k': // 1-24 + s = h || 24; + break; + } + pad = true; + break; + case 'm': + s = dateObject.getMinutes(); pad = true; + break; + case 's': + s = dateObject.getSeconds(); pad = true; + break; + case 'S': + s = Math.round(dateObject.getMilliseconds() * Math.pow(10, l-3)); pad = true; + break; + case 'v': // FIXME: don't know what this is. seems to be same as z? + case 'z': + // We only have one timezone to offer; the one from the browser + s = dojo.date.locale._getZone(dateObject, true, options); + if(s){break;} + l=4; + // fallthrough... use GMT if tz not available + case 'Z': + var offset = dojo.date.locale._getZone(dateObject, false, options); + var tz = [ + (offset<=0 ? "+" : "-"), + dojo.string.pad(Math.floor(Math.abs(offset)/60), 2), + dojo.string.pad(Math.abs(offset)% 60, 2) + ]; + if(l==4){ + tz.splice(0, 0, "GMT"); + tz.splice(3, 0, ":"); + } + s = tz.join(""); + break; +// case 'Y': case 'u': case 'W': case 'F': case 'g': case 'A': case 'e': +// console.log(match+" modifier unimplemented"); + default: + throw new Error("dojo.date.locale.format: invalid pattern char: "+pattern); + } + if(pad){ s = dojo.string.pad(s, l); } + return s; + }); + } + +/*===== + dojo.date.locale.__FormatOptions = function(){ + // selector: String + // choice of 'time','date' (default: date and time) + // formatLength: String + // choice of long, short, medium or full (plus any custom additions). Defaults to 'short' + // datePattern:String + // override pattern with this string + // timePattern:String + // override pattern with this string + // am: String + // override strings for am in times + // pm: String + // override strings for pm in times + // locale: String + // override the locale used to determine formatting rules + // fullYear: Boolean + // (format only) use 4 digit years whenever 2 digit years are called for + // strict: Boolean + // (parse only) strict parsing, off by default + this.selector = selector; + this.formatLength = formatLength; + this.datePattern = datePattern; + this.timePattern = timePattern; + this.am = am; + this.pm = pm; + this.locale = locale; + this.fullYear = fullYear; + this.strict = strict; + } +=====*/ + +dojo.date.locale._getZone = function(/*Date*/dateObject, /*boolean*/getName, /*dojo.date.locale.__FormatOptions?*/options){ + // summary: + // Returns the zone (or offset) for the given date and options. This + // is broken out into a separate function so that it can be overridden + // by timezone-aware code. + // + // dateObject: + // the date and/or time being formatted. + // + // getName: + // Whether to return the timezone string (if true), or the offset (if false) + // + // options: + // The options being used for formatting + if(getName){ + return dojo.date.getTimezoneName(dateObject); + }else{ + return dateObject.getTimezoneOffset(); + } +}; + + +dojo.date.locale.format = function(/*Date*/dateObject, /*dojo.date.locale.__FormatOptions?*/options){ + // summary: + // Format a Date object as a String, using locale-specific settings. + // + // description: + // Create a string from a Date object using a known localized pattern. + // By default, this method formats both date and time from dateObject. + // Formatting patterns are chosen appropriate to the locale. Different + // formatting lengths may be chosen, with "full" used by default. + // Custom patterns may be used or registered with translations using + // the dojo.date.locale.addCustomFormats method. + // Formatting patterns are implemented using [the syntax described at + // unicode.org](http://www.unicode.org/reports/tr35/tr35-4.html#Date_Format_Patterns) + // + // dateObject: + // the date and/or time to be formatted. If a time only is formatted, + // the values in the year, month, and day fields are irrelevant. The + // opposite is true when formatting only dates. + + options = options || {}; + + var locale = dojo.i18n.normalizeLocale(options.locale), + formatLength = options.formatLength || 'short', + bundle = dojo.date.locale._getGregorianBundle(locale), + str = [], + sauce = dojo.hitch(this, formatPattern, dateObject, bundle, options); + if(options.selector == "year"){ + return _processPattern(bundle["dateFormatItem-yyyy"] || "yyyy", sauce); + } + var pattern; + if(options.selector != "date"){ + pattern = options.timePattern || bundle["timeFormat-"+formatLength]; + if(pattern){str.push(_processPattern(pattern, sauce));} + } + if(options.selector != "time"){ + pattern = options.datePattern || bundle["dateFormat-"+formatLength]; + if(pattern){str.push(_processPattern(pattern, sauce));} + } + + return str.length == 1 ? str[0] : bundle["dateTimeFormat-"+formatLength].replace(/\{(\d+)\}/g, + function(match, key){ return str[key]; }); // String +}; + +dojo.date.locale.regexp = function(/*dojo.date.locale.__FormatOptions?*/options){ + // summary: + // Builds the regular needed to parse a localized date + + return dojo.date.locale._parseInfo(options).regexp; // String +}; + +dojo.date.locale._parseInfo = function(/*dojo.date.locale.__FormatOptions?*/options){ + options = options || {}; + var locale = dojo.i18n.normalizeLocale(options.locale), + bundle = dojo.date.locale._getGregorianBundle(locale), + formatLength = options.formatLength || 'short', + datePattern = options.datePattern || bundle["dateFormat-" + formatLength], + timePattern = options.timePattern || bundle["timeFormat-" + formatLength], + pattern; + if(options.selector == 'date'){ + pattern = datePattern; + }else if(options.selector == 'time'){ + pattern = timePattern; + }else{ + pattern = bundle["dateTimeFormat-"+formatLength].replace(/\{(\d+)\}/g, + function(match, key){ return [timePattern, datePattern][key]; }); + } + + var tokens = [], + re = _processPattern(pattern, dojo.hitch(this, _buildDateTimeRE, tokens, bundle, options)); + return {regexp: re, tokens: tokens, bundle: bundle}; +}; + +dojo.date.locale.parse = function(/*String*/value, /*dojo.date.locale.__FormatOptions?*/options){ + // summary: + // Convert a properly formatted string to a primitive Date object, + // using locale-specific settings. + // + // description: + // Create a Date object from a string using a known localized pattern. + // By default, this method parses looking for both date and time in the string. + // Formatting patterns are chosen appropriate to the locale. Different + // formatting lengths may be chosen, with "full" used by default. + // Custom patterns may be used or registered with translations using + // the dojo.date.locale.addCustomFormats method. + // + // Formatting patterns are implemented using [the syntax described at + // unicode.org](http://www.unicode.org/reports/tr35/tr35-4.html#Date_Format_Patterns) + // When two digit years are used, a century is chosen according to a sliding + // window of 80 years before and 20 years after present year, for both `yy` and `yyyy` patterns. + // year < 100CE requires strict mode. + // + // value: + // A string representation of a date + + var info = dojo.date.locale._parseInfo(options), + tokens = info.tokens, bundle = info.bundle, + re = new RegExp("^" + info.regexp + "$", info.strict ? "" : "i"), + match = re.exec(value); + + if(!match){ return null; } // null + + var widthList = ['abbr', 'wide', 'narrow'], + result = [1970,0,1,0,0,0,0], // will get converted to a Date at the end + amPm = "", + valid = dojo.every(match, function(v, i){ + if(!i){return true;} + var token=tokens[i-1]; + var l=token.length; + switch(token.charAt(0)){ + case 'y': + if(l != 2 && options.strict){ + //interpret year literally, so '5' would be 5 A.D. + result[0] = v; + }else{ + if(v<100){ + v = Number(v); + //choose century to apply, according to a sliding window + //of 80 years before and 20 years after present year + var year = '' + new Date().getFullYear(), + century = year.substring(0, 2) * 100, + cutoff = Math.min(Number(year.substring(2, 4)) + 20, 99), + num = (v < cutoff) ? century + v : century - 100 + v; + result[0] = num; + }else{ + //we expected 2 digits and got more... + if(options.strict){ + return false; + } + //interpret literally, so '150' would be 150 A.D. + //also tolerate '1950', if 'yyyy' input passed to 'yy' format + result[0] = v; + } + } + break; + case 'M': + if(l>2){ + var months = bundle['months-format-' + widthList[l-3]].concat(); + if(!options.strict){ + //Tolerate abbreviating period in month part + //Case-insensitive comparison + v = v.replace(".","").toLowerCase(); + months = dojo.map(months, function(s){ return s.replace(".","").toLowerCase(); } ); + } + v = dojo.indexOf(months, v); + if(v == -1){ +// console.log("dojo.date.locale.parse: Could not parse month name: '" + v + "'."); + return false; + } + }else{ + v--; + } + result[1] = v; + break; + case 'E': + case 'e': + var days = bundle['days-format-' + widthList[l-3]].concat(); + if(!options.strict){ + //Case-insensitive comparison + v = v.toLowerCase(); + days = dojo.map(days, function(d){return d.toLowerCase();}); + } + v = dojo.indexOf(days, v); + if(v == -1){ +// console.log("dojo.date.locale.parse: Could not parse weekday name: '" + v + "'."); + return false; + } + + //TODO: not sure what to actually do with this input, + //in terms of setting something on the Date obj...? + //without more context, can't affect the actual date + //TODO: just validate? + break; + case 'D': + result[1] = 0; + // fallthrough... + case 'd': + result[2] = v; + break; + case 'a': //am/pm + var am = options.am || bundle['dayPeriods-format-wide-am'], + pm = options.pm || bundle['dayPeriods-format-wide-pm']; + if(!options.strict){ + var period = /\./g; + v = v.replace(period,'').toLowerCase(); + am = am.replace(period,'').toLowerCase(); + pm = pm.replace(period,'').toLowerCase(); + } + if(options.strict && v != am && v != pm){ +// console.log("dojo.date.locale.parse: Could not parse am/pm part."); + return false; + } + + // we might not have seen the hours field yet, so store the state and apply hour change later + amPm = (v == pm) ? 'p' : (v == am) ? 'a' : ''; + break; + case 'K': //hour (1-24) + if(v == 24){ v = 0; } + // fallthrough... + case 'h': //hour (1-12) + case 'H': //hour (0-23) + case 'k': //hour (0-11) + //TODO: strict bounds checking, padding + if(v > 23){ +// console.log("dojo.date.locale.parse: Illegal hours value"); + return false; + } + + //in the 12-hour case, adjusting for am/pm requires the 'a' part + //which could come before or after the hour, so we will adjust later + result[3] = v; + break; + case 'm': //minutes + result[4] = v; + break; + case 's': //seconds + result[5] = v; + break; + case 'S': //milliseconds + result[6] = v; +// break; +// case 'w': +//TODO var firstDay = 0; +// default: +//TODO: throw? +// console.log("dojo.date.locale.parse: unsupported pattern char=" + token.charAt(0)); + } + return true; + }); + + var hours = +result[3]; + if(amPm === 'p' && hours < 12){ + result[3] = hours + 12; //e.g., 3pm -> 15 + }else if(amPm === 'a' && hours == 12){ + result[3] = 0; //12am -> 0 + } + + //TODO: implement a getWeekday() method in order to test + //validity of input strings containing 'EEE' or 'EEEE'... + + var dateObject = new Date(result[0], result[1], result[2], result[3], result[4], result[5], result[6]); // Date + if(options.strict){ + dateObject.setFullYear(result[0]); + } + + // Check for overflow. The Date() constructor normalizes things like April 32nd... + //TODO: why isn't this done for times as well? + var allTokens = tokens.join(""), + dateToken = allTokens.indexOf('d') != -1, + monthToken = allTokens.indexOf('M') != -1; + + if(!valid || + (monthToken && dateObject.getMonth() > result[1]) || + (dateToken && dateObject.getDate() > result[2])){ + return null; + } + + // Check for underflow, due to DST shifts. See #9366 + // This assumes a 1 hour dst shift correction at midnight + // We could compare the timezone offset after the shift and add the difference instead. + if((monthToken && dateObject.getMonth() < result[1]) || + (dateToken && dateObject.getDate() < result[2])){ + dateObject = dojo.date.add(dateObject, "hour", 1); + } + + return dateObject; // Date +}; + +function _processPattern(pattern, applyPattern, applyLiteral, applyAll){ + //summary: Process a pattern with literals in it + + // Break up on single quotes, treat every other one as a literal, except '' which becomes ' + var identity = function(x){return x;}; + applyPattern = applyPattern || identity; + applyLiteral = applyLiteral || identity; + applyAll = applyAll || identity; + + //split on single quotes (which escape literals in date format strings) + //but preserve escaped single quotes (e.g., o''clock) + var chunks = pattern.match(/(''|[^'])+/g), + literal = pattern.charAt(0) == "'"; + + dojo.forEach(chunks, function(chunk, i){ + if(!chunk){ + chunks[i]=''; + }else{ + chunks[i]=(literal ? applyLiteral : applyPattern)(chunk.replace(/''/g, "'")); + literal = !literal; + } + }); + return applyAll(chunks.join('')); +} + +function _buildDateTimeRE(tokens, bundle, options, pattern){ + pattern = dojo.regexp.escapeString(pattern); + if(!options.strict){ pattern = pattern.replace(" a", " ?a"); } // kludge to tolerate no space before am/pm + return pattern.replace(/([a-z])\1*/ig, function(match){ + // Build a simple regexp. Avoid captures, which would ruin the tokens list + var s, + c = match.charAt(0), + l = match.length, + p2 = '', p3 = ''; + if(options.strict){ + if(l > 1){ p2 = '0' + '{'+(l-1)+'}'; } + if(l > 2){ p3 = '0' + '{'+(l-2)+'}'; } + }else{ + p2 = '0?'; p3 = '0{0,2}'; + } + switch(c){ + case 'y': + s = '\\d{2,4}'; + break; + case 'M': + s = (l>2) ? '\\S+?' : p2+'[1-9]|1[0-2]'; + break; + case 'D': + s = p2+'[1-9]|'+p3+'[1-9][0-9]|[12][0-9][0-9]|3[0-5][0-9]|36[0-6]'; + break; + case 'd': + s = '3[01]|[12]\\d|'+p2+'[1-9]'; + break; + case 'w': + s = p2+'[1-9]|[1-4][0-9]|5[0-3]'; + break; + case 'E': + s = '\\S+'; + break; + case 'h': //hour (1-12) + s = p2+'[1-9]|1[0-2]'; + break; + case 'k': //hour (0-11) + s = p2+'\\d|1[01]'; + break; + case 'H': //hour (0-23) + s = p2+'\\d|1\\d|2[0-3]'; + break; + case 'K': //hour (1-24) + s = p2+'[1-9]|1\\d|2[0-4]'; + break; + case 'm': + case 's': + s = '[0-5]\\d'; + break; + case 'S': + s = '\\d{'+l+'}'; + break; + case 'a': + var am = options.am || bundle['dayPeriods-format-wide-am'], + pm = options.pm || bundle['dayPeriods-format-wide-pm']; + if(options.strict){ + s = am + '|' + pm; + }else{ + s = am + '|' + pm; + if(am != am.toLowerCase()){ s += '|' + am.toLowerCase(); } + if(pm != pm.toLowerCase()){ s += '|' + pm.toLowerCase(); } + if(s.indexOf('.') != -1){ s += '|' + s.replace(/\./g, ""); } + } + s = s.replace(/\./g, "\\."); + break; + default: + // case 'v': + // case 'z': + // case 'Z': + s = ".*"; +// console.log("parse of date format, pattern=" + pattern); + } + + if(tokens){ tokens.push(match); } + + return "(" + s + ")"; // add capture + }).replace(/[\xa0 ]/g, "[\\s\\xa0]"); // normalize whitespace. Need explicit handling of \xa0 for IE. +} +})(); + +(function(){ +var _customFormats = []; +dojo.date.locale.addCustomFormats = function(/*String*/packageName, /*String*/bundleName){ + // summary: + // Add a reference to a bundle containing localized custom formats to be + // used by date/time formatting and parsing routines. + // + // description: + // The user may add custom localized formats where the bundle has properties following the + // same naming convention used by dojo.cldr: `dateFormat-xxxx` / `timeFormat-xxxx` + // The pattern string should match the format used by the CLDR. + // See dojo.date.locale.format() for details. + // The resources must be loaded by dojo.requireLocalization() prior to use + + _customFormats.push({pkg:packageName,name:bundleName}); +}; + +dojo.date.locale._getGregorianBundle = function(/*String*/locale){ + var gregorian = {}; + dojo.forEach(_customFormats, function(desc){ + var bundle = dojo.i18n.getLocalization(desc.pkg, desc.name, locale); + gregorian = dojo.mixin(gregorian, bundle); + }, this); + return gregorian; /*Object*/ +}; +})(); + +dojo.date.locale.addCustomFormats("dojo.cldr","gregorian"); + +dojo.date.locale.getNames = function(/*String*/item, /*String*/type, /*String?*/context, /*String?*/locale){ + // summary: + // Used to get localized strings from dojo.cldr for day or month names. + // + // item: + // 'months' || 'days' + // type: + // 'wide' || 'narrow' || 'abbr' (e.g. "Monday", "Mon", or "M" respectively, in English) + // context: + // 'standAlone' || 'format' (default) + // locale: + // override locale used to find the names + + var label, + lookup = dojo.date.locale._getGregorianBundle(locale), + props = [item, context, type]; + if(context == 'standAlone'){ + var key = props.join('-'); + label = lookup[key]; + // Fall back to 'format' flavor of name + if(label[0] == 1){ label = undefined; } // kludge, in the absence of real aliasing support in dojo.cldr + } + props[1] = 'format'; + + // return by copy so changes won't be made accidentally to the in-memory model + return (label || lookup[props.join('-')]).concat(); /*Array*/ +}; + +dojo.date.locale.isWeekend = function(/*Date?*/dateObject, /*String?*/locale){ + // summary: + // Determines if the date falls on a weekend, according to local custom. + + var weekend = dojo.cldr.supplemental.getWeekend(locale), + day = (dateObject || new Date()).getDay(); + if(weekend.end < weekend.start){ + weekend.end += 7; + if(day < weekend.start){ day += 7; } + } + return day >= weekend.start && day <= weekend.end; // Boolean +}; + +// These are used only by format and strftime. Do they need to be public? Which module should they go in? + +dojo.date.locale._getDayOfYear = function(/*Date*/dateObject){ + // summary: gets the day of the year as represented by dateObject + return dojo.date.difference(new Date(dateObject.getFullYear(), 0, 1, dateObject.getHours()), dateObject) + 1; // Number +}; + +dojo.date.locale._getWeekOfYear = function(/*Date*/dateObject, /*Number*/firstDayOfWeek){ + if(arguments.length == 1){ firstDayOfWeek = 0; } // Sunday + + var firstDayOfYear = new Date(dateObject.getFullYear(), 0, 1).getDay(), + adj = (firstDayOfYear - firstDayOfWeek + 7) % 7, + week = Math.floor((dojo.date.locale._getDayOfYear(dateObject) + adj - 1) / 7); + + // if year starts on the specified day, start counting weeks at 1 + if(firstDayOfYear == firstDayOfWeek){ week++; } + + return week; // Number +}; + +} + +if(!dojo._hasResource["dijit.Calendar"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.Calendar"] = true; +dojo.provide("dijit.Calendar"); + + + + + + + + + +dojo.declare( + "dijit.Calendar", + [dijit._Widget, dijit._Templated, dijit._CssStateMixin], + { + // summary: + // A simple GUI for choosing a date in the context of a monthly calendar. + // + // description: + // A simple GUI for choosing a date in the context of a monthly calendar. + // This widget can't be used in a form because it doesn't serialize the date to an + // `<input>` field. For a form element, use dijit.form.DateTextBox instead. + // + // Note that the parser takes all dates attributes passed in the + // [RFC 3339 format](http://www.faqs.org/rfcs/rfc3339.html), e.g. `2005-06-30T08:05:00-07:00` + // so that they are serializable and locale-independent. + // + // example: + // | var calendar = new dijit.Calendar({}, dojo.byId("calendarNode")); + // + // example: + // | <div dojoType="dijit.Calendar"></div> + + templateString: dojo.cache("dijit", "templates/Calendar.html", "<table cellspacing=\"0\" cellpadding=\"0\" class=\"dijitCalendarContainer\" role=\"grid\" dojoAttachEvent=\"onkeypress: _onKeyPress\">\n\t<thead>\n\t\t<tr class=\"dijitReset dijitCalendarMonthContainer\" valign=\"top\">\n\t\t\t<th class='dijitReset dijitCalendarArrow' dojoAttachPoint=\"decrementMonth\">\n\t\t\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitCalendarIncrementControl dijitCalendarDecrease\" waiRole=\"presentation\"/>\n\t\t\t\t<span dojoAttachPoint=\"decreaseArrowNode\" class=\"dijitA11ySideArrow\">-</span>\n\t\t\t</th>\n\t\t\t<th class='dijitReset' colspan=\"5\">\n\t\t\t\t<div class=\"dijitVisible\">\n\t\t\t\t\t<div class=\"dijitPopup dijitMenu dijitMenuPassive dijitHidden\" dojoAttachPoint=\"monthDropDown\" dojoAttachEvent=\"onmouseup: _onMonthSelect, onmouseover: _onMenuHover, onmouseout: _onMenuHover\">\n\t\t\t\t\t\t<div class=\"dijitCalendarMonthLabelTemplate dijitCalendarMonthLabel\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div dojoAttachPoint=\"monthLabelSpacer\" class=\"dijitSpacer\"></div>\n\t\t\t\t<div dojoAttachPoint=\"monthLabelNode\" class=\"dijitCalendarMonthLabel dijitInline dijitVisible\" dojoAttachEvent=\"onmousedown: _onMonthToggle\"></div>\n\t\t\t</th>\n\t\t\t<th class='dijitReset dijitCalendarArrow' dojoAttachPoint=\"incrementMonth\">\n\t\t\t\t<img src=\"${_blankGif}\" alt=\"\" class=\"dijitCalendarIncrementControl dijitCalendarIncrease\" waiRole=\"presentation\"/>\n\t\t\t\t<span dojoAttachPoint=\"increaseArrowNode\" class=\"dijitA11ySideArrow\">+</span>\n\t\t\t</th>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<th class=\"dijitReset dijitCalendarDayLabelTemplate\" role=\"columnheader\"><span class=\"dijitCalendarDayLabel\"></span></th>\n\t\t</tr>\n\t</thead>\n\t<tbody dojoAttachEvent=\"onclick: _onDayClick, onmouseover: _onDayMouseOver, onmouseout: _onDayMouseOut, onmousedown: _onDayMouseDown, onmouseup: _onDayMouseUp\" class=\"dijitReset dijitCalendarBodyContainer\">\n\t\t<tr class=\"dijitReset dijitCalendarWeekTemplate\" role=\"row\">\n\t\t\t<td class=\"dijitReset dijitCalendarDateTemplate\" role=\"gridcell\"><span class=\"dijitCalendarDateLabel\"></span></td>\n\t\t</tr>\n\t</tbody>\n\t<tfoot class=\"dijitReset dijitCalendarYearContainer\">\n\t\t<tr>\n\t\t\t<td class='dijitReset' valign=\"top\" colspan=\"7\">\n\t\t\t\t<h3 class=\"dijitCalendarYearLabel\">\n\t\t\t\t\t<span dojoAttachPoint=\"previousYearLabelNode\" class=\"dijitInline dijitCalendarPreviousYear\"></span>\n\t\t\t\t\t<span dojoAttachPoint=\"currentYearLabelNode\" class=\"dijitInline dijitCalendarSelectedYear\"></span>\n\t\t\t\t\t<span dojoAttachPoint=\"nextYearLabelNode\" class=\"dijitInline dijitCalendarNextYear\"></span>\n\t\t\t\t</h3>\n\t\t\t</td>\n\t\t</tr>\n\t</tfoot>\n</table>\n"), + + // value: Date + // The currently selected Date + value: new Date(), + + // datePackage: String + // JavaScript namespace to find Calendar routines. Uses Gregorian Calendar routines + // at dojo.date by default. + datePackage: "dojo.date", + + // dayWidth: String + // How to represent the days of the week in the calendar header. See dojo.date.locale + dayWidth: "narrow", + + // tabIndex: Integer + // Order fields are traversed when user hits the tab key + tabIndex: "0", + + baseClass:"dijitCalendar", + + // Set node classes for various mouse events, see dijit._CssStateMixin for more details + cssStateNodes: { + "decrementMonth": "dijitCalendarArrow", + "incrementMonth": "dijitCalendarArrow", + "previousYearLabelNode": "dijitCalendarPreviousYear", + "nextYearLabelNode": "dijitCalendarNextYear" + }, + + attributeMap: dojo.delegate(dijit._Widget.prototype.attributeMap, { + tabIndex: "domNode" + }), + + setValue: function(/*Date*/ value){ + // summary: + // Deprecated. Used attr('value', ...) instead. + // tags: + // deprecated + dojo.deprecated("dijit.Calendar:setValue() is deprecated. Use set('value', ...) instead.", "", "2.0"); + this.set('value', value); + }, + + _getValueAttr: function(){ + // summary: + // Support getter attr('value') + var value = new this.dateClassObj(this.value); + value.setHours(0, 0, 0, 0); // return midnight, local time for back-compat + + // If daylight savings pushes midnight to the previous date, fix the Date + // object to point at 1am so it will represent the correct day. See #9366 + if(value.getDate() < this.value.getDate()){ + value = this.dateFuncObj.add(value, "hour", 1); + } + return value; + }, + + _setValueAttr: function(/*Date*/ value){ + // summary: + // Support setter attr("value", ...) + // description: + // Set the current date and update the UI. If the date is disabled, the value will + // not change, but the display will change to the corresponding month. + // tags: + // protected + if(!this.value || this.dateFuncObj.compare(value, this.value)){ + value = new this.dateClassObj(value); + value.setHours(1); // to avoid issues when DST shift occurs at midnight, see #8521, #9366 + this.displayMonth = new this.dateClassObj(value); + if(!this.isDisabledDate(value, this.lang)){ + this.value = value; + this.onChange(this.get('value')); + } + dojo.attr(this.domNode, "aria-label", + this.dateLocaleModule.format(value, + {selector:"date", formatLength:"full"})); + this._populateGrid(); + } + }, + + _setText: function(node, text){ + // summary: + // This just sets the content of node to the specified text. + // Can't do "node.innerHTML=text" because of an IE bug w/tables, see #3434. + // tags: + // private + while(node.firstChild){ + node.removeChild(node.firstChild); + } + node.appendChild(dojo.doc.createTextNode(text)); + }, + + _populateGrid: function(){ + // summary: + // Fills in the calendar grid with each day (1-31) + // tags: + // private + var month = this.displayMonth; + month.setDate(1); + var firstDay = month.getDay(), + daysInMonth = this.dateFuncObj.getDaysInMonth(month), + daysInPreviousMonth = this.dateFuncObj.getDaysInMonth(this.dateFuncObj.add(month, "month", -1)), + today = new this.dateClassObj(), + dayOffset = dojo.cldr.supplemental.getFirstDayOfWeek(this.lang); + if(dayOffset > firstDay){ dayOffset -= 7; } + + // Iterate through dates in the calendar and fill in date numbers and style info + dojo.query(".dijitCalendarDateTemplate", this.domNode).forEach(function(template, i){ + i += dayOffset; + var date = new this.dateClassObj(month), + number, clazz = "dijitCalendar", adj = 0; + + if(i < firstDay){ + number = daysInPreviousMonth - firstDay + i + 1; + adj = -1; + clazz += "Previous"; + }else if(i >= (firstDay + daysInMonth)){ + number = i - firstDay - daysInMonth + 1; + adj = 1; + clazz += "Next"; + }else{ + number = i - firstDay + 1; + clazz += "Current"; + } + + if(adj){ + date = this.dateFuncObj.add(date, "month", adj); + } + date.setDate(number); + + if(!this.dateFuncObj.compare(date, today, "date")){ + clazz = "dijitCalendarCurrentDate " + clazz; + } + + if(this._isSelectedDate(date, this.lang)){ + clazz = "dijitCalendarSelectedDate " + clazz; + } + + if(this.isDisabledDate(date, this.lang)){ + clazz = "dijitCalendarDisabledDate " + clazz; + } + + var clazz2 = this.getClassForDate(date, this.lang); + if(clazz2){ + clazz = clazz2 + " " + clazz; + } + + template.className = clazz + "Month dijitCalendarDateTemplate"; + template.dijitDateValue = date.valueOf(); + var label = dojo.query(".dijitCalendarDateLabel", template)[0], + text = date.getDateLocalized ? date.getDateLocalized(this.lang) : date.getDate(); + this._setText(label, text); + }, this); + + // Fill in localized month name + var monthNames = this.dateLocaleModule.getNames('months', 'wide', 'standAlone', this.lang, month); + this._setText(this.monthLabelNode, monthNames[month.getMonth()]); + // Repopulate month list based on current year (Hebrew calendar) + dojo.query(".dijitCalendarMonthLabelTemplate", this.domNode).forEach(function(node, i){ + dojo.toggleClass(node, "dijitHidden", !(i in monthNames)); // hide leap months (Hebrew) + this._setText(node, monthNames[i]); + }, this); + + // Fill in localized prev/current/next years + var y = month.getFullYear() - 1; + var d = new this.dateClassObj(); + dojo.forEach(["previous", "current", "next"], function(name){ + d.setFullYear(y++); + this._setText(this[name+"YearLabelNode"], + this.dateLocaleModule.format(d, {selector:'year', locale:this.lang})); + }, this); + + // Set up repeating mouse behavior + var _this = this; + var typematic = function(nodeProp, dateProp, adj){ +//FIXME: leaks (collects) listeners if populateGrid is called multiple times. Do this once? + _this._connects.push( + dijit.typematic.addMouseListener(_this[nodeProp], _this, function(count){ + if(count >= 0){ _this._adjustDisplay(dateProp, adj); } + }, 0.8, 500) + ); + }; + typematic("incrementMonth", "month", 1); + typematic("decrementMonth", "month", -1); + typematic("nextYearLabelNode", "year", 1); + typematic("previousYearLabelNode", "year", -1); + }, + + goToToday: function(){ + // summary: + // Sets calendar's value to today's date + this.set('value', new this.dateClassObj()); + }, + + constructor: function(/*Object*/args){ + var dateClass = (args.datePackage && (args.datePackage != "dojo.date"))? args.datePackage + ".Date" : "Date"; + this.dateClassObj = dojo.getObject(dateClass, false); + this.datePackage = args.datePackage || this.datePackage; + this.dateFuncObj = dojo.getObject(this.datePackage, false); + this.dateLocaleModule = dojo.getObject(this.datePackage + ".locale", false); + }, + + postMixInProperties: function(){ + // parser.instantiate sometimes passes in NaN for IE. Use default value in prototype instead. + if(isNaN(this.value)){ delete this.value; } + this.inherited(arguments); + }, + + postCreate: function(){ + this.inherited(arguments); + dojo.setSelectable(this.domNode, false); + + var cloneClass = dojo.hitch(this, function(clazz, n){ + var template = dojo.query(clazz, this.domNode)[0]; + for(var i=0; i<n; i++){ + template.parentNode.appendChild(template.cloneNode(true)); + } + }); + + // clone the day label and calendar day templates 6 times to make 7 columns + cloneClass(".dijitCalendarDayLabelTemplate", 6); + cloneClass(".dijitCalendarDateTemplate", 6); + + // now make 6 week rows + cloneClass(".dijitCalendarWeekTemplate", 5); + + // insert localized day names in the header + var dayNames = this.dateLocaleModule.getNames('days', this.dayWidth, 'standAlone', this.lang); + var dayOffset = dojo.cldr.supplemental.getFirstDayOfWeek(this.lang); + dojo.query(".dijitCalendarDayLabel", this.domNode).forEach(function(label, i){ + this._setText(label, dayNames[(i + dayOffset) % 7]); + }, this); + + var dateObj = new this.dateClassObj(this.value); + // Fill in spacer/month dropdown element with all the month names (invisible) so that the maximum width will affect layout + var monthNames = this.dateLocaleModule.getNames('months', 'wide', 'standAlone', this.lang, dateObj); + cloneClass(".dijitCalendarMonthLabelTemplate", monthNames.length-1); + dojo.query(".dijitCalendarMonthLabelTemplate", this.domNode).forEach(function(node, i){ + dojo.attr(node, "month", i); + if(i in monthNames){ this._setText(node, monthNames[i]); } + dojo.place(node.cloneNode(true), this.monthLabelSpacer); + }, this); + + this.value = null; + this.set('value', dateObj); + }, + + _onMenuHover: function(e){ + dojo.stopEvent(e); + dojo.toggleClass(e.target, "dijitMenuItemHover"); + }, + + _adjustDisplay: function(/*String*/ part, /*int*/ amount){ + // summary: + // Moves calendar forwards or backwards by months or years + // part: + // "month" or "year" + // amount: + // Number of months or years + // tags: + // private + this.displayMonth = this.dateFuncObj.add(this.displayMonth, part, amount); + this._populateGrid(); + }, + + _onMonthToggle: function(/*Event*/ evt){ + // summary: + // Handler for when user triggers or dismisses the month list + // tags: + // protected + dojo.stopEvent(evt); + + if(evt.type == "mousedown"){ + var coords = dojo.position(this.monthLabelNode); +// coords.y -= dojo.position(this.domNode, true).y; + // Size the dropdown's width to match the label in the widget + // so that they are horizontally aligned + var dim = { + width: coords.w + "px", + top: -this.displayMonth.getMonth() * coords.h + "px" + }; + if((dojo.isIE && dojo.isQuirks) || dojo.isIE < 7){ + dim.left = -coords.w/2 + "px"; + } + dojo.style(this.monthDropDown, dim); + this._popupHandler = this.connect(document, "onmouseup", "_onMonthToggle"); + }else{ + this.disconnect(this._popupHandler); + delete this._popupHandler; + } + + dojo.toggleClass(this.monthDropDown, "dijitHidden"); + dojo.toggleClass(this.monthLabelNode, "dijitVisible"); + }, + + _onMonthSelect: function(/*Event*/ evt){ + // summary: + // Handler for when user selects a month from a list + // tags: + // protected + this._onMonthToggle(evt); + this.displayMonth.setMonth(dojo.attr(evt.target, "month")); + this._populateGrid(); + }, + + _onDayClick: function(/*Event*/ evt){ + // summary: + // Handler for day clicks, selects the date if appropriate + // tags: + // protected + dojo.stopEvent(evt); + for(var node = evt.target; node && !node.dijitDateValue; node = node.parentNode); + if(node && !dojo.hasClass(node, "dijitCalendarDisabledDate")){ + this.set('value', node.dijitDateValue); + this.onValueSelected(this.get('value')); + } + }, + + _onDayMouseOver: function(/*Event*/ evt){ + // summary: + // Handler for mouse over events on days, sets hovered style + // tags: + // protected + + // event can occur on <td> or the <span> inside the td, + // set node to the <td>. + var node = + dojo.hasClass(evt.target, "dijitCalendarDateLabel") ? + evt.target.parentNode : + evt.target; + + if(node && (node.dijitDateValue || node == this.previousYearLabelNode || node == this.nextYearLabelNode) ){ + dojo.addClass(node, "dijitCalendarHoveredDate"); + this._currentNode = node; + } + }, + + _onDayMouseOut: function(/*Event*/ evt){ + // summary: + // Handler for mouse out events on days, clears hovered style + // tags: + // protected + + if(!this._currentNode){ return; } + + // if mouse out occurs moving from <td> to <span> inside <td>, ignore it + if(evt.relatedTarget && evt.relatedTarget.parentNode == this._currentNode){ return; } + + dojo.removeClass(this._currentNode, "dijitCalendarHoveredDate"); + if(dojo.hasClass(this._currentNode, "dijitCalendarActiveDate")) { + dojo.removeClass(this._currentNode, "dijitCalendarActiveDate"); + } + this._currentNode = null; + }, + + _onDayMouseDown: function(/*Event*/ evt){ + var node = evt.target.parentNode; + if(node && node.dijitDateValue){ + dojo.addClass(node, "dijitCalendarActiveDate"); + this._currentNode = node; + } + }, + + _onDayMouseUp: function(/*Event*/ evt){ + var node = evt.target.parentNode; + if(node && node.dijitDateValue){ + dojo.removeClass(node, "dijitCalendarActiveDate"); + } + }, + +//TODO: use typematic +//TODO: skip disabled dates without ending up in a loop +//TODO: could optimize by avoiding populate grid when month does not change + _onKeyPress: function(/*Event*/evt){ + // summary: + // Provides keyboard navigation of calendar + // tags: + // protected + var dk = dojo.keys, + increment = -1, + interval, + newValue = this.value; + switch(evt.keyCode){ + case dk.RIGHT_ARROW: + increment = 1; + //fallthrough... + case dk.LEFT_ARROW: + interval = "day"; + if(!this.isLeftToRight()){ increment *= -1; } + break; + case dk.DOWN_ARROW: + increment = 1; + //fallthrough... + case dk.UP_ARROW: + interval = "week"; + break; + case dk.PAGE_DOWN: + increment = 1; + //fallthrough... + case dk.PAGE_UP: + interval = evt.ctrlKey ? "year" : "month"; + break; + case dk.END: + // go to the next month + newValue = this.dateFuncObj.add(newValue, "month", 1); + // subtract a day from the result when we're done + interval = "day"; + //fallthrough... + case dk.HOME: + newValue = new Date(newValue).setDate(1); + break; + case dk.ENTER: + this.onValueSelected(this.get('value')); + break; + case dk.ESCAPE: + //TODO + default: + return; + } + dojo.stopEvent(evt); + + if(interval){ + newValue = this.dateFuncObj.add(newValue, interval, increment); + } + + this.set("value", newValue); + }, + + onValueSelected: function(/*Date*/ date){ + // summary: + // Notification that a date cell was selected. It may be the same as the previous value. + // description: + // Used by `dijit.form._DateTimeTextBox` (and thus `dijit.form.DateTextBox`) + // to get notification when the user has clicked a date. + // tags: + // protected + }, + + onChange: function(/*Date*/ date){ + // summary: + // Called only when the selected date has changed + }, + + _isSelectedDate: function(/*Date*/ dateObject, /*String?*/ locale){ + // summary: + // Extension point so developers can subclass Calendar to + // support multiple (concurrently) selected dates + // tags: + // protected extension + return !this.dateFuncObj.compare(dateObject, this.value, "date") + }, + + isDisabledDate: function(/*Date*/ dateObject, /*String?*/ locale){ + // summary: + // May be overridden to disable certain dates in the calendar e.g. `isDisabledDate=dojo.date.locale.isWeekend` + // tags: + // extension +/*===== + return false; // Boolean +=====*/ + }, + + getClassForDate: function(/*Date*/ dateObject, /*String?*/ locale){ + // summary: + // May be overridden to return CSS classes to associate with the date entry for the given dateObject, + // for example to indicate a holiday in specified locale. + // tags: + // extension + +/*===== + return ""; // String +=====*/ + } + } +); + +} + +if(!dojo._hasResource["dijit.form._DateTimeTextBox"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.form._DateTimeTextBox"] = true; +dojo.provide("dijit.form._DateTimeTextBox"); + + + + + + +new Date("X"); // workaround for #11279, new Date("") == NaN + +/*===== +dojo.declare( + "dijit.form._DateTimeTextBox.__Constraints", + [dijit.form.RangeBoundTextBox.__Constraints, dojo.date.locale.__FormatOptions], { + // summary: + // Specifies both the rules on valid/invalid values (first/last date/time allowed), + // and also formatting options for how the date/time is displayed. + // example: + // To restrict to dates within 2004, displayed in a long format like "December 25, 2005": + // | {min:'2004-01-01',max:'2004-12-31', formatLength:'long'} +}); +=====*/ + +dojo.declare( + "dijit.form._DateTimeTextBox", + dijit.form.RangeBoundTextBox, + { + // summary: + // Base class for validating, serializable, range-bound date or time text box. + + // constraints: dijit.form._DateTimeTextBox.__Constraints + // Despite the name, this parameter specifies both constraints on the input + // (including starting/ending dates/times allowed) as well as + // formatting options like whether the date is displayed in long (ex: December 25, 2005) + // or short (ex: 12/25/2005) format. See `dijit.form._DateTimeTextBox.__Constraints` for details. + /*===== + constraints: {}, + ======*/ + + // Override ValidationTextBox.regExpGen().... we use a reg-ex generating function rather + // than a straight regexp to deal with locale (plus formatting options too?) + regExpGen: dojo.date.locale.regexp, + + // datePackage: String + // JavaScript namespace to find calendar routines. Uses Gregorian calendar routines + // at dojo.date, by default. + datePackage: "dojo.date", + + // Override _FormWidget.compare() to work for dates/times + compare: dojo.date.compare, + + format: function(/*Date*/ value, /*dojo.date.locale.__FormatOptions*/ constraints){ + // summary: + // Formats the value as a Date, according to specified locale (second argument) + // tags: + // protected + if(!value){ return ''; } + return this.dateLocaleModule.format(value, constraints); + }, + + parse: function(/*String*/ value, /*dojo.date.locale.__FormatOptions*/ constraints){ + // summary: + // Parses as string as a Date, according to constraints + // tags: + // protected + + return this.dateLocaleModule.parse(value, constraints) || (this._isEmpty(value) ? null : undefined); // Date + }, + + // Overrides ValidationTextBox.serialize() to serialize a date in canonical ISO format. + serialize: function(/*anything*/val, /*Object?*/options){ + if(val.toGregorian){ + val = val.toGregorian(); + } + return dojo.date.stamp.toISOString(val, options); + }, + + // value: Date + // The value of this widget as a JavaScript Date object. Use get("value") / set("value", val) to manipulate. + // When passed to the parser in markup, must be specified according to `dojo.date.stamp.fromISOString` + value: new Date(""), // value.toString()="NaN" + _blankValue: null, // used by filter() when the textbox is blank + + // popupClass: [protected extension] String + // Name of the popup widget class used to select a date/time. + // Subclasses should specify this. + popupClass: "", // default is no popup = text only + + + // _selector: [protected extension] String + // Specifies constraints.selector passed to dojo.date functions, should be either + // "date" or "time". + // Subclass must specify this. + _selector: "", + + constructor: function(/*Object*/args){ + var dateClass = args.datePackage ? args.datePackage + ".Date" : "Date"; + this.dateClassObj = dojo.getObject(dateClass, false); + this.value = new this.dateClassObj(""); + + this.datePackage = args.datePackage || this.datePackage; + this.dateLocaleModule = dojo.getObject(this.datePackage + ".locale", false); + this.regExpGen = this.dateLocaleModule.regexp; + }, + + _setConstraintsAttr: function(/* Object */ constraints){ + constraints.selector = this._selector; + constraints.fullYear = true; // see #5465 - always format with 4-digit years + var fromISO = dojo.date.stamp.fromISOString; + if(typeof constraints.min == "string"){ constraints.min = fromISO(constraints.min); } + if(typeof constraints.max == "string"){ constraints.max = fromISO(constraints.max); } + this.inherited(arguments, [constraints]); + }, + + _onFocus: function(/*Event*/ evt){ + // summary: + // open the popup + this._open(); + this.inherited(arguments); + }, + + _setValueAttr: function(/*Date*/ value, /*Boolean?*/ priorityChange, /*String?*/ formattedValue){ + // summary: + // Sets the date on this textbox. Note that `value` must be like a Javascript Date object. + if(value !== undefined){ + if(!value || value.toString() == dijit.form._DateTimeTextBox.prototype.value.toString()){ + value = null; + } + if(value instanceof Date && !(this.dateClassObj instanceof Date)){ + value = new this.dateClassObj(value); + } + } + this.inherited(arguments, [value, priorityChange, formattedValue]); + if(this._picker){ + // #3948: fix blank date on popup only + if(!value){value = new this.dateClassObj();} + this._picker.set('value', value); + } + }, + + _open: function(){ + // summary: + // opens the TimePicker, and sets the onValueSelected value + + if(this.disabled || this.readOnly || !this.popupClass){return;} + + var textBox = this; + + if(!this._picker){ + var PopupProto = dojo.getObject(this.popupClass, false); + this._picker = new PopupProto({ + onValueSelected: function(value){ + if(textBox._tabbingAway){ + delete textBox._tabbingAway; + }else{ + textBox.focus(); // focus the textbox before the popup closes to avoid reopening the popup + } + setTimeout(dojo.hitch(textBox, "_close"), 1); // allow focus time to take + + // this will cause InlineEditBox and other handlers to do stuff so make sure it's last + dijit.form._DateTimeTextBox.superclass._setValueAttr.call(textBox, value, true); + }, + id: this.id + "_popup", + dir: textBox.dir, + lang: textBox.lang, + value: this.get('value') || new this.dateClassObj(), + constraints: textBox.constraints, + + datePackage: textBox.datePackage, + + isDisabledDate: function(/*Date*/ date){ + // summary: + // disables dates outside of the min/max of the _DateTimeTextBox + var compare = dojo.date.compare; + var constraints = textBox.constraints; + return constraints && ( + (constraints.min && compare(constraints.min, date, textBox._selector) > 0) || + (constraints.max && compare(constraints.max, date, textBox._selector) < 0) + ); + } + }); + } + if(!this._opened){ + // Open drop down. Align left sides of input box and drop down, even in RTL mode, + // otherwise positioning thrown off when the drop down width is changed in marginBox call below (#10676) + dijit.popup.open({ + parent: this, + popup: this._picker, + orient: {'BL':'TL', 'TL':'BL'}, + around: this.domNode, + onCancel: dojo.hitch(this, this._close), + onClose: function(){ textBox._opened=false; } + }); + this._opened=true; + } + + dojo.marginBox(this._picker.domNode,{ w:this.domNode.offsetWidth }); + }, + + _close: function(){ + if(this._opened){ + dijit.popup.close(this._picker); + this._opened=false; + } + }, + + _onBlur: function(){ + // summary: + // Called magically when focus has shifted away from this widget and it's dropdown + this._close(); + if(this._picker){ + // teardown so that constraints will be rebuilt next time (redundant reference: #6002) + this._picker.destroy(); + delete this._picker; + } + this.inherited(arguments); + // don't focus on <input>. the user has explicitly focused on something else. + }, + + _getDisplayedValueAttr: function(){ + return this.textbox.value; + }, + + _setDisplayedValueAttr: function(/*String*/ value, /*Boolean?*/ priorityChange){ + this._setValueAttr(this.parse(value, this.constraints), priorityChange, value); + }, + + destroy: function(){ + if(this._picker){ + this._picker.destroy(); + delete this._picker; + } + this.inherited(arguments); + }, + + postCreate: function(){ + this.inherited(arguments); + this.connect(this.focusNode, 'onkeypress', this._onKeyPress); + this.connect(this.focusNode, 'onclick', this._open); + }, + + _onKeyPress: function(/*Event*/ e){ + // summary: + // Handler for keypress events + + var p = this._picker, dk = dojo.keys; + // Handle the key in the picker, if it has a handler. If the handler + // returns false, then don't handle any other keys. + if(p && this._opened && p.handleKey){ + if(p.handleKey(e) === false){ return; } + } + if(this._opened && e.charOrCode == dk.ESCAPE && !(e.shiftKey || e.ctrlKey || e.altKey || e.metaKey)){ + this._close(); + dojo.stopEvent(e); + }else if(!this._opened && e.charOrCode == dk.DOWN_ARROW){ + this._open(); + dojo.stopEvent(e); + }else if(e.charOrCode === dk.TAB){ + this._tabbingAway = true; + }else if(this._opened && (e.keyChar || e.charOrCode === dk.BACKSPACE || e.charOrCode == dk.DELETE)){ + // Replace the element - but do it after a delay to allow for + // filtering to occur + setTimeout(dojo.hitch(this, function(){ + if(this._picker && this._opened){ + dijit.placeOnScreenAroundElement(p.domNode.parentNode, this.domNode, {'BL':'TL', 'TL':'BL'}, p.orient ? dojo.hitch(p, "orient") : null); + } + }), 1); + } + } + } +); + +} + +if(!dojo._hasResource["dijit.form.DateTextBox"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.form.DateTextBox"] = true; +dojo.provide("dijit.form.DateTextBox"); + + + + +dojo.declare( + "dijit.form.DateTextBox", + dijit.form._DateTimeTextBox, + { + // summary: + // A validating, serializable, range-bound date text box with a drop down calendar + // + // Example: + // | new dijit.form.DateTextBox({value: new Date(2009, 0, 20)}) + // + // Example: + // | <input dojotype='dijit.form.DateTextBox' value='2009-01-20'> + + baseClass: "dijitTextBox dijitDateTextBox", + popupClass: "dijit.Calendar", + _selector: "date", + + // value: Date + // The value of this widget as a JavaScript Date object, with only year/month/day specified. + // If specified in markup, use the format specified in `dojo.date.stamp.fromISOString` + value: new Date("") // value.toString()="NaN" + } +); + +} + +if(!dojo._hasResource["dijit.form._Spinner"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.form._Spinner"] = true; +dojo.provide("dijit.form._Spinner"); + + + +dojo.declare( + "dijit.form._Spinner", + dijit.form.RangeBoundTextBox, + { + // summary: + // Mixin for validation widgets with a spinner. + // description: + // This class basically (conceptually) extends `dijit.form.ValidationTextBox`. + // It modifies the template to have up/down arrows, and provides related handling code. + + // defaultTimeout: Number + // Number of milliseconds before a held arrow key or up/down button becomes typematic + defaultTimeout: 500, + + // minimumTimeout: Number + // minimum number of milliseconds that typematic event fires when held key or button is held + minimumTimeout: 10, + + // timeoutChangeRate: Number + // Fraction of time used to change the typematic timer between events. + // 1.0 means that each typematic event fires at defaultTimeout intervals. + // < 1.0 means that each typematic event fires at an increasing faster rate. + timeoutChangeRate: 0.90, + + // smallDelta: Number + // Adjust the value by this much when spinning using the arrow keys/buttons + smallDelta: 1, + + // largeDelta: Number + // Adjust the value by this much when spinning using the PgUp/Dn keys + largeDelta: 10, + + templateString: dojo.cache("dijit.form", "templates/Spinner.html", "<div class=\"dijit dijitReset dijitInlineTable dijitLeft\"\n\tid=\"widget_${id}\" waiRole=\"presentation\"\n\t><div class=\"dijitReset dijitButtonNode dijitSpinnerButtonContainer\"\n\t\t><input class=\"dijitReset dijitInputField dijitSpinnerButtonInner\" type=\"text\" tabIndex=\"-1\" readOnly waiRole=\"presentation\"\n\t\t/><div class=\"dijitReset dijitLeft dijitButtonNode dijitArrowButton dijitUpArrowButton\"\n\t\t\tdojoAttachPoint=\"upArrowNode\"\n\t\t\t><div class=\"dijitArrowButtonInner\"\n\t\t\t\t><input class=\"dijitReset dijitInputField\" value=\"▲\" type=\"text\" tabIndex=\"-1\" readOnly waiRole=\"presentation\"\n\t\t\t\t\t${_buttonInputDisabled}\n\t\t\t/></div\n\t\t></div\n\t\t><div class=\"dijitReset dijitLeft dijitButtonNode dijitArrowButton dijitDownArrowButton\"\n\t\t\tdojoAttachPoint=\"downArrowNode\"\n\t\t\t><div class=\"dijitArrowButtonInner\"\n\t\t\t\t><input class=\"dijitReset dijitInputField\" value=\"▼\" type=\"text\" tabIndex=\"-1\" readOnly waiRole=\"presentation\"\n\t\t\t\t\t${_buttonInputDisabled}\n\t\t\t/></div\n\t\t></div\n\t></div\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"Χ \" type=\"text\" tabIndex=\"-1\" readOnly waiRole=\"presentation\"\n\t/></div\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class='dijitReset dijitInputInner' dojoAttachPoint=\"textbox,focusNode\" type=\"${type}\" dojoAttachEvent=\"onkeypress:_onKeyPress\"\n\t\t\twaiRole=\"spinbutton\" autocomplete=\"off\" ${!nameAttrSetting}\n\t/></div\n></div>\n"), + + baseClass: "dijitTextBox dijitSpinner", + + // Set classes like dijitUpArrowButtonHover or dijitDownArrowButtonActive depending on + // mouse action over specified node + cssStateNodes: { + "upArrowNode": "dijitUpArrowButton", + "downArrowNode": "dijitDownArrowButton" + }, + + adjust: function(/* Object */ val, /*Number*/ delta){ + // summary: + // Overridable function used to adjust a primitive value(Number/Date/...) by the delta amount specified. + // The val is adjusted in a way that makes sense to the object type. + // tags: + // protected extension + return val; + }, + + _arrowPressed: function(/*Node*/ nodePressed, /*Number*/ direction, /*Number*/ increment){ + // summary: + // Handler for arrow button or arrow key being pressed + if(this.disabled || this.readOnly){ return; } + this._setValueAttr(this.adjust(this.get('value'), direction*increment), false); + dijit.selectInputText(this.textbox, this.textbox.value.length); + }, + + _arrowReleased: function(/*Node*/ node){ + // summary: + // Handler for arrow button or arrow key being released + this._wheelTimer = null; + if(this.disabled || this.readOnly){ return; } + }, + + _typematicCallback: function(/*Number*/ count, /*DOMNode*/ node, /*Event*/ evt){ + var inc=this.smallDelta; + if(node == this.textbox){ + var k=dojo.keys; + var key = evt.charOrCode; + inc = (key == k.PAGE_UP || key == k.PAGE_DOWN) ? this.largeDelta : this.smallDelta; + node = (key == k.UP_ARROW || key == k.PAGE_UP) ? this.upArrowNode : this.downArrowNode; + } + if(count == -1){ this._arrowReleased(node); } + else{ this._arrowPressed(node, (node == this.upArrowNode) ? 1 : -1, inc); } + }, + + _wheelTimer: null, + _mouseWheeled: function(/*Event*/ evt){ + // summary: + // Mouse wheel listener where supported + + dojo.stopEvent(evt); + // FIXME: Safari bubbles + + // be nice to DOH and scroll as much as the event says to + var scrollAmount = evt.detail ? (evt.detail * -1) : (evt.wheelDelta / 120); + if(scrollAmount !== 0){ + var node = this[(scrollAmount > 0 ? "upArrowNode" : "downArrowNode" )]; + + this._arrowPressed(node, scrollAmount, this.smallDelta); + + if(!this._wheelTimer){ + clearTimeout(this._wheelTimer); + } + this._wheelTimer = setTimeout(dojo.hitch(this,"_arrowReleased",node), 50); + } + + }, + + postCreate: function(){ + this.inherited(arguments); + + // extra listeners + this.connect(this.domNode, !dojo.isMozilla ? "onmousewheel" : 'DOMMouseScroll', "_mouseWheeled"); + this._connects.push(dijit.typematic.addListener(this.upArrowNode, this.textbox, {charOrCode:dojo.keys.UP_ARROW,ctrlKey:false,altKey:false,shiftKey:false,metaKey:false}, this, "_typematicCallback", this.timeoutChangeRate, this.defaultTimeout, this.minimumTimeout)); + this._connects.push(dijit.typematic.addListener(this.downArrowNode, this.textbox, {charOrCode:dojo.keys.DOWN_ARROW,ctrlKey:false,altKey:false,shiftKey:false,metaKey:false}, this, "_typematicCallback", this.timeoutChangeRate, this.defaultTimeout, this.minimumTimeout)); + this._connects.push(dijit.typematic.addListener(this.upArrowNode, this.textbox, {charOrCode:dojo.keys.PAGE_UP,ctrlKey:false,altKey:false,shiftKey:false,metaKey:false}, this, "_typematicCallback", this.timeoutChangeRate, this.defaultTimeout, this.minimumTimeout)); + this._connects.push(dijit.typematic.addListener(this.downArrowNode, this.textbox, {charOrCode:dojo.keys.PAGE_DOWN,ctrlKey:false,altKey:false,shiftKey:false,metaKey:false}, this, "_typematicCallback", this.timeoutChangeRate, this.defaultTimeout, this.minimumTimeout)); + } +}); + +} + +if(!dojo._hasResource["dijit.form.NumberSpinner"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.form.NumberSpinner"] = true; +dojo.provide("dijit.form.NumberSpinner"); + + + + +dojo.declare("dijit.form.NumberSpinner", + [dijit.form._Spinner, dijit.form.NumberTextBoxMixin], + { + // summary: + // Extends NumberTextBox to add up/down arrows and pageup/pagedown for incremental change to the value + // + // description: + // A `dijit.form.NumberTextBox` extension to provide keyboard accessible value selection + // as well as icons for spinning direction. When using the keyboard, the typematic rules + // apply, meaning holding the key will gradually increase or decrease the value and + // accelerate. + // + // example: + // | new dijit.form.NumberSpinner({ constraints:{ max:300, min:100 }}, "someInput"); + + adjust: function(/* Object */val, /* Number*/delta){ + // summary: + // Change Number val by the given amount + // tags: + // protected + + var tc = this.constraints, + v = isNaN(val), + gotMax = !isNaN(tc.max), + gotMin = !isNaN(tc.min) + ; + if(v && delta != 0){ // blank or invalid value and they want to spin, so create defaults + val = (delta > 0) ? + gotMin ? tc.min : gotMax ? tc.max : 0 : + gotMax ? this.constraints.max : gotMin ? tc.min : 0 + ; + } + var newval = val + delta; + if(v || isNaN(newval)){ return val; } + if(gotMax && (newval > tc.max)){ + newval = tc.max; + } + if(gotMin && (newval < tc.min)){ + newval = tc.min; + } + return newval; + }, + + _onKeyPress: function(e){ + if((e.charOrCode == dojo.keys.HOME || e.charOrCode == dojo.keys.END) && !(e.ctrlKey || e.altKey || e.metaKey) + && typeof this.get('value') != 'undefined' /* gibberish, so HOME and END are default editing keys*/){ + var value = this.constraints[(e.charOrCode == dojo.keys.HOME ? "min" : "max")]; + if(typeof value == "number"){ + this._setValueAttr(value, false); + } + // eat home or end key whether we change the value or not + dojo.stopEvent(e); + } + } +}); + +} + +if(!dojo._hasResource["dijit.form.MultiSelect"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.form.MultiSelect"] = true; +dojo.provide("dijit.form.MultiSelect"); + + + +dojo.declare("dijit.form.MultiSelect", dijit.form._FormValueWidget, { + // summary: + // Widget version of a <select multiple=true> element, + // for selecting multiple options. + + // size: Number + // Number of elements to display on a page + // NOTE: may be removed in version 2.0, since elements may have variable height; + // set the size via style="..." or CSS class names instead. + size: 7, + + templateString: "<select multiple='true' ${!nameAttrSetting} dojoAttachPoint='containerNode,focusNode' dojoAttachEvent='onchange: _onChange'></select>", + + attributeMap: dojo.delegate(dijit.form._FormWidget.prototype.attributeMap, { + size: "focusNode" + }), + + reset: function(){ + // summary: + // Reset the widget's value to what it was at initialization time + + // TODO: once we inherit from FormValueWidget this won't be needed + this._hasBeenBlurred = false; + this._setValueAttr(this._resetValue, true); + }, + + addSelected: function(/* dijit.form.MultiSelect */ select){ + // summary: + // Move the selected nodes of a passed Select widget + // instance to this Select widget. + // + // example: + // | // move all the selected values from "bar" to "foo" + // | dijit.byId("foo").addSelected(dijit.byId("bar")); + + select.getSelected().forEach(function(n){ + this.containerNode.appendChild(n); + // scroll to bottom to see item + // cannot use scrollIntoView since <option> tags don't support all attributes + // does not work on IE due to a bug where <select> always shows scrollTop = 0 + this.domNode.scrollTop = this.domNode.offsetHeight; // overshoot will be ignored + // scrolling the source select is trickier esp. on safari who forgets to change the scrollbar size + var oldscroll = select.domNode.scrollTop; + select.domNode.scrollTop = 0; + select.domNode.scrollTop = oldscroll; + },this); + }, + + getSelected: function(){ + // summary: + // Access the NodeList of the selected options directly + return dojo.query("option",this.containerNode).filter(function(n){ + return n.selected; // Boolean + }); // dojo.NodeList + }, + + _getValueAttr: function(){ + // summary: + // Hook so attr('value') works. + // description: + // Returns an array of the selected options' values. + return this.getSelected().map(function(n){ + return n.value; + }); + }, + + multiple: true, // for Form + + _setValueAttr: function(/* Array */values){ + // summary: + // Hook so attr('value', values) works. + // description: + // Set the value(s) of this Select based on passed values + dojo.query("option",this.containerNode).forEach(function(n){ + n.selected = (dojo.indexOf(values,n.value) != -1); + }); + }, + + invertSelection: function(onChange){ + // summary: + // Invert the selection + // onChange: Boolean + // If null, onChange is not fired. + dojo.query("option",this.containerNode).forEach(function(n){ + n.selected = !n.selected; + }); + this._handleOnChange(this.get('value'), onChange == true); + }, + + _onChange: function(/*Event*/ e){ + this._handleOnChange(this.get('value'), true); + }, + + // for layout widgets: + resize: function(/* Object */size){ + if(size){ + dojo.marginBox(this.domNode, size); + } + }, + + postCreate: function(){ + this._onChange(); + } +}); + +} + +if(!dojo._hasResource["dijit.form.HorizontalSlider"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.form.HorizontalSlider"] = true; +dojo.provide("dijit.form.HorizontalSlider"); + + + + + + + + +dojo.declare( + "dijit.form.HorizontalSlider", + [dijit.form._FormValueWidget, dijit._Container], +{ + // summary: + // A form widget that allows one to select a value with a horizontally draggable handle + + templateString: dojo.cache("dijit.form", "templates/HorizontalSlider.html", "<table class=\"dijit dijitReset dijitSlider dijitSliderH\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" rules=\"none\" dojoAttachEvent=\"onkeypress:_onKeyPress,onkeyup:_onKeyUp\"\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t\t><td dojoAttachPoint=\"topDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationT dijitSliderDecorationH\"></td\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerH\"\n\t\t\t><div class=\"dijitSliderDecrementIconH\" tabIndex=\"-1\" style=\"display:none\" dojoAttachPoint=\"decrementButton\"><span class=\"dijitSliderButtonInner\">-</span></div\n\t\t></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperH dijitSliderLeftBumper\" dojoAttachEvent=\"onmousedown:_onClkDecBumper\"></div\n\t\t></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><input dojoAttachPoint=\"valueNode\" type=\"hidden\" ${!nameAttrSetting}\n\t\t\t/><div class=\"dijitReset dijitSliderBarContainerH\" waiRole=\"presentation\" dojoAttachPoint=\"sliderBarContainer\"\n\t\t\t\t><div waiRole=\"presentation\" dojoAttachPoint=\"progressBar\" class=\"dijitSliderBar dijitSliderBarH dijitSliderProgressBar dijitSliderProgressBarH\" dojoAttachEvent=\"onmousedown:_onBarClick\"\n\t\t\t\t\t><div class=\"dijitSliderMoveable dijitSliderMoveableH\"\n\t\t\t\t\t\t><div dojoAttachPoint=\"sliderHandle,focusNode\" class=\"dijitSliderImageHandle dijitSliderImageHandleH\" dojoAttachEvent=\"onmousedown:_onHandleClick\" waiRole=\"slider\" valuemin=\"${minimum}\" valuemax=\"${maximum}\"></div\n\t\t\t\t\t></div\n\t\t\t\t></div\n\t\t\t\t><div waiRole=\"presentation\" dojoAttachPoint=\"remainingBar\" class=\"dijitSliderBar dijitSliderBarH dijitSliderRemainingBar dijitSliderRemainingBarH\" dojoAttachEvent=\"onmousedown:_onBarClick\"></div\n\t\t\t></div\n\t\t></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperH dijitSliderRightBumper\" dojoAttachEvent=\"onmousedown:_onClkIncBumper\"></div\n\t\t></td\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerH\"\n\t\t\t><div class=\"dijitSliderIncrementIconH\" tabIndex=\"-1\" style=\"display:none\" dojoAttachPoint=\"incrementButton\"><span class=\"dijitSliderButtonInner\">+</span></div\n\t\t></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t\t><td dojoAttachPoint=\"containerNode,bottomDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationB dijitSliderDecorationH\"></td\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t></tr\n></table>\n"), + + // Overrides FormValueWidget.value to indicate numeric value + value: 0, + + // showButtons: Boolean + // Show increment/decrement buttons at the ends of the slider? + showButtons: true, + + // minimum:: Integer + // The minimum value the slider can be set to. + minimum: 0, + + // maximum: Integer + // The maximum value the slider can be set to. + maximum: 100, + + // discreteValues: Integer + // If specified, indicates that the slider handle has only 'discreteValues' possible positions, + // and that after dragging the handle, it will snap to the nearest possible position. + // Thus, the slider has only 'discreteValues' possible values. + // + // For example, if minimum=10, maxiumum=30, and discreteValues=3, then the slider handle has + // three possible positions, representing values 10, 20, or 30. + // + // If discreteValues is not specified or if it's value is higher than the number of pixels + // in the slider bar, then the slider handle can be moved freely, and the slider's value will be + // computed/reported based on pixel position (in this case it will likely be fractional, + // such as 123.456789). + discreteValues: Infinity, + + // pageIncrement: Integer + // If discreteValues is also specified, this indicates the amount of clicks (ie, snap positions) + // that the slider handle is moved via pageup/pagedown keys. + // If discreteValues is not specified, it indicates the number of pixels. + pageIncrement: 2, + + // clickSelect: Boolean + // If clicking the slider bar changes the value or not + clickSelect: true, + + // slideDuration: Number + // The time in ms to take to animate the slider handle from 0% to 100%, + // when clicking the slider bar to make the handle move. + slideDuration: dijit.defaultDuration, + + // Flag to _Templated (TODO: why is this here? I see no widgets in the template.) + widgetsInTemplate: true, + + attributeMap: dojo.delegate(dijit.form._FormWidget.prototype.attributeMap, { + id: "" + }), + + baseClass: "dijitSlider", + + // Apply CSS classes to up/down arrows and handle per mouse state + cssStateNodes: { + incrementButton: "dijitSliderIncrementButton", + decrementButton: "dijitSliderDecrementButton", + focusNode: "dijitSliderThumb" + }, + + _mousePixelCoord: "pageX", + _pixelCount: "w", + _startingPixelCoord: "x", + _startingPixelCount: "l", + _handleOffsetCoord: "left", + _progressPixelSize: "width", + + _onKeyUp: function(/*Event*/ e){ + if(this.disabled || this.readOnly || e.altKey || e.ctrlKey || e.metaKey){ return; } + this._setValueAttr(this.value, true); + }, + + _onKeyPress: function(/*Event*/ e){ + if(this.disabled || this.readOnly || e.altKey || e.ctrlKey || e.metaKey){ return; } + switch(e.charOrCode){ + case dojo.keys.HOME: + this._setValueAttr(this.minimum, false); + break; + case dojo.keys.END: + this._setValueAttr(this.maximum, false); + break; + // this._descending === false: if ascending vertical (min on top) + // (this._descending || this.isLeftToRight()): if left-to-right horizontal or descending vertical + case ((this._descending || this.isLeftToRight()) ? dojo.keys.RIGHT_ARROW : dojo.keys.LEFT_ARROW): + case (this._descending === false ? dojo.keys.DOWN_ARROW : dojo.keys.UP_ARROW): + case (this._descending === false ? dojo.keys.PAGE_DOWN : dojo.keys.PAGE_UP): + this.increment(e); + break; + case ((this._descending || this.isLeftToRight()) ? dojo.keys.LEFT_ARROW : dojo.keys.RIGHT_ARROW): + case (this._descending === false ? dojo.keys.UP_ARROW : dojo.keys.DOWN_ARROW): + case (this._descending === false ? dojo.keys.PAGE_UP : dojo.keys.PAGE_DOWN): + this.decrement(e); + break; + default: + return; + } + dojo.stopEvent(e); + }, + + _onHandleClick: function(e){ + if(this.disabled || this.readOnly){ return; } + if(!dojo.isIE){ + // make sure you get focus when dragging the handle + // (but don't do on IE because it causes a flicker on mouse up (due to blur then focus) + dijit.focus(this.sliderHandle); + } + dojo.stopEvent(e); + }, + + _isReversed: function(){ + // summary: + // Returns true if direction is from right to left + // tags: + // protected extension + return !this.isLeftToRight(); + }, + + _onBarClick: function(e){ + if(this.disabled || this.readOnly || !this.clickSelect){ return; } + dijit.focus(this.sliderHandle); + dojo.stopEvent(e); + var abspos = dojo.position(this.sliderBarContainer, true); + var pixelValue = e[this._mousePixelCoord] - abspos[this._startingPixelCoord]; + this._setPixelValue(this._isReversed() ? (abspos[this._pixelCount] - pixelValue) : pixelValue, abspos[this._pixelCount], true); + this._movable.onMouseDown(e); + }, + + _setPixelValue: function(/*Number*/ pixelValue, /*Number*/ maxPixels, /*Boolean, optional*/ priorityChange){ + if(this.disabled || this.readOnly){ return; } + pixelValue = pixelValue < 0 ? 0 : maxPixels < pixelValue ? maxPixels : pixelValue; + var count = this.discreteValues; + if(count <= 1 || count == Infinity){ count = maxPixels; } + count--; + var pixelsPerValue = maxPixels / count; + var wholeIncrements = Math.round(pixelValue / pixelsPerValue); + this._setValueAttr((this.maximum-this.minimum)*wholeIncrements/count + this.minimum, priorityChange); + }, + + _setValueAttr: function(/*Number*/ value, /*Boolean, optional*/ priorityChange){ + // summary: + // Hook so attr('value', value) works. + this.valueNode.value = this.value = value; + dijit.setWaiState(this.focusNode, "valuenow", value); + this.inherited(arguments); + var percent = (value - this.minimum) / (this.maximum - this.minimum); + var progressBar = (this._descending === false) ? this.remainingBar : this.progressBar; + var remainingBar = (this._descending === false) ? this.progressBar : this.remainingBar; + if(this._inProgressAnim && this._inProgressAnim.status != "stopped"){ + this._inProgressAnim.stop(true); + } + if(priorityChange && this.slideDuration > 0 && progressBar.style[this._progressPixelSize]){ + // animate the slider + var _this = this; + var props = {}; + var start = parseFloat(progressBar.style[this._progressPixelSize]); + var duration = this.slideDuration * (percent-start/100); + if(duration == 0){ return; } + if(duration < 0){ duration = 0 - duration; } + props[this._progressPixelSize] = { start: start, end: percent*100, units:"%" }; + this._inProgressAnim = dojo.animateProperty({ node: progressBar, duration: duration, + onAnimate: function(v){ remainingBar.style[_this._progressPixelSize] = (100-parseFloat(v[_this._progressPixelSize])) + "%"; }, + onEnd: function(){ delete _this._inProgressAnim; }, + properties: props + }) + this._inProgressAnim.play(); + } + else{ + progressBar.style[this._progressPixelSize] = (percent*100) + "%"; + remainingBar.style[this._progressPixelSize] = ((1-percent)*100) + "%"; + } + }, + + _bumpValue: function(signedChange, /*Boolean, optional*/ priorityChange){ + if(this.disabled || this.readOnly){ return; } + var s = dojo.getComputedStyle(this.sliderBarContainer); + var c = dojo._getContentBox(this.sliderBarContainer, s); + var count = this.discreteValues; + if(count <= 1 || count == Infinity){ count = c[this._pixelCount]; } + count--; + var value = (this.value - this.minimum) * count / (this.maximum - this.minimum) + signedChange; + if(value < 0){ value = 0; } + if(value > count){ value = count; } + value = value * (this.maximum - this.minimum) / count + this.minimum; + this._setValueAttr(value, priorityChange); + }, + + _onClkBumper: function(val){ + if(this.disabled || this.readOnly || !this.clickSelect){ return; } + this._setValueAttr(val, true); + }, + + _onClkIncBumper: function(){ + this._onClkBumper(this._descending === false ? this.minimum : this.maximum); + }, + + _onClkDecBumper: function(){ + this._onClkBumper(this._descending === false ? this.maximum : this.minimum); + }, + + decrement: function(/*Event*/ e){ + // summary: + // Decrement slider + // tags: + // private + this._bumpValue(e.charOrCode == dojo.keys.PAGE_DOWN ? -this.pageIncrement : -1); + }, + + increment: function(/*Event*/ e){ + // summary: + // Increment slider + // tags: + // private + this._bumpValue(e.charOrCode == dojo.keys.PAGE_UP ? this.pageIncrement : 1); + }, + + _mouseWheeled: function(/*Event*/ evt){ + // summary: + // Event handler for mousewheel where supported + dojo.stopEvent(evt); + var janky = !dojo.isMozilla; + var scroll = evt[(janky ? "wheelDelta" : "detail")] * (janky ? 1 : -1); + this._bumpValue(scroll < 0 ? -1 : 1, true); // negative scroll acts like a decrement + }, + + startup: function(){ + if(this._started){ return; } + + dojo.forEach(this.getChildren(), function(child){ + if(this[child.container] != this.containerNode){ + this[child.container].appendChild(child.domNode); + } + }, this); + + this.inherited(arguments); + }, + + _typematicCallback: function(/*Number*/ count, /*Object*/ button, /*Event*/ e){ + if(count == -1){ + this._setValueAttr(this.value, true); + }else{ + this[(button == (this._descending? this.incrementButton : this.decrementButton)) ? "decrement" : "increment"](e); + } + }, + + postCreate: function(){ + if(this.showButtons){ + this.incrementButton.style.display=""; + this.decrementButton.style.display=""; + this._connects.push(dijit.typematic.addMouseListener( + this.decrementButton, this, "_typematicCallback", 25, 500)); + this._connects.push(dijit.typematic.addMouseListener( + this.incrementButton, this, "_typematicCallback", 25, 500)); + } + this.connect(this.domNode, !dojo.isMozilla ? "onmousewheel" : "DOMMouseScroll", "_mouseWheeled"); + + // define a custom constructor for a SliderMover that points back to me + var mover = dojo.declare(dijit.form._SliderMover, { + widget: this + }); + + this._movable = new dojo.dnd.Moveable(this.sliderHandle, {mover: mover}); + // find any associated label element and add to slider focusnode. + var label=dojo.query('label[for="'+this.id+'"]'); + if(label.length){ + label[0].id = (this.id+"_label"); + dijit.setWaiState(this.focusNode, "labelledby", label[0].id); + } + dijit.setWaiState(this.focusNode, "valuemin", this.minimum); + dijit.setWaiState(this.focusNode, "valuemax", this.maximum); + + this.inherited(arguments); + this._layoutHackIE7(); + }, + + destroy: function(){ + this._movable.destroy(); + if(this._inProgressAnim && this._inProgressAnim.status != "stopped"){ + this._inProgressAnim.stop(true); + } + this._supportingWidgets = dijit.findWidgets(this.domNode); // tells destroy about pseudo-child widgets (ruler/labels) + this.inherited(arguments); + } +}); + +dojo.declare("dijit.form._SliderMover", + dojo.dnd.Mover, +{ + onMouseMove: function(e){ + var widget = this.widget; + var abspos = widget._abspos; + if(!abspos){ + abspos = widget._abspos = dojo.position(widget.sliderBarContainer, true); + widget._setPixelValue_ = dojo.hitch(widget, "_setPixelValue"); + widget._isReversed_ = widget._isReversed(); + } + var pixelValue = e[widget._mousePixelCoord] - abspos[widget._startingPixelCoord]; + widget._setPixelValue_(widget._isReversed_ ? (abspos[widget._pixelCount]-pixelValue) : pixelValue, abspos[widget._pixelCount], false); + }, + + destroy: function(e){ + dojo.dnd.Mover.prototype.destroy.apply(this, arguments); + var widget = this.widget; + widget._abspos = null; + widget._setValueAttr(widget.value, true); + } +}); + + + +} + +if(!dojo._hasResource["dijit.form.VerticalSlider"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.form.VerticalSlider"] = true; +dojo.provide("dijit.form.VerticalSlider"); + + + +dojo.declare( + "dijit.form.VerticalSlider", + dijit.form.HorizontalSlider, +{ + // summary: + // A form widget that allows one to select a value with a vertically draggable handle + + templateString: dojo.cache("dijit.form", "templates/VerticalSlider.html", "<table class=\"dijit dijitReset dijitSlider dijitSliderV\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" rules=\"none\" dojoAttachEvent=\"onkeypress:_onKeyPress,onkeyup:_onKeyUp\"\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerV\"\n\t\t\t><div class=\"dijitSliderIncrementIconV\" tabIndex=\"-1\" style=\"display:none\" dojoAttachPoint=\"decrementButton\"><span class=\"dijitSliderButtonInner\">+</span></div\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><center><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperV dijitSliderTopBumper\" dojoAttachEvent=\"onmousedown:_onClkIncBumper\"></div></center\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td dojoAttachPoint=\"leftDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationL dijitSliderDecorationV\"></td\n\t\t><td class=\"dijitReset\" style=\"height:100%;\"\n\t\t\t><input dojoAttachPoint=\"valueNode\" type=\"hidden\" ${!nameAttrSetting}\n\t\t\t/><center class=\"dijitReset dijitSliderBarContainerV\" waiRole=\"presentation\" dojoAttachPoint=\"sliderBarContainer\"\n\t\t\t\t><div waiRole=\"presentation\" dojoAttachPoint=\"remainingBar\" class=\"dijitSliderBar dijitSliderBarV dijitSliderRemainingBar dijitSliderRemainingBarV\" dojoAttachEvent=\"onmousedown:_onBarClick\"><!--#5629--></div\n\t\t\t\t><div waiRole=\"presentation\" dojoAttachPoint=\"progressBar\" class=\"dijitSliderBar dijitSliderBarV dijitSliderProgressBar dijitSliderProgressBarV\" dojoAttachEvent=\"onmousedown:_onBarClick\"\n\t\t\t\t\t><div class=\"dijitSliderMoveable dijitSliderMoveableV\" style=\"vertical-align:top;\"\n\t\t\t\t\t\t><div dojoAttachPoint=\"sliderHandle,focusNode\" class=\"dijitSliderImageHandle dijitSliderImageHandleV\" dojoAttachEvent=\"onmousedown:_onHandleClick\" waiRole=\"slider\" valuemin=\"${minimum}\" valuemax=\"${maximum}\"></div\n\t\t\t\t\t></div\n\t\t\t\t></div\n\t\t\t></center\n\t\t></td\n\t\t><td dojoAttachPoint=\"containerNode,rightDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationR dijitSliderDecorationV\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><center><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperV dijitSliderBottomBumper\" dojoAttachEvent=\"onmousedown:_onClkDecBumper\"></div></center\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerV\"\n\t\t\t><div class=\"dijitSliderDecrementIconV\" tabIndex=\"-1\" style=\"display:none\" dojoAttachPoint=\"incrementButton\"><span class=\"dijitSliderButtonInner\">-</span></div\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n></table>\n"), + _mousePixelCoord: "pageY", + _pixelCount: "h", + _startingPixelCoord: "y", + _startingPixelCount: "t", + _handleOffsetCoord: "top", + _progressPixelSize: "height", + + // _descending: Boolean + // Specifies if the slider values go from high-on-top (true), or low-on-top (false) + // TODO: expose this in 1.2 - the css progress/remaining bar classes need to be reversed + _descending: true, + + _isReversed: function(){ + // summary: + // Overrides HorizontalSlider._isReversed. + // Indicates if values are high on top (with low numbers on the bottom). + return this._descending; + } +}); + + +} + +if(!dojo._hasResource["dijit.form.HorizontalRule"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.form.HorizontalRule"] = true; +dojo.provide("dijit.form.HorizontalRule"); + + + + +dojo.declare("dijit.form.HorizontalRule", [dijit._Widget, dijit._Templated], +{ + // summary: + // Hash marks for `dijit.form.HorizontalSlider` + + templateString: '<div class="dijitRuleContainer dijitRuleContainerH"></div>', + + // count: Integer + // Number of hash marks to generate + count: 3, + + // container: String + // For HorizontalSlider, this is either "topDecoration" or "bottomDecoration", + // and indicates whether this rule goes above or below the slider. + container: "containerNode", + + // ruleStyle: String + // CSS style to apply to individual hash marks + ruleStyle: "", + + _positionPrefix: '<div class="dijitRuleMark dijitRuleMarkH" style="left:', + _positionSuffix: '%;', + _suffix: '"></div>', + + _genHTML: function(pos, ndx){ + return this._positionPrefix + pos + this._positionSuffix + this.ruleStyle + this._suffix; + }, + + // _isHorizontal: [protected extension] Boolean + // VerticalRule will override this... + _isHorizontal: true, + + postCreate: function(){ + var innerHTML; + if(this.count == 1){ + innerHTML = this._genHTML(50, 0); + }else{ + var i; + var interval = 100 / (this.count-1); + if(!this._isHorizontal || this.isLeftToRight()){ + innerHTML = this._genHTML(0, 0); + for(i=1; i < this.count-1; i++){ + innerHTML += this._genHTML(interval*i, i); + } + innerHTML += this._genHTML(100, this.count-1); + }else{ + innerHTML = this._genHTML(100, 0); + for(i=1; i < this.count-1; i++){ + innerHTML += this._genHTML(100-interval*i, i); + } + innerHTML += this._genHTML(0, this.count-1); + } + } + this.domNode.innerHTML = innerHTML; + } +}); + +} + +if(!dojo._hasResource["dijit.form.VerticalRule"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.form.VerticalRule"] = true; +dojo.provide("dijit.form.VerticalRule"); + + + +dojo.declare("dijit.form.VerticalRule", dijit.form.HorizontalRule, +{ + // summary: + // Hash marks for the `dijit.form.VerticalSlider` + + templateString: '<div class="dijitRuleContainer dijitRuleContainerV"></div>', + _positionPrefix: '<div class="dijitRuleMark dijitRuleMarkV" style="top:', + +/*===== + // container: String + // This is either "leftDecoration" or "rightDecoration", + // to indicate whether this rule goes to the left or to the right of the slider. + // Note that on RTL system, "leftDecoration" would actually go to the right, and vice-versa. + container: "", +=====*/ + + // Overrides HorizontalRule._isHorizontal + _isHorizontal: false + +}); + + +} + +if(!dojo._hasResource["dijit.form.HorizontalRuleLabels"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.form.HorizontalRuleLabels"] = true; +dojo.provide("dijit.form.HorizontalRuleLabels"); + + + +dojo.declare("dijit.form.HorizontalRuleLabels", dijit.form.HorizontalRule, +{ + // summary: + // Labels for `dijit.form.HorizontalSlider` + + templateString: '<div class="dijitRuleContainer dijitRuleContainerH dijitRuleLabelsContainer dijitRuleLabelsContainerH"></div>', + + // labelStyle: String + // CSS style to apply to individual text labels + labelStyle: "", + + // labels: String[]? + // Array of text labels to render - evenly spaced from left-to-right or bottom-to-top. + // Alternately, minimum and maximum can be specified, to get numeric labels. + labels: [], + + // numericMargin: Integer + // Number of generated numeric labels that should be rendered as '' on the ends when labels[] are not specified + numericMargin: 0, + + // numericMinimum: Integer + // Leftmost label value for generated numeric labels when labels[] are not specified + minimum: 0, + + // numericMaximum: Integer + // Rightmost label value for generated numeric labels when labels[] are not specified + maximum: 1, + + // constraints: Object + // pattern, places, lang, et al (see dojo.number) for generated numeric labels when labels[] are not specified + constraints: {pattern:"#%"}, + + _positionPrefix: '<div class="dijitRuleLabelContainer dijitRuleLabelContainerH" style="left:', + _labelPrefix: '"><div class="dijitRuleLabel dijitRuleLabelH">', + _suffix: '</div></div>', + + _calcPosition: function(pos){ + // summary: + // Returns the value to be used in HTML for the label as part of the left: attribute + // tags: + // protected extension + return pos; + }, + + _genHTML: function(pos, ndx){ + return this._positionPrefix + this._calcPosition(pos) + this._positionSuffix + this.labelStyle + this._labelPrefix + this.labels[ndx] + this._suffix; + }, + + getLabels: function(){ + // summary: + // Overridable function to return array of labels to use for this slider. + // Can specify a getLabels() method instead of a labels[] array, or min/max attributes. + // tags: + // protected extension + + // if the labels array was not specified directly, then see if <li> children were + var labels = this.labels; + if(!labels.length){ + // for markup creation, labels are specified as child elements + labels = dojo.query("> li", this.srcNodeRef).map(function(node){ + return String(node.innerHTML); + }); + } + this.srcNodeRef.innerHTML = ''; + // if the labels were not specified directly and not as <li> children, then calculate numeric labels + if(!labels.length && this.count > 1){ + var start = this.minimum; + var inc = (this.maximum - start) / (this.count-1); + for(var i=0; i < this.count; i++){ + labels.push((i < this.numericMargin || i >= (this.count-this.numericMargin)) ? '' : dojo.number.format(start, this.constraints)); + start += inc; + } + } + return labels; + }, + + postMixInProperties: function(){ + this.inherited(arguments); + this.labels = this.getLabels(); + this.count = this.labels.length; + } +}); + + + +} + +if(!dojo._hasResource["dijit.form.VerticalRuleLabels"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.form.VerticalRuleLabels"] = true; +dojo.provide("dijit.form.VerticalRuleLabels"); + + + +dojo.declare("dijit.form.VerticalRuleLabels", dijit.form.HorizontalRuleLabels, +{ + // summary: + // Labels for the `dijit.form.VerticalSlider` + + templateString: '<div class="dijitRuleContainer dijitRuleContainerV dijitRuleLabelsContainer dijitRuleLabelsContainerV"></div>', + + _positionPrefix: '<div class="dijitRuleLabelContainer dijitRuleLabelContainerV" style="top:', + _labelPrefix: '"><span class="dijitRuleLabel dijitRuleLabelV">', + + _calcPosition: function(pos){ + // Overrides HorizontalRuleLabel._calcPosition() + return 100-pos; + }, + + // needed to prevent labels from being reversed in RTL mode + _isHorizontal: false +}); + +} + +if(!dojo._hasResource["dijit.form.SimpleTextarea"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.form.SimpleTextarea"] = true; +dojo.provide("dijit.form.SimpleTextarea"); + + + +dojo.declare("dijit.form.SimpleTextarea", + dijit.form.TextBox, + { + // summary: + // A simple textarea that degrades, and responds to + // minimal LayoutContainer usage, and works with dijit.form.Form. + // Doesn't automatically size according to input, like Textarea. + // + // example: + // | <textarea dojoType="dijit.form.SimpleTextarea" name="foo" value="bar" rows=30 cols=40></textarea> + // + // example: + // | new dijit.form.SimpleTextarea({ rows:20, cols:30 }, "foo"); + + baseClass: "dijitTextBox dijitTextArea", + + attributeMap: dojo.delegate(dijit.form._FormValueWidget.prototype.attributeMap, { + rows:"textbox", cols: "textbox" + }), + + // rows: Number + // The number of rows of text. + rows: "3", + + // rows: Number + // The number of characters per line. + cols: "20", + + templateString: "<textarea ${!nameAttrSetting} dojoAttachPoint='focusNode,containerNode,textbox' autocomplete='off'></textarea>", + + postMixInProperties: function(){ + // Copy value from srcNodeRef, unless user specified a value explicitly (or there is no srcNodeRef) + if(!this.value && this.srcNodeRef){ + this.value = this.srcNodeRef.value; + } + this.inherited(arguments); + }, + + filter: function(/*String*/ value){ + // Override TextBox.filter to deal with newlines... specifically (IIRC) this is for IE which writes newlines + // as \r\n instead of just \n + if(value){ + value = value.replace(/\r/g,""); + } + return this.inherited(arguments); + }, + + postCreate: function(){ + this.inherited(arguments); + if(dojo.isIE && this.cols){ // attribute selectors is not supported in IE6 + dojo.addClass(this.textbox, "dijitTextAreaCols"); + } + }, + + _previousValue: "", + _onInput: function(/*Event?*/ e){ + // Override TextBox._onInput() to enforce maxLength restriction + if(this.maxLength){ + var maxLength = parseInt(this.maxLength); + var value = this.textbox.value.replace(/\r/g,''); + var overflow = value.length - maxLength; + if(overflow > 0){ + if(e){ dojo.stopEvent(e); } + var textarea = this.textbox; + if(textarea.selectionStart){ + var pos = textarea.selectionStart; + var cr = 0; + if(dojo.isOpera){ + cr = (this.textbox.value.substring(0,pos).match(/\r/g) || []).length; + } + this.textbox.value = value.substring(0,pos-overflow-cr)+value.substring(pos-cr); + textarea.setSelectionRange(pos-overflow, pos-overflow); + }else if(dojo.doc.selection){ //IE + textarea.focus(); + var range = dojo.doc.selection.createRange(); + // delete overflow characters + range.moveStart("character", -overflow); + range.text = ''; + // show cursor + range.select(); + } + } + this._previousValue = this.textbox.value; + } + this.inherited(arguments); + } +}); + +} + +if(!dojo._hasResource["dijit.form.Textarea"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.form.Textarea"] = true; +dojo.provide("dijit.form.Textarea"); + + + +dojo.declare( + "dijit.form.Textarea", + dijit.form.SimpleTextarea, + { + // summary: + // A textarea widget that adjusts it's height according to the amount of data. + // + // description: + // A textarea that dynamically expands/contracts (changing it's height) as + // the user types, to display all the text without requiring a scroll bar. + // + // Takes nearly all the parameters (name, value, etc.) that a vanilla textarea takes. + // Rows is not supported since this widget adjusts the height. + // + // example: + // | <textarea dojoType="dijit.form.TextArea">...</textarea> + + + // Override SimpleTextArea.cols to default to width:100%, for backward compatibility + cols: "", + + _previousNewlines: 0, + _strictMode: (dojo.doc.compatMode != 'BackCompat'), // not the same as !dojo.isQuirks + + _getHeight: function(textarea){ + var newH = textarea.scrollHeight; + if(dojo.isIE){ + newH += textarea.offsetHeight - textarea.clientHeight - ((dojo.isIE < 8 && this._strictMode) ? dojo._getPadBorderExtents(textarea).h : 0); + }else if(dojo.isMoz){ + newH += textarea.offsetHeight - textarea.clientHeight; // creates room for horizontal scrollbar + }else if(dojo.isWebKit && !(dojo.isSafari < 4)){ // Safari 4.0 && Chrome + newH += dojo._getBorderExtents(textarea).h; + }else{ // Safari 3.x and Opera 9.6 + newH += dojo._getPadBorderExtents(textarea).h; + } + return newH; + }, + + _estimateHeight: function(textarea){ + // summary: + // Approximate the height when the textarea is invisible with the number of lines in the text. + // Fails when someone calls setValue with a long wrapping line, but the layout fixes itself when the user clicks inside so . . . + // In IE, the resize event is supposed to fire when the textarea becomes visible again and that will correct the size automatically. + // + textarea.style.maxHeight = ""; + textarea.style.height = "auto"; + // #rows = #newlines+1 + // Note: on Moz, the following #rows appears to be 1 too many. + // Actually, Moz is reserving room for the scrollbar. + // If you increase the font size, this behavior becomes readily apparent as the last line gets cut off without the +1. + textarea.rows = (textarea.value.match(/\n/g) || []).length + 1; + }, + + _needsHelpShrinking: dojo.isMoz || dojo.isWebKit, + + _onInput: function(){ + // Override SimpleTextArea._onInput() to deal with height adjustment + this.inherited(arguments); + if(this._busyResizing){ return; } + this._busyResizing = true; + var textarea = this.textbox; + if(textarea.scrollHeight && textarea.offsetHeight && textarea.clientHeight){ + var newH = this._getHeight(textarea) + "px"; + if(textarea.style.height != newH){ + textarea.style.maxHeight = textarea.style.height = newH; + } + if(this._needsHelpShrinking){ + if(this._setTimeoutHandle){ + clearTimeout(this._setTimeoutHandle); + } + this._setTimeoutHandle = setTimeout(dojo.hitch(this, "_shrink"), 0); // try to collapse multiple shrinks into 1 + } + }else{ + // hidden content of unknown size + this._estimateHeight(textarea); + } + this._busyResizing = false; + }, + + _busyResizing: false, + _shrink: function(){ + // grow paddingBottom to see if scrollHeight shrinks (when it is unneccesarily big) + this._setTimeoutHandle = null; + if(this._needsHelpShrinking && !this._busyResizing){ + this._busyResizing = true; + var textarea = this.textbox; + var empty = false; + if(textarea.value == ''){ + textarea.value = ' '; // prevent collapse all the way back to 0 + empty = true; + } + var scrollHeight = textarea.scrollHeight; + if(!scrollHeight){ + this._estimateHeight(textarea); + }else{ + var oldPadding = textarea.style.paddingBottom; + var newPadding = dojo._getPadExtents(textarea); + newPadding = newPadding.h - newPadding.t; + textarea.style.paddingBottom = newPadding + 1 + "px"; // tweak padding to see if height can be reduced + var newH = this._getHeight(textarea) - 1 + "px"; // see if the height changed by the 1px added + if(textarea.style.maxHeight != newH){ // if can be reduced, so now try a big chunk + textarea.style.paddingBottom = newPadding + scrollHeight + "px"; + textarea.scrollTop = 0; + textarea.style.maxHeight = this._getHeight(textarea) - scrollHeight + "px"; // scrollHeight is the added padding + } + textarea.style.paddingBottom = oldPadding; + } + if(empty){ + textarea.value = ''; + } + this._busyResizing = false; + } + }, + + resize: function(){ + // summary: + // Resizes the textarea vertically (should be called after a style/value change) + this._onInput(); + }, + + _setValueAttr: function(){ + this.inherited(arguments); + this.resize(); + }, + + postCreate: function(){ + this.inherited(arguments); + // tweak textarea style to reduce browser differences + dojo.style(this.textbox, { overflowY: 'hidden', overflowX: 'auto', boxSizing: 'border-box', MsBoxSizing: 'border-box', WebkitBoxSizing: 'border-box', MozBoxSizing: 'border-box' }); + this.connect(this.textbox, "onscroll", this._onInput); + this.connect(this.textbox, "onresize", this._onInput); + this.connect(this.textbox, "onfocus", this._onInput); // useful when a previous estimate was off a bit + this._setTimeoutHandle = setTimeout(dojo.hitch(this, "resize"), 0); + }, + + uninitialize: function(){ + if(this._setTimeoutHandle){ + clearTimeout(this._setTimeoutHandle); + } + this.inherited(arguments); + } +}); + +} + +if(!dojo._hasResource["dijit.layout.StackController"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.layout.StackController"] = true; +dojo.provide("dijit.layout.StackController"); + + + + + + + +dojo.declare( + "dijit.layout.StackController", + [dijit._Widget, dijit._Templated, dijit._Container], + { + // summary: + // Set of buttons to select a page in a page list. + // description: + // Monitors the specified StackContainer, and whenever a page is + // added, deleted, or selected, updates itself accordingly. + + templateString: "<span wairole='tablist' dojoAttachEvent='onkeypress' class='dijitStackController'></span>", + + // containerId: [const] String + // The id of the page container that I point to + containerId: "", + + // buttonWidget: [const] String + // The name of the button widget to create to correspond to each page + buttonWidget: "dijit.layout._StackButton", + + postCreate: function(){ + dijit.setWaiRole(this.domNode, "tablist"); + + this.pane2button = {}; // mapping from pane id to buttons + this.pane2handles = {}; // mapping from pane id to this.connect() handles + + // Listen to notifications from StackContainer + this.subscribe(this.containerId+"-startup", "onStartup"); + this.subscribe(this.containerId+"-addChild", "onAddChild"); + this.subscribe(this.containerId+"-removeChild", "onRemoveChild"); + this.subscribe(this.containerId+"-selectChild", "onSelectChild"); + this.subscribe(this.containerId+"-containerKeyPress", "onContainerKeyPress"); + }, + + onStartup: function(/*Object*/ info){ + // summary: + // Called after StackContainer has finished initializing + // tags: + // private + dojo.forEach(info.children, this.onAddChild, this); + if(info.selected){ + // Show button corresponding to selected pane (unless selected + // is null because there are no panes) + this.onSelectChild(info.selected); + } + }, + + destroy: function(){ + for(var pane in this.pane2button){ + this.onRemoveChild(dijit.byId(pane)); + } + this.inherited(arguments); + }, + + onAddChild: function(/*dijit._Widget*/ page, /*Integer?*/ insertIndex){ + // summary: + // Called whenever a page is added to the container. + // Create button corresponding to the page. + // tags: + // private + + // create an instance of the button widget + var cls = dojo.getObject(this.buttonWidget); + var button = new cls({ + id: this.id + "_" + page.id, + label: page.title, + dir: page.dir, + lang: page.lang, + showLabel: page.showTitle, + iconClass: page.iconClass, + closeButton: page.closable, + title: page.tooltip + }); + dijit.setWaiState(button.focusNode,"selected", "false"); + this.pane2handles[page.id] = [ + this.connect(page, 'set', function(name, value){ + var buttonAttr = { + title: 'label', + showTitle: 'showLabel', + iconClass: 'iconClass', + closable: 'closeButton', + tooltip: 'title' + }[name]; + if(buttonAttr){ + button.set(buttonAttr, value); + } + }), + this.connect(button, 'onClick', dojo.hitch(this,"onButtonClick", page)), + this.connect(button, 'onClickCloseButton', dojo.hitch(this,"onCloseButtonClick", page)) + ]; + this.addChild(button, insertIndex); + this.pane2button[page.id] = button; + page.controlButton = button; // this value might be overwritten if two tabs point to same container + if(!this._currentChild){ // put the first child into the tab order + button.focusNode.setAttribute("tabIndex", "0"); + dijit.setWaiState(button.focusNode, "selected", "true"); + this._currentChild = page; + } + // make sure all tabs have the same length + if(!this.isLeftToRight() && dojo.isIE && this._rectifyRtlTabList){ + this._rectifyRtlTabList(); + } + }, + + onRemoveChild: function(/*dijit._Widget*/ page){ + // summary: + // Called whenever a page is removed from the container. + // Remove the button corresponding to the page. + // tags: + // private + + if(this._currentChild === page){ this._currentChild = null; } + dojo.forEach(this.pane2handles[page.id], this.disconnect, this); + delete this.pane2handles[page.id]; + var button = this.pane2button[page.id]; + if(button){ + this.removeChild(button); + delete this.pane2button[page.id]; + button.destroy(); + } + delete page.controlButton; + }, + + onSelectChild: function(/*dijit._Widget*/ page){ + // summary: + // Called when a page has been selected in the StackContainer, either by me or by another StackController + // tags: + // private + + if(!page){ return; } + + if(this._currentChild){ + var oldButton=this.pane2button[this._currentChild.id]; + oldButton.set('checked', false); + dijit.setWaiState(oldButton.focusNode, "selected", "false"); + oldButton.focusNode.setAttribute("tabIndex", "-1"); + } + + var newButton=this.pane2button[page.id]; + newButton.set('checked', true); + dijit.setWaiState(newButton.focusNode, "selected", "true"); + this._currentChild = page; + newButton.focusNode.setAttribute("tabIndex", "0"); + var container = dijit.byId(this.containerId); + dijit.setWaiState(container.containerNode, "labelledby", newButton.id); + }, + + onButtonClick: function(/*dijit._Widget*/ page){ + // summary: + // Called whenever one of my child buttons is pressed in an attempt to select a page + // tags: + // private + + var container = dijit.byId(this.containerId); + container.selectChild(page); + }, + + onCloseButtonClick: function(/*dijit._Widget*/ page){ + // summary: + // Called whenever one of my child buttons [X] is pressed in an attempt to close a page + // tags: + // private + + var container = dijit.byId(this.containerId); + container.closeChild(page); + if(this._currentChild){ + var b = this.pane2button[this._currentChild.id]; + if(b){ + dijit.focus(b.focusNode || b.domNode); + } + } + }, + + // TODO: this is a bit redundant with forward, back api in StackContainer + adjacent: function(/*Boolean*/ forward){ + // summary: + // Helper for onkeypress to find next/previous button + // tags: + // private + + if(!this.isLeftToRight() && (!this.tabPosition || /top|bottom/.test(this.tabPosition))){ forward = !forward; } + // find currently focused button in children array + var children = this.getChildren(); + var current = dojo.indexOf(children, this.pane2button[this._currentChild.id]); + // pick next button to focus on + var offset = forward ? 1 : children.length - 1; + return children[ (current + offset) % children.length ]; // dijit._Widget + }, + + onkeypress: function(/*Event*/ e){ + // summary: + // Handle keystrokes on the page list, for advancing to next/previous button + // and closing the current page if the page is closable. + // tags: + // private + + if(this.disabled || e.altKey ){ return; } + var forward = null; + if(e.ctrlKey || !e._djpage){ + var k = dojo.keys; + switch(e.charOrCode){ + case k.LEFT_ARROW: + case k.UP_ARROW: + if(!e._djpage){ forward = false; } + break; + case k.PAGE_UP: + if(e.ctrlKey){ forward = false; } + break; + case k.RIGHT_ARROW: + case k.DOWN_ARROW: + if(!e._djpage){ forward = true; } + break; + case k.PAGE_DOWN: + if(e.ctrlKey){ forward = true; } + break; + case k.DELETE: + if(this._currentChild.closable){ + this.onCloseButtonClick(this._currentChild); + } + dojo.stopEvent(e); + break; + default: + if(e.ctrlKey){ + if(e.charOrCode === k.TAB){ + this.adjacent(!e.shiftKey).onClick(); + dojo.stopEvent(e); + }else if(e.charOrCode == "w"){ + if(this._currentChild.closable){ + this.onCloseButtonClick(this._currentChild); + } + dojo.stopEvent(e); // avoid browser tab closing. + } + } + } + // handle page navigation + if(forward !== null){ + this.adjacent(forward).onClick(); + dojo.stopEvent(e); + } + } + }, + + onContainerKeyPress: function(/*Object*/ info){ + // summary: + // Called when there was a keypress on the container + // tags: + // private + info.e._djpage = info.page; + this.onkeypress(info.e); + } + }); + + +dojo.declare("dijit.layout._StackButton", + dijit.form.ToggleButton, + { + // summary: + // Internal widget used by StackContainer. + // description: + // The button-like or tab-like object you click to select or delete a page + // tags: + // private + + // Override _FormWidget.tabIndex. + // StackContainer buttons are not in the tab order by default. + // Probably we should be calling this.startupKeyNavChildren() instead. + tabIndex: "-1", + + postCreate: function(/*Event*/ evt){ + dijit.setWaiRole((this.focusNode || this.domNode), "tab"); + this.inherited(arguments); + }, + + onClick: function(/*Event*/ evt){ + // summary: + // This is for TabContainer where the tabs are <span> rather than button, + // so need to set focus explicitly (on some browsers) + // Note that you shouldn't override this method, but you can connect to it. + dijit.focus(this.focusNode); + + // ... now let StackController catch the event and tell me what to do + }, + + onClickCloseButton: function(/*Event*/ evt){ + // summary: + // StackContainer connects to this function; if your widget contains a close button + // then clicking it should call this function. + // Note that you shouldn't override this method, but you can connect to it. + evt.stopPropagation(); + } + }); + + +} + +if(!dojo._hasResource["dijit.layout.StackContainer"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.layout.StackContainer"] = true; +dojo.provide("dijit.layout.StackContainer"); + + + + + + +dojo.declare( + "dijit.layout.StackContainer", + dijit.layout._LayoutWidget, + { + // summary: + // A container that has multiple children, but shows only + // one child at a time + // + // description: + // A container for widgets (ContentPanes, for example) That displays + // only one Widget at a time. + // + // Publishes topics [widgetId]-addChild, [widgetId]-removeChild, and [widgetId]-selectChild + // + // Can be base class for container, Wizard, Show, etc. + + // doLayout: Boolean + // If true, change the size of my currently displayed child to match my size + doLayout: true, + + // persist: Boolean + // Remembers the selected child across sessions + persist: false, + + baseClass: "dijitStackContainer", + +/*===== + // selectedChildWidget: [readonly] dijit._Widget + // References the currently selected child widget, if any. + // Adjust selected child with selectChild() method. + selectedChildWidget: null, +=====*/ + + postCreate: function(){ + this.inherited(arguments); + dojo.addClass(this.domNode, "dijitLayoutContainer"); + dijit.setWaiRole(this.containerNode, "tabpanel"); + this.connect(this.domNode, "onkeypress", this._onKeyPress); + }, + + startup: function(){ + if(this._started){ return; } + + var children = this.getChildren(); + + // Setup each page panel to be initially hidden + dojo.forEach(children, this._setupChild, this); + + // Figure out which child to initially display, defaulting to first one + if(this.persist){ + this.selectedChildWidget = dijit.byId(dojo.cookie(this.id + "_selectedChild")); + }else{ + dojo.some(children, function(child){ + if(child.selected){ + this.selectedChildWidget = child; + } + return child.selected; + }, this); + } + var selected = this.selectedChildWidget; + if(!selected && children[0]){ + selected = this.selectedChildWidget = children[0]; + selected.selected = true; + } + + // Publish information about myself so any StackControllers can initialize. + // This needs to happen before this.inherited(arguments) so that for + // TabContainer, this._contentBox doesn't include the space for the tab labels. + dojo.publish(this.id+"-startup", [{children: children, selected: selected}]); + + // Startup each child widget, and do initial layout like setting this._contentBox, + // then calls this.resize() which does the initial sizing on the selected child. + this.inherited(arguments); + }, + + resize: function(){ + // Resize is called when we are first made visible (it's called from startup() + // if we are initially visible). If this is the first time we've been made + // visible then show our first child. + var selected = this.selectedChildWidget; + if(selected && !this._hasBeenShown){ + this._hasBeenShown = true; + this._showChild(selected); + } + this.inherited(arguments); + }, + + _setupChild: function(/*dijit._Widget*/ child){ + // Overrides _LayoutWidget._setupChild() + + this.inherited(arguments); + + dojo.removeClass(child.domNode, "dijitVisible"); + dojo.addClass(child.domNode, "dijitHidden"); + + // remove the title attribute so it doesn't show up when i hover + // over a node + child.domNode.title = ""; + }, + + addChild: function(/*dijit._Widget*/ child, /*Integer?*/ insertIndex){ + // Overrides _Container.addChild() to do layout and publish events + + this.inherited(arguments); + + if(this._started){ + dojo.publish(this.id+"-addChild", [child, insertIndex]); + + // in case the tab titles have overflowed from one line to two lines + // (or, if this if first child, from zero lines to one line) + // TODO: w/ScrollingTabController this is no longer necessary, although + // ScrollTabController.resize() does need to get called to show/hide + // the navigation buttons as appropriate, but that's handled in ScrollingTabController.onAddChild() + this.layout(); + + // if this is the first child, then select it + if(!this.selectedChildWidget){ + this.selectChild(child); + } + } + }, + + removeChild: function(/*dijit._Widget*/ page){ + // Overrides _Container.removeChild() to do layout and publish events + + this.inherited(arguments); + + if(this._started){ + // this will notify any tablists to remove a button; do this first because it may affect sizing + dojo.publish(this.id + "-removeChild", [page]); + } + + // If we are being destroyed than don't run the code below (to select another page), because we are deleting + // every page one by one + if(this._beingDestroyed){ return; } + + // Select new page to display, also updating TabController to show the respective tab. + // Do this before layout call because it can affect the height of the TabController. + if(this.selectedChildWidget === page){ + this.selectedChildWidget = undefined; + if(this._started){ + var children = this.getChildren(); + if(children.length){ + this.selectChild(children[0]); + } + } + } + + if(this._started){ + // In case the tab titles now take up one line instead of two lines + // (note though that ScrollingTabController never overflows to multiple lines), + // or the height has changed slightly because of addition/removal of tab which close icon + this.layout(); + } + }, + + selectChild: function(/*dijit._Widget|String*/ page, /*Boolean*/ animate){ + // summary: + // Show the given widget (which must be one of my children) + // page: + // Reference to child widget or id of child widget + + page = dijit.byId(page); + + if(this.selectedChildWidget != page){ + // Deselect old page and select new one + this._transition(page, this.selectedChildWidget, animate); + this.selectedChildWidget = page; + dojo.publish(this.id+"-selectChild", [page]); + + if(this.persist){ + dojo.cookie(this.id + "_selectedChild", this.selectedChildWidget.id); + } + } + }, + + _transition: function(/*dijit._Widget*/newWidget, /*dijit._Widget*/oldWidget){ + // summary: + // Hide the old widget and display the new widget. + // Subclasses should override this. + // tags: + // protected extension + if(oldWidget){ + this._hideChild(oldWidget); + } + this._showChild(newWidget); + + // Size the new widget, in case this is the first time it's being shown, + // or I have been resized since the last time it was shown. + // Note that page must be visible for resizing to work. + if(newWidget.resize){ + if(this.doLayout){ + newWidget.resize(this._containerContentBox || this._contentBox); + }else{ + // the child should pick it's own size but we still need to call resize() + // (with no arguments) to let the widget lay itself out + newWidget.resize(); + } + } + }, + + _adjacent: function(/*Boolean*/ forward){ + // summary: + // Gets the next/previous child widget in this container from the current selection. + var children = this.getChildren(); + var index = dojo.indexOf(children, this.selectedChildWidget); + index += forward ? 1 : children.length - 1; + return children[ index % children.length ]; // dijit._Widget + }, + + forward: function(){ + // summary: + // Advance to next page. + this.selectChild(this._adjacent(true), true); + }, + + back: function(){ + // summary: + // Go back to previous page. + this.selectChild(this._adjacent(false), true); + }, + + _onKeyPress: function(e){ + dojo.publish(this.id+"-containerKeyPress", [{ e: e, page: this}]); + }, + + layout: function(){ + // Implement _LayoutWidget.layout() virtual method. + if(this.doLayout && this.selectedChildWidget && this.selectedChildWidget.resize){ + this.selectedChildWidget.resize(this._containerContentBox || this._contentBox); + } + }, + + _showChild: function(/*dijit._Widget*/ page){ + // summary: + // Show the specified child by changing it's CSS, and call _onShow()/onShow() so + // it can do any updates it needs regarding loading href's etc. + var children = this.getChildren(); + page.isFirstChild = (page == children[0]); + page.isLastChild = (page == children[children.length-1]); + page.selected = true; + + dojo.removeClass(page.domNode, "dijitHidden"); + dojo.addClass(page.domNode, "dijitVisible"); + + page._onShow(); + }, + + _hideChild: function(/*dijit._Widget*/ page){ + // summary: + // Hide the specified child by changing it's CSS, and call _onHide() so + // it's notified. + page.selected=false; + dojo.removeClass(page.domNode, "dijitVisible"); + dojo.addClass(page.domNode, "dijitHidden"); + + page.onHide(); + }, + + closeChild: function(/*dijit._Widget*/ page){ + // summary: + // Callback when user clicks the [X] to remove a page. + // If onClose() returns true then remove and destroy the child. + // tags: + // private + var remove = page.onClose(this, page); + if(remove){ + this.removeChild(page); + // makes sure we can clean up executeScripts in ContentPane onUnLoad + page.destroyRecursive(); + } + }, + + destroyDescendants: function(/*Boolean*/preserveDom){ + dojo.forEach(this.getChildren(), function(child){ + this.removeChild(child); + child.destroyRecursive(preserveDom); + }, this); + } +}); + +// For back-compat, remove for 2.0 + + + +// These arguments can be specified for the children of a StackContainer. +// Since any widget can be specified as a StackContainer child, mix them +// into the base widget class. (This is a hack, but it's effective.) +dojo.extend(dijit._Widget, { + // selected: Boolean + // Parameter for children of `dijit.layout.StackContainer` or subclasses. + // Specifies that this widget should be the initially displayed pane. + // Note: to change the selected child use `dijit.layout.StackContainer.selectChild` + selected: false, + + // closable: Boolean + // Parameter for children of `dijit.layout.StackContainer` or subclasses. + // True if user can close (destroy) this child, such as (for example) clicking the X on the tab. + closable: false, + + // iconClass: String + // Parameter for children of `dijit.layout.StackContainer` or subclasses. + // CSS Class specifying icon to use in label associated with this pane. + iconClass: "", + + // showTitle: Boolean + // Parameter for children of `dijit.layout.StackContainer` or subclasses. + // When true, display title of this widget as tab label etc., rather than just using + // icon specified in iconClass + showTitle: true +}); + +} + +if(!dojo._hasResource["dijit.layout.AccordionPane"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.layout.AccordionPane"] = true; +dojo.provide("dijit.layout.AccordionPane"); + + + +dojo.declare("dijit.layout.AccordionPane", dijit.layout.ContentPane, { + // summary: + // Deprecated widget. Use `dijit.layout.ContentPane` instead. + // tags: + // deprecated + + constructor: function(){ + dojo.deprecated("dijit.layout.AccordionPane deprecated, use ContentPane instead", "", "2.0"); + }, + + onSelected: function(){ + // summary: + // called when this pane is selected + } +}); + +} + +if(!dojo._hasResource["dijit.layout.AccordionContainer"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.layout.AccordionContainer"] = true; +dojo.provide("dijit.layout.AccordionContainer"); + + + + + + + + + + // for back compat, remove for 2.0 + +dojo.declare( + "dijit.layout.AccordionContainer", + dijit.layout.StackContainer, + { + // summary: + // Holds a set of panes where every pane's title is visible, but only one pane's content is visible at a time, + // and switching between panes is visualized by sliding the other panes up/down. + // example: + // | <div dojoType="dijit.layout.AccordionContainer"> + // | <div dojoType="dijit.layout.ContentPane" title="pane 1"> + // | </div> + // | <div dojoType="dijit.layout.ContentPane" title="pane 2"> + // | <p>This is some text</p> + // | </div> + // | </div> + + // duration: Integer + // Amount of time (in ms) it takes to slide panes + duration: dijit.defaultDuration, + + // buttonWidget: [const] String + // The name of the widget used to display the title of each pane + buttonWidget: "dijit.layout._AccordionButton", + + // _verticalSpace: Number + // Pixels of space available for the open pane + // (my content box size minus the cumulative size of all the title bars) + _verticalSpace: 0, + + baseClass: "dijitAccordionContainer", + + postCreate: function(){ + this.domNode.style.overflow = "hidden"; + this.inherited(arguments); + dijit.setWaiRole(this.domNode, "tablist"); + }, + + startup: function(){ + if(this._started){ return; } + this.inherited(arguments); + if(this.selectedChildWidget){ + var style = this.selectedChildWidget.containerNode.style; + style.display = ""; + style.overflow = "auto"; + this.selectedChildWidget._wrapperWidget.set("selected", true); + } + }, + + _getTargetHeight: function(/* Node */ node){ + // summary: + // For the given node, returns the height that should be + // set to achieve our vertical space (subtract any padding + // we may have). + // + // This is used by the animations. + // + // TODO: I don't think this works correctly in IE quirks when an elements + // style.height including padding and borders + var cs = dojo.getComputedStyle(node); + return Math.max(this._verticalSpace - dojo._getPadBorderExtents(node, cs).h - dojo._getMarginExtents(node, cs).h, 0); + }, + + layout: function(){ + // Implement _LayoutWidget.layout() virtual method. + // Set the height of the open pane based on what room remains. + + var openPane = this.selectedChildWidget; + + if(!openPane){ return;} + + var openPaneContainer = openPane._wrapperWidget.domNode, + openPaneContainerMargin = dojo._getMarginExtents(openPaneContainer), + openPaneContainerPadBorder = dojo._getPadBorderExtents(openPaneContainer), + mySize = this._contentBox; + + // get cumulative height of all the unselected title bars + var totalCollapsedHeight = 0; + dojo.forEach(this.getChildren(), function(child){ + if(child != openPane){ + totalCollapsedHeight += dojo.marginBox(child._wrapperWidget.domNode).h; + } + }); + this._verticalSpace = mySize.h - totalCollapsedHeight - openPaneContainerMargin.h + - openPaneContainerPadBorder.h - openPane._buttonWidget.getTitleHeight(); + + // Memo size to make displayed child + this._containerContentBox = { + h: this._verticalSpace, + w: this._contentBox.w - openPaneContainerMargin.w - openPaneContainerPadBorder.w + }; + + if(openPane){ + openPane.resize(this._containerContentBox); + } + }, + + _setupChild: function(child){ + // Overrides _LayoutWidget._setupChild(). + // Put wrapper widget around the child widget, showing title + + child._wrapperWidget = new dijit.layout._AccordionInnerContainer({ + contentWidget: child, + buttonWidget: this.buttonWidget, + id: child.id + "_wrapper", + dir: child.dir, + lang: child.lang, + parent: this + }); + + this.inherited(arguments); + }, + + addChild: function(/*dijit._Widget*/ child, /*Integer?*/ insertIndex){ + if(this._started){ + // Adding a child to a started Accordion is complicated because children have + // wrapper widgets. Default code path (calling this.inherited()) would add + // the new child inside another child's wrapper. + + // First add in child as a direct child of this AccordionContainer + dojo.place(child.domNode, this.containerNode, insertIndex); + + if(!child._started){ + child.startup(); + } + + // Then stick the wrapper widget around the child widget + this._setupChild(child); + + // Code below copied from StackContainer + dojo.publish(this.id+"-addChild", [child, insertIndex]); + this.layout(); + if(!this.selectedChildWidget){ + this.selectChild(child); + } + }else{ + // We haven't been started yet so just add in the child widget directly, + // and the wrapper will be created on startup() + this.inherited(arguments); + } + }, + + removeChild: function(child){ + // Overrides _LayoutWidget.removeChild(). + + // destroy wrapper widget first, before StackContainer.getChildren() call + child._wrapperWidget.destroy(); + delete child._wrapperWidget; + dojo.removeClass(child.domNode, "dijitHidden"); + + this.inherited(arguments); + }, + + getChildren: function(){ + // Overrides _Container.getChildren() to return content panes rather than internal AccordionInnerContainer panes + return dojo.map(this.inherited(arguments), function(child){ + return child.declaredClass == "dijit.layout._AccordionInnerContainer" ? child.contentWidget : child; + }, this); + }, + + destroy: function(){ + dojo.forEach(this.getChildren(), function(child){ + child._wrapperWidget.destroy(); + }); + this.inherited(arguments); + }, + + _transition: function(/*dijit._Widget?*/newWidget, /*dijit._Widget?*/oldWidget, /*Boolean*/ animate){ + // Overrides StackContainer._transition() to provide sliding of title bars etc. + +//TODO: should be able to replace this with calls to slideIn/slideOut + if(this._inTransition){ return; } + var animations = []; + var paneHeight = this._verticalSpace; + if(newWidget){ + newWidget._wrapperWidget.set("selected", true); + + this._showChild(newWidget); // prepare widget to be slid in + + // Size the new widget, in case this is the first time it's being shown, + // or I have been resized since the last time it was shown. + // Note that page must be visible for resizing to work. + if(this.doLayout && newWidget.resize){ + newWidget.resize(this._containerContentBox); + } + + var newContents = newWidget.domNode; + dojo.addClass(newContents, "dijitVisible"); + dojo.removeClass(newContents, "dijitHidden"); + + if(animate){ + var newContentsOverflow = newContents.style.overflow; + newContents.style.overflow = "hidden"; + animations.push(dojo.animateProperty({ + node: newContents, + duration: this.duration, + properties: { + height: { start: 1, end: this._getTargetHeight(newContents) } + }, + onEnd: function(){ + newContents.style.overflow = newContentsOverflow; + + // Kick IE to workaround layout bug, see #11415 + if(dojo.isIE){ + setTimeout(function(){ + dojo.removeClass(newContents.parentNode, "dijitAccordionInnerContainerFocused"); + setTimeout(function(){ + dojo.addClass(newContents.parentNode, "dijitAccordionInnerContainerFocused"); + }, 0); + }, 0); + } + } + })); + } + } + if(oldWidget){ + oldWidget._wrapperWidget.set("selected", false); + var oldContents = oldWidget.domNode; + if(animate){ + var oldContentsOverflow = oldContents.style.overflow; + oldContents.style.overflow = "hidden"; + animations.push(dojo.animateProperty({ + node: oldContents, + duration: this.duration, + properties: { + height: { start: this._getTargetHeight(oldContents), end: 1 } + }, + onEnd: function(){ + dojo.addClass(oldContents, "dijitHidden"); + dojo.removeClass(oldContents, "dijitVisible"); + oldContents.style.overflow = oldContentsOverflow; + if(oldWidget.onHide){ + oldWidget.onHide(); + } + } + })); + }else{ + dojo.addClass(oldContents, "dijitHidden"); + dojo.removeClass(oldContents, "dijitVisible"); + if(oldWidget.onHide){ + oldWidget.onHide(); + } + } + } + + if(animate){ + this._inTransition = true; + var combined = dojo.fx.combine(animations); + combined.onEnd = dojo.hitch(this, function(){ + delete this._inTransition; + }); + combined.play(); + } + }, + + // note: we are treating the container as controller here + _onKeyPress: function(/*Event*/ e, /*dijit._Widget*/ fromTitle){ + // summary: + // Handle keypress events + // description: + // This is called from a handler on AccordionContainer.domNode + // (setup in StackContainer), and is also called directly from + // the click handler for accordion labels + if(this._inTransition || this.disabled || e.altKey || !(fromTitle || e.ctrlKey)){ + if(this._inTransition){ + dojo.stopEvent(e); + } + return; + } + var k = dojo.keys, + c = e.charOrCode; + if((fromTitle && (c == k.LEFT_ARROW || c == k.UP_ARROW)) || + (e.ctrlKey && c == k.PAGE_UP)){ + this._adjacent(false)._buttonWidget._onTitleClick(); + dojo.stopEvent(e); + }else if((fromTitle && (c == k.RIGHT_ARROW || c == k.DOWN_ARROW)) || + (e.ctrlKey && (c == k.PAGE_DOWN || c == k.TAB))){ + this._adjacent(true)._buttonWidget._onTitleClick(); + dojo.stopEvent(e); + } + } + } +); + +dojo.declare("dijit.layout._AccordionInnerContainer", + [dijit._Widget, dijit._CssStateMixin], { + // summary: + // Internal widget placed as direct child of AccordionContainer.containerNode. + // When other widgets are added as children to an AccordionContainer they are wrapped in + // this widget. + + // buttonWidget: String + // Name of class to use to instantiate title + // (Wish we didn't have a separate widget for just the title but maintaining it + // for backwards compatibility, is it worth it?) +/*===== + buttonWidget: null, +=====*/ + // contentWidget: dijit._Widget + // Pointer to the real child widget +/*===== + contentWidget: null, +=====*/ + + baseClass: "dijitAccordionInnerContainer", + + // tell nested layout widget that we will take care of sizing + isContainer: true, + isLayoutContainer: true, + + buildRendering: function(){ + // Create wrapper div, placed where the child is now + this.domNode = dojo.place("<div class='" + this.baseClass + "'>", this.contentWidget.domNode, "after"); + + // wrapper div's first child is the button widget (ie, the title bar) + var child = this.contentWidget, + cls = dojo.getObject(this.buttonWidget); + this.button = child._buttonWidget = (new cls({ + contentWidget: child, + label: child.title, + title: child.tooltip, + dir: child.dir, + lang: child.lang, + iconClass: child.iconClass, + id: child.id + "_button", + parent: this.parent + })).placeAt(this.domNode); + + // and then the actual content widget (changing it from prior-sibling to last-child) + dojo.place(this.contentWidget.domNode, this.domNode); + }, + + postCreate: function(){ + this.inherited(arguments); + this.connect(this.contentWidget, 'set', function(name, value){ + var mappedName = {title: "label", tooltip: "title", iconClass: "iconClass"}[name]; + if(mappedName){ + this.button.set(mappedName, value); + } + }, this); + }, + + _setSelectedAttr: function(/*Boolean*/ isSelected){ + this.selected = isSelected; + this.button.set("selected", isSelected); + if(isSelected){ + var cw = this.contentWidget; + if(cw.onSelected){ cw.onSelected(); } + } + }, + + startup: function(){ + // Called by _Container.addChild() + this.contentWidget.startup(); + }, + + destroy: function(){ + this.button.destroyRecursive(); + + delete this.contentWidget._buttonWidget; + delete this.contentWidget._wrapperWidget; + + this.inherited(arguments); + }, + + destroyDescendants: function(){ + // since getChildren isn't working for me, have to code this manually + this.contentWidget.destroyRecursive(); + } +}); + +dojo.declare("dijit.layout._AccordionButton", + [dijit._Widget, dijit._Templated, dijit._CssStateMixin], + { + // summary: + // The title bar to click to open up an accordion pane. + // Internal widget used by AccordionContainer. + // tags: + // private + + templateString: dojo.cache("dijit.layout", "templates/AccordionButton.html", "<div dojoAttachEvent='onclick:_onTitleClick' class='dijitAccordionTitle'>\n\t<div dojoAttachPoint='titleNode,focusNode' dojoAttachEvent='onkeypress:_onTitleKeyPress'\n\t\t\tclass='dijitAccordionTitleFocus' wairole=\"tab\" waiState=\"expanded-false\"\n\t\t><span class='dijitInline dijitAccordionArrow' waiRole=\"presentation\"></span\n\t\t><span class='arrowTextUp' waiRole=\"presentation\">+</span\n\t\t><span class='arrowTextDown' waiRole=\"presentation\">-</span\n\t\t><img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon\" dojoAttachPoint='iconNode' style=\"vertical-align: middle\" waiRole=\"presentation\"/>\n\t\t<span waiRole=\"presentation\" dojoAttachPoint='titleTextNode' class='dijitAccordionText'></span>\n\t</div>\n</div>\n"), + attributeMap: dojo.mixin(dojo.clone(dijit.layout.ContentPane.prototype.attributeMap), { + label: {node: "titleTextNode", type: "innerHTML" }, + title: {node: "titleTextNode", type: "attribute", attribute: "title"}, + iconClass: { node: "iconNode", type: "class" } + }), + + baseClass: "dijitAccordionTitle", + + getParent: function(){ + // summary: + // Returns the AccordionContainer parent. + // tags: + // private + return this.parent; + }, + + postCreate: function(){ + this.inherited(arguments); + dojo.setSelectable(this.domNode, false); + var titleTextNodeId = dojo.attr(this.domNode,'id').replace(' ','_'); + dojo.attr(this.titleTextNode, "id", titleTextNodeId+"_title"); + dijit.setWaiState(this.focusNode, "labelledby", dojo.attr(this.titleTextNode, "id")); + }, + + getTitleHeight: function(){ + // summary: + // Returns the height of the title dom node. + return dojo.marginBox(this.domNode).h; // Integer + }, + + // TODO: maybe the parent should set these methods directly rather than forcing the code + // into the button widget? + _onTitleClick: function(){ + // summary: + // Callback when someone clicks my title. + var parent = this.getParent(); + if(!parent._inTransition){ + parent.selectChild(this.contentWidget, true); + dijit.focus(this.focusNode); + } + }, + + _onTitleKeyPress: function(/*Event*/ evt){ + return this.getParent()._onKeyPress(evt, this.contentWidget); + }, + + _setSelectedAttr: function(/*Boolean*/ isSelected){ + this.selected = isSelected; + dijit.setWaiState(this.focusNode, "expanded", isSelected); + dijit.setWaiState(this.focusNode, "selected", isSelected); + this.focusNode.setAttribute("tabIndex", isSelected ? "0" : "-1"); + } +}); + +} + +if(!dojo._hasResource["dijit.layout.BorderContainer"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.layout.BorderContainer"] = true; +dojo.provide("dijit.layout.BorderContainer"); + + + + +dojo.declare( + "dijit.layout.BorderContainer", + dijit.layout._LayoutWidget, +{ + // summary: + // Provides layout in up to 5 regions, a mandatory center with optional borders along its 4 sides. + // + // description: + // A BorderContainer is a box with a specified size, such as style="width: 500px; height: 500px;", + // that contains a child widget marked region="center" and optionally children widgets marked + // region equal to "top", "bottom", "leading", "trailing", "left" or "right". + // Children along the edges will be laid out according to width or height dimensions and may + // include optional splitters (splitter="true") to make them resizable by the user. The remaining + // space is designated for the center region. + // + // NOTE: Splitters must not be more than 50 pixels in width. + // + // The outer size must be specified on the BorderContainer node. Width must be specified for the sides + // and height for the top and bottom, respectively. No dimensions should be specified on the center; + // it will fill the remaining space. Regions named "leading" and "trailing" may be used just like + // "left" and "right" except that they will be reversed in right-to-left environments. + // + // example: + // | <div dojoType="dijit.layout.BorderContainer" design="sidebar" gutters="false" + // | style="width: 400px; height: 300px;"> + // | <div dojoType="ContentPane" region="top">header text</div> + // | <div dojoType="ContentPane" region="right" splitter="true" style="width: 200px;">table of contents</div> + // | <div dojoType="ContentPane" region="center">client area</div> + // | </div> + + // design: String + // Which design is used for the layout: + // - "headline" (default) where the top and bottom extend + // the full width of the container + // - "sidebar" where the left and right sides extend from top to bottom. + design: "headline", + + // gutters: Boolean + // Give each pane a border and margin. + // Margin determined by domNode.paddingLeft. + // When false, only resizable panes have a gutter (i.e. draggable splitter) for resizing. + gutters: true, + + // liveSplitters: Boolean + // Specifies whether splitters resize as you drag (true) or only upon mouseup (false) + liveSplitters: true, + + // persist: Boolean + // Save splitter positions in a cookie. + persist: false, + + baseClass: "dijitBorderContainer", + + // _splitterClass: String + // Optional hook to override the default Splitter widget used by BorderContainer + _splitterClass: "dijit.layout._Splitter", + + postMixInProperties: function(){ + // change class name to indicate that BorderContainer is being used purely for + // layout (like LayoutContainer) rather than for pretty formatting. + if(!this.gutters){ + this.baseClass += "NoGutter"; + } + this.inherited(arguments); + }, + + postCreate: function(){ + this.inherited(arguments); + + this._splitters = {}; + this._splitterThickness = {}; + }, + + startup: function(){ + if(this._started){ return; } + dojo.forEach(this.getChildren(), this._setupChild, this); + this.inherited(arguments); + }, + + _setupChild: function(/*dijit._Widget*/ child){ + // Override _LayoutWidget._setupChild(). + + var region = child.region; + if(region){ + this.inherited(arguments); + + dojo.addClass(child.domNode, this.baseClass+"Pane"); + + var ltr = this.isLeftToRight(); + if(region == "leading"){ region = ltr ? "left" : "right"; } + if(region == "trailing"){ region = ltr ? "right" : "left"; } + + //FIXME: redundant? + this["_"+region] = child.domNode; + this["_"+region+"Widget"] = child; + + // Create draggable splitter for resizing pane, + // or alternately if splitter=false but BorderContainer.gutters=true then + // insert dummy div just for spacing + if((child.splitter || this.gutters) && !this._splitters[region]){ + var _Splitter = dojo.getObject(child.splitter ? this._splitterClass : "dijit.layout._Gutter"); + var splitter = new _Splitter({ + id: child.id + "_splitter", + container: this, + child: child, + region: region, + live: this.liveSplitters + }); + splitter.isSplitter = true; + this._splitters[region] = splitter.domNode; + dojo.place(this._splitters[region], child.domNode, "after"); + + // Splitters arent added as Contained children, so we need to call startup explicitly + splitter.startup(); + } + child.region = region; + } + }, + + _computeSplitterThickness: function(region){ + this._splitterThickness[region] = this._splitterThickness[region] || + dojo.marginBox(this._splitters[region])[(/top|bottom/.test(region) ? 'h' : 'w')]; + }, + + layout: function(){ + // Implement _LayoutWidget.layout() virtual method. + for(var region in this._splitters){ this._computeSplitterThickness(region); } + this._layoutChildren(); + }, + + addChild: function(/*dijit._Widget*/ child, /*Integer?*/ insertIndex){ + // Override _LayoutWidget.addChild(). + this.inherited(arguments); + if(this._started){ + this.layout(); //OPT + } + }, + + removeChild: function(/*dijit._Widget*/ child){ + // Override _LayoutWidget.removeChild(). + var region = child.region; + var splitter = this._splitters[region]; + if(splitter){ + dijit.byNode(splitter).destroy(); + delete this._splitters[region]; + delete this._splitterThickness[region]; + } + this.inherited(arguments); + delete this["_"+region]; + delete this["_" +region+"Widget"]; + if(this._started){ + this._layoutChildren(); + } + dojo.removeClass(child.domNode, this.baseClass+"Pane"); + }, + + getChildren: function(){ + // Override _LayoutWidget.getChildren() to only return real children, not the splitters. + return dojo.filter(this.inherited(arguments), function(widget){ + return !widget.isSplitter; + }); + }, + + getSplitter: function(/*String*/region){ + // summary: + // Returns the widget responsible for rendering the splitter associated with region + var splitter = this._splitters[region]; + return splitter ? dijit.byNode(splitter) : null; + }, + + resize: function(newSize, currentSize){ + // Overrides _LayoutWidget.resize(). + + // resetting potential padding to 0px to provide support for 100% width/height + padding + // TODO: this hack doesn't respect the box model and is a temporary fix + if(!this.cs || !this.pe){ + var node = this.domNode; + this.cs = dojo.getComputedStyle(node); + this.pe = dojo._getPadExtents(node, this.cs); + this.pe.r = dojo._toPixelValue(node, this.cs.paddingRight); + this.pe.b = dojo._toPixelValue(node, this.cs.paddingBottom); + + dojo.style(node, "padding", "0px"); + } + + this.inherited(arguments); + }, + + _layoutChildren: function(/*String?*/changedRegion, /*Number?*/ changedRegionSize){ + // summary: + // This is the main routine for setting size/position of each child. + // description: + // With no arguments, measures the height of top/bottom panes, the width + // of left/right panes, and then sizes all panes accordingly. + // + // With changedRegion specified (as "left", "top", "bottom", or "right"), + // it changes that region's width/height to changedRegionSize and + // then resizes other regions that were affected. + // changedRegion: + // The region should be changed because splitter was dragged. + // "left", "right", "top", or "bottom". + // changedRegionSize: + // The new width/height (in pixels) to make changedRegion + + if(!this._borderBox || !this._borderBox.h){ + // We are currently hidden, or we haven't been sized by our parent yet. + // Abort. Someone will resize us later. + return; + } + + var sidebarLayout = (this.design == "sidebar"); + var topHeight = 0, bottomHeight = 0, leftWidth = 0, rightWidth = 0; + var topStyle = {}, leftStyle = {}, rightStyle = {}, bottomStyle = {}, + centerStyle = (this._center && this._center.style) || {}; + + var changedSide = /left|right/.test(changedRegion); + + var layoutSides = !changedRegion || (!changedSide && !sidebarLayout); + var layoutTopBottom = !changedRegion || (changedSide && sidebarLayout); + + // Ask browser for width/height of side panes. + // Would be nice to cache this but height can change according to width + // (because words wrap around). I don't think width will ever change though + // (except when the user drags a splitter). + if(this._top){ + topStyle = (changedRegion == "top" || layoutTopBottom) && this._top.style; + topHeight = changedRegion == "top" ? changedRegionSize : dojo.marginBox(this._top).h; + } + if(this._left){ + leftStyle = (changedRegion == "left" || layoutSides) && this._left.style; + leftWidth = changedRegion == "left" ? changedRegionSize : dojo.marginBox(this._left).w; + } + if(this._right){ + rightStyle = (changedRegion == "right" || layoutSides) && this._right.style; + rightWidth = changedRegion == "right" ? changedRegionSize : dojo.marginBox(this._right).w; + } + if(this._bottom){ + bottomStyle = (changedRegion == "bottom" || layoutTopBottom) && this._bottom.style; + bottomHeight = changedRegion == "bottom" ? changedRegionSize : dojo.marginBox(this._bottom).h; + } + + var splitters = this._splitters; + var topSplitter = splitters.top, bottomSplitter = splitters.bottom, + leftSplitter = splitters.left, rightSplitter = splitters.right; + var splitterThickness = this._splitterThickness; + var topSplitterThickness = splitterThickness.top || 0, + leftSplitterThickness = splitterThickness.left || 0, + rightSplitterThickness = splitterThickness.right || 0, + bottomSplitterThickness = splitterThickness.bottom || 0; + + // Check for race condition where CSS hasn't finished loading, so + // the splitter width == the viewport width (#5824) + if(leftSplitterThickness > 50 || rightSplitterThickness > 50){ + setTimeout(dojo.hitch(this, function(){ + // Results are invalid. Clear them out. + this._splitterThickness = {}; + + for(var region in this._splitters){ + this._computeSplitterThickness(region); + } + this._layoutChildren(); + }), 50); + return false; + } + + var pe = this.pe; + + var splitterBounds = { + left: (sidebarLayout ? leftWidth + leftSplitterThickness: 0) + pe.l + "px", + right: (sidebarLayout ? rightWidth + rightSplitterThickness: 0) + pe.r + "px" + }; + + if(topSplitter){ + dojo.mixin(topSplitter.style, splitterBounds); + topSplitter.style.top = topHeight + pe.t + "px"; + } + + if(bottomSplitter){ + dojo.mixin(bottomSplitter.style, splitterBounds); + bottomSplitter.style.bottom = bottomHeight + pe.b + "px"; + } + + splitterBounds = { + top: (sidebarLayout ? 0 : topHeight + topSplitterThickness) + pe.t + "px", + bottom: (sidebarLayout ? 0 : bottomHeight + bottomSplitterThickness) + pe.b + "px" + }; + + if(leftSplitter){ + dojo.mixin(leftSplitter.style, splitterBounds); + leftSplitter.style.left = leftWidth + pe.l + "px"; + } + + if(rightSplitter){ + dojo.mixin(rightSplitter.style, splitterBounds); + rightSplitter.style.right = rightWidth + pe.r + "px"; + } + + dojo.mixin(centerStyle, { + top: pe.t + topHeight + topSplitterThickness + "px", + left: pe.l + leftWidth + leftSplitterThickness + "px", + right: pe.r + rightWidth + rightSplitterThickness + "px", + bottom: pe.b + bottomHeight + bottomSplitterThickness + "px" + }); + + var bounds = { + top: sidebarLayout ? pe.t + "px" : centerStyle.top, + bottom: sidebarLayout ? pe.b + "px" : centerStyle.bottom + }; + dojo.mixin(leftStyle, bounds); + dojo.mixin(rightStyle, bounds); + leftStyle.left = pe.l + "px"; rightStyle.right = pe.r + "px"; topStyle.top = pe.t + "px"; bottomStyle.bottom = pe.b + "px"; + if(sidebarLayout){ + topStyle.left = bottomStyle.left = leftWidth + leftSplitterThickness + pe.l + "px"; + topStyle.right = bottomStyle.right = rightWidth + rightSplitterThickness + pe.r + "px"; + }else{ + topStyle.left = bottomStyle.left = pe.l + "px"; + topStyle.right = bottomStyle.right = pe.r + "px"; + } + + // More calculations about sizes of panes + var containerHeight = this._borderBox.h - pe.t - pe.b, + middleHeight = containerHeight - ( topHeight + topSplitterThickness + bottomHeight + bottomSplitterThickness), + sidebarHeight = sidebarLayout ? containerHeight : middleHeight; + + var containerWidth = this._borderBox.w - pe.l - pe.r, + middleWidth = containerWidth - (leftWidth + leftSplitterThickness + rightWidth + rightSplitterThickness), + sidebarWidth = sidebarLayout ? middleWidth : containerWidth; + + // New margin-box size of each pane + var dim = { + top: { w: sidebarWidth, h: topHeight }, + bottom: { w: sidebarWidth, h: bottomHeight }, + left: { w: leftWidth, h: sidebarHeight }, + right: { w: rightWidth, h: sidebarHeight }, + center: { h: middleHeight, w: middleWidth } + }; + + if(changedRegion){ + // Respond to splitter drag event by changing changedRegion's width or height + var child = this["_" + changedRegion + "Widget"], + mb = {}; + mb[ /top|bottom/.test(changedRegion) ? "h" : "w"] = changedRegionSize; + child.resize ? child.resize(mb, dim[child.region]) : dojo.marginBox(child.domNode, mb); + } + + // Nodes in IE<8 don't respond to t/l/b/r, and TEXTAREA doesn't respond in any browser + var janky = dojo.isIE < 8 || (dojo.isIE && dojo.isQuirks) || dojo.some(this.getChildren(), function(child){ + return child.domNode.tagName == "TEXTAREA" || child.domNode.tagName == "INPUT"; + }); + if(janky){ + // Set the size of the children the old fashioned way, by setting + // CSS width and height + + var resizeWidget = function(widget, changes, result){ + if(widget){ + (widget.resize ? widget.resize(changes, result) : dojo.marginBox(widget.domNode, changes)); + } + }; + + if(leftSplitter){ leftSplitter.style.height = sidebarHeight; } + if(rightSplitter){ rightSplitter.style.height = sidebarHeight; } + resizeWidget(this._leftWidget, {h: sidebarHeight}, dim.left); + resizeWidget(this._rightWidget, {h: sidebarHeight}, dim.right); + + if(topSplitter){ topSplitter.style.width = sidebarWidth; } + if(bottomSplitter){ bottomSplitter.style.width = sidebarWidth; } + resizeWidget(this._topWidget, {w: sidebarWidth}, dim.top); + resizeWidget(this._bottomWidget, {w: sidebarWidth}, dim.bottom); + + resizeWidget(this._centerWidget, dim.center); + }else{ + // Calculate which panes need a notification that their size has been changed + // (we've already set style.top/bottom/left/right on those other panes). + var notifySides = !changedRegion || (/top|bottom/.test(changedRegion) && this.design != "sidebar"), + notifyTopBottom = !changedRegion || (/left|right/.test(changedRegion) && this.design == "sidebar"), + notifyList = { + center: true, + left: notifySides, + right: notifySides, + top: notifyTopBottom, + bottom: notifyTopBottom + }; + + // Send notification to those panes that have changed size + dojo.forEach(this.getChildren(), function(child){ + if(child.resize && notifyList[child.region]){ + child.resize(null, dim[child.region]); + } + }, this); + } + }, + + destroy: function(){ + for(var region in this._splitters){ + var splitter = this._splitters[region]; + dijit.byNode(splitter).destroy(); + dojo.destroy(splitter); + } + delete this._splitters; + delete this._splitterThickness; + this.inherited(arguments); + } +}); + +// This argument can be specified for the children of a BorderContainer. +// Since any widget can be specified as a LayoutContainer child, mix it +// into the base widget class. (This is a hack, but it's effective.) +dojo.extend(dijit._Widget, { + // region: [const] String + // Parameter for children of `dijit.layout.BorderContainer`. + // Values: "top", "bottom", "leading", "trailing", "left", "right", "center". + // See the `dijit.layout.BorderContainer` description for details. + region: '', + + // splitter: [const] Boolean + // Parameter for child of `dijit.layout.BorderContainer` where region != "center". + // If true, enables user to resize the widget by putting a draggable splitter between + // this widget and the region=center widget. + splitter: false, + + // minSize: [const] Number + // Parameter for children of `dijit.layout.BorderContainer`. + // Specifies a minimum size (in pixels) for this widget when resized by a splitter. + minSize: 0, + + // maxSize: [const] Number + // Parameter for children of `dijit.layout.BorderContainer`. + // Specifies a maximum size (in pixels) for this widget when resized by a splitter. + maxSize: Infinity +}); + + + +dojo.declare("dijit.layout._Splitter", [ dijit._Widget, dijit._Templated ], +{ + // summary: + // A draggable spacer between two items in a `dijit.layout.BorderContainer`. + // description: + // This is instantiated by `dijit.layout.BorderContainer`. Users should not + // create it directly. + // tags: + // private + +/*===== + // container: [const] dijit.layout.BorderContainer + // Pointer to the parent BorderContainer + container: null, + + // child: [const] dijit.layout._LayoutWidget + // Pointer to the pane associated with this splitter + child: null, + + // region: String + // Region of pane associated with this splitter. + // "top", "bottom", "left", "right". + region: null, +=====*/ + + // live: [const] Boolean + // If true, the child's size changes and the child widget is redrawn as you drag the splitter; + // otherwise, the size doesn't change until you drop the splitter (by mouse-up) + live: true, + + templateString: '<div class="dijitSplitter" dojoAttachEvent="onkeypress:_onKeyPress,onmousedown:_startDrag,onmouseenter:_onMouse,onmouseleave:_onMouse" tabIndex="0" waiRole="separator"><div class="dijitSplitterThumb"></div></div>', + + postCreate: function(){ + this.inherited(arguments); + this.horizontal = /top|bottom/.test(this.region); + dojo.addClass(this.domNode, "dijitSplitter" + (this.horizontal ? "H" : "V")); +// dojo.addClass(this.child.domNode, "dijitSplitterPane"); +// dojo.setSelectable(this.domNode, false); //TODO is this necessary? + + this._factor = /top|left/.test(this.region) ? 1 : -1; + + this._cookieName = this.container.id + "_" + this.region; + if(this.container.persist){ + // restore old size + var persistSize = dojo.cookie(this._cookieName); + if(persistSize){ + this.child.domNode.style[this.horizontal ? "height" : "width"] = persistSize; + } + } + }, + + _computeMaxSize: function(){ + // summary: + // Compute the maximum size that my corresponding pane can be set to + + var dim = this.horizontal ? 'h' : 'w', + thickness = this.container._splitterThickness[this.region]; + + // Get DOMNode of opposite pane, if an opposite pane exists. + // Ex: if I am the _Splitter for the left pane, then get the right pane. + var flip = {left:'right', right:'left', top:'bottom', bottom:'top', leading:'trailing', trailing:'leading'}, + oppNode = this.container["_" + flip[this.region]]; + + // I can expand up to the edge of the opposite pane, or if there's no opposite pane, then to + // edge of BorderContainer + var available = dojo.contentBox(this.container.domNode)[dim] - + (oppNode ? dojo.marginBox(oppNode)[dim] : 0) - + 20 - thickness * 2; + + return Math.min(this.child.maxSize, available); + }, + + _startDrag: function(e){ + if(!this.cover){ + this.cover = dojo.doc.createElement('div'); + dojo.addClass(this.cover, "dijitSplitterCover"); + dojo.place(this.cover, this.child.domNode, "after"); + } + dojo.addClass(this.cover, "dijitSplitterCoverActive"); + + // Safeguard in case the stop event was missed. Shouldn't be necessary if we always get the mouse up. + if(this.fake){ dojo.destroy(this.fake); } + if(!(this._resize = this.live)){ //TODO: disable live for IE6? + // create fake splitter to display at old position while we drag + (this.fake = this.domNode.cloneNode(true)).removeAttribute("id"); + dojo.addClass(this.domNode, "dijitSplitterShadow"); + dojo.place(this.fake, this.domNode, "after"); + } + dojo.addClass(this.domNode, "dijitSplitterActive"); + dojo.addClass(this.domNode, "dijitSplitter" + (this.horizontal ? "H" : "V") + "Active"); + if(this.fake){ + dojo.removeClass(this.fake, "dijitSplitterHover"); + dojo.removeClass(this.fake, "dijitSplitter" + (this.horizontal ? "H" : "V") + "Hover"); + } + + //Performance: load data info local vars for onmousevent function closure + var factor = this._factor, + max = this._computeMaxSize(), + min = this.child.minSize || 20, + isHorizontal = this.horizontal, + axis = isHorizontal ? "pageY" : "pageX", + pageStart = e[axis], + splitterStyle = this.domNode.style, + dim = isHorizontal ? 'h' : 'w', + childStart = dojo.marginBox(this.child.domNode)[dim], + region = this.region, + splitterStart = parseInt(this.domNode.style[region], 10), + resize = this._resize, + childNode = this.child.domNode, + layoutFunc = dojo.hitch(this.container, this.container._layoutChildren), + de = dojo.doc; + + this._handlers = (this._handlers || []).concat([ + dojo.connect(de, "onmousemove", this._drag = function(e, forceResize){ + var delta = e[axis] - pageStart, + childSize = factor * delta + childStart, + boundChildSize = Math.max(Math.min(childSize, max), min); + + if(resize || forceResize){ + layoutFunc(region, boundChildSize); + } + splitterStyle[region] = factor * delta + splitterStart + (boundChildSize - childSize) + "px"; + }), + dojo.connect(de, "ondragstart", dojo.stopEvent), + dojo.connect(dojo.body(), "onselectstart", dojo.stopEvent), + dojo.connect(de, "onmouseup", this, "_stopDrag") + ]); + dojo.stopEvent(e); + }, + + _onMouse: function(e){ + var o = (e.type == "mouseover" || e.type == "mouseenter"); + dojo.toggleClass(this.domNode, "dijitSplitterHover", o); + dojo.toggleClass(this.domNode, "dijitSplitter" + (this.horizontal ? "H" : "V") + "Hover", o); + }, + + _stopDrag: function(e){ + try{ + if(this.cover){ + dojo.removeClass(this.cover, "dijitSplitterCoverActive"); + } + if(this.fake){ dojo.destroy(this.fake); } + dojo.removeClass(this.domNode, "dijitSplitterActive"); + dojo.removeClass(this.domNode, "dijitSplitter" + (this.horizontal ? "H" : "V") + "Active"); + dojo.removeClass(this.domNode, "dijitSplitterShadow"); + this._drag(e); //TODO: redundant with onmousemove? + this._drag(e, true); + }finally{ + this._cleanupHandlers(); + delete this._drag; + } + + if(this.container.persist){ + dojo.cookie(this._cookieName, this.child.domNode.style[this.horizontal ? "height" : "width"], {expires:365}); + } + }, + + _cleanupHandlers: function(){ + dojo.forEach(this._handlers, dojo.disconnect); + delete this._handlers; + }, + + _onKeyPress: function(/*Event*/ e){ + // should we apply typematic to this? + this._resize = true; + var horizontal = this.horizontal; + var tick = 1; + var dk = dojo.keys; + switch(e.charOrCode){ + case horizontal ? dk.UP_ARROW : dk.LEFT_ARROW: + tick *= -1; +// break; + case horizontal ? dk.DOWN_ARROW : dk.RIGHT_ARROW: + break; + default: +// this.inherited(arguments); + return; + } + var childSize = dojo.marginBox(this.child.domNode)[ horizontal ? 'h' : 'w' ] + this._factor * tick; + this.container._layoutChildren(this.region, Math.max(Math.min(childSize, this._computeMaxSize()), this.child.minSize)); + dojo.stopEvent(e); + }, + + destroy: function(){ + this._cleanupHandlers(); + delete this.child; + delete this.container; + delete this.cover; + delete this.fake; + this.inherited(arguments); + } +}); + +dojo.declare("dijit.layout._Gutter", [dijit._Widget, dijit._Templated ], +{ + // summary: + // Just a spacer div to separate side pane from center pane. + // Basically a trick to lookup the gutter/splitter width from the theme. + // description: + // Instantiated by `dijit.layout.BorderContainer`. Users should not + // create directly. + // tags: + // private + + templateString: '<div class="dijitGutter" waiRole="presentation"></div>', + + postCreate: function(){ + this.horizontal = /top|bottom/.test(this.region); + dojo.addClass(this.domNode, "dijitGutter" + (this.horizontal ? "H" : "V")); + } +}); + +} + +if(!dojo._hasResource["dijit.layout.LayoutContainer"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.layout.LayoutContainer"] = true; +dojo.provide("dijit.layout.LayoutContainer"); + + + +dojo.declare("dijit.layout.LayoutContainer", + dijit.layout._LayoutWidget, + { + // summary: + // Deprecated. Use `dijit.layout.BorderContainer` instead. + // + // description: + // Provides Delphi-style panel layout semantics. + // + // A LayoutContainer is a box with a specified size (like style="width: 500px; height: 500px;"), + // that contains children widgets marked with "layoutAlign" of "left", "right", "bottom", "top", and "client". + // It takes it's children marked as left/top/bottom/right, and lays them out along the edges of the box, + // and then it takes the child marked "client" and puts it into the remaining space in the middle. + // + // Left/right positioning is similar to CSS's "float: left" and "float: right", + // and top/bottom positioning would be similar to "float: top" and "float: bottom", if there were such + // CSS. + // + // Note that there can only be one client element, but there can be multiple left, right, top, + // or bottom elements. + // + // example: + // | <style> + // | html, body{ height: 100%; width: 100%; } + // | </style> + // | <div dojoType="dijit.layout.LayoutContainer" style="width: 100%; height: 100%"> + // | <div dojoType="dijit.layout.ContentPane" layoutAlign="top">header text</div> + // | <div dojoType="dijit.layout.ContentPane" layoutAlign="left" style="width: 200px;">table of contents</div> + // | <div dojoType="dijit.layout.ContentPane" layoutAlign="client">client area</div> + // | </div> + // + // Lays out each child in the natural order the children occur in. + // Basically each child is laid out into the "remaining space", where "remaining space" is initially + // the content area of this widget, but is reduced to a smaller rectangle each time a child is added. + // tags: + // deprecated + + baseClass: "dijitLayoutContainer", + + constructor: function(){ + dojo.deprecated("dijit.layout.LayoutContainer is deprecated", "use BorderContainer instead", 2.0); + }, + + layout: function(){ + dijit.layout.layoutChildren(this.domNode, this._contentBox, this.getChildren()); + }, + + addChild: function(/*dijit._Widget*/ child, /*Integer?*/ insertIndex){ + this.inherited(arguments); + if(this._started){ + dijit.layout.layoutChildren(this.domNode, this._contentBox, this.getChildren()); + } + }, + + removeChild: function(/*dijit._Widget*/ widget){ + this.inherited(arguments); + if(this._started){ + dijit.layout.layoutChildren(this.domNode, this._contentBox, this.getChildren()); + } + } +}); + +// This argument can be specified for the children of a LayoutContainer. +// Since any widget can be specified as a LayoutContainer child, mix it +// into the base widget class. (This is a hack, but it's effective.) +dojo.extend(dijit._Widget, { + // layoutAlign: String + // "none", "left", "right", "bottom", "top", and "client". + // See the LayoutContainer description for details on this parameter. + layoutAlign: 'none' +}); + +} + +if(!dojo._hasResource["dijit.layout.LinkPane"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.layout.LinkPane"] = true; +dojo.provide("dijit.layout.LinkPane"); + + + + +dojo.declare("dijit.layout.LinkPane", + [dijit.layout.ContentPane, dijit._Templated], + { + // summary: + // A ContentPane with an href where (when declared in markup) + // the title is specified as innerHTML rather than as a title attribute. + // description: + // LinkPane is just a ContentPane that is declared in markup similarly + // to an anchor. The anchor's body (the words between `<a>` and `</a>`) + // become the title of the widget (used for TabContainer, AccordionContainer, etc.) + // example: + // | <a href="foo.html">my title</a> + + // I'm using a template because the user may specify the input as + // <a href="foo.html">title</a>, in which case we need to get rid of the + // <a> because we don't want a link. + templateString: '<div class="dijitLinkPane" dojoAttachPoint="containerNode"></div>', + + postMixInProperties: function(){ + // If user has specified node contents, they become the title + // (the link must be plain text) + if(this.srcNodeRef){ + this.title += this.srcNodeRef.innerHTML; + } + this.inherited(arguments); + }, + + _fillContent: function(/*DomNode*/ source){ + // Overrides _Templated._fillContent(). + + // _Templated._fillContent() relocates srcNodeRef innerHTML to templated container node, + // but in our case the srcNodeRef innerHTML is the title, so shouldn't be + // copied + } +}); + +} + +if(!dojo._hasResource["dijit.layout.SplitContainer"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.layout.SplitContainer"] = true; +dojo.provide("dijit.layout.SplitContainer"); + +// +// FIXME: make it prettier +// FIXME: active dragging upwards doesn't always shift other bars (direction calculation is wrong in this case) +// + + + + +dojo.declare("dijit.layout.SplitContainer", + dijit.layout._LayoutWidget, + { + // summary: + // Deprecated. Use `dijit.layout.BorderContainer` instead. + // description: + // A Container widget with sizing handles in-between each child. + // Contains multiple children widgets, all of which are displayed side by side + // (either horizontally or vertically); there's a bar between each of the children, + // and you can adjust the relative size of each child by dragging the bars. + // + // You must specify a size (width and height) for the SplitContainer. + // tags: + // deprecated + + constructor: function(){ + dojo.deprecated("dijit.layout.SplitContainer is deprecated", "use BorderContainer with splitter instead", 2.0); + }, + + // activeSizing: Boolean + // If true, the children's size changes as you drag the bar; + // otherwise, the sizes don't change until you drop the bar (by mouse-up) + activeSizing: false, + + // sizerWidth: Integer + // Size in pixels of the bar between each child + sizerWidth: 7, // FIXME: this should be a CSS attribute (at 7 because css wants it to be 7 until we fix to css) + + // orientation: String + // either 'horizontal' or vertical; indicates whether the children are + // arranged side-by-side or up/down. + orientation: 'horizontal', + + // persist: Boolean + // Save splitter positions in a cookie + persist: true, + + baseClass: "dijitSplitContainer", + + postMixInProperties: function(){ + this.inherited("postMixInProperties",arguments); + this.isHorizontal = (this.orientation == 'horizontal'); + }, + + postCreate: function(){ + this.inherited(arguments); + this.sizers = []; + + // overflow has to be explicitly hidden for splitContainers using gekko (trac #1435) + // to keep other combined css classes from inadvertantly making the overflow visible + if(dojo.isMozilla){ + this.domNode.style.overflow = '-moz-scrollbars-none'; // hidden doesn't work + } + + // create the fake dragger + if(typeof this.sizerWidth == "object"){ + try{ //FIXME: do this without a try/catch + this.sizerWidth = parseInt(this.sizerWidth.toString()); + }catch(e){ this.sizerWidth = 7; } + } + var sizer = dojo.doc.createElement('div'); + this.virtualSizer = sizer; + sizer.style.position = 'relative'; + + // #1681: work around the dreaded 'quirky percentages in IE' layout bug + // If the splitcontainer's dimensions are specified in percentages, it + // will be resized when the virtualsizer is displayed in _showSizingLine + // (typically expanding its bounds unnecessarily). This happens because + // we use position: relative for .dijitSplitContainer. + // The workaround: instead of changing the display style attribute, + // switch to changing the zIndex (bring to front/move to back) + + sizer.style.zIndex = 10; + sizer.className = this.isHorizontal ? 'dijitSplitContainerVirtualSizerH' : 'dijitSplitContainerVirtualSizerV'; + this.domNode.appendChild(sizer); + dojo.setSelectable(sizer, false); + }, + + destroy: function(){ + delete this.virtualSizer; + dojo.forEach(this._ownconnects, dojo.disconnect); + this.inherited(arguments); + }, + startup: function(){ + if(this._started){ return; } + + dojo.forEach(this.getChildren(), function(child, i, children){ + // attach the children and create the draggers + this._setupChild(child); + + if(i < children.length-1){ + this._addSizer(); + } + }, this); + + if(this.persist){ + this._restoreState(); + } + + this.inherited(arguments); + }, + + _setupChild: function(/*dijit._Widget*/ child){ + this.inherited(arguments); + child.domNode.style.position = "absolute"; + dojo.addClass(child.domNode, "dijitSplitPane"); + }, + + _onSizerMouseDown: function(e){ + if(e.target.id){ + for(var i=0;i<this.sizers.length;i++){ + if(this.sizers[i].id == e.target.id){ + break; + } + } + if(i<this.sizers.length){ + this.beginSizing(e,i); + } + } + }, + _addSizer: function(index){ + index = index === undefined ? this.sizers.length : index; + + // TODO: use a template for this!!! + var sizer = dojo.doc.createElement('div'); + sizer.id=dijit.getUniqueId('dijit_layout_SplitterContainer_Splitter'); + this.sizers.splice(index,0,sizer); + this.domNode.appendChild(sizer); + + sizer.className = this.isHorizontal ? 'dijitSplitContainerSizerH' : 'dijitSplitContainerSizerV'; + + // add the thumb div + var thumb = dojo.doc.createElement('div'); + thumb.className = 'thumb'; + sizer.appendChild(thumb); + + // FIXME: are you serious? why aren't we using mover start/stop combo? + this.connect(sizer, "onmousedown", '_onSizerMouseDown'); + + dojo.setSelectable(sizer, false); + }, + + removeChild: function(widget){ + // summary: + // Remove sizer, but only if widget is really our child and + // we have at least one sizer to throw away + if(this.sizers.length){ + var i=dojo.indexOf(this.getChildren(), widget) + if(i != -1){ + if(i == this.sizers.length){ + i--; + } + dojo.destroy(this.sizers[i]); + this.sizers.splice(i,1); + } + } + + // Remove widget and repaint + this.inherited(arguments); + if(this._started){ + this.layout(); + } + }, + + addChild: function(/*dijit._Widget*/ child, /*Integer?*/ insertIndex){ + // summary: + // Add a child widget to the container + // child: + // a widget to add + // insertIndex: + // postion in the "stack" to add the child widget + + this.inherited(arguments); + + if(this._started){ + // Do the stuff that startup() does for each widget + var children = this.getChildren(); + if(children.length > 1){ + this._addSizer(insertIndex); + } + + // and then reposition (ie, shrink) every pane to make room for the new guy + this.layout(); + } + }, + + layout: function(){ + // summary: + // Do layout of panels + + // base class defines this._contentBox on initial creation and also + // on resize + this.paneWidth = this._contentBox.w; + this.paneHeight = this._contentBox.h; + + var children = this.getChildren(); + if(!children.length){ return; } + + // + // calculate space + // + + var space = this.isHorizontal ? this.paneWidth : this.paneHeight; + if(children.length > 1){ + space -= this.sizerWidth * (children.length - 1); + } + + // + // calculate total of SizeShare values + // + var outOf = 0; + dojo.forEach(children, function(child){ + outOf += child.sizeShare; + }); + + // + // work out actual pixels per sizeshare unit + // + var pixPerUnit = space / outOf; + + // + // set the SizeActual member of each pane + // + var totalSize = 0; + dojo.forEach(children.slice(0, children.length - 1), function(child){ + var size = Math.round(pixPerUnit * child.sizeShare); + child.sizeActual = size; + totalSize += size; + }); + + children[children.length-1].sizeActual = space - totalSize; + + // + // make sure the sizes are ok + // + this._checkSizes(); + + // + // now loop, positioning each pane and letting children resize themselves + // + + var pos = 0; + var size = children[0].sizeActual; + this._movePanel(children[0], pos, size); + children[0].position = pos; + pos += size; + + // if we don't have any sizers, our layout method hasn't been called yet + // so bail until we are called..TODO: REVISIT: need to change the startup + // algorithm to guaranteed the ordering of calls to layout method + if(!this.sizers){ + return; + } + + dojo.some(children.slice(1), function(child, i){ + // error-checking + if(!this.sizers[i]){ + return true; + } + // first we position the sizing handle before this pane + this._moveSlider(this.sizers[i], pos, this.sizerWidth); + this.sizers[i].position = pos; + pos += this.sizerWidth; + + size = child.sizeActual; + this._movePanel(child, pos, size); + child.position = pos; + pos += size; + }, this); + }, + + _movePanel: function(panel, pos, size){ + if(this.isHorizontal){ + panel.domNode.style.left = pos + 'px'; // TODO: resize() takes l and t parameters too, don't need to set manually + panel.domNode.style.top = 0; + var box = {w: size, h: this.paneHeight}; + if(panel.resize){ + panel.resize(box); + }else{ + dojo.marginBox(panel.domNode, box); + } + }else{ + panel.domNode.style.left = 0; // TODO: resize() takes l and t parameters too, don't need to set manually + panel.domNode.style.top = pos + 'px'; + var box = {w: this.paneWidth, h: size}; + if(panel.resize){ + panel.resize(box); + }else{ + dojo.marginBox(panel.domNode, box); + } + } + }, + + _moveSlider: function(slider, pos, size){ + if(this.isHorizontal){ + slider.style.left = pos + 'px'; + slider.style.top = 0; + dojo.marginBox(slider, { w: size, h: this.paneHeight }); + }else{ + slider.style.left = 0; + slider.style.top = pos + 'px'; + dojo.marginBox(slider, { w: this.paneWidth, h: size }); + } + }, + + _growPane: function(growth, pane){ + if(growth > 0){ + if(pane.sizeActual > pane.sizeMin){ + if((pane.sizeActual - pane.sizeMin) > growth){ + + // stick all the growth in this pane + pane.sizeActual = pane.sizeActual - growth; + growth = 0; + }else{ + // put as much growth in here as we can + growth -= pane.sizeActual - pane.sizeMin; + pane.sizeActual = pane.sizeMin; + } + } + } + return growth; + }, + + _checkSizes: function(){ + + var totalMinSize = 0; + var totalSize = 0; + var children = this.getChildren(); + + dojo.forEach(children, function(child){ + totalSize += child.sizeActual; + totalMinSize += child.sizeMin; + }); + + // only make adjustments if we have enough space for all the minimums + + if(totalMinSize <= totalSize){ + + var growth = 0; + + dojo.forEach(children, function(child){ + if(child.sizeActual < child.sizeMin){ + growth += child.sizeMin - child.sizeActual; + child.sizeActual = child.sizeMin; + } + }); + + if(growth > 0){ + var list = this.isDraggingLeft ? children.reverse() : children; + dojo.forEach(list, function(child){ + growth = this._growPane(growth, child); + }, this); + } + }else{ + dojo.forEach(children, function(child){ + child.sizeActual = Math.round(totalSize * (child.sizeMin / totalMinSize)); + }); + } + }, + + beginSizing: function(e, i){ + var children = this.getChildren(); + this.paneBefore = children[i]; + this.paneAfter = children[i+1]; + + this.isSizing = true; + this.sizingSplitter = this.sizers[i]; + + if(!this.cover){ + this.cover = dojo.create('div', { + style: { + position:'absolute', + zIndex:5, + top: 0, + left: 0, + width: "100%", + height: "100%" + } + }, this.domNode); + }else{ + this.cover.style.zIndex = 5; + } + this.sizingSplitter.style.zIndex = 6; + + // TODO: REVISIT - we want MARGIN_BOX and core hasn't exposed that yet (but can't we use it anyway if we pay attention? we do elsewhere.) + this.originPos = dojo.position(children[0].domNode, true); + if(this.isHorizontal){ + var client = e.layerX || e.offsetX || 0; + var screen = e.pageX; + this.originPos = this.originPos.x; + }else{ + var client = e.layerY || e.offsetY || 0; + var screen = e.pageY; + this.originPos = this.originPos.y; + } + this.startPoint = this.lastPoint = screen; + this.screenToClientOffset = screen - client; + this.dragOffset = this.lastPoint - this.paneBefore.sizeActual - this.originPos - this.paneBefore.position; + + if(!this.activeSizing){ + this._showSizingLine(); + } + + // + // attach mouse events + // + this._ownconnects = []; + this._ownconnects.push(dojo.connect(dojo.doc.documentElement, "onmousemove", this, "changeSizing")); + this._ownconnects.push(dojo.connect(dojo.doc.documentElement, "onmouseup", this, "endSizing")); + + dojo.stopEvent(e); + }, + + changeSizing: function(e){ + if(!this.isSizing){ return; } + this.lastPoint = this.isHorizontal ? e.pageX : e.pageY; + this.movePoint(); + if(this.activeSizing){ + this._updateSize(); + }else{ + this._moveSizingLine(); + } + dojo.stopEvent(e); + }, + + endSizing: function(e){ + if(!this.isSizing){ return; } + if(this.cover){ + this.cover.style.zIndex = -1; + } + if(!this.activeSizing){ + this._hideSizingLine(); + } + + this._updateSize(); + + this.isSizing = false; + + if(this.persist){ + this._saveState(this); + } + + dojo.forEach(this._ownconnects, dojo.disconnect); + }, + + movePoint: function(){ + + // make sure lastPoint is a legal point to drag to + var p = this.lastPoint - this.screenToClientOffset; + + var a = p - this.dragOffset; + a = this.legaliseSplitPoint(a); + p = a + this.dragOffset; + + this.lastPoint = p + this.screenToClientOffset; + }, + + legaliseSplitPoint: function(a){ + + a += this.sizingSplitter.position; + + this.isDraggingLeft = !!(a > 0); + + if(!this.activeSizing){ + var min = this.paneBefore.position + this.paneBefore.sizeMin; + if(a < min){ + a = min; + } + + var max = this.paneAfter.position + (this.paneAfter.sizeActual - (this.sizerWidth + this.paneAfter.sizeMin)); + if(a > max){ + a = max; + } + } + + a -= this.sizingSplitter.position; + + this._checkSizes(); + + return a; + }, + + _updateSize: function(){ + //FIXME: sometimes this.lastPoint is NaN + var pos = this.lastPoint - this.dragOffset - this.originPos; + + var start_region = this.paneBefore.position; + var end_region = this.paneAfter.position + this.paneAfter.sizeActual; + + this.paneBefore.sizeActual = pos - start_region; + this.paneAfter.position = pos + this.sizerWidth; + this.paneAfter.sizeActual = end_region - this.paneAfter.position; + + dojo.forEach(this.getChildren(), function(child){ + child.sizeShare = child.sizeActual; + }); + + if(this._started){ + this.layout(); + } + }, + + _showSizingLine: function(){ + + this._moveSizingLine(); + + dojo.marginBox(this.virtualSizer, + this.isHorizontal ? { w: this.sizerWidth, h: this.paneHeight } : { w: this.paneWidth, h: this.sizerWidth }); + + this.virtualSizer.style.display = 'block'; + }, + + _hideSizingLine: function(){ + this.virtualSizer.style.display = 'none'; + }, + + _moveSizingLine: function(){ + var pos = (this.lastPoint - this.startPoint) + this.sizingSplitter.position; + dojo.style(this.virtualSizer,(this.isHorizontal ? "left" : "top"),pos+"px"); + // this.virtualSizer.style[ this.isHorizontal ? "left" : "top" ] = pos + 'px'; // FIXME: remove this line if the previous is better + }, + + _getCookieName: function(i){ + return this.id + "_" + i; + }, + + _restoreState: function(){ + dojo.forEach(this.getChildren(), function(child, i){ + var cookieName = this._getCookieName(i); + var cookieValue = dojo.cookie(cookieName); + if(cookieValue){ + var pos = parseInt(cookieValue); + if(typeof pos == "number"){ + child.sizeShare = pos; + } + } + }, this); + }, + + _saveState: function(){ + if(!this.persist){ + return; + } + dojo.forEach(this.getChildren(), function(child, i){ + dojo.cookie(this._getCookieName(i), child.sizeShare, {expires:365}); + }, this); + } +}); + +// These arguments can be specified for the children of a SplitContainer. +// Since any widget can be specified as a SplitContainer child, mix them +// into the base widget class. (This is a hack, but it's effective.) +dojo.extend(dijit._Widget, { + // sizeMin: [deprecated] Integer + // Deprecated. Parameter for children of `dijit.layout.SplitContainer`. + // Minimum size (width or height) of a child of a SplitContainer. + // The value is relative to other children's sizeShare properties. + sizeMin: 10, + + // sizeShare: [deprecated] Integer + // Deprecated. Parameter for children of `dijit.layout.SplitContainer`. + // Size (width or height) of a child of a SplitContainer. + // The value is relative to other children's sizeShare properties. + // For example, if there are two children and each has sizeShare=10, then + // each takes up 50% of the available space. + sizeShare: 10 +}); + +} + +if(!dojo._hasResource["dijit.layout._TabContainerBase"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.layout._TabContainerBase"] = true; +dojo.provide("dijit.layout._TabContainerBase"); + + + + +dojo.declare("dijit.layout._TabContainerBase", + [dijit.layout.StackContainer, dijit._Templated], + { + // summary: + // Abstract base class for TabContainer. Must define _makeController() to instantiate + // and return the widget that displays the tab labels + // description: + // A TabContainer is a container that has multiple panes, but shows only + // one pane at a time. There are a set of tabs corresponding to each pane, + // where each tab has the name (aka title) of the pane, and optionally a close button. + + // tabPosition: String + // Defines where tabs go relative to tab content. + // "top", "bottom", "left-h", "right-h" + tabPosition: "top", + + baseClass: "dijitTabContainer", + + // tabStrip: Boolean + // Defines whether the tablist gets an extra class for layouting, putting a border/shading + // around the set of tabs. + tabStrip: false, + + // nested: Boolean + // If true, use styling for a TabContainer nested inside another TabContainer. + // For tundra etc., makes tabs look like links, and hides the outer + // border since the outer TabContainer already has a border. + nested: false, + + templateString: dojo.cache("dijit.layout", "templates/TabContainer.html", "<div class=\"dijitTabContainer\">\n\t<div class=\"dijitTabListWrapper\" dojoAttachPoint=\"tablistNode\"></div>\n\t<div dojoAttachPoint=\"tablistSpacer\" class=\"dijitTabSpacer ${baseClass}-spacer\"></div>\n\t<div class=\"dijitTabPaneWrapper ${baseClass}-container\" dojoAttachPoint=\"containerNode\"></div>\n</div>\n"), + + postMixInProperties: function(){ + // set class name according to tab position, ex: dijitTabContainerTop + this.baseClass += this.tabPosition.charAt(0).toUpperCase() + this.tabPosition.substr(1).replace(/-.*/, ""); + + this.srcNodeRef && dojo.style(this.srcNodeRef, "visibility", "hidden"); + + this.inherited(arguments); + }, + + postCreate: function(){ + this.inherited(arguments); + + // Create the tab list that will have a tab (a.k.a. tab button) for each tab panel + this.tablist = this._makeController(this.tablistNode); + + if(!this.doLayout){ dojo.addClass(this.domNode, "dijitTabContainerNoLayout"); } + + if(this.nested){ + /* workaround IE's lack of support for "a > b" selectors by + * tagging each node in the template. + */ + dojo.addClass(this.domNode, "dijitTabContainerNested"); + dojo.addClass(this.tablist.containerNode, "dijitTabContainerTabListNested"); + dojo.addClass(this.tablistSpacer, "dijitTabContainerSpacerNested"); + dojo.addClass(this.containerNode, "dijitTabPaneWrapperNested"); + }else{ + dojo.addClass(this.domNode, "tabStrip-" + (this.tabStrip ? "enabled" : "disabled")); + } + }, + + _setupChild: function(/*dijit._Widget*/ tab){ + // Overrides StackContainer._setupChild(). + dojo.addClass(tab.domNode, "dijitTabPane"); + this.inherited(arguments); + }, + + startup: function(){ + if(this._started){ return; } + + // wire up the tablist and its tabs + this.tablist.startup(); + + this.inherited(arguments); + }, + + layout: function(){ + // Overrides StackContainer.layout(). + // Configure the content pane to take up all the space except for where the tabs are + + if(!this._contentBox || typeof(this._contentBox.l) == "undefined"){return;} + + var sc = this.selectedChildWidget; + + if(this.doLayout){ + // position and size the titles and the container node + var titleAlign = this.tabPosition.replace(/-h/, ""); + this.tablist.layoutAlign = titleAlign; + var children = [this.tablist, { + domNode: this.tablistSpacer, + layoutAlign: titleAlign + }, { + domNode: this.containerNode, + layoutAlign: "client" + }]; + dijit.layout.layoutChildren(this.domNode, this._contentBox, children); + + // Compute size to make each of my children. + // children[2] is the margin-box size of this.containerNode, set by layoutChildren() call above + this._containerContentBox = dijit.layout.marginBox2contentBox(this.containerNode, children[2]); + + if(sc && sc.resize){ + sc.resize(this._containerContentBox); + } + }else{ + // just layout the tab controller, so it can position left/right buttons etc. + if(this.tablist.resize){ + this.tablist.resize({w: dojo.contentBox(this.domNode).w}); + } + + // and call resize() on the selected pane just to tell it that it's been made visible + if(sc && sc.resize){ + sc.resize(); + } + } + }, + + destroy: function(){ + if(this.tablist){ + this.tablist.destroy(); + } + this.inherited(arguments); + } +}); + + +} + +if(!dojo._hasResource["dijit.layout.TabController"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.layout.TabController"] = true; +dojo.provide("dijit.layout.TabController"); + + + +// Menu is used for an accessible close button, would be nice to have a lighter-weight solution + + + + + +dojo.declare("dijit.layout.TabController", + dijit.layout.StackController, +{ + // summary: + // Set of tabs (the things with titles and a close button, that you click to show a tab panel). + // Used internally by `dijit.layout.TabContainer`. + // description: + // Lets the user select the currently shown pane in a TabContainer or StackContainer. + // TabController also monitors the TabContainer, and whenever a pane is + // added or deleted updates itself accordingly. + // tags: + // private + + templateString: "<div wairole='tablist' dojoAttachEvent='onkeypress:onkeypress'></div>", + + // tabPosition: String + // Defines where tabs go relative to the content. + // "top", "bottom", "left-h", "right-h" + tabPosition: "top", + + // buttonWidget: String + // The name of the tab widget to create to correspond to each page + buttonWidget: "dijit.layout._TabButton", + + _rectifyRtlTabList: function(){ + // summary: + // For left/right TabContainer when page is RTL mode, rectify the width of all tabs to be equal, otherwise the tab widths are different in IE + + if(0 >= this.tabPosition.indexOf('-h')){ return; } + if(!this.pane2button){ return; } + + var maxWidth = 0; + for(var pane in this.pane2button){ + var ow = this.pane2button[pane].innerDiv.scrollWidth; + maxWidth = Math.max(maxWidth, ow); + } + //unify the length of all the tabs + for(pane in this.pane2button){ + this.pane2button[pane].innerDiv.style.width = maxWidth + 'px'; + } + } +}); + +dojo.declare("dijit.layout._TabButton", + dijit.layout._StackButton, + { + // summary: + // A tab (the thing you click to select a pane). + // description: + // Contains the title of the pane, and optionally a close-button to destroy the pane. + // This is an internal widget and should not be instantiated directly. + // tags: + // private + + // baseClass: String + // The CSS class applied to the domNode. + baseClass: "dijitTab", + + // Apply dijitTabCloseButtonHover when close button is hovered + cssStateNodes: { + closeNode: "dijitTabCloseButton" + }, + + templateString: dojo.cache("dijit.layout", "templates/_TabButton.html", "<div waiRole=\"presentation\" dojoAttachPoint=\"titleNode\" dojoAttachEvent='onclick:onClick'>\n <div waiRole=\"presentation\" class='dijitTabInnerDiv' dojoAttachPoint='innerDiv'>\n <div waiRole=\"presentation\" class='dijitTabContent' dojoAttachPoint='tabContent'>\n \t<div waiRole=\"presentation\" dojoAttachPoint='focusNode'>\n\t\t <img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon\" dojoAttachPoint='iconNode' />\n\t\t <span dojoAttachPoint='containerNode' class='tabLabel'></span>\n\t\t <span class=\"dijitInline dijitTabCloseButton dijitTabCloseIcon\" dojoAttachPoint='closeNode'\n\t\t \t\tdojoAttachEvent='onclick: onClickCloseButton' waiRole=\"presentation\">\n\t\t <span dojoAttachPoint='closeText' class='dijitTabCloseText'>x</span\n\t\t ></span>\n\t\t\t</div>\n </div>\n </div>\n</div>\n"), + + // Override _FormWidget.scrollOnFocus. + // Don't scroll the whole tab container into view when the button is focused. + scrollOnFocus: false, + + postMixInProperties: function(){ + // Override blank iconClass from Button to do tab height adjustment on IE6, + // to make sure that tabs with and w/out close icons are same height + if(!this.iconClass){ + this.iconClass = "dijitTabButtonIcon"; + } + }, + + postCreate: function(){ + this.inherited(arguments); + dojo.setSelectable(this.containerNode, false); + + // If a custom icon class has not been set for the + // tab icon, set its width to one pixel. This ensures + // that the height styling of the tab is maintained, + // as it is based on the height of the icon. + // TODO: I still think we can just set dijitTabButtonIcon to 1px in CSS <Bill> + if(this.iconNode.className == "dijitTabButtonIcon"){ + dojo.style(this.iconNode, "width", "1px"); + } + }, + + startup: function(){ + this.inherited(arguments); + var n = this.domNode; + + // Required to give IE6 a kick, as it initially hides the + // tabs until they are focused on. + setTimeout(function(){ + n.className = n.className; + }, 1); + }, + + _setCloseButtonAttr: function(disp){ + this.closeButton = disp; + dojo.toggleClass(this.innerDiv, "dijitClosable", disp); + this.closeNode.style.display = disp ? "" : "none"; + if(disp){ + var _nlsResources = dojo.i18n.getLocalization("dijit", "common"); + if(this.closeNode){ + dojo.attr(this.closeNode,"title", _nlsResources.itemClose); + } + // add context menu onto title button + var _nlsResources = dojo.i18n.getLocalization("dijit", "common"); + this._closeMenu = new dijit.Menu({ + id: this.id+"_Menu", + dir: this.dir, + lang: this.lang, + targetNodeIds: [this.domNode] + }); + + this._closeMenu.addChild(new dijit.MenuItem({ + label: _nlsResources.itemClose, + dir: this.dir, + lang: this.lang, + onClick: dojo.hitch(this, "onClickCloseButton") + })); + }else{ + if(this._closeMenu){ + this._closeMenu.destroyRecursive(); + delete this._closeMenu; + } + } + }, + _setLabelAttr: function(/*String*/ content){ + // summary: + // Hook for attr('label', ...) to work. + // description: + // takes an HTML string. + // Inherited ToggleButton implementation will Set the label (text) of the button; + // Need to set the alt attribute of icon on tab buttons if no label displayed + this.inherited(arguments); + if(this.showLabel == false && !this.params.title){ + this.iconNode.alt = dojo.trim(this.containerNode.innerText || this.containerNode.textContent || ''); + } + }, + + destroy: function(){ + if(this._closeMenu){ + this._closeMenu.destroyRecursive(); + delete this._closeMenu; + } + this.inherited(arguments); + } +}); + +} + +if(!dojo._hasResource["dijit.layout.ScrollingTabController"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.layout.ScrollingTabController"] = true; +dojo.provide("dijit.layout.ScrollingTabController"); + + + + +dojo.declare("dijit.layout.ScrollingTabController", + dijit.layout.TabController, + { + // summary: + // Set of tabs with left/right arrow keys and a menu to switch between tabs not + // all fitting on a single row. + // Works only for horizontal tabs (either above or below the content, not to the left + // or right). + // tags: + // private + + templateString: dojo.cache("dijit.layout", "templates/ScrollingTabController.html", "<div class=\"dijitTabListContainer-${tabPosition}\" style=\"visibility:hidden\">\n\t<div dojoType=\"dijit.layout._ScrollingTabControllerButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_menuBtn\" iconClass=\"dijitTabStripMenuIcon\"\n\t\t\tdojoAttachPoint=\"_menuBtn\" showLabel=false>▼</div>\n\t<div dojoType=\"dijit.layout._ScrollingTabControllerButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_leftBtn\" iconClass=\"dijitTabStripSlideLeftIcon\"\n\t\t\tdojoAttachPoint=\"_leftBtn\" dojoAttachEvent=\"onClick: doSlideLeft\" showLabel=false>◀</div>\n\t<div dojoType=\"dijit.layout._ScrollingTabControllerButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_rightBtn\" iconClass=\"dijitTabStripSlideRightIcon\"\n\t\t\tdojoAttachPoint=\"_rightBtn\" dojoAttachEvent=\"onClick: doSlideRight\" showLabel=false>▶</div>\n\t<div class='dijitTabListWrapper' dojoAttachPoint='tablistWrapper'>\n\t\t<div wairole='tablist' dojoAttachEvent='onkeypress:onkeypress'\n\t\t\t\tdojoAttachPoint='containerNode' class='nowrapTabStrip'></div>\n\t</div>\n</div>\n"), + + // useMenu:[const] Boolean + // True if a menu should be used to select tabs when they are too + // wide to fit the TabContainer, false otherwise. + useMenu: true, + + // useSlider: [const] Boolean + // True if a slider should be used to select tabs when they are too + // wide to fit the TabContainer, false otherwise. + useSlider: true, + + // tabStripClass: String + // The css class to apply to the tab strip, if it is visible. + tabStripClass: "", + + widgetsInTemplate: true, + + // _minScroll: Number + // The distance in pixels from the edge of the tab strip which, + // if a scroll animation is less than, forces the scroll to + // go all the way to the left/right. + _minScroll: 5, + + attributeMap: dojo.delegate(dijit._Widget.prototype.attributeMap, { + "class": "containerNode" + }), + + postCreate: function(){ + this.inherited(arguments); + var n = this.domNode; + + this.scrollNode = this.tablistWrapper; + this._initButtons(); + + if(!this.tabStripClass){ + this.tabStripClass = "dijitTabContainer" + + this.tabPosition.charAt(0).toUpperCase() + + this.tabPosition.substr(1).replace(/-.*/, "") + + "None"; + dojo.addClass(n, "tabStrip-disabled") + } + + dojo.addClass(this.tablistWrapper, this.tabStripClass); + }, + + onStartup: function(){ + this.inherited(arguments); + + // Do not show the TabController until the related + // StackController has added it's children. This gives + // a less visually jumpy instantiation. + dojo.style(this.domNode, "visibility", "visible"); + this._postStartup = true; + }, + + onAddChild: function(page, insertIndex){ + this.inherited(arguments); + var menuItem; + if(this.useMenu){ + var containerId = this.containerId; + menuItem = new dijit.MenuItem({ + id: page.id + "_stcMi", + label: page.title, + dir: page.dir, + lang: page.lang, + onClick: dojo.hitch(this, function(){ + var container = dijit.byId(containerId); + container.selectChild(page); + }) + }); + this._menuChildren[page.id] = menuItem; + this._menu.addChild(menuItem, insertIndex); + } + + // update the menuItem label when the button label is updated + this.pane2handles[page.id].push( + this.connect(this.pane2button[page.id], "set", function(name, value){ + if(this._postStartup){ + if(name == "label"){ + if(menuItem){ + menuItem.set(name, value); + } + + // The changed label will have changed the width of the + // buttons, so do a resize + if(this._dim){ + this.resize(this._dim); + } + } + } + }) + ); + + // Increment the width of the wrapper when a tab is added + // This makes sure that the buttons never wrap. + // The value 200 is chosen as it should be bigger than most + // Tab button widths. + dojo.style(this.containerNode, "width", + (dojo.style(this.containerNode, "width") + 200) + "px"); + }, + + onRemoveChild: function(page, insertIndex){ + // null out _selectedTab because we are about to delete that dom node + var button = this.pane2button[page.id]; + if(this._selectedTab === button.domNode){ + this._selectedTab = null; + } + + // delete menu entry corresponding to pane that was removed from TabContainer + if(this.useMenu && page && page.id && this._menuChildren[page.id]){ + this._menu.removeChild(this._menuChildren[page.id]); + this._menuChildren[page.id].destroy(); + delete this._menuChildren[page.id]; + } + + this.inherited(arguments); + }, + + _initButtons: function(){ + // summary: + // Creates the buttons used to scroll to view tabs that + // may not be visible if the TabContainer is too narrow. + this._menuChildren = {}; + + // Make a list of the buttons to display when the tab labels become + // wider than the TabContainer, and hide the other buttons. + // Also gets the total width of the displayed buttons. + this._btnWidth = 0; + this._buttons = dojo.query("> .tabStripButton", this.domNode).filter(function(btn){ + if((this.useMenu && btn == this._menuBtn.domNode) || + (this.useSlider && (btn == this._rightBtn.domNode || btn == this._leftBtn.domNode))){ + this._btnWidth += dojo.marginBox(btn).w; + return true; + }else{ + dojo.style(btn, "display", "none"); + return false; + } + }, this); + + if(this.useMenu){ + // Create the menu that is used to select tabs. + this._menu = new dijit.Menu({ + id: this.id + "_menu", + dir: this.dir, + lang: this.lang, + targetNodeIds: [this._menuBtn.domNode], + leftClickToOpen: true, + refocus: false // selecting a menu item sets focus to a TabButton + }); + this._supportingWidgets.push(this._menu); + } + }, + + _getTabsWidth: function(){ + var children = this.getChildren(); + if(children.length){ + var leftTab = children[this.isLeftToRight() ? 0 : children.length - 1].domNode, + rightTab = children[this.isLeftToRight() ? children.length - 1 : 0].domNode; + return rightTab.offsetLeft + dojo.style(rightTab, "width") - leftTab.offsetLeft; + }else{ + return 0; + } + }, + + _enableBtn: function(width){ + // summary: + // Determines if the tabs are wider than the width of the TabContainer, and + // thus that we need to display left/right/menu navigation buttons. + var tabsWidth = this._getTabsWidth(); + width = width || dojo.style(this.scrollNode, "width"); + return tabsWidth > 0 && width < tabsWidth; + }, + + resize: function(dim){ + // summary: + // Hides or displays the buttons used to scroll the tab list and launch the menu + // that selects tabs. + + if(this.domNode.offsetWidth == 0){ + return; + } + + // Save the dimensions to be used when a child is renamed. + this._dim = dim; + + // Set my height to be my natural height (tall enough for one row of tab labels), + // and my content-box width based on margin-box width specified in dim parameter. + // But first reset scrollNode.height in case it was set by layoutChildren() call + // in a previous run of this method. + this.scrollNode.style.height = "auto"; + this._contentBox = dijit.layout.marginBox2contentBox(this.domNode, {h: 0, w: dim.w}); + this._contentBox.h = this.scrollNode.offsetHeight; + dojo.contentBox(this.domNode, this._contentBox); + + // Show/hide the left/right/menu navigation buttons depending on whether or not they + // are needed. + var enable = this._enableBtn(this._contentBox.w); + this._buttons.style("display", enable ? "" : "none"); + + // Position and size the navigation buttons and the tablist + this._leftBtn.layoutAlign = "left"; + this._rightBtn.layoutAlign = "right"; + this._menuBtn.layoutAlign = this.isLeftToRight() ? "right" : "left"; + dijit.layout.layoutChildren(this.domNode, this._contentBox, + [this._menuBtn, this._leftBtn, this._rightBtn, {domNode: this.scrollNode, layoutAlign: "client"}]); + + // set proper scroll so that selected tab is visible + if(this._selectedTab){ + if(this._anim && this._anim.status() == "playing"){ + this._anim.stop(); + } + var w = this.scrollNode, + sl = this._convertToScrollLeft(this._getScrollForSelectedTab()); + w.scrollLeft = sl; + } + + // Enable/disabled left right buttons depending on whether or not user can scroll to left or right + this._setButtonClass(this._getScroll()); + + this._postResize = true; + }, + + _getScroll: function(){ + // summary: + // Returns the current scroll of the tabs where 0 means + // "scrolled all the way to the left" and some positive number, based on # + // of pixels of possible scroll (ex: 1000) means "scrolled all the way to the right" + var sl = (this.isLeftToRight() || dojo.isIE < 8 || (dojo.isIE && dojo.isQuirks) || dojo.isWebKit) ? this.scrollNode.scrollLeft : + dojo.style(this.containerNode, "width") - dojo.style(this.scrollNode, "width") + + (dojo.isIE == 8 ? -1 : 1) * this.scrollNode.scrollLeft; + return sl; + }, + + _convertToScrollLeft: function(val){ + // summary: + // Given a scroll value where 0 means "scrolled all the way to the left" + // and some positive number, based on # of pixels of possible scroll (ex: 1000) + // means "scrolled all the way to the right", return value to set this.scrollNode.scrollLeft + // to achieve that scroll. + // + // This method is to adjust for RTL funniness in various browsers and versions. + if(this.isLeftToRight() || dojo.isIE < 8 || (dojo.isIE && dojo.isQuirks) || dojo.isWebKit){ + return val; + }else{ + var maxScroll = dojo.style(this.containerNode, "width") - dojo.style(this.scrollNode, "width"); + return (dojo.isIE == 8 ? -1 : 1) * (val - maxScroll); + } + }, + + onSelectChild: function(/*dijit._Widget*/ page){ + // summary: + // Smoothly scrolls to a tab when it is selected. + + var tab = this.pane2button[page.id]; + if(!tab || !page){return;} + + // Scroll to the selected tab, except on startup, when scrolling is handled in resize() + var node = tab.domNode; + if(this._postResize && node != this._selectedTab){ + this._selectedTab = node; + + var sl = this._getScroll(); + + if(sl > node.offsetLeft || + sl + dojo.style(this.scrollNode, "width") < + node.offsetLeft + dojo.style(node, "width")){ + this.createSmoothScroll().play(); + } + } + + this.inherited(arguments); + }, + + _getScrollBounds: function(){ + // summary: + // Returns the minimum and maximum scroll setting to show the leftmost and rightmost + // tabs (respectively) + var children = this.getChildren(), + scrollNodeWidth = dojo.style(this.scrollNode, "width"), // about 500px + containerWidth = dojo.style(this.containerNode, "width"), // 50,000px + maxPossibleScroll = containerWidth - scrollNodeWidth, // scrolling until right edge of containerNode visible + tabsWidth = this._getTabsWidth(); + + if(children.length && tabsWidth > scrollNodeWidth){ + // Scrolling should happen + return { + min: this.isLeftToRight() ? 0 : children[children.length-1].domNode.offsetLeft, + max: this.isLeftToRight() ? + (children[children.length-1].domNode.offsetLeft + dojo.style(children[children.length-1].domNode, "width")) - scrollNodeWidth : + maxPossibleScroll + }; + }else{ + // No scrolling needed, all tabs visible, we stay either scrolled to far left or far right (depending on dir) + var onlyScrollPosition = this.isLeftToRight() ? 0 : maxPossibleScroll; + return { + min: onlyScrollPosition, + max: onlyScrollPosition + }; + } + }, + + _getScrollForSelectedTab: function(){ + // summary: + // Returns the scroll value setting so that the selected tab + // will appear in the center + var w = this.scrollNode, + n = this._selectedTab, + scrollNodeWidth = dojo.style(this.scrollNode, "width"), + scrollBounds = this._getScrollBounds(); + + // TODO: scroll minimal amount (to either right or left) so that + // selected tab is fully visible, and just return if it's already visible? + var pos = (n.offsetLeft + dojo.style(n, "width")/2) - scrollNodeWidth/2; + pos = Math.min(Math.max(pos, scrollBounds.min), scrollBounds.max); + + // TODO: + // If scrolling close to the left side or right side, scroll + // all the way to the left or right. See this._minScroll. + // (But need to make sure that doesn't scroll the tab out of view...) + return pos; + }, + + createSmoothScroll : function(x){ + // summary: + // Creates a dojo._Animation object that smoothly scrolls the tab list + // either to a fixed horizontal pixel value, or to the selected tab. + // description: + // If an number argument is passed to the function, that horizontal + // pixel position is scrolled to. Otherwise the currently selected + // tab is scrolled to. + // x: Integer? + // An optional pixel value to scroll to, indicating distance from left. + + // Calculate position to scroll to + if(arguments.length > 0){ + // position specified by caller, just make sure it's within bounds + var scrollBounds = this._getScrollBounds(); + x = Math.min(Math.max(x, scrollBounds.min), scrollBounds.max); + }else{ + // scroll to center the current tab + x = this._getScrollForSelectedTab(); + } + + if(this._anim && this._anim.status() == "playing"){ + this._anim.stop(); + } + + var self = this, + w = this.scrollNode, + anim = new dojo._Animation({ + beforeBegin: function(){ + if(this.curve){ delete this.curve; } + var oldS = w.scrollLeft, + newS = self._convertToScrollLeft(x); + anim.curve = new dojo._Line(oldS, newS); + }, + onAnimate: function(val){ + w.scrollLeft = val; + } + }); + this._anim = anim; + + // Disable/enable left/right buttons according to new scroll position + this._setButtonClass(x); + + return anim; // dojo._Animation + }, + + _getBtnNode: function(e){ + // summary: + // Gets a button DOM node from a mouse click event. + // e: + // The mouse click event. + var n = e.target; + while(n && !dojo.hasClass(n, "tabStripButton")){ + n = n.parentNode; + } + return n; + }, + + doSlideRight: function(e){ + // summary: + // Scrolls the menu to the right. + // e: + // The mouse click event. + this.doSlide(1, this._getBtnNode(e)); + }, + + doSlideLeft: function(e){ + // summary: + // Scrolls the menu to the left. + // e: + // The mouse click event. + this.doSlide(-1,this._getBtnNode(e)); + }, + + doSlide: function(direction, node){ + // summary: + // Scrolls the tab list to the left or right by 75% of the widget width. + // direction: + // If the direction is 1, the widget scrolls to the right, if it is + // -1, it scrolls to the left. + + if(node && dojo.hasClass(node, "dijitTabDisabled")){return;} + + var sWidth = dojo.style(this.scrollNode, "width"); + var d = (sWidth * 0.75) * direction; + + var to = this._getScroll() + d; + + this._setButtonClass(to); + + this.createSmoothScroll(to).play(); + }, + + _setButtonClass: function(scroll){ + // summary: + // Disables the left scroll button if the tabs are scrolled all the way to the left, + // or the right scroll button in the opposite case. + // scroll: Integer + // amount of horizontal scroll + + var scrollBounds = this._getScrollBounds(); + this._leftBtn.set("disabled", scroll <= scrollBounds.min); + this._rightBtn.set("disabled", scroll >= scrollBounds.max); + } +}); + +dojo.declare("dijit.layout._ScrollingTabControllerButton", + dijit.form.Button, + { + baseClass: "dijitTab tabStripButton", + + templateString: dojo.cache("dijit.layout", "templates/_ScrollingTabControllerButton.html", "<div dojoAttachEvent=\"onclick:_onButtonClick\">\n\t<div waiRole=\"presentation\" class=\"dijitTabInnerDiv\" dojoattachpoint=\"innerDiv,focusNode\">\n\t\t<div waiRole=\"presentation\" class=\"dijitTabContent dijitButtonContents\" dojoattachpoint=\"tabContent\">\n\t\t\t<img waiRole=\"presentation\" alt=\"\" src=\"${_blankGif}\" class=\"dijitTabStripIcon\" dojoAttachPoint=\"iconNode\"/>\n\t\t\t<span dojoAttachPoint=\"containerNode,titleNode\" class=\"dijitButtonText\"></span>\n\t\t</div>\n\t</div>\n</div>\n"), + + // Override inherited tabIndex: 0 from dijit.form.Button, because user shouldn't be + // able to tab to the left/right/menu buttons + tabIndex: "-1" + } +); + +} + +if(!dojo._hasResource["dijit.layout.TabContainer"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.layout.TabContainer"] = true; +dojo.provide("dijit.layout.TabContainer"); + + + + + +dojo.declare("dijit.layout.TabContainer", + dijit.layout._TabContainerBase, + { + // summary: + // A Container with tabs to select each child (only one of which is displayed at a time). + // description: + // A TabContainer is a container that has multiple panes, but shows only + // one pane at a time. There are a set of tabs corresponding to each pane, + // where each tab has the name (aka title) of the pane, and optionally a close button. + + // useMenu: [const] Boolean + // True if a menu should be used to select tabs when they are too + // wide to fit the TabContainer, false otherwise. + useMenu: true, + + // useSlider: [const] Boolean + // True if a slider should be used to select tabs when they are too + // wide to fit the TabContainer, false otherwise. + useSlider: true, + + // controllerWidget: String + // An optional parameter to override the widget used to display the tab labels + controllerWidget: "", + + _makeController: function(/*DomNode*/ srcNode){ + // summary: + // Instantiate tablist controller widget and return reference to it. + // Callback from _TabContainerBase.postCreate(). + // tags: + // protected extension + + var cls = this.baseClass + "-tabs" + (this.doLayout ? "" : " dijitTabNoLayout"), + TabController = dojo.getObject(this.controllerWidget); + + return new TabController({ + id: this.id + "_tablist", + dir: this.dir, + lang: this.lang, + tabPosition: this.tabPosition, + doLayout: this.doLayout, + containerId: this.id, + "class": cls, + nested: this.nested, + useMenu: this.useMenu, + useSlider: this.useSlider, + tabStripClass: this.tabStrip ? this.baseClass + (this.tabStrip ? "":"No") + "Strip": null + }, srcNode); + }, + + postMixInProperties: function(){ + this.inherited(arguments); + + // Scrolling controller only works for horizontal non-nested tabs + if(!this.controllerWidget){ + this.controllerWidget = (this.tabPosition == "top" || this.tabPosition == "bottom") && !this.nested ? + "dijit.layout.ScrollingTabController" : "dijit.layout.TabController"; + } + } +}); + + +} + +if(!dojo._hasResource["dijit.dijit-all"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.dijit-all"] = true; +console.warn("dijit-all may include much more code than your application actually requires. We strongly recommend that you investigate a custom build or the web build tool"); +dojo.provide("dijit.dijit-all"); + +/*===== +dijit["dijit-all"] = { + // summary: + // A rollup that includes every dijit. You probably don't need this. +}; +=====*/ + + + + + + + + + + +// Editor + + + + + + + + + + + + + + + + + + + +// Form widgets + + +// Button widgets + + + + + + + +// TextBox widgets + + + + + + + +// Select widgets + + + + + +// Slider widgets + + + + + + + +// Textarea widgets + + + +// Layout widgets + + + + //deprecated + + //deprecated + + + +} + + +dojo.i18n._preloadLocalizations("dijit.nls.dijit-all", ["ROOT","ar","ca","cs","da","de","de-de","el","en","en-gb","en-us","es","es-es","fi","fi-fi","fr","fr-fr","he","he-il","hu","it","it-it","ja","ja-jp","ko","ko-kr","nb","nl","nl-nl","pl","pt","pt-br","pt-pt","ru","sk","sl","sv","th","tr","xx","zh","zh-cn","zh-tw"]); diff --git a/lib/dijit/dijit.js b/lib/dijit/dijit.js new file mode 100644 index 000000000..77b70ab93 --- /dev/null +++ b/lib/dijit/dijit.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + +/* + This is an optimized version of Dojo, built for deployment and not for + development. To get sources and documentation, please visit: + + http://dojotoolkit.org +*/ + +if(!dojo._hasResource["dojo.window"]){dojo._hasResource["dojo.window"]=true;dojo.provide("dojo.window");dojo.window.getBox=function(){var _1=(dojo.doc.compatMode=="BackCompat")?dojo.body():dojo.doc.documentElement;var _2=dojo._docScroll();return {w:_1.clientWidth,h:_1.clientHeight,l:_2.x,t:_2.y};};dojo.window.get=function(_3){if(dojo.isIE&&window!==document.parentWindow){_3.parentWindow.execScript("document._parentWindow = window;","Javascript");var _4=_3._parentWindow;_3._parentWindow=null;return _4;}return _3.parentWindow||_3.defaultView;};dojo.window.scrollIntoView=function(_5,_6){try{_5=dojo.byId(_5);var _7=_5.ownerDocument||dojo.doc,_8=_7.body||dojo.body(),_9=_7.documentElement||_8.parentNode,_a=dojo.isIE,_b=dojo.isWebKit;if((!(dojo.isMoz||_a||_b||dojo.isOpera)||_5==_8||_5==_9)&&(typeof _5.scrollIntoView!="undefined")){_5.scrollIntoView(false);return;}var _c=_7.compatMode=="BackCompat",_d=_c?_8:_9,_e=_b?_8:_d,_f=_d.clientWidth,_10=_d.clientHeight,rtl=!dojo._isBodyLtr(),_11=_6||dojo.position(_5),el=_5.parentNode,_12=function(el){return ((_a<=6||(_a&&_c))?false:(dojo.style(el,"position").toLowerCase()=="fixed"));};if(_12(_5)){return;}while(el){if(el==_8){el=_e;}var _13=dojo.position(el),_14=_12(el);if(el==_e){_13.w=_f;_13.h=_10;if(_e==_9&&_a&&rtl){_13.x+=_e.offsetWidth-_13.w;}if(_13.x<0||!_a){_13.x=0;}if(_13.y<0||!_a){_13.y=0;}}else{var pb=dojo._getPadBorderExtents(el);_13.w-=pb.w;_13.h-=pb.h;_13.x+=pb.l;_13.y+=pb.t;}if(el!=_e){var _15=el.clientWidth,_16=_13.w-_15;if(_15>0&&_16>0){_13.w=_15;if(_a&&rtl){_13.x+=_16;}}_15=el.clientHeight;_16=_13.h-_15;if(_15>0&&_16>0){_13.h=_15;}}if(_14){if(_13.y<0){_13.h+=_13.y;_13.y=0;}if(_13.x<0){_13.w+=_13.x;_13.x=0;}if(_13.y+_13.h>_10){_13.h=_10-_13.y;}if(_13.x+_13.w>_f){_13.w=_f-_13.x;}}var l=_11.x-_13.x,t=_11.y-Math.max(_13.y,0),r=l+_11.w-_13.w,bot=t+_11.h-_13.h;if(r*l>0){var s=Math[l<0?"max":"min"](l,r);_11.x+=el.scrollLeft;el.scrollLeft+=(_a>=8&&!_c&&rtl)?-s:s;_11.x-=el.scrollLeft;}if(bot*t>0){_11.y+=el.scrollTop;el.scrollTop+=Math[t<0?"max":"min"](t,bot);_11.y-=el.scrollTop;}el=(el!=_e)&&!_14&&el.parentNode;}}catch(error){console.error("scrollIntoView: "+error);_5.scrollIntoView(false);}};}if(!dojo._hasResource["dijit._base.manager"]){dojo._hasResource["dijit._base.manager"]=true;dojo.provide("dijit._base.manager");dojo.declare("dijit.WidgetSet",null,{constructor:function(){this._hash={};this.length=0;},add:function(_17){if(this._hash[_17.id]){throw new Error("Tried to register widget with id=="+_17.id+" but that id is already registered");}this._hash[_17.id]=_17;this.length++;},remove:function(id){if(this._hash[id]){delete this._hash[id];this.length--;}},forEach:function(_18,_19){_19=_19||dojo.global;var i=0,id;for(id in this._hash){_18.call(_19,this._hash[id],i++,this._hash);}return this;},filter:function(_1a,_1b){_1b=_1b||dojo.global;var res=new dijit.WidgetSet(),i=0,id;for(id in this._hash){var w=this._hash[id];if(_1a.call(_1b,w,i++,this._hash)){res.add(w);}}return res;},byId:function(id){return this._hash[id];},byClass:function(cls){var res=new dijit.WidgetSet(),id,_1c;for(id in this._hash){_1c=this._hash[id];if(_1c.declaredClass==cls){res.add(_1c);}}return res;},toArray:function(){var ar=[];for(var id in this._hash){ar.push(this._hash[id]);}return ar;},map:function(_1d,_1e){return dojo.map(this.toArray(),_1d,_1e);},every:function(_1f,_20){_20=_20||dojo.global;var x=0,i;for(i in this._hash){if(!_1f.call(_20,this._hash[i],x++,this._hash)){return false;}}return true;},some:function(_21,_22){_22=_22||dojo.global;var x=0,i;for(i in this._hash){if(_21.call(_22,this._hash[i],x++,this._hash)){return true;}}return false;}});(function(){dijit.registry=new dijit.WidgetSet();var _23=dijit.registry._hash,_24=dojo.attr,_25=dojo.hasAttr,_26=dojo.style;dijit.byId=function(id){return typeof id=="string"?_23[id]:id;};var _27={};dijit.getUniqueId=function(_28){var id;do{id=_28+"_"+(_28 in _27?++_27[_28]:_27[_28]=0);}while(_23[id]);return dijit._scopeName=="dijit"?id:dijit._scopeName+"_"+id;};dijit.findWidgets=function(_29){var _2a=[];function _2b(_2c){for(var _2d=_2c.firstChild;_2d;_2d=_2d.nextSibling){if(_2d.nodeType==1){var _2e=_2d.getAttribute("widgetId");if(_2e){_2a.push(_23[_2e]);}else{_2b(_2d);}}}};_2b(_29);return _2a;};dijit._destroyAll=function(){dijit._curFocus=null;dijit._prevFocus=null;dijit._activeStack=[];dojo.forEach(dijit.findWidgets(dojo.body()),function(_2f){if(!_2f._destroyed){if(_2f.destroyRecursive){_2f.destroyRecursive();}else{if(_2f.destroy){_2f.destroy();}}}});};if(dojo.isIE){dojo.addOnWindowUnload(function(){dijit._destroyAll();});}dijit.byNode=function(_30){return _23[_30.getAttribute("widgetId")];};dijit.getEnclosingWidget=function(_31){while(_31){var id=_31.getAttribute&&_31.getAttribute("widgetId");if(id){return _23[id];}_31=_31.parentNode;}return null;};var _32=(dijit._isElementShown=function(_33){var s=_26(_33);return (s.visibility!="hidden")&&(s.visibility!="collapsed")&&(s.display!="none")&&(_24(_33,"type")!="hidden");});dijit.hasDefaultTabStop=function(_34){switch(_34.nodeName.toLowerCase()){case "a":return _25(_34,"href");case "area":case "button":case "input":case "object":case "select":case "textarea":return true;case "iframe":if(dojo.isMoz){try{return _34.contentDocument.designMode=="on";}catch(err){return false;}}else{if(dojo.isWebKit){var doc=_34.contentDocument,_35=doc&&doc.body;return _35&&_35.contentEditable=="true";}else{try{doc=_34.contentWindow.document;_35=doc&&doc.body;return _35&&_35.firstChild&&_35.firstChild.contentEditable=="true";}catch(e){return false;}}}default:return _34.contentEditable=="true";}};var _36=(dijit.isTabNavigable=function(_37){if(_24(_37,"disabled")){return false;}else{if(_25(_37,"tabIndex")){return _24(_37,"tabIndex")>=0;}else{return dijit.hasDefaultTabStop(_37);}}});dijit._getTabNavigable=function(_38){var _39,_3a,_3b,_3c,_3d,_3e;var _3f=function(_40){dojo.query("> *",_40).forEach(function(_41){if((dojo.isIE&&_41.scopeName!=="HTML")||!_32(_41)){return;}if(_36(_41)){var _42=_24(_41,"tabIndex");if(!_25(_41,"tabIndex")||_42==0){if(!_39){_39=_41;}_3a=_41;}else{if(_42>0){if(!_3b||_42<_3c){_3c=_42;_3b=_41;}if(!_3d||_42>=_3e){_3e=_42;_3d=_41;}}}}if(_41.nodeName.toUpperCase()!="SELECT"){_3f(_41);}});};if(_32(_38)){_3f(_38);}return {first:_39,last:_3a,lowest:_3b,highest:_3d};};dijit.getFirstInTabbingOrder=function(_43){var _44=dijit._getTabNavigable(dojo.byId(_43));return _44.lowest?_44.lowest:_44.first;};dijit.getLastInTabbingOrder=function(_45){var _46=dijit._getTabNavigable(dojo.byId(_45));return _46.last?_46.last:_46.highest;};dijit.defaultDuration=dojo.config["defaultDuration"]||200;})();}if(!dojo._hasResource["dijit._base.focus"]){dojo._hasResource["dijit._base.focus"]=true;dojo.provide("dijit._base.focus");dojo.mixin(dijit,{_curFocus:null,_prevFocus:null,isCollapsed:function(){return dijit.getBookmark().isCollapsed;},getBookmark:function(){var bm,rg,tg,sel=dojo.doc.selection,cf=dijit._curFocus;if(dojo.global.getSelection){sel=dojo.global.getSelection();if(sel){if(sel.isCollapsed){tg=cf?cf.tagName:"";if(tg){tg=tg.toLowerCase();if(tg=="textarea"||(tg=="input"&&(!cf.type||cf.type.toLowerCase()=="text"))){sel={start:cf.selectionStart,end:cf.selectionEnd,node:cf,pRange:true};return {isCollapsed:(sel.end<=sel.start),mark:sel};}}bm={isCollapsed:true};}else{rg=sel.getRangeAt(0);bm={isCollapsed:false,mark:rg.cloneRange()};}}}else{if(sel){tg=cf?cf.tagName:"";tg=tg.toLowerCase();if(cf&&tg&&(tg=="button"||tg=="textarea"||tg=="input")){if(sel.type&&sel.type.toLowerCase()=="none"){return {isCollapsed:true,mark:null};}else{rg=sel.createRange();return {isCollapsed:rg.text&&rg.text.length?false:true,mark:{range:rg,pRange:true}};}}bm={};try{rg=sel.createRange();bm.isCollapsed=!(sel.type=="Text"?rg.htmlText.length:rg.length);}catch(e){bm.isCollapsed=true;return bm;}if(sel.type.toUpperCase()=="CONTROL"){if(rg.length){bm.mark=[];var i=0,len=rg.length;while(i<len){bm.mark.push(rg.item(i++));}}else{bm.isCollapsed=true;bm.mark=null;}}else{bm.mark=rg.getBookmark();}}else{console.warn("No idea how to store the current selection for this browser!");}}return bm;},moveToBookmark:function(_47){var _48=dojo.doc,_49=_47.mark;if(_49){if(dojo.global.getSelection){var sel=dojo.global.getSelection();if(sel&&sel.removeAllRanges){if(_49.pRange){var r=_49;var n=r.node;n.selectionStart=r.start;n.selectionEnd=r.end;}else{sel.removeAllRanges();sel.addRange(_49);}}else{console.warn("No idea how to restore selection for this browser!");}}else{if(_48.selection&&_49){var rg;if(_49.pRange){rg=_49.range;}else{if(dojo.isArray(_49)){rg=_48.body.createControlRange();dojo.forEach(_49,function(n){rg.addElement(n);});}else{rg=_48.body.createTextRange();rg.moveToBookmark(_49);}}rg.select();}}}},getFocus:function(_4a,_4b){var _4c=!dijit._curFocus||(_4a&&dojo.isDescendant(dijit._curFocus,_4a.domNode))?dijit._prevFocus:dijit._curFocus;return {node:_4c,bookmark:(_4c==dijit._curFocus)&&dojo.withGlobal(_4b||dojo.global,dijit.getBookmark),openedForWindow:_4b};},focus:function(_4d){if(!_4d){return;}var _4e="node" in _4d?_4d.node:_4d,_4f=_4d.bookmark,_50=_4d.openedForWindow,_51=_4f?_4f.isCollapsed:false;if(_4e){var _52=(_4e.tagName.toLowerCase()=="iframe")?_4e.contentWindow:_4e;if(_52&&_52.focus){try{_52.focus();}catch(e){}}dijit._onFocusNode(_4e);}if(_4f&&dojo.withGlobal(_50||dojo.global,dijit.isCollapsed)&&!_51){if(_50){_50.focus();}try{dojo.withGlobal(_50||dojo.global,dijit.moveToBookmark,null,[_4f]);}catch(e2){}}},_activeStack:[],registerIframe:function(_53){return dijit.registerWin(_53.contentWindow,_53);},unregisterIframe:function(_54){dijit.unregisterWin(_54);},registerWin:function(_55,_56){var _57=function(evt){dijit._justMouseDowned=true;setTimeout(function(){dijit._justMouseDowned=false;},0);if(dojo.isIE&&evt&&evt.srcElement&&evt.srcElement.parentNode==null){return;}dijit._onTouchNode(_56||evt.target||evt.srcElement,"mouse");};var doc=dojo.isIE?_55.document.documentElement:_55.document;if(doc){if(dojo.isIE){doc.attachEvent("onmousedown",_57);var _58=function(evt){if(evt.srcElement.tagName.toLowerCase()!="#document"&&dijit.isTabNavigable(evt.srcElement)){dijit._onFocusNode(_56||evt.srcElement);}else{dijit._onTouchNode(_56||evt.srcElement);}};doc.attachEvent("onactivate",_58);var _59=function(evt){dijit._onBlurNode(_56||evt.srcElement);};doc.attachEvent("ondeactivate",_59);return function(){doc.detachEvent("onmousedown",_57);doc.detachEvent("onactivate",_58);doc.detachEvent("ondeactivate",_59);doc=null;};}else{doc.addEventListener("mousedown",_57,true);var _5a=function(evt){dijit._onFocusNode(_56||evt.target);};doc.addEventListener("focus",_5a,true);var _5b=function(evt){dijit._onBlurNode(_56||evt.target);};doc.addEventListener("blur",_5b,true);return function(){doc.removeEventListener("mousedown",_57,true);doc.removeEventListener("focus",_5a,true);doc.removeEventListener("blur",_5b,true);doc=null;};}}},unregisterWin:function(_5c){_5c&&_5c();},_onBlurNode:function(_5d){dijit._prevFocus=dijit._curFocus;dijit._curFocus=null;if(dijit._justMouseDowned){return;}if(dijit._clearActiveWidgetsTimer){clearTimeout(dijit._clearActiveWidgetsTimer);}dijit._clearActiveWidgetsTimer=setTimeout(function(){delete dijit._clearActiveWidgetsTimer;dijit._setStack([]);dijit._prevFocus=null;},100);},_onTouchNode:function(_5e,by){if(dijit._clearActiveWidgetsTimer){clearTimeout(dijit._clearActiveWidgetsTimer);delete dijit._clearActiveWidgetsTimer;}var _5f=[];try{while(_5e){var _60=dojo.attr(_5e,"dijitPopupParent");if(_60){_5e=dijit.byId(_60).domNode;}else{if(_5e.tagName&&_5e.tagName.toLowerCase()=="body"){if(_5e===dojo.body()){break;}_5e=dojo.window.get(_5e.ownerDocument).frameElement;}else{var id=_5e.getAttribute&&_5e.getAttribute("widgetId"),_61=id&&dijit.byId(id);if(_61&&!(by=="mouse"&&_61.get("disabled"))){_5f.unshift(id);}_5e=_5e.parentNode;}}}}catch(e){}dijit._setStack(_5f,by);},_onFocusNode:function(_62){if(!_62){return;}if(_62.nodeType==9){return;}dijit._onTouchNode(_62);if(_62==dijit._curFocus){return;}if(dijit._curFocus){dijit._prevFocus=dijit._curFocus;}dijit._curFocus=_62;dojo.publish("focusNode",[_62]);},_setStack:function(_63,by){var _64=dijit._activeStack;dijit._activeStack=_63;for(var _65=0;_65<Math.min(_64.length,_63.length);_65++){if(_64[_65]!=_63[_65]){break;}}var _66;for(var i=_64.length-1;i>=_65;i--){_66=dijit.byId(_64[i]);if(_66){_66._focused=false;_66._hasBeenBlurred=true;if(_66._onBlur){_66._onBlur(by);}dojo.publish("widgetBlur",[_66,by]);}}for(i=_65;i<_63.length;i++){_66=dijit.byId(_63[i]);if(_66){_66._focused=true;if(_66._onFocus){_66._onFocus(by);}dojo.publish("widgetFocus",[_66,by]);}}}});dojo.addOnLoad(function(){var _67=dijit.registerWin(window);if(dojo.isIE){dojo.addOnWindowUnload(function(){dijit.unregisterWin(_67);_67=null;});}});}if(!dojo._hasResource["dojo.AdapterRegistry"]){dojo._hasResource["dojo.AdapterRegistry"]=true;dojo.provide("dojo.AdapterRegistry");dojo.AdapterRegistry=function(_68){this.pairs=[];this.returnWrappers=_68||false;};dojo.extend(dojo.AdapterRegistry,{register:function(_69,_6a,_6b,_6c,_6d){this.pairs[((_6d)?"unshift":"push")]([_69,_6a,_6b,_6c]);},match:function(){for(var i=0;i<this.pairs.length;i++){var _6e=this.pairs[i];if(_6e[1].apply(this,arguments)){if((_6e[3])||(this.returnWrappers)){return _6e[2];}else{return _6e[2].apply(this,arguments);}}}throw new Error("No match found");},unregister:function(_6f){for(var i=0;i<this.pairs.length;i++){var _70=this.pairs[i];if(_70[0]==_6f){this.pairs.splice(i,1);return true;}}return false;}});}if(!dojo._hasResource["dijit._base.place"]){dojo._hasResource["dijit._base.place"]=true;dojo.provide("dijit._base.place");dijit.getViewport=function(){return dojo.window.getBox();};dijit.placeOnScreen=function(_71,pos,_72,_73){var _74=dojo.map(_72,function(_75){var c={corner:_75,pos:{x:pos.x,y:pos.y}};if(_73){c.pos.x+=_75.charAt(1)=="L"?_73.x:-_73.x;c.pos.y+=_75.charAt(0)=="T"?_73.y:-_73.y;}return c;});return dijit._place(_71,_74);};dijit._place=function(_76,_77,_78){var _79=dojo.window.getBox();if(!_76.parentNode||String(_76.parentNode.tagName).toLowerCase()!="body"){dojo.body().appendChild(_76);}var _7a=null;dojo.some(_77,function(_7b){var _7c=_7b.corner;var pos=_7b.pos;if(_78){_78(_76,_7b.aroundCorner,_7c);}var _7d=_76.style;var _7e=_7d.display;var _7f=_7d.visibility;_7d.visibility="hidden";_7d.display="";var mb=dojo.marginBox(_76);_7d.display=_7e;_7d.visibility=_7f;var _80=Math.max(_79.l,_7c.charAt(1)=="L"?pos.x:(pos.x-mb.w)),_81=Math.max(_79.t,_7c.charAt(0)=="T"?pos.y:(pos.y-mb.h)),_82=Math.min(_79.l+_79.w,_7c.charAt(1)=="L"?(_80+mb.w):pos.x),_83=Math.min(_79.t+_79.h,_7c.charAt(0)=="T"?(_81+mb.h):pos.y),_84=_82-_80,_85=_83-_81,_86=(mb.w-_84)+(mb.h-_85);if(_7a==null||_86<_7a.overflow){_7a={corner:_7c,aroundCorner:_7b.aroundCorner,x:_80,y:_81,w:_84,h:_85,overflow:_86};}return !_86;});_76.style.left=_7a.x+"px";_76.style.top=_7a.y+"px";if(_7a.overflow&&_78){_78(_76,_7a.aroundCorner,_7a.corner);}return _7a;};dijit.placeOnScreenAroundNode=function(_87,_88,_89,_8a){_88=dojo.byId(_88);var _8b=_88.style.display;_88.style.display="";var _8c=dojo.position(_88,true);_88.style.display=_8b;return dijit._placeOnScreenAroundRect(_87,_8c.x,_8c.y,_8c.w,_8c.h,_89,_8a);};dijit.placeOnScreenAroundRectangle=function(_8d,_8e,_8f,_90){return dijit._placeOnScreenAroundRect(_8d,_8e.x,_8e.y,_8e.width,_8e.height,_8f,_90);};dijit._placeOnScreenAroundRect=function(_91,x,y,_92,_93,_94,_95){var _96=[];for(var _97 in _94){_96.push({aroundCorner:_97,corner:_94[_97],pos:{x:x+(_97.charAt(1)=="L"?0:_92),y:y+(_97.charAt(0)=="T"?0:_93)}});}return dijit._place(_91,_96,_95);};dijit.placementRegistry=new dojo.AdapterRegistry();dijit.placementRegistry.register("node",function(n,x){return typeof x=="object"&&typeof x.offsetWidth!="undefined"&&typeof x.offsetHeight!="undefined";},dijit.placeOnScreenAroundNode);dijit.placementRegistry.register("rect",function(n,x){return typeof x=="object"&&"x" in x&&"y" in x&&"width" in x&&"height" in x;},dijit.placeOnScreenAroundRectangle);dijit.placeOnScreenAroundElement=function(_98,_99,_9a,_9b){return dijit.placementRegistry.match.apply(dijit.placementRegistry,arguments);};dijit.getPopupAroundAlignment=function(_9c,_9d){var _9e={};dojo.forEach(_9c,function(pos){switch(pos){case "after":_9e[_9d?"BR":"BL"]=_9d?"BL":"BR";break;case "before":_9e[_9d?"BL":"BR"]=_9d?"BR":"BL";break;case "below":_9e[_9d?"BL":"BR"]=_9d?"TL":"TR";_9e[_9d?"BR":"BL"]=_9d?"TR":"TL";break;case "above":default:_9e[_9d?"TL":"TR"]=_9d?"BL":"BR";_9e[_9d?"TR":"TL"]=_9d?"BR":"BL";break;}});return _9e;};}if(!dojo._hasResource["dijit._base.window"]){dojo._hasResource["dijit._base.window"]=true;dojo.provide("dijit._base.window");dijit.getDocumentWindow=function(doc){return dojo.window.get(doc);};}if(!dojo._hasResource["dijit._base.popup"]){dojo._hasResource["dijit._base.popup"]=true;dojo.provide("dijit._base.popup");dijit.popup={_stack:[],_beginZIndex:1000,_idGen:1,moveOffScreen:function(_9f){var _a0=_9f.parentNode;if(!_a0||!dojo.hasClass(_a0,"dijitPopup")){_a0=dojo.create("div",{"class":"dijitPopup",style:{visibility:"hidden",top:"-9999px"}},dojo.body());dijit.setWaiRole(_a0,"presentation");_a0.appendChild(_9f);}var s=_9f.style;s.display="";s.visibility="";s.position="";s.top="0px";dojo.style(_a0,{visibility:"hidden",top:"-9999px"});},getTopPopup:function(){var _a1=this._stack;for(var pi=_a1.length-1;pi>0&&_a1[pi].parent===_a1[pi-1].widget;pi--){}return _a1[pi];},open:function(_a2){var _a3=this._stack,_a4=_a2.popup,_a5=_a2.orient||((_a2.parent?_a2.parent.isLeftToRight():dojo._isBodyLtr())?{"BL":"TL","BR":"TR","TL":"BL","TR":"BR"}:{"BR":"TR","BL":"TL","TR":"BR","TL":"BL"}),_a6=_a2.around,id=(_a2.around&&_a2.around.id)?(_a2.around.id+"_dropdown"):("popup_"+this._idGen++);var _a7=_a4.domNode.parentNode;if(!_a7||!dojo.hasClass(_a7,"dijitPopup")){this.moveOffScreen(_a4.domNode);_a7=_a4.domNode.parentNode;}dojo.attr(_a7,{id:id,style:{zIndex:this._beginZIndex+_a3.length},"class":"dijitPopup "+(_a4.baseClass||_a4["class"]||"").split(" ")[0]+"Popup",dijitPopupParent:_a2.parent?_a2.parent.id:""});if(dojo.isIE||dojo.isMoz){var _a8=_a7.childNodes[1];if(!_a8){_a8=new dijit.BackgroundIframe(_a7);}}var _a9=_a6?dijit.placeOnScreenAroundElement(_a7,_a6,_a5,_a4.orient?dojo.hitch(_a4,"orient"):null):dijit.placeOnScreen(_a7,_a2,_a5=="R"?["TR","BR","TL","BL"]:["TL","BL","TR","BR"],_a2.padding);_a7.style.visibility="visible";_a4.domNode.style.visibility="visible";var _aa=[];_aa.push(dojo.connect(_a7,"onkeypress",this,function(evt){if(evt.charOrCode==dojo.keys.ESCAPE&&_a2.onCancel){dojo.stopEvent(evt);_a2.onCancel();}else{if(evt.charOrCode===dojo.keys.TAB){dojo.stopEvent(evt);var _ab=this.getTopPopup();if(_ab&&_ab.onCancel){_ab.onCancel();}}}}));if(_a4.onCancel){_aa.push(dojo.connect(_a4,"onCancel",_a2.onCancel));}_aa.push(dojo.connect(_a4,_a4.onExecute?"onExecute":"onChange",this,function(){var _ac=this.getTopPopup();if(_ac&&_ac.onExecute){_ac.onExecute();}}));_a3.push({wrapper:_a7,iframe:_a8,widget:_a4,parent:_a2.parent,onExecute:_a2.onExecute,onCancel:_a2.onCancel,onClose:_a2.onClose,handlers:_aa});if(_a4.onOpen){_a4.onOpen(_a9);}return _a9;},close:function(_ad){var _ae=this._stack;while(dojo.some(_ae,function(_af){return _af.widget==_ad;})){var top=_ae.pop(),_b0=top.wrapper,_b1=top.iframe,_b2=top.widget,_b3=top.onClose;if(_b2.onClose){_b2.onClose();}dojo.forEach(top.handlers,dojo.disconnect);if(_b2&&_b2.domNode){this.moveOffScreen(_b2.domNode);}else{dojo.destroy(_b0);}if(_b3){_b3();}}}};dijit._frames=new function(){var _b4=[];this.pop=function(){var _b5;if(_b4.length){_b5=_b4.pop();_b5.style.display="";}else{if(dojo.isIE){var _b6=dojo.config["dojoBlankHtmlUrl"]||(dojo.moduleUrl("dojo","resources/blank.html")+"")||"javascript:\"\"";var _b7="<iframe src='"+_b6+"'"+" style='position: absolute; left: 0px; top: 0px;"+"z-index: -1; filter:Alpha(Opacity=\"0\");'>";_b5=dojo.doc.createElement(_b7);}else{_b5=dojo.create("iframe");_b5.src="javascript:\"\"";_b5.className="dijitBackgroundIframe";dojo.style(_b5,"opacity",0.1);}_b5.tabIndex=-1;dijit.setWaiRole(_b5,"presentation");}return _b5;};this.push=function(_b8){_b8.style.display="none";_b4.push(_b8);};}();dijit.BackgroundIframe=function(_b9){if(!_b9.id){throw new Error("no id");}if(dojo.isIE||dojo.isMoz){var _ba=dijit._frames.pop();_b9.appendChild(_ba);if(dojo.isIE<7){this.resize(_b9);this._conn=dojo.connect(_b9,"onresize",this,function(){this.resize(_b9);});}else{dojo.style(_ba,{width:"100%",height:"100%"});}this.iframe=_ba;}};dojo.extend(dijit.BackgroundIframe,{resize:function(_bb){if(this.iframe&&dojo.isIE<7){dojo.style(this.iframe,{width:_bb.offsetWidth+"px",height:_bb.offsetHeight+"px"});}},destroy:function(){if(this._conn){dojo.disconnect(this._conn);this._conn=null;}if(this.iframe){dijit._frames.push(this.iframe);delete this.iframe;}}});}if(!dojo._hasResource["dijit._base.scroll"]){dojo._hasResource["dijit._base.scroll"]=true;dojo.provide("dijit._base.scroll");dijit.scrollIntoView=function(_bc,pos){dojo.window.scrollIntoView(_bc,pos);};}if(!dojo._hasResource["dojo.uacss"]){dojo._hasResource["dojo.uacss"]=true;dojo.provide("dojo.uacss");(function(){var d=dojo,_bd=d.doc.documentElement,ie=d.isIE,_be=d.isOpera,maj=Math.floor,ff=d.isFF,_bf=d.boxModel.replace(/-/,""),_c0={dj_ie:ie,dj_ie6:maj(ie)==6,dj_ie7:maj(ie)==7,dj_ie8:maj(ie)==8,dj_quirks:d.isQuirks,dj_iequirks:ie&&d.isQuirks,dj_opera:_be,dj_khtml:d.isKhtml,dj_webkit:d.isWebKit,dj_safari:d.isSafari,dj_chrome:d.isChrome,dj_gecko:d.isMozilla,dj_ff3:maj(ff)==3};_c0["dj_"+_bf]=true;var _c1="";for(var clz in _c0){if(_c0[clz]){_c1+=clz+" ";}}_bd.className=d.trim(_bd.className+" "+_c1);dojo._loaders.unshift(function(){if(!dojo._isBodyLtr()){var _c2="dj_rtl dijitRtl "+_c1.replace(/ /g,"-rtl ");_bd.className=d.trim(_bd.className+" "+_c2);}});})();}if(!dojo._hasResource["dijit._base.sniff"]){dojo._hasResource["dijit._base.sniff"]=true;dojo.provide("dijit._base.sniff");}if(!dojo._hasResource["dijit._base.typematic"]){dojo._hasResource["dijit._base.typematic"]=true;dojo.provide("dijit._base.typematic");dijit.typematic={_fireEventAndReload:function(){this._timer=null;this._callback(++this._count,this._node,this._evt);this._currentTimeout=Math.max(this._currentTimeout<0?this._initialDelay:(this._subsequentDelay>1?this._subsequentDelay:Math.round(this._currentTimeout*this._subsequentDelay)),this._minDelay);this._timer=setTimeout(dojo.hitch(this,"_fireEventAndReload"),this._currentTimeout);},trigger:function(evt,_c3,_c4,_c5,obj,_c6,_c7,_c8){if(obj!=this._obj){this.stop();this._initialDelay=_c7||500;this._subsequentDelay=_c6||0.9;this._minDelay=_c8||10;this._obj=obj;this._evt=evt;this._node=_c4;this._currentTimeout=-1;this._count=-1;this._callback=dojo.hitch(_c3,_c5);this._fireEventAndReload();this._evt=dojo.mixin({faux:true},evt);}},stop:function(){if(this._timer){clearTimeout(this._timer);this._timer=null;}if(this._obj){this._callback(-1,this._node,this._evt);this._obj=null;}},addKeyListener:function(_c9,_ca,_cb,_cc,_cd,_ce,_cf){if(_ca.keyCode){_ca.charOrCode=_ca.keyCode;dojo.deprecated("keyCode attribute parameter for dijit.typematic.addKeyListener is deprecated. Use charOrCode instead.","","2.0");}else{if(_ca.charCode){_ca.charOrCode=String.fromCharCode(_ca.charCode);dojo.deprecated("charCode attribute parameter for dijit.typematic.addKeyListener is deprecated. Use charOrCode instead.","","2.0");}}return [dojo.connect(_c9,"onkeypress",this,function(evt){if(evt.charOrCode==_ca.charOrCode&&(_ca.ctrlKey===undefined||_ca.ctrlKey==evt.ctrlKey)&&(_ca.altKey===undefined||_ca.altKey==evt.altKey)&&(_ca.metaKey===undefined||_ca.metaKey==(evt.metaKey||false))&&(_ca.shiftKey===undefined||_ca.shiftKey==evt.shiftKey)){dojo.stopEvent(evt);dijit.typematic.trigger(evt,_cb,_c9,_cc,_ca,_cd,_ce,_cf);}else{if(dijit.typematic._obj==_ca){dijit.typematic.stop();}}}),dojo.connect(_c9,"onkeyup",this,function(evt){if(dijit.typematic._obj==_ca){dijit.typematic.stop();}})];},addMouseListener:function(_d0,_d1,_d2,_d3,_d4,_d5){var dc=dojo.connect;return [dc(_d0,"mousedown",this,function(evt){dojo.stopEvent(evt);dijit.typematic.trigger(evt,_d1,_d0,_d2,_d0,_d3,_d4,_d5);}),dc(_d0,"mouseup",this,function(evt){dojo.stopEvent(evt);dijit.typematic.stop();}),dc(_d0,"mouseout",this,function(evt){dojo.stopEvent(evt);dijit.typematic.stop();}),dc(_d0,"mousemove",this,function(evt){evt.preventDefault();}),dc(_d0,"dblclick",this,function(evt){dojo.stopEvent(evt);if(dojo.isIE){dijit.typematic.trigger(evt,_d1,_d0,_d2,_d0,_d3,_d4,_d5);setTimeout(dojo.hitch(this,dijit.typematic.stop),50);}})];},addListener:function(_d6,_d7,_d8,_d9,_da,_db,_dc,_dd){return this.addKeyListener(_d7,_d8,_d9,_da,_db,_dc,_dd).concat(this.addMouseListener(_d6,_d9,_da,_db,_dc,_dd));}};}if(!dojo._hasResource["dijit._base.wai"]){dojo._hasResource["dijit._base.wai"]=true;dojo.provide("dijit._base.wai");dijit.wai={onload:function(){var div=dojo.create("div",{id:"a11yTestNode",style:{cssText:"border: 1px solid;"+"border-color:red green;"+"position: absolute;"+"height: 5px;"+"top: -999px;"+"background-image: url(\""+(dojo.config.blankGif||dojo.moduleUrl("dojo","resources/blank.gif"))+"\");"}},dojo.body());var cs=dojo.getComputedStyle(div);if(cs){var _de=cs.backgroundImage;var _df=(cs.borderTopColor==cs.borderRightColor)||(_de!=null&&(_de=="none"||_de=="url(invalid-url:)"));dojo[_df?"addClass":"removeClass"](dojo.body(),"dijit_a11y");if(dojo.isIE){div.outerHTML="";}else{dojo.body().removeChild(div);}}}};if(dojo.isIE||dojo.isMoz){dojo._loaders.unshift(dijit.wai.onload);}dojo.mixin(dijit,{_XhtmlRoles:/banner|contentinfo|definition|main|navigation|search|note|secondary|seealso/,hasWaiRole:function(_e0,_e1){var _e2=this.getWaiRole(_e0);return _e1?(_e2.indexOf(_e1)>-1):(_e2.length>0);},getWaiRole:function(_e3){return dojo.trim((dojo.attr(_e3,"role")||"").replace(this._XhtmlRoles,"").replace("wairole:",""));},setWaiRole:function(_e4,_e5){var _e6=dojo.attr(_e4,"role")||"";if(!this._XhtmlRoles.test(_e6)){dojo.attr(_e4,"role",_e5);}else{if((" "+_e6+" ").indexOf(" "+_e5+" ")<0){var _e7=dojo.trim(_e6.replace(this._XhtmlRoles,""));var _e8=dojo.trim(_e6.replace(_e7,""));dojo.attr(_e4,"role",_e8+(_e8?" ":"")+_e5);}}},removeWaiRole:function(_e9,_ea){var _eb=dojo.attr(_e9,"role");if(!_eb){return;}if(_ea){var t=dojo.trim((" "+_eb+" ").replace(" "+_ea+" "," "));dojo.attr(_e9,"role",t);}else{_e9.removeAttribute("role");}},hasWaiState:function(_ec,_ed){return _ec.hasAttribute?_ec.hasAttribute("aria-"+_ed):!!_ec.getAttribute("aria-"+_ed);},getWaiState:function(_ee,_ef){return _ee.getAttribute("aria-"+_ef)||"";},setWaiState:function(_f0,_f1,_f2){_f0.setAttribute("aria-"+_f1,_f2);},removeWaiState:function(_f3,_f4){_f3.removeAttribute("aria-"+_f4);}});}if(!dojo._hasResource["dijit._base"]){dojo._hasResource["dijit._base"]=true;dojo.provide("dijit._base");}if(!dojo._hasResource["dojo.date.stamp"]){dojo._hasResource["dojo.date.stamp"]=true;dojo.provide("dojo.date.stamp");dojo.date.stamp.fromISOString=function(_f5,_f6){if(!dojo.date.stamp._isoRegExp){dojo.date.stamp._isoRegExp=/^(?:(\d{4})(?:-(\d{2})(?:-(\d{2}))?)?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(.\d+)?)?((?:[+-](\d{2}):(\d{2}))|Z)?)?$/;}var _f7=dojo.date.stamp._isoRegExp.exec(_f5),_f8=null;if(_f7){_f7.shift();if(_f7[1]){_f7[1]--;}if(_f7[6]){_f7[6]*=1000;}if(_f6){_f6=new Date(_f6);dojo.forEach(dojo.map(["FullYear","Month","Date","Hours","Minutes","Seconds","Milliseconds"],function(_f9){return _f6["get"+_f9]();}),function(_fa,_fb){_f7[_fb]=_f7[_fb]||_fa;});}_f8=new Date(_f7[0]||1970,_f7[1]||0,_f7[2]||1,_f7[3]||0,_f7[4]||0,_f7[5]||0,_f7[6]||0);if(_f7[0]<100){_f8.setFullYear(_f7[0]||1970);}var _fc=0,_fd=_f7[7]&&_f7[7].charAt(0);if(_fd!="Z"){_fc=((_f7[8]||0)*60)+(Number(_f7[9])||0);if(_fd!="-"){_fc*=-1;}}if(_fd){_fc-=_f8.getTimezoneOffset();}if(_fc){_f8.setTime(_f8.getTime()+_fc*60000);}}return _f8;};dojo.date.stamp.toISOString=function(_fe,_ff){var _100=function(n){return (n<10)?"0"+n:n;};_ff=_ff||{};var _101=[],_102=_ff.zulu?"getUTC":"get",date="";if(_ff.selector!="time"){var year=_fe[_102+"FullYear"]();date=["0000".substr((year+"").length)+year,_100(_fe[_102+"Month"]()+1),_100(_fe[_102+"Date"]())].join("-");}_101.push(date);if(_ff.selector!="date"){var time=[_100(_fe[_102+"Hours"]()),_100(_fe[_102+"Minutes"]()),_100(_fe[_102+"Seconds"]())].join(":");var _103=_fe[_102+"Milliseconds"]();if(_ff.milliseconds){time+="."+(_103<100?"0":"")+_100(_103);}if(_ff.zulu){time+="Z";}else{if(_ff.selector!="time"){var _104=_fe.getTimezoneOffset();var _105=Math.abs(_104);time+=(_104>0?"-":"+")+_100(Math.floor(_105/60))+":"+_100(_105%60);}}_101.push(time);}return _101.join("T");};}if(!dojo._hasResource["dojo.parser"]){dojo._hasResource["dojo.parser"]=true;dojo.provide("dojo.parser");new Date("X");dojo.parser=new function(){var d=dojo;this._attrName=d._scopeName+"Type";this._query="["+this._attrName+"]";function _106(_107){if(d.isString(_107)){return "string";}if(typeof _107=="number"){return "number";}if(typeof _107=="boolean"){return "boolean";}if(d.isFunction(_107)){return "function";}if(d.isArray(_107)){return "array";}if(_107 instanceof Date){return "date";}if(_107 instanceof d._Url){return "url";}return "object";};function _108(_109,type){switch(type){case "string":return _109;case "number":return _109.length?Number(_109):NaN;case "boolean":return typeof _109=="boolean"?_109:!(_109.toLowerCase()=="false");case "function":if(d.isFunction(_109)){_109=_109.toString();_109=d.trim(_109.substring(_109.indexOf("{")+1,_109.length-1));}try{if(_109===""||_109.search(/[^\w\.]+/i)!=-1){return new Function(_109);}else{return d.getObject(_109,false)||new Function(_109);}}catch(e){return new Function();}case "array":return _109?_109.split(/\s*,\s*/):[];case "date":switch(_109){case "":return new Date("");case "now":return new Date();default:return d.date.stamp.fromISOString(_109);}case "url":return d.baseUrl+_109;default:return d.fromJson(_109);}};var _10a={};dojo.connect(dojo,"extend",function(){_10a={};});function _10b(_10c){if(!_10a[_10c]){var cls=d.getObject(_10c);if(!cls){return null;}var _10d=cls.prototype;var _10e={},_10f={};for(var name in _10d){if(name.charAt(0)=="_"){continue;}if(name in _10f){continue;}var _110=_10d[name];_10e[name]=_106(_110);}_10a[_10c]={cls:cls,params:_10e};}return _10a[_10c];};this._functionFromScript=function(_111){var _112="";var _113="";var _114=_111.getAttribute("args");if(_114){d.forEach(_114.split(/\s*,\s*/),function(part,idx){_112+="var "+part+" = arguments["+idx+"]; ";});}var _115=_111.getAttribute("with");if(_115&&_115.length){d.forEach(_115.split(/\s*,\s*/),function(part){_112+="with("+part+"){";_113+="}";});}return new Function(_112+_111.innerHTML+_113);};this.instantiate=function(_116,_117,args){var _118=[],dp=dojo.parser;_117=_117||{};args=args||{};d.forEach(_116,function(obj){if(!obj){return;}var node,type,_119,_11a,_11b;if(obj.node){node=obj.node;type=obj.type;_119=obj.clsInfo||(type&&_10b(type));_11a=_119&&_119.cls;_11b=obj.scripts;}else{node=obj;type=dp._attrName in _117?_117[dp._attrName]:node.getAttribute(dp._attrName);_119=type&&_10b(type);_11a=_119&&_119.cls;_11b=(_11a&&(_11a._noScript||_11a.prototype._noScript)?[]:d.query("> script[type^='dojo/']",node));}if(!_119){throw new Error("Could not load class '"+type);}var _11c={},_11d=node.attributes;if(args.defaults){dojo.mixin(_11c,args.defaults);}if(obj.inherited){dojo.mixin(_11c,obj.inherited);}for(var name in _119.params){var item=name in _117?{value:_117[name],specified:true}:_11d.getNamedItem(name);if(!item||(!item.specified&&(!dojo.isIE||name.toLowerCase()!="value"))){continue;}var _11e=item.value;switch(name){case "class":_11e="className" in _117?_117.className:node.className;break;case "style":_11e="style" in _117?_117.style:(node.style&&node.style.cssText);}var _11f=_119.params[name];if(typeof _11e=="string"){_11c[name]=_108(_11e,_11f);}else{_11c[name]=_11e;}}var _120=[],_121=[];d.forEach(_11b,function(_122){node.removeChild(_122);var _123=_122.getAttribute("event"),type=_122.getAttribute("type"),nf=d.parser._functionFromScript(_122);if(_123){if(type=="dojo/connect"){_120.push({event:_123,func:nf});}else{_11c[_123]=nf;}}else{_121.push(nf);}});var _124=_11a.markupFactory||_11a.prototype&&_11a.prototype.markupFactory;var _125=_124?_124(_11c,node,_11a):new _11a(_11c,node);_118.push(_125);var _126=node.getAttribute("jsId");if(_126){d.setObject(_126,_125);}d.forEach(_120,function(_127){d.connect(_125,_127.event,null,_127.func);});d.forEach(_121,function(func){func.call(_125);});});if(!_117._started){d.forEach(_118,function(_128){if(!args.noStart&&_128&&_128.startup&&!_128._started&&(!_128.getParent||!_128.getParent())){_128.startup();}});}return _118;};this.parse=function(_129,args){var root;if(!args&&_129&&_129.rootNode){args=_129;root=args.rootNode;}else{root=_129;}var _12a=this._attrName;function scan(_12b,list){var _12c=dojo.clone(_12b.inherited);dojo.forEach(["dir","lang"],function(name){var val=_12b.node.getAttribute(name);if(val){_12c[name]=val;}});var _12d=_12b.scripts;var _12e=!_12b.clsInfo||!_12b.clsInfo.cls.prototype.stopParser;for(var _12f=_12b.node.firstChild;_12f;_12f=_12f.nextSibling){if(_12f.nodeType==1){var type=_12e&&_12f.getAttribute(_12a);if(type){var _130={"type":type,clsInfo:_10b(type),node:_12f,scripts:[],inherited:_12c};list.push(_130);scan(_130,list);}else{if(_12d&&_12f.nodeName.toLowerCase()=="script"){type=_12f.getAttribute("type");if(type&&/^dojo\//i.test(type)){_12d.push(_12f);}}else{if(_12e){scan({node:_12f,inherited:_12c},list);}}}}}};var list=[];scan({node:root?dojo.byId(root):dojo.body(),inherited:(args&&args.inherited)||{dir:dojo._isBodyLtr()?"ltr":"rtl"}},list);return this.instantiate(list,null,args);};}();(function(){var _131=function(){if(dojo.config.parseOnLoad){dojo.parser.parse();}};if(dojo.exists("dijit.wai.onload")&&(dijit.wai.onload===dojo._loaders[0])){dojo._loaders.splice(1,0,_131);}else{dojo._loaders.unshift(_131);}})();}if(!dojo._hasResource["dijit._Widget"]){dojo._hasResource["dijit._Widget"]=true;dojo.provide("dijit._Widget");dojo.require("dijit._base");dojo.connect(dojo,"_connect",function(_132,_133){if(_132&&dojo.isFunction(_132._onConnect)){_132._onConnect(_133);}});dijit._connectOnUseEventHandler=function(_134){};dijit._lastKeyDownNode=null;if(dojo.isIE){(function(){var _135=function(evt){dijit._lastKeyDownNode=evt.srcElement;};dojo.doc.attachEvent("onkeydown",_135);dojo.addOnWindowUnload(function(){dojo.doc.detachEvent("onkeydown",_135);});})();}else{dojo.doc.addEventListener("keydown",function(evt){dijit._lastKeyDownNode=evt.target;},true);}(function(){var _136={},_137=function(_138){var dc=_138.declaredClass;if(!_136[dc]){var r=[],_139,_13a=_138.constructor.prototype;for(var _13b in _13a){if(dojo.isFunction(_13a[_13b])&&(_139=_13b.match(/^_set([a-zA-Z]*)Attr$/))&&_139[1]){r.push(_139[1].charAt(0).toLowerCase()+_139[1].substr(1));}}_136[dc]=r;}return _136[dc]||[];};dojo.declare("dijit._Widget",null,{id:"",lang:"",dir:"","class":"",style:"",title:"",tooltip:"",baseClass:"",srcNodeRef:null,domNode:null,containerNode:null,attributeMap:{id:"",dir:"",lang:"","class":"",style:"",title:""},_deferredConnects:{onClick:"",onDblClick:"",onKeyDown:"",onKeyPress:"",onKeyUp:"",onMouseMove:"",onMouseDown:"",onMouseOut:"",onMouseOver:"",onMouseLeave:"",onMouseEnter:"",onMouseUp:""},onClick:dijit._connectOnUseEventHandler,onDblClick:dijit._connectOnUseEventHandler,onKeyDown:dijit._connectOnUseEventHandler,onKeyPress:dijit._connectOnUseEventHandler,onKeyUp:dijit._connectOnUseEventHandler,onMouseDown:dijit._connectOnUseEventHandler,onMouseMove:dijit._connectOnUseEventHandler,onMouseOut:dijit._connectOnUseEventHandler,onMouseOver:dijit._connectOnUseEventHandler,onMouseLeave:dijit._connectOnUseEventHandler,onMouseEnter:dijit._connectOnUseEventHandler,onMouseUp:dijit._connectOnUseEventHandler,_blankGif:(dojo.config.blankGif||dojo.moduleUrl("dojo","resources/blank.gif")).toString(),postscript:function(_13c,_13d){this.create(_13c,_13d);},create:function(_13e,_13f){this.srcNodeRef=dojo.byId(_13f);this._connects=[];this._subscribes=[];this._deferredConnects=dojo.clone(this._deferredConnects);for(var attr in this.attributeMap){delete this._deferredConnects[attr];}for(attr in this._deferredConnects){if(this[attr]!==dijit._connectOnUseEventHandler){delete this._deferredConnects[attr];}}if(this.srcNodeRef&&(typeof this.srcNodeRef.id=="string")){this.id=this.srcNodeRef.id;}if(_13e){this.params=_13e;dojo.mixin(this,_13e);}this.postMixInProperties();if(!this.id){this.id=dijit.getUniqueId(this.declaredClass.replace(/\./g,"_"));}dijit.registry.add(this);this.buildRendering();if(this.domNode){this._applyAttributes();var _140=this.srcNodeRef;if(_140&&_140.parentNode){_140.parentNode.replaceChild(this.domNode,_140);}for(attr in this.params){this._onConnect(attr);}}if(this.domNode){this.domNode.setAttribute("widgetId",this.id);}this.postCreate();if(this.srcNodeRef&&!this.srcNodeRef.parentNode){delete this.srcNodeRef;}this._created=true;},_applyAttributes:function(){var _141=function(attr,_142){if((_142.params&&attr in _142.params)||_142[attr]){_142.set(attr,_142[attr]);}};for(var attr in this.attributeMap){_141(attr,this);}dojo.forEach(_137(this),function(a){if(!(a in this.attributeMap)){_141(a,this);}},this);},postMixInProperties:function(){},buildRendering:function(){this.domNode=this.srcNodeRef||dojo.create("div");},postCreate:function(){if(this.baseClass){var _143=this.baseClass.split(" ");if(!this.isLeftToRight()){_143=_143.concat(dojo.map(_143,function(name){return name+"Rtl";}));}dojo.addClass(this.domNode,_143);}},startup:function(){this._started=true;},destroyRecursive:function(_144){this._beingDestroyed=true;this.destroyDescendants(_144);this.destroy(_144);},destroy:function(_145){this._beingDestroyed=true;this.uninitialize();var d=dojo,dfe=d.forEach,dun=d.unsubscribe;dfe(this._connects,function(_146){dfe(_146,d.disconnect);});dfe(this._subscribes,function(_147){dun(_147);});dfe(this._supportingWidgets||[],function(w){if(w.destroyRecursive){w.destroyRecursive();}else{if(w.destroy){w.destroy();}}});this.destroyRendering(_145);dijit.registry.remove(this.id);this._destroyed=true;},destroyRendering:function(_148){if(this.bgIframe){this.bgIframe.destroy(_148);delete this.bgIframe;}if(this.domNode){if(_148){dojo.removeAttr(this.domNode,"widgetId");}else{dojo.destroy(this.domNode);}delete this.domNode;}if(this.srcNodeRef){if(!_148){dojo.destroy(this.srcNodeRef);}delete this.srcNodeRef;}},destroyDescendants:function(_149){dojo.forEach(this.getChildren(),function(_14a){if(_14a.destroyRecursive){_14a.destroyRecursive(_149);}});},uninitialize:function(){return false;},onFocus:function(){},onBlur:function(){},_onFocus:function(e){this.onFocus();},_onBlur:function(){this.onBlur();},_onConnect:function(_14b){if(_14b in this._deferredConnects){var _14c=this[this._deferredConnects[_14b]||"domNode"];this.connect(_14c,_14b.toLowerCase(),_14b);delete this._deferredConnects[_14b];}},_setClassAttr:function(_14d){var _14e=this[this.attributeMap["class"]||"domNode"];dojo.removeClass(_14e,this["class"]);this["class"]=_14d;dojo.addClass(_14e,_14d);},_setStyleAttr:function(_14f){var _150=this[this.attributeMap.style||"domNode"];if(dojo.isObject(_14f)){dojo.style(_150,_14f);}else{if(_150.style.cssText){_150.style.cssText+="; "+_14f;}else{_150.style.cssText=_14f;}}this.style=_14f;},setAttribute:function(attr,_151){dojo.deprecated(this.declaredClass+"::setAttribute(attr, value) is deprecated. Use set() instead.","","2.0");this.set(attr,_151);},_attrToDom:function(attr,_152){var _153=this.attributeMap[attr];dojo.forEach(dojo.isArray(_153)?_153:[_153],function(_154){var _155=this[_154.node||_154||"domNode"];var type=_154.type||"attribute";switch(type){case "attribute":if(dojo.isFunction(_152)){_152=dojo.hitch(this,_152);}var _156=_154.attribute?_154.attribute:(/^on[A-Z][a-zA-Z]*$/.test(attr)?attr.toLowerCase():attr);dojo.attr(_155,_156,_152);break;case "innerText":_155.innerHTML="";_155.appendChild(dojo.doc.createTextNode(_152));break;case "innerHTML":_155.innerHTML=_152;break;case "class":dojo.removeClass(_155,this[attr]);dojo.addClass(_155,_152);break;}},this);this[attr]=_152;},attr:function(name,_157){if(dojo.config.isDebug){var _158=arguments.callee._ach||(arguments.callee._ach={}),_159=(arguments.callee.caller||"unknown caller").toString();if(!_158[_159]){dojo.deprecated(this.declaredClass+"::attr() is deprecated. Use get() or set() instead, called from "+_159,"","2.0");_158[_159]=true;}}var args=arguments.length;if(args>=2||typeof name==="object"){return this.set.apply(this,arguments);}else{return this.get(name);}},get:function(name){var _15a=this._getAttrNames(name);return this[_15a.g]?this[_15a.g]():this[name];},set:function(name,_15b){if(typeof name==="object"){for(var x in name){this.set(x,name[x]);}return this;}var _15c=this._getAttrNames(name);if(this[_15c.s]){var _15d=this[_15c.s].apply(this,Array.prototype.slice.call(arguments,1));}else{if(name in this.attributeMap){this._attrToDom(name,_15b);}var _15e=this[name];this[name]=_15b;}return _15d||this;},_attrPairNames:{},_getAttrNames:function(name){var apn=this._attrPairNames;if(apn[name]){return apn[name];}var uc=name.charAt(0).toUpperCase()+name.substr(1);return (apn[name]={n:name+"Node",s:"_set"+uc+"Attr",g:"_get"+uc+"Attr"});},toString:function(){return "[Widget "+this.declaredClass+", "+(this.id||"NO ID")+"]";},getDescendants:function(){return this.containerNode?dojo.query("[widgetId]",this.containerNode).map(dijit.byNode):[];},getChildren:function(){return this.containerNode?dijit.findWidgets(this.containerNode):[];},nodesWithKeyClick:["input","button"],connect:function(obj,_15f,_160){var d=dojo,dc=d._connect,_161=[];if(_15f=="ondijitclick"){if(dojo.indexOf(this.nodesWithKeyClick,obj.nodeName.toLowerCase())==-1){var m=d.hitch(this,_160);_161.push(dc(obj,"onkeydown",this,function(e){if((e.keyCode==d.keys.ENTER||e.keyCode==d.keys.SPACE)&&!e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey){dijit._lastKeyDownNode=e.target;e.preventDefault();}}),dc(obj,"onkeyup",this,function(e){if((e.keyCode==d.keys.ENTER||e.keyCode==d.keys.SPACE)&&e.target===dijit._lastKeyDownNode&&!e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey){dijit._lastKeyDownNode=null;return m(e);}}));}_15f="onclick";}_161.push(dc(obj,_15f,this,_160));this._connects.push(_161);return _161;},disconnect:function(_162){for(var i=0;i<this._connects.length;i++){if(this._connects[i]==_162){dojo.forEach(_162,dojo.disconnect);this._connects.splice(i,1);return;}}},subscribe:function(_163,_164){var d=dojo,_165=d.subscribe(_163,this,_164);this._subscribes.push(_165);return _165;},unsubscribe:function(_166){for(var i=0;i<this._subscribes.length;i++){if(this._subscribes[i]==_166){dojo.unsubscribe(_166);this._subscribes.splice(i,1);return;}}},isLeftToRight:function(){return this.dir?(this.dir=="ltr"):dojo._isBodyLtr();},isFocusable:function(){return this.focus&&(dojo.style(this.domNode,"display")!="none");},placeAt:function(_167,_168){if(_167.declaredClass&&_167.addChild){_167.addChild(this,_168);}else{dojo.place(this.domNode,_167,_168);}return this;},_onShow:function(){this.onShow();},onShow:function(){},onHide:function(){},onClose:function(){return true;}});})();}if(!dojo._hasResource["dojo.string"]){dojo._hasResource["dojo.string"]=true;dojo.provide("dojo.string");dojo.string.rep=function(str,num){if(num<=0||!str){return "";}var buf=[];for(;;){if(num&1){buf.push(str);}if(!(num>>=1)){break;}str+=str;}return buf.join("");};dojo.string.pad=function(text,size,ch,end){if(!ch){ch="0";}var out=String(text),pad=dojo.string.rep(ch,Math.ceil((size-out.length)/ch.length));return end?out+pad:pad+out;};dojo.string.substitute=function(_169,map,_16a,_16b){_16b=_16b||dojo.global;_16a=_16a?dojo.hitch(_16b,_16a):function(v){return v;};return _169.replace(/\$\{([^\s\:\}]+)(?:\:([^\s\:\}]+))?\}/g,function(_16c,key,_16d){var _16e=dojo.getObject(key,false,map);if(_16d){_16e=dojo.getObject(_16d,false,_16b).call(_16b,_16e,key);}return _16a(_16e,key).toString();});};dojo.string.trim=String.prototype.trim?dojo.trim:function(str){str=str.replace(/^\s+/,"");for(var i=str.length-1;i>=0;i--){if(/\S/.test(str.charAt(i))){str=str.substring(0,i+1);break;}}return str;};}if(!dojo._hasResource["dojo.cache"]){dojo._hasResource["dojo.cache"]=true;dojo.provide("dojo.cache");(function(){var _16f={};dojo.cache=function(_170,url,_171){if(typeof _170=="string"){var _172=dojo.moduleUrl(_170,url);}else{_172=_170;_171=url;}var key=_172.toString();var val=_171;if(_171!=undefined&&!dojo.isString(_171)){val=("value" in _171?_171.value:undefined);}var _173=_171&&_171.sanitize?true:false;if(typeof val=="string"){val=_16f[key]=_173?dojo.cache._sanitize(val):val;}else{if(val===null){delete _16f[key];}else{if(!(key in _16f)){val=dojo._getText(key);_16f[key]=_173?dojo.cache._sanitize(val):val;}val=_16f[key];}}return val;};dojo.cache._sanitize=function(val){if(val){val=val.replace(/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,"");var _174=val.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);if(_174){val=_174[1];}}else{val="";}return val;};})();}if(!dojo._hasResource["dijit._Templated"]){dojo._hasResource["dijit._Templated"]=true;dojo.provide("dijit._Templated");dojo.declare("dijit._Templated",null,{templateString:null,templatePath:null,widgetsInTemplate:false,_skipNodeCache:false,_earlyTemplatedStartup:false,constructor:function(){this._attachPoints=[];},_stringRepl:function(tmpl){var _175=this.declaredClass,_176=this;return dojo.string.substitute(tmpl,this,function(_177,key){if(key.charAt(0)=="!"){_177=dojo.getObject(key.substr(1),false,_176);}if(typeof _177=="undefined"){throw new Error(_175+" template:"+key);}if(_177==null){return "";}return key.charAt(0)=="!"?_177:_177.toString().replace(/"/g,""");},this);},buildRendering:function(){var _178=dijit._Templated.getCachedTemplate(this.templatePath,this.templateString,this._skipNodeCache);var node;if(dojo.isString(_178)){node=dojo._toDom(this._stringRepl(_178));if(node.nodeType!=1){throw new Error("Invalid template: "+_178);}}else{node=_178.cloneNode(true);}this.domNode=node;this._attachTemplateNodes(node);if(this.widgetsInTemplate){var _179=dojo.parser,qry,attr;if(_179._query!="[dojoType]"){qry=_179._query;attr=_179._attrName;_179._query="[dojoType]";_179._attrName="dojoType";}var cw=(this._startupWidgets=dojo.parser.parse(node,{noStart:!this._earlyTemplatedStartup,inherited:{dir:this.dir,lang:this.lang}}));if(qry){_179._query=qry;_179._attrName=attr;}this._supportingWidgets=dijit.findWidgets(node);this._attachTemplateNodes(cw,function(n,p){return n[p];});}this._fillContent(this.srcNodeRef);},_fillContent:function(_17a){var dest=this.containerNode;if(_17a&&dest){while(_17a.hasChildNodes()){dest.appendChild(_17a.firstChild);}}},_attachTemplateNodes:function(_17b,_17c){_17c=_17c||function(n,p){return n.getAttribute(p);};var _17d=dojo.isArray(_17b)?_17b:(_17b.all||_17b.getElementsByTagName("*"));var x=dojo.isArray(_17b)?0:-1;for(;x<_17d.length;x++){var _17e=(x==-1)?_17b:_17d[x];if(this.widgetsInTemplate&&_17c(_17e,"dojoType")){continue;}var _17f=_17c(_17e,"dojoAttachPoint");if(_17f){var _180,_181=_17f.split(/\s*,\s*/);while((_180=_181.shift())){if(dojo.isArray(this[_180])){this[_180].push(_17e);}else{this[_180]=_17e;}this._attachPoints.push(_180);}}var _182=_17c(_17e,"dojoAttachEvent");if(_182){var _183,_184=_182.split(/\s*,\s*/);var trim=dojo.trim;while((_183=_184.shift())){if(_183){var _185=null;if(_183.indexOf(":")!=-1){var _186=_183.split(":");_183=trim(_186[0]);_185=trim(_186[1]);}else{_183=trim(_183);}if(!_185){_185=_183;}this.connect(_17e,_183,_185);}}}var role=_17c(_17e,"waiRole");if(role){dijit.setWaiRole(_17e,role);}var _187=_17c(_17e,"waiState");if(_187){dojo.forEach(_187.split(/\s*,\s*/),function(_188){if(_188.indexOf("-")!=-1){var pair=_188.split("-");dijit.setWaiState(_17e,pair[0],pair[1]);}});}}},startup:function(){dojo.forEach(this._startupWidgets,function(w){if(w&&!w._started&&w.startup){w.startup();}});this.inherited(arguments);},destroyRendering:function(){dojo.forEach(this._attachPoints,function(_189){delete this[_189];},this);this._attachPoints=[];this.inherited(arguments);}});dijit._Templated._templateCache={};dijit._Templated.getCachedTemplate=function(_18a,_18b,_18c){var _18d=dijit._Templated._templateCache;var key=_18b||_18a;var _18e=_18d[key];if(_18e){try{if(!_18e.ownerDocument||_18e.ownerDocument==dojo.doc){return _18e;}}catch(e){}dojo.destroy(_18e);}if(!_18b){_18b=dojo.cache(_18a,{sanitize:true});}_18b=dojo.string.trim(_18b);if(_18c||_18b.match(/\$\{([^\}]+)\}/g)){return (_18d[key]=_18b);}else{var node=dojo._toDom(_18b);if(node.nodeType!=1){throw new Error("Invalid template: "+_18b);}return (_18d[key]=node);}};if(dojo.isIE){dojo.addOnWindowUnload(function(){var _18f=dijit._Templated._templateCache;for(var key in _18f){var _190=_18f[key];if(typeof _190=="object"){dojo.destroy(_190);}delete _18f[key];}});}dojo.extend(dijit._Widget,{dojoAttachEvent:"",dojoAttachPoint:"",waiRole:"",waiState:""});}if(!dojo._hasResource["dijit._Container"]){dojo._hasResource["dijit._Container"]=true;dojo.provide("dijit._Container");dojo.declare("dijit._Container",null,{isContainer:true,buildRendering:function(){this.inherited(arguments);if(!this.containerNode){this.containerNode=this.domNode;}},addChild:function(_191,_192){var _193=this.containerNode;if(_192&&typeof _192=="number"){var _194=this.getChildren();if(_194&&_194.length>=_192){_193=_194[_192-1].domNode;_192="after";}}dojo.place(_191.domNode,_193,_192);if(this._started&&!_191._started){_191.startup();}},removeChild:function(_195){if(typeof _195=="number"&&_195>0){_195=this.getChildren()[_195];}if(_195){var node=_195.domNode;if(node&&node.parentNode){node.parentNode.removeChild(node);}}},hasChildren:function(){return this.getChildren().length>0;},destroyDescendants:function(_196){dojo.forEach(this.getChildren(),function(_197){_197.destroyRecursive(_196);});},_getSiblingOfChild:function(_198,dir){var node=_198.domNode,_199=(dir>0?"nextSibling":"previousSibling");do{node=node[_199];}while(node&&(node.nodeType!=1||!dijit.byNode(node)));return node&&dijit.byNode(node);},getIndexOfChild:function(_19a){return dojo.indexOf(this.getChildren(),_19a);},startup:function(){if(this._started){return;}dojo.forEach(this.getChildren(),function(_19b){_19b.startup();});this.inherited(arguments);}});}if(!dojo._hasResource["dijit._Contained"]){dojo._hasResource["dijit._Contained"]=true;dojo.provide("dijit._Contained");dojo.declare("dijit._Contained",null,{getParent:function(){var _19c=dijit.getEnclosingWidget(this.domNode.parentNode);return _19c&&_19c.isContainer?_19c:null;},_getSibling:function(_19d){var node=this.domNode;do{node=node[_19d+"Sibling"];}while(node&&node.nodeType!=1);return node&&dijit.byNode(node);},getPreviousSibling:function(){return this._getSibling("previous");},getNextSibling:function(){return this._getSibling("next");},getIndexInParent:function(){var p=this.getParent();if(!p||!p.getIndexOfChild){return -1;}return p.getIndexOfChild(this);}});}if(!dojo._hasResource["dijit.layout._LayoutWidget"]){dojo._hasResource["dijit.layout._LayoutWidget"]=true;dojo.provide("dijit.layout._LayoutWidget");dojo.declare("dijit.layout._LayoutWidget",[dijit._Widget,dijit._Container,dijit._Contained],{baseClass:"dijitLayoutContainer",isLayoutContainer:true,postCreate:function(){dojo.addClass(this.domNode,"dijitContainer");this.inherited(arguments);},startup:function(){if(this._started){return;}this.inherited(arguments);var _19e=this.getParent&&this.getParent();if(!(_19e&&_19e.isLayoutContainer)){this.resize();this.connect(dojo.isIE?this.domNode:dojo.global,"onresize",function(){this.resize();});}},resize:function(_19f,_1a0){var node=this.domNode;if(_19f){dojo.marginBox(node,_19f);if(_19f.t){node.style.top=_19f.t+"px";}if(_19f.l){node.style.left=_19f.l+"px";}}var mb=_1a0||{};dojo.mixin(mb,_19f||{});if(!("h" in mb)||!("w" in mb)){mb=dojo.mixin(dojo.marginBox(node),mb);}var cs=dojo.getComputedStyle(node);var me=dojo._getMarginExtents(node,cs);var be=dojo._getBorderExtents(node,cs);var bb=(this._borderBox={w:mb.w-(me.w+be.w),h:mb.h-(me.h+be.h)});var pe=dojo._getPadExtents(node,cs);this._contentBox={l:dojo._toPixelValue(node,cs.paddingLeft),t:dojo._toPixelValue(node,cs.paddingTop),w:bb.w-pe.w,h:bb.h-pe.h};this.layout();},layout:function(){},_setupChild:function(_1a1){dojo.addClass(_1a1.domNode,this.baseClass+"-child");if(_1a1.baseClass){dojo.addClass(_1a1.domNode,this.baseClass+"-"+_1a1.baseClass);}},addChild:function(_1a2,_1a3){this.inherited(arguments);if(this._started){this._setupChild(_1a2);}},removeChild:function(_1a4){dojo.removeClass(_1a4.domNode,this.baseClass+"-child");if(_1a4.baseClass){dojo.removeClass(_1a4.domNode,this.baseClass+"-"+_1a4.baseClass);}this.inherited(arguments);}});dijit.layout.marginBox2contentBox=function(node,mb){var cs=dojo.getComputedStyle(node);var me=dojo._getMarginExtents(node,cs);var pb=dojo._getPadBorderExtents(node,cs);return {l:dojo._toPixelValue(node,cs.paddingLeft),t:dojo._toPixelValue(node,cs.paddingTop),w:mb.w-(me.w+pb.w),h:mb.h-(me.h+pb.h)};};(function(){var _1a5=function(word){return word.substring(0,1).toUpperCase()+word.substring(1);};var size=function(_1a6,dim){_1a6.resize?_1a6.resize(dim):dojo.marginBox(_1a6.domNode,dim);dojo.mixin(_1a6,dojo.marginBox(_1a6.domNode));dojo.mixin(_1a6,dim);};dijit.layout.layoutChildren=function(_1a7,dim,_1a8){dim=dojo.mixin({},dim);dojo.addClass(_1a7,"dijitLayoutContainer");_1a8=dojo.filter(_1a8,function(item){return item.layoutAlign!="client";}).concat(dojo.filter(_1a8,function(item){return item.layoutAlign=="client";}));dojo.forEach(_1a8,function(_1a9){var elm=_1a9.domNode,pos=_1a9.layoutAlign;var _1aa=elm.style;_1aa.left=dim.l+"px";_1aa.top=dim.t+"px";_1aa.bottom=_1aa.right="auto";dojo.addClass(elm,"dijitAlign"+_1a5(pos));if(pos=="top"||pos=="bottom"){size(_1a9,{w:dim.w});dim.h-=_1a9.h;if(pos=="top"){dim.t+=_1a9.h;}else{_1aa.top=dim.t+dim.h+"px";}}else{if(pos=="left"||pos=="right"){size(_1a9,{h:dim.h});dim.w-=_1a9.w;if(pos=="left"){dim.l+=_1a9.w;}else{_1aa.left=dim.l+dim.w+"px";}}else{if(pos=="client"){size(_1a9,dim);}}}});};})();}if(!dojo._hasResource["dijit._CssStateMixin"]){dojo._hasResource["dijit._CssStateMixin"]=true;dojo.provide("dijit._CssStateMixin");dojo.declare("dijit._CssStateMixin",[],{cssStateNodes:{},postCreate:function(){this.inherited(arguments);dojo.forEach(["onmouseenter","onmouseleave","onmousedown"],function(e){this.connect(this.domNode,e,"_cssMouseEvent");},this);this.connect(this,"set",function(name,_1ab){if(arguments.length>=2&&{disabled:true,readOnly:true,checked:true,selected:true}[name]){this._setStateClass();}});dojo.forEach(["_onFocus","_onBlur"],function(ap){this.connect(this,ap,"_setStateClass");},this);for(var ap in this.cssStateNodes){this._trackMouseState(this[ap],this.cssStateNodes[ap]);}this._setStateClass();},_cssMouseEvent:function(_1ac){if(!this.disabled){switch(_1ac.type){case "mouseenter":case "mouseover":this._hovering=true;this._active=this._mouseDown;break;case "mouseleave":case "mouseout":this._hovering=false;this._active=false;break;case "mousedown":this._active=true;this._mouseDown=true;var _1ad=this.connect(dojo.body(),"onmouseup",function(){this._active=false;this._mouseDown=false;this._setStateClass();this.disconnect(_1ad);});break;}this._setStateClass();}},_setStateClass:function(){var _1ae=this.baseClass.split(" ");function _1af(_1b0){_1ae=_1ae.concat(dojo.map(_1ae,function(c){return c+_1b0;}),"dijit"+_1b0);};if(!this.isLeftToRight()){_1af("Rtl");}if(this.checked){_1af("Checked");}if(this.state){_1af(this.state);}if(this.selected){_1af("Selected");}if(this.disabled){_1af("Disabled");}else{if(this.readOnly){_1af("ReadOnly");}else{if(this._active){_1af("Active");}else{if(this._hovering){_1af("Hover");}}}}if(this._focused){_1af("Focused");}var tn=this.stateNode||this.domNode,_1b1={};dojo.forEach(tn.className.split(" "),function(c){_1b1[c]=true;});if("_stateClasses" in this){dojo.forEach(this._stateClasses,function(c){delete _1b1[c];});}dojo.forEach(_1ae,function(c){_1b1[c]=true;});var _1b2=[];for(var c in _1b1){_1b2.push(c);}tn.className=_1b2.join(" ");this._stateClasses=_1ae;},_trackMouseState:function(node,_1b3){var _1b4=false,_1b5=false,_1b6=false;var self=this,cn=dojo.hitch(this,"connect",node);function _1b7(){var _1b8=("disabled" in self&&self.disabled)||("readonly" in self&&self.readonly);dojo.toggleClass(node,_1b3+"Hover",_1b4&&!_1b5&&!_1b8);dojo.toggleClass(node,_1b3+"Active",_1b5&&!_1b8);dojo.toggleClass(node,_1b3+"Focused",_1b6&&!_1b8);};cn("onmouseenter",function(){_1b4=true;_1b7();});cn("onmouseleave",function(){_1b4=false;_1b5=false;_1b7();});cn("onmousedown",function(){_1b5=true;_1b7();});cn("onmouseup",function(){_1b5=false;_1b7();});cn("onfocus",function(){_1b6=true;_1b7();});cn("onblur",function(){_1b6=false;_1b7();});this.connect(this,"set",function(name,_1b9){if(name=="disabled"||name=="readOnly"){_1b7();}});}});}if(!dojo._hasResource["dijit.form._FormWidget"]){dojo._hasResource["dijit.form._FormWidget"]=true;dojo.provide("dijit.form._FormWidget");dojo.declare("dijit.form._FormWidget",[dijit._Widget,dijit._Templated,dijit._CssStateMixin],{name:"",alt:"",value:"",type:"text",tabIndex:"0",disabled:false,intermediateChanges:false,scrollOnFocus:true,attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{value:"focusNode",id:"focusNode",tabIndex:"focusNode",alt:"focusNode",title:"focusNode"}),postMixInProperties:function(){this.nameAttrSetting=this.name?("name=\""+this.name.replace(/'/g,""")+"\""):"";this.inherited(arguments);},postCreate:function(){this.inherited(arguments);this.connect(this.domNode,"onmousedown","_onMouseDown");},_setDisabledAttr:function(_1ba){this.disabled=_1ba;dojo.attr(this.focusNode,"disabled",_1ba);if(this.valueNode){dojo.attr(this.valueNode,"disabled",_1ba);}dijit.setWaiState(this.focusNode,"disabled",_1ba);if(_1ba){this._hovering=false;this._active=false;var _1bb="tabIndex" in this.attributeMap?this.attributeMap.tabIndex:"focusNode";dojo.forEach(dojo.isArray(_1bb)?_1bb:[_1bb],function(_1bc){var node=this[_1bc];if(dojo.isWebKit||dijit.hasDefaultTabStop(node)){node.setAttribute("tabIndex","-1");}else{node.removeAttribute("tabIndex");}},this);}else{this.focusNode.setAttribute("tabIndex",this.tabIndex);}},setDisabled:function(_1bd){dojo.deprecated("setDisabled("+_1bd+") is deprecated. Use set('disabled',"+_1bd+") instead.","","2.0");this.set("disabled",_1bd);},_onFocus:function(e){if(this.scrollOnFocus){dojo.window.scrollIntoView(this.domNode);}this.inherited(arguments);},isFocusable:function(){return !this.disabled&&!this.readOnly&&this.focusNode&&(dojo.style(this.domNode,"display")!="none");},focus:function(){dijit.focus(this.focusNode);},compare:function(val1,val2){if(typeof val1=="number"&&typeof val2=="number"){return (isNaN(val1)&&isNaN(val2))?0:val1-val2;}else{if(val1>val2){return 1;}else{if(val1<val2){return -1;}else{return 0;}}}},onChange:function(_1be){},_onChangeActive:false,_handleOnChange:function(_1bf,_1c0){this._lastValue=_1bf;if(this._lastValueReported==undefined&&(_1c0===null||!this._onChangeActive)){this._resetValue=this._lastValueReported=_1bf;}if((this.intermediateChanges||_1c0||_1c0===undefined)&&((typeof _1bf!=typeof this._lastValueReported)||this.compare(_1bf,this._lastValueReported)!=0)){this._lastValueReported=_1bf;if(this._onChangeActive){if(this._onChangeHandle){clearTimeout(this._onChangeHandle);}this._onChangeHandle=setTimeout(dojo.hitch(this,function(){this._onChangeHandle=null;this.onChange(_1bf);}),0);}}},create:function(){this.inherited(arguments);this._onChangeActive=true;},destroy:function(){if(this._onChangeHandle){clearTimeout(this._onChangeHandle);this.onChange(this._lastValueReported);}this.inherited(arguments);},setValue:function(_1c1){dojo.deprecated("dijit.form._FormWidget:setValue("+_1c1+") is deprecated. Use set('value',"+_1c1+") instead.","","2.0");this.set("value",_1c1);},getValue:function(){dojo.deprecated(this.declaredClass+"::getValue() is deprecated. Use get('value') instead.","","2.0");return this.get("value");},_onMouseDown:function(e){if(!e.ctrlKey&&this.isFocusable()){var _1c2=this.connect(dojo.body(),"onmouseup",function(){if(this.isFocusable()){this.focus();}this.disconnect(_1c2);});}}});dojo.declare("dijit.form._FormValueWidget",dijit.form._FormWidget,{readOnly:false,attributeMap:dojo.delegate(dijit.form._FormWidget.prototype.attributeMap,{value:"",readOnly:"focusNode"}),_setReadOnlyAttr:function(_1c3){this.readOnly=_1c3;dojo.attr(this.focusNode,"readOnly",_1c3);dijit.setWaiState(this.focusNode,"readonly",_1c3);},postCreate:function(){this.inherited(arguments);if(dojo.isIE){this.connect(this.focusNode||this.domNode,"onkeydown",this._onKeyDown);}if(this._resetValue===undefined){this._resetValue=this.value;}},_setValueAttr:function(_1c4,_1c5){this.value=_1c4;this._handleOnChange(_1c4,_1c5);},_getValueAttr:function(){return this._lastValue;},undo:function(){this._setValueAttr(this._lastValueReported,false);},reset:function(){this._hasBeenBlurred=false;this._setValueAttr(this._resetValue,true);},_onKeyDown:function(e){if(e.keyCode==dojo.keys.ESCAPE&&!(e.ctrlKey||e.altKey||e.metaKey)){var te;if(dojo.isIE){e.preventDefault();te=document.createEventObject();te.keyCode=dojo.keys.ESCAPE;te.shiftKey=e.shiftKey;e.srcElement.fireEvent("onkeypress",te);}}},_layoutHackIE7:function(){if(dojo.isIE==7){var _1c6=this.domNode;var _1c7=_1c6.parentNode;var _1c8=_1c6.firstChild||_1c6;var _1c9=_1c8.style.filter;var _1ca=this;while(_1c7&&_1c7.clientHeight==0){(function ping(){var _1cb=_1ca.connect(_1c7,"onscroll",function(e){_1ca.disconnect(_1cb);_1c8.style.filter=(new Date()).getMilliseconds();setTimeout(function(){_1c8.style.filter=_1c9;},0);});})();_1c7=_1c7.parentNode;}}}});}if(!dojo._hasResource["dijit.dijit"]){dojo._hasResource["dijit.dijit"]=true;dojo.provide("dijit.dijit");} diff --git a/lib/dijit/dijit.js.uncompressed.js b/lib/dijit/dijit.js.uncompressed.js new file mode 100644 index 000000000..076a03208 --- /dev/null +++ b/lib/dijit/dijit.js.uncompressed.js @@ -0,0 +1,5961 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + +/* + This is an optimized version of Dojo, built for deployment and not for + development. To get sources and documentation, please visit: + + http://dojotoolkit.org +*/ + +if(!dojo._hasResource["dojo.window"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.window"] = true; +dojo.provide("dojo.window"); + +dojo.window.getBox = function(){ + // summary: + // Returns the dimensions and scroll position of the viewable area of a browser window + + var scrollRoot = (dojo.doc.compatMode == 'BackCompat') ? dojo.body() : dojo.doc.documentElement; + + // get scroll position + var scroll = dojo._docScroll(); // scrollRoot.scrollTop/Left should work + return { w: scrollRoot.clientWidth, h: scrollRoot.clientHeight, l: scroll.x, t: scroll.y }; +}; + +dojo.window.get = function(doc){ + // summary: + // Get window object associated with document doc + + // In some IE versions (at least 6.0), document.parentWindow does not return a + // reference to the real window object (maybe a copy), so we must fix it as well + // We use IE specific execScript to attach the real window reference to + // document._parentWindow for later use + if(dojo.isIE && window !== document.parentWindow){ + /* + In IE 6, only the variable "window" can be used to connect events (others + may be only copies). + */ + doc.parentWindow.execScript("document._parentWindow = window;", "Javascript"); + //to prevent memory leak, unset it after use + //another possibility is to add an onUnload handler which seems overkill to me (liucougar) + var win = doc._parentWindow; + doc._parentWindow = null; + return win; // Window + } + + return doc.parentWindow || doc.defaultView; // Window +}; + +dojo.window.scrollIntoView = function(/*DomNode*/ node, /*Object?*/ pos){ + // summary: + // Scroll the passed node into view, if it is not already. + + // don't rely on node.scrollIntoView working just because the function is there + + try{ // catch unexpected/unrecreatable errors (#7808) since we can recover using a semi-acceptable native method + node = dojo.byId(node); + var doc = node.ownerDocument || dojo.doc, + body = doc.body || dojo.body(), + html = doc.documentElement || body.parentNode, + isIE = dojo.isIE, isWK = dojo.isWebKit; + // if an untested browser, then use the native method + if((!(dojo.isMoz || isIE || isWK || dojo.isOpera) || node == body || node == html) && (typeof node.scrollIntoView != "undefined")){ + node.scrollIntoView(false); // short-circuit to native if possible + return; + } + var backCompat = doc.compatMode == 'BackCompat', + clientAreaRoot = backCompat? body : html, + scrollRoot = isWK ? body : clientAreaRoot, + rootWidth = clientAreaRoot.clientWidth, + rootHeight = clientAreaRoot.clientHeight, + rtl = !dojo._isBodyLtr(), + nodePos = pos || dojo.position(node), + el = node.parentNode, + isFixed = function(el){ + return ((isIE <= 6 || (isIE && backCompat))? false : (dojo.style(el, 'position').toLowerCase() == "fixed")); + }; + if(isFixed(node)){ return; } // nothing to do + + while(el){ + if(el == body){ el = scrollRoot; } + var elPos = dojo.position(el), + fixedPos = isFixed(el); + + if(el == scrollRoot){ + elPos.w = rootWidth; elPos.h = rootHeight; + if(scrollRoot == html && isIE && rtl){ elPos.x += scrollRoot.offsetWidth-elPos.w; } // IE workaround where scrollbar causes negative x + if(elPos.x < 0 || !isIE){ elPos.x = 0; } // IE can have values > 0 + if(elPos.y < 0 || !isIE){ elPos.y = 0; } + }else{ + var pb = dojo._getPadBorderExtents(el); + elPos.w -= pb.w; elPos.h -= pb.h; elPos.x += pb.l; elPos.y += pb.t; + } + + if(el != scrollRoot){ // body, html sizes already have the scrollbar removed + var clientSize = el.clientWidth, + scrollBarSize = elPos.w - clientSize; + if(clientSize > 0 && scrollBarSize > 0){ + elPos.w = clientSize; + if(isIE && rtl){ elPos.x += scrollBarSize; } + } + clientSize = el.clientHeight; + scrollBarSize = elPos.h - clientSize; + if(clientSize > 0 && scrollBarSize > 0){ + elPos.h = clientSize; + } + } + if(fixedPos){ // bounded by viewport, not parents + if(elPos.y < 0){ + elPos.h += elPos.y; elPos.y = 0; + } + if(elPos.x < 0){ + elPos.w += elPos.x; elPos.x = 0; + } + if(elPos.y + elPos.h > rootHeight){ + elPos.h = rootHeight - elPos.y; + } + if(elPos.x + elPos.w > rootWidth){ + elPos.w = rootWidth - elPos.x; + } + } + // calculate overflow in all 4 directions + var l = nodePos.x - elPos.x, // beyond left: < 0 + t = nodePos.y - Math.max(elPos.y, 0), // beyond top: < 0 + r = l + nodePos.w - elPos.w, // beyond right: > 0 + bot = t + nodePos.h - elPos.h; // beyond bottom: > 0 + if(r * l > 0){ + var s = Math[l < 0? "max" : "min"](l, r); + nodePos.x += el.scrollLeft; + el.scrollLeft += (isIE >= 8 && !backCompat && rtl)? -s : s; + nodePos.x -= el.scrollLeft; + } + if(bot * t > 0){ + nodePos.y += el.scrollTop; + el.scrollTop += Math[t < 0? "max" : "min"](t, bot); + nodePos.y -= el.scrollTop; + } + el = (el != scrollRoot) && !fixedPos && el.parentNode; + } + }catch(error){ + console.error('scrollIntoView: ' + error); + node.scrollIntoView(false); + } +}; + +} + +if(!dojo._hasResource["dijit._base.manager"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit._base.manager"] = true; +dojo.provide("dijit._base.manager"); + +dojo.declare("dijit.WidgetSet", null, { + // summary: + // A set of widgets indexed by id. A default instance of this class is + // available as `dijit.registry` + // + // example: + // Create a small list of widgets: + // | var ws = new dijit.WidgetSet(); + // | ws.add(dijit.byId("one")); + // | ws.add(dijit.byId("two")); + // | // destroy both: + // | ws.forEach(function(w){ w.destroy(); }); + // + // example: + // Using dijit.registry: + // | dijit.registry.forEach(function(w){ /* do something */ }); + + constructor: function(){ + this._hash = {}; + this.length = 0; + }, + + add: function(/*dijit._Widget*/ widget){ + // summary: + // Add a widget to this list. If a duplicate ID is detected, a error is thrown. + // + // widget: dijit._Widget + // Any dijit._Widget subclass. + if(this._hash[widget.id]){ + throw new Error("Tried to register widget with id==" + widget.id + " but that id is already registered"); + } + this._hash[widget.id] = widget; + this.length++; + }, + + remove: function(/*String*/ id){ + // summary: + // Remove a widget from this WidgetSet. Does not destroy the widget; simply + // removes the reference. + if(this._hash[id]){ + delete this._hash[id]; + this.length--; + } + }, + + forEach: function(/*Function*/ func, /* Object? */thisObj){ + // summary: + // Call specified function for each widget in this set. + // + // func: + // A callback function to run for each item. Is passed the widget, the index + // in the iteration, and the full hash, similar to `dojo.forEach`. + // + // thisObj: + // An optional scope parameter + // + // example: + // Using the default `dijit.registry` instance: + // | dijit.registry.forEach(function(widget){ + // | console.log(widget.declaredClass); + // | }); + // + // returns: + // Returns self, in order to allow for further chaining. + + thisObj = thisObj || dojo.global; + var i = 0, id; + for(id in this._hash){ + func.call(thisObj, this._hash[id], i++, this._hash); + } + return this; // dijit.WidgetSet + }, + + filter: function(/*Function*/ filter, /* Object? */thisObj){ + // summary: + // Filter down this WidgetSet to a smaller new WidgetSet + // Works the same as `dojo.filter` and `dojo.NodeList.filter` + // + // filter: + // Callback function to test truthiness. Is passed the widget + // reference and the pseudo-index in the object. + // + // thisObj: Object? + // Option scope to use for the filter function. + // + // example: + // Arbitrary: select the odd widgets in this list + // | dijit.registry.filter(function(w, i){ + // | return i % 2 == 0; + // | }).forEach(function(w){ /* odd ones */ }); + + thisObj = thisObj || dojo.global; + var res = new dijit.WidgetSet(), i = 0, id; + for(id in this._hash){ + var w = this._hash[id]; + if(filter.call(thisObj, w, i++, this._hash)){ + res.add(w); + } + } + return res; // dijit.WidgetSet + }, + + byId: function(/*String*/ id){ + // summary: + // Find a widget in this list by it's id. + // example: + // Test if an id is in a particular WidgetSet + // | var ws = new dijit.WidgetSet(); + // | ws.add(dijit.byId("bar")); + // | var t = ws.byId("bar") // returns a widget + // | var x = ws.byId("foo"); // returns undefined + + return this._hash[id]; // dijit._Widget + }, + + byClass: function(/*String*/ cls){ + // summary: + // Reduce this widgetset to a new WidgetSet of a particular `declaredClass` + // + // cls: String + // The Class to scan for. Full dot-notated string. + // + // example: + // Find all `dijit.TitlePane`s in a page: + // | dijit.registry.byClass("dijit.TitlePane").forEach(function(tp){ tp.close(); }); + + var res = new dijit.WidgetSet(), id, widget; + for(id in this._hash){ + widget = this._hash[id]; + if(widget.declaredClass == cls){ + res.add(widget); + } + } + return res; // dijit.WidgetSet +}, + + toArray: function(){ + // summary: + // Convert this WidgetSet into a true Array + // + // example: + // Work with the widget .domNodes in a real Array + // | dojo.map(dijit.registry.toArray(), function(w){ return w.domNode; }); + + var ar = []; + for(var id in this._hash){ + ar.push(this._hash[id]); + } + return ar; // dijit._Widget[] +}, + + map: function(/* Function */func, /* Object? */thisObj){ + // summary: + // Create a new Array from this WidgetSet, following the same rules as `dojo.map` + // example: + // | var nodes = dijit.registry.map(function(w){ return w.domNode; }); + // + // returns: + // A new array of the returned values. + return dojo.map(this.toArray(), func, thisObj); // Array + }, + + every: function(func, thisObj){ + // summary: + // A synthetic clone of `dojo.every` acting explicitly on this WidgetSet + // + // func: Function + // A callback function run for every widget in this list. Exits loop + // when the first false return is encountered. + // + // thisObj: Object? + // Optional scope parameter to use for the callback + + thisObj = thisObj || dojo.global; + var x = 0, i; + for(i in this._hash){ + if(!func.call(thisObj, this._hash[i], x++, this._hash)){ + return false; // Boolean + } + } + return true; // Boolean + }, + + some: function(func, thisObj){ + // summary: + // A synthetic clone of `dojo.some` acting explictly on this WidgetSet + // + // func: Function + // A callback function run for every widget in this list. Exits loop + // when the first true return is encountered. + // + // thisObj: Object? + // Optional scope parameter to use for the callback + + thisObj = thisObj || dojo.global; + var x = 0, i; + for(i in this._hash){ + if(func.call(thisObj, this._hash[i], x++, this._hash)){ + return true; // Boolean + } + } + return false; // Boolean + } + +}); + +(function(){ + + /*===== + dijit.registry = { + // summary: + // A list of widgets on a page. + // description: + // Is an instance of `dijit.WidgetSet` + }; + =====*/ + dijit.registry = new dijit.WidgetSet(); + + var hash = dijit.registry._hash, + attr = dojo.attr, + hasAttr = dojo.hasAttr, + style = dojo.style; + + dijit.byId = function(/*String|dijit._Widget*/ id){ + // summary: + // Returns a widget by it's id, or if passed a widget, no-op (like dojo.byId()) + return typeof id == "string" ? hash[id] : id; // dijit._Widget + }; + + var _widgetTypeCtr = {}; + dijit.getUniqueId = function(/*String*/widgetType){ + // summary: + // Generates a unique id for a given widgetType + + var id; + do{ + id = widgetType + "_" + + (widgetType in _widgetTypeCtr ? + ++_widgetTypeCtr[widgetType] : _widgetTypeCtr[widgetType] = 0); + }while(hash[id]); + return dijit._scopeName == "dijit" ? id : dijit._scopeName + "_" + id; // String + }; + + dijit.findWidgets = function(/*DomNode*/ root){ + // summary: + // Search subtree under root returning widgets found. + // Doesn't search for nested widgets (ie, widgets inside other widgets). + + var outAry = []; + + function getChildrenHelper(root){ + for(var node = root.firstChild; node; node = node.nextSibling){ + if(node.nodeType == 1){ + var widgetId = node.getAttribute("widgetId"); + if(widgetId){ + outAry.push(hash[widgetId]); + }else{ + getChildrenHelper(node); + } + } + } + } + + getChildrenHelper(root); + return outAry; + }; + + dijit._destroyAll = function(){ + // summary: + // Code to destroy all widgets and do other cleanup on page unload + + // Clean up focus manager lingering references to widgets and nodes + dijit._curFocus = null; + dijit._prevFocus = null; + dijit._activeStack = []; + + // Destroy all the widgets, top down + dojo.forEach(dijit.findWidgets(dojo.body()), function(widget){ + // Avoid double destroy of widgets like Menu that are attached to <body> + // even though they are logically children of other widgets. + if(!widget._destroyed){ + if(widget.destroyRecursive){ + widget.destroyRecursive(); + }else if(widget.destroy){ + widget.destroy(); + } + } + }); + }; + + if(dojo.isIE){ + // Only run _destroyAll() for IE because we think it's only necessary in that case, + // and because it causes problems on FF. See bug #3531 for details. + dojo.addOnWindowUnload(function(){ + dijit._destroyAll(); + }); + } + + dijit.byNode = function(/*DOMNode*/ node){ + // summary: + // Returns the widget corresponding to the given DOMNode + return hash[node.getAttribute("widgetId")]; // dijit._Widget + }; + + dijit.getEnclosingWidget = function(/*DOMNode*/ node){ + // summary: + // Returns the widget whose DOM tree contains the specified DOMNode, or null if + // the node is not contained within the DOM tree of any widget + while(node){ + var id = node.getAttribute && node.getAttribute("widgetId"); + if(id){ + return hash[id]; + } + node = node.parentNode; + } + return null; + }; + + var shown = (dijit._isElementShown = function(/*Element*/ elem){ + var s = style(elem); + return (s.visibility != "hidden") + && (s.visibility != "collapsed") + && (s.display != "none") + && (attr(elem, "type") != "hidden"); + }); + + dijit.hasDefaultTabStop = function(/*Element*/ elem){ + // summary: + // Tests if element is tab-navigable even without an explicit tabIndex setting + + // No explicit tabIndex setting, need to investigate node type + switch(elem.nodeName.toLowerCase()){ + case "a": + // An <a> w/out a tabindex is only navigable if it has an href + return hasAttr(elem, "href"); + case "area": + case "button": + case "input": + case "object": + case "select": + case "textarea": + // These are navigable by default + return true; + case "iframe": + // If it's an editor <iframe> then it's tab navigable. + //TODO: feature detect "designMode" in elem.contentDocument? + if(dojo.isMoz){ + try{ + return elem.contentDocument.designMode == "on"; + }catch(err){ + return false; + } + }else if(dojo.isWebKit){ + var doc = elem.contentDocument, + body = doc && doc.body; + return body && body.contentEditable == 'true'; + }else{ + // contentWindow.document isn't accessible within IE7/8 + // if the iframe.src points to a foreign url and this + // page contains an element, that could get focus + try{ + doc = elem.contentWindow.document; + body = doc && doc.body; + return body && body.firstChild && body.firstChild.contentEditable == 'true'; + }catch(e){ + return false; + } + } + default: + return elem.contentEditable == 'true'; + } + }; + + var isTabNavigable = (dijit.isTabNavigable = function(/*Element*/ elem){ + // summary: + // Tests if an element is tab-navigable + + // TODO: convert (and rename method) to return effective tabIndex; will save time in _getTabNavigable() + if(attr(elem, "disabled")){ + return false; + }else if(hasAttr(elem, "tabIndex")){ + // Explicit tab index setting + return attr(elem, "tabIndex") >= 0; // boolean + }else{ + // No explicit tabIndex setting, so depends on node type + return dijit.hasDefaultTabStop(elem); + } + }); + + dijit._getTabNavigable = function(/*DOMNode*/ root){ + // summary: + // Finds descendants of the specified root node. + // + // description: + // Finds the following descendants of the specified root node: + // * the first tab-navigable element in document order + // without a tabIndex or with tabIndex="0" + // * the last tab-navigable element in document order + // without a tabIndex or with tabIndex="0" + // * the first element in document order with the lowest + // positive tabIndex value + // * the last element in document order with the highest + // positive tabIndex value + var first, last, lowest, lowestTabindex, highest, highestTabindex; + var walkTree = function(/*DOMNode*/parent){ + dojo.query("> *", parent).forEach(function(child){ + // Skip hidden elements, and also non-HTML elements (those in custom namespaces) in IE, + // since show() invokes getAttribute("type"), which crash on VML nodes in IE. + if((dojo.isIE && child.scopeName!=="HTML") || !shown(child)){ + return; + } + + if(isTabNavigable(child)){ + var tabindex = attr(child, "tabIndex"); + if(!hasAttr(child, "tabIndex") || tabindex == 0){ + if(!first){ first = child; } + last = child; + }else if(tabindex > 0){ + if(!lowest || tabindex < lowestTabindex){ + lowestTabindex = tabindex; + lowest = child; + } + if(!highest || tabindex >= highestTabindex){ + highestTabindex = tabindex; + highest = child; + } + } + } + if(child.nodeName.toUpperCase() != 'SELECT'){ + walkTree(child); + } + }); + }; + if(shown(root)){ walkTree(root) } + return { first: first, last: last, lowest: lowest, highest: highest }; + } + dijit.getFirstInTabbingOrder = function(/*String|DOMNode*/ root){ + // summary: + // Finds the descendant of the specified root node + // that is first in the tabbing order + var elems = dijit._getTabNavigable(dojo.byId(root)); + return elems.lowest ? elems.lowest : elems.first; // DomNode + }; + + dijit.getLastInTabbingOrder = function(/*String|DOMNode*/ root){ + // summary: + // Finds the descendant of the specified root node + // that is last in the tabbing order + var elems = dijit._getTabNavigable(dojo.byId(root)); + return elems.last ? elems.last : elems.highest; // DomNode + }; + + /*===== + dojo.mixin(dijit, { + // defaultDuration: Integer + // The default animation speed (in ms) to use for all Dijit + // transitional animations, unless otherwise specified + // on a per-instance basis. Defaults to 200, overrided by + // `djConfig.defaultDuration` + defaultDuration: 200 + }); + =====*/ + + dijit.defaultDuration = dojo.config["defaultDuration"] || 200; + +})(); + +} + +if(!dojo._hasResource["dijit._base.focus"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit._base.focus"] = true; +dojo.provide("dijit._base.focus"); + + + // for dijit.isTabNavigable() + +// summary: +// These functions are used to query or set the focus and selection. +// +// Also, they trace when widgets become activated/deactivated, +// so that the widget can fire _onFocus/_onBlur events. +// "Active" here means something similar to "focused", but +// "focus" isn't quite the right word because we keep track of +// a whole stack of "active" widgets. Example: ComboButton --> Menu --> +// MenuItem. The onBlur event for ComboButton doesn't fire due to focusing +// on the Menu or a MenuItem, since they are considered part of the +// ComboButton widget. It only happens when focus is shifted +// somewhere completely different. + +dojo.mixin(dijit, { + // _curFocus: DomNode + // Currently focused item on screen + _curFocus: null, + + // _prevFocus: DomNode + // Previously focused item on screen + _prevFocus: null, + + isCollapsed: function(){ + // summary: + // Returns true if there is no text selected + return dijit.getBookmark().isCollapsed; + }, + + getBookmark: function(){ + // summary: + // Retrieves a bookmark that can be used with moveToBookmark to return to the same range + var bm, rg, tg, sel = dojo.doc.selection, cf = dijit._curFocus; + + if(dojo.global.getSelection){ + //W3C Range API for selections. + sel = dojo.global.getSelection(); + if(sel){ + if(sel.isCollapsed){ + tg = cf? cf.tagName : ""; + if(tg){ + //Create a fake rangelike item to restore selections. + tg = tg.toLowerCase(); + if(tg == "textarea" || + (tg == "input" && (!cf.type || cf.type.toLowerCase() == "text"))){ + sel = { + start: cf.selectionStart, + end: cf.selectionEnd, + node: cf, + pRange: true + }; + return {isCollapsed: (sel.end <= sel.start), mark: sel}; //Object. + } + } + bm = {isCollapsed:true}; + }else{ + rg = sel.getRangeAt(0); + bm = {isCollapsed: false, mark: rg.cloneRange()}; + } + } + }else if(sel){ + // If the current focus was a input of some sort and no selection, don't bother saving + // a native bookmark. This is because it causes issues with dialog/page selection restore. + // So, we need to create psuedo bookmarks to work with. + tg = cf ? cf.tagName : ""; + tg = tg.toLowerCase(); + if(cf && tg && (tg == "button" || tg == "textarea" || tg == "input")){ + if(sel.type && sel.type.toLowerCase() == "none"){ + return { + isCollapsed: true, + mark: null + } + }else{ + rg = sel.createRange(); + return { + isCollapsed: rg.text && rg.text.length?false:true, + mark: { + range: rg, + pRange: true + } + }; + } + } + bm = {}; + + //'IE' way for selections. + try{ + // createRange() throws exception when dojo in iframe + //and nothing selected, see #9632 + rg = sel.createRange(); + bm.isCollapsed = !(sel.type == 'Text' ? rg.htmlText.length : rg.length); + }catch(e){ + bm.isCollapsed = true; + return bm; + } + if(sel.type.toUpperCase() == 'CONTROL'){ + if(rg.length){ + bm.mark=[]; + var i=0,len=rg.length; + while(i<len){ + bm.mark.push(rg.item(i++)); + } + }else{ + bm.isCollapsed = true; + bm.mark = null; + } + }else{ + bm.mark = rg.getBookmark(); + } + }else{ + console.warn("No idea how to store the current selection for this browser!"); + } + return bm; // Object + }, + + moveToBookmark: function(/*Object*/bookmark){ + // summary: + // Moves current selection to a bookmark + // bookmark: + // This should be a returned object from dijit.getBookmark() + + var _doc = dojo.doc, + mark = bookmark.mark; + if(mark){ + if(dojo.global.getSelection){ + //W3C Rangi API (FF, WebKit, Opera, etc) + var sel = dojo.global.getSelection(); + if(sel && sel.removeAllRanges){ + if(mark.pRange){ + var r = mark; + var n = r.node; + n.selectionStart = r.start; + n.selectionEnd = r.end; + }else{ + sel.removeAllRanges(); + sel.addRange(mark); + } + }else{ + console.warn("No idea how to restore selection for this browser!"); + } + }else if(_doc.selection && mark){ + //'IE' way. + var rg; + if(mark.pRange){ + rg = mark.range; + }else if(dojo.isArray(mark)){ + rg = _doc.body.createControlRange(); + //rg.addElement does not have call/apply method, so can not call it directly + //rg is not available in "range.addElement(item)", so can't use that either + dojo.forEach(mark, function(n){ + rg.addElement(n); + }); + }else{ + rg = _doc.body.createTextRange(); + rg.moveToBookmark(mark); + } + rg.select(); + } + } + }, + + getFocus: function(/*Widget?*/ menu, /*Window?*/ openedForWindow){ + // summary: + // Called as getFocus(), this returns an Object showing the current focus + // and selected text. + // + // Called as getFocus(widget), where widget is a (widget representing) a button + // that was just pressed, it returns where focus was before that button + // was pressed. (Pressing the button may have either shifted focus to the button, + // or removed focus altogether.) In this case the selected text is not returned, + // since it can't be accurately determined. + // + // menu: dijit._Widget or {domNode: DomNode} structure + // The button that was just pressed. If focus has disappeared or moved + // to this button, returns the previous focus. In this case the bookmark + // information is already lost, and null is returned. + // + // openedForWindow: + // iframe in which menu was opened + // + // returns: + // A handle to restore focus/selection, to be passed to `dijit.focus` + var node = !dijit._curFocus || (menu && dojo.isDescendant(dijit._curFocus, menu.domNode)) ? dijit._prevFocus : dijit._curFocus; + return { + node: node, + bookmark: (node == dijit._curFocus) && dojo.withGlobal(openedForWindow || dojo.global, dijit.getBookmark), + openedForWindow: openedForWindow + }; // Object + }, + + focus: function(/*Object || DomNode */ handle){ + // summary: + // Sets the focused node and the selection according to argument. + // To set focus to an iframe's content, pass in the iframe itself. + // handle: + // object returned by get(), or a DomNode + + if(!handle){ return; } + + var node = "node" in handle ? handle.node : handle, // because handle is either DomNode or a composite object + bookmark = handle.bookmark, + openedForWindow = handle.openedForWindow, + collapsed = bookmark ? bookmark.isCollapsed : false; + + // Set the focus + // Note that for iframe's we need to use the <iframe> to follow the parentNode chain, + // but we need to set focus to iframe.contentWindow + if(node){ + var focusNode = (node.tagName.toLowerCase() == "iframe") ? node.contentWindow : node; + if(focusNode && focusNode.focus){ + try{ + // Gecko throws sometimes if setting focus is impossible, + // node not displayed or something like that + focusNode.focus(); + }catch(e){/*quiet*/} + } + dijit._onFocusNode(node); + } + + // set the selection + // do not need to restore if current selection is not empty + // (use keyboard to select a menu item) or if previous selection was collapsed + // as it may cause focus shift (Esp in IE). + if(bookmark && dojo.withGlobal(openedForWindow || dojo.global, dijit.isCollapsed) && !collapsed){ + if(openedForWindow){ + openedForWindow.focus(); + } + try{ + dojo.withGlobal(openedForWindow || dojo.global, dijit.moveToBookmark, null, [bookmark]); + }catch(e2){ + /*squelch IE internal error, see http://trac.dojotoolkit.org/ticket/1984 */ + } + } + }, + + // _activeStack: dijit._Widget[] + // List of currently active widgets (focused widget and it's ancestors) + _activeStack: [], + + registerIframe: function(/*DomNode*/ iframe){ + // summary: + // Registers listeners on the specified iframe so that any click + // or focus event on that iframe (or anything in it) is reported + // as a focus/click event on the <iframe> itself. + // description: + // Currently only used by editor. + // returns: + // Handle to pass to unregisterIframe() + return dijit.registerWin(iframe.contentWindow, iframe); + }, + + unregisterIframe: function(/*Object*/ handle){ + // summary: + // Unregisters listeners on the specified iframe created by registerIframe. + // After calling be sure to delete or null out the handle itself. + // handle: + // Handle returned by registerIframe() + + dijit.unregisterWin(handle); + }, + + registerWin: function(/*Window?*/targetWindow, /*DomNode?*/ effectiveNode){ + // summary: + // Registers listeners on the specified window (either the main + // window or an iframe's window) to detect when the user has clicked somewhere + // or focused somewhere. + // description: + // Users should call registerIframe() instead of this method. + // targetWindow: + // If specified this is the window associated with the iframe, + // i.e. iframe.contentWindow. + // effectiveNode: + // If specified, report any focus events inside targetWindow as + // an event on effectiveNode, rather than on evt.target. + // returns: + // Handle to pass to unregisterWin() + + // TODO: make this function private in 2.0; Editor/users should call registerIframe(), + + var mousedownListener = function(evt){ + dijit._justMouseDowned = true; + setTimeout(function(){ dijit._justMouseDowned = false; }, 0); + + // workaround weird IE bug where the click is on an orphaned node + // (first time clicking a Select/DropDownButton inside a TooltipDialog) + if(dojo.isIE && evt && evt.srcElement && evt.srcElement.parentNode == null){ + return; + } + + dijit._onTouchNode(effectiveNode || evt.target || evt.srcElement, "mouse"); + }; + //dojo.connect(targetWindow, "onscroll", ???); + + // Listen for blur and focus events on targetWindow's document. + // IIRC, I'm using attachEvent() rather than dojo.connect() because focus/blur events don't bubble + // through dojo.connect(), and also maybe to catch the focus events early, before onfocus handlers + // fire. + // Connect to <html> (rather than document) on IE to avoid memory leaks, but document on other browsers because + // (at least for FF) the focus event doesn't fire on <html> or <body>. + var doc = dojo.isIE ? targetWindow.document.documentElement : targetWindow.document; + if(doc){ + if(dojo.isIE){ + doc.attachEvent('onmousedown', mousedownListener); + var activateListener = function(evt){ + // IE reports that nodes like <body> have gotten focus, even though they have tabIndex=-1, + // Should consider those more like a mouse-click than a focus.... + if(evt.srcElement.tagName.toLowerCase() != "#document" && + dijit.isTabNavigable(evt.srcElement)){ + dijit._onFocusNode(effectiveNode || evt.srcElement); + }else{ + dijit._onTouchNode(effectiveNode || evt.srcElement); + } + }; + doc.attachEvent('onactivate', activateListener); + var deactivateListener = function(evt){ + dijit._onBlurNode(effectiveNode || evt.srcElement); + }; + doc.attachEvent('ondeactivate', deactivateListener); + + return function(){ + doc.detachEvent('onmousedown', mousedownListener); + doc.detachEvent('onactivate', activateListener); + doc.detachEvent('ondeactivate', deactivateListener); + doc = null; // prevent memory leak (apparent circular reference via closure) + }; + }else{ + doc.addEventListener('mousedown', mousedownListener, true); + var focusListener = function(evt){ + dijit._onFocusNode(effectiveNode || evt.target); + }; + doc.addEventListener('focus', focusListener, true); + var blurListener = function(evt){ + dijit._onBlurNode(effectiveNode || evt.target); + }; + doc.addEventListener('blur', blurListener, true); + + return function(){ + doc.removeEventListener('mousedown', mousedownListener, true); + doc.removeEventListener('focus', focusListener, true); + doc.removeEventListener('blur', blurListener, true); + doc = null; // prevent memory leak (apparent circular reference via closure) + }; + } + } + }, + + unregisterWin: function(/*Handle*/ handle){ + // summary: + // Unregisters listeners on the specified window (either the main + // window or an iframe's window) according to handle returned from registerWin(). + // After calling be sure to delete or null out the handle itself. + + // Currently our handle is actually a function + handle && handle(); + }, + + _onBlurNode: function(/*DomNode*/ node){ + // summary: + // Called when focus leaves a node. + // Usually ignored, _unless_ it *isn't* follwed by touching another node, + // which indicates that we tabbed off the last field on the page, + // in which case every widget is marked inactive + dijit._prevFocus = dijit._curFocus; + dijit._curFocus = null; + + if(dijit._justMouseDowned){ + // the mouse down caused a new widget to be marked as active; this blur event + // is coming late, so ignore it. + return; + } + + // if the blur event isn't followed by a focus event then mark all widgets as inactive. + if(dijit._clearActiveWidgetsTimer){ + clearTimeout(dijit._clearActiveWidgetsTimer); + } + dijit._clearActiveWidgetsTimer = setTimeout(function(){ + delete dijit._clearActiveWidgetsTimer; + dijit._setStack([]); + dijit._prevFocus = null; + }, 100); + }, + + _onTouchNode: function(/*DomNode*/ node, /*String*/ by){ + // summary: + // Callback when node is focused or mouse-downed + // node: + // The node that was touched. + // by: + // "mouse" if the focus/touch was caused by a mouse down event + + // ignore the recent blurNode event + if(dijit._clearActiveWidgetsTimer){ + clearTimeout(dijit._clearActiveWidgetsTimer); + delete dijit._clearActiveWidgetsTimer; + } + + // compute stack of active widgets (ex: ComboButton --> Menu --> MenuItem) + var newStack=[]; + try{ + while(node){ + var popupParent = dojo.attr(node, "dijitPopupParent"); + if(popupParent){ + node=dijit.byId(popupParent).domNode; + }else if(node.tagName && node.tagName.toLowerCase() == "body"){ + // is this the root of the document or just the root of an iframe? + if(node === dojo.body()){ + // node is the root of the main document + break; + } + // otherwise, find the iframe this node refers to (can't access it via parentNode, + // need to do this trick instead). window.frameElement is supported in IE/FF/Webkit + node=dojo.window.get(node.ownerDocument).frameElement; + }else{ + // if this node is the root node of a widget, then add widget id to stack, + // except ignore clicks on disabled widgets (actually focusing a disabled widget still works, + // to support MenuItem) + var id = node.getAttribute && node.getAttribute("widgetId"), + widget = id && dijit.byId(id); + if(widget && !(by == "mouse" && widget.get("disabled"))){ + newStack.unshift(id); + } + node=node.parentNode; + } + } + }catch(e){ /* squelch */ } + + dijit._setStack(newStack, by); + }, + + _onFocusNode: function(/*DomNode*/ node){ + // summary: + // Callback when node is focused + + if(!node){ + return; + } + + if(node.nodeType == 9){ + // Ignore focus events on the document itself. This is here so that + // (for example) clicking the up/down arrows of a spinner + // (which don't get focus) won't cause that widget to blur. (FF issue) + return; + } + + dijit._onTouchNode(node); + + if(node == dijit._curFocus){ return; } + if(dijit._curFocus){ + dijit._prevFocus = dijit._curFocus; + } + dijit._curFocus = node; + dojo.publish("focusNode", [node]); + }, + + _setStack: function(/*String[]*/ newStack, /*String*/ by){ + // summary: + // The stack of active widgets has changed. Send out appropriate events and records new stack. + // newStack: + // array of widget id's, starting from the top (outermost) widget + // by: + // "mouse" if the focus/touch was caused by a mouse down event + + var oldStack = dijit._activeStack; + dijit._activeStack = newStack; + + // compare old stack to new stack to see how many elements they have in common + for(var nCommon=0; nCommon<Math.min(oldStack.length, newStack.length); nCommon++){ + if(oldStack[nCommon] != newStack[nCommon]){ + break; + } + } + + var widget; + // for all elements that have gone out of focus, send blur event + for(var i=oldStack.length-1; i>=nCommon; i--){ + widget = dijit.byId(oldStack[i]); + if(widget){ + widget._focused = false; + widget._hasBeenBlurred = true; + if(widget._onBlur){ + widget._onBlur(by); + } + dojo.publish("widgetBlur", [widget, by]); + } + } + + // for all element that have come into focus, send focus event + for(i=nCommon; i<newStack.length; i++){ + widget = dijit.byId(newStack[i]); + if(widget){ + widget._focused = true; + if(widget._onFocus){ + widget._onFocus(by); + } + dojo.publish("widgetFocus", [widget, by]); + } + } + } +}); + +// register top window and all the iframes it contains +dojo.addOnLoad(function(){ + var handle = dijit.registerWin(window); + if(dojo.isIE){ + dojo.addOnWindowUnload(function(){ + dijit.unregisterWin(handle); + handle = null; + }) + } +}); + +} + +if(!dojo._hasResource["dojo.AdapterRegistry"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.AdapterRegistry"] = true; +dojo.provide("dojo.AdapterRegistry"); + +dojo.AdapterRegistry = function(/*Boolean?*/ returnWrappers){ + // summary: + // A registry to make contextual calling/searching easier. + // description: + // Objects of this class keep list of arrays in the form [name, check, + // wrap, directReturn] that are used to determine what the contextual + // result of a set of checked arguments is. All check/wrap functions + // in this registry should be of the same arity. + // example: + // | // create a new registry + // | var reg = new dojo.AdapterRegistry(); + // | reg.register("handleString", + // | dojo.isString, + // | function(str){ + // | // do something with the string here + // | } + // | ); + // | reg.register("handleArr", + // | dojo.isArray, + // | function(arr){ + // | // do something with the array here + // | } + // | ); + // | + // | // now we can pass reg.match() *either* an array or a string and + // | // the value we pass will get handled by the right function + // | reg.match("someValue"); // will call the first function + // | reg.match(["someValue"]); // will call the second + + this.pairs = []; + this.returnWrappers = returnWrappers || false; // Boolean +} + +dojo.extend(dojo.AdapterRegistry, { + register: function(/*String*/ name, /*Function*/ check, /*Function*/ wrap, /*Boolean?*/ directReturn, /*Boolean?*/ override){ + // summary: + // register a check function to determine if the wrap function or + // object gets selected + // name: + // a way to identify this matcher. + // check: + // a function that arguments are passed to from the adapter's + // match() function. The check function should return true if the + // given arguments are appropriate for the wrap function. + // directReturn: + // If directReturn is true, the value passed in for wrap will be + // returned instead of being called. Alternately, the + // AdapterRegistry can be set globally to "return not call" using + // the returnWrappers property. Either way, this behavior allows + // the registry to act as a "search" function instead of a + // function interception library. + // override: + // If override is given and true, the check function will be given + // highest priority. Otherwise, it will be the lowest priority + // adapter. + this.pairs[((override) ? "unshift" : "push")]([name, check, wrap, directReturn]); + }, + + match: function(/* ... */){ + // summary: + // Find an adapter for the given arguments. If no suitable adapter + // is found, throws an exception. match() accepts any number of + // arguments, all of which are passed to all matching functions + // from the registered pairs. + for(var i = 0; i < this.pairs.length; i++){ + var pair = this.pairs[i]; + if(pair[1].apply(this, arguments)){ + if((pair[3])||(this.returnWrappers)){ + return pair[2]; + }else{ + return pair[2].apply(this, arguments); + } + } + } + throw new Error("No match found"); + }, + + unregister: function(name){ + // summary: Remove a named adapter from the registry + + // FIXME: this is kind of a dumb way to handle this. On a large + // registry this will be slow-ish and we can use the name as a lookup + // should we choose to trade memory for speed. + for(var i = 0; i < this.pairs.length; i++){ + var pair = this.pairs[i]; + if(pair[0] == name){ + this.pairs.splice(i, 1); + return true; + } + } + return false; + } +}); + +} + +if(!dojo._hasResource["dijit._base.place"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit._base.place"] = true; +dojo.provide("dijit._base.place"); + + + + + +dijit.getViewport = function(){ + // summary: + // Returns the dimensions and scroll position of the viewable area of a browser window + + return dojo.window.getBox(); +}; + +/*===== +dijit.__Position = function(){ + // x: Integer + // horizontal coordinate in pixels, relative to document body + // y: Integer + // vertical coordinate in pixels, relative to document body + + thix.x = x; + this.y = y; +} +=====*/ + + +dijit.placeOnScreen = function( + /* DomNode */ node, + /* dijit.__Position */ pos, + /* String[] */ corners, + /* dijit.__Position? */ padding){ + // summary: + // Positions one of the node's corners at specified position + // such that node is fully visible in viewport. + // description: + // NOTE: node is assumed to be absolutely or relatively positioned. + // pos: + // Object like {x: 10, y: 20} + // corners: + // Array of Strings representing order to try corners in, like ["TR", "BL"]. + // Possible values are: + // * "BL" - bottom left + // * "BR" - bottom right + // * "TL" - top left + // * "TR" - top right + // padding: + // set padding to put some buffer around the element you want to position. + // example: + // Try to place node's top right corner at (10,20). + // If that makes node go (partially) off screen, then try placing + // bottom left corner at (10,20). + // | placeOnScreen(node, {x: 10, y: 20}, ["TR", "BL"]) + + var choices = dojo.map(corners, function(corner){ + var c = { corner: corner, pos: {x:pos.x,y:pos.y} }; + if(padding){ + c.pos.x += corner.charAt(1) == 'L' ? padding.x : -padding.x; + c.pos.y += corner.charAt(0) == 'T' ? padding.y : -padding.y; + } + return c; + }); + + return dijit._place(node, choices); +} + +dijit._place = function(/*DomNode*/ node, /* Array */ choices, /* Function */ layoutNode){ + // summary: + // Given a list of spots to put node, put it at the first spot where it fits, + // of if it doesn't fit anywhere then the place with the least overflow + // choices: Array + // Array of elements like: {corner: 'TL', pos: {x: 10, y: 20} } + // Above example says to put the top-left corner of the node at (10,20) + // layoutNode: Function(node, aroundNodeCorner, nodeCorner) + // for things like tooltip, they are displayed differently (and have different dimensions) + // based on their orientation relative to the parent. This adjusts the popup based on orientation. + + // get {x: 10, y: 10, w: 100, h:100} type obj representing position of + // viewport over document + var view = dojo.window.getBox(); + + // This won't work if the node is inside a <div style="position: relative">, + // so reattach it to dojo.doc.body. (Otherwise, the positioning will be wrong + // and also it might get cutoff) + if(!node.parentNode || String(node.parentNode.tagName).toLowerCase() != "body"){ + dojo.body().appendChild(node); + } + + var best = null; + dojo.some(choices, function(choice){ + var corner = choice.corner; + var pos = choice.pos; + + // configure node to be displayed in given position relative to button + // (need to do this in order to get an accurate size for the node, because + // a tooltips size changes based on position, due to triangle) + if(layoutNode){ + layoutNode(node, choice.aroundCorner, corner); + } + + // get node's size + var style = node.style; + var oldDisplay = style.display; + var oldVis = style.visibility; + style.visibility = "hidden"; + style.display = ""; + var mb = dojo.marginBox(node); + style.display = oldDisplay; + style.visibility = oldVis; + + // coordinates and size of node with specified corner placed at pos, + // and clipped by viewport + var startX = Math.max(view.l, corner.charAt(1) == 'L' ? pos.x : (pos.x - mb.w)), + startY = Math.max(view.t, corner.charAt(0) == 'T' ? pos.y : (pos.y - mb.h)), + endX = Math.min(view.l + view.w, corner.charAt(1) == 'L' ? (startX + mb.w) : pos.x), + endY = Math.min(view.t + view.h, corner.charAt(0) == 'T' ? (startY + mb.h) : pos.y), + width = endX - startX, + height = endY - startY, + overflow = (mb.w - width) + (mb.h - height); + + if(best == null || overflow < best.overflow){ + best = { + corner: corner, + aroundCorner: choice.aroundCorner, + x: startX, + y: startY, + w: width, + h: height, + overflow: overflow + }; + } + return !overflow; + }); + + node.style.left = best.x + "px"; + node.style.top = best.y + "px"; + if(best.overflow && layoutNode){ + layoutNode(node, best.aroundCorner, best.corner); + } + return best; +} + +dijit.placeOnScreenAroundNode = function( + /* DomNode */ node, + /* DomNode */ aroundNode, + /* Object */ aroundCorners, + /* Function? */ layoutNode){ + + // summary: + // Position node adjacent or kitty-corner to aroundNode + // such that it's fully visible in viewport. + // + // description: + // Place node such that corner of node touches a corner of + // aroundNode, and that node is fully visible. + // + // aroundCorners: + // Ordered list of pairs of corners to try matching up. + // Each pair of corners is represented as a key/value in the hash, + // where the key corresponds to the aroundNode's corner, and + // the value corresponds to the node's corner: + // + // | { aroundNodeCorner1: nodeCorner1, aroundNodeCorner2: nodeCorner2, ...} + // + // The following strings are used to represent the four corners: + // * "BL" - bottom left + // * "BR" - bottom right + // * "TL" - top left + // * "TR" - top right + // + // layoutNode: Function(node, aroundNodeCorner, nodeCorner) + // For things like tooltip, they are displayed differently (and have different dimensions) + // based on their orientation relative to the parent. This adjusts the popup based on orientation. + // + // example: + // | dijit.placeOnScreenAroundNode(node, aroundNode, {'BL':'TL', 'TR':'BR'}); + // This will try to position node such that node's top-left corner is at the same position + // as the bottom left corner of the aroundNode (ie, put node below + // aroundNode, with left edges aligned). If that fails it will try to put + // the bottom-right corner of node where the top right corner of aroundNode is + // (ie, put node above aroundNode, with right edges aligned) + // + + // get coordinates of aroundNode + aroundNode = dojo.byId(aroundNode); + var oldDisplay = aroundNode.style.display; + aroundNode.style.display=""; + // #3172: use the slightly tighter border box instead of marginBox + var aroundNodePos = dojo.position(aroundNode, true); + aroundNode.style.display=oldDisplay; + + // place the node around the calculated rectangle + return dijit._placeOnScreenAroundRect(node, + aroundNodePos.x, aroundNodePos.y, aroundNodePos.w, aroundNodePos.h, // rectangle + aroundCorners, layoutNode); +}; + +/*===== +dijit.__Rectangle = function(){ + // x: Integer + // horizontal offset in pixels, relative to document body + // y: Integer + // vertical offset in pixels, relative to document body + // width: Integer + // width in pixels + // height: Integer + // height in pixels + + this.x = x; + this.y = y; + this.width = width; + this.height = height; +} +=====*/ + + +dijit.placeOnScreenAroundRectangle = function( + /* DomNode */ node, + /* dijit.__Rectangle */ aroundRect, + /* Object */ aroundCorners, + /* Function */ layoutNode){ + + // summary: + // Like dijit.placeOnScreenAroundNode(), except that the "around" + // parameter is an arbitrary rectangle on the screen (x, y, width, height) + // instead of a dom node. + + return dijit._placeOnScreenAroundRect(node, + aroundRect.x, aroundRect.y, aroundRect.width, aroundRect.height, // rectangle + aroundCorners, layoutNode); +}; + +dijit._placeOnScreenAroundRect = function( + /* DomNode */ node, + /* Number */ x, + /* Number */ y, + /* Number */ width, + /* Number */ height, + /* Object */ aroundCorners, + /* Function */ layoutNode){ + + // summary: + // Like dijit.placeOnScreenAroundNode(), except it accepts coordinates + // of a rectangle to place node adjacent to. + + // TODO: combine with placeOnScreenAroundRectangle() + + // Generate list of possible positions for node + var choices = []; + for(var nodeCorner in aroundCorners){ + choices.push( { + aroundCorner: nodeCorner, + corner: aroundCorners[nodeCorner], + pos: { + x: x + (nodeCorner.charAt(1) == 'L' ? 0 : width), + y: y + (nodeCorner.charAt(0) == 'T' ? 0 : height) + } + }); + } + + return dijit._place(node, choices, layoutNode); +}; + +dijit.placementRegistry= new dojo.AdapterRegistry(); +dijit.placementRegistry.register("node", + function(n, x){ + return typeof x == "object" && + typeof x.offsetWidth != "undefined" && typeof x.offsetHeight != "undefined"; + }, + dijit.placeOnScreenAroundNode); +dijit.placementRegistry.register("rect", + function(n, x){ + return typeof x == "object" && + "x" in x && "y" in x && "width" in x && "height" in x; + }, + dijit.placeOnScreenAroundRectangle); + +dijit.placeOnScreenAroundElement = function( + /* DomNode */ node, + /* Object */ aroundElement, + /* Object */ aroundCorners, + /* Function */ layoutNode){ + + // summary: + // Like dijit.placeOnScreenAroundNode(), except it accepts an arbitrary object + // for the "around" argument and finds a proper processor to place a node. + + return dijit.placementRegistry.match.apply(dijit.placementRegistry, arguments); +}; + +dijit.getPopupAroundAlignment = function(/*Array*/ position, /*Boolean*/ leftToRight){ + // summary: + // Transforms the passed array of preferred positions into a format suitable for passing as the aroundCorners argument to dijit.placeOnScreenAroundElement. + // + // position: String[] + // This variable controls the position of the drop down. + // It's an array of strings with the following values: + // + // * before: places drop down to the left of the target node/widget, or to the right in + // the case of RTL scripts like Hebrew and Arabic + // * after: places drop down to the right of the target node/widget, or to the left in + // the case of RTL scripts like Hebrew and Arabic + // * above: drop down goes above target node + // * below: drop down goes below target node + // + // The list is positions is tried, in order, until a position is found where the drop down fits + // within the viewport. + // + // leftToRight: Boolean + // Whether the popup will be displaying in leftToRight mode. + // + var align = {}; + dojo.forEach(position, function(pos){ + switch(pos){ + case "after": + align[leftToRight ? "BR" : "BL"] = leftToRight ? "BL" : "BR"; + break; + case "before": + align[leftToRight ? "BL" : "BR"] = leftToRight ? "BR" : "BL"; + break; + case "below": + // first try to align left borders, next try to align right borders (or reverse for RTL mode) + align[leftToRight ? "BL" : "BR"] = leftToRight ? "TL" : "TR"; + align[leftToRight ? "BR" : "BL"] = leftToRight ? "TR" : "TL"; + break; + case "above": + default: + // first try to align left borders, next try to align right borders (or reverse for RTL mode) + align[leftToRight ? "TL" : "TR"] = leftToRight ? "BL" : "BR"; + align[leftToRight ? "TR" : "TL"] = leftToRight ? "BR" : "BL"; + break; + } + }); + return align; +}; + +} + +if(!dojo._hasResource["dijit._base.window"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit._base.window"] = true; +dojo.provide("dijit._base.window"); + + + +dijit.getDocumentWindow = function(doc){ + return dojo.window.get(doc); +}; + +} + +if(!dojo._hasResource["dijit._base.popup"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit._base.popup"] = true; +dojo.provide("dijit._base.popup"); + + + + + +/*===== +dijit.popup.__OpenArgs = function(){ + // popup: Widget + // widget to display + // parent: Widget + // the button etc. that is displaying this popup + // around: DomNode + // DOM node (typically a button); place popup relative to this node. (Specify this *or* "x" and "y" parameters.) + // x: Integer + // Absolute horizontal position (in pixels) to place node at. (Specify this *or* "around" parameter.) + // y: Integer + // Absolute vertical position (in pixels) to place node at. (Specify this *or* "around" parameter.) + // orient: Object|String + // When the around parameter is specified, orient should be an + // ordered list of tuples of the form (around-node-corner, popup-node-corner). + // dijit.popup.open() tries to position the popup according to each tuple in the list, in order, + // until the popup appears fully within the viewport. + // + // The default value is {BL:'TL', TL:'BL'}, which represents a list of two tuples: + // 1. (BL, TL) + // 2. (TL, BL) + // where BL means "bottom left" and "TL" means "top left". + // So by default, it first tries putting the popup below the around node, left-aligning them, + // and then tries to put it above the around node, still left-aligning them. Note that the + // default is horizontally reversed when in RTL mode. + // + // When an (x,y) position is specified rather than an around node, orient is either + // "R" or "L". R (for right) means that it tries to put the popup to the right of the mouse, + // specifically positioning the popup's top-right corner at the mouse position, and if that doesn't + // fit in the viewport, then it tries, in order, the bottom-right corner, the top left corner, + // and the top-right corner. + // onCancel: Function + // callback when user has canceled the popup by + // 1. hitting ESC or + // 2. by using the popup widget's proprietary cancel mechanism (like a cancel button in a dialog); + // i.e. whenever popupWidget.onCancel() is called, args.onCancel is called + // onClose: Function + // callback whenever this popup is closed + // onExecute: Function + // callback when user "executed" on the popup/sub-popup by selecting a menu choice, etc. (top menu only) + // padding: dijit.__Position + // adding a buffer around the opening position. This is only useful when around is not set. + this.popup = popup; + this.parent = parent; + this.around = around; + this.x = x; + this.y = y; + this.orient = orient; + this.onCancel = onCancel; + this.onClose = onClose; + this.onExecute = onExecute; + this.padding = padding; +} +=====*/ + +dijit.popup = { + // summary: + // This singleton is used to show/hide widgets as popups. + + // _stack: dijit._Widget[] + // Stack of currently popped up widgets. + // (someone opened _stack[0], and then it opened _stack[1], etc.) + _stack: [], + + // _beginZIndex: Number + // Z-index of the first popup. (If first popup opens other + // popups they get a higher z-index.) + _beginZIndex: 1000, + + _idGen: 1, + + moveOffScreen: function(/*DomNode*/ node){ + // summary: + // Initialization for nodes that will be used as popups + // + // description: + // Puts node inside a wrapper <div>, and + // positions wrapper div off screen, but not display:none, so that + // the widget doesn't appear in the page flow and/or cause a blank + // area at the bottom of the viewport (making scrollbar longer), but + // initialization of contained widgets works correctly + + var wrapper = node.parentNode; + + // Create a wrapper widget for when this node (in the future) will be used as a popup. + // This is done early because of IE bugs where creating/moving DOM nodes causes focus + // to go wonky, see tests/robot/Toolbar.html to reproduce + if(!wrapper || !dojo.hasClass(wrapper, "dijitPopup")){ + wrapper = dojo.create("div",{ + "class":"dijitPopup", + style:{ + visibility:"hidden", + top: "-9999px" + } + }, dojo.body()); + dijit.setWaiRole(wrapper, "presentation"); + wrapper.appendChild(node); + } + + + var s = node.style; + s.display = ""; + s.visibility = ""; + s.position = ""; + s.top = "0px"; + + dojo.style(wrapper, { + visibility: "hidden", + // prevent transient scrollbar causing misalign (#5776), and initial flash in upper left (#10111) + top: "-9999px" + }); + }, + + getTopPopup: function(){ + // summary: + // Compute the closest ancestor popup that's *not* a child of another popup. + // Ex: For a TooltipDialog with a button that spawns a tree of menus, find the popup of the button. + var stack = this._stack; + for(var pi=stack.length-1; pi > 0 && stack[pi].parent === stack[pi-1].widget; pi--){ + /* do nothing, just trying to get right value for pi */ + } + return stack[pi]; + }, + + open: function(/*dijit.popup.__OpenArgs*/ args){ + // summary: + // Popup the widget at the specified position + // + // example: + // opening at the mouse position + // | dijit.popup.open({popup: menuWidget, x: evt.pageX, y: evt.pageY}); + // + // example: + // opening the widget as a dropdown + // | dijit.popup.open({parent: this, popup: menuWidget, around: this.domNode, onClose: function(){...}}); + // + // Note that whatever widget called dijit.popup.open() should also listen to its own _onBlur callback + // (fired from _base/focus.js) to know that focus has moved somewhere else and thus the popup should be closed. + + var stack = this._stack, + widget = args.popup, + orient = args.orient || ( + (args.parent ? args.parent.isLeftToRight() : dojo._isBodyLtr()) ? + {'BL':'TL', 'BR':'TR', 'TL':'BL', 'TR':'BR'} : + {'BR':'TR', 'BL':'TL', 'TR':'BR', 'TL':'BL'} + ), + around = args.around, + id = (args.around && args.around.id) ? (args.around.id+"_dropdown") : ("popup_"+this._idGen++); + + + // The wrapper may have already been created, but in case it wasn't, create here + var wrapper = widget.domNode.parentNode; + if(!wrapper || !dojo.hasClass(wrapper, "dijitPopup")){ + this.moveOffScreen(widget.domNode); + wrapper = widget.domNode.parentNode; + } + + dojo.attr(wrapper, { + id: id, + style: { + zIndex: this._beginZIndex + stack.length + }, + "class": "dijitPopup " + (widget.baseClass || widget["class"] || "").split(" ")[0] +"Popup", + dijitPopupParent: args.parent ? args.parent.id : "" + }); + + if(dojo.isIE || dojo.isMoz){ + var iframe = wrapper.childNodes[1]; + if(!iframe){ + iframe = new dijit.BackgroundIframe(wrapper); + } + } + + // position the wrapper node and make it visible + var best = around ? + dijit.placeOnScreenAroundElement(wrapper, around, orient, widget.orient ? dojo.hitch(widget, "orient") : null) : + dijit.placeOnScreen(wrapper, args, orient == 'R' ? ['TR','BR','TL','BL'] : ['TL','BL','TR','BR'], args.padding); + + wrapper.style.visibility = "visible"; + widget.domNode.style.visibility = "visible"; // counteract effects from _HasDropDown + + var handlers = []; + + // provide default escape and tab key handling + // (this will work for any widget, not just menu) + handlers.push(dojo.connect(wrapper, "onkeypress", this, function(evt){ + if(evt.charOrCode == dojo.keys.ESCAPE && args.onCancel){ + dojo.stopEvent(evt); + args.onCancel(); + }else if(evt.charOrCode === dojo.keys.TAB){ + dojo.stopEvent(evt); + var topPopup = this.getTopPopup(); + if(topPopup && topPopup.onCancel){ + topPopup.onCancel(); + } + } + })); + + // watch for cancel/execute events on the popup and notify the caller + // (for a menu, "execute" means clicking an item) + if(widget.onCancel){ + handlers.push(dojo.connect(widget, "onCancel", args.onCancel)); + } + + handlers.push(dojo.connect(widget, widget.onExecute ? "onExecute" : "onChange", this, function(){ + var topPopup = this.getTopPopup(); + if(topPopup && topPopup.onExecute){ + topPopup.onExecute(); + } + })); + + stack.push({ + wrapper: wrapper, + iframe: iframe, + widget: widget, + parent: args.parent, + onExecute: args.onExecute, + onCancel: args.onCancel, + onClose: args.onClose, + handlers: handlers + }); + + if(widget.onOpen){ + // TODO: in 2.0 standardize onShow() (used by StackContainer) and onOpen() (used here) + widget.onOpen(best); + } + + return best; + }, + + close: function(/*dijit._Widget*/ popup){ + // summary: + // Close specified popup and any popups that it parented + + var stack = this._stack; + + // Basically work backwards from the top of the stack closing popups + // until we hit the specified popup, but IIRC there was some issue where closing + // a popup would cause others to close too. Thus if we are trying to close B in [A,B,C] + // closing C might close B indirectly and then the while() condition will run where stack==[A]... + // so the while condition is constructed defensively. + while(dojo.some(stack, function(elem){return elem.widget == popup;})){ + var top = stack.pop(), + wrapper = top.wrapper, + iframe = top.iframe, + widget = top.widget, + onClose = top.onClose; + + if(widget.onClose){ + // TODO: in 2.0 standardize onHide() (used by StackContainer) and onClose() (used here) + widget.onClose(); + } + dojo.forEach(top.handlers, dojo.disconnect); + + // Move the widget plus it's wrapper off screen, unless it has already been destroyed in above onClose() etc. + if(widget && widget.domNode){ + this.moveOffScreen(widget.domNode); + }else{ + dojo.destroy(wrapper); + } + + if(onClose){ + onClose(); + } + } + } +}; + +dijit._frames = new function(){ + // summary: + // cache of iframes + var queue = []; + + this.pop = function(){ + var iframe; + if(queue.length){ + iframe = queue.pop(); + iframe.style.display=""; + }else{ + if(dojo.isIE){ + var burl = dojo.config["dojoBlankHtmlUrl"] || (dojo.moduleUrl("dojo", "resources/blank.html")+"") || "javascript:\"\""; + var html="<iframe src='" + burl + "'" + + " style='position: absolute; left: 0px; top: 0px;" + + "z-index: -1; filter:Alpha(Opacity=\"0\");'>"; + iframe = dojo.doc.createElement(html); + }else{ + iframe = dojo.create("iframe"); + iframe.src = 'javascript:""'; + iframe.className = "dijitBackgroundIframe"; + dojo.style(iframe, "opacity", 0.1); + } + iframe.tabIndex = -1; // Magic to prevent iframe from getting focus on tab keypress - as style didnt work. + dijit.setWaiRole(iframe,"presentation"); + } + return iframe; + }; + + this.push = function(iframe){ + iframe.style.display="none"; + queue.push(iframe); + } +}(); + + +dijit.BackgroundIframe = function(/* DomNode */node){ + // summary: + // For IE/FF z-index schenanigans. id attribute is required. + // + // description: + // new dijit.BackgroundIframe(node) + // Makes a background iframe as a child of node, that fills + // area (and position) of node + + if(!node.id){ throw new Error("no id"); } + if(dojo.isIE || dojo.isMoz){ + var iframe = dijit._frames.pop(); + node.appendChild(iframe); + if(dojo.isIE<7){ + this.resize(node); + this._conn = dojo.connect(node, 'onresize', this, function(){ + this.resize(node); + }); + }else{ + dojo.style(iframe, { + width: '100%', + height: '100%' + }); + } + this.iframe = iframe; + } +}; + +dojo.extend(dijit.BackgroundIframe, { + resize: function(node){ + // summary: + // resize the iframe so its the same size as node + // description: + // this function is a no-op in all browsers except + // IE6, which does not support 100% width/height + // of absolute positioned iframes + if(this.iframe && dojo.isIE<7){ + dojo.style(this.iframe, { + width: node.offsetWidth + 'px', + height: node.offsetHeight + 'px' + }); + } + }, + destroy: function(){ + // summary: + // destroy the iframe + if(this._conn){ + dojo.disconnect(this._conn); + this._conn = null; + } + if(this.iframe){ + dijit._frames.push(this.iframe); + delete this.iframe; + } + } +}); + +} + +if(!dojo._hasResource["dijit._base.scroll"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit._base.scroll"] = true; +dojo.provide("dijit._base.scroll"); + + + +dijit.scrollIntoView = function(/*DomNode*/ node, /*Object?*/ pos){ + // summary: + // Scroll the passed node into view, if it is not already. + // Deprecated, use `dojo.window.scrollIntoView` instead. + + dojo.window.scrollIntoView(node, pos); +}; + +} + +if(!dojo._hasResource["dojo.uacss"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.uacss"] = true; +dojo.provide("dojo.uacss"); + +(function(){ + // summary: + // Applies pre-set CSS classes to the top-level HTML node, based on: + // - browser (ex: dj_ie) + // - browser version (ex: dj_ie6) + // - box model (ex: dj_contentBox) + // - text direction (ex: dijitRtl) + // + // In addition, browser, browser version, and box model are + // combined with an RTL flag when browser text is RTL. ex: dj_ie-rtl. + + var d = dojo, + html = d.doc.documentElement, + ie = d.isIE, + opera = d.isOpera, + maj = Math.floor, + ff = d.isFF, + boxModel = d.boxModel.replace(/-/,''), + + classes = { + dj_ie: ie, + dj_ie6: maj(ie) == 6, + dj_ie7: maj(ie) == 7, + dj_ie8: maj(ie) == 8, + dj_quirks: d.isQuirks, + dj_iequirks: ie && d.isQuirks, + + // NOTE: Opera not supported by dijit + dj_opera: opera, + + dj_khtml: d.isKhtml, + + dj_webkit: d.isWebKit, + dj_safari: d.isSafari, + dj_chrome: d.isChrome, + + dj_gecko: d.isMozilla, + dj_ff3: maj(ff) == 3 + }; // no dojo unsupported browsers + + classes["dj_" + boxModel] = true; + + // apply browser, browser version, and box model class names + var classStr = ""; + for(var clz in classes){ + if(classes[clz]){ + classStr += clz + " "; + } + } + html.className = d.trim(html.className + " " + classStr); + + // If RTL mode, then add dj_rtl flag plus repeat existing classes with -rtl extension. + // We can't run the code below until the <body> tag has loaded (so we can check for dir=rtl). + // Unshift() is to run sniff code before the parser. + dojo._loaders.unshift(function(){ + if(!dojo._isBodyLtr()){ + var rtlClassStr = "dj_rtl dijitRtl " + classStr.replace(/ /g, "-rtl ") + html.className = d.trim(html.className + " " + rtlClassStr); + } + }); +})(); + +} + +if(!dojo._hasResource["dijit._base.sniff"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit._base.sniff"] = true; +// summary: +// Applies pre-set CSS classes to the top-level HTML node, see +// `dojo.uacss` for details. +// +// Simply doing a require on this module will +// establish this CSS. Modified version of Morris' CSS hack. + +dojo.provide("dijit._base.sniff"); + + + +} + +if(!dojo._hasResource["dijit._base.typematic"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit._base.typematic"] = true; +dojo.provide("dijit._base.typematic"); + +dijit.typematic = { + // summary: + // These functions are used to repetitively call a user specified callback + // method when a specific key or mouse click over a specific DOM node is + // held down for a specific amount of time. + // Only 1 such event is allowed to occur on the browser page at 1 time. + + _fireEventAndReload: function(){ + this._timer = null; + this._callback(++this._count, this._node, this._evt); + + // Schedule next event, timer is at most minDelay (default 10ms) to avoid + // browser overload (particularly avoiding starving DOH robot so it never gets to send a mouseup) + this._currentTimeout = Math.max( + this._currentTimeout < 0 ? this._initialDelay : + (this._subsequentDelay > 1 ? this._subsequentDelay : Math.round(this._currentTimeout * this._subsequentDelay)), + this._minDelay); + this._timer = setTimeout(dojo.hitch(this, "_fireEventAndReload"), this._currentTimeout); + }, + + trigger: function(/*Event*/ evt, /*Object*/ _this, /*DOMNode*/ node, /*Function*/ callback, /*Object*/ obj, /*Number*/ subsequentDelay, /*Number*/ initialDelay, /*Number?*/ minDelay){ + // summary: + // Start a timed, repeating callback sequence. + // If already started, the function call is ignored. + // This method is not normally called by the user but can be + // when the normal listener code is insufficient. + // evt: + // key or mouse event object to pass to the user callback + // _this: + // pointer to the user's widget space. + // node: + // the DOM node object to pass the the callback function + // callback: + // function to call until the sequence is stopped called with 3 parameters: + // count: + // integer representing number of repeated calls (0..n) with -1 indicating the iteration has stopped + // node: + // the DOM node object passed in + // evt: + // key or mouse event object + // obj: + // user space object used to uniquely identify each typematic sequence + // subsequentDelay (optional): + // if > 1, the number of milliseconds until the 3->n events occur + // or else the fractional time multiplier for the next event's delay, default=0.9 + // initialDelay (optional): + // the number of milliseconds until the 2nd event occurs, default=500ms + // minDelay (optional): + // the maximum delay in milliseconds for event to fire, default=10ms + if(obj != this._obj){ + this.stop(); + this._initialDelay = initialDelay || 500; + this._subsequentDelay = subsequentDelay || 0.90; + this._minDelay = minDelay || 10; + this._obj = obj; + this._evt = evt; + this._node = node; + this._currentTimeout = -1; + this._count = -1; + this._callback = dojo.hitch(_this, callback); + this._fireEventAndReload(); + this._evt = dojo.mixin({faux: true}, evt); + } + }, + + stop: function(){ + // summary: + // Stop an ongoing timed, repeating callback sequence. + if(this._timer){ + clearTimeout(this._timer); + this._timer = null; + } + if(this._obj){ + this._callback(-1, this._node, this._evt); + this._obj = null; + } + }, + + addKeyListener: function(/*DOMNode*/ node, /*Object*/ keyObject, /*Object*/ _this, /*Function*/ callback, /*Number*/ subsequentDelay, /*Number*/ initialDelay, /*Number?*/ minDelay){ + // summary: + // Start listening for a specific typematic key. + // See also the trigger method for other parameters. + // keyObject: + // an object defining the key to listen for: + // charOrCode: + // the printable character (string) or keyCode (number) to listen for. + // keyCode: + // (deprecated - use charOrCode) the keyCode (number) to listen for (implies charCode = 0). + // charCode: + // (deprecated - use charOrCode) the charCode (number) to listen for. + // ctrlKey: + // desired ctrl key state to initiate the callback sequence: + // - pressed (true) + // - released (false) + // - either (unspecified) + // altKey: + // same as ctrlKey but for the alt key + // shiftKey: + // same as ctrlKey but for the shift key + // returns: + // an array of dojo.connect handles + if(keyObject.keyCode){ + keyObject.charOrCode = keyObject.keyCode; + dojo.deprecated("keyCode attribute parameter for dijit.typematic.addKeyListener is deprecated. Use charOrCode instead.", "", "2.0"); + }else if(keyObject.charCode){ + keyObject.charOrCode = String.fromCharCode(keyObject.charCode); + dojo.deprecated("charCode attribute parameter for dijit.typematic.addKeyListener is deprecated. Use charOrCode instead.", "", "2.0"); + } + return [ + dojo.connect(node, "onkeypress", this, function(evt){ + if(evt.charOrCode == keyObject.charOrCode && + (keyObject.ctrlKey === undefined || keyObject.ctrlKey == evt.ctrlKey) && + (keyObject.altKey === undefined || keyObject.altKey == evt.altKey) && + (keyObject.metaKey === undefined || keyObject.metaKey == (evt.metaKey || false)) && // IE doesn't even set metaKey + (keyObject.shiftKey === undefined || keyObject.shiftKey == evt.shiftKey)){ + dojo.stopEvent(evt); + dijit.typematic.trigger(evt, _this, node, callback, keyObject, subsequentDelay, initialDelay, minDelay); + }else if(dijit.typematic._obj == keyObject){ + dijit.typematic.stop(); + } + }), + dojo.connect(node, "onkeyup", this, function(evt){ + if(dijit.typematic._obj == keyObject){ + dijit.typematic.stop(); + } + }) + ]; + }, + + addMouseListener: function(/*DOMNode*/ node, /*Object*/ _this, /*Function*/ callback, /*Number*/ subsequentDelay, /*Number*/ initialDelay, /*Number?*/ minDelay){ + // summary: + // Start listening for a typematic mouse click. + // See the trigger method for other parameters. + // returns: + // an array of dojo.connect handles + var dc = dojo.connect; + return [ + dc(node, "mousedown", this, function(evt){ + dojo.stopEvent(evt); + dijit.typematic.trigger(evt, _this, node, callback, node, subsequentDelay, initialDelay, minDelay); + }), + dc(node, "mouseup", this, function(evt){ + dojo.stopEvent(evt); + dijit.typematic.stop(); + }), + dc(node, "mouseout", this, function(evt){ + dojo.stopEvent(evt); + dijit.typematic.stop(); + }), + dc(node, "mousemove", this, function(evt){ + evt.preventDefault(); + }), + dc(node, "dblclick", this, function(evt){ + dojo.stopEvent(evt); + if(dojo.isIE){ + dijit.typematic.trigger(evt, _this, node, callback, node, subsequentDelay, initialDelay, minDelay); + setTimeout(dojo.hitch(this, dijit.typematic.stop), 50); + } + }) + ]; + }, + + addListener: function(/*Node*/ mouseNode, /*Node*/ keyNode, /*Object*/ keyObject, /*Object*/ _this, /*Function*/ callback, /*Number*/ subsequentDelay, /*Number*/ initialDelay, /*Number?*/ minDelay){ + // summary: + // Start listening for a specific typematic key and mouseclick. + // This is a thin wrapper to addKeyListener and addMouseListener. + // See the addMouseListener and addKeyListener methods for other parameters. + // mouseNode: + // the DOM node object to listen on for mouse events. + // keyNode: + // the DOM node object to listen on for key events. + // returns: + // an array of dojo.connect handles + return this.addKeyListener(keyNode, keyObject, _this, callback, subsequentDelay, initialDelay, minDelay).concat( + this.addMouseListener(mouseNode, _this, callback, subsequentDelay, initialDelay, minDelay)); + } +}; + +} + +if(!dojo._hasResource["dijit._base.wai"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit._base.wai"] = true; +dojo.provide("dijit._base.wai"); + +dijit.wai = { + onload: function(){ + // summary: + // Detects if we are in high-contrast mode or not + + // This must be a named function and not an anonymous + // function, so that the widget parsing code can make sure it + // registers its onload function after this function. + // DO NOT USE "this" within this function. + + // create div for testing if high contrast mode is on or images are turned off + var div = dojo.create("div",{ + id: "a11yTestNode", + style:{ + cssText:'border: 1px solid;' + + 'border-color:red green;' + + 'position: absolute;' + + 'height: 5px;' + + 'top: -999px;' + + 'background-image: url("' + (dojo.config.blankGif || dojo.moduleUrl("dojo", "resources/blank.gif")) + '");' + } + }, dojo.body()); + + // test it + var cs = dojo.getComputedStyle(div); + if(cs){ + var bkImg = cs.backgroundImage; + var needsA11y = (cs.borderTopColor == cs.borderRightColor) || (bkImg != null && (bkImg == "none" || bkImg == "url(invalid-url:)" )); + dojo[needsA11y ? "addClass" : "removeClass"](dojo.body(), "dijit_a11y"); + if(dojo.isIE){ + div.outerHTML = ""; // prevent mixed-content warning, see http://support.microsoft.com/kb/925014 + }else{ + dojo.body().removeChild(div); + } + } + } +}; + +// Test if computer is in high contrast mode. +// Make sure the a11y test runs first, before widgets are instantiated. +if(dojo.isIE || dojo.isMoz){ // NOTE: checking in Safari messes things up + dojo._loaders.unshift(dijit.wai.onload); +} + +dojo.mixin(dijit, { + _XhtmlRoles: /banner|contentinfo|definition|main|navigation|search|note|secondary|seealso/, + + hasWaiRole: function(/*Element*/ elem, /*String*/ role){ + // summary: + // Determines if an element has a particular non-XHTML role. + // returns: + // True if elem has the specific non-XHTML role attribute and false if not. + // For backwards compatibility if role parameter not provided, + // returns true if has non XHTML role + var waiRole = this.getWaiRole(elem); + return role ? (waiRole.indexOf(role) > -1) : (waiRole.length > 0); + }, + + getWaiRole: function(/*Element*/ elem){ + // summary: + // Gets the non-XHTML role for an element (which should be a wai role). + // returns: + // The non-XHTML role of elem or an empty string if elem + // does not have a role. + return dojo.trim((dojo.attr(elem, "role") || "").replace(this._XhtmlRoles,"").replace("wairole:","")); + }, + + setWaiRole: function(/*Element*/ elem, /*String*/ role){ + // summary: + // Sets the role on an element. + // description: + // Replace existing role attribute with new role. + // If elem already has an XHTML role, append this role to XHTML role + // and remove other ARIA roles. + + var curRole = dojo.attr(elem, "role") || ""; + if(!this._XhtmlRoles.test(curRole)){ + dojo.attr(elem, "role", role); + }else{ + if((" "+ curRole +" ").indexOf(" " + role + " ") < 0){ + var clearXhtml = dojo.trim(curRole.replace(this._XhtmlRoles, "")); + var cleanRole = dojo.trim(curRole.replace(clearXhtml, "")); + dojo.attr(elem, "role", cleanRole + (cleanRole ? ' ' : '') + role); + } + } + }, + + removeWaiRole: function(/*Element*/ elem, /*String*/ role){ + // summary: + // Removes the specified non-XHTML role from an element. + // Removes role attribute if no specific role provided (for backwards compat.) + + var roleValue = dojo.attr(elem, "role"); + if(!roleValue){ return; } + if(role){ + var t = dojo.trim((" " + roleValue + " ").replace(" " + role + " ", " ")); + dojo.attr(elem, "role", t); + }else{ + elem.removeAttribute("role"); + } + }, + + hasWaiState: function(/*Element*/ elem, /*String*/ state){ + // summary: + // Determines if an element has a given state. + // description: + // Checks for an attribute called "aria-"+state. + // returns: + // true if elem has a value for the given state and + // false if it does not. + + return elem.hasAttribute ? elem.hasAttribute("aria-"+state) : !!elem.getAttribute("aria-"+state); + }, + + getWaiState: function(/*Element*/ elem, /*String*/ state){ + // summary: + // Gets the value of a state on an element. + // description: + // Checks for an attribute called "aria-"+state. + // returns: + // The value of the requested state on elem + // or an empty string if elem has no value for state. + + return elem.getAttribute("aria-"+state) || ""; + }, + + setWaiState: function(/*Element*/ elem, /*String*/ state, /*String*/ value){ + // summary: + // Sets a state on an element. + // description: + // Sets an attribute called "aria-"+state. + + elem.setAttribute("aria-"+state, value); + }, + + removeWaiState: function(/*Element*/ elem, /*String*/ state){ + // summary: + // Removes a state from an element. + // description: + // Sets an attribute called "aria-"+state. + + elem.removeAttribute("aria-"+state); + } +}); + +} + +if(!dojo._hasResource["dijit._base"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit._base"] = true; +dojo.provide("dijit._base"); + + + + + + + + + + + +} + +if(!dojo._hasResource["dojo.date.stamp"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.date.stamp"] = true; +dojo.provide("dojo.date.stamp"); + +// Methods to convert dates to or from a wire (string) format using well-known conventions + +dojo.date.stamp.fromISOString = function(/*String*/formattedString, /*Number?*/defaultTime){ + // summary: + // Returns a Date object given a string formatted according to a subset of the ISO-8601 standard. + // + // description: + // Accepts a string formatted according to a profile of ISO8601 as defined by + // [RFC3339](http://www.ietf.org/rfc/rfc3339.txt), except that partial input is allowed. + // Can also process dates as specified [by the W3C](http://www.w3.org/TR/NOTE-datetime) + // The following combinations are valid: + // + // * dates only + // | * yyyy + // | * yyyy-MM + // | * yyyy-MM-dd + // * times only, with an optional time zone appended + // | * THH:mm + // | * THH:mm:ss + // | * THH:mm:ss.SSS + // * and "datetimes" which could be any combination of the above + // + // timezones may be specified as Z (for UTC) or +/- followed by a time expression HH:mm + // Assumes the local time zone if not specified. Does not validate. Improperly formatted + // input may return null. Arguments which are out of bounds will be handled + // by the Date constructor (e.g. January 32nd typically gets resolved to February 1st) + // Only years between 100 and 9999 are supported. + // + // formattedString: + // A string such as 2005-06-30T08:05:00-07:00 or 2005-06-30 or T08:05:00 + // + // defaultTime: + // Used for defaults for fields omitted in the formattedString. + // Uses 1970-01-01T00:00:00.0Z by default. + + if(!dojo.date.stamp._isoRegExp){ + dojo.date.stamp._isoRegExp = +//TODO: could be more restrictive and check for 00-59, etc. + /^(?:(\d{4})(?:-(\d{2})(?:-(\d{2}))?)?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(.\d+)?)?((?:[+-](\d{2}):(\d{2}))|Z)?)?$/; + } + + var match = dojo.date.stamp._isoRegExp.exec(formattedString), + result = null; + + if(match){ + match.shift(); + if(match[1]){match[1]--;} // Javascript Date months are 0-based + if(match[6]){match[6] *= 1000;} // Javascript Date expects fractional seconds as milliseconds + + if(defaultTime){ + // mix in defaultTime. Relatively expensive, so use || operators for the fast path of defaultTime === 0 + defaultTime = new Date(defaultTime); + dojo.forEach(dojo.map(["FullYear", "Month", "Date", "Hours", "Minutes", "Seconds", "Milliseconds"], function(prop){ + return defaultTime["get" + prop](); + }), function(value, index){ + match[index] = match[index] || value; + }); + } + result = new Date(match[0]||1970, match[1]||0, match[2]||1, match[3]||0, match[4]||0, match[5]||0, match[6]||0); //TODO: UTC defaults + if(match[0] < 100){ + result.setFullYear(match[0] || 1970); + } + + var offset = 0, + zoneSign = match[7] && match[7].charAt(0); + if(zoneSign != 'Z'){ + offset = ((match[8] || 0) * 60) + (Number(match[9]) || 0); + if(zoneSign != '-'){ offset *= -1; } + } + if(zoneSign){ + offset -= result.getTimezoneOffset(); + } + if(offset){ + result.setTime(result.getTime() + offset * 60000); + } + } + + return result; // Date or null +} + +/*===== + dojo.date.stamp.__Options = function(){ + // selector: String + // "date" or "time" for partial formatting of the Date object. + // Both date and time will be formatted by default. + // zulu: Boolean + // if true, UTC/GMT is used for a timezone + // milliseconds: Boolean + // if true, output milliseconds + this.selector = selector; + this.zulu = zulu; + this.milliseconds = milliseconds; + } +=====*/ + +dojo.date.stamp.toISOString = function(/*Date*/dateObject, /*dojo.date.stamp.__Options?*/options){ + // summary: + // Format a Date object as a string according a subset of the ISO-8601 standard + // + // description: + // When options.selector is omitted, output follows [RFC3339](http://www.ietf.org/rfc/rfc3339.txt) + // The local time zone is included as an offset from GMT, except when selector=='time' (time without a date) + // Does not check bounds. Only years between 100 and 9999 are supported. + // + // dateObject: + // A Date object + + var _ = function(n){ return (n < 10) ? "0" + n : n; }; + options = options || {}; + var formattedDate = [], + getter = options.zulu ? "getUTC" : "get", + date = ""; + if(options.selector != "time"){ + var year = dateObject[getter+"FullYear"](); + date = ["0000".substr((year+"").length)+year, _(dateObject[getter+"Month"]()+1), _(dateObject[getter+"Date"]())].join('-'); + } + formattedDate.push(date); + if(options.selector != "date"){ + var time = [_(dateObject[getter+"Hours"]()), _(dateObject[getter+"Minutes"]()), _(dateObject[getter+"Seconds"]())].join(':'); + var millis = dateObject[getter+"Milliseconds"](); + if(options.milliseconds){ + time += "."+ (millis < 100 ? "0" : "") + _(millis); + } + if(options.zulu){ + time += "Z"; + }else if(options.selector != "time"){ + var timezoneOffset = dateObject.getTimezoneOffset(); + var absOffset = Math.abs(timezoneOffset); + time += (timezoneOffset > 0 ? "-" : "+") + + _(Math.floor(absOffset/60)) + ":" + _(absOffset%60); + } + formattedDate.push(time); + } + return formattedDate.join('T'); // String +} + +} + +if(!dojo._hasResource["dojo.parser"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.parser"] = true; +dojo.provide("dojo.parser"); + + +new Date("X"); // workaround for #11279, new Date("") == NaN + +dojo.parser = new function(){ + // summary: The Dom/Widget parsing package + + var d = dojo; + this._attrName = d._scopeName + "Type"; + this._query = "[" + this._attrName + "]"; + + function val2type(/*Object*/ value){ + // summary: + // Returns name of type of given value. + + if(d.isString(value)){ return "string"; } + if(typeof value == "number"){ return "number"; } + if(typeof value == "boolean"){ return "boolean"; } + if(d.isFunction(value)){ return "function"; } + if(d.isArray(value)){ return "array"; } // typeof [] == "object" + if(value instanceof Date) { return "date"; } // assume timestamp + if(value instanceof d._Url){ return "url"; } + return "object"; + } + + function str2obj(/*String*/ value, /*String*/ type){ + // summary: + // Convert given string value to given type + switch(type){ + case "string": + return value; + case "number": + return value.length ? Number(value) : NaN; + case "boolean": + // for checked/disabled value might be "" or "checked". interpret as true. + return typeof value == "boolean" ? value : !(value.toLowerCase()=="false"); + case "function": + if(d.isFunction(value)){ + // IE gives us a function, even when we say something like onClick="foo" + // (in which case it gives us an invalid function "function(){ foo }"). + // Therefore, convert to string + value=value.toString(); + value=d.trim(value.substring(value.indexOf('{')+1, value.length-1)); + } + try{ + if(value === "" || value.search(/[^\w\.]+/i) != -1){ + // The user has specified some text for a function like "return x+5" + return new Function(value); + }else{ + // The user has specified the name of a function like "myOnClick" + // or a single word function "return" + return d.getObject(value, false) || new Function(value); + } + }catch(e){ return new Function(); } + case "array": + return value ? value.split(/\s*,\s*/) : []; + case "date": + switch(value){ + case "": return new Date(""); // the NaN of dates + case "now": return new Date(); // current date + default: return d.date.stamp.fromISOString(value); + } + case "url": + return d.baseUrl + value; + default: + return d.fromJson(value); + } + } + + var instanceClasses = { + // map from fully qualified name (like "dijit.Button") to structure like + // { cls: dijit.Button, params: {label: "string", disabled: "boolean"} } + }; + + // Widgets like BorderContainer add properties to _Widget via dojo.extend(). + // If BorderContainer is loaded after _Widget's parameter list has been cached, + // we need to refresh that parameter list (for _Widget and all widgets that extend _Widget). + dojo.connect(dojo, "extend", function(){ + instanceClasses = {}; + }); + + function getClassInfo(/*String*/ className){ + // className: + // fully qualified name (like "dijit.form.Button") + // returns: + // structure like + // { + // cls: dijit.Button, + // params: { label: "string", disabled: "boolean"} + // } + + if(!instanceClasses[className]){ + // get pointer to widget class + var cls = d.getObject(className); + if(!cls){ return null; } // class not defined [yet] + + var proto = cls.prototype; + + // get table of parameter names & types + var params = {}, dummyClass = {}; + for(var name in proto){ + if(name.charAt(0)=="_"){ continue; } // skip internal properties + if(name in dummyClass){ continue; } // skip "constructor" and "toString" + var defVal = proto[name]; + params[name]=val2type(defVal); + } + + instanceClasses[className] = { cls: cls, params: params }; + } + return instanceClasses[className]; + } + + this._functionFromScript = function(script){ + var preamble = ""; + var suffix = ""; + var argsStr = script.getAttribute("args"); + if(argsStr){ + d.forEach(argsStr.split(/\s*,\s*/), function(part, idx){ + preamble += "var "+part+" = arguments["+idx+"]; "; + }); + } + var withStr = script.getAttribute("with"); + if(withStr && withStr.length){ + d.forEach(withStr.split(/\s*,\s*/), function(part){ + preamble += "with("+part+"){"; + suffix += "}"; + }); + } + return new Function(preamble+script.innerHTML+suffix); + } + + this.instantiate = function(/* Array */nodes, /* Object? */mixin, /* Object? */args){ + // summary: + // Takes array of nodes, and turns them into class instances and + // potentially calls a startup method to allow them to connect with + // any children. + // nodes: Array + // Array of nodes or objects like + // | { + // | type: "dijit.form.Button", + // | node: DOMNode, + // | scripts: [ ... ], // array of <script type="dojo/..."> children of node + // | inherited: { ... } // settings inherited from ancestors like dir, theme, etc. + // | } + // mixin: Object? + // An object that will be mixed in with each node in the array. + // Values in the mixin will override values in the node, if they + // exist. + // args: Object? + // An object used to hold kwArgs for instantiation. + // Supports 'noStart' and inherited. + var thelist = [], dp = dojo.parser; + mixin = mixin||{}; + args = args||{}; + + d.forEach(nodes, function(obj){ + if(!obj){ return; } + + // Get pointers to DOMNode, dojoType string, and clsInfo (metadata about the dojoType), etc.s + var node, type, clsInfo, clazz, scripts; + if(obj.node){ + // new format of nodes[] array, object w/lots of properties pre-computed for me + node = obj.node; + type = obj.type; + clsInfo = obj.clsInfo || (type && getClassInfo(type)); + clazz = clsInfo && clsInfo.cls; + scripts = obj.scripts; + }else{ + // old (backwards compatible) format of nodes[] array, simple array of DOMNodes + node = obj; + type = dp._attrName in mixin ? mixin[dp._attrName] : node.getAttribute(dp._attrName); + clsInfo = type && getClassInfo(type); + clazz = clsInfo && clsInfo.cls; + scripts = (clazz && (clazz._noScript || clazz.prototype._noScript) ? [] : + d.query("> script[type^='dojo/']", node)); + } + if(!clsInfo){ + throw new Error("Could not load class '" + type); + } + + // Setup hash to hold parameter settings for this widget. Start with the parameter + // settings inherited from ancestors ("dir" and "lang"). + // Inherited setting may later be overridden by explicit settings on node itself. + var params = {}, + attributes = node.attributes; + if(args.defaults){ + // settings for the document itself (or whatever subtree is being parsed) + dojo.mixin(params, args.defaults); + } + if(obj.inherited){ + // settings from dir=rtl or lang=... on a node above this node + dojo.mixin(params, obj.inherited); + } + + // read parameters (ie, attributes) specified on DOMNode + // clsInfo.params lists expected params like {"checked": "boolean", "n": "number"} + for(var name in clsInfo.params){ + var item = name in mixin?{value:mixin[name],specified:true}:attributes.getNamedItem(name); + if(!item || (!item.specified && (!dojo.isIE || name.toLowerCase()!="value"))){ continue; } + var value = item.value; + // Deal with IE quirks for 'class' and 'style' + switch(name){ + case "class": + value = "className" in mixin?mixin.className:node.className; + break; + case "style": + value = "style" in mixin?mixin.style:(node.style && node.style.cssText); // FIXME: Opera? + } + var _type = clsInfo.params[name]; + if(typeof value == "string"){ + params[name] = str2obj(value, _type); + }else{ + params[name] = value; + } + } + + // Process <script type="dojo/*"> script tags + // <script type="dojo/method" event="foo"> tags are added to params, and passed to + // the widget on instantiation. + // <script type="dojo/method"> tags (with no event) are executed after instantiation + // <script type="dojo/connect" event="foo"> tags are dojo.connected after instantiation + // note: dojo/* script tags cannot exist in self closing widgets, like <input /> + var connects = [], // functions to connect after instantiation + calls = []; // functions to call after instantiation + + d.forEach(scripts, function(script){ + node.removeChild(script); + var event = script.getAttribute("event"), + type = script.getAttribute("type"), + nf = d.parser._functionFromScript(script); + if(event){ + if(type == "dojo/connect"){ + connects.push({event: event, func: nf}); + }else{ + params[event] = nf; + } + }else{ + calls.push(nf); + } + }); + + var markupFactory = clazz.markupFactory || clazz.prototype && clazz.prototype.markupFactory; + // create the instance + var instance = markupFactory ? markupFactory(params, node, clazz) : new clazz(params, node); + thelist.push(instance); + + // map it to the JS namespace if that makes sense + var jsname = node.getAttribute("jsId"); + if(jsname){ + d.setObject(jsname, instance); + } + + // process connections and startup functions + d.forEach(connects, function(connect){ + d.connect(instance, connect.event, null, connect.func); + }); + d.forEach(calls, function(func){ + func.call(instance); + }); + }); + + // Call startup on each top level instance if it makes sense (as for + // widgets). Parent widgets will recursively call startup on their + // (non-top level) children + if(!mixin._started){ + // TODO: for 2.0, when old instantiate() API is desupported, store parent-child + // relationships in the nodes[] array so that no getParent() call is needed. + // Note that will require a parse() call from ContentPane setting a param that the + // ContentPane is the parent widget (so that the parse doesn't call startup() on the + // ContentPane's children) + d.forEach(thelist, function(instance){ + if( !args.noStart && instance && + instance.startup && + !instance._started && + (!instance.getParent || !instance.getParent()) + ){ + instance.startup(); + } + }); + } + return thelist; + }; + + this.parse = function(/*DomNode?*/ rootNode, /* Object? */ args){ + // summary: + // Scan the DOM for class instances, and instantiate them. + // + // description: + // Search specified node (or root node) recursively for class instances, + // and instantiate them Searches for + // dojoType="qualified.class.name" + // + // rootNode: DomNode? + // A default starting root node from which to start the parsing. Can be + // omitted, defaulting to the entire document. If omitted, the `args` + // object can be passed in this place. If the `args` object has a + // `rootNode` member, that is used. + // + // args: + // a kwArgs object passed along to instantiate() + // + // * noStart: Boolean? + // when set will prevent the parser from calling .startup() + // when locating the nodes. + // * rootNode: DomNode? + // identical to the function's `rootNode` argument, though + // allowed to be passed in via this `args object. + // * inherited: Object + // Hash possibly containing dir and lang settings to be applied to + // parsed widgets, unless there's another setting on a sub-node that overrides + // + // + // example: + // Parse all widgets on a page: + // | dojo.parser.parse(); + // + // example: + // Parse all classes within the node with id="foo" + // | dojo.parser.parse(dojo.byId(foo)); + // + // example: + // Parse all classes in a page, but do not call .startup() on any + // child + // | dojo.parser.parse({ noStart: true }) + // + // example: + // Parse all classes in a node, but do not call .startup() + // | dojo.parser.parse(someNode, { noStart:true }); + // | // or + // | dojo.parser.parse({ noStart:true, rootNode: someNode }); + + // determine the root node based on the passed arguments. + var root; + if(!args && rootNode && rootNode.rootNode){ + args = rootNode; + root = args.rootNode; + }else{ + root = rootNode; + } + + var attrName = this._attrName; + function scan(parent, list){ + // summary: + // Parent is an Object representing a DOMNode, with or without a dojoType specified. + // Scan parent's children looking for nodes with dojoType specified, storing in list[]. + // If parent has a dojoType, also collects <script type=dojo/*> children and stores in parent.scripts[]. + // parent: Object + // Object representing the parent node, like + // | { + // | node: DomNode, // scan children of this node + // | inherited: {dir: "rtl"}, // dir/lang setting inherited from above node + // | + // | // attributes only set if node has dojoType specified + // | scripts: [], // empty array, put <script type=dojo/*> in here + // | clsInfo: { cls: dijit.form.Button, ...} + // | } + // list: DomNode[] + // Output array of objects (same format as parent) representing nodes to be turned into widgets + + // Effective dir and lang settings on parent node, either set directly or inherited from grandparent + var inherited = dojo.clone(parent.inherited); + dojo.forEach(["dir", "lang"], function(name){ + var val = parent.node.getAttribute(name); + if(val){ + inherited[name] = val; + } + }); + + // if parent is a widget, then search for <script type=dojo/*> tags and put them in scripts[]. + var scripts = parent.scripts; + + // unless parent is a widget with the stopParser flag set, continue search for dojoType, recursively + var recurse = !parent.clsInfo || !parent.clsInfo.cls.prototype.stopParser; + + // scan parent's children looking for dojoType and <script type=dojo/*> + for(var child = parent.node.firstChild; child; child = child.nextSibling){ + if(child.nodeType == 1){ + var type = recurse && child.getAttribute(attrName); + if(type){ + // if dojoType specified, add to output array of nodes to instantiate + var params = { + "type": type, + clsInfo: getClassInfo(type), // note: won't find classes declared via dojo.Declaration + node: child, + scripts: [], // <script> nodes that are parent's children + inherited: inherited // dir & lang attributes inherited from parent + }; + list.push(params); + + // Recurse, collecting <script type="dojo/..."> children, and also looking for + // descendant nodes with dojoType specified (unless the widget has the stopParser flag), + scan(params, list); + }else if(scripts && child.nodeName.toLowerCase() == "script"){ + // if <script type="dojo/...">, save in scripts[] + type = child.getAttribute("type"); + if (type && /^dojo\//i.test(type)) { + scripts.push(child); + } + }else if(recurse){ + // Recurse, looking for grandchild nodes with dojoType specified + scan({ + node: child, + inherited: inherited + }, list); + } + } + } + } + + // Make list of all nodes on page w/dojoType specified + var list = []; + scan({ + node: root ? dojo.byId(root) : dojo.body(), + inherited: (args && args.inherited) || { + dir: dojo._isBodyLtr() ? "ltr" : "rtl" + } + }, list); + + // go build the object instances + return this.instantiate(list, null, args); // Array + }; +}(); + +//Register the parser callback. It should be the first callback +//after the a11y test. + +(function(){ + var parseRunner = function(){ + if(dojo.config.parseOnLoad){ + dojo.parser.parse(); + } + }; + + // FIXME: need to clobber cross-dependency!! + if(dojo.exists("dijit.wai.onload") && (dijit.wai.onload === dojo._loaders[0])){ + dojo._loaders.splice(1, 0, parseRunner); + }else{ + dojo._loaders.unshift(parseRunner); + } +})(); + +} + +if(!dojo._hasResource["dijit._Widget"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit._Widget"] = true; +dojo.provide("dijit._Widget"); + +dojo.require( "dijit._base" ); + + +// This code is to assist deferring dojo.connect() calls in widgets (connecting to events on the widgets' +// DOM nodes) until someone actually needs to monitor that event. +dojo.connect(dojo, "_connect", + function(/*dijit._Widget*/ widget, /*String*/ event){ + if(widget && dojo.isFunction(widget._onConnect)){ + widget._onConnect(event); + } + }); + +dijit._connectOnUseEventHandler = function(/*Event*/ event){}; + +// Keep track of where the last keydown event was, to help avoid generating +// spurious ondijitclick events when: +// 1. focus is on a <button> or <a> +// 2. user presses then releases the ENTER key +// 3. onclick handler fires and shifts focus to another node, with an ondijitclick handler +// 4. onkeyup event fires, causing the ondijitclick handler to fire +dijit._lastKeyDownNode = null; +if(dojo.isIE){ + (function(){ + var keydownCallback = function(evt){ + dijit._lastKeyDownNode = evt.srcElement; + }; + dojo.doc.attachEvent('onkeydown', keydownCallback); + dojo.addOnWindowUnload(function(){ + dojo.doc.detachEvent('onkeydown', keydownCallback); + }); + })(); +}else{ + dojo.doc.addEventListener('keydown', function(evt){ + dijit._lastKeyDownNode = evt.target; + }, true); +} + +(function(){ + +var _attrReg = {}, // cached results from getSetterAttributes + getSetterAttributes = function(widget){ + // summary: + // Returns list of attributes with custom setters for specified widget + var dc = widget.declaredClass; + if(!_attrReg[dc]){ + var r = [], + attrs, + proto = widget.constructor.prototype; + for(var fxName in proto){ + if(dojo.isFunction(proto[fxName]) && (attrs = fxName.match(/^_set([a-zA-Z]*)Attr$/)) && attrs[1]){ + r.push(attrs[1].charAt(0).toLowerCase() + attrs[1].substr(1)); + } + } + _attrReg[dc] = r; + } + return _attrReg[dc] || []; // String[] + }; + +dojo.declare("dijit._Widget", null, { + // summary: + // Base class for all Dijit widgets. + + // id: [const] String + // A unique, opaque ID string that can be assigned by users or by the + // system. If the developer passes an ID which is known not to be + // unique, the specified ID is ignored and the system-generated ID is + // used instead. + id: "", + + // lang: [const] String + // Rarely used. Overrides the default Dojo locale used to render this widget, + // as defined by the [HTML LANG](http://www.w3.org/TR/html401/struct/dirlang.html#adef-lang) attribute. + // Value must be among the list of locales specified during by the Dojo bootstrap, + // formatted according to [RFC 3066](http://www.ietf.org/rfc/rfc3066.txt) (like en-us). + lang: "", + + // dir: [const] String + // Bi-directional support, as defined by the [HTML DIR](http://www.w3.org/TR/html401/struct/dirlang.html#adef-dir) + // attribute. Either left-to-right "ltr" or right-to-left "rtl". If undefined, widgets renders in page's + // default direction. + dir: "", + + // class: String + // HTML class attribute + "class": "", + + // style: String||Object + // HTML style attributes as cssText string or name/value hash + style: "", + + // title: String + // HTML title attribute. + // + // For form widgets this specifies a tooltip to display when hovering over + // the widget (just like the native HTML title attribute). + // + // For TitlePane or for when this widget is a child of a TabContainer, AccordionContainer, + // etc., it's used to specify the tab label, accordion pane title, etc. + title: "", + + // tooltip: String + // When this widget's title attribute is used to for a tab label, accordion pane title, etc., + // this specifies the tooltip to appear when the mouse is hovered over that text. + tooltip: "", + + // baseClass: [protected] String + // Root CSS class of the widget (ex: dijitTextBox), used to construct CSS classes to indicate + // widget state. + baseClass: "", + + // srcNodeRef: [readonly] DomNode + // pointer to original DOM node + srcNodeRef: null, + + // domNode: [readonly] DomNode + // This is our visible representation of the widget! Other DOM + // Nodes may by assigned to other properties, usually through the + // template system's dojoAttachPoint syntax, but the domNode + // property is the canonical "top level" node in widget UI. + domNode: null, + + // containerNode: [readonly] DomNode + // Designates where children of the source DOM node will be placed. + // "Children" in this case refers to both DOM nodes and widgets. + // For example, for myWidget: + // + // | <div dojoType=myWidget> + // | <b> here's a plain DOM node + // | <span dojoType=subWidget>and a widget</span> + // | <i> and another plain DOM node </i> + // | </div> + // + // containerNode would point to: + // + // | <b> here's a plain DOM node + // | <span dojoType=subWidget>and a widget</span> + // | <i> and another plain DOM node </i> + // + // In templated widgets, "containerNode" is set via a + // dojoAttachPoint assignment. + // + // containerNode must be defined for any widget that accepts innerHTML + // (like ContentPane or BorderContainer or even Button), and conversely + // is null for widgets that don't, like TextBox. + containerNode: null, + +/*===== + // _started: Boolean + // startup() has completed. + _started: false, +=====*/ + + // attributeMap: [protected] Object + // attributeMap sets up a "binding" between attributes (aka properties) + // of the widget and the widget's DOM. + // Changes to widget attributes listed in attributeMap will be + // reflected into the DOM. + // + // For example, calling attr('title', 'hello') + // on a TitlePane will automatically cause the TitlePane's DOM to update + // with the new title. + // + // attributeMap is a hash where the key is an attribute of the widget, + // and the value reflects a binding to a: + // + // - DOM node attribute + // | focus: {node: "focusNode", type: "attribute"} + // Maps this.focus to this.focusNode.focus + // + // - DOM node innerHTML + // | title: { node: "titleNode", type: "innerHTML" } + // Maps this.title to this.titleNode.innerHTML + // + // - DOM node innerText + // | title: { node: "titleNode", type: "innerText" } + // Maps this.title to this.titleNode.innerText + // + // - DOM node CSS class + // | myClass: { node: "domNode", type: "class" } + // Maps this.myClass to this.domNode.className + // + // If the value is an array, then each element in the array matches one of the + // formats of the above list. + // + // There are also some shorthands for backwards compatibility: + // - string --> { node: string, type: "attribute" }, for example: + // | "focusNode" ---> { node: "focusNode", type: "attribute" } + // - "" --> { node: "domNode", type: "attribute" } + attributeMap: {id:"", dir:"", lang:"", "class":"", style:"", title:""}, + + // _deferredConnects: [protected] Object + // attributeMap addendum for event handlers that should be connected only on first use + _deferredConnects: { + onClick: "", + onDblClick: "", + onKeyDown: "", + onKeyPress: "", + onKeyUp: "", + onMouseMove: "", + onMouseDown: "", + onMouseOut: "", + onMouseOver: "", + onMouseLeave: "", + onMouseEnter: "", + onMouseUp: "" + }, + + onClick: dijit._connectOnUseEventHandler, + /*===== + onClick: function(event){ + // summary: + // Connect to this function to receive notifications of mouse click events. + // event: + // mouse Event + // tags: + // callback + }, + =====*/ + onDblClick: dijit._connectOnUseEventHandler, + /*===== + onDblClick: function(event){ + // summary: + // Connect to this function to receive notifications of mouse double click events. + // event: + // mouse Event + // tags: + // callback + }, + =====*/ + onKeyDown: dijit._connectOnUseEventHandler, + /*===== + onKeyDown: function(event){ + // summary: + // Connect to this function to receive notifications of keys being pressed down. + // event: + // key Event + // tags: + // callback + }, + =====*/ + onKeyPress: dijit._connectOnUseEventHandler, + /*===== + onKeyPress: function(event){ + // summary: + // Connect to this function to receive notifications of printable keys being typed. + // event: + // key Event + // tags: + // callback + }, + =====*/ + onKeyUp: dijit._connectOnUseEventHandler, + /*===== + onKeyUp: function(event){ + // summary: + // Connect to this function to receive notifications of keys being released. + // event: + // key Event + // tags: + // callback + }, + =====*/ + onMouseDown: dijit._connectOnUseEventHandler, + /*===== + onMouseDown: function(event){ + // summary: + // Connect to this function to receive notifications of when the mouse button is pressed down. + // event: + // mouse Event + // tags: + // callback + }, + =====*/ + onMouseMove: dijit._connectOnUseEventHandler, + /*===== + onMouseMove: function(event){ + // summary: + // Connect to this function to receive notifications of when the mouse moves over nodes contained within this widget. + // event: + // mouse Event + // tags: + // callback + }, + =====*/ + onMouseOut: dijit._connectOnUseEventHandler, + /*===== + onMouseOut: function(event){ + // summary: + // Connect to this function to receive notifications of when the mouse moves off of nodes contained within this widget. + // event: + // mouse Event + // tags: + // callback + }, + =====*/ + onMouseOver: dijit._connectOnUseEventHandler, + /*===== + onMouseOver: function(event){ + // summary: + // Connect to this function to receive notifications of when the mouse moves onto nodes contained within this widget. + // event: + // mouse Event + // tags: + // callback + }, + =====*/ + onMouseLeave: dijit._connectOnUseEventHandler, + /*===== + onMouseLeave: function(event){ + // summary: + // Connect to this function to receive notifications of when the mouse moves off of this widget. + // event: + // mouse Event + // tags: + // callback + }, + =====*/ + onMouseEnter: dijit._connectOnUseEventHandler, + /*===== + onMouseEnter: function(event){ + // summary: + // Connect to this function to receive notifications of when the mouse moves onto this widget. + // event: + // mouse Event + // tags: + // callback + }, + =====*/ + onMouseUp: dijit._connectOnUseEventHandler, + /*===== + onMouseUp: function(event){ + // summary: + // Connect to this function to receive notifications of when the mouse button is released. + // event: + // mouse Event + // tags: + // callback + }, + =====*/ + + // Constants used in templates + + // _blankGif: [protected] String + // Path to a blank 1x1 image. + // Used by <img> nodes in templates that really get their image via CSS background-image. + _blankGif: (dojo.config.blankGif || dojo.moduleUrl("dojo", "resources/blank.gif")).toString(), + + //////////// INITIALIZATION METHODS /////////////////////////////////////// + + postscript: function(/*Object?*/params, /*DomNode|String*/srcNodeRef){ + // summary: + // Kicks off widget instantiation. See create() for details. + // tags: + // private + this.create(params, srcNodeRef); + }, + + create: function(/*Object?*/params, /*DomNode|String?*/srcNodeRef){ + // summary: + // Kick off the life-cycle of a widget + // params: + // Hash of initialization parameters for widget, including + // scalar values (like title, duration etc.) and functions, + // typically callbacks like onClick. + // srcNodeRef: + // If a srcNodeRef (DOM node) is specified: + // - use srcNodeRef.innerHTML as my contents + // - if this is a behavioral widget then apply behavior + // to that srcNodeRef + // - otherwise, replace srcNodeRef with my generated DOM + // tree + // description: + // Create calls a number of widget methods (postMixInProperties, buildRendering, postCreate, + // etc.), some of which of you'll want to override. See http://docs.dojocampus.org/dijit/_Widget + // for a discussion of the widget creation lifecycle. + // + // Of course, adventurous developers could override create entirely, but this should + // only be done as a last resort. + // tags: + // private + + // store pointer to original DOM tree + this.srcNodeRef = dojo.byId(srcNodeRef); + + // For garbage collection. An array of handles returned by Widget.connect() + // Each handle returned from Widget.connect() is an array of handles from dojo.connect() + this._connects = []; + + // For garbage collection. An array of handles returned by Widget.subscribe() + // The handle returned from Widget.subscribe() is the handle returned from dojo.subscribe() + this._subscribes = []; + + // To avoid double-connects, remove entries from _deferredConnects + // that have been setup manually by a subclass (ex, by dojoAttachEvent). + // If a subclass has redefined a callback (ex: onClick) then assume it's being + // connected to manually. + this._deferredConnects = dojo.clone(this._deferredConnects); + for(var attr in this.attributeMap){ + delete this._deferredConnects[attr]; // can't be in both attributeMap and _deferredConnects + } + for(attr in this._deferredConnects){ + if(this[attr] !== dijit._connectOnUseEventHandler){ + delete this._deferredConnects[attr]; // redefined, probably dojoAttachEvent exists + } + } + + //mixin our passed parameters + if(this.srcNodeRef && (typeof this.srcNodeRef.id == "string")){ this.id = this.srcNodeRef.id; } + if(params){ + this.params = params; + dojo.mixin(this,params); + } + this.postMixInProperties(); + + // generate an id for the widget if one wasn't specified + // (be sure to do this before buildRendering() because that function might + // expect the id to be there.) + if(!this.id){ + this.id = dijit.getUniqueId(this.declaredClass.replace(/\./g,"_")); + } + dijit.registry.add(this); + + this.buildRendering(); + + if(this.domNode){ + // Copy attributes listed in attributeMap into the [newly created] DOM for the widget. + this._applyAttributes(); + + var source = this.srcNodeRef; + if(source && source.parentNode){ + source.parentNode.replaceChild(this.domNode, source); + } + + // If the developer has specified a handler as a widget parameter + // (ex: new Button({onClick: ...}) + // then naturally need to connect from DOM node to that handler immediately, + for(attr in this.params){ + this._onConnect(attr); + } + } + + if(this.domNode){ + this.domNode.setAttribute("widgetId", this.id); + } + this.postCreate(); + + // If srcNodeRef has been processed and removed from the DOM (e.g. TemplatedWidget) then delete it to allow GC. + if(this.srcNodeRef && !this.srcNodeRef.parentNode){ + delete this.srcNodeRef; + } + + this._created = true; + }, + + _applyAttributes: function(){ + // summary: + // Step during widget creation to copy all widget attributes to the + // DOM as per attributeMap and _setXXXAttr functions. + // description: + // Skips over blank/false attribute values, unless they were explicitly specified + // as parameters to the widget, since those are the default anyway, + // and setting tabIndex="" is different than not setting tabIndex at all. + // + // It processes the attributes in the attribute map first, and then + // it goes through and processes the attributes for the _setXXXAttr + // functions that have been specified + // tags: + // private + var condAttrApply = function(attr, scope){ + if((scope.params && attr in scope.params) || scope[attr]){ + scope.set(attr, scope[attr]); + } + }; + + // Do the attributes in attributeMap + for(var attr in this.attributeMap){ + condAttrApply(attr, this); + } + + // And also any attributes with custom setters + dojo.forEach(getSetterAttributes(this), function(a){ + if(!(a in this.attributeMap)){ + condAttrApply(a, this); + } + }, this); + }, + + postMixInProperties: function(){ + // summary: + // Called after the parameters to the widget have been read-in, + // but before the widget template is instantiated. Especially + // useful to set properties that are referenced in the widget + // template. + // tags: + // protected + }, + + buildRendering: function(){ + // summary: + // Construct the UI for this widget, setting this.domNode + // description: + // Most widgets will mixin `dijit._Templated`, which implements this + // method. + // tags: + // protected + this.domNode = this.srcNodeRef || dojo.create('div'); + }, + + postCreate: function(){ + // summary: + // Processing after the DOM fragment is created + // description: + // Called after the DOM fragment has been created, but not necessarily + // added to the document. Do not include any operations which rely on + // node dimensions or placement. + // tags: + // protected + + // baseClass is a single class name or occasionally a space-separated list of names. + // Add those classes to the DOMNod. If RTL mode then also add with Rtl suffix. + if(this.baseClass){ + var classes = this.baseClass.split(" "); + if(!this.isLeftToRight()){ + classes = classes.concat( dojo.map(classes, function(name){ return name+"Rtl"; })); + } + dojo.addClass(this.domNode, classes); + } + }, + + startup: function(){ + // summary: + // Processing after the DOM fragment is added to the document + // description: + // Called after a widget and its children have been created and added to the page, + // and all related widgets have finished their create() cycle, up through postCreate(). + // This is useful for composite widgets that need to control or layout sub-widgets. + // Many layout widgets can use this as a wiring phase. + this._started = true; + }, + + //////////// DESTROY FUNCTIONS //////////////////////////////// + + destroyRecursive: function(/*Boolean?*/ preserveDom){ + // summary: + // Destroy this widget and its descendants + // description: + // This is the generic "destructor" function that all widget users + // should call to cleanly discard with a widget. Once a widget is + // destroyed, it is removed from the manager object. + // preserveDom: + // If true, this method will leave the original DOM structure + // alone of descendant Widgets. Note: This will NOT work with + // dijit._Templated widgets. + + this._beingDestroyed = true; + this.destroyDescendants(preserveDom); + this.destroy(preserveDom); + }, + + destroy: function(/*Boolean*/ preserveDom){ + // summary: + // Destroy this widget, but not its descendants. + // This method will, however, destroy internal widgets such as those used within a template. + // preserveDom: Boolean + // If true, this method will leave the original DOM structure alone. + // Note: This will not yet work with _Templated widgets + + this._beingDestroyed = true; + this.uninitialize(); + var d = dojo, + dfe = d.forEach, + dun = d.unsubscribe; + dfe(this._connects, function(array){ + dfe(array, d.disconnect); + }); + dfe(this._subscribes, function(handle){ + dun(handle); + }); + + // destroy widgets created as part of template, etc. + dfe(this._supportingWidgets || [], function(w){ + if(w.destroyRecursive){ + w.destroyRecursive(); + }else if(w.destroy){ + w.destroy(); + } + }); + + this.destroyRendering(preserveDom); + dijit.registry.remove(this.id); + this._destroyed = true; + }, + + destroyRendering: function(/*Boolean?*/ preserveDom){ + // summary: + // Destroys the DOM nodes associated with this widget + // preserveDom: + // If true, this method will leave the original DOM structure alone + // during tear-down. Note: this will not work with _Templated + // widgets yet. + // tags: + // protected + + if(this.bgIframe){ + this.bgIframe.destroy(preserveDom); + delete this.bgIframe; + } + + if(this.domNode){ + if(preserveDom){ + dojo.removeAttr(this.domNode, "widgetId"); + }else{ + dojo.destroy(this.domNode); + } + delete this.domNode; + } + + if(this.srcNodeRef){ + if(!preserveDom){ + dojo.destroy(this.srcNodeRef); + } + delete this.srcNodeRef; + } + }, + + destroyDescendants: function(/*Boolean?*/ preserveDom){ + // summary: + // Recursively destroy the children of this widget and their + // descendants. + // preserveDom: + // If true, the preserveDom attribute is passed to all descendant + // widget's .destroy() method. Not for use with _Templated + // widgets. + + // get all direct descendants and destroy them recursively + dojo.forEach(this.getChildren(), function(widget){ + if(widget.destroyRecursive){ + widget.destroyRecursive(preserveDom); + } + }); + }, + + + uninitialize: function(){ + // summary: + // Stub function. Override to implement custom widget tear-down + // behavior. + // tags: + // protected + return false; + }, + + ////////////////// MISCELLANEOUS METHODS /////////////////// + + onFocus: function(){ + // summary: + // Called when the widget becomes "active" because + // it or a widget inside of it either has focus, or has recently + // been clicked. + // tags: + // callback + }, + + onBlur: function(){ + // summary: + // Called when the widget stops being "active" because + // focus moved to something outside of it, or the user + // clicked somewhere outside of it, or the widget was + // hidden. + // tags: + // callback + }, + + _onFocus: function(e){ + // summary: + // This is where widgets do processing for when they are active, + // such as changing CSS classes. See onFocus() for more details. + // tags: + // protected + this.onFocus(); + }, + + _onBlur: function(){ + // summary: + // This is where widgets do processing for when they stop being active, + // such as changing CSS classes. See onBlur() for more details. + // tags: + // protected + this.onBlur(); + }, + + _onConnect: function(/*String*/ event){ + // summary: + // Called when someone connects to one of my handlers. + // "Turn on" that handler if it isn't active yet. + // + // This is also called for every single initialization parameter + // so need to do nothing for parameters like "id". + // tags: + // private + if(event in this._deferredConnects){ + var mapNode = this[this._deferredConnects[event] || 'domNode']; + this.connect(mapNode, event.toLowerCase(), event); + delete this._deferredConnects[event]; + } + }, + + _setClassAttr: function(/*String*/ value){ + // summary: + // Custom setter for the CSS "class" attribute + // tags: + // protected + var mapNode = this[this.attributeMap["class"] || 'domNode']; + dojo.removeClass(mapNode, this["class"]) + this["class"] = value; + dojo.addClass(mapNode, value); + }, + + _setStyleAttr: function(/*String||Object*/ value){ + // summary: + // Sets the style attribut of the widget according to value, + // which is either a hash like {height: "5px", width: "3px"} + // or a plain string + // description: + // Determines which node to set the style on based on style setting + // in attributeMap. + // tags: + // protected + + var mapNode = this[this.attributeMap.style || 'domNode']; + + // Note: technically we should revert any style setting made in a previous call + // to his method, but that's difficult to keep track of. + + if(dojo.isObject(value)){ + dojo.style(mapNode, value); + }else{ + if(mapNode.style.cssText){ + mapNode.style.cssText += "; " + value; + }else{ + mapNode.style.cssText = value; + } + } + + this.style = value; + }, + + setAttribute: function(/*String*/ attr, /*anything*/ value){ + // summary: + // Deprecated. Use set() instead. + // tags: + // deprecated + dojo.deprecated(this.declaredClass+"::setAttribute(attr, value) is deprecated. Use set() instead.", "", "2.0"); + this.set(attr, value); + }, + + _attrToDom: function(/*String*/ attr, /*String*/ value){ + // summary: + // Reflect a widget attribute (title, tabIndex, duration etc.) to + // the widget DOM, as specified in attributeMap. + // + // description: + // Also sets this["attr"] to the new value. + // Note some attributes like "type" + // cannot be processed this way as they are not mutable. + // + // tags: + // private + + var commands = this.attributeMap[attr]; + dojo.forEach(dojo.isArray(commands) ? commands : [commands], function(command){ + + // Get target node and what we are doing to that node + var mapNode = this[command.node || command || "domNode"]; // DOM node + var type = command.type || "attribute"; // class, innerHTML, innerText, or attribute + + switch(type){ + case "attribute": + if(dojo.isFunction(value)){ // functions execute in the context of the widget + value = dojo.hitch(this, value); + } + + // Get the name of the DOM node attribute; usually it's the same + // as the name of the attribute in the widget (attr), but can be overridden. + // Also maps handler names to lowercase, like onSubmit --> onsubmit + var attrName = command.attribute ? command.attribute : + (/^on[A-Z][a-zA-Z]*$/.test(attr) ? attr.toLowerCase() : attr); + + dojo.attr(mapNode, attrName, value); + break; + case "innerText": + mapNode.innerHTML = ""; + mapNode.appendChild(dojo.doc.createTextNode(value)); + break; + case "innerHTML": + mapNode.innerHTML = value; + break; + case "class": + dojo.removeClass(mapNode, this[attr]); + dojo.addClass(mapNode, value); + break; + } + }, this); + this[attr] = value; + }, + + attr: function(/*String|Object*/name, /*Object?*/value){ + // summary: + // Set or get properties on a widget instance. + // name: + // The property to get or set. If an object is passed here and not + // a string, its keys are used as names of attributes to be set + // and the value of the object as values to set in the widget. + // value: + // Optional. If provided, attr() operates as a setter. If omitted, + // the current value of the named property is returned. + // description: + // This method is deprecated, use get() or set() directly. + + // Print deprecation warning but only once per calling function + if(dojo.config.isDebug){ + var alreadyCalledHash = arguments.callee._ach || (arguments.callee._ach = {}), + caller = (arguments.callee.caller || "unknown caller").toString(); + if(!alreadyCalledHash[caller]){ + dojo.deprecated(this.declaredClass + "::attr() is deprecated. Use get() or set() instead, called from " + + caller, "", "2.0"); + alreadyCalledHash[caller] = true; + } + } + + var args = arguments.length; + if(args >= 2 || typeof name === "object"){ // setter + return this.set.apply(this, arguments); + }else{ // getter + return this.get(name); + } + }, + + get: function(name){ + // summary: + // Get a property from a widget. + // name: + // The property to get. + // description: + // Get a named property from a widget. The property may + // potentially be retrieved via a getter method. If no getter is defined, this + // just retrieves the object's property. + // For example, if the widget has a properties "foo" + // and "bar" and a method named "_getFooAttr", calling: + // | myWidget.get("foo"); + // would be equivalent to writing: + // | widget._getFooAttr(); + // and: + // | myWidget.get("bar"); + // would be equivalent to writing: + // | widget.bar; + var names = this._getAttrNames(name); + return this[names.g] ? this[names.g]() : this[name]; + }, + + set: function(name, value){ + // summary: + // Set a property on a widget + // name: + // The property to set. + // value: + // The value to set in the property. + // description: + // Sets named properties on a widget which may potentially be handled by a + // setter in the widget. + // For example, if the widget has a properties "foo" + // and "bar" and a method named "_setFooAttr", calling: + // | myWidget.set("foo", "Howdy!"); + // would be equivalent to writing: + // | widget._setFooAttr("Howdy!"); + // and: + // | myWidget.set("bar", 3); + // would be equivalent to writing: + // | widget.bar = 3; + // + // set() may also be called with a hash of name/value pairs, ex: + // | myWidget.set({ + // | foo: "Howdy", + // | bar: 3 + // | }) + // This is equivalent to calling set(foo, "Howdy") and set(bar, 3) + + if(typeof name === "object"){ + for(var x in name){ + this.set(x, name[x]); + } + return this; + } + var names = this._getAttrNames(name); + if(this[names.s]){ + // use the explicit setter + var result = this[names.s].apply(this, Array.prototype.slice.call(arguments, 1)); + }else{ + // if param is specified as DOM node attribute, copy it + if(name in this.attributeMap){ + this._attrToDom(name, value); + } + var oldValue = this[name]; + // FIXME: what about function assignments? Any way to connect() here? + this[name] = value; + } + return result || this; + }, + + _attrPairNames: {}, // shared between all widgets + _getAttrNames: function(name){ + // summary: + // Helper function for get() and set(). + // Caches attribute name values so we don't do the string ops every time. + // tags: + // private + + var apn = this._attrPairNames; + if(apn[name]){ return apn[name]; } + var uc = name.charAt(0).toUpperCase() + name.substr(1); + return (apn[name] = { + n: name+"Node", + s: "_set"+uc+"Attr", + g: "_get"+uc+"Attr" + }); + }, + + toString: function(){ + // summary: + // Returns a string that represents the widget + // description: + // When a widget is cast to a string, this method will be used to generate the + // output. Currently, it does not implement any sort of reversible + // serialization. + return '[Widget ' + this.declaredClass + ', ' + (this.id || 'NO ID') + ']'; // String + }, + + getDescendants: function(){ + // summary: + // Returns all the widgets contained by this, i.e., all widgets underneath this.containerNode. + // This method should generally be avoided as it returns widgets declared in templates, which are + // supposed to be internal/hidden, but it's left here for back-compat reasons. + + return this.containerNode ? dojo.query('[widgetId]', this.containerNode).map(dijit.byNode) : []; // dijit._Widget[] + }, + + getChildren: function(){ + // summary: + // Returns all the widgets contained by this, i.e., all widgets underneath this.containerNode. + // Does not return nested widgets, nor widgets that are part of this widget's template. + return this.containerNode ? dijit.findWidgets(this.containerNode) : []; // dijit._Widget[] + }, + + // nodesWithKeyClick: [private] String[] + // List of nodes that correctly handle click events via native browser support, + // and don't need dijit's help + nodesWithKeyClick: ["input", "button"], + + connect: function( + /*Object|null*/ obj, + /*String|Function*/ event, + /*String|Function*/ method){ + // summary: + // Connects specified obj/event to specified method of this object + // and registers for disconnect() on widget destroy. + // description: + // Provide widget-specific analog to dojo.connect, except with the + // implicit use of this widget as the target object. + // This version of connect also provides a special "ondijitclick" + // event which triggers on a click or space or enter keyup + // returns: + // A handle that can be passed to `disconnect` in order to disconnect before + // the widget is destroyed. + // example: + // | var btn = new dijit.form.Button(); + // | // when foo.bar() is called, call the listener we're going to + // | // provide in the scope of btn + // | btn.connect(foo, "bar", function(){ + // | console.debug(this.toString()); + // | }); + // tags: + // protected + + var d = dojo, + dc = d._connect, + handles = []; + if(event == "ondijitclick"){ + // add key based click activation for unsupported nodes. + // do all processing onkey up to prevent spurious clicks + // for details see comments at top of this file where _lastKeyDownNode is defined + if(dojo.indexOf(this.nodesWithKeyClick, obj.nodeName.toLowerCase()) == -1){ // is NOT input or button + var m = d.hitch(this, method); + handles.push( + dc(obj, "onkeydown", this, function(e){ + //console.log(this.id + ": onkeydown, e.target = ", e.target, ", lastKeyDownNode was ", dijit._lastKeyDownNode, ", equality is ", (e.target === dijit._lastKeyDownNode)); + if((e.keyCode == d.keys.ENTER || e.keyCode == d.keys.SPACE) && + !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey){ + // needed on IE for when focus changes between keydown and keyup - otherwise dropdown menus do not work + dijit._lastKeyDownNode = e.target; + e.preventDefault(); // stop event to prevent scrolling on space key in IE + } + }), + dc(obj, "onkeyup", this, function(e){ + //console.log(this.id + ": onkeyup, e.target = ", e.target, ", lastKeyDownNode was ", dijit._lastKeyDownNode, ", equality is ", (e.target === dijit._lastKeyDownNode)); + if( (e.keyCode == d.keys.ENTER || e.keyCode == d.keys.SPACE) && + e.target === dijit._lastKeyDownNode && + !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey){ + //need reset here or have problems in FF when focus returns to trigger element after closing popup/alert + dijit._lastKeyDownNode = null; + return m(e); + } + }) + ); + } + event = "onclick"; + } + handles.push(dc(obj, event, this, method)); + + this._connects.push(handles); + return handles; // _Widget.Handle + }, + + disconnect: function(/* _Widget.Handle */ handles){ + // summary: + // Disconnects handle created by `connect`. + // Also removes handle from this widget's list of connects. + // tags: + // protected + for(var i=0; i<this._connects.length; i++){ + if(this._connects[i] == handles){ + dojo.forEach(handles, dojo.disconnect); + this._connects.splice(i, 1); + return; + } + } + }, + + subscribe: function( + /*String*/ topic, + /*String|Function*/ method){ + // summary: + // Subscribes to the specified topic and calls the specified method + // of this object and registers for unsubscribe() on widget destroy. + // description: + // Provide widget-specific analog to dojo.subscribe, except with the + // implicit use of this widget as the target object. + // example: + // | var btn = new dijit.form.Button(); + // | // when /my/topic is published, this button changes its label to + // | // be the parameter of the topic. + // | btn.subscribe("/my/topic", function(v){ + // | this.set("label", v); + // | }); + var d = dojo, + handle = d.subscribe(topic, this, method); + + // return handles for Any widget that may need them + this._subscribes.push(handle); + return handle; + }, + + unsubscribe: function(/*Object*/ handle){ + // summary: + // Unsubscribes handle created by this.subscribe. + // Also removes handle from this widget's list of subscriptions + for(var i=0; i<this._subscribes.length; i++){ + if(this._subscribes[i] == handle){ + dojo.unsubscribe(handle); + this._subscribes.splice(i, 1); + return; + } + } + }, + + isLeftToRight: function(){ + // summary: + // Return this widget's explicit or implicit orientation (true for LTR, false for RTL) + // tags: + // protected + return this.dir ? (this.dir == "ltr") : dojo._isBodyLtr(); //Boolean + }, + + isFocusable: function(){ + // summary: + // Return true if this widget can currently be focused + // and false if not + return this.focus && (dojo.style(this.domNode, "display") != "none"); + }, + + placeAt: function(/* String|DomNode|_Widget */reference, /* String?|Int? */position){ + // summary: + // Place this widget's domNode reference somewhere in the DOM based + // on standard dojo.place conventions, or passing a Widget reference that + // contains and addChild member. + // + // description: + // A convenience function provided in all _Widgets, providing a simple + // shorthand mechanism to put an existing (or newly created) Widget + // somewhere in the dom, and allow chaining. + // + // reference: + // The String id of a domNode, a domNode reference, or a reference to a Widget posessing + // an addChild method. + // + // position: + // If passed a string or domNode reference, the position argument + // accepts a string just as dojo.place does, one of: "first", "last", + // "before", or "after". + // + // If passed a _Widget reference, and that widget reference has an ".addChild" method, + // it will be called passing this widget instance into that method, supplying the optional + // position index passed. + // + // returns: + // dijit._Widget + // Provides a useful return of the newly created dijit._Widget instance so you + // can "chain" this function by instantiating, placing, then saving the return value + // to a variable. + // + // example: + // | // create a Button with no srcNodeRef, and place it in the body: + // | var button = new dijit.form.Button({ label:"click" }).placeAt(dojo.body()); + // | // now, 'button' is still the widget reference to the newly created button + // | dojo.connect(button, "onClick", function(e){ console.log('click'); }); + // + // example: + // | // create a button out of a node with id="src" and append it to id="wrapper": + // | var button = new dijit.form.Button({},"src").placeAt("wrapper"); + // + // example: + // | // place a new button as the first element of some div + // | var button = new dijit.form.Button({ label:"click" }).placeAt("wrapper","first"); + // + // example: + // | // create a contentpane and add it to a TabContainer + // | var tc = dijit.byId("myTabs"); + // | new dijit.layout.ContentPane({ href:"foo.html", title:"Wow!" }).placeAt(tc) + + if(reference.declaredClass && reference.addChild){ + reference.addChild(this, position); + }else{ + dojo.place(this.domNode, reference, position); + } + return this; + }, + + _onShow: function(){ + // summary: + // Internal method called when this widget is made visible. + // See `onShow` for details. + this.onShow(); + }, + + onShow: function(){ + // summary: + // Called when this widget becomes the selected pane in a + // `dijit.layout.TabContainer`, `dijit.layout.StackContainer`, + // `dijit.layout.AccordionContainer`, etc. + // + // Also called to indicate display of a `dijit.Dialog`, `dijit.TooltipDialog`, or `dijit.TitlePane`. + // tags: + // callback + }, + + onHide: function(){ + // summary: + // Called when another widget becomes the selected pane in a + // `dijit.layout.TabContainer`, `dijit.layout.StackContainer`, + // `dijit.layout.AccordionContainer`, etc. + // + // Also called to indicate hide of a `dijit.Dialog`, `dijit.TooltipDialog`, or `dijit.TitlePane`. + // tags: + // callback + }, + + onClose: function(){ + // summary: + // Called when this widget is being displayed as a popup (ex: a Calendar popped + // up from a DateTextBox), and it is hidden. + // This is called from the dijit.popup code, and should not be called directly. + // + // Also used as a parameter for children of `dijit.layout.StackContainer` or subclasses. + // Callback if a user tries to close the child. Child will be closed if this function returns true. + // tags: + // extension + + return true; // Boolean + } +}); + +})(); + +} + +if(!dojo._hasResource["dojo.string"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.string"] = true; +dojo.provide("dojo.string"); + +/*===== +dojo.string = { + // summary: String utilities for Dojo +}; +=====*/ + +dojo.string.rep = function(/*String*/str, /*Integer*/num){ + // summary: + // Efficiently replicate a string `n` times. + // str: + // the string to replicate + // num: + // number of times to replicate the string + + if(num <= 0 || !str){ return ""; } + + var buf = []; + for(;;){ + if(num & 1){ + buf.push(str); + } + if(!(num >>= 1)){ break; } + str += str; + } + return buf.join(""); // String +}; + +dojo.string.pad = function(/*String*/text, /*Integer*/size, /*String?*/ch, /*Boolean?*/end){ + // summary: + // Pad a string to guarantee that it is at least `size` length by + // filling with the character `ch` at either the start or end of the + // string. Pads at the start, by default. + // text: + // the string to pad + // size: + // length to provide padding + // ch: + // character to pad, defaults to '0' + // end: + // adds padding at the end if true, otherwise pads at start + // example: + // | // Fill the string to length 10 with "+" characters on the right. Yields "Dojo++++++". + // | dojo.string.pad("Dojo", 10, "+", true); + + if(!ch){ + ch = '0'; + } + var out = String(text), + pad = dojo.string.rep(ch, Math.ceil((size - out.length) / ch.length)); + return end ? out + pad : pad + out; // String +}; + +dojo.string.substitute = function( /*String*/ template, + /*Object|Array*/map, + /*Function?*/ transform, + /*Object?*/ thisObject){ + // summary: + // Performs parameterized substitutions on a string. Throws an + // exception if any parameter is unmatched. + // template: + // a string with expressions in the form `${key}` to be replaced or + // `${key:format}` which specifies a format function. keys are case-sensitive. + // map: + // hash to search for substitutions + // transform: + // a function to process all parameters before substitution takes + // place, e.g. mylib.encodeXML + // thisObject: + // where to look for optional format function; default to the global + // namespace + // example: + // Substitutes two expressions in a string from an Array or Object + // | // returns "File 'foo.html' is not found in directory '/temp'." + // | // by providing substitution data in an Array + // | dojo.string.substitute( + // | "File '${0}' is not found in directory '${1}'.", + // | ["foo.html","/temp"] + // | ); + // | + // | // also returns "File 'foo.html' is not found in directory '/temp'." + // | // but provides substitution data in an Object structure. Dotted + // | // notation may be used to traverse the structure. + // | dojo.string.substitute( + // | "File '${name}' is not found in directory '${info.dir}'.", + // | { name: "foo.html", info: { dir: "/temp" } } + // | ); + // example: + // Use a transform function to modify the values: + // | // returns "file 'foo.html' is not found in directory '/temp'." + // | dojo.string.substitute( + // | "${0} is not found in ${1}.", + // | ["foo.html","/temp"], + // | function(str){ + // | // try to figure out the type + // | var prefix = (str.charAt(0) == "/") ? "directory": "file"; + // | return prefix + " '" + str + "'"; + // | } + // | ); + // example: + // Use a formatter + // | // returns "thinger -- howdy" + // | dojo.string.substitute( + // | "${0:postfix}", ["thinger"], null, { + // | postfix: function(value, key){ + // | return value + " -- howdy"; + // | } + // | } + // | ); + + thisObject = thisObject || dojo.global; + transform = transform ? + dojo.hitch(thisObject, transform) : function(v){ return v; }; + + return template.replace(/\$\{([^\s\:\}]+)(?:\:([^\s\:\}]+))?\}/g, + function(match, key, format){ + var value = dojo.getObject(key, false, map); + if(format){ + value = dojo.getObject(format, false, thisObject).call(thisObject, value, key); + } + return transform(value, key).toString(); + }); // String +}; + +/*===== +dojo.string.trim = function(str){ + // summary: + // Trims whitespace from both sides of the string + // str: String + // String to be trimmed + // returns: String + // Returns the trimmed string + // description: + // This version of trim() was taken from [Steven Levithan's blog](http://blog.stevenlevithan.com/archives/faster-trim-javascript). + // The short yet performant version of this function is dojo.trim(), + // which is part of Dojo base. Uses String.prototype.trim instead, if available. + return ""; // String +} +=====*/ + +dojo.string.trim = String.prototype.trim ? + dojo.trim : // aliasing to the native function + function(str){ + str = str.replace(/^\s+/, ''); + for(var i = str.length - 1; i >= 0; i--){ + if(/\S/.test(str.charAt(i))){ + str = str.substring(0, i + 1); + break; + } + } + return str; + }; + +} + +if(!dojo._hasResource["dojo.cache"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.cache"] = true; +dojo.provide("dojo.cache"); + +/*===== +dojo.cache = { + // summary: + // A way to cache string content that is fetchable via `dojo.moduleUrl`. +}; +=====*/ + +(function(){ + var cache = {}; + dojo.cache = function(/*String||Object*/module, /*String*/url, /*String||Object?*/value){ + // summary: + // A getter and setter for storing the string content associated with the + // module and url arguments. + // description: + // module and url are used to call `dojo.moduleUrl()` to generate a module URL. + // If value is specified, the cache value for the moduleUrl will be set to + // that value. Otherwise, dojo.cache will fetch the moduleUrl and store it + // in its internal cache and return that cached value for the URL. To clear + // a cache value pass null for value. Since XMLHttpRequest (XHR) is used to fetch the + // the URL contents, only modules on the same domain of the page can use this capability. + // The build system can inline the cache values though, to allow for xdomain hosting. + // module: String||Object + // If a String, the module name to use for the base part of the URL, similar to module argument + // to `dojo.moduleUrl`. If an Object, something that has a .toString() method that + // generates a valid path for the cache item. For example, a dojo._Url object. + // url: String + // The rest of the path to append to the path derived from the module argument. If + // module is an object, then this second argument should be the "value" argument instead. + // value: String||Object? + // If a String, the value to use in the cache for the module/url combination. + // If an Object, it can have two properties: value and sanitize. The value property + // should be the value to use in the cache, and sanitize can be set to true or false, + // to indicate if XML declarations should be removed from the value and if the HTML + // inside a body tag in the value should be extracted as the real value. The value argument + // or the value property on the value argument are usually only used by the build system + // as it inlines cache content. + // example: + // To ask dojo.cache to fetch content and store it in the cache (the dojo["cache"] style + // of call is used to avoid an issue with the build system erroneously trying to intern + // this example. To get the build system to intern your dojo.cache calls, use the + // "dojo.cache" style of call): + // | //If template.html contains "<h1>Hello</h1>" that will be + // | //the value for the text variable. + // | var text = dojo["cache"]("my.module", "template.html"); + // example: + // To ask dojo.cache to fetch content and store it in the cache, and sanitize the input + // (the dojo["cache"] style of call is used to avoid an issue with the build system + // erroneously trying to intern this example. To get the build system to intern your + // dojo.cache calls, use the "dojo.cache" style of call): + // | //If template.html contains "<html><body><h1>Hello</h1></body></html>", the + // | //text variable will contain just "<h1>Hello</h1>". + // | var text = dojo["cache"]("my.module", "template.html", {sanitize: true}); + // example: + // Same example as previous, but demostrates how an object can be passed in as + // the first argument, then the value argument can then be the second argument. + // | //If template.html contains "<html><body><h1>Hello</h1></body></html>", the + // | //text variable will contain just "<h1>Hello</h1>". + // | var text = dojo["cache"](new dojo._Url("my/module/template.html"), {sanitize: true}); + + //Module could be a string, or an object that has a toString() method + //that will return a useful path. If it is an object, then the "url" argument + //will actually be the value argument. + if(typeof module == "string"){ + var pathObj = dojo.moduleUrl(module, url); + }else{ + pathObj = module; + value = url; + } + var key = pathObj.toString(); + + var val = value; + if(value != undefined && !dojo.isString(value)){ + val = ("value" in value ? value.value : undefined); + } + + var sanitize = value && value.sanitize ? true : false; + + if(typeof val == "string"){ + //We have a string, set cache value + val = cache[key] = sanitize ? dojo.cache._sanitize(val) : val; + }else if(val === null){ + //Remove cached value + delete cache[key]; + }else{ + //Allow cache values to be empty strings. If key property does + //not exist, fetch it. + if(!(key in cache)){ + val = dojo._getText(key); + cache[key] = sanitize ? dojo.cache._sanitize(val) : val; + } + val = cache[key]; + } + return val; //String + }; + + dojo.cache._sanitize = function(/*String*/val){ + // summary: + // Strips <?xml ...?> declarations so that external SVG and XML + // documents can be added to a document without worry. Also, if the string + // is an HTML document, only the part inside the body tag is returned. + // description: + // Copied from dijit._Templated._sanitizeTemplateString. + if(val){ + val = val.replace(/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im, ""); + var matches = val.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im); + if(matches){ + val = matches[1]; + } + }else{ + val = ""; + } + return val; //String + }; +})(); + +} + +if(!dojo._hasResource["dijit._Templated"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit._Templated"] = true; +dojo.provide("dijit._Templated"); + + + + + + +dojo.declare("dijit._Templated", + null, + { + // summary: + // Mixin for widgets that are instantiated from a template + + // templateString: [protected] String + // A string that represents the widget template. Pre-empts the + // templatePath. In builds that have their strings "interned", the + // templatePath is converted to an inline templateString, thereby + // preventing a synchronous network call. + // + // Use in conjunction with dojo.cache() to load from a file. + templateString: null, + + // templatePath: [protected deprecated] String + // Path to template (HTML file) for this widget relative to dojo.baseUrl. + // Deprecated: use templateString with dojo.cache() instead. + templatePath: null, + + // widgetsInTemplate: [protected] Boolean + // Should we parse the template to find widgets that might be + // declared in markup inside it? False by default. + widgetsInTemplate: false, + + // skipNodeCache: [protected] Boolean + // If using a cached widget template node poses issues for a + // particular widget class, it can set this property to ensure + // that its template is always re-built from a string + _skipNodeCache: false, + + // _earlyTemplatedStartup: Boolean + // A fallback to preserve the 1.0 - 1.3 behavior of children in + // templates having their startup called before the parent widget + // fires postCreate. Defaults to 'false', causing child widgets to + // have their .startup() called immediately before a parent widget + // .startup(), but always after the parent .postCreate(). Set to + // 'true' to re-enable to previous, arguably broken, behavior. + _earlyTemplatedStartup: false, + + // _attachPoints: [private] String[] + // List of widget attribute names associated with dojoAttachPoint=... in the + // template, ex: ["containerNode", "labelNode"] +/*===== + _attachPoints: [], + =====*/ + + constructor: function(){ + this._attachPoints = []; + }, + + _stringRepl: function(tmpl){ + // summary: + // Does substitution of ${foo} type properties in template string + // tags: + // private + var className = this.declaredClass, _this = this; + // Cache contains a string because we need to do property replacement + // do the property replacement + return dojo.string.substitute(tmpl, this, function(value, key){ + if(key.charAt(0) == '!'){ value = dojo.getObject(key.substr(1), false, _this); } + if(typeof value == "undefined"){ throw new Error(className+" template:"+key); } // a debugging aide + if(value == null){ return ""; } + + // Substitution keys beginning with ! will skip the transform step, + // in case a user wishes to insert unescaped markup, e.g. ${!foo} + return key.charAt(0) == "!" ? value : + // Safer substitution, see heading "Attribute values" in + // http://www.w3.org/TR/REC-html40/appendix/notes.html#h-B.3.2 + value.toString().replace(/"/g,"""); //TODO: add &? use encodeXML method? + }, this); + }, + + // method over-ride + buildRendering: function(){ + // summary: + // Construct the UI for this widget from a template, setting this.domNode. + // tags: + // protected + + // Lookup cached version of template, and download to cache if it + // isn't there already. Returns either a DomNode or a string, depending on + // whether or not the template contains ${foo} replacement parameters. + var cached = dijit._Templated.getCachedTemplate(this.templatePath, this.templateString, this._skipNodeCache); + + var node; + if(dojo.isString(cached)){ + node = dojo._toDom(this._stringRepl(cached)); + if(node.nodeType != 1){ + // Flag common problems such as templates with multiple top level nodes (nodeType == 11) + throw new Error("Invalid template: " + cached); + } + }else{ + // if it's a node, all we have to do is clone it + node = cached.cloneNode(true); + } + + this.domNode = node; + + // recurse through the node, looking for, and attaching to, our + // attachment points and events, which should be defined on the template node. + this._attachTemplateNodes(node); + + if(this.widgetsInTemplate){ + // Make sure dojoType is used for parsing widgets in template. + // The dojo.parser.query could be changed from multiversion support. + var parser = dojo.parser, qry, attr; + if(parser._query != "[dojoType]"){ + qry = parser._query; + attr = parser._attrName; + parser._query = "[dojoType]"; + parser._attrName = "dojoType"; + } + + // Store widgets that we need to start at a later point in time + var cw = (this._startupWidgets = dojo.parser.parse(node, { + noStart: !this._earlyTemplatedStartup, + inherited: {dir: this.dir, lang: this.lang} + })); + + // Restore the query. + if(qry){ + parser._query = qry; + parser._attrName = attr; + } + + this._supportingWidgets = dijit.findWidgets(node); + + this._attachTemplateNodes(cw, function(n,p){ + return n[p]; + }); + } + + this._fillContent(this.srcNodeRef); + }, + + _fillContent: function(/*DomNode*/ source){ + // summary: + // Relocate source contents to templated container node. + // this.containerNode must be able to receive children, or exceptions will be thrown. + // tags: + // protected + var dest = this.containerNode; + if(source && dest){ + while(source.hasChildNodes()){ + dest.appendChild(source.firstChild); + } + } + }, + + _attachTemplateNodes: function(rootNode, getAttrFunc){ + // summary: + // Iterate through the template and attach functions and nodes accordingly. + // description: + // Map widget properties and functions to the handlers specified in + // the dom node and it's descendants. This function iterates over all + // nodes and looks for these properties: + // * dojoAttachPoint + // * dojoAttachEvent + // * waiRole + // * waiState + // rootNode: DomNode|Array[Widgets] + // the node to search for properties. All children will be searched. + // getAttrFunc: Function? + // a function which will be used to obtain property for a given + // DomNode/Widget + // tags: + // private + + getAttrFunc = getAttrFunc || function(n,p){ return n.getAttribute(p); }; + + var nodes = dojo.isArray(rootNode) ? rootNode : (rootNode.all || rootNode.getElementsByTagName("*")); + var x = dojo.isArray(rootNode) ? 0 : -1; + for(; x<nodes.length; x++){ + var baseNode = (x == -1) ? rootNode : nodes[x]; + if(this.widgetsInTemplate && getAttrFunc(baseNode, "dojoType")){ + continue; + } + // Process dojoAttachPoint + var attachPoint = getAttrFunc(baseNode, "dojoAttachPoint"); + if(attachPoint){ + var point, points = attachPoint.split(/\s*,\s*/); + while((point = points.shift())){ + if(dojo.isArray(this[point])){ + this[point].push(baseNode); + }else{ + this[point]=baseNode; + } + this._attachPoints.push(point); + } + } + + // Process dojoAttachEvent + var attachEvent = getAttrFunc(baseNode, "dojoAttachEvent"); + if(attachEvent){ + // NOTE: we want to support attributes that have the form + // "domEvent: nativeEvent; ..." + var event, events = attachEvent.split(/\s*,\s*/); + var trim = dojo.trim; + while((event = events.shift())){ + if(event){ + var thisFunc = null; + if(event.indexOf(":") != -1){ + // oh, if only JS had tuple assignment + var funcNameArr = event.split(":"); + event = trim(funcNameArr[0]); + thisFunc = trim(funcNameArr[1]); + }else{ + event = trim(event); + } + if(!thisFunc){ + thisFunc = event; + } + this.connect(baseNode, event, thisFunc); + } + } + } + + // waiRole, waiState + var role = getAttrFunc(baseNode, "waiRole"); + if(role){ + dijit.setWaiRole(baseNode, role); + } + var values = getAttrFunc(baseNode, "waiState"); + if(values){ + dojo.forEach(values.split(/\s*,\s*/), function(stateValue){ + if(stateValue.indexOf('-') != -1){ + var pair = stateValue.split('-'); + dijit.setWaiState(baseNode, pair[0], pair[1]); + } + }); + } + } + }, + + startup: function(){ + dojo.forEach(this._startupWidgets, function(w){ + if(w && !w._started && w.startup){ + w.startup(); + } + }); + this.inherited(arguments); + }, + + destroyRendering: function(){ + // Delete all attach points to prevent IE6 memory leaks. + dojo.forEach(this._attachPoints, function(point){ + delete this[point]; + }, this); + this._attachPoints = []; + + this.inherited(arguments); + } + } +); + +// key is either templatePath or templateString; object is either string or DOM tree +dijit._Templated._templateCache = {}; + +dijit._Templated.getCachedTemplate = function(templatePath, templateString, alwaysUseString){ + // summary: + // Static method to get a template based on the templatePath or + // templateString key + // templatePath: String||dojo.uri.Uri + // The URL to get the template from. + // templateString: String? + // a string to use in lieu of fetching the template from a URL. Takes precedence + // over templatePath + // returns: Mixed + // Either string (if there are ${} variables that need to be replaced) or just + // a DOM tree (if the node can be cloned directly) + + // is it already cached? + var tmplts = dijit._Templated._templateCache; + var key = templateString || templatePath; + var cached = tmplts[key]; + if(cached){ + try{ + // if the cached value is an innerHTML string (no ownerDocument) or a DOM tree created within the current document, then use the current cached value + if(!cached.ownerDocument || cached.ownerDocument == dojo.doc){ + // string or node of the same document + return cached; + } + }catch(e){ /* squelch */ } // IE can throw an exception if cached.ownerDocument was reloaded + dojo.destroy(cached); + } + + // If necessary, load template string from template path + if(!templateString){ + templateString = dojo.cache(templatePath, {sanitize: true}); + } + templateString = dojo.string.trim(templateString); + + if(alwaysUseString || templateString.match(/\$\{([^\}]+)\}/g)){ + // there are variables in the template so all we can do is cache the string + return (tmplts[key] = templateString); //String + }else{ + // there are no variables in the template so we can cache the DOM tree + var node = dojo._toDom(templateString); + if(node.nodeType != 1){ + throw new Error("Invalid template: " + templateString); + } + return (tmplts[key] = node); //Node + } +}; + +if(dojo.isIE){ + dojo.addOnWindowUnload(function(){ + var cache = dijit._Templated._templateCache; + for(var key in cache){ + var value = cache[key]; + if(typeof value == "object"){ // value is either a string or a DOM node template + dojo.destroy(value); + } + delete cache[key]; + } + }); +} + +// These arguments can be specified for widgets which are used in templates. +// Since any widget can be specified as sub widgets in template, mix it +// into the base widget class. (This is a hack, but it's effective.) +dojo.extend(dijit._Widget,{ + dojoAttachEvent: "", + dojoAttachPoint: "", + waiRole: "", + waiState:"" +}); + +} + +if(!dojo._hasResource["dijit._Container"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit._Container"] = true; +dojo.provide("dijit._Container"); + +dojo.declare("dijit._Container", + null, + { + // summary: + // Mixin for widgets that contain a set of widget children. + // description: + // Use this mixin for widgets that needs to know about and + // keep track of their widget children. Suitable for widgets like BorderContainer + // and TabContainer which contain (only) a set of child widgets. + // + // It's not suitable for widgets like ContentPane + // which contains mixed HTML (plain DOM nodes in addition to widgets), + // and where contained widgets are not necessarily directly below + // this.containerNode. In that case calls like addChild(node, position) + // wouldn't make sense. + + // isContainer: [protected] Boolean + // Indicates that this widget acts as a "parent" to the descendant widgets. + // When the parent is started it will call startup() on the child widgets. + // See also `isLayoutContainer`. + isContainer: true, + + buildRendering: function(){ + this.inherited(arguments); + if(!this.containerNode){ + // all widgets with descendants must set containerNode + this.containerNode = this.domNode; + } + }, + + addChild: function(/*dijit._Widget*/ widget, /*int?*/ insertIndex){ + // summary: + // Makes the given widget a child of this widget. + // description: + // Inserts specified child widget's dom node as a child of this widget's + // container node, and possibly does other processing (such as layout). + + var refNode = this.containerNode; + if(insertIndex && typeof insertIndex == "number"){ + var children = this.getChildren(); + if(children && children.length >= insertIndex){ + refNode = children[insertIndex-1].domNode; + insertIndex = "after"; + } + } + dojo.place(widget.domNode, refNode, insertIndex); + + // If I've been started but the child widget hasn't been started, + // start it now. Make sure to do this after widget has been + // inserted into the DOM tree, so it can see that it's being controlled by me, + // so it doesn't try to size itself. + if(this._started && !widget._started){ + widget.startup(); + } + }, + + removeChild: function(/*Widget or int*/ widget){ + // summary: + // Removes the passed widget instance from this widget but does + // not destroy it. You can also pass in an integer indicating + // the index within the container to remove + + if(typeof widget == "number" && widget > 0){ + widget = this.getChildren()[widget]; + } + + if(widget){ + var node = widget.domNode; + if(node && node.parentNode){ + node.parentNode.removeChild(node); // detach but don't destroy + } + } + }, + + hasChildren: function(){ + // summary: + // Returns true if widget has children, i.e. if this.containerNode contains something. + return this.getChildren().length > 0; // Boolean + }, + + destroyDescendants: function(/*Boolean*/ preserveDom){ + // summary: + // Destroys all the widgets inside this.containerNode, + // but not this widget itself + dojo.forEach(this.getChildren(), function(child){ child.destroyRecursive(preserveDom); }); + }, + + _getSiblingOfChild: function(/*dijit._Widget*/ child, /*int*/ dir){ + // summary: + // Get the next or previous widget sibling of child + // dir: + // if 1, get the next sibling + // if -1, get the previous sibling + // tags: + // private + var node = child.domNode, + which = (dir>0 ? "nextSibling" : "previousSibling"); + do{ + node = node[which]; + }while(node && (node.nodeType != 1 || !dijit.byNode(node))); + return node && dijit.byNode(node); // dijit._Widget + }, + + getIndexOfChild: function(/*dijit._Widget*/ child){ + // summary: + // Gets the index of the child in this container or -1 if not found + return dojo.indexOf(this.getChildren(), child); // int + }, + + startup: function(){ + // summary: + // Called after all the widgets have been instantiated and their + // dom nodes have been inserted somewhere under dojo.doc.body. + // + // Widgets should override this method to do any initialization + // dependent on other widgets existing, and then call + // this superclass method to finish things off. + // + // startup() in subclasses shouldn't do anything + // size related because the size of the widget hasn't been set yet. + + if(this._started){ return; } + + // Startup all children of this widget + dojo.forEach(this.getChildren(), function(child){ child.startup(); }); + + this.inherited(arguments); + } + } +); + +} + +if(!dojo._hasResource["dijit._Contained"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit._Contained"] = true; +dojo.provide("dijit._Contained"); + +dojo.declare("dijit._Contained", + null, + { + // summary: + // Mixin for widgets that are children of a container widget + // + // example: + // | // make a basic custom widget that knows about it's parents + // | dojo.declare("my.customClass",[dijit._Widget,dijit._Contained],{}); + + getParent: function(){ + // summary: + // Returns the parent widget of this widget, assuming the parent + // specifies isContainer + var parent = dijit.getEnclosingWidget(this.domNode.parentNode); + return parent && parent.isContainer ? parent : null; + }, + + _getSibling: function(/*String*/ which){ + // summary: + // Returns next or previous sibling + // which: + // Either "next" or "previous" + // tags: + // private + var node = this.domNode; + do{ + node = node[which+"Sibling"]; + }while(node && node.nodeType != 1); + return node && dijit.byNode(node); // dijit._Widget + }, + + getPreviousSibling: function(){ + // summary: + // Returns null if this is the first child of the parent, + // otherwise returns the next element sibling to the "left". + + return this._getSibling("previous"); // dijit._Widget + }, + + getNextSibling: function(){ + // summary: + // Returns null if this is the last child of the parent, + // otherwise returns the next element sibling to the "right". + + return this._getSibling("next"); // dijit._Widget + }, + + getIndexInParent: function(){ + // summary: + // Returns the index of this widget within its container parent. + // It returns -1 if the parent does not exist, or if the parent + // is not a dijit._Container + + var p = this.getParent(); + if(!p || !p.getIndexOfChild){ + return -1; // int + } + return p.getIndexOfChild(this); // int + } + } + ); + + +} + +if(!dojo._hasResource["dijit.layout._LayoutWidget"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.layout._LayoutWidget"] = true; +dojo.provide("dijit.layout._LayoutWidget"); + + + + + +dojo.declare("dijit.layout._LayoutWidget", + [dijit._Widget, dijit._Container, dijit._Contained], + { + // summary: + // Base class for a _Container widget which is responsible for laying out its children. + // Widgets which mixin this code must define layout() to manage placement and sizing of the children. + + // baseClass: [protected extension] String + // This class name is applied to the widget's domNode + // and also may be used to generate names for sub nodes, + // for example dijitTabContainer-content. + baseClass: "dijitLayoutContainer", + + // isLayoutContainer: [protected] Boolean + // Indicates that this widget is going to call resize() on its + // children widgets, setting their size, when they become visible. + isLayoutContainer: true, + + postCreate: function(){ + dojo.addClass(this.domNode, "dijitContainer"); + + this.inherited(arguments); + }, + + startup: function(){ + // summary: + // Called after all the widgets have been instantiated and their + // dom nodes have been inserted somewhere under dojo.doc.body. + // + // Widgets should override this method to do any initialization + // dependent on other widgets existing, and then call + // this superclass method to finish things off. + // + // startup() in subclasses shouldn't do anything + // size related because the size of the widget hasn't been set yet. + + if(this._started){ return; } + + // Need to call inherited first - so that child widgets get started + // up correctly + this.inherited(arguments); + + // If I am a not being controlled by a parent layout widget... + var parent = this.getParent && this.getParent() + if(!(parent && parent.isLayoutContainer)){ + // Do recursive sizing and layout of all my descendants + // (passing in no argument to resize means that it has to glean the size itself) + this.resize(); + + // Since my parent isn't a layout container, and my style *may be* width=height=100% + // or something similar (either set directly or via a CSS class), + // monitor when my size changes so that I can re-layout. + // For browsers where I can't directly monitor when my size changes, + // monitor when the viewport changes size, which *may* indicate a size change for me. + this.connect(dojo.isIE ? this.domNode : dojo.global, 'onresize', function(){ + // Using function(){} closure to ensure no arguments to resize. + this.resize(); + }); + } + }, + + resize: function(changeSize, resultSize){ + // summary: + // Call this to resize a widget, or after its size has changed. + // description: + // Change size mode: + // When changeSize is specified, changes the marginBox of this widget + // and forces it to relayout its contents accordingly. + // changeSize may specify height, width, or both. + // + // If resultSize is specified it indicates the size the widget will + // become after changeSize has been applied. + // + // Notification mode: + // When changeSize is null, indicates that the caller has already changed + // the size of the widget, or perhaps it changed because the browser + // window was resized. Tells widget to relayout its contents accordingly. + // + // If resultSize is also specified it indicates the size the widget has + // become. + // + // In either mode, this method also: + // 1. Sets this._borderBox and this._contentBox to the new size of + // the widget. Queries the current domNode size if necessary. + // 2. Calls layout() to resize contents (and maybe adjust child widgets). + // + // changeSize: Object? + // Sets the widget to this margin-box size and position. + // May include any/all of the following properties: + // | {w: int, h: int, l: int, t: int} + // + // resultSize: Object? + // The margin-box size of this widget after applying changeSize (if + // changeSize is specified). If caller knows this size and + // passes it in, we don't need to query the browser to get the size. + // | {w: int, h: int} + + var node = this.domNode; + + // set margin box size, unless it wasn't specified, in which case use current size + if(changeSize){ + dojo.marginBox(node, changeSize); + + // set offset of the node + if(changeSize.t){ node.style.top = changeSize.t + "px"; } + if(changeSize.l){ node.style.left = changeSize.l + "px"; } + } + + // If either height or width wasn't specified by the user, then query node for it. + // But note that setting the margin box and then immediately querying dimensions may return + // inaccurate results, so try not to depend on it. + var mb = resultSize || {}; + dojo.mixin(mb, changeSize || {}); // changeSize overrides resultSize + if( !("h" in mb) || !("w" in mb) ){ + mb = dojo.mixin(dojo.marginBox(node), mb); // just use dojo.marginBox() to fill in missing values + } + + // Compute and save the size of my border box and content box + // (w/out calling dojo.contentBox() since that may fail if size was recently set) + var cs = dojo.getComputedStyle(node); + var me = dojo._getMarginExtents(node, cs); + var be = dojo._getBorderExtents(node, cs); + var bb = (this._borderBox = { + w: mb.w - (me.w + be.w), + h: mb.h - (me.h + be.h) + }); + var pe = dojo._getPadExtents(node, cs); + this._contentBox = { + l: dojo._toPixelValue(node, cs.paddingLeft), + t: dojo._toPixelValue(node, cs.paddingTop), + w: bb.w - pe.w, + h: bb.h - pe.h + }; + + // Callback for widget to adjust size of its children + this.layout(); + }, + + layout: function(){ + // summary: + // Widgets override this method to size and position their contents/children. + // When this is called this._contentBox is guaranteed to be set (see resize()). + // + // This is called after startup(), and also when the widget's size has been + // changed. + // tags: + // protected extension + }, + + _setupChild: function(/*dijit._Widget*/child){ + // summary: + // Common setup for initial children and children which are added after startup + // tags: + // protected extension + + dojo.addClass(child.domNode, this.baseClass+"-child"); + if(child.baseClass){ + dojo.addClass(child.domNode, this.baseClass+"-"+child.baseClass); + } + }, + + addChild: function(/*dijit._Widget*/ child, /*Integer?*/ insertIndex){ + // Overrides _Container.addChild() to call _setupChild() + this.inherited(arguments); + if(this._started){ + this._setupChild(child); + } + }, + + removeChild: function(/*dijit._Widget*/ child){ + // Overrides _Container.removeChild() to remove class added by _setupChild() + dojo.removeClass(child.domNode, this.baseClass+"-child"); + if(child.baseClass){ + dojo.removeClass(child.domNode, this.baseClass+"-"+child.baseClass); + } + this.inherited(arguments); + } + } +); + +dijit.layout.marginBox2contentBox = function(/*DomNode*/ node, /*Object*/ mb){ + // summary: + // Given the margin-box size of a node, return its content box size. + // Functions like dojo.contentBox() but is more reliable since it doesn't have + // to wait for the browser to compute sizes. + var cs = dojo.getComputedStyle(node); + var me = dojo._getMarginExtents(node, cs); + var pb = dojo._getPadBorderExtents(node, cs); + return { + l: dojo._toPixelValue(node, cs.paddingLeft), + t: dojo._toPixelValue(node, cs.paddingTop), + w: mb.w - (me.w + pb.w), + h: mb.h - (me.h + pb.h) + }; +}; + +(function(){ + var capitalize = function(word){ + return word.substring(0,1).toUpperCase() + word.substring(1); + }; + + var size = function(widget, dim){ + // size the child + widget.resize ? widget.resize(dim) : dojo.marginBox(widget.domNode, dim); + + // record child's size, but favor our own numbers when we have them. + // the browser lies sometimes + dojo.mixin(widget, dojo.marginBox(widget.domNode)); + dojo.mixin(widget, dim); + }; + + dijit.layout.layoutChildren = function(/*DomNode*/ container, /*Object*/ dim, /*Object[]*/ children){ + // summary + // Layout a bunch of child dom nodes within a parent dom node + // container: + // parent node + // dim: + // {l, t, w, h} object specifying dimensions of container into which to place children + // children: + // an array like [ {domNode: foo, layoutAlign: "bottom" }, {domNode: bar, layoutAlign: "client"} ] + + // copy dim because we are going to modify it + dim = dojo.mixin({}, dim); + + dojo.addClass(container, "dijitLayoutContainer"); + + // Move "client" elements to the end of the array for layout. a11y dictates that the author + // needs to be able to put them in the document in tab-order, but this algorithm requires that + // client be last. + children = dojo.filter(children, function(item){ return item.layoutAlign != "client"; }) + .concat(dojo.filter(children, function(item){ return item.layoutAlign == "client"; })); + + // set positions/sizes + dojo.forEach(children, function(child){ + var elm = child.domNode, + pos = child.layoutAlign; + + // set elem to upper left corner of unused space; may move it later + var elmStyle = elm.style; + elmStyle.left = dim.l+"px"; + elmStyle.top = dim.t+"px"; + elmStyle.bottom = elmStyle.right = "auto"; + + dojo.addClass(elm, "dijitAlign" + capitalize(pos)); + + // set size && adjust record of remaining space. + // note that setting the width of a <div> may affect its height. + if(pos == "top" || pos == "bottom"){ + size(child, { w: dim.w }); + dim.h -= child.h; + if(pos == "top"){ + dim.t += child.h; + }else{ + elmStyle.top = dim.t + dim.h + "px"; + } + }else if(pos == "left" || pos == "right"){ + size(child, { h: dim.h }); + dim.w -= child.w; + if(pos == "left"){ + dim.l += child.w; + }else{ + elmStyle.left = dim.l + dim.w + "px"; + } + }else if(pos == "client"){ + size(child, dim); + } + }); + }; + +})(); + +} + +if(!dojo._hasResource["dijit._CssStateMixin"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit._CssStateMixin"] = true; +dojo.provide("dijit._CssStateMixin"); + + +dojo.declare("dijit._CssStateMixin", [], { + // summary: + // Mixin for widgets to set CSS classes on the widget DOM nodes depending on hover/mouse press/focus + // state changes, and also higher-level state changes such becoming disabled or selected. + // + // description: + // By mixing this class into your widget, and setting the this.baseClass attribute, it will automatically + // maintain CSS classes on the widget root node (this.domNode) depending on hover, + // active, focus, etc. state. Ex: with a baseClass of dijitButton, it will apply the classes + // dijitButtonHovered and dijitButtonActive, as the user moves the mouse over the widget and clicks it. + // + // It also sets CSS like dijitButtonDisabled based on widget semantic state. + // + // By setting the cssStateNodes attribute, a widget can also track events on subnodes (like buttons + // within the widget). + + // cssStateNodes: [protected] Object + // List of sub-nodes within the widget that need CSS classes applied on mouse hover/press and focus + //. + // Each entry in the hash is a an attachpoint names (like "upArrowButton") mapped to a CSS class names + // (like "dijitUpArrowButton"). Example: + // | { + // | "upArrowButton": "dijitUpArrowButton", + // | "downArrowButton": "dijitDownArrowButton" + // | } + // The above will set the CSS class dijitUpArrowButton to the this.upArrowButton DOMNode when it + // is hovered, etc. + cssStateNodes: {}, + + postCreate: function(){ + this.inherited(arguments); + + // Automatically monitor mouse events (essentially :hover and :active) on this.domNode + dojo.forEach(["onmouseenter", "onmouseleave", "onmousedown"], function(e){ + this.connect(this.domNode, e, "_cssMouseEvent"); + }, this); + + // Monitoring changes to disabled, readonly, etc. state, and update CSS class of root node + this.connect(this, "set", function(name, value){ + if(arguments.length >= 2 && {disabled: true, readOnly: true, checked:true, selected:true}[name]){ + this._setStateClass(); + } + }); + + // The widget coming in/out of the focus change affects it's state + dojo.forEach(["_onFocus", "_onBlur"], function(ap){ + this.connect(this, ap, "_setStateClass"); + }, this); + + // Events on sub nodes within the widget + for(var ap in this.cssStateNodes){ + this._trackMouseState(this[ap], this.cssStateNodes[ap]); + } + // Set state initially; there's probably no hover/active/focus state but widget might be + // disabled/readonly so we want to set CSS classes for those conditions. + this._setStateClass(); + }, + + _cssMouseEvent: function(/*Event*/ event){ + // summary: + // Sets _hovering and _active properties depending on mouse state, + // then calls _setStateClass() to set appropriate CSS classes for this.domNode. + + if(!this.disabled){ + switch(event.type){ + case "mouseenter": + case "mouseover": // generated on non-IE browsers even though we connected to mouseenter + this._hovering = true; + this._active = this._mouseDown; + break; + + case "mouseleave": + case "mouseout": // generated on non-IE browsers even though we connected to mouseleave + this._hovering = false; + this._active = false; + break; + + case "mousedown" : + this._active = true; + this._mouseDown = true; + // Set a global event to handle mouseup, so it fires properly + // even if the cursor leaves this.domNode before the mouse up event. + // Alternately could set active=false on mouseout. + var mouseUpConnector = this.connect(dojo.body(), "onmouseup", function(){ + this._active = false; + this._mouseDown = false; + this._setStateClass(); + this.disconnect(mouseUpConnector); + }); + break; + } + this._setStateClass(); + } + }, + + _setStateClass: function(){ + // summary: + // Update the visual state of the widget by setting the css classes on this.domNode + // (or this.stateNode if defined) by combining this.baseClass with + // various suffixes that represent the current widget state(s). + // + // description: + // In the case where a widget has multiple + // states, it sets the class based on all possible + // combinations. For example, an invalid form widget that is being hovered + // will be "dijitInput dijitInputInvalid dijitInputHover dijitInputInvalidHover". + // + // The widget may have one or more of the following states, determined + // by this.state, this.checked, this.valid, and this.selected: + // - Error - ValidationTextBox sets this.state to "Error" if the current input value is invalid + // - Checked - ex: a checkmark or a ToggleButton in a checked state, will have this.checked==true + // - Selected - ex: currently selected tab will have this.selected==true + // + // In addition, it may have one or more of the following states, + // based on this.disabled and flags set in _onMouse (this._active, this._hovering, this._focused): + // - Disabled - if the widget is disabled + // - Active - if the mouse (or space/enter key?) is being pressed down + // - Focused - if the widget has focus + // - Hover - if the mouse is over the widget + + // Compute new set of classes + var newStateClasses = this.baseClass.split(" "); + + function multiply(modifier){ + newStateClasses = newStateClasses.concat(dojo.map(newStateClasses, function(c){ return c+modifier; }), "dijit"+modifier); + } + + if(!this.isLeftToRight()){ + // For RTL mode we need to set an addition class like dijitTextBoxRtl. + multiply("Rtl"); + } + + if(this.checked){ + multiply("Checked"); + } + if(this.state){ + multiply(this.state); + } + if(this.selected){ + multiply("Selected"); + } + + if(this.disabled){ + multiply("Disabled"); + }else if(this.readOnly){ + multiply("ReadOnly"); + }else{ + if(this._active){ + multiply("Active"); + }else if(this._hovering){ + multiply("Hover"); + } + } + + if(this._focused){ + multiply("Focused"); + } + + // Remove old state classes and add new ones. + // For performance concerns we only write into domNode.className once. + var tn = this.stateNode || this.domNode, + classHash = {}; // set of all classes (state and otherwise) for node + + dojo.forEach(tn.className.split(" "), function(c){ classHash[c] = true; }); + + if("_stateClasses" in this){ + dojo.forEach(this._stateClasses, function(c){ delete classHash[c]; }); + } + + dojo.forEach(newStateClasses, function(c){ classHash[c] = true; }); + + var newClasses = []; + for(var c in classHash){ + newClasses.push(c); + } + tn.className = newClasses.join(" "); + + this._stateClasses = newStateClasses; + }, + + _trackMouseState: function(/*DomNode*/ node, /*String*/ clazz){ + // summary: + // Track mouse/focus events on specified node and set CSS class on that node to indicate + // current state. Usually not called directly, but via cssStateNodes attribute. + // description: + // Given class=foo, will set the following CSS class on the node + // - fooActive: if the user is currently pressing down the mouse button while over the node + // - fooHover: if the user is hovering the mouse over the node, but not pressing down a button + // - fooFocus: if the node is focused + // + // Note that it won't set any classes if the widget is disabled. + // node: DomNode + // Should be a sub-node of the widget, not the top node (this.domNode), since the top node + // is handled specially and automatically just by mixing in this class. + // clazz: String + // CSS class name (ex: dijitSliderUpArrow). + + // Current state of node (initially false) + // NB: setting specifically to false because dojo.toggleClass() needs true boolean as third arg + var hovering=false, active=false, focused=false; + + var self = this, + cn = dojo.hitch(this, "connect", node); + + function setClass(){ + var disabled = ("disabled" in self && self.disabled) || ("readonly" in self && self.readonly); + dojo.toggleClass(node, clazz+"Hover", hovering && !active && !disabled); + dojo.toggleClass(node, clazz+"Active", active && !disabled); + dojo.toggleClass(node, clazz+"Focused", focused && !disabled); + } + + // Mouse + cn("onmouseenter", function(){ + hovering = true; + setClass(); + }); + cn("onmouseleave", function(){ + hovering = false; + active = false; + setClass(); + }); + cn("onmousedown", function(){ + active = true; + setClass(); + }); + cn("onmouseup", function(){ + active = false; + setClass(); + }); + + // Focus + cn("onfocus", function(){ + focused = true; + setClass(); + }); + cn("onblur", function(){ + focused = false; + setClass(); + }); + + // Just in case widget is enabled/disabled while it has focus/hover/active state. + // Maybe this is overkill. + this.connect(this, "set", function(name, value){ + if(name == "disabled" || name == "readOnly"){ + setClass(); + } + }); + } +}); + +} + +if(!dojo._hasResource["dijit.form._FormWidget"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.form._FormWidget"] = true; +dojo.provide("dijit.form._FormWidget"); + + + + + + + +dojo.declare("dijit.form._FormWidget", [dijit._Widget, dijit._Templated, dijit._CssStateMixin], + { + // summary: + // Base class for widgets corresponding to native HTML elements such as <checkbox> or <button>, + // which can be children of a <form> node or a `dijit.form.Form` widget. + // + // description: + // Represents a single HTML element. + // All these widgets should have these attributes just like native HTML input elements. + // You can set them during widget construction or afterwards, via `dijit._Widget.attr`. + // + // They also share some common methods. + + // name: String + // Name used when submitting form; same as "name" attribute or plain HTML elements + name: "", + + // alt: String + // Corresponds to the native HTML <input> element's attribute. + alt: "", + + // value: String + // Corresponds to the native HTML <input> element's attribute. + value: "", + + // type: String + // Corresponds to the native HTML <input> element's attribute. + type: "text", + + // tabIndex: Integer + // Order fields are traversed when user hits the tab key + tabIndex: "0", + + // disabled: Boolean + // Should this widget respond to user input? + // In markup, this is specified as "disabled='disabled'", or just "disabled". + disabled: false, + + // intermediateChanges: Boolean + // Fires onChange for each value change or only on demand + intermediateChanges: false, + + // scrollOnFocus: Boolean + // On focus, should this widget scroll into view? + scrollOnFocus: true, + + // These mixins assume that the focus node is an INPUT, as many but not all _FormWidgets are. + attributeMap: dojo.delegate(dijit._Widget.prototype.attributeMap, { + value: "focusNode", + id: "focusNode", + tabIndex: "focusNode", + alt: "focusNode", + title: "focusNode" + }), + + postMixInProperties: function(){ + // Setup name=foo string to be referenced from the template (but only if a name has been specified) + // Unfortunately we can't use attributeMap to set the name due to IE limitations, see #8660 + // Regarding escaping, see heading "Attribute values" in + // http://www.w3.org/TR/REC-html40/appendix/notes.html#h-B.3.2 + this.nameAttrSetting = this.name ? ('name="' + this.name.replace(/'/g, """) + '"') : ''; + this.inherited(arguments); + }, + + postCreate: function(){ + this.inherited(arguments); + this.connect(this.domNode, "onmousedown", "_onMouseDown"); + }, + + _setDisabledAttr: function(/*Boolean*/ value){ + this.disabled = value; + dojo.attr(this.focusNode, 'disabled', value); + if(this.valueNode){ + dojo.attr(this.valueNode, 'disabled', value); + } + dijit.setWaiState(this.focusNode, "disabled", value); + + if(value){ + // reset these, because after the domNode is disabled, we can no longer receive + // mouse related events, see #4200 + this._hovering = false; + this._active = false; + + // clear tab stop(s) on this widget's focusable node(s) (ComboBox has two focusable nodes) + var attachPointNames = "tabIndex" in this.attributeMap ? this.attributeMap.tabIndex : "focusNode"; + dojo.forEach(dojo.isArray(attachPointNames) ? attachPointNames : [attachPointNames], function(attachPointName){ + var node = this[attachPointName]; + // complex code because tabIndex=-1 on a <div> doesn't work on FF + if(dojo.isWebKit || dijit.hasDefaultTabStop(node)){ // see #11064 about webkit bug + node.setAttribute('tabIndex', "-1"); + }else{ + node.removeAttribute('tabIndex'); + } + }, this); + }else{ + this.focusNode.setAttribute('tabIndex', this.tabIndex); + } + }, + + setDisabled: function(/*Boolean*/ disabled){ + // summary: + // Deprecated. Use set('disabled', ...) instead. + dojo.deprecated("setDisabled("+disabled+") is deprecated. Use set('disabled',"+disabled+") instead.", "", "2.0"); + this.set('disabled', disabled); + }, + + _onFocus: function(e){ + if(this.scrollOnFocus){ + dojo.window.scrollIntoView(this.domNode); + } + this.inherited(arguments); + }, + + isFocusable: function(){ + // summary: + // Tells if this widget is focusable or not. Used internally by dijit. + // tags: + // protected + return !this.disabled && !this.readOnly && this.focusNode && (dojo.style(this.domNode, "display") != "none"); + }, + + focus: function(){ + // summary: + // Put focus on this widget + dijit.focus(this.focusNode); + }, + + compare: function(/*anything*/val1, /*anything*/val2){ + // summary: + // Compare 2 values (as returned by attr('value') for this widget). + // tags: + // protected + if(typeof val1 == "number" && typeof val2 == "number"){ + return (isNaN(val1) && isNaN(val2)) ? 0 : val1 - val2; + }else if(val1 > val2){ + return 1; + }else if(val1 < val2){ + return -1; + }else{ + return 0; + } + }, + + onChange: function(newValue){ + // summary: + // Callback when this widget's value is changed. + // tags: + // callback + }, + + // _onChangeActive: [private] Boolean + // Indicates that changes to the value should call onChange() callback. + // This is false during widget initialization, to avoid calling onChange() + // when the initial value is set. + _onChangeActive: false, + + _handleOnChange: function(/*anything*/ newValue, /* Boolean? */ priorityChange){ + // summary: + // Called when the value of the widget is set. Calls onChange() if appropriate + // newValue: + // the new value + // priorityChange: + // For a slider, for example, dragging the slider is priorityChange==false, + // but on mouse up, it's priorityChange==true. If intermediateChanges==true, + // onChange is only called form priorityChange=true events. + // tags: + // private + this._lastValue = newValue; + if(this._lastValueReported == undefined && (priorityChange === null || !this._onChangeActive)){ + // this block executes not for a change, but during initialization, + // and is used to store away the original value (or for ToggleButton, the original checked state) + this._resetValue = this._lastValueReported = newValue; + } + if((this.intermediateChanges || priorityChange || priorityChange === undefined) && + ((typeof newValue != typeof this._lastValueReported) || + this.compare(newValue, this._lastValueReported) != 0)){ + this._lastValueReported = newValue; + if(this._onChangeActive){ + if(this._onChangeHandle){ + clearTimeout(this._onChangeHandle); + } + // setTimout allows hidden value processing to run and + // also the onChange handler can safely adjust focus, etc + this._onChangeHandle = setTimeout(dojo.hitch(this, + function(){ + this._onChangeHandle = null; + this.onChange(newValue); + }), 0); // try to collapse multiple onChange's fired faster than can be processed + } + } + }, + + create: function(){ + // Overrides _Widget.create() + this.inherited(arguments); + this._onChangeActive = true; + }, + + destroy: function(){ + if(this._onChangeHandle){ // destroy called before last onChange has fired + clearTimeout(this._onChangeHandle); + this.onChange(this._lastValueReported); + } + this.inherited(arguments); + }, + + setValue: function(/*String*/ value){ + // summary: + // Deprecated. Use set('value', ...) instead. + dojo.deprecated("dijit.form._FormWidget:setValue("+value+") is deprecated. Use set('value',"+value+") instead.", "", "2.0"); + this.set('value', value); + }, + + getValue: function(){ + // summary: + // Deprecated. Use get('value') instead. + dojo.deprecated(this.declaredClass+"::getValue() is deprecated. Use get('value') instead.", "", "2.0"); + return this.get('value'); + }, + + _onMouseDown: function(e){ + // If user clicks on the button, even if the mouse is released outside of it, + // this button should get focus (to mimics native browser buttons). + // This is also needed on chrome because otherwise buttons won't get focus at all, + // which leads to bizarre focus restore on Dialog close etc. + if(!e.ctrlKey && this.isFocusable()){ // !e.ctrlKey to ignore right-click on mac + // Set a global event to handle mouseup, so it fires properly + // even if the cursor leaves this.domNode before the mouse up event. + var mouseUpConnector = this.connect(dojo.body(), "onmouseup", function(){ + if (this.isFocusable()) { + this.focus(); + } + this.disconnect(mouseUpConnector); + }); + } + } +}); + +dojo.declare("dijit.form._FormValueWidget", dijit.form._FormWidget, +{ + // summary: + // Base class for widgets corresponding to native HTML elements such as <input> or <select> that have user changeable values. + // description: + // Each _FormValueWidget represents a single input value, and has a (possibly hidden) <input> element, + // to which it serializes it's input value, so that form submission (either normal submission or via FormBind?) + // works as expected. + + // Don't attempt to mixin the 'type', 'name' attributes here programatically -- they must be declared + // directly in the template as read by the parser in order to function. IE is known to specifically + // require the 'name' attribute at element creation time. See #8484, #8660. + // TODO: unclear what that {value: ""} is for; FormWidget.attributeMap copies value to focusNode, + // so maybe {value: ""} is so the value *doesn't* get copied to focusNode? + // Seems like we really want value removed from attributeMap altogether + // (although there's no easy way to do that now) + + // readOnly: Boolean + // Should this widget respond to user input? + // In markup, this is specified as "readOnly". + // Similar to disabled except readOnly form values are submitted. + readOnly: false, + + attributeMap: dojo.delegate(dijit.form._FormWidget.prototype.attributeMap, { + value: "", + readOnly: "focusNode" + }), + + _setReadOnlyAttr: function(/*Boolean*/ value){ + this.readOnly = value; + dojo.attr(this.focusNode, 'readOnly', value); + dijit.setWaiState(this.focusNode, "readonly", value); + }, + + postCreate: function(){ + this.inherited(arguments); + + if(dojo.isIE){ // IE won't stop the event with keypress + this.connect(this.focusNode || this.domNode, "onkeydown", this._onKeyDown); + } + // Update our reset value if it hasn't yet been set (because this.set() + // is only called when there *is* a value) + if(this._resetValue === undefined){ + this._resetValue = this.value; + } + }, + + _setValueAttr: function(/*anything*/ newValue, /*Boolean, optional*/ priorityChange){ + // summary: + // Hook so attr('value', value) works. + // description: + // Sets the value of the widget. + // If the value has changed, then fire onChange event, unless priorityChange + // is specified as null (or false?) + this.value = newValue; + this._handleOnChange(newValue, priorityChange); + }, + + _getValueAttr: function(){ + // summary: + // Hook so attr('value') works. + return this._lastValue; + }, + + undo: function(){ + // summary: + // Restore the value to the last value passed to onChange + this._setValueAttr(this._lastValueReported, false); + }, + + reset: function(){ + // summary: + // Reset the widget's value to what it was at initialization time + this._hasBeenBlurred = false; + this._setValueAttr(this._resetValue, true); + }, + + _onKeyDown: function(e){ + if(e.keyCode == dojo.keys.ESCAPE && !(e.ctrlKey || e.altKey || e.metaKey)){ + var te; + if(dojo.isIE){ + e.preventDefault(); // default behavior needs to be stopped here since keypress is too late + te = document.createEventObject(); + te.keyCode = dojo.keys.ESCAPE; + te.shiftKey = e.shiftKey; + e.srcElement.fireEvent('onkeypress', te); + } + } + }, + + _layoutHackIE7: function(){ + // summary: + // Work around table sizing bugs on IE7 by forcing redraw + + if(dojo.isIE == 7){ // fix IE7 layout bug when the widget is scrolled out of sight + var domNode = this.domNode; + var parent = domNode.parentNode; + var pingNode = domNode.firstChild || domNode; // target node most unlikely to have a custom filter + var origFilter = pingNode.style.filter; // save custom filter, most likely nothing + var _this = this; + while(parent && parent.clientHeight == 0){ // search for parents that haven't rendered yet + (function ping(){ + var disconnectHandle = _this.connect(parent, "onscroll", + function(e){ + _this.disconnect(disconnectHandle); // only call once + pingNode.style.filter = (new Date()).getMilliseconds(); // set to anything that's unique + setTimeout(function(){ pingNode.style.filter = origFilter }, 0); // restore custom filter, if any + } + ); + })(); + parent = parent.parentNode; + } + } + } +}); + +} + +if(!dojo._hasResource["dijit.dijit"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dijit.dijit"] = true; +dojo.provide("dijit.dijit"); + +/*===== +dijit.dijit = { + // summary: + // A roll-up for common dijit methods + // description: + // A rollup file for the build system including the core and common + // dijit files. + // + // example: + // | <script type="text/javascript" src="js/dojo/dijit/dijit.js"></script> + // +}; +=====*/ + +// All the stuff in _base (these are the function that are guaranteed available without an explicit dojo.require) + + +// And some other stuff that we tend to pull in all the time anyway + + + + + + + +} + diff --git a/lib/dijit/form/Button.js b/lib/dijit/form/Button.js new file mode 100644 index 000000000..741062022 --- /dev/null +++ b/lib/dijit/form/Button.js @@ -0,0 +1,127 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form.Button"]){ +dojo._hasResource["dijit.form.Button"]=true; +dojo.provide("dijit.form.Button"); +dojo.require("dijit.form._FormWidget"); +dojo.require("dijit._Container"); +dojo.require("dijit._HasDropDown"); +dojo.declare("dijit.form.Button",dijit.form._FormWidget,{label:"",showLabel:true,iconClass:"",type:"button",baseClass:"dijitButton",templateString:dojo.cache("dijit.form","templates/Button.html","<span class=\"dijit dijitReset dijitInline\"\n\t><span class=\"dijitReset dijitInline dijitButtonNode\"\n\t\tdojoAttachEvent=\"ondijitclick:_onButtonClick\"\n\t\t><span class=\"dijitReset dijitStretch dijitButtonContents\"\n\t\t\tdojoAttachPoint=\"titleNode,focusNode\"\n\t\t\twaiRole=\"button\" waiState=\"labelledby-${id}_label\"\n\t\t\t><span class=\"dijitReset dijitInline dijitIcon\" dojoAttachPoint=\"iconNode\"></span\n\t\t\t><span class=\"dijitReset dijitToggleButtonIconChar\">●</span\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\"\n\t\t\t\tid=\"${id}_label\"\n\t\t\t\tdojoAttachPoint=\"containerNode\"\n\t\t\t></span\n\t\t></span\n\t></span\n\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" class=\"dijitOffScreen\"\n\t\tdojoAttachPoint=\"valueNode\"\n/></span>\n"),attributeMap:dojo.delegate(dijit.form._FormWidget.prototype.attributeMap,{value:"valueNode",iconClass:{node:"iconNode",type:"class"}}),_onClick:function(e){ +if(this.disabled){ +return false; +} +this._clicked(); +return this.onClick(e); +},_onButtonClick:function(e){ +if(this._onClick(e)===false){ +e.preventDefault(); +}else{ +if(this.type=="submit"&&!(this.valueNode||this.focusNode).form){ +for(var _1=this.domNode;_1.parentNode;_1=_1.parentNode){ +var _2=dijit.byNode(_1); +if(_2&&typeof _2._onSubmit=="function"){ +_2._onSubmit(e); +break; +} +} +}else{ +if(this.valueNode){ +this.valueNode.click(); +e.preventDefault(); +} +} +} +},_fillContent:function(_3){ +if(_3&&(!this.params||!("label" in this.params))){ +this.set("label",_3.innerHTML); +} +},postCreate:function(){ +dojo.setSelectable(this.focusNode,false); +this.inherited(arguments); +},_setShowLabelAttr:function(_4){ +if(this.containerNode){ +dojo.toggleClass(this.containerNode,"dijitDisplayNone",!_4); +} +this.showLabel=_4; +},onClick:function(e){ +return true; +},_clicked:function(e){ +},setLabel:function(_5){ +dojo.deprecated("dijit.form.Button.setLabel() is deprecated. Use set('label', ...) instead.","","2.0"); +this.set("label",_5); +},_setLabelAttr:function(_6){ +this.containerNode.innerHTML=this.label=_6; +if(this.showLabel==false&&!this.params.title){ +this.titleNode.title=dojo.trim(this.containerNode.innerText||this.containerNode.textContent||""); +} +}}); +dojo.declare("dijit.form.DropDownButton",[dijit.form.Button,dijit._Container,dijit._HasDropDown],{baseClass:"dijitDropDownButton",templateString:dojo.cache("dijit.form","templates/DropDownButton.html","<span class=\"dijit dijitReset dijitInline\"\n\t><span class='dijitReset dijitInline dijitButtonNode'\n\t\tdojoAttachEvent=\"ondijitclick:_onButtonClick\" dojoAttachPoint=\"_buttonNode\"\n\t\t><span class=\"dijitReset dijitStretch dijitButtonContents\"\n\t\t\tdojoAttachPoint=\"focusNode,titleNode,_arrowWrapperNode\"\n\t\t\twaiRole=\"button\" waiState=\"haspopup-true,labelledby-${id}_label\"\n\t\t\t><span class=\"dijitReset dijitInline dijitIcon\"\n\t\t\t\tdojoAttachPoint=\"iconNode\"\n\t\t\t></span\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\"\n\t\t\t\tdojoAttachPoint=\"containerNode,_popupStateNode\"\n\t\t\t\tid=\"${id}_label\"\n\t\t\t></span\n\t\t\t><span class=\"dijitReset dijitInline dijitArrowButtonInner\"></span\n\t\t\t><span class=\"dijitReset dijitInline dijitArrowButtonChar\">▼</span\n\t\t></span\n\t></span\n\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" class=\"dijitOffScreen\"\n\t\tdojoAttachPoint=\"valueNode\"\n/></span>\n"),_fillContent:function(){ +if(this.srcNodeRef){ +var _7=dojo.query("*",this.srcNodeRef); +dijit.form.DropDownButton.superclass._fillContent.call(this,_7[0]); +this.dropDownContainer=this.srcNodeRef; +} +},startup:function(){ +if(this._started){ +return; +} +if(!this.dropDown){ +var _8=dojo.query("[widgetId]",this.dropDownContainer)[0]; +this.dropDown=dijit.byNode(_8); +delete this.dropDownContainer; +} +dijit.popup.moveOffScreen(this.dropDown.domNode); +this.inherited(arguments); +},isLoaded:function(){ +var _9=this.dropDown; +return (!_9.href||_9.isLoaded); +},loadDropDown:function(){ +var _a=this.dropDown; +if(!_a){ +return; +} +if(!this.isLoaded()){ +var _b=dojo.connect(_a,"onLoad",this,function(){ +dojo.disconnect(_b); +this.openDropDown(); +}); +_a.refresh(); +}else{ +this.openDropDown(); +} +},isFocusable:function(){ +return this.inherited(arguments)&&!this._mouseDown; +}}); +dojo.declare("dijit.form.ComboButton",dijit.form.DropDownButton,{templateString:dojo.cache("dijit.form","templates/ComboButton.html","<table class=\"dijit dijitReset dijitInline dijitLeft\"\n\tcellspacing='0' cellpadding='0' waiRole=\"presentation\"\n\t><tbody waiRole=\"presentation\"><tr waiRole=\"presentation\"\n\t\t><td class=\"dijitReset dijitStretch dijitButtonNode\" dojoAttachPoint=\"buttonNode\" dojoAttachEvent=\"ondijitclick:_onButtonClick,onkeypress:_onButtonKeyPress\"\n\t\t><div id=\"${id}_button\" class=\"dijitReset dijitButtonContents\"\n\t\t\tdojoAttachPoint=\"titleNode\"\n\t\t\twaiRole=\"button\" waiState=\"labelledby-${id}_label\"\n\t\t\t><div class=\"dijitReset dijitInline dijitIcon\" dojoAttachPoint=\"iconNode\" waiRole=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitInline dijitButtonText\" id=\"${id}_label\" dojoAttachPoint=\"containerNode\" waiRole=\"presentation\"></div\n\t\t></div\n\t\t></td\n\t\t><td id=\"${id}_arrow\" class='dijitReset dijitRight dijitButtonNode dijitArrowButton'\n\t\t\tdojoAttachPoint=\"_popupStateNode,focusNode,_buttonNode\"\n\t\t\tdojoAttachEvent=\"onkeypress:_onArrowKeyPress\"\n\t\t\ttitle=\"${optionsTitle}\"\n\t\t\twaiRole=\"button\" waiState=\"haspopup-true\"\n\t\t\t><div class=\"dijitReset dijitArrowButtonInner\" waiRole=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitArrowButtonChar\" waiRole=\"presentation\">▼</div\n\t\t></td\n\t\t><td style=\"display:none !important;\"\n\t\t\t><input ${!nameAttrSetting} type=\"${type}\" value=\"${value}\" dojoAttachPoint=\"valueNode\"\n\t\t/></td></tr></tbody\n></table>\n"),attributeMap:dojo.mixin(dojo.clone(dijit.form.Button.prototype.attributeMap),{id:"",tabIndex:["focusNode","titleNode"],title:"titleNode"}),optionsTitle:"",baseClass:"dijitComboButton",cssStateNodes:{"buttonNode":"dijitButtonNode","titleNode":"dijitButtonContents","_popupStateNode":"dijitDownArrowButton"},_focusedNode:null,_onButtonKeyPress:function(_c){ +if(_c.charOrCode==dojo.keys[this.isLeftToRight()?"RIGHT_ARROW":"LEFT_ARROW"]){ +dijit.focus(this._popupStateNode); +dojo.stopEvent(_c); +} +},_onArrowKeyPress:function(_d){ +if(_d.charOrCode==dojo.keys[this.isLeftToRight()?"LEFT_ARROW":"RIGHT_ARROW"]){ +dijit.focus(this.titleNode); +dojo.stopEvent(_d); +} +},focus:function(_e){ +dijit.focus(_e=="start"?this.titleNode:this._popupStateNode); +}}); +dojo.declare("dijit.form.ToggleButton",dijit.form.Button,{baseClass:"dijitToggleButton",checked:false,attributeMap:dojo.mixin(dojo.clone(dijit.form.Button.prototype.attributeMap),{checked:"focusNode"}),_clicked:function(_f){ +this.set("checked",!this.checked); +},_setCheckedAttr:function(_10,_11){ +this.checked=_10; +dojo.attr(this.focusNode||this.domNode,"checked",_10); +dijit.setWaiState(this.focusNode||this.domNode,"pressed",_10); +this._handleOnChange(_10,_11); +},setChecked:function(_12){ +dojo.deprecated("setChecked("+_12+") is deprecated. Use set('checked',"+_12+") instead.","","2.0"); +this.set("checked",_12); +},reset:function(){ +this._hasBeenBlurred=false; +this.set("checked",this.params.checked||false); +}}); +} diff --git a/lib/dijit/form/CheckBox.js b/lib/dijit/form/CheckBox.js new file mode 100644 index 000000000..ea5cdd170 --- /dev/null +++ b/lib/dijit/form/CheckBox.js @@ -0,0 +1,76 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form.CheckBox"]){ +dojo._hasResource["dijit.form.CheckBox"]=true; +dojo.provide("dijit.form.CheckBox"); +dojo.require("dijit.form.ToggleButton"); +dojo.declare("dijit.form.CheckBox",dijit.form.ToggleButton,{templateString:dojo.cache("dijit.form","templates/CheckBox.html","<div class=\"dijit dijitReset dijitInline\" waiRole=\"presentation\"\n\t><input\n\t \t${!nameAttrSetting} type=\"${type}\" ${checkedAttrSetting}\n\t\tclass=\"dijitReset dijitCheckBoxInput\"\n\t\tdojoAttachPoint=\"focusNode\"\n\t \tdojoAttachEvent=\"onclick:_onClick\"\n/></div>\n"),baseClass:"dijitCheckBox",type:"checkbox",value:"on",readOnly:false,attributeMap:dojo.delegate(dijit.form._FormWidget.prototype.attributeMap,{readOnly:"focusNode"}),_setReadOnlyAttr:function(_1){ +this.readOnly=_1; +dojo.attr(this.focusNode,"readOnly",_1); +dijit.setWaiState(this.focusNode,"readonly",_1); +},_setValueAttr:function(_2,_3){ +if(typeof _2=="string"){ +this.value=_2; +dojo.attr(this.focusNode,"value",_2); +_2=true; +} +if(this._created){ +this.set("checked",_2,_3); +} +},_getValueAttr:function(){ +return (this.checked?this.value:false); +},_setLabelAttr:undefined,postMixInProperties:function(){ +if(this.value==""){ +this.value="on"; +} +this.checkedAttrSetting=this.checked?"checked":""; +this.inherited(arguments); +},_fillContent:function(_4){ +},reset:function(){ +this._hasBeenBlurred=false; +this.set("checked",this.params.checked||false); +this.value=this.params.value||"on"; +dojo.attr(this.focusNode,"value",this.value); +},_onFocus:function(){ +if(this.id){ +dojo.query("label[for='"+this.id+"']").addClass("dijitFocusedLabel"); +} +this.inherited(arguments); +},_onBlur:function(){ +if(this.id){ +dojo.query("label[for='"+this.id+"']").removeClass("dijitFocusedLabel"); +} +this.inherited(arguments); +},_onClick:function(e){ +if(this.readOnly){ +return false; +} +return this.inherited(arguments); +}}); +dojo.declare("dijit.form.RadioButton",dijit.form.CheckBox,{type:"radio",baseClass:"dijitRadio",_setCheckedAttr:function(_5){ +this.inherited(arguments); +if(!this._created){ +return; +} +if(_5){ +var _6=this; +dojo.query("INPUT[type=radio]",this.focusNode.form||dojo.doc).forEach(function(_7){ +if(_7.name==_6.name&&_7!=_6.focusNode&&_7.form==_6.focusNode.form){ +var _8=dijit.getEnclosingWidget(_7); +if(_8&&_8.checked){ +_8.set("checked",false); +} +} +}); +} +},_clicked:function(e){ +if(!this.checked){ +this.set("checked",true); +} +}}); +} diff --git a/lib/dijit/form/ComboBox.js b/lib/dijit/form/ComboBox.js new file mode 100644 index 000000000..694c43ed1 --- /dev/null +++ b/lib/dijit/form/ComboBox.js @@ -0,0 +1,615 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form.ComboBox"]){ +dojo._hasResource["dijit.form.ComboBox"]=true; +dojo.provide("dijit.form.ComboBox"); +dojo.require("dojo.window"); +dojo.require("dojo.regexp"); +dojo.require("dojo.data.util.simpleFetch"); +dojo.require("dojo.data.util.filter"); +dojo.require("dijit._CssStateMixin"); +dojo.require("dijit.form._FormWidget"); +dojo.require("dijit.form.ValidationTextBox"); +dojo.requireLocalization("dijit.form","ComboBox",null,"ROOT,ar,ca,cs,da,de,el,es,fi,fr,he,hu,it,ja,ko,nb,nl,pl,pt,pt-pt,ro,ru,sk,sl,sv,th,tr,zh,zh-tw"); +dojo.declare("dijit.form.ComboBoxMixin",null,{item:null,pageSize:Infinity,store:null,fetchProperties:{},query:{},autoComplete:true,highlightMatch:"first",searchDelay:100,searchAttr:"name",labelAttr:"",labelType:"text",queryExpr:"${0}*",ignoreCase:true,hasDownArrow:true,templateString:dojo.cache("dijit.form","templates/ComboBox.html","<div class=\"dijit dijitReset dijitInlineTable dijitLeft\"\n\tid=\"widget_${id}\"\n\tdojoAttachPoint=\"comboNode\" waiRole=\"combobox\"\n\t><div class='dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer'\n\t\tdojoAttachPoint=\"downArrowNode\" waiRole=\"presentation\"\n\t\tdojoAttachEvent=\"onmousedown:_onArrowMouseDown\"\n\t\t><input class=\"dijitReset dijitInputField dijitArrowButtonInner\" value=\"▼ \" type=\"text\" tabIndex=\"-1\" readOnly waiRole=\"presentation\"\n\t\t\t${_buttonInputDisabled}\n\t/></div\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"Χ \" type=\"text\" tabIndex=\"-1\" readOnly waiRole=\"presentation\"\n\t/></div\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class='dijitReset dijitInputInner' ${!nameAttrSetting} type=\"text\" autocomplete=\"off\"\n\t\t\tdojoAttachEvent=\"onkeypress:_onKeyPress,compositionend\"\n\t\t\tdojoAttachPoint=\"textbox,focusNode\" waiRole=\"textbox\" waiState=\"haspopup-true,autocomplete-list\"\n\t/></div\n></div>\n"),baseClass:"dijitTextBox dijitComboBox",cssStateNodes:{"downArrowNode":"dijitDownArrowButton"},_getCaretPos:function(_1){ +var _2=0; +if(typeof (_1.selectionStart)=="number"){ +_2=_1.selectionStart; +}else{ +if(dojo.isIE){ +var tr=dojo.doc.selection.createRange().duplicate(); +var _3=_1.createTextRange(); +tr.move("character",0); +_3.move("character",0); +try{ +_3.setEndPoint("EndToEnd",tr); +_2=String(_3.text).replace(/\r/g,"").length; +} +catch(e){ +} +} +} +return _2; +},_setCaretPos:function(_4,_5){ +_5=parseInt(_5); +dijit.selectInputText(_4,_5,_5); +},_setDisabledAttr:function(_6){ +this.inherited(arguments); +dijit.setWaiState(this.comboNode,"disabled",_6); +},_abortQuery:function(){ +if(this.searchTimer){ +clearTimeout(this.searchTimer); +this.searchTimer=null; +} +if(this._fetchHandle){ +if(this._fetchHandle.abort){ +this._fetchHandle.abort(); +} +this._fetchHandle=null; +} +},_onInput:function(_7){ +if(!this.searchTimer&&(_7.type=="paste"||_7.type=="input")&&this._lastInput!=this.textbox.value){ +this.searchTimer=setTimeout(dojo.hitch(this,function(){ +this._onKeyPress({charOrCode:229}); +}),100); +} +this.inherited(arguments); +},_onKeyPress:function(_8){ +var _9=_8.charOrCode; +if(_8.altKey||((_8.ctrlKey||_8.metaKey)&&(_9!="x"&&_9!="v"))||_9==dojo.keys.SHIFT){ +return; +} +var _a=false; +var _b="_startSearchFromInput"; +var pw=this._popupWidget; +var dk=dojo.keys; +var _c=null; +this._prev_key_backspace=false; +this._abortQuery(); +if(this._isShowingNow){ +pw.handleKey(_9); +_c=pw.getHighlightedOption(); +} +switch(_9){ +case dk.PAGE_DOWN: +case dk.DOWN_ARROW: +case dk.PAGE_UP: +case dk.UP_ARROW: +if(!this._isShowingNow){ +_a=true; +_b="_startSearchAll"; +}else{ +this._announceOption(_c); +} +dojo.stopEvent(_8); +break; +case dk.ENTER: +if(_c){ +if(_c==pw.nextButton){ +this._nextSearch(1); +dojo.stopEvent(_8); +break; +}else{ +if(_c==pw.previousButton){ +this._nextSearch(-1); +dojo.stopEvent(_8); +break; +} +} +}else{ +this._setBlurValue(); +this._setCaretPos(this.focusNode,this.focusNode.value.length); +} +_8.preventDefault(); +case dk.TAB: +var _d=this.get("displayedValue"); +if(pw&&(_d==pw._messages["previousMessage"]||_d==pw._messages["nextMessage"])){ +break; +} +if(_c){ +this._selectOption(); +} +if(this._isShowingNow){ +this._lastQuery=null; +this._hideResultList(); +} +break; +case " ": +if(_c){ +dojo.stopEvent(_8); +this._selectOption(); +this._hideResultList(); +}else{ +_a=true; +} +break; +case dk.ESCAPE: +if(this._isShowingNow){ +dojo.stopEvent(_8); +this._hideResultList(); +} +break; +case dk.DELETE: +case dk.BACKSPACE: +this._prev_key_backspace=true; +_a=true; +break; +default: +_a=typeof _9=="string"||_9==229; +} +if(_a){ +this.item=undefined; +this.searchTimer=setTimeout(dojo.hitch(this,_b),1); +} +},_autoCompleteText:function(_e){ +var fn=this.focusNode; +dijit.selectInputText(fn,fn.value.length); +var _f=this.ignoreCase?"toLowerCase":"substr"; +if(_e[_f](0).indexOf(this.focusNode.value[_f](0))==0){ +var _10=this._getCaretPos(fn); +if((_10+1)>fn.value.length){ +fn.value=_e; +dijit.selectInputText(fn,_10); +} +}else{ +fn.value=_e; +dijit.selectInputText(fn); +} +},_openResultList:function(_11,_12){ +this._fetchHandle=null; +if(this.disabled||this.readOnly||(_12.query[this.searchAttr]!=this._lastQuery)){ +return; +} +this._popupWidget.clearResultList(); +if(!_11.length&&!this._maxOptions){ +this._hideResultList(); +return; +} +_12._maxOptions=this._maxOptions; +var _13=this._popupWidget.createOptions(_11,_12,dojo.hitch(this,"_getMenuLabelFromItem")); +this._showResultList(); +if(_12.direction){ +if(1==_12.direction){ +this._popupWidget.highlightFirstOption(); +}else{ +if(-1==_12.direction){ +this._popupWidget.highlightLastOption(); +} +} +this._announceOption(this._popupWidget.getHighlightedOption()); +}else{ +if(this.autoComplete&&!this._prev_key_backspace&&!/^[*]+$/.test(_12.query[this.searchAttr])){ +this._announceOption(_13[1]); +} +} +},_showResultList:function(){ +this._hideResultList(); +this.displayMessage(""); +dojo.style(this._popupWidget.domNode,{width:"",height:""}); +var _14=this.open(); +var _15=dojo.marginBox(this._popupWidget.domNode); +this._popupWidget.domNode.style.overflow=((_14.h==_15.h)&&(_14.w==_15.w))?"hidden":"auto"; +var _16=_14.w; +if(_14.h<this._popupWidget.domNode.scrollHeight){ +_16+=16; +} +dojo.marginBox(this._popupWidget.domNode,{h:_14.h,w:Math.max(_16,this.domNode.offsetWidth)}); +if(_16<this.domNode.offsetWidth){ +this._popupWidget.domNode.parentNode.style.left=dojo.position(this.domNode,true).x+"px"; +} +dijit.setWaiState(this.comboNode,"expanded","true"); +},_hideResultList:function(){ +this._abortQuery(); +if(this._isShowingNow){ +dijit.popup.close(this._popupWidget); +this._isShowingNow=false; +dijit.setWaiState(this.comboNode,"expanded","false"); +dijit.removeWaiState(this.focusNode,"activedescendant"); +} +},_setBlurValue:function(){ +var _17=this.get("displayedValue"); +var pw=this._popupWidget; +if(pw&&(_17==pw._messages["previousMessage"]||_17==pw._messages["nextMessage"])){ +this._setValueAttr(this._lastValueReported,true); +}else{ +if(typeof this.item=="undefined"){ +this.item=null; +this.set("displayedValue",_17); +}else{ +if(this.value!=this._lastValueReported){ +dijit.form._FormValueWidget.prototype._setValueAttr.call(this,this.value,true); +} +this._refreshState(); +} +} +},_onBlur:function(){ +this._hideResultList(); +this.inherited(arguments); +},_setItemAttr:function(_18,_19,_1a){ +if(!_1a){ +_1a=this.labelFunc(_18,this.store); +} +this.value=this._getValueField()!=this.searchAttr?this.store.getIdentity(_18):_1a; +this.item=_18; +dijit.form.ComboBox.superclass._setValueAttr.call(this,this.value,_19,_1a); +},_announceOption:function(_1b){ +if(!_1b){ +return; +} +var _1c; +if(_1b==this._popupWidget.nextButton||_1b==this._popupWidget.previousButton){ +_1c=_1b.innerHTML; +this.item=undefined; +this.value=""; +}else{ +_1c=this.labelFunc(_1b.item,this.store); +this.set("item",_1b.item,false,_1c); +} +this.focusNode.value=this.focusNode.value.substring(0,this._lastInput.length); +dijit.setWaiState(this.focusNode,"activedescendant",dojo.attr(_1b,"id")); +this._autoCompleteText(_1c); +},_selectOption:function(evt){ +if(evt){ +this._announceOption(evt.target); +} +this._hideResultList(); +this._setCaretPos(this.focusNode,this.focusNode.value.length); +dijit.form._FormValueWidget.prototype._setValueAttr.call(this,this.value,true); +},_onArrowMouseDown:function(evt){ +if(this.disabled||this.readOnly){ +return; +} +dojo.stopEvent(evt); +this.focus(); +if(this._isShowingNow){ +this._hideResultList(); +}else{ +this._startSearchAll(); +} +},_startSearchAll:function(){ +this._startSearch(""); +},_startSearchFromInput:function(){ +this._startSearch(this.focusNode.value.replace(/([\\\*\?])/g,"\\$1")); +},_getQueryString:function(_1d){ +return dojo.string.substitute(this.queryExpr,[_1d]); +},_startSearch:function(key){ +if(!this._popupWidget){ +var _1e=this.id+"_popup"; +this._popupWidget=new dijit.form._ComboBoxMenu({onChange:dojo.hitch(this,this._selectOption),id:_1e,dir:this.dir}); +dijit.removeWaiState(this.focusNode,"activedescendant"); +dijit.setWaiState(this.textbox,"owns",_1e); +} +var _1f=dojo.clone(this.query); +this._lastInput=key; +this._lastQuery=_1f[this.searchAttr]=this._getQueryString(key); +this.searchTimer=setTimeout(dojo.hitch(this,function(_20,_21){ +this.searchTimer=null; +var _22={queryOptions:{ignoreCase:this.ignoreCase,deep:true},query:_20,onBegin:dojo.hitch(this,"_setMaxOptions"),onComplete:dojo.hitch(this,"_openResultList"),onError:function(_23){ +_21._fetchHandle=null; +console.error("dijit.form.ComboBox: "+_23); +dojo.hitch(_21,"_hideResultList")(); +},start:0,count:this.pageSize}; +dojo.mixin(_22,_21.fetchProperties); +this._fetchHandle=_21.store.fetch(_22); +var _24=function(_25,_26){ +_25.start+=_25.count*_26; +_25.direction=_26; +this._fetchHandle=this.store.fetch(_25); +}; +this._nextSearch=this._popupWidget.onPage=dojo.hitch(this,_24,this._fetchHandle); +},_1f,this),this.searchDelay); +},_setMaxOptions:function(_27,_28){ +this._maxOptions=_27; +},_getValueField:function(){ +return this.searchAttr; +},compositionend:function(evt){ +this._onKeyPress({charOrCode:229}); +},constructor:function(){ +this.query={}; +this.fetchProperties={}; +},postMixInProperties:function(){ +if(!this.store){ +var _29=this.srcNodeRef; +this.store=new dijit.form._ComboBoxDataStore(_29); +if(!("value" in this.params)){ +var _2a=this.store.fetchSelectedItem(); +if(_2a){ +var _2b=this._getValueField(); +this.value=_2b!=this.searchAttr?this.store.getValue(_2a,_2b):this.labelFunc(_2a,this.store); +} +} +} +this.inherited(arguments); +},postCreate:function(){ +if(!this.hasDownArrow){ +this.downArrowNode.style.display="none"; +} +var _2c=dojo.query("label[for=\""+this.id+"\"]"); +if(_2c.length){ +_2c[0].id=(this.id+"_label"); +var cn=this.comboNode; +dijit.setWaiState(cn,"labelledby",_2c[0].id); +} +this.inherited(arguments); +},uninitialize:function(){ +if(this._popupWidget&&!this._popupWidget._destroyed){ +this._hideResultList(); +this._popupWidget.destroy(); +} +this.inherited(arguments); +},_getMenuLabelFromItem:function(_2d){ +var _2e=this.labelAttr?this.store.getValue(_2d,this.labelAttr):this.labelFunc(_2d,this.store); +var _2f=this.labelType; +if(this.highlightMatch!="none"&&this.labelType=="text"&&this._lastInput){ +_2e=this.doHighlight(_2e,this._escapeHtml(this._lastInput)); +_2f="html"; +} +return {html:_2f=="html",label:_2e}; +},doHighlight:function(_30,_31){ +var _32="i"+(this.highlightMatch=="all"?"g":""); +var _33=this._escapeHtml(_30); +_31=dojo.regexp.escapeString(_31); +var ret=_33.replace(new RegExp("(^|\\s)("+_31+")",_32),"$1<span class=\"dijitComboBoxHighlightMatch\">$2</span>"); +return ret; +},_escapeHtml:function(str){ +str=String(str).replace(/&/gm,"&").replace(/</gm,"<").replace(/>/gm,">").replace(/"/gm,"""); +return str; +},open:function(){ +this._isShowingNow=true; +return dijit.popup.open({popup:this._popupWidget,around:this.domNode,parent:this}); +},reset:function(){ +this.item=null; +this.inherited(arguments); +},labelFunc:function(_34,_35){ +return _35.getValue(_34,this.searchAttr).toString(); +}}); +dojo.declare("dijit.form._ComboBoxMenu",[dijit._Widget,dijit._Templated,dijit._CssStateMixin],{templateString:"<ul class='dijitReset dijitMenu' dojoAttachEvent='onmousedown:_onMouseDown,onmouseup:_onMouseUp,onmouseover:_onMouseOver,onmouseout:_onMouseOut' tabIndex='-1' style='overflow: \"auto\"; overflow-x: \"hidden\";'>"+"<li class='dijitMenuItem dijitMenuPreviousButton' dojoAttachPoint='previousButton' waiRole='option'></li>"+"<li class='dijitMenuItem dijitMenuNextButton' dojoAttachPoint='nextButton' waiRole='option'></li>"+"</ul>",_messages:null,baseClass:"dijitComboBoxMenu",postMixInProperties:function(){ +this._messages=dojo.i18n.getLocalization("dijit.form","ComboBox",this.lang); +this.inherited(arguments); +},_setValueAttr:function(_36){ +this.value=_36; +this.onChange(_36); +},onChange:function(_37){ +},onPage:function(_38){ +},postCreate:function(){ +this.previousButton.innerHTML=this._messages["previousMessage"]; +this.nextButton.innerHTML=this._messages["nextMessage"]; +this.inherited(arguments); +},onClose:function(){ +this._blurOptionNode(); +},_createOption:function(_39,_3a){ +var _3b=_3a(_39); +var _3c=dojo.doc.createElement("li"); +dijit.setWaiRole(_3c,"option"); +if(_3b.html){ +_3c.innerHTML=_3b.label; +}else{ +_3c.appendChild(dojo.doc.createTextNode(_3b.label)); +} +if(_3c.innerHTML==""){ +_3c.innerHTML=" "; +} +_3c.item=_39; +return _3c; +},createOptions:function(_3d,_3e,_3f){ +this.previousButton.style.display=(_3e.start==0)?"none":""; +dojo.attr(this.previousButton,"id",this.id+"_prev"); +dojo.forEach(_3d,function(_40,i){ +var _41=this._createOption(_40,_3f); +_41.className="dijitReset dijitMenuItem"+(this.isLeftToRight()?"":" dijitMenuItemRtl"); +dojo.attr(_41,"id",this.id+i); +this.domNode.insertBefore(_41,this.nextButton); +},this); +var _42=false; +if(_3e._maxOptions&&_3e._maxOptions!=-1){ +if((_3e.start+_3e.count)<_3e._maxOptions){ +_42=true; +}else{ +if((_3e.start+_3e.count)>_3e._maxOptions&&_3e.count==_3d.length){ +_42=true; +} +} +}else{ +if(_3e.count==_3d.length){ +_42=true; +} +} +this.nextButton.style.display=_42?"":"none"; +dojo.attr(this.nextButton,"id",this.id+"_next"); +return this.domNode.childNodes; +},clearResultList:function(){ +while(this.domNode.childNodes.length>2){ +this.domNode.removeChild(this.domNode.childNodes[this.domNode.childNodes.length-2]); +} +},_onMouseDown:function(evt){ +dojo.stopEvent(evt); +},_onMouseUp:function(evt){ +if(evt.target===this.domNode||!this._highlighted_option){ +return; +}else{ +if(evt.target==this.previousButton){ +this.onPage(-1); +}else{ +if(evt.target==this.nextButton){ +this.onPage(1); +}else{ +var tgt=evt.target; +while(!tgt.item){ +tgt=tgt.parentNode; +} +this._setValueAttr({target:tgt},true); +} +} +} +},_onMouseOver:function(evt){ +if(evt.target===this.domNode){ +return; +} +var tgt=evt.target; +if(!(tgt==this.previousButton||tgt==this.nextButton)){ +while(!tgt.item){ +tgt=tgt.parentNode; +} +} +this._focusOptionNode(tgt); +},_onMouseOut:function(evt){ +if(evt.target===this.domNode){ +return; +} +this._blurOptionNode(); +},_focusOptionNode:function(_43){ +if(this._highlighted_option!=_43){ +this._blurOptionNode(); +this._highlighted_option=_43; +dojo.addClass(this._highlighted_option,"dijitMenuItemSelected"); +} +},_blurOptionNode:function(){ +if(this._highlighted_option){ +dojo.removeClass(this._highlighted_option,"dijitMenuItemSelected"); +this._highlighted_option=null; +} +},_highlightNextOption:function(){ +if(!this.getHighlightedOption()){ +var fc=this.domNode.firstChild; +this._focusOptionNode(fc.style.display=="none"?fc.nextSibling:fc); +}else{ +var ns=this._highlighted_option.nextSibling; +if(ns&&ns.style.display!="none"){ +this._focusOptionNode(ns); +}else{ +this.highlightFirstOption(); +} +} +dojo.window.scrollIntoView(this._highlighted_option); +},highlightFirstOption:function(){ +var _44=this.domNode.firstChild; +var _45=_44.nextSibling; +this._focusOptionNode(_45.style.display=="none"?_44:_45); +dojo.window.scrollIntoView(this._highlighted_option); +},highlightLastOption:function(){ +this._focusOptionNode(this.domNode.lastChild.previousSibling); +dojo.window.scrollIntoView(this._highlighted_option); +},_highlightPrevOption:function(){ +if(!this.getHighlightedOption()){ +var lc=this.domNode.lastChild; +this._focusOptionNode(lc.style.display=="none"?lc.previousSibling:lc); +}else{ +var ps=this._highlighted_option.previousSibling; +if(ps&&ps.style.display!="none"){ +this._focusOptionNode(ps); +}else{ +this.highlightLastOption(); +} +} +dojo.window.scrollIntoView(this._highlighted_option); +},_page:function(up){ +var _46=0; +var _47=this.domNode.scrollTop; +var _48=dojo.style(this.domNode,"height"); +if(!this.getHighlightedOption()){ +this._highlightNextOption(); +} +while(_46<_48){ +if(up){ +if(!this.getHighlightedOption().previousSibling||this._highlighted_option.previousSibling.style.display=="none"){ +break; +} +this._highlightPrevOption(); +}else{ +if(!this.getHighlightedOption().nextSibling||this._highlighted_option.nextSibling.style.display=="none"){ +break; +} +this._highlightNextOption(); +} +var _49=this.domNode.scrollTop; +_46+=(_49-_47)*(up?-1:1); +_47=_49; +} +},pageUp:function(){ +this._page(true); +},pageDown:function(){ +this._page(false); +},getHighlightedOption:function(){ +var ho=this._highlighted_option; +return (ho&&ho.parentNode)?ho:null; +},handleKey:function(key){ +switch(key){ +case dojo.keys.DOWN_ARROW: +this._highlightNextOption(); +break; +case dojo.keys.PAGE_DOWN: +this.pageDown(); +break; +case dojo.keys.UP_ARROW: +this._highlightPrevOption(); +break; +case dojo.keys.PAGE_UP: +this.pageUp(); +break; +} +}}); +dojo.declare("dijit.form.ComboBox",[dijit.form.ValidationTextBox,dijit.form.ComboBoxMixin],{_setValueAttr:function(_4a,_4b,_4c){ +this.item=null; +if(!_4a){ +_4a=""; +} +dijit.form.ValidationTextBox.prototype._setValueAttr.call(this,_4a,_4b,_4c); +}}); +dojo.declare("dijit.form._ComboBoxDataStore",null,{constructor:function(_4d){ +this.root=_4d; +if(_4d.tagName!="SELECT"&&_4d.firstChild){ +_4d=dojo.query("select",_4d); +if(_4d.length>0){ +_4d=_4d[0]; +}else{ +this.root.innerHTML="<SELECT>"+this.root.innerHTML+"</SELECT>"; +_4d=this.root.firstChild; +} +this.root=_4d; +} +dojo.query("> option",_4d).forEach(function(_4e){ +_4e.innerHTML=dojo.trim(_4e.innerHTML); +}); +},getValue:function(_4f,_50,_51){ +return (_50=="value")?_4f.value:(_4f.innerText||_4f.textContent||""); +},isItemLoaded:function(_52){ +return true; +},getFeatures:function(){ +return {"dojo.data.api.Read":true,"dojo.data.api.Identity":true}; +},_fetchItems:function(_53,_54,_55){ +if(!_53.query){ +_53.query={}; +} +if(!_53.query.name){ +_53.query.name=""; +} +if(!_53.queryOptions){ +_53.queryOptions={}; +} +var _56=dojo.data.util.filter.patternToRegExp(_53.query.name,_53.queryOptions.ignoreCase),_57=dojo.query("> option",this.root).filter(function(_58){ +return (_58.innerText||_58.textContent||"").match(_56); +}); +if(_53.sort){ +_57.sort(dojo.data.util.sorter.createSortFunction(_53.sort,this)); +} +_54(_57,_53); +},close:function(_59){ +return; +},getLabel:function(_5a){ +return _5a.innerHTML; +},getIdentity:function(_5b){ +return dojo.attr(_5b,"value"); +},fetchItemByIdentity:function(_5c){ +var _5d=dojo.query("> option[value='"+_5c.identity+"']",this.root)[0]; +_5c.onItem(_5d); +},fetchSelectedItem:function(){ +var _5e=this.root,si=_5e.selectedIndex; +return typeof si=="number"?dojo.query("> option:nth-child("+(si!=-1?si+1:1)+")",_5e)[0]:null; +}}); +dojo.extend(dijit.form._ComboBoxDataStore,dojo.data.util.simpleFetch); +} diff --git a/lib/dijit/form/ComboButton.js b/lib/dijit/form/ComboButton.js new file mode 100644 index 000000000..db2d04aea --- /dev/null +++ b/lib/dijit/form/ComboButton.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form.ComboButton"]){ +dojo._hasResource["dijit.form.ComboButton"]=true; +dojo.provide("dijit.form.ComboButton"); +dojo.require("dijit.form.Button"); +} diff --git a/lib/dijit/form/CurrencyTextBox.js b/lib/dijit/form/CurrencyTextBox.js new file mode 100644 index 000000000..a6519b2a7 --- /dev/null +++ b/lib/dijit/form/CurrencyTextBox.js @@ -0,0 +1,27 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form.CurrencyTextBox"]){ +dojo._hasResource["dijit.form.CurrencyTextBox"]=true; +dojo.provide("dijit.form.CurrencyTextBox"); +dojo.require("dojo.currency"); +dojo.require("dijit.form.NumberTextBox"); +dojo.declare("dijit.form.CurrencyTextBox",dijit.form.NumberTextBox,{currency:"",baseClass:"dijitTextBox dijitCurrencyTextBox",regExpGen:function(_1){ +return "("+(this._focused?this.inherited(arguments,[dojo.mixin({},_1,this.editOptions)])+"|":"")+dojo.currency.regexp(_1)+")"; +},_formatter:dojo.currency.format,parse:function(_2,_3){ +var v=dojo.currency.parse(_2,_3); +if(isNaN(v)&&/\d+/.test(_2)){ +return this.inherited(arguments,[_2,dojo.mixin({},_3,this.editOptions)]); +} +return v; +},_setConstraintsAttr:function(_4){ +if(!_4.currency&&this.currency){ +_4.currency=this.currency; +} +this.inherited(arguments,[dojo.currency._mixInDefaults(dojo.mixin(_4,{exponent:false}))]); +}}); +} diff --git a/lib/dijit/form/DateTextBox.js b/lib/dijit/form/DateTextBox.js new file mode 100644 index 000000000..d040be5f8 --- /dev/null +++ b/lib/dijit/form/DateTextBox.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form.DateTextBox"]){ +dojo._hasResource["dijit.form.DateTextBox"]=true; +dojo.provide("dijit.form.DateTextBox"); +dojo.require("dijit.Calendar"); +dojo.require("dijit.form._DateTimeTextBox"); +dojo.declare("dijit.form.DateTextBox",dijit.form._DateTimeTextBox,{baseClass:"dijitTextBox dijitDateTextBox",popupClass:"dijit.Calendar",_selector:"date",value:new Date("")}); +} diff --git a/lib/dijit/form/DropDownButton.js b/lib/dijit/form/DropDownButton.js new file mode 100644 index 000000000..53f66278e --- /dev/null +++ b/lib/dijit/form/DropDownButton.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form.DropDownButton"]){ +dojo._hasResource["dijit.form.DropDownButton"]=true; +dojo.provide("dijit.form.DropDownButton"); +dojo.require("dijit.form.Button"); +} diff --git a/lib/dijit/form/FilteringSelect.js b/lib/dijit/form/FilteringSelect.js new file mode 100644 index 000000000..08703226c --- /dev/null +++ b/lib/dijit/form/FilteringSelect.js @@ -0,0 +1,92 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form.FilteringSelect"]){ +dojo._hasResource["dijit.form.FilteringSelect"]=true; +dojo.provide("dijit.form.FilteringSelect"); +dojo.require("dijit.form.ComboBox"); +dojo.declare("dijit.form.FilteringSelect",[dijit.form.MappedTextBox,dijit.form.ComboBoxMixin],{_isvalid:true,required:true,_lastDisplayedValue:"",isValid:function(){ +return this._isvalid||(!this.required&&this.get("displayedValue")==""); +},_refreshState:function(){ +if(!this.searchTimer){ +this.inherited(arguments); +} +},_callbackSetLabel:function(_1,_2,_3){ +if((_2&&_2.query[this.searchAttr]!=this._lastQuery)||(!_2&&_1.length&&this.store.getIdentity(_1[0])!=this._lastQuery)){ +return; +} +if(!_1.length){ +this.valueNode.value=""; +dijit.form.TextBox.superclass._setValueAttr.call(this,"",_3||(_3===undefined&&!this._focused)); +this._isvalid=false; +this.validate(this._focused); +this.item=null; +}else{ +this.set("item",_1[0],_3); +} +},_openResultList:function(_4,_5){ +if(_5.query[this.searchAttr]!=this._lastQuery){ +return; +} +if(this.item===undefined){ +this._isvalid=_4.length!=0||this._maxOptions!=0; +this.validate(true); +} +dijit.form.ComboBoxMixin.prototype._openResultList.apply(this,arguments); +},_getValueAttr:function(){ +return this.valueNode.value; +},_getValueField:function(){ +return "value"; +},_setValueAttr:function(_6,_7){ +if(!this._onChangeActive){ +_7=null; +} +this._lastQuery=_6; +if(_6===null||_6===""){ +this._setDisplayedValueAttr("",_7); +return; +} +var _8=this; +this.store.fetchItemByIdentity({identity:_6,onItem:function(_9){ +_8._callbackSetLabel(_9?[_9]:[],undefined,_7); +}}); +},_setItemAttr:function(_a,_b,_c){ +this._isvalid=true; +this.inherited(arguments); +this.valueNode.value=this.value; +this._lastDisplayedValue=this.textbox.value; +},_getDisplayQueryString:function(_d){ +return _d.replace(/([\\\*\?])/g,"\\$1"); +},_setDisplayedValueAttr:function(_e,_f){ +if(!this._created){ +_f=false; +} +if(this.store){ +this._hideResultList(); +var _10=dojo.clone(this.query); +this._lastQuery=_10[this.searchAttr]=this._getDisplayQueryString(_e); +this.textbox.value=_e; +this._lastDisplayedValue=_e; +var _11=this; +var _12={query:_10,queryOptions:{ignoreCase:this.ignoreCase,deep:true},onComplete:function(_13,_14){ +_11._fetchHandle=null; +dojo.hitch(_11,"_callbackSetLabel")(_13,_14,_f); +},onError:function(_15){ +_11._fetchHandle=null; +console.error("dijit.form.FilteringSelect: "+_15); +dojo.hitch(_11,"_callbackSetLabel")([],undefined,false); +}}; +dojo.mixin(_12,this.fetchProperties); +this._fetchHandle=this.store.fetch(_12); +} +},postMixInProperties:function(){ +this.inherited(arguments); +this._isvalid=!this.required; +},undo:function(){ +this.set("displayedValue",this._lastDisplayedValue); +}}); +} diff --git a/lib/dijit/form/Form.js b/lib/dijit/form/Form.js new file mode 100644 index 000000000..618700b5d --- /dev/null +++ b/lib/dijit/form/Form.js @@ -0,0 +1,64 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form.Form"]){ +dojo._hasResource["dijit.form.Form"]=true; +dojo.provide("dijit.form.Form"); +dojo.require("dijit._Widget"); +dojo.require("dijit._Templated"); +dojo.require("dijit.form._FormMixin"); +dojo.declare("dijit.form.Form",[dijit._Widget,dijit._Templated,dijit.form._FormMixin],{name:"",action:"",method:"",encType:"","accept-charset":"",accept:"",target:"",templateString:"<form dojoAttachPoint='containerNode' dojoAttachEvent='onreset:_onReset,onsubmit:_onSubmit' ${!nameAttrSetting}></form>",attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{action:"",method:"",encType:"","accept-charset":"",accept:"",target:""}),postMixInProperties:function(){ +this.nameAttrSetting=this.name?("name='"+this.name+"'"):""; +this.inherited(arguments); +},execute:function(_1){ +},onExecute:function(){ +},_setEncTypeAttr:function(_2){ +this.encType=_2; +dojo.attr(this.domNode,"encType",_2); +if(dojo.isIE){ +this.domNode.encoding=_2; +} +},postCreate:function(){ +if(dojo.isIE&&this.srcNodeRef&&this.srcNodeRef.attributes){ +var _3=this.srcNodeRef.attributes.getNamedItem("encType"); +if(_3&&!_3.specified&&(typeof _3.value=="string")){ +this.set("encType",_3.value); +} +} +this.inherited(arguments); +},reset:function(e){ +var _4={returnValue:true,preventDefault:function(){ +this.returnValue=false; +},stopPropagation:function(){ +},currentTarget:e?e.target:this.domNode,target:e?e.target:this.domNode}; +if(!(this.onReset(_4)===false)&&_4.returnValue){ +this.inherited(arguments,[]); +} +},onReset:function(e){ +return true; +},_onReset:function(e){ +this.reset(e); +dojo.stopEvent(e); +return false; +},_onSubmit:function(e){ +var fp=dijit.form.Form.prototype; +if(this.execute!=fp.execute||this.onExecute!=fp.onExecute){ +dojo.deprecated("dijit.form.Form:execute()/onExecute() are deprecated. Use onSubmit() instead.","","2.0"); +this.onExecute(); +this.execute(this.getValues()); +} +if(this.onSubmit(e)===false){ +dojo.stopEvent(e); +} +},onSubmit:function(e){ +return this.isValid(); +},submit:function(){ +if(!(this.onSubmit()===false)){ +this.containerNode.submit(); +} +}}); +} diff --git a/lib/dijit/form/HorizontalRule.js b/lib/dijit/form/HorizontalRule.js new file mode 100644 index 000000000..944282d80 --- /dev/null +++ b/lib/dijit/form/HorizontalRule.js @@ -0,0 +1,38 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form.HorizontalRule"]){ +dojo._hasResource["dijit.form.HorizontalRule"]=true; +dojo.provide("dijit.form.HorizontalRule"); +dojo.require("dijit._Widget"); +dojo.require("dijit._Templated"); +dojo.declare("dijit.form.HorizontalRule",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"dijitRuleContainer dijitRuleContainerH\"></div>",count:3,container:"containerNode",ruleStyle:"",_positionPrefix:"<div class=\"dijitRuleMark dijitRuleMarkH\" style=\"left:",_positionSuffix:"%;",_suffix:"\"></div>",_genHTML:function(_1,_2){ +return this._positionPrefix+_1+this._positionSuffix+this.ruleStyle+this._suffix; +},_isHorizontal:true,postCreate:function(){ +var _3; +if(this.count==1){ +_3=this._genHTML(50,0); +}else{ +var i; +var _4=100/(this.count-1); +if(!this._isHorizontal||this.isLeftToRight()){ +_3=this._genHTML(0,0); +for(i=1;i<this.count-1;i++){ +_3+=this._genHTML(_4*i,i); +} +_3+=this._genHTML(100,this.count-1); +}else{ +_3=this._genHTML(100,0); +for(i=1;i<this.count-1;i++){ +_3+=this._genHTML(100-_4*i,i); +} +_3+=this._genHTML(0,this.count-1); +} +} +this.domNode.innerHTML=_3; +}}); +} diff --git a/lib/dijit/form/HorizontalRuleLabels.js b/lib/dijit/form/HorizontalRuleLabels.js new file mode 100644 index 000000000..6cf6742c5 --- /dev/null +++ b/lib/dijit/form/HorizontalRuleLabels.js @@ -0,0 +1,38 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form.HorizontalRuleLabels"]){ +dojo._hasResource["dijit.form.HorizontalRuleLabels"]=true; +dojo.provide("dijit.form.HorizontalRuleLabels"); +dojo.require("dijit.form.HorizontalRule"); +dojo.declare("dijit.form.HorizontalRuleLabels",dijit.form.HorizontalRule,{templateString:"<div class=\"dijitRuleContainer dijitRuleContainerH dijitRuleLabelsContainer dijitRuleLabelsContainerH\"></div>",labelStyle:"",labels:[],numericMargin:0,minimum:0,maximum:1,constraints:{pattern:"#%"},_positionPrefix:"<div class=\"dijitRuleLabelContainer dijitRuleLabelContainerH\" style=\"left:",_labelPrefix:"\"><div class=\"dijitRuleLabel dijitRuleLabelH\">",_suffix:"</div></div>",_calcPosition:function(_1){ +return _1; +},_genHTML:function(_2,_3){ +return this._positionPrefix+this._calcPosition(_2)+this._positionSuffix+this.labelStyle+this._labelPrefix+this.labels[_3]+this._suffix; +},getLabels:function(){ +var _4=this.labels; +if(!_4.length){ +_4=dojo.query("> li",this.srcNodeRef).map(function(_5){ +return String(_5.innerHTML); +}); +} +this.srcNodeRef.innerHTML=""; +if(!_4.length&&this.count>1){ +var _6=this.minimum; +var _7=(this.maximum-_6)/(this.count-1); +for(var i=0;i<this.count;i++){ +_4.push((i<this.numericMargin||i>=(this.count-this.numericMargin))?"":dojo.number.format(_6,this.constraints)); +_6+=_7; +} +} +return _4; +},postMixInProperties:function(){ +this.inherited(arguments); +this.labels=this.getLabels(); +this.count=this.labels.length; +}}); +} diff --git a/lib/dijit/form/HorizontalSlider.js b/lib/dijit/form/HorizontalSlider.js new file mode 100644 index 000000000..a0cb8cf2b --- /dev/null +++ b/lib/dijit/form/HorizontalSlider.js @@ -0,0 +1,209 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form.HorizontalSlider"]){ +dojo._hasResource["dijit.form.HorizontalSlider"]=true; +dojo.provide("dijit.form.HorizontalSlider"); +dojo.require("dijit.form._FormWidget"); +dojo.require("dijit._Container"); +dojo.require("dojo.dnd.move"); +dojo.require("dijit.form.Button"); +dojo.require("dojo.number"); +dojo.require("dojo._base.fx"); +dojo.declare("dijit.form.HorizontalSlider",[dijit.form._FormValueWidget,dijit._Container],{templateString:dojo.cache("dijit.form","templates/HorizontalSlider.html","<table class=\"dijit dijitReset dijitSlider dijitSliderH\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" rules=\"none\" dojoAttachEvent=\"onkeypress:_onKeyPress,onkeyup:_onKeyUp\"\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t\t><td dojoAttachPoint=\"topDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationT dijitSliderDecorationH\"></td\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerH\"\n\t\t\t><div class=\"dijitSliderDecrementIconH\" tabIndex=\"-1\" style=\"display:none\" dojoAttachPoint=\"decrementButton\"><span class=\"dijitSliderButtonInner\">-</span></div\n\t\t></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperH dijitSliderLeftBumper\" dojoAttachEvent=\"onmousedown:_onClkDecBumper\"></div\n\t\t></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><input dojoAttachPoint=\"valueNode\" type=\"hidden\" ${!nameAttrSetting}\n\t\t\t/><div class=\"dijitReset dijitSliderBarContainerH\" waiRole=\"presentation\" dojoAttachPoint=\"sliderBarContainer\"\n\t\t\t\t><div waiRole=\"presentation\" dojoAttachPoint=\"progressBar\" class=\"dijitSliderBar dijitSliderBarH dijitSliderProgressBar dijitSliderProgressBarH\" dojoAttachEvent=\"onmousedown:_onBarClick\"\n\t\t\t\t\t><div class=\"dijitSliderMoveable dijitSliderMoveableH\"\n\t\t\t\t\t\t><div dojoAttachPoint=\"sliderHandle,focusNode\" class=\"dijitSliderImageHandle dijitSliderImageHandleH\" dojoAttachEvent=\"onmousedown:_onHandleClick\" waiRole=\"slider\" valuemin=\"${minimum}\" valuemax=\"${maximum}\"></div\n\t\t\t\t\t></div\n\t\t\t\t></div\n\t\t\t\t><div waiRole=\"presentation\" dojoAttachPoint=\"remainingBar\" class=\"dijitSliderBar dijitSliderBarH dijitSliderRemainingBar dijitSliderRemainingBarH\" dojoAttachEvent=\"onmousedown:_onBarClick\"></div\n\t\t\t></div\n\t\t></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperH dijitSliderRightBumper\" dojoAttachEvent=\"onmousedown:_onClkIncBumper\"></div\n\t\t></td\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerH\"\n\t\t\t><div class=\"dijitSliderIncrementIconH\" tabIndex=\"-1\" style=\"display:none\" dojoAttachPoint=\"incrementButton\"><span class=\"dijitSliderButtonInner\">+</span></div\n\t\t></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t\t><td dojoAttachPoint=\"containerNode,bottomDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationB dijitSliderDecorationH\"></td\n\t\t><td class=\"dijitReset\" colspan=\"2\"></td\n\t></tr\n></table>\n"),value:0,showButtons:true,minimum:0,maximum:100,discreteValues:Infinity,pageIncrement:2,clickSelect:true,slideDuration:dijit.defaultDuration,widgetsInTemplate:true,attributeMap:dojo.delegate(dijit.form._FormWidget.prototype.attributeMap,{id:""}),baseClass:"dijitSlider",cssStateNodes:{incrementButton:"dijitSliderIncrementButton",decrementButton:"dijitSliderDecrementButton",focusNode:"dijitSliderThumb"},_mousePixelCoord:"pageX",_pixelCount:"w",_startingPixelCoord:"x",_startingPixelCount:"l",_handleOffsetCoord:"left",_progressPixelSize:"width",_onKeyUp:function(e){ +if(this.disabled||this.readOnly||e.altKey||e.ctrlKey||e.metaKey){ +return; +} +this._setValueAttr(this.value,true); +},_onKeyPress:function(e){ +if(this.disabled||this.readOnly||e.altKey||e.ctrlKey||e.metaKey){ +return; +} +switch(e.charOrCode){ +case dojo.keys.HOME: +this._setValueAttr(this.minimum,false); +break; +case dojo.keys.END: +this._setValueAttr(this.maximum,false); +break; +case ((this._descending||this.isLeftToRight())?dojo.keys.RIGHT_ARROW:dojo.keys.LEFT_ARROW): +case (this._descending===false?dojo.keys.DOWN_ARROW:dojo.keys.UP_ARROW): +case (this._descending===false?dojo.keys.PAGE_DOWN:dojo.keys.PAGE_UP): +this.increment(e); +break; +case ((this._descending||this.isLeftToRight())?dojo.keys.LEFT_ARROW:dojo.keys.RIGHT_ARROW): +case (this._descending===false?dojo.keys.UP_ARROW:dojo.keys.DOWN_ARROW): +case (this._descending===false?dojo.keys.PAGE_UP:dojo.keys.PAGE_DOWN): +this.decrement(e); +break; +default: +return; +} +dojo.stopEvent(e); +},_onHandleClick:function(e){ +if(this.disabled||this.readOnly){ +return; +} +if(!dojo.isIE){ +dijit.focus(this.sliderHandle); +} +dojo.stopEvent(e); +},_isReversed:function(){ +return !this.isLeftToRight(); +},_onBarClick:function(e){ +if(this.disabled||this.readOnly||!this.clickSelect){ +return; +} +dijit.focus(this.sliderHandle); +dojo.stopEvent(e); +var _1=dojo.position(this.sliderBarContainer,true); +var _2=e[this._mousePixelCoord]-_1[this._startingPixelCoord]; +this._setPixelValue(this._isReversed()?(_1[this._pixelCount]-_2):_2,_1[this._pixelCount],true); +this._movable.onMouseDown(e); +},_setPixelValue:function(_3,_4,_5){ +if(this.disabled||this.readOnly){ +return; +} +_3=_3<0?0:_4<_3?_4:_3; +var _6=this.discreteValues; +if(_6<=1||_6==Infinity){ +_6=_4; +} +_6--; +var _7=_4/_6; +var _8=Math.round(_3/_7); +this._setValueAttr((this.maximum-this.minimum)*_8/_6+this.minimum,_5); +},_setValueAttr:function(_9,_a){ +this.valueNode.value=this.value=_9; +dijit.setWaiState(this.focusNode,"valuenow",_9); +this.inherited(arguments); +var _b=(_9-this.minimum)/(this.maximum-this.minimum); +var _c=(this._descending===false)?this.remainingBar:this.progressBar; +var _d=(this._descending===false)?this.progressBar:this.remainingBar; +if(this._inProgressAnim&&this._inProgressAnim.status!="stopped"){ +this._inProgressAnim.stop(true); +} +if(_a&&this.slideDuration>0&&_c.style[this._progressPixelSize]){ +var _e=this; +var _f={}; +var _10=parseFloat(_c.style[this._progressPixelSize]); +var _11=this.slideDuration*(_b-_10/100); +if(_11==0){ +return; +} +if(_11<0){ +_11=0-_11; +} +_f[this._progressPixelSize]={start:_10,end:_b*100,units:"%"}; +this._inProgressAnim=dojo.animateProperty({node:_c,duration:_11,onAnimate:function(v){ +_d.style[_e._progressPixelSize]=(100-parseFloat(v[_e._progressPixelSize]))+"%"; +},onEnd:function(){ +delete _e._inProgressAnim; +},properties:_f}); +this._inProgressAnim.play(); +}else{ +_c.style[this._progressPixelSize]=(_b*100)+"%"; +_d.style[this._progressPixelSize]=((1-_b)*100)+"%"; +} +},_bumpValue:function(_12,_13){ +if(this.disabled||this.readOnly){ +return; +} +var s=dojo.getComputedStyle(this.sliderBarContainer); +var c=dojo._getContentBox(this.sliderBarContainer,s); +var _14=this.discreteValues; +if(_14<=1||_14==Infinity){ +_14=c[this._pixelCount]; +} +_14--; +var _15=(this.value-this.minimum)*_14/(this.maximum-this.minimum)+_12; +if(_15<0){ +_15=0; +} +if(_15>_14){ +_15=_14; +} +_15=_15*(this.maximum-this.minimum)/_14+this.minimum; +this._setValueAttr(_15,_13); +},_onClkBumper:function(val){ +if(this.disabled||this.readOnly||!this.clickSelect){ +return; +} +this._setValueAttr(val,true); +},_onClkIncBumper:function(){ +this._onClkBumper(this._descending===false?this.minimum:this.maximum); +},_onClkDecBumper:function(){ +this._onClkBumper(this._descending===false?this.maximum:this.minimum); +},decrement:function(e){ +this._bumpValue(e.charOrCode==dojo.keys.PAGE_DOWN?-this.pageIncrement:-1); +},increment:function(e){ +this._bumpValue(e.charOrCode==dojo.keys.PAGE_UP?this.pageIncrement:1); +},_mouseWheeled:function(evt){ +dojo.stopEvent(evt); +var _16=!dojo.isMozilla; +var _17=evt[(_16?"wheelDelta":"detail")]*(_16?1:-1); +this._bumpValue(_17<0?-1:1,true); +},startup:function(){ +if(this._started){ +return; +} +dojo.forEach(this.getChildren(),function(_18){ +if(this[_18.container]!=this.containerNode){ +this[_18.container].appendChild(_18.domNode); +} +},this); +this.inherited(arguments); +},_typematicCallback:function(_19,_1a,e){ +if(_19==-1){ +this._setValueAttr(this.value,true); +}else{ +this[(_1a==(this._descending?this.incrementButton:this.decrementButton))?"decrement":"increment"](e); +} +},postCreate:function(){ +if(this.showButtons){ +this.incrementButton.style.display=""; +this.decrementButton.style.display=""; +this._connects.push(dijit.typematic.addMouseListener(this.decrementButton,this,"_typematicCallback",25,500)); +this._connects.push(dijit.typematic.addMouseListener(this.incrementButton,this,"_typematicCallback",25,500)); +} +this.connect(this.domNode,!dojo.isMozilla?"onmousewheel":"DOMMouseScroll","_mouseWheeled"); +var _1b=dojo.declare(dijit.form._SliderMover,{widget:this}); +this._movable=new dojo.dnd.Moveable(this.sliderHandle,{mover:_1b}); +var _1c=dojo.query("label[for=\""+this.id+"\"]"); +if(_1c.length){ +_1c[0].id=(this.id+"_label"); +dijit.setWaiState(this.focusNode,"labelledby",_1c[0].id); +} +dijit.setWaiState(this.focusNode,"valuemin",this.minimum); +dijit.setWaiState(this.focusNode,"valuemax",this.maximum); +this.inherited(arguments); +this._layoutHackIE7(); +},destroy:function(){ +this._movable.destroy(); +if(this._inProgressAnim&&this._inProgressAnim.status!="stopped"){ +this._inProgressAnim.stop(true); +} +this._supportingWidgets=dijit.findWidgets(this.domNode); +this.inherited(arguments); +}}); +dojo.declare("dijit.form._SliderMover",dojo.dnd.Mover,{onMouseMove:function(e){ +var _1d=this.widget; +var _1e=_1d._abspos; +if(!_1e){ +_1e=_1d._abspos=dojo.position(_1d.sliderBarContainer,true); +_1d._setPixelValue_=dojo.hitch(_1d,"_setPixelValue"); +_1d._isReversed_=_1d._isReversed(); +} +var _1f=e[_1d._mousePixelCoord]-_1e[_1d._startingPixelCoord]; +_1d._setPixelValue_(_1d._isReversed_?(_1e[_1d._pixelCount]-_1f):_1f,_1e[_1d._pixelCount],false); +},destroy:function(e){ +dojo.dnd.Mover.prototype.destroy.apply(this,arguments); +var _20=this.widget; +_20._abspos=null; +_20._setValueAttr(_20.value,true); +}}); +} diff --git a/lib/dijit/form/MappedTextBox.js b/lib/dijit/form/MappedTextBox.js new file mode 100644 index 000000000..e7dd213c0 --- /dev/null +++ b/lib/dijit/form/MappedTextBox.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form.MappedTextBox"]){ +dojo._hasResource["dijit.form.MappedTextBox"]=true; +dojo.provide("dijit.form.MappedTextBox"); +dojo.require("dijit.form.ValidationTextBox"); +} diff --git a/lib/dijit/form/MultiSelect.js b/lib/dijit/form/MultiSelect.js new file mode 100644 index 000000000..8aacb4148 --- /dev/null +++ b/lib/dijit/form/MultiSelect.js @@ -0,0 +1,49 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form.MultiSelect"]){ +dojo._hasResource["dijit.form.MultiSelect"]=true; +dojo.provide("dijit.form.MultiSelect"); +dojo.require("dijit.form._FormWidget"); +dojo.declare("dijit.form.MultiSelect",dijit.form._FormValueWidget,{size:7,templateString:"<select multiple='true' ${!nameAttrSetting} dojoAttachPoint='containerNode,focusNode' dojoAttachEvent='onchange: _onChange'></select>",attributeMap:dojo.delegate(dijit.form._FormWidget.prototype.attributeMap,{size:"focusNode"}),reset:function(){ +this._hasBeenBlurred=false; +this._setValueAttr(this._resetValue,true); +},addSelected:function(_1){ +_1.getSelected().forEach(function(n){ +this.containerNode.appendChild(n); +this.domNode.scrollTop=this.domNode.offsetHeight; +var _2=_1.domNode.scrollTop; +_1.domNode.scrollTop=0; +_1.domNode.scrollTop=_2; +},this); +},getSelected:function(){ +return dojo.query("option",this.containerNode).filter(function(n){ +return n.selected; +}); +},_getValueAttr:function(){ +return this.getSelected().map(function(n){ +return n.value; +}); +},multiple:true,_setValueAttr:function(_3){ +dojo.query("option",this.containerNode).forEach(function(n){ +n.selected=(dojo.indexOf(_3,n.value)!=-1); +}); +},invertSelection:function(_4){ +dojo.query("option",this.containerNode).forEach(function(n){ +n.selected=!n.selected; +}); +this._handleOnChange(this.get("value"),_4==true); +},_onChange:function(e){ +this._handleOnChange(this.get("value"),true); +},resize:function(_5){ +if(_5){ +dojo.marginBox(this.domNode,_5); +} +},postCreate:function(){ +this._onChange(); +}}); +} diff --git a/lib/dijit/form/NumberSpinner.js b/lib/dijit/form/NumberSpinner.js new file mode 100644 index 000000000..82a3c4024 --- /dev/null +++ b/lib/dijit/form/NumberSpinner.js @@ -0,0 +1,38 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form.NumberSpinner"]){ +dojo._hasResource["dijit.form.NumberSpinner"]=true; +dojo.provide("dijit.form.NumberSpinner"); +dojo.require("dijit.form._Spinner"); +dojo.require("dijit.form.NumberTextBox"); +dojo.declare("dijit.form.NumberSpinner",[dijit.form._Spinner,dijit.form.NumberTextBoxMixin],{adjust:function(_1,_2){ +var tc=this.constraints,v=isNaN(_1),_3=!isNaN(tc.max),_4=!isNaN(tc.min); +if(v&&_2!=0){ +_1=(_2>0)?_4?tc.min:_3?tc.max:0:_3?this.constraints.max:_4?tc.min:0; +} +var _5=_1+_2; +if(v||isNaN(_5)){ +return _1; +} +if(_3&&(_5>tc.max)){ +_5=tc.max; +} +if(_4&&(_5<tc.min)){ +_5=tc.min; +} +return _5; +},_onKeyPress:function(e){ +if((e.charOrCode==dojo.keys.HOME||e.charOrCode==dojo.keys.END)&&!(e.ctrlKey||e.altKey||e.metaKey)&&typeof this.get("value")!="undefined"){ +var _6=this.constraints[(e.charOrCode==dojo.keys.HOME?"min":"max")]; +if(typeof _6=="number"){ +this._setValueAttr(_6,false); +} +dojo.stopEvent(e); +} +}}); +} diff --git a/lib/dijit/form/NumberTextBox.js b/lib/dijit/form/NumberTextBox.js new file mode 100644 index 000000000..d477d1ba9 --- /dev/null +++ b/lib/dijit/form/NumberTextBox.js @@ -0,0 +1,112 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form.NumberTextBox"]){ +dojo._hasResource["dijit.form.NumberTextBox"]=true; +dojo.provide("dijit.form.NumberTextBox"); +dojo.require("dijit.form.ValidationTextBox"); +dojo.require("dojo.number"); +dojo.declare("dijit.form.NumberTextBoxMixin",null,{regExpGen:dojo.number.regexp,value:NaN,editOptions:{pattern:"#.######"},_formatter:dojo.number.format,_setConstraintsAttr:function(_1){ +var _2=typeof _1.places=="number"?_1.places:0; +if(_2){ +_2++; +} +if(typeof _1.max!="number"){ +_1.max=9*Math.pow(10,15-_2); +} +if(typeof _1.min!="number"){ +_1.min=-9*Math.pow(10,15-_2); +} +this.inherited(arguments,[_1]); +if(this.focusNode&&this.focusNode.value&&!isNaN(this.value)){ +this.set("value",this.value); +} +},_onFocus:function(){ +if(this.disabled){ +return; +} +var _3=this.get("value"); +if(typeof _3=="number"&&!isNaN(_3)){ +var _4=this.format(_3,this.constraints); +if(_4!==undefined){ +this.textbox.value=_4; +} +} +this.inherited(arguments); +},format:function(_5,_6){ +var _7=String(_5); +if(typeof _5!="number"){ +return _7; +} +if(isNaN(_5)){ +return ""; +} +if(!("rangeCheck" in this&&this.rangeCheck(_5,_6))&&_6.exponent!==false&&/\de[-+]?\d/i.test(_7)){ +return _7; +} +if(this.editOptions&&this._focused){ +_6=dojo.mixin({},_6,this.editOptions); +} +return this._formatter(_5,_6); +},parse:dojo.number.parse,_getDisplayedValueAttr:function(){ +var v=this.inherited(arguments); +return isNaN(v)?this.textbox.value:v; +},filter:function(_8){ +return (_8===null||_8===""||_8===undefined)?NaN:this.inherited(arguments); +},serialize:function(_9,_a){ +return (typeof _9!="number"||isNaN(_9))?"":this.inherited(arguments); +},_setValueAttr:function(_b,_c,_d){ +if(_b!==undefined&&_d===undefined){ +_d=String(_b); +if(typeof _b=="number"){ +if(isNaN(_b)){ +_d=""; +}else{ +if(("rangeCheck" in this&&this.rangeCheck(_b,this.constraints))||this.constraints.exponent===false||!/\de[-+]?\d/i.test(_d)){ +_d=undefined; +} +} +}else{ +if(!_b){ +_d=""; +_b=NaN; +}else{ +_b=undefined; +} +} +} +this.inherited(arguments,[_b,_c,_d]); +},_getValueAttr:function(){ +var v=this.inherited(arguments); +if(isNaN(v)&&this.textbox.value!==""){ +if(this.constraints.exponent!==false&&/\de[-+]?\d/i.test(this.textbox.value)&&(new RegExp("^"+dojo.number._realNumberRegexp(dojo.mixin({},this.constraints))+"$").test(this.textbox.value))){ +var n=Number(this.textbox.value); +return isNaN(n)?undefined:n; +}else{ +return undefined; +} +}else{ +return v; +} +},isValid:function(_e){ +if(!this._focused||this._isEmpty(this.textbox.value)){ +return this.inherited(arguments); +}else{ +var v=this.get("value"); +if(!isNaN(v)&&this.rangeCheck(v,this.constraints)){ +if(this.constraints.exponent!==false&&/\de[-+]?\d/i.test(this.textbox.value)){ +return true; +}else{ +return this.inherited(arguments); +} +}else{ +return false; +} +} +}}); +dojo.declare("dijit.form.NumberTextBox",[dijit.form.RangeBoundTextBox,dijit.form.NumberTextBoxMixin],{}); +} diff --git a/lib/dijit/form/RadioButton.js b/lib/dijit/form/RadioButton.js new file mode 100644 index 000000000..154bdd4bc --- /dev/null +++ b/lib/dijit/form/RadioButton.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form.RadioButton"]){ +dojo._hasResource["dijit.form.RadioButton"]=true; +dojo.provide("dijit.form.RadioButton"); +dojo.require("dijit.form.CheckBox"); +} diff --git a/lib/dijit/form/RangeBoundTextBox.js b/lib/dijit/form/RangeBoundTextBox.js new file mode 100644 index 000000000..b2e2f4ca9 --- /dev/null +++ b/lib/dijit/form/RangeBoundTextBox.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form.RangeBoundTextBox"]){ +dojo._hasResource["dijit.form.RangeBoundTextBox"]=true; +dojo.provide("dijit.form.RangeBoundTextBox"); +dojo.require("dijit.form.ValidationTextBox"); +} diff --git a/lib/dijit/form/Select.js b/lib/dijit/form/Select.js new file mode 100644 index 000000000..7caf553f2 --- /dev/null +++ b/lib/dijit/form/Select.js @@ -0,0 +1,140 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form.Select"]){ +dojo._hasResource["dijit.form.Select"]=true; +dojo.provide("dijit.form.Select"); +dojo.require("dijit.form._FormSelectWidget"); +dojo.require("dijit._HasDropDown"); +dojo.require("dijit.Menu"); +dojo.require("dijit.Tooltip"); +dojo.requireLocalization("dijit.form","validate",null,"ROOT,ar,ca,cs,da,de,el,es,fi,fr,he,hu,it,ja,ko,nb,nl,pl,pt,pt-pt,ro,ru,sk,sl,sv,th,tr,zh,zh-tw"); +dojo.declare("dijit.form._SelectMenu",dijit.Menu,{buildRendering:function(){ +this.inherited(arguments); +var o=(this.menuTableNode=this.domNode); +var n=(this.domNode=dojo.create("div",{style:{overflowX:"hidden",overflowY:"scroll"}})); +if(o.parentNode){ +o.parentNode.replaceChild(n,o); +} +dojo.removeClass(o,"dijitMenuTable"); +n.className=o.className+" dijitSelectMenu"; +o.className="dijitReset dijitMenuTable"; +dijit.setWaiRole(o,"listbox"); +dijit.setWaiRole(n,"presentation"); +n.appendChild(o); +},resize:function(mb){ +if(mb){ +dojo.marginBox(this.domNode,mb); +if("w" in mb){ +this.menuTableNode.style.width="100%"; +} +} +}}); +dojo.declare("dijit.form.Select",[dijit.form._FormSelectWidget,dijit._HasDropDown],{baseClass:"dijitSelect",templateString:dojo.cache("dijit.form","templates/Select.html","<table class=\"dijit dijitReset dijitInline dijitLeft\"\n\tdojoAttachPoint=\"_buttonNode,tableNode,focusNode\" cellspacing='0' cellpadding='0'\n\twaiRole=\"combobox\" waiState=\"haspopup-true\"\n\t><tbody waiRole=\"presentation\"><tr waiRole=\"presentation\"\n\t\t><td class=\"dijitReset dijitStretch dijitButtonContents dijitButtonNode\" waiRole=\"presentation\"\n\t\t\t><span class=\"dijitReset dijitInline dijitButtonText\" dojoAttachPoint=\"containerNode,_popupStateNode\"></span\n\t\t\t><input type=\"hidden\" ${!nameAttrSetting} dojoAttachPoint=\"valueNode\" value=\"${value}\" waiState=\"hidden-true\"\n\t\t/></td><td class=\"dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton\"\n\t\t\t\tdojoAttachPoint=\"titleNode\" waiRole=\"presentation\"\n\t\t\t><div class=\"dijitReset dijitArrowButtonInner\" waiRole=\"presentation\"></div\n\t\t\t><div class=\"dijitReset dijitArrowButtonChar\" waiRole=\"presentation\">▼</div\n\t\t></td\n\t></tr></tbody\n></table>\n"),attributeMap:dojo.mixin(dojo.clone(dijit.form._FormSelectWidget.prototype.attributeMap),{style:"tableNode"}),required:false,state:"",tooltipPosition:[],emptyLabel:"",_isLoaded:false,_childrenLoaded:false,_fillContent:function(){ +this.inherited(arguments); +if(this.options.length&&!this.value&&this.srcNodeRef){ +var si=this.srcNodeRef.selectedIndex; +this.value=this.options[si!=-1?si:0].value; +} +this.dropDown=new dijit.form._SelectMenu({id:this.id+"_menu"}); +dojo.addClass(this.dropDown.domNode,this.baseClass+"Menu"); +},_getMenuItemForOption:function(_1){ +if(!_1.value){ +return new dijit.MenuSeparator(); +}else{ +var _2=dojo.hitch(this,"_setValueAttr",_1); +var _3=new dijit.MenuItem({option:_1,label:_1.label,onClick:_2,disabled:_1.disabled||false}); +dijit.setWaiRole(_3.focusNode,"listitem"); +return _3; +} +},_addOptionItem:function(_4){ +if(this.dropDown){ +this.dropDown.addChild(this._getMenuItemForOption(_4)); +} +},_getChildren:function(){ +if(!this.dropDown){ +return []; +} +return this.dropDown.getChildren(); +},_loadChildren:function(_5){ +if(_5===true){ +if(this.dropDown){ +delete this.dropDown.focusedChild; +} +if(this.options.length){ +this.inherited(arguments); +}else{ +dojo.forEach(this._getChildren(),function(_6){ +_6.destroyRecursive(); +}); +var _7=new dijit.MenuItem({label:" "}); +this.dropDown.addChild(_7); +} +}else{ +this._updateSelection(); +} +var _8=this.options.length; +this._isLoaded=false; +this._childrenLoaded=true; +if(!this._loadingStore){ +this._setValueAttr(this.value); +} +},_setValueAttr:function(_9){ +this.inherited(arguments); +dojo.attr(this.valueNode,"value",this.get("value")); +},_setDisplay:function(_a){ +this.containerNode.innerHTML="<span class=\"dijitReset dijitInline "+this.baseClass+"Label\">"+(_a||this.emptyLabel||" ")+"</span>"; +dijit.setWaiState(this.focusNode,"valuetext",(_a||this.emptyLabel||" ")); +},validate:function(_b){ +var _c=this.isValid(_b); +this.state=_c?"":"Error"; +this._setStateClass(); +dijit.setWaiState(this.focusNode,"invalid",_c?"false":"true"); +var _d=_c?"":this._missingMsg; +if(this._message!==_d){ +this._message=_d; +dijit.hideTooltip(this.domNode); +if(_d){ +dijit.showTooltip(_d,this.domNode,this.tooltipPosition,!this.isLeftToRight()); +} +} +return _c; +},isValid:function(_e){ +return (!this.required||!(/^\s*$/.test(this.value))); +},reset:function(){ +this.inherited(arguments); +dijit.hideTooltip(this.domNode); +this.state=""; +this._setStateClass(); +delete this._message; +},postMixInProperties:function(){ +this.inherited(arguments); +this._missingMsg=dojo.i18n.getLocalization("dijit.form","validate",this.lang).missingMessage; +},postCreate:function(){ +this.inherited(arguments); +if(this.tableNode.style.width){ +dojo.addClass(this.domNode,this.baseClass+"FixedWidth"); +} +},isLoaded:function(){ +return this._isLoaded; +},loadDropDown:function(_f){ +this._loadChildren(true); +this._isLoaded=true; +_f(); +},closeDropDown:function(){ +this.inherited(arguments); +if(this.dropDown&&this.dropDown.menuTableNode){ +this.dropDown.menuTableNode.style.width=""; +} +},uninitialize:function(_10){ +if(this.dropDown&&!this.dropDown._destroyed){ +this.dropDown.destroyRecursive(_10); +delete this.dropDown; +} +this.inherited(arguments); +}}); +} diff --git a/lib/dijit/form/SimpleTextarea.js b/lib/dijit/form/SimpleTextarea.js new file mode 100644 index 000000000..b4824c74e --- /dev/null +++ b/lib/dijit/form/SimpleTextarea.js @@ -0,0 +1,59 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form.SimpleTextarea"]){ +dojo._hasResource["dijit.form.SimpleTextarea"]=true; +dojo.provide("dijit.form.SimpleTextarea"); +dojo.require("dijit.form.TextBox"); +dojo.declare("dijit.form.SimpleTextarea",dijit.form.TextBox,{baseClass:"dijitTextBox dijitTextArea",attributeMap:dojo.delegate(dijit.form._FormValueWidget.prototype.attributeMap,{rows:"textbox",cols:"textbox"}),rows:"3",cols:"20",templateString:"<textarea ${!nameAttrSetting} dojoAttachPoint='focusNode,containerNode,textbox' autocomplete='off'></textarea>",postMixInProperties:function(){ +if(!this.value&&this.srcNodeRef){ +this.value=this.srcNodeRef.value; +} +this.inherited(arguments); +},filter:function(_1){ +if(_1){ +_1=_1.replace(/\r/g,""); +} +return this.inherited(arguments); +},postCreate:function(){ +this.inherited(arguments); +if(dojo.isIE&&this.cols){ +dojo.addClass(this.textbox,"dijitTextAreaCols"); +} +},_previousValue:"",_onInput:function(e){ +if(this.maxLength){ +var _2=parseInt(this.maxLength); +var _3=this.textbox.value.replace(/\r/g,""); +var _4=_3.length-_2; +if(_4>0){ +if(e){ +dojo.stopEvent(e); +} +var _5=this.textbox; +if(_5.selectionStart){ +var _6=_5.selectionStart; +var cr=0; +if(dojo.isOpera){ +cr=(this.textbox.value.substring(0,_6).match(/\r/g)||[]).length; +} +this.textbox.value=_3.substring(0,_6-_4-cr)+_3.substring(_6-cr); +_5.setSelectionRange(_6-_4,_6-_4); +}else{ +if(dojo.doc.selection){ +_5.focus(); +var _7=dojo.doc.selection.createRange(); +_7.moveStart("character",-_4); +_7.text=""; +_7.select(); +} +} +} +this._previousValue=this.textbox.value; +} +this.inherited(arguments); +}}); +} diff --git a/lib/dijit/form/Slider.js b/lib/dijit/form/Slider.js new file mode 100644 index 000000000..051d57929 --- /dev/null +++ b/lib/dijit/form/Slider.js @@ -0,0 +1,18 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form.Slider"]){ +dojo._hasResource["dijit.form.Slider"]=true; +dojo.provide("dijit.form.Slider"); +dojo.deprecated("Call require() for HorizontalSlider / VerticalRule, explicitly rather than 'dijit.form.Slider' itself","","2.0"); +dojo.require("dijit.form.HorizontalSlider"); +dojo.require("dijit.form.VerticalSlider"); +dojo.require("dijit.form.HorizontalRule"); +dojo.require("dijit.form.VerticalRule"); +dojo.require("dijit.form.HorizontalRuleLabels"); +dojo.require("dijit.form.VerticalRuleLabels"); +} diff --git a/lib/dijit/form/TextBox.js b/lib/dijit/form/TextBox.js new file mode 100644 index 000000000..81c9b2a04 --- /dev/null +++ b/lib/dijit/form/TextBox.js @@ -0,0 +1,209 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form.TextBox"]){ +dojo._hasResource["dijit.form.TextBox"]=true; +dojo.provide("dijit.form.TextBox"); +dojo.require("dijit.form._FormWidget"); +dojo.declare("dijit.form.TextBox",dijit.form._FormValueWidget,{trim:false,uppercase:false,lowercase:false,propercase:false,maxLength:"",selectOnClick:false,placeHolder:"",templateString:dojo.cache("dijit.form","templates/TextBox.html","<div class=\"dijit dijitReset dijitInline dijitLeft\" id=\"widget_${id}\" waiRole=\"presentation\"\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class=\"dijitReset dijitInputInner\" dojoAttachPoint='textbox,focusNode' autocomplete=\"off\"\n\t\t\t${!nameAttrSetting} type='${type}'\n\t/></div\n></div>\n"),_singleNodeTemplate:"<input class=\"dijit dijitReset dijitLeft dijitInputField\" dojoAttachPoint=\"textbox,focusNode\" autocomplete=\"off\" type=\"${type}\" ${!nameAttrSetting} />",_buttonInputDisabled:dojo.isIE?"disabled":"",baseClass:"dijitTextBox",attributeMap:dojo.delegate(dijit.form._FormValueWidget.prototype.attributeMap,{maxLength:"focusNode"}),postMixInProperties:function(){ +var _1=this.type.toLowerCase(); +if(this.templateString.toLowerCase()=="input"||((_1=="hidden"||_1=="file")&&this.templateString==dijit.form.TextBox.prototype.templateString)){ +this.templateString=this._singleNodeTemplate; +} +this.inherited(arguments); +},_setPlaceHolderAttr:function(v){ +this.placeHolder=v; +if(!this._phspan){ +this._attachPoints.push("_phspan"); +this._phspan=dojo.create("span",{className:"dijitPlaceHolder dijitInputField"},this.textbox,"after"); +} +this._phspan.innerHTML=""; +this._phspan.appendChild(document.createTextNode(v)); +this._updatePlaceHolder(); +},_updatePlaceHolder:function(){ +if(this._phspan){ +this._phspan.style.display=(this.placeHolder&&!this._focused&&!this.textbox.value)?"":"none"; +} +},_getValueAttr:function(){ +return this.parse(this.get("displayedValue"),this.constraints); +},_setValueAttr:function(_2,_3,_4){ +var _5; +if(_2!==undefined){ +_5=this.filter(_2); +if(typeof _4!="string"){ +if(_5!==null&&((typeof _5!="number")||!isNaN(_5))){ +_4=this.filter(this.format(_5,this.constraints)); +}else{ +_4=""; +} +} +} +if(_4!=null&&_4!=undefined&&((typeof _4)!="number"||!isNaN(_4))&&this.textbox.value!=_4){ +this.textbox.value=_4; +} +this._updatePlaceHolder(); +this.inherited(arguments,[_5,_3]); +},displayedValue:"",getDisplayedValue:function(){ +dojo.deprecated(this.declaredClass+"::getDisplayedValue() is deprecated. Use set('displayedValue') instead.","","2.0"); +return this.get("displayedValue"); +},_getDisplayedValueAttr:function(){ +return this.filter(this.textbox.value); +},setDisplayedValue:function(_6){ +dojo.deprecated(this.declaredClass+"::setDisplayedValue() is deprecated. Use set('displayedValue', ...) instead.","","2.0"); +this.set("displayedValue",_6); +},_setDisplayedValueAttr:function(_7){ +if(_7===null||_7===undefined){ +_7=""; +}else{ +if(typeof _7!="string"){ +_7=String(_7); +} +} +this.textbox.value=_7; +this._setValueAttr(this.get("value"),undefined,_7); +},format:function(_8,_9){ +return ((_8==null||_8==undefined)?"":(_8.toString?_8.toString():_8)); +},parse:function(_a,_b){ +return _a; +},_refreshState:function(){ +},_onInput:function(e){ +if(e&&e.type&&/key/i.test(e.type)&&e.keyCode){ +switch(e.keyCode){ +case dojo.keys.SHIFT: +case dojo.keys.ALT: +case dojo.keys.CTRL: +case dojo.keys.TAB: +return; +} +} +if(this.intermediateChanges){ +var _c=this; +setTimeout(function(){ +_c._handleOnChange(_c.get("value"),false); +},0); +} +this._refreshState(); +},postCreate:function(){ +if(dojo.isIE){ +var s=dojo.getComputedStyle(this.domNode); +if(s){ +var ff=s.fontFamily; +if(ff){ +var _d=this.domNode.getElementsByTagName("INPUT"); +if(_d){ +for(var i=0;i<_d.length;i++){ +_d[i].style.fontFamily=ff; +} +} +} +} +} +this.textbox.setAttribute("value",this.textbox.value); +this.inherited(arguments); +if(dojo.isMoz||dojo.isOpera){ +this.connect(this.textbox,"oninput",this._onInput); +}else{ +this.connect(this.textbox,"onkeydown",this._onInput); +this.connect(this.textbox,"onkeyup",this._onInput); +this.connect(this.textbox,"onpaste",this._onInput); +this.connect(this.textbox,"oncut",this._onInput); +} +},_blankValue:"",filter:function(_e){ +if(_e===null){ +return this._blankValue; +} +if(typeof _e!="string"){ +return _e; +} +if(this.trim){ +_e=dojo.trim(_e); +} +if(this.uppercase){ +_e=_e.toUpperCase(); +} +if(this.lowercase){ +_e=_e.toLowerCase(); +} +if(this.propercase){ +_e=_e.replace(/[^\s]+/g,function(_f){ +return _f.substring(0,1).toUpperCase()+_f.substring(1); +}); +} +return _e; +},_setBlurValue:function(){ +this._setValueAttr(this.get("value"),true); +},_onBlur:function(e){ +if(this.disabled){ +return; +} +this._setBlurValue(); +this.inherited(arguments); +if(this._selectOnClickHandle){ +this.disconnect(this._selectOnClickHandle); +} +if(this.selectOnClick&&dojo.isMoz){ +this.textbox.selectionStart=this.textbox.selectionEnd=undefined; +} +this._updatePlaceHolder(); +},_onFocus:function(by){ +if(this.disabled||this.readOnly){ +return; +} +if(this.selectOnClick&&by=="mouse"){ +this._selectOnClickHandle=this.connect(this.domNode,"onmouseup",function(){ +this.disconnect(this._selectOnClickHandle); +var _10; +if(dojo.isIE){ +var _11=dojo.doc.selection.createRange(); +var _12=_11.parentElement(); +_10=_12==this.textbox&&_11.text.length==0; +}else{ +_10=this.textbox.selectionStart==this.textbox.selectionEnd; +} +if(_10){ +dijit.selectInputText(this.textbox); +} +}); +} +this._updatePlaceHolder(); +this._refreshState(); +this.inherited(arguments); +},reset:function(){ +this.textbox.value=""; +this.inherited(arguments); +}}); +dijit.selectInputText=function(_13,_14,_15){ +var _16=dojo.global; +var _17=dojo.doc; +_13=dojo.byId(_13); +if(isNaN(_14)){ +_14=0; +} +if(isNaN(_15)){ +_15=_13.value?_13.value.length:0; +} +dijit.focus(_13); +if(_17["selection"]&&dojo.body()["createTextRange"]){ +if(_13.createTextRange){ +var _18=_13.createTextRange(); +with(_18){ +collapse(true); +moveStart("character",-99999); +moveStart("character",_14); +moveEnd("character",_15-_14); +select(); +} +} +}else{ +if(_16["getSelection"]){ +if(_13.setSelectionRange){ +_13.setSelectionRange(_14,_15); +} +} +} +}; +} diff --git a/lib/dijit/form/Textarea.js b/lib/dijit/form/Textarea.js new file mode 100644 index 000000000..4dd9cd928 --- /dev/null +++ b/lib/dijit/form/Textarea.js @@ -0,0 +1,103 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form.Textarea"]){ +dojo._hasResource["dijit.form.Textarea"]=true; +dojo.provide("dijit.form.Textarea"); +dojo.require("dijit.form.SimpleTextarea"); +dojo.declare("dijit.form.Textarea",dijit.form.SimpleTextarea,{cols:"",_previousNewlines:0,_strictMode:(dojo.doc.compatMode!="BackCompat"),_getHeight:function(_1){ +var _2=_1.scrollHeight; +if(dojo.isIE){ +_2+=_1.offsetHeight-_1.clientHeight-((dojo.isIE<8&&this._strictMode)?dojo._getPadBorderExtents(_1).h:0); +}else{ +if(dojo.isMoz){ +_2+=_1.offsetHeight-_1.clientHeight; +}else{ +if(dojo.isWebKit&&!(dojo.isSafari<4)){ +_2+=dojo._getBorderExtents(_1).h; +}else{ +_2+=dojo._getPadBorderExtents(_1).h; +} +} +} +return _2; +},_estimateHeight:function(_3){ +_3.style.maxHeight=""; +_3.style.height="auto"; +_3.rows=(_3.value.match(/\n/g)||[]).length+1; +},_needsHelpShrinking:dojo.isMoz||dojo.isWebKit,_onInput:function(){ +this.inherited(arguments); +if(this._busyResizing){ +return; +} +this._busyResizing=true; +var _4=this.textbox; +if(_4.scrollHeight&&_4.offsetHeight&&_4.clientHeight){ +var _5=this._getHeight(_4)+"px"; +if(_4.style.height!=_5){ +_4.style.maxHeight=_4.style.height=_5; +} +if(this._needsHelpShrinking){ +if(this._setTimeoutHandle){ +clearTimeout(this._setTimeoutHandle); +} +this._setTimeoutHandle=setTimeout(dojo.hitch(this,"_shrink"),0); +} +}else{ +this._estimateHeight(_4); +} +this._busyResizing=false; +},_busyResizing:false,_shrink:function(){ +this._setTimeoutHandle=null; +if(this._needsHelpShrinking&&!this._busyResizing){ +this._busyResizing=true; +var _6=this.textbox; +var _7=false; +if(_6.value==""){ +_6.value=" "; +_7=true; +} +var _8=_6.scrollHeight; +if(!_8){ +this._estimateHeight(_6); +}else{ +var _9=_6.style.paddingBottom; +var _a=dojo._getPadExtents(_6); +_a=_a.h-_a.t; +_6.style.paddingBottom=_a+1+"px"; +var _b=this._getHeight(_6)-1+"px"; +if(_6.style.maxHeight!=_b){ +_6.style.paddingBottom=_a+_8+"px"; +_6.scrollTop=0; +_6.style.maxHeight=this._getHeight(_6)-_8+"px"; +} +_6.style.paddingBottom=_9; +} +if(_7){ +_6.value=""; +} +this._busyResizing=false; +} +},resize:function(){ +this._onInput(); +},_setValueAttr:function(){ +this.inherited(arguments); +this.resize(); +},postCreate:function(){ +this.inherited(arguments); +dojo.style(this.textbox,{overflowY:"hidden",overflowX:"auto",boxSizing:"border-box",MsBoxSizing:"border-box",WebkitBoxSizing:"border-box",MozBoxSizing:"border-box"}); +this.connect(this.textbox,"onscroll",this._onInput); +this.connect(this.textbox,"onresize",this._onInput); +this.connect(this.textbox,"onfocus",this._onInput); +this._setTimeoutHandle=setTimeout(dojo.hitch(this,"resize"),0); +},uninitialize:function(){ +if(this._setTimeoutHandle){ +clearTimeout(this._setTimeoutHandle); +} +this.inherited(arguments); +}}); +} diff --git a/lib/dijit/form/TimeTextBox.js b/lib/dijit/form/TimeTextBox.js new file mode 100644 index 000000000..f5e7f99e3 --- /dev/null +++ b/lib/dijit/form/TimeTextBox.js @@ -0,0 +1,14 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form.TimeTextBox"]){ +dojo._hasResource["dijit.form.TimeTextBox"]=true; +dojo.provide("dijit.form.TimeTextBox"); +dojo.require("dijit._TimePicker"); +dojo.require("dijit.form._DateTimeTextBox"); +dojo.declare("dijit.form.TimeTextBox",dijit.form._DateTimeTextBox,{baseClass:"dijitTextBox dijitTimeTextBox",popupClass:"dijit._TimePicker",_selector:"time",value:new Date("")}); +} diff --git a/lib/dijit/form/ToggleButton.js b/lib/dijit/form/ToggleButton.js new file mode 100644 index 000000000..f67dd0880 --- /dev/null +++ b/lib/dijit/form/ToggleButton.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form.ToggleButton"]){ +dojo._hasResource["dijit.form.ToggleButton"]=true; +dojo.provide("dijit.form.ToggleButton"); +dojo.require("dijit.form.Button"); +} diff --git a/lib/dijit/form/ValidationTextBox.js b/lib/dijit/form/ValidationTextBox.js new file mode 100644 index 000000000..2e0f17317 --- /dev/null +++ b/lib/dijit/form/ValidationTextBox.js @@ -0,0 +1,211 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form.ValidationTextBox"]){ +dojo._hasResource["dijit.form.ValidationTextBox"]=true; +dojo.provide("dijit.form.ValidationTextBox"); +dojo.require("dojo.i18n"); +dojo.require("dijit.form.TextBox"); +dojo.require("dijit.Tooltip"); +dojo.requireLocalization("dijit.form","validate",null,"ROOT,ar,ca,cs,da,de,el,es,fi,fr,he,hu,it,ja,ko,nb,nl,pl,pt,pt-pt,ro,ru,sk,sl,sv,th,tr,zh,zh-tw"); +dojo.declare("dijit.form.ValidationTextBox",dijit.form.TextBox,{templateString:dojo.cache("dijit.form","templates/ValidationTextBox.html","<div class=\"dijit dijitReset dijitInlineTable dijitLeft\"\n\tid=\"widget_${id}\" waiRole=\"presentation\"\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"Χ \" type=\"text\" tabIndex=\"-1\" readOnly waiRole=\"presentation\"\n\t/></div\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class=\"dijitReset dijitInputInner\" dojoAttachPoint='textbox,focusNode' autocomplete=\"off\"\n\t\t\t${!nameAttrSetting} type='${type}'\n\t/></div\n></div>\n"),baseClass:"dijitTextBox dijitValidationTextBox",required:false,promptMessage:"",invalidMessage:"$_unset_$",missingMessage:"$_unset_$",constraints:{},regExp:".*",regExpGen:function(_1){ +return this.regExp; +},state:"",tooltipPosition:[],_setValueAttr:function(){ +this.inherited(arguments); +this.validate(this._focused); +},validator:function(_2,_3){ +return (new RegExp("^(?:"+this.regExpGen(_3)+")"+(this.required?"":"?")+"$")).test(_2)&&(!this.required||!this._isEmpty(_2))&&(this._isEmpty(_2)||this.parse(_2,_3)!==undefined); +},_isValidSubset:function(){ +return this.textbox.value.search(this._partialre)==0; +},isValid:function(_4){ +return this.validator(this.textbox.value,this.constraints); +},_isEmpty:function(_5){ +return /^\s*$/.test(_5); +},getErrorMessage:function(_6){ +return (this.required&&this._isEmpty(this.textbox.value))?this.missingMessage:this.invalidMessage; +},getPromptMessage:function(_7){ +return this.promptMessage; +},_maskValidSubsetError:true,validate:function(_8){ +var _9=""; +var _a=this.disabled||this.isValid(_8); +if(_a){ +this._maskValidSubsetError=true; +} +var _b=this._isEmpty(this.textbox.value); +var _c=!_a&&!_b&&_8&&this._isValidSubset(); +this.state=((_a||((!this._hasBeenBlurred||_8)&&_b)||_c)&&this._maskValidSubsetError)?"":"Error"; +if(this.state=="Error"){ +this._maskValidSubsetError=_8; +} +this._setStateClass(); +dijit.setWaiState(this.focusNode,"invalid",_a?"false":"true"); +if(_8){ +if(this.state=="Error"){ +_9=this.getErrorMessage(true); +}else{ +_9=this.getPromptMessage(true); +} +this._maskValidSubsetError=true; +} +this.displayMessage(_9); +return _a; +},_message:"",displayMessage:function(_d){ +if(this._message==_d){ +return; +} +this._message=_d; +dijit.hideTooltip(this.domNode); +if(_d){ +dijit.showTooltip(_d,this.domNode,this.tooltipPosition,!this.isLeftToRight()); +} +},_refreshState:function(){ +this.validate(this._focused); +this.inherited(arguments); +},constructor:function(){ +this.constraints={}; +},_setConstraintsAttr:function(_e){ +if(!_e.locale&&this.lang){ +_e.locale=this.lang; +} +this.constraints=_e; +this._computePartialRE(); +},_computePartialRE:function(){ +var p=this.regExpGen(this.constraints); +this.regExp=p; +var _f=""; +if(p!=".*"){ +this.regExp.replace(/\\.|\[\]|\[.*?[^\\]{1}\]|\{.*?\}|\(\?[=:!]|./g,function(re){ +switch(re.charAt(0)){ +case "{": +case "+": +case "?": +case "*": +case "^": +case "$": +case "|": +case "(": +_f+=re; +break; +case ")": +_f+="|$)"; +break; +default: +_f+="(?:"+re+"|$)"; +break; +} +}); +} +try{ +"".search(_f); +} +catch(e){ +_f=this.regExp; +console.warn("RegExp error in "+this.declaredClass+": "+this.regExp); +} +this._partialre="^(?:"+_f+")$"; +},postMixInProperties:function(){ +this.inherited(arguments); +this.messages=dojo.i18n.getLocalization("dijit.form","validate",this.lang); +if(this.invalidMessage=="$_unset_$"){ +this.invalidMessage=this.messages.invalidMessage; +} +if(!this.invalidMessage){ +this.invalidMessage=this.promptMessage; +} +if(this.missingMessage=="$_unset_$"){ +this.missingMessage=this.messages.missingMessage; +} +if(!this.missingMessage){ +this.missingMessage=this.invalidMessage; +} +this._setConstraintsAttr(this.constraints); +},_setDisabledAttr:function(_10){ +this.inherited(arguments); +this._refreshState(); +},_setRequiredAttr:function(_11){ +this.required=_11; +dijit.setWaiState(this.focusNode,"required",_11); +this._refreshState(); +},reset:function(){ +this._maskValidSubsetError=true; +this.inherited(arguments); +},_onBlur:function(){ +this.displayMessage(""); +this.inherited(arguments); +}}); +dojo.declare("dijit.form.MappedTextBox",dijit.form.ValidationTextBox,{postMixInProperties:function(){ +this.inherited(arguments); +this.nameAttrSetting=""; +},serialize:function(val,_12){ +return val.toString?val.toString():""; +},toString:function(){ +var val=this.filter(this.get("value")); +return val!=null?(typeof val=="string"?val:this.serialize(val,this.constraints)):""; +},validate:function(){ +this.valueNode.value=this.toString(); +return this.inherited(arguments); +},buildRendering:function(){ +this.inherited(arguments); +this.valueNode=dojo.place("<input type='hidden'"+(this.name?" name='"+this.name+"'":"")+">",this.textbox,"after"); +},reset:function(){ +this.valueNode.value=""; +this.inherited(arguments); +}}); +dojo.declare("dijit.form.RangeBoundTextBox",dijit.form.MappedTextBox,{rangeMessage:"",rangeCheck:function(_13,_14){ +return ("min" in _14?(this.compare(_13,_14.min)>=0):true)&&("max" in _14?(this.compare(_13,_14.max)<=0):true); +},isInRange:function(_15){ +return this.rangeCheck(this.get("value"),this.constraints); +},_isDefinitelyOutOfRange:function(){ +var val=this.get("value"); +var _16=false; +var _17=false; +if("min" in this.constraints){ +var min=this.constraints.min; +min=this.compare(val,((typeof min=="number")&&min>=0&&val!=0)?0:min); +_16=(typeof min=="number")&&min<0; +} +if("max" in this.constraints){ +var max=this.constraints.max; +max=this.compare(val,((typeof max!="number")||max>0)?max:0); +_17=(typeof max=="number")&&max>0; +} +return _16||_17; +},_isValidSubset:function(){ +return this.inherited(arguments)&&!this._isDefinitelyOutOfRange(); +},isValid:function(_18){ +return this.inherited(arguments)&&((this._isEmpty(this.textbox.value)&&!this.required)||this.isInRange(_18)); +},getErrorMessage:function(_19){ +var v=this.get("value"); +if(v!==null&&v!==""&&v!==undefined&&(typeof v!="number"||!isNaN(v))&&!this.isInRange(_19)){ +return this.rangeMessage; +} +return this.inherited(arguments); +},postMixInProperties:function(){ +this.inherited(arguments); +if(!this.rangeMessage){ +this.messages=dojo.i18n.getLocalization("dijit.form","validate",this.lang); +this.rangeMessage=this.messages.rangeMessage; +} +},_setConstraintsAttr:function(_1a){ +this.inherited(arguments); +if(this.focusNode){ +if(this.constraints.min!==undefined){ +dijit.setWaiState(this.focusNode,"valuemin",this.constraints.min); +}else{ +dijit.removeWaiState(this.focusNode,"valuemin"); +} +if(this.constraints.max!==undefined){ +dijit.setWaiState(this.focusNode,"valuemax",this.constraints.max); +}else{ +dijit.removeWaiState(this.focusNode,"valuemax"); +} +} +},_setValueAttr:function(_1b,_1c){ +dijit.setWaiState(this.focusNode,"valuenow",_1b); +this.inherited(arguments); +}}); +} diff --git a/lib/dijit/form/VerticalRule.js b/lib/dijit/form/VerticalRule.js new file mode 100644 index 000000000..13576277f --- /dev/null +++ b/lib/dijit/form/VerticalRule.js @@ -0,0 +1,13 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form.VerticalRule"]){ +dojo._hasResource["dijit.form.VerticalRule"]=true; +dojo.provide("dijit.form.VerticalRule"); +dojo.require("dijit.form.HorizontalRule"); +dojo.declare("dijit.form.VerticalRule",dijit.form.HorizontalRule,{templateString:"<div class=\"dijitRuleContainer dijitRuleContainerV\"></div>",_positionPrefix:"<div class=\"dijitRuleMark dijitRuleMarkV\" style=\"top:",_isHorizontal:false}); +} diff --git a/lib/dijit/form/VerticalRuleLabels.js b/lib/dijit/form/VerticalRuleLabels.js new file mode 100644 index 000000000..9adac9056 --- /dev/null +++ b/lib/dijit/form/VerticalRuleLabels.js @@ -0,0 +1,15 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form.VerticalRuleLabels"]){ +dojo._hasResource["dijit.form.VerticalRuleLabels"]=true; +dojo.provide("dijit.form.VerticalRuleLabels"); +dojo.require("dijit.form.HorizontalRuleLabels"); +dojo.declare("dijit.form.VerticalRuleLabels",dijit.form.HorizontalRuleLabels,{templateString:"<div class=\"dijitRuleContainer dijitRuleContainerV dijitRuleLabelsContainer dijitRuleLabelsContainerV\"></div>",_positionPrefix:"<div class=\"dijitRuleLabelContainer dijitRuleLabelContainerV\" style=\"top:",_labelPrefix:"\"><span class=\"dijitRuleLabel dijitRuleLabelV\">",_calcPosition:function(_1){ +return 100-_1; +},_isHorizontal:false}); +} diff --git a/lib/dijit/form/VerticalSlider.js b/lib/dijit/form/VerticalSlider.js new file mode 100644 index 000000000..9e98cbe0f --- /dev/null +++ b/lib/dijit/form/VerticalSlider.js @@ -0,0 +1,15 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form.VerticalSlider"]){ +dojo._hasResource["dijit.form.VerticalSlider"]=true; +dojo.provide("dijit.form.VerticalSlider"); +dojo.require("dijit.form.HorizontalSlider"); +dojo.declare("dijit.form.VerticalSlider",dijit.form.HorizontalSlider,{templateString:dojo.cache("dijit.form","templates/VerticalSlider.html","<table class=\"dijit dijitReset dijitSlider dijitSliderV\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" rules=\"none\" dojoAttachEvent=\"onkeypress:_onKeyPress,onkeyup:_onKeyUp\"\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerV\"\n\t\t\t><div class=\"dijitSliderIncrementIconV\" tabIndex=\"-1\" style=\"display:none\" dojoAttachPoint=\"decrementButton\"><span class=\"dijitSliderButtonInner\">+</span></div\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><center><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperV dijitSliderTopBumper\" dojoAttachEvent=\"onmousedown:_onClkIncBumper\"></div></center\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td dojoAttachPoint=\"leftDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationL dijitSliderDecorationV\"></td\n\t\t><td class=\"dijitReset\" style=\"height:100%;\"\n\t\t\t><input dojoAttachPoint=\"valueNode\" type=\"hidden\" ${!nameAttrSetting}\n\t\t\t/><center class=\"dijitReset dijitSliderBarContainerV\" waiRole=\"presentation\" dojoAttachPoint=\"sliderBarContainer\"\n\t\t\t\t><div waiRole=\"presentation\" dojoAttachPoint=\"remainingBar\" class=\"dijitSliderBar dijitSliderBarV dijitSliderRemainingBar dijitSliderRemainingBarV\" dojoAttachEvent=\"onmousedown:_onBarClick\"><!--#5629--></div\n\t\t\t\t><div waiRole=\"presentation\" dojoAttachPoint=\"progressBar\" class=\"dijitSliderBar dijitSliderBarV dijitSliderProgressBar dijitSliderProgressBarV\" dojoAttachEvent=\"onmousedown:_onBarClick\"\n\t\t\t\t\t><div class=\"dijitSliderMoveable dijitSliderMoveableV\" style=\"vertical-align:top;\"\n\t\t\t\t\t\t><div dojoAttachPoint=\"sliderHandle,focusNode\" class=\"dijitSliderImageHandle dijitSliderImageHandleV\" dojoAttachEvent=\"onmousedown:_onHandleClick\" waiRole=\"slider\" valuemin=\"${minimum}\" valuemax=\"${maximum}\"></div\n\t\t\t\t\t></div\n\t\t\t\t></div\n\t\t\t></center\n\t\t></td\n\t\t><td dojoAttachPoint=\"containerNode,rightDecoration\" class=\"dijitReset dijitSliderDecoration dijitSliderDecorationR dijitSliderDecorationV\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset\"\n\t\t\t><center><div class=\"dijitSliderBar dijitSliderBumper dijitSliderBumperV dijitSliderBottomBumper\" dojoAttachEvent=\"onmousedown:_onClkDecBumper\"></div></center\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n\t><tr class=\"dijitReset\"\n\t\t><td class=\"dijitReset\"></td\n\t\t><td class=\"dijitReset dijitSliderButtonContainer dijitSliderButtonContainerV\"\n\t\t\t><div class=\"dijitSliderDecrementIconV\" tabIndex=\"-1\" style=\"display:none\" dojoAttachPoint=\"incrementButton\"><span class=\"dijitSliderButtonInner\">-</span></div\n\t\t></td\n\t\t><td class=\"dijitReset\"></td\n\t></tr\n></table>\n"),_mousePixelCoord:"pageY",_pixelCount:"h",_startingPixelCoord:"y",_startingPixelCount:"t",_handleOffsetCoord:"top",_progressPixelSize:"height",_descending:true,_isReversed:function(){ +return this._descending; +}}); +} diff --git a/lib/dijit/form/_DateTimeTextBox.js b/lib/dijit/form/_DateTimeTextBox.js new file mode 100644 index 000000000..72898e406 --- /dev/null +++ b/lib/dijit/form/_DateTimeTextBox.js @@ -0,0 +1,148 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form._DateTimeTextBox"]){ +dojo._hasResource["dijit.form._DateTimeTextBox"]=true; +dojo.provide("dijit.form._DateTimeTextBox"); +dojo.require("dojo.date"); +dojo.require("dojo.date.locale"); +dojo.require("dojo.date.stamp"); +dojo.require("dijit.form.ValidationTextBox"); +new Date("X"); +dojo.declare("dijit.form._DateTimeTextBox",dijit.form.RangeBoundTextBox,{regExpGen:dojo.date.locale.regexp,datePackage:"dojo.date",compare:dojo.date.compare,format:function(_1,_2){ +if(!_1){ +return ""; +} +return this.dateLocaleModule.format(_1,_2); +},parse:function(_3,_4){ +return this.dateLocaleModule.parse(_3,_4)||(this._isEmpty(_3)?null:undefined); +},serialize:function(_5,_6){ +if(_5.toGregorian){ +_5=_5.toGregorian(); +} +return dojo.date.stamp.toISOString(_5,_6); +},value:new Date(""),_blankValue:null,popupClass:"",_selector:"",constructor:function(_7){ +var _8=_7.datePackage?_7.datePackage+".Date":"Date"; +this.dateClassObj=dojo.getObject(_8,false); +this.value=new this.dateClassObj(""); +this.datePackage=_7.datePackage||this.datePackage; +this.dateLocaleModule=dojo.getObject(this.datePackage+".locale",false); +this.regExpGen=this.dateLocaleModule.regexp; +},_setConstraintsAttr:function(_9){ +_9.selector=this._selector; +_9.fullYear=true; +var _a=dojo.date.stamp.fromISOString; +if(typeof _9.min=="string"){ +_9.min=_a(_9.min); +} +if(typeof _9.max=="string"){ +_9.max=_a(_9.max); +} +this.inherited(arguments,[_9]); +},_onFocus:function(_b){ +this._open(); +this.inherited(arguments); +},_setValueAttr:function(_c,_d,_e){ +if(_c!==undefined){ +if(!_c||_c.toString()==dijit.form._DateTimeTextBox.prototype.value.toString()){ +_c=null; +} +if(_c instanceof Date&&!(this.dateClassObj instanceof Date)){ +_c=new this.dateClassObj(_c); +} +} +this.inherited(arguments,[_c,_d,_e]); +if(this._picker){ +if(!_c){ +_c=new this.dateClassObj(); +} +this._picker.set("value",_c); +} +},_open:function(){ +if(this.disabled||this.readOnly||!this.popupClass){ +return; +} +var _f=this; +if(!this._picker){ +var _10=dojo.getObject(this.popupClass,false); +this._picker=new _10({onValueSelected:function(_11){ +if(_f._tabbingAway){ +delete _f._tabbingAway; +}else{ +_f.focus(); +} +setTimeout(dojo.hitch(_f,"_close"),1); +dijit.form._DateTimeTextBox.superclass._setValueAttr.call(_f,_11,true); +},id:this.id+"_popup",dir:_f.dir,lang:_f.lang,value:this.get("value")||new this.dateClassObj(),constraints:_f.constraints,datePackage:_f.datePackage,isDisabledDate:function(_12){ +var _13=dojo.date.compare; +var _14=_f.constraints; +return _14&&((_14.min&&_13(_14.min,_12,_f._selector)>0)||(_14.max&&_13(_14.max,_12,_f._selector)<0)); +}}); +} +if(!this._opened){ +dijit.popup.open({parent:this,popup:this._picker,orient:{"BL":"TL","TL":"BL"},around:this.domNode,onCancel:dojo.hitch(this,this._close),onClose:function(){ +_f._opened=false; +}}); +this._opened=true; +} +dojo.marginBox(this._picker.domNode,{w:this.domNode.offsetWidth}); +},_close:function(){ +if(this._opened){ +dijit.popup.close(this._picker); +this._opened=false; +} +},_onBlur:function(){ +this._close(); +if(this._picker){ +this._picker.destroy(); +delete this._picker; +} +this.inherited(arguments); +},_getDisplayedValueAttr:function(){ +return this.textbox.value; +},_setDisplayedValueAttr:function(_15,_16){ +this._setValueAttr(this.parse(_15,this.constraints),_16,_15); +},destroy:function(){ +if(this._picker){ +this._picker.destroy(); +delete this._picker; +} +this.inherited(arguments); +},postCreate:function(){ +this.inherited(arguments); +this.connect(this.focusNode,"onkeypress",this._onKeyPress); +this.connect(this.focusNode,"onclick",this._open); +},_onKeyPress:function(e){ +var p=this._picker,dk=dojo.keys; +if(p&&this._opened&&p.handleKey){ +if(p.handleKey(e)===false){ +return; +} +} +if(this._opened&&e.charOrCode==dk.ESCAPE&&!(e.shiftKey||e.ctrlKey||e.altKey||e.metaKey)){ +this._close(); +dojo.stopEvent(e); +}else{ +if(!this._opened&&e.charOrCode==dk.DOWN_ARROW){ +this._open(); +dojo.stopEvent(e); +}else{ +if(e.charOrCode===dk.TAB){ +this._tabbingAway=true; +}else{ +if(this._opened&&(e.keyChar||e.charOrCode===dk.BACKSPACE||e.charOrCode==dk.DELETE)){ +setTimeout(dojo.hitch(this,function(){ +if(this._picker&&this._opened){ +dijit.placeOnScreenAroundElement(p.domNode.parentNode,this.domNode,{"BL":"TL","TL":"BL"},p.orient?dojo.hitch(p,"orient"):null); +} +}),1); +} +} +} +} +}}); +} diff --git a/lib/dijit/form/_FormMixin.js b/lib/dijit/form/_FormMixin.js new file mode 100644 index 000000000..4c52ed9e2 --- /dev/null +++ b/lib/dijit/form/_FormMixin.js @@ -0,0 +1,158 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form._FormMixin"]){ +dojo._hasResource["dijit.form._FormMixin"]=true; +dojo.provide("dijit.form._FormMixin"); +dojo.require("dojo.window"); +dojo.declare("dijit.form._FormMixin",null,{reset:function(){ +dojo.forEach(this.getDescendants(),function(_1){ +if(_1.reset){ +_1.reset(); +} +}); +},validate:function(){ +var _2=false; +return dojo.every(dojo.map(this.getDescendants(),function(_3){ +_3._hasBeenBlurred=true; +var _4=_3.disabled||!_3.validate||_3.validate(); +if(!_4&&!_2){ +dojo.window.scrollIntoView(_3.containerNode||_3.domNode); +_3.focus(); +_2=true; +} +return _4; +}),function(_5){ +return _5; +}); +},setValues:function(_6){ +dojo.deprecated(this.declaredClass+"::setValues() is deprecated. Use set('value', val) instead.","","2.0"); +return this.set("value",_6); +},_setValueAttr:function(_7){ +var _8={}; +dojo.forEach(this.getDescendants(),function(_9){ +if(!_9.name){ +return; +} +var _a=_8[_9.name]||(_8[_9.name]=[]); +_a.push(_9); +}); +for(var _b in _8){ +if(!_8.hasOwnProperty(_b)){ +continue; +} +var _c=_8[_b],_d=dojo.getObject(_b,false,_7); +if(_d===undefined){ +continue; +} +if(!dojo.isArray(_d)){ +_d=[_d]; +} +if(typeof _c[0].checked=="boolean"){ +dojo.forEach(_c,function(w,i){ +w.set("value",dojo.indexOf(_d,w.value)!=-1); +}); +}else{ +if(_c[0].multiple){ +_c[0].set("value",_d); +}else{ +dojo.forEach(_c,function(w,i){ +w.set("value",_d[i]); +}); +} +} +} +},getValues:function(){ +dojo.deprecated(this.declaredClass+"::getValues() is deprecated. Use get('value') instead.","","2.0"); +return this.get("value"); +},_getValueAttr:function(){ +var _e={}; +dojo.forEach(this.getDescendants(),function(_f){ +var _10=_f.name; +if(!_10||_f.disabled){ +return; +} +var _11=_f.get("value"); +if(typeof _f.checked=="boolean"){ +if(/Radio/.test(_f.declaredClass)){ +if(_11!==false){ +dojo.setObject(_10,_11,_e); +}else{ +_11=dojo.getObject(_10,false,_e); +if(_11===undefined){ +dojo.setObject(_10,null,_e); +} +} +}else{ +var ary=dojo.getObject(_10,false,_e); +if(!ary){ +ary=[]; +dojo.setObject(_10,ary,_e); +} +if(_11!==false){ +ary.push(_11); +} +} +}else{ +var _12=dojo.getObject(_10,false,_e); +if(typeof _12!="undefined"){ +if(dojo.isArray(_12)){ +_12.push(_11); +}else{ +dojo.setObject(_10,[_12,_11],_e); +} +}else{ +dojo.setObject(_10,_11,_e); +} +} +}); +return _e; +},isValid:function(){ +this._invalidWidgets=dojo.filter(this.getDescendants(),function(_13){ +return !_13.disabled&&_13.isValid&&!_13.isValid(); +}); +return !this._invalidWidgets.length; +},onValidStateChange:function(_14){ +},_widgetChange:function(_15){ +var _16=this._lastValidState; +if(!_15||this._lastValidState===undefined){ +_16=this.isValid(); +if(this._lastValidState===undefined){ +this._lastValidState=_16; +} +}else{ +if(_15.isValid){ +this._invalidWidgets=dojo.filter(this._invalidWidgets||[],function(w){ +return (w!=_15); +},this); +if(!_15.isValid()&&!_15.get("disabled")){ +this._invalidWidgets.push(_15); +} +_16=(this._invalidWidgets.length===0); +} +} +if(_16!==this._lastValidState){ +this._lastValidState=_16; +this.onValidStateChange(_16); +} +},connectChildren:function(){ +dojo.forEach(this._changeConnections,dojo.hitch(this,"disconnect")); +var _17=this; +var _18=(this._changeConnections=[]); +dojo.forEach(dojo.filter(this.getDescendants(),function(_19){ +return _19.validate; +}),function(_1a){ +_18.push(_17.connect(_1a,"validate",dojo.hitch(_17,"_widgetChange",_1a))); +_18.push(_17.connect(_1a,"_setDisabledAttr",dojo.hitch(_17,"_widgetChange",_1a))); +}); +this._widgetChange(null); +},startup:function(){ +this.inherited(arguments); +this._changeConnections=[]; +this.connectChildren(); +}}); +} diff --git a/lib/dijit/form/_FormSelectWidget.js b/lib/dijit/form/_FormSelectWidget.js new file mode 100644 index 000000000..5905c0aef --- /dev/null +++ b/lib/dijit/form/_FormSelectWidget.js @@ -0,0 +1,307 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form._FormSelectWidget"]){ +dojo._hasResource["dijit.form._FormSelectWidget"]=true; +dojo.provide("dijit.form._FormSelectWidget"); +dojo.require("dijit.form._FormWidget"); +dojo.require("dojo.data.util.sorter"); +dojo.declare("dijit.form._FormSelectWidget",dijit.form._FormValueWidget,{multiple:false,options:null,store:null,query:null,queryOptions:null,onFetch:null,sortByLabel:true,loadChildrenOnOpen:false,getOptions:function(_1){ +var _2=_1,_3=this.options||[],l=_3.length; +if(_2===undefined){ +return _3; +} +if(dojo.isArray(_2)){ +return dojo.map(_2,"return this.getOptions(item);",this); +} +if(dojo.isObject(_1)){ +if(!dojo.some(this.options,function(o,_4){ +if(o===_2||(o.value&&o.value===_2.value)){ +_2=_4; +return true; +} +return false; +})){ +_2=-1; +} +} +if(typeof _2=="string"){ +for(var i=0;i<l;i++){ +if(_3[i].value===_2){ +_2=i; +break; +} +} +} +if(typeof _2=="number"&&_2>=0&&_2<l){ +return this.options[_2]; +} +return null; +},addOption:function(_5){ +if(!dojo.isArray(_5)){ +_5=[_5]; +} +dojo.forEach(_5,function(i){ +if(i&&dojo.isObject(i)){ +this.options.push(i); +} +},this); +this._loadChildren(); +},removeOption:function(_6){ +if(!dojo.isArray(_6)){ +_6=[_6]; +} +var _7=this.getOptions(_6); +dojo.forEach(_7,function(i){ +if(i){ +this.options=dojo.filter(this.options,function(_8,_9){ +return (_8.value!==i.value); +}); +this._removeOptionItem(i); +} +},this); +this._loadChildren(); +},updateOption:function(_a){ +if(!dojo.isArray(_a)){ +_a=[_a]; +} +dojo.forEach(_a,function(i){ +var _b=this.getOptions(i),k; +if(_b){ +for(k in i){ +_b[k]=i[k]; +} +} +},this); +this._loadChildren(); +},setStore:function(_c,_d,_e){ +var _f=this.store; +_e=_e||{}; +if(_f!==_c){ +dojo.forEach(this._notifyConnections||[],dojo.disconnect); +delete this._notifyConnections; +if(_c&&_c.getFeatures()["dojo.data.api.Notification"]){ +this._notifyConnections=[dojo.connect(_c,"onNew",this,"_onNewItem"),dojo.connect(_c,"onDelete",this,"_onDeleteItem"),dojo.connect(_c,"onSet",this,"_onSetItem")]; +} +this.store=_c; +} +this._onChangeActive=false; +if(this.options&&this.options.length){ +this.removeOption(this.options); +} +if(_c){ +var cb=function(_10){ +if(this.sortByLabel&&!_e.sort&&_10.length){ +_10.sort(dojo.data.util.sorter.createSortFunction([{attribute:_c.getLabelAttributes(_10[0])[0]}],_c)); +} +if(_e.onFetch){ +_10=_e.onFetch(_10); +} +dojo.forEach(_10,function(i){ +this._addOptionForItem(i); +},this); +this._loadingStore=false; +this.set("value",(("_pendingValue" in this)?this._pendingValue:_d)); +delete this._pendingValue; +if(!this.loadChildrenOnOpen){ +this._loadChildren(); +}else{ +this._pseudoLoadChildren(_10); +} +this._fetchedWith=_11; +this._lastValueReported=this.multiple?[]:null; +this._onChangeActive=true; +this.onSetStore(); +this._handleOnChange(this.value); +}; +var _11=dojo.mixin({onComplete:cb,scope:this},_e); +this._loadingStore=true; +_c.fetch(_11); +}else{ +delete this._fetchedWith; +} +return _f; +},_setValueAttr:function(_12,_13){ +if(this._loadingStore){ +this._pendingValue=_12; +return; +} +var _14=this.getOptions()||[]; +if(!dojo.isArray(_12)){ +_12=[_12]; +} +dojo.forEach(_12,function(i,idx){ +if(!dojo.isObject(i)){ +i=i+""; +} +if(typeof i==="string"){ +_12[idx]=dojo.filter(_14,function(_15){ +return _15.value===i; +})[0]||{value:"",label:""}; +} +},this); +_12=dojo.filter(_12,function(i){ +return i&&i.value; +}); +if(!this.multiple&&(!_12[0]||!_12[0].value)&&_14.length){ +_12[0]=_14[0]; +} +dojo.forEach(_14,function(i){ +i.selected=dojo.some(_12,function(v){ +return v.value===i.value; +}); +}); +var val=dojo.map(_12,function(i){ +return i.value; +}),_16=dojo.map(_12,function(i){ +return i.label; +}); +this.value=this.multiple?val:val[0]; +this._setDisplay(this.multiple?_16:_16[0]); +this._updateSelection(); +this._handleOnChange(this.value,_13); +},_getDisplayedValueAttr:function(){ +var val=this.get("value"); +if(!dojo.isArray(val)){ +val=[val]; +} +var ret=dojo.map(this.getOptions(val),function(v){ +if(v&&"label" in v){ +return v.label; +}else{ +if(v){ +return v.value; +} +} +return null; +},this); +return this.multiple?ret:ret[0]; +},_getValueDeprecated:false,getValue:function(){ +return this._lastValue; +},undo:function(){ +this._setValueAttr(this._lastValueReported,false); +},_loadChildren:function(){ +if(this._loadingStore){ +return; +} +dojo.forEach(this._getChildren(),function(_17){ +_17.destroyRecursive(); +}); +dojo.forEach(this.options,this._addOptionItem,this); +this._updateSelection(); +},_updateSelection:function(){ +this.value=this._getValueFromOpts(); +var val=this.value; +if(!dojo.isArray(val)){ +val=[val]; +} +if(val&&val[0]){ +dojo.forEach(this._getChildren(),function(_18){ +var _19=dojo.some(val,function(v){ +return _18.option&&(v===_18.option.value); +}); +dojo.toggleClass(_18.domNode,this.baseClass+"SelectedOption",_19); +dijit.setWaiState(_18.domNode,"selected",_19); +},this); +} +this._handleOnChange(this.value); +},_getValueFromOpts:function(){ +var _1a=this.getOptions()||[]; +if(!this.multiple&&_1a.length){ +var opt=dojo.filter(_1a,function(i){ +return i.selected; +})[0]; +if(opt&&opt.value){ +return opt.value; +}else{ +_1a[0].selected=true; +return _1a[0].value; +} +}else{ +if(this.multiple){ +return dojo.map(dojo.filter(_1a,function(i){ +return i.selected; +}),function(i){ +return i.value; +})||[]; +} +} +return ""; +},_onNewItem:function(_1b,_1c){ +if(!_1c||!_1c.parent){ +this._addOptionForItem(_1b); +} +},_onDeleteItem:function(_1d){ +var _1e=this.store; +this.removeOption(_1e.getIdentity(_1d)); +},_onSetItem:function(_1f){ +this.updateOption(this._getOptionObjForItem(_1f)); +},_getOptionObjForItem:function(_20){ +var _21=this.store,_22=_21.getLabel(_20),_23=(_22?_21.getIdentity(_20):null); +return {value:_23,label:_22,item:_20}; +},_addOptionForItem:function(_24){ +var _25=this.store; +if(!_25.isItemLoaded(_24)){ +_25.loadItem({item:_24,onComplete:function(i){ +this._addOptionForItem(_24); +},scope:this}); +return; +} +var _26=this._getOptionObjForItem(_24); +this.addOption(_26); +},constructor:function(_27){ +this._oValue=(_27||{}).value||null; +},_fillContent:function(){ +var _28=this.options; +if(!_28){ +_28=this.options=this.srcNodeRef?dojo.query(">",this.srcNodeRef).map(function(_29){ +if(_29.getAttribute("type")==="separator"){ +return {value:"",label:"",selected:false,disabled:false}; +} +return {value:_29.getAttribute("value"),label:String(_29.innerHTML),selected:_29.getAttribute("selected")||false,disabled:_29.getAttribute("disabled")||false}; +},this):[]; +} +if(!this.value){ +this.value=this._getValueFromOpts(); +}else{ +if(this.multiple&&typeof this.value=="string"){ +this.value=this.value.split(","); +} +} +},postCreate:function(){ +dojo.setSelectable(this.focusNode,false); +this.inherited(arguments); +this.connect(this,"onChange","_updateSelection"); +this.connect(this,"startup","_loadChildren"); +this._setValueAttr(this.value,null); +},startup:function(){ +this.inherited(arguments); +var _2a=this.store,_2b={}; +dojo.forEach(["query","queryOptions","onFetch"],function(i){ +if(this[i]){ +_2b[i]=this[i]; +} +delete this[i]; +},this); +if(_2a&&_2a.getFeatures()["dojo.data.api.Identity"]){ +this.store=null; +this.setStore(_2a,this._oValue,_2b); +} +},destroy:function(){ +dojo.forEach(this._notifyConnections||[],dojo.disconnect); +this.inherited(arguments); +},_addOptionItem:function(_2c){ +},_removeOptionItem:function(_2d){ +},_setDisplay:function(_2e){ +},_getChildren:function(){ +return []; +},_getSelectedOptionsAttr:function(){ +return this.getOptions(this.get("value")); +},_pseudoLoadChildren:function(_2f){ +},onSetStore:function(){ +}}); +} diff --git a/lib/dijit/form/_FormWidget.js b/lib/dijit/form/_FormWidget.js new file mode 100644 index 000000000..eb80ca06b --- /dev/null +++ b/lib/dijit/form/_FormWidget.js @@ -0,0 +1,166 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form._FormWidget"]){ +dojo._hasResource["dijit.form._FormWidget"]=true; +dojo.provide("dijit.form._FormWidget"); +dojo.require("dojo.window"); +dojo.require("dijit._Widget"); +dojo.require("dijit._Templated"); +dojo.require("dijit._CssStateMixin"); +dojo.declare("dijit.form._FormWidget",[dijit._Widget,dijit._Templated,dijit._CssStateMixin],{name:"",alt:"",value:"",type:"text",tabIndex:"0",disabled:false,intermediateChanges:false,scrollOnFocus:true,attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{value:"focusNode",id:"focusNode",tabIndex:"focusNode",alt:"focusNode",title:"focusNode"}),postMixInProperties:function(){ +this.nameAttrSetting=this.name?("name=\""+this.name.replace(/'/g,""")+"\""):""; +this.inherited(arguments); +},postCreate:function(){ +this.inherited(arguments); +this.connect(this.domNode,"onmousedown","_onMouseDown"); +},_setDisabledAttr:function(_1){ +this.disabled=_1; +dojo.attr(this.focusNode,"disabled",_1); +if(this.valueNode){ +dojo.attr(this.valueNode,"disabled",_1); +} +dijit.setWaiState(this.focusNode,"disabled",_1); +if(_1){ +this._hovering=false; +this._active=false; +var _2="tabIndex" in this.attributeMap?this.attributeMap.tabIndex:"focusNode"; +dojo.forEach(dojo.isArray(_2)?_2:[_2],function(_3){ +var _4=this[_3]; +if(dojo.isWebKit||dijit.hasDefaultTabStop(_4)){ +_4.setAttribute("tabIndex","-1"); +}else{ +_4.removeAttribute("tabIndex"); +} +},this); +}else{ +this.focusNode.setAttribute("tabIndex",this.tabIndex); +} +},setDisabled:function(_5){ +dojo.deprecated("setDisabled("+_5+") is deprecated. Use set('disabled',"+_5+") instead.","","2.0"); +this.set("disabled",_5); +},_onFocus:function(e){ +if(this.scrollOnFocus){ +dojo.window.scrollIntoView(this.domNode); +} +this.inherited(arguments); +},isFocusable:function(){ +return !this.disabled&&!this.readOnly&&this.focusNode&&(dojo.style(this.domNode,"display")!="none"); +},focus:function(){ +dijit.focus(this.focusNode); +},compare:function(_6,_7){ +if(typeof _6=="number"&&typeof _7=="number"){ +return (isNaN(_6)&&isNaN(_7))?0:_6-_7; +}else{ +if(_6>_7){ +return 1; +}else{ +if(_6<_7){ +return -1; +}else{ +return 0; +} +} +} +},onChange:function(_8){ +},_onChangeActive:false,_handleOnChange:function(_9,_a){ +this._lastValue=_9; +if(this._lastValueReported==undefined&&(_a===null||!this._onChangeActive)){ +this._resetValue=this._lastValueReported=_9; +} +if((this.intermediateChanges||_a||_a===undefined)&&((typeof _9!=typeof this._lastValueReported)||this.compare(_9,this._lastValueReported)!=0)){ +this._lastValueReported=_9; +if(this._onChangeActive){ +if(this._onChangeHandle){ +clearTimeout(this._onChangeHandle); +} +this._onChangeHandle=setTimeout(dojo.hitch(this,function(){ +this._onChangeHandle=null; +this.onChange(_9); +}),0); +} +} +},create:function(){ +this.inherited(arguments); +this._onChangeActive=true; +},destroy:function(){ +if(this._onChangeHandle){ +clearTimeout(this._onChangeHandle); +this.onChange(this._lastValueReported); +} +this.inherited(arguments); +},setValue:function(_b){ +dojo.deprecated("dijit.form._FormWidget:setValue("+_b+") is deprecated. Use set('value',"+_b+") instead.","","2.0"); +this.set("value",_b); +},getValue:function(){ +dojo.deprecated(this.declaredClass+"::getValue() is deprecated. Use get('value') instead.","","2.0"); +return this.get("value"); +},_onMouseDown:function(e){ +if(!e.ctrlKey&&this.isFocusable()){ +var _c=this.connect(dojo.body(),"onmouseup",function(){ +if(this.isFocusable()){ +this.focus(); +} +this.disconnect(_c); +}); +} +}}); +dojo.declare("dijit.form._FormValueWidget",dijit.form._FormWidget,{readOnly:false,attributeMap:dojo.delegate(dijit.form._FormWidget.prototype.attributeMap,{value:"",readOnly:"focusNode"}),_setReadOnlyAttr:function(_d){ +this.readOnly=_d; +dojo.attr(this.focusNode,"readOnly",_d); +dijit.setWaiState(this.focusNode,"readonly",_d); +},postCreate:function(){ +this.inherited(arguments); +if(dojo.isIE){ +this.connect(this.focusNode||this.domNode,"onkeydown",this._onKeyDown); +} +if(this._resetValue===undefined){ +this._resetValue=this.value; +} +},_setValueAttr:function(_e,_f){ +this.value=_e; +this._handleOnChange(_e,_f); +},_getValueAttr:function(){ +return this._lastValue; +},undo:function(){ +this._setValueAttr(this._lastValueReported,false); +},reset:function(){ +this._hasBeenBlurred=false; +this._setValueAttr(this._resetValue,true); +},_onKeyDown:function(e){ +if(e.keyCode==dojo.keys.ESCAPE&&!(e.ctrlKey||e.altKey||e.metaKey)){ +var te; +if(dojo.isIE){ +e.preventDefault(); +te=document.createEventObject(); +te.keyCode=dojo.keys.ESCAPE; +te.shiftKey=e.shiftKey; +e.srcElement.fireEvent("onkeypress",te); +} +} +},_layoutHackIE7:function(){ +if(dojo.isIE==7){ +var _10=this.domNode; +var _11=_10.parentNode; +var _12=_10.firstChild||_10; +var _13=_12.style.filter; +var _14=this; +while(_11&&_11.clientHeight==0){ +(function ping(){ +var _15=_14.connect(_11,"onscroll",function(e){ +_14.disconnect(_15); +_12.style.filter=(new Date()).getMilliseconds(); +setTimeout(function(){ +_12.style.filter=_13; +},0); +}); +})(); +_11=_11.parentNode; +} +} +}}); +} diff --git a/lib/dijit/form/_Spinner.js b/lib/dijit/form/_Spinner.js new file mode 100644 index 000000000..772f667dc --- /dev/null +++ b/lib/dijit/form/_Spinner.js @@ -0,0 +1,57 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.form._Spinner"]){ +dojo._hasResource["dijit.form._Spinner"]=true; +dojo.provide("dijit.form._Spinner"); +dojo.require("dijit.form.ValidationTextBox"); +dojo.declare("dijit.form._Spinner",dijit.form.RangeBoundTextBox,{defaultTimeout:500,minimumTimeout:10,timeoutChangeRate:0.9,smallDelta:1,largeDelta:10,templateString:dojo.cache("dijit.form","templates/Spinner.html","<div class=\"dijit dijitReset dijitInlineTable dijitLeft\"\n\tid=\"widget_${id}\" waiRole=\"presentation\"\n\t><div class=\"dijitReset dijitButtonNode dijitSpinnerButtonContainer\"\n\t\t><input class=\"dijitReset dijitInputField dijitSpinnerButtonInner\" type=\"text\" tabIndex=\"-1\" readOnly waiRole=\"presentation\"\n\t\t/><div class=\"dijitReset dijitLeft dijitButtonNode dijitArrowButton dijitUpArrowButton\"\n\t\t\tdojoAttachPoint=\"upArrowNode\"\n\t\t\t><div class=\"dijitArrowButtonInner\"\n\t\t\t\t><input class=\"dijitReset dijitInputField\" value=\"▲\" type=\"text\" tabIndex=\"-1\" readOnly waiRole=\"presentation\"\n\t\t\t\t\t${_buttonInputDisabled}\n\t\t\t/></div\n\t\t></div\n\t\t><div class=\"dijitReset dijitLeft dijitButtonNode dijitArrowButton dijitDownArrowButton\"\n\t\t\tdojoAttachPoint=\"downArrowNode\"\n\t\t\t><div class=\"dijitArrowButtonInner\"\n\t\t\t\t><input class=\"dijitReset dijitInputField\" value=\"▼\" type=\"text\" tabIndex=\"-1\" readOnly waiRole=\"presentation\"\n\t\t\t\t\t${_buttonInputDisabled}\n\t\t\t/></div\n\t\t></div\n\t></div\n\t><div class='dijitReset dijitValidationContainer'\n\t\t><input class=\"dijitReset dijitInputField dijitValidationIcon dijitValidationInner\" value=\"Χ \" type=\"text\" tabIndex=\"-1\" readOnly waiRole=\"presentation\"\n\t/></div\n\t><div class=\"dijitReset dijitInputField dijitInputContainer\"\n\t\t><input class='dijitReset dijitInputInner' dojoAttachPoint=\"textbox,focusNode\" type=\"${type}\" dojoAttachEvent=\"onkeypress:_onKeyPress\"\n\t\t\twaiRole=\"spinbutton\" autocomplete=\"off\" ${!nameAttrSetting}\n\t/></div\n></div>\n"),baseClass:"dijitTextBox dijitSpinner",cssStateNodes:{"upArrowNode":"dijitUpArrowButton","downArrowNode":"dijitDownArrowButton"},adjust:function(_1,_2){ +return _1; +},_arrowPressed:function(_3,_4,_5){ +if(this.disabled||this.readOnly){ +return; +} +this._setValueAttr(this.adjust(this.get("value"),_4*_5),false); +dijit.selectInputText(this.textbox,this.textbox.value.length); +},_arrowReleased:function(_6){ +this._wheelTimer=null; +if(this.disabled||this.readOnly){ +return; +} +},_typematicCallback:function(_7,_8,_9){ +var _a=this.smallDelta; +if(_8==this.textbox){ +var k=dojo.keys; +var _b=_9.charOrCode; +_a=(_b==k.PAGE_UP||_b==k.PAGE_DOWN)?this.largeDelta:this.smallDelta; +_8=(_b==k.UP_ARROW||_b==k.PAGE_UP)?this.upArrowNode:this.downArrowNode; +} +if(_7==-1){ +this._arrowReleased(_8); +}else{ +this._arrowPressed(_8,(_8==this.upArrowNode)?1:-1,_a); +} +},_wheelTimer:null,_mouseWheeled:function(_c){ +dojo.stopEvent(_c); +var _d=_c.detail?(_c.detail*-1):(_c.wheelDelta/120); +if(_d!==0){ +var _e=this[(_d>0?"upArrowNode":"downArrowNode")]; +this._arrowPressed(_e,_d,this.smallDelta); +if(!this._wheelTimer){ +clearTimeout(this._wheelTimer); +} +this._wheelTimer=setTimeout(dojo.hitch(this,"_arrowReleased",_e),50); +} +},postCreate:function(){ +this.inherited(arguments); +this.connect(this.domNode,!dojo.isMozilla?"onmousewheel":"DOMMouseScroll","_mouseWheeled"); +this._connects.push(dijit.typematic.addListener(this.upArrowNode,this.textbox,{charOrCode:dojo.keys.UP_ARROW,ctrlKey:false,altKey:false,shiftKey:false,metaKey:false},this,"_typematicCallback",this.timeoutChangeRate,this.defaultTimeout,this.minimumTimeout)); +this._connects.push(dijit.typematic.addListener(this.downArrowNode,this.textbox,{charOrCode:dojo.keys.DOWN_ARROW,ctrlKey:false,altKey:false,shiftKey:false,metaKey:false},this,"_typematicCallback",this.timeoutChangeRate,this.defaultTimeout,this.minimumTimeout)); +this._connects.push(dijit.typematic.addListener(this.upArrowNode,this.textbox,{charOrCode:dojo.keys.PAGE_UP,ctrlKey:false,altKey:false,shiftKey:false,metaKey:false},this,"_typematicCallback",this.timeoutChangeRate,this.defaultTimeout,this.minimumTimeout)); +this._connects.push(dijit.typematic.addListener(this.downArrowNode,this.textbox,{charOrCode:dojo.keys.PAGE_DOWN,ctrlKey:false,altKey:false,shiftKey:false,metaKey:false},this,"_typematicCallback",this.timeoutChangeRate,this.defaultTimeout,this.minimumTimeout)); +}}); +} diff --git a/lib/dijit/form/nls/ComboBox.js b/lib/dijit/form/nls/ComboBox.js new file mode 100644 index 000000000..49bba39a0 --- /dev/null +++ b/lib/dijit/form/nls/ComboBox.js @@ -0,0 +1 @@ +({"previousMessage":"Previous choices","nextMessage":"More choices"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/Textarea.js b/lib/dijit/form/nls/Textarea.js new file mode 100644 index 000000000..4b0e996ad --- /dev/null +++ b/lib/dijit/form/nls/Textarea.js @@ -0,0 +1 @@ +({"iframeEditTitle":"edit area","iframeFocusTitle":"edit area frame"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/ar/ComboBox.js b/lib/dijit/form/nls/ar/ComboBox.js new file mode 100644 index 000000000..6a8453183 --- /dev/null +++ b/lib/dijit/form/nls/ar/ComboBox.js @@ -0,0 +1 @@ +({"previousMessage":"الاختيارات السابقة","nextMessage":"مزيد من الاختيارات"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/ar/Textarea.js b/lib/dijit/form/nls/ar/Textarea.js new file mode 100644 index 000000000..fe623c694 --- /dev/null +++ b/lib/dijit/form/nls/ar/Textarea.js @@ -0,0 +1 @@ +({"iframeEditTitle":"مساحة التحرير","iframeFocusTitle":"اطار مساحة التحرير"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/ar/validate.js b/lib/dijit/form/nls/ar/validate.js new file mode 100644 index 000000000..615e56b35 --- /dev/null +++ b/lib/dijit/form/nls/ar/validate.js @@ -0,0 +1 @@ +({"rangeMessage":"هذه القيمة ليس بالمدى الصحيح.","invalidMessage":"القيمة التي تم ادخالها غير صحيحة.","missingMessage":"يجب ادخال هذه القيمة."})
\ No newline at end of file diff --git a/lib/dijit/form/nls/ca/ComboBox.js b/lib/dijit/form/nls/ca/ComboBox.js new file mode 100644 index 000000000..1a3786881 --- /dev/null +++ b/lib/dijit/form/nls/ca/ComboBox.js @@ -0,0 +1 @@ +({"previousMessage":"Opcions anteriors","nextMessage":"Més opcions"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/ca/Textarea.js b/lib/dijit/form/nls/ca/Textarea.js new file mode 100644 index 000000000..357f92389 --- /dev/null +++ b/lib/dijit/form/nls/ca/Textarea.js @@ -0,0 +1 @@ +({"iframeEditTitle":"àrea d'edició","iframeFocusTitle":"Marc de l'àrea d'edició"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/ca/validate.js b/lib/dijit/form/nls/ca/validate.js new file mode 100644 index 000000000..a0a592ed6 --- /dev/null +++ b/lib/dijit/form/nls/ca/validate.js @@ -0,0 +1 @@ +({"rangeMessage":"Aquest valor és fora de l'interval","invalidMessage":"El valor introduït no és vàlid","missingMessage":"Aquest valor és necessari"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/cs/ComboBox.js b/lib/dijit/form/nls/cs/ComboBox.js new file mode 100644 index 000000000..84e084139 --- /dev/null +++ b/lib/dijit/form/nls/cs/ComboBox.js @@ -0,0 +1 @@ +({"previousMessage":"Předchozí volby","nextMessage":"Další volby"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/cs/Textarea.js b/lib/dijit/form/nls/cs/Textarea.js new file mode 100644 index 000000000..8a75ddc45 --- /dev/null +++ b/lib/dijit/form/nls/cs/Textarea.js @@ -0,0 +1 @@ +({"iframeEditTitle":"oblast úprav","iframeFocusTitle":"rámec oblasti úprav"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/cs/validate.js b/lib/dijit/form/nls/cs/validate.js new file mode 100644 index 000000000..7bb7b9e21 --- /dev/null +++ b/lib/dijit/form/nls/cs/validate.js @@ -0,0 +1 @@ +({"rangeMessage":"Tato hodnota je mimo rozsah.","invalidMessage":"Zadaná hodnota není platná.","missingMessage":"Tato hodnota je vyžadována."})
\ No newline at end of file diff --git a/lib/dijit/form/nls/da/ComboBox.js b/lib/dijit/form/nls/da/ComboBox.js new file mode 100644 index 000000000..4ddc10dce --- /dev/null +++ b/lib/dijit/form/nls/da/ComboBox.js @@ -0,0 +1 @@ +({"previousMessage":"Forrige valg","nextMessage":"Flere valg"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/da/Textarea.js b/lib/dijit/form/nls/da/Textarea.js new file mode 100644 index 000000000..244c2109f --- /dev/null +++ b/lib/dijit/form/nls/da/Textarea.js @@ -0,0 +1 @@ +({"iframeEditTitle":"redigeringsområde","iframeFocusTitle":"ramme om redigeringsområde"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/da/validate.js b/lib/dijit/form/nls/da/validate.js new file mode 100644 index 000000000..2874dd890 --- /dev/null +++ b/lib/dijit/form/nls/da/validate.js @@ -0,0 +1 @@ +({"rangeMessage":"Værdien er uden for intervallet.","invalidMessage":"Den angivne værdi er ugyldig.","missingMessage":"Værdien er påkrævet."})
\ No newline at end of file diff --git a/lib/dijit/form/nls/de/ComboBox.js b/lib/dijit/form/nls/de/ComboBox.js new file mode 100644 index 000000000..6cce34bf5 --- /dev/null +++ b/lib/dijit/form/nls/de/ComboBox.js @@ -0,0 +1 @@ +({"previousMessage":"Vorherige Auswahl","nextMessage":"Weitere Auswahlmöglichkeiten"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/de/Textarea.js b/lib/dijit/form/nls/de/Textarea.js new file mode 100644 index 000000000..2cf75dbe6 --- /dev/null +++ b/lib/dijit/form/nls/de/Textarea.js @@ -0,0 +1 @@ +({"iframeEditTitle":"Editierbereich","iframeFocusTitle":"Rahmen für Editierbereich"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/de/validate.js b/lib/dijit/form/nls/de/validate.js new file mode 100644 index 000000000..597796d52 --- /dev/null +++ b/lib/dijit/form/nls/de/validate.js @@ -0,0 +1 @@ +({"rangeMessage":"Dieser Wert liegt außerhalb des gültigen Bereichs. ","invalidMessage":"Der eingegebene Wert ist ungültig. ","missingMessage":"Dieser Wert ist erforderlich."})
\ No newline at end of file diff --git a/lib/dijit/form/nls/el/ComboBox.js b/lib/dijit/form/nls/el/ComboBox.js new file mode 100644 index 000000000..ec294d14b --- /dev/null +++ b/lib/dijit/form/nls/el/ComboBox.js @@ -0,0 +1 @@ +({"previousMessage":"Προηγούμενες επιλογές","nextMessage":"Περισσότερες επιλογές"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/el/Textarea.js b/lib/dijit/form/nls/el/Textarea.js new file mode 100644 index 000000000..9ce37a93c --- /dev/null +++ b/lib/dijit/form/nls/el/Textarea.js @@ -0,0 +1 @@ +({"iframeEditTitle":"περιοχή επεξεργασίας","iframeFocusTitle":"πλαίσιο περιοχής επεξεργασίας"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/el/validate.js b/lib/dijit/form/nls/el/validate.js new file mode 100644 index 000000000..cc57d55e4 --- /dev/null +++ b/lib/dijit/form/nls/el/validate.js @@ -0,0 +1 @@ +({"rangeMessage":"Η τιμή αυτή δεν ανήκει στο εύρος έγκυρων τιμών.","invalidMessage":"Η τιμή που καταχωρήσατε δεν είναι έγκυρη.","missingMessage":"Η τιμή αυτή πρέπει απαραίτητα να καθοριστεί."})
\ No newline at end of file diff --git a/lib/dijit/form/nls/es/ComboBox.js b/lib/dijit/form/nls/es/ComboBox.js new file mode 100644 index 000000000..5bf69f988 --- /dev/null +++ b/lib/dijit/form/nls/es/ComboBox.js @@ -0,0 +1 @@ +({"previousMessage":"Opciones anteriores","nextMessage":"Más opciones"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/es/Textarea.js b/lib/dijit/form/nls/es/Textarea.js new file mode 100644 index 000000000..f92a50f65 --- /dev/null +++ b/lib/dijit/form/nls/es/Textarea.js @@ -0,0 +1 @@ +({"iframeEditTitle":"área de edición","iframeFocusTitle":"marco del área de edición"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/es/validate.js b/lib/dijit/form/nls/es/validate.js new file mode 100644 index 000000000..65e190ec5 --- /dev/null +++ b/lib/dijit/form/nls/es/validate.js @@ -0,0 +1 @@ +({"rangeMessage":"Este valor está fuera del intervalo.","invalidMessage":"El valor especificado no es válido.","missingMessage":"Este valor es necesario."})
\ No newline at end of file diff --git a/lib/dijit/form/nls/fi/ComboBox.js b/lib/dijit/form/nls/fi/ComboBox.js new file mode 100644 index 000000000..6d9b830a4 --- /dev/null +++ b/lib/dijit/form/nls/fi/ComboBox.js @@ -0,0 +1 @@ +({"previousMessage":"Edelliset valinnat","nextMessage":"Lisää valintoja"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/fi/Textarea.js b/lib/dijit/form/nls/fi/Textarea.js new file mode 100644 index 000000000..5efaee957 --- /dev/null +++ b/lib/dijit/form/nls/fi/Textarea.js @@ -0,0 +1 @@ +({"iframeEditTitle":"muokkausalue","iframeFocusTitle":"muokkausalueen kehys"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/fi/validate.js b/lib/dijit/form/nls/fi/validate.js new file mode 100644 index 000000000..276efcd29 --- /dev/null +++ b/lib/dijit/form/nls/fi/validate.js @@ -0,0 +1 @@ +({"rangeMessage":"Tämä arvo on sallitun alueen ulkopuolella.","invalidMessage":"Annettu arvo ei kelpaa.","missingMessage":"Tämä arvo on pakollinen."})
\ No newline at end of file diff --git a/lib/dijit/form/nls/fr/ComboBox.js b/lib/dijit/form/nls/fr/ComboBox.js new file mode 100644 index 000000000..14b39762d --- /dev/null +++ b/lib/dijit/form/nls/fr/ComboBox.js @@ -0,0 +1 @@ +({"previousMessage":"Choix précédents","nextMessage":"Plus de choix"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/fr/Textarea.js b/lib/dijit/form/nls/fr/Textarea.js new file mode 100644 index 000000000..4abb6c3e9 --- /dev/null +++ b/lib/dijit/form/nls/fr/Textarea.js @@ -0,0 +1 @@ +({"iframeEditTitle":"zone d'édition","iframeFocusTitle":"cadre de la zone d'édition"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/fr/validate.js b/lib/dijit/form/nls/fr/validate.js new file mode 100644 index 000000000..95a016947 --- /dev/null +++ b/lib/dijit/form/nls/fr/validate.js @@ -0,0 +1 @@ +({"rangeMessage":"Cette valeur n'est pas comprise dans la plage autorisée.","invalidMessage":"La valeur indiquée n'est pas correcte.","missingMessage":"Cette valeur est requise."})
\ No newline at end of file diff --git a/lib/dijit/form/nls/he/ComboBox.js b/lib/dijit/form/nls/he/ComboBox.js new file mode 100644 index 000000000..169d0f5ad --- /dev/null +++ b/lib/dijit/form/nls/he/ComboBox.js @@ -0,0 +1 @@ +({"previousMessage":"האפשרויות הקודמות","nextMessage":"אפשרויות נוספות"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/he/Textarea.js b/lib/dijit/form/nls/he/Textarea.js new file mode 100644 index 000000000..809eadfa7 --- /dev/null +++ b/lib/dijit/form/nls/he/Textarea.js @@ -0,0 +1 @@ +({"iframeEditTitle":"אזור עריכה","iframeFocusTitle":"מסגרת אזור עריכה"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/he/validate.js b/lib/dijit/form/nls/he/validate.js new file mode 100644 index 000000000..3d778e2c9 --- /dev/null +++ b/lib/dijit/form/nls/he/validate.js @@ -0,0 +1 @@ +({"rangeMessage":"הערך מחוץ לטווח.","invalidMessage":"הערך שצוין אינו חוקי.","missingMessage":"זהו ערך דרוש."})
\ No newline at end of file diff --git a/lib/dijit/form/nls/hu/ComboBox.js b/lib/dijit/form/nls/hu/ComboBox.js new file mode 100644 index 000000000..4b6a620ad --- /dev/null +++ b/lib/dijit/form/nls/hu/ComboBox.js @@ -0,0 +1 @@ +({"previousMessage":"Előző menüpontok","nextMessage":"További menüpontok"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/hu/Textarea.js b/lib/dijit/form/nls/hu/Textarea.js new file mode 100644 index 000000000..9b4ca01a0 --- /dev/null +++ b/lib/dijit/form/nls/hu/Textarea.js @@ -0,0 +1 @@ +({"iframeEditTitle":"szerkesztési terület","iframeFocusTitle":"szerkesztési terület keret"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/hu/validate.js b/lib/dijit/form/nls/hu/validate.js new file mode 100644 index 000000000..b6d7996a8 --- /dev/null +++ b/lib/dijit/form/nls/hu/validate.js @@ -0,0 +1 @@ +({"rangeMessage":"Az érték kívül van a megengedett tartományon.","invalidMessage":"A megadott érték érvénytelen.","missingMessage":"Meg kell adni egy értéket."})
\ No newline at end of file diff --git a/lib/dijit/form/nls/it/ComboBox.js b/lib/dijit/form/nls/it/ComboBox.js new file mode 100644 index 000000000..9f6707235 --- /dev/null +++ b/lib/dijit/form/nls/it/ComboBox.js @@ -0,0 +1 @@ +({"previousMessage":"Scelte precedenti","nextMessage":"Altre scelte"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/it/Textarea.js b/lib/dijit/form/nls/it/Textarea.js new file mode 100644 index 000000000..1b14ecc0c --- /dev/null +++ b/lib/dijit/form/nls/it/Textarea.js @@ -0,0 +1 @@ +({"iframeEditTitle":"modifica area","iframeFocusTitle":"modifica frame area"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/it/validate.js b/lib/dijit/form/nls/it/validate.js new file mode 100644 index 000000000..af7227fde --- /dev/null +++ b/lib/dijit/form/nls/it/validate.js @@ -0,0 +1 @@ +({"rangeMessage":"Questo valore non è compreso nell'intervallo.","invalidMessage":"Il valore immesso non è valido.","missingMessage":"Questo valore è obbligatorio."})
\ No newline at end of file diff --git a/lib/dijit/form/nls/ja/ComboBox.js b/lib/dijit/form/nls/ja/ComboBox.js new file mode 100644 index 000000000..6b34170b6 --- /dev/null +++ b/lib/dijit/form/nls/ja/ComboBox.js @@ -0,0 +1 @@ +({"previousMessage":"以前の選択項目","nextMessage":"追加の選択項目"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/ja/Textarea.js b/lib/dijit/form/nls/ja/Textarea.js new file mode 100644 index 000000000..8a52f4a36 --- /dev/null +++ b/lib/dijit/form/nls/ja/Textarea.js @@ -0,0 +1 @@ +({"iframeEditTitle":"編集域","iframeFocusTitle":"編集域フレーム"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/ja/validate.js b/lib/dijit/form/nls/ja/validate.js new file mode 100644 index 000000000..450cd7e3e --- /dev/null +++ b/lib/dijit/form/nls/ja/validate.js @@ -0,0 +1 @@ +({"rangeMessage":"この値は範囲外です。","invalidMessage":"入力した値は無効です。","missingMessage":"この値は必須です。"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/ko/ComboBox.js b/lib/dijit/form/nls/ko/ComboBox.js new file mode 100644 index 000000000..87d0f0649 --- /dev/null +++ b/lib/dijit/form/nls/ko/ComboBox.js @@ -0,0 +1 @@ +({"previousMessage":"이전 선택사항","nextMessage":"기타 선택사항"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/ko/Textarea.js b/lib/dijit/form/nls/ko/Textarea.js new file mode 100644 index 000000000..5c4e91622 --- /dev/null +++ b/lib/dijit/form/nls/ko/Textarea.js @@ -0,0 +1 @@ +({"iframeEditTitle":"편집 영역","iframeFocusTitle":"편집 영역 프레임"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/ko/validate.js b/lib/dijit/form/nls/ko/validate.js new file mode 100644 index 000000000..c76c67640 --- /dev/null +++ b/lib/dijit/form/nls/ko/validate.js @@ -0,0 +1 @@ +({"rangeMessage":"이 값은 범위를 벗어납니다.","invalidMessage":"입력된 값이 올바르지 않습니다.","missingMessage":"이 값은 필수입니다."})
\ No newline at end of file diff --git a/lib/dijit/form/nls/nb/ComboBox.js b/lib/dijit/form/nls/nb/ComboBox.js new file mode 100644 index 000000000..de145542f --- /dev/null +++ b/lib/dijit/form/nls/nb/ComboBox.js @@ -0,0 +1 @@ +({"previousMessage":"Tidligere valg","nextMessage":"Flere valg"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/nb/Textarea.js b/lib/dijit/form/nls/nb/Textarea.js new file mode 100644 index 000000000..16fadf59c --- /dev/null +++ b/lib/dijit/form/nls/nb/Textarea.js @@ -0,0 +1 @@ +({"iframeEditTitle":"redigeringsområde","iframeFocusTitle":"ramme for redigeringsområde"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/nb/validate.js b/lib/dijit/form/nls/nb/validate.js new file mode 100644 index 000000000..2fe96f263 --- /dev/null +++ b/lib/dijit/form/nls/nb/validate.js @@ -0,0 +1 @@ +({"rangeMessage":"Denne verdien er utenfor gyldig område.","invalidMessage":"Den angitte verdien er ikke gyldig.","missingMessage":"Denne verdien er obligatorisk."})
\ No newline at end of file diff --git a/lib/dijit/form/nls/nl/ComboBox.js b/lib/dijit/form/nls/nl/ComboBox.js new file mode 100644 index 000000000..b5885d75e --- /dev/null +++ b/lib/dijit/form/nls/nl/ComboBox.js @@ -0,0 +1 @@ +({"previousMessage":"Eerdere opties","nextMessage":"Meer opties"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/nl/Textarea.js b/lib/dijit/form/nls/nl/Textarea.js new file mode 100644 index 000000000..d13c3a6e5 --- /dev/null +++ b/lib/dijit/form/nls/nl/Textarea.js @@ -0,0 +1 @@ +({"iframeEditTitle":"veld bewerken","iframeFocusTitle":"veldkader bewerken"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/nl/validate.js b/lib/dijit/form/nls/nl/validate.js new file mode 100644 index 000000000..b3062c145 --- /dev/null +++ b/lib/dijit/form/nls/nl/validate.js @@ -0,0 +1 @@ +({"rangeMessage":"Deze waarde is niet toegestaan.","invalidMessage":"De opgegeven waarde is ongeldig.","missingMessage":"Deze waarde is verplicht."})
\ No newline at end of file diff --git a/lib/dijit/form/nls/pl/ComboBox.js b/lib/dijit/form/nls/pl/ComboBox.js new file mode 100644 index 000000000..f2b4b08a3 --- /dev/null +++ b/lib/dijit/form/nls/pl/ComboBox.js @@ -0,0 +1 @@ +({"previousMessage":"Poprzednie wybory","nextMessage":"Więcej wyborów"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/pl/Textarea.js b/lib/dijit/form/nls/pl/Textarea.js new file mode 100644 index 000000000..d918f59e0 --- /dev/null +++ b/lib/dijit/form/nls/pl/Textarea.js @@ -0,0 +1 @@ +({"iframeEditTitle":"Obszar edycji","iframeFocusTitle":"Ramka obszaru edycji"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/pl/validate.js b/lib/dijit/form/nls/pl/validate.js new file mode 100644 index 000000000..cf05d2f95 --- /dev/null +++ b/lib/dijit/form/nls/pl/validate.js @@ -0,0 +1 @@ +({"rangeMessage":"Ta wartość jest spoza zakresu.","invalidMessage":"Wprowadzona wartość jest niepoprawna.","missingMessage":"Ta wartość jest wymagana."})
\ No newline at end of file diff --git a/lib/dijit/form/nls/pt-pt/ComboBox.js b/lib/dijit/form/nls/pt-pt/ComboBox.js new file mode 100644 index 000000000..254054241 --- /dev/null +++ b/lib/dijit/form/nls/pt-pt/ComboBox.js @@ -0,0 +1 @@ +({"previousMessage":"Opções anteriores","nextMessage":"Mais opções"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/pt-pt/Textarea.js b/lib/dijit/form/nls/pt-pt/Textarea.js new file mode 100644 index 000000000..bcd75e781 --- /dev/null +++ b/lib/dijit/form/nls/pt-pt/Textarea.js @@ -0,0 +1 @@ +({"iframeEditTitle":"área de edição","iframeFocusTitle":"painel da área de edição"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/pt-pt/validate.js b/lib/dijit/form/nls/pt-pt/validate.js new file mode 100644 index 000000000..3d921704d --- /dev/null +++ b/lib/dijit/form/nls/pt-pt/validate.js @@ -0,0 +1 @@ +({"rangeMessage":"Este valor encontra-se fora do intervalo.","invalidMessage":"O valor introduzido não é válido.","missingMessage":"Este valor é requerido."})
\ No newline at end of file diff --git a/lib/dijit/form/nls/pt/ComboBox.js b/lib/dijit/form/nls/pt/ComboBox.js new file mode 100644 index 000000000..254054241 --- /dev/null +++ b/lib/dijit/form/nls/pt/ComboBox.js @@ -0,0 +1 @@ +({"previousMessage":"Opções anteriores","nextMessage":"Mais opções"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/pt/Textarea.js b/lib/dijit/form/nls/pt/Textarea.js new file mode 100644 index 000000000..b4a0b0fad --- /dev/null +++ b/lib/dijit/form/nls/pt/Textarea.js @@ -0,0 +1 @@ +({"iframeEditTitle":"editar área","iframeFocusTitle":"editar quadro da área"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/pt/validate.js b/lib/dijit/form/nls/pt/validate.js new file mode 100644 index 000000000..3b4357999 --- /dev/null +++ b/lib/dijit/form/nls/pt/validate.js @@ -0,0 +1 @@ +({"rangeMessage":"Este valor está fora do intervalo. ","invalidMessage":"O valor inserido não é válido.","missingMessage":"Este valor é necessário."})
\ No newline at end of file diff --git a/lib/dijit/form/nls/ro/ComboBox.js b/lib/dijit/form/nls/ro/ComboBox.js new file mode 100644 index 000000000..f491a1135 --- /dev/null +++ b/lib/dijit/form/nls/ro/ComboBox.js @@ -0,0 +1 @@ +({"previousMessage":"Alegeri anterioare","nextMessage":"Mai multe alegeri"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/ro/Textarea.js b/lib/dijit/form/nls/ro/Textarea.js new file mode 100644 index 000000000..2e029d964 --- /dev/null +++ b/lib/dijit/form/nls/ro/Textarea.js @@ -0,0 +1 @@ +({"iframeEditTitle":"zonă de editare","iframeFocusTitle":"cadru zonă de editare"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/ro/validate.js b/lib/dijit/form/nls/ro/validate.js new file mode 100644 index 000000000..f0892c76a --- /dev/null +++ b/lib/dijit/form/nls/ro/validate.js @@ -0,0 +1 @@ +({"rangeMessage":"Această valoare este în afara intervalului. ","invalidMessage":"Valoarea introdusă nu este validă.","missingMessage":"Această valoare este necesară."})
\ No newline at end of file diff --git a/lib/dijit/form/nls/ru/ComboBox.js b/lib/dijit/form/nls/ru/ComboBox.js new file mode 100644 index 000000000..193f4ee33 --- /dev/null +++ b/lib/dijit/form/nls/ru/ComboBox.js @@ -0,0 +1 @@ +({"previousMessage":"Предыдущие варианты","nextMessage":"Следующие варианты"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/ru/Textarea.js b/lib/dijit/form/nls/ru/Textarea.js new file mode 100644 index 000000000..ad7ad22fa --- /dev/null +++ b/lib/dijit/form/nls/ru/Textarea.js @@ -0,0 +1 @@ +({"iframeEditTitle":"область редактирования","iframeFocusTitle":"фрейм области редактирования"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/ru/validate.js b/lib/dijit/form/nls/ru/validate.js new file mode 100644 index 000000000..35fb5ca29 --- /dev/null +++ b/lib/dijit/form/nls/ru/validate.js @@ -0,0 +1 @@ +({"rangeMessage":"Это значение вне диапазона.","invalidMessage":"Указано недопустимое значение.","missingMessage":"Это обязательное значение."})
\ No newline at end of file diff --git a/lib/dijit/form/nls/sk/ComboBox.js b/lib/dijit/form/nls/sk/ComboBox.js new file mode 100644 index 000000000..a45c7f236 --- /dev/null +++ b/lib/dijit/form/nls/sk/ComboBox.js @@ -0,0 +1 @@ +({"previousMessage":"Predchádzajúce voľby","nextMessage":"Ďalšie voľby"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/sk/Textarea.js b/lib/dijit/form/nls/sk/Textarea.js new file mode 100644 index 000000000..3ee98c355 --- /dev/null +++ b/lib/dijit/form/nls/sk/Textarea.js @@ -0,0 +1 @@ +({"iframeEditTitle":"upraviť oblasť","iframeFocusTitle":"upraviť rám oblasti"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/sk/validate.js b/lib/dijit/form/nls/sk/validate.js new file mode 100644 index 000000000..612dab57e --- /dev/null +++ b/lib/dijit/form/nls/sk/validate.js @@ -0,0 +1 @@ +({"rangeMessage":"Táto hodnota je mimo rozsah.","invalidMessage":"Zadaná hodnota nie je platná.","missingMessage":"Táto hodnota je vyžadovaná."})
\ No newline at end of file diff --git a/lib/dijit/form/nls/sl/ComboBox.js b/lib/dijit/form/nls/sl/ComboBox.js new file mode 100644 index 000000000..e9556880c --- /dev/null +++ b/lib/dijit/form/nls/sl/ComboBox.js @@ -0,0 +1 @@ +({"previousMessage":"Prejšnje možnosti","nextMessage":"Dodatne možnosti"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/sl/Textarea.js b/lib/dijit/form/nls/sl/Textarea.js new file mode 100644 index 000000000..912ee3962 --- /dev/null +++ b/lib/dijit/form/nls/sl/Textarea.js @@ -0,0 +1 @@ +({"iframeEditTitle":"urejanje področja","iframeFocusTitle":"urejanje področja okvirja"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/sl/validate.js b/lib/dijit/form/nls/sl/validate.js new file mode 100644 index 000000000..763572486 --- /dev/null +++ b/lib/dijit/form/nls/sl/validate.js @@ -0,0 +1 @@ +({"rangeMessage":"Ta vrednost je zunaj obsega. ","invalidMessage":"Vnesena vrednost ni veljavna.","missingMessage":"Ta vrednost je zahtevana."})
\ No newline at end of file diff --git a/lib/dijit/form/nls/sv/ComboBox.js b/lib/dijit/form/nls/sv/ComboBox.js new file mode 100644 index 000000000..860bf75a7 --- /dev/null +++ b/lib/dijit/form/nls/sv/ComboBox.js @@ -0,0 +1 @@ +({"previousMessage":"Föregående alternativ","nextMessage":"Fler alternativ"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/sv/Textarea.js b/lib/dijit/form/nls/sv/Textarea.js new file mode 100644 index 000000000..9e508ac7b --- /dev/null +++ b/lib/dijit/form/nls/sv/Textarea.js @@ -0,0 +1 @@ +({"iframeEditTitle":"redigeringsområde","iframeFocusTitle":"redigeringsområdesram"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/sv/validate.js b/lib/dijit/form/nls/sv/validate.js new file mode 100644 index 000000000..8c1b537bd --- /dev/null +++ b/lib/dijit/form/nls/sv/validate.js @@ -0,0 +1 @@ +({"rangeMessage":"Värdet är utanför intervallet.","invalidMessage":"Det angivna värdet är ogiltigt.","missingMessage":"Värdet är obligatoriskt."})
\ No newline at end of file diff --git a/lib/dijit/form/nls/th/ComboBox.js b/lib/dijit/form/nls/th/ComboBox.js new file mode 100644 index 000000000..ff32a4fe7 --- /dev/null +++ b/lib/dijit/form/nls/th/ComboBox.js @@ -0,0 +1 @@ +({"previousMessage":"การเลือกก่อนหน้า","nextMessage":"การเลือกเพิ่มเติม"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/th/Textarea.js b/lib/dijit/form/nls/th/Textarea.js new file mode 100644 index 000000000..436118314 --- /dev/null +++ b/lib/dijit/form/nls/th/Textarea.js @@ -0,0 +1 @@ +({"iframeEditTitle":"แก้ไขพื้นที่","iframeFocusTitle":"แก้ไขกรอบพื้นที่"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/th/validate.js b/lib/dijit/form/nls/th/validate.js new file mode 100644 index 000000000..86606b774 --- /dev/null +++ b/lib/dijit/form/nls/th/validate.js @@ -0,0 +1 @@ +({"rangeMessage":"ค่านี้เกินช่วง","invalidMessage":"ค่าที่ป้อนไม่ถูกต้อง","missingMessage":"จำเป็นต้องมีค่านี้"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/tr/ComboBox.js b/lib/dijit/form/nls/tr/ComboBox.js new file mode 100644 index 000000000..46f71dc8a --- /dev/null +++ b/lib/dijit/form/nls/tr/ComboBox.js @@ -0,0 +1 @@ +({"previousMessage":"Önceki seçenekler","nextMessage":"Diğer seçenekler"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/tr/Textarea.js b/lib/dijit/form/nls/tr/Textarea.js new file mode 100644 index 000000000..3f2b5e71d --- /dev/null +++ b/lib/dijit/form/nls/tr/Textarea.js @@ -0,0 +1 @@ +({"iframeEditTitle":"düzenleme alanı","iframeFocusTitle":"düzenleme alanı çerçevesi"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/tr/validate.js b/lib/dijit/form/nls/tr/validate.js new file mode 100644 index 000000000..838dbdaed --- /dev/null +++ b/lib/dijit/form/nls/tr/validate.js @@ -0,0 +1 @@ +({"rangeMessage":"Bu değer aralık dışında.","invalidMessage":"Girilen değer geçersiz.","missingMessage":"Bu değer gerekli."})
\ No newline at end of file diff --git a/lib/dijit/form/nls/validate.js b/lib/dijit/form/nls/validate.js new file mode 100644 index 000000000..29a1a476b --- /dev/null +++ b/lib/dijit/form/nls/validate.js @@ -0,0 +1 @@ +({"rangeMessage":"This value is out of range.","invalidMessage":"The value entered is not valid.","missingMessage":"This value is required."})
\ No newline at end of file diff --git a/lib/dijit/form/nls/zh-tw/ComboBox.js b/lib/dijit/form/nls/zh-tw/ComboBox.js new file mode 100644 index 000000000..ead5fa6b2 --- /dev/null +++ b/lib/dijit/form/nls/zh-tw/ComboBox.js @@ -0,0 +1 @@ +({"previousMessage":"前一個選擇項","nextMessage":"其他選擇項"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/zh-tw/Textarea.js b/lib/dijit/form/nls/zh-tw/Textarea.js new file mode 100644 index 000000000..cb7abda29 --- /dev/null +++ b/lib/dijit/form/nls/zh-tw/Textarea.js @@ -0,0 +1 @@ +({"iframeEditTitle":"編輯區","iframeFocusTitle":"編輯區框"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/zh-tw/validate.js b/lib/dijit/form/nls/zh-tw/validate.js new file mode 100644 index 000000000..b398a31ae --- /dev/null +++ b/lib/dijit/form/nls/zh-tw/validate.js @@ -0,0 +1 @@ +({"rangeMessage":"此值超出範圍。","invalidMessage":"輸入的值無效。","missingMessage":"必須提供此值。"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/zh/ComboBox.js b/lib/dijit/form/nls/zh/ComboBox.js new file mode 100644 index 000000000..7cc92cf1d --- /dev/null +++ b/lib/dijit/form/nls/zh/ComboBox.js @@ -0,0 +1 @@ +({"previousMessage":"先前选项","nextMessage":"更多选项"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/zh/Textarea.js b/lib/dijit/form/nls/zh/Textarea.js new file mode 100644 index 000000000..e1cf172ad --- /dev/null +++ b/lib/dijit/form/nls/zh/Textarea.js @@ -0,0 +1 @@ +({"iframeEditTitle":"编辑区","iframeFocusTitle":"编辑区框架"})
\ No newline at end of file diff --git a/lib/dijit/form/nls/zh/validate.js b/lib/dijit/form/nls/zh/validate.js new file mode 100644 index 000000000..e2c01f55b --- /dev/null +++ b/lib/dijit/form/nls/zh/validate.js @@ -0,0 +1 @@ +({"rangeMessage":"此值超出范围。","invalidMessage":"输入的值无效。","missingMessage":"此值是必需值。"})
\ No newline at end of file diff --git a/lib/dijit/icons/commonIcons.css b/lib/dijit/icons/commonIcons.css new file mode 100644 index 000000000..373752a81 --- /dev/null +++ b/lib/dijit/icons/commonIcons.css @@ -0,0 +1,146 @@ + +.dijitIconSave, +.dijitIconPrint, +.dijitIconCut, +.dijitIconCopy, +.dijitIconClear, +.dijitIconDelete, +.dijitIconUndo, +.dijitIconEdit, +.dijitIconNewTask, +.dijitIconEditTask, +.dijitIconEditProperty, +.dijitIconTask, +.dijitIconFilter, +.dijitIconConfigure, +.dijitIconSearch, +.dijitIconApplication, +.dijitIconBookmark, +.dijitIconChart, +.dijitIconConnector, +.dijitIconDatabase, +.dijitIconDocuments, +.dijitIconMail, +.dijitLeaf, +.dijitIconFile, +.dijitIconFunction, +.dijitIconKey, +.dijitIconPackage, +.dijitIconSample, +.dijitIconTable, +.dijitIconUsers, +.dijitFolderClosed, +.dijitIconFolderClosed, +.dijitFolderOpened, +.dijitIconFolderOpen, +.dijitIconError { + background-image: url('images/commonIconsObjActEnabled.png'); + width: 16px; + height: 16px; +} +.dj_ie6 .dijitIconSave, +.dj_ie6 .dijitIconPrint, +.dj_ie6 .dijitIconCut, +.dj_ie6 .dijitIconCopy, +.dj_ie6 .dijitIconClear, +.dj_ie6 .dijitIconDelete, +.dj_ie6 .dijitIconUndo, +.dj_ie6 .dijitIconEdit, +.dj_ie6 .dijitIconNewTask, +.dj_ie6 .dijitIconEditTask, +.dj_ie6 .dijitIconEditProperty, +.dj_ie6 .dijitIconTask, +.dj_ie6 .dijitIconFilter, +.dj_ie6 .dijitIconConfigure, +.dj_ie6 .dijitIconSearch, +.dj_ie6 .dijitIconApplication, +.dj_ie6 .dijitIconBookmark, +.dj_ie6 .dijitIconChart, +.dj_ie6 .dijitIconConnector, +.dj_ie6 .dijitIconDatabase, +.dj_ie6 .dijitIconDocuments, +.dj_ie6 .dijitIconMail, +.dj_ie6 .dijitLeaf, +.dj_ie6 .dijitIconFile, +.dj_ie6 .dijitIconFunction, +.dj_ie6 .dijitIconKey, +.dj_ie6 .dijitIconPackage, +.dj_ie6 .dijitIconSample, +.dj_ie6 .dijitIconTable, +.dj_ie6 .dijitIconUsers, +.dj_ie6 .dijitFolderClosed, +.dj_ie6 .dijitIconFolderClosed, +.dj_ie6 .dijitFolderOpened, +.dj_ie6 .dijitIconFolderOpen, +.dj_ie6 .dijitIconError { + background-image: url('images/commonIconsObjActEnabled8bit.png'); +} +.dijitDisabled .dijitIconSave, +.dijitDisabled .dijitIconPrint, +.dijitDisabled .dijitIconCut, +.dijitDisabled .dijitIconCopy, +.dijitDisabled .dijitIconClear, +.dijitDisabled .dijitIconDelete, +.dijitDisabled .dijitIconUndo, +.dijitDisabled .dijitIconEdit, +.dijitDisabled .dijitIconNewTask, +.dijitDisabled .dijitIconEditTask, +.dijitDisabled .dijitIconEditProperty, +.dijitDisabled .dijitIconTask, +.dijitDisabled .dijitIconFilter, +.dijitDisabled .dijitIconConfigure, +.dijitDisabled .dijitIconSearch, +.dijitDisabled .dijitIconApplication, +.dijitDisabled .dijitIconBookmark, +.dijitDisabled .dijitIconChart, +.dijitDisabled .dijitIconConnector, +.dijitDisabled .dijitIconDatabase, +.dijitDisabled .dijitIconDocuments, +.dijitDisabled .dijitIconMail, +.dijitDisabled .dijitLeaf, +.dijitDisabled .dijitIconFile, +.dijitDisabled .dijitIconFunction, +.dijitDisabled .dijitIconKey, +.dijitDisabled .dijitIconPackage, +.dijitDisabled .dijitIconSample, +.dijitDisabled .dijitIconTable, +.dijitDisabled .dijitIconUsers, +.dijitDisabled .dijitFolderClosed, +.dijitDisabled .dijitIconFolderClosed, +.dijitDisabled .dijitFolderOpened, +.dijitDisabled .dijitIconFolderOpen, +.dijitDisabled .dijitIconError { + background-image: url('images/commonIconsObjActDisabled.png'); +} +.dijitIconSave { background-position: 0px; } +.dijitIconPrint { background-position: -16px; } +.dijitIconCut { background-position: -32px; } +.dijitIconCopy { background-position: -48px; } +.dijitIconClear { background-position: -64px; } +.dijitIconDelete { background-position: -80px; } +.dijitIconUndo { background-position: -96px; } +.dijitIconEdit { background-position: -112px; } +.dijitIconNewTask { background-position: -128px; } +.dijitIconEditTask { background-position: -144px; } +.dijitIconEditProperty { background-position: -166px; } +.dijitIconTask { background-position: -176px; } +.dijitIconFilter { background-position: -192px; } +.dijitIconConfigure { background-position: -208px; } +.dijitIconSearch { background-position: -224px; } +.dijitIconError { background-position: -496px; } +.dijitIconApplication { background-position: -240px; } +.dijitIconBookmark { background-position: -256px; } +.dijitIconChart { background-position: -272px; } +.dijitIconConnector { background-position: -288px; } +.dijitIconDatabase { background-position: -304px; } +.dijitIconDocuments { background-position: -320px; } +.dijitIconMail { background-position: -336px; } +.dijitIconFile, .dijitLeaf { background-position: -352px; } +.dijitIconFunction { background-position: -368px; } +.dijitIconKey { background-position: -384px; } +.dijitIconPackage{ background-position: -400px; } +.dijitIconSample { background-position: -416px; } +.dijitIconTable { background-position: -432px; } +.dijitIconUsers { background-position: -448px; } +.dijitIconFolderClosed, .dijitFolderClosed { background-position: -464px; } +.dijitIconFolderOpen, .dijitFolderOpened { background-position: -480px; } diff --git a/lib/dijit/icons/commonIcons_rtl.css b/lib/dijit/icons/commonIcons_rtl.css new file mode 100644 index 000000000..347f3b792 --- /dev/null +++ b/lib/dijit/icons/commonIcons_rtl.css @@ -0,0 +1,117 @@ + +.dijitRtl .dijitIconSave, +.dijitRtl .dijitIconPrint, +.dijitRtl .dijitIconCut, +.dijitRtl .dijitIconCopy, +.dijitRtl .dijitIconClear, +.dijitRtl .dijitIconDelete, +.dijitRtl .dijitIconUndo, +.dijitRtl .dijitIconEdit, +.dijitRtl .dijitIconNewTask, +.dijitRtl .dijitIconEditTask, +.dijitRtl .dijitIconEditProperty, +.dijitRtl .dijitIconTask, +.dijitRtl .dijitIconFilter, +.dijitRtl .dijitIconConfigure, +.dijitRtl .dijitIconSearch, +.dijitRtl .dijitIconApplication, +.dijitRtl .dijitIconBookmark, +.dijitRtl .dijitIconChart, +.dijitRtl .dijitIconConnector, +.dijitRtl .dijitIconDatabase, +.dijitRtl .dijitIconDocuments, +.dijitRtl .dijitIconMail, +.dijitRtl .dijitLeaf, +.dijitRtl .dijitIconFile, +.dijitRtl .dijitIconFunction, +.dijitRtl .dijitIconKey, +.dijitRtl .dijitIconPackage, +.dijitRtl .dijitIconSample, +.dijitRtl .dijitIconTable, +.dijitRtl .dijitIconUsers, +.dijitRtl .dijitFolderClosed, +.dijitRtl .dijitIconFolderClosed, +.dijitRtl .dijitFolderOpened, +.dijitRtl .dijitIconFolderOpen, +.dijitRtl .dijitIconError, .dijitRtl .dijitContentPaneError { + background-image: url('images/commonIconsObjActEnabled_rtl.png'); + width: 16px; + height: 16px; +} +.dj_ie6 .dijitRtl .dijitIconSave, +.dj_ie6 .dijitRtl .dijitIconPrint, +.dj_ie6 .dijitRtl .dijitIconCut, +.dj_ie6 .dijitRtl .dijitIconCopy, +.dj_ie6 .dijitRtl .dijitIconClear, +.dj_ie6 .dijitRtl .dijitIconDelete, +.dj_ie6 .dijitRtl .dijitIconUndo, +.dj_ie6 .dijitRtl .dijitIconEdit, +.dj_ie6 .dijitRtl .dijitIconNewTask, +.dj_ie6 .dijitRtl .dijitIconEditTask, +.dj_ie6 .dijitRtl .dijitIconEditProperty, +.dj_ie6 .dijitRtl .dijitIconTask, +.dj_ie6 .dijitRtl .dijitIconFilter, +.dj_ie6 .dijitRtl .dijitIconConfigure, +.dj_ie6 .dijitRtl .dijitIconSearch, +.dj_ie6 .dijitRtl .dijitIconApplication, +.dj_ie6 .dijitRtl .dijitIconBookmark, +.dj_ie6 .dijitRtl .dijitIconChart, +.dj_ie6 .dijitRtl .dijitIconConnector, +.dj_ie6 .dijitRtl .dijitIconDatabase, +.dj_ie6 .dijitRtl .dijitIconDocuments, +.dj_ie6 .dijitRtl .dijitIconMail, +.dj_ie6 .dijitRtl .dijitLeaf, +.dj_ie6 .dijitRtl .dijitIconFile, +.dj_ie6 .dijitRtl .dijitIconFunction, +.dj_ie6 .dijitRtl .dijitIconKey, +.dj_ie6 .dijitRtl .dijitIconPackage, +.dj_ie6 .dijitRtl .dijitIconSample, +.dj_ie6 .dijitRtl .dijitIconTable, +.dj_ie6 .dijitRtl .dijitIconUsers, +.dj_ie6 .dijitRtl .dijitFolderClosed, +.dj_ie6 .dijitRtl .dijitIconFolderClosed, +.dj_ie6 .dijitRtl .dijitFolderOpened, +.dj_ie6 .dijitRtl .dijitIconFolderOpen, +.dj_ie6 .dijitRtl .dijitIconError, .dj_ie6 .dijitRtl .dijitContentPaneError { + background-image: url('images/commonIconsObjActEnabled8bit_rtl.png'); +} +.dijitRtl .dijitDisabled .dijitIconSave, +.dijitRtl .dijitDisabled .dijitIconPrint, +.dijitRtl .dijitDisabled .dijitIconCut, +.dijitRtl .dijitDisabled .dijitIconCopy, +.dijitRtl .dijitDisabled .dijitIconClear, +.dijitRtl .dijitDisabled .dijitIconDelete, +.dijitRtl .dijitDisabled .dijitIconUndo, +.dijitRtl .dijitDisabled .dijitIconEdit, +.dijitRtl .dijitDisabled .dijitIconNewTask, +.dijitRtl .dijitDisabled .dijitIconEditTask, +.dijitRtl .dijitDisabled .dijitIconEditProperty, +.dijitRtl .dijitDisabled .dijitIconTask, +.dijitRtl .dijitDisabled .dijitIconFilter, +.dijitRtl .dijitDisabled .dijitIconConfigure, +.dijitRtl .dijitDisabled .dijitIconSearch, +.dijitRtl .dijitDisabled .dijitIconApplication, +.dijitRtl .dijitDisabled .dijitIconBookmark, +.dijitRtl .dijitDisabled .dijitIconChart, +.dijitRtl .dijitDisabled .dijitIconConnector, +.dijitRtl .dijitDisabled .dijitIconDatabase, +.dijitRtl .dijitDisabled .dijitIconDocuments, +.dijitRtl .dijitDisabled .dijitIconMail, +.dijitRtl .dijitDisabled .dijitLeaf, +.dijitRtl .dijitDisabled .dijitIconFile, +.dijitRtl .dijitDisabled .dijitIconFunction, +.dijitRtl .dijitDisabled .dijitIconKey, +.dijitRtl .dijitDisabled .dijitIconPackage, +.dijitRtl .dijitDisabled .dijitIconSample, +.dijitRtl .dijitDisabled .dijitIconTable, +.dijitRtl .dijitDisabled .dijitIconUsers, +.dijitRtl .dijitDisabled .dijitFolderClosed, +.dijitRtl .dijitDisabled .dijitIconFolderClosed, +.dijitRtl .dijitDisabled .dijitFolderOpened, +.dijitRtl .dijitDisabled .dijitIconFolderOpen, +.dijitRtl .dijitDisabled .dijitIconError, .dijitRtl .dijitDisabled .dijitContentPaneError { + background-image: url('images/commonIconsObjActDisabled_rtl.png'); +} +.dijitRtl .dijitContentPaneLoading { + background:url('images/loadingAnimation_rtl.gif') no-repeat; +} diff --git a/lib/dijit/icons/editorIcons.css b/lib/dijit/icons/editorIcons.css new file mode 100644 index 000000000..90ee97e20 --- /dev/null +++ b/lib/dijit/icons/editorIcons.css @@ -0,0 +1,57 @@ + +.dijitEditorIcon { + background-image: url('images/editorIconsEnabled.png'); + background-repeat: no-repeat; + width: 18px; + height: 18px; + text-align: center; +} +.dijitDisabled .dijitEditorIcon { + background-image: url('images/editorIconsDisabled.png'); +} +.dijitEditorIconSep { background-position: 0px; } +.dijitEditorIconSave { background-position: -18px; } +.dijitEditorIconPrint { background-position: -36px; } +.dijitEditorIconCut { background-position: -54px; } +.dijitEditorIconCopy { background-position: -72px; } +.dijitEditorIconPaste { background-position: -90px; } +.dijitEditorIconDelete { background-position: -108px; } +.dijitEditorIconCancel { background-position: -126px; } +.dijitEditorIconUndo { background-position: -144px; } +.dijitEditorIconRedo { background-position: -162px; } +.dijitEditorIconSelectAll { background-position: -180px; } +.dijitEditorIconBold { background-position: -198px; } +.dijitEditorIconItalic { background-position: -216px; } +.dijitEditorIconUnderline { background-position: -234px; } +.dijitEditorIconStrikethrough { background-position: -252px; } +.dijitEditorIconSuperscript { background-position: -270px; } +.dijitEditorIconSubscript { background-position: -288px; } +.dijitEditorIconJustifyCenter { background-position: -306px; } +.dijitEditorIconJustifyFull { background-position: -324px; } +.dijitEditorIconJustifyLeft { background-position: -342px; } +.dijitEditorIconJustifyRight { background-position: -360px; } +.dijitEditorIconIndent { background-position: -378px; } +.dijitEditorIconOutdent { background-position: -396px; } +.dijitEditorIconListBulletIndent { background-position: -414px; } +.dijitEditorIconListBulletOutdent { background-position: -432px; } +.dijitEditorIconListNumIndent { background-position: -450px; } +.dijitEditorIconListNumOutdent { background-position: -468px; } +.dijitEditorIconTabIndent { background-position: -486px; } +.dijitEditorIconLeftToRight { background-position: -504px; } +.dijitEditorIconRightToLeft, .dijitEditorIconToggleDir { background-position: -522px; } +.dijitEditorIconBackColor { background-position: -540px; } +.dijitEditorIconForeColor { background-position: -558px; } +.dijitEditorIconHiliteColor { background-position: -576px; } +.dijitEditorIconNewPage { background-position: -594px; } +.dijitEditorIconInsertImage { background-position: -612px; } +.dijitEditorIconInsertTable { background-position: -630px; } +.dijitEditorIconSpace { background-position: -648px; } +.dijitEditorIconInsertHorizontalRule { background-position: -666px; } +.dijitEditorIconInsertOrderedList { background-position: -684px; } +.dijitEditorIconInsertUnorderedList { background-position: -702px; } +.dijitEditorIconCreateLink { background-position: -720px; } +.dijitEditorIconUnlink { background-position: -738px; } +.dijitEditorIconViewSource { background-position: -756px; } +.dijitEditorIconRemoveFormat { background-position: -774px; } +.dijitEditorIconFullScreen { background-position: -792px; } +.dijitEditorIconWikiword { background-position: -810px; } diff --git a/lib/dijit/icons/editorIcons_rtl.css b/lib/dijit/icons/editorIcons_rtl.css new file mode 100644 index 000000000..8dcdd7370 --- /dev/null +++ b/lib/dijit/icons/editorIcons_rtl.css @@ -0,0 +1,10 @@ + +.dijitEditorRtl .dijitEditorIcon { + background-image: url('images/editorIconsEnabled_rtl.png'); +} +.dijitEditorRtlDisabled .dijitEditorIcon { + background-image: url('images/editorIconsDisabled_rtl.png'); +} +.dijitToolbarRtl .dijitToolbarSeparator { + background-image: url('images/editorIconsEnabled_rtl.png'); +} diff --git a/lib/dijit/icons/images/commonIconsObjActDisabled.png b/lib/dijit/icons/images/commonIconsObjActDisabled.png Binary files differnew file mode 100644 index 000000000..a348e3c10 --- /dev/null +++ b/lib/dijit/icons/images/commonIconsObjActDisabled.png diff --git a/lib/dijit/icons/images/commonIconsObjActDisabled_rtl.png b/lib/dijit/icons/images/commonIconsObjActDisabled_rtl.png Binary files differnew file mode 100644 index 000000000..ea070eb9a --- /dev/null +++ b/lib/dijit/icons/images/commonIconsObjActDisabled_rtl.png diff --git a/lib/dijit/icons/images/commonIconsObjActEnabled.png b/lib/dijit/icons/images/commonIconsObjActEnabled.png Binary files differnew file mode 100644 index 000000000..bd3245234 --- /dev/null +++ b/lib/dijit/icons/images/commonIconsObjActEnabled.png diff --git a/lib/dijit/icons/images/commonIconsObjActEnabled8bit.png b/lib/dijit/icons/images/commonIconsObjActEnabled8bit.png Binary files differnew file mode 100644 index 000000000..d453ea1ac --- /dev/null +++ b/lib/dijit/icons/images/commonIconsObjActEnabled8bit.png diff --git a/lib/dijit/icons/images/commonIconsObjActEnabled8bit_rtl.png b/lib/dijit/icons/images/commonIconsObjActEnabled8bit_rtl.png Binary files differnew file mode 100644 index 000000000..fe5afd2df --- /dev/null +++ b/lib/dijit/icons/images/commonIconsObjActEnabled8bit_rtl.png diff --git a/lib/dijit/icons/images/commonIconsObjActEnabled_rtl.png b/lib/dijit/icons/images/commonIconsObjActEnabled_rtl.png Binary files differnew file mode 100644 index 000000000..fbe891ab9 --- /dev/null +++ b/lib/dijit/icons/images/commonIconsObjActEnabled_rtl.png diff --git a/lib/dijit/icons/images/editorIconsDisabled.png b/lib/dijit/icons/images/editorIconsDisabled.png Binary files differnew file mode 100644 index 000000000..3a68d7a47 --- /dev/null +++ b/lib/dijit/icons/images/editorIconsDisabled.png diff --git a/lib/dijit/icons/images/editorIconsDisabled_rtl.png b/lib/dijit/icons/images/editorIconsDisabled_rtl.png Binary files differnew file mode 100644 index 000000000..9f16646b7 --- /dev/null +++ b/lib/dijit/icons/images/editorIconsDisabled_rtl.png diff --git a/lib/dijit/icons/images/editorIconsEnabled.png b/lib/dijit/icons/images/editorIconsEnabled.png Binary files differnew file mode 100644 index 000000000..ca9989ab6 --- /dev/null +++ b/lib/dijit/icons/images/editorIconsEnabled.png diff --git a/lib/dijit/icons/images/editorIconsEnabled_rtl.png b/lib/dijit/icons/images/editorIconsEnabled_rtl.png Binary files differnew file mode 100644 index 000000000..064def3e7 --- /dev/null +++ b/lib/dijit/icons/images/editorIconsEnabled_rtl.png diff --git a/lib/dijit/icons/images/loadingAnimation_rtl.gif b/lib/dijit/icons/images/loadingAnimation_rtl.gif Binary files differnew file mode 100644 index 000000000..35b472c8a --- /dev/null +++ b/lib/dijit/icons/images/loadingAnimation_rtl.gif diff --git a/lib/dijit/layout/AccordionContainer.js b/lib/dijit/layout/AccordionContainer.js new file mode 100644 index 000000000..5bad370f5 --- /dev/null +++ b/lib/dijit/layout/AccordionContainer.js @@ -0,0 +1,220 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.layout.AccordionContainer"]){ +dojo._hasResource["dijit.layout.AccordionContainer"]=true; +dojo.provide("dijit.layout.AccordionContainer"); +dojo.require("dojo.fx"); +dojo.require("dijit._Container"); +dojo.require("dijit._Templated"); +dojo.require("dijit._CssStateMixin"); +dojo.require("dijit.layout.StackContainer"); +dojo.require("dijit.layout.ContentPane"); +dojo.require("dijit.layout.AccordionPane"); +dojo.declare("dijit.layout.AccordionContainer",dijit.layout.StackContainer,{duration:dijit.defaultDuration,buttonWidget:"dijit.layout._AccordionButton",_verticalSpace:0,baseClass:"dijitAccordionContainer",postCreate:function(){ +this.domNode.style.overflow="hidden"; +this.inherited(arguments); +dijit.setWaiRole(this.domNode,"tablist"); +},startup:function(){ +if(this._started){ +return; +} +this.inherited(arguments); +if(this.selectedChildWidget){ +var _1=this.selectedChildWidget.containerNode.style; +_1.display=""; +_1.overflow="auto"; +this.selectedChildWidget._wrapperWidget.set("selected",true); +} +},_getTargetHeight:function(_2){ +var cs=dojo.getComputedStyle(_2); +return Math.max(this._verticalSpace-dojo._getPadBorderExtents(_2,cs).h-dojo._getMarginExtents(_2,cs).h,0); +},layout:function(){ +var _3=this.selectedChildWidget; +if(!_3){ +return; +} +var _4=_3._wrapperWidget.domNode,_5=dojo._getMarginExtents(_4),_6=dojo._getPadBorderExtents(_4),_7=this._contentBox; +var _8=0; +dojo.forEach(this.getChildren(),function(_9){ +if(_9!=_3){ +_8+=dojo.marginBox(_9._wrapperWidget.domNode).h; +} +}); +this._verticalSpace=_7.h-_8-_5.h-_6.h-_3._buttonWidget.getTitleHeight(); +this._containerContentBox={h:this._verticalSpace,w:this._contentBox.w-_5.w-_6.w}; +if(_3){ +_3.resize(this._containerContentBox); +} +},_setupChild:function(_a){ +_a._wrapperWidget=new dijit.layout._AccordionInnerContainer({contentWidget:_a,buttonWidget:this.buttonWidget,id:_a.id+"_wrapper",dir:_a.dir,lang:_a.lang,parent:this}); +this.inherited(arguments); +},addChild:function(_b,_c){ +if(this._started){ +dojo.place(_b.domNode,this.containerNode,_c); +if(!_b._started){ +_b.startup(); +} +this._setupChild(_b); +dojo.publish(this.id+"-addChild",[_b,_c]); +this.layout(); +if(!this.selectedChildWidget){ +this.selectChild(_b); +} +}else{ +this.inherited(arguments); +} +},removeChild:function(_d){ +_d._wrapperWidget.destroy(); +delete _d._wrapperWidget; +dojo.removeClass(_d.domNode,"dijitHidden"); +this.inherited(arguments); +},getChildren:function(){ +return dojo.map(this.inherited(arguments),function(_e){ +return _e.declaredClass=="dijit.layout._AccordionInnerContainer"?_e.contentWidget:_e; +},this); +},destroy:function(){ +dojo.forEach(this.getChildren(),function(_f){ +_f._wrapperWidget.destroy(); +}); +this.inherited(arguments); +},_transition:function(_10,_11,_12){ +if(this._inTransition){ +return; +} +var _13=[]; +var _14=this._verticalSpace; +if(_10){ +_10._wrapperWidget.set("selected",true); +this._showChild(_10); +if(this.doLayout&&_10.resize){ +_10.resize(this._containerContentBox); +} +var _15=_10.domNode; +dojo.addClass(_15,"dijitVisible"); +dojo.removeClass(_15,"dijitHidden"); +if(_12){ +var _16=_15.style.overflow; +_15.style.overflow="hidden"; +_13.push(dojo.animateProperty({node:_15,duration:this.duration,properties:{height:{start:1,end:this._getTargetHeight(_15)}},onEnd:function(){ +_15.style.overflow=_16; +if(dojo.isIE){ +setTimeout(function(){ +dojo.removeClass(_15.parentNode,"dijitAccordionInnerContainerFocused"); +setTimeout(function(){ +dojo.addClass(_15.parentNode,"dijitAccordionInnerContainerFocused"); +},0); +},0); +} +}})); +} +} +if(_11){ +_11._wrapperWidget.set("selected",false); +var _17=_11.domNode; +if(_12){ +var _18=_17.style.overflow; +_17.style.overflow="hidden"; +_13.push(dojo.animateProperty({node:_17,duration:this.duration,properties:{height:{start:this._getTargetHeight(_17),end:1}},onEnd:function(){ +dojo.addClass(_17,"dijitHidden"); +dojo.removeClass(_17,"dijitVisible"); +_17.style.overflow=_18; +if(_11.onHide){ +_11.onHide(); +} +}})); +}else{ +dojo.addClass(_17,"dijitHidden"); +dojo.removeClass(_17,"dijitVisible"); +if(_11.onHide){ +_11.onHide(); +} +} +} +if(_12){ +this._inTransition=true; +var _19=dojo.fx.combine(_13); +_19.onEnd=dojo.hitch(this,function(){ +delete this._inTransition; +}); +_19.play(); +} +},_onKeyPress:function(e,_1a){ +if(this._inTransition||this.disabled||e.altKey||!(_1a||e.ctrlKey)){ +if(this._inTransition){ +dojo.stopEvent(e); +} +return; +} +var k=dojo.keys,c=e.charOrCode; +if((_1a&&(c==k.LEFT_ARROW||c==k.UP_ARROW))||(e.ctrlKey&&c==k.PAGE_UP)){ +this._adjacent(false)._buttonWidget._onTitleClick(); +dojo.stopEvent(e); +}else{ +if((_1a&&(c==k.RIGHT_ARROW||c==k.DOWN_ARROW))||(e.ctrlKey&&(c==k.PAGE_DOWN||c==k.TAB))){ +this._adjacent(true)._buttonWidget._onTitleClick(); +dojo.stopEvent(e); +} +} +}}); +dojo.declare("dijit.layout._AccordionInnerContainer",[dijit._Widget,dijit._CssStateMixin],{baseClass:"dijitAccordionInnerContainer",isContainer:true,isLayoutContainer:true,buildRendering:function(){ +this.domNode=dojo.place("<div class='"+this.baseClass+"'>",this.contentWidget.domNode,"after"); +var _1b=this.contentWidget,cls=dojo.getObject(this.buttonWidget); +this.button=_1b._buttonWidget=(new cls({contentWidget:_1b,label:_1b.title,title:_1b.tooltip,dir:_1b.dir,lang:_1b.lang,iconClass:_1b.iconClass,id:_1b.id+"_button",parent:this.parent})).placeAt(this.domNode); +dojo.place(this.contentWidget.domNode,this.domNode); +},postCreate:function(){ +this.inherited(arguments); +this.connect(this.contentWidget,"set",function(_1c,_1d){ +var _1e={title:"label",tooltip:"title",iconClass:"iconClass"}[_1c]; +if(_1e){ +this.button.set(_1e,_1d); +} +},this); +},_setSelectedAttr:function(_1f){ +this.selected=_1f; +this.button.set("selected",_1f); +if(_1f){ +var cw=this.contentWidget; +if(cw.onSelected){ +cw.onSelected(); +} +} +},startup:function(){ +this.contentWidget.startup(); +},destroy:function(){ +this.button.destroyRecursive(); +delete this.contentWidget._buttonWidget; +delete this.contentWidget._wrapperWidget; +this.inherited(arguments); +},destroyDescendants:function(){ +this.contentWidget.destroyRecursive(); +}}); +dojo.declare("dijit.layout._AccordionButton",[dijit._Widget,dijit._Templated,dijit._CssStateMixin],{templateString:dojo.cache("dijit.layout","templates/AccordionButton.html","<div dojoAttachEvent='onclick:_onTitleClick' class='dijitAccordionTitle'>\n\t<div dojoAttachPoint='titleNode,focusNode' dojoAttachEvent='onkeypress:_onTitleKeyPress'\n\t\t\tclass='dijitAccordionTitleFocus' wairole=\"tab\" waiState=\"expanded-false\"\n\t\t><span class='dijitInline dijitAccordionArrow' waiRole=\"presentation\"></span\n\t\t><span class='arrowTextUp' waiRole=\"presentation\">+</span\n\t\t><span class='arrowTextDown' waiRole=\"presentation\">-</span\n\t\t><img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon\" dojoAttachPoint='iconNode' style=\"vertical-align: middle\" waiRole=\"presentation\"/>\n\t\t<span waiRole=\"presentation\" dojoAttachPoint='titleTextNode' class='dijitAccordionText'></span>\n\t</div>\n</div>\n"),attributeMap:dojo.mixin(dojo.clone(dijit.layout.ContentPane.prototype.attributeMap),{label:{node:"titleTextNode",type:"innerHTML"},title:{node:"titleTextNode",type:"attribute",attribute:"title"},iconClass:{node:"iconNode",type:"class"}}),baseClass:"dijitAccordionTitle",getParent:function(){ +return this.parent; +},postCreate:function(){ +this.inherited(arguments); +dojo.setSelectable(this.domNode,false); +var _20=dojo.attr(this.domNode,"id").replace(" ","_"); +dojo.attr(this.titleTextNode,"id",_20+"_title"); +dijit.setWaiState(this.focusNode,"labelledby",dojo.attr(this.titleTextNode,"id")); +},getTitleHeight:function(){ +return dojo.marginBox(this.domNode).h; +},_onTitleClick:function(){ +var _21=this.getParent(); +if(!_21._inTransition){ +_21.selectChild(this.contentWidget,true); +dijit.focus(this.focusNode); +} +},_onTitleKeyPress:function(evt){ +return this.getParent()._onKeyPress(evt,this.contentWidget); +},_setSelectedAttr:function(_22){ +this.selected=_22; +dijit.setWaiState(this.focusNode,"expanded",_22); +dijit.setWaiState(this.focusNode,"selected",_22); +this.focusNode.setAttribute("tabIndex",_22?"0":"-1"); +}}); +} diff --git a/lib/dijit/layout/AccordionPane.js b/lib/dijit/layout/AccordionPane.js new file mode 100644 index 000000000..98b92f8e8 --- /dev/null +++ b/lib/dijit/layout/AccordionPane.js @@ -0,0 +1,16 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.layout.AccordionPane"]){ +dojo._hasResource["dijit.layout.AccordionPane"]=true; +dojo.provide("dijit.layout.AccordionPane"); +dojo.require("dijit.layout.ContentPane"); +dojo.declare("dijit.layout.AccordionPane",dijit.layout.ContentPane,{constructor:function(){ +dojo.deprecated("dijit.layout.AccordionPane deprecated, use ContentPane instead","","2.0"); +},onSelected:function(){ +}}); +} diff --git a/lib/dijit/layout/BorderContainer.js b/lib/dijit/layout/BorderContainer.js new file mode 100644 index 000000000..426a66216 --- /dev/null +++ b/lib/dijit/layout/BorderContainer.js @@ -0,0 +1,327 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.layout.BorderContainer"]){ +dojo._hasResource["dijit.layout.BorderContainer"]=true; +dojo.provide("dijit.layout.BorderContainer"); +dojo.require("dijit.layout._LayoutWidget"); +dojo.require("dojo.cookie"); +dojo.declare("dijit.layout.BorderContainer",dijit.layout._LayoutWidget,{design:"headline",gutters:true,liveSplitters:true,persist:false,baseClass:"dijitBorderContainer",_splitterClass:"dijit.layout._Splitter",postMixInProperties:function(){ +if(!this.gutters){ +this.baseClass+="NoGutter"; +} +this.inherited(arguments); +},postCreate:function(){ +this.inherited(arguments); +this._splitters={}; +this._splitterThickness={}; +},startup:function(){ +if(this._started){ +return; +} +dojo.forEach(this.getChildren(),this._setupChild,this); +this.inherited(arguments); +},_setupChild:function(_1){ +var _2=_1.region; +if(_2){ +this.inherited(arguments); +dojo.addClass(_1.domNode,this.baseClass+"Pane"); +var _3=this.isLeftToRight(); +if(_2=="leading"){ +_2=_3?"left":"right"; +} +if(_2=="trailing"){ +_2=_3?"right":"left"; +} +this["_"+_2]=_1.domNode; +this["_"+_2+"Widget"]=_1; +if((_1.splitter||this.gutters)&&!this._splitters[_2]){ +var _4=dojo.getObject(_1.splitter?this._splitterClass:"dijit.layout._Gutter"); +var _5=new _4({id:_1.id+"_splitter",container:this,child:_1,region:_2,live:this.liveSplitters}); +_5.isSplitter=true; +this._splitters[_2]=_5.domNode; +dojo.place(this._splitters[_2],_1.domNode,"after"); +_5.startup(); +} +_1.region=_2; +} +},_computeSplitterThickness:function(_6){ +this._splitterThickness[_6]=this._splitterThickness[_6]||dojo.marginBox(this._splitters[_6])[(/top|bottom/.test(_6)?"h":"w")]; +},layout:function(){ +for(var _7 in this._splitters){ +this._computeSplitterThickness(_7); +} +this._layoutChildren(); +},addChild:function(_8,_9){ +this.inherited(arguments); +if(this._started){ +this.layout(); +} +},removeChild:function(_a){ +var _b=_a.region; +var _c=this._splitters[_b]; +if(_c){ +dijit.byNode(_c).destroy(); +delete this._splitters[_b]; +delete this._splitterThickness[_b]; +} +this.inherited(arguments); +delete this["_"+_b]; +delete this["_"+_b+"Widget"]; +if(this._started){ +this._layoutChildren(); +} +dojo.removeClass(_a.domNode,this.baseClass+"Pane"); +},getChildren:function(){ +return dojo.filter(this.inherited(arguments),function(_d){ +return !_d.isSplitter; +}); +},getSplitter:function(_e){ +var _f=this._splitters[_e]; +return _f?dijit.byNode(_f):null; +},resize:function(_10,_11){ +if(!this.cs||!this.pe){ +var _12=this.domNode; +this.cs=dojo.getComputedStyle(_12); +this.pe=dojo._getPadExtents(_12,this.cs); +this.pe.r=dojo._toPixelValue(_12,this.cs.paddingRight); +this.pe.b=dojo._toPixelValue(_12,this.cs.paddingBottom); +dojo.style(_12,"padding","0px"); +} +this.inherited(arguments); +},_layoutChildren:function(_13,_14){ +if(!this._borderBox||!this._borderBox.h){ +return; +} +var _15=(this.design=="sidebar"); +var _16=0,_17=0,_18=0,_19=0; +var _1a={},_1b={},_1c={},_1d={},_1e=(this._center&&this._center.style)||{}; +var _1f=/left|right/.test(_13); +var _20=!_13||(!_1f&&!_15); +var _21=!_13||(_1f&&_15); +if(this._top){ +_1a=(_13=="top"||_21)&&this._top.style; +_16=_13=="top"?_14:dojo.marginBox(this._top).h; +} +if(this._left){ +_1b=(_13=="left"||_20)&&this._left.style; +_18=_13=="left"?_14:dojo.marginBox(this._left).w; +} +if(this._right){ +_1c=(_13=="right"||_20)&&this._right.style; +_19=_13=="right"?_14:dojo.marginBox(this._right).w; +} +if(this._bottom){ +_1d=(_13=="bottom"||_21)&&this._bottom.style; +_17=_13=="bottom"?_14:dojo.marginBox(this._bottom).h; +} +var _22=this._splitters; +var _23=_22.top,_24=_22.bottom,_25=_22.left,_26=_22.right; +var _27=this._splitterThickness; +var _28=_27.top||0,_29=_27.left||0,_2a=_27.right||0,_2b=_27.bottom||0; +if(_29>50||_2a>50){ +setTimeout(dojo.hitch(this,function(){ +this._splitterThickness={}; +for(var _2c in this._splitters){ +this._computeSplitterThickness(_2c); +} +this._layoutChildren(); +}),50); +return false; +} +var pe=this.pe; +var _2d={left:(_15?_18+_29:0)+pe.l+"px",right:(_15?_19+_2a:0)+pe.r+"px"}; +if(_23){ +dojo.mixin(_23.style,_2d); +_23.style.top=_16+pe.t+"px"; +} +if(_24){ +dojo.mixin(_24.style,_2d); +_24.style.bottom=_17+pe.b+"px"; +} +_2d={top:(_15?0:_16+_28)+pe.t+"px",bottom:(_15?0:_17+_2b)+pe.b+"px"}; +if(_25){ +dojo.mixin(_25.style,_2d); +_25.style.left=_18+pe.l+"px"; +} +if(_26){ +dojo.mixin(_26.style,_2d); +_26.style.right=_19+pe.r+"px"; +} +dojo.mixin(_1e,{top:pe.t+_16+_28+"px",left:pe.l+_18+_29+"px",right:pe.r+_19+_2a+"px",bottom:pe.b+_17+_2b+"px"}); +var _2e={top:_15?pe.t+"px":_1e.top,bottom:_15?pe.b+"px":_1e.bottom}; +dojo.mixin(_1b,_2e); +dojo.mixin(_1c,_2e); +_1b.left=pe.l+"px"; +_1c.right=pe.r+"px"; +_1a.top=pe.t+"px"; +_1d.bottom=pe.b+"px"; +if(_15){ +_1a.left=_1d.left=_18+_29+pe.l+"px"; +_1a.right=_1d.right=_19+_2a+pe.r+"px"; +}else{ +_1a.left=_1d.left=pe.l+"px"; +_1a.right=_1d.right=pe.r+"px"; +} +var _2f=this._borderBox.h-pe.t-pe.b,_30=_2f-(_16+_28+_17+_2b),_31=_15?_2f:_30; +var _32=this._borderBox.w-pe.l-pe.r,_33=_32-(_18+_29+_19+_2a),_34=_15?_33:_32; +var dim={top:{w:_34,h:_16},bottom:{w:_34,h:_17},left:{w:_18,h:_31},right:{w:_19,h:_31},center:{h:_30,w:_33}}; +if(_13){ +var _35=this["_"+_13+"Widget"],mb={}; +mb[/top|bottom/.test(_13)?"h":"w"]=_14; +_35.resize?_35.resize(mb,dim[_35.region]):dojo.marginBox(_35.domNode,mb); +} +var _36=dojo.isIE<8||(dojo.isIE&&dojo.isQuirks)||dojo.some(this.getChildren(),function(_37){ +return _37.domNode.tagName=="TEXTAREA"||_37.domNode.tagName=="INPUT"; +}); +if(_36){ +var _38=function(_39,_3a,_3b){ +if(_39){ +(_39.resize?_39.resize(_3a,_3b):dojo.marginBox(_39.domNode,_3a)); +} +}; +if(_25){ +_25.style.height=_31; +} +if(_26){ +_26.style.height=_31; +} +_38(this._leftWidget,{h:_31},dim.left); +_38(this._rightWidget,{h:_31},dim.right); +if(_23){ +_23.style.width=_34; +} +if(_24){ +_24.style.width=_34; +} +_38(this._topWidget,{w:_34},dim.top); +_38(this._bottomWidget,{w:_34},dim.bottom); +_38(this._centerWidget,dim.center); +}else{ +var _3c=!_13||(/top|bottom/.test(_13)&&this.design!="sidebar"),_3d=!_13||(/left|right/.test(_13)&&this.design=="sidebar"),_3e={center:true,left:_3c,right:_3c,top:_3d,bottom:_3d}; +dojo.forEach(this.getChildren(),function(_3f){ +if(_3f.resize&&_3e[_3f.region]){ +_3f.resize(null,dim[_3f.region]); +} +},this); +} +},destroy:function(){ +for(var _40 in this._splitters){ +var _41=this._splitters[_40]; +dijit.byNode(_41).destroy(); +dojo.destroy(_41); +} +delete this._splitters; +delete this._splitterThickness; +this.inherited(arguments); +}}); +dojo.extend(dijit._Widget,{region:"",splitter:false,minSize:0,maxSize:Infinity}); +dojo.require("dijit._Templated"); +dojo.declare("dijit.layout._Splitter",[dijit._Widget,dijit._Templated],{live:true,templateString:"<div class=\"dijitSplitter\" dojoAttachEvent=\"onkeypress:_onKeyPress,onmousedown:_startDrag,onmouseenter:_onMouse,onmouseleave:_onMouse\" tabIndex=\"0\" waiRole=\"separator\"><div class=\"dijitSplitterThumb\"></div></div>",postCreate:function(){ +this.inherited(arguments); +this.horizontal=/top|bottom/.test(this.region); +dojo.addClass(this.domNode,"dijitSplitter"+(this.horizontal?"H":"V")); +this._factor=/top|left/.test(this.region)?1:-1; +this._cookieName=this.container.id+"_"+this.region; +if(this.container.persist){ +var _42=dojo.cookie(this._cookieName); +if(_42){ +this.child.domNode.style[this.horizontal?"height":"width"]=_42; +} +} +},_computeMaxSize:function(){ +var dim=this.horizontal?"h":"w",_43=this.container._splitterThickness[this.region]; +var _44={left:"right",right:"left",top:"bottom",bottom:"top",leading:"trailing",trailing:"leading"},_45=this.container["_"+_44[this.region]]; +var _46=dojo.contentBox(this.container.domNode)[dim]-(_45?dojo.marginBox(_45)[dim]:0)-20-_43*2; +return Math.min(this.child.maxSize,_46); +},_startDrag:function(e){ +if(!this.cover){ +this.cover=dojo.doc.createElement("div"); +dojo.addClass(this.cover,"dijitSplitterCover"); +dojo.place(this.cover,this.child.domNode,"after"); +} +dojo.addClass(this.cover,"dijitSplitterCoverActive"); +if(this.fake){ +dojo.destroy(this.fake); +} +if(!(this._resize=this.live)){ +(this.fake=this.domNode.cloneNode(true)).removeAttribute("id"); +dojo.addClass(this.domNode,"dijitSplitterShadow"); +dojo.place(this.fake,this.domNode,"after"); +} +dojo.addClass(this.domNode,"dijitSplitterActive"); +dojo.addClass(this.domNode,"dijitSplitter"+(this.horizontal?"H":"V")+"Active"); +if(this.fake){ +dojo.removeClass(this.fake,"dijitSplitterHover"); +dojo.removeClass(this.fake,"dijitSplitter"+(this.horizontal?"H":"V")+"Hover"); +} +var _47=this._factor,max=this._computeMaxSize(),min=this.child.minSize||20,_48=this.horizontal,_49=_48?"pageY":"pageX",_4a=e[_49],_4b=this.domNode.style,dim=_48?"h":"w",_4c=dojo.marginBox(this.child.domNode)[dim],_4d=this.region,_4e=parseInt(this.domNode.style[_4d],10),_4f=this._resize,_50=this.child.domNode,_51=dojo.hitch(this.container,this.container._layoutChildren),de=dojo.doc; +this._handlers=(this._handlers||[]).concat([dojo.connect(de,"onmousemove",this._drag=function(e,_52){ +var _53=e[_49]-_4a,_54=_47*_53+_4c,_55=Math.max(Math.min(_54,max),min); +if(_4f||_52){ +_51(_4d,_55); +} +_4b[_4d]=_47*_53+_4e+(_55-_54)+"px"; +}),dojo.connect(de,"ondragstart",dojo.stopEvent),dojo.connect(dojo.body(),"onselectstart",dojo.stopEvent),dojo.connect(de,"onmouseup",this,"_stopDrag")]); +dojo.stopEvent(e); +},_onMouse:function(e){ +var o=(e.type=="mouseover"||e.type=="mouseenter"); +dojo.toggleClass(this.domNode,"dijitSplitterHover",o); +dojo.toggleClass(this.domNode,"dijitSplitter"+(this.horizontal?"H":"V")+"Hover",o); +},_stopDrag:function(e){ +try{ +if(this.cover){ +dojo.removeClass(this.cover,"dijitSplitterCoverActive"); +} +if(this.fake){ +dojo.destroy(this.fake); +} +dojo.removeClass(this.domNode,"dijitSplitterActive"); +dojo.removeClass(this.domNode,"dijitSplitter"+(this.horizontal?"H":"V")+"Active"); +dojo.removeClass(this.domNode,"dijitSplitterShadow"); +this._drag(e); +this._drag(e,true); +} +finally{ +this._cleanupHandlers(); +delete this._drag; +} +if(this.container.persist){ +dojo.cookie(this._cookieName,this.child.domNode.style[this.horizontal?"height":"width"],{expires:365}); +} +},_cleanupHandlers:function(){ +dojo.forEach(this._handlers,dojo.disconnect); +delete this._handlers; +},_onKeyPress:function(e){ +this._resize=true; +var _56=this.horizontal; +var _57=1; +var dk=dojo.keys; +switch(e.charOrCode){ +case _56?dk.UP_ARROW:dk.LEFT_ARROW: +_57*=-1; +case _56?dk.DOWN_ARROW:dk.RIGHT_ARROW: +break; +default: +return; +} +var _58=dojo.marginBox(this.child.domNode)[_56?"h":"w"]+this._factor*_57; +this.container._layoutChildren(this.region,Math.max(Math.min(_58,this._computeMaxSize()),this.child.minSize)); +dojo.stopEvent(e); +},destroy:function(){ +this._cleanupHandlers(); +delete this.child; +delete this.container; +delete this.cover; +delete this.fake; +this.inherited(arguments); +}}); +dojo.declare("dijit.layout._Gutter",[dijit._Widget,dijit._Templated],{templateString:"<div class=\"dijitGutter\" waiRole=\"presentation\"></div>",postCreate:function(){ +this.horizontal=/top|bottom/.test(this.region); +dojo.addClass(this.domNode,"dijitGutter"+(this.horizontal?"H":"V")); +}}); +} diff --git a/lib/dijit/layout/ContentPane.js b/lib/dijit/layout/ContentPane.js new file mode 100644 index 000000000..56952800a --- /dev/null +++ b/lib/dijit/layout/ContentPane.js @@ -0,0 +1,291 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.layout.ContentPane"]){ +dojo._hasResource["dijit.layout.ContentPane"]=true; +dojo.provide("dijit.layout.ContentPane"); +dojo.require("dijit._Widget"); +dojo.require("dijit._Contained"); +dojo.require("dijit.layout._LayoutWidget"); +dojo.require("dojo.parser"); +dojo.require("dojo.string"); +dojo.require("dojo.html"); +dojo.requireLocalization("dijit","loading",null,"ROOT,ar,ca,cs,da,de,el,es,fi,fr,he,hu,it,ja,ko,nb,nl,pl,pt,pt-pt,ro,ru,sk,sl,sv,th,tr,zh,zh-tw"); +dojo.declare("dijit.layout.ContentPane",dijit._Widget,{href:"",extractContent:false,parseOnLoad:true,preventCache:false,preload:false,refreshOnShow:false,loadingMessage:"<span class='dijitContentPaneLoading'>${loadingState}</span>",errorMessage:"<span class='dijitContentPaneError'>${errorState}</span>",isLoaded:false,baseClass:"dijitContentPane",doLayout:true,ioArgs:{},isContainer:true,isLayoutContainer:true,onLoadDeferred:null,attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{title:[]}),postMixInProperties:function(){ +this.inherited(arguments); +var _1=dojo.i18n.getLocalization("dijit","loading",this.lang); +this.loadingMessage=dojo.string.substitute(this.loadingMessage,_1); +this.errorMessage=dojo.string.substitute(this.errorMessage,_1); +if(!this.href&&this.srcNodeRef&&this.srcNodeRef.innerHTML){ +this.isLoaded=true; +} +},buildRendering:function(){ +this.inherited(arguments); +if(!this.containerNode){ +this.containerNode=this.domNode; +} +},postCreate:function(){ +this.domNode.title=""; +if(!dojo.attr(this.domNode,"role")){ +dijit.setWaiRole(this.domNode,"group"); +} +dojo.addClass(this.domNode,this.baseClass); +},startup:function(){ +if(this._started){ +return; +} +var _2=dijit._Contained.prototype.getParent.call(this); +this._childOfLayoutWidget=_2&&_2.isLayoutContainer; +this._needLayout=!this._childOfLayoutWidget; +if(this.isLoaded){ +dojo.forEach(this.getChildren(),function(_3){ +_3.startup(); +}); +} +if(this._isShown()||this.preload){ +this._onShow(); +} +this.inherited(arguments); +},_checkIfSingleChild:function(){ +var _4=dojo.query("> *",this.containerNode).filter(function(_5){ +return _5.tagName!=="SCRIPT"; +}),_6=_4.filter(function(_7){ +return dojo.hasAttr(_7,"dojoType")||dojo.hasAttr(_7,"widgetId"); +}),_8=dojo.filter(_6.map(dijit.byNode),function(_9){ +return _9&&_9.domNode&&_9.resize; +}); +if(_4.length==_6.length&&_8.length==1){ +this._singleChild=_8[0]; +}else{ +delete this._singleChild; +} +dojo.toggleClass(this.containerNode,this.baseClass+"SingleChild",!!this._singleChild); +},setHref:function(_a){ +dojo.deprecated("dijit.layout.ContentPane.setHref() is deprecated. Use set('href', ...) instead.","","2.0"); +return this.set("href",_a); +},_setHrefAttr:function(_b){ +this.cancel(); +this.onLoadDeferred=new dojo.Deferred(dojo.hitch(this,"cancel")); +this.href=_b; +if(this._created&&(this.preload||this._isShown())){ +this._load(); +}else{ +this._hrefChanged=true; +} +return this.onLoadDeferred; +},setContent:function(_c){ +dojo.deprecated("dijit.layout.ContentPane.setContent() is deprecated. Use set('content', ...) instead.","","2.0"); +this.set("content",_c); +},_setContentAttr:function(_d){ +this.href=""; +this.cancel(); +this.onLoadDeferred=new dojo.Deferred(dojo.hitch(this,"cancel")); +this._setContent(_d||""); +this._isDownloaded=false; +return this.onLoadDeferred; +},_getContentAttr:function(){ +return this.containerNode.innerHTML; +},cancel:function(){ +if(this._xhrDfd&&(this._xhrDfd.fired==-1)){ +this._xhrDfd.cancel(); +} +delete this._xhrDfd; +this.onLoadDeferred=null; +},uninitialize:function(){ +if(this._beingDestroyed){ +this.cancel(); +} +this.inherited(arguments); +},destroyRecursive:function(_e){ +if(this._beingDestroyed){ +return; +} +this.inherited(arguments); +},resize:function(_f,_10){ +if(!this._wasShown){ +this._onShow(); +} +this._resizeCalled=true; +if(_f){ +dojo.marginBox(this.domNode,_f); +} +var cn=this.containerNode; +if(cn===this.domNode){ +var mb=_10||{}; +dojo.mixin(mb,_f||{}); +if(!("h" in mb)||!("w" in mb)){ +mb=dojo.mixin(dojo.marginBox(cn),mb); +} +this._contentBox=dijit.layout.marginBox2contentBox(cn,mb); +}else{ +this._contentBox=dojo.contentBox(cn); +} +this._layoutChildren(); +},_isShown:function(){ +if(this._childOfLayoutWidget){ +if(this._resizeCalled&&"open" in this){ +return this.open; +} +return this._resizeCalled; +}else{ +if("open" in this){ +return this.open; +}else{ +var _11=this.domNode; +return (_11.style.display!="none")&&(_11.style.visibility!="hidden")&&!dojo.hasClass(_11,"dijitHidden"); +} +} +},_onShow:function(){ +if(this.href){ +if(!this._xhrDfd&&(!this.isLoaded||this._hrefChanged||this.refreshOnShow)){ +this.refresh(); +} +}else{ +if(!this._childOfLayoutWidget&&this._needLayout){ +this._layoutChildren(); +} +} +this.inherited(arguments); +this._wasShown=true; +},refresh:function(){ +this.cancel(); +this.onLoadDeferred=new dojo.Deferred(dojo.hitch(this,"cancel")); +this._load(); +return this.onLoadDeferred; +},_load:function(){ +this._setContent(this.onDownloadStart(),true); +var _12=this; +var _13={preventCache:(this.preventCache||this.refreshOnShow),url:this.href,handleAs:"text"}; +if(dojo.isObject(this.ioArgs)){ +dojo.mixin(_13,this.ioArgs); +} +var _14=(this._xhrDfd=(this.ioMethod||dojo.xhrGet)(_13)); +_14.addCallback(function(_15){ +try{ +_12._isDownloaded=true; +_12._setContent(_15,false); +_12.onDownloadEnd(); +} +catch(err){ +_12._onError("Content",err); +} +delete _12._xhrDfd; +return _15; +}); +_14.addErrback(function(err){ +if(!_14.canceled){ +_12._onError("Download",err); +} +delete _12._xhrDfd; +return err; +}); +delete this._hrefChanged; +},_onLoadHandler:function(_16){ +this.isLoaded=true; +try{ +this.onLoadDeferred.callback(_16); +this.onLoad(_16); +} +catch(e){ +console.error("Error "+this.widgetId+" running custom onLoad code: "+e.message); +} +},_onUnloadHandler:function(){ +this.isLoaded=false; +try{ +this.onUnload(); +} +catch(e){ +console.error("Error "+this.widgetId+" running custom onUnload code: "+e.message); +} +},destroyDescendants:function(){ +if(this.isLoaded){ +this._onUnloadHandler(); +} +var _17=this._contentSetter; +dojo.forEach(this.getChildren(),function(_18){ +if(_18.destroyRecursive){ +_18.destroyRecursive(); +} +}); +if(_17){ +dojo.forEach(_17.parseResults,function(_19){ +if(_19.destroyRecursive&&_19.domNode&&_19.domNode.parentNode==dojo.body()){ +_19.destroyRecursive(); +} +}); +delete _17.parseResults; +} +dojo.html._emptyNode(this.containerNode); +delete this._singleChild; +},_setContent:function(_1a,_1b){ +this.destroyDescendants(); +var _1c=this._contentSetter; +if(!(_1c&&_1c instanceof dojo.html._ContentSetter)){ +_1c=this._contentSetter=new dojo.html._ContentSetter({node:this.containerNode,_onError:dojo.hitch(this,this._onError),onContentError:dojo.hitch(this,function(e){ +var _1d=this.onContentError(e); +try{ +this.containerNode.innerHTML=_1d; +} +catch(e){ +console.error("Fatal "+this.id+" could not change content due to "+e.message,e); +} +})}); +} +var _1e=dojo.mixin({cleanContent:this.cleanContent,extractContent:this.extractContent,parseContent:this.parseOnLoad,dir:this.dir,lang:this.lang},this._contentSetterParams||{}); +dojo.mixin(_1c,_1e); +_1c.set((dojo.isObject(_1a)&&_1a.domNode)?_1a.domNode:_1a); +delete this._contentSetterParams; +if(!_1b){ +dojo.forEach(this.getChildren(),function(_1f){ +if(!this.parseOnLoad||_1f.getParent){ +_1f.startup(); +} +},this); +this._scheduleLayout(); +this._onLoadHandler(_1a); +} +},_onError:function(_20,err,_21){ +this.onLoadDeferred.errback(err); +var _22=this["on"+_20+"Error"].call(this,err); +if(_21){ +console.error(_21,err); +}else{ +if(_22){ +this._setContent(_22,true); +} +} +},_scheduleLayout:function(){ +if(this._isShown()){ +this._layoutChildren(); +}else{ +this._needLayout=true; +} +},_layoutChildren:function(){ +if(this.doLayout){ +this._checkIfSingleChild(); +} +if(this._singleChild&&this._singleChild.resize){ +var cb=this._contentBox||dojo.contentBox(this.containerNode); +this._singleChild.resize({w:cb.w,h:cb.h}); +}else{ +dojo.forEach(this.getChildren(),function(_23){ +if(_23.resize){ +_23.resize(); +} +}); +} +delete this._needLayout; +},onLoad:function(_24){ +},onUnload:function(){ +},onDownloadStart:function(){ +return this.loadingMessage; +},onContentError:function(_25){ +},onDownloadError:function(_26){ +return this.errorMessage; +},onDownloadEnd:function(){ +}}); +} diff --git a/lib/dijit/layout/LayoutContainer.js b/lib/dijit/layout/LayoutContainer.js new file mode 100644 index 000000000..9d9fdc6a4 --- /dev/null +++ b/lib/dijit/layout/LayoutContainer.js @@ -0,0 +1,28 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.layout.LayoutContainer"]){ +dojo._hasResource["dijit.layout.LayoutContainer"]=true; +dojo.provide("dijit.layout.LayoutContainer"); +dojo.require("dijit.layout._LayoutWidget"); +dojo.declare("dijit.layout.LayoutContainer",dijit.layout._LayoutWidget,{baseClass:"dijitLayoutContainer",constructor:function(){ +dojo.deprecated("dijit.layout.LayoutContainer is deprecated","use BorderContainer instead",2); +},layout:function(){ +dijit.layout.layoutChildren(this.domNode,this._contentBox,this.getChildren()); +},addChild:function(_1,_2){ +this.inherited(arguments); +if(this._started){ +dijit.layout.layoutChildren(this.domNode,this._contentBox,this.getChildren()); +} +},removeChild:function(_3){ +this.inherited(arguments); +if(this._started){ +dijit.layout.layoutChildren(this.domNode,this._contentBox,this.getChildren()); +} +}}); +dojo.extend(dijit._Widget,{layoutAlign:"none"}); +} diff --git a/lib/dijit/layout/LinkPane.js b/lib/dijit/layout/LinkPane.js new file mode 100644 index 000000000..38e6567e7 --- /dev/null +++ b/lib/dijit/layout/LinkPane.js @@ -0,0 +1,20 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.layout.LinkPane"]){ +dojo._hasResource["dijit.layout.LinkPane"]=true; +dojo.provide("dijit.layout.LinkPane"); +dojo.require("dijit.layout.ContentPane"); +dojo.require("dijit._Templated"); +dojo.declare("dijit.layout.LinkPane",[dijit.layout.ContentPane,dijit._Templated],{templateString:"<div class=\"dijitLinkPane\" dojoAttachPoint=\"containerNode\"></div>",postMixInProperties:function(){ +if(this.srcNodeRef){ +this.title+=this.srcNodeRef.innerHTML; +} +this.inherited(arguments); +},_fillContent:function(_1){ +}}); +} diff --git a/lib/dijit/layout/ScrollingTabController.js b/lib/dijit/layout/ScrollingTabController.js new file mode 100644 index 000000000..4ee0bd16e --- /dev/null +++ b/lib/dijit/layout/ScrollingTabController.js @@ -0,0 +1,199 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.layout.ScrollingTabController"]){ +dojo._hasResource["dijit.layout.ScrollingTabController"]=true; +dojo.provide("dijit.layout.ScrollingTabController"); +dojo.require("dijit.layout.TabController"); +dojo.require("dijit.Menu"); +dojo.declare("dijit.layout.ScrollingTabController",dijit.layout.TabController,{templateString:dojo.cache("dijit.layout","templates/ScrollingTabController.html","<div class=\"dijitTabListContainer-${tabPosition}\" style=\"visibility:hidden\">\n\t<div dojoType=\"dijit.layout._ScrollingTabControllerButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_menuBtn\" iconClass=\"dijitTabStripMenuIcon\"\n\t\t\tdojoAttachPoint=\"_menuBtn\" showLabel=false>▼</div>\n\t<div dojoType=\"dijit.layout._ScrollingTabControllerButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_leftBtn\" iconClass=\"dijitTabStripSlideLeftIcon\"\n\t\t\tdojoAttachPoint=\"_leftBtn\" dojoAttachEvent=\"onClick: doSlideLeft\" showLabel=false>◀</div>\n\t<div dojoType=\"dijit.layout._ScrollingTabControllerButton\"\n\t\t\tclass=\"tabStripButton-${tabPosition}\"\n\t\t\tid=\"${id}_rightBtn\" iconClass=\"dijitTabStripSlideRightIcon\"\n\t\t\tdojoAttachPoint=\"_rightBtn\" dojoAttachEvent=\"onClick: doSlideRight\" showLabel=false>▶</div>\n\t<div class='dijitTabListWrapper' dojoAttachPoint='tablistWrapper'>\n\t\t<div wairole='tablist' dojoAttachEvent='onkeypress:onkeypress'\n\t\t\t\tdojoAttachPoint='containerNode' class='nowrapTabStrip'></div>\n\t</div>\n</div>\n"),useMenu:true,useSlider:true,tabStripClass:"",widgetsInTemplate:true,_minScroll:5,attributeMap:dojo.delegate(dijit._Widget.prototype.attributeMap,{"class":"containerNode"}),postCreate:function(){ +this.inherited(arguments); +var n=this.domNode; +this.scrollNode=this.tablistWrapper; +this._initButtons(); +if(!this.tabStripClass){ +this.tabStripClass="dijitTabContainer"+this.tabPosition.charAt(0).toUpperCase()+this.tabPosition.substr(1).replace(/-.*/,"")+"None"; +dojo.addClass(n,"tabStrip-disabled"); +} +dojo.addClass(this.tablistWrapper,this.tabStripClass); +},onStartup:function(){ +this.inherited(arguments); +dojo.style(this.domNode,"visibility","visible"); +this._postStartup=true; +},onAddChild:function(_1,_2){ +this.inherited(arguments); +var _3; +if(this.useMenu){ +var _4=this.containerId; +_3=new dijit.MenuItem({id:_1.id+"_stcMi",label:_1.title,dir:_1.dir,lang:_1.lang,onClick:dojo.hitch(this,function(){ +var _5=dijit.byId(_4); +_5.selectChild(_1); +})}); +this._menuChildren[_1.id]=_3; +this._menu.addChild(_3,_2); +} +this.pane2handles[_1.id].push(this.connect(this.pane2button[_1.id],"set",function(_6,_7){ +if(this._postStartup){ +if(_6=="label"){ +if(_3){ +_3.set(_6,_7); +} +if(this._dim){ +this.resize(this._dim); +} +} +} +})); +dojo.style(this.containerNode,"width",(dojo.style(this.containerNode,"width")+200)+"px"); +},onRemoveChild:function(_8,_9){ +var _a=this.pane2button[_8.id]; +if(this._selectedTab===_a.domNode){ +this._selectedTab=null; +} +if(this.useMenu&&_8&&_8.id&&this._menuChildren[_8.id]){ +this._menu.removeChild(this._menuChildren[_8.id]); +this._menuChildren[_8.id].destroy(); +delete this._menuChildren[_8.id]; +} +this.inherited(arguments); +},_initButtons:function(){ +this._menuChildren={}; +this._btnWidth=0; +this._buttons=dojo.query("> .tabStripButton",this.domNode).filter(function(_b){ +if((this.useMenu&&_b==this._menuBtn.domNode)||(this.useSlider&&(_b==this._rightBtn.domNode||_b==this._leftBtn.domNode))){ +this._btnWidth+=dojo.marginBox(_b).w; +return true; +}else{ +dojo.style(_b,"display","none"); +return false; +} +},this); +if(this.useMenu){ +this._menu=new dijit.Menu({id:this.id+"_menu",dir:this.dir,lang:this.lang,targetNodeIds:[this._menuBtn.domNode],leftClickToOpen:true,refocus:false}); +this._supportingWidgets.push(this._menu); +} +},_getTabsWidth:function(){ +var _c=this.getChildren(); +if(_c.length){ +var _d=_c[this.isLeftToRight()?0:_c.length-1].domNode,_e=_c[this.isLeftToRight()?_c.length-1:0].domNode; +return _e.offsetLeft+dojo.style(_e,"width")-_d.offsetLeft; +}else{ +return 0; +} +},_enableBtn:function(_f){ +var _10=this._getTabsWidth(); +_f=_f||dojo.style(this.scrollNode,"width"); +return _10>0&&_f<_10; +},resize:function(dim){ +if(this.domNode.offsetWidth==0){ +return; +} +this._dim=dim; +this.scrollNode.style.height="auto"; +this._contentBox=dijit.layout.marginBox2contentBox(this.domNode,{h:0,w:dim.w}); +this._contentBox.h=this.scrollNode.offsetHeight; +dojo.contentBox(this.domNode,this._contentBox); +var _11=this._enableBtn(this._contentBox.w); +this._buttons.style("display",_11?"":"none"); +this._leftBtn.layoutAlign="left"; +this._rightBtn.layoutAlign="right"; +this._menuBtn.layoutAlign=this.isLeftToRight()?"right":"left"; +dijit.layout.layoutChildren(this.domNode,this._contentBox,[this._menuBtn,this._leftBtn,this._rightBtn,{domNode:this.scrollNode,layoutAlign:"client"}]); +if(this._selectedTab){ +if(this._anim&&this._anim.status()=="playing"){ +this._anim.stop(); +} +var w=this.scrollNode,sl=this._convertToScrollLeft(this._getScrollForSelectedTab()); +w.scrollLeft=sl; +} +this._setButtonClass(this._getScroll()); +this._postResize=true; +},_getScroll:function(){ +var sl=(this.isLeftToRight()||dojo.isIE<8||(dojo.isIE&&dojo.isQuirks)||dojo.isWebKit)?this.scrollNode.scrollLeft:dojo.style(this.containerNode,"width")-dojo.style(this.scrollNode,"width")+(dojo.isIE==8?-1:1)*this.scrollNode.scrollLeft; +return sl; +},_convertToScrollLeft:function(val){ +if(this.isLeftToRight()||dojo.isIE<8||(dojo.isIE&&dojo.isQuirks)||dojo.isWebKit){ +return val; +}else{ +var _12=dojo.style(this.containerNode,"width")-dojo.style(this.scrollNode,"width"); +return (dojo.isIE==8?-1:1)*(val-_12); +} +},onSelectChild:function(_13){ +var tab=this.pane2button[_13.id]; +if(!tab||!_13){ +return; +} +var _14=tab.domNode; +if(this._postResize&&_14!=this._selectedTab){ +this._selectedTab=_14; +var sl=this._getScroll(); +if(sl>_14.offsetLeft||sl+dojo.style(this.scrollNode,"width")<_14.offsetLeft+dojo.style(_14,"width")){ +this.createSmoothScroll().play(); +} +} +this.inherited(arguments); +},_getScrollBounds:function(){ +var _15=this.getChildren(),_16=dojo.style(this.scrollNode,"width"),_17=dojo.style(this.containerNode,"width"),_18=_17-_16,_19=this._getTabsWidth(); +if(_15.length&&_19>_16){ +return {min:this.isLeftToRight()?0:_15[_15.length-1].domNode.offsetLeft,max:this.isLeftToRight()?(_15[_15.length-1].domNode.offsetLeft+dojo.style(_15[_15.length-1].domNode,"width"))-_16:_18}; +}else{ +var _1a=this.isLeftToRight()?0:_18; +return {min:_1a,max:_1a}; +} +},_getScrollForSelectedTab:function(){ +var w=this.scrollNode,n=this._selectedTab,_1b=dojo.style(this.scrollNode,"width"),_1c=this._getScrollBounds(); +var pos=(n.offsetLeft+dojo.style(n,"width")/2)-_1b/2; +pos=Math.min(Math.max(pos,_1c.min),_1c.max); +return pos; +},createSmoothScroll:function(x){ +if(arguments.length>0){ +var _1d=this._getScrollBounds(); +x=Math.min(Math.max(x,_1d.min),_1d.max); +}else{ +x=this._getScrollForSelectedTab(); +} +if(this._anim&&this._anim.status()=="playing"){ +this._anim.stop(); +} +var _1e=this,w=this.scrollNode,_1f=new dojo._Animation({beforeBegin:function(){ +if(this.curve){ +delete this.curve; +} +var _20=w.scrollLeft,_21=_1e._convertToScrollLeft(x); +_1f.curve=new dojo._Line(_20,_21); +},onAnimate:function(val){ +w.scrollLeft=val; +}}); +this._anim=_1f; +this._setButtonClass(x); +return _1f; +},_getBtnNode:function(e){ +var n=e.target; +while(n&&!dojo.hasClass(n,"tabStripButton")){ +n=n.parentNode; +} +return n; +},doSlideRight:function(e){ +this.doSlide(1,this._getBtnNode(e)); +},doSlideLeft:function(e){ +this.doSlide(-1,this._getBtnNode(e)); +},doSlide:function(_22,_23){ +if(_23&&dojo.hasClass(_23,"dijitTabDisabled")){ +return; +} +var _24=dojo.style(this.scrollNode,"width"); +var d=(_24*0.75)*_22; +var to=this._getScroll()+d; +this._setButtonClass(to); +this.createSmoothScroll(to).play(); +},_setButtonClass:function(_25){ +var _26=this._getScrollBounds(); +this._leftBtn.set("disabled",_25<=_26.min); +this._rightBtn.set("disabled",_25>=_26.max); +}}); +dojo.declare("dijit.layout._ScrollingTabControllerButton",dijit.form.Button,{baseClass:"dijitTab tabStripButton",templateString:dojo.cache("dijit.layout","templates/_ScrollingTabControllerButton.html","<div dojoAttachEvent=\"onclick:_onButtonClick\">\n\t<div waiRole=\"presentation\" class=\"dijitTabInnerDiv\" dojoattachpoint=\"innerDiv,focusNode\">\n\t\t<div waiRole=\"presentation\" class=\"dijitTabContent dijitButtonContents\" dojoattachpoint=\"tabContent\">\n\t\t\t<img waiRole=\"presentation\" alt=\"\" src=\"${_blankGif}\" class=\"dijitTabStripIcon\" dojoAttachPoint=\"iconNode\"/>\n\t\t\t<span dojoAttachPoint=\"containerNode,titleNode\" class=\"dijitButtonText\"></span>\n\t\t</div>\n\t</div>\n</div>\n"),tabIndex:"-1"}); +} diff --git a/lib/dijit/layout/SplitContainer.js b/lib/dijit/layout/SplitContainer.js new file mode 100644 index 000000000..b0db3e465 --- /dev/null +++ b/lib/dijit/layout/SplitContainer.js @@ -0,0 +1,348 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.layout.SplitContainer"]){ +dojo._hasResource["dijit.layout.SplitContainer"]=true; +dojo.provide("dijit.layout.SplitContainer"); +dojo.require("dojo.cookie"); +dojo.require("dijit.layout._LayoutWidget"); +dojo.declare("dijit.layout.SplitContainer",dijit.layout._LayoutWidget,{constructor:function(){ +dojo.deprecated("dijit.layout.SplitContainer is deprecated","use BorderContainer with splitter instead",2); +},activeSizing:false,sizerWidth:7,orientation:"horizontal",persist:true,baseClass:"dijitSplitContainer",postMixInProperties:function(){ +this.inherited("postMixInProperties",arguments); +this.isHorizontal=(this.orientation=="horizontal"); +},postCreate:function(){ +this.inherited(arguments); +this.sizers=[]; +if(dojo.isMozilla){ +this.domNode.style.overflow="-moz-scrollbars-none"; +} +if(typeof this.sizerWidth=="object"){ +try{ +this.sizerWidth=parseInt(this.sizerWidth.toString()); +} +catch(e){ +this.sizerWidth=7; +} +} +var _1=dojo.doc.createElement("div"); +this.virtualSizer=_1; +_1.style.position="relative"; +_1.style.zIndex=10; +_1.className=this.isHorizontal?"dijitSplitContainerVirtualSizerH":"dijitSplitContainerVirtualSizerV"; +this.domNode.appendChild(_1); +dojo.setSelectable(_1,false); +},destroy:function(){ +delete this.virtualSizer; +dojo.forEach(this._ownconnects,dojo.disconnect); +this.inherited(arguments); +},startup:function(){ +if(this._started){ +return; +} +dojo.forEach(this.getChildren(),function(_2,i,_3){ +this._setupChild(_2); +if(i<_3.length-1){ +this._addSizer(); +} +},this); +if(this.persist){ +this._restoreState(); +} +this.inherited(arguments); +},_setupChild:function(_4){ +this.inherited(arguments); +_4.domNode.style.position="absolute"; +dojo.addClass(_4.domNode,"dijitSplitPane"); +},_onSizerMouseDown:function(e){ +if(e.target.id){ +for(var i=0;i<this.sizers.length;i++){ +if(this.sizers[i].id==e.target.id){ +break; +} +} +if(i<this.sizers.length){ +this.beginSizing(e,i); +} +} +},_addSizer:function(_5){ +_5=_5===undefined?this.sizers.length:_5; +var _6=dojo.doc.createElement("div"); +_6.id=dijit.getUniqueId("dijit_layout_SplitterContainer_Splitter"); +this.sizers.splice(_5,0,_6); +this.domNode.appendChild(_6); +_6.className=this.isHorizontal?"dijitSplitContainerSizerH":"dijitSplitContainerSizerV"; +var _7=dojo.doc.createElement("div"); +_7.className="thumb"; +_6.appendChild(_7); +this.connect(_6,"onmousedown","_onSizerMouseDown"); +dojo.setSelectable(_6,false); +},removeChild:function(_8){ +if(this.sizers.length){ +var i=dojo.indexOf(this.getChildren(),_8); +if(i!=-1){ +if(i==this.sizers.length){ +i--; +} +dojo.destroy(this.sizers[i]); +this.sizers.splice(i,1); +} +} +this.inherited(arguments); +if(this._started){ +this.layout(); +} +},addChild:function(_9,_a){ +this.inherited(arguments); +if(this._started){ +var _b=this.getChildren(); +if(_b.length>1){ +this._addSizer(_a); +} +this.layout(); +} +},layout:function(){ +this.paneWidth=this._contentBox.w; +this.paneHeight=this._contentBox.h; +var _c=this.getChildren(); +if(!_c.length){ +return; +} +var _d=this.isHorizontal?this.paneWidth:this.paneHeight; +if(_c.length>1){ +_d-=this.sizerWidth*(_c.length-1); +} +var _e=0; +dojo.forEach(_c,function(_f){ +_e+=_f.sizeShare; +}); +var _10=_d/_e; +var _11=0; +dojo.forEach(_c.slice(0,_c.length-1),function(_12){ +var _13=Math.round(_10*_12.sizeShare); +_12.sizeActual=_13; +_11+=_13; +}); +_c[_c.length-1].sizeActual=_d-_11; +this._checkSizes(); +var pos=0; +var _14=_c[0].sizeActual; +this._movePanel(_c[0],pos,_14); +_c[0].position=pos; +pos+=_14; +if(!this.sizers){ +return; +} +dojo.some(_c.slice(1),function(_15,i){ +if(!this.sizers[i]){ +return true; +} +this._moveSlider(this.sizers[i],pos,this.sizerWidth); +this.sizers[i].position=pos; +pos+=this.sizerWidth; +_14=_15.sizeActual; +this._movePanel(_15,pos,_14); +_15.position=pos; +pos+=_14; +},this); +},_movePanel:function(_16,pos,_17){ +if(this.isHorizontal){ +_16.domNode.style.left=pos+"px"; +_16.domNode.style.top=0; +var box={w:_17,h:this.paneHeight}; +if(_16.resize){ +_16.resize(box); +}else{ +dojo.marginBox(_16.domNode,box); +} +}else{ +_16.domNode.style.left=0; +_16.domNode.style.top=pos+"px"; +var box={w:this.paneWidth,h:_17}; +if(_16.resize){ +_16.resize(box); +}else{ +dojo.marginBox(_16.domNode,box); +} +} +},_moveSlider:function(_18,pos,_19){ +if(this.isHorizontal){ +_18.style.left=pos+"px"; +_18.style.top=0; +dojo.marginBox(_18,{w:_19,h:this.paneHeight}); +}else{ +_18.style.left=0; +_18.style.top=pos+"px"; +dojo.marginBox(_18,{w:this.paneWidth,h:_19}); +} +},_growPane:function(_1a,_1b){ +if(_1a>0){ +if(_1b.sizeActual>_1b.sizeMin){ +if((_1b.sizeActual-_1b.sizeMin)>_1a){ +_1b.sizeActual=_1b.sizeActual-_1a; +_1a=0; +}else{ +_1a-=_1b.sizeActual-_1b.sizeMin; +_1b.sizeActual=_1b.sizeMin; +} +} +} +return _1a; +},_checkSizes:function(){ +var _1c=0; +var _1d=0; +var _1e=this.getChildren(); +dojo.forEach(_1e,function(_1f){ +_1d+=_1f.sizeActual; +_1c+=_1f.sizeMin; +}); +if(_1c<=_1d){ +var _20=0; +dojo.forEach(_1e,function(_21){ +if(_21.sizeActual<_21.sizeMin){ +_20+=_21.sizeMin-_21.sizeActual; +_21.sizeActual=_21.sizeMin; +} +}); +if(_20>0){ +var _22=this.isDraggingLeft?_1e.reverse():_1e; +dojo.forEach(_22,function(_23){ +_20=this._growPane(_20,_23); +},this); +} +}else{ +dojo.forEach(_1e,function(_24){ +_24.sizeActual=Math.round(_1d*(_24.sizeMin/_1c)); +}); +} +},beginSizing:function(e,i){ +var _25=this.getChildren(); +this.paneBefore=_25[i]; +this.paneAfter=_25[i+1]; +this.isSizing=true; +this.sizingSplitter=this.sizers[i]; +if(!this.cover){ +this.cover=dojo.create("div",{style:{position:"absolute",zIndex:5,top:0,left:0,width:"100%",height:"100%"}},this.domNode); +}else{ +this.cover.style.zIndex=5; +} +this.sizingSplitter.style.zIndex=6; +this.originPos=dojo.position(_25[0].domNode,true); +if(this.isHorizontal){ +var _26=e.layerX||e.offsetX||0; +var _27=e.pageX; +this.originPos=this.originPos.x; +}else{ +var _26=e.layerY||e.offsetY||0; +var _27=e.pageY; +this.originPos=this.originPos.y; +} +this.startPoint=this.lastPoint=_27; +this.screenToClientOffset=_27-_26; +this.dragOffset=this.lastPoint-this.paneBefore.sizeActual-this.originPos-this.paneBefore.position; +if(!this.activeSizing){ +this._showSizingLine(); +} +this._ownconnects=[]; +this._ownconnects.push(dojo.connect(dojo.doc.documentElement,"onmousemove",this,"changeSizing")); +this._ownconnects.push(dojo.connect(dojo.doc.documentElement,"onmouseup",this,"endSizing")); +dojo.stopEvent(e); +},changeSizing:function(e){ +if(!this.isSizing){ +return; +} +this.lastPoint=this.isHorizontal?e.pageX:e.pageY; +this.movePoint(); +if(this.activeSizing){ +this._updateSize(); +}else{ +this._moveSizingLine(); +} +dojo.stopEvent(e); +},endSizing:function(e){ +if(!this.isSizing){ +return; +} +if(this.cover){ +this.cover.style.zIndex=-1; +} +if(!this.activeSizing){ +this._hideSizingLine(); +} +this._updateSize(); +this.isSizing=false; +if(this.persist){ +this._saveState(this); +} +dojo.forEach(this._ownconnects,dojo.disconnect); +},movePoint:function(){ +var p=this.lastPoint-this.screenToClientOffset; +var a=p-this.dragOffset; +a=this.legaliseSplitPoint(a); +p=a+this.dragOffset; +this.lastPoint=p+this.screenToClientOffset; +},legaliseSplitPoint:function(a){ +a+=this.sizingSplitter.position; +this.isDraggingLeft=!!(a>0); +if(!this.activeSizing){ +var min=this.paneBefore.position+this.paneBefore.sizeMin; +if(a<min){ +a=min; +} +var max=this.paneAfter.position+(this.paneAfter.sizeActual-(this.sizerWidth+this.paneAfter.sizeMin)); +if(a>max){ +a=max; +} +} +a-=this.sizingSplitter.position; +this._checkSizes(); +return a; +},_updateSize:function(){ +var pos=this.lastPoint-this.dragOffset-this.originPos; +var _28=this.paneBefore.position; +var _29=this.paneAfter.position+this.paneAfter.sizeActual; +this.paneBefore.sizeActual=pos-_28; +this.paneAfter.position=pos+this.sizerWidth; +this.paneAfter.sizeActual=_29-this.paneAfter.position; +dojo.forEach(this.getChildren(),function(_2a){ +_2a.sizeShare=_2a.sizeActual; +}); +if(this._started){ +this.layout(); +} +},_showSizingLine:function(){ +this._moveSizingLine(); +dojo.marginBox(this.virtualSizer,this.isHorizontal?{w:this.sizerWidth,h:this.paneHeight}:{w:this.paneWidth,h:this.sizerWidth}); +this.virtualSizer.style.display="block"; +},_hideSizingLine:function(){ +this.virtualSizer.style.display="none"; +},_moveSizingLine:function(){ +var pos=(this.lastPoint-this.startPoint)+this.sizingSplitter.position; +dojo.style(this.virtualSizer,(this.isHorizontal?"left":"top"),pos+"px"); +},_getCookieName:function(i){ +return this.id+"_"+i; +},_restoreState:function(){ +dojo.forEach(this.getChildren(),function(_2b,i){ +var _2c=this._getCookieName(i); +var _2d=dojo.cookie(_2c); +if(_2d){ +var pos=parseInt(_2d); +if(typeof pos=="number"){ +_2b.sizeShare=pos; +} +} +},this); +},_saveState:function(){ +if(!this.persist){ +return; +} +dojo.forEach(this.getChildren(),function(_2e,i){ +dojo.cookie(this._getCookieName(i),_2e.sizeShare,{expires:365}); +},this); +}}); +dojo.extend(dijit._Widget,{sizeMin:10,sizeShare:10}); +} diff --git a/lib/dijit/layout/StackContainer.js b/lib/dijit/layout/StackContainer.js new file mode 100644 index 000000000..78a49021d --- /dev/null +++ b/lib/dijit/layout/StackContainer.js @@ -0,0 +1,148 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.layout.StackContainer"]){ +dojo._hasResource["dijit.layout.StackContainer"]=true; +dojo.provide("dijit.layout.StackContainer"); +dojo.require("dijit._Templated"); +dojo.require("dijit.layout._LayoutWidget"); +dojo.requireLocalization("dijit","common",null,"ROOT,ar,ca,cs,da,de,el,es,fi,fr,he,hu,it,ja,ko,nb,nl,pl,pt,pt-pt,ro,ru,sk,sl,sv,th,tr,zh,zh-tw"); +dojo.require("dojo.cookie"); +dojo.declare("dijit.layout.StackContainer",dijit.layout._LayoutWidget,{doLayout:true,persist:false,baseClass:"dijitStackContainer",postCreate:function(){ +this.inherited(arguments); +dojo.addClass(this.domNode,"dijitLayoutContainer"); +dijit.setWaiRole(this.containerNode,"tabpanel"); +this.connect(this.domNode,"onkeypress",this._onKeyPress); +},startup:function(){ +if(this._started){ +return; +} +var _1=this.getChildren(); +dojo.forEach(_1,this._setupChild,this); +if(this.persist){ +this.selectedChildWidget=dijit.byId(dojo.cookie(this.id+"_selectedChild")); +}else{ +dojo.some(_1,function(_2){ +if(_2.selected){ +this.selectedChildWidget=_2; +} +return _2.selected; +},this); +} +var _3=this.selectedChildWidget; +if(!_3&&_1[0]){ +_3=this.selectedChildWidget=_1[0]; +_3.selected=true; +} +dojo.publish(this.id+"-startup",[{children:_1,selected:_3}]); +this.inherited(arguments); +},resize:function(){ +var _4=this.selectedChildWidget; +if(_4&&!this._hasBeenShown){ +this._hasBeenShown=true; +this._showChild(_4); +} +this.inherited(arguments); +},_setupChild:function(_5){ +this.inherited(arguments); +dojo.removeClass(_5.domNode,"dijitVisible"); +dojo.addClass(_5.domNode,"dijitHidden"); +_5.domNode.title=""; +},addChild:function(_6,_7){ +this.inherited(arguments); +if(this._started){ +dojo.publish(this.id+"-addChild",[_6,_7]); +this.layout(); +if(!this.selectedChildWidget){ +this.selectChild(_6); +} +} +},removeChild:function(_8){ +this.inherited(arguments); +if(this._started){ +dojo.publish(this.id+"-removeChild",[_8]); +} +if(this._beingDestroyed){ +return; +} +if(this.selectedChildWidget===_8){ +this.selectedChildWidget=undefined; +if(this._started){ +var _9=this.getChildren(); +if(_9.length){ +this.selectChild(_9[0]); +} +} +} +if(this._started){ +this.layout(); +} +},selectChild:function(_a,_b){ +_a=dijit.byId(_a); +if(this.selectedChildWidget!=_a){ +this._transition(_a,this.selectedChildWidget,_b); +this.selectedChildWidget=_a; +dojo.publish(this.id+"-selectChild",[_a]); +if(this.persist){ +dojo.cookie(this.id+"_selectedChild",this.selectedChildWidget.id); +} +} +},_transition:function(_c,_d){ +if(_d){ +this._hideChild(_d); +} +this._showChild(_c); +if(_c.resize){ +if(this.doLayout){ +_c.resize(this._containerContentBox||this._contentBox); +}else{ +_c.resize(); +} +} +},_adjacent:function(_e){ +var _f=this.getChildren(); +var _10=dojo.indexOf(_f,this.selectedChildWidget); +_10+=_e?1:_f.length-1; +return _f[_10%_f.length]; +},forward:function(){ +this.selectChild(this._adjacent(true),true); +},back:function(){ +this.selectChild(this._adjacent(false),true); +},_onKeyPress:function(e){ +dojo.publish(this.id+"-containerKeyPress",[{e:e,page:this}]); +},layout:function(){ +if(this.doLayout&&this.selectedChildWidget&&this.selectedChildWidget.resize){ +this.selectedChildWidget.resize(this._containerContentBox||this._contentBox); +} +},_showChild:function(_11){ +var _12=this.getChildren(); +_11.isFirstChild=(_11==_12[0]); +_11.isLastChild=(_11==_12[_12.length-1]); +_11.selected=true; +dojo.removeClass(_11.domNode,"dijitHidden"); +dojo.addClass(_11.domNode,"dijitVisible"); +_11._onShow(); +},_hideChild:function(_13){ +_13.selected=false; +dojo.removeClass(_13.domNode,"dijitVisible"); +dojo.addClass(_13.domNode,"dijitHidden"); +_13.onHide(); +},closeChild:function(_14){ +var _15=_14.onClose(this,_14); +if(_15){ +this.removeChild(_14); +_14.destroyRecursive(); +} +},destroyDescendants:function(_16){ +dojo.forEach(this.getChildren(),function(_17){ +this.removeChild(_17); +_17.destroyRecursive(_16); +},this); +}}); +dojo.require("dijit.layout.StackController"); +dojo.extend(dijit._Widget,{selected:false,closable:false,iconClass:"",showTitle:true}); +} diff --git a/lib/dijit/layout/StackController.js b/lib/dijit/layout/StackController.js new file mode 100644 index 000000000..033dadf6f --- /dev/null +++ b/lib/dijit/layout/StackController.js @@ -0,0 +1,174 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.layout.StackController"]){ +dojo._hasResource["dijit.layout.StackController"]=true; +dojo.provide("dijit.layout.StackController"); +dojo.require("dijit._Widget"); +dojo.require("dijit._Templated"); +dojo.require("dijit._Container"); +dojo.require("dijit.form.ToggleButton"); +dojo.requireLocalization("dijit","common",null,"ROOT,ar,ca,cs,da,de,el,es,fi,fr,he,hu,it,ja,ko,nb,nl,pl,pt,pt-pt,ro,ru,sk,sl,sv,th,tr,zh,zh-tw"); +dojo.declare("dijit.layout.StackController",[dijit._Widget,dijit._Templated,dijit._Container],{templateString:"<span wairole='tablist' dojoAttachEvent='onkeypress' class='dijitStackController'></span>",containerId:"",buttonWidget:"dijit.layout._StackButton",postCreate:function(){ +dijit.setWaiRole(this.domNode,"tablist"); +this.pane2button={}; +this.pane2handles={}; +this.subscribe(this.containerId+"-startup","onStartup"); +this.subscribe(this.containerId+"-addChild","onAddChild"); +this.subscribe(this.containerId+"-removeChild","onRemoveChild"); +this.subscribe(this.containerId+"-selectChild","onSelectChild"); +this.subscribe(this.containerId+"-containerKeyPress","onContainerKeyPress"); +},onStartup:function(_1){ +dojo.forEach(_1.children,this.onAddChild,this); +if(_1.selected){ +this.onSelectChild(_1.selected); +} +},destroy:function(){ +for(var _2 in this.pane2button){ +this.onRemoveChild(dijit.byId(_2)); +} +this.inherited(arguments); +},onAddChild:function(_3,_4){ +var _5=dojo.getObject(this.buttonWidget); +var _6=new _5({id:this.id+"_"+_3.id,label:_3.title,dir:_3.dir,lang:_3.lang,showLabel:_3.showTitle,iconClass:_3.iconClass,closeButton:_3.closable,title:_3.tooltip}); +dijit.setWaiState(_6.focusNode,"selected","false"); +this.pane2handles[_3.id]=[this.connect(_3,"set",function(_7,_8){ +var _9={title:"label",showTitle:"showLabel",iconClass:"iconClass",closable:"closeButton",tooltip:"title"}[_7]; +if(_9){ +_6.set(_9,_8); +} +}),this.connect(_6,"onClick",dojo.hitch(this,"onButtonClick",_3)),this.connect(_6,"onClickCloseButton",dojo.hitch(this,"onCloseButtonClick",_3))]; +this.addChild(_6,_4); +this.pane2button[_3.id]=_6; +_3.controlButton=_6; +if(!this._currentChild){ +_6.focusNode.setAttribute("tabIndex","0"); +dijit.setWaiState(_6.focusNode,"selected","true"); +this._currentChild=_3; +} +if(!this.isLeftToRight()&&dojo.isIE&&this._rectifyRtlTabList){ +this._rectifyRtlTabList(); +} +},onRemoveChild:function(_a){ +if(this._currentChild===_a){ +this._currentChild=null; +} +dojo.forEach(this.pane2handles[_a.id],this.disconnect,this); +delete this.pane2handles[_a.id]; +var _b=this.pane2button[_a.id]; +if(_b){ +this.removeChild(_b); +delete this.pane2button[_a.id]; +_b.destroy(); +} +delete _a.controlButton; +},onSelectChild:function(_c){ +if(!_c){ +return; +} +if(this._currentChild){ +var _d=this.pane2button[this._currentChild.id]; +_d.set("checked",false); +dijit.setWaiState(_d.focusNode,"selected","false"); +_d.focusNode.setAttribute("tabIndex","-1"); +} +var _e=this.pane2button[_c.id]; +_e.set("checked",true); +dijit.setWaiState(_e.focusNode,"selected","true"); +this._currentChild=_c; +_e.focusNode.setAttribute("tabIndex","0"); +var _f=dijit.byId(this.containerId); +dijit.setWaiState(_f.containerNode,"labelledby",_e.id); +},onButtonClick:function(_10){ +var _11=dijit.byId(this.containerId); +_11.selectChild(_10); +},onCloseButtonClick:function(_12){ +var _13=dijit.byId(this.containerId); +_13.closeChild(_12); +if(this._currentChild){ +var b=this.pane2button[this._currentChild.id]; +if(b){ +dijit.focus(b.focusNode||b.domNode); +} +} +},adjacent:function(_14){ +if(!this.isLeftToRight()&&(!this.tabPosition||/top|bottom/.test(this.tabPosition))){ +_14=!_14; +} +var _15=this.getChildren(); +var _16=dojo.indexOf(_15,this.pane2button[this._currentChild.id]); +var _17=_14?1:_15.length-1; +return _15[(_16+_17)%_15.length]; +},onkeypress:function(e){ +if(this.disabled||e.altKey){ +return; +} +var _18=null; +if(e.ctrlKey||!e._djpage){ +var k=dojo.keys; +switch(e.charOrCode){ +case k.LEFT_ARROW: +case k.UP_ARROW: +if(!e._djpage){ +_18=false; +} +break; +case k.PAGE_UP: +if(e.ctrlKey){ +_18=false; +} +break; +case k.RIGHT_ARROW: +case k.DOWN_ARROW: +if(!e._djpage){ +_18=true; +} +break; +case k.PAGE_DOWN: +if(e.ctrlKey){ +_18=true; +} +break; +case k.DELETE: +if(this._currentChild.closable){ +this.onCloseButtonClick(this._currentChild); +} +dojo.stopEvent(e); +break; +default: +if(e.ctrlKey){ +if(e.charOrCode===k.TAB){ +this.adjacent(!e.shiftKey).onClick(); +dojo.stopEvent(e); +}else{ +if(e.charOrCode=="w"){ +if(this._currentChild.closable){ +this.onCloseButtonClick(this._currentChild); +} +dojo.stopEvent(e); +} +} +} +} +if(_18!==null){ +this.adjacent(_18).onClick(); +dojo.stopEvent(e); +} +} +},onContainerKeyPress:function(_19){ +_19.e._djpage=_19.page; +this.onkeypress(_19.e); +}}); +dojo.declare("dijit.layout._StackButton",dijit.form.ToggleButton,{tabIndex:"-1",postCreate:function(evt){ +dijit.setWaiRole((this.focusNode||this.domNode),"tab"); +this.inherited(arguments); +},onClick:function(evt){ +dijit.focus(this.focusNode); +},onClickCloseButton:function(evt){ +evt.stopPropagation(); +}}); +} diff --git a/lib/dijit/layout/TabContainer.js b/lib/dijit/layout/TabContainer.js new file mode 100644 index 000000000..d765cf7e4 --- /dev/null +++ b/lib/dijit/layout/TabContainer.js @@ -0,0 +1,23 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.layout.TabContainer"]){ +dojo._hasResource["dijit.layout.TabContainer"]=true; +dojo.provide("dijit.layout.TabContainer"); +dojo.require("dijit.layout._TabContainerBase"); +dojo.require("dijit.layout.TabController"); +dojo.require("dijit.layout.ScrollingTabController"); +dojo.declare("dijit.layout.TabContainer",dijit.layout._TabContainerBase,{useMenu:true,useSlider:true,controllerWidget:"",_makeController:function(_1){ +var _2=this.baseClass+"-tabs"+(this.doLayout?"":" dijitTabNoLayout"),_3=dojo.getObject(this.controllerWidget); +return new _3({id:this.id+"_tablist",dir:this.dir,lang:this.lang,tabPosition:this.tabPosition,doLayout:this.doLayout,containerId:this.id,"class":_2,nested:this.nested,useMenu:this.useMenu,useSlider:this.useSlider,tabStripClass:this.tabStrip?this.baseClass+(this.tabStrip?"":"No")+"Strip":null},_1); +},postMixInProperties:function(){ +this.inherited(arguments); +if(!this.controllerWidget){ +this.controllerWidget=(this.tabPosition=="top"||this.tabPosition=="bottom")&&!this.nested?"dijit.layout.ScrollingTabController":"dijit.layout.TabController"; +} +}}); +} diff --git a/lib/dijit/layout/TabController.js b/lib/dijit/layout/TabController.js new file mode 100644 index 000000000..edb3930c5 --- /dev/null +++ b/lib/dijit/layout/TabController.js @@ -0,0 +1,77 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.layout.TabController"]){ +dojo._hasResource["dijit.layout.TabController"]=true; +dojo.provide("dijit.layout.TabController"); +dojo.require("dijit.layout.StackController"); +dojo.require("dijit.Menu"); +dojo.require("dijit.MenuItem"); +dojo.requireLocalization("dijit","common",null,"ROOT,ar,ca,cs,da,de,el,es,fi,fr,he,hu,it,ja,ko,nb,nl,pl,pt,pt-pt,ro,ru,sk,sl,sv,th,tr,zh,zh-tw"); +dojo.declare("dijit.layout.TabController",dijit.layout.StackController,{templateString:"<div wairole='tablist' dojoAttachEvent='onkeypress:onkeypress'></div>",tabPosition:"top",buttonWidget:"dijit.layout._TabButton",_rectifyRtlTabList:function(){ +if(0>=this.tabPosition.indexOf("-h")){ +return; +} +if(!this.pane2button){ +return; +} +var _1=0; +for(var _2 in this.pane2button){ +var ow=this.pane2button[_2].innerDiv.scrollWidth; +_1=Math.max(_1,ow); +} +for(_2 in this.pane2button){ +this.pane2button[_2].innerDiv.style.width=_1+"px"; +} +}}); +dojo.declare("dijit.layout._TabButton",dijit.layout._StackButton,{baseClass:"dijitTab",cssStateNodes:{closeNode:"dijitTabCloseButton"},templateString:dojo.cache("dijit.layout","templates/_TabButton.html","<div waiRole=\"presentation\" dojoAttachPoint=\"titleNode\" dojoAttachEvent='onclick:onClick'>\n <div waiRole=\"presentation\" class='dijitTabInnerDiv' dojoAttachPoint='innerDiv'>\n <div waiRole=\"presentation\" class='dijitTabContent' dojoAttachPoint='tabContent'>\n \t<div waiRole=\"presentation\" dojoAttachPoint='focusNode'>\n\t\t <img src=\"${_blankGif}\" alt=\"\" class=\"dijitIcon\" dojoAttachPoint='iconNode' />\n\t\t <span dojoAttachPoint='containerNode' class='tabLabel'></span>\n\t\t <span class=\"dijitInline dijitTabCloseButton dijitTabCloseIcon\" dojoAttachPoint='closeNode'\n\t\t \t\tdojoAttachEvent='onclick: onClickCloseButton' waiRole=\"presentation\">\n\t\t <span dojoAttachPoint='closeText' class='dijitTabCloseText'>x</span\n\t\t ></span>\n\t\t\t</div>\n </div>\n </div>\n</div>\n"),scrollOnFocus:false,postMixInProperties:function(){ +if(!this.iconClass){ +this.iconClass="dijitTabButtonIcon"; +} +},postCreate:function(){ +this.inherited(arguments); +dojo.setSelectable(this.containerNode,false); +if(this.iconNode.className=="dijitTabButtonIcon"){ +dojo.style(this.iconNode,"width","1px"); +} +},startup:function(){ +this.inherited(arguments); +var n=this.domNode; +setTimeout(function(){ +n.className=n.className; +},1); +},_setCloseButtonAttr:function(_3){ +this.closeButton=_3; +dojo.toggleClass(this.innerDiv,"dijitClosable",_3); +this.closeNode.style.display=_3?"":"none"; +if(_3){ +var _4=dojo.i18n.getLocalization("dijit","common"); +if(this.closeNode){ +dojo.attr(this.closeNode,"title",_4.itemClose); +} +var _4=dojo.i18n.getLocalization("dijit","common"); +this._closeMenu=new dijit.Menu({id:this.id+"_Menu",dir:this.dir,lang:this.lang,targetNodeIds:[this.domNode]}); +this._closeMenu.addChild(new dijit.MenuItem({label:_4.itemClose,dir:this.dir,lang:this.lang,onClick:dojo.hitch(this,"onClickCloseButton")})); +}else{ +if(this._closeMenu){ +this._closeMenu.destroyRecursive(); +delete this._closeMenu; +} +} +},_setLabelAttr:function(_5){ +this.inherited(arguments); +if(this.showLabel==false&&!this.params.title){ +this.iconNode.alt=dojo.trim(this.containerNode.innerText||this.containerNode.textContent||""); +} +},destroy:function(){ +if(this._closeMenu){ +this._closeMenu.destroyRecursive(); +delete this._closeMenu; +} +this.inherited(arguments); +}}); +} diff --git a/lib/dijit/layout/_LayoutWidget.js b/lib/dijit/layout/_LayoutWidget.js new file mode 100644 index 000000000..ec7be37b7 --- /dev/null +++ b/lib/dijit/layout/_LayoutWidget.js @@ -0,0 +1,126 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.layout._LayoutWidget"]){ +dojo._hasResource["dijit.layout._LayoutWidget"]=true; +dojo.provide("dijit.layout._LayoutWidget"); +dojo.require("dijit._Widget"); +dojo.require("dijit._Container"); +dojo.require("dijit._Contained"); +dojo.declare("dijit.layout._LayoutWidget",[dijit._Widget,dijit._Container,dijit._Contained],{baseClass:"dijitLayoutContainer",isLayoutContainer:true,postCreate:function(){ +dojo.addClass(this.domNode,"dijitContainer"); +this.inherited(arguments); +},startup:function(){ +if(this._started){ +return; +} +this.inherited(arguments); +var _1=this.getParent&&this.getParent(); +if(!(_1&&_1.isLayoutContainer)){ +this.resize(); +this.connect(dojo.isIE?this.domNode:dojo.global,"onresize",function(){ +this.resize(); +}); +} +},resize:function(_2,_3){ +var _4=this.domNode; +if(_2){ +dojo.marginBox(_4,_2); +if(_2.t){ +_4.style.top=_2.t+"px"; +} +if(_2.l){ +_4.style.left=_2.l+"px"; +} +} +var mb=_3||{}; +dojo.mixin(mb,_2||{}); +if(!("h" in mb)||!("w" in mb)){ +mb=dojo.mixin(dojo.marginBox(_4),mb); +} +var cs=dojo.getComputedStyle(_4); +var me=dojo._getMarginExtents(_4,cs); +var be=dojo._getBorderExtents(_4,cs); +var bb=(this._borderBox={w:mb.w-(me.w+be.w),h:mb.h-(me.h+be.h)}); +var pe=dojo._getPadExtents(_4,cs); +this._contentBox={l:dojo._toPixelValue(_4,cs.paddingLeft),t:dojo._toPixelValue(_4,cs.paddingTop),w:bb.w-pe.w,h:bb.h-pe.h}; +this.layout(); +},layout:function(){ +},_setupChild:function(_5){ +dojo.addClass(_5.domNode,this.baseClass+"-child"); +if(_5.baseClass){ +dojo.addClass(_5.domNode,this.baseClass+"-"+_5.baseClass); +} +},addChild:function(_6,_7){ +this.inherited(arguments); +if(this._started){ +this._setupChild(_6); +} +},removeChild:function(_8){ +dojo.removeClass(_8.domNode,this.baseClass+"-child"); +if(_8.baseClass){ +dojo.removeClass(_8.domNode,this.baseClass+"-"+_8.baseClass); +} +this.inherited(arguments); +}}); +dijit.layout.marginBox2contentBox=function(_9,mb){ +var cs=dojo.getComputedStyle(_9); +var me=dojo._getMarginExtents(_9,cs); +var pb=dojo._getPadBorderExtents(_9,cs); +return {l:dojo._toPixelValue(_9,cs.paddingLeft),t:dojo._toPixelValue(_9,cs.paddingTop),w:mb.w-(me.w+pb.w),h:mb.h-(me.h+pb.h)}; +}; +(function(){ +var _a=function(_b){ +return _b.substring(0,1).toUpperCase()+_b.substring(1); +}; +var _c=function(_d,_e){ +_d.resize?_d.resize(_e):dojo.marginBox(_d.domNode,_e); +dojo.mixin(_d,dojo.marginBox(_d.domNode)); +dojo.mixin(_d,_e); +}; +dijit.layout.layoutChildren=function(_f,dim,_10){ +dim=dojo.mixin({},dim); +dojo.addClass(_f,"dijitLayoutContainer"); +_10=dojo.filter(_10,function(_11){ +return _11.layoutAlign!="client"; +}).concat(dojo.filter(_10,function(_12){ +return _12.layoutAlign=="client"; +})); +dojo.forEach(_10,function(_13){ +var elm=_13.domNode,pos=_13.layoutAlign; +var _14=elm.style; +_14.left=dim.l+"px"; +_14.top=dim.t+"px"; +_14.bottom=_14.right="auto"; +dojo.addClass(elm,"dijitAlign"+_a(pos)); +if(pos=="top"||pos=="bottom"){ +_c(_13,{w:dim.w}); +dim.h-=_13.h; +if(pos=="top"){ +dim.t+=_13.h; +}else{ +_14.top=dim.t+dim.h+"px"; +} +}else{ +if(pos=="left"||pos=="right"){ +_c(_13,{h:dim.h}); +dim.w-=_13.w; +if(pos=="left"){ +dim.l+=_13.w; +}else{ +_14.left=dim.l+dim.w+"px"; +} +}else{ +if(pos=="client"){ +_c(_13,dim); +} +} +} +}); +}; +})(); +} diff --git a/lib/dijit/layout/_TabContainerBase.js b/lib/dijit/layout/_TabContainerBase.js new file mode 100644 index 000000000..0ba42ec35 --- /dev/null +++ b/lib/dijit/layout/_TabContainerBase.js @@ -0,0 +1,68 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.layout._TabContainerBase"]){ +dojo._hasResource["dijit.layout._TabContainerBase"]=true; +dojo.provide("dijit.layout._TabContainerBase"); +dojo.require("dijit.layout.StackContainer"); +dojo.require("dijit._Templated"); +dojo.declare("dijit.layout._TabContainerBase",[dijit.layout.StackContainer,dijit._Templated],{tabPosition:"top",baseClass:"dijitTabContainer",tabStrip:false,nested:false,templateString:dojo.cache("dijit.layout","templates/TabContainer.html","<div class=\"dijitTabContainer\">\n\t<div class=\"dijitTabListWrapper\" dojoAttachPoint=\"tablistNode\"></div>\n\t<div dojoAttachPoint=\"tablistSpacer\" class=\"dijitTabSpacer ${baseClass}-spacer\"></div>\n\t<div class=\"dijitTabPaneWrapper ${baseClass}-container\" dojoAttachPoint=\"containerNode\"></div>\n</div>\n"),postMixInProperties:function(){ +this.baseClass+=this.tabPosition.charAt(0).toUpperCase()+this.tabPosition.substr(1).replace(/-.*/,""); +this.srcNodeRef&&dojo.style(this.srcNodeRef,"visibility","hidden"); +this.inherited(arguments); +},postCreate:function(){ +this.inherited(arguments); +this.tablist=this._makeController(this.tablistNode); +if(!this.doLayout){ +dojo.addClass(this.domNode,"dijitTabContainerNoLayout"); +} +if(this.nested){ +dojo.addClass(this.domNode,"dijitTabContainerNested"); +dojo.addClass(this.tablist.containerNode,"dijitTabContainerTabListNested"); +dojo.addClass(this.tablistSpacer,"dijitTabContainerSpacerNested"); +dojo.addClass(this.containerNode,"dijitTabPaneWrapperNested"); +}else{ +dojo.addClass(this.domNode,"tabStrip-"+(this.tabStrip?"enabled":"disabled")); +} +},_setupChild:function(_1){ +dojo.addClass(_1.domNode,"dijitTabPane"); +this.inherited(arguments); +},startup:function(){ +if(this._started){ +return; +} +this.tablist.startup(); +this.inherited(arguments); +},layout:function(){ +if(!this._contentBox||typeof (this._contentBox.l)=="undefined"){ +return; +} +var sc=this.selectedChildWidget; +if(this.doLayout){ +var _2=this.tabPosition.replace(/-h/,""); +this.tablist.layoutAlign=_2; +var _3=[this.tablist,{domNode:this.tablistSpacer,layoutAlign:_2},{domNode:this.containerNode,layoutAlign:"client"}]; +dijit.layout.layoutChildren(this.domNode,this._contentBox,_3); +this._containerContentBox=dijit.layout.marginBox2contentBox(this.containerNode,_3[2]); +if(sc&&sc.resize){ +sc.resize(this._containerContentBox); +} +}else{ +if(this.tablist.resize){ +this.tablist.resize({w:dojo.contentBox(this.domNode).w}); +} +if(sc&&sc.resize){ +sc.resize(); +} +} +},destroy:function(){ +if(this.tablist){ +this.tablist.destroy(); +} +this.inherited(arguments); +}}); +} diff --git a/lib/dijit/nls/ar/common.js b/lib/dijit/nls/ar/common.js new file mode 100644 index 000000000..99af50893 --- /dev/null +++ b/lib/dijit/nls/ar/common.js @@ -0,0 +1 @@ +({"buttonOk":"حسنا","buttonCancel":"الغاء","buttonSave":"حفظ","itemClose":"اغلاق"})
\ No newline at end of file diff --git a/lib/dijit/nls/ar/loading.js b/lib/dijit/nls/ar/loading.js new file mode 100644 index 000000000..f8bb535fa --- /dev/null +++ b/lib/dijit/nls/ar/loading.js @@ -0,0 +1 @@ +({"loadingState":"جاري التحميل...","errorState":"عفوا، حدث خطأ"})
\ No newline at end of file diff --git a/lib/dijit/nls/ca/common.js b/lib/dijit/nls/ca/common.js new file mode 100644 index 000000000..b9cd06500 --- /dev/null +++ b/lib/dijit/nls/ca/common.js @@ -0,0 +1 @@ +({"buttonOk":"D'acord","buttonCancel":"Cancel·la","buttonSave":"Desa","itemClose":"Tanca"})
\ No newline at end of file diff --git a/lib/dijit/nls/ca/loading.js b/lib/dijit/nls/ca/loading.js new file mode 100644 index 000000000..cd368cc5c --- /dev/null +++ b/lib/dijit/nls/ca/loading.js @@ -0,0 +1 @@ +({"loadingState":"S'està carregant...","errorState":"Ens sap greu. S'ha produït un error."})
\ No newline at end of file diff --git a/lib/dijit/nls/common.js b/lib/dijit/nls/common.js new file mode 100644 index 000000000..6573dcde8 --- /dev/null +++ b/lib/dijit/nls/common.js @@ -0,0 +1 @@ +({"buttonOk":"OK","buttonCancel":"Cancel","buttonSave":"Save","itemClose":"Close"})
\ No newline at end of file diff --git a/lib/dijit/nls/cs/common.js b/lib/dijit/nls/cs/common.js new file mode 100644 index 000000000..83b3682ce --- /dev/null +++ b/lib/dijit/nls/cs/common.js @@ -0,0 +1 @@ +({"buttonOk":"OK","buttonCancel":"Storno","buttonSave":"Uložit","itemClose":"Zavřít"})
\ No newline at end of file diff --git a/lib/dijit/nls/cs/loading.js b/lib/dijit/nls/cs/loading.js new file mode 100644 index 000000000..c611926e5 --- /dev/null +++ b/lib/dijit/nls/cs/loading.js @@ -0,0 +1 @@ +({"loadingState":"Probíhá načítání...","errorState":"Omlouváme se, došlo k chybě"})
\ No newline at end of file diff --git a/lib/dijit/nls/da/common.js b/lib/dijit/nls/da/common.js new file mode 100644 index 000000000..8c51ed8c8 --- /dev/null +++ b/lib/dijit/nls/da/common.js @@ -0,0 +1 @@ +({"buttonOk":"OK","buttonCancel":"Annullér","buttonSave":"Gem","itemClose":"Luk"})
\ No newline at end of file diff --git a/lib/dijit/nls/da/loading.js b/lib/dijit/nls/da/loading.js new file mode 100644 index 000000000..5088eaf51 --- /dev/null +++ b/lib/dijit/nls/da/loading.js @@ -0,0 +1 @@ +({"loadingState":"Indlæser...","errorState":"Der er opstået en fejl"})
\ No newline at end of file diff --git a/lib/dijit/nls/de/common.js b/lib/dijit/nls/de/common.js new file mode 100644 index 000000000..cd60c45d2 --- /dev/null +++ b/lib/dijit/nls/de/common.js @@ -0,0 +1 @@ +({"buttonOk":"OK","buttonCancel":"Abbrechen","buttonSave":"Speichern","itemClose":"Schließen"})
\ No newline at end of file diff --git a/lib/dijit/nls/de/loading.js b/lib/dijit/nls/de/loading.js new file mode 100644 index 000000000..4989983da --- /dev/null +++ b/lib/dijit/nls/de/loading.js @@ -0,0 +1 @@ +({"loadingState":"Wird geladen...","errorState":"Es ist ein Fehler aufgetreten."})
\ No newline at end of file diff --git a/lib/dijit/nls/dijit-all_ROOT.js b/lib/dijit/nls/dijit-all_ROOT.js new file mode 100644 index 000000000..43cfcad7e --- /dev/null +++ b/lib/dijit/nls/dijit-all_ROOT.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_ROOT");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.ROOT");dojo.nls.colors.ROOT={"lightsteelblue":"light steel blue","orangered":"orange red","midnightblue":"midnight blue","cadetblue":"cadet blue","seashell":"seashell","slategrey":"slate gray","coral":"coral","darkturquoise":"dark turquoise","antiquewhite":"antique white","mediumspringgreen":"medium spring green","salmon":"salmon","darkgrey":"dark gray","ivory":"ivory","greenyellow":"green-yellow","mistyrose":"misty rose","lightsalmon":"light salmon","silver":"silver","dimgrey":"dim gray","orange":"orange","white":"white","navajowhite":"navajo white","royalblue":"royal blue","deeppink":"deep pink","lime":"lime","oldlace":"old lace","chartreuse":"chartreuse","darkcyan":"dark cyan","yellow":"yellow","linen":"linen","olive":"olive","gold":"gold","lawngreen":"lawn green","lightyellow":"light yellow","tan":"tan","darkviolet":"dark violet","lightslategrey":"light slate gray","grey":"gray","darkkhaki":"dark khaki","green":"green","deepskyblue":"deep sky blue","aqua":"aqua","sienna":"sienna","mintcream":"mint cream","rosybrown":"rosy brown","mediumslateblue":"medium slate blue","magenta":"magenta","lightseagreen":"light sea green","cyan":"cyan","olivedrab":"olive drab","darkgoldenrod":"dark goldenrod","slateblue":"slate blue","mediumaquamarine":"medium aquamarine","lavender":"lavender","mediumseagreen":"medium sea green","maroon":"maroon","darkslategray":"dark slate gray","mediumturquoise":"medium turquoise","ghostwhite":"ghost white","darkblue":"dark blue","mediumvioletred":"medium violet-red","brown":"brown","lightgray":"light gray","sandybrown":"sandy brown","pink":"pink","firebrick":"fire brick","indigo":"indigo","snow":"snow","darkorchid":"dark orchid","turquoise":"turquoise","chocolate":"chocolate","springgreen":"spring green","moccasin":"moccasin","navy":"navy","lemonchiffon":"lemon chiffon","teal":"teal","floralwhite":"floral white","cornflowerblue":"cornflower blue","paleturquoise":"pale turquoise","purple":"purple","gainsboro":"gainsboro","plum":"plum","red":"red","blue":"blue","forestgreen":"forest green","darkgreen":"dark green","honeydew":"honeydew","darkseagreen":"dark sea green","lightcoral":"light coral","palevioletred":"pale violet-red","mediumpurple":"medium purple","saddlebrown":"saddle brown","darkmagenta":"dark magenta","thistle":"thistle","whitesmoke":"white smoke","wheat":"wheat","violet":"violet","lightskyblue":"light sky blue","goldenrod":"goldenrod","mediumblue":"medium blue","skyblue":"sky blue","crimson":"crimson","darksalmon":"dark salmon","darkred":"dark red","darkslategrey":"dark slate gray","peru":"peru","lightgrey":"light gray","lightgoldenrodyellow":"light goldenrod yellow","blanchedalmond":"blanched almond","aliceblue":"alice blue","bisque":"bisque","slategray":"slate gray","palegoldenrod":"pale goldenrod","darkorange":"dark orange","aquamarine":"aquamarine","lightgreen":"light green","burlywood":"burlywood","dodgerblue":"dodger blue","darkgray":"dark gray","lightcyan":"light cyan","powderblue":"powder blue","blueviolet":"blue-violet","orchid":"orchid","dimgray":"dim gray","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavender blush","hotpink":"hot pink","steelblue":"steel blue","tomato":"tomato","lightpink":"light pink","limegreen":"lime green","indianred":"indian red","papayawhip":"papaya whip","lightslategray":"light slate gray","gray":"gray","mediumorchid":"medium orchid","cornsilk":"cornsilk","black":"black","seagreen":"sea green","darkslateblue":"dark slate blue","khaki":"khaki","lightblue":"light blue","palegreen":"pale green","azure":"azure","peachpuff":"peach puff","darkolivegreen":"dark olive green","yellowgreen":"yellow green"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.ROOT");dijit.nls.loading.ROOT={"loadingState":"Loading...","errorState":"Sorry, an error occurred"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.ROOT");dijit.nls.common.ROOT={"buttonOk":"OK","buttonCancel":"Cancel","buttonSave":"Save","itemClose":"Close"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.ROOT");dijit._editor.nls.commands.ROOT={"removeFormat":"Remove Format","copy":"Copy","paste":"Paste","selectAll":"Select All","insertOrderedList":"Numbered List","insertTable":"Insert/Edit Table","print":"Print","underline":"Underline","foreColor":"Foreground Color","htmlToggle":"HTML Source","formatBlock":"Paragraph Style","newPage":"New Page","insertHorizontalRule":"Horizontal Rule","delete":"Delete","appleKey":"⌘${0}","insertUnorderedList":"Bullet List","tableProp":"Table Property","insertImage":"Insert Image","superscript":"Superscript","subscript":"Subscript","createLink":"Create Link","undo":"Undo","fullScreen":"Toggle Full Screen","italic":"Italic","fontName":"Font Name","justifyLeft":"Align Left","unlink":"Remove Link","toggleTableBorder":"Toggle Table Border","viewSource":"View HTML Source","ctrlKey":"ctrl+${0}","fontSize":"Font Size","systemShortcut":"The \"${0}\" action is only available in your browser using a keyboard shortcut. Use ${1}.","indent":"Indent","redo":"Redo","strikethrough":"Strikethrough","justifyFull":"Justify","justifyCenter":"Align Center","hiliteColor":"Background Color","deleteTable":"Delete Table","outdent":"Outdent","cut":"Cut","plainFormatBlock":"Paragraph Style","toggleDir":"Toggle Direction","bold":"Bold","tabIndent":"Tab Indent","justifyRight":"Align Right"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.ROOT");dijit.form.nls.validate.ROOT={"rangeMessage":"This value is out of range.","invalidMessage":"The value entered is not valid.","missingMessage":"This value is required."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.ROOT");dijit.form.nls.ComboBox.ROOT={"previousMessage":"Previous choices","nextMessage":"More choices"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.ROOT");dijit._editor.nls.FontChoice.ROOT={"noFormat":"None","1":"xx-small","2":"x-small","formatBlock":"Format","3":"small","4":"medium","5":"large","6":"x-large","7":"xx-large","fantasy":"fantasy","serif":"serif","p":"Paragraph","pre":"Pre-formatted","sans-serif":"sans-serif","fontName":"Font","h1":"Heading","h2":"Subheading","h3":"Sub-subheading","monospace":"monospace","fontSize":"Size","cursive":"cursive"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.ROOT");dijit._editor.nls.LinkDialog.ROOT={"text":"Description:","insertImageTitle":"Image Properties","set":"Set","newWindow":"New Window","topWindow":"Topmost Window","target":"Target:","createLinkTitle":"Link Properties","parentWindow":"Parent Window","currentWindow":"Current Window","url":"URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.ROOT");dojo.cldr.nls.number.ROOT={"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"¤ #,##0.00","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":",","percentFormat":"#,##0%","decimalFormat":"#,##0.###","decimal":".","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.ROOT");dojo.cldr.nls.currency.ROOT={"USD_symbol":"US$","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","JPY_symbol":"JP¥","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.ROOT");dojo.cldr.nls.gregorian.ROOT={"months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-narrow":["1","2","3","4"],"field-weekday":"Day of the Week","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"EEE, y-M-d","dateFormatItem-MMMEd":"E MMM d","eraNarrow":["BCE","CE"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateFormat-long":"y MMMM d","months-format-wide":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE, y MMMM dd","dateFormatItem-Md":"M-d","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","field-era":"Era","dateFormatItem-yM":"y-M","months-standAlone-wide":["1","2","3","4","5","6","7","8","9","10","11","12"],"timeFormat-short":"HH:mm","quarters-format-wide":["Q1","Q2","Q3","Q4"],"timeFormat-long":"HH:mm:ss z","field-year":"Year","dateFormatItem-yMMM":"y MMM","dateFormatItem-yQ":"y Q","dateTimeFormats-appendItem-Era":"{0} {1}","field-hour":"Hour","months-format-abbr":["1","2","3","4","5","6","7","8","9","10","11","12"],"timeFormat-full":"HH:mm:ss zzzz","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","field-day-relative+0":"Today","field-day-relative+1":"Tomorrow","dateFormatItem-H":"HH","months-standAlone-abbr":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-format-abbr":["Q1","Q2","Q3","Q4"],"quarters-standAlone-wide":["Q1","Q2","Q3","Q4"],"dateFormatItem-M":"L","days-standAlone-wide":["1","2","3","4","5","6","7"],"timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"eraAbbr":["BCE","CE"],"field-minute":"Minute","field-dayperiod":"Dayperiod","days-standAlone-abbr":["1","2","3","4","5","6","7"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"field-day-relative+-1":"Yesterday","dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateFormatItem-MMMd":"MMM d","dateFormatItem-MEd":"E, M-d","dateTimeFormat-full":"{1} {0}","field-day":"Day","days-format-wide":["1","2","3","4","5","6","7"],"field-zone":"Zone","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-y":"y","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","days-format-abbr":["1","2","3","4","5","6","7"],"eraNames":["BCE","CE"],"days-format-narrow":["1","2","3","4","5","6","7"],"days-standAlone-narrow":["1","2","3","4","5","6","7"],"dateFormatItem-MMM":"LLL","field-month":"Month","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dayPeriods-format-wide-am":"AM","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateFormat-short":"yyyy-MM-dd","field-second":"Second","dateFormatItem-yMMMEd":"EEE, y MMM d","dateTimeFormats-appendItem-Timezone":"{0} {1}","field-week":"Week","dateFormat-medium":"y MMM d","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a"}; diff --git a/lib/dijit/nls/dijit-all_ar.js b/lib/dijit/nls/dijit-all_ar.js new file mode 100644 index 000000000..2c32d8113 --- /dev/null +++ b/lib/dijit/nls/dijit-all_ar.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_ar");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.ar");dojo.nls.colors.ar={"lightsteelblue":"أزرق معدني فاتح","orangered":"أحمر مائل للبرتقالي","midnightblue":"أزرق بحري","cadetblue":"أزرق ملون بالرمادي","seashell":"أبيض مائل للأصفر فاتح","slategrey":"رمادي اردوازي","coral":"مرجاني","darkturquoise":"تركواز داكن","antiquewhite":"أبيض عتيق","mediumspringgreen":"أخضر ربيعي متوسط","salmon":"برتقالي وردي شاحب","darkgrey":"رمادي داكن","ivory":"عاجي","greenyellow":"أخضر مائل للأصفر","mistyrose":"وردي","lightsalmon":"فضي فاتح","silver":"فضي","dimgrey":"رمادي شاحب","orange":"برتقالي","white":"أبيض","navajowhite":"أبيض ملاحي","royalblue":"أزرق ملكي","deeppink":"أحمر وردي غامق","lime":"ليموني","oldlace":"برتقالي مائل للأصفر شاحب","chartreuse":"أخضر مائل للصفرة","darkcyan":"أزرق سماوي داكن","yellow":"أصفر","linen":"كتاني","olive":"أخضر زيتوني داكن","gold":"ذهبي","lawngreen":"أخضر بلون العشب","lightyellow":"أصفر فاتح","tan":"خمري","darkviolet":"بنفسجي داكن","lightslategrey":"رمادي اردوازي فاتح","grey":"رمادي","darkkhaki":"كاكي داكن","green":"أخضر","deepskyblue":"أزرق سماوي غامق","aqua":"أزرق مائي","sienna":"بني محروق","mintcream":"أصفر شاحب مائل للأخضر الزرعي","rosybrown":"بني وردي","mediumslateblue":"أزرق اردوازي متوسط","magenta":"أحمر قرمزي","lightseagreen":"أخضر مائل للأزرق فاتح","cyan":"أزرق سماوي","olivedrab":"أسود فاتح","darkgoldenrod":"أصفر ذهبي داكن","slateblue":"أزرق اردوازي","mediumaquamarine":"أزرق مائل للأخضر (زبرجد) متوسط","lavender":"أرجواني شاحب","mediumseagreen":"أخضر مائل للأزرق متوسط","maroon":"أحمر داكن","darkslategray":"رمادي اردوازي داكن","mediumturquoise":"تركواز متوسط","ghostwhite":"أبيض شفاف","darkblue":"أزرق داكن","mediumvioletred":"أحمر-بنفسجي متوسط","brown":"بني","lightgray":"رمادي فاتح","sandybrown":"بني مائل للصفرة","pink":"وردي","firebrick":"أصفر زاهي","indigo":"نيلي","snow":"أبيض ثلجي","darkorchid":"أرجواني داكن","turquoise":"تركواز","chocolate":"بني غامق","springgreen":"أخضر ربيعي","moccasin":"نحاسي أحمر","navy":"أزرق داكن","lemonchiffon":"أصفر شفاف","teal":"بترولي","floralwhite":"أبيض زهري","cornflowerblue":"أزرق عنبري","paleturquoise":"تركواز شاحب","purple":"ارجواني","gainsboro":"رمادي مائل للأزرق فاتح","plum":"أرجواني داكن","red":"أحمر","blue":"أزرق","forestgreen":"أخضر بلون أشجار الغابات","darkgreen":"أخضر داكن","honeydew":"أبيض مائل للأخضر","darkseagreen":"أخضر مائل للأزرق داكن","lightcoral":"مرجاني فاتح","palevioletred":"أحمر-بنفسجي شاحب","mediumpurple":"قرمزي متوسط","saddlebrown":"بني فاتح","darkmagenta":"قرمزي داكن","thistle":"ارجواني شاحب","whitesmoke":"دخان أبيض","wheat":"أخضر قمحي","violet":"بنفسجي","lightskyblue":"أزرق سماوي فاتح","goldenrod":"أصفر ذهبي","mediumblue":"أزرق متوسط","skyblue":"أزرق سماوي","crimson":"قرمزي","darksalmon":"فضي داكن","darkred":"أحمر داكن","darkslategrey":"رمادي اردوازي داكن","peru":"بني جملي","lightgrey":"رمادي فاتح","lightgoldenrodyellow":"أصفر ذهبي فاتح","blanchedalmond":"أخضر مائل للبياض","aliceblue":"أزرق فاتح","bisque":"أصفر برتقالي الى رمادي مصفر","slategray":"رمادي اردوازي","palegoldenrod":"أصفر ذهبي شاحب","darkorange":"برتقالي داكن","aquamarine":"أزرق مائل للأخضر (زبرجد)","lightgreen":"أخضر فاتح","burlywood":"خشبي","dodgerblue":"أزرق عنبري","darkgray":"رمادي داكن","lightcyan":"سماوي فاتح","powderblue":"أزرق مائل للأصفر","blueviolet":"أزرق-بنفسجي","orchid":"أرجواني فاتح","dimgray":"رمادي شاحب","beige":"بيج","fuchsia":"فوشيا","lavenderblush":"أحمر أرجواني","hotpink":"أحمر وردي زاهي","steelblue":"أزرق معدني","tomato":"أحمر مائل للأصفر","lightpink":"وردي فاتح","limegreen":"أخضر ليموني","indianred":"أحمر هندي","papayawhip":"خوخي فاتح","lightslategray":"رمادي اردوازي فاتح","gray":"رمادي","mediumorchid":"أرجواني متوسط","cornsilk":"حريري","black":"أسود","seagreen":"أخضر مائل للأزرق","darkslateblue":"أزرق اردوازي داكن","khaki":"كاكي","lightblue":"أزرق فاتح","palegreen":"أخضر شاحب","azure":"أزرق سماوي","peachpuff":"خوخي مائل للأصفر","darkolivegreen":"أخضر زيتوني داكن","yellowgreen":"أخضر مائل للأصفر"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.ar");dijit.nls.loading.ar={"loadingState":"جاري التحميل...","errorState":"عفوا، حدث خطأ"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.ar");dijit.nls.common.ar={"buttonOk":"حسنا","buttonCancel":"الغاء","buttonSave":"حفظ","itemClose":"اغلاق"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.ar");dijit._editor.nls.commands.ar={"removeFormat":"ازالة النسق","copy":"نسخ","paste":"لصق","selectAll":"اختيار كل","insertOrderedList":"كشف مرقم","insertTable":"ادراج/تحرير جدول","print":"طباعة","underline":"~تسطير","foreColor":"لون الواجهة الأمامية","htmlToggle":"مصدر HTML","formatBlock":"نمط الفقرة","newPage":"صفحة جديدة","insertHorizontalRule":"مسطرة أفقية","delete":"حذف","insertUnorderedList":"كشف نقطي","tableProp":"خصائص الجدول","insertImage":"ادراج صورة","superscript":"رمز علوي","subscript":"رمز سفلي","createLink":"تكوين وصلة","undo":"تراجع","fullScreen":"تبديل الشاشة الكاملة","italic":"~مائل","fontName":"اسم طاقم الطباعة","justifyLeft":"محاذاة الى اليسار","unlink":"ازالة وصلة","toggleTableBorder":"تبديل حدود الجدول","viewSource":"مشاهدة مصدر HTML","ctrlKey":"ctrl+${0}","fontSize":"حجم طاقم الطباعة","systemShortcut":"التصرف \"${0}\" يكون متاحا فقط في برنامج الاستعراض الخاص بك باستخدام المسار المختصر للوحة المفاتيح. استخدم ${1}.","indent":"ازاحة للداخل","redo":"اعادة","strikethrough":"تشطيب","justifyFull":"ضبط","justifyCenter":"محاذاة في الوسط","hiliteColor":"لون الخلفية","deleteTable":"حذف جدول","outdent":"ازاحة للخارج","cut":"قص","plainFormatBlock":"نمط الفقرة","toggleDir":"تبديل الاتجاه","bold":"عري~ض","tabIndent":"ازاحة للداخل باستخدام Tab","justifyRight":"محاذاة الى اليمين","appleKey":"⌘${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.ar");dijit.form.nls.validate.ar={"rangeMessage":"هذه القيمة ليس بالمدى الصحيح.","invalidMessage":"القيمة التي تم ادخالها غير صحيحة.","missingMessage":"يجب ادخال هذه القيمة."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.ar");dijit.form.nls.ComboBox.ar={"previousMessage":"الاختيارات السابقة","nextMessage":"مزيد من الاختيارات"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.ar");dijit._editor.nls.FontChoice.ar={"1":"صغير جدا جدا","2":"صغير جدا","formatBlock":"النسق","3":"صغير","4":"متوسط","5":"كبير","6":"كبير جدا","7":"كبير جدا جدا","fantasy":"خيالي","serif":"serif","p":"فقرة","pre":"منسق بصفة مسبقة","sans-serif":"sans-serif","fontName":"طاقم طباعة","h1":"عنوان","h2":"عنوان فرعي","h3":"فرعي-عنوان فرعي","monospace":"أحادي المسافة","fontSize":"الحجم","cursive":"كتابة بحروف متصلة","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.ar");dijit._editor.nls.LinkDialog.ar={"text":"الوصف:","insertImageTitle":"خصائص الصورة","set":"تحديد","newWindow":"نافذة جديدة","topWindow":"النافذة العلوية","target":"الهدف: ","createLinkTitle":"خصائص الوصلة","parentWindow":"النافذة الرئيسية","currentWindow":"النافذة الحالية","url":"عنوان URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.ar");dojo.cldr.nls.number.ar={"group":"٬","percentSign":"٪","exponential":"اس","list":"؛","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":"٫","nan":"ليس رقم","nativeZeroDigit":"٠","perMille":"؉","decimalFormat":"#,##0.###;#,##0.###-","currencyFormat":"¤ #,##0.00;¤ #,##0.00-","plusSign":"+","scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","percentFormat":"#,##0%","currencySpacing-beforeCurrency-insertBetween":" "};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.ar");dojo.cldr.nls.currency.ar={"HKD_displayName":"دولار هونج كونج","CHF_displayName":"فرنك سويسري","CAD_displayName":"دولار كندي","CNY_displayName":"يوان صيني","AUD_displayName":"دولار أسترالي","JPY_displayName":"ين ياباني","USD_displayName":"دولار أمريكي","CNY_symbol":"ي.ص","GBP_displayName":"جنيه إسترليني","EUR_displayName":"يورو","USD_symbol":"US$","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","JPY_symbol":"JP¥","AUD_symbol":"AU$","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.ar");dojo.cldr.nls.gregorian.ar={"dateFormatItem-yM":"M/yyyy","field-dayperiod":"ص/م","dateFormatItem-yQ":"yyyy Q","dayPeriods-format-wide-pm":"م","field-minute":"الدقائق","eraNames":["قبل الميلاد","ميلادي"],"dateFormatItem-MMMEd":"E d MMM","field-day-relative+-1":"أمس","field-weekday":"اليوم","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-MMdd":"dd/MM","days-standAlone-wide":["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["ي","ف","م","أ","و","ن","ل","غ","س","ك","ب","د"],"field-era":"العصر","field-hour":"الساعات","dayPeriods-format-wide-am":"ص","quarters-standAlone-abbr":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"dateFormatItem-y":"y","timeFormat-full":"zzzz h:mm:ss a","months-standAlone-abbr":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"dateFormatItem-yMMM":"MMM y","field-day-relative+0":"اليوم","field-day-relative+1":"غدًا","days-standAlone-narrow":["ح","ن","ث","ر","خ","ج","س"],"eraAbbr":["ق.م","م"],"field-day-relative+2":"بعد الغد","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-yyyyMMMM":"MMMM، y","dateFormat-long":"d MMMM، y","timeFormat-medium":"h:mm:ss a","field-zone":"التوقيت","dateFormatItem-Hm":"HH:mm","dateFormat-medium":"dd/MM/yyyy","quarters-standAlone-wide":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"dateFormatItem-yMMMM":"MMMM y","dateFormatItem-ms":"mm:ss","field-year":"السنة","quarters-standAlone-narrow":["١","٢","٣","٤"],"field-week":"الأسبوع","months-standAlone-wide":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"dateFormatItem-MMMMEd":"E d MMMM","dateFormatItem-MMMd":"d MMM","quarters-format-narrow":["١","٢","٣","٤"],"dateFormatItem-yyQ":"Q yy","timeFormat-long":"z h:mm:ss a","months-format-abbr":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"timeFormat-short":"h:mm a","field-month":"الشهر","dateFormatItem-MMMMd":"d MMMM","quarters-format-abbr":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"days-format-abbr":["أحد","إثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],"dateFormatItem-M":"L","days-format-narrow":["ح","ن","ث","ر","خ","ج","س"],"field-second":"الثواني","field-day":"يوم","months-format-narrow":["ي","ف","م","أ","و","ن","ل","غ","س","ك","ب","د"],"days-standAlone-abbr":["أحد","إثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],"dateFormat-short":"d/M/yyyy","dateFormatItem-yMMMEd":"EEE، d MMMM y","dateFormat-full":"EEEE، d MMMM، y","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"EEE، d/M/yyyy","months-format-wide":["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],"dateFormatItem-d":"d","quarters-format-wide":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"days-format-wide":["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"eraNarrow":["ق.م","م"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateFormatItem-MEd":"E, M-d","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a"}; diff --git a/lib/dijit/nls/dijit-all_ca.js b/lib/dijit/nls/dijit-all_ca.js new file mode 100644 index 000000000..48456f7e7 --- /dev/null +++ b/lib/dijit/nls/dijit-all_ca.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_ca");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.ca");dojo.nls.colors.ca={"lightsteelblue":"blau acer clar","orangered":"taronja vermellós","midnightblue":"blau mitjanit","cadetblue":"blau marí","seashell":"petxina marina","slategrey":"gris pissarra","coral":"corall","darkturquoise":"turquesa fosc","antiquewhite":"blanc antic","mediumspringgreen":"verd primavera mitjà","salmon":"salmó","darkgrey":"gris fosc","ivory":"marbre","greenyellow":"verd grogós","mistyrose":"rosa dens","lightsalmon":"salmó clar","silver":"argent","dimgrey":"gris fosc","orange":"taronja","white":"blanc","navajowhite":"blanc Navajo","royalblue":"blau marí intens","deeppink":"rosa profund","lime":"verd llimona","oldlace":"rosa cremós","chartreuse":"Llimona pàl·lid","darkcyan":"cian fosc","yellow":"groc","linen":"lli","olive":"oliva","gold":"daurat","lawngreen":"verd gespa","lightyellow":"groc clar","tan":"tan","darkviolet":"violeta fosc","lightslategrey":"gris pissarra clar","grey":"gris","darkkhaki":"caqui fosc","green":"verd","deepskyblue":"blau cel profund","aqua":"aigua","sienna":"siena","mintcream":"menta pàl·lid","rosybrown":"marró rosat","mediumslateblue":"blau pissarra mitjà","magenta":"magenta","lightseagreen":"verd marí clar","cyan":"cian","olivedrab":"gris oliva","darkgoldenrod":"ocre fosc","slateblue":"blau pissarra","mediumaquamarine":"aiguamarina mitjana","lavender":"lavanda","mediumseagreen":"verd marí mitjà","maroon":"marró vermellós","darkslategray":"gris pissarra fosc","mediumturquoise":"turquesa mitjana","ghostwhite":"blanc fantasma","darkblue":"blau fosc","mediumvioletred":"vermell violeta mitjà","brown":"marró","lightgray":"gris clar","sandybrown":"marró arenós","pink":"rosa","firebrick":"maó refractari","indigo":"índigo","snow":"neu","darkorchid":"orquídia fosc","turquoise":"turquesa","chocolate":"xocolata","springgreen":"verd de primavera","moccasin":"mocassí","navy":"blau marí","lemonchiffon":"groc brisa","teal":"verd blavós","floralwhite":"blanc floral","cornflowerblue":"blau blauet","paleturquoise":"turquesa pàl·lid","purple":"porpra","gainsboro":"gainsboro","plum":"pruna","red":"vermell","blue":"blau","forestgreen":"verd bosc","darkgreen":"verd fosc","honeydew":"rosada de mel","darkseagreen":"verd marí fosc","lightcoral":"corall clar","palevioletred":"vermell porpra pàl·lid","mediumpurple":"porpra mitjana","saddlebrown":"marró mitjà","darkmagenta":"magenta fosc","thistle":"card","whitesmoke":"blanc fumat","wheat":"blat","violet":"violeta","lightskyblue":"blau cel clar","goldenrod":"ocre","mediumblue":"blau mitjà","skyblue":"blau cel","crimson":"carmesí","darksalmon":"salmó fosc","darkred":"vermell fosc","darkslategrey":"gris pissarra fosc","peru":"Perú","lightgrey":"gris clar","lightgoldenrodyellow":"groc ocre clar","blanchedalmond":"ametlla pàl·lid","aliceblue":"blau cian clar","bisque":"crema","slategray":"gris pissarra","palegoldenrod":"ocre pàl·lid","darkorange":"taronja fosc","aquamarine":"aiguamarina","lightgreen":"verd clar","burlywood":"marró arenós","dodgerblue":"blau Dodger","darkgray":"gris fosc","lightcyan":"cian clar","powderblue":"blau grisós","blueviolet":"blau violeta","orchid":"orquídia","dimgray":"gris fosc","beige":"beix","fuchsia":"fúcsia","lavenderblush":"lavanda vermellosa","hotpink":"rosa fúcsia","steelblue":"blau acer","tomato":"tomàquet","lightpink":"rosa clar","limegreen":"verd llimona verda","indianred":"vermell indi","papayawhip":"préssec pastel","lightslategray":"gris pissarra clar","gray":"gris","mediumorchid":"orquídia mitjana","cornsilk":"cru","black":"negre","seagreen":"verd marí","darkslateblue":"blau pissarra fosc","khaki":"caqui","lightblue":"blau clar","palegreen":"verd pàl·lid","azure":"atzur","peachpuff":"préssec","darkolivegreen":"verd oliva fosc","yellowgreen":"verd grogós"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.ca");dijit.nls.loading.ca={"loadingState":"S'està carregant...","errorState":"Ens sap greu. S'ha produït un error."};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.ca");dijit.nls.common.ca={"buttonOk":"D'acord","buttonCancel":"Cancel·la","buttonSave":"Desa","itemClose":"Tanca"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.ca");dijit._editor.nls.commands.ca={"removeFormat":"Elimina el format","copy":"Copia","paste":"Enganxa","selectAll":"Selecciona-ho tot","insertOrderedList":"Llista numerada","insertTable":"Insereix/edita la taula","print":"Imprimeix","underline":"Subratllat","foreColor":"Color de primer pla","htmlToggle":"Font HTML","formatBlock":"Estil de paràgraf","newPage":"Pàgina nova","insertHorizontalRule":"Regle horitzontal","delete":"Suprimeix","insertUnorderedList":"Llista de vinyetes","tableProp":"Propietat de taula","insertImage":"Insereix imatge","superscript":"Superíndex","subscript":"Subíndex","createLink":"Crea un enllaç","undo":"Desfés","fullScreen":"Commuta pantalla completa","italic":"Cursiva","fontName":"Nom del tipus de lletra","justifyLeft":"Alinea a la esquerra","unlink":"Elimina l'enllaç","toggleTableBorder":"Inverteix els contorns de taula","viewSource":"Visualitza font HTML","ctrlKey":"control+${0}","fontSize":"Cos de la lletra","systemShortcut":"L'acció \"${0}\" és l'única disponible al navegador utilitzant una drecera del teclat. Utilitzeu ${1}.","indent":"Sagnat","redo":"Refés","strikethrough":"Ratllat","justifyFull":"Justifica","justifyCenter":"Centra","hiliteColor":"Color de fons","deleteTable":"Suprimeix la taula","outdent":"Sagna a l'esquerra","cut":"Retalla","plainFormatBlock":"Estil de paràgraf","toggleDir":"Inverteix la direcció","bold":"Negreta","tabIndent":"Sagnat","justifyRight":"Alinea a la dreta","appleKey":"⌘${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.ca");dijit.form.nls.validate.ca={"rangeMessage":"Aquest valor és fora de l'interval","invalidMessage":"El valor introduït no és vàlid","missingMessage":"Aquest valor és necessari"};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.ca");dijit.form.nls.ComboBox.ca={"previousMessage":"Opcions anteriors","nextMessage":"Més opcions"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.ca");dijit._editor.nls.FontChoice.ca={"1":"xx-petit","2":"x-petit","formatBlock":"Format","3":"petit","4":"mitjà","5":"gran","6":"x-gran","7":"xx-gran","fantasy":"Fantasia","serif":"serif","p":"Paràgraf","pre":"Format previ","sans-serif":"sans-serif","fontName":"Tipus de lletra","h1":"Títol","h2":"Subtítol","h3":"Subsubtítol","monospace":"monoespai","fontSize":"Mida","cursive":"Cursiva","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.ca");dijit._editor.nls.LinkDialog.ca={"text":"Descipció:","insertImageTitle":"Propietats de la imatge","set":"Defineix","newWindow":"Finestra nova","topWindow":"Finestra superior","target":"Destinació:","createLinkTitle":"Propietats de l'enllaç","parentWindow":"Finestra pare","currentWindow":"Finestra actual","url":"URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.ca");dojo.cldr.nls.number.ca={"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.ca");dojo.cldr.nls.currency.ca={"HKD_displayName":"dòlar de Hong Kong","CHF_displayName":"franc suís","CAD_displayName":"dòlar canadenc","CNY_displayName":"iuan renmimbi xinès","AUD_displayName":"dòlar australià","JPY_displayName":"ien japonès","USD_displayName":"dòlar dels Estats Units","GBP_displayName":"lliura esterlina britànica","EUR_displayName":"euro","USD_symbol":"US$","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","JPY_symbol":"JP¥","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.ca");dojo.cldr.nls.gregorian.ca={"months-format-narrow":["g","f","m","a","m","j","j","a","s","o","n","d"],"field-weekday":"dia de la setmana","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"E d/M/yyyy","dateFormatItem-MMMEd":"E d MMM","eraNarrow":["aC","dC"],"dateFormat-long":"d MMMM 'de' y","months-format-wide":["de gener","de febrer","de març","d’abril","de maig","de juny","de juliol","d’agost","de setembre","d’octubre","de novembre","de desembre"],"dateFormatItem-EEEd":"EEE d","dayPeriods-format-wide-pm":"p.m.","dateFormat-full":"EEEE d MMMM 'de' y","dateFormatItem-Md":"d/M","field-era":"era","dateFormatItem-yM":"M/yyyy","months-standAlone-wide":["gener","febrer","març","abril","maig","juny","juliol","agost","setembre","octubre","novembre","desembre"],"timeFormat-short":"H:mm","quarters-format-wide":["1r trimestre","2n trimestre","3r trimestre","4t trimestre"],"timeFormat-long":"H:mm:ss z","field-year":"any","dateFormatItem-yMMM":"LLL y","dateFormatItem-yQ":"Q yyyy","field-hour":"hora","months-format-abbr":["de gen.","de febr.","de març","d’abr.","de maig","de juny","de jul.","d’ag.","de set.","d’oct.","de nov.","de des."],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"H:mm:ss zzzz","field-day-relative+0":"avui","field-day-relative+1":"demà","field-day-relative+2":"demà passat","dateFormatItem-H":"H","field-day-relative+3":"d'aquí a tres dies","months-standAlone-abbr":["gen.","febr.","març","abr.","maig","juny","jul.","ag.","set.","oct.","nov.","des."],"quarters-format-abbr":["1T","2T","3T","4T"],"quarters-standAlone-wide":["1r trimestre","2n trimestre","3r trimestre","4t trimestre"],"dateFormatItem-M":"L","days-standAlone-wide":["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"],"dateFormatItem-MMMMd":"d MMMM","timeFormat-medium":"H:mm:ss","dateFormatItem-Hm":"H:mm","quarters-standAlone-abbr":["1T","2T","3T","4T"],"eraAbbr":["aC","dC"],"field-minute":"minut","field-dayperiod":"a.m./p.m.","days-standAlone-abbr":["dg","dl","dt","dc","dj","dv","ds"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"ahir","field-day-relative+-2":"abans d'ahir","field-day-relative+-3":"fa tres dies","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"E d/M","dateFormatItem-yMMMM":"LLLL 'del' y","field-day":"dia","days-format-wide":["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"],"field-zone":"zona","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-y":"y","months-standAlone-narrow":["g","f","m","a","m","j","j","a","s","o","n","d"],"dateFormatItem-hm":"h:mm a","days-format-abbr":["dg.","dl.","dt.","dc.","dj.","dv.","ds."],"eraNames":["aC","dC"],"days-format-narrow":["g","l","t","c","j","v","s"],"field-month":"mes","days-standAlone-narrow":["g","l","t","c","j","v","s"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"a.m.","dateFormatItem-MMMMEd":"E d MMMM","dateFormat-short":"dd/MM/yy","field-second":"segon","dateFormatItem-yMMMEd":"EEE d MMM y","field-week":"setmana","dateFormat-medium":"dd/MM/yyyy","dateFormatItem-mmss":"mm:ss","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-hms":"h:mm:ss a","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"}; diff --git a/lib/dijit/nls/dijit-all_cs.js b/lib/dijit/nls/dijit-all_cs.js new file mode 100644 index 000000000..db73adbcf --- /dev/null +++ b/lib/dijit/nls/dijit-all_cs.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_cs");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.cs");dojo.nls.colors.cs={"lightsteelblue":"světlá ocelová modrá","orangered":"oranžovočervená","midnightblue":"temně modrá","cadetblue":"šedomodrá","seashell":"lasturová","slategrey":"břidlicová šedá","coral":"korálová červená","darkturquoise":"tmavě tyrkysová","antiquewhite":"krémově bílá","mediumspringgreen":"střední jarní zelená","salmon":"lososová","darkgrey":"tmavě šedá","ivory":"slonovinová","greenyellow":"zelenožlutá","mistyrose":"růžovobílá","lightsalmon":"světle lososová","silver":"stříbrná","dimgrey":"kouřově šedá","orange":"oranžová","white":"bílá","navajowhite":"světle krémová","royalblue":"královská modrá","deeppink":"sytě růžová","lime":"limetková","oldlace":"světle béžová","chartreuse":"chartreuska","darkcyan":"tmavě azurová","yellow":"žlutá","linen":"bledě šedobéžová","olive":"olivová","gold":"zlatá","lawngreen":"jasně zelená","lightyellow":"bledě žlutá","tan":"šedobéžová","darkviolet":"tmavě fialová","lightslategrey":"světlá břidlicová šedá","grey":"šedá","darkkhaki":"pískově hnědá","green":"zelená","deepskyblue":"sytá nebeská modrá","aqua":"azurová","sienna":"siena","mintcream":"mentolová","rosybrown":"růžovohnědá","mediumslateblue":"střední břidlicová modrá","magenta":"purpurová","lightseagreen":"světlá mořská zelená","cyan":"azurová","olivedrab":"khaki","darkgoldenrod":"tmavě béžová","slateblue":"břidlicová modrá","mediumaquamarine":"střední akvamarínová","lavender":"levandulová","mediumseagreen":"střední mořská zelená","maroon":"kaštanová","darkslategray":"tmavá břidlicová šedá","mediumturquoise":"středně tyrkysová","ghostwhite":"modravě bílá","darkblue":"tmavě modrá","mediumvioletred":"středně fialovočervená","brown":"červenohnědá","lightgray":"světle šedá","sandybrown":"oranžovohnědá","pink":"růžová","firebrick":"cihlová","indigo":"indigově modrá","snow":"sněhobílá","darkorchid":"tmavě orchidejová","turquoise":"tyrkysová","chocolate":"hnědobéžová","springgreen":"jarní zelená","moccasin":"bledě krémová","navy":"námořnická modrá","lemonchiffon":"světle citrónová","teal":"šedozelená","floralwhite":"květinově bílá","cornflowerblue":"chrpově modrá","paleturquoise":"bledě tyrkysová","purple":"nachová","gainsboro":"bledě šedá","plum":"švestková","red":"červená","blue":"modrá","forestgreen":"lesní zelená","darkgreen":"tmavě zelená","honeydew":"nazelenalá","darkseagreen":"tmavá mořská zelená","lightcoral":"světle korálová","palevioletred":"bledě fialovočervená","mediumpurple":"středně nachová","saddlebrown":"hnědá","darkmagenta":"tmavě purpurová","thistle":"bodláková","whitesmoke":"kouřově bílá","wheat":"zlatohnědá","violet":"fialová","lightskyblue":"světlá nebeská modrá","goldenrod":"béžová","mediumblue":"středně modrá","skyblue":"nebeská modrá","crimson":"karmínová","darksalmon":"tmavě lososová","darkred":"tmavě červená","darkslategrey":"tmavá břidlicová šedá","peru":"karamelová","lightgrey":"světle šedá","lightgoldenrodyellow":"světle žlutá","blanchedalmond":"mandlová","aliceblue":"modravá","bisque":"bledě oranžová","slategray":"břidlicová šedá","palegoldenrod":"bledě písková","darkorange":"tmavě oranžová","aquamarine":"akvamarínová","lightgreen":"světle zelená","burlywood":"krémová","dodgerblue":"jasně modrá","darkgray":"tmavě šedá","lightcyan":"světle azurová","powderblue":"bledě modrá","blueviolet":"modrofialová","orchid":"orchidejová","dimgray":"kouřově šedá","beige":"bledě béžová","fuchsia":"fuchsiová","lavenderblush":"levandulová růžová","hotpink":"jasně růžová","steelblue":"ocelová modrá","tomato":"tomatová","lightpink":"světle růžová","limegreen":"limetkově zelená","indianred":"indiánská červená","papayawhip":"papájová","lightslategray":"světlá břidlicová šedá","gray":"šedá","mediumorchid":"středně orchidejová","cornsilk":"režná","black":"černá","seagreen":"mořská zelená","darkslateblue":"tmavá břidlicová modrá","khaki":"písková","lightblue":"světle modrá","palegreen":"bledě zelená","azure":"bledě azurová","peachpuff":"broskvová","darkolivegreen":"tmavě olivová","yellowgreen":"žlutozelená"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.cs");dijit.nls.loading.cs={"loadingState":"Probíhá načítání...","errorState":"Omlouváme se, došlo k chybě"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.cs");dijit.nls.common.cs={"buttonOk":"OK","buttonCancel":"Storno","buttonSave":"Uložit","itemClose":"Zavřít"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.cs");dijit._editor.nls.commands.cs={"removeFormat":"Odebrat formát","copy":"Kopírovat","paste":"Vložit","selectAll":"Vybrat vše","insertOrderedList":"Číslovaný seznam","insertTable":"Vložit/upravit tabulku","print":"Tisk","underline":"Podtržení","foreColor":"Barva popředí","htmlToggle":"Zdroj HTML","formatBlock":"Styl odstavce","newPage":"Nová stránka","insertHorizontalRule":"Vodorovná čára","delete":"Odstranit","insertUnorderedList":"Seznam s odrážkami","tableProp":"Vlastnost tabulky","insertImage":"Vložit obrázek","superscript":"Horní index","subscript":"Dolní index","createLink":"Vytvořit odkaz","undo":"Zpět","fullScreen":"Přepnout režim celé obrazovky","italic":"Kurzíva","fontName":"Název písma","justifyLeft":"Zarovnat vlevo","unlink":"Odebrat odkaz","toggleTableBorder":"Přepnout ohraničení tabulky","viewSource":"Zobrazit zdroj ve formátu HTML","fontSize":"Velikost písma","systemShortcut":"Akce \"${0}\" je v prohlížeči dostupná pouze prostřednictvím klávesové zkratky. Použijte klávesovou zkratku ${1}.","indent":"Odsadit","redo":"Opakovat","strikethrough":"Přeškrtnutí","justifyFull":"Do bloku","justifyCenter":"Zarovnat na střed","hiliteColor":"Barva pozadí","deleteTable":"Odstranit tabulku","outdent":"Předsadit","cut":"Vyjmout","plainFormatBlock":"Styl odstavce","toggleDir":"Přepnout směr","bold":"Tučné","tabIndent":"Odsazení tabulátoru","justifyRight":"Zarovnat vpravo","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.cs");dijit.form.nls.validate.cs={"rangeMessage":"Tato hodnota je mimo rozsah.","invalidMessage":"Zadaná hodnota není platná.","missingMessage":"Tato hodnota je vyžadována."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.cs");dijit.form.nls.ComboBox.cs={"previousMessage":"Předchozí volby","nextMessage":"Další volby"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.cs");dijit._editor.nls.FontChoice.cs={"1":"extra malé","2":"velmi malé","formatBlock":"Formát","3":"malé","4":"střední","5":"velké","6":"velmi velké","7":"extra velké","fantasy":"fantasy","serif":"serif","p":"Odstavec","pre":"Předformátované","sans-serif":"sans-serif","fontName":"Písmo","h1":"Nadpis","h2":"Podnadpis","h3":"Podnadpis 2","monospace":"monospace","fontSize":"Velikost","cursive":"cursive","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.cs");dijit._editor.nls.LinkDialog.cs={"text":"Popis:","insertImageTitle":"Vlastnosti obrázku","set":"Nastavit","newWindow":"Nové okno","topWindow":"Okno nejvyšší úrovně","target":"Cíl:","createLinkTitle":"Vlastnosti odkazu","parentWindow":"Nadřízené okno","currentWindow":"Aktuální okno","url":"Adresa URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.cs");dojo.cldr.nls.number.cs={"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.cs");dojo.cldr.nls.currency.cs={"HKD_displayName":"Dolar hongkongský","CHF_displayName":"Frank švýcarský","CAD_displayName":"Dolar kanadský","CNY_displayName":"Juan renminbi","AUD_displayName":"Dolar australský","JPY_displayName":"Jen","USD_displayName":"Dolar americký","GBP_displayName":"Libra šterlinků","EUR_displayName":"Euro","USD_symbol":"US$","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","JPY_symbol":"JP¥","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.cs");dojo.cldr.nls.gregorian.cs={"dayPeriods-format-wide-pm":"odp.","eraNames":["př.Kr.","po Kr."],"field-day-relative+-1":"Včera","field-day-relative+-2":"Předevčírem","days-standAlone-wide":["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"],"months-standAlone-narrow":["l","ú","b","d","k","č","č","s","z","ř","l","p"],"dayPeriods-format-wide-am":"dop.","quarters-standAlone-abbr":["1. čtvrtletí","2. čtvrtletí","3. čtvrtletí","4. čtvrtletí"],"timeFormat-full":"H:mm:ss zzzz","months-standAlone-abbr":["1.","2.","3.","4.","5.","6.","7.","8.","9.","10.","11.","12."],"field-day-relative+0":"Dnes","field-day-relative+1":"Zítra","days-standAlone-narrow":["N","P","Ú","S","Č","P","S"],"eraAbbr":["př.Kr.","po Kr."],"field-day-relative+2":"Pozítří","dateFormat-long":"d. MMMM y","timeFormat-medium":"H:mm:ss","dateFormatItem-Hm":"H:mm","dateFormat-medium":"d.M.yyyy","dateFormatItem-Hms":"H:mm:ss","quarters-standAlone-wide":["1. čtvrtletí","2. čtvrtletí","3. čtvrtletí","4. čtvrtletí"],"months-standAlone-wide":["leden","únor","březen","duben","květen","červen","červenec","srpen","září","říjen","listopad","prosinec"],"timeFormat-long":"H:mm:ss z","months-format-abbr":["ledna","února","března","dubna","května","června","července","srpna","září","října","listopadu","prosince"],"timeFormat-short":"H:mm","dateFormatItem-H":"H","quarters-format-abbr":["1. čtvrtletí","2. čtvrtletí","3. čtvrtletí","4. čtvrtletí"],"days-format-abbr":["ne","po","út","st","čt","pá","so"],"days-format-narrow":["N","P","Ú","S","Č","P","S"],"months-format-narrow":["l","ú","b","d","k","č","č","s","z","ř","l","p"],"days-standAlone-abbr":["ne","po","út","st","čt","pá","so"],"dateFormat-short":"d.M.yy","dateFormat-full":"EEEE, d. MMMM y","months-format-wide":["ledna","února","března","dubna","května","června","července","srpna","září","října","listopadu","prosince"],"quarters-format-wide":["1. čtvrtletí","2. čtvrtletí","3. čtvrtletí","4. čtvrtletí"],"days-format-wide":["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"],"eraNarrow":["př.Kr.","po Kr."],"quarters-standAlone-narrow":["1","2","3","4"],"field-weekday":"Day of the Week","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"EEE, y-M-d","dateFormatItem-MMMEd":"E MMM d","dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dateFormatItem-Md":"M-d","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","field-era":"Era","dateFormatItem-yM":"y-M","field-year":"Year","dateFormatItem-yMMM":"y MMM","dateFormatItem-yQ":"y Q","dateTimeFormats-appendItem-Era":"{0} {1}","field-hour":"Hour","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-M":"L","field-minute":"Minute","field-dayperiod":"Dayperiod","dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateFormatItem-MMMd":"MMM d","dateFormatItem-MEd":"E, M-d","dateTimeFormat-full":"{1} {0}","field-day":"Day","field-zone":"Zone","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-y":"y","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateFormatItem-MMM":"LLL","field-month":"Month","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","field-second":"Second","dateFormatItem-yMMMEd":"EEE, y MMM d","dateTimeFormats-appendItem-Timezone":"{0} {1}","field-week":"Week","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-hms":"h:mm:ss a"}; diff --git a/lib/dijit/nls/dijit-all_da.js b/lib/dijit/nls/dijit-all_da.js new file mode 100644 index 000000000..a87e64a46 --- /dev/null +++ b/lib/dijit/nls/dijit-all_da.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_da");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.da");dojo.nls.colors.da={"lightsteelblue":"lys stålblå","orangered":"orangerød","midnightblue":"midnatsblå","cadetblue":"kadetblå","seashell":"muslingeskal","slategrey":"skifergrå","coral":"koralrød","darkturquoise":"mørk turkis","antiquewhite":"antikhvid","mediumspringgreen":"mellemforårsgrøn","salmon":"laksefarvet","darkgrey":"mørkegrå","ivory":"elfenben","greenyellow":"grøngul","mistyrose":"blegrosa","lightsalmon":"lys laksefarvet","silver":"sølv","dimgrey":"svag grå","orange":"orange","white":"hvid","navajowhite":"navajo-hvid","royalblue":"kongeblå","deeppink":"dyb pink","lime":"lime","oldlace":"kniplingshvid","chartreuse":"chartreuse","darkcyan":"mørk cyan","yellow":"gul","linen":"lærred","olive":"olivengrøn","gold":"guld","lawngreen":"græsgrøn","lightyellow":"lysegul","tan":"tan","darkviolet":"mørkelilla","lightslategrey":"lys skifergrå","grey":"grå","darkkhaki":"mørk khaki","green":"grøn","deepskyblue":"dyb himmelblå","aqua":"akvablå","sienna":"sienna","mintcream":"pebermyntecreme","rosybrown":"rosabrun","mediumslateblue":"mellemskiferblå","magenta":"magenta","lightseagreen":"lys havgrøn","cyan":"cyan","olivedrab":"brungrøn","darkgoldenrod":"mørk gyldenris","slateblue":"skiferblå","mediumaquamarine":"mellem akvamarin","lavender":"lysviolet","mediumseagreen":"mellemhavgrøn","maroon":"rødbrun","darkslategray":"mørk skifergrå","mediumturquoise":"mellemturkis","ghostwhite":"spøgelseshvid","darkblue":"mørkeblå","mediumvioletred":"mellemviolet","brown":"brun","lightgray":"lysegrå","sandybrown":"sandbrun","pink":"pink","firebrick":"chamottesten","indigo":"indigo","snow":"sne","darkorchid":"mørk orkide","turquoise":"turkis","chocolate":"rust","springgreen":"forårsgrøn","moccasin":"fruesko","navy":"marineblå","lemonchiffon":"citronfromage","teal":"blågrøn","floralwhite":"blomsterhvid","cornflowerblue":"kornblomstblå","paleturquoise":"bleg turkis","purple":"lilla","gainsboro":"gainsboro","plum":"blomme","red":"rød","blue":"blå","forestgreen":"skovgrøn","darkgreen":"mørkegrøn","honeydew":"honningdug","darkseagreen":"mørk havgrøn","lightcoral":"lys koralrød","palevioletred":"blegviolet","mediumpurple":"mellemlilla","saddlebrown":"saddelbrun","darkmagenta":"mørk magenta","thistle":"tidsel","whitesmoke":"hvid røg","wheat":"korngul","violet":"lilla","lightskyblue":"lys himmelblå","goldenrod":"gyldenris","mediumblue":"mellemblå","skyblue":"himmelblå","crimson":"blodrød","darksalmon":"mørk laksefarvet","darkred":"mørkerød","darkslategrey":"mørk skifergrå","peru":"peru","lightgrey":"lysegrå","lightgoldenrodyellow":"lys gyldenrisgul","blanchedalmond":"blanceret mandel","aliceblue":"babyblå","bisque":"gulgrå","slategray":"skifergrå","palegoldenrod":"bleg gyldenris","darkorange":"mørk orange","aquamarine":"akvamarin","lightgreen":"lysegrøn","burlywood":"tobak","dodgerblue":"dodgerblå","darkgray":"mørkegrå","lightcyan":"lys cyan","powderblue":"pudderblå","blueviolet":"blåviolet","orchid":"orkide","dimgray":"svag grå","beige":"beige","fuchsia":"lyslilla","lavenderblush":"lavendelrød","hotpink":"mørk rosa","steelblue":"metalblå","tomato":"tomat","lightpink":"lys pink","limegreen":"limegrøn","indianred":"lys rødbrun","papayawhip":"papaya","lightslategray":"lys skifergrå","gray":"grå","mediumorchid":"mellem orkide","cornsilk":"majs","black":"sort","seagreen":"havgrøn","darkslateblue":"mørk skiferblå","khaki":"khaki","lightblue":"lyseblå","palegreen":"bleggrøn","azure":"azurblå","peachpuff":"fersken","darkolivegreen":"mørk olivengrøn","yellowgreen":"gulgrøn"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.da");dijit.nls.loading.da={"loadingState":"Indlæser...","errorState":"Der er opstået en fejl"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.da");dijit.nls.common.da={"buttonOk":"OK","buttonCancel":"Annullér","buttonSave":"Gem","itemClose":"Luk"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.da");dijit._editor.nls.commands.da={"removeFormat":"Fjern format","copy":"Kopiér","paste":"Sæt ind","selectAll":"Markér alle","insertOrderedList":"Nummereret liste","insertTable":"Indsæt/redigér tabel","print":"Udskriv","underline":"Understreget","foreColor":"Forgrundsfarve","htmlToggle":"HTML-kilde","formatBlock":"Afsnitstypografi","newPage":"Ny side","insertHorizontalRule":"Vandret linje","delete":"Slet","insertUnorderedList":"Punktliste","tableProp":"Tabelegenskab","insertImage":"Indsæt billede","superscript":"Hævet skrift","subscript":"Sænket skrift","createLink":"Opret link","undo":"Fortryd","fullScreen":"Aktivér/deaktivér fuldskærm","italic":"Kursiv","fontName":"Skriftnavn","justifyLeft":"Venstrejusteret","unlink":"Fjern link","toggleTableBorder":"Skift tabelramme","viewSource":"Vis HTML-kilde","ctrlKey":"Ctrl+${0}","fontSize":"Skriftstørrelse","systemShortcut":"Funktionen \"${0}\" kan kun bruges i din browser med en tastaturgenvej. Brug ${1}.","indent":"Indrykning","redo":"Annullér Fortryd","strikethrough":"Gennemstreget","justifyFull":"Lige margener","justifyCenter":"Centreret","hiliteColor":"Baggrundsfarve","deleteTable":"Slet tabel","outdent":"Udrykning","cut":"Klip","plainFormatBlock":"Afsnitstypografi","toggleDir":"Skift retning","bold":"Fed","tabIndent":"Indrykning med tabulator","justifyRight":"Højrejusteret","appleKey":"⌘${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.da");dijit.form.nls.validate.da={"rangeMessage":"Værdien er uden for intervallet.","invalidMessage":"Den angivne værdi er ugyldig.","missingMessage":"Værdien er påkrævet."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.da");dijit.form.nls.ComboBox.da={"previousMessage":"Forrige valg","nextMessage":"Flere valg"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.da");dijit._editor.nls.FontChoice.da={"1":"xx-small","2":"x-small","formatBlock":"Format","3":"small","4":"medium","5":"large","6":"x-large","7":"xx-large","fantasy":"fantasy","serif":"serif","p":"Afsnit","pre":"Forudformateret","sans-serif":"sans-serif","fontName":"Skrifttype","h1":"Overskrift","h2":"Underoverskrift","h3":"Underunderoverskrift","monospace":"monospace","fontSize":"Størrelse","cursive":"kursiv","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.da");dijit._editor.nls.LinkDialog.da={"text":"Beskrivelse:","insertImageTitle":"Billedegenskaber","set":"Definér","newWindow":"Nyt vindue","topWindow":"Øverste vindue","target":"Mål:","createLinkTitle":"Linkegenskaber","parentWindow":"Overordnet vindue","currentWindow":"Aktuelt vindue","url":"URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.da");dojo.cldr.nls.number.da={"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":",","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.da");dojo.cldr.nls.currency.da={"HKD_displayName":"Hongkong dollar","CHF_displayName":"Schweizisk franc","CAD_displayName":"Canadisk dollar","CNY_displayName":"Kinesisk yuan renminbi","USD_symbol":"$","AUD_displayName":"Australsk dollar","JPY_displayName":"Japansk yen","USD_displayName":"Amerikansk dollar","GBP_displayName":"Britisk pund","EUR_displayName":"Euro","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","JPY_symbol":"JP¥","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.da");dojo.cldr.nls.gregorian.da={"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-weekday":"ugedag","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE. d/M/y","dateFormatItem-MMMEd":"E d MMM","eraNarrow":["f.Kr.","e.Kr."],"dateFormat-long":"d. MMM y","months-format-wide":["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"],"dayPeriods-format-wide-pm":"e.m.","dateFormat-full":"EEEE 'den' d. MMMM y","dateFormatItem-Md":"d/M","field-era":"æra","dateFormatItem-yM":"M/y","months-standAlone-wide":["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"],"timeFormat-short":"HH.mm","quarters-format-wide":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"timeFormat-long":"HH.mm.ss z","field-year":"år","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q yyyy","field-hour":"time","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["jan.","feb.","mar.","apr.","maj","jun.","jul.","aug.","sep.","okt.","nov.","dec."],"dateFormatItem-yyQ":"Q. 'kvartal' yy","timeFormat-full":"HH.mm.ss zzzz","field-day-relative+0":"i dag","field-day-relative+1":"i morgen","field-day-relative+2":"i overmorgen","dateFormatItem-H":"HH","field-day-relative+3":"i overovermorgen","months-standAlone-abbr":["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],"quarters-format-abbr":["K1","K2","K3","K4"],"quarters-standAlone-wide":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"dateFormatItem-M":"M","days-standAlone-wide":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"dateFormatItem-yyyyMMM":"MMM y","dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH.mm.ss","dateFormatItem-Hm":"HH.mm","quarters-standAlone-abbr":["K1","K2","K3","K4"],"eraAbbr":["f.Kr.","e.Kr."],"field-minute":"minut","field-dayperiod":"dagtid","days-standAlone-abbr":["søn","man","tir","ons","tor","fre","lør"],"dateFormatItem-d":"d.","dateFormatItem-ms":"mm.ss","field-day-relative+-1":"i går","field-day-relative+-2":"i forgårs","field-day-relative+-3":"i forforgårs","dateFormatItem-MMMd":"d. MMM","dateFormatItem-MEd":"E. d/M","field-day":"dag","days-format-wide":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"field-zone":"zone","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-yyMM":"MM/yy","dateFormatItem-hm":"h.mm a","days-format-abbr":["søn","man","tir","ons","tor","fre","lør"],"eraNames":["f.Kr.","e.Kr."],"days-format-narrow":["S","M","T","O","T","F","L"],"field-month":"måned","days-standAlone-narrow":["S","M","T","O","T","F","L"],"dateFormatItem-MMM":"MMM","dayPeriods-format-wide-am":"f.m.","dateFormatItem-MMMMEd":"E, d. MMMM","dateFormat-short":"dd/MM/yy","field-second":"sekund","dateFormatItem-yMMMEd":"EEE. d. MMM y","field-week":"uge","dateFormat-medium":"dd/MM/yyyy","dateFormatItem-Hms":"HH.mm.ss","dateFormatItem-hms":"h.mm.ss a","dateFormatItem-yyyy":"y","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"}; diff --git a/lib/dijit/nls/dijit-all_de-de.js b/lib/dijit/nls/dijit-all_de-de.js new file mode 100644 index 000000000..7af3dd8c8 --- /dev/null +++ b/lib/dijit/nls/dijit-all_de-de.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_de-de");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.de_de");dojo.nls.colors.de_de={"lightsteelblue":"Helles Stahlblau","orangered":"Orangerot","midnightblue":"Mitternachtblau","cadetblue":"Kadettenblau","seashell":"Muschelweiß","slategrey":"Schiefergrau","coral":"Koralle","darkturquoise":"Dunkeltürkis","antiquewhite":"Antikweiß","mediumspringgreen":"Mittelfrühlingsgrün","salmon":"Lachs","darkgrey":"Dunkelgrau","ivory":"Elfenbein","greenyellow":"Grüngelb","mistyrose":"Blassrose","lightsalmon":"Helllachs","silver":"Silbergrau","dimgrey":"Blassgrau","orange":"Orange","white":"Weiß","navajowhite":"Navajo-weiß","royalblue":"Königsblau","deeppink":"Tiefrosa","lime":"Limone","oldlace":"Alte Spitze","chartreuse":"Helles Gelbgrün","darkcyan":"Dunkelzyan","yellow":"Gelb","linen":"Leinen","olive":"Oliv","gold":"Gold","lawngreen":"Grasgrün","lightyellow":"Hellgelb","tan":"Hautfarben","darkviolet":"Dunkelviolett","lightslategrey":"Helles Schiefergrau","grey":"Grau","darkkhaki":"Dunkelkhaki","green":"Grün","deepskyblue":"Dunkles Himmelblau","aqua":"Wasserblau","sienna":"Sienna","mintcream":"Mintcreme","rosybrown":"Rosigbraun","mediumslateblue":"Mittelschieferblau ","magenta":"Magenta","lightseagreen":"Helles Meergrün","cyan":"Zyan","olivedrab":"Olivgrau","darkgoldenrod":"Dunkelgoldgelb","slateblue":"Schieferblau","mediumaquamarine":"Mittelaquamarin","lavender":"Lavendelblau","mediumseagreen":"Mittelmeeresgrün","maroon":"Kastanienbraun","darkslategray":"Dunkelschiefergrau","mediumturquoise":"Mitteltürkis ","ghostwhite":"Geisterweiß","darkblue":"Dunkelblau","mediumvioletred":"Mittelviolettrot ","brown":"Braun","lightgray":"Hellgrau","sandybrown":"Sandbraun","pink":"Rosa","firebrick":"Schamottestein","indigo":"Indigoblau","snow":"Schneeweiß","darkorchid":"Dunkelorchidee","turquoise":"Türkis","chocolate":"Schokoladenbraun","springgreen":"Frühlingsgrün","moccasin":"Mokassin","navy":"Marineblau","lemonchiffon":"Zitronenchiffon","teal":"Smaragdgrün","floralwhite":"Blütenweiß","cornflowerblue":"Kornblumenblau","paleturquoise":"Blasstürkis","purple":"Purpurrot","gainsboro":"Gainsboro","plum":"Pflaume","red":"Rot","blue":"Blau","forestgreen":"Forstgrün","darkgreen":"Dunkelgrün","honeydew":"Honigtau","darkseagreen":"Dunkles Meergrün","lightcoral":"Hellkoralle","palevioletred":"Blassviolettrot ","mediumpurple":"Mittelpurpur","saddlebrown":"Sattelbraun","darkmagenta":"Dunkelmagenta","thistle":"Distel","whitesmoke":"Rauchweiß","wheat":"Weizen","violet":"Violett","lightskyblue":"Helles Himmelblau","goldenrod":"Goldgelb","mediumblue":"Mittelblau","skyblue":"Himmelblau","crimson":"Karmesinrot","darksalmon":"Dunkellachs","darkred":"Dunkelrot","darkslategrey":"Dunkelschiefergrau","peru":"Peru","lightgrey":"Hellgrau","lightgoldenrodyellow":"Hellgoldgelb","blanchedalmond":"Mandelweiß","aliceblue":"Alice-blau","bisque":"Bisquit","slategray":"Schiefergrau","palegoldenrod":"Blassgoldgelb","darkorange":"Dunkelorange","aquamarine":"Aquamarin","lightgreen":"Hellgrün","burlywood":"Burlywood","dodgerblue":"Dodger-blau","darkgray":"Dunkelgrau","lightcyan":"Hellzyan","powderblue":"Pulverblau","blueviolet":"Blauviolett","orchid":"Orchidee","dimgray":"Blassgrau","beige":"Beige","fuchsia":"Fuchsia","lavenderblush":"Lavendelhauch","hotpink":"Knallrosa","steelblue":"Stahlblau","tomato":"Tomatenrot","lightpink":"Hellrosa","limegreen":"Limonengrün","indianred":"Indischrot","papayawhip":"Papayacreme","lightslategray":"Helles Schiefergrau","gray":"Grau","mediumorchid":"Mittelorchidee","cornsilk":"Kornseide","black":"Schwarz","seagreen":"Meeresgrün","darkslateblue":"Dunkelschieferblau","khaki":"Khaki","lightblue":"Hellblau","palegreen":"Blassgrün","azure":"Azur","peachpuff":"Pfirsich","darkolivegreen":"Dunkelolivgrün","yellowgreen":"Gelbgrün"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.de_de");dijit.nls.loading.de_de={"loadingState":"Wird geladen...","errorState":"Es ist ein Fehler aufgetreten."};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.de_de");dijit.nls.common.de_de={"buttonOk":"OK","buttonCancel":"Abbrechen","buttonSave":"Speichern","itemClose":"Schließen"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.de_de");dijit._editor.nls.commands.de_de={"removeFormat":"Formatierung entfernen","copy":"Kopieren","paste":"Einfügen","selectAll":"Alles auswählen","insertOrderedList":"Nummerierung","insertTable":"Tabelle einfügen/bearbeiten","print":"Drucken","underline":"Unterstrichen","foreColor":"Vordergrundfarbe","htmlToggle":"HTML-Quelltext","formatBlock":"Absatzstil","newPage":"Neue Seite","insertHorizontalRule":"Horizontaler Strich","delete":"Löschen","insertUnorderedList":"Aufzählungszeichen","tableProp":"Tabelleneigenschaft","insertImage":"Grafik einfügen","superscript":"Hochgestellt","subscript":"Tiefgestellt","createLink":"Link erstellen","undo":"Rückgängig","fullScreen":"Gesamtanzeige","italic":"Kursiv","fontName":"Schriftartname","justifyLeft":"Linksbündig","unlink":"Link entfernen","toggleTableBorder":"Tabellenumrandung ein-/ausschalten","viewSource":"HTML-Quelle","ctrlKey":"Strg+${0}","fontSize":"Schriftgröße","systemShortcut":"Die Aktion \"${0}\" ist nur über einen Direktaufruf in Ihrem Browser verfügbar. Verwenden Sie ${1}.","indent":"Einrücken","redo":"Wiederherstellen","strikethrough":"Durchgestrichen","justifyFull":"Blocksatz","justifyCenter":"Zentriert","hiliteColor":"Hintergrundfarbe","deleteTable":"Tabelle löschen","outdent":"Ausrücken","cut":"Ausschneiden","plainFormatBlock":"Absatzstil","toggleDir":"Wechselrichtung","bold":"Fett","tabIndent":"Tabulatoreinrückung","justifyRight":"Rechtsbündig","appleKey":"⌘${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.de_de");dijit.form.nls.validate.de_de={"rangeMessage":"Dieser Wert liegt außerhalb des gültigen Bereichs. ","invalidMessage":"Der eingegebene Wert ist ungültig. ","missingMessage":"Dieser Wert ist erforderlich."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.de_de");dijit.form.nls.ComboBox.de_de={"previousMessage":"Vorherige Auswahl","nextMessage":"Weitere Auswahlmöglichkeiten"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.de_de");dijit._editor.nls.FontChoice.de_de={"1":"XXS","2":"XS","formatBlock":"Format","3":"S","4":"M","5":"L","6":"XL","7":"XXL","fantasy":"Fantasie","serif":"Serife","p":"Absatz","pre":"Vorformatiert","sans-serif":"Serifenlos","fontName":"Schriftart","h1":"Überschrift","h2":"Unterüberschrift","h3":"Unterunterüberschrift","monospace":"Monospaceschrift","fontSize":"Größe","cursive":"Kursiv","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.de_de");dijit._editor.nls.LinkDialog.de_de={"text":"Beschreibung:","insertImageTitle":"Grafikeigenschaften","set":"Festlegen","newWindow":"Neues Fenster","topWindow":"Aktives Fenster","target":"Ziel:","createLinkTitle":"Linkeigenschaften","parentWindow":"Übergeordnetes Fenster","currentWindow":"Aktuelles Fenster","url":"URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.de_de");dojo.cldr.nls.number.de_de={"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.de_de");dojo.cldr.nls.currency.de_de={"HKD_displayName":"Hongkong-Dollar","CHF_displayName":"Schweizer Franken","JPY_symbol":"¥","CAD_displayName":"Kanadischer Dollar","CNY_displayName":"Renminbi Yuan","USD_symbol":"$","AUD_displayName":"Australischer Dollar","JPY_displayName":"Yen","USD_displayName":"US-Dollar","GBP_displayName":"Pfund Sterling","EUR_displayName":"Euro","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.de_de");dojo.cldr.nls.gregorian.de_de={"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-weekday":"Wochentag","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE, d.M.y","dateFormatItem-MMMEd":"E d. MMM","eraNarrow":["v. Chr.","n. Chr."],"dayPeriods-format-wide-earlyMorning":"morgens","dayPeriods-format-wide-morning":"vormittags","dateFormat-long":"d. MMMM y","months-format-wide":["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],"dayPeriods-format-wide-evening":"abends","dateFormatItem-EEEd":"d. EEE","dayPeriods-format-wide-pm":"nachm.","dateFormat-full":"EEEE, d. MMMM y","dateFormatItem-Md":"d.M.","dateFormatItem-yyMMdd":"dd.MM.yy","dayPeriods-format-wide-noon":"Mittag","field-era":"Epoche","dateFormatItem-yM":"M.y","months-standAlone-wide":["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],"timeFormat-short":"HH:mm","quarters-format-wide":["1. Quartal","2. Quartal","3. Quartal","4. Quartal"],"timeFormat-long":"HH:mm:ss z","field-year":"Jahr","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q y","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"Stunde","dateFormatItem-MMdd":"dd.MM.","months-format-abbr":["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"heute","field-day-relative+1":"morgen","field-day-relative+2":"übermorgen","dateFormatItem-H":"HH","field-day-relative+3":"überübermorgen","months-standAlone-abbr":["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],"quarters-format-abbr":["Q1","Q2","Q3","Q4"],"quarters-standAlone-wide":["1. Quartal","2. Quartal","3. Quartal","4. Quartal"],"dateFormatItem-M":"L","days-standAlone-wide":["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],"dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","eraAbbr":["v. Chr.","n. Chr."],"field-minute":"Minute","field-dayperiod":"Tageshälfte","days-standAlone-abbr":["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],"dayPeriods-format-wide-night":"nachts","dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"gestern","field-day-relative+-2":"vorgestern","field-day-relative+-3":"vorvorgestern","dateFormatItem-MMMd":"d. MMM","dateFormatItem-MEd":"E, d.M.","field-day":"Tag","days-format-wide":["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],"field-zone":"Zone","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-yyMM":"MM.yy","days-format-abbr":["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],"eraNames":["v. Chr.","n. Chr."],"days-format-narrow":["S","M","D","M","D","F","S"],"field-month":"Monat","days-standAlone-narrow":["S","M","D","M","D","F","S"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"vorm.","dateFormatItem-MMMMdd":"dd. MMMM","dateFormat-short":"dd.MM.yy","dateFormatItem-MMd":"d.MM.","dayPeriods-format-wide-afternoon":"nachmittags","field-second":"Sekunde","dateFormatItem-yMMMEd":"EEE, d. MMM y","dateFormatItem-Ed":"E d.","field-week":"Woche","dateFormat-medium":"dd.MM.yyyy","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-yyyy":"y","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-hms":"h:mm:ss a"}; diff --git a/lib/dijit/nls/dijit-all_de.js b/lib/dijit/nls/dijit-all_de.js new file mode 100644 index 000000000..196dbf358 --- /dev/null +++ b/lib/dijit/nls/dijit-all_de.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_de");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.de");dojo.nls.colors.de={"lightsteelblue":"Helles Stahlblau","orangered":"Orangerot","midnightblue":"Mitternachtblau","cadetblue":"Kadettenblau","seashell":"Muschelweiß","slategrey":"Schiefergrau","coral":"Koralle","darkturquoise":"Dunkeltürkis","antiquewhite":"Antikweiß","mediumspringgreen":"Mittelfrühlingsgrün","salmon":"Lachs","darkgrey":"Dunkelgrau","ivory":"Elfenbein","greenyellow":"Grüngelb","mistyrose":"Blassrose","lightsalmon":"Helllachs","silver":"Silbergrau","dimgrey":"Blassgrau","orange":"Orange","white":"Weiß","navajowhite":"Navajo-weiß","royalblue":"Königsblau","deeppink":"Tiefrosa","lime":"Limone","oldlace":"Alte Spitze","chartreuse":"Helles Gelbgrün","darkcyan":"Dunkelzyan","yellow":"Gelb","linen":"Leinen","olive":"Oliv","gold":"Gold","lawngreen":"Grasgrün","lightyellow":"Hellgelb","tan":"Hautfarben","darkviolet":"Dunkelviolett","lightslategrey":"Helles Schiefergrau","grey":"Grau","darkkhaki":"Dunkelkhaki","green":"Grün","deepskyblue":"Dunkles Himmelblau","aqua":"Wasserblau","sienna":"Sienna","mintcream":"Mintcreme","rosybrown":"Rosigbraun","mediumslateblue":"Mittelschieferblau ","magenta":"Magenta","lightseagreen":"Helles Meergrün","cyan":"Zyan","olivedrab":"Olivgrau","darkgoldenrod":"Dunkelgoldgelb","slateblue":"Schieferblau","mediumaquamarine":"Mittelaquamarin","lavender":"Lavendelblau","mediumseagreen":"Mittelmeeresgrün","maroon":"Kastanienbraun","darkslategray":"Dunkelschiefergrau","mediumturquoise":"Mitteltürkis ","ghostwhite":"Geisterweiß","darkblue":"Dunkelblau","mediumvioletred":"Mittelviolettrot ","brown":"Braun","lightgray":"Hellgrau","sandybrown":"Sandbraun","pink":"Rosa","firebrick":"Schamottestein","indigo":"Indigoblau","snow":"Schneeweiß","darkorchid":"Dunkelorchidee","turquoise":"Türkis","chocolate":"Schokoladenbraun","springgreen":"Frühlingsgrün","moccasin":"Mokassin","navy":"Marineblau","lemonchiffon":"Zitronenchiffon","teal":"Smaragdgrün","floralwhite":"Blütenweiß","cornflowerblue":"Kornblumenblau","paleturquoise":"Blasstürkis","purple":"Purpurrot","gainsboro":"Gainsboro","plum":"Pflaume","red":"Rot","blue":"Blau","forestgreen":"Forstgrün","darkgreen":"Dunkelgrün","honeydew":"Honigtau","darkseagreen":"Dunkles Meergrün","lightcoral":"Hellkoralle","palevioletred":"Blassviolettrot ","mediumpurple":"Mittelpurpur","saddlebrown":"Sattelbraun","darkmagenta":"Dunkelmagenta","thistle":"Distel","whitesmoke":"Rauchweiß","wheat":"Weizen","violet":"Violett","lightskyblue":"Helles Himmelblau","goldenrod":"Goldgelb","mediumblue":"Mittelblau","skyblue":"Himmelblau","crimson":"Karmesinrot","darksalmon":"Dunkellachs","darkred":"Dunkelrot","darkslategrey":"Dunkelschiefergrau","peru":"Peru","lightgrey":"Hellgrau","lightgoldenrodyellow":"Hellgoldgelb","blanchedalmond":"Mandelweiß","aliceblue":"Alice-blau","bisque":"Bisquit","slategray":"Schiefergrau","palegoldenrod":"Blassgoldgelb","darkorange":"Dunkelorange","aquamarine":"Aquamarin","lightgreen":"Hellgrün","burlywood":"Burlywood","dodgerblue":"Dodger-blau","darkgray":"Dunkelgrau","lightcyan":"Hellzyan","powderblue":"Pulverblau","blueviolet":"Blauviolett","orchid":"Orchidee","dimgray":"Blassgrau","beige":"Beige","fuchsia":"Fuchsia","lavenderblush":"Lavendelhauch","hotpink":"Knallrosa","steelblue":"Stahlblau","tomato":"Tomatenrot","lightpink":"Hellrosa","limegreen":"Limonengrün","indianred":"Indischrot","papayawhip":"Papayacreme","lightslategray":"Helles Schiefergrau","gray":"Grau","mediumorchid":"Mittelorchidee","cornsilk":"Kornseide","black":"Schwarz","seagreen":"Meeresgrün","darkslateblue":"Dunkelschieferblau","khaki":"Khaki","lightblue":"Hellblau","palegreen":"Blassgrün","azure":"Azur","peachpuff":"Pfirsich","darkolivegreen":"Dunkelolivgrün","yellowgreen":"Gelbgrün"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.de");dijit.nls.loading.de={"loadingState":"Wird geladen...","errorState":"Es ist ein Fehler aufgetreten."};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.de");dijit.nls.common.de={"buttonOk":"OK","buttonCancel":"Abbrechen","buttonSave":"Speichern","itemClose":"Schließen"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.de");dijit._editor.nls.commands.de={"removeFormat":"Formatierung entfernen","copy":"Kopieren","paste":"Einfügen","selectAll":"Alles auswählen","insertOrderedList":"Nummerierung","insertTable":"Tabelle einfügen/bearbeiten","print":"Drucken","underline":"Unterstrichen","foreColor":"Vordergrundfarbe","htmlToggle":"HTML-Quelltext","formatBlock":"Absatzstil","newPage":"Neue Seite","insertHorizontalRule":"Horizontaler Strich","delete":"Löschen","insertUnorderedList":"Aufzählungszeichen","tableProp":"Tabelleneigenschaft","insertImage":"Grafik einfügen","superscript":"Hochgestellt","subscript":"Tiefgestellt","createLink":"Link erstellen","undo":"Rückgängig","fullScreen":"Gesamtanzeige","italic":"Kursiv","fontName":"Schriftartname","justifyLeft":"Linksbündig","unlink":"Link entfernen","toggleTableBorder":"Tabellenumrandung ein-/ausschalten","viewSource":"HTML-Quelle","ctrlKey":"Strg+${0}","fontSize":"Schriftgröße","systemShortcut":"Die Aktion \"${0}\" ist nur über einen Direktaufruf in Ihrem Browser verfügbar. Verwenden Sie ${1}.","indent":"Einrücken","redo":"Wiederherstellen","strikethrough":"Durchgestrichen","justifyFull":"Blocksatz","justifyCenter":"Zentriert","hiliteColor":"Hintergrundfarbe","deleteTable":"Tabelle löschen","outdent":"Ausrücken","cut":"Ausschneiden","plainFormatBlock":"Absatzstil","toggleDir":"Wechselrichtung","bold":"Fett","tabIndent":"Tabulatoreinrückung","justifyRight":"Rechtsbündig","appleKey":"⌘${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.de");dijit.form.nls.validate.de={"rangeMessage":"Dieser Wert liegt außerhalb des gültigen Bereichs. ","invalidMessage":"Der eingegebene Wert ist ungültig. ","missingMessage":"Dieser Wert ist erforderlich."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.de");dijit.form.nls.ComboBox.de={"previousMessage":"Vorherige Auswahl","nextMessage":"Weitere Auswahlmöglichkeiten"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.de");dijit._editor.nls.FontChoice.de={"1":"XXS","2":"XS","formatBlock":"Format","3":"S","4":"M","5":"L","6":"XL","7":"XXL","fantasy":"Fantasie","serif":"Serife","p":"Absatz","pre":"Vorformatiert","sans-serif":"Serifenlos","fontName":"Schriftart","h1":"Überschrift","h2":"Unterüberschrift","h3":"Unterunterüberschrift","monospace":"Monospaceschrift","fontSize":"Größe","cursive":"Kursiv","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.de");dijit._editor.nls.LinkDialog.de={"text":"Beschreibung:","insertImageTitle":"Grafikeigenschaften","set":"Festlegen","newWindow":"Neues Fenster","topWindow":"Aktives Fenster","target":"Ziel:","createLinkTitle":"Linkeigenschaften","parentWindow":"Übergeordnetes Fenster","currentWindow":"Aktuelles Fenster","url":"URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.de");dojo.cldr.nls.number.de={"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.de");dojo.cldr.nls.currency.de={"HKD_displayName":"Hongkong-Dollar","CHF_displayName":"Schweizer Franken","JPY_symbol":"¥","CAD_displayName":"Kanadischer Dollar","CNY_displayName":"Renminbi Yuan","USD_symbol":"$","AUD_displayName":"Australischer Dollar","JPY_displayName":"Yen","USD_displayName":"US-Dollar","GBP_displayName":"Pfund Sterling","EUR_displayName":"Euro","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.de");dojo.cldr.nls.gregorian.de={"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-weekday":"Wochentag","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE, d.M.y","dateFormatItem-MMMEd":"E d. MMM","eraNarrow":["v. Chr.","n. Chr."],"dayPeriods-format-wide-earlyMorning":"morgens","dayPeriods-format-wide-morning":"vormittags","dateFormat-long":"d. MMMM y","months-format-wide":["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],"dayPeriods-format-wide-evening":"abends","dateFormatItem-EEEd":"d. EEE","dayPeriods-format-wide-pm":"nachm.","dateFormat-full":"EEEE, d. MMMM y","dateFormatItem-Md":"d.M.","dateFormatItem-yyMMdd":"dd.MM.yy","dayPeriods-format-wide-noon":"Mittag","field-era":"Epoche","dateFormatItem-yM":"M.y","months-standAlone-wide":["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],"timeFormat-short":"HH:mm","quarters-format-wide":["1. Quartal","2. Quartal","3. Quartal","4. Quartal"],"timeFormat-long":"HH:mm:ss z","field-year":"Jahr","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q y","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"Stunde","dateFormatItem-MMdd":"dd.MM.","months-format-abbr":["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"heute","field-day-relative+1":"morgen","field-day-relative+2":"übermorgen","dateFormatItem-H":"HH","field-day-relative+3":"überübermorgen","months-standAlone-abbr":["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],"quarters-format-abbr":["Q1","Q2","Q3","Q4"],"quarters-standAlone-wide":["1. Quartal","2. Quartal","3. Quartal","4. Quartal"],"dateFormatItem-M":"L","days-standAlone-wide":["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],"dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","eraAbbr":["v. Chr.","n. Chr."],"field-minute":"Minute","field-dayperiod":"Tageshälfte","days-standAlone-abbr":["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],"dayPeriods-format-wide-night":"nachts","dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"gestern","field-day-relative+-2":"vorgestern","field-day-relative+-3":"vorvorgestern","dateFormatItem-MMMd":"d. MMM","dateFormatItem-MEd":"E, d.M.","field-day":"Tag","days-format-wide":["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],"field-zone":"Zone","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-yyMM":"MM.yy","days-format-abbr":["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],"eraNames":["v. Chr.","n. Chr."],"days-format-narrow":["S","M","D","M","D","F","S"],"field-month":"Monat","days-standAlone-narrow":["S","M","D","M","D","F","S"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"vorm.","dateFormatItem-MMMMdd":"dd. MMMM","dateFormat-short":"dd.MM.yy","dateFormatItem-MMd":"d.MM.","dayPeriods-format-wide-afternoon":"nachmittags","field-second":"Sekunde","dateFormatItem-yMMMEd":"EEE, d. MMM y","dateFormatItem-Ed":"E d.","field-week":"Woche","dateFormat-medium":"dd.MM.yyyy","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-yyyy":"y","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-hms":"h:mm:ss a"}; diff --git a/lib/dijit/nls/dijit-all_el.js b/lib/dijit/nls/dijit-all_el.js new file mode 100644 index 000000000..a9f2945bf --- /dev/null +++ b/lib/dijit/nls/dijit-all_el.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_el");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.el");dojo.nls.colors.el={"lightsteelblue":"ανοιχτό μπλε ατσαλιού","orangered":"πορτοκαλοκόκκινο","midnightblue":"πολύ σκούρο μπλε","cadetblue":"μπλε του στρατού","seashell":"κοχύλι","slategrey":"μεταλλικό γκρι","coral":"κοραλί","darkturquoise":"σκούρο τυρκουάζ","antiquewhite":"ξεθωριασμένο λευκό","mediumspringgreen":"μεσαίο πράσινο της άνοιξης","salmon":"σομόν","darkgrey":"σκούρο γκρι","ivory":"ιβουάρ","greenyellow":"πρασινοκίτρινο","mistyrose":"τριανταφυλλί","lightsalmon":"ανοιχτό σομόν","silver":"ασημί","dimgrey":"αχνό γκρι","orange":"πορτοκαλί","white":"λευκό","navajowhite":"άσπρο Ναβάχο","royalblue":"έντονο μπλε","deeppink":"βαθύ ροζ","lime":"λαχανί","oldlace":"εκρού","chartreuse":"φωτεινό κιτρινοπράσινο","darkcyan":"σκούρο κυανό","yellow":"κίτρινο","linen":"σπαγγί","olive":"πράσινο λαδί","gold":"χρυσαφί","lawngreen":"σκούρο πράσινο","lightyellow":"ανοιχτό κίτρινο","tan":"ώχρα","darkviolet":"σκούρο βιολετί","lightslategrey":"ανοιχτό μεταλλικό γκρι","grey":"γκρι","darkkhaki":"σκούρο χακί","green":"πράσινο","deepskyblue":"βαθύ μπλε το ουρανού","aqua":"γαλάζιο","sienna":"καφεκίτρινο","mintcream":"βεραμάν","rosybrown":"καστανό","mediumslateblue":"μεσαίο μεταλλικό μπλε","magenta":"ματζέντα","lightseagreen":"ανοιχτό πράσινο της θάλασσας","cyan":"κυανό","olivedrab":"λαδί","darkgoldenrod":"σκούρο χρυσοκίτρινο","slateblue":"μεταλλικό μπλε","mediumaquamarine":"μεσαίο γαλαζοπράσινο","lavender":"λίλα","mediumseagreen":"μεσαίο πράσινο της θάλασσας","maroon":"βυσσινί","darkslategray":"σκούρο μεταλλικό γκρι","mediumturquoise":"μεσαίο τυρκουάζ","ghostwhite":"άσπρο","darkblue":"σκούρο μπλε","mediumvioletred":"μεσαίο κόκκινο βιολετί","brown":"καφέ","lightgray":"ανοιχτό γκρι","sandybrown":"μπεζ της άμμου","pink":"ροζ","firebrick":"κεραμιδί","indigo":"λουλακί","snow":"χιονί","darkorchid":"σκούρα ορχιδέα","turquoise":"τυρκουάζ","chocolate":"σοκολατί","springgreen":"πράσινο της άνοιξης","moccasin":"μόκα","navy":"μπλε του ναυτικού","lemonchiffon":"λεμονί","teal":"πετρόλ","floralwhite":"λευκό των ανθών","cornflowerblue":"μεσαίο μπλε","paleturquoise":"αχνό τυρκουάζ","purple":"μωβ","gainsboro":"γκρι σιέλ","plum":"δαμασκηνί","red":"κόκκινο","blue":"μπλε","forestgreen":"πράσινο του δάσους","darkgreen":"σκούρο πράσινο","honeydew":"μελί","darkseagreen":"σκούρο πράσινο της θάλασσας","lightcoral":"ανοιχτό κοραλί","palevioletred":"αχνό κόκκινο βιολετί","mediumpurple":"μεσαίο μωβ","saddlebrown":"βαθύ καφέ","darkmagenta":"σκούρο ματζέντα","thistle":"μωβ βιολετί","whitesmoke":"λευκός καπνός","wheat":"σταρένιο","violet":"βιολετί","lightskyblue":"ανοιχτό μπλε το ουρανού","goldenrod":"χρυσοκίτρινο","mediumblue":"μεσαίο μπλε","skyblue":"μπλε του ουρανού","crimson":"βαθύ κόκκινο","darksalmon":"σκούρο σομόν","darkred":"σκούρο κόκκινο","darkslategrey":"σκούρο μεταλλικό γκρι","peru":"περού","lightgrey":"ανοιχτό γκρι","lightgoldenrodyellow":"ανοιχτό χρυσοκίτρινο","blanchedalmond":"ζαχαρί","aliceblue":"σιέλ","bisque":"σκούρο κρεμ","slategray":"μεταλλικό γκρι","palegoldenrod":"αχνό χρυσοκίτρινο","darkorange":"σκούρο πορτοκαλί","aquamarine":"γαλαζοπράσινο","lightgreen":"ανοιχτό πράσινο","burlywood":"καφέ του ξύλου","dodgerblue":"σκούρο ελεκτρίκ","darkgray":"σκούρο γκρι","lightcyan":"ανοιχτό κυανό","powderblue":"αχνό μπλε","blueviolet":"βιολετί","orchid":"ορχιδέα","dimgray":"αχνό γκρι","beige":"μπεζ","fuchsia":"φούξια","lavenderblush":"μωβ λεβάντας","hotpink":"έντονο ροζ","steelblue":"μπλε ατσαλιού","tomato":"κόκκινο της ντομάτας","lightpink":"ανοιχτό ροζ","limegreen":"πράσινο λαχανί","indianred":"ινδικό κόκκινο","papayawhip":"αχνό ροζ","lightslategray":"ανοιχτό μεταλλικό γκρι","gray":"γκρι","mediumorchid":"μεσαία ορχιδέα","cornsilk":"ασημί του καλαμποκιού","black":"μαύρο","seagreen":"πράσινο της θάλασσας","darkslateblue":"σκούρο μεταλλικό μπλε","khaki":"χακί","lightblue":"ανοιχτό μπλε","palegreen":"αχνό πράσινο","azure":"μπλε του ουρανού","peachpuff":"ροδακινί","darkolivegreen":"σκούρο πράσινο λαδί","yellowgreen":"κιτρινοπράσινο"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.el");dijit.nls.loading.el={"loadingState":"Φόρτωση...","errorState":"Σας ζητούμε συγνώμη, παρουσιάστηκε σφάλμα"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.el");dijit.nls.common.el={"buttonOk":"ΟΚ","buttonCancel":"Ακύρωση","buttonSave":"Αποθήκευση","itemClose":"Κλείσιμο"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.el");dijit._editor.nls.commands.el={"removeFormat":"Αφαίρεση μορφοποίησης","copy":"Αντιγραφή","paste":"Επικόλληση","selectAll":"Επιλογή όλων","insertOrderedList":"Αριθμημένη λίστα","insertTable":"Εισαγωγή/Τροποποίηση πίνακα","print":"Εκτύπωση","underline":"Υπογράμμιση","foreColor":"Χρώμα προσκηνίου","htmlToggle":"Πρωτογενής κώδικας HTML","formatBlock":"Στυλ παραγράφου","newPage":"Νέα σελίδα","insertHorizontalRule":"Οριζόντια γραμμή","delete":"Διαγραφή","insertUnorderedList":"Λίστα με κουκίδες","tableProp":"Ιδιότητα πίνακα","insertImage":"Εισαγωγή εικόνας","superscript":"Εκθέτης","subscript":"Δείκτης","createLink":"Δημιουργία σύνδεσης","undo":"Αναίρεση","fullScreen":"Εναλλαγή κατάστασης πλήρους οθόνης","italic":"Πλάγια","fontName":"Όνομα γραμματοσειράς","justifyLeft":"Στοίχιση αριστερά","unlink":"Αφαίρεση σύνδεσης","toggleTableBorder":"Εναλλαγή εμφάνισης περιγράμματος πίνακα","viewSource":"Προβολή προέλευσης HTML","fontSize":"Μέγεθος γραμματοσειράς","systemShortcut":"Σε αυτό το πρόγραμμα πλοήγησης, η ενέργεια \"${0}\" είναι διαθέσιμη μόνο με τη χρήση μιας συντόμευσης πληκτρολογίου. Χρησιμοποιήστε τη συντόμευση ${1}.","indent":"Εσοχή","redo":"Ακύρωση αναίρεσης","strikethrough":"Διαγράμμιση","justifyFull":"Πλήρης στοίχιση","justifyCenter":"Στοίχιση στο κέντρο","hiliteColor":"Χρώμα φόντου","deleteTable":"Διαγραφή πίνακα","outdent":"Μείωση περιθωρίου","cut":"Αποκοπή","plainFormatBlock":"Στυλ παραγράφου","toggleDir":"Εναλλαγή κατεύθυνσης","bold":"Έντονα","tabIndent":"Εσοχή με το πλήκτρο Tab","justifyRight":"Στοίχιση δεξιά","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.el");dijit.form.nls.validate.el={"rangeMessage":"Η τιμή αυτή δεν ανήκει στο εύρος έγκυρων τιμών.","invalidMessage":"Η τιμή που καταχωρήσατε δεν είναι έγκυρη.","missingMessage":"Η τιμή αυτή πρέπει απαραίτητα να καθοριστεί."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.el");dijit.form.nls.ComboBox.el={"previousMessage":"Προηγούμενες επιλογές","nextMessage":"Περισσότερες επιλογές"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.el");dijit._editor.nls.FontChoice.el={"1":"xx-μικρά","2":"x-μικρά","formatBlock":"Μορφή","3":"μικρά","4":"μεσαία","5":"μεγάλα","6":"x-μεγάλα","7":"xx-μεγάλα","fantasy":"φαντασίας","serif":"με πατούρες (serif)","p":"Παράγραφος","pre":"Προ-μορφοποιημένο","sans-serif":"χωρίς πατούρες (sans-serif)","fontName":"Γραμματοσειρά","h1":"Επικεφαλίδα","h2":"Δευτερεύουσα επικεφαλίδα","h3":"Δευτερεύουσα επικεφαλίδα τρίτου επιπέδου","monospace":"σταθερού πλάτους","fontSize":"Μέγεθος","cursive":"πλάγιοι","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.el");dijit._editor.nls.LinkDialog.el={"text":"Περιγραφή:","insertImageTitle":"Ιδιότητες εικόνας","set":"Ορισμός","newWindow":"Νέο παράθυρο","topWindow":"Παράθυρο σε πρώτο πλάνο","target":"Προορισμός:","createLinkTitle":"Ιδιότητες σύνδεσης","parentWindow":"Γονικό παράθυρο","currentWindow":"Τρέχον παράθυρο","url":"Διεύθυνση URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.el");dojo.cldr.nls.number.el={"group":".","percentSign":"%","exponential":"e","percentFormat":"#,##0%","list":",","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","currencyFormat":"#,##0.00 ¤","plusSign":"+","scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","decimalFormat":"#,##0.###","currencySpacing-beforeCurrency-insertBetween":" "};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.el");dojo.cldr.nls.currency.el={"HKD_displayName":"Δολάριο Χονγκ Κονγκ","CHF_displayName":"Φράγκο Ελβετίας","CAD_displayName":"Δολάριο Καναδά","CNY_displayName":"Γιουάν Ρενμίμπι Κίνας","AUD_displayName":"Δολάριο Αυστραλίας","JPY_displayName":"Γιεν Ιαπωνίας","USD_displayName":"Δολάριο ΗΠΑ","GBP_displayName":"Λίρα Στερλίνα Βρετανίας","EUR_displayName":"Ευρώ","USD_symbol":"US$","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","JPY_symbol":"JP¥","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.el");dojo.cldr.nls.gregorian.el={"months-format-narrow":["Ι","Φ","Μ","Α","Μ","Ι","Ι","Α","Σ","Ο","Ν","Δ"],"field-weekday":"Ημέρα εβδομάδας","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"EEE, d/M/yyyy","dateFormatItem-MMMEd":"E, d MMM","eraNarrow":["π.Χ.","μ.Χ."],"dateFormat-long":"d MMMM y","months-format-wide":["Ιανουαρίου","Φεβρουαρίου","Μαρτίου","Απριλίου","Μαΐου","Ιουνίου","Ιουλίου","Αυγούστου","Σεπτεμβρίου","Οκτωβρίου","Νοεμβρίου","Δεκεμβρίου"],"dateFormatItem-EEEd":"EEE d","dayPeriods-format-wide-pm":"μ.μ.","dateFormat-full":"EEEE, d MMMM y","dateFormatItem-Md":"d/M","field-era":"Περίοδος","dateFormatItem-yM":"M/yyyy","months-standAlone-wide":["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],"timeFormat-short":"h:mm a","quarters-format-wide":["1ο τρίμηνο","2ο τρίμηνο","3ο τρίμηνο","4ο τρίμηνο"],"timeFormat-long":"h:mm:ss a z","field-year":"Έτος","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"y Q","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"Ώρα","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["Ιαν","Φεβ","Μαρ","Απρ","Μαϊ","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"h:mm:ss a zzzz","field-day-relative+0":"Σήμερα","field-day-relative+1":"Αύριο","field-day-relative+2":"Μεθαύριο","dateFormatItem-H":"HH","field-day-relative+3":"Σε τρεις ημέρες από τώρα","months-standAlone-abbr":["Ιαν","Φεβ","Μαρ","Απρ","Μαϊ","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],"quarters-format-abbr":["Τ1","Τ2","Τ3","Τ4"],"quarters-standAlone-wide":["1ο τρίμηνο","2ο τρίμηνο","3ο τρίμηνο","4ο τρίμηνο"],"dateFormatItem-HHmmss":"HH:mm:ss","dateFormatItem-M":"L","days-standAlone-wide":["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],"dateFormatItem-MMMMd":"d MMMM","dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"h:mm:ss a","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["Τ1","Τ2","Τ3","Τ4"],"eraAbbr":["π.Χ.","μ.Χ."],"field-minute":"Λεπτό","field-dayperiod":"π.μ./μ.μ.","days-standAlone-abbr":["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"Χθες","field-day-relative+-2":"Προχθές","field-day-relative+-3":"Πριν από τρεις ημέρες","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"E, d/M","dateFormatItem-yMMMM":"LLLL y","field-day":"Ημέρα","days-format-wide":["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],"field-zone":"Ζώνη","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-y":"y","months-standAlone-narrow":["Ι","Φ","Μ","Α","Μ","Ι","Ι","Α","Σ","Ο","Ν","Δ"],"dateFormatItem-yyMM":"MM/yy","days-format-abbr":["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"],"eraNames":["π.Χ.","μ.Χ."],"days-format-narrow":["Κ","Δ","Τ","Τ","Π","Π","Σ"],"field-month":"Μήνας","days-standAlone-narrow":["Κ","Δ","Τ","Τ","Π","Π","Σ"],"dateFormatItem-MMM":"LLL","dateFormatItem-HHmm":"HH:mm","dayPeriods-format-wide-am":"π.μ.","dateFormatItem-MMMMEd":"E, d MMMM","dateFormatItem-MMMMdd":"dd MMMM","dateFormat-short":"d/M/yy","field-second":"Δευτερόλεπτο","dateFormatItem-yMMMEd":"EEE, d MMM y","dateFormatItem-Ed":"E d","field-week":"Εβδομάδα","dateFormat-medium":"d MMM y","dateFormatItem-mmss":"mm:ss","dateFormatItem-yyyy":"y","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a"}; diff --git a/lib/dijit/nls/dijit-all_en-gb.js b/lib/dijit/nls/dijit-all_en-gb.js new file mode 100644 index 000000000..a66fb43e5 --- /dev/null +++ b/lib/dijit/nls/dijit-all_en-gb.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_en-gb");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.en_gb");dojo.nls.colors.en_gb={"lightsteelblue":"light steel blue","orangered":"orange red","midnightblue":"midnight blue","cadetblue":"cadet blue","seashell":"seashell","slategrey":"slate gray","coral":"coral","darkturquoise":"dark turquoise","antiquewhite":"antique white","mediumspringgreen":"medium spring green","salmon":"salmon","darkgrey":"dark gray","ivory":"ivory","greenyellow":"green-yellow","mistyrose":"misty rose","lightsalmon":"light salmon","silver":"silver","dimgrey":"dim gray","orange":"orange","white":"white","navajowhite":"navajo white","royalblue":"royal blue","deeppink":"deep pink","lime":"lime","oldlace":"old lace","chartreuse":"chartreuse","darkcyan":"dark cyan","yellow":"yellow","linen":"linen","olive":"olive","gold":"gold","lawngreen":"lawn green","lightyellow":"light yellow","tan":"tan","darkviolet":"dark violet","lightslategrey":"light slate gray","grey":"gray","darkkhaki":"dark khaki","green":"green","deepskyblue":"deep sky blue","aqua":"aqua","sienna":"sienna","mintcream":"mint cream","rosybrown":"rosy brown","mediumslateblue":"medium slate blue","magenta":"magenta","lightseagreen":"light sea green","cyan":"cyan","olivedrab":"olive drab","darkgoldenrod":"dark goldenrod","slateblue":"slate blue","mediumaquamarine":"medium aquamarine","lavender":"lavender","mediumseagreen":"medium sea green","maroon":"maroon","darkslategray":"dark slate gray","mediumturquoise":"medium turquoise","ghostwhite":"ghost white","darkblue":"dark blue","mediumvioletred":"medium violet-red","brown":"brown","lightgray":"light gray","sandybrown":"sandy brown","pink":"pink","firebrick":"fire brick","indigo":"indigo","snow":"snow","darkorchid":"dark orchid","turquoise":"turquoise","chocolate":"chocolate","springgreen":"spring green","moccasin":"moccasin","navy":"navy","lemonchiffon":"lemon chiffon","teal":"teal","floralwhite":"floral white","cornflowerblue":"cornflower blue","paleturquoise":"pale turquoise","purple":"purple","gainsboro":"gainsboro","plum":"plum","red":"red","blue":"blue","forestgreen":"forest green","darkgreen":"dark green","honeydew":"honeydew","darkseagreen":"dark sea green","lightcoral":"light coral","palevioletred":"pale violet-red","mediumpurple":"medium purple","saddlebrown":"saddle brown","darkmagenta":"dark magenta","thistle":"thistle","whitesmoke":"white smoke","wheat":"wheat","violet":"violet","lightskyblue":"light sky blue","goldenrod":"goldenrod","mediumblue":"medium blue","skyblue":"sky blue","crimson":"crimson","darksalmon":"dark salmon","darkred":"dark red","darkslategrey":"dark slate gray","peru":"peru","lightgrey":"light gray","lightgoldenrodyellow":"light goldenrod yellow","blanchedalmond":"blanched almond","aliceblue":"alice blue","bisque":"bisque","slategray":"slate gray","palegoldenrod":"pale goldenrod","darkorange":"dark orange","aquamarine":"aquamarine","lightgreen":"light green","burlywood":"burlywood","dodgerblue":"dodger blue","darkgray":"dark gray","lightcyan":"light cyan","powderblue":"powder blue","blueviolet":"blue-violet","orchid":"orchid","dimgray":"dim gray","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavender blush","hotpink":"hot pink","steelblue":"steel blue","tomato":"tomato","lightpink":"light pink","limegreen":"lime green","indianred":"indian red","papayawhip":"papaya whip","lightslategray":"light slate gray","gray":"gray","mediumorchid":"medium orchid","cornsilk":"cornsilk","black":"black","seagreen":"sea green","darkslateblue":"dark slate blue","khaki":"khaki","lightblue":"light blue","palegreen":"pale green","azure":"azure","peachpuff":"peach puff","darkolivegreen":"dark olive green","yellowgreen":"yellow green"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.en_gb");dijit.nls.loading.en_gb={"loadingState":"Loading...","errorState":"Sorry, an error occurred"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.en_gb");dijit.nls.common.en_gb={"buttonOk":"OK","buttonCancel":"Cancel","buttonSave":"Save","itemClose":"Close"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.en_gb");dijit._editor.nls.commands.en_gb={"removeFormat":"Remove Format","copy":"Copy","paste":"Paste","selectAll":"Select All","insertOrderedList":"Numbered List","insertTable":"Insert/Edit Table","print":"Print","underline":"Underline","foreColor":"Foreground Color","htmlToggle":"HTML Source","formatBlock":"Paragraph Style","newPage":"New Page","insertHorizontalRule":"Horizontal Rule","delete":"Delete","appleKey":"⌘${0}","insertUnorderedList":"Bullet List","tableProp":"Table Property","insertImage":"Insert Image","superscript":"Superscript","subscript":"Subscript","createLink":"Create Link","undo":"Undo","fullScreen":"Toggle Full Screen","italic":"Italic","fontName":"Font Name","justifyLeft":"Align Left","unlink":"Remove Link","toggleTableBorder":"Toggle Table Border","viewSource":"View HTML Source","ctrlKey":"ctrl+${0}","fontSize":"Font Size","systemShortcut":"The \"${0}\" action is only available in your browser using a keyboard shortcut. Use ${1}.","indent":"Indent","redo":"Redo","strikethrough":"Strikethrough","justifyFull":"Justify","justifyCenter":"Align Center","hiliteColor":"Background Color","deleteTable":"Delete Table","outdent":"Outdent","cut":"Cut","plainFormatBlock":"Paragraph Style","toggleDir":"Toggle Direction","bold":"Bold","tabIndent":"Tab Indent","justifyRight":"Align Right"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.en_gb");dijit.form.nls.validate.en_gb={"rangeMessage":"This value is out of range.","invalidMessage":"The value entered is not valid.","missingMessage":"This value is required."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.en_gb");dijit.form.nls.ComboBox.en_gb={"previousMessage":"Previous choices","nextMessage":"More choices"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.en_gb");dijit._editor.nls.FontChoice.en_gb={"noFormat":"None","1":"xx-small","2":"x-small","formatBlock":"Format","3":"small","4":"medium","5":"large","6":"x-large","7":"xx-large","fantasy":"fantasy","serif":"serif","p":"Paragraph","pre":"Pre-formatted","sans-serif":"sans-serif","fontName":"Font","h1":"Heading","h2":"Subheading","h3":"Sub-subheading","monospace":"monospace","fontSize":"Size","cursive":"cursive"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.en_gb");dijit._editor.nls.LinkDialog.en_gb={"text":"Description:","insertImageTitle":"Image Properties","set":"Set","newWindow":"New Window","topWindow":"Topmost Window","target":"Target:","createLinkTitle":"Link Properties","parentWindow":"Parent Window","currentWindow":"Current Window","url":"URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.en_gb");dojo.cldr.nls.number.en_gb={"currencyFormat":"¤#,##0.00","group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.en_gb");dojo.cldr.nls.currency.en_gb={"HKD_displayName":"Hong Kong Dollar","CHF_displayName":"Swiss Franc","JPY_symbol":"¥","CAD_displayName":"Canadian Dollar","CNY_displayName":"Chinese Yuan Renminbi","USD_symbol":"$","AUD_displayName":"Australian Dollar","JPY_displayName":"Japanese Yen","USD_displayName":"US Dollar","GBP_displayName":"British Pound Sterling","EUR_displayName":"Euro","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.en_gb");dojo.cldr.nls.gregorian.en_gb={"dateFormatItem-yyMMM":"MMM yy","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"EEE, d/M/yyyy","dateFormatItem-yyyyMMMM":"MMMM y","timeFormat-full":"HH:mm:ss zzzz","timeFormat-medium":"HH:mm:ss","dateFormatItem-MEd":"E, d/M","dateFormat-medium":"d MMM y","dateFormatItem-MMdd":"dd/MM","dateFormatItem-yyyyMM":"MM/yyyy","dateFormat-full":"EEEE, d MMMM y","timeFormat-long":"HH:mm:ss z","timeFormat-short":"HH:mm","dateFormat-short":"dd/MM/yyyy","dateFormatItem-MMMMd":"d MMMM","dateFormat-long":"d MMMM y","dateFormatItem-MMMEd":"E d MMM","dateFormatItem-yM":"M/y","field-dayperiod":"AM/PM","dateFormatItem-yQ":"Q y","dayPeriods-format-wide-pm":"PM","field-minute":"Minute","eraNames":["Before Christ","Anno Domini"],"dateTimeFormat-full":"{1} {0}","field-day-relative+-1":"Yesterday","field-weekday":"Day of the Week","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yQQQ":"QQQ y","days-standAlone-wide":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateTimeFormat-short":"{1} {0}","field-era":"Era","field-hour":"Hour","dayPeriods-format-wide-am":"AM","dateTimeFormat-medium":"{1} {0}","dateFormatItem-y":"y","months-standAlone-abbr":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"dateFormatItem-yMMM":"MMM y","field-day-relative+0":"Today","field-day-relative+1":"Tomorrow","days-standAlone-narrow":["S","M","T","W","T","F","S"],"eraAbbr":["BC","AD"],"dateFormatItem-EEEd":"d EEE","field-zone":"Zone","dateFormatItem-Hm":"HH:mm","dateFormatItem-Hms":"HH:mm:ss","quarters-standAlone-wide":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"dateFormatItem-ms":"mm:ss","field-year":"Year","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormat-long":"{1} {0}","field-week":"Week","months-standAlone-wide":["January","February","March","April","May","June","July","August","September","October","November","December"],"dateFormatItem-MMMd":"MMM d","months-format-abbr":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"dayPeriods-format-wide-noon":"noon","field-month":"Month","quarters-format-abbr":["Q1","Q2","Q3","Q4"],"days-format-abbr":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"dateFormatItem-M":"L","days-format-narrow":["S","M","T","W","T","F","S"],"field-second":"Second","field-day":"Day","months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-hm":"h:mm a","days-standAlone-abbr":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"dateFormatItem-yMMMEd":"EEE, MMM d, y","months-format-wide":["January","February","March","April","May","June","July","August","September","October","November","December"],"dateFormatItem-d":"d","quarters-format-wide":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"days-format-wide":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"eraNarrow":["B","A"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dayPeriods-format-narrow-am":"AM","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM"}; diff --git a/lib/dijit/nls/dijit-all_en-us.js b/lib/dijit/nls/dijit-all_en-us.js new file mode 100644 index 000000000..2c6e1b0cb --- /dev/null +++ b/lib/dijit/nls/dijit-all_en-us.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_en-us");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.en_us");dojo.nls.colors.en_us={"lightsteelblue":"light steel blue","orangered":"orange red","midnightblue":"midnight blue","cadetblue":"cadet blue","seashell":"seashell","slategrey":"slate gray","coral":"coral","darkturquoise":"dark turquoise","antiquewhite":"antique white","mediumspringgreen":"medium spring green","salmon":"salmon","darkgrey":"dark gray","ivory":"ivory","greenyellow":"green-yellow","mistyrose":"misty rose","lightsalmon":"light salmon","silver":"silver","dimgrey":"dim gray","orange":"orange","white":"white","navajowhite":"navajo white","royalblue":"royal blue","deeppink":"deep pink","lime":"lime","oldlace":"old lace","chartreuse":"chartreuse","darkcyan":"dark cyan","yellow":"yellow","linen":"linen","olive":"olive","gold":"gold","lawngreen":"lawn green","lightyellow":"light yellow","tan":"tan","darkviolet":"dark violet","lightslategrey":"light slate gray","grey":"gray","darkkhaki":"dark khaki","green":"green","deepskyblue":"deep sky blue","aqua":"aqua","sienna":"sienna","mintcream":"mint cream","rosybrown":"rosy brown","mediumslateblue":"medium slate blue","magenta":"magenta","lightseagreen":"light sea green","cyan":"cyan","olivedrab":"olive drab","darkgoldenrod":"dark goldenrod","slateblue":"slate blue","mediumaquamarine":"medium aquamarine","lavender":"lavender","mediumseagreen":"medium sea green","maroon":"maroon","darkslategray":"dark slate gray","mediumturquoise":"medium turquoise","ghostwhite":"ghost white","darkblue":"dark blue","mediumvioletred":"medium violet-red","brown":"brown","lightgray":"light gray","sandybrown":"sandy brown","pink":"pink","firebrick":"fire brick","indigo":"indigo","snow":"snow","darkorchid":"dark orchid","turquoise":"turquoise","chocolate":"chocolate","springgreen":"spring green","moccasin":"moccasin","navy":"navy","lemonchiffon":"lemon chiffon","teal":"teal","floralwhite":"floral white","cornflowerblue":"cornflower blue","paleturquoise":"pale turquoise","purple":"purple","gainsboro":"gainsboro","plum":"plum","red":"red","blue":"blue","forestgreen":"forest green","darkgreen":"dark green","honeydew":"honeydew","darkseagreen":"dark sea green","lightcoral":"light coral","palevioletred":"pale violet-red","mediumpurple":"medium purple","saddlebrown":"saddle brown","darkmagenta":"dark magenta","thistle":"thistle","whitesmoke":"white smoke","wheat":"wheat","violet":"violet","lightskyblue":"light sky blue","goldenrod":"goldenrod","mediumblue":"medium blue","skyblue":"sky blue","crimson":"crimson","darksalmon":"dark salmon","darkred":"dark red","darkslategrey":"dark slate gray","peru":"peru","lightgrey":"light gray","lightgoldenrodyellow":"light goldenrod yellow","blanchedalmond":"blanched almond","aliceblue":"alice blue","bisque":"bisque","slategray":"slate gray","palegoldenrod":"pale goldenrod","darkorange":"dark orange","aquamarine":"aquamarine","lightgreen":"light green","burlywood":"burlywood","dodgerblue":"dodger blue","darkgray":"dark gray","lightcyan":"light cyan","powderblue":"powder blue","blueviolet":"blue-violet","orchid":"orchid","dimgray":"dim gray","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavender blush","hotpink":"hot pink","steelblue":"steel blue","tomato":"tomato","lightpink":"light pink","limegreen":"lime green","indianred":"indian red","papayawhip":"papaya whip","lightslategray":"light slate gray","gray":"gray","mediumorchid":"medium orchid","cornsilk":"cornsilk","black":"black","seagreen":"sea green","darkslateblue":"dark slate blue","khaki":"khaki","lightblue":"light blue","palegreen":"pale green","azure":"azure","peachpuff":"peach puff","darkolivegreen":"dark olive green","yellowgreen":"yellow green"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.en_us");dijit.nls.loading.en_us={"loadingState":"Loading...","errorState":"Sorry, an error occurred"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.en_us");dijit.nls.common.en_us={"buttonOk":"OK","buttonCancel":"Cancel","buttonSave":"Save","itemClose":"Close"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.en_us");dijit._editor.nls.commands.en_us={"removeFormat":"Remove Format","copy":"Copy","paste":"Paste","selectAll":"Select All","insertOrderedList":"Numbered List","insertTable":"Insert/Edit Table","print":"Print","underline":"Underline","foreColor":"Foreground Color","htmlToggle":"HTML Source","formatBlock":"Paragraph Style","newPage":"New Page","insertHorizontalRule":"Horizontal Rule","delete":"Delete","appleKey":"⌘${0}","insertUnorderedList":"Bullet List","tableProp":"Table Property","insertImage":"Insert Image","superscript":"Superscript","subscript":"Subscript","createLink":"Create Link","undo":"Undo","fullScreen":"Toggle Full Screen","italic":"Italic","fontName":"Font Name","justifyLeft":"Align Left","unlink":"Remove Link","toggleTableBorder":"Toggle Table Border","viewSource":"View HTML Source","ctrlKey":"ctrl+${0}","fontSize":"Font Size","systemShortcut":"The \"${0}\" action is only available in your browser using a keyboard shortcut. Use ${1}.","indent":"Indent","redo":"Redo","strikethrough":"Strikethrough","justifyFull":"Justify","justifyCenter":"Align Center","hiliteColor":"Background Color","deleteTable":"Delete Table","outdent":"Outdent","cut":"Cut","plainFormatBlock":"Paragraph Style","toggleDir":"Toggle Direction","bold":"Bold","tabIndent":"Tab Indent","justifyRight":"Align Right"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.en_us");dijit.form.nls.validate.en_us={"rangeMessage":"This value is out of range.","invalidMessage":"The value entered is not valid.","missingMessage":"This value is required."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.en_us");dijit.form.nls.ComboBox.en_us={"previousMessage":"Previous choices","nextMessage":"More choices"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.en_us");dijit._editor.nls.FontChoice.en_us={"noFormat":"None","1":"xx-small","2":"x-small","formatBlock":"Format","3":"small","4":"medium","5":"large","6":"x-large","7":"xx-large","fantasy":"fantasy","serif":"serif","p":"Paragraph","pre":"Pre-formatted","sans-serif":"sans-serif","fontName":"Font","h1":"Heading","h2":"Subheading","h3":"Sub-subheading","monospace":"monospace","fontSize":"Size","cursive":"cursive"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.en_us");dijit._editor.nls.LinkDialog.en_us={"text":"Description:","insertImageTitle":"Image Properties","set":"Set","newWindow":"New Window","topWindow":"Topmost Window","target":"Target:","createLinkTitle":"Link Properties","parentWindow":"Parent Window","currentWindow":"Current Window","url":"URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.en_us");dojo.cldr.nls.number.en_us={"group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00;(¤#,##0.00)","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.en_us");dojo.cldr.nls.currency.en_us={"HKD_displayName":"Hong Kong Dollar","CHF_displayName":"Swiss Franc","JPY_symbol":"¥","CAD_displayName":"Canadian Dollar","CNY_displayName":"Chinese Yuan Renminbi","USD_symbol":"$","AUD_displayName":"Australian Dollar","JPY_displayName":"Japanese Yen","USD_displayName":"US Dollar","GBP_displayName":"British Pound Sterling","EUR_displayName":"Euro","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.en_us");dojo.cldr.nls.gregorian.en_us={"dateFormatItem-yM":"M/y","field-dayperiod":"AM/PM","dateFormatItem-yQ":"Q y","dayPeriods-format-wide-pm":"PM","field-minute":"Minute","eraNames":["Before Christ","Anno Domini"],"dateFormatItem-MMMEd":"E, MMM d","dateTimeFormat-full":"{1} {0}","field-day-relative+-1":"Yesterday","field-weekday":"Day of the Week","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yQQQ":"QQQ y","days-standAlone-wide":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateTimeFormat-short":"{1} {0}","field-era":"Era","field-hour":"Hour","dayPeriods-format-wide-am":"AM","dateTimeFormat-medium":"{1} {0}","dateFormatItem-y":"y","timeFormat-full":"h:mm:ss a zzzz","months-standAlone-abbr":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"dateFormatItem-yMMM":"MMM y","field-day-relative+0":"Today","field-day-relative+1":"Tomorrow","days-standAlone-narrow":["S","M","T","W","T","F","S"],"eraAbbr":["BC","AD"],"dateFormat-long":"MMMM d, y","timeFormat-medium":"h:mm:ss a","dateFormatItem-EEEd":"d EEE","field-zone":"Zone","dateFormatItem-Hm":"HH:mm","dateFormat-medium":"MMM d, y","dateFormatItem-Hms":"HH:mm:ss","quarters-standAlone-wide":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"dateFormatItem-ms":"mm:ss","field-year":"Year","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormat-long":"{1} {0}","field-week":"Week","months-standAlone-wide":["January","February","March","April","May","June","July","August","September","October","November","December"],"dateFormatItem-MMMd":"MMM d","timeFormat-long":"h:mm:ss a z","months-format-abbr":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"dayPeriods-format-wide-noon":"noon","timeFormat-short":"h:mm a","field-month":"Month","quarters-format-abbr":["Q1","Q2","Q3","Q4"],"days-format-abbr":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"dateFormatItem-M":"L","days-format-narrow":["S","M","T","W","T","F","S"],"field-second":"Second","field-day":"Day","dateFormatItem-MEd":"E, M/d","months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-hm":"h:mm a","days-standAlone-abbr":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"dateFormat-short":"M/d/yy","dateFormatItem-yMMMEd":"EEE, MMM d, y","dateFormat-full":"EEEE, MMMM d, y","dateFormatItem-Md":"M/d","dateFormatItem-yMEd":"EEE, M/d/y","months-format-wide":["January","February","March","April","May","June","July","August","September","October","November","December"],"dateFormatItem-d":"d","quarters-format-wide":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"days-format-wide":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"eraNarrow":["B","A"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dayPeriods-format-narrow-am":"AM","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM"}; diff --git a/lib/dijit/nls/dijit-all_en.js b/lib/dijit/nls/dijit-all_en.js new file mode 100644 index 000000000..0ae531fbc --- /dev/null +++ b/lib/dijit/nls/dijit-all_en.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_en");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.en");dojo.nls.colors.en={"lightsteelblue":"light steel blue","orangered":"orange red","midnightblue":"midnight blue","cadetblue":"cadet blue","seashell":"seashell","slategrey":"slate gray","coral":"coral","darkturquoise":"dark turquoise","antiquewhite":"antique white","mediumspringgreen":"medium spring green","salmon":"salmon","darkgrey":"dark gray","ivory":"ivory","greenyellow":"green-yellow","mistyrose":"misty rose","lightsalmon":"light salmon","silver":"silver","dimgrey":"dim gray","orange":"orange","white":"white","navajowhite":"navajo white","royalblue":"royal blue","deeppink":"deep pink","lime":"lime","oldlace":"old lace","chartreuse":"chartreuse","darkcyan":"dark cyan","yellow":"yellow","linen":"linen","olive":"olive","gold":"gold","lawngreen":"lawn green","lightyellow":"light yellow","tan":"tan","darkviolet":"dark violet","lightslategrey":"light slate gray","grey":"gray","darkkhaki":"dark khaki","green":"green","deepskyblue":"deep sky blue","aqua":"aqua","sienna":"sienna","mintcream":"mint cream","rosybrown":"rosy brown","mediumslateblue":"medium slate blue","magenta":"magenta","lightseagreen":"light sea green","cyan":"cyan","olivedrab":"olive drab","darkgoldenrod":"dark goldenrod","slateblue":"slate blue","mediumaquamarine":"medium aquamarine","lavender":"lavender","mediumseagreen":"medium sea green","maroon":"maroon","darkslategray":"dark slate gray","mediumturquoise":"medium turquoise","ghostwhite":"ghost white","darkblue":"dark blue","mediumvioletred":"medium violet-red","brown":"brown","lightgray":"light gray","sandybrown":"sandy brown","pink":"pink","firebrick":"fire brick","indigo":"indigo","snow":"snow","darkorchid":"dark orchid","turquoise":"turquoise","chocolate":"chocolate","springgreen":"spring green","moccasin":"moccasin","navy":"navy","lemonchiffon":"lemon chiffon","teal":"teal","floralwhite":"floral white","cornflowerblue":"cornflower blue","paleturquoise":"pale turquoise","purple":"purple","gainsboro":"gainsboro","plum":"plum","red":"red","blue":"blue","forestgreen":"forest green","darkgreen":"dark green","honeydew":"honeydew","darkseagreen":"dark sea green","lightcoral":"light coral","palevioletred":"pale violet-red","mediumpurple":"medium purple","saddlebrown":"saddle brown","darkmagenta":"dark magenta","thistle":"thistle","whitesmoke":"white smoke","wheat":"wheat","violet":"violet","lightskyblue":"light sky blue","goldenrod":"goldenrod","mediumblue":"medium blue","skyblue":"sky blue","crimson":"crimson","darksalmon":"dark salmon","darkred":"dark red","darkslategrey":"dark slate gray","peru":"peru","lightgrey":"light gray","lightgoldenrodyellow":"light goldenrod yellow","blanchedalmond":"blanched almond","aliceblue":"alice blue","bisque":"bisque","slategray":"slate gray","palegoldenrod":"pale goldenrod","darkorange":"dark orange","aquamarine":"aquamarine","lightgreen":"light green","burlywood":"burlywood","dodgerblue":"dodger blue","darkgray":"dark gray","lightcyan":"light cyan","powderblue":"powder blue","blueviolet":"blue-violet","orchid":"orchid","dimgray":"dim gray","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavender blush","hotpink":"hot pink","steelblue":"steel blue","tomato":"tomato","lightpink":"light pink","limegreen":"lime green","indianred":"indian red","papayawhip":"papaya whip","lightslategray":"light slate gray","gray":"gray","mediumorchid":"medium orchid","cornsilk":"cornsilk","black":"black","seagreen":"sea green","darkslateblue":"dark slate blue","khaki":"khaki","lightblue":"light blue","palegreen":"pale green","azure":"azure","peachpuff":"peach puff","darkolivegreen":"dark olive green","yellowgreen":"yellow green"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.en");dijit.nls.loading.en={"loadingState":"Loading...","errorState":"Sorry, an error occurred"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.en");dijit.nls.common.en={"buttonOk":"OK","buttonCancel":"Cancel","buttonSave":"Save","itemClose":"Close"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.en");dijit._editor.nls.commands.en={"removeFormat":"Remove Format","copy":"Copy","paste":"Paste","selectAll":"Select All","insertOrderedList":"Numbered List","insertTable":"Insert/Edit Table","print":"Print","underline":"Underline","foreColor":"Foreground Color","htmlToggle":"HTML Source","formatBlock":"Paragraph Style","newPage":"New Page","insertHorizontalRule":"Horizontal Rule","delete":"Delete","appleKey":"⌘${0}","insertUnorderedList":"Bullet List","tableProp":"Table Property","insertImage":"Insert Image","superscript":"Superscript","subscript":"Subscript","createLink":"Create Link","undo":"Undo","fullScreen":"Toggle Full Screen","italic":"Italic","fontName":"Font Name","justifyLeft":"Align Left","unlink":"Remove Link","toggleTableBorder":"Toggle Table Border","viewSource":"View HTML Source","ctrlKey":"ctrl+${0}","fontSize":"Font Size","systemShortcut":"The \"${0}\" action is only available in your browser using a keyboard shortcut. Use ${1}.","indent":"Indent","redo":"Redo","strikethrough":"Strikethrough","justifyFull":"Justify","justifyCenter":"Align Center","hiliteColor":"Background Color","deleteTable":"Delete Table","outdent":"Outdent","cut":"Cut","plainFormatBlock":"Paragraph Style","toggleDir":"Toggle Direction","bold":"Bold","tabIndent":"Tab Indent","justifyRight":"Align Right"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.en");dijit.form.nls.validate.en={"rangeMessage":"This value is out of range.","invalidMessage":"The value entered is not valid.","missingMessage":"This value is required."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.en");dijit.form.nls.ComboBox.en={"previousMessage":"Previous choices","nextMessage":"More choices"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.en");dijit._editor.nls.FontChoice.en={"noFormat":"None","1":"xx-small","2":"x-small","formatBlock":"Format","3":"small","4":"medium","5":"large","6":"x-large","7":"xx-large","fantasy":"fantasy","serif":"serif","p":"Paragraph","pre":"Pre-formatted","sans-serif":"sans-serif","fontName":"Font","h1":"Heading","h2":"Subheading","h3":"Sub-subheading","monospace":"monospace","fontSize":"Size","cursive":"cursive"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.en");dijit._editor.nls.LinkDialog.en={"text":"Description:","insertImageTitle":"Image Properties","set":"Set","newWindow":"New Window","topWindow":"Topmost Window","target":"Target:","createLinkTitle":"Link Properties","parentWindow":"Parent Window","currentWindow":"Current Window","url":"URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.en");dojo.cldr.nls.number.en={"group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00;(¤#,##0.00)","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.en");dojo.cldr.nls.currency.en={"HKD_displayName":"Hong Kong Dollar","CHF_displayName":"Swiss Franc","JPY_symbol":"¥","CAD_displayName":"Canadian Dollar","CNY_displayName":"Chinese Yuan Renminbi","USD_symbol":"$","AUD_displayName":"Australian Dollar","JPY_displayName":"Japanese Yen","USD_displayName":"US Dollar","GBP_displayName":"British Pound Sterling","EUR_displayName":"Euro","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.en");dojo.cldr.nls.gregorian.en={"dateFormatItem-yM":"M/y","field-dayperiod":"AM/PM","dateFormatItem-yQ":"Q y","dayPeriods-format-wide-pm":"PM","field-minute":"Minute","eraNames":["Before Christ","Anno Domini"],"dateFormatItem-MMMEd":"E, MMM d","dateTimeFormat-full":"{1} {0}","field-day-relative+-1":"Yesterday","field-weekday":"Day of the Week","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yQQQ":"QQQ y","days-standAlone-wide":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateTimeFormat-short":"{1} {0}","field-era":"Era","field-hour":"Hour","dayPeriods-format-wide-am":"AM","dateTimeFormat-medium":"{1} {0}","dateFormatItem-y":"y","timeFormat-full":"h:mm:ss a zzzz","months-standAlone-abbr":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"dateFormatItem-yMMM":"MMM y","field-day-relative+0":"Today","field-day-relative+1":"Tomorrow","days-standAlone-narrow":["S","M","T","W","T","F","S"],"eraAbbr":["BC","AD"],"dateFormat-long":"MMMM d, y","timeFormat-medium":"h:mm:ss a","dateFormatItem-EEEd":"d EEE","field-zone":"Zone","dateFormatItem-Hm":"HH:mm","dateFormat-medium":"MMM d, y","dateFormatItem-Hms":"HH:mm:ss","quarters-standAlone-wide":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"dateFormatItem-ms":"mm:ss","field-year":"Year","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormat-long":"{1} {0}","field-week":"Week","months-standAlone-wide":["January","February","March","April","May","June","July","August","September","October","November","December"],"dateFormatItem-MMMd":"MMM d","timeFormat-long":"h:mm:ss a z","months-format-abbr":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"dayPeriods-format-wide-noon":"noon","timeFormat-short":"h:mm a","field-month":"Month","quarters-format-abbr":["Q1","Q2","Q3","Q4"],"days-format-abbr":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"dateFormatItem-M":"L","days-format-narrow":["S","M","T","W","T","F","S"],"field-second":"Second","field-day":"Day","dateFormatItem-MEd":"E, M/d","months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-hm":"h:mm a","days-standAlone-abbr":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"dateFormat-short":"M/d/yy","dateFormatItem-yMMMEd":"EEE, MMM d, y","dateFormat-full":"EEEE, MMMM d, y","dateFormatItem-Md":"M/d","dateFormatItem-yMEd":"EEE, M/d/y","months-format-wide":["January","February","March","April","May","June","July","August","September","October","November","December"],"dateFormatItem-d":"d","quarters-format-wide":["1st quarter","2nd quarter","3rd quarter","4th quarter"],"days-format-wide":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"eraNarrow":["B","A"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dayPeriods-format-narrow-am":"AM","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM"}; diff --git a/lib/dijit/nls/dijit-all_es-es.js b/lib/dijit/nls/dijit-all_es-es.js new file mode 100644 index 000000000..a647048cf --- /dev/null +++ b/lib/dijit/nls/dijit-all_es-es.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_es-es");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.es_es");dojo.nls.colors.es_es={"lightsteelblue":"azul acero claro","orangered":"rojo anaranjado","midnightblue":"azul medianoche","cadetblue":"azul cadete","seashell":"blanco marfil","slategrey":"gris pizarra","coral":"coral","darkturquoise":"turquesa oscuro","antiquewhite":"blanco antiguo","mediumspringgreen":"verde primavera medio","salmon":"salmón","darkgrey":"gris oscuro","ivory":"marfil","greenyellow":"amarillo verdoso","mistyrose":"rosa difuminado","lightsalmon":"salmón claro","silver":"plateado","dimgrey":"gris marengo","orange":"naranja","white":"blanco","navajowhite":"blanco navajo","royalblue":"azul real","deeppink":"rosa fuerte","lime":"lima","oldlace":"encaje antiguo","chartreuse":"verde pálido 2","darkcyan":"cian oscuro","yellow":"amarillo","linen":"blanco arena","olive":"verde oliva","gold":"oro","lawngreen":"verde césped","lightyellow":"amarillo claro","tan":"canela","darkviolet":"violeta oscuro","lightslategrey":"gris pizarra claro","grey":"gris","darkkhaki":"caqui oscuro","green":"verde","deepskyblue":"azul cielo fuerte","aqua":"aguamarina","sienna":"siena","mintcream":"crema menta","rosybrown":"marrón rosáceo","mediumslateblue":"azul pizarra medio","magenta":"magenta","lightseagreen":"verde mar claro","cyan":"cian","olivedrab":"verde oliva pardusco","darkgoldenrod":"ocre oscuro","slateblue":"azul pizarra","mediumaquamarine":"aguamarina medio","lavender":"lavanda","mediumseagreen":"verde mar medio","maroon":"granate","darkslategray":"gris pizarra oscuro","mediumturquoise":"turquesa medio","ghostwhite":"blanco ligero","darkblue":"azul oscuro","mediumvioletred":"rojo violáceo medio","brown":"marrón","lightgray":"gris claro","sandybrown":"marrón arcilla","pink":"rosa","firebrick":"teja","indigo":"añil","snow":"nieve","darkorchid":"orquídea oscuro","turquoise":"turquesa","chocolate":"chocolate","springgreen":"verde fuerte","moccasin":"arena","navy":"azul marino","lemonchiffon":"amarillo pastel","teal":"verde azulado","floralwhite":"blanco manteca","cornflowerblue":"azul aciano","paleturquoise":"turquesa pálido","purple":"púrpura","gainsboro":"azul gainsboro","plum":"ciruela","red":"rojo","blue":"azul","forestgreen":"verde pino","darkgreen":"verde oscuro","honeydew":"flor de rocío","darkseagreen":"verde mar oscuro","lightcoral":"coral claro","palevioletred":"rojo violáceo pálido","mediumpurple":"púrpura medio","saddlebrown":"cuero","darkmagenta":"magenta oscuro","thistle":"cardo","whitesmoke":"blanco ahumado","wheat":"trigo","violet":"violeta","lightskyblue":"azul cielo claro","goldenrod":"ocre","mediumblue":"azul medio","skyblue":"azul cielo","crimson":"carmesí","darksalmon":"salmón oscuro","darkred":"rojo oscuro","darkslategrey":"gris pizarra oscuro","peru":"perú","lightgrey":"gris claro","lightgoldenrodyellow":"ocre claro","blanchedalmond":"almendra pálido","aliceblue":"blanco azulado","bisque":"miel","slategray":"gris pizarra","palegoldenrod":"ocre pálido","darkorange":"naranja oscuro","aquamarine":"aguamarina 2","lightgreen":"verde claro","burlywood":"madera","dodgerblue":"azul fuerte","darkgray":"gris oscuro","lightcyan":"cian claro","powderblue":"azul suave","blueviolet":"azul violáceo","orchid":"orquídea","dimgray":"gris marengo","beige":"beige","fuchsia":"fucsia","lavenderblush":"lavanda rosácea","hotpink":"rosa oscuro","steelblue":"azul acero","tomato":"tomate","lightpink":"rosa claro","limegreen":"lima limón","indianred":"rojo teja","papayawhip":"papaya claro","lightslategray":"gris pizarra claro","gray":"gris","mediumorchid":"orquídea medio","cornsilk":"crudo","black":"negro","seagreen":"verde mar","darkslateblue":"azul pizarra oscuro","khaki":"caqui","lightblue":"azul claro","palegreen":"verde pálido","azure":"blanco cielo","peachpuff":"melocotón","darkolivegreen":"verde oliva oscuro","yellowgreen":"verde amarillento"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.es_es");dijit.nls.loading.es_es={"loadingState":"Cargando...","errorState":"Lo siento, se ha producido un error"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.es_es");dijit.nls.common.es_es={"buttonOk":"Aceptar","buttonCancel":"Cancelar","buttonSave":"Guardar","itemClose":"Cerrar"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.es_es");dijit._editor.nls.commands.es_es={"removeFormat":"Eliminar formato","copy":"Copiar","paste":"Pegar","selectAll":"Seleccionar todo","insertOrderedList":"Lista numerada","insertTable":"Insertar/Editar tabla","print":"Imprimir","underline":"Subrayado","foreColor":"Color de primer plano","htmlToggle":"Fuente HTML","formatBlock":"Estilo de párrafo","newPage":"Nueva página","insertHorizontalRule":"Regla horizontal","delete":"Suprimir","insertUnorderedList":"Lista con viñetas","tableProp":"Propiedad de tabla","insertImage":"Insertar imagen","superscript":"Superíndice","subscript":"Subíndice","createLink":"Crear enlace","undo":"Deshacer","fullScreen":"Conmutar pantalla completa","italic":"Cursiva","fontName":"Nombre de font","justifyLeft":"Alinear izquierda","unlink":"Eliminar enlace","toggleTableBorder":"Conmutar borde de tabla","viewSource":"Ver fuente HTML","ctrlKey":"control+${0}","fontSize":"Tamaño de font","systemShortcut":"La acción \"${0}\" sólo está disponible en su navegador mediante un atajo de teclado. Utilice ${1}.","indent":"Sangría","redo":"Rehacer","strikethrough":"Tachado","justifyFull":"Justificar","justifyCenter":"Alinear centro","hiliteColor":"Color de segundo plano","deleteTable":"Suprimir tabla","outdent":"Anular sangría","cut":"Cortar","plainFormatBlock":"Estilo de párrafo","toggleDir":"Conmutar dirección","bold":"Negrita","tabIndent":"Sangría de tabulador","justifyRight":"Alinear derecha","appleKey":"⌘${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.es_es");dijit.form.nls.validate.es_es={"rangeMessage":"Este valor está fuera del intervalo.","invalidMessage":"El valor especificado no es válido.","missingMessage":"Este valor es necesario."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.es_es");dijit.form.nls.ComboBox.es_es={"previousMessage":"Opciones anteriores","nextMessage":"Más opciones"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.es_es");dijit._editor.nls.FontChoice.es_es={"1":"xx-pequeño","2":"x-pequeño","formatBlock":"Formato","3":"pequeño","4":"medio","5":"grande","6":"x-grande","7":"xx-grande","fantasy":"fantasía","serif":"serif","p":"Párrafo","pre":"Preformateado","sans-serif":"sans-serif","fontName":"Font","h1":"Cabecera","h2":"Subcabecera","h3":"Sub-subcabecera","monospace":"espacio sencillo","fontSize":"Tamaño","cursive":"cursiva","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.es_es");dijit._editor.nls.LinkDialog.es_es={"text":"Descripción: ","insertImageTitle":"Propiedades de la imagen","set":"Establecer","newWindow":"Nueva ventana","topWindow":"Ventana superior","target":"Destino: ","createLinkTitle":"Propiedades del enlace","parentWindow":"Ventana padre","currentWindow":"Ventana actual","url":"URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.es_es");dojo.cldr.nls.number.es_es={"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤ #,##0.00","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" "};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.es_es");dojo.cldr.nls.currency.es_es={"HKD_displayName":"dólar de Hong Kong","CHF_displayName":"franco suizo","CAD_displayName":"dólar canadiense","CNY_displayName":"yuan renminbi chino","AUD_displayName":"dólar australiano","JPY_displayName":"yen japonés","USD_displayName":"dólar estadounidense","GBP_displayName":"libra esterlina británica","EUR_displayName":"euro","USD_symbol":"US$","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","JPY_symbol":"JP¥","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.es_es");dojo.cldr.nls.gregorian.es_es={"months-format-narrow":["E","F","M","A","M","J","J","A","S","O","N","D"],"field-weekday":"día de la semana","dateFormatItem-yyQQQQ":"QQQQ 'de' yy","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE d/M/y","dateFormatItem-MMMEd":"E d MMM","eraNarrow":["a.C.","d.C."],"dateFormatItem-MMMdd":"dd-MMM","dateFormat-long":"d 'de' MMMM 'de' y","months-format-wide":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"dateFormatItem-EEEd":"EEE d","dayPeriods-format-wide-pm":"p.m.","dateFormat-full":"EEEE d 'de' MMMM 'de' y","dateFormatItem-Md":"d/M","field-era":"era","dateFormatItem-yM":"M/y","months-standAlone-wide":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"timeFormat-short":"HH:mm","quarters-format-wide":["1er trimestre","2º trimestre","3er trimestre","4º trimestre"],"timeFormat-long":"HH:mm:ss z","field-year":"año","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q y","field-hour":"hora","months-format-abbr":["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"hoy","field-day-relative+1":"mañana","field-day-relative+2":"pasado mañana","field-day-relative+3":"Dentro de tres días","months-standAlone-abbr":["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],"quarters-format-abbr":["T1","T2","T3","T4"],"quarters-standAlone-wide":["1er trimestre","2º trimestre","3er trimestre","4º trimestre"],"dateFormatItem-M":"L","days-standAlone-wide":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"dateFormatItem-MMMMd":"d 'de' MMMM","dateFormatItem-yyMMM":"MMM-yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["T1","T2","T3","T4"],"eraAbbr":["a.C.","d.C."],"field-minute":"minuto","field-dayperiod":"periodo del día","days-standAlone-abbr":["dom","lun","mar","mié","jue","vie","sáb"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"ayer","dateFormatItem-h":"hh a","field-day-relative+-2":"antes de ayer","field-day-relative+-3":"Hace tres días","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"E, d/M","dateFormatItem-yMMMM":"MMMM 'de' y","field-day":"día","days-format-wide":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"field-zone":"zona","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-y":"y","months-standAlone-narrow":["E","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-yyMM":"MM/yy","dateFormatItem-hm":"hh:mm a","days-format-abbr":["dom","lun","mar","mié","jue","vie","sáb"],"eraNames":["antes de Cristo","anno Dómini"],"days-format-narrow":["D","L","M","M","J","V","S"],"field-month":"mes","days-standAlone-narrow":["D","L","M","M","J","V","S"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"a.m.","dateFormat-short":"dd/MM/yy","dateFormatItem-MMd":"d/MM","field-second":"segundo","dateFormatItem-yMMMEd":"EEE, d MMM y","field-week":"semana","dateFormat-medium":"dd/MM/yyyy","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"hh:mm:ss a","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","quarters-format-narrow":["1","2","3","4"],"dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"}; diff --git a/lib/dijit/nls/dijit-all_es.js b/lib/dijit/nls/dijit-all_es.js new file mode 100644 index 000000000..616b3b0a6 --- /dev/null +++ b/lib/dijit/nls/dijit-all_es.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_es");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.es");dojo.nls.colors.es={"lightsteelblue":"azul acero claro","orangered":"rojo anaranjado","midnightblue":"azul medianoche","cadetblue":"azul cadete","seashell":"blanco marfil","slategrey":"gris pizarra","coral":"coral","darkturquoise":"turquesa oscuro","antiquewhite":"blanco antiguo","mediumspringgreen":"verde primavera medio","salmon":"salmón","darkgrey":"gris oscuro","ivory":"marfil","greenyellow":"amarillo verdoso","mistyrose":"rosa difuminado","lightsalmon":"salmón claro","silver":"plateado","dimgrey":"gris marengo","orange":"naranja","white":"blanco","navajowhite":"blanco navajo","royalblue":"azul real","deeppink":"rosa fuerte","lime":"lima","oldlace":"encaje antiguo","chartreuse":"verde pálido 2","darkcyan":"cian oscuro","yellow":"amarillo","linen":"blanco arena","olive":"verde oliva","gold":"oro","lawngreen":"verde césped","lightyellow":"amarillo claro","tan":"canela","darkviolet":"violeta oscuro","lightslategrey":"gris pizarra claro","grey":"gris","darkkhaki":"caqui oscuro","green":"verde","deepskyblue":"azul cielo fuerte","aqua":"aguamarina","sienna":"siena","mintcream":"crema menta","rosybrown":"marrón rosáceo","mediumslateblue":"azul pizarra medio","magenta":"magenta","lightseagreen":"verde mar claro","cyan":"cian","olivedrab":"verde oliva pardusco","darkgoldenrod":"ocre oscuro","slateblue":"azul pizarra","mediumaquamarine":"aguamarina medio","lavender":"lavanda","mediumseagreen":"verde mar medio","maroon":"granate","darkslategray":"gris pizarra oscuro","mediumturquoise":"turquesa medio","ghostwhite":"blanco ligero","darkblue":"azul oscuro","mediumvioletred":"rojo violáceo medio","brown":"marrón","lightgray":"gris claro","sandybrown":"marrón arcilla","pink":"rosa","firebrick":"teja","indigo":"añil","snow":"nieve","darkorchid":"orquídea oscuro","turquoise":"turquesa","chocolate":"chocolate","springgreen":"verde fuerte","moccasin":"arena","navy":"azul marino","lemonchiffon":"amarillo pastel","teal":"verde azulado","floralwhite":"blanco manteca","cornflowerblue":"azul aciano","paleturquoise":"turquesa pálido","purple":"púrpura","gainsboro":"azul gainsboro","plum":"ciruela","red":"rojo","blue":"azul","forestgreen":"verde pino","darkgreen":"verde oscuro","honeydew":"flor de rocío","darkseagreen":"verde mar oscuro","lightcoral":"coral claro","palevioletred":"rojo violáceo pálido","mediumpurple":"púrpura medio","saddlebrown":"cuero","darkmagenta":"magenta oscuro","thistle":"cardo","whitesmoke":"blanco ahumado","wheat":"trigo","violet":"violeta","lightskyblue":"azul cielo claro","goldenrod":"ocre","mediumblue":"azul medio","skyblue":"azul cielo","crimson":"carmesí","darksalmon":"salmón oscuro","darkred":"rojo oscuro","darkslategrey":"gris pizarra oscuro","peru":"perú","lightgrey":"gris claro","lightgoldenrodyellow":"ocre claro","blanchedalmond":"almendra pálido","aliceblue":"blanco azulado","bisque":"miel","slategray":"gris pizarra","palegoldenrod":"ocre pálido","darkorange":"naranja oscuro","aquamarine":"aguamarina 2","lightgreen":"verde claro","burlywood":"madera","dodgerblue":"azul fuerte","darkgray":"gris oscuro","lightcyan":"cian claro","powderblue":"azul suave","blueviolet":"azul violáceo","orchid":"orquídea","dimgray":"gris marengo","beige":"beige","fuchsia":"fucsia","lavenderblush":"lavanda rosácea","hotpink":"rosa oscuro","steelblue":"azul acero","tomato":"tomate","lightpink":"rosa claro","limegreen":"lima limón","indianred":"rojo teja","papayawhip":"papaya claro","lightslategray":"gris pizarra claro","gray":"gris","mediumorchid":"orquídea medio","cornsilk":"crudo","black":"negro","seagreen":"verde mar","darkslateblue":"azul pizarra oscuro","khaki":"caqui","lightblue":"azul claro","palegreen":"verde pálido","azure":"blanco cielo","peachpuff":"melocotón","darkolivegreen":"verde oliva oscuro","yellowgreen":"verde amarillento"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.es");dijit.nls.loading.es={"loadingState":"Cargando...","errorState":"Lo siento, se ha producido un error"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.es");dijit.nls.common.es={"buttonOk":"Aceptar","buttonCancel":"Cancelar","buttonSave":"Guardar","itemClose":"Cerrar"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.es");dijit._editor.nls.commands.es={"removeFormat":"Eliminar formato","copy":"Copiar","paste":"Pegar","selectAll":"Seleccionar todo","insertOrderedList":"Lista numerada","insertTable":"Insertar/Editar tabla","print":"Imprimir","underline":"Subrayado","foreColor":"Color de primer plano","htmlToggle":"Fuente HTML","formatBlock":"Estilo de párrafo","newPage":"Nueva página","insertHorizontalRule":"Regla horizontal","delete":"Suprimir","insertUnorderedList":"Lista con viñetas","tableProp":"Propiedad de tabla","insertImage":"Insertar imagen","superscript":"Superíndice","subscript":"Subíndice","createLink":"Crear enlace","undo":"Deshacer","fullScreen":"Conmutar pantalla completa","italic":"Cursiva","fontName":"Nombre de font","justifyLeft":"Alinear izquierda","unlink":"Eliminar enlace","toggleTableBorder":"Conmutar borde de tabla","viewSource":"Ver fuente HTML","ctrlKey":"control+${0}","fontSize":"Tamaño de font","systemShortcut":"La acción \"${0}\" sólo está disponible en su navegador mediante un atajo de teclado. Utilice ${1}.","indent":"Sangría","redo":"Rehacer","strikethrough":"Tachado","justifyFull":"Justificar","justifyCenter":"Alinear centro","hiliteColor":"Color de segundo plano","deleteTable":"Suprimir tabla","outdent":"Anular sangría","cut":"Cortar","plainFormatBlock":"Estilo de párrafo","toggleDir":"Conmutar dirección","bold":"Negrita","tabIndent":"Sangría de tabulador","justifyRight":"Alinear derecha","appleKey":"⌘${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.es");dijit.form.nls.validate.es={"rangeMessage":"Este valor está fuera del intervalo.","invalidMessage":"El valor especificado no es válido.","missingMessage":"Este valor es necesario."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.es");dijit.form.nls.ComboBox.es={"previousMessage":"Opciones anteriores","nextMessage":"Más opciones"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.es");dijit._editor.nls.FontChoice.es={"1":"xx-pequeño","2":"x-pequeño","formatBlock":"Formato","3":"pequeño","4":"medio","5":"grande","6":"x-grande","7":"xx-grande","fantasy":"fantasía","serif":"serif","p":"Párrafo","pre":"Preformateado","sans-serif":"sans-serif","fontName":"Font","h1":"Cabecera","h2":"Subcabecera","h3":"Sub-subcabecera","monospace":"espacio sencillo","fontSize":"Tamaño","cursive":"cursiva","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.es");dijit._editor.nls.LinkDialog.es={"text":"Descripción: ","insertImageTitle":"Propiedades de la imagen","set":"Establecer","newWindow":"Nueva ventana","topWindow":"Ventana superior","target":"Destino: ","createLinkTitle":"Propiedades del enlace","parentWindow":"Ventana padre","currentWindow":"Ventana actual","url":"URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.es");dojo.cldr.nls.number.es={"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤ #,##0.00","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" "};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.es");dojo.cldr.nls.currency.es={"HKD_displayName":"dólar de Hong Kong","CHF_displayName":"franco suizo","CAD_displayName":"dólar canadiense","CNY_displayName":"yuan renminbi chino","AUD_displayName":"dólar australiano","JPY_displayName":"yen japonés","USD_displayName":"dólar estadounidense","GBP_displayName":"libra esterlina británica","EUR_displayName":"euro","USD_symbol":"US$","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","JPY_symbol":"JP¥","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.es");dojo.cldr.nls.gregorian.es={"months-format-narrow":["E","F","M","A","M","J","J","A","S","O","N","D"],"field-weekday":"día de la semana","dateFormatItem-yyQQQQ":"QQQQ 'de' yy","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE d/M/y","dateFormatItem-MMMEd":"E d MMM","eraNarrow":["a.C.","d.C."],"dateFormatItem-MMMdd":"dd-MMM","dateFormat-long":"d 'de' MMMM 'de' y","months-format-wide":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"dateFormatItem-EEEd":"EEE d","dayPeriods-format-wide-pm":"p.m.","dateFormat-full":"EEEE d 'de' MMMM 'de' y","dateFormatItem-Md":"d/M","field-era":"era","dateFormatItem-yM":"M/y","months-standAlone-wide":["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],"timeFormat-short":"HH:mm","quarters-format-wide":["1er trimestre","2º trimestre","3er trimestre","4º trimestre"],"timeFormat-long":"HH:mm:ss z","field-year":"año","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q y","field-hour":"hora","months-format-abbr":["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"hoy","field-day-relative+1":"mañana","field-day-relative+2":"pasado mañana","field-day-relative+3":"Dentro de tres días","months-standAlone-abbr":["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],"quarters-format-abbr":["T1","T2","T3","T4"],"quarters-standAlone-wide":["1er trimestre","2º trimestre","3er trimestre","4º trimestre"],"dateFormatItem-M":"L","days-standAlone-wide":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"dateFormatItem-MMMMd":"d 'de' MMMM","dateFormatItem-yyMMM":"MMM-yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["T1","T2","T3","T4"],"eraAbbr":["a.C.","d.C."],"field-minute":"minuto","field-dayperiod":"periodo del día","days-standAlone-abbr":["dom","lun","mar","mié","jue","vie","sáb"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"ayer","dateFormatItem-h":"hh a","field-day-relative+-2":"antes de ayer","field-day-relative+-3":"Hace tres días","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"E, d/M","dateFormatItem-yMMMM":"MMMM 'de' y","field-day":"día","days-format-wide":["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],"field-zone":"zona","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-y":"y","months-standAlone-narrow":["E","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-yyMM":"MM/yy","dateFormatItem-hm":"hh:mm a","days-format-abbr":["dom","lun","mar","mié","jue","vie","sáb"],"eraNames":["antes de Cristo","anno Dómini"],"days-format-narrow":["D","L","M","M","J","V","S"],"field-month":"mes","days-standAlone-narrow":["D","L","M","M","J","V","S"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"a.m.","dateFormat-short":"dd/MM/yy","dateFormatItem-MMd":"d/MM","field-second":"segundo","dateFormatItem-yMMMEd":"EEE, d MMM y","field-week":"semana","dateFormat-medium":"dd/MM/yyyy","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"hh:mm:ss a","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","quarters-format-narrow":["1","2","3","4"],"dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"}; diff --git a/lib/dijit/nls/dijit-all_fi-fi.js b/lib/dijit/nls/dijit-all_fi-fi.js new file mode 100644 index 000000000..d257fb43c --- /dev/null +++ b/lib/dijit/nls/dijit-all_fi-fi.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_fi-fi");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.fi_fi");dojo.nls.colors.fi_fi={"lightsteelblue":"light steel blue","orangered":"orange red","midnightblue":"midnight blue","cadetblue":"cadet blue","seashell":"seashell","slategrey":"slate gray","coral":"coral","darkturquoise":"dark turquoise","antiquewhite":"antique white","mediumspringgreen":"medium spring green","salmon":"salmon","darkgrey":"dark gray","ivory":"ivory","greenyellow":"green-yellow","mistyrose":"misty rose","lightsalmon":"light salmon","silver":"silver","dimgrey":"dim gray","orange":"orange","white":"white","navajowhite":"navajo white","royalblue":"royal blue","deeppink":"deep pink","lime":"lime","oldlace":"old lace","chartreuse":"chartreuse","darkcyan":"dark cyan","yellow":"yellow","linen":"linen","olive":"olive","gold":"gold","lawngreen":"lawn green","lightyellow":"light yellow","tan":"tan","darkviolet":"dark violet","lightslategrey":"light slate gray","grey":"gray","darkkhaki":"dark khaki","green":"green","deepskyblue":"deep sky blue","aqua":"aqua","sienna":"sienna","mintcream":"mint cream","rosybrown":"rosy brown","mediumslateblue":"medium slate blue","magenta":"magenta","lightseagreen":"light sea green","cyan":"cyan","olivedrab":"olive drab","darkgoldenrod":"dark goldenrod","slateblue":"slate blue","mediumaquamarine":"medium aquamarine","lavender":"lavender","mediumseagreen":"medium sea green","maroon":"maroon","darkslategray":"dark slate gray","mediumturquoise":"medium turquoise","ghostwhite":"ghost white","darkblue":"dark blue","mediumvioletred":"medium violet-red","brown":"brown","lightgray":"light gray","sandybrown":"sandy brown","pink":"pink","firebrick":"fire brick","indigo":"indigo","snow":"snow","darkorchid":"dark orchid","turquoise":"turquoise","chocolate":"chocolate","springgreen":"spring green","moccasin":"moccasin","navy":"navy","lemonchiffon":"lemon chiffon","teal":"teal","floralwhite":"floral white","cornflowerblue":"cornflower blue","paleturquoise":"pale turquoise","purple":"purple","gainsboro":"gainsboro","plum":"plum","red":"red","blue":"blue","forestgreen":"forest green","darkgreen":"dark green","honeydew":"honeydew","darkseagreen":"dark sea green","lightcoral":"light coral","palevioletred":"pale violet-red","mediumpurple":"medium purple","saddlebrown":"saddle brown","darkmagenta":"dark magenta","thistle":"thistle","whitesmoke":"white smoke","wheat":"wheat","violet":"violet","lightskyblue":"light sky blue","goldenrod":"goldenrod","mediumblue":"medium blue","skyblue":"sky blue","crimson":"crimson","darksalmon":"dark salmon","darkred":"dark red","darkslategrey":"dark slate gray","peru":"peru","lightgrey":"light gray","lightgoldenrodyellow":"light goldenrod yellow","blanchedalmond":"blanched almond","aliceblue":"alice blue","bisque":"bisque","slategray":"slate gray","palegoldenrod":"pale goldenrod","darkorange":"dark orange","aquamarine":"aquamarine","lightgreen":"light green","burlywood":"burlywood","dodgerblue":"dodger blue","darkgray":"dark gray","lightcyan":"light cyan","powderblue":"powder blue","blueviolet":"blue-violet","orchid":"orchid","dimgray":"dim gray","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavender blush","hotpink":"hot pink","steelblue":"steel blue","tomato":"tomato","lightpink":"light pink","limegreen":"lime green","indianred":"indian red","papayawhip":"papaya whip","lightslategray":"light slate gray","gray":"gray","mediumorchid":"medium orchid","cornsilk":"cornsilk","black":"black","seagreen":"sea green","darkslateblue":"dark slate blue","khaki":"khaki","lightblue":"light blue","palegreen":"pale green","azure":"azure","peachpuff":"peach puff","darkolivegreen":"dark olive green","yellowgreen":"yellow green"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.fi_fi");dijit.nls.loading.fi_fi={"loadingState":"Lataus on meneillään...","errorState":"On ilmennyt virhe."};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.fi_fi");dijit.nls.common.fi_fi={"buttonOk":"OK","buttonCancel":"Peruuta","buttonSave":"Tallenna","itemClose":"Sulje"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.fi_fi");dijit._editor.nls.commands.fi_fi={"removeFormat":"Poista muotoilu","copy":"Kopioi","paste":"Liitä","selectAll":"Valitse kaikki","insertOrderedList":"Numeroitu luettelo","insertTable":"Lisää taulukko/muokkaa taulukkoa","print":"Tulosta","underline":"Alleviivaus","foreColor":"Edustaväri","htmlToggle":"HTML-lähde","formatBlock":"Kappaletyyli","newPage":"Uusi sivu","insertHorizontalRule":"Vaakasuuntainen viiva","delete":"Poista","insertUnorderedList":"Numeroimaton luettelo","tableProp":"Taulukon ominaisuudet","insertImage":"Lisää kuva","superscript":"Yläindeksi","subscript":"Alaindeksi","createLink":"Luo linkki","undo":"Kumoa","fullScreen":"Vaihda koko näyttö","italic":"Kursivointi","fontName":"Fontin nimi","justifyLeft":"Tasaus vasemmalle","unlink":"Poista linkki","toggleTableBorder":"Ota taulukon kehys käyttöön/poista kehys käytöstä","viewSource":"Näytä HTML-lähde","fontSize":"Fontin koko","systemShortcut":"Toiminto \"${0}\" on käytettävissä selaimessa vain näppäimistön pikatoiminnolla. Käytä seuraavaa: ${1}.","indent":"Sisennä","redo":"Tee uudelleen","strikethrough":"Yliviivaus","justifyFull":"Tasaus","justifyCenter":"Tasaus keskelle","hiliteColor":"Taustaväri","deleteTable":"Poista taulukko","outdent":"Ulonna","cut":"Leikkaa","plainFormatBlock":"Kappaletyyli","toggleDir":"Vaihda suuntaa","bold":"Lihavointi","tabIndent":"Sarkainsisennys","justifyRight":"Tasaus oikealle","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.fi_fi");dijit.form.nls.validate.fi_fi={"rangeMessage":"Tämä arvo on sallitun alueen ulkopuolella.","invalidMessage":"Annettu arvo ei kelpaa.","missingMessage":"Tämä arvo on pakollinen."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.fi_fi");dijit.form.nls.ComboBox.fi_fi={"previousMessage":"Edelliset valinnat","nextMessage":"Lisää valintoja"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.fi_fi");dijit._editor.nls.FontChoice.fi_fi={"1":"xx-small","2":"x-small","formatBlock":"Muoto","3":"small","4":"medium","5":"large","6":"x-large","7":"xx-large","fantasy":"fantasy","serif":"serif","p":"Kappale","pre":"Esimuotoiltu","sans-serif":"sans-serif","fontName":"Fontti","h1":"Otsikko","h2":"Alatason otsikko","h3":"Alimman tason otsikko","monospace":"monospace","fontSize":"Koko","cursive":"cursive","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.fi_fi");dijit._editor.nls.LinkDialog.fi_fi={"text":"Kuvaus:","insertImageTitle":"Kuvan ominaisuudet","set":"Aseta","newWindow":"Uusi ikkuna","topWindow":"Päällimmäinen ikkuna","target":"Kohde:","createLinkTitle":"Linkin ominaisuudet","parentWindow":"Pääikkuna","currentWindow":"Nykyinen ikkuna","url":"URL-osoite:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.fi_fi");dojo.cldr.nls.number.fi_fi={"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"epäluku","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.fi_fi");dojo.cldr.nls.currency.fi_fi={"HKD_displayName":"Hongkongin dollari","CHF_displayName":"Sveitsin frangi","CHF_symbol":"CHF","JPY_symbol":"¥","HKD_symbol":"HKD","CAD_displayName":"Kanadan dollari","CNY_displayName":"Kiinan yuan","USD_symbol":"$","AUD_displayName":"Australian dollari","JPY_displayName":"Japanin jeni","CAD_symbol":"CAD","USD_displayName":"Yhdysvaltain dollari","CNY_symbol":"CNY","GBP_displayName":"Englannin punta","AUD_symbol":"AUD","EUR_displayName":"euro","GBP_symbol":"£","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.fi_fi");dojo.cldr.nls.gregorian.fi_fi={"months-format-narrow":["T","H","M","H","T","K","H","E","S","L","M","J"],"field-weekday":"viikonpäivä","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE d.M.yyyy","dateFormatItem-MMMEd":"E d. MMM","eraNarrow":["eKr.","jKr."],"dateFormat-long":"d. MMMM y","months-format-wide":["tammikuuta","helmikuuta","maaliskuuta","huhtikuuta","toukokuuta","kesäkuuta","heinäkuuta","elokuuta","syyskuuta","lokakuuta","marraskuuta","joulukuuta"],"dateFormatItem-EEEd":"EEE d.","dayPeriods-format-wide-pm":"ip.","dateFormat-full":"EEEE d. MMMM y","dateFormatItem-Md":"d.M.","dayPeriods-standAlone-wide-pm":"ip.","dayPeriods-format-abbr-am":"ap.","field-era":"aikakausi","dateFormatItem-yM":"L.yyyy","months-standAlone-wide":["tammikuu","helmikuu","maaliskuu","huhtikuu","toukokuu","kesäkuu","heinäkuu","elokuu","syyskuu","lokakuu","marraskuu","joulukuu"],"timeFormat-short":"H.mm","quarters-format-wide":["1. neljännes","2. neljännes","3. neljännes","4. neljännes"],"timeFormat-long":"H.mm.ss z","field-year":"vuosi","dateFormatItem-yMMM":"LLL y","dateFormatItem-yQ":"Q/yyyy","dateFormatItem-yyyyMMMM":"LLLL y","field-hour":"tunti","months-format-abbr":["tammikuuta","helmikuuta","maaliskuuta","huhtikuuta","toukokuuta","kesäkuuta","heinäkuuta","elokuuta","syyskuuta","lokakuuta","marraskuuta","joulukuuta"],"dateFormatItem-yyQ":"Q/yy","timeFormat-full":"H.mm.ss zzzz","dateFormatItem-yyyyMEEEd":"EEE d.M.yyyy","field-day-relative+0":"tänään","field-day-relative+1":"huomenna","field-day-relative+2":"ylihuomenna","dateFormatItem-H":"H","months-standAlone-abbr":["tammi","helmi","maalis","huhti","touko","kesä","heinä","elo","syys","loka","marras","joulu"],"quarters-format-abbr":["1. nelj.","2. nelj.","3. nelj.","4. nelj."],"quarters-standAlone-wide":["1. neljännes","2. neljännes","3. neljännes","4. neljännes"],"dateFormatItem-M":"L","days-standAlone-wide":["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"],"dateFormatItem-yyMMM":"LLLL yy","timeFormat-medium":"H.mm.ss","dateFormatItem-Hm":"H.mm","quarters-standAlone-abbr":["1. nelj.","2. nelj.","3. nelj.","4. nelj."],"eraAbbr":["eKr.","jKr."],"field-minute":"minuutti","field-dayperiod":"ap./ip.","days-standAlone-abbr":["su","ma","ti","ke","to","pe","la"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm.ss","field-day-relative+-1":"eilen","field-day-relative+-2":"toissapäivänä","dateFormatItem-MMMd":"d. MMM","dateFormatItem-MEd":"E d.M.","field-day":"päivä","dateFormatItem-yMMMMccccd":"cccc, d. MMMM y","days-format-wide":["sunnuntaina","maanantaina","tiistaina","keskiviikkona","torstaina","perjantaina","lauantaina"],"field-zone":"aikavyöhyke","dateFormatItem-y":"y","months-standAlone-narrow":["T","H","M","H","T","K","H","E","S","L","M","J"],"dateFormatItem-yyMM":"M/yy","dateFormatItem-hm":"h.mm a","dayPeriods-format-abbr-pm":"ip.","days-format-abbr":["su","ma","ti","ke","to","pe","la"],"eraNames":["ennen Kristuksen syntymää","jälkeen Kristuksen syntymän"],"days-format-narrow":["S","M","T","K","T","P","L"],"field-month":"kuukausi","days-standAlone-narrow":["S","M","T","K","T","P","L"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"ap.","dayPeriods-standAlone-wide-am":"ap.","dateFormat-short":"d.M.yyyy","field-second":"sekunti","dateFormatItem-yMMMEd":"EEE d. MMM y","field-week":"viikko","dateFormat-medium":"d.M.yyyy","dateFormatItem-yyyyM":"M/yyyy","dateFormatItem-yyyyQQQQ":"QQQQ y","dateFormatItem-Hms":"H.mm.ss","dateFormatItem-hms":"h.mm.ss a","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"}; diff --git a/lib/dijit/nls/dijit-all_fi.js b/lib/dijit/nls/dijit-all_fi.js new file mode 100644 index 000000000..95a4f216e --- /dev/null +++ b/lib/dijit/nls/dijit-all_fi.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_fi");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.fi");dojo.nls.colors.fi={"lightsteelblue":"light steel blue","orangered":"orange red","midnightblue":"midnight blue","cadetblue":"cadet blue","seashell":"seashell","slategrey":"slate gray","coral":"coral","darkturquoise":"dark turquoise","antiquewhite":"antique white","mediumspringgreen":"medium spring green","salmon":"salmon","darkgrey":"dark gray","ivory":"ivory","greenyellow":"green-yellow","mistyrose":"misty rose","lightsalmon":"light salmon","silver":"silver","dimgrey":"dim gray","orange":"orange","white":"white","navajowhite":"navajo white","royalblue":"royal blue","deeppink":"deep pink","lime":"lime","oldlace":"old lace","chartreuse":"chartreuse","darkcyan":"dark cyan","yellow":"yellow","linen":"linen","olive":"olive","gold":"gold","lawngreen":"lawn green","lightyellow":"light yellow","tan":"tan","darkviolet":"dark violet","lightslategrey":"light slate gray","grey":"gray","darkkhaki":"dark khaki","green":"green","deepskyblue":"deep sky blue","aqua":"aqua","sienna":"sienna","mintcream":"mint cream","rosybrown":"rosy brown","mediumslateblue":"medium slate blue","magenta":"magenta","lightseagreen":"light sea green","cyan":"cyan","olivedrab":"olive drab","darkgoldenrod":"dark goldenrod","slateblue":"slate blue","mediumaquamarine":"medium aquamarine","lavender":"lavender","mediumseagreen":"medium sea green","maroon":"maroon","darkslategray":"dark slate gray","mediumturquoise":"medium turquoise","ghostwhite":"ghost white","darkblue":"dark blue","mediumvioletred":"medium violet-red","brown":"brown","lightgray":"light gray","sandybrown":"sandy brown","pink":"pink","firebrick":"fire brick","indigo":"indigo","snow":"snow","darkorchid":"dark orchid","turquoise":"turquoise","chocolate":"chocolate","springgreen":"spring green","moccasin":"moccasin","navy":"navy","lemonchiffon":"lemon chiffon","teal":"teal","floralwhite":"floral white","cornflowerblue":"cornflower blue","paleturquoise":"pale turquoise","purple":"purple","gainsboro":"gainsboro","plum":"plum","red":"red","blue":"blue","forestgreen":"forest green","darkgreen":"dark green","honeydew":"honeydew","darkseagreen":"dark sea green","lightcoral":"light coral","palevioletred":"pale violet-red","mediumpurple":"medium purple","saddlebrown":"saddle brown","darkmagenta":"dark magenta","thistle":"thistle","whitesmoke":"white smoke","wheat":"wheat","violet":"violet","lightskyblue":"light sky blue","goldenrod":"goldenrod","mediumblue":"medium blue","skyblue":"sky blue","crimson":"crimson","darksalmon":"dark salmon","darkred":"dark red","darkslategrey":"dark slate gray","peru":"peru","lightgrey":"light gray","lightgoldenrodyellow":"light goldenrod yellow","blanchedalmond":"blanched almond","aliceblue":"alice blue","bisque":"bisque","slategray":"slate gray","palegoldenrod":"pale goldenrod","darkorange":"dark orange","aquamarine":"aquamarine","lightgreen":"light green","burlywood":"burlywood","dodgerblue":"dodger blue","darkgray":"dark gray","lightcyan":"light cyan","powderblue":"powder blue","blueviolet":"blue-violet","orchid":"orchid","dimgray":"dim gray","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavender blush","hotpink":"hot pink","steelblue":"steel blue","tomato":"tomato","lightpink":"light pink","limegreen":"lime green","indianred":"indian red","papayawhip":"papaya whip","lightslategray":"light slate gray","gray":"gray","mediumorchid":"medium orchid","cornsilk":"cornsilk","black":"black","seagreen":"sea green","darkslateblue":"dark slate blue","khaki":"khaki","lightblue":"light blue","palegreen":"pale green","azure":"azure","peachpuff":"peach puff","darkolivegreen":"dark olive green","yellowgreen":"yellow green"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.fi");dijit.nls.loading.fi={"loadingState":"Lataus on meneillään...","errorState":"On ilmennyt virhe."};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.fi");dijit.nls.common.fi={"buttonOk":"OK","buttonCancel":"Peruuta","buttonSave":"Tallenna","itemClose":"Sulje"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.fi");dijit._editor.nls.commands.fi={"removeFormat":"Poista muotoilu","copy":"Kopioi","paste":"Liitä","selectAll":"Valitse kaikki","insertOrderedList":"Numeroitu luettelo","insertTable":"Lisää taulukko/muokkaa taulukkoa","print":"Tulosta","underline":"Alleviivaus","foreColor":"Edustaväri","htmlToggle":"HTML-lähde","formatBlock":"Kappaletyyli","newPage":"Uusi sivu","insertHorizontalRule":"Vaakasuuntainen viiva","delete":"Poista","insertUnorderedList":"Numeroimaton luettelo","tableProp":"Taulukon ominaisuudet","insertImage":"Lisää kuva","superscript":"Yläindeksi","subscript":"Alaindeksi","createLink":"Luo linkki","undo":"Kumoa","fullScreen":"Vaihda koko näyttö","italic":"Kursivointi","fontName":"Fontin nimi","justifyLeft":"Tasaus vasemmalle","unlink":"Poista linkki","toggleTableBorder":"Ota taulukon kehys käyttöön/poista kehys käytöstä","viewSource":"Näytä HTML-lähde","fontSize":"Fontin koko","systemShortcut":"Toiminto \"${0}\" on käytettävissä selaimessa vain näppäimistön pikatoiminnolla. Käytä seuraavaa: ${1}.","indent":"Sisennä","redo":"Tee uudelleen","strikethrough":"Yliviivaus","justifyFull":"Tasaus","justifyCenter":"Tasaus keskelle","hiliteColor":"Taustaväri","deleteTable":"Poista taulukko","outdent":"Ulonna","cut":"Leikkaa","plainFormatBlock":"Kappaletyyli","toggleDir":"Vaihda suuntaa","bold":"Lihavointi","tabIndent":"Sarkainsisennys","justifyRight":"Tasaus oikealle","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.fi");dijit.form.nls.validate.fi={"rangeMessage":"Tämä arvo on sallitun alueen ulkopuolella.","invalidMessage":"Annettu arvo ei kelpaa.","missingMessage":"Tämä arvo on pakollinen."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.fi");dijit.form.nls.ComboBox.fi={"previousMessage":"Edelliset valinnat","nextMessage":"Lisää valintoja"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.fi");dijit._editor.nls.FontChoice.fi={"1":"xx-small","2":"x-small","formatBlock":"Muoto","3":"small","4":"medium","5":"large","6":"x-large","7":"xx-large","fantasy":"fantasy","serif":"serif","p":"Kappale","pre":"Esimuotoiltu","sans-serif":"sans-serif","fontName":"Fontti","h1":"Otsikko","h2":"Alatason otsikko","h3":"Alimman tason otsikko","monospace":"monospace","fontSize":"Koko","cursive":"cursive","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.fi");dijit._editor.nls.LinkDialog.fi={"text":"Kuvaus:","insertImageTitle":"Kuvan ominaisuudet","set":"Aseta","newWindow":"Uusi ikkuna","topWindow":"Päällimmäinen ikkuna","target":"Kohde:","createLinkTitle":"Linkin ominaisuudet","parentWindow":"Pääikkuna","currentWindow":"Nykyinen ikkuna","url":"URL-osoite:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.fi");dojo.cldr.nls.number.fi={"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"epäluku","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.fi");dojo.cldr.nls.currency.fi={"HKD_displayName":"Hongkongin dollari","CHF_displayName":"Sveitsin frangi","CHF_symbol":"CHF","JPY_symbol":"¥","HKD_symbol":"HKD","CAD_displayName":"Kanadan dollari","CNY_displayName":"Kiinan yuan","USD_symbol":"$","AUD_displayName":"Australian dollari","JPY_displayName":"Japanin jeni","CAD_symbol":"CAD","USD_displayName":"Yhdysvaltain dollari","CNY_symbol":"CNY","GBP_displayName":"Englannin punta","AUD_symbol":"AUD","EUR_displayName":"euro","GBP_symbol":"£","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.fi");dojo.cldr.nls.gregorian.fi={"months-format-narrow":["T","H","M","H","T","K","H","E","S","L","M","J"],"field-weekday":"viikonpäivä","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE d.M.yyyy","dateFormatItem-MMMEd":"E d. MMM","eraNarrow":["eKr.","jKr."],"dateFormat-long":"d. MMMM y","months-format-wide":["tammikuuta","helmikuuta","maaliskuuta","huhtikuuta","toukokuuta","kesäkuuta","heinäkuuta","elokuuta","syyskuuta","lokakuuta","marraskuuta","joulukuuta"],"dateFormatItem-EEEd":"EEE d.","dayPeriods-format-wide-pm":"ip.","dateFormat-full":"EEEE d. MMMM y","dateFormatItem-Md":"d.M.","dayPeriods-standAlone-wide-pm":"ip.","dayPeriods-format-abbr-am":"ap.","field-era":"aikakausi","dateFormatItem-yM":"L.yyyy","months-standAlone-wide":["tammikuu","helmikuu","maaliskuu","huhtikuu","toukokuu","kesäkuu","heinäkuu","elokuu","syyskuu","lokakuu","marraskuu","joulukuu"],"timeFormat-short":"H.mm","quarters-format-wide":["1. neljännes","2. neljännes","3. neljännes","4. neljännes"],"timeFormat-long":"H.mm.ss z","field-year":"vuosi","dateFormatItem-yMMM":"LLL y","dateFormatItem-yQ":"Q/yyyy","dateFormatItem-yyyyMMMM":"LLLL y","field-hour":"tunti","months-format-abbr":["tammikuuta","helmikuuta","maaliskuuta","huhtikuuta","toukokuuta","kesäkuuta","heinäkuuta","elokuuta","syyskuuta","lokakuuta","marraskuuta","joulukuuta"],"dateFormatItem-yyQ":"Q/yy","timeFormat-full":"H.mm.ss zzzz","dateFormatItem-yyyyMEEEd":"EEE d.M.yyyy","field-day-relative+0":"tänään","field-day-relative+1":"huomenna","field-day-relative+2":"ylihuomenna","dateFormatItem-H":"H","months-standAlone-abbr":["tammi","helmi","maalis","huhti","touko","kesä","heinä","elo","syys","loka","marras","joulu"],"quarters-format-abbr":["1. nelj.","2. nelj.","3. nelj.","4. nelj."],"quarters-standAlone-wide":["1. neljännes","2. neljännes","3. neljännes","4. neljännes"],"dateFormatItem-M":"L","days-standAlone-wide":["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"],"dateFormatItem-yyMMM":"LLLL yy","timeFormat-medium":"H.mm.ss","dateFormatItem-Hm":"H.mm","quarters-standAlone-abbr":["1. nelj.","2. nelj.","3. nelj.","4. nelj."],"eraAbbr":["eKr.","jKr."],"field-minute":"minuutti","field-dayperiod":"ap./ip.","days-standAlone-abbr":["su","ma","ti","ke","to","pe","la"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm.ss","field-day-relative+-1":"eilen","field-day-relative+-2":"toissapäivänä","dateFormatItem-MMMd":"d. MMM","dateFormatItem-MEd":"E d.M.","field-day":"päivä","dateFormatItem-yMMMMccccd":"cccc, d. MMMM y","days-format-wide":["sunnuntaina","maanantaina","tiistaina","keskiviikkona","torstaina","perjantaina","lauantaina"],"field-zone":"aikavyöhyke","dateFormatItem-y":"y","months-standAlone-narrow":["T","H","M","H","T","K","H","E","S","L","M","J"],"dateFormatItem-yyMM":"M/yy","dateFormatItem-hm":"h.mm a","dayPeriods-format-abbr-pm":"ip.","days-format-abbr":["su","ma","ti","ke","to","pe","la"],"eraNames":["ennen Kristuksen syntymää","jälkeen Kristuksen syntymän"],"days-format-narrow":["S","M","T","K","T","P","L"],"field-month":"kuukausi","days-standAlone-narrow":["S","M","T","K","T","P","L"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"ap.","dayPeriods-standAlone-wide-am":"ap.","dateFormat-short":"d.M.yyyy","field-second":"sekunti","dateFormatItem-yMMMEd":"EEE d. MMM y","field-week":"viikko","dateFormat-medium":"d.M.yyyy","dateFormatItem-yyyyM":"M/yyyy","dateFormatItem-yyyyQQQQ":"QQQQ y","dateFormatItem-Hms":"H.mm.ss","dateFormatItem-hms":"h.mm.ss a","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"}; diff --git a/lib/dijit/nls/dijit-all_fr-fr.js b/lib/dijit/nls/dijit-all_fr-fr.js new file mode 100644 index 000000000..8055fbf89 --- /dev/null +++ b/lib/dijit/nls/dijit-all_fr-fr.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_fr-fr");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.fr_fr");dojo.nls.colors.fr_fr={"lightsteelblue":"bleu acier clair","orangered":"rouge orangé","midnightblue":"bleu nuit","cadetblue":"bleu pétrole","seashell":"coquillage","slategrey":"gris ardoise","coral":"corail","darkturquoise":"turquoise foncé","antiquewhite":"blanc antique","mediumspringgreen":"vert printemps moyen","salmon":"saumon","darkgrey":"gris foncé","ivory":"ivoire","greenyellow":"vert-jaune","mistyrose":"rose pâle","lightsalmon":"saumon clair","silver":"argent","dimgrey":"gris soutenu","orange":"orange","white":"blanc","navajowhite":"chair","royalblue":"bleu roi","deeppink":"rose soutenu","lime":"vert citron","oldlace":"blanc cassé","chartreuse":"vert vif","darkcyan":"cyan foncé","yellow":"jaune","linen":"écru","olive":"olive","gold":"or","lawngreen":"vert prairie","lightyellow":"jaune clair","tan":"grège","darkviolet":"violet foncé","lightslategrey":"gris ardoise clair","grey":"gris","darkkhaki":"kaki foncé","green":"vert","deepskyblue":"bleu ciel soutenu","aqua":"bleu-vert","sienna":"terre de sienne","mintcream":"crème de menthe","rosybrown":"vieux rose","mediumslateblue":"bleu ardoise moyen","magenta":"magenta","lightseagreen":"vert d'eau clair","cyan":"cyan","olivedrab":"brun verdâtre","darkgoldenrod":"jaune paille foncé","slateblue":"bleu ardoise","mediumaquamarine":"aigue-marine moyen","lavender":"lavande","mediumseagreen":"vert d'eau moyen","maroon":"marron","darkslategray":"gris ardoise foncé","mediumturquoise":"turquoise moyen","ghostwhite":"blanc laiteux","darkblue":"bleu foncé","mediumvioletred":"rouge violacé moyen","brown":"brun","lightgray":"gris clair","sandybrown":"sable","pink":"rose","firebrick":"rouge brique","indigo":"indigo","snow":"neige","darkorchid":"lilas foncé","turquoise":"turquoise","chocolate":"chocolat","springgreen":"vert printemps","moccasin":"chamois","navy":"bleu marine","lemonchiffon":"mousse de citron","teal":"sarcelle","floralwhite":"lys","cornflowerblue":"bleuet","paleturquoise":"turquoise pâle","purple":"pourpre","gainsboro":"gris souris","plum":"prune","red":"rouge","blue":"bleu","forestgreen":"vert sapin","darkgreen":"vert foncé","honeydew":"opalin","darkseagreen":"vert d'eau foncé","lightcoral":"corail clair","palevioletred":"rouge violacé pâle","mediumpurple":"pourpre moyen","saddlebrown":"brun cuir","darkmagenta":"magenta foncé","thistle":"chardon","whitesmoke":"blanc cendré","wheat":"blé","violet":"violet","lightskyblue":"bleu ciel clair","goldenrod":"jaune paille","mediumblue":"bleu moyen","skyblue":"bleu ciel","crimson":"cramoisi","darksalmon":"saumon foncé","darkred":"rouge foncé","darkslategrey":"gris ardoise foncé","peru":"caramel","lightgrey":"gris clair","lightgoldenrodyellow":"jaune paille clair","blanchedalmond":"coquille d'oeuf","aliceblue":"bleu gris","bisque":"beige rosé","slategray":"gris ardoise","palegoldenrod":"jaune paille pâle","darkorange":"orange foncé","aquamarine":"aigue-marine","lightgreen":"vert clair","burlywood":"bois précieux","dodgerblue":"bleu France","darkgray":"gris foncé","lightcyan":"cyan clair","powderblue":"bleu de smalt","blueviolet":"bleu-violet","orchid":"lilas","dimgray":"gris soutenu","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavandin","hotpink":"rose intense","steelblue":"bleu acier","tomato":"tomate","lightpink":"rose clair","limegreen":"citron vert","indianred":"rose indien","papayawhip":"crème de papaye","lightslategray":"gris ardoise clair","gray":"gris","mediumorchid":"lilas moyen","cornsilk":"vanille","black":"noir","seagreen":"vert d'eau","darkslateblue":"bleu ardoise foncé","khaki":"kaki","lightblue":"bleu clair","palegreen":"vert pâle","azure":"bleu azur","peachpuff":"pêche","darkolivegreen":"olive foncé","yellowgreen":"vert jaunâtre"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.fr_fr");dijit.nls.loading.fr_fr={"loadingState":"Chargement...","errorState":"Une erreur est survenue"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.fr_fr");dijit.nls.common.fr_fr={"buttonOk":"OK","buttonCancel":"Annuler","buttonSave":"Sauvegarder","itemClose":"Fermer"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.fr_fr");dijit._editor.nls.commands.fr_fr={"removeFormat":"Supprimer la mise en forme","copy":"Copier","paste":"Coller","selectAll":"Sélectionner tout","insertOrderedList":"Liste numérotée","insertTable":"Insérer/Modifier un tableau","print":"Imprimer","underline":"Souligner","foreColor":"Couleur avant-plan","htmlToggle":"Source HTML","formatBlock":"Style de paragraphe","newPage":"Nouvelle page","insertHorizontalRule":"Règle horizontale","delete":"Supprimer","insertUnorderedList":"Liste à puces","tableProp":"Propriété du tableau","insertImage":"Insérer une image","superscript":"Exposant","subscript":"Indice","createLink":"Créer un lien","undo":"Annuler","fullScreen":"Basculer vers le mode plein écran","italic":"Italique","fontName":"Nom de police","justifyLeft":"Aligner à gauche","unlink":"Supprimer le lien","toggleTableBorder":"Afficher/Masquer la bordure du tableau","viewSource":"Afficher la source HTML","fontSize":"Taille de police","systemShortcut":"Action \"${0}\" uniquement disponible dans votre navigateur via un raccourci clavier. Utilisez ${1}.","indent":"Retrait","redo":"Rétablir","strikethrough":"Barrer","justifyFull":"Justifier","justifyCenter":"Aligner au centre","hiliteColor":"Couleur arrière-plan","deleteTable":"Supprimer le tableau","outdent":"Retrait négatif","cut":"Couper","plainFormatBlock":"Style de paragraphe","toggleDir":"Changer de sens","bold":"Gras","tabIndent":"Retrait de tabulation","justifyRight":"Aligner à droite","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.fr_fr");dijit.form.nls.validate.fr_fr={"rangeMessage":"Cette valeur n'est pas comprise dans la plage autorisée.","invalidMessage":"La valeur indiquée n'est pas correcte.","missingMessage":"Cette valeur est requise."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.fr_fr");dijit.form.nls.ComboBox.fr_fr={"previousMessage":"Choix précédents","nextMessage":"Plus de choix"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.fr_fr");dijit._editor.nls.FontChoice.fr_fr={"1":"xxs","2":"xs","formatBlock":"Mise en forme","3":"s","4":"m","5":"l","6":"xl","7":"xxl","fantasy":"fantaisie","serif":"serif","p":"Paragraphe","pre":"Pré-mise en forme","sans-serif":"sans serif","fontName":"Police","h1":"En-tête","h2":"Sous-en-tête","h3":"Sous-sous-en-tête","monospace":"espacement fixe","fontSize":"Taille","cursive":"cursive","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.fr_fr");dijit._editor.nls.LinkDialog.fr_fr={"text":"Description :","insertImageTitle":"Propriétés des images","set":"Définir","newWindow":"Nouvelle fenêtre","topWindow":"Première fenêtre","target":"Cible :","createLinkTitle":"Propriétés des liens","parentWindow":"Fenêtre parent","currentWindow":"Fenêtre en cours","url":"URL :"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.fr_fr");dojo.cldr.nls.number.fr_fr={"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.fr_fr");dojo.cldr.nls.currency.fr_fr={"HKD_displayName":"dollar de Hong Kong","CHF_displayName":"franc suisse","CHF_symbol":"CHF","JPY_symbol":"¥JP","HKD_symbol":"$HK","CAD_displayName":"dollar canadien","CNY_displayName":"yuan renminbi chinois","USD_symbol":"$US","AUD_displayName":"dollar australien","JPY_displayName":"yen japonais","CAD_symbol":"$CA","USD_displayName":"dollar des États-Unis","CNY_symbol":"Ұ","GBP_displayName":"livre sterling","GBP_symbol":"£UK","AUD_symbol":"$AU","EUR_displayName":"euro","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.fr_fr");dojo.cldr.nls.gregorian.fr_fr={"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-weekday":"jour de la semaine","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE d/M/yyyy","dateFormatItem-MMMEd":"E d MMM","eraNarrow":["av. J.-C.","ap. J.-C."],"dayPeriods-format-wide-morning":"matin","dateFormatItem-MMMdd":"dd MMM","dateFormat-long":"d MMMM y","months-format-wide":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"dateFormatItem-EEEd":"d EEE","dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE d MMMM y","dateFormatItem-Md":"d/M","dayPeriods-format-wide-noon":"midi","field-era":"ère","dateFormatItem-yM":"M/yyyy","months-standAlone-wide":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"timeFormat-short":"HH:mm","quarters-format-wide":["1er trimestre","2e trimestre","3e trimestre","4e trimestre"],"timeFormat-long":"HH:mm:ss z","field-year":"année","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"'T'Q y","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"heure","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],"dateFormatItem-yyQ":"'T'Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"aujourd’hui","field-day-relative+1":"demain","field-day-relative+2":"après-demain","field-day-relative+3":"après-après-demain","months-standAlone-abbr":["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],"quarters-format-abbr":["T1","T2","T3","T4"],"quarters-standAlone-wide":["1er trimestre","2e trimestre","3e trimestre","4e trimestre"],"dateFormatItem-M":"L","days-standAlone-wide":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"dateFormatItem-yyMMMEEEd":"EEE d MMM yy","dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["T1","T2","T3","T4"],"eraAbbr":["av. J.-C.","ap. J.-C."],"field-minute":"minute","field-dayperiod":"cadran","days-standAlone-abbr":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"dayPeriods-format-wide-night":"soir","dateFormatItem-yyMMMd":"d MMM yy","dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["T1","T2","T3","T4"],"field-day-relative+-1":"hier","field-day-relative+-2":"avant-hier","field-day-relative+-3":"avant-avant-hier","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"EEE d/M","field-day":"jour","days-format-wide":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"field-zone":"fuseau horaire","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-yyMM":"MM/yy","days-format-abbr":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"eraNames":["avant Jésus-Christ","après Jésus-Christ"],"days-format-narrow":["D","L","M","M","J","V","S"],"field-month":"mois","days-standAlone-narrow":["D","L","M","M","J","V","S"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"AM","dateFormatItem-MMMMEd":"EEE d MMMM","dateFormat-short":"dd/MM/yy","dateFormatItem-MMd":"d/MM","dayPeriods-format-wide-afternoon":"après-midi","field-second":"seconde","dateFormatItem-yMMMEd":"EEE d MMM y","field-week":"semaine","dateFormat-medium":"d MMM y","dateFormatItem-Hms":"HH:mm:ss","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-hms":"h:mm:ss a"}; diff --git a/lib/dijit/nls/dijit-all_fr.js b/lib/dijit/nls/dijit-all_fr.js new file mode 100644 index 000000000..75b8e3fa9 --- /dev/null +++ b/lib/dijit/nls/dijit-all_fr.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_fr");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.fr");dojo.nls.colors.fr={"lightsteelblue":"bleu acier clair","orangered":"rouge orangé","midnightblue":"bleu nuit","cadetblue":"bleu pétrole","seashell":"coquillage","slategrey":"gris ardoise","coral":"corail","darkturquoise":"turquoise foncé","antiquewhite":"blanc antique","mediumspringgreen":"vert printemps moyen","salmon":"saumon","darkgrey":"gris foncé","ivory":"ivoire","greenyellow":"vert-jaune","mistyrose":"rose pâle","lightsalmon":"saumon clair","silver":"argent","dimgrey":"gris soutenu","orange":"orange","white":"blanc","navajowhite":"chair","royalblue":"bleu roi","deeppink":"rose soutenu","lime":"vert citron","oldlace":"blanc cassé","chartreuse":"vert vif","darkcyan":"cyan foncé","yellow":"jaune","linen":"écru","olive":"olive","gold":"or","lawngreen":"vert prairie","lightyellow":"jaune clair","tan":"grège","darkviolet":"violet foncé","lightslategrey":"gris ardoise clair","grey":"gris","darkkhaki":"kaki foncé","green":"vert","deepskyblue":"bleu ciel soutenu","aqua":"bleu-vert","sienna":"terre de sienne","mintcream":"crème de menthe","rosybrown":"vieux rose","mediumslateblue":"bleu ardoise moyen","magenta":"magenta","lightseagreen":"vert d'eau clair","cyan":"cyan","olivedrab":"brun verdâtre","darkgoldenrod":"jaune paille foncé","slateblue":"bleu ardoise","mediumaquamarine":"aigue-marine moyen","lavender":"lavande","mediumseagreen":"vert d'eau moyen","maroon":"marron","darkslategray":"gris ardoise foncé","mediumturquoise":"turquoise moyen","ghostwhite":"blanc laiteux","darkblue":"bleu foncé","mediumvioletred":"rouge violacé moyen","brown":"brun","lightgray":"gris clair","sandybrown":"sable","pink":"rose","firebrick":"rouge brique","indigo":"indigo","snow":"neige","darkorchid":"lilas foncé","turquoise":"turquoise","chocolate":"chocolat","springgreen":"vert printemps","moccasin":"chamois","navy":"bleu marine","lemonchiffon":"mousse de citron","teal":"sarcelle","floralwhite":"lys","cornflowerblue":"bleuet","paleturquoise":"turquoise pâle","purple":"pourpre","gainsboro":"gris souris","plum":"prune","red":"rouge","blue":"bleu","forestgreen":"vert sapin","darkgreen":"vert foncé","honeydew":"opalin","darkseagreen":"vert d'eau foncé","lightcoral":"corail clair","palevioletred":"rouge violacé pâle","mediumpurple":"pourpre moyen","saddlebrown":"brun cuir","darkmagenta":"magenta foncé","thistle":"chardon","whitesmoke":"blanc cendré","wheat":"blé","violet":"violet","lightskyblue":"bleu ciel clair","goldenrod":"jaune paille","mediumblue":"bleu moyen","skyblue":"bleu ciel","crimson":"cramoisi","darksalmon":"saumon foncé","darkred":"rouge foncé","darkslategrey":"gris ardoise foncé","peru":"caramel","lightgrey":"gris clair","lightgoldenrodyellow":"jaune paille clair","blanchedalmond":"coquille d'oeuf","aliceblue":"bleu gris","bisque":"beige rosé","slategray":"gris ardoise","palegoldenrod":"jaune paille pâle","darkorange":"orange foncé","aquamarine":"aigue-marine","lightgreen":"vert clair","burlywood":"bois précieux","dodgerblue":"bleu France","darkgray":"gris foncé","lightcyan":"cyan clair","powderblue":"bleu de smalt","blueviolet":"bleu-violet","orchid":"lilas","dimgray":"gris soutenu","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavandin","hotpink":"rose intense","steelblue":"bleu acier","tomato":"tomate","lightpink":"rose clair","limegreen":"citron vert","indianred":"rose indien","papayawhip":"crème de papaye","lightslategray":"gris ardoise clair","gray":"gris","mediumorchid":"lilas moyen","cornsilk":"vanille","black":"noir","seagreen":"vert d'eau","darkslateblue":"bleu ardoise foncé","khaki":"kaki","lightblue":"bleu clair","palegreen":"vert pâle","azure":"bleu azur","peachpuff":"pêche","darkolivegreen":"olive foncé","yellowgreen":"vert jaunâtre"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.fr");dijit.nls.loading.fr={"loadingState":"Chargement...","errorState":"Une erreur est survenue"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.fr");dijit.nls.common.fr={"buttonOk":"OK","buttonCancel":"Annuler","buttonSave":"Sauvegarder","itemClose":"Fermer"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.fr");dijit._editor.nls.commands.fr={"removeFormat":"Supprimer la mise en forme","copy":"Copier","paste":"Coller","selectAll":"Sélectionner tout","insertOrderedList":"Liste numérotée","insertTable":"Insérer/Modifier un tableau","print":"Imprimer","underline":"Souligner","foreColor":"Couleur avant-plan","htmlToggle":"Source HTML","formatBlock":"Style de paragraphe","newPage":"Nouvelle page","insertHorizontalRule":"Règle horizontale","delete":"Supprimer","insertUnorderedList":"Liste à puces","tableProp":"Propriété du tableau","insertImage":"Insérer une image","superscript":"Exposant","subscript":"Indice","createLink":"Créer un lien","undo":"Annuler","fullScreen":"Basculer vers le mode plein écran","italic":"Italique","fontName":"Nom de police","justifyLeft":"Aligner à gauche","unlink":"Supprimer le lien","toggleTableBorder":"Afficher/Masquer la bordure du tableau","viewSource":"Afficher la source HTML","fontSize":"Taille de police","systemShortcut":"Action \"${0}\" uniquement disponible dans votre navigateur via un raccourci clavier. Utilisez ${1}.","indent":"Retrait","redo":"Rétablir","strikethrough":"Barrer","justifyFull":"Justifier","justifyCenter":"Aligner au centre","hiliteColor":"Couleur arrière-plan","deleteTable":"Supprimer le tableau","outdent":"Retrait négatif","cut":"Couper","plainFormatBlock":"Style de paragraphe","toggleDir":"Changer de sens","bold":"Gras","tabIndent":"Retrait de tabulation","justifyRight":"Aligner à droite","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.fr");dijit.form.nls.validate.fr={"rangeMessage":"Cette valeur n'est pas comprise dans la plage autorisée.","invalidMessage":"La valeur indiquée n'est pas correcte.","missingMessage":"Cette valeur est requise."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.fr");dijit.form.nls.ComboBox.fr={"previousMessage":"Choix précédents","nextMessage":"Plus de choix"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.fr");dijit._editor.nls.FontChoice.fr={"1":"xxs","2":"xs","formatBlock":"Mise en forme","3":"s","4":"m","5":"l","6":"xl","7":"xxl","fantasy":"fantaisie","serif":"serif","p":"Paragraphe","pre":"Pré-mise en forme","sans-serif":"sans serif","fontName":"Police","h1":"En-tête","h2":"Sous-en-tête","h3":"Sous-sous-en-tête","monospace":"espacement fixe","fontSize":"Taille","cursive":"cursive","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.fr");dijit._editor.nls.LinkDialog.fr={"text":"Description :","insertImageTitle":"Propriétés des images","set":"Définir","newWindow":"Nouvelle fenêtre","topWindow":"Première fenêtre","target":"Cible :","createLinkTitle":"Propriétés des liens","parentWindow":"Fenêtre parent","currentWindow":"Fenêtre en cours","url":"URL :"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.fr");dojo.cldr.nls.number.fr={"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.fr");dojo.cldr.nls.currency.fr={"HKD_displayName":"dollar de Hong Kong","CHF_displayName":"franc suisse","CHF_symbol":"CHF","JPY_symbol":"¥JP","HKD_symbol":"$HK","CAD_displayName":"dollar canadien","CNY_displayName":"yuan renminbi chinois","USD_symbol":"$US","AUD_displayName":"dollar australien","JPY_displayName":"yen japonais","CAD_symbol":"$CA","USD_displayName":"dollar des États-Unis","CNY_symbol":"Ұ","GBP_displayName":"livre sterling","GBP_symbol":"£UK","AUD_symbol":"$AU","EUR_displayName":"euro","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.fr");dojo.cldr.nls.gregorian.fr={"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-weekday":"jour de la semaine","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE d/M/yyyy","dateFormatItem-MMMEd":"E d MMM","eraNarrow":["av. J.-C.","ap. J.-C."],"dayPeriods-format-wide-morning":"matin","dateFormatItem-MMMdd":"dd MMM","dateFormat-long":"d MMMM y","months-format-wide":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"dateFormatItem-EEEd":"d EEE","dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE d MMMM y","dateFormatItem-Md":"d/M","dayPeriods-format-wide-noon":"midi","field-era":"ère","dateFormatItem-yM":"M/yyyy","months-standAlone-wide":["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"timeFormat-short":"HH:mm","quarters-format-wide":["1er trimestre","2e trimestre","3e trimestre","4e trimestre"],"timeFormat-long":"HH:mm:ss z","field-year":"année","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"'T'Q y","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"heure","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],"dateFormatItem-yyQ":"'T'Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"aujourd’hui","field-day-relative+1":"demain","field-day-relative+2":"après-demain","field-day-relative+3":"après-après-demain","months-standAlone-abbr":["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],"quarters-format-abbr":["T1","T2","T3","T4"],"quarters-standAlone-wide":["1er trimestre","2e trimestre","3e trimestre","4e trimestre"],"dateFormatItem-M":"L","days-standAlone-wide":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"dateFormatItem-yyMMMEEEd":"EEE d MMM yy","dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["T1","T2","T3","T4"],"eraAbbr":["av. J.-C.","ap. J.-C."],"field-minute":"minute","field-dayperiod":"cadran","days-standAlone-abbr":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"dayPeriods-format-wide-night":"soir","dateFormatItem-yyMMMd":"d MMM yy","dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["T1","T2","T3","T4"],"field-day-relative+-1":"hier","field-day-relative+-2":"avant-hier","field-day-relative+-3":"avant-avant-hier","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"EEE d/M","field-day":"jour","days-format-wide":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"field-zone":"fuseau horaire","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-yyMM":"MM/yy","days-format-abbr":["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],"eraNames":["avant Jésus-Christ","après Jésus-Christ"],"days-format-narrow":["D","L","M","M","J","V","S"],"field-month":"mois","days-standAlone-narrow":["D","L","M","M","J","V","S"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"AM","dateFormatItem-MMMMEd":"EEE d MMMM","dateFormat-short":"dd/MM/yy","dateFormatItem-MMd":"d/MM","dayPeriods-format-wide-afternoon":"après-midi","field-second":"seconde","dateFormatItem-yMMMEd":"EEE d MMM y","field-week":"semaine","dateFormat-medium":"d MMM y","dateFormatItem-Hms":"HH:mm:ss","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-hms":"h:mm:ss a"}; diff --git a/lib/dijit/nls/dijit-all_he-il.js b/lib/dijit/nls/dijit-all_he-il.js new file mode 100644 index 000000000..b40fa1b5f --- /dev/null +++ b/lib/dijit/nls/dijit-all_he-il.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_he-il");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.he_il");dojo.nls.colors.he_il={"lightsteelblue":"כחול פלדה בהיר","orangered":"כתום אדום","midnightblue":"כחול כהה","cadetblue":"כחול ים","seashell":"צדף","slategrey":"אפור צפחה","coral":"אלמוג","darkturquoise":"טורקיז כהה","antiquewhite":"לבן עתיק","mediumspringgreen":"ירוק אביב בינוני","salmon":"סלמון","darkgrey":"אפור כהה","ivory":"שנהב","greenyellow":"ירוק-צהוב","mistyrose":"ורוד מעורפל","lightsalmon":"סלמון בהיר","silver":"כסף","dimgrey":"אפור עמום","orange":"כתום","white":"לבן","navajowhite":"לבן נוואחו","royalblue":"כחול מלכותי","deeppink":"ורוד עמוק","lime":"לימון","oldlace":"תחרה עתיקה","chartreuse":"ירוק-צהוב","darkcyan":"טורקיז כהה","yellow":"צהוב","linen":"פשתן","olive":"זית","gold":"זהב","lawngreen":"ירוק דשא","lightyellow":"צהוב בהיר","tan":"חום אדמדם","darkviolet":"סגול כהה","lightslategrey":"אפור צפחה בהיר","grey":"אפור","darkkhaki":"חאקי כהה","green":"ירוק","deepskyblue":"כחול שמיים עמוק","aqua":"אקווה","sienna":"סיינה","mintcream":"קרם מנטה","rosybrown":"חום ורדרד","mediumslateblue":"כחול צפחה בינוני","magenta":"בורדו","lightseagreen":"ירוק ים בהיר","cyan":"טורקיז","olivedrab":"זית עמום","darkgoldenrod":"זהוב כהה","slateblue":"כחול צפחה","mediumaquamarine":"כחול בינוני","lavender":"לבנדר","mediumseagreen":"ירוק ים בינוני","maroon":"חום אדמדם","darkslategray":"אפור צפחה כהה","mediumturquoise":"טורקיז בינוני","ghostwhite":"לבן רפאים","darkblue":"כחול כהה","mediumvioletred":"סגול-אדום בינוני","brown":"חום","lightgray":"אפור בהיר","sandybrown":"חום חולי","pink":"ורוד","firebrick":"לבנה שרופה","indigo":"אינדיגו","snow":"שלג","darkorchid":"סחלב כהה","turquoise":"טורקיז","chocolate":"שוקולד","springgreen":"ירוק אביב","moccasin":"מוקסין","navy":"כחול כהה","lemonchiffon":"ירוק לימון","teal":"כחול-ירוק כהה","floralwhite":"לבן פרחוני","cornflowerblue":"כחול דרדר","paleturquoise":"טורקיז בהיר","purple":"סגול","gainsboro":"גיינסבורו","plum":"שזיף","red":"אדום","blue":"כחול","forestgreen":"ירוק יער","darkgreen":"ירוק כהה","honeydew":"ירקרק","darkseagreen":"ירוק ים כהה","lightcoral":"אלמוג בהיר","palevioletred":"סגול-אדום בהיר","mediumpurple":"סגול בינוני","saddlebrown":"חום דהוי","darkmagenta":"בורדו כהה","thistle":"דרדר","whitesmoke":"עשן לבן","wheat":"חיוט","violet":"סגול","lightskyblue":"כחול שמיים בהיר","goldenrod":"זהוב","mediumblue":"תכלת בינוני","skyblue":"כחול שמיים","crimson":"ארגמן","darksalmon":"סלמון כהה","darkred":"אדום כהה","darkslategrey":"אפור צפחה כהה","peru":"פרו","lightgrey":"אפור בהיר","lightgoldenrodyellow":"צהוב בהיר","blanchedalmond":"שקד","aliceblue":"כחול פלדה","bisque":"לבן שקד","slategray":"אפור צפחה","palegoldenrod":"זהוב בהיר","darkorange":"כתום כהה","aquamarine":"אקוומארין","lightgreen":"ירוק בהיר","burlywood":"חום דהוי","dodgerblue":"כחול","darkgray":"אפור כהה","lightcyan":"טורקיז בהיר","powderblue":"כחול חיוור","blueviolet":"כחול-סגול","orchid":"סחלב","dimgray":"אפור עמום","beige":"בז'","fuchsia":"ורוד בהיר","lavenderblush":"סומק לבנדר","hotpink":"ורוד לוהט","steelblue":"כחול פלדה","tomato":"עגבניה","lightpink":"ורוד בהיר","limegreen":"ירוק לימוני","indianred":"אדום דהוי","papayawhip":"פפאיה","lightslategray":"אפור צפחה בהיר","gray":"אפור","mediumorchid":"סחלב בינוני","cornsilk":"צהבהב","black":"שחור","seagreen":"ירוק ים","darkslateblue":"כחול צפחה כהה","khaki":"חאקי","lightblue":"תכלת","palegreen":"ירוק בהיר","azure":"תכלת עז","peachpuff":"קציפת אפרסק","darkolivegreen":"ירוק זית כהה","yellowgreen":"ירוק צהוב"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.he_il");dijit.nls.loading.he_il={"loadingState":"טעינה...","errorState":"אירעה שגיאה"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.he_il");dijit.nls.common.he_il={"buttonOk":"אישור","buttonCancel":"ביטול","buttonSave":"שמירה","itemClose":"סגירה"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.he_il");dijit._editor.nls.commands.he_il={"removeFormat":"סילוק עיצוב","copy":"עותק","paste":"הדבקה","selectAll":"בחירת הכל","insertOrderedList":"רשימה ממוספרת","insertTable":"הוספת/עריכת טבלה","print":"הדפסה","underline":"קו תחתי","foreColor":"צבע חזית","htmlToggle":"מקור HTML","formatBlock":"סגנון פיסקה","newPage":"דף חדש ","insertHorizontalRule":"קו אופקי","delete":"מחיקה","appleKey":"⌘${0}","insertUnorderedList":"רשימה עם תבליטים","tableProp":"תכונת טבלה","insertImage":"הוספת תמונה","superscript":"כתב עילי","subscript":"כתב תחתי","createLink":"יצירת קישור","undo":"ביטול פעולה","fullScreen":"מיתוג מסך מלא ","italic":"נטוי","fontName":"שם גופן","justifyLeft":"יישור לשמאל","unlink":"סילוק הקישור","toggleTableBorder":"מיתוג גבול טבלה","viewSource":"הצגת מקור HTML ","ctrlKey":"ctrl+${0}","fontSize":"גופן יחסי","systemShortcut":"הפעולה \"${0}\" זמינה בדפדפן רק באמצעות קיצור דרך במקלדת. השתמשו בקיצור ${1}.","indent":"הגדלת כניסה","redo":"שחזור פעולה","strikethrough":"קו חוצה","justifyFull":"יישור דו-צדדי","justifyCenter":"יישור למרכז","hiliteColor":"צבע רקע","deleteTable":"מחיקת טבלה","outdent":"הקטנת כניסה","cut":"גזירה","plainFormatBlock":"סגנון פיסקה","toggleDir":"מיתוג כיוון","bold":"מודגש","tabIndent":"כניסת טאב","justifyRight":"יישור לימין"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.he_il");dijit.form.nls.validate.he_il={"rangeMessage":"הערך מחוץ לטווח.","invalidMessage":"הערך שצוין אינו חוקי.","missingMessage":"זהו ערך דרוש."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.he_il");dijit.form.nls.ComboBox.he_il={"previousMessage":"האפשרויות הקודמות","nextMessage":"אפשרויות נוספות"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.he_il");dijit._editor.nls.FontChoice.he_il={"1":"קטן ביות","2":"קטן מאוד","formatBlock":"עיצוב","3":"קטן","4":"בינוני","5":"גדול","6":"גדול מאוד","7":"גדול ביותר","fantasy":"fantasy","serif":"serif","p":"פיסקה","pre":"מעוצב מראש","sans-serif":"sans-serif","fontName":"גופן","h1":"כותרת","h2":"תת-כותרת","h3":"תת-תת-כותרת","monospace":"monospace","fontSize":"גודל","cursive":"cursive","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.he_il");dijit._editor.nls.LinkDialog.he_il={"text":"תיאור:","insertImageTitle":"תכונות תמונה","set":"הגדרה","newWindow":"חלון חדש","topWindow":"חלון עליון ","target":"יעד:","createLinkTitle":"תכונות קישור","parentWindow":"חלון אב","currentWindow":"חלון נוכחי ","url":"URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.he_il");dojo.cldr.nls.number.he_il={"group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.he_il");dojo.cldr.nls.currency.he_il={"HKD_displayName":"דולר הונג קונגי","CHF_displayName":"פרנק שוויצרי","CAD_displayName":"דולר קנדי","CNY_displayName":"יואן רנמינבי סיני","AUD_displayName":"דולר אוסטרלי","JPY_displayName":"ין יפני","USD_displayName":"דולר אמריקאי","GBP_displayName":"לירה שטרלינג","EUR_displayName":"אירו","USD_symbol":"US$","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","JPY_symbol":"JP¥","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.he_il");dojo.cldr.nls.gregorian.he_il={"field-weekday":"יום בשבוע","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"EEE, d.M.yyyy","dateFormatItem-MMMEd":"E, d בMMM","eraNarrow":["לפנה״ס","לסה״נ"],"dateFormat-long":"d בMMMM y","months-format-wide":["ינואר","פברואר","מרס","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"],"dateFormatItem-EEEd":"EEE ה-d","dayPeriods-format-wide-pm":"אחה״צ","dateFormat-full":"EEEE, d בMMMM y","dateFormatItem-Md":"d/M","field-era":"תקופה","dateFormatItem-yM":"M.yyyy","months-standAlone-wide":["ינואר","פברואר","מרס","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"],"timeFormat-short":"HH:mm","quarters-format-wide":["רבעון 1","רבעון 2","רבעון 3","רבעון 4"],"timeFormat-long":"HH:mm:ss z","field-year":"שנה","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"yyyy Q","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"שעה","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["ינו","פבר","מרס","אפר","מאי","יונ","יול","אוג","ספט","אוק","נוב","דצמ"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"היום","field-day-relative+1":"מחר","field-day-relative+2":"מחרתיים","dateFormatItem-H":"HH","field-day-relative+3":"בעוד שלושה ימים","months-standAlone-abbr":["ינו׳","פבר׳","מרס","אפר׳","מאי","יונ׳","יול׳","אוג׳","ספט׳","אוק׳","נוב׳","דצמ׳"],"quarters-format-abbr":["רבעון 1","רבעון 2","רבעון 3","רבעון 4"],"quarters-standAlone-wide":["רבעון 1","רבעון 2","רבעון 3","רבעון 4"],"dateFormatItem-M":"L","days-standAlone-wide":["יום ראשון","יום שני","יום שלישי","יום רביעי","יום חמישי","יום שישי","יום שבת"],"dateFormatItem-MMMMd":"d בMMMM","dateFormatItem-yyMMM":"MMM yyyy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["רבעון 1","רבעון 2","רבעון 3","רבעון 4"],"eraAbbr":["לפנה״ס","לסה״נ"],"field-minute":"דקה","field-dayperiod":"לפה״צ/אחה״צ","days-standAlone-abbr":["יום א׳","יום ב׳","יום ג׳","יום ד׳","יום ה׳","יום ו׳","שבת"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"אתמול","field-day-relative+-2":"שלשום","field-day-relative+-3":"לפני שלושה ימים","dateFormatItem-MMMd":"d בMMM","dateFormatItem-MEd":"E, M-d","dateFormatItem-yMMMM":"MMMM y","field-day":"יום","days-format-wide":["יום ראשון","יום שני","יום שלישי","יום רביעי","יום חמישי","יום שישי","יום שבת"],"field-zone":"אזור","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-y":"y","dateFormatItem-yyMM":"MM/yy","dateFormatItem-hm":"h:mm a","days-format-abbr":["יום א׳","יום ב׳","יום ג׳","יום ד׳","יום ה׳","יום ו׳","שבת"],"eraNames":["לפני הספירה","לספירה"],"days-format-narrow":["א","ב","ג","ד","ה","ו","ש"],"field-month":"חודש","days-standAlone-narrow":["א","ב","ג","ד","ה","ו","ש"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"לפנה״צ","dateFormatItem-MMMMEd":"E, d בMMMM","dateFormat-short":"dd/MM/yy","field-second":"שנייה","dateFormatItem-yMMMEd":"EEE, d בMMM y","dateFormatItem-Ed":"E ה-d","field-week":"שבוע","dateFormat-medium":"d בMMM yyyy","dateFormatItem-mmss":"mm:ss","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yyyy":"y","months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"}; diff --git a/lib/dijit/nls/dijit-all_he.js b/lib/dijit/nls/dijit-all_he.js new file mode 100644 index 000000000..fb88b3d90 --- /dev/null +++ b/lib/dijit/nls/dijit-all_he.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_he");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.he");dojo.nls.colors.he={"lightsteelblue":"כחול פלדה בהיר","orangered":"כתום אדום","midnightblue":"כחול כהה","cadetblue":"כחול ים","seashell":"צדף","slategrey":"אפור צפחה","coral":"אלמוג","darkturquoise":"טורקיז כהה","antiquewhite":"לבן עתיק","mediumspringgreen":"ירוק אביב בינוני","salmon":"סלמון","darkgrey":"אפור כהה","ivory":"שנהב","greenyellow":"ירוק-צהוב","mistyrose":"ורוד מעורפל","lightsalmon":"סלמון בהיר","silver":"כסף","dimgrey":"אפור עמום","orange":"כתום","white":"לבן","navajowhite":"לבן נוואחו","royalblue":"כחול מלכותי","deeppink":"ורוד עמוק","lime":"לימון","oldlace":"תחרה עתיקה","chartreuse":"ירוק-צהוב","darkcyan":"טורקיז כהה","yellow":"צהוב","linen":"פשתן","olive":"זית","gold":"זהב","lawngreen":"ירוק דשא","lightyellow":"צהוב בהיר","tan":"חום אדמדם","darkviolet":"סגול כהה","lightslategrey":"אפור צפחה בהיר","grey":"אפור","darkkhaki":"חאקי כהה","green":"ירוק","deepskyblue":"כחול שמיים עמוק","aqua":"אקווה","sienna":"סיינה","mintcream":"קרם מנטה","rosybrown":"חום ורדרד","mediumslateblue":"כחול צפחה בינוני","magenta":"בורדו","lightseagreen":"ירוק ים בהיר","cyan":"טורקיז","olivedrab":"זית עמום","darkgoldenrod":"זהוב כהה","slateblue":"כחול צפחה","mediumaquamarine":"כחול בינוני","lavender":"לבנדר","mediumseagreen":"ירוק ים בינוני","maroon":"חום אדמדם","darkslategray":"אפור צפחה כהה","mediumturquoise":"טורקיז בינוני","ghostwhite":"לבן רפאים","darkblue":"כחול כהה","mediumvioletred":"סגול-אדום בינוני","brown":"חום","lightgray":"אפור בהיר","sandybrown":"חום חולי","pink":"ורוד","firebrick":"לבנה שרופה","indigo":"אינדיגו","snow":"שלג","darkorchid":"סחלב כהה","turquoise":"טורקיז","chocolate":"שוקולד","springgreen":"ירוק אביב","moccasin":"מוקסין","navy":"כחול כהה","lemonchiffon":"ירוק לימון","teal":"כחול-ירוק כהה","floralwhite":"לבן פרחוני","cornflowerblue":"כחול דרדר","paleturquoise":"טורקיז בהיר","purple":"סגול","gainsboro":"גיינסבורו","plum":"שזיף","red":"אדום","blue":"כחול","forestgreen":"ירוק יער","darkgreen":"ירוק כהה","honeydew":"ירקרק","darkseagreen":"ירוק ים כהה","lightcoral":"אלמוג בהיר","palevioletred":"סגול-אדום בהיר","mediumpurple":"סגול בינוני","saddlebrown":"חום דהוי","darkmagenta":"בורדו כהה","thistle":"דרדר","whitesmoke":"עשן לבן","wheat":"חיוט","violet":"סגול","lightskyblue":"כחול שמיים בהיר","goldenrod":"זהוב","mediumblue":"תכלת בינוני","skyblue":"כחול שמיים","crimson":"ארגמן","darksalmon":"סלמון כהה","darkred":"אדום כהה","darkslategrey":"אפור צפחה כהה","peru":"פרו","lightgrey":"אפור בהיר","lightgoldenrodyellow":"צהוב בהיר","blanchedalmond":"שקד","aliceblue":"כחול פלדה","bisque":"לבן שקד","slategray":"אפור צפחה","palegoldenrod":"זהוב בהיר","darkorange":"כתום כהה","aquamarine":"אקוומארין","lightgreen":"ירוק בהיר","burlywood":"חום דהוי","dodgerblue":"כחול","darkgray":"אפור כהה","lightcyan":"טורקיז בהיר","powderblue":"כחול חיוור","blueviolet":"כחול-סגול","orchid":"סחלב","dimgray":"אפור עמום","beige":"בז'","fuchsia":"ורוד בהיר","lavenderblush":"סומק לבנדר","hotpink":"ורוד לוהט","steelblue":"כחול פלדה","tomato":"עגבניה","lightpink":"ורוד בהיר","limegreen":"ירוק לימוני","indianred":"אדום דהוי","papayawhip":"פפאיה","lightslategray":"אפור צפחה בהיר","gray":"אפור","mediumorchid":"סחלב בינוני","cornsilk":"צהבהב","black":"שחור","seagreen":"ירוק ים","darkslateblue":"כחול צפחה כהה","khaki":"חאקי","lightblue":"תכלת","palegreen":"ירוק בהיר","azure":"תכלת עז","peachpuff":"קציפת אפרסק","darkolivegreen":"ירוק זית כהה","yellowgreen":"ירוק צהוב"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.he");dijit.nls.loading.he={"loadingState":"טעינה...","errorState":"אירעה שגיאה"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.he");dijit.nls.common.he={"buttonOk":"אישור","buttonCancel":"ביטול","buttonSave":"שמירה","itemClose":"סגירה"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.he");dijit._editor.nls.commands.he={"removeFormat":"סילוק עיצוב","copy":"עותק","paste":"הדבקה","selectAll":"בחירת הכל","insertOrderedList":"רשימה ממוספרת","insertTable":"הוספת/עריכת טבלה","print":"הדפסה","underline":"קו תחתי","foreColor":"צבע חזית","htmlToggle":"מקור HTML","formatBlock":"סגנון פיסקה","newPage":"דף חדש ","insertHorizontalRule":"קו אופקי","delete":"מחיקה","appleKey":"⌘${0}","insertUnorderedList":"רשימה עם תבליטים","tableProp":"תכונת טבלה","insertImage":"הוספת תמונה","superscript":"כתב עילי","subscript":"כתב תחתי","createLink":"יצירת קישור","undo":"ביטול פעולה","fullScreen":"מיתוג מסך מלא ","italic":"נטוי","fontName":"שם גופן","justifyLeft":"יישור לשמאל","unlink":"סילוק הקישור","toggleTableBorder":"מיתוג גבול טבלה","viewSource":"הצגת מקור HTML ","ctrlKey":"ctrl+${0}","fontSize":"גופן יחסי","systemShortcut":"הפעולה \"${0}\" זמינה בדפדפן רק באמצעות קיצור דרך במקלדת. השתמשו בקיצור ${1}.","indent":"הגדלת כניסה","redo":"שחזור פעולה","strikethrough":"קו חוצה","justifyFull":"יישור דו-צדדי","justifyCenter":"יישור למרכז","hiliteColor":"צבע רקע","deleteTable":"מחיקת טבלה","outdent":"הקטנת כניסה","cut":"גזירה","plainFormatBlock":"סגנון פיסקה","toggleDir":"מיתוג כיוון","bold":"מודגש","tabIndent":"כניסת טאב","justifyRight":"יישור לימין"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.he");dijit.form.nls.validate.he={"rangeMessage":"הערך מחוץ לטווח.","invalidMessage":"הערך שצוין אינו חוקי.","missingMessage":"זהו ערך דרוש."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.he");dijit.form.nls.ComboBox.he={"previousMessage":"האפשרויות הקודמות","nextMessage":"אפשרויות נוספות"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.he");dijit._editor.nls.FontChoice.he={"1":"קטן ביות","2":"קטן מאוד","formatBlock":"עיצוב","3":"קטן","4":"בינוני","5":"גדול","6":"גדול מאוד","7":"גדול ביותר","fantasy":"fantasy","serif":"serif","p":"פיסקה","pre":"מעוצב מראש","sans-serif":"sans-serif","fontName":"גופן","h1":"כותרת","h2":"תת-כותרת","h3":"תת-תת-כותרת","monospace":"monospace","fontSize":"גודל","cursive":"cursive","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.he");dijit._editor.nls.LinkDialog.he={"text":"תיאור:","insertImageTitle":"תכונות תמונה","set":"הגדרה","newWindow":"חלון חדש","topWindow":"חלון עליון ","target":"יעד:","createLinkTitle":"תכונות קישור","parentWindow":"חלון אב","currentWindow":"חלון נוכחי ","url":"URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.he");dojo.cldr.nls.number.he={"group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.he");dojo.cldr.nls.currency.he={"HKD_displayName":"דולר הונג קונגי","CHF_displayName":"פרנק שוויצרי","CAD_displayName":"דולר קנדי","CNY_displayName":"יואן רנמינבי סיני","AUD_displayName":"דולר אוסטרלי","JPY_displayName":"ין יפני","USD_displayName":"דולר אמריקאי","GBP_displayName":"לירה שטרלינג","EUR_displayName":"אירו","USD_symbol":"US$","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","JPY_symbol":"JP¥","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.he");dojo.cldr.nls.gregorian.he={"field-weekday":"יום בשבוע","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"EEE, d.M.yyyy","dateFormatItem-MMMEd":"E, d בMMM","eraNarrow":["לפנה״ס","לסה״נ"],"dateFormat-long":"d בMMMM y","months-format-wide":["ינואר","פברואר","מרס","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"],"dateFormatItem-EEEd":"EEE ה-d","dayPeriods-format-wide-pm":"אחה״צ","dateFormat-full":"EEEE, d בMMMM y","dateFormatItem-Md":"d/M","field-era":"תקופה","dateFormatItem-yM":"M.yyyy","months-standAlone-wide":["ינואר","פברואר","מרס","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"],"timeFormat-short":"HH:mm","quarters-format-wide":["רבעון 1","רבעון 2","רבעון 3","רבעון 4"],"timeFormat-long":"HH:mm:ss z","field-year":"שנה","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"yyyy Q","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"שעה","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["ינו","פבר","מרס","אפר","מאי","יונ","יול","אוג","ספט","אוק","נוב","דצמ"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"היום","field-day-relative+1":"מחר","field-day-relative+2":"מחרתיים","dateFormatItem-H":"HH","field-day-relative+3":"בעוד שלושה ימים","months-standAlone-abbr":["ינו׳","פבר׳","מרס","אפר׳","מאי","יונ׳","יול׳","אוג׳","ספט׳","אוק׳","נוב׳","דצמ׳"],"quarters-format-abbr":["רבעון 1","רבעון 2","רבעון 3","רבעון 4"],"quarters-standAlone-wide":["רבעון 1","רבעון 2","רבעון 3","רבעון 4"],"dateFormatItem-M":"L","days-standAlone-wide":["יום ראשון","יום שני","יום שלישי","יום רביעי","יום חמישי","יום שישי","יום שבת"],"dateFormatItem-MMMMd":"d בMMMM","dateFormatItem-yyMMM":"MMM yyyy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["רבעון 1","רבעון 2","רבעון 3","רבעון 4"],"eraAbbr":["לפנה״ס","לסה״נ"],"field-minute":"דקה","field-dayperiod":"לפה״צ/אחה״צ","days-standAlone-abbr":["יום א׳","יום ב׳","יום ג׳","יום ד׳","יום ה׳","יום ו׳","שבת"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"אתמול","field-day-relative+-2":"שלשום","field-day-relative+-3":"לפני שלושה ימים","dateFormatItem-MMMd":"d בMMM","dateFormatItem-MEd":"E, M-d","dateFormatItem-yMMMM":"MMMM y","field-day":"יום","days-format-wide":["יום ראשון","יום שני","יום שלישי","יום רביעי","יום חמישי","יום שישי","יום שבת"],"field-zone":"אזור","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-y":"y","dateFormatItem-yyMM":"MM/yy","dateFormatItem-hm":"h:mm a","days-format-abbr":["יום א׳","יום ב׳","יום ג׳","יום ד׳","יום ה׳","יום ו׳","שבת"],"eraNames":["לפני הספירה","לספירה"],"days-format-narrow":["א","ב","ג","ד","ה","ו","ש"],"field-month":"חודש","days-standAlone-narrow":["א","ב","ג","ד","ה","ו","ש"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"לפנה״צ","dateFormatItem-MMMMEd":"E, d בMMMM","dateFormat-short":"dd/MM/yy","field-second":"שנייה","dateFormatItem-yMMMEd":"EEE, d בMMM y","dateFormatItem-Ed":"E ה-d","field-week":"שבוע","dateFormat-medium":"d בMMM yyyy","dateFormatItem-mmss":"mm:ss","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yyyy":"y","months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"}; diff --git a/lib/dijit/nls/dijit-all_hu.js b/lib/dijit/nls/dijit-all_hu.js new file mode 100644 index 000000000..104c387e8 --- /dev/null +++ b/lib/dijit/nls/dijit-all_hu.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_hu");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.hu");dojo.nls.colors.hu={"lightsteelblue":"világos acélkék","orangered":"narancsvörös","midnightblue":"éjkék","cadetblue":"kadétkék","seashell":"kagyló","slategrey":"palaszürke","coral":"korall","darkturquoise":"sötét türkizkék","antiquewhite":"antik fehér","mediumspringgreen":"közepes tavaszzöld","salmon":"lazacszín","darkgrey":"sötétszürke","ivory":"elefántcsont","greenyellow":"zöldessárga","mistyrose":"halvány rózsaszín","lightsalmon":"világos lazacszín","silver":"ezüst","dimgrey":"halványszürke","orange":"narancssárga","white":"fehér","navajowhite":"navajo fehér","royalblue":"királykék","deeppink":"sötétrózsaszín","lime":"lime","oldlace":"régi csipke","chartreuse":"chartreuse","darkcyan":"sötét ciánkék","yellow":"sárga","linen":"vászonfehér","olive":"olajzöld","gold":"arany","lawngreen":"fűzöld","lightyellow":"világossárga","tan":"rozsdabarna","darkviolet":"sötét ibolyaszín","lightslategrey":"világos palaszürke","grey":"szürke","darkkhaki":"sötét khakiszín","green":"zöld","deepskyblue":"sötét égszínkék","aqua":"vízszín","sienna":"vörösesbarna","mintcream":"mentaszósz","rosybrown":"barnásrózsaszín","mediumslateblue":"közepes palakék","magenta":"bíbor","lightseagreen":"világos tengerzöld","cyan":"ciánkék","olivedrab":"olajzöld drapp","darkgoldenrod":"sötét aranyvessző","slateblue":"palakék","mediumaquamarine":"közepes akvamarin","lavender":"levendula","mediumseagreen":"közepes tengerzöld","maroon":"gesztenyebarna","darkslategray":"sötét palaszürke","mediumturquoise":"közepes türkizkék","ghostwhite":"szellemfehér","darkblue":"sötétkék","mediumvioletred":"közepes ibolyavörös","brown":"barna","lightgray":"világosszürke","sandybrown":"homokbarna","pink":"rózsaszín","firebrick":"téglavörös","indigo":"indigó","snow":"hó","darkorchid":"sötét orchidea","turquoise":"türkizkék","chocolate":"csokoládé","springgreen":"tavaszzöld","moccasin":"mokkaszín","navy":"tengerészkék","lemonchiffon":"sárga műselyem","teal":"pávakék","floralwhite":"virágfehér","cornflowerblue":"búzavirágkék","paleturquoise":"halvány türkizkék","purple":"lila","gainsboro":"gainsboro","plum":"szilvakék","red":"vörös","blue":"kék","forestgreen":"erdőzöld","darkgreen":"sötétzöld","honeydew":"mézharmat","darkseagreen":"sötét tengerzöld","lightcoral":"világos korall","palevioletred":"halvány ibolyavörös","mediumpurple":"közepes lila","saddlebrown":"nyeregbarna","darkmagenta":"sötétbíbor","thistle":"bogáncs","whitesmoke":"fehér füst","wheat":"búza","violet":"ibolyaszín","lightskyblue":"világos égszínkék","goldenrod":"aranyvessző","mediumblue":"közepes kék","skyblue":"égszínkék","crimson":"karmazsinvörös","darksalmon":"sötét lazacszín","darkred":"sötétvörös","darkslategrey":"sötét palaszürke","peru":"peru","lightgrey":"világosszürke","lightgoldenrodyellow":"világos aranyvessző sárga","blanchedalmond":"hámozott mandula","aliceblue":"Alice kék","bisque":"porcelán","slategray":"palaszürke","palegoldenrod":"halvány aranyvessző","darkorange":"sötét narancssárga","aquamarine":"akvamarin","lightgreen":"világoszöld","burlywood":"nyersfa","dodgerblue":"dodger kék","darkgray":"sötétszürke","lightcyan":"világos ciánkék","powderblue":"púderkék","blueviolet":"ibolyakék","orchid":"orchidea","dimgray":"halványszürke","beige":"bézs","fuchsia":"fukszia","lavenderblush":"pirosas levendula","hotpink":"meleg rózsaszín","steelblue":"acélkék","tomato":"paradicsom","lightpink":"világos rózsaszín","limegreen":"limezöld","indianred":"indiánvörös","papayawhip":"papayahab","lightslategray":"világos palaszürke","gray":"szürke","mediumorchid":"közepes orchidea","cornsilk":"kukoricahaj","black":"fekete","seagreen":"tengerzöld","darkslateblue":"sötét palakék","khaki":"khakiszín","lightblue":"világoskék","palegreen":"halványzöld","azure":"azúrkék","peachpuff":"barackszín","darkolivegreen":"sötét olajzöld","yellowgreen":"sárgászöld"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.hu");dijit.nls.loading.hu={"loadingState":"Betöltés...","errorState":"Sajnálom, hiba történt"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.hu");dijit.nls.common.hu={"buttonOk":"OK","buttonCancel":"Mégse","buttonSave":"Mentés","itemClose":"Bezárás"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.hu");dijit._editor.nls.commands.hu={"removeFormat":"Formázás eltávolítása","copy":"Másolás","paste":"Beillesztés","selectAll":"Összes kijelölése","insertOrderedList":"Számozott lista","insertTable":"Táblázat beszúrása/szerkesztése","print":"Nyomtatás","underline":"Aláhúzott","foreColor":"Előtérszín","htmlToggle":"HTML forrás","formatBlock":"Bekezdés stílusa","newPage":"Új oldal","insertHorizontalRule":"Vízszintes vonalzó","delete":"Törlés","insertUnorderedList":"Felsorolásjeles lista","tableProp":"Táblázat tulajdonságai","insertImage":"Kép beszúrása","superscript":"Felső index","subscript":"Alsó index","createLink":"Hivatkozás létrehozása","undo":"Visszavonás","fullScreen":"Váltás teljes képernyőre","italic":"Dőlt","fontName":"Betűtípus","justifyLeft":"Balra igazítás","unlink":"Hivatkozás eltávolítása","toggleTableBorder":"Táblázatszegély ki-/bekapcsolása","viewSource":"HTML forrás megjelenítése","fontSize":"Betűméret","systemShortcut":"A(z) \"${0}\" művelet a böngészőben csak billentyűparancs használatával érhető el. Használja a következőt: ${1}.","indent":"Behúzás","redo":"Újra","strikethrough":"Áthúzott","justifyFull":"Sorkizárás","justifyCenter":"Középre igazítás","hiliteColor":"Háttérszín","deleteTable":"Táblázat törlése","outdent":"Negatív behúzás","cut":"Kivágás","plainFormatBlock":"Bekezdés stílusa","toggleDir":"Irány váltókapcsoló","bold":"Félkövér","tabIndent":"Tab behúzás","justifyRight":"Jobbra igazítás","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.hu");dijit.form.nls.validate.hu={"rangeMessage":"Az érték kívül van a megengedett tartományon.","invalidMessage":"A megadott érték érvénytelen.","missingMessage":"Meg kell adni egy értéket."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.hu");dijit.form.nls.ComboBox.hu={"previousMessage":"Előző menüpontok","nextMessage":"További menüpontok"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.hu");dijit._editor.nls.FontChoice.hu={"1":"xx-kicsi","2":"x-kicsi","formatBlock":"Formátum","3":"kicsi","4":"közepes","5":"nagy","6":"x-nagy","7":"xx-nagy","fantasy":"fantázia","serif":"talpas","p":"Bekezdés","pre":"Előformázott","sans-serif":"talpatlan","fontName":"Betűtípus","h1":"Címsor","h2":"Alcím","h3":"Al-alcím","monospace":"rögzített szélességű","fontSize":"Méret","cursive":"kurzív","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.hu");dijit._editor.nls.LinkDialog.hu={"text":"Leírás:","insertImageTitle":"Kép tulajdonságai","set":"Beállítás","newWindow":"Új ablak","topWindow":"Legfelső szintű ablak","target":"Cél:","createLinkTitle":"Hivatkozás tulajdonságai","parentWindow":"Szülő ablak","currentWindow":"Aktuális ablak","url":"URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.hu");dojo.cldr.nls.number.hu={"group":" ","percentSign":"%","exponential":"E","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","percentFormat":"#,##0%","currencySpacing-beforeCurrency-insertBetween":" "};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.hu");dojo.cldr.nls.currency.hu={"HKD_displayName":"Hongkongi dollár","CHF_displayName":"Svájci frank","JPY_symbol":"¥","CAD_displayName":"Kanadai dollár","CNY_displayName":"Kínai jüan renminbi","USD_symbol":"$","AUD_displayName":"Ausztrál dollár","JPY_displayName":"Japán jen","USD_displayName":"USA dollár","GBP_displayName":"Brit font sterling","EUR_displayName":"Euro","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.hu");dojo.cldr.nls.gregorian.hu={"field-dayperiod":"napszak","dayPeriods-format-wide-pm":"du.","field-minute":"perc","eraNames":["időszámításunk előtt","időszámításunk szerint"],"field-day-relative+-1":"tegnap","field-weekday":"hét napja","field-day-relative+-2":"tegnapelőtt","dateFormatItem-MMdd":"MM.dd.","field-day-relative+-3":"három nappal ezelőtt","days-standAlone-wide":["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["J","F","M","Á","M","J","J","A","Sz","O","N","D"],"field-era":"éra","field-hour":"óra","dayPeriods-format-wide-am":"de.","quarters-standAlone-abbr":["N1","N2","N3","N4"],"timeFormat-full":"H:mm:ss zzzz","months-standAlone-abbr":["jan.","febr.","márc.","ápr.","máj.","jún.","júl.","aug.","szept.","okt.","nov.","dec."],"field-day-relative+0":"ma","field-day-relative+1":"holnap","days-standAlone-narrow":["V","H","K","Sz","Cs","P","Sz"],"eraAbbr":["i. e.","i. sz."],"field-day-relative+2":"holnapután","field-day-relative+3":"három nap múlva","dateFormatItem-yyyyMM":"yyyy.MM","dateFormatItem-yyyyMMMM":"y. MMMM","dateFormat-long":"y. MMMM d.","timeFormat-medium":"H:mm:ss","field-zone":"zóna","dateFormatItem-Hm":"H:mm","dateFormat-medium":"yyyy.MM.dd.","dateFormatItem-Hms":"H:mm:ss","quarters-standAlone-wide":["I. negyedév","II. negyedév","III. negyedév","IV. negyedév"],"field-year":"év","field-week":"hét","months-standAlone-wide":["január","február","március","április","május","június","július","augusztus","szeptember","október","november","december"],"dateFormatItem-MMMd":"MMM d.","dateFormatItem-yyQ":"yy/Q","timeFormat-long":"H:mm:ss z","months-format-abbr":["jan.","febr.","márc.","ápr.","máj.","jún.","júl.","aug.","szept.","okt.","nov.","dec."],"timeFormat-short":"H:mm","dateFormatItem-H":"H","field-month":"hónap","dateFormatItem-MMMMd":"MMMM d.","quarters-format-abbr":["N1","N2","N3","N4"],"days-format-abbr":["V","H","K","Sze","Cs","P","Szo"],"dateFormatItem-mmss":"mm:ss","dateFormatItem-M":"L","days-format-narrow":["V","H","K","Sz","Cs","P","Sz"],"field-second":"másodperc","field-day":"nap","dateFormatItem-MEd":"M. d., E","months-format-narrow":["J","F","M","Á","M","J","J","A","Sz","O","N","D"],"days-standAlone-abbr":["V","H","K","Sze","Cs","P","Szo"],"dateFormat-short":"yyyy.MM.dd.","dateFormat-full":"y. MMMM d., EEEE","dateFormatItem-Md":"M. d.","months-format-wide":["január","február","március","április","május","június","július","augusztus","szeptember","október","november","december"],"dateFormatItem-d":"d","quarters-format-wide":["I. negyedév","II. negyedév","III. negyedév","IV. negyedév"],"days-format-wide":["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"],"eraNarrow":["i. e.","i. sz."],"quarters-standAlone-narrow":["1","2","3","4"],"dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"EEE, y-M-d","dateFormatItem-MMMEd":"E MMM d","dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateFormatItem-yM":"y-M","dateFormatItem-yMMM":"y MMM","dateFormatItem-yQ":"y Q","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-y":"y","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateFormatItem-yMMMEd":"EEE, y MMM d","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-hms":"h:mm:ss a"}; diff --git a/lib/dijit/nls/dijit-all_it-it.js b/lib/dijit/nls/dijit-all_it-it.js new file mode 100644 index 000000000..7d5b8002c --- /dev/null +++ b/lib/dijit/nls/dijit-all_it-it.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_it-it");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.it_it");dojo.nls.colors.it_it={"lightsteelblue":"blu acciao chiaro","orangered":"vermiglio","midnightblue":"blu melanzana scuro","cadetblue":"verde acqua","seashell":"sabbia rosa","slategrey":"grigio ardesia","coral":"corallo","darkturquoise":"turchese scuro","antiquewhite":"bianco antico","mediumspringgreen":"verde primavera medio","salmon":"salmone","darkgrey":"grigio scuro","ivory":"avorio","greenyellow":"giallo verde","mistyrose":"rosa pallido","lightsalmon":"salmone chiaro","silver":"grigio 25%","dimgrey":"grigio 80%","orange":"arancione","white":"bianco","navajowhite":"pesca chiaro","royalblue":"blu reale","deeppink":"ciclamino","lime":"verde fluorescente","oldlace":"mandorla","chartreuse":"verde brillante","darkcyan":"ciano scuro","yellow":"giallo","linen":"lino","olive":"verde oliva","gold":"oro","lawngreen":"verde prato","lightyellow":"giallo chiaro","tan":"grigio bruno","darkviolet":"viola scuro","lightslategrey":"grigio ardesia chiaro","grey":"grigio","darkkhaki":"kaki scuro","green":"verde","deepskyblue":"azzurro cielo scuro","aqua":"acqua","sienna":"cuoio","mintcream":"bianco nuvola","rosybrown":"marrone rosato","mediumslateblue":"blu ardesia medio","magenta":"magenta","lightseagreen":"verde mare chiaro","cyan":"ciano","olivedrab":"marrone oliva","darkgoldenrod":"ocra scuro","slateblue":"blu ardesia","mediumaquamarine":"acquamarina medio","lavender":"lavanda","mediumseagreen":"verde mare medio","maroon":"scarlatto","darkslategray":"grigio ardesia scuro","mediumturquoise":"turchese medio","ghostwhite":"bianco gesso","darkblue":"blu scuro","mediumvioletred":"vinaccia","brown":"marrone","lightgray":"grigio chiaro","sandybrown":"marrone sabbia","pink":"rosa","firebrick":"rosso mattone","indigo":"indaco","snow":"neve","darkorchid":"orchidea scuro","turquoise":"turchese","chocolate":"cioccolato","springgreen":"verde primavera","moccasin":"mocassino","navy":"blu notte","lemonchiffon":"caffelatte chiaro","teal":"verde turchese","floralwhite":"bianco giglio","cornflowerblue":"blu fiordaliso","paleturquoise":"turchese pallido","purple":"porpora","gainsboro":"grigio 10%","plum":"prugna","red":"rosso","blue":"blu","forestgreen":"verde foresta","darkgreen":"verde scuro","honeydew":"bianco germoglio","darkseagreen":"verde mare scuro","lightcoral":"rosa corallo","palevioletred":"vinaccia chiaro","mediumpurple":"porpora medio","saddlebrown":"cacao","darkmagenta":"magenta scuro","thistle":"rosa cenere","whitesmoke":"bianco fumo","wheat":"sabbia","violet":"viola","lightskyblue":"azzurro cielo chiaro","goldenrod":"ocra gialla","mediumblue":"blu medio","skyblue":"azzurro cielo","crimson":"cremisi","darksalmon":"salmone scuro","darkred":"rosso scuro","darkslategrey":"grigio ardesia scuro","peru":"marrone terra bruciata","lightgrey":"grigio chiaro","lightgoldenrodyellow":"giallo tenue","blanchedalmond":"mandorla chiaro","aliceblue":"blu alice","bisque":"incarnato","slategray":"grigio ardesia","palegoldenrod":"giallo zolfo chiaro","darkorange":"arancione scuro","aquamarine":"acquamarina","lightgreen":"verde chiaro","burlywood":"tabacco","dodgerblue":"blu d'oriente","darkgray":"grigio scuro","lightcyan":"ciano chiaro","powderblue":"azzurro polvere","blueviolet":"blu violetto","orchid":"orchidea","dimgray":"grigio 80%","beige":"beige","fuchsia":"fucsia","lavenderblush":"bianco rosato","hotpink":"rosa acceso","steelblue":"blu acciao","tomato":"pomodoro","lightpink":"rosa chiaro","limegreen":"verde lime","indianred":"terra indiana","papayawhip":"cipria","lightslategray":"grigio ardesia chiaro","gray":"grigio","mediumorchid":"orchidea medio","cornsilk":"crema","black":"nero","seagreen":"verde mare","darkslateblue":"blu ardesia scuro","khaki":"kaki","lightblue":"azzurro","palegreen":"verde pallido","azure":"azzurro ghiaccio","peachpuff":"pesca","darkolivegreen":"verde oliva scuro","yellowgreen":"giallo verde"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.it_it");dijit.nls.loading.it_it={"loadingState":"Caricamento in corso...","errorState":"Si è verificato un errore"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.it_it");dijit.nls.common.it_it={"buttonOk":"OK","buttonCancel":"Annulla","buttonSave":"Salva","itemClose":"Chiudi"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.it_it");dijit._editor.nls.commands.it_it={"removeFormat":"Rimuovi formato","copy":"Copia","paste":"Incolla","selectAll":"Seleziona tutto","insertOrderedList":"Elenco numerato","insertTable":"Inserisci/Modifica tabella","print":"Stampa","underline":"Sottolinea","foreColor":"Colore primo piano","htmlToggle":"Origine HTML","formatBlock":"Stile paragrafo","newPage":"Nuova pagina","insertHorizontalRule":"Righello orizzontale","delete":"Elimina","insertUnorderedList":"Elenco puntato","tableProp":"Proprietà tabella","insertImage":"Inserisci immagine","superscript":"Apice","subscript":"Pedice","createLink":"Crea collegamento","undo":"Annulla","fullScreen":"Attiva/Disattiva schermo intero","italic":"Corsivo","fontName":"Nome carattere","justifyLeft":"Allinea a sinistra","unlink":"Rimuovi collegamento","toggleTableBorder":"Attiva/Disattiva bordo tabella","viewSource":"Visualizza origine HTML","fontSize":"Dimensione carattere","systemShortcut":"La azione \"${0}\" è disponibile solo nel browser tramite un tasto di scelta rapida. Utilizzare ${1}.","indent":"Rientro","redo":"Ripristina","strikethrough":"Barrato","justifyFull":"Giustifica","justifyCenter":"Allinea al centro","hiliteColor":"Colore sfondo","deleteTable":"Elimina tabella","outdent":"Annulla rientro","cut":"Taglia","plainFormatBlock":"Stile paragrafo","toggleDir":"Attiva/Disattiva direzione","bold":"Grassetto","tabIndent":"Rientro tabulazione","justifyRight":"Allinea a destra","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.it_it");dijit.form.nls.validate.it_it={"rangeMessage":"Questo valore non è compreso nell'intervallo.","invalidMessage":"Il valore immesso non è valido.","missingMessage":"Questo valore è obbligatorio."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.it_it");dijit.form.nls.ComboBox.it_it={"previousMessage":"Scelte precedenti","nextMessage":"Altre scelte"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.it_it");dijit._editor.nls.FontChoice.it_it={"1":"xx-small","2":"x-small","formatBlock":"Formato","3":"small","4":"medium","5":"large","6":"x-large","7":"xx-large","fantasy":"fantasy","serif":"serif","p":"Paragrafo","pre":"Preformattato","sans-serif":"sans-serif","fontName":"Carattere","h1":"Intestazione","h2":"Sottointestazione","h3":"Sottointestazione secondaria","monospace":"spaziatura fissa","fontSize":"Dimensione","cursive":"corsivo","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.it_it");dijit._editor.nls.LinkDialog.it_it={"text":"Descrizione:","insertImageTitle":"Proprietà immagine","set":"Imposta","newWindow":"Nuova finestra","topWindow":"Finestra superiore","target":"Destinazione:","createLinkTitle":"Proprietà collegamento","parentWindow":"Finestra padre","currentWindow":"Finestra corrente","url":"URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.it_it");dojo.cldr.nls.number.it_it={"decimalFormat":"#,##0.###","group":".","scientificFormat":"#E0","percentFormat":"#,##0%","currencyFormat":"¤ #,##0.00","decimal":",","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.it_it");dojo.cldr.nls.currency.it_it={"HKD_displayName":"Dollaro di Hong Kong","CHF_displayName":"Franco Svizzero","CAD_displayName":"Dollaro Canadese","CNY_displayName":"Renmimbi Cinese","AUD_displayName":"Dollaro Australiano","JPY_displayName":"Yen Giapponese","USD_displayName":"Dollaro Statunitense","GBP_displayName":"Sterlina Inglese","EUR_displayName":"Euro","USD_symbol":"US$","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","JPY_symbol":"JP¥","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.it_it");dojo.cldr.nls.gregorian.it_it={"months-format-narrow":["G","F","M","A","M","G","L","A","S","O","N","D"],"field-weekday":"giorno della settimana","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE, d/M/y","dateFormatItem-MMMEd":"EEE d MMM","eraNarrow":["aC","dC"],"dateFormat-long":"dd MMMM y","months-format-wide":["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"],"dayPeriods-format-wide-pm":"p.","dateFormat-full":"EEEE d MMMM y","dateFormatItem-Md":"d/M","field-era":"era","dateFormatItem-yM":"M/y","months-standAlone-wide":["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],"timeFormat-short":"HH:mm","quarters-format-wide":["1o trimestre","2o trimestre","3o trimestre","4o trimestre"],"timeFormat-long":"HH:mm:ss z","field-year":"anno","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q-yyyy","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"ora","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"oggi","field-day-relative+1":"domani","field-day-relative+2":"dopodomani","field-day-relative+3":"tra tre giorni","months-standAlone-abbr":["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],"quarters-format-abbr":["T1","T2","T3","T4"],"quarters-standAlone-wide":["1o trimestre","2o trimestre","3o trimestre","4o trimestre"],"dateFormatItem-M":"L","days-standAlone-wide":["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"],"timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["T1","T2","T3","T4"],"eraAbbr":["aC","dC"],"field-minute":"minuto","field-dayperiod":"periodo del giorno","days-standAlone-abbr":["dom","lun","mar","mer","gio","ven","sab"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"ieri","dateFormatItem-h":"hh a","field-day-relative+-2":"l'altro ieri","field-day-relative+-3":"tre giorni fa","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"EEE d/M","field-day":"giorno","days-format-wide":["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"],"field-zone":"zona","dateFormatItem-y":"y","months-standAlone-narrow":["G","F","M","A","M","G","L","A","S","O","N","D"],"dateFormatItem-yyMM":"MM/yy","dateFormatItem-hm":"hh:mm a","days-format-abbr":["dom","lun","mar","mer","gio","ven","sab"],"eraNames":["a.C.","d.C"],"days-format-narrow":["D","L","M","M","G","V","S"],"field-month":"mese","days-standAlone-narrow":["D","L","M","M","G","V","S"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"m.","dateFormatItem-MMMMdd":"dd MMMM","dateFormat-short":"dd/MM/yy","field-second":"secondo","dateFormatItem-yMMMEd":"EEE d MMM y","field-week":"settimana","dateFormat-medium":"dd/MMM/y","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"hh:mm:ss a","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","quarters-format-narrow":["1","2","3","4"],"dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"}; diff --git a/lib/dijit/nls/dijit-all_it.js b/lib/dijit/nls/dijit-all_it.js new file mode 100644 index 000000000..a71d9a5e7 --- /dev/null +++ b/lib/dijit/nls/dijit-all_it.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_it");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.it");dojo.nls.colors.it={"lightsteelblue":"blu acciao chiaro","orangered":"vermiglio","midnightblue":"blu melanzana scuro","cadetblue":"verde acqua","seashell":"sabbia rosa","slategrey":"grigio ardesia","coral":"corallo","darkturquoise":"turchese scuro","antiquewhite":"bianco antico","mediumspringgreen":"verde primavera medio","salmon":"salmone","darkgrey":"grigio scuro","ivory":"avorio","greenyellow":"giallo verde","mistyrose":"rosa pallido","lightsalmon":"salmone chiaro","silver":"grigio 25%","dimgrey":"grigio 80%","orange":"arancione","white":"bianco","navajowhite":"pesca chiaro","royalblue":"blu reale","deeppink":"ciclamino","lime":"verde fluorescente","oldlace":"mandorla","chartreuse":"verde brillante","darkcyan":"ciano scuro","yellow":"giallo","linen":"lino","olive":"verde oliva","gold":"oro","lawngreen":"verde prato","lightyellow":"giallo chiaro","tan":"grigio bruno","darkviolet":"viola scuro","lightslategrey":"grigio ardesia chiaro","grey":"grigio","darkkhaki":"kaki scuro","green":"verde","deepskyblue":"azzurro cielo scuro","aqua":"acqua","sienna":"cuoio","mintcream":"bianco nuvola","rosybrown":"marrone rosato","mediumslateblue":"blu ardesia medio","magenta":"magenta","lightseagreen":"verde mare chiaro","cyan":"ciano","olivedrab":"marrone oliva","darkgoldenrod":"ocra scuro","slateblue":"blu ardesia","mediumaquamarine":"acquamarina medio","lavender":"lavanda","mediumseagreen":"verde mare medio","maroon":"scarlatto","darkslategray":"grigio ardesia scuro","mediumturquoise":"turchese medio","ghostwhite":"bianco gesso","darkblue":"blu scuro","mediumvioletred":"vinaccia","brown":"marrone","lightgray":"grigio chiaro","sandybrown":"marrone sabbia","pink":"rosa","firebrick":"rosso mattone","indigo":"indaco","snow":"neve","darkorchid":"orchidea scuro","turquoise":"turchese","chocolate":"cioccolato","springgreen":"verde primavera","moccasin":"mocassino","navy":"blu notte","lemonchiffon":"caffelatte chiaro","teal":"verde turchese","floralwhite":"bianco giglio","cornflowerblue":"blu fiordaliso","paleturquoise":"turchese pallido","purple":"porpora","gainsboro":"grigio 10%","plum":"prugna","red":"rosso","blue":"blu","forestgreen":"verde foresta","darkgreen":"verde scuro","honeydew":"bianco germoglio","darkseagreen":"verde mare scuro","lightcoral":"rosa corallo","palevioletred":"vinaccia chiaro","mediumpurple":"porpora medio","saddlebrown":"cacao","darkmagenta":"magenta scuro","thistle":"rosa cenere","whitesmoke":"bianco fumo","wheat":"sabbia","violet":"viola","lightskyblue":"azzurro cielo chiaro","goldenrod":"ocra gialla","mediumblue":"blu medio","skyblue":"azzurro cielo","crimson":"cremisi","darksalmon":"salmone scuro","darkred":"rosso scuro","darkslategrey":"grigio ardesia scuro","peru":"marrone terra bruciata","lightgrey":"grigio chiaro","lightgoldenrodyellow":"giallo tenue","blanchedalmond":"mandorla chiaro","aliceblue":"blu alice","bisque":"incarnato","slategray":"grigio ardesia","palegoldenrod":"giallo zolfo chiaro","darkorange":"arancione scuro","aquamarine":"acquamarina","lightgreen":"verde chiaro","burlywood":"tabacco","dodgerblue":"blu d'oriente","darkgray":"grigio scuro","lightcyan":"ciano chiaro","powderblue":"azzurro polvere","blueviolet":"blu violetto","orchid":"orchidea","dimgray":"grigio 80%","beige":"beige","fuchsia":"fucsia","lavenderblush":"bianco rosato","hotpink":"rosa acceso","steelblue":"blu acciao","tomato":"pomodoro","lightpink":"rosa chiaro","limegreen":"verde lime","indianred":"terra indiana","papayawhip":"cipria","lightslategray":"grigio ardesia chiaro","gray":"grigio","mediumorchid":"orchidea medio","cornsilk":"crema","black":"nero","seagreen":"verde mare","darkslateblue":"blu ardesia scuro","khaki":"kaki","lightblue":"azzurro","palegreen":"verde pallido","azure":"azzurro ghiaccio","peachpuff":"pesca","darkolivegreen":"verde oliva scuro","yellowgreen":"giallo verde"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.it");dijit.nls.loading.it={"loadingState":"Caricamento in corso...","errorState":"Si è verificato un errore"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.it");dijit.nls.common.it={"buttonOk":"OK","buttonCancel":"Annulla","buttonSave":"Salva","itemClose":"Chiudi"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.it");dijit._editor.nls.commands.it={"removeFormat":"Rimuovi formato","copy":"Copia","paste":"Incolla","selectAll":"Seleziona tutto","insertOrderedList":"Elenco numerato","insertTable":"Inserisci/Modifica tabella","print":"Stampa","underline":"Sottolinea","foreColor":"Colore primo piano","htmlToggle":"Origine HTML","formatBlock":"Stile paragrafo","newPage":"Nuova pagina","insertHorizontalRule":"Righello orizzontale","delete":"Elimina","insertUnorderedList":"Elenco puntato","tableProp":"Proprietà tabella","insertImage":"Inserisci immagine","superscript":"Apice","subscript":"Pedice","createLink":"Crea collegamento","undo":"Annulla","fullScreen":"Attiva/Disattiva schermo intero","italic":"Corsivo","fontName":"Nome carattere","justifyLeft":"Allinea a sinistra","unlink":"Rimuovi collegamento","toggleTableBorder":"Attiva/Disattiva bordo tabella","viewSource":"Visualizza origine HTML","fontSize":"Dimensione carattere","systemShortcut":"La azione \"${0}\" è disponibile solo nel browser tramite un tasto di scelta rapida. Utilizzare ${1}.","indent":"Rientro","redo":"Ripristina","strikethrough":"Barrato","justifyFull":"Giustifica","justifyCenter":"Allinea al centro","hiliteColor":"Colore sfondo","deleteTable":"Elimina tabella","outdent":"Annulla rientro","cut":"Taglia","plainFormatBlock":"Stile paragrafo","toggleDir":"Attiva/Disattiva direzione","bold":"Grassetto","tabIndent":"Rientro tabulazione","justifyRight":"Allinea a destra","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.it");dijit.form.nls.validate.it={"rangeMessage":"Questo valore non è compreso nell'intervallo.","invalidMessage":"Il valore immesso non è valido.","missingMessage":"Questo valore è obbligatorio."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.it");dijit.form.nls.ComboBox.it={"previousMessage":"Scelte precedenti","nextMessage":"Altre scelte"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.it");dijit._editor.nls.FontChoice.it={"1":"xx-small","2":"x-small","formatBlock":"Formato","3":"small","4":"medium","5":"large","6":"x-large","7":"xx-large","fantasy":"fantasy","serif":"serif","p":"Paragrafo","pre":"Preformattato","sans-serif":"sans-serif","fontName":"Carattere","h1":"Intestazione","h2":"Sottointestazione","h3":"Sottointestazione secondaria","monospace":"spaziatura fissa","fontSize":"Dimensione","cursive":"corsivo","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.it");dijit._editor.nls.LinkDialog.it={"text":"Descrizione:","insertImageTitle":"Proprietà immagine","set":"Imposta","newWindow":"Nuova finestra","topWindow":"Finestra superiore","target":"Destinazione:","createLinkTitle":"Proprietà collegamento","parentWindow":"Finestra padre","currentWindow":"Finestra corrente","url":"URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.it");dojo.cldr.nls.number.it={"decimalFormat":"#,##0.###","group":".","scientificFormat":"#E0","percentFormat":"#,##0%","currencyFormat":"¤ #,##0.00","decimal":",","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.it");dojo.cldr.nls.currency.it={"HKD_displayName":"Dollaro di Hong Kong","CHF_displayName":"Franco Svizzero","CAD_displayName":"Dollaro Canadese","CNY_displayName":"Renmimbi Cinese","AUD_displayName":"Dollaro Australiano","JPY_displayName":"Yen Giapponese","USD_displayName":"Dollaro Statunitense","GBP_displayName":"Sterlina Inglese","EUR_displayName":"Euro","USD_symbol":"US$","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","JPY_symbol":"JP¥","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.it");dojo.cldr.nls.gregorian.it={"months-format-narrow":["G","F","M","A","M","G","L","A","S","O","N","D"],"field-weekday":"giorno della settimana","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE, d/M/y","dateFormatItem-MMMEd":"EEE d MMM","eraNarrow":["aC","dC"],"dateFormat-long":"dd MMMM y","months-format-wide":["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"],"dayPeriods-format-wide-pm":"p.","dateFormat-full":"EEEE d MMMM y","dateFormatItem-Md":"d/M","field-era":"era","dateFormatItem-yM":"M/y","months-standAlone-wide":["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],"timeFormat-short":"HH:mm","quarters-format-wide":["1o trimestre","2o trimestre","3o trimestre","4o trimestre"],"timeFormat-long":"HH:mm:ss z","field-year":"anno","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q-yyyy","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"ora","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"oggi","field-day-relative+1":"domani","field-day-relative+2":"dopodomani","field-day-relative+3":"tra tre giorni","months-standAlone-abbr":["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],"quarters-format-abbr":["T1","T2","T3","T4"],"quarters-standAlone-wide":["1o trimestre","2o trimestre","3o trimestre","4o trimestre"],"dateFormatItem-M":"L","days-standAlone-wide":["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"],"timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["T1","T2","T3","T4"],"eraAbbr":["aC","dC"],"field-minute":"minuto","field-dayperiod":"periodo del giorno","days-standAlone-abbr":["dom","lun","mar","mer","gio","ven","sab"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"ieri","dateFormatItem-h":"hh a","field-day-relative+-2":"l'altro ieri","field-day-relative+-3":"tre giorni fa","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"EEE d/M","field-day":"giorno","days-format-wide":["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"],"field-zone":"zona","dateFormatItem-y":"y","months-standAlone-narrow":["G","F","M","A","M","G","L","A","S","O","N","D"],"dateFormatItem-yyMM":"MM/yy","dateFormatItem-hm":"hh:mm a","days-format-abbr":["dom","lun","mar","mer","gio","ven","sab"],"eraNames":["a.C.","d.C"],"days-format-narrow":["D","L","M","M","G","V","S"],"field-month":"mese","days-standAlone-narrow":["D","L","M","M","G","V","S"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"m.","dateFormatItem-MMMMdd":"dd MMMM","dateFormat-short":"dd/MM/yy","field-second":"secondo","dateFormatItem-yMMMEd":"EEE d MMM y","field-week":"settimana","dateFormat-medium":"dd/MMM/y","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"hh:mm:ss a","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","quarters-format-narrow":["1","2","3","4"],"dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"}; diff --git a/lib/dijit/nls/dijit-all_ja-jp.js b/lib/dijit/nls/dijit-all_ja-jp.js new file mode 100644 index 000000000..067474b36 --- /dev/null +++ b/lib/dijit/nls/dijit-all_ja-jp.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_ja-jp");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.ja_jp");dojo.nls.colors.ja_jp={"lightsteelblue":"ライト・スチール・ブルー","orangered":"オレンジ・レッド","midnightblue":"ミッドナイト・ブルー","cadetblue":"くすんだ青","seashell":"シーシェル","slategrey":"スレート・グレイ","coral":"珊瑚","darkturquoise":"ダーク・ターコイズ","antiquewhite":"アンティーク・ホワイト","mediumspringgreen":"ミディアム・スプリング・グリーン","salmon":"サーモン","darkgrey":"ダーク・グレイ","ivory":"アイボリー","greenyellow":"緑黄色","mistyrose":"ミスティ・ローズ","lightsalmon":"ライト・サーモン","silver":"銀","dimgrey":"くすんだグレイ","orange":"オレンジ","white":"白","navajowhite":"ナバホ・ホワイト","royalblue":"藤色","deeppink":"濃いピンク","lime":"ライム","oldlace":"オールド・レイス","chartreuse":"淡黄緑","darkcyan":"ダーク・シアン・ブルー","yellow":"黄","linen":"亜麻色","olive":"オリーブ","gold":"金","lawngreen":"ローン・グリーン","lightyellow":"ライト・イエロー","tan":"茶褐色","darkviolet":"ダーク・バイオレット","lightslategrey":"ライト・スレート・グレイ","grey":"グレイ","darkkhaki":"ダーク・カーキー","green":"緑","deepskyblue":"濃い空色","aqua":"アクア","sienna":"黄褐色","mintcream":"ミント・クリーム","rosybrown":"ロージー・ブラウン","mediumslateblue":"ミディアム・スレート・ブルー","magenta":"赤紫","lightseagreen":"ライト・シー・グリーン","cyan":"シアン・ブルー","olivedrab":"濃黄緑","darkgoldenrod":"ダーク・ゴールデン・ロッド","slateblue":"スレート・ブルー","mediumaquamarine":"ミディアム・アクアマリーン","lavender":"ラベンダー","mediumseagreen":"ミディアム・シー・グリーン","maroon":"えび茶","darkslategray":"ダーク・スレート・グレイ","mediumturquoise":"ミディアム・ターコイズ","ghostwhite":"ゴースト・ホワイト","darkblue":"ダーク・ブルー","mediumvioletred":"ミディアム・バイオレット・レッド","brown":"茶","lightgray":"ライト・グレイ","sandybrown":"砂褐色","pink":"ピンク","firebrick":"赤煉瓦色","indigo":"藍色","snow":"雪色","darkorchid":"ダーク・オーキッド","turquoise":"ターコイズ","chocolate":"チョコレート","springgreen":"スプリング・グリーン","moccasin":"モカシン","navy":"濃紺","lemonchiffon":"レモン・シフォン","teal":"ティール","floralwhite":"フローラル・ホワイト","cornflowerblue":"コーンフラワー・ブルー","paleturquoise":"ペイル・ターコイズ","purple":"紫","gainsboro":"ゲインズボーロ","plum":"深紫","red":"赤","blue":"青","forestgreen":"フォレスト・グリーン","darkgreen":"ダーク・グリーン","honeydew":"ハニーデュー","darkseagreen":"ダーク・シー・グリーン","lightcoral":"ライト・コーラル","palevioletred":"ペイル・バイオレット・レッド","mediumpurple":"ミディアム・パープル","saddlebrown":"サドル・ブラウン","darkmagenta":"ダーク・マジェンタ","thistle":"シスル","whitesmoke":"ホワイト・スモーク","wheat":"小麦色","violet":"すみれ色","lightskyblue":"ライト・スカイ・ブルー","goldenrod":"ゴールデン・ロッド","mediumblue":"ミディアム・ブルー","skyblue":"スカイ・ブルー","crimson":"深紅","darksalmon":"ダーク・サーモン","darkred":"ダーク・レッド","darkslategrey":"ダーク・スレート・グレイ","peru":"ペルー","lightgrey":"ライト・グレイ","lightgoldenrodyellow":"ライト・ゴールデン・ロッド・イエロー","blanchedalmond":"皮なしアーモンド","aliceblue":"アリス・ブルー","bisque":"ビスク","slategray":"スレート・グレイ","palegoldenrod":"ペイル・ゴールデン・ロッド","darkorange":"ダーク・オレンジ","aquamarine":"碧緑","lightgreen":"ライト・グリーン","burlywood":"バーリーウッド","dodgerblue":"ドッジャー・ブルー","darkgray":"ダーク・グレイ","lightcyan":"ライト・シアン","powderblue":"淡青","blueviolet":"青紫","orchid":"薄紫","dimgray":"くすんだグレイ","beige":"ベージュ","fuchsia":"紫紅色","lavenderblush":"ラベンダー・ブラッシ","hotpink":"ホット・ピンク","steelblue":"鋼色","tomato":"トマト色","lightpink":"ライト・ピンク","limegreen":"ライム・グリーン","indianred":"インディアン・レッド","papayawhip":"パパイア・ホイップ","lightslategray":"ライト・スレート・グレイ","gray":"グレイ","mediumorchid":"ミディアム・オーキッド","cornsilk":"コーンシルク","black":"黒","seagreen":"シー・グリーン","darkslateblue":"ダーク・スレート・ブルー","khaki":"カーキー","lightblue":"ライト・ブルー","palegreen":"ペイル・グリーン","azure":"薄い空色","peachpuff":"ピーチ・パフ","darkolivegreen":"ダーク・オリーブ・グリーン","yellowgreen":"黄緑"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.ja_jp");dijit.nls.loading.ja_jp={"loadingState":"ロード中...","errorState":"エラーが発生しました。"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.ja_jp");dijit.nls.common.ja_jp={"buttonOk":"OK","buttonCancel":"キャンセル","buttonSave":"保存","itemClose":"閉じる"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.ja_jp");dijit._editor.nls.commands.ja_jp={"removeFormat":"形式の除去","copy":"コピー","paste":"貼り付け","selectAll":"すべて選択","insertOrderedList":"番号付きリスト","insertTable":"テーブルの挿入/編集","print":"印刷","underline":"下線","foreColor":"前景色","htmlToggle":"HTML ソース","formatBlock":"段落スタイル","newPage":"新しいページ","insertHorizontalRule":"水平罫線","delete":"削除","insertUnorderedList":"黒丸付きリスト","tableProp":"テーブルプロパティ","insertImage":"イメージの挿入","superscript":"上付き文字","subscript":"下付き文字","createLink":"リンクの作成","undo":"元に戻す","fullScreen":"全画面表示に切り替え","italic":"斜体","fontName":"フォント名","justifyLeft":"左揃え","unlink":"リンクの削除","toggleTableBorder":"テーブルボーダーの切り替え","viewSource":"HTML ソースの表示","fontSize":"フォントサイズ","systemShortcut":"\"${0}\" アクションを使用できるのは、ブラウザーでキーボードショートカットを使用する場合のみです。 ${1} を使用してください。","indent":"インデント","redo":"やり直し","strikethrough":"取り消し線","justifyFull":"両端揃え","justifyCenter":"中央揃え","hiliteColor":"背景色","deleteTable":"テーブルの削除","outdent":"アウトデント","cut":"切り取り","plainFormatBlock":"段落スタイル","toggleDir":"方向の切り替え","bold":"太字","tabIndent":"タブインデント","justifyRight":"右揃え","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.ja_jp");dijit.form.nls.validate.ja_jp={"rangeMessage":"この値は範囲外です。","invalidMessage":"入力した値は無効です。","missingMessage":"この値は必須です。"};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.ja_jp");dijit.form.nls.ComboBox.ja_jp={"previousMessage":"以前の選択項目","nextMessage":"追加の選択項目"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.ja_jp");dijit._editor.nls.FontChoice.ja_jp={"1":"超極小","2":"極小","formatBlock":"フォーマット","3":"小","4":"標準","5":"大","6":"特大","7":"超特大","fantasy":"fantasy","serif":"serif","p":"段落","pre":"事前フォーマット済み","sans-serif":"sans-serif","fontName":"フォント","h1":"見出し","h2":"副見出し","h3":"副見出しの副見出し","monospace":"monospace","fontSize":"サイズ","cursive":"cursive","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.ja_jp");dijit._editor.nls.LinkDialog.ja_jp={"text":"説明:","insertImageTitle":"イメージ・プロパティー","set":"設定","newWindow":"新規ウィンドウ","topWindow":"最上位ウィンドウ","target":"ターゲット:","createLinkTitle":"リンク・プロパティー","parentWindow":"親ウィンドウ","currentWindow":"現行ウィンドウ","url":"URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.ja_jp");dojo.cldr.nls.number.ja_jp={"decimalFormat":"#,##0.###","group":",","scientificFormat":"#E0","percentFormat":"#,##0%","currencyFormat":"¤#,##0.00","decimal":".","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.ja_jp");dojo.cldr.nls.currency.ja_jp={"HKD_displayName":"香港ドル","CHF_displayName":"スイス フラン","JPY_symbol":"¥","CAD_displayName":"カナダ ドル","CNY_displayName":"中国人民元","USD_symbol":"$","AUD_displayName":"オーストラリア ドル","JPY_displayName":"日本円","USD_displayName":"米ドル","CNY_symbol":"元","GBP_displayName":"英国ポンド","EUR_displayName":"ユーロ","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","AUD_symbol":"AU$","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.ja_jp");dojo.cldr.nls.gregorian.ja_jp={"field-weekday":"曜日","dateFormatItem-yQQQ":"yQQQ","dateFormatItem-yMEd":"y/M/d(EEE)","dateFormatItem-MMMEd":"M月d日(E)","eraNarrow":["BC","AD"],"dateFormat-long":"y年M月d日","months-format-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"午後","dateFormat-full":"y年M月d日EEEE","dateFormatItem-Md":"M/d","dateFormatItem-yMd":"y/M/d","field-era":"時代","dateFormatItem-yM":"y/M","months-standAlone-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"timeFormat-short":"H:mm","quarters-format-wide":["第1四半期","第2四半期","第3四半期","第4四半期"],"timeFormat-long":"H:mm:ss z","field-year":"年","dateFormatItem-yMMM":"y年M月","dateFormatItem-yQ":"y/Q","field-hour":"時","dateFormatItem-MMdd":"MM/dd","months-format-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-yyQ":"yy/Q","timeFormat-full":"H時mm分ss秒 zzzz","field-day-relative+0":"今日","field-day-relative+1":"明日","field-day-relative+2":"明後日","dateFormatItem-H":"H時","field-day-relative+3":"3日後","months-standAlone-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"quarters-format-abbr":["Q1","Q2","Q3","Q4"],"quarters-standAlone-wide":["第1四半期","第2四半期","第3四半期","第4四半期"],"dateFormatItem-M":"L","days-standAlone-wide":["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],"dateFormatItem-yyMMM":"y年M月","timeFormat-medium":"H:mm:ss","dateFormatItem-Hm":"H:mm","eraAbbr":["BC","AD"],"field-minute":"分","field-dayperiod":"午前/午後","days-standAlone-abbr":["日","月","火","水","木","金","土"],"dateFormatItem-d":"d日","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"昨日","dateFormatItem-h":"ah","dateTimeFormat-long":"{1}{0}","field-day-relative+-2":"一昨日","field-day-relative+-3":"3日前","dateFormatItem-MMMd":"M月d日","dateFormatItem-MEd":"M/d(E)","dateTimeFormat-full":"{1}{0}","field-day":"日","days-format-wide":["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],"field-zone":"タイムゾーン","dateFormatItem-yyyyMM":"yyyy/MM","dateFormatItem-y":"y","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateFormatItem-hm":"ah:mm","dateFormatItem-GGGGyMd":"GGGGy年M月d日","days-format-abbr":["日","月","火","水","木","金","土"],"dateFormatItem-yMMMd":"y年M月d日","eraNames":["紀元前","西暦"],"days-format-narrow":["日","月","火","水","木","金","土"],"field-month":"月","days-standAlone-narrow":["日","月","火","水","木","金","土"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"午前","dateFormat-short":"yy/MM/dd","field-second":"秒","dateFormatItem-yMMMEd":"y年M月d日(EEE)","dateFormatItem-Ed":"d日(EEE)","field-week":"週","dateFormat-medium":"yyyy/MM/dd","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-hms":"ah:mm:ss","dateFormatItem-yyyy":"y年","months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"quarters-format-narrow":["1","2","3","4"],"dayPeriods-format-narrow-am":"AM","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM"}; diff --git a/lib/dijit/nls/dijit-all_ja.js b/lib/dijit/nls/dijit-all_ja.js new file mode 100644 index 000000000..af7cb82cd --- /dev/null +++ b/lib/dijit/nls/dijit-all_ja.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_ja");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.ja");dojo.nls.colors.ja={"lightsteelblue":"ライト・スチール・ブルー","orangered":"オレンジ・レッド","midnightblue":"ミッドナイト・ブルー","cadetblue":"くすんだ青","seashell":"シーシェル","slategrey":"スレート・グレイ","coral":"珊瑚","darkturquoise":"ダーク・ターコイズ","antiquewhite":"アンティーク・ホワイト","mediumspringgreen":"ミディアム・スプリング・グリーン","salmon":"サーモン","darkgrey":"ダーク・グレイ","ivory":"アイボリー","greenyellow":"緑黄色","mistyrose":"ミスティ・ローズ","lightsalmon":"ライト・サーモン","silver":"銀","dimgrey":"くすんだグレイ","orange":"オレンジ","white":"白","navajowhite":"ナバホ・ホワイト","royalblue":"藤色","deeppink":"濃いピンク","lime":"ライム","oldlace":"オールド・レイス","chartreuse":"淡黄緑","darkcyan":"ダーク・シアン・ブルー","yellow":"黄","linen":"亜麻色","olive":"オリーブ","gold":"金","lawngreen":"ローン・グリーン","lightyellow":"ライト・イエロー","tan":"茶褐色","darkviolet":"ダーク・バイオレット","lightslategrey":"ライト・スレート・グレイ","grey":"グレイ","darkkhaki":"ダーク・カーキー","green":"緑","deepskyblue":"濃い空色","aqua":"アクア","sienna":"黄褐色","mintcream":"ミント・クリーム","rosybrown":"ロージー・ブラウン","mediumslateblue":"ミディアム・スレート・ブルー","magenta":"赤紫","lightseagreen":"ライト・シー・グリーン","cyan":"シアン・ブルー","olivedrab":"濃黄緑","darkgoldenrod":"ダーク・ゴールデン・ロッド","slateblue":"スレート・ブルー","mediumaquamarine":"ミディアム・アクアマリーン","lavender":"ラベンダー","mediumseagreen":"ミディアム・シー・グリーン","maroon":"えび茶","darkslategray":"ダーク・スレート・グレイ","mediumturquoise":"ミディアム・ターコイズ","ghostwhite":"ゴースト・ホワイト","darkblue":"ダーク・ブルー","mediumvioletred":"ミディアム・バイオレット・レッド","brown":"茶","lightgray":"ライト・グレイ","sandybrown":"砂褐色","pink":"ピンク","firebrick":"赤煉瓦色","indigo":"藍色","snow":"雪色","darkorchid":"ダーク・オーキッド","turquoise":"ターコイズ","chocolate":"チョコレート","springgreen":"スプリング・グリーン","moccasin":"モカシン","navy":"濃紺","lemonchiffon":"レモン・シフォン","teal":"ティール","floralwhite":"フローラル・ホワイト","cornflowerblue":"コーンフラワー・ブルー","paleturquoise":"ペイル・ターコイズ","purple":"紫","gainsboro":"ゲインズボーロ","plum":"深紫","red":"赤","blue":"青","forestgreen":"フォレスト・グリーン","darkgreen":"ダーク・グリーン","honeydew":"ハニーデュー","darkseagreen":"ダーク・シー・グリーン","lightcoral":"ライト・コーラル","palevioletred":"ペイル・バイオレット・レッド","mediumpurple":"ミディアム・パープル","saddlebrown":"サドル・ブラウン","darkmagenta":"ダーク・マジェンタ","thistle":"シスル","whitesmoke":"ホワイト・スモーク","wheat":"小麦色","violet":"すみれ色","lightskyblue":"ライト・スカイ・ブルー","goldenrod":"ゴールデン・ロッド","mediumblue":"ミディアム・ブルー","skyblue":"スカイ・ブルー","crimson":"深紅","darksalmon":"ダーク・サーモン","darkred":"ダーク・レッド","darkslategrey":"ダーク・スレート・グレイ","peru":"ペルー","lightgrey":"ライト・グレイ","lightgoldenrodyellow":"ライト・ゴールデン・ロッド・イエロー","blanchedalmond":"皮なしアーモンド","aliceblue":"アリス・ブルー","bisque":"ビスク","slategray":"スレート・グレイ","palegoldenrod":"ペイル・ゴールデン・ロッド","darkorange":"ダーク・オレンジ","aquamarine":"碧緑","lightgreen":"ライト・グリーン","burlywood":"バーリーウッド","dodgerblue":"ドッジャー・ブルー","darkgray":"ダーク・グレイ","lightcyan":"ライト・シアン","powderblue":"淡青","blueviolet":"青紫","orchid":"薄紫","dimgray":"くすんだグレイ","beige":"ベージュ","fuchsia":"紫紅色","lavenderblush":"ラベンダー・ブラッシ","hotpink":"ホット・ピンク","steelblue":"鋼色","tomato":"トマト色","lightpink":"ライト・ピンク","limegreen":"ライム・グリーン","indianred":"インディアン・レッド","papayawhip":"パパイア・ホイップ","lightslategray":"ライト・スレート・グレイ","gray":"グレイ","mediumorchid":"ミディアム・オーキッド","cornsilk":"コーンシルク","black":"黒","seagreen":"シー・グリーン","darkslateblue":"ダーク・スレート・ブルー","khaki":"カーキー","lightblue":"ライト・ブルー","palegreen":"ペイル・グリーン","azure":"薄い空色","peachpuff":"ピーチ・パフ","darkolivegreen":"ダーク・オリーブ・グリーン","yellowgreen":"黄緑"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.ja");dijit.nls.loading.ja={"loadingState":"ロード中...","errorState":"エラーが発生しました。"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.ja");dijit.nls.common.ja={"buttonOk":"OK","buttonCancel":"キャンセル","buttonSave":"保存","itemClose":"閉じる"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.ja");dijit._editor.nls.commands.ja={"removeFormat":"形式の除去","copy":"コピー","paste":"貼り付け","selectAll":"すべて選択","insertOrderedList":"番号付きリスト","insertTable":"テーブルの挿入/編集","print":"印刷","underline":"下線","foreColor":"前景色","htmlToggle":"HTML ソース","formatBlock":"段落スタイル","newPage":"新しいページ","insertHorizontalRule":"水平罫線","delete":"削除","insertUnorderedList":"黒丸付きリスト","tableProp":"テーブルプロパティ","insertImage":"イメージの挿入","superscript":"上付き文字","subscript":"下付き文字","createLink":"リンクの作成","undo":"元に戻す","fullScreen":"全画面表示に切り替え","italic":"斜体","fontName":"フォント名","justifyLeft":"左揃え","unlink":"リンクの削除","toggleTableBorder":"テーブルボーダーの切り替え","viewSource":"HTML ソースの表示","fontSize":"フォントサイズ","systemShortcut":"\"${0}\" アクションを使用できるのは、ブラウザーでキーボードショートカットを使用する場合のみです。 ${1} を使用してください。","indent":"インデント","redo":"やり直し","strikethrough":"取り消し線","justifyFull":"両端揃え","justifyCenter":"中央揃え","hiliteColor":"背景色","deleteTable":"テーブルの削除","outdent":"アウトデント","cut":"切り取り","plainFormatBlock":"段落スタイル","toggleDir":"方向の切り替え","bold":"太字","tabIndent":"タブインデント","justifyRight":"右揃え","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.ja");dijit.form.nls.validate.ja={"rangeMessage":"この値は範囲外です。","invalidMessage":"入力した値は無効です。","missingMessage":"この値は必須です。"};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.ja");dijit.form.nls.ComboBox.ja={"previousMessage":"以前の選択項目","nextMessage":"追加の選択項目"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.ja");dijit._editor.nls.FontChoice.ja={"1":"超極小","2":"極小","formatBlock":"フォーマット","3":"小","4":"標準","5":"大","6":"特大","7":"超特大","fantasy":"fantasy","serif":"serif","p":"段落","pre":"事前フォーマット済み","sans-serif":"sans-serif","fontName":"フォント","h1":"見出し","h2":"副見出し","h3":"副見出しの副見出し","monospace":"monospace","fontSize":"サイズ","cursive":"cursive","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.ja");dijit._editor.nls.LinkDialog.ja={"text":"説明:","insertImageTitle":"イメージ・プロパティー","set":"設定","newWindow":"新規ウィンドウ","topWindow":"最上位ウィンドウ","target":"ターゲット:","createLinkTitle":"リンク・プロパティー","parentWindow":"親ウィンドウ","currentWindow":"現行ウィンドウ","url":"URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.ja");dojo.cldr.nls.number.ja={"decimalFormat":"#,##0.###","group":",","scientificFormat":"#E0","percentFormat":"#,##0%","currencyFormat":"¤#,##0.00","decimal":".","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.ja");dojo.cldr.nls.currency.ja={"HKD_displayName":"香港ドル","CHF_displayName":"スイス フラン","JPY_symbol":"¥","CAD_displayName":"カナダ ドル","CNY_displayName":"中国人民元","USD_symbol":"$","AUD_displayName":"オーストラリア ドル","JPY_displayName":"日本円","USD_displayName":"米ドル","CNY_symbol":"元","GBP_displayName":"英国ポンド","EUR_displayName":"ユーロ","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","AUD_symbol":"AU$","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.ja");dojo.cldr.nls.gregorian.ja={"field-weekday":"曜日","dateFormatItem-yQQQ":"yQQQ","dateFormatItem-yMEd":"y/M/d(EEE)","dateFormatItem-MMMEd":"M月d日(E)","eraNarrow":["BC","AD"],"dateFormat-long":"y年M月d日","months-format-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"午後","dateFormat-full":"y年M月d日EEEE","dateFormatItem-Md":"M/d","dateFormatItem-yMd":"y/M/d","field-era":"時代","dateFormatItem-yM":"y/M","months-standAlone-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"timeFormat-short":"H:mm","quarters-format-wide":["第1四半期","第2四半期","第3四半期","第4四半期"],"timeFormat-long":"H:mm:ss z","field-year":"年","dateFormatItem-yMMM":"y年M月","dateFormatItem-yQ":"y/Q","field-hour":"時","dateFormatItem-MMdd":"MM/dd","months-format-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-yyQ":"yy/Q","timeFormat-full":"H時mm分ss秒 zzzz","field-day-relative+0":"今日","field-day-relative+1":"明日","field-day-relative+2":"明後日","dateFormatItem-H":"H時","field-day-relative+3":"3日後","months-standAlone-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"quarters-format-abbr":["Q1","Q2","Q3","Q4"],"quarters-standAlone-wide":["第1四半期","第2四半期","第3四半期","第4四半期"],"dateFormatItem-M":"L","days-standAlone-wide":["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],"dateFormatItem-yyMMM":"y年M月","timeFormat-medium":"H:mm:ss","dateFormatItem-Hm":"H:mm","eraAbbr":["BC","AD"],"field-minute":"分","field-dayperiod":"午前/午後","days-standAlone-abbr":["日","月","火","水","木","金","土"],"dateFormatItem-d":"d日","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"昨日","dateFormatItem-h":"ah","dateTimeFormat-long":"{1}{0}","field-day-relative+-2":"一昨日","field-day-relative+-3":"3日前","dateFormatItem-MMMd":"M月d日","dateFormatItem-MEd":"M/d(E)","dateTimeFormat-full":"{1}{0}","field-day":"日","days-format-wide":["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],"field-zone":"タイムゾーン","dateFormatItem-yyyyMM":"yyyy/MM","dateFormatItem-y":"y","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateFormatItem-hm":"ah:mm","dateFormatItem-GGGGyMd":"GGGGy年M月d日","days-format-abbr":["日","月","火","水","木","金","土"],"dateFormatItem-yMMMd":"y年M月d日","eraNames":["紀元前","西暦"],"days-format-narrow":["日","月","火","水","木","金","土"],"field-month":"月","days-standAlone-narrow":["日","月","火","水","木","金","土"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"午前","dateFormat-short":"yy/MM/dd","field-second":"秒","dateFormatItem-yMMMEd":"y年M月d日(EEE)","dateFormatItem-Ed":"d日(EEE)","field-week":"週","dateFormat-medium":"yyyy/MM/dd","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-hms":"ah:mm:ss","dateFormatItem-yyyy":"y年","months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"quarters-format-narrow":["1","2","3","4"],"dayPeriods-format-narrow-am":"AM","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM"}; diff --git a/lib/dijit/nls/dijit-all_ko-kr.js b/lib/dijit/nls/dijit-all_ko-kr.js new file mode 100644 index 000000000..f94d4bd8d --- /dev/null +++ b/lib/dijit/nls/dijit-all_ko-kr.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_ko-kr");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.ko_kr");dojo.nls.colors.ko_kr={"lightsteelblue":"라이트 스틸 블루(light steel blue)","orangered":"오렌지 레드(orange red)","midnightblue":"미드나잇 블루(midnight blue)","cadetblue":"카뎃 블루(cadet blue)","seashell":"씨쉘(seashell)","slategrey":"슬레이트 그레이(slate gray)","coral":"코랄(coral)","darkturquoise":"다크 터콰즈(dark turquoise)","antiquewhite":"앤틱 화이트(antique white)","mediumspringgreen":"미디엄 스프링 그린(medium spring green)","salmon":"샐몬(salmon)","darkgrey":"다크 그레이(dark gray)","ivory":"아이보리(ivory)","greenyellow":"그린 옐로우(green-yellow)","mistyrose":"미스티 로즈(misty rose)","lightsalmon":"라이트 샐몬(light salmon)","silver":"실버(silver)","dimgrey":"딤 그레이(dim gray)","orange":"오렌지(orange)","white":"화이트(white)","navajowhite":"나바호 화이트(navajo white)","royalblue":"로얄 블루(royal blue)","deeppink":"딥 핑크(deep pink)","lime":"라임(lime)","oldlace":"올드 레이스(old lace)","chartreuse":"샤르트뢰즈(chartreuse)","darkcyan":"다크 시안(dark cyan)","yellow":"옐로우(yellow)","linen":"리넨(linen)","olive":"올리브(olive)","gold":"골드(gold)","lawngreen":"론 그린(lawn green)","lightyellow":"라이트 옐로우(light yellow)","tan":"탠(tan)","darkviolet":"다크 바이올렛(dark violet)","lightslategrey":"라이트 슬레이트 그레이(light slate gray)","grey":"그레이(gray)","darkkhaki":"다크 카키(dark khaki)","green":"그린(green)","deepskyblue":"딥 스카이 블루(deep sky blue)","aqua":"아쿠아(aqua)","sienna":"시에나(sienna)","mintcream":"민트 크림(mint cream)","rosybrown":"로지 브라운(rosy brown)","mediumslateblue":"미디엄 슬레이트 블루(medium slate blue)","magenta":"마젠타(magenta)","lightseagreen":"라이트 씨 그린(light sea green)","cyan":"시안(cyan)","olivedrab":"올리브 드랩(olive drab)","darkgoldenrod":"다크 골든로드(dark goldenrod)","slateblue":"슬레이트 블루(slate blue)","mediumaquamarine":"미디엄 아쿠아마린(medium aquamarine)","lavender":"라벤더(lavender)","mediumseagreen":"미디엄 씨 그린(medium sea green)","maroon":"마룬(maroon)","darkslategray":"다크 슬레이트 그레이(dark slate gray)","mediumturquoise":"미디엄 터콰즈(medium turquoise)","ghostwhite":"고스트 화이트(ghost white)","darkblue":"다크 블루(dark blue)","mediumvioletred":"미디엄 바이올렛 레드(medium violet-red)","brown":"브라운(brown)","lightgray":"라이트 그레이(light gray)","sandybrown":"샌디 브라운(sandy brown)","pink":"핑크(pink)","firebrick":"파이어 브릭(fire brick)","indigo":"인디고(indigo)","snow":"스노우(snow)","darkorchid":"다크 오키드(dark orchid)","turquoise":"터콰즈(turquoise)","chocolate":"초콜렛(chocolate)","springgreen":"스프링 그린(spring green)","moccasin":"모카신(moccasin)","navy":"네이비(navy)","lemonchiffon":"레몬 쉬폰(lemon chiffon)","teal":"틸(teal)","floralwhite":"플로랄 화이트(floral white)","cornflowerblue":"콘플라워 블루(cornflower blue)","paleturquoise":"페일 터콰즈(pale turquoise)","purple":"퍼플(purple)","gainsboro":"게인스브로(gainsboro)","plum":"플럼(plum)","red":"레드(red)","blue":"블루(blue)","forestgreen":"포레스트 그린(forest green)","darkgreen":"다크 그린(dark green)","honeydew":"허니듀(honeydew)","darkseagreen":"다크 씨 그린(dark sea green)","lightcoral":"라이트 코랄(light coral)","palevioletred":"페일 바이올렛 레드(pale violet-red)","mediumpurple":"미디엄 퍼플(medium purple)","saddlebrown":"새들 브라운(saddle brown)","darkmagenta":"다크 마젠타(dark magenta)","thistle":"시슬(thistle)","whitesmoke":"화이트 스모크(white smoke)","wheat":"휘트(wheat)","violet":"바이올렛(violet)","lightskyblue":"라이트 스카이 블루(light sky blue)","goldenrod":"골든로드(goldenrod)","mediumblue":"미디엄 블루(medium blue)","skyblue":"스카이 블루(sky blue)","crimson":"크림슨(crimson)","darksalmon":"다크 샐몬(dark salmon)","darkred":"다크 레드(dark red)","darkslategrey":"다크 슬레이트 그레이(dark slate gray)","peru":"페루(peru)","lightgrey":"라이트 그레이(light gray)","lightgoldenrodyellow":"라이트 골든로드 옐로우(light goldenrod yellow)","blanchedalmond":"블랜치 아몬드(blanched almond)","aliceblue":"앨리스 블루(alice blue)","bisque":"비스크(bisque)","slategray":"슬레이트 그레이(slate gray)","palegoldenrod":"페일 골든로드(pale goldenrod)","darkorange":"다크 오렌지(dark orange)","aquamarine":"아쿠아마린(aquamarine)","lightgreen":"라이트 그린(light green)","burlywood":"벌리우드(burlywood)","dodgerblue":"다저 블루(dodger blue)","darkgray":"다크 그레이(dark gray)","lightcyan":"라이트 시안(light cyan)","powderblue":"파우더 블루(powder blue)","blueviolet":"블루 바이올렛(blue-violet)","orchid":"오키드(orchid)","dimgray":"딤 그레이(dim gray)","beige":"베이지(beige)","fuchsia":"후크샤(fuchsia)","lavenderblush":"라벤더 블러쉬(lavender blush)","hotpink":"핫 핑크(hot pink)","steelblue":"스틸 블루(steel blue)","tomato":"토마토(tomato)","lightpink":"라이트 핑크(light pink)","limegreen":"라임 그린(lime green)","indianred":"인디안 레드(indian red)","papayawhip":"파파야 휩(papaya whip)","lightslategray":"라이트 슬레이트 그레이(light slate gray)","gray":"그레이(gray)","mediumorchid":"미디엄 오키드(medium orchid)","cornsilk":"콘실크(cornsilk)","black":"블랙(black)","seagreen":"씨 그린(sea green)","darkslateblue":"다크 슬레이트 블루(dark slate blue)","khaki":"카키(khaki)","lightblue":"라이트 블루(light blue)","palegreen":"페일 그린(pale green)","azure":"애쥬어(azure)","peachpuff":"피치 퍼프(peach puff)","darkolivegreen":"다크 올리브 그린(dark olive green)","yellowgreen":"옐로우 그린(yellow green)"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.ko_kr");dijit.nls.loading.ko_kr={"loadingState":"로드 중...","errorState":"죄송합니다. 오류가 발생했습니다."};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.ko_kr");dijit.nls.common.ko_kr={"buttonOk":"확인","buttonCancel":"취소","buttonSave":"저장","itemClose":"닫기"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.ko_kr");dijit._editor.nls.commands.ko_kr={"removeFormat":"형식 제거","copy":"복사","paste":"붙여넣기","selectAll":"모두 선택","insertOrderedList":"번호 목록","insertTable":"테이블 삽입/편집","print":"인쇄","underline":"밑줄","foreColor":"전경색","htmlToggle":"HTML 소스","formatBlock":"단락 스타일","newPage":"새 페이지","insertHorizontalRule":"수평 자","delete":"삭제","insertUnorderedList":"글머리표 목록","tableProp":"테이블 특성","insertImage":"이미지 삽입","superscript":"위첨자","subscript":"아래첨자","createLink":"링크 작성","undo":"실행 취소","fullScreen":"토글 전체 화면","italic":"기울임체","fontName":"글꼴 이름","justifyLeft":"왼쪽 맞춤","unlink":"링크 제거","toggleTableBorder":"토글 테이블 테두리","viewSource":"HTML 소스 보기","fontSize":"글꼴 크기","systemShortcut":"\"${0}\" 조치는 브라우저에서 키보드 단축키를 이용해서만 사용할 수 있습니다. ${1}을(를) 사용하십시오.","indent":"들여쓰기","redo":"다시 실행","strikethrough":"취소선","justifyFull":"양쪽 맞춤","justifyCenter":"가운데 맞춤","hiliteColor":"배경색","deleteTable":"테이블 삭제","outdent":"내어쓰기","cut":"잘라내기","plainFormatBlock":"단락 스타일","toggleDir":"토글 방향","bold":"굵은체","tabIndent":"탭 들여쓰기","justifyRight":"오른쪽 맞춤","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.ko_kr");dijit.form.nls.validate.ko_kr={"rangeMessage":"이 값은 범위를 벗어납니다.","invalidMessage":"입력된 값이 올바르지 않습니다.","missingMessage":"이 값은 필수입니다."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.ko_kr");dijit.form.nls.ComboBox.ko_kr={"previousMessage":"이전 선택사항","nextMessage":"기타 선택사항"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.ko_kr");dijit._editor.nls.FontChoice.ko_kr={"1":"가장 작게","2":"조금 작게","formatBlock":"서식","3":"작게","4":"중간","5":"크게","6":"조금 크게","7":"가장 크게","fantasy":"fantasy","serif":"serif","p":"단락","pre":"서식이 지정됨","sans-serif":"sans-serif","fontName":"글꼴","h1":"제목","h2":"부제목","h3":"하위 부제목","monospace":"monospace","fontSize":"크기","cursive":"cursive","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.ko_kr");dijit._editor.nls.LinkDialog.ko_kr={"text":"설명:","insertImageTitle":"이미지 특성","set":"설정","newWindow":"새 창","topWindow":"최상위 창","target":"대상:","createLinkTitle":"링크 특성","parentWindow":"상위 창","currentWindow":"현재 창","url":"URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.ko_kr");dojo.cldr.nls.number.ko_kr={"group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.ko_kr");dojo.cldr.nls.currency.ko_kr={"HKD_displayName":"홍콩 달러","CHF_displayName":"스위스 프랑","CAD_displayName":"캐나다 달러","CNY_displayName":"중국 위안 인민폐","AUD_displayName":"호주 달러","JPY_displayName":"일본 엔화","USD_displayName":"미국 달러","GBP_displayName":"영국령 파운드 스털링","EUR_displayName":"유로화","USD_symbol":"US$","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","JPY_symbol":"JP¥","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.ko_kr");dojo.cldr.nls.gregorian.ko_kr={"months-format-narrow":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"field-weekday":"요일","dateFormatItem-yQQQ":"y년 QQQ","dateFormatItem-yMEd":"yyyy. M. d. EEE","dateFormatItem-MMMEd":"MMM d일 (E)","eraNarrow":["기원전","서기"],"dateFormat-long":"y년 M월 d일","months-format-wide":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d일 EEE","dayPeriods-format-wide-pm":"오후","dateFormat-full":"y년 M월 d일 EEEE","dateFormatItem-Md":"M. d.","field-era":"연호","dateFormatItem-yM":"yyyy. M.","months-standAlone-wide":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"timeFormat-short":"a h:mm","quarters-format-wide":["제 1/4분기","제 2/4분기","제 3/4분기","제 4/4분기"],"timeFormat-long":"a h시 m분 s초 z","field-year":"년","dateFormatItem-yMMM":"y년 MMM","dateFormatItem-yQ":"y년 Q분기","field-hour":"시","dateFormatItem-MMdd":"MM. dd","months-format-abbr":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"dateFormatItem-yyQ":"yy년 Q분기","timeFormat-full":"a h시 m분 s초 zzzz","field-day-relative+0":"오늘","field-day-relative+1":"내일","field-day-relative+2":"모레","field-day-relative+3":"3일후","months-standAlone-abbr":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"quarters-format-abbr":["1분기","2분기","3분기","4분기"],"quarters-standAlone-wide":["제 1/4분기","제 2/4분기","제 3/4분기","제 4/4분기"],"dateFormatItem-HHmmss":"HH:mm:ss","dateFormatItem-M":"L","days-standAlone-wide":["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],"dateFormatItem-yyMMM":"yy년 MMM","timeFormat-medium":"a h:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["1분기","2분기","3분기","4분기"],"eraAbbr":["기원전","서기"],"field-minute":"분","field-dayperiod":"오전/오후","days-standAlone-abbr":["일","월","화","수","목","금","토"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"어제","dateFormatItem-h":"a h","dateTimeFormat-long":"{1} {0}","field-day-relative+-2":"그저께","field-day-relative+-3":"그끄제","dateFormatItem-MMMd":"MMM d일","dateFormatItem-MEd":"M. d. (E)","dateTimeFormat-full":"{1} {0}","field-day":"일","days-format-wide":["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],"field-zone":"시간대","dateFormatItem-yyyyMM":"yyyy. MM","dateFormatItem-y":"y","months-standAlone-narrow":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"dateFormatItem-yyMM":"YY. M.","dateFormatItem-hm":"a h:mm","days-format-abbr":["일","월","화","수","목","금","토"],"dateFormatItem-yMMMd":"y년 MMM d일","eraNames":["서력기원전","서력기원"],"days-format-narrow":["일","월","화","수","목","금","토"],"field-month":"월","days-standAlone-narrow":["일","월","화","수","목","금","토"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"오전","dateFormat-short":"yy. M. d.","field-second":"초","dateFormatItem-yMMMEd":"y년 MMM d일 EEE","dateFormatItem-Ed":"d일 (E)","field-week":"주","dateFormat-medium":"yyyy. M. d.","dateFormatItem-mmss":"mm:ss","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"H시 m분 s초","dateFormatItem-hms":"a h:mm:ss","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","quarters-format-narrow":["1","2","3","4"],"dayPeriods-format-narrow-am":"AM","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM"}; diff --git a/lib/dijit/nls/dijit-all_ko.js b/lib/dijit/nls/dijit-all_ko.js new file mode 100644 index 000000000..b25c07653 --- /dev/null +++ b/lib/dijit/nls/dijit-all_ko.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_ko");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.ko");dojo.nls.colors.ko={"lightsteelblue":"라이트 스틸 블루(light steel blue)","orangered":"오렌지 레드(orange red)","midnightblue":"미드나잇 블루(midnight blue)","cadetblue":"카뎃 블루(cadet blue)","seashell":"씨쉘(seashell)","slategrey":"슬레이트 그레이(slate gray)","coral":"코랄(coral)","darkturquoise":"다크 터콰즈(dark turquoise)","antiquewhite":"앤틱 화이트(antique white)","mediumspringgreen":"미디엄 스프링 그린(medium spring green)","salmon":"샐몬(salmon)","darkgrey":"다크 그레이(dark gray)","ivory":"아이보리(ivory)","greenyellow":"그린 옐로우(green-yellow)","mistyrose":"미스티 로즈(misty rose)","lightsalmon":"라이트 샐몬(light salmon)","silver":"실버(silver)","dimgrey":"딤 그레이(dim gray)","orange":"오렌지(orange)","white":"화이트(white)","navajowhite":"나바호 화이트(navajo white)","royalblue":"로얄 블루(royal blue)","deeppink":"딥 핑크(deep pink)","lime":"라임(lime)","oldlace":"올드 레이스(old lace)","chartreuse":"샤르트뢰즈(chartreuse)","darkcyan":"다크 시안(dark cyan)","yellow":"옐로우(yellow)","linen":"리넨(linen)","olive":"올리브(olive)","gold":"골드(gold)","lawngreen":"론 그린(lawn green)","lightyellow":"라이트 옐로우(light yellow)","tan":"탠(tan)","darkviolet":"다크 바이올렛(dark violet)","lightslategrey":"라이트 슬레이트 그레이(light slate gray)","grey":"그레이(gray)","darkkhaki":"다크 카키(dark khaki)","green":"그린(green)","deepskyblue":"딥 스카이 블루(deep sky blue)","aqua":"아쿠아(aqua)","sienna":"시에나(sienna)","mintcream":"민트 크림(mint cream)","rosybrown":"로지 브라운(rosy brown)","mediumslateblue":"미디엄 슬레이트 블루(medium slate blue)","magenta":"마젠타(magenta)","lightseagreen":"라이트 씨 그린(light sea green)","cyan":"시안(cyan)","olivedrab":"올리브 드랩(olive drab)","darkgoldenrod":"다크 골든로드(dark goldenrod)","slateblue":"슬레이트 블루(slate blue)","mediumaquamarine":"미디엄 아쿠아마린(medium aquamarine)","lavender":"라벤더(lavender)","mediumseagreen":"미디엄 씨 그린(medium sea green)","maroon":"마룬(maroon)","darkslategray":"다크 슬레이트 그레이(dark slate gray)","mediumturquoise":"미디엄 터콰즈(medium turquoise)","ghostwhite":"고스트 화이트(ghost white)","darkblue":"다크 블루(dark blue)","mediumvioletred":"미디엄 바이올렛 레드(medium violet-red)","brown":"브라운(brown)","lightgray":"라이트 그레이(light gray)","sandybrown":"샌디 브라운(sandy brown)","pink":"핑크(pink)","firebrick":"파이어 브릭(fire brick)","indigo":"인디고(indigo)","snow":"스노우(snow)","darkorchid":"다크 오키드(dark orchid)","turquoise":"터콰즈(turquoise)","chocolate":"초콜렛(chocolate)","springgreen":"스프링 그린(spring green)","moccasin":"모카신(moccasin)","navy":"네이비(navy)","lemonchiffon":"레몬 쉬폰(lemon chiffon)","teal":"틸(teal)","floralwhite":"플로랄 화이트(floral white)","cornflowerblue":"콘플라워 블루(cornflower blue)","paleturquoise":"페일 터콰즈(pale turquoise)","purple":"퍼플(purple)","gainsboro":"게인스브로(gainsboro)","plum":"플럼(plum)","red":"레드(red)","blue":"블루(blue)","forestgreen":"포레스트 그린(forest green)","darkgreen":"다크 그린(dark green)","honeydew":"허니듀(honeydew)","darkseagreen":"다크 씨 그린(dark sea green)","lightcoral":"라이트 코랄(light coral)","palevioletred":"페일 바이올렛 레드(pale violet-red)","mediumpurple":"미디엄 퍼플(medium purple)","saddlebrown":"새들 브라운(saddle brown)","darkmagenta":"다크 마젠타(dark magenta)","thistle":"시슬(thistle)","whitesmoke":"화이트 스모크(white smoke)","wheat":"휘트(wheat)","violet":"바이올렛(violet)","lightskyblue":"라이트 스카이 블루(light sky blue)","goldenrod":"골든로드(goldenrod)","mediumblue":"미디엄 블루(medium blue)","skyblue":"스카이 블루(sky blue)","crimson":"크림슨(crimson)","darksalmon":"다크 샐몬(dark salmon)","darkred":"다크 레드(dark red)","darkslategrey":"다크 슬레이트 그레이(dark slate gray)","peru":"페루(peru)","lightgrey":"라이트 그레이(light gray)","lightgoldenrodyellow":"라이트 골든로드 옐로우(light goldenrod yellow)","blanchedalmond":"블랜치 아몬드(blanched almond)","aliceblue":"앨리스 블루(alice blue)","bisque":"비스크(bisque)","slategray":"슬레이트 그레이(slate gray)","palegoldenrod":"페일 골든로드(pale goldenrod)","darkorange":"다크 오렌지(dark orange)","aquamarine":"아쿠아마린(aquamarine)","lightgreen":"라이트 그린(light green)","burlywood":"벌리우드(burlywood)","dodgerblue":"다저 블루(dodger blue)","darkgray":"다크 그레이(dark gray)","lightcyan":"라이트 시안(light cyan)","powderblue":"파우더 블루(powder blue)","blueviolet":"블루 바이올렛(blue-violet)","orchid":"오키드(orchid)","dimgray":"딤 그레이(dim gray)","beige":"베이지(beige)","fuchsia":"후크샤(fuchsia)","lavenderblush":"라벤더 블러쉬(lavender blush)","hotpink":"핫 핑크(hot pink)","steelblue":"스틸 블루(steel blue)","tomato":"토마토(tomato)","lightpink":"라이트 핑크(light pink)","limegreen":"라임 그린(lime green)","indianred":"인디안 레드(indian red)","papayawhip":"파파야 휩(papaya whip)","lightslategray":"라이트 슬레이트 그레이(light slate gray)","gray":"그레이(gray)","mediumorchid":"미디엄 오키드(medium orchid)","cornsilk":"콘실크(cornsilk)","black":"블랙(black)","seagreen":"씨 그린(sea green)","darkslateblue":"다크 슬레이트 블루(dark slate blue)","khaki":"카키(khaki)","lightblue":"라이트 블루(light blue)","palegreen":"페일 그린(pale green)","azure":"애쥬어(azure)","peachpuff":"피치 퍼프(peach puff)","darkolivegreen":"다크 올리브 그린(dark olive green)","yellowgreen":"옐로우 그린(yellow green)"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.ko");dijit.nls.loading.ko={"loadingState":"로드 중...","errorState":"죄송합니다. 오류가 발생했습니다."};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.ko");dijit.nls.common.ko={"buttonOk":"확인","buttonCancel":"취소","buttonSave":"저장","itemClose":"닫기"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.ko");dijit._editor.nls.commands.ko={"removeFormat":"형식 제거","copy":"복사","paste":"붙여넣기","selectAll":"모두 선택","insertOrderedList":"번호 목록","insertTable":"테이블 삽입/편집","print":"인쇄","underline":"밑줄","foreColor":"전경색","htmlToggle":"HTML 소스","formatBlock":"단락 스타일","newPage":"새 페이지","insertHorizontalRule":"수평 자","delete":"삭제","insertUnorderedList":"글머리표 목록","tableProp":"테이블 특성","insertImage":"이미지 삽입","superscript":"위첨자","subscript":"아래첨자","createLink":"링크 작성","undo":"실행 취소","fullScreen":"토글 전체 화면","italic":"기울임체","fontName":"글꼴 이름","justifyLeft":"왼쪽 맞춤","unlink":"링크 제거","toggleTableBorder":"토글 테이블 테두리","viewSource":"HTML 소스 보기","fontSize":"글꼴 크기","systemShortcut":"\"${0}\" 조치는 브라우저에서 키보드 단축키를 이용해서만 사용할 수 있습니다. ${1}을(를) 사용하십시오.","indent":"들여쓰기","redo":"다시 실행","strikethrough":"취소선","justifyFull":"양쪽 맞춤","justifyCenter":"가운데 맞춤","hiliteColor":"배경색","deleteTable":"테이블 삭제","outdent":"내어쓰기","cut":"잘라내기","plainFormatBlock":"단락 스타일","toggleDir":"토글 방향","bold":"굵은체","tabIndent":"탭 들여쓰기","justifyRight":"오른쪽 맞춤","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.ko");dijit.form.nls.validate.ko={"rangeMessage":"이 값은 범위를 벗어납니다.","invalidMessage":"입력된 값이 올바르지 않습니다.","missingMessage":"이 값은 필수입니다."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.ko");dijit.form.nls.ComboBox.ko={"previousMessage":"이전 선택사항","nextMessage":"기타 선택사항"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.ko");dijit._editor.nls.FontChoice.ko={"1":"가장 작게","2":"조금 작게","formatBlock":"서식","3":"작게","4":"중간","5":"크게","6":"조금 크게","7":"가장 크게","fantasy":"fantasy","serif":"serif","p":"단락","pre":"서식이 지정됨","sans-serif":"sans-serif","fontName":"글꼴","h1":"제목","h2":"부제목","h3":"하위 부제목","monospace":"monospace","fontSize":"크기","cursive":"cursive","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.ko");dijit._editor.nls.LinkDialog.ko={"text":"설명:","insertImageTitle":"이미지 특성","set":"설정","newWindow":"새 창","topWindow":"최상위 창","target":"대상:","createLinkTitle":"링크 특성","parentWindow":"상위 창","currentWindow":"현재 창","url":"URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.ko");dojo.cldr.nls.number.ko={"group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.ko");dojo.cldr.nls.currency.ko={"HKD_displayName":"홍콩 달러","CHF_displayName":"스위스 프랑","CAD_displayName":"캐나다 달러","CNY_displayName":"중국 위안 인민폐","AUD_displayName":"호주 달러","JPY_displayName":"일본 엔화","USD_displayName":"미국 달러","GBP_displayName":"영국령 파운드 스털링","EUR_displayName":"유로화","USD_symbol":"US$","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","JPY_symbol":"JP¥","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.ko");dojo.cldr.nls.gregorian.ko={"months-format-narrow":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"field-weekday":"요일","dateFormatItem-yQQQ":"y년 QQQ","dateFormatItem-yMEd":"yyyy. M. d. EEE","dateFormatItem-MMMEd":"MMM d일 (E)","eraNarrow":["기원전","서기"],"dateFormat-long":"y년 M월 d일","months-format-wide":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d일 EEE","dayPeriods-format-wide-pm":"오후","dateFormat-full":"y년 M월 d일 EEEE","dateFormatItem-Md":"M. d.","field-era":"연호","dateFormatItem-yM":"yyyy. M.","months-standAlone-wide":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"timeFormat-short":"a h:mm","quarters-format-wide":["제 1/4분기","제 2/4분기","제 3/4분기","제 4/4분기"],"timeFormat-long":"a h시 m분 s초 z","field-year":"년","dateFormatItem-yMMM":"y년 MMM","dateFormatItem-yQ":"y년 Q분기","field-hour":"시","dateFormatItem-MMdd":"MM. dd","months-format-abbr":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"dateFormatItem-yyQ":"yy년 Q분기","timeFormat-full":"a h시 m분 s초 zzzz","field-day-relative+0":"오늘","field-day-relative+1":"내일","field-day-relative+2":"모레","field-day-relative+3":"3일후","months-standAlone-abbr":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"quarters-format-abbr":["1분기","2분기","3분기","4분기"],"quarters-standAlone-wide":["제 1/4분기","제 2/4분기","제 3/4분기","제 4/4분기"],"dateFormatItem-HHmmss":"HH:mm:ss","dateFormatItem-M":"L","days-standAlone-wide":["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],"dateFormatItem-yyMMM":"yy년 MMM","timeFormat-medium":"a h:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["1분기","2분기","3분기","4분기"],"eraAbbr":["기원전","서기"],"field-minute":"분","field-dayperiod":"오전/오후","days-standAlone-abbr":["일","월","화","수","목","금","토"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"어제","dateFormatItem-h":"a h","dateTimeFormat-long":"{1} {0}","field-day-relative+-2":"그저께","field-day-relative+-3":"그끄제","dateFormatItem-MMMd":"MMM d일","dateFormatItem-MEd":"M. d. (E)","dateTimeFormat-full":"{1} {0}","field-day":"일","days-format-wide":["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],"field-zone":"시간대","dateFormatItem-yyyyMM":"yyyy. MM","dateFormatItem-y":"y","months-standAlone-narrow":["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],"dateFormatItem-yyMM":"YY. M.","dateFormatItem-hm":"a h:mm","days-format-abbr":["일","월","화","수","목","금","토"],"dateFormatItem-yMMMd":"y년 MMM d일","eraNames":["서력기원전","서력기원"],"days-format-narrow":["일","월","화","수","목","금","토"],"field-month":"월","days-standAlone-narrow":["일","월","화","수","목","금","토"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"오전","dateFormat-short":"yy. M. d.","field-second":"초","dateFormatItem-yMMMEd":"y년 MMM d일 EEE","dateFormatItem-Ed":"d일 (E)","field-week":"주","dateFormat-medium":"yyyy. M. d.","dateFormatItem-mmss":"mm:ss","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"H시 m분 s초","dateFormatItem-hms":"a h:mm:ss","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","quarters-format-narrow":["1","2","3","4"],"dayPeriods-format-narrow-am":"AM","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM"}; diff --git a/lib/dijit/nls/dijit-all_nb.js b/lib/dijit/nls/dijit-all_nb.js new file mode 100644 index 000000000..7352edc17 --- /dev/null +++ b/lib/dijit/nls/dijit-all_nb.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_nb");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.nb");dojo.nls.colors.nb={"lightsteelblue":"lys stålblå","orangered":"rødoransje","midnightblue":"midnattsblå","cadetblue":"mørk grønnblå","seashell":"skjellhvit","slategrey":"skifergrå","coral":"korall","darkturquoise":"mørk turkis","antiquewhite":"antikk hvit","mediumspringgreen":"middels vårgrønn","salmon":"lakserosa","darkgrey":"mørk grå","ivory":"elfenbenshvit","greenyellow":"gulgrønn","mistyrose":"lys rosenrød","lightsalmon":"lys lakserosa","silver":"sølvfarget","dimgrey":"mørk mørkegrå","orange":"oransje","white":"hvit","navajowhite":"gulbrun","royalblue":"kongeblå","deeppink":"dyp rosa","lime":"lime","oldlace":"kniplingshvit","chartreuse":"løvgrønn","darkcyan":"mørk cyan","yellow":"gul","linen":"lin","olive":"oliven","gold":"gull","lawngreen":"plengrønn","lightyellow":"lys gul","tan":"matt mellombrun","darkviolet":"mørk fiolett","lightslategrey":"lys skifergrå","grey":"grå","darkkhaki":"mørk khaki","green":"grønn","deepskyblue":"dyp himmelblå","aqua":"akva","sienna":"nøttebrun","mintcream":"mintkrem","rosybrown":"brunlilla","mediumslateblue":"middels skiferblå","magenta":"magenta","lightseagreen":"lys sjøgrønn","cyan":"cyan","olivedrab":"middels olivengrønn","darkgoldenrod":"mørk gyldenris","slateblue":"skiferblå","mediumaquamarine":"middels akvamarin","lavender":"lavendel","mediumseagreen":"middels sjøgrønn","maroon":"rødbrun","darkslategray":"mørk skifergrå","mediumturquoise":"middels turkis","ghostwhite":"egghvit","darkblue":"mørk blå","mediumvioletred":"middels fiolettrød","brown":"brun","lightgray":"lys grå","sandybrown":"sandbrun","pink":"rosa","firebrick":"mursteinsrød","indigo":"indigo","snow":"snøhvit","darkorchid":"mørk orkide","turquoise":"turkis","chocolate":"sjokolade","springgreen":"vårgrønn","moccasin":"lys gulbrun","navy":"marineblå","lemonchiffon":"ferskenfarget","teal":"mørk grønnblå","floralwhite":"blomsterhvit","cornflowerblue":"kornblå","paleturquoise":"svak turkis","purple":"purpur","gainsboro":"lys lys grå","plum":"plommefarget","red":"rød","blue":"blå","forestgreen":"skoggrønn","darkgreen":"mørk grønn","honeydew":"grønnhvit","darkseagreen":"mørk sjøgrønn","lightcoral":"lys korall","palevioletred":"svak fiolettrød","mediumpurple":"middels purpur","saddlebrown":"mørk nøttebrun","darkmagenta":"mørk magenta","thistle":"lys grålilla","whitesmoke":"røykhvit","wheat":"varm sienna","violet":"fiolett","lightskyblue":"lys himmelblå","goldenrod":"gyldenris","mediumblue":"mellomblå","skyblue":"himmelblå","crimson":"karmosinrødt","darksalmon":"mørk lakserosa","darkred":"mørk rød","darkslategrey":"mørk skifergrå","peru":"lys nøttebrun","lightgrey":"lys grå","lightgoldenrodyellow":"lys gyldenrisgul","blanchedalmond":"lys mandel","aliceblue":"blåhvit","bisque":"gulrosa","slategray":"skifergrå","palegoldenrod":"svak gyldenris","darkorange":"mørk oransje","aquamarine":"akvamarin","lightgreen":"lys grønn","burlywood":"matt mellombrun","dodgerblue":"lys havblå","darkgray":"mørk grå","lightcyan":"lys cyan","powderblue":"lys grønnblå","blueviolet":"blåfiolett","orchid":"orkide","dimgray":"mørk mørkegrå","beige":"beige","fuchsia":"fuksia","lavenderblush":"lillahvit","hotpink":"halvmørk rosa","steelblue":"stålblå","tomato":"tomatrød","lightpink":"lys rosa","limegreen":"limegrønn","indianred":"rustrød","papayawhip":"lys papaya","lightslategray":"lys skifergrå","gray":"grå","mediumorchid":"middels orkide","cornsilk":"cornsilk","black":"svart","seagreen":"sjøgrønn","darkslateblue":"mørk skiferblå","khaki":"khaki","lightblue":"lys blå","palegreen":"svak grønn","azure":"asur","peachpuff":"brunrosa","darkolivegreen":"mørk olivengrønn","yellowgreen":"gulgrønn"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.nb");dijit.nls.loading.nb={"loadingState":"Laster inn...","errorState":"Det oppsto en feil"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.nb");dijit.nls.common.nb={"buttonOk":"OK","buttonCancel":"Avbryt","buttonSave":"Lagre","itemClose":"Lukk"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.nb");dijit._editor.nls.commands.nb={"removeFormat":"Fjern format","copy":"Kopier","paste":"Lim inn","selectAll":"Velg alle","insertOrderedList":"Nummerert liste","insertTable":"Sett inn/rediger tabell","print":"Skriv ut","underline":"Understreking","foreColor":"Forgrunnsfarge","htmlToggle":"HTML-kilde","formatBlock":"Avsnittsstil","newPage":"Ny side","insertHorizontalRule":"Vannrett strek","delete":"Slett","insertUnorderedList":"Punktliste","tableProp":"Tabellegenskap","insertImage":"Sett inn bilde","superscript":"Hevet skrift","subscript":"Senket skrift","createLink":"Opprett kobling","undo":"Angre","fullScreen":"Slå på/av full skjerm","italic":"Kursiv","fontName":"Skriftnavn","justifyLeft":"Venstrejuster","unlink":"Fjern kobling","toggleTableBorder":"Bytt tabellkant","viewSource":"Vis HTML-kilde","fontSize":"Skriftstørrelse","systemShortcut":"Handlingen \"${0}\" er bare tilgjengelig i nettleseren ved hjelp av en tastatursnarvei. Bruk ${1}.","indent":"Innrykk","redo":"Gjør om","strikethrough":"Gjennomstreking","justifyFull":"Juster","justifyCenter":"Midtstill","hiliteColor":"Bakgrunnsfarge","deleteTable":"Slett tabell","outdent":"Fjern innrykk","cut":"Klipp ut","plainFormatBlock":"Avsnittsstil","toggleDir":"Bytt retning","bold":"Fet","tabIndent":"Tabulatorinnrykk","justifyRight":"Høyrejuster","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.nb");dijit.form.nls.validate.nb={"rangeMessage":"Denne verdien er utenfor gyldig område.","invalidMessage":"Den angitte verdien er ikke gyldig.","missingMessage":"Denne verdien er obligatorisk."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.nb");dijit.form.nls.ComboBox.nb={"previousMessage":"Tidligere valg","nextMessage":"Flere valg"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.nb");dijit._editor.nls.FontChoice.nb={"1":"xx-liten","2":"x-liten","formatBlock":"Format","3":"liten","4":"middels","5":"stor","6":"x-stor","7":"xx-stor","fantasy":"fantasi","serif":"serif","p":"Avsnitt","pre":"Forhåndsformatert","sans-serif":"sans-serif","fontName":"Skrift","h1":"Overskrift","h2":"Undertittel","h3":"Under-undertittel","monospace":"monospace","fontSize":"Størrelse","cursive":"kursiv","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.nb");dijit._editor.nls.LinkDialog.nb={"text":"Beskrivelse:","insertImageTitle":"Bildeegenskaper","set":"Definer","newWindow":"Nytt vindu","topWindow":"Øverste vindu","target":"Mål:","createLinkTitle":"Koblingsegenskaper","parentWindow":"Overordnet vindu","currentWindow":"Gjeldende vindu","url":"URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.nb");dojo.cldr.nls.number.nb={"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤ #,##0.00","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.nb");dojo.cldr.nls.currency.nb={"HKD_displayName":"Hongkong-dollar","CHF_displayName":"sveitsiske franc","CHF_symbol":"CHF","JPY_symbol":"JPY","CAD_displayName":"kanadiske dollar","CNY_displayName":"kinesiske yuan renminbi","USD_symbol":"USD","AUD_displayName":"australske dollar","JPY_displayName":"japanske yen","CAD_symbol":"CAD","USD_displayName":"amerikanske dollar","EUR_symbol":"EUR","CNY_symbol":"CNY","GBP_displayName":"britiske pund sterling","GBP_symbol":"GBP","AUD_symbol":"AUD","EUR_displayName":"euro","HKD_symbol":"HK$"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.nb");dojo.cldr.nls.gregorian.nb={"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-weekday":"ukedag","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE d.M.yyyy","dateFormatItem-MMMEd":"E d. MMM","eraNarrow":["f.Kr.","e.Kr."],"dateFormat-long":"d. MMMM y","months-format-wide":["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],"dateFormatItem-EEEd":"EEE d","dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE d. MMMM y","dateFormatItem-Md":"d.M.","field-era":"tidsalder","dateFormatItem-yM":"M y","months-standAlone-wide":["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],"timeFormat-short":"HH:mm","quarters-format-wide":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"timeFormat-long":"HH:mm:ss z","field-year":"år","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q yyyy","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"time","dateFormatItem-MMdd":"dd.MM","months-format-abbr":["jan.","feb.","mars","apr.","mai","juni","juli","aug.","sep.","okt.","nov.","des."],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"'kl'. HH:mm:ss zzzz","field-day-relative+0":"i dag","field-day-relative+1":"i morgen","field-day-relative+2":"i overmorgen","field-day-relative+3":"i overovermorgen","months-standAlone-abbr":["jan.","feb.","mars","apr.","mai","juni","juli","aug.","sep.","okt.","nov.","des."],"quarters-format-abbr":["K1","K2","K3","K4"],"quarters-standAlone-wide":["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],"dateFormatItem-M":"L","days-standAlone-wide":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["K1","K2","K3","K4"],"eraAbbr":["f.Kr.","e.Kr."],"field-minute":"minutt","field-dayperiod":"AM/PM","days-standAlone-abbr":["søn.","man.","tir.","ons.","tor.","fre.","lør."],"dateFormatItem-d":"d.","dateFormatItem-ms":"mm.ss","field-day-relative+-1":"i går","field-day-relative+-2":"i forgårs","field-day-relative+-3":"i forforgårs","dateFormatItem-MMMd":"d. MMM","dateFormatItem-MEd":"E d.M","field-day":"dag","days-format-wide":["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],"field-zone":"sone","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-yyMM":"MM.yy","dateFormatItem-hm":"h:mm a","days-format-abbr":["søn.","man.","tir.","ons.","tor.","fre.","lør."],"eraNames":["f.Kr.","e.Kr."],"days-format-narrow":["S","M","T","O","T","F","L"],"field-month":"måned","days-standAlone-narrow":["S","M","T","O","T","F","L"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"AM","dateFormat-short":"dd.MM.yy","field-second":"sekund","dateFormatItem-yMMMEd":"EEE d. MMM y","field-week":"uke","dateFormat-medium":"d. MMM y","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"}; diff --git a/lib/dijit/nls/dijit-all_nl-nl.js b/lib/dijit/nls/dijit-all_nl-nl.js new file mode 100644 index 000000000..13107dcdd --- /dev/null +++ b/lib/dijit/nls/dijit-all_nl-nl.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_nl-nl");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.nl_nl");dojo.nls.colors.nl_nl={"lightsteelblue":"lichtstaalblauw","orangered":"oranjerood","midnightblue":"nachtblauw","cadetblue":"donkerstaalblauw","seashell":"schelp","slategrey":"leigrijs","coral":"koraalrood","darkturquoise":"donkerturquoise","antiquewhite":"antiekwit","mediumspringgreen":"midlentegroen","salmon":"zalm","darkgrey":"donkergrijs","ivory":"ivoorwit","greenyellow":"groengeel","mistyrose":"matroze","lightsalmon":"lichtzalm","silver":"zilvergrijs","dimgrey":"dofgrijs","orange":"oranje","white":"wit","navajowhite":"navajowit","royalblue":"koningsblauw","deeppink":"donkerroze","lime":"limoen","oldlace":"kant","chartreuse":"groengeel","darkcyan":"donkercyaan","yellow":"geel","linen":"linnen","olive":"olijfgroen","gold":"goud","lawngreen":"grasgroen","lightyellow":"lichtgeel","tan":"geelbruin","darkviolet":"donkerviolet","lightslategrey":"lichtblauwgrijs","grey":"grijs","darkkhaki":"donkerkaki","green":"groen","deepskyblue":"diephemelblauw","aqua":"aqua","sienna":"sienna","mintcream":"mintroomgeel","rosybrown":"roodbruin","mediumslateblue":"midgrijsblauw","magenta":"magenta","lightseagreen":"lichtzeegroen","cyan":"cyaan","olivedrab":"grijsbruin","darkgoldenrod":"donkergoud","slateblue":"leiblauw","mediumaquamarine":"midaquamarijn","lavender":"lavendelblauw","mediumseagreen":"midzeegroen","maroon":"kastanjebruin","darkslategray":"donkerblauwgrijs","mediumturquoise":"midturquoise","ghostwhite":"spierwit","darkblue":"donkerblauw","mediumvioletred":"midvioletrood","brown":"bruin","lightgray":"lichtgrijs","sandybrown":"zandbruin","pink":"roze","firebrick":"vuursteenrood","indigo":"indigo","snow":"sneeuwwit","darkorchid":"donkerorchidee","turquoise":"turquoise","chocolate":"chocoladebruin","springgreen":"lentegroen","moccasin":"moccasin","navy":"marineblauw","lemonchiffon":"citroengeel","teal":"grijsblauw","floralwhite":"rozewit","cornflowerblue":"korenbloemblauw","paleturquoise":"bleekturquoise","purple":"purper","gainsboro":"lichtblauwgrijs","plum":"pruim","red":"rood","blue":"blauw","forestgreen":"bosgroen","darkgreen":"donkergroen","honeydew":"meloen","darkseagreen":"donkerzeegroen","lightcoral":"lichtkoraal","palevioletred":"bleekvioletrood","mediumpurple":"midpurper","saddlebrown":"leerbruin","darkmagenta":"donkermagenta","thistle":"distel","whitesmoke":"rookwit","wheat":"tarwebruin","violet":"violet","lightskyblue":"lichthemelsblauw","goldenrod":"goudbruin","mediumblue":"midblauw","skyblue":"hemelsblauw","crimson":"karmozijnrood","darksalmon":"donkerzalm","darkred":"donkerrood","darkslategrey":"donkerblauwgrijs","peru":"bruin","lightgrey":"lichtgrijs","lightgoldenrodyellow":"lichtgoudgeel","blanchedalmond":"amandel","aliceblue":"lichtblauw","bisque":"oranjegeel","slategray":"leigrijs","palegoldenrod":"bleekgeel","darkorange":"donkeroranje","aquamarine":"aquamarijn","lightgreen":"lichtgroen","burlywood":"lichtbruin","dodgerblue":"helderblauw","darkgray":"donkergrijs","lightcyan":"lichtcyaan","powderblue":"lichtblauw-wit","blueviolet":"violet","orchid":"orchidee","dimgray":"dofgrijs","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavendelblos","hotpink":"acaciaroze","steelblue":"staalblauw","tomato":"tomaat","lightpink":"lichtroze","limegreen":"limoengroen","indianred":"indisch rood","papayawhip":"papajaroze","lightslategray":"lichtblauwgrijs","gray":"grijs","mediumorchid":"midorchidee","cornsilk":"maïsgeel","black":"zwart","seagreen":"zeegroen","darkslateblue":"donkergrijsblauw","khaki":"kaki","lightblue":"lichtblauw","palegreen":"bleekgroen","azure":"azuur","peachpuff":"perzikroze","darkolivegreen":"donkerolijfgroen","yellowgreen":"geelgroen"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.nl_nl");dijit.nls.loading.nl_nl={"loadingState":"Bezig met laden...","errorState":"Er is een fout opgetreden"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.nl_nl");dijit.nls.common.nl_nl={"buttonOk":"OK","buttonCancel":"Annuleren","buttonSave":"Opslaan","itemClose":"Sluiten"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.nl_nl");dijit._editor.nls.commands.nl_nl={"removeFormat":"Opmaak verwijderen","copy":"Kopiëren","paste":"Plakken","selectAll":"Alles selecteren","insertOrderedList":"Genummerde lijst","insertTable":"Tabel invoegen/bewerken","print":"Afdrukken","underline":"Onderstrepen","foreColor":"Voorgrondkleur","htmlToggle":"HTML-bron","formatBlock":"Alineastijl","newPage":"Nieuwe pagina","insertHorizontalRule":"Horizontale liniaal","delete":"Wissen","insertUnorderedList":"Lijst met opsommingstekens","tableProp":"Tabeleigenschap","insertImage":"Afbeelding invoegen","superscript":"Superscript","subscript":"Subscript","createLink":"Link maken","undo":"Ongedaan maken","fullScreen":"Volledig scherm in-/uitschakelen","italic":"Cursief","fontName":"Lettertype","justifyLeft":"Links uitlijnen","unlink":"Link verwijderen","toggleTableBorder":"Tabelkader wijzigen","viewSource":"HTML-bron bekijken","fontSize":"Lettergrootte","systemShortcut":"De actie \"${0}\" is alleen beschikbaar in uw browser via een sneltoetscombinatie. Gebruik ${1}.","indent":"Inspringen","redo":"Opnieuw","strikethrough":"Doorhalen","justifyFull":"Uitvullen","justifyCenter":"Centreren","hiliteColor":"Achtergrondkleur","deleteTable":"Tabel wissen","outdent":"Uitspringen","cut":"Knippen","plainFormatBlock":"Alineastijl","toggleDir":"Schrijfrichting wijzigen","bold":"Vet","tabIndent":"Inspringen","justifyRight":"Rechts uitlijnen","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.nl_nl");dijit.form.nls.validate.nl_nl={"rangeMessage":"Deze waarde is niet toegestaan.","invalidMessage":"De opgegeven waarde is ongeldig.","missingMessage":"Deze waarde is verplicht."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.nl_nl");dijit.form.nls.ComboBox.nl_nl={"previousMessage":"Eerdere opties","nextMessage":"Meer opties"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.nl_nl");dijit._editor.nls.FontChoice.nl_nl={"1":"xx-klein","2":"x-klein","formatBlock":"Opmaak","3":"klein","4":"gemiddeld","5":"groot","6":"x-groot","7":"xx-groot","fantasy":"fantasy","serif":"serif","p":"Alinea","pre":"Vooraf opgemaakt","sans-serif":"sans-serif","fontName":"Lettertype","h1":"Kop","h2":"Subkop","h3":"Sub-subkop","monospace":"monospace","fontSize":"Grootte","cursive":"cursief","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.nl_nl");dijit._editor.nls.LinkDialog.nl_nl={"text":"Beschrijving:","insertImageTitle":"Afbeeldingseigenschappen","set":"Instellen","newWindow":"Nieuw venster","topWindow":"Bovenste venster","target":"Doel:","createLinkTitle":"Linkeigenschappen","parentWindow":"Hoofdvenster","currentWindow":"Huidig venster","url":"URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.nl_nl");dojo.cldr.nls.number.nl_nl={"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤ #,##0.00;¤ #,##0.00-","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.nl_nl");dojo.cldr.nls.currency.nl_nl={"HKD_displayName":"Hongkongse dollar","CHF_displayName":"Zwitserse franc","CAD_displayName":"Canadese dollar","CNY_displayName":"Chinese yuan renminbi","AUD_displayName":"Australische dollar","JPY_displayName":"Japanse yen","USD_displayName":"Amerikaanse dollar","GBP_displayName":"Brits pond sterling","EUR_displayName":"Euro","USD_symbol":"US$","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","JPY_symbol":"JP¥","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.nl_nl");dojo.cldr.nls.gregorian.nl_nl={"dateFormatItem-yM":"M-y","field-dayperiod":"AM/PM","dateFormatItem-yQ":"Q yyyy","dayPeriods-format-wide-pm":"PM","field-minute":"Minuut","eraNames":["Voor Christus","na Christus"],"dateFormatItem-MMMEd":"E d MMM","field-day-relative+-1":"gisteren","field-weekday":"Dag van de week","dateFormatItem-yQQQ":"QQQ y","field-day-relative+-2":"eergisteren","dateFormatItem-MMdd":"dd-MM","field-day-relative+-3":"eereergisteren","days-standAlone-wide":["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-era":"Tijdperk","field-hour":"Uur","dayPeriods-format-wide-am":"AM","quarters-standAlone-abbr":["K1","K2","K3","K4"],"dateFormatItem-y":"y","timeFormat-full":"HH:mm:ss zzzz","months-standAlone-abbr":["jan.","feb.","mrt.","apr.","mei","jun.","jul.","aug.","sep.","okt.","nov.","dec."],"dateFormatItem-yMMM":"MMM y","field-day-relative+0":"vandaag","field-day-relative+1":"morgen","days-standAlone-narrow":["Z","M","D","W","D","V","Z"],"eraAbbr":["v. Chr.","n. Chr."],"field-day-relative+2":"overmorgen","field-day-relative+3":"overovermorgen","dateFormatItem-yyyyMMMM":"MMMM y","dateFormat-long":"d MMMM y","timeFormat-medium":"HH:mm:ss","field-zone":"Zone","dateFormatItem-Hm":"HH:mm","dateFormatItem-MMd":"d-MM","dateFormat-medium":"d MMM y","dateFormatItem-yyMM":"MM-yy","dateFormatItem-yyMMM":"MMM yy","dateFormatItem-yyQQQQ":"QQQQ yy","quarters-standAlone-wide":["1e kwartaal","2e kwartaal","3e kwartaal","4e kwartaal"],"dateFormatItem-ms":"mm:ss","field-year":"Jaar","field-week":"Week","months-standAlone-wide":["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],"dateFormatItem-MMMd":"d-MMM","dateFormatItem-yyQ":"Q yy","timeFormat-long":"HH:mm:ss z","months-format-abbr":["jan.","feb.","mrt.","apr.","mei","jun.","jul.","aug.","sep.","okt.","nov.","dec."],"timeFormat-short":"HH:mm","field-month":"Maand","dateFormatItem-MMMMd":"d MMMM","quarters-format-abbr":["K1","K2","K3","K4"],"days-format-abbr":["zo","ma","di","wo","do","vr","za"],"dateFormatItem-M":"L","days-format-narrow":["Z","M","D","W","D","V","Z"],"field-second":"Seconde","field-day":"Dag","dateFormatItem-MEd":"E d-M","months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"days-standAlone-abbr":["zo","ma","di","wo","do","vr","za"],"dateFormat-short":"dd-MM-yy","dateFormatItem-yMMMEd":"EEE d MMM y","dateFormat-full":"EEEE d MMMM y","dateFormatItem-Md":"d-M","dateFormatItem-yMEd":"EEE d-M-y","months-format-wide":["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],"dateFormatItem-d":"d","quarters-format-wide":["1e kwartaal","2e kwartaal","3e kwartaal","4e kwartaal"],"days-format-wide":["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],"eraNarrow":["v. Chr.","n. Chr."],"quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a"}; diff --git a/lib/dijit/nls/dijit-all_nl.js b/lib/dijit/nls/dijit-all_nl.js new file mode 100644 index 000000000..9f7820b49 --- /dev/null +++ b/lib/dijit/nls/dijit-all_nl.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_nl");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.nl");dojo.nls.colors.nl={"lightsteelblue":"lichtstaalblauw","orangered":"oranjerood","midnightblue":"nachtblauw","cadetblue":"donkerstaalblauw","seashell":"schelp","slategrey":"leigrijs","coral":"koraalrood","darkturquoise":"donkerturquoise","antiquewhite":"antiekwit","mediumspringgreen":"midlentegroen","salmon":"zalm","darkgrey":"donkergrijs","ivory":"ivoorwit","greenyellow":"groengeel","mistyrose":"matroze","lightsalmon":"lichtzalm","silver":"zilvergrijs","dimgrey":"dofgrijs","orange":"oranje","white":"wit","navajowhite":"navajowit","royalblue":"koningsblauw","deeppink":"donkerroze","lime":"limoen","oldlace":"kant","chartreuse":"groengeel","darkcyan":"donkercyaan","yellow":"geel","linen":"linnen","olive":"olijfgroen","gold":"goud","lawngreen":"grasgroen","lightyellow":"lichtgeel","tan":"geelbruin","darkviolet":"donkerviolet","lightslategrey":"lichtblauwgrijs","grey":"grijs","darkkhaki":"donkerkaki","green":"groen","deepskyblue":"diephemelblauw","aqua":"aqua","sienna":"sienna","mintcream":"mintroomgeel","rosybrown":"roodbruin","mediumslateblue":"midgrijsblauw","magenta":"magenta","lightseagreen":"lichtzeegroen","cyan":"cyaan","olivedrab":"grijsbruin","darkgoldenrod":"donkergoud","slateblue":"leiblauw","mediumaquamarine":"midaquamarijn","lavender":"lavendelblauw","mediumseagreen":"midzeegroen","maroon":"kastanjebruin","darkslategray":"donkerblauwgrijs","mediumturquoise":"midturquoise","ghostwhite":"spierwit","darkblue":"donkerblauw","mediumvioletred":"midvioletrood","brown":"bruin","lightgray":"lichtgrijs","sandybrown":"zandbruin","pink":"roze","firebrick":"vuursteenrood","indigo":"indigo","snow":"sneeuwwit","darkorchid":"donkerorchidee","turquoise":"turquoise","chocolate":"chocoladebruin","springgreen":"lentegroen","moccasin":"moccasin","navy":"marineblauw","lemonchiffon":"citroengeel","teal":"grijsblauw","floralwhite":"rozewit","cornflowerblue":"korenbloemblauw","paleturquoise":"bleekturquoise","purple":"purper","gainsboro":"lichtblauwgrijs","plum":"pruim","red":"rood","blue":"blauw","forestgreen":"bosgroen","darkgreen":"donkergroen","honeydew":"meloen","darkseagreen":"donkerzeegroen","lightcoral":"lichtkoraal","palevioletred":"bleekvioletrood","mediumpurple":"midpurper","saddlebrown":"leerbruin","darkmagenta":"donkermagenta","thistle":"distel","whitesmoke":"rookwit","wheat":"tarwebruin","violet":"violet","lightskyblue":"lichthemelsblauw","goldenrod":"goudbruin","mediumblue":"midblauw","skyblue":"hemelsblauw","crimson":"karmozijnrood","darksalmon":"donkerzalm","darkred":"donkerrood","darkslategrey":"donkerblauwgrijs","peru":"bruin","lightgrey":"lichtgrijs","lightgoldenrodyellow":"lichtgoudgeel","blanchedalmond":"amandel","aliceblue":"lichtblauw","bisque":"oranjegeel","slategray":"leigrijs","palegoldenrod":"bleekgeel","darkorange":"donkeroranje","aquamarine":"aquamarijn","lightgreen":"lichtgroen","burlywood":"lichtbruin","dodgerblue":"helderblauw","darkgray":"donkergrijs","lightcyan":"lichtcyaan","powderblue":"lichtblauw-wit","blueviolet":"violet","orchid":"orchidee","dimgray":"dofgrijs","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavendelblos","hotpink":"acaciaroze","steelblue":"staalblauw","tomato":"tomaat","lightpink":"lichtroze","limegreen":"limoengroen","indianred":"indisch rood","papayawhip":"papajaroze","lightslategray":"lichtblauwgrijs","gray":"grijs","mediumorchid":"midorchidee","cornsilk":"maïsgeel","black":"zwart","seagreen":"zeegroen","darkslateblue":"donkergrijsblauw","khaki":"kaki","lightblue":"lichtblauw","palegreen":"bleekgroen","azure":"azuur","peachpuff":"perzikroze","darkolivegreen":"donkerolijfgroen","yellowgreen":"geelgroen"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.nl");dijit.nls.loading.nl={"loadingState":"Bezig met laden...","errorState":"Er is een fout opgetreden"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.nl");dijit.nls.common.nl={"buttonOk":"OK","buttonCancel":"Annuleren","buttonSave":"Opslaan","itemClose":"Sluiten"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.nl");dijit._editor.nls.commands.nl={"removeFormat":"Opmaak verwijderen","copy":"Kopiëren","paste":"Plakken","selectAll":"Alles selecteren","insertOrderedList":"Genummerde lijst","insertTable":"Tabel invoegen/bewerken","print":"Afdrukken","underline":"Onderstrepen","foreColor":"Voorgrondkleur","htmlToggle":"HTML-bron","formatBlock":"Alineastijl","newPage":"Nieuwe pagina","insertHorizontalRule":"Horizontale liniaal","delete":"Wissen","insertUnorderedList":"Lijst met opsommingstekens","tableProp":"Tabeleigenschap","insertImage":"Afbeelding invoegen","superscript":"Superscript","subscript":"Subscript","createLink":"Link maken","undo":"Ongedaan maken","fullScreen":"Volledig scherm in-/uitschakelen","italic":"Cursief","fontName":"Lettertype","justifyLeft":"Links uitlijnen","unlink":"Link verwijderen","toggleTableBorder":"Tabelkader wijzigen","viewSource":"HTML-bron bekijken","fontSize":"Lettergrootte","systemShortcut":"De actie \"${0}\" is alleen beschikbaar in uw browser via een sneltoetscombinatie. Gebruik ${1}.","indent":"Inspringen","redo":"Opnieuw","strikethrough":"Doorhalen","justifyFull":"Uitvullen","justifyCenter":"Centreren","hiliteColor":"Achtergrondkleur","deleteTable":"Tabel wissen","outdent":"Uitspringen","cut":"Knippen","plainFormatBlock":"Alineastijl","toggleDir":"Schrijfrichting wijzigen","bold":"Vet","tabIndent":"Inspringen","justifyRight":"Rechts uitlijnen","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.nl");dijit.form.nls.validate.nl={"rangeMessage":"Deze waarde is niet toegestaan.","invalidMessage":"De opgegeven waarde is ongeldig.","missingMessage":"Deze waarde is verplicht."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.nl");dijit.form.nls.ComboBox.nl={"previousMessage":"Eerdere opties","nextMessage":"Meer opties"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.nl");dijit._editor.nls.FontChoice.nl={"1":"xx-klein","2":"x-klein","formatBlock":"Opmaak","3":"klein","4":"gemiddeld","5":"groot","6":"x-groot","7":"xx-groot","fantasy":"fantasy","serif":"serif","p":"Alinea","pre":"Vooraf opgemaakt","sans-serif":"sans-serif","fontName":"Lettertype","h1":"Kop","h2":"Subkop","h3":"Sub-subkop","monospace":"monospace","fontSize":"Grootte","cursive":"cursief","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.nl");dijit._editor.nls.LinkDialog.nl={"text":"Beschrijving:","insertImageTitle":"Afbeeldingseigenschappen","set":"Instellen","newWindow":"Nieuw venster","topWindow":"Bovenste venster","target":"Doel:","createLinkTitle":"Linkeigenschappen","parentWindow":"Hoofdvenster","currentWindow":"Huidig venster","url":"URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.nl");dojo.cldr.nls.number.nl={"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤ #,##0.00;¤ #,##0.00-","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.nl");dojo.cldr.nls.currency.nl={"HKD_displayName":"Hongkongse dollar","CHF_displayName":"Zwitserse franc","CAD_displayName":"Canadese dollar","CNY_displayName":"Chinese yuan renminbi","AUD_displayName":"Australische dollar","JPY_displayName":"Japanse yen","USD_displayName":"Amerikaanse dollar","GBP_displayName":"Brits pond sterling","EUR_displayName":"Euro","USD_symbol":"US$","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","JPY_symbol":"JP¥","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.nl");dojo.cldr.nls.gregorian.nl={"dateFormatItem-yM":"M-y","field-dayperiod":"AM/PM","dateFormatItem-yQ":"Q yyyy","dayPeriods-format-wide-pm":"PM","field-minute":"Minuut","eraNames":["Voor Christus","na Christus"],"dateFormatItem-MMMEd":"E d MMM","field-day-relative+-1":"gisteren","field-weekday":"Dag van de week","dateFormatItem-yQQQ":"QQQ y","field-day-relative+-2":"eergisteren","dateFormatItem-MMdd":"dd-MM","field-day-relative+-3":"eereergisteren","days-standAlone-wide":["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-era":"Tijdperk","field-hour":"Uur","dayPeriods-format-wide-am":"AM","quarters-standAlone-abbr":["K1","K2","K3","K4"],"dateFormatItem-y":"y","timeFormat-full":"HH:mm:ss zzzz","months-standAlone-abbr":["jan.","feb.","mrt.","apr.","mei","jun.","jul.","aug.","sep.","okt.","nov.","dec."],"dateFormatItem-yMMM":"MMM y","field-day-relative+0":"vandaag","field-day-relative+1":"morgen","days-standAlone-narrow":["Z","M","D","W","D","V","Z"],"eraAbbr":["v. Chr.","n. Chr."],"field-day-relative+2":"overmorgen","field-day-relative+3":"overovermorgen","dateFormatItem-yyyyMMMM":"MMMM y","dateFormat-long":"d MMMM y","timeFormat-medium":"HH:mm:ss","field-zone":"Zone","dateFormatItem-Hm":"HH:mm","dateFormatItem-MMd":"d-MM","dateFormat-medium":"d MMM y","dateFormatItem-yyMM":"MM-yy","dateFormatItem-yyMMM":"MMM yy","dateFormatItem-yyQQQQ":"QQQQ yy","quarters-standAlone-wide":["1e kwartaal","2e kwartaal","3e kwartaal","4e kwartaal"],"dateFormatItem-ms":"mm:ss","field-year":"Jaar","field-week":"Week","months-standAlone-wide":["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],"dateFormatItem-MMMd":"d-MMM","dateFormatItem-yyQ":"Q yy","timeFormat-long":"HH:mm:ss z","months-format-abbr":["jan.","feb.","mrt.","apr.","mei","jun.","jul.","aug.","sep.","okt.","nov.","dec."],"timeFormat-short":"HH:mm","field-month":"Maand","dateFormatItem-MMMMd":"d MMMM","quarters-format-abbr":["K1","K2","K3","K4"],"days-format-abbr":["zo","ma","di","wo","do","vr","za"],"dateFormatItem-M":"L","days-format-narrow":["Z","M","D","W","D","V","Z"],"field-second":"Seconde","field-day":"Dag","dateFormatItem-MEd":"E d-M","months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"days-standAlone-abbr":["zo","ma","di","wo","do","vr","za"],"dateFormat-short":"dd-MM-yy","dateFormatItem-yMMMEd":"EEE d MMM y","dateFormat-full":"EEEE d MMMM y","dateFormatItem-Md":"d-M","dateFormatItem-yMEd":"EEE d-M-y","months-format-wide":["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],"dateFormatItem-d":"d","quarters-format-wide":["1e kwartaal","2e kwartaal","3e kwartaal","4e kwartaal"],"days-format-wide":["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],"eraNarrow":["v. Chr.","n. Chr."],"quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a"}; diff --git a/lib/dijit/nls/dijit-all_pl.js b/lib/dijit/nls/dijit-all_pl.js new file mode 100644 index 000000000..db6e375aa --- /dev/null +++ b/lib/dijit/nls/dijit-all_pl.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_pl");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.pl");dojo.nls.colors.pl={"lightsteelblue":"jasny stalowoniebieski","orangered":"pomarańczowoczerwony","midnightblue":"ciemnogranatowy","cadetblue":"niebieskoszary","seashell":"muszla","slategrey":"łupkowy szary","coral":"koralowy","darkturquoise":"ciemnoturkusowy","antiquewhite":"biel antyczna","mediumspringgreen":"średnia wiosenna zieleń","salmon":"łososiowy","darkgrey":"ciemnoszary","ivory":"kość słoniowa","greenyellow":"zielonożółty","mistyrose":"bladoróżany","lightsalmon":"jasnołososiowy","silver":"srebrny","dimgrey":"przytłumiony szary","orange":"pomarańczowy","white":"biały","navajowhite":"piaskowy","royalblue":"błękit królewski","deeppink":"głęboki różowy","lime":"limetkowy","oldlace":"bladopomarańczowy","chartreuse":"jaskrawozielony","darkcyan":"ciemny cyjan","yellow":"żółty","linen":"lniany","olive":"oliwkowy","gold":"złoty","lawngreen":"trawiasty","lightyellow":"jasnożółty","tan":"kawowy","darkviolet":"ciemnofioletowy","lightslategrey":"jasny łupkowy szary","grey":"szary","darkkhaki":"ciemny khaki","green":"zielony","deepskyblue":"intensywny błękit nieba","aqua":"wodny","sienna":"siena","mintcream":"jasnomiętowy","rosybrown":"różowobrązowy","mediumslateblue":"średni łupkowy niebieski","magenta":"magenta","lightseagreen":"jasna morska zieleń","cyan":"cyjan","olivedrab":"oliwkowa zieleń","darkgoldenrod":"ciemnogliniany","slateblue":"łupkowy niebieski","mediumaquamarine":"średnia akwamaryna","lavender":"lawendowy","mediumseagreen":"średnia morska zieleń","maroon":"bordowy","darkslategray":"ciemny łupkowy szary","mediumturquoise":"średni turkusowy","ghostwhite":"bladobiały","darkblue":"ciemnoniebieski","mediumvioletred":"średni fioletowoczerwony","brown":"brązowy","lightgray":"jasnoszary","sandybrown":"piaskowy brąz","pink":"różowy","firebrick":"ceglasty","indigo":"indygo","snow":"śnieżny","darkorchid":"ciemna orchidea","turquoise":"turkusowy","chocolate":"czekoladowy","springgreen":"wiosenna zieleń","moccasin":"mokasynowy","navy":"granatowy","lemonchiffon":"cytrynowy","teal":"cyrankowy","floralwhite":"kwiatowa biel","cornflowerblue":"chabrowy","paleturquoise":"bladoturkusowy","purple":"purpurowy","gainsboro":"bladoszary","plum":"śliwkowy","red":"czerwony","blue":"niebieski","forestgreen":"leśna zieleń","darkgreen":"ciemnozielony","honeydew":"melon","darkseagreen":"ciemna morska zieleń","lightcoral":"jasnokoralowy","palevioletred":"blady fioletowoczerwony","mediumpurple":"średnia purpura","saddlebrown":"skórzany brązowy","darkmagenta":"ciemna magenta","thistle":"bladofioletowy","whitesmoke":"przydymiony biały","wheat":"pszeniczny","violet":"fioletowy","lightskyblue":"jasny błękit nieba","goldenrod":"gliniany","mediumblue":"średni niebieski","skyblue":"błękit nieba","crimson":"karmazynowy","darksalmon":"ciemnołososiowy","darkred":"ciemnoczerwony","darkslategrey":"ciemny łupkowy szary","peru":"jasnobrązowy","lightgrey":"jasnoszary","lightgoldenrodyellow":"jasnogliniana żółć","blanchedalmond":"migdałowy","aliceblue":"bladoniebieski","bisque":"biszkoptowy","slategray":"łupkowy szary","palegoldenrod":"bladogliniany","darkorange":"ciemnopomarańczowy","aquamarine":"akwamaryna","lightgreen":"jasnozielony","burlywood":"kolor drewna","dodgerblue":"błękit Dodgers","darkgray":"ciemnoszary","lightcyan":"jasny cyjan","powderblue":"pudrowy niebieski","blueviolet":"niebieskofioletowy","orchid":"orchidea","dimgray":"przytłumiony szary","beige":"beżowy","fuchsia":"fuksja","lavenderblush":"lawendoworóżowy","hotpink":"intensywny różowy","steelblue":"stalowy niebieski","tomato":"pomidorowy","lightpink":"jasnoróżowy","limegreen":"limetkowozielony","indianred":"kasztanowy","papayawhip":"papaja","lightslategray":"jasny łupkowy szary","gray":"szary","mediumorchid":"średnia orchidea","cornsilk":"kukurydziany","black":"czarny","seagreen":"morska zieleń","darkslateblue":"ciemny łupkowy niebieski","khaki":"khaki","lightblue":"jasnoniebieski","palegreen":"bladozielony","azure":"lazur","peachpuff":"brzoskwiniowy","darkolivegreen":"ciemnooliwkowy","yellowgreen":"żółtozielony"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.pl");dijit.nls.loading.pl={"loadingState":"Ładowanie...","errorState":"Niestety, wystąpił błąd"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.pl");dijit.nls.common.pl={"buttonOk":"OK","buttonCancel":"Anuluj","buttonSave":"Zapisz","itemClose":"Zamknij"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.pl");dijit._editor.nls.commands.pl={"removeFormat":"Usuń formatowanie","copy":"Kopiuj","paste":"Wklej","selectAll":"Wybierz wszystko","insertOrderedList":"Lista numerowana","insertTable":"Wstaw/edytuj tabelę","print":"Drukuj","underline":"Podkreślenie","foreColor":"Kolor pierwszego planu","htmlToggle":"Źródło HTML","formatBlock":"Styl akapitu","newPage":"Nowa strona","insertHorizontalRule":"Linia pozioma","delete":"Usuń","insertUnorderedList":"Lista wypunktowana","tableProp":"Właściwość tabeli","insertImage":"Wstaw obraz","superscript":"Indeks górny","subscript":"Indeks dolny","createLink":"Utwórz odsyłacz","undo":"Cofnij","fullScreen":"Przełącz pełny ekran","italic":"Kursywa","fontName":"Nazwa czcionki","justifyLeft":"Wyrównaj do lewej","unlink":"Usuń odsyłacz","toggleTableBorder":"Przełącz ramkę tabeli","viewSource":"Wyświetl kod źródłowy HTML","ctrlKey":"Ctrl+${0}","fontSize":"Wielkość czcionki","systemShortcut":"Działanie ${0} jest dostępne w tej przeglądarce wyłącznie przy użyciu skrótu klawiaturowego. Należy użyć klawiszy ${1}.","indent":"Wcięcie","redo":"Ponów","strikethrough":"Przekreślenie","justifyFull":"Wyrównaj do lewej i prawej","justifyCenter":"Wyrównaj do środka","hiliteColor":"Kolor tła","deleteTable":"Usuń tabelę","outdent":"Usuń wcięcie","cut":"Wytnij","plainFormatBlock":"Styl akapitu","toggleDir":"Przełącz kierunek","bold":"Pogrubienie","tabIndent":"Wcięcie o tabulator","justifyRight":"Wyrównaj do prawej","appleKey":"⌘${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.pl");dijit.form.nls.validate.pl={"rangeMessage":"Ta wartość jest spoza zakresu.","invalidMessage":"Wprowadzona wartość jest niepoprawna.","missingMessage":"Ta wartość jest wymagana."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.pl");dijit.form.nls.ComboBox.pl={"previousMessage":"Poprzednie wybory","nextMessage":"Więcej wyborów"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.pl");dijit._editor.nls.FontChoice.pl={"1":"najmniejsza","2":"mniejsza","formatBlock":"Format","3":"mała","4":"średnia","5":"duża","6":"większa","7":"największa","fantasy":"fantazyjna","serif":"szeryfowa","p":"Akapit","pre":"Wstępnie sformatowane","sans-serif":"bezszeryfowa","fontName":"Czcionka","h1":"Nagłówek","h2":"Nagłówek 2-go poziomu","h3":"Nagłówek 3-go poziomu","monospace":"czcionka o stałej szerokości","fontSize":"Wielkość","cursive":"kursywa","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.pl");dijit._editor.nls.LinkDialog.pl={"text":"Opis:","insertImageTitle":"Właściwości obrazu","set":"Ustaw","newWindow":"Nowe okno","topWindow":"Okno najwyższego poziomu","target":"Cel:","createLinkTitle":"Właściwości odsyłacza","parentWindow":"Okno macierzyste","currentWindow":"Bieżące okno","url":"Adres URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.pl");dojo.cldr.nls.number.pl={"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.pl");dojo.cldr.nls.currency.pl={"HKD_displayName":"dolar hongkoński","CHF_displayName":"frank szwajcarski","CAD_displayName":"dolar kanadyjski","CNY_displayName":"juan renminbi","AUD_displayName":"dolar australijski","JPY_displayName":"jen japoński","USD_displayName":"dolar amerykański ","GBP_displayName":"funt szterling","EUR_displayName":"euro","USD_symbol":"US$","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","JPY_symbol":"JP¥","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.pl");dojo.cldr.nls.gregorian.pl={"months-format-narrow":["s","l","m","k","m","c","l","s","w","p","l","g"],"field-weekday":"Dzień tygodnia","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"EEE, d-M-y","dateFormatItem-MMMEd":"d MMM E","eraNarrow":["p.n.e.","n.e."],"dayPeriods-format-wide-earlyMorning":"nad ranem","dayPeriods-format-wide-morning":"rano","dateFormat-long":"d MMMM y","months-format-wide":["stycznia","lutego","marca","kwietnia","maja","czerwca","lipca","sierpnia","września","października","listopada","grudnia"],"dayPeriods-format-wide-evening":"wieczorem","dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE, d MMMM y","dateFormatItem-Md":"d-M","dayPeriods-format-wide-noon":"w południe","field-era":"Era","dateFormatItem-yM":"M-y","months-standAlone-wide":["styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień"],"timeFormat-short":"HH:mm","quarters-format-wide":["I kwartał","II kwartał","III kwartał","IV kwartał"],"timeFormat-long":"HH:mm:ss z","field-year":"Rok","dateFormatItem-yQ":"yyyy Q","dateFormatItem-yyyyMMMM":"LLLL y","field-hour":"Godzina","dateFormatItem-MMdd":"dd-MM","months-format-abbr":["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"Dzisiaj","field-day-relative+1":"Jutro","field-day-relative+2":"Pojutrze","field-day-relative+3":"Za trzy dni","months-standAlone-abbr":["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru"],"quarters-format-abbr":["K1","K2","K3","K4"],"quarters-standAlone-wide":["I kwartał","II kwartał","III kwartał","IV kwartał"],"dateFormatItem-M":"L","days-standAlone-wide":["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"],"dateFormatItem-MMMMd":"d MMMM","dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["1 kw.","2 kw.","3 kw.","4 kw."],"eraAbbr":["p.n.e.","n.e."],"field-minute":"Minuta","field-dayperiod":"Dayperiod","days-standAlone-abbr":["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],"dayPeriods-format-wide-night":"w nocy","dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"Wczoraj","dateFormatItem-h":"hh a","field-day-relative+-2":"Przedwczoraj","field-day-relative+-3":"Trzy dni temu","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"E, d-M","dayPeriods-format-wide-lateMorning":"przed południem","dateFormatItem-yMMMM":"LLLL y","field-day":"Dzień","days-format-wide":["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"],"field-zone":"Strefa","dateFormatItem-yyyyMM":"yyyy-MM","dateFormatItem-y":"y","months-standAlone-narrow":["s","l","m","k","m","c","l","s","w","p","l","g"],"dateFormatItem-yyMM":"MM/yy","dateFormatItem-hm":"hh:mm a","days-format-abbr":["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],"eraNames":["p.n.e.","n.e."],"days-format-narrow":["N","P","W","Ś","C","P","S"],"field-month":"Miesiąc","days-standAlone-narrow":["N","P","W","Ś","C","P","S"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"AM","dateFormat-short":"dd-MM-yyyy","dayPeriods-format-wide-afternoon":"po południu","field-second":"Sekunda","dateFormatItem-yMMMEd":"EEE, d MMM y","field-week":"Tydzień","dateFormat-medium":"dd-MM-yyyy","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"hh:mm:ss a","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateFormatItem-yMMM":"y MMM","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","quarters-format-narrow":["1","2","3","4"],"dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"}; diff --git a/lib/dijit/nls/dijit-all_pt-br.js b/lib/dijit/nls/dijit-all_pt-br.js new file mode 100644 index 000000000..384e56ddc --- /dev/null +++ b/lib/dijit/nls/dijit-all_pt-br.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_pt-br");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.pt_br");dojo.nls.colors.pt_br={"lightsteelblue":"azul-aço claro","orangered":"vermelho alaranjado","midnightblue":"azul meia-noite","cadetblue":"azul cadet","seashell":"seashell","slategrey":"cinza-ardósia","coral":"coral","darkturquoise":"turquesa escuro","antiquewhite":"branco antigo","mediumspringgreen":"verde-primavera médio","salmon":"salmão","darkgrey":"cinza escuro","ivory":"marfim","greenyellow":"amarelo esverdeado","mistyrose":"rosa enevoado","lightsalmon":"salmão claro","silver":"prateado","dimgrey":"cinza turvo","orange":"laranja","white":"branco","navajowhite":"branco navajo","royalblue":"azul royal","deeppink":"rosa profundo","lime":"lima","oldlace":"cadarço velho","chartreuse":"chartreuse","darkcyan":"ciano escuro","yellow":"amarelo","linen":"linho","olive":"oliva","gold":"dourado","lawngreen":"verde grama","lightyellow":"amarelo claro","tan":"tan","darkviolet":"violeta escuro","lightslategrey":"cinza-ardósia claro","grey":"cinza","darkkhaki":"cáqui escuro","green":"verde","deepskyblue":"azul-céu intenso","aqua":"aqua","sienna":"sienna","mintcream":"creme de menta","rosybrown":"marrom rosado","mediumslateblue":"azul-ardósia médio","magenta":"magenta","lightseagreen":"verde marinho claro","cyan":"ciano","olivedrab":"verde oliva","darkgoldenrod":"goldenrod escuro","slateblue":"azul-ardósia","mediumaquamarine":"água-marinha médio","lavender":"lavanda","mediumseagreen":"verde-marinho médio","maroon":"marrom","darkslategray":"cinza-ardósia escuro","mediumturquoise":"turquesa médio","ghostwhite":"branco ghost","darkblue":"azul escuro","mediumvioletred":"vermelho-violeta médio","brown":"marrom","lightgray":"cinza claro","sandybrown":"marrom cor de areia","pink":"rosa","firebrick":"firebrick","indigo":"índigo","snow":"branco neve","darkorchid":"orquídea escuro","turquoise":"turquesa","chocolate":"chocolate","springgreen":"verde primavera","moccasin":"moccasin","navy":"marinho","lemonchiffon":"limão chiffon","teal":"azul esverdeado","floralwhite":"branco floral","cornflowerblue":"azul centaurea","paleturquoise":"turquesa esbranquiçado","purple":"roxo","gainsboro":"gainsboro","plum":"ameixa","red":"vermelho","blue":"azul","forestgreen":"verde floresta","darkgreen":"verde escuro","honeydew":"honeydew","darkseagreen":"verde marinho escuro","lightcoral":"coral claro","palevioletred":"vermelho-violeta esbranquiçado","mediumpurple":"roxo médio","saddlebrown":"marrom saddle","darkmagenta":"magenta escuro","thistle":"thistle","whitesmoke":"fumaça branca","wheat":"trigo","violet":"violeta","lightskyblue":"azul-céu claro","goldenrod":"goldenrod","mediumblue":"azul médio","skyblue":"azul-céu","crimson":"carmesim","darksalmon":"salmão escuro","darkred":"vermelho escuro","darkslategrey":"cinza-ardósia escuro","peru":"peru","lightgrey":"cinza claro","lightgoldenrodyellow":"amarelo goldenrod claro","blanchedalmond":"amêndoa pelada","aliceblue":"azul alice","bisque":"bisque","slategray":"cinza-ardósia","palegoldenrod":"goldenrod esbranquiçado","darkorange":"laranja escuro","aquamarine":"água-marinha","lightgreen":"verde claro","burlywood":"burlywood","dodgerblue":"azul dodger","darkgray":"cinza escuro","lightcyan":"ciano claro","powderblue":"azul-talco","blueviolet":"azul-violeta","orchid":"orquídea","dimgray":"cinza turvo","beige":"bege","fuchsia":"fúcsia","lavenderblush":"lavanda avermelhada","hotpink":"rosa quente","steelblue":"azul-aço","tomato":"tomate","lightpink":"rosa claro","limegreen":"verde-lima","indianred":"vermelho indiano","papayawhip":"creme de papaya","lightslategray":"cinza-ardósia claro","gray":"cinza","mediumorchid":"orquídea médio","cornsilk":"cornsilk","black":"preto","seagreen":"verde-marinho","darkslateblue":"azul-ardósia escuro","khaki":"cáqui","lightblue":"azul claro","palegreen":"verde esbranquiçado","azure":"azul-celeste","peachpuff":"peach puff","darkolivegreen":"verde oliva escuro","yellowgreen":"verde amarelado"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.pt_br");dijit.nls.loading.pt_br={"loadingState":"Carregando...","errorState":"Desculpe, ocorreu um erro"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.pt_br");dijit.nls.common.pt_br={"buttonOk":"OK","buttonCancel":"Cancelar","buttonSave":"Salvar","itemClose":"Fechar"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.pt_br");dijit._editor.nls.commands.pt_br={"removeFormat":"Remover Formato","copy":"Copiar","paste":"Colar","selectAll":"Selecionar Todos","insertOrderedList":"Lista Numerada","insertTable":"Inserir/Editar Tabela","print":"Impressão","underline":"Sublinhado","foreColor":"Cor do Primeiro Plano","htmlToggle":"Origem HTML","formatBlock":"Estilo de Parágrafo","newPage":"Nova Página","insertHorizontalRule":"Régua Horizontal","delete":"Excluir","insertUnorderedList":"Lista com Marcadores","tableProp":"Propriedade da Tabela","insertImage":"Inserir Imagem","superscript":"Sobrescrito","subscript":"Subscrito","createLink":"Criar Link","undo":"Desfazer","fullScreen":"Comutar Tela Cheia","italic":"Itálico","fontName":"Nome da Fonte","justifyLeft":"Alinhar pela Esquerda","unlink":"Remover Link","toggleTableBorder":"Alternar Moldura da Tabela","viewSource":"Visualizar Origem HTML","fontSize":"Tamanho da Fonte","systemShortcut":"A ação \"${0}\" está disponível em seu navegador apenas usando um atalho do teclado. Use ${1}.","indent":"Recuar","redo":"Refazer","strikethrough":"Tachado","justifyFull":"Justificar","justifyCenter":"Alinhar pelo Centro","hiliteColor":"Cor de segundo plano","deleteTable":"Excluir Tabela","outdent":"Não-chanfrado","cut":"Recortar","plainFormatBlock":"Estilo de Parágrafo","toggleDir":"Comutar Direção","bold":"Negrito","tabIndent":"Recuo de Guia","justifyRight":"Alinhar pela Direita","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.pt_br");dijit.form.nls.validate.pt_br={"rangeMessage":"Este valor está fora do intervalo. ","invalidMessage":"O valor inserido não é válido.","missingMessage":"Este valor é necessário."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.pt_br");dijit.form.nls.ComboBox.pt_br={"previousMessage":"Opções anteriores","nextMessage":"Mais opções"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.pt_br");dijit._editor.nls.FontChoice.pt_br={"1":"extra-extra-pequeno","2":"extra-pequeno","formatBlock":"Formatar","3":"pequena","4":"médio","5":"grande","6":"extra-grande","7":"extra-extra-grande","fantasy":"fantasy","serif":"serif","p":"Parágrafo","pre":"Pré-formatado","sans-serif":"sans-serif","fontName":"Fonte","h1":"Título","h2":"Subtítulo","h3":"Sub-subtítulo","monospace":"espaço simples","fontSize":"Tamanho","cursive":"cursiva","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.pt_br");dijit._editor.nls.LinkDialog.pt_br={"text":"Descrição:","insertImageTitle":"Propriedades de Imagem","set":"Definir","newWindow":"Nova Janela","topWindow":"Primeira Janela","target":"Destino:","createLinkTitle":"Propriedades de Link","parentWindow":"Janela Pai","currentWindow":"Janela Atual","url":"URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.pt_br");dojo.cldr.nls.number.pt_br={"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00;(¤#,##0.00)","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.pt_br");dojo.cldr.nls.currency.pt_br={"HKD_displayName":"Dólar de Hong Kong","CHF_displayName":"Franco suíço","CAD_displayName":"Dólar canadense","CNY_displayName":"Yuan Renminbi chinês","AUD_displayName":"Dólar australiano","JPY_displayName":"Iene japonês","USD_displayName":"Dólar norte-americano","GBP_displayName":"Libra esterlina britânica","EUR_displayName":"Euro","USD_symbol":"US$","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","JPY_symbol":"JP¥","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.pt_br");dojo.cldr.nls.gregorian.pt_br={"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-weekday":"Dia da semana","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"EEE, dd/MM/yyyy","dateFormatItem-MMMEd":"EEE, d 'de' MMM","eraNarrow":["a.C.","d.C."],"dayPeriods-format-wide-morning":"manhã","dateFormat-long":"d 'de' MMMM 'de' y","months-format-wide":["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],"dateFormatItem-EEEd":"EEE, d","dateFormat-full":"EEEE, d 'de' MMMM 'de' y","dateFormatItem-Md":"d/M","dayPeriods-format-wide-noon":"meio-dia","field-era":"Era","dateFormatItem-yM":"MM/yyyy","months-standAlone-wide":["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],"timeFormat-short":"HH:mm","quarters-format-wide":["1º trimestre","2º trimestre","3º trimestre","4º trimestre"],"timeFormat-long":"HH'h'mm'min'ss's' z","field-year":"Ano","dateFormatItem-yMMM":"MMM 'de' y","dateFormatItem-yQ":"yyyy Q","field-hour":"Hora","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH'h'mm'min'ss's' zzzz","field-day-relative+0":"Hoje","field-day-relative+1":"Amanhã","field-day-relative+2":"Depois de amanhã","field-day-relative+3":"Daqui a três dias","months-standAlone-abbr":["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],"quarters-format-abbr":["T1","T2","T3","T4"],"quarters-standAlone-wide":["1º trimestre","2º trimestre","3º trimestre","4º trimestre"],"dateFormatItem-HHmmss":"HH'h'mm'min'ss's'","dateFormatItem-M":"L","days-standAlone-wide":["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"],"dateFormatItem-yyyyMMM":"MMM 'de' y","dateFormatItem-yyMMMEEEd":"EEE, d 'de' MMM 'de' yy","dateFormatItem-yyMMM":"MMM 'de' yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH'h'mm","quarters-standAlone-abbr":["T1","T2","T3","T4"],"eraAbbr":["a.C.","d.C."],"field-minute":"Minuto","field-dayperiod":"Período do dia","days-standAlone-abbr":["dom","seg","ter","qua","qui","sex","sáb"],"dayPeriods-format-wide-night":"noite","dateFormatItem-yyMMMd":"d 'de' MMM 'de' yy","dateFormatItem-d":"d","dateFormatItem-ms":"mm'min'ss's'","field-day-relative+-1":"Ontem","field-day-relative+-2":"Anteontem","field-day-relative+-3":"Há três dias","dateFormatItem-MMMd":"d 'de' MMM","dateFormatItem-MEd":"EEE, dd/MM","field-day":"Dia","days-format-wide":["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"],"field-zone":"Fuso","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-yyMM":"MM/yy","days-format-abbr":["dom","seg","ter","qua","qui","sex","sáb"],"eraNames":["Antes de Cristo","Ano do Senhor"],"days-format-narrow":["D","S","T","Q","Q","S","S"],"field-month":"Mês","days-standAlone-narrow":["D","S","T","Q","Q","S","S"],"dateFormatItem-MMM":"LLL","dateFormatItem-HHmm":"HH'h'mm","dateFormat-short":"dd/MM/yy","dayPeriods-format-wide-afternoon":"tarde","field-second":"Segundo","dateFormatItem-yMMMEd":"EEE, d 'de' MMM 'de' y","field-week":"Semana","dateFormat-medium":"dd/MM/yyyy","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"PM","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dayPeriods-format-wide-am":"AM","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a"}; diff --git a/lib/dijit/nls/dijit-all_pt-pt.js b/lib/dijit/nls/dijit-all_pt-pt.js new file mode 100644 index 000000000..50ad9e399 --- /dev/null +++ b/lib/dijit/nls/dijit-all_pt-pt.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_pt-pt");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.pt_pt");dojo.nls.colors.pt_pt={"lightsteelblue":"azul-aço claro","orangered":"vermelho alaranjado","midnightblue":"azul meia-noite","cadetblue":"azul cadete","seashell":"concha","slategrey":"cinzento ardósia","coral":"coral","darkturquoise":"turquesa escuro","antiquewhite":"branco antigo","mediumspringgreen":"verde primavera médio","salmon":"salmão","darkgrey":"cinzento escuro","ivory":"marfim","greenyellow":"amarelo esverdeado","mistyrose":"rosa pálido","lightsalmon":"salmão claro","silver":"prateado","dimgrey":"cinzento escuro","orange":"laranja","white":"branco","navajowhite":"branco navajo","royalblue":"azul real","deeppink":"rosa profundo","lime":"lima","oldlace":"renda antiga","chartreuse":"amarelo esverdeado","darkcyan":"ciano escuro","yellow":"amarelo","linen":"linho","olive":"azeitona","gold":"dourado","lawngreen":"verde relva","lightyellow":"amarelo claro","tan":"castanho claro","darkviolet":"violeta escuro","lightslategrey":"cinzento ardósia claro","grey":"cinzento","darkkhaki":"caqui escuro","green":"verde","deepskyblue":"azul céu profundo","aqua":"verde-água","sienna":"castanho-avermelhado","mintcream":"creme de menta","rosybrown":"castanho rosado","mediumslateblue":"azul ardósia médio","magenta":"magenta","lightseagreen":"verde marinho claro","cyan":"ciano","olivedrab":"azeitona claro","darkgoldenrod":"ouro velho escuro","slateblue":"azul ardósia","mediumaquamarine":"verde-azulado médio","lavender":"alfazema","mediumseagreen":"verde marinho médio","maroon":"bordeaux","darkslategray":"cinzento ardósia escuro","mediumturquoise":"turquesa médio","ghostwhite":"branco sombreado","darkblue":"azul escuro","mediumvioletred":"violeta avermelhado médio","brown":"castanho","lightgray":"cinzento claro","sandybrown":"castanho areia","pink":"rosa","firebrick":"tijolo fogo","indigo":"índigo","snow":"branco-neve","darkorchid":"orquídea escuro","turquoise":"turquesa","chocolate":"chocolate","springgreen":"verde primavera","moccasin":"mocassim","navy":"azul marinho","lemonchiffon":"limão chiffon","teal":"verde-azulado","floralwhite":"branco floral","cornflowerblue":"azul-violáceo","paleturquoise":"turquesa pálido","purple":"roxo","gainsboro":"cinzento azulado claro","plum":"cor-de-ameixa","red":"vermelho","blue":"azul","forestgreen":"verde floresta","darkgreen":"verde escuro","honeydew":"mel","darkseagreen":"verde marinho escuro","lightcoral":"coral claro","palevioletred":"violeta avermelhado pálido","mediumpurple":"roxo médio","saddlebrown":"castanho sela","darkmagenta":"magenta escuro","thistle":"cardo","whitesmoke":"fumo branco","wheat":"trigo","violet":"violeta","lightskyblue":"azul céu claro","goldenrod":"ouro velho","mediumblue":"azul médio","skyblue":"azul céu","crimson":"carmesim","darksalmon":"salmão escuro","darkred":"vermelho escuro","darkslategrey":"cinzento ardósia escuro","peru":"peru","lightgrey":"cinzento claro","lightgoldenrodyellow":"ouro velho amarelado claro","blanchedalmond":"amêndoa claro","aliceblue":"azul alice","bisque":"rosa-velho","slategray":"cinzento ardósia","palegoldenrod":"ouro velho pálido","darkorange":"laranja escuro","aquamarine":"verde-azulado","lightgreen":"verde claro","burlywood":"castanho pinho","dodgerblue":"azul furtivo","darkgray":"cinzento escuro","lightcyan":"ciano claro","powderblue":"azul de esmalte","blueviolet":"azul violeta","orchid":"orquídea","dimgray":"cinzento escuro","beige":"bege","fuchsia":"fúcsia","lavenderblush":"alfazema rosado","hotpink":"rosa forte","steelblue":"azul-aço","tomato":"vermelho tomate","lightpink":"rosa claro","limegreen":"verde-lima","indianred":"almagre","papayawhip":"creme de papaia","lightslategray":"cinzento ardósia claro","gray":"cinzento","mediumorchid":"orquídea médio","cornsilk":"branco seda","black":"preto","seagreen":"verde marinho","darkslateblue":"azul ardósia escuro","khaki":"caqui","lightblue":"azul claro","palegreen":"verde pálido","azure":"azul-celeste","peachpuff":"pêssego","darkolivegreen":"verde-azeitona escuro","yellowgreen":"verde amarelado"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.pt_pt");dijit.nls.loading.pt_pt={"loadingState":"A carregar...","errorState":"Lamentamos, mas ocorreu um erro"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.pt_pt");dijit.nls.common.pt_pt={"buttonOk":"OK","buttonCancel":"Cancelar","buttonSave":"Guardar","itemClose":"Fechar"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.pt_pt");dijit._editor.nls.commands.pt_pt={"removeFormat":"Remover formato","copy":"Copiar","paste":"Colar","selectAll":"Seleccionar tudo","insertOrderedList":"Lista numerada","insertTable":"Inserir/Editar tabela","print":"Imprimir","underline":"Sublinhado","foreColor":"Cor de primeiro plano","htmlToggle":"Origem HTML","formatBlock":"Estilo de parágrafo","newPage":"Nova página","insertHorizontalRule":"Régua horizontal","delete":"Eliminar","insertUnorderedList":"Lista marcada","tableProp":"Propriedades da tabela","insertImage":"Inserir imagem","superscript":"Superior à linha","subscript":"Inferior à linha","createLink":"Criar ligação","undo":"Anular","fullScreen":"Alternar ecrã completo","italic":"Itálico","fontName":"Nome do tipo de letra","justifyLeft":"Alinhar à esquerda","unlink":"Remover ligação","toggleTableBorder":"Alternar contorno da tabela","viewSource":"Ver origem HTML","fontSize":"Tamanho do tipo de letra","systemShortcut":"A acção \"${0}\" apenas está disponível no navegador utilizando um atalho de teclado. Utilize ${1}.","indent":"Indentar","redo":"Repetir","strikethrough":"Rasurado","justifyFull":"Justificar","justifyCenter":"Alinhar ao centro","hiliteColor":"Cor de segundo plano","deleteTable":"Eliminar tabela","outdent":"Recuar","cut":"Cortar","plainFormatBlock":"Estilo de parágrafo","toggleDir":"Alternar direcção","bold":"Negrito","tabIndent":"Indentar com a tecla Tab","justifyRight":"Alinhar à direita","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.pt_pt");dijit.form.nls.validate.pt_pt={"rangeMessage":"Este valor encontra-se fora do intervalo.","invalidMessage":"O valor introduzido não é válido.","missingMessage":"Este valor é requerido."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.pt_pt");dijit.form.nls.ComboBox.pt_pt={"previousMessage":"Opções anteriores","nextMessage":"Mais opções"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.pt_pt");dijit._editor.nls.FontChoice.pt_pt={"1":"xxs","2":"xs","formatBlock":"Formato","3":"small","4":"medium","5":"large","6":"xl","7":"xxl","fantasy":"fantasy","serif":"serif","p":"Parágrafo","pre":"Pré-formatado","sans-serif":"sans-serif","fontName":"Tipo de letra","h1":"Título","h2":"Sub-título","h3":"Sub-subtítulo","monospace":"monospace","fontSize":"Tamanho","cursive":"cursive","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.pt_pt");dijit._editor.nls.LinkDialog.pt_pt={"text":"Descrição:","insertImageTitle":"Propriedades da imagem","set":"Definir","newWindow":"Nova janela","topWindow":"Janela superior","target":"Destino:","createLinkTitle":"Propriedades da ligação","parentWindow":"Janela ascendente","currentWindow":"Janela actual","url":"URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.pt_pt");dojo.cldr.nls.number.pt_pt={"currencyFormat":"#,##0.00 ¤","group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.pt_pt");dojo.cldr.nls.currency.pt_pt={"HKD_displayName":"Dólar de Hong Kong","CHF_displayName":"Franco suíço","CAD_displayName":"Dólar canadense","CNY_displayName":"Yuan Renminbi chinês","AUD_displayName":"Dólar australiano","JPY_displayName":"Iene japonês","USD_displayName":"Dólar norte-americano","GBP_displayName":"Libra esterlina britânica","EUR_displayName":"Euro","USD_symbol":"US$","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","JPY_symbol":"JP¥","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.pt_pt");dojo.cldr.nls.gregorian.pt_pt={"quarters-standAlone-wide":["1.º trimestre","2.º trimestre","3.º trimestre","4.º trimestre"],"quarters-format-abbr":["1.º trimestre","2.º trimestre","3.º trimestre","4.º trimestre"],"dayPeriods-standAlone-wide-am":"a.m.","dateFormat-medium":"d 'de' MMM 'de' yyyy","quarters-standAlone-abbr":["1.º trimestre","2.º trimestre","3.º trimestre","4.º trimestre"],"dayPeriods-standAlone-abbr-pm":"p.m.","dateFormatItem-hm":"h:mm","months-standAlone-wide":["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],"dayPeriods-standAlone-abbr-am":"a.m.","dayPeriods-format-wide-pm":"Depois do meio-dia","months-standAlone-abbr":["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],"dateFormatItem-yQQQ":"QQQ 'de' y","dayPeriods-format-wide-am":"Antes do meio-dia","dayPeriods-format-abbr-pm":"p.m.","dateFormatItem-yyQ":"QQQ 'de' yy","dayPeriods-format-abbr-am":"a.m.","months-format-wide":["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],"days-standAlone-wide":["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],"months-format-abbr":["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],"days-standAlone-abbr":["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],"days-format-wide":["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],"dateFormatItem-yQ":"QQQ 'de' yyyy","dateFormatItem-hms":"h:mm:ss","quarters-format-wide":["1.º trimestre","2.º trimestre","3.º trimestre","4.º trimestre"],"dayPeriods-standAlone-wide-pm":"p.m.","days-format-abbr":["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-weekday":"Dia da semana","dateFormatItem-yMEd":"EEE, dd/MM/yyyy","dateFormatItem-MMMEd":"EEE, d 'de' MMM","eraNarrow":["a.C.","d.C."],"dayPeriods-format-wide-morning":"manhã","dateFormat-long":"d 'de' MMMM 'de' y","dateFormatItem-EEEd":"EEE, d","dateFormat-full":"EEEE, d 'de' MMMM 'de' y","dateFormatItem-Md":"d/M","dayPeriods-format-wide-noon":"meio-dia","field-era":"Era","dateFormatItem-yM":"MM/yyyy","timeFormat-short":"HH:mm","timeFormat-long":"HH'h'mm'min'ss's' z","field-year":"Ano","dateFormatItem-yMMM":"MMM 'de' y","field-hour":"Hora","dateFormatItem-MMdd":"dd/MM","timeFormat-full":"HH'h'mm'min'ss's' zzzz","field-day-relative+0":"Hoje","field-day-relative+1":"Amanhã","field-day-relative+2":"Depois de amanhã","field-day-relative+3":"Daqui a três dias","dateFormatItem-HHmmss":"HH'h'mm'min'ss's'","dateFormatItem-M":"L","dateFormatItem-yyyyMMM":"MMM 'de' y","dateFormatItem-yyMMMEEEd":"EEE, d 'de' MMM 'de' yy","dateFormatItem-yyMMM":"MMM 'de' yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH'h'mm","eraAbbr":["a.C.","d.C."],"field-minute":"Minuto","field-dayperiod":"Período do dia","dayPeriods-format-wide-night":"noite","dateFormatItem-yyMMMd":"d 'de' MMM 'de' yy","dateFormatItem-d":"d","dateFormatItem-ms":"mm'min'ss's'","field-day-relative+-1":"Ontem","field-day-relative+-2":"Anteontem","field-day-relative+-3":"Há três dias","dateFormatItem-MMMd":"d 'de' MMM","dateFormatItem-MEd":"EEE, dd/MM","field-day":"Dia","field-zone":"Fuso","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-yyMM":"MM/yy","eraNames":["Antes de Cristo","Ano do Senhor"],"days-format-narrow":["D","S","T","Q","Q","S","S"],"field-month":"Mês","days-standAlone-narrow":["D","S","T","Q","Q","S","S"],"dateFormatItem-MMM":"LLL","dateFormatItem-HHmm":"HH'h'mm","dateFormat-short":"dd/MM/yy","dayPeriods-format-wide-afternoon":"tarde","field-second":"Segundo","dateFormatItem-yMMMEd":"EEE, d 'de' MMM 'de' y","field-week":"Semana","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss"}; diff --git a/lib/dijit/nls/dijit-all_pt.js b/lib/dijit/nls/dijit-all_pt.js new file mode 100644 index 000000000..6e670e66e --- /dev/null +++ b/lib/dijit/nls/dijit-all_pt.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_pt");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.pt");dojo.nls.colors.pt={"lightsteelblue":"azul-aço claro","orangered":"vermelho alaranjado","midnightblue":"azul meia-noite","cadetblue":"azul cadet","seashell":"seashell","slategrey":"cinza-ardósia","coral":"coral","darkturquoise":"turquesa escuro","antiquewhite":"branco antigo","mediumspringgreen":"verde-primavera médio","salmon":"salmão","darkgrey":"cinza escuro","ivory":"marfim","greenyellow":"amarelo esverdeado","mistyrose":"rosa enevoado","lightsalmon":"salmão claro","silver":"prateado","dimgrey":"cinza turvo","orange":"laranja","white":"branco","navajowhite":"branco navajo","royalblue":"azul royal","deeppink":"rosa profundo","lime":"lima","oldlace":"cadarço velho","chartreuse":"chartreuse","darkcyan":"ciano escuro","yellow":"amarelo","linen":"linho","olive":"oliva","gold":"dourado","lawngreen":"verde grama","lightyellow":"amarelo claro","tan":"tan","darkviolet":"violeta escuro","lightslategrey":"cinza-ardósia claro","grey":"cinza","darkkhaki":"cáqui escuro","green":"verde","deepskyblue":"azul-céu intenso","aqua":"aqua","sienna":"sienna","mintcream":"creme de menta","rosybrown":"marrom rosado","mediumslateblue":"azul-ardósia médio","magenta":"magenta","lightseagreen":"verde marinho claro","cyan":"ciano","olivedrab":"verde oliva","darkgoldenrod":"goldenrod escuro","slateblue":"azul-ardósia","mediumaquamarine":"água-marinha médio","lavender":"lavanda","mediumseagreen":"verde-marinho médio","maroon":"marrom","darkslategray":"cinza-ardósia escuro","mediumturquoise":"turquesa médio","ghostwhite":"branco ghost","darkblue":"azul escuro","mediumvioletred":"vermelho-violeta médio","brown":"marrom","lightgray":"cinza claro","sandybrown":"marrom cor de areia","pink":"rosa","firebrick":"firebrick","indigo":"índigo","snow":"branco neve","darkorchid":"orquídea escuro","turquoise":"turquesa","chocolate":"chocolate","springgreen":"verde primavera","moccasin":"moccasin","navy":"marinho","lemonchiffon":"limão chiffon","teal":"azul esverdeado","floralwhite":"branco floral","cornflowerblue":"azul centaurea","paleturquoise":"turquesa esbranquiçado","purple":"roxo","gainsboro":"gainsboro","plum":"ameixa","red":"vermelho","blue":"azul","forestgreen":"verde floresta","darkgreen":"verde escuro","honeydew":"honeydew","darkseagreen":"verde marinho escuro","lightcoral":"coral claro","palevioletred":"vermelho-violeta esbranquiçado","mediumpurple":"roxo médio","saddlebrown":"marrom saddle","darkmagenta":"magenta escuro","thistle":"thistle","whitesmoke":"fumaça branca","wheat":"trigo","violet":"violeta","lightskyblue":"azul-céu claro","goldenrod":"goldenrod","mediumblue":"azul médio","skyblue":"azul-céu","crimson":"carmesim","darksalmon":"salmão escuro","darkred":"vermelho escuro","darkslategrey":"cinza-ardósia escuro","peru":"peru","lightgrey":"cinza claro","lightgoldenrodyellow":"amarelo goldenrod claro","blanchedalmond":"amêndoa pelada","aliceblue":"azul alice","bisque":"bisque","slategray":"cinza-ardósia","palegoldenrod":"goldenrod esbranquiçado","darkorange":"laranja escuro","aquamarine":"água-marinha","lightgreen":"verde claro","burlywood":"burlywood","dodgerblue":"azul dodger","darkgray":"cinza escuro","lightcyan":"ciano claro","powderblue":"azul-talco","blueviolet":"azul-violeta","orchid":"orquídea","dimgray":"cinza turvo","beige":"bege","fuchsia":"fúcsia","lavenderblush":"lavanda avermelhada","hotpink":"rosa quente","steelblue":"azul-aço","tomato":"tomate","lightpink":"rosa claro","limegreen":"verde-lima","indianred":"vermelho indiano","papayawhip":"creme de papaya","lightslategray":"cinza-ardósia claro","gray":"cinza","mediumorchid":"orquídea médio","cornsilk":"cornsilk","black":"preto","seagreen":"verde-marinho","darkslateblue":"azul-ardósia escuro","khaki":"cáqui","lightblue":"azul claro","palegreen":"verde esbranquiçado","azure":"azul-celeste","peachpuff":"peach puff","darkolivegreen":"verde oliva escuro","yellowgreen":"verde amarelado"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.pt");dijit.nls.loading.pt={"loadingState":"Carregando...","errorState":"Desculpe, ocorreu um erro"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.pt");dijit.nls.common.pt={"buttonOk":"OK","buttonCancel":"Cancelar","buttonSave":"Salvar","itemClose":"Fechar"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.pt");dijit._editor.nls.commands.pt={"removeFormat":"Remover Formato","copy":"Copiar","paste":"Colar","selectAll":"Selecionar Todos","insertOrderedList":"Lista Numerada","insertTable":"Inserir/Editar Tabela","print":"Impressão","underline":"Sublinhado","foreColor":"Cor do Primeiro Plano","htmlToggle":"Origem HTML","formatBlock":"Estilo de Parágrafo","newPage":"Nova Página","insertHorizontalRule":"Régua Horizontal","delete":"Excluir","insertUnorderedList":"Lista com Marcadores","tableProp":"Propriedade da Tabela","insertImage":"Inserir Imagem","superscript":"Sobrescrito","subscript":"Subscrito","createLink":"Criar Link","undo":"Desfazer","fullScreen":"Comutar Tela Cheia","italic":"Itálico","fontName":"Nome da Fonte","justifyLeft":"Alinhar pela Esquerda","unlink":"Remover Link","toggleTableBorder":"Alternar Moldura da Tabela","viewSource":"Visualizar Origem HTML","fontSize":"Tamanho da Fonte","systemShortcut":"A ação \"${0}\" está disponível em seu navegador apenas usando um atalho do teclado. Use ${1}.","indent":"Recuar","redo":"Refazer","strikethrough":"Tachado","justifyFull":"Justificar","justifyCenter":"Alinhar pelo Centro","hiliteColor":"Cor de segundo plano","deleteTable":"Excluir Tabela","outdent":"Não-chanfrado","cut":"Recortar","plainFormatBlock":"Estilo de Parágrafo","toggleDir":"Comutar Direção","bold":"Negrito","tabIndent":"Recuo de Guia","justifyRight":"Alinhar pela Direita","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.pt");dijit.form.nls.validate.pt={"rangeMessage":"Este valor está fora do intervalo. ","invalidMessage":"O valor inserido não é válido.","missingMessage":"Este valor é necessário."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.pt");dijit.form.nls.ComboBox.pt={"previousMessage":"Opções anteriores","nextMessage":"Mais opções"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.pt");dijit._editor.nls.FontChoice.pt={"1":"extra-extra-pequeno","2":"extra-pequeno","formatBlock":"Formatar","3":"pequena","4":"médio","5":"grande","6":"extra-grande","7":"extra-extra-grande","fantasy":"fantasy","serif":"serif","p":"Parágrafo","pre":"Pré-formatado","sans-serif":"sans-serif","fontName":"Fonte","h1":"Título","h2":"Subtítulo","h3":"Sub-subtítulo","monospace":"espaço simples","fontSize":"Tamanho","cursive":"cursiva","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.pt");dijit._editor.nls.LinkDialog.pt={"text":"Descrição:","insertImageTitle":"Propriedades de Imagem","set":"Definir","newWindow":"Nova Janela","topWindow":"Primeira Janela","target":"Destino:","createLinkTitle":"Propriedades de Link","parentWindow":"Janela Pai","currentWindow":"Janela Atual","url":"URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.pt");dojo.cldr.nls.number.pt={"group":".","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00;(¤#,##0.00)","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.pt");dojo.cldr.nls.currency.pt={"HKD_displayName":"Dólar de Hong Kong","CHF_displayName":"Franco suíço","CAD_displayName":"Dólar canadense","CNY_displayName":"Yuan Renminbi chinês","AUD_displayName":"Dólar australiano","JPY_displayName":"Iene japonês","USD_displayName":"Dólar norte-americano","GBP_displayName":"Libra esterlina britânica","EUR_displayName":"Euro","USD_symbol":"US$","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","JPY_symbol":"JP¥","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.pt");dojo.cldr.nls.gregorian.pt={"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"field-weekday":"Dia da semana","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"EEE, dd/MM/yyyy","dateFormatItem-MMMEd":"EEE, d 'de' MMM","eraNarrow":["a.C.","d.C."],"dayPeriods-format-wide-morning":"manhã","dateFormat-long":"d 'de' MMMM 'de' y","months-format-wide":["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],"dateFormatItem-EEEd":"EEE, d","dateFormat-full":"EEEE, d 'de' MMMM 'de' y","dateFormatItem-Md":"d/M","dayPeriods-format-wide-noon":"meio-dia","field-era":"Era","dateFormatItem-yM":"MM/yyyy","months-standAlone-wide":["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"],"timeFormat-short":"HH:mm","quarters-format-wide":["1º trimestre","2º trimestre","3º trimestre","4º trimestre"],"timeFormat-long":"HH'h'mm'min'ss's' z","field-year":"Ano","dateFormatItem-yMMM":"MMM 'de' y","dateFormatItem-yQ":"yyyy Q","field-hour":"Hora","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH'h'mm'min'ss's' zzzz","field-day-relative+0":"Hoje","field-day-relative+1":"Amanhã","field-day-relative+2":"Depois de amanhã","field-day-relative+3":"Daqui a três dias","months-standAlone-abbr":["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],"quarters-format-abbr":["T1","T2","T3","T4"],"quarters-standAlone-wide":["1º trimestre","2º trimestre","3º trimestre","4º trimestre"],"dateFormatItem-HHmmss":"HH'h'mm'min'ss's'","dateFormatItem-M":"L","days-standAlone-wide":["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"],"dateFormatItem-yyyyMMM":"MMM 'de' y","dateFormatItem-yyMMMEEEd":"EEE, d 'de' MMM 'de' yy","dateFormatItem-yyMMM":"MMM 'de' yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH'h'mm","quarters-standAlone-abbr":["T1","T2","T3","T4"],"eraAbbr":["a.C.","d.C."],"field-minute":"Minuto","field-dayperiod":"Período do dia","days-standAlone-abbr":["dom","seg","ter","qua","qui","sex","sáb"],"dayPeriods-format-wide-night":"noite","dateFormatItem-yyMMMd":"d 'de' MMM 'de' yy","dateFormatItem-d":"d","dateFormatItem-ms":"mm'min'ss's'","field-day-relative+-1":"Ontem","field-day-relative+-2":"Anteontem","field-day-relative+-3":"Há três dias","dateFormatItem-MMMd":"d 'de' MMM","dateFormatItem-MEd":"EEE, dd/MM","field-day":"Dia","days-format-wide":["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"],"field-zone":"Fuso","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-yyMM":"MM/yy","days-format-abbr":["dom","seg","ter","qua","qui","sex","sáb"],"eraNames":["Antes de Cristo","Ano do Senhor"],"days-format-narrow":["D","S","T","Q","Q","S","S"],"field-month":"Mês","days-standAlone-narrow":["D","S","T","Q","Q","S","S"],"dateFormatItem-MMM":"LLL","dateFormatItem-HHmm":"HH'h'mm","dateFormat-short":"dd/MM/yy","dayPeriods-format-wide-afternoon":"tarde","field-second":"Segundo","dateFormatItem-yMMMEd":"EEE, d 'de' MMM 'de' y","field-week":"Semana","dateFormat-medium":"dd/MM/yyyy","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"PM","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dayPeriods-format-wide-am":"AM","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a"}; diff --git a/lib/dijit/nls/dijit-all_ru.js b/lib/dijit/nls/dijit-all_ru.js new file mode 100644 index 000000000..eb33d7773 --- /dev/null +++ b/lib/dijit/nls/dijit-all_ru.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_ru");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.ru");dojo.nls.colors.ru={"lightsteelblue":"светлый стальной","orangered":"оранжево-красный","midnightblue":"полуночно-синий","cadetblue":"серо-синий","seashell":"морская раковина","slategrey":"грифельно-серый","coral":"коралловый","darkturquoise":"темный бирюзовый","antiquewhite":"белый антик","mediumspringgreen":"нейтральный весенне-зеленый","salmon":"лососевый","darkgrey":"темно-серый","ivory":"слоновой кости","greenyellow":"зелено-желтый","mistyrose":"блекло-розовый","lightsalmon":"светло-лососевый","silver":"серебристый","dimgrey":"тускло-серый","orange":"оранжевый","white":"белый","navajowhite":"белый навахо","royalblue":"королевский голубой","deeppink":"темно-розовый","lime":"лайм","oldlace":"матово-белый","chartreuse":"желто-салатный","darkcyan":"темный циан","yellow":"желтый","linen":"хлопковый","olive":"оливковый","gold":"золотой","lawngreen":"зеленая лужайка","lightyellow":"светло-желтый","tan":"рыжевато-коричневый","darkviolet":"темно-фиолетовый","lightslategrey":"светлый грифельно-серый","grey":"серый","darkkhaki":"темный хаки","green":"зеленый","deepskyblue":"темный небесно-голубой","aqua":"зеленовато-голубой","sienna":"охра","mintcream":"мятно-кремовый","rosybrown":"розово-коричневый","mediumslateblue":"нейтральный грифельно-синий","magenta":"пурпурный","lightseagreen":"светлый морской волны","cyan":"циан","olivedrab":"желтовато-серый","darkgoldenrod":"темно-золотистый","slateblue":"грифельно-синий","mediumaquamarine":"нейтральный аквамарин","lavender":"бледно-лиловый","mediumseagreen":"нейтральный морской волны","maroon":"темно-бордовый","darkslategray":"темный грифельно-серый","mediumturquoise":"нейтральный бирюзовый","ghostwhite":"призрачно-белый","darkblue":"темно-синий","mediumvioletred":"нейтральный фиолетово-красный","brown":"коричневый","lightgray":"светло-серый","sandybrown":"коричнево-песчаный","pink":"розовый","firebrick":"кирпичный","indigo":"индиго","snow":"белоснежный","darkorchid":"темный орсель","turquoise":"бирюзовый","chocolate":"шоколадный","springgreen":"весенний зеленый","moccasin":"мокасин","navy":"темно-синий","lemonchiffon":"бледно-лимонный","teal":"чирок","floralwhite":"цветочно-белый","cornflowerblue":"фиолетово-синий","paleturquoise":"бледно-бирюзовый","purple":"фиолетовый","gainsboro":"бледно-серый","plum":"сливовый","red":"красный","blue":"синий","forestgreen":"зеленый лесной","darkgreen":"темно-зеленый","honeydew":"медовый","darkseagreen":"темный морской волны","lightcoral":"светло-коралловый","palevioletred":"бледный фиолетово-красный","mediumpurple":"нейтральный фиолетовый","saddlebrown":"кожано-коричневый","darkmagenta":"темно-пурпурный","thistle":"чертополох","whitesmoke":"дымчато-белый","wheat":"пшеница","violet":"фиолетовый","lightskyblue":"светлый небесно-голубой","goldenrod":"золотистый","mediumblue":"нейтральный синий","skyblue":"небесно-голубой","crimson":"малиновый","darksalmon":"темно-лососевый","darkred":"темно-красный","darkslategrey":"темный грифельно-серый","peru":"перу","lightgrey":"светло-серый","lightgoldenrodyellow":"светло-золотистый","blanchedalmond":"светло-миндальный","aliceblue":"серо-голубой","bisque":"бисквитный","slategray":"грифельно-серый","palegoldenrod":"бледно-золотистый","darkorange":"темно-оранжевый","aquamarine":"аквамарин","lightgreen":"светло-зеленый","burlywood":"светло-коричневый","dodgerblue":"бледно-синий","darkgray":"темно-серый","lightcyan":"светлый циан","powderblue":"пороховой","blueviolet":"сине-фиолетовый","orchid":"орсель","dimgray":"тускло-серый","beige":"бежевый","fuchsia":"фуксин","lavenderblush":"розовато-лиловый","hotpink":"красно-розовый","steelblue":"стальной","tomato":"помидор","lightpink":"светло-розовый","limegreen":"зеленый лайм","indianred":"индийский красный","papayawhip":"черенок папайи","lightslategray":"светлый грифельно-серый","gray":"серый","mediumorchid":"нейтральный орсель","cornsilk":"шелковый оттенок","black":"черный","seagreen":"морской волны","darkslateblue":"темный грифельно-синий","khaki":"хаки","lightblue":"светло-синий","palegreen":"бледно-зеленый","azure":"лазурный","peachpuff":"персиковый","darkolivegreen":"темно-оливковый","yellowgreen":"желто-зеленый"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.ru");dijit.nls.loading.ru={"loadingState":"Загрузка...","errorState":"Извините, возникла ошибка"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.ru");dijit.nls.common.ru={"buttonOk":"ОК","buttonCancel":"Отмена","buttonSave":"Сохранить","itemClose":"Закрыть"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.ru");dijit._editor.nls.commands.ru={"removeFormat":"Удалить формат","copy":"Копировать","paste":"Вставить","selectAll":"Выбрать все","insertOrderedList":"Нумерованный список","insertTable":"Вставить/изменить таблицу","print":"Печать","underline":"Подчеркивание","foreColor":"Цвет текста","htmlToggle":"Код HTML","formatBlock":"Стиль абзаца","newPage":"Создать страницу","insertHorizontalRule":"Горизонтальная линейка","delete":"Удалить","insertUnorderedList":"Список с маркерами","tableProp":"Свойства таблицы","insertImage":"Вставить изображение","superscript":"Верхний индекс","subscript":"Нижний индекс","createLink":"Создать ссылку","undo":"Отменить","fullScreen":"Переключить полноэкранный режим","italic":"Курсив","fontName":"Название шрифта","justifyLeft":"По левому краю","unlink":"Удалить ссылку","toggleTableBorder":"Переключить рамку таблицы","viewSource":"Показать исходный код HTML","fontSize":"Размер шрифта","systemShortcut":"Действие \"${0}\" можно выполнить в браузере только путем нажатия клавиш ${1}.","indent":"Отступ","redo":"Повторить","strikethrough":"Перечеркивание","justifyFull":"По ширине","justifyCenter":"По центру","hiliteColor":"Цвет фона","deleteTable":"Удалить таблицу","outdent":"Втяжка","cut":"Вырезать","plainFormatBlock":"Стиль абзаца","toggleDir":"Изменить направление","bold":"Полужирный","tabIndent":"Табуляция","justifyRight":"По правому краю","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.ru");dijit.form.nls.validate.ru={"rangeMessage":"Это значение вне диапазона.","invalidMessage":"Указано недопустимое значение.","missingMessage":"Это обязательное значение."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.ru");dijit.form.nls.ComboBox.ru={"previousMessage":"Предыдущие варианты","nextMessage":"Следующие варианты"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.ru");dijit._editor.nls.FontChoice.ru={"1":"самый маленький","2":"очень маленький","formatBlock":"Формат","3":"маленький","4":"средний","5":"большой","6":"очень большой","7":"самый большой","fantasy":"артистический","serif":"с засечками","p":"Абзац","pre":"Заранее отформатированный","sans-serif":"без засечек","fontName":"Шрифт","h1":"Заголовок","h2":"Подзаголовок","h3":"Вложенный подзаголовок","monospace":"непропорциональный","fontSize":"Размер","cursive":"курсив","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.ru");dijit._editor.nls.LinkDialog.ru={"text":"Описание:","insertImageTitle":"Свойства изображения","set":"Задать","newWindow":"Новое окно","topWindow":"Окно верхнего уровня","target":"Целевой объект:","createLinkTitle":"Свойства ссылки","parentWindow":"Родительское окно","currentWindow":"Текущее окно","url":"URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.ru");dojo.cldr.nls.number.ru={"group":" ","percentSign":"%","exponential":"E","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.ru");dojo.cldr.nls.currency.ru={"HKD_displayName":"Гонконгский доллар","CHF_displayName":"Швейцарский франк","CAD_displayName":"Канадский доллар","CNY_displayName":"Юань Ренминби","USD_symbol":"$","AUD_displayName":"Австралийский доллар","JPY_displayName":"Японская иена","USD_displayName":"Доллар США","GBP_displayName":"Английский фунт стерлингов","EUR_displayName":"Евро","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","JPY_symbol":"JP¥","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.ru");dojo.cldr.nls.gregorian.ru={"dateFormatItem-yM":"M.y","field-dayperiod":"AM/PM","field-minute":"Минута","eraNames":["до н.э.","н.э."],"dateFormatItem-MMMEd":"E d MMM","field-day-relative+-1":"Вчера","field-weekday":"День недели","dateFormatItem-yQQQ":"y QQQ","field-day-relative+-2":"Позавчера","dateFormatItem-MMdd":"dd.MM","days-standAlone-wide":["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"],"dateFormatItem-MMM":"LLL","months-standAlone-narrow":["Я","Ф","М","А","М","И","И","А","С","О","Н","Д"],"field-era":"Эра","field-hour":"Час","quarters-standAlone-abbr":["1-й кв.","2-й кв.","3-й кв.","4-й кв."],"dateFormatItem-yyMMMEEEd":"EEE, d MMM yy","dateFormatItem-y":"y","timeFormat-full":"H:mm:ss zzzz","dateFormatItem-yyyy":"y","months-standAlone-abbr":["янв.","февр.","март","апр.","май","июнь","июль","авг.","сент.","окт.","нояб.","дек."],"dateFormatItem-Ed":"E d","dateFormatItem-yMMM":"LLL y","field-day-relative+0":"Сегодня","dateFormatItem-yyyyLLLL":"LLLL y","field-day-relative+1":"Завтра","days-standAlone-narrow":["В","П","В","С","Ч","П","С"],"eraAbbr":["до н.э.","н.э."],"field-day-relative+2":"Послезавтра","dateFormatItem-yyyyMM":"MM.yyyy","dateFormatItem-yyyyMMMM":"LLLL y","dateFormat-long":"d MMMM y 'г'.","timeFormat-medium":"H:mm:ss","field-zone":"Часовой пояс","dateFormatItem-Hm":"H:mm","dateFormat-medium":"dd.MM.yyyy","dateFormatItem-yyMM":"MM.yy","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-yyMMM":"LLL yy","quarters-standAlone-wide":["1-й квартал","2-й квартал","3-й квартал","4-й квартал"],"dateFormatItem-ms":"mm:ss","dateFormatItem-yyyyQQQQ":"QQQQ y 'г'.","field-year":"Год","months-standAlone-wide":["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],"field-week":"Неделя","dateFormatItem-MMMd":"d MMM","dateFormatItem-yyQ":"Q yy","timeFormat-long":"H:mm:ss z","months-format-abbr":["янв.","февр.","марта","апр.","мая","июня","июля","авг.","сент.","окт.","нояб.","дек."],"timeFormat-short":"H:mm","dateFormatItem-H":"H","field-month":"Месяц","quarters-format-abbr":["1-й кв.","2-й кв.","3-й кв.","4-й кв."],"days-format-abbr":["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],"dateFormatItem-M":"L","days-format-narrow":["В","П","В","С","Ч","П","С"],"field-second":"Секунда","field-day":"День","dateFormatItem-MEd":"E, d.M","months-format-narrow":["Я","Ф","М","А","М","И","И","А","С","О","Н","Д"],"days-standAlone-abbr":["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],"dateFormat-short":"dd.MM.yy","dateFormatItem-yMMMEd":"E, d MMM y","dateFormat-full":"EEEE, d MMMM y 'г'.","dateFormatItem-Md":"d.M","dateFormatItem-yMEd":"EEE, d.M.y","months-format-wide":["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"],"dateFormatItem-d":"d","quarters-format-wide":["1-й квартал","2-й квартал","3-й квартал","4-й квартал"],"days-format-wide":["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"],"eraNarrow":["до н.э.","н.э."],"quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-wide-pm":"PM","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateFormatItem-yQ":"y Q","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dayPeriods-format-wide-am":"AM","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-hms":"h:mm:ss a"}; diff --git a/lib/dijit/nls/dijit-all_sk.js b/lib/dijit/nls/dijit-all_sk.js new file mode 100644 index 000000000..2ac818c23 --- /dev/null +++ b/lib/dijit/nls/dijit-all_sk.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_sk");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.sk");dojo.nls.colors.sk={"lightsteelblue":"oceľovo modrá svetlá","orangered":"oranžovo červená","midnightblue":"nočná modrá","cadetblue":"sivomodrá","seashell":"lastúrová","slategrey":"bridlicová sivá","coral":"koralová","darkturquoise":"tyrkysová tmavá","antiquewhite":"antická biela","mediumspringgreen":"jarná zelená stredná","salmon":"lososovo ružová","darkgrey":"tmavosivá","ivory":"slonovinová","greenyellow":"žltozelená","mistyrose":"zahmlená ruža","lightsalmon":"lososovo ružová svetlá","silver":"strieborná","dimgrey":"sivá matná","orange":"oranžová","white":"biela","navajowhite":"navajská biela","royalblue":"kráľovská modrá","deeppink":"hlboká ružová","lime":"lipová","oldlace":"stará čipka","chartreuse":"kartúza","darkcyan":"tmavozelenomodrá","yellow":"žltá","linen":"ľan","olive":"olivovo zelená","gold":"zlatá","lawngreen":"zelená tráva","lightyellow":"svetložltá","tan":"žltohnedá","darkviolet":"tmavofialová","lightslategrey":"bridlicová sivá svetlá","grey":"sivá","darkkhaki":"žltohnedá tmavá","green":"zelená","deepskyblue":"hlboká blankytná modrá","aqua":"svetlá zelenomodrá","sienna":"sienská","mintcream":"mätová krémová","rosybrown":"ružovo hnedá","mediumslateblue":"bridlicová modrá stredná","magenta":"purpurová","lightseagreen":"morská zelená svetlá","cyan":"zelenomodrá","olivedrab":"olivovo zelená fádna","darkgoldenrod":"zlatobyľová tmavá","slateblue":"bridlicová modrá","mediumaquamarine":"akvamarínová stredná","lavender":"levanduľová","mediumseagreen":"morská zelená stredná","maroon":"gaštanovo hnedá","darkslategray":"bridlicová sivá tmavá","mediumturquoise":"tyrkysová stredná","ghostwhite":"biely tieň","darkblue":"tmavomodrá","mediumvioletred":"fialovočervená stredná","brown":"hnedá","lightgray":"svetlosivá","sandybrown":"pieskovo hnedá","pink":"ružová","firebrick":"pálená tehla","indigo":"fialovo modrá","snow":"snehobiela","darkorchid":"orchideovo ružová tmavá","turquoise":"tyrkysová","chocolate":"čokoládovo hnedá","springgreen":"jarná zelená","moccasin":"črievičníková","navy":"vojenská zelená","lemonchiffon":"citrónový šifón","teal":"tyrkysová","floralwhite":"kvetinová biela","cornflowerblue":"nevädzovo modrá","paleturquoise":"bledo tyrkysová","purple":"purpurová","gainsboro":"sivomodrá svetlá","plum":"slivková","red":"červená","blue":"modrá","forestgreen":"lesná zelená","darkgreen":"tmavozelená","honeydew":"ambrózia","darkseagreen":"morská zelená tmavá","lightcoral":"koralová svetlá","palevioletred":"bledá fialovo červená","mediumpurple":"purpurová stredná","saddlebrown":"sedlová hnedá","darkmagenta":"tmavopurpurová","thistle":"bodliaková fialová","whitesmoke":"biely dym","wheat":"pšeničná","violet":"fialová","lightskyblue":"blankytná modrá svetlá","goldenrod":"zlatobyľ","mediumblue":"stredne modrá","skyblue":"blankytná modrá","crimson":"karmínová","darksalmon":"lososovo ružová tmavá","darkred":"tmavočervená","darkslategrey":"bridlicová sivá tmavá","peru":"peru","lightgrey":"svetlosivá","lightgoldenrodyellow":"zlatobyľová svetlá","blanchedalmond":"lúpané mandle","aliceblue":"modrá alice","bisque":"biskvitová","slategray":"bridlicová sivá","palegoldenrod":"bledá zlatobyľová","darkorange":"tmavooranžová","aquamarine":"akvamarínová","lightgreen":"svetlozelená","burlywood":"pieskovo hnedá","dodgerblue":"modrá dodger","darkgray":"tmavosivá","lightcyan":"zelenomodrá svetlá","powderblue":"prášková modrá","blueviolet":"modrofialová","orchid":"orchideovo ružová","dimgray":"sivá matná","beige":"béžová","fuchsia":"purpurová","lavenderblush":"levanduľový rumenec","hotpink":"teplá ružová","steelblue":"oceľovo modrá","tomato":"paradajková červená","lightpink":"svetloružová","limegreen":"lipová zelená","indianred":"indická červená","papayawhip":"papájový krém","lightslategray":"bridlicová sivá svetlá","gray":"sivá","mediumorchid":"orchideovo ružová stredná","cornsilk":"hodvábna žltá","black":"čierna","seagreen":"morská zelená","darkslateblue":"bridlicová modrá tmavá","khaki":"khaki","lightblue":"svetlomodrá","palegreen":"bledozelená","azure":"azúrová","peachpuff":"broskyňová pena","darkolivegreen":"olivovozelená tmavá","yellowgreen":"žltozelená"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.sk");dijit.nls.loading.sk={"loadingState":"Zavádzanie...","errorState":"Nastala chyba"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.sk");dijit.nls.common.sk={"buttonOk":"OK","buttonCancel":"Zrušiť","buttonSave":"Uložiť","itemClose":"Zatvoriť"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.sk");dijit._editor.nls.commands.sk={"removeFormat":"Odstrániť formát","copy":"Kopírovať","paste":"Nalepiť","selectAll":"Vybrať všetko","insertOrderedList":"Číslovaný zoznam","insertTable":"Vložiť/upraviť tabuľku","print":"Tlačiť","underline":"Podčiarknuť","foreColor":"Farba popredia","htmlToggle":"Zdroj HTML","formatBlock":"Štýl odseku","newPage":"Nová stránka ","insertHorizontalRule":"Horizontálna čiara","delete":"Vymazať","insertUnorderedList":"Zoznam s odrážkami","tableProp":"Vlastnosť tabuľky","insertImage":"Vložiť obrázok","superscript":"Horný index","subscript":"Dolný index","createLink":"Vytvoriť prepojenie","undo":"Vrátiť späť","fullScreen":"Zobraziť na celú obrazovku","italic":"Kurzíva","fontName":"Názov písma","justifyLeft":"Zarovnať doľava","unlink":"Odstrániť prepojenie","toggleTableBorder":"Prepnúť rámček tabuľky","viewSource":"Zobraziť zdrojový kód HTML ","fontSize":"Veľkosť písma","systemShortcut":"Akcia \"${0}\" je vo vašom prehliadači dostupná len s použitím klávesovej skratky. Použite ${1}.","indent":"Odsadiť","redo":"Znova vykonať","strikethrough":"Prečiarknuť","justifyFull":"Zarovnať podľa okraja","justifyCenter":"Zarovnať na stred","hiliteColor":"Farba pozadia","deleteTable":"Vymazať tabuľku","outdent":"Predsadiť","cut":"Vystrihnúť","plainFormatBlock":"Štýl odseku","toggleDir":"Prepnúť smer","bold":"Tučné písmo","tabIndent":"Odsadenie tabulátora","justifyRight":"Zarovnať doprava","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.sk");dijit.form.nls.validate.sk={"rangeMessage":"Táto hodnota je mimo rozsah.","invalidMessage":"Zadaná hodnota nie je platná.","missingMessage":"Táto hodnota je vyžadovaná."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.sk");dijit.form.nls.ComboBox.sk={"previousMessage":"Predchádzajúce voľby","nextMessage":"Ďalšie voľby"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.sk");dijit._editor.nls.FontChoice.sk={"1":"xx-small","2":"x-small","formatBlock":"Formát","3":"small","4":"medium","5":"large","6":"x-large","7":"xx-large","fantasy":"fantasy","serif":"serif","p":"Odsek","pre":"Predformátované","sans-serif":"sans-serif","fontName":"Písmo","h1":"Hlavička","h2":"Podhlavička","h3":"Pod-podhlavička","monospace":"monospace","fontSize":"Veľkosť","cursive":"cursive","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.sk");dijit._editor.nls.LinkDialog.sk={"text":"Opis:","insertImageTitle":"Vlastnosti obrázka ","set":"Nastaviť","newWindow":"Nové okno ","topWindow":"Najvrchnejšie okno ","target":"Cieľ:","createLinkTitle":"Pripojiť vlastnosti","parentWindow":"Rodičovské okno ","currentWindow":"Aktuálne okno ","url":"URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.sk");dojo.cldr.nls.number.sk={"currencyFormat":"#,##0.00 ¤","group":" ","decimal":",","scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","percentFormat":"#,##0%","decimalFormat":"#,##0.###","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.sk");dojo.cldr.nls.currency.sk={"HKD_displayName":"Hong Kongský dolár","CHF_displayName":"Švajčiarský frank","CAD_displayName":"Kanadský dolár","CNY_displayName":"Čínsky Yuan Renminbi","AUD_displayName":"Austrálsky dolár","JPY_displayName":"Japonský yen","USD_displayName":"US dolár","GBP_displayName":"Britská libra","EUR_displayName":"Euro","USD_symbol":"US$","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","JPY_symbol":"JP¥","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.sk");dojo.cldr.nls.gregorian.sk={"field-dayperiod":"Časť dňa","dateFormatItem-yQ":"Q yyyy","dayPeriods-format-wide-pm":"popoludní","field-minute":"Minúta","eraNames":["pred n.l.","n.l."],"dateFormatItem-MMMEd":"E, d. MMM","field-day-relative+-1":"Včera","field-weekday":"Deň v týždni","dateFormatItem-yQQQ":"QQQ y","field-day-relative+-2":"Predvčerom","field-day-relative+-3":"Pred tromi dňami","days-standAlone-wide":["nedeľa","pondelok","utorok","streda","štvrtok","piatok","sobota"],"months-standAlone-narrow":["j","f","m","a","m","j","j","a","s","o","n","d"],"field-era":"Éra","field-hour":"Hodina","dayPeriods-format-wide-am":"dopoludnia","timeFormat-full":"H:mm:ss zzzz","months-standAlone-abbr":["jan","feb","mar","apr","máj","jún","júl","aug","sep","okt","nov","dec"],"dateFormatItem-yMMM":"LLL y","field-day-relative+0":"Dnes","field-day-relative+1":"Zajtra","days-standAlone-narrow":["N","P","U","S","Š","P","S"],"eraAbbr":["pred n.l.","n.l."],"field-day-relative+2":"Pozajtra","field-day-relative+3":"O tri dni","dateFormatItem-yyyyMMMM":"LLLL y","dateFormat-long":"d. MMMM y","timeFormat-medium":"H:mm:ss","dateFormatItem-EEEd":"EEE, d.","field-zone":"Pásmo","dateFormatItem-Hm":"H:mm","dateFormat-medium":"d.M.yyyy","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-yyQQQQ":"QQQQ yy","quarters-standAlone-wide":["1. štvrťrok","2. štvrťrok","3. štvrťrok","4. štvrťrok"],"dateFormatItem-yMMMM":"LLLL y","dateFormatItem-ms":"mm:ss","field-year":"Rok","months-standAlone-wide":["január","február","marec","apríl","máj","jún","júl","august","september","október","november","december"],"field-week":"Týždeň","dateFormatItem-MMMMEd":"E, d. MMMM","dateFormatItem-MMMd":"d. MMM","dateFormatItem-yyQ":"Q yy","timeFormat-long":"H:mm:ss z","months-format-abbr":["jan","feb","mar","apr","máj","jún","júl","aug","sep","okt","nov","dec"],"timeFormat-short":"H:mm","dateFormatItem-H":"H","field-month":"Mesiac","dateFormatItem-MMMMd":"d. MMMM","quarters-format-abbr":["Q1","Q2","Q3","Q4"],"days-format-abbr":["ne","po","ut","st","št","pi","so"],"dateFormatItem-mmss":"mm:ss","days-format-narrow":["N","P","U","S","Š","P","S"],"field-second":"Sekunda","field-day":"Deň","dateFormatItem-MEd":"E, d.M.","months-format-narrow":["j","f","m","a","m","j","j","a","s","o","n","d"],"days-standAlone-abbr":["ne","po","ut","st","št","pi","so"],"dateFormat-short":"d.M.yyyy","dateFormatItem-yyyyM":"M.yyyy","dateFormatItem-yMMMEd":"EEE, d. MMM y","dateFormat-full":"EEEE, d. MMMM y","dateFormatItem-Md":"d.M.","dateFormatItem-yMEd":"EEE, d.M.yyyy","months-format-wide":["januára","februára","marca","apríla","mája","júna","júla","augusta","septembra","októbra","novembra","decembra"],"dateFormatItem-d":"d.","quarters-format-wide":["1. štvrťrok","2. štvrťrok","3. štvrťrok","4. štvrťrok"],"days-format-wide":["nedeľa","pondelok","utorok","streda","štvrtok","piatok","sobota"],"eraNarrow":["pred n.l.","n.l."],"quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateFormatItem-yM":"y-M","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-M":"L","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-y":"y","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateFormatItem-MMM":"LLL","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-hms":"h:mm:ss a"}; diff --git a/lib/dijit/nls/dijit-all_sl.js b/lib/dijit/nls/dijit-all_sl.js new file mode 100644 index 000000000..d67f53f52 --- /dev/null +++ b/lib/dijit/nls/dijit-all_sl.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_sl");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.sl");dojo.nls.colors.sl={"lightsteelblue":"svetlo jeklena modra","orangered":"oranžno-rdeča","midnightblue":"polnočno modra","cadetblue":"zelenkasto modra","seashell":"morska školjka","slategrey":"skrilasto siva","coral":"koralna","darkturquoise":"temno turkizna","antiquewhite":"antično bela","mediumspringgreen":"srednje pomladno zelena","salmon":"lososova","darkgrey":"temno siva","ivory":"slonokoščena","greenyellow":"zeleno-rumena","mistyrose":"megleno rožnata","lightsalmon":"svetlo lososova","silver":"srebrna","dimgrey":"umazano siva","orange":"oranžna","white":"bela","navajowhite":"navajsko bela","royalblue":"kraljevsko modra","deeppink":"temno roza","lime":"rumeno zelena","oldlace":"stara čipka","chartreuse":"svetlo rumena zelena","darkcyan":"temno cijan","yellow":"rumena","linen":"lanena","olive":"olivna","gold":"zlata","lawngreen":"travnato zelena","lightyellow":"svetlo rumena","tan":"kožno rjava","darkviolet":"temno vijolična","lightslategrey":"svetlo skrilasto siva","grey":"siva","darkkhaki":"temno rumenkasto rjava","green":"zelena","deepskyblue":"temno nebesno modra","aqua":"akva","sienna":"siena","mintcream":"mentolno smetanasta","rosybrown":"rožnato rjava","mediumslateblue":"srednje skrilasto modra","magenta":"magenta","lightseagreen":"svetlo morsko zelena","cyan":"cijan","olivedrab":"olivno sivo rjava","darkgoldenrod":"temno zlata rozga","slateblue":"skrilasto modra","mediumaquamarine":"srednje akvamarin","lavender":"sivka","mediumseagreen":"srednje morsko zelena","maroon":"kostanjeva","darkslategray":"temno skrilasto siva","mediumturquoise":"srednje turkizna","ghostwhite":"prosojno bela","darkblue":"temno modra","mediumvioletred":"srednje vijolično-rdeča","brown":"rjava","lightgray":"svetlo siva","sandybrown":"peščeno rjava","pink":"roza","firebrick":"opečnata","indigo":"indigo","snow":"snežena","darkorchid":"temno orhidejna","turquoise":"turkizna","chocolate":"čokoladna","springgreen":"pomladno zelena","moccasin":"mokasinasta","navy":"mornarsko modra","lemonchiffon":"limonina","teal":"zeleno modra","floralwhite":"cvetno bela","cornflowerblue":"plavično modra","paleturquoise":"bledo turkizna","purple":"škrlatna","gainsboro":"pepelnato siva","plum":"slivova","red":"rdeča","blue":"modra","forestgreen":"gozdno zelena","darkgreen":"temno zelena","honeydew":"medena rosa","darkseagreen":"temno morsko zelena","lightcoral":"svetlo koralna","palevioletred":"bledo vijolično-rdeča","mediumpurple":"srednje škrlatna","saddlebrown":"sedlasto rjava","darkmagenta":"temno magenta","thistle":"osatna","whitesmoke":"umazano bela","wheat":"žitna","violet":"vijolična","lightskyblue":"svetlo nebesno modra","goldenrod":"zlata rozga","mediumblue":"srednje modra","skyblue":"nebesno modra","crimson":"karminasta","darksalmon":"temno lososova","darkred":"temno rdeča","darkslategrey":"temno skrilasto siva","peru":"perujska","lightgrey":"svetlo siva","lightgoldenrodyellow":"svetlo rumena zlata rozga","blanchedalmond":"mandljeva","aliceblue":"alice modra","bisque":"porcelanasta","slategray":"skrilasto siva","palegoldenrod":"bleda zlata rozga","darkorange":"temno oranžna","aquamarine":"akvamarin","lightgreen":"svetlo zelena","burlywood":"grčav les","dodgerblue":"koruzno modra","darkgray":"temno siva","lightcyan":"svetlo cijan","powderblue":"smodniško modra","blueviolet":"modro vijolična","orchid":"orhidejna","dimgray":"umazano siva","beige":"bež","fuchsia":"fuksija","lavenderblush":"bleščeča sivka","hotpink":"živo roza","steelblue":"jekleno modra","tomato":"paradižnikova","lightpink":"svetlo roza","limegreen":"citronsko zelena","indianred":"indijansko rdeča","papayawhip":"papaja","lightslategray":"svetlo skrilasto siva","gray":"siva","mediumorchid":"srednje orhidejna","cornsilk":"koruzni laski","black":"črna","seagreen":"morsko zelena","darkslateblue":"temno skrilasto modra","khaki":"rumenkasto rjava","lightblue":"svetlo modra","palegreen":"bledo zelena","azure":"azurna","peachpuff":"breskova","darkolivegreen":"temno olivno zelena","yellowgreen":"rumeno zelena"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.sl");dijit.nls.loading.sl={"loadingState":"Nalaganje...","errorState":"Oprostite, prišlo je do napake."};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.sl");dijit.nls.common.sl={"buttonOk":"V redu","buttonCancel":"Prekliči","buttonSave":"Shrani","itemClose":"Zapri"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.sl");dijit._editor.nls.commands.sl={"removeFormat":"Odstrani obliko zapisa","copy":"Prekopiraj","paste":"Prilepi","selectAll":"Izberi vse","insertOrderedList":"Oštevilčen seznam","insertTable":"Vstavi/uredi tabelo","print":"Natisni","underline":"Podčrtano","foreColor":"Barva ospredja","htmlToggle":"Izvorna koda HTML","formatBlock":"Slog odstavka","newPage":"Nova stran","insertHorizontalRule":"Vodoravno ravnilo","delete":"Izbriši","insertUnorderedList":"Naštevni seznam","tableProp":"Lastnost tabele","insertImage":"Vstavi sliko","superscript":"Nadpisano","subscript":"Podpisano","createLink":"Ustvari povezavo","undo":"Razveljavi","fullScreen":"Preklopi na celozaslonski način","italic":"Ležeče","fontName":"Ime pisave","justifyLeft":"Poravnaj levo","unlink":"Odstrani povezavo","toggleTableBorder":"Preklopi na rob tabele","viewSource":"Prikaži izvorno kodo HTML","fontSize":"Velikost pisave","systemShortcut":"Dejanje \"${0}\" lahko v vašem brskalniku uporabite samo z bližnjico na tipkovnici. Uporabite ${1}.","indent":"Zamik","redo":"Znova uveljavi","strikethrough":"Prečrtano","justifyFull":"Obojestranska poravnava","justifyCenter":"Poravnaj na sredino","hiliteColor":"Barva ozadja","deleteTable":"Izbriši tabelo","outdent":"Viseč odstavek","cut":"Izreži","plainFormatBlock":"Slog odstavka","toggleDir":"Preklopi na usmeritev","bold":"Krepko","tabIndent":"Zamik tabulatorja","justifyRight":"Poravnaj desno","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.sl");dijit.form.nls.validate.sl={"rangeMessage":"Ta vrednost je zunaj obsega. ","invalidMessage":"Vnesena vrednost ni veljavna.","missingMessage":"Ta vrednost je zahtevana."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.sl");dijit.form.nls.ComboBox.sl={"previousMessage":"Prejšnje možnosti","nextMessage":"Dodatne možnosti"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.sl");dijit._editor.nls.FontChoice.sl={"1":"xx-majhno","2":"x-majhno","formatBlock":"Oblika","3":"majhno","4":"srednje","5":"veliko","6":"x-veliko","7":"xx-veliko","fantasy":"fantasy","serif":"serif","p":"Odstavek","pre":"Vnaprej oblikovano","sans-serif":"sans-serif","fontName":"Pisava","h1":"Naslov","h2":"Podnaslov","h3":"Pod podnaslov","monospace":"monospace","fontSize":"Velikost","cursive":"cursive","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.sl");dijit._editor.nls.LinkDialog.sl={"text":"Opis:","insertImageTitle":"Lastnosti slike","set":"Nastavi","newWindow":"Novo okno","topWindow":"Najvišje okno","target":"Cilj:","createLinkTitle":"Lastnosti povezave","parentWindow":"Nadrejeno okno","currentWindow":"Trenutno okno","url":"URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.sl");dojo.cldr.nls.number.sl={"group":".","percentSign":"%","exponential":"e","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.sl");dojo.cldr.nls.currency.sl={"HKD_displayName":"hongkonški dolar","CHF_displayName":"švicarski frank","JPY_symbol":"¥","CAD_displayName":"kanadski dolar","CNY_displayName":"kitajski juan renminbi","USD_symbol":"$","AUD_displayName":"avstralski dolar","JPY_displayName":"japonski jen","USD_displayName":"ameriški dolar","GBP_displayName":"britanski funt","EUR_displayName":"evro","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.sl");dojo.cldr.nls.gregorian.sl={"field-dayperiod":"Čas dneva","dayPeriods-format-wide-pm":"pop.","field-minute":"Minuta","eraNames":["pred našim štetjem","naše štetje"],"field-day-relative+-1":"Včeraj","field-weekday":"Dan v tednu","field-day-relative+-2":"Predvčerajšnjim","field-day-relative+-3":"Pred tremi dnevi","days-standAlone-wide":["nedelja","ponedeljek","torek","sreda","četrtek","petek","sobota"],"months-standAlone-narrow":["j","f","m","a","m","j","j","a","s","o","n","d"],"field-era":"Doba","field-hour":"Ura","dayPeriods-format-wide-am":"dop.","dateFormatItem-y":"y","timeFormat-full":"HH:mm:ss zzzz","months-standAlone-abbr":["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec"],"field-day-relative+0":"Danes","field-day-relative+1":"Jutri","days-standAlone-narrow":["n","p","t","s","č","p","s"],"eraAbbr":["pr. n. št.","po Kr."],"field-day-relative+2":"Pojutrišnjem","field-day-relative+3":"Čez tri dni","dateFormatItem-yyyyMMMM":"MMMM y","dateFormat-long":"dd. MMMM y","timeFormat-medium":"HH:mm:ss","field-zone":"Območje","dateFormatItem-Hm":"HH:mm","dateFormat-medium":"d. MMM. yyyy","dateFormatItem-Hms":"HH:mm:ss","quarters-standAlone-wide":["1. četrtletje","2. četrtletje","3. četrtletje","4. četrtletje"],"dateFormatItem-ms":"mm:ss","field-year":"Leto","months-standAlone-wide":["januar","februar","marec","april","maj","junij","julij","avgust","september","oktober","november","december"],"field-week":"Teden","dateFormatItem-yyQ":"Q/yy","timeFormat-long":"HH:mm:ss z","months-format-abbr":["jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec"],"timeFormat-short":"HH:mm","field-month":"Mesec","dateFormatItem-MMMMd":"d. MMMM","quarters-format-abbr":["Q1","Q2","Q3","Q4"],"days-format-abbr":["ned","pon","tor","sre","čet","pet","sob"],"dateFormatItem-MMMMdd":"dd. MMMM","dateFormatItem-mmss":"mm:ss","days-format-narrow":["n","p","t","s","č","p","s"],"field-second":"Sekunda","field-day":"Dan","months-format-narrow":["j","f","m","a","m","j","j","a","s","o","n","d"],"days-standAlone-abbr":["ned","pon","tor","sre","čet","pet","sob"],"dateFormat-short":"d. MM. yy","dateFormatItem-yyyyM":"M/yyyy","dateFormat-full":"EEEE, dd. MMMM y","dateFormatItem-Md":"d. M.","months-format-wide":["januar","februar","marec","april","maj","junij","julij","avgust","september","oktober","november","december"],"quarters-format-wide":["1. četrtletje","2. četrtletje","3. četrtletje","4. četrtletje"],"days-format-wide":["nedelja","ponedeljek","torek","sreda","četrtek","petek","sobota"],"eraNarrow":["pr. n. št.","po Kr."],"quarters-standAlone-narrow":["1","2","3","4"],"dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"EEE, y-M-d","dateFormatItem-MMMEd":"E MMM d","dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateFormatItem-yM":"y-M","dateFormatItem-yMMM":"y MMM","dateFormatItem-yQ":"y Q","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","dateFormatItem-M":"L","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"dateFormatItem-d":"d","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateFormatItem-MMMd":"MMM d","dateFormatItem-MEd":"E, M-d","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateFormatItem-MMM":"LLL","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateFormatItem-yMMMEd":"EEE, y MMM d","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-hms":"h:mm:ss a"}; diff --git a/lib/dijit/nls/dijit-all_sv.js b/lib/dijit/nls/dijit-all_sv.js new file mode 100644 index 000000000..2de24a570 --- /dev/null +++ b/lib/dijit/nls/dijit-all_sv.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_sv");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.sv");dojo.nls.colors.sv={"lightsteelblue":"ljust stålblått","orangered":"orangerött","midnightblue":"midnattsblått","cadetblue":"kadettblått","seashell":"snäckskal","slategrey":"skiffergrått","coral":"korall","darkturquoise":"mörkturkost","antiquewhite":"antikvitt","mediumspringgreen":"mellanvårgrönt","salmon":"laxfärgat","darkgrey":"mörkgrått","ivory":"elfenbensvitt","greenyellow":"gröngult","mistyrose":"dunkelrosa","lightsalmon":"ljust laxfärgat","silver":"silver","dimgrey":"smutsgrått","orange":"orange","white":"vitt","navajowhite":"navajovitt","royalblue":"kungligt blått","deeppink":"djuprosa","lime":"lime","oldlace":"spetsvitt","chartreuse":"chartreuse","darkcyan":"mörkt cyan","yellow":"gult","linen":"linne","olive":"olivfärgat","gold":"guld","lawngreen":"gräsmattegrönt","lightyellow":"ljusgult","tan":"mellanbrunt","darkviolet":"mörkviolett","lightslategrey":"ljust skiffergrått","grey":"grått","darkkhaki":"mörkt kaki","green":"grönt","deepskyblue":"mörkt himmelsblått","aqua":"akvamarin","sienna":"sienna","mintcream":"mintgrädde","rosybrown":"rosenbrunt","mediumslateblue":"mellanskifferblått","magenta":"magenta","lightseagreen":"ljust havsgrönt","cyan":"cyan","olivedrab":"olivsmutsgult","darkgoldenrod":"mörkt gullris","slateblue":"skifferblått","mediumaquamarine":"mellanakvamarin","lavender":"lavendel","mediumseagreen":"mellanhavsgrönt","maroon":"rödbrunt","darkslategray":"mörkt skiffergrått","mediumturquoise":"mellanturkost","ghostwhite":"spökvitt","darkblue":"mörkblått","mediumvioletred":"mellanviolettrött","brown":"brunt","lightgray":"ljusgrått","sandybrown":"sandbrunt","pink":"rosa","firebrick":"tegelstensrött","indigo":"indigo","snow":"snö","darkorchid":"mörkt orkidé","turquoise":"turkost","chocolate":"choklad","springgreen":"vårgrönt","moccasin":"mockasin","navy":"marinblått","lemonchiffon":"citronchiffong","teal":"blågrönt","floralwhite":"blomvitt","cornflowerblue":"kornblått","paleturquoise":"blekturkost","purple":"lila","gainsboro":"gainsboro","plum":"plommon","red":"rött","blue":"blått","forestgreen":"skogsgrönt","darkgreen":"mörkgrönt","honeydew":"honungsdagg","darkseagreen":"mörkt havsgrönt","lightcoral":"ljuskorall","palevioletred":"blekviolettrött","mediumpurple":"mellanlila","saddlebrown":"sadelbrunt","darkmagenta":"mörk magenta","thistle":"tistel","whitesmoke":"vit rök","wheat":"vete","violet":"violett","lightskyblue":"ljust himmelsblått","goldenrod":"gullris","mediumblue":"mellanblått","skyblue":"himmelsblått","crimson":"karmosinrött","darksalmon":"mörkt laxfärgat","darkred":"mörkrött","darkslategrey":"mörkt skiffergrått","peru":"peru","lightgrey":"ljusgrått","lightgoldenrodyellow":"ljust gullrisgult","blanchedalmond":"skållad mandel","aliceblue":"aliceblå","bisque":"biskvi","slategray":"skiffergrått","palegoldenrod":"blekt gullris","darkorange":"mörkorange","aquamarine":"akvamarin","lightgreen":"ljusgrönt","burlywood":"träfärgat","dodgerblue":"dodgerblått","darkgray":"mörkgrått","lightcyan":"ljust cyan","powderblue":"pulverblått","blueviolet":"blåviolett","orchid":"orkidé","dimgray":"smutsgrått","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavendelskimrande","hotpink":"varmrosa","steelblue":"stålblått","tomato":"tomatrött","lightpink":"ljusrosa","limegreen":"limegrönt","indianred":"indianrött","papayawhip":"papayaröra","lightslategray":"ljust skiffergrått","gray":"grått","mediumorchid":"mellanorkidé","cornsilk":"gulvitt","black":"svart","seagreen":"havsgrönt","darkslateblue":"mörkt skifferblått","khaki":"kaki","lightblue":"ljusblått","palegreen":"blekgrönt","azure":"azurblått","peachpuff":"persika","darkolivegreen":"mörkt olivgrönt","yellowgreen":"gulgrönt"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.sv");dijit.nls.loading.sv={"loadingState":"Läser in...","errorState":"Det uppstod ett fel."};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.sv");dijit.nls.common.sv={"buttonOk":"OK","buttonCancel":"Avbryt","buttonSave":"Spara","itemClose":"Stäng"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.sv");dijit._editor.nls.commands.sv={"removeFormat":"Ta bort format","copy":"Kopiera","paste":"Klistra in","selectAll":"Markera allt","insertOrderedList":"Numrerad lista","insertTable":"Infoga/redigera tabell","print":"Skriv ut","underline":"Understrykning","foreColor":"Förgrundsfärg","htmlToggle":"HTML-källkod","formatBlock":"Styckeformat","newPage":"Ny sida","insertHorizontalRule":"Horisontell linjal","delete":"Ta bort","appleKey":"⌘+${0}","insertUnorderedList":"Punktlista","tableProp":"Tabellegenskap","insertImage":"Infoga bild","superscript":"Upphöjt","subscript":"Nedsänkt","createLink":"Skapa länk","undo":"Ångra","fullScreen":"Växla helskärm","italic":"Kursiv","fontName":"Teckensnittsnamn","justifyLeft":"Vänsterjustera","unlink":"Ta bort länk","toggleTableBorder":"Aktivera/avaktivera tabellram","viewSource":"Visa HTML-kod","ctrlKey":"Ctrl+${0}","fontSize":"Teckenstorlek","systemShortcut":"Åtgärden \"${0}\" är endast tillgänglig i webbläsaren med hjälp av ett kortkommando. Använd ${1}.","indent":"Indrag","redo":"Gör om","strikethrough":"Genomstruken","justifyFull":"Marginaljustera","justifyCenter":"Centrera","hiliteColor":"Bakgrundsfärg","deleteTable":"Ta bort tabell","outdent":"Utdrag","cut":"Klipp ut","plainFormatBlock":"Styckeformat","toggleDir":"Växla riktning","bold":"Fetstil","tabIndent":"Tabbindrag","justifyRight":"Högerjustera"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.sv");dijit.form.nls.validate.sv={"rangeMessage":"Värdet är utanför intervallet.","invalidMessage":"Det angivna värdet är ogiltigt.","missingMessage":"Värdet är obligatoriskt."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.sv");dijit.form.nls.ComboBox.sv={"previousMessage":"Föregående alternativ","nextMessage":"Fler alternativ"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.sv");dijit._editor.nls.FontChoice.sv={"1":"mycket, mycket litet","2":"mycket litet","formatBlock":"Format","3":"litet","4":"medelstort","5":"stort","6":"extra stort","7":"extra extra stort","fantasy":"fantasy","serif":"serif","p":"Stycke","pre":"Förformaterat","sans-serif":"sans-serif","fontName":"Teckensnitt","h1":"Rubrik","h2":"Underrubrik","h3":"Underunderrubrik","monospace":"monospace","fontSize":"Storlek","cursive":"kursivt","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.sv");dijit._editor.nls.LinkDialog.sv={"text":"Beskrivning:","insertImageTitle":"Bildegenskaper","set":"Ange","newWindow":"nytt fönster","topWindow":"översta fönstret","target":"Mål:","createLinkTitle":"Länkegenskaper","parentWindow":"överordnat fönster","currentWindow":"aktuellt fönster","url":"URL-adress:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.sv");dojo.cldr.nls.number.sv={"group":" ","percentSign":"%","exponential":"×10^","percentFormat":"#,##0 %","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"−","decimal":",","nan":"¤¤¤","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.sv");dojo.cldr.nls.currency.sv={"HKD_displayName":"Hongkong-dollar","CHF_displayName":"schweizisk franc","CHF_symbol":"CHF","CAD_displayName":"kanadensisk dollar","CNY_displayName":"kinesisk yuan renminbi","AUD_displayName":"australisk dollar","JPY_displayName":"japansk yen","CAD_symbol":"CAD","USD_displayName":"US-dollar","CNY_symbol":"CNY","GBP_displayName":"brittiskt pund sterling","EUR_displayName":"euro","USD_symbol":"US$","GBP_symbol":"£","HKD_symbol":"HK$","JPY_symbol":"JP¥","AUD_symbol":"AU$","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.sv");dojo.cldr.nls.gregorian.sv={"months-format-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"quarters-standAlone-narrow":["1","2","3","4"],"field-weekday":"veckodag","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"EEE, yyyy-MM-dd","dateFormatItem-MMMEd":"E d MMM","eraNarrow":["f.Kr.","e.Kr."],"dateFormat-long":"d MMMM y","months-format-wide":["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"],"dateFormatItem-EEEd":"EEE d","dayPeriods-format-wide-pm":"em","dateFormat-full":"EEEE'en' 'den' d:'e' MMMM y","dateFormatItem-Md":"d/M","dateFormatItem-MMMMEEEd":"EEE d MMMM","field-era":"era","dateFormatItem-yM":"yyyy-MM","months-standAlone-wide":["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"],"timeFormat-short":"HH:mm","quarters-format-wide":["1:a kvartalet","2:a kvartalet","3:e kvartalet","4:e kvartalet"],"timeFormat-long":"HH:mm:ss z","field-year":"år","dateFormatItem-yMMM":"y MMM","dateFormatItem-yQ":"yyyy Q","field-hour":"timme","dateFormatItem-MMdd":"dd/MM","months-format-abbr":["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"'kl'. HH:mm:ss zzzz","field-day-relative+0":"i dag","field-day-relative+1":"i morgon","field-day-relative+2":"i övermorgon","field-day-relative+3":"i överövermorgon","months-standAlone-abbr":["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],"quarters-format-abbr":["K1","K2","K3","K4"],"quarters-standAlone-wide":["1:a kvartalet","2:a kvartalet","3:e kvartalet","4:e kvartalet"],"dateFormatItem-M":"L","days-standAlone-wide":["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"],"dateFormatItem-yyyyMMM":"MMM y","dateFormatItem-MMMMd":"d:'e' MMMM","dateFormatItem-yyMMM":"MMM -yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["K1","K2","K3","K4"],"eraAbbr":["f.Kr.","e.Kr."],"field-minute":"minut","field-dayperiod":"fm/em","days-standAlone-abbr":["sön","mån","tis","ons","tors","fre","lör"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"i går","field-day-relative+-2":"i förrgår","field-day-relative+-3":"i förrförrgår","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"E d/M","field-day":"dag","days-format-wide":["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"],"field-zone":"tidszon","dateFormatItem-yyyyMM":"yyyy-MM","dateFormatItem-y":"y","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"dateFormatItem-yyMM":"yy-MM","dateFormatItem-hm":"h:mm a","days-format-abbr":["sön","mån","tis","ons","tors","fre","lör"],"eraNames":["före Kristus","efter Kristus"],"days-format-narrow":["S","M","T","O","T","F","L"],"field-month":"månad","days-standAlone-narrow":["S","M","T","O","T","F","L"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"fm","dateFormatItem-MMMMEd":"E d:'e' MMMM","dateFormat-short":"yyyy-MM-dd","dateFormatItem-MMd":"d/M","field-second":"sekund","dateFormatItem-yMMMEd":"EEE d MMM y","field-week":"vecka","dateFormat-medium":"d MMM y","dateFormatItem-yyyyQQQQ":"QQQQ y","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a","dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"}; diff --git a/lib/dijit/nls/dijit-all_th.js b/lib/dijit/nls/dijit-all_th.js new file mode 100644 index 000000000..ee6501592 --- /dev/null +++ b/lib/dijit/nls/dijit-all_th.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_th");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.th");dojo.nls.colors.th={"lightsteelblue":"light steel blue","orangered":"ส้มแกมแดง","midnightblue":"midnight blue","cadetblue":"cadet blue","seashell":"seashell","slategrey":"slate gray","coral":"coral","darkturquoise":"dark turquoise","antiquewhite":"antique white","mediumspringgreen":"medium spring green","salmon":"salmon","darkgrey":"เทาเข้ม","ivory":"งาช้าง","greenyellow":"เขียวแกมเหลือง","mistyrose":"misty rose","lightsalmon":"light salmon","silver":"เงิน","dimgrey":"dim gray","orange":"ส้ม","white":"ขาว","navajowhite":"navajo white","royalblue":"royal blue","deeppink":"ชมพูเข้ม","lime":"เหลืองมะนาว","oldlace":"old lace","chartreuse":"chartreuse","darkcyan":"เขียวแกมน้ำเงินเข้ม","yellow":"เหลือง","linen":"linen","olive":"โอลีฟ","gold":"ทอง","lawngreen":"lawn green","lightyellow":"เหลืองอ่อน","tan":"tan","darkviolet":"ม่วงเข้ม","lightslategrey":"light slate gray","grey":"เทา","darkkhaki":"dark khaki","green":"เขียว","deepskyblue":"deep sky blue","aqua":"ฟ้าน้ำทะเล","sienna":"sienna","mintcream":"mint cream","rosybrown":"rosy brown","mediumslateblue":"medium slate blue","magenta":"แดงแกมม่วง","lightseagreen":"light sea green","cyan":"เขียวแกมน้ำเงิน","olivedrab":"olive drab","darkgoldenrod":"dark goldenrod","slateblue":"slate blue","mediumaquamarine":"medium aquamarine","lavender":"ม่วงลาเวนเดอร์","mediumseagreen":"medium sea green","maroon":"น้ำตาลแดง","darkslategray":"dark slate gray","mediumturquoise":"medium turquoise","ghostwhite":"ghost white","darkblue":"น้ำเงินเข้ม","mediumvioletred":"medium violet-red","brown":"น้ำตาล","lightgray":"เทาอ่อน","sandybrown":"sandy brown","pink":"ชมพู","firebrick":"สีอิฐ","indigo":"indigo","snow":"snow","darkorchid":"dark orchid","turquoise":"turquoise","chocolate":"ช็อกโกแลต","springgreen":"spring green","moccasin":"ม็อคค่า","navy":"น้ำเงินเข้ม","lemonchiffon":"lemon chiffon","teal":"teal","floralwhite":"floral white","cornflowerblue":"cornflower blue","paleturquoise":"pale turquoise","purple":"ม่วง","gainsboro":"gainsboro","plum":"plum","red":"แดง","blue":"น้ำเงิน","forestgreen":"forest green","darkgreen":"เขียวเข้ม","honeydew":"honeydew","darkseagreen":"dark sea green","lightcoral":"light coral","palevioletred":"pale violet-red","mediumpurple":"medium purple","saddlebrown":"saddle brown","darkmagenta":"แดงแกมม่วงเข้ม","thistle":"thistle","whitesmoke":"ขาวควัน","wheat":"wheat","violet":"ม่วง","lightskyblue":"ฟ้าอ่อน","goldenrod":"goldenrod","mediumblue":"medium blue","skyblue":"sky blue","crimson":"แดงเลือดหมู","darksalmon":"dark salmon","darkred":"แดงเข้ม","darkslategrey":"dark slate gray","peru":"peru","lightgrey":"เทาอ่อน","lightgoldenrodyellow":"light goldenrod yellow","blanchedalmond":"blanched almond","aliceblue":"alice blue","bisque":"bisque","slategray":"slate gray","palegoldenrod":"pale goldenrod","darkorange":"ส้มเข้ม","aquamarine":"aquamarine","lightgreen":"เขียวอ่อน","burlywood":"burlywood","dodgerblue":"dodger blue","darkgray":"เทาเข้ม","lightcyan":"เขียวแกมน้ำเงินอ่อน","powderblue":"powder blue","blueviolet":"น้ำเงินม่วง","orchid":"orchid","dimgray":"dim gray","beige":"น้ำตาลเบจ","fuchsia":"fuchsia","lavenderblush":"lavender blush","hotpink":"hot pink","steelblue":"steel blue","tomato":"tomato","lightpink":"ชมพูอ่อน","limegreen":"เขียวมะนาว","indianred":"indian red","papayawhip":"papaya whip","lightslategray":"light slate gray","gray":"เทา","mediumorchid":"medium orchid","cornsilk":"cornsilk","black":"ดำ","seagreen":"sea green","darkslateblue":"dark slate blue","khaki":"khaki","lightblue":"น้ำเงินอ่อน","palegreen":"pale green","azure":"น้ำเงินฟ้า","peachpuff":"peach puff","darkolivegreen":"เขียวโอลีฟเข้ม","yellowgreen":"เหลืองแกมเขียว"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.th");dijit.nls.loading.th={"loadingState":"กำลังโหลด...","errorState":"ขออภัย เกิดข้อผิดพลาด"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.th");dijit.nls.common.th={"buttonOk":"ตกลง","buttonCancel":"ยกเลิก","buttonSave":"บันทึก","itemClose":"ปิด"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.th");dijit._editor.nls.commands.th={"removeFormat":"ลบรูปแบบออก","copy":"คัดลอก","paste":"วาง","selectAll":"เลือกทั้งหมด","insertOrderedList":"ลำดับเลข","insertTable":"แทรก/แก้ไขตาราง","print":"พิมพ์","underline":"ขีดเส้นใต้","foreColor":"สีพื้นหน้า","htmlToggle":"ซอร์ส HTML","formatBlock":"ลักษณะย่อหน้า","newPage":"หน้าใหม่","insertHorizontalRule":"ไม้บรรทัดแนวนอน","delete":"ลบ","insertUnorderedList":"หัวข้อย่อย","tableProp":"คุณสมบัติตาราง","insertImage":"แทรกอิมเมจ","superscript":"ตัวยก","subscript":"ตัวห้อย","createLink":"สร้างลิงก์","undo":"เลิกทำ","fullScreen":"สลับจอภาพแบบเต็ม","italic":"ตัวเอียง","fontName":"ชื่อฟอนต์","justifyLeft":"จัดชิดซ้าย","unlink":"ลบลิงก์ออก","toggleTableBorder":"สลับเส้นขอบตาราง","viewSource":"ดูซอร์ส HTML","fontSize":"ขนาดฟอนต์","systemShortcut":"การดำเนินการ\"${0}\" ใช้งานได้เฉพาะกับเบราว์เซอร์ของคุณโดยใช้แป้นพิมพ์ลัด ใช้ ${1}","indent":"เพิ่มการเยื้อง","redo":"ทำซ้ำ","strikethrough":"ขีดทับ","justifyFull":"จัดชิดขอบ","justifyCenter":"จัดกึ่งกลาง","hiliteColor":"สีพื้นหลัง","deleteTable":"ลบตาราง","outdent":"ลดการเยื้อง","cut":"ตัด","plainFormatBlock":"ลักษณะย่อหน้า","toggleDir":"สลับทิศทาง","bold":"ตัวหนา","tabIndent":"เยื้องแท็บ","justifyRight":"จัดชิดขวา","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.th");dijit.form.nls.validate.th={"rangeMessage":"ค่านี้เกินช่วง","invalidMessage":"ค่าที่ป้อนไม่ถูกต้อง","missingMessage":"จำเป็นต้องมีค่านี้"};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.th");dijit.form.nls.ComboBox.th={"previousMessage":"การเลือกก่อนหน้า","nextMessage":"การเลือกเพิ่มเติม"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.th");dijit._editor.nls.FontChoice.th={"1":"xx-small","2":"x-small","formatBlock":"รูปแบบ","3":"small","4":"medium","5":"large","6":"x-large","7":"xx-large","fantasy":"fantasy","serif":"serif","p":"ย่อหน้า","pre":"การกำหนดรูปแบบล่วงหน้า","sans-serif":"sans-serif","fontName":"ฟอนต์","h1":"ส่วนหัว","h2":"ส่วนหัวย่อย","h3":"ส่วนย่อยของส่วนหัวย่อย","monospace":"monospace","fontSize":"ขนาด","cursive":"cursive","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.th");dijit._editor.nls.LinkDialog.th={"text":"รายละเอียด","insertImageTitle":"คุณสมบัติอิมเมจ","set":"ตั้งค่า","newWindow":"หน้าต่างใหม่","topWindow":"หน้าต่างบนสุด","target":"เป้าหมาย:","createLinkTitle":"คุณสมบัติลิงก์","parentWindow":"หน้าต่างหลัก","currentWindow":"หน้าต่างปัจจุบัน","url":"URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.th");dojo.cldr.nls.number.th={"group":",","percentSign":"%","exponential":"E","percentFormat":"#,##0%","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":".","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"¤#,##0.00;¤-#,##0.00","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.th");dojo.cldr.nls.currency.th={"HKD_displayName":"ดอลลาร์ฮ่องกง","CHF_displayName":"ฟรังก์สวิส","JPY_symbol":"¥","CAD_displayName":"ดอลลาร์แคนาดา","CNY_displayName":"หยวนเหรินหมินปี้ (สาธารณรัฐประชาชนจีน)","AUD_displayName":"ดอลลาร์ออสเตรเลีย","JPY_displayName":"เยนญี่ปุ่น","USD_displayName":"ดอลลาร์สหรัฐ","GBP_displayName":"ปอนด์สเตอร์ลิง (สหราชอาณาจักร)","EUR_displayName":"ยูโร","USD_symbol":"US$","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.th");dojo.cldr.nls.gregorian.th={"months-format-narrow":["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],"field-weekday":"วันในสัปดาห์","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"EEE d/M/yyyy","dateFormatItem-MMMEd":"E d MMM","eraNarrow":["ก่อน ค.ศ.","ค.ศ."],"dateFormat-long":"d MMMM y","months-format-wide":["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],"dateTimeFormat-medium":"{1}, {0}","dateFormatItem-EEEd":"EEE d","dayPeriods-format-wide-pm":"หลังเที่ยง","dateFormat-full":"EEEEที่ d MMMM G y","dateFormatItem-Md":"d/M","field-era":"สมัย","dateFormatItem-yM":"M/yyyy","months-standAlone-wide":["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],"timeFormat-short":"H:mm","quarters-format-wide":["ไตรมาส 1","ไตรมาส 2","ไตรมาส 3","ไตรมาส 4"],"timeFormat-long":"H นาฬิกา m นาที ss วินาที z","field-year":"ปี","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q yyyy","dateFormatItem-yyyyMMMM":"MMMM y","field-hour":"ชั่วโมง","months-format-abbr":["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"H นาฬิกา m นาที ss วินาที zzzz","field-day-relative+0":"วันนี้","field-day-relative+1":"พรุ่งนี้","field-day-relative+2":"มะรืนนี้","dateFormatItem-H":"H","field-day-relative+3":"สามวันต่อจากนี้","months-standAlone-abbr":["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],"quarters-format-abbr":["Q1","Q2","Q3","Q4"],"quarters-standAlone-wide":["ไตรมาส 1","ไตรมาส 2","ไตรมาส 3","ไตรมาส 4"],"dateFormatItem-M":"L","days-standAlone-wide":["วันอาทิตย์","วันจันทร์","วันอังคาร","วันพุธ","วันพฤหัสบดี","วันศุกร์","วันเสาร์"],"dateFormatItem-MMMMd":"d MMMM","timeFormat-medium":"H:mm:ss","dateFormatItem-Hm":"H:mm","eraAbbr":["ปีก่อน ค.ศ.","ค.ศ."],"field-minute":"นาที","field-dayperiod":"ช่วงวัน","days-standAlone-abbr":["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"เมื่อวาน","dateTimeFormat-long":"{1}, {0}","field-day-relative+-2":"เมื่อวานซืน","field-day-relative+-3":"สามวันก่อน","dateFormatItem-MMMd":"d MMM","dateFormatItem-MEd":"E, d/M","dateTimeFormat-full":"{1}, {0}","dateFormatItem-yMMMM":"MMMM y","field-day":"วัน","days-format-wide":["วันอาทิตย์","วันจันทร์","วันอังคาร","วันพุธ","วันพฤหัสบดี","วันศุกร์","วันเสาร์"],"field-zone":"เขต","dateFormatItem-y":"y","months-standAlone-narrow":["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],"days-format-abbr":["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],"eraNames":["ปีก่อนคริสต์ศักราช","คริสต์ศักราช"],"days-format-narrow":["อ","จ","อ","พ","พ","ศ","ส"],"field-month":"เดือน","days-standAlone-narrow":["อ","จ","อ","พ","พ","ศ","ส"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"ก่อนเที่ยง","dateFormatItem-MMMMEd":"E d MMMM","dateFormat-short":"d/M/yyyy","field-second":"วินาที","dateFormatItem-yMMMEd":"EEE d MMM y","field-week":"สัปดาห์","dateFormat-medium":"d MMM y","dateFormatItem-yyyyM":"M/yyyy","dateFormatItem-mmss":"mm:ss","dateTimeFormat-short":"{1}, {0}","dateFormatItem-Hms":"H:mm:ss","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dayPeriods-format-narrow-am":"AM","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateFormatItem-hms":"h:mm:ss a"}; diff --git a/lib/dijit/nls/dijit-all_tr.js b/lib/dijit/nls/dijit-all_tr.js new file mode 100644 index 000000000..173d38775 --- /dev/null +++ b/lib/dijit/nls/dijit-all_tr.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_tr");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.tr");dojo.nls.colors.tr={"lightsteelblue":"açık metalik mavi","orangered":"turuncu kırmızı","midnightblue":"gece mavisi","cadetblue":"denizci mavisi","seashell":"deniz kabuğu","slategrey":"arduvaz grisi","coral":"mercan","darkturquoise":"koyu turkuaz","antiquewhite":"antik beyaz","mediumspringgreen":"orta bahar yeşili","salmon":"somon","darkgrey":"koyu gri","ivory":"fildişi","greenyellow":"yeşil-sarı","mistyrose":"gülkurusu","lightsalmon":"açık somon","silver":"gümüş","dimgrey":"soluk gri","orange":"turuncu","white":"beyaz","navajowhite":"navajo beyazı","royalblue":"parlak koyu mavi","deeppink":"koyu pembe","lime":"limon yeşili","oldlace":"eski dantel","chartreuse":"chartreuse","darkcyan":"koyu camgöbeği","yellow":"sarı","linen":"keten","olive":"zeytin","gold":"altın","lawngreen":"çimen yeşili","lightyellow":"açık sarı","tan":"güneş yanığı","darkviolet":"koyu eflatun","lightslategrey":"açık arduvaz grisi","grey":"gri","darkkhaki":"koyu haki","green":"yeşil","deepskyblue":"koyu gök mavisi","aqua":"deniz mavisi","sienna":"koyu kahve","mintcream":"naneli krem","rosybrown":"pembemsi kahverengi","mediumslateblue":"orta arduvaz mavisi","magenta":"macenta","lightseagreen":"açık deniz yeşili","cyan":"camgöbeği","olivedrab":"asker yeşili","darkgoldenrod":"koyu sarı","slateblue":"arduvaz mavisi","mediumaquamarine":"orta akuamarin","lavender":"lavanta","mediumseagreen":"orta deniz yeşili","maroon":"kestane","darkslategray":"koyu arduvaz grisi","mediumturquoise":"orta turkuaz","ghostwhite":"silik beyaz","darkblue":"koyu mavi","mediumvioletred":"orta menekşe kırmızısı","brown":"kahverengi","lightgray":"açık gri","sandybrown":"kum rengi","pink":"pembe","firebrick":"canlı kiremit","indigo":"çivit mavisi","snow":"kar","darkorchid":"koyu orkide","turquoise":"turkuaz","chocolate":"çikolata","springgreen":"bahar yeşili","moccasin":"mokosen","navy":"lacivert","lemonchiffon":"limoni","teal":"Teal mavi","floralwhite":"çiçek beyazı","cornflowerblue":"peygamber çiçeği mavisi","paleturquoise":"soluk turkuaz","purple":"mor","gainsboro":"gainsboro","plum":"erik","red":"kırmızı","blue":"mavi","forestgreen":"koyu deniz yeşili","darkgreen":"koyu yeşil","honeydew":"çam sakızı","darkseagreen":"koyu deniz yeşili","lightcoral":"açık mercan","palevioletred":"soluk menekşe kırmızısı","mediumpurple":"orta mor","saddlebrown":"açık kahve","darkmagenta":"koyu mor","thistle":"devedikeni","whitesmoke":"beyaz duman","wheat":"buğday","violet":"eflatun","lightskyblue":"açık gök mavisi","goldenrod":"sarısabır","mediumblue":"orta mavi","skyblue":"gök mavisi","crimson":"crimson","darksalmon":"koyu somon","darkred":"koyu kırmızı","darkslategrey":"koyu arduvaz grisi","peru":"peru","lightgrey":"açık gri","lightgoldenrodyellow":"açık sarısabır","blanchedalmond":"soluk badem","aliceblue":"alice mavisi","bisque":"bisküvi","slategray":"arduvaz grisi","palegoldenrod":"soluk sarısabır","darkorange":"koyu turuncu","aquamarine":"akuamarin","lightgreen":"açık yeşil","burlywood":"sarımsı kahverengi","dodgerblue":"toz mavisi","darkgray":"koyu gri","lightcyan":"açık camgöbeği","powderblue":"pudra mavisi","blueviolet":"mavi-mor","orchid":"orkide","dimgray":"soluk gri","beige":"bej","fuchsia":"fuşya","lavenderblush":"lavanta pembesi","hotpink":"sıcak pembe","steelblue":"metalik mavi","tomato":"domates","lightpink":"açık pembe","limegreen":"küf yeşili","indianred":"kızılderili kırmızısı","papayawhip":"papaya sapı","lightslategray":"açık arduvaz grisi","gray":"gri","mediumorchid":"orta orkide","cornsilk":"mısır rengi","black":"siyah","seagreen":"deniz yeşili","darkslateblue":"koyu arduvaz mavisi","khaki":"haki","lightblue":"açık mavi","palegreen":"soluk yeşil","azure":"azur mavisi","peachpuff":"açık şeftali","darkolivegreen":"koyu zeytin yeşili","yellowgreen":"sarı yeşil"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.tr");dijit.nls.loading.tr={"loadingState":"Yükleniyor...","errorState":"Üzgünüz, bir hata oluştu"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.tr");dijit.nls.common.tr={"buttonOk":"Tamam","buttonCancel":"İptal","buttonSave":"Kaydet","itemClose":"Kapat"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.tr");dijit._editor.nls.commands.tr={"removeFormat":"Biçimi Kaldır","copy":"Kopyala","paste":"Yapıştır","selectAll":"Tümünü Seç","insertOrderedList":"Numaralı Liste","insertTable":"Tablo Ekle/Düzenle","print":"Yazdır","underline":"Altı Çizili","foreColor":"Ön Plan Rengi","htmlToggle":"HTML Kaynağı","formatBlock":"Paragraf Stili","newPage":"Yeni Sayfa","insertHorizontalRule":"Yatay Kural","delete":"Sil","insertUnorderedList":"Madde İşaretli Liste","tableProp":"Tablo Özelliği","insertImage":"Resim Ekle","superscript":"Üst Simge","subscript":"Alt Simge","createLink":"Bağlantı Oluştur","undo":"Geri Al","fullScreen":"Tam Ekranı Aç/Kapat","italic":"İtalik","fontName":"Yazı Tipi Adı","justifyLeft":"Sola Hizala","unlink":"Bağlantıyı Kaldır","toggleTableBorder":"Tablo Kenarlığını Göster/Gizle","viewSource":"HTML Kaynağını Görüntüle","fontSize":"Yazı Tipi Boyutu","systemShortcut":"\"${0}\" işlemi yalnızca tarayıcınızda bir klavye kısayoluyla birlikte kullanılabilir. Şunu kullanın: ${1}.","indent":"Girinti","redo":"Yinele","strikethrough":"Üstü Çizili","justifyFull":"Yasla","justifyCenter":"Ortaya Hizala","hiliteColor":"Arka Plan Rengi","deleteTable":"Tabloyu Sil","outdent":"Çıkıntı","cut":"Kes","plainFormatBlock":"Paragraf Stili","toggleDir":"Yönü Değiştir","bold":"Kalın","tabIndent":"Sekme Girintisi","justifyRight":"Sağa Hizala","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.tr");dijit.form.nls.validate.tr={"rangeMessage":"Bu değer aralık dışında.","invalidMessage":"Girilen değer geçersiz.","missingMessage":"Bu değer gerekli."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.tr");dijit.form.nls.ComboBox.tr={"previousMessage":"Önceki seçenekler","nextMessage":"Diğer seçenekler"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.tr");dijit._editor.nls.FontChoice.tr={"1":"xx-küçük","2":"x-küçük","formatBlock":"Biçim","3":"küçük","4":"orta","5":"büyük","6":"x-büyük","7":"xx-büyük","fantasy":"fantazi","serif":"serif","p":"Paragraf","pre":"Önceden Biçimlendirilmiş","sans-serif":"sans-serif","fontName":"Yazı Tipi","h1":"Başlık","h2":"Alt Başlık","h3":"Alt Alt Başlık","monospace":"tek aralıklı","fontSize":"Boyut","cursive":"el yazısı","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.tr");dijit._editor.nls.LinkDialog.tr={"text":"Açıklama:","insertImageTitle":"Resim Özellikleri","set":"Ayarla","newWindow":"Yeni Pencere","topWindow":"En Üst Pencere","target":"Hedef:","createLinkTitle":"Bağlantı Özellikleri","parentWindow":"Üst Pencere","currentWindow":"Geçerli Pencere","url":"URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.tr");dojo.cldr.nls.number.tr={"group":".","percentSign":"%","exponential":"E","percentFormat":"% #,##0","scientificFormat":"#E0","list":";","infinity":"∞","patternDigit":"#","minusSign":"-","decimal":",","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","decimalFormat":"#,##0.###","currencyFormat":"#,##0.00 ¤","plusSign":"+","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","currencySpacing-beforeCurrency-insertBetween":" "};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.tr");dojo.cldr.nls.currency.tr={"HKD_displayName":"Hong Kong Doları","CHF_displayName":"İsviçre Frangı","JPY_symbol":"¥","CAD_displayName":"Kanada Doları","CNY_displayName":"Çin Yuanı Renminbi","USD_symbol":"$","AUD_displayName":"Avustralya Doları","JPY_displayName":"Japon Yeni","USD_displayName":"ABD Doları","GBP_displayName":"İngiliz Sterlini","EUR_displayName":"Euro","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.tr");dojo.cldr.nls.gregorian.tr={"months-format-narrow":["O","Ş","M","N","M","H","T","A","E","E","K","A"],"field-weekday":"Haftanın Günü","dateFormatItem-yyQQQQ":"QQQQ yy","dateFormatItem-yQQQ":"QQQ y","dateFormatItem-yMEd":"dd.MM.yyyy EEE","dateFormatItem-MMMEd":"dd MMM E","eraNarrow":["MÖ","MS"],"dateFormat-long":"dd MMMM y","months-format-wide":["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],"dateFormatItem-EEEd":"d EEE","dayPeriods-format-wide-pm":"PM","dateFormat-full":"dd MMMM y EEEE","dateFormatItem-Md":"dd/MM","field-era":"Miladi Dönem","dateFormatItem-yM":"M/yyyy","months-standAlone-wide":["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],"timeFormat-short":"HH:mm","quarters-format-wide":["1. çeyrek","2. çeyrek","3. çeyrek","4. çeyrek"],"timeFormat-long":"HH:mm:ss z","field-year":"Yıl","dateFormatItem-yMMM":"MMM y","dateFormatItem-yQ":"Q yyyy","field-hour":"Saat","months-format-abbr":["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara"],"dateFormatItem-yyQ":"Q yy","timeFormat-full":"HH:mm:ss zzzz","field-day-relative+0":"Bugün","field-day-relative+1":"Yarın","field-day-relative+2":"Yarından sonraki gün","dateFormatItem-H":"HH","field-day-relative+3":"Üç gün sonra","months-standAlone-abbr":["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara"],"quarters-format-abbr":["Ç1","Ç2","Ç3","Ç4"],"quarters-standAlone-wide":["1. çeyrek","2. çeyrek","3. çeyrek","4. çeyrek"],"dateFormatItem-M":"L","days-standAlone-wide":["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"],"dateFormatItem-MMMMd":"dd MMMM","dateFormatItem-yyMMM":"MMM yy","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["Ç1","Ç2","Ç3","Ç4"],"eraAbbr":["MÖ","MS"],"field-minute":"Dakika","field-dayperiod":"AM/PM","days-standAlone-abbr":["Paz","Pzt","Sal","Çar","Per","Cum","Cmt"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"Dün","field-day-relative+-2":"Evvelsi gün","field-day-relative+-3":"Üç gün önce","dateFormatItem-MMMd":"dd MMM","dateFormatItem-MEd":"dd/MM E","dateFormatItem-yMMMM":"MMMM y","field-day":"Gün","days-format-wide":["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"],"field-zone":"Saat Dilimi","dateFormatItem-y":"y","months-standAlone-narrow":["O","Ş","M","N","M","H","T","A","E","E","K","A"],"dateFormatItem-yyMM":"MM/yy","dateFormatItem-hm":"h:mm a","days-format-abbr":["Paz","Pzt","Sal","Çar","Per","Cum","Cmt"],"eraNames":["Milattan Önce","Milattan Sonra"],"days-format-narrow":["P","P","S","Ç","P","C","C"],"field-month":"Ay","days-standAlone-narrow":["P","P","S","Ç","P","C","C"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"AM","dateFormatItem-MMMMEd":"dd MMMM E","dateFormat-short":"dd.MM.yyyy","field-second":"Saniye","dateFormatItem-yMMMEd":"dd MMM y EEE","dateFormatItem-Ed":"d E","field-week":"Hafta","dateFormat-medium":"dd MMM y","dateFormatItem-mmss":"mm:ss","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a","dateFormatItem-yyyy":"y","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateTimeFormat-full":"{1} {0}","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}"}; diff --git a/lib/dijit/nls/dijit-all_xx.js b/lib/dijit/nls/dijit-all_xx.js new file mode 100644 index 000000000..7ac51c180 --- /dev/null +++ b/lib/dijit/nls/dijit-all_xx.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_xx");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.xx");dojo.nls.colors.xx={"lightsteelblue":"light steel blue","orangered":"orange red","midnightblue":"midnight blue","cadetblue":"cadet blue","seashell":"seashell","slategrey":"slate gray","coral":"coral","darkturquoise":"dark turquoise","antiquewhite":"antique white","mediumspringgreen":"medium spring green","salmon":"salmon","darkgrey":"dark gray","ivory":"ivory","greenyellow":"green-yellow","mistyrose":"misty rose","lightsalmon":"light salmon","silver":"silver","dimgrey":"dim gray","orange":"orange","white":"white","navajowhite":"navajo white","royalblue":"royal blue","deeppink":"deep pink","lime":"lime","oldlace":"old lace","chartreuse":"chartreuse","darkcyan":"dark cyan","yellow":"yellow","linen":"linen","olive":"olive","gold":"gold","lawngreen":"lawn green","lightyellow":"light yellow","tan":"tan","darkviolet":"dark violet","lightslategrey":"light slate gray","grey":"gray","darkkhaki":"dark khaki","green":"green","deepskyblue":"deep sky blue","aqua":"aqua","sienna":"sienna","mintcream":"mint cream","rosybrown":"rosy brown","mediumslateblue":"medium slate blue","magenta":"magenta","lightseagreen":"light sea green","cyan":"cyan","olivedrab":"olive drab","darkgoldenrod":"dark goldenrod","slateblue":"slate blue","mediumaquamarine":"medium aquamarine","lavender":"lavender","mediumseagreen":"medium sea green","maroon":"maroon","darkslategray":"dark slate gray","mediumturquoise":"medium turquoise","ghostwhite":"ghost white","darkblue":"dark blue","mediumvioletred":"medium violet-red","brown":"brown","lightgray":"light gray","sandybrown":"sandy brown","pink":"pink","firebrick":"fire brick","indigo":"indigo","snow":"snow","darkorchid":"dark orchid","turquoise":"turquoise","chocolate":"chocolate","springgreen":"spring green","moccasin":"moccasin","navy":"navy","lemonchiffon":"lemon chiffon","teal":"teal","floralwhite":"floral white","cornflowerblue":"cornflower blue","paleturquoise":"pale turquoise","purple":"purple","gainsboro":"gainsboro","plum":"plum","red":"red","blue":"blue","forestgreen":"forest green","darkgreen":"dark green","honeydew":"honeydew","darkseagreen":"dark sea green","lightcoral":"light coral","palevioletred":"pale violet-red","mediumpurple":"medium purple","saddlebrown":"saddle brown","darkmagenta":"dark magenta","thistle":"thistle","whitesmoke":"white smoke","wheat":"wheat","violet":"violet","lightskyblue":"light sky blue","goldenrod":"goldenrod","mediumblue":"medium blue","skyblue":"sky blue","crimson":"crimson","darksalmon":"dark salmon","darkred":"dark red","darkslategrey":"dark slate gray","peru":"peru","lightgrey":"light gray","lightgoldenrodyellow":"light goldenrod yellow","blanchedalmond":"blanched almond","aliceblue":"alice blue","bisque":"bisque","slategray":"slate gray","palegoldenrod":"pale goldenrod","darkorange":"dark orange","aquamarine":"aquamarine","lightgreen":"light green","burlywood":"burlywood","dodgerblue":"dodger blue","darkgray":"dark gray","lightcyan":"light cyan","powderblue":"powder blue","blueviolet":"blue-violet","orchid":"orchid","dimgray":"dim gray","beige":"beige","fuchsia":"fuchsia","lavenderblush":"lavender blush","hotpink":"hot pink","steelblue":"steel blue","tomato":"tomato","lightpink":"light pink","limegreen":"lime green","indianred":"indian red","papayawhip":"papaya whip","lightslategray":"light slate gray","gray":"gray","mediumorchid":"medium orchid","cornsilk":"cornsilk","black":"black","seagreen":"sea green","darkslateblue":"dark slate blue","khaki":"khaki","lightblue":"light blue","palegreen":"pale green","azure":"azure","peachpuff":"peach puff","darkolivegreen":"dark olive green","yellowgreen":"yellow green"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.xx");dijit.nls.loading.xx={"loadingState":"Loading...","errorState":"Sorry, an error occurred"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.xx");dijit.nls.common.xx={"buttonOk":"OK","buttonCancel":"Cancel","buttonSave":"Save","itemClose":"Close"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.xx");dijit._editor.nls.commands.xx={"removeFormat":"Remove Format","copy":"Copy","paste":"Paste","selectAll":"Select All","insertOrderedList":"Numbered List","insertTable":"Insert/Edit Table","print":"Print","underline":"Underline","foreColor":"Foreground Color","htmlToggle":"HTML Source","formatBlock":"Paragraph Style","newPage":"New Page","insertHorizontalRule":"Horizontal Rule","delete":"Delete","appleKey":"⌘${0}","insertUnorderedList":"Bullet List","tableProp":"Table Property","insertImage":"Insert Image","superscript":"Superscript","subscript":"Subscript","createLink":"Create Link","undo":"Undo","fullScreen":"Toggle Full Screen","italic":"Italic","fontName":"Font Name","justifyLeft":"Align Left","unlink":"Remove Link","toggleTableBorder":"Toggle Table Border","viewSource":"View HTML Source","ctrlKey":"ctrl+${0}","fontSize":"Font Size","systemShortcut":"The \"${0}\" action is only available in your browser using a keyboard shortcut. Use ${1}.","indent":"Indent","redo":"Redo","strikethrough":"Strikethrough","justifyFull":"Justify","justifyCenter":"Align Center","hiliteColor":"Background Color","deleteTable":"Delete Table","outdent":"Outdent","cut":"Cut","plainFormatBlock":"Paragraph Style","toggleDir":"Toggle Direction","bold":"Bold","tabIndent":"Tab Indent","justifyRight":"Align Right"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.xx");dijit.form.nls.validate.xx={"rangeMessage":"This value is out of range.","invalidMessage":"The value entered is not valid.","missingMessage":"This value is required."};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.xx");dijit.form.nls.ComboBox.xx={"previousMessage":"Previous choices","nextMessage":"More choices"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.xx");dijit._editor.nls.FontChoice.xx={"noFormat":"None","1":"xx-small","2":"x-small","formatBlock":"Format","3":"small","4":"medium","5":"large","6":"x-large","7":"xx-large","fantasy":"fantasy","serif":"serif","p":"Paragraph","pre":"Pre-formatted","sans-serif":"sans-serif","fontName":"Font","h1":"Heading","h2":"Subheading","h3":"Sub-subheading","monospace":"monospace","fontSize":"Size","cursive":"cursive"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.xx");dijit._editor.nls.LinkDialog.xx={"text":"Description:","insertImageTitle":"Image Properties","set":"Set","newWindow":"New Window","topWindow":"Topmost Window","target":"Target:","createLinkTitle":"Link Properties","parentWindow":"Parent Window","currentWindow":"Current Window","url":"URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.xx");dojo.cldr.nls.number.xx={"scientificFormat":"#E0","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencyFormat":"¤ #,##0.00","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","group":",","percentFormat":"#,##0%","decimalFormat":"#,##0.###","decimal":".","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.xx");dojo.cldr.nls.currency.xx={"USD_symbol":"US$","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","JPY_symbol":"JP¥","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.xx");dojo.cldr.nls.gregorian.xx={"months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-narrow":["1","2","3","4"],"field-weekday":"Day of the Week","dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"EEE, y-M-d","dateFormatItem-MMMEd":"E MMM d","eraNarrow":["BCE","CE"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateFormat-long":"y MMMM d","months-format-wide":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateTimeFormat-medium":"{1} {0}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-wide-pm":"PM","dateFormat-full":"EEEE, y MMMM dd","dateFormatItem-Md":"M-d","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","field-era":"Era","dateFormatItem-yM":"y-M","months-standAlone-wide":["1","2","3","4","5","6","7","8","9","10","11","12"],"timeFormat-short":"HH:mm","quarters-format-wide":["Q1","Q2","Q3","Q4"],"timeFormat-long":"HH:mm:ss z","field-year":"Year","dateFormatItem-yMMM":"y MMM","dateFormatItem-yQ":"y Q","dateTimeFormats-appendItem-Era":"{0} {1}","field-hour":"Hour","months-format-abbr":["1","2","3","4","5","6","7","8","9","10","11","12"],"timeFormat-full":"HH:mm:ss zzzz","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","field-day-relative+0":"Today","field-day-relative+1":"Tomorrow","dateFormatItem-H":"HH","months-standAlone-abbr":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-format-abbr":["Q1","Q2","Q3","Q4"],"quarters-standAlone-wide":["Q1","Q2","Q3","Q4"],"dateFormatItem-M":"L","days-standAlone-wide":["1","2","3","4","5","6","7"],"timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"eraAbbr":["BCE","CE"],"field-minute":"Minute","field-dayperiod":"Dayperiod","days-standAlone-abbr":["1","2","3","4","5","6","7"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"field-day-relative+-1":"Yesterday","dateFormatItem-h":"h a","dateTimeFormat-long":"{1} {0}","dayPeriods-format-narrow-am":"AM","dateFormatItem-MMMd":"MMM d","dateFormatItem-MEd":"E, M-d","dateTimeFormat-full":"{1} {0}","field-day":"Day","days-format-wide":["1","2","3","4","5","6","7"],"field-zone":"Zone","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-y":"y","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","days-format-abbr":["1","2","3","4","5","6","7"],"eraNames":["BCE","CE"],"days-format-narrow":["1","2","3","4","5","6","7"],"days-standAlone-narrow":["1","2","3","4","5","6","7"],"dateFormatItem-MMM":"LLL","field-month":"Month","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dayPeriods-format-wide-am":"AM","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateFormat-short":"yyyy-MM-dd","field-second":"Second","dateFormatItem-yMMMEd":"EEE, y MMM d","dateTimeFormats-appendItem-Timezone":"{0} {1}","field-week":"Week","dateFormat-medium":"y MMM d","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a"}; diff --git a/lib/dijit/nls/dijit-all_zh-cn.js b/lib/dijit/nls/dijit-all_zh-cn.js new file mode 100644 index 000000000..1949751ee --- /dev/null +++ b/lib/dijit/nls/dijit-all_zh-cn.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_zh-cn");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.zh_cn");dojo.nls.colors.zh_cn={"lightsteelblue":"浅钢蓝色","orangered":"橙红色","midnightblue":"深蓝色","cadetblue":"灰蓝色","seashell":"海贝色","slategrey":"灰石色","coral":"珊瑚色","darkturquoise":"深粉蓝","antiquewhite":"古董白","mediumspringgreen":"间春绿色","salmon":"橙红","darkgrey":"深灰色","ivory":"象牙色","greenyellow":"绿黄色","mistyrose":"浅玫瑰色","lightsalmon":"淡橙色","silver":"银白色","dimgrey":"暗灰色","orange":"橙色","white":"白色","navajowhite":"纳瓦白","royalblue":"品蓝","deeppink":"深粉红色","lime":"淡黄绿色","oldlace":"老白色","chartreuse":"黄绿色","darkcyan":"深青绿","yellow":"黄色","linen":"亚麻色","olive":"橄榄绿","gold":"金黄色","lawngreen":"草绿色","lightyellow":"浅黄色","tan":"棕褐色","darkviolet":"深紫色","lightslategrey":"浅青灰","grey":"灰色","darkkhaki":"深卡其色","green":"绿色","deepskyblue":"深天蓝色","aqua":"浅绿色","sienna":"赭色","mintcream":"薄荷色","rosybrown":"褐玫瑰红","mediumslateblue":"间暗蓝色","magenta":"洋红色","lightseagreen":"浅海藻绿","cyan":"青蓝色","olivedrab":"草绿色","darkgoldenrod":"深金黄","slateblue":"石蓝色","mediumaquamarine":"间绿色","lavender":"淡紫色","mediumseagreen":"间海蓝色","maroon":"栗色","darkslategray":"深青灰","mediumturquoise":"间绿宝石色","ghostwhite":"苍白","darkblue":"深蓝","mediumvioletred":"间紫罗兰色","brown":"棕色","lightgray":"浅灰色","sandybrown":"沙褐色","pink":"粉红色","firebrick":"砖红","indigo":"靛青","snow":"雪白色","darkorchid":"深紫色","turquoise":"绿宝石色","chocolate":"巧克力色","springgreen":"春绿色","moccasin":"鹿皮色","navy":"藏青色","lemonchiffon":"柠檬绸色","teal":"水鸭色","floralwhite":"花白色","cornflowerblue":"浅蓝色","paleturquoise":"苍绿色","purple":"紫色","gainsboro":"淡灰色","plum":"杨李色","red":"红色","blue":"蓝色","forestgreen":"森林绿","darkgreen":"深绿色","honeydew":"蜜汁色","darkseagreen":"深海藻绿","lightcoral":"浅珊瑚色","palevioletred":"苍紫罗兰色","mediumpurple":"间紫色","saddlebrown":"重褐色","darkmagenta":"深洋红色","thistle":"蓟色","whitesmoke":"烟白色","wheat":"浅黄色","violet":"紫色","lightskyblue":"浅天蓝色","goldenrod":"金麒麟色","mediumblue":"间蓝色","skyblue":"天蓝色","crimson":"绯红色","darksalmon":"深橙红","darkred":"深红色","darkslategrey":"深青灰","peru":"秘鲁色","lightgrey":"浅灰色","lightgoldenrodyellow":"浅金黄色","blanchedalmond":"白杏色","aliceblue":"爱丽丝蓝","bisque":"桔黄色","slategray":"灰石色","palegoldenrod":"淡金黄色","darkorange":"深橙色","aquamarine":"碧绿色","lightgreen":"浅绿色","burlywood":"实木色","dodgerblue":"闪蓝色","darkgray":"深灰色","lightcyan":"浅青色","powderblue":"铁蓝","blueviolet":"蓝紫色","orchid":"紫色","dimgray":"暗灰色","beige":"米色","fuchsia":"紫红色","lavenderblush":"淡紫红","hotpink":"深粉红","steelblue":"钢蓝色","tomato":"西红柿色","lightpink":"浅粉红色","limegreen":"橙绿色","indianred":"印度红","papayawhip":"木瓜色","lightslategray":"浅青灰","gray":"灰色","mediumorchid":"间紫色","cornsilk":"米绸色","black":"黑色","seagreen":"海绿色","darkslateblue":"深青蓝","khaki":"卡其色","lightblue":"淡蓝色","palegreen":"淡绿色","azure":"天蓝色","peachpuff":"桃色","darkolivegreen":"深橄榄绿","yellowgreen":"黄绿色"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.zh_cn");dijit.nls.loading.zh_cn={"loadingState":"正在加载...","errorState":"对不起,发生了错误"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.zh_cn");dijit.nls.common.zh_cn={"buttonOk":"确定","buttonCancel":"取消","buttonSave":"保存","itemClose":"关闭"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.zh_cn");dijit._editor.nls.commands.zh_cn={"removeFormat":"除去格式","copy":"复制","paste":"粘贴","selectAll":"全选","insertOrderedList":"编号列表","insertTable":"插入/编辑表","print":"打印","underline":"下划线","foreColor":"前景色","htmlToggle":"HTML 源代码","formatBlock":"段落样式","newPage":"新建页面","insertHorizontalRule":"水平线","delete":"删除","insertUnorderedList":"符号列表","tableProp":"表属性","insertImage":"插入图像","superscript":"上标","subscript":"下标","createLink":"创建链接","undo":"撤销","fullScreen":"切换全屏幕","italic":"斜体","fontName":"字体名称","justifyLeft":"左对齐","unlink":"除去链接","toggleTableBorder":"切换表边框","viewSource":"查看 HTML 源代码","fontSize":"字体大小","systemShortcut":"只能在浏览器中通过键盘快捷方式执行“${0}”操作。使用 ${1}。","indent":"增加缩进","redo":"重做","strikethrough":"删除线","justifyFull":"对齐","justifyCenter":"居中","hiliteColor":"背景色","deleteTable":"删除表","outdent":"减少缩进","cut":"剪切","plainFormatBlock":"段落样式","toggleDir":"固定方向","bold":"粗体","tabIndent":"制表符缩进","justifyRight":"右对齐","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.zh_cn");dijit.form.nls.validate.zh_cn={"rangeMessage":"此值超出范围。","invalidMessage":"输入的值无效。","missingMessage":"此值是必需值。"};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.zh_cn");dijit.form.nls.ComboBox.zh_cn={"previousMessage":"先前选项","nextMessage":"更多选项"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.zh_cn");dijit._editor.nls.FontChoice.zh_cn={"1":"XXS 号","2":"XS 号","formatBlock":"格式","3":"S 号","4":"M 号","5":"L 号","6":"XL 号","7":"XXL 号","fantasy":"虚线","serif":"有衬线","p":"段落","pre":"预设有格式的","sans-serif":"无衬线","fontName":"字体","h1":"标题","h2":"子标题","h3":"二级子标题","monospace":"等宽字体","fontSize":"大小","cursive":"草书","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.zh_cn");dijit._editor.nls.LinkDialog.zh_cn={"text":"描述:","insertImageTitle":"图像属性","set":"设置","newWindow":"新窗口","topWindow":"最顶部窗口","target":"目标:","createLinkTitle":"链接属性","parentWindow":"父窗口","currentWindow":"当前窗口","url":"URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.zh_cn");dojo.cldr.nls.number.zh_cn={"decimalFormat":"#,##0.###","group":",","scientificFormat":"#E0","percentFormat":"#,##0%","currencyFormat":"¤#,##0.00","decimal":".","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.zh_cn");dojo.cldr.nls.currency.zh_cn={"HKD_displayName":"港元","CHF_displayName":"瑞士法郎","CAD_displayName":"加拿大元","CNY_displayName":"人民币","AUD_displayName":"澳大利亚元","JPY_displayName":"日元","USD_displayName":"美元","CNY_symbol":"¥","GBP_displayName":"英镑","EUR_displayName":"欧元","USD_symbol":"US$","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","JPY_symbol":"JP¥","AUD_symbol":"AU$","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.zh_cn");dojo.cldr.nls.gregorian.zh_cn={"months-format-narrow":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"field-weekday":"周天","dateFormatItem-yQQQ":"y年QQQ","dateFormatItem-yMEd":"y年M月d日,E","dateFormatItem-MMMEd":"MMMd日E","eraNarrow":["公元前","公元"],"dayPeriods-format-wide-earlyMorning":"清晨","dayPeriods-format-wide-morning":"上午","dateFormat-long":"y年M月d日","months-format-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"下午","dateFormat-full":"y年M月d日EEEE","dateFormatItem-Md":"M-d","field-era":"时期","dateFormatItem-yM":"yyyy-M","months-standAlone-wide":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"timeFormat-short":"ah:mm","quarters-format-wide":["第1季度","第2季度","第3季度","第4季度"],"timeFormat-long":"zah时mm分ss秒","field-year":"年","dateFormatItem-yMMM":"y年MMM","dateFormatItem-yQ":"y年QQQ","dateFormatItem-yyyyMMMM":"y年MMMM","field-hour":"小时","dateFormatItem-MMdd":"MM-dd","months-format-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-yyQ":"yy年第Q季度","timeFormat-full":"zzzzah时mm分ss秒","field-day-relative+0":"今天","field-day-relative+1":"明天","field-day-relative+2":"后天","dateFormatItem-H":"H时","months-standAlone-abbr":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"quarters-format-abbr":["1季","2季","3季","4季"],"quarters-standAlone-wide":["第1季度","第2季度","第3季度","第4季度"],"dateFormatItem-M":"L","days-standAlone-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"dateFormatItem-yyMMM":"yy年MMM","timeFormat-medium":"ah:mm:ss","dateFormatItem-Hm":"H:mm","quarters-standAlone-abbr":["1季","2季","3季","4季"],"eraAbbr":["公元前","公元"],"field-minute":"分钟","field-dayperiod":"上午/下午","days-standAlone-abbr":["周日","周一","周二","周三","周四","周五","周六"],"dayPeriods-format-wide-night":"晚上","dateFormatItem-d":"d日","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"昨天","dateFormatItem-h":"ah","dateTimeFormat-long":"{1}{0}","field-day-relative+-2":"前天","dateFormatItem-MMMd":"MMMd日","dayPeriods-format-wide-midDay":"中午","dateFormatItem-MEd":"M-dE","dateTimeFormat-full":"{1}{0}","field-day":"日","days-format-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"field-zone":"区域","dateFormatItem-y":"y年","months-standAlone-narrow":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-yyMM":"yy-MM","dateFormatItem-hm":"ah:mm","days-format-abbr":["周日","周一","周二","周三","周四","周五","周六"],"dateFormatItem-yMMMd":"y年MMMd日","eraNames":["公元前","公元"],"days-format-narrow":["日","一","二","三","四","五","六"],"field-month":"月","days-standAlone-narrow":["日","一","二","三","四","五","六"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"上午","dateFormatItem-MMMMdd":"MMMMdd日","dayPeriods-format-wide-weeHours":"凌晨","dateFormat-short":"yy-M-d","dayPeriods-format-wide-afternoon":"下午","field-second":"秒钟","dateFormatItem-yMMMEd":"y年MMMd日EEE","dateFormatItem-Ed":"d日E","field-week":"周","dateFormat-medium":"yyyy-M-d","dateFormatItem-yyyyM":"y年M月","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-hms":"ah:mm:ss","dateFormatItem-yyyy":"y年","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-format-narrow":["1","2","3","4"],"dayPeriods-format-narrow-am":"AM","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM"}; diff --git a/lib/dijit/nls/dijit-all_zh-tw.js b/lib/dijit/nls/dijit-all_zh-tw.js new file mode 100644 index 000000000..9f6f5f46c --- /dev/null +++ b/lib/dijit/nls/dijit-all_zh-tw.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_zh-tw");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.zh_tw");dojo.nls.colors.zh_tw={"lightsteelblue":"淡鐵藍色","orangered":"橙紅色","midnightblue":"午夜藍","cadetblue":"軍服藍","seashell":"海貝色","slategrey":"岩灰色","coral":"珊瑚紅","darkturquoise":"暗松石綠","antiquewhite":"米白色","mediumspringgreen":"中春綠色","salmon":"鮭紅色","darkgrey":"暗灰色","ivory":"象牙色","greenyellow":"綠黃色","mistyrose":"霧玫瑰色","lightsalmon":"淡鮭紅","silver":"銀色","dimgrey":"昏灰色","orange":"橙色","white":"白色","navajowhite":"印地安黃色","royalblue":"品藍色","deeppink":"深粉紅色","lime":"檸檬色","oldlace":"舊蕾絲色","chartreuse":"淡黃綠色","darkcyan":"暗青色","yellow":"黃色","linen":"亞麻色","olive":"橄欖色","gold":"金色","lawngreen":"草綠色","lightyellow":"淡黃色","tan":"皮革色","darkviolet":"暗紫羅蘭色","lightslategrey":"淡岩灰色","grey":"灰色","darkkhaki":"暗卡其色","green":"綠色","deepskyblue":"深天藍色","aqua":"水色","sienna":"黃土赭色","mintcream":"薄荷乳白色","rosybrown":"玫瑰褐","mediumslateblue":"中岩藍色","magenta":"紫紅色","lightseagreen":"淡海綠色","cyan":"青色","olivedrab":"橄欖綠","darkgoldenrod":"暗金菊色","slateblue":"岩藍色","mediumaquamarine":"中碧綠色","lavender":"薰衣草紫","mediumseagreen":"中海綠色","maroon":"栗色","darkslategray":"暗岩灰色","mediumturquoise":"中松石綠","ghostwhite":"幽靈色","darkblue":"暗藍色","mediumvioletred":"中紫羅蘭紅","brown":"褐色","lightgray":"淡灰色","sandybrown":"沙褐色","pink":"粉紅色","firebrick":"紅磚色","indigo":"靛藍色","snow":"雪白色","darkorchid":"暗蘭花色","turquoise":"松石綠","chocolate":"巧克力色","springgreen":"春綠色","moccasin":"鹿皮黃色","navy":"海軍藍","lemonchiffon":"奶油黃","teal":"深藍綠色","floralwhite":"花卉白","cornflowerblue":"矢車菊藍","paleturquoise":"灰松石綠","purple":"紫色","gainsboro":"石板灰","plum":"李紫色","red":"紅色","blue":"藍色","forestgreen":"森綠色","darkgreen":"暗綠色","honeydew":"密瓜色","darkseagreen":"暗海綠色","lightcoral":"淡珊瑚紅","palevioletred":"灰紫羅蘭紅","mediumpurple":"中紫色","saddlebrown":"鞍褐色","darkmagenta":"暗紫紅色","thistle":"薊色","whitesmoke":"白煙色","wheat":"小麥色","violet":"紫羅蘭色","lightskyblue":"淡天藍色","goldenrod":"金菊色","mediumblue":"中藍色","skyblue":"天藍色","crimson":"暗深紅色","darksalmon":"暗鮭紅","darkred":"暗紅色","darkslategrey":"暗岩灰色","peru":"祕魯色","lightgrey":"淡灰色","lightgoldenrodyellow":"淡金菊黃","blanchedalmond":"杏仁白","aliceblue":"愛麗絲藍","bisque":"橘黃色","slategray":"岩灰色","palegoldenrod":"灰金菊色","darkorange":"暗橙色","aquamarine":"碧綠色","lightgreen":"淡綠色","burlywood":"實木色","dodgerblue":"道奇藍","darkgray":"暗灰色","lightcyan":"淡青色","powderblue":"粉藍色","blueviolet":"藍紫色","orchid":"蘭花色","dimgray":"昏灰色","beige":"灰棕色","fuchsia":"海棠紅","lavenderblush":"薰衣草紫紅","hotpink":"暖粉紅色","steelblue":"鐵藍色","tomato":"蕃茄紅","lightpink":"淡粉紅色","limegreen":"檸檬綠","indianred":"印度紅","papayawhip":"番木瓜色","lightslategray":"淡岩灰色","gray":"灰色","mediumorchid":"中蘭紫色","cornsilk":"玉米黃","black":"黑色","seagreen":"海綠色","darkslateblue":"暗岩藍色","khaki":"卡其色","lightblue":"淡藍色","palegreen":"灰綠色","azure":"天藍色","peachpuff":"粉撲桃色","darkolivegreen":"暗橄欖綠","yellowgreen":"黃綠色"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.zh_tw");dijit.nls.loading.zh_tw={"loadingState":"載入中...","errorState":"抱歉,發生錯誤"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.zh_tw");dijit.nls.common.zh_tw={"buttonOk":"確定","buttonCancel":"取消","buttonSave":"儲存","itemClose":"關閉"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.zh_tw");dijit._editor.nls.commands.zh_tw={"removeFormat":"移除格式","copy":"複製","paste":"貼上","selectAll":"全選","insertOrderedList":"編號清單","insertTable":"插入/編輯表格","print":"列印","underline":"底線","foreColor":"前景顏色","htmlToggle":"HTML 原始檔","formatBlock":"段落樣式","newPage":"新建頁面","insertHorizontalRule":"水平尺規","delete":"刪除","insertUnorderedList":"項目符號清單","tableProp":"表格內容","insertImage":"插入影像","superscript":"上標","subscript":"下標","createLink":"建立鏈結","undo":"復原","fullScreen":"切換全螢幕","italic":"斜體","fontName":"字型名稱","justifyLeft":"靠左對齊","unlink":"移除鏈結","toggleTableBorder":"切換表格邊框","viewSource":"檢視 HTML 原始檔","fontSize":"字型大小","systemShortcut":"\"${0}\" 動作只能在瀏覽器中透過使用鍵盤快速鍵來使用。請使用 ${1}。","indent":"縮排","redo":"重做","strikethrough":"加刪除線","justifyFull":"對齊","justifyCenter":"置中對齊","hiliteColor":"背景顏色","deleteTable":"刪除表格","outdent":"凸排","cut":"剪下","plainFormatBlock":"段落樣式","toggleDir":"切換方向","bold":"粗體","tabIndent":"定位點縮排","justifyRight":"靠右對齊","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.zh_tw");dijit.form.nls.validate.zh_tw={"rangeMessage":"此值超出範圍。","invalidMessage":"輸入的值無效。","missingMessage":"必須提供此值。"};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.zh_tw");dijit.form.nls.ComboBox.zh_tw={"previousMessage":"前一個選擇項","nextMessage":"其他選擇項"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.zh_tw");dijit._editor.nls.FontChoice.zh_tw={"1":"最小","2":"較小","formatBlock":"格式","3":"小","4":"中","5":"大","6":"較大","7":"最大","fantasy":"Fantasy","serif":"新細明體","p":"段落","pre":"預先格式化","sans-serif":"新細明體","fontName":"字型","h1":"標題","h2":"子標題","h3":"次子標題","monospace":"等寬","fontSize":"大小","cursive":"Cursive","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.zh_tw");dijit._editor.nls.LinkDialog.zh_tw={"text":"說明:","insertImageTitle":"影像內容","set":"設定","newWindow":"新視窗","topWindow":"最上面的視窗","target":"目標:","createLinkTitle":"鏈結內容","parentWindow":"上層視窗","currentWindow":"現行視窗","url":"URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.zh_tw");dojo.cldr.nls.number.zh_tw={"decimalFormat":"#,##0.###","group":",","scientificFormat":"#E0","percentFormat":"#,##0%","currencyFormat":"¤#,##0.00","decimal":".","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.zh_tw");dojo.cldr.nls.currency.zh_tw={"BRE_displayName":"巴西克魯賽羅 (1990-1993)","DEM_displayName":"德國馬克","KGS_symbol":"som","CUP_displayName":"古巴披索","HUF_symbol":"Ft","BDT_symbol":"Tk","LSL_symbol":"M","VEF_symbol":"BsF","MDL_displayName":"摩杜雲列伊","DOP_displayName":"多明尼加披索","MTL_symbol":"Lm","NGN_displayName":"奈及利亞奈拉","KZT_displayName":"卡扎克斯坦坦吉","BGL_symbol":"lev","LTT_displayName":"立陶宛特羅","LAK_displayName":"寮國基普","LKR_displayName":"斯里蘭卡盧布","AOR_displayName":"安哥拉新寬扎 Reajustado (1995-1999)","XEU_displayName":"歐洲貨幣單位 XEU","SYP_symbol":"LS","USS_displayName":"美元 (同一天)","MNT_displayName":"蒙古圖格里克","AMD_symbol":"dram","MOP_displayName":"澳門元","TJR_displayName":"塔吉克斯坦盧布","LUC_displayName":"盧森堡可兌換法郎","LUL_displayName":"盧森堡金融法郎","MRO_symbol":"UM","AON_displayName":"安哥拉新寬扎 (1990-2000)","BEF_displayName":"比利時法郎","IEP_displayName":"愛爾蘭鎊","SBD_displayName":"索羅門群島元","GRD_displayName":"希臘德拉克馬","AZM_displayName":"阿塞拜彊馬特納","MTP_displayName":"馬爾他鎊","UGX_symbol":"U Sh","ARS_symbol":"Arg$","LVR_displayName":"拉脫維亞盧布","GNF_displayName":"幾內亞法郎","GIP_displayName":"直布羅陀鎊","SRG_displayName":"蘇里南盾","BAD_displayName":"波士尼亞-黑塞哥維那第納爾","FJD_displayName":"斐濟元","BAM_displayName":"波士尼亞-黑塞哥維那可轉換馬克","XBB_displayName":"歐洲貨幣單位 XBB","CDF_displayName":"剛果法郎","HRD_displayName":"克羅地亞第納爾","EQE_displayName":"埃奎維勒","BZD_displayName":"伯利茲元","MLF_displayName":"馬里法郎","VEB_symbol":"Be","EGP_displayName":"埃及鎊","MVR_displayName":"馬爾地夫海島盧非亞","KWD_symbol":"KD","TRL_symbol":"TL","ALL_symbol":"lek","SDP_displayName":"蘇丹鎊","NPR_displayName":"尼泊爾盧布","PHP_displayName":"菲律賓披索","DJF_symbol":"DF","WST_displayName":"西薩摩亞塔拉","JPY_displayName":"日圓","TMM_displayName":"土庫曼馬納特","STD_symbol":"Db","BGN_displayName":"保加利亞新列弗","KYD_displayName":"開曼群島美元","VUV_displayName":"萬那杜萬杜","IRR_displayName":"伊朗里亞爾","DJF_displayName":"吉布地法郎","BTN_symbol":"Nu","XDR_displayName":"特殊提款權","ECS_displayName":"厄瓜多蘇克雷","LSM_displayName":"馬洛蒂","MNT_symbol":"Tug","NLG_displayName":"荷蘭盾","MWK_displayName":"馬拉維克瓦查","IRR_symbol":"RI","OMR_symbol":"RO","JMD_symbol":"J$","PES_displayName":"秘魯太陽幣","SRG_symbol":"Sf","LYD_displayName":"利比亞第納爾","BRR_displayName":"巴西克魯賽羅","ETB_symbol":"Br","KMF_symbol":"CF","DKK_symbol":"DKr","XXX_displayName":"XXX","IDR_displayName":"印尼 - 盧布","DZD_symbol":"DA","TZS_symbol":"T Sh","SGD_symbol":"SGD","KGS_displayName":"吉爾吉斯索馬","BRN_displayName":"巴西克如爾達農瓦","AFN_symbol":"Af","ISK_displayName":"冰島克朗","LUF_displayName":"盧森堡法郎","MXN_symbol":"MEX$","GYD_symbol":"G$","TOP_symbol":"T$","SVC_displayName":"薩爾瓦多科郎","ZMK_displayName":"尚比亞克瓦查","TOP_displayName":"東加潘加","ITL_displayName":"義大利里拉","USN_displayName":"美元 (第二天)","KWD_displayName":"科威特第納爾","GEL_symbol":"lari","KMF_displayName":"科摩羅法郎","COP_symbol":"Col$","MYR_displayName":"馬來西亞 - 林吉特","XFU_displayName":"法國 UIC 法郎","GMD_displayName":"甘比亞達拉西","LVL_displayName":"拉脫維亞拉特銀幣","AUD_displayName":"澳幣","XPF_displayName":"CFP 法郎","LBP_displayName":"黎巴嫩鎊","SKK_symbol":"Sk","BYB_displayName":"白俄羅斯新盧布 (1994-1999)","MKD_displayName":"馬其頓第納爾","GWP_displayName":"幾內亞披索披索","CNY_displayName":"人民幣","HNL_symbol":"L","BOB_symbol":"Bs","JOD_displayName":"約旦第納爾","OMR_displayName":"阿曼里奧","BOV_displayName":"玻利維亞幕多","XPT_displayName":"白金","AUD_symbol":"AU$","NOK_displayName":"挪威克羅納","SCR_displayName":"塞舌爾群島盧布","XBA_displayName":"歐洲綜合單位","CSK_displayName":"捷克斯洛伐克硬克朗","PLZ_displayName":"波蘭茲羅提 (1950-1995)","UAK_displayName":"烏克蘭卡本瓦那茲","MGF_displayName":"馬達加斯加法郎","GNS_displayName":"幾內亞西里","YUN_displayName":"南斯拉夫 可轉換第納爾","UYU_symbol":"Ur$","GYD_displayName":"圭亞那元","QAR_displayName":"卡達爾里亞爾","BZD_symbol":"BZ$","JOD_symbol":"JD","ALL_displayName":"阿爾巴尼亞列克","BBD_displayName":"巴貝多元","RON_displayName":"羅馬尼亞列伊","XCD_symbol":"EC$","AMD_displayName":"亞美尼亞德拉姆","CYP_displayName":"賽浦路斯鎊","GBP_symbol":"£","SEK_displayName":"瑞典克羅納","MZN_symbol":"MTn","MMK_displayName":"緬甸元","ZAR_displayName":"南非蘭特","ECV_displayName":"厄瓜多爾由里達瓦康斯坦 (UVC)","LYD_symbol":"LD","VUV_symbol":"VT","AWG_displayName":"阿魯巴盾","CVE_symbol":"CVEsc","STD_displayName":"聖多美島和普林西比島多布拉","CAD_displayName":"加幣","ADP_displayName":"安道爾陪士特","MRO_displayName":"茅利塔尼亞烏吉亞","LSL_displayName":"賴索托羅蒂","TND_displayName":"突尼西亞第納爾","USD_symbol":"$","BMD_symbol":"Ber$","BAM_symbol":"KM","BRC_displayName":"巴西克魯賽羅 (1986-1989)","BMD_displayName":"百慕達幣","BRL_displayName":"巴西里拉","JMD_displayName":"牙買加元","SOS_displayName":"索馬利亞先令","SAR_displayName":"沙烏地里雅","PEI_displayName":"祕魯因蒂","ESP_displayName":"西班牙陪士特","HKD_displayName":"港幣","ESP_symbol":"₧","BWP_displayName":"波札那 - 普拉","TTD_displayName":"千里達及托巴哥元","BSD_displayName":"巴哈馬元","BIF_displayName":"蒲隆地法郎","FRF_displayName":"法國法郎","DKK_displayName":"丹麥克羅納","AED_displayName":"阿拉伯聯合大公國迪爾汗","GHS_symbol":"GH¢","AOK_displayName":"安哥拉寬扎(1977-1990)","ATS_displayName":"奧地利先令","PEN_displayName":"秘魯新太陽幣","CRC_displayName":"哥斯大黎加科郎","PAB_displayName":"巴拿馬巴波亞","CHE_displayName":"WIR 歐元","GQE_displayName":"赤道幾內亞埃奎勒","DZD_displayName":"阿爾及利亞第納爾","EEK_displayName":"愛沙尼亞克朗","YDD_displayName":"葉門第納爾","GHC_displayName":"迦納仙蔕","YER_symbol":"YRl","PLN_symbol":"Zl","NPR_symbol":"Nrs","MXP_displayName":"墨西哥銀披索 (1861-1992)","XAG_displayName":"XAG","XFO_displayName":"法國金法郎","GWE_displayName":"葡屬幾內亞埃斯庫多","BOB_displayName":"玻利維亞貨幣單位","CAD_symbol":"CA$","ZWD_displayName":"辛巴威元","SRD_displayName":"蘇利南元","ZRN_displayName":"薩伊新扎伊爾","XAU_displayName":"黃金","GTQ_symbol":"Q","KRW_symbol":"KRW","BOP_displayName":"玻利維亞披索","LBP_symbol":"LL","XBD_displayName":"歐洲會計單位(XBD)","TZS_displayName":"坦尚尼亞先令","XPF_symbol":"CFPF","TTD_symbol":"TT$","LRD_displayName":"賴比瑞亞元","KRW_displayName":"韓國圜","SHP_displayName":"聖赫勒拿鎊","NAD_symbol":"N$","MZE_displayName":"莫桑比克埃斯庫多","SDD_displayName":"蘇丹第納爾","HRK_displayName":"克羅地亞庫納","FKP_displayName":"福克蘭群島鎊","COP_displayName":"哥倫比亞披索","YUD_displayName":"南斯拉夫第納爾硬幣","YUM_displayName":"南斯拉夫挪威亞第納爾","BYR_symbol":"Rbl","THB_displayName":"泰銖","MGA_displayName":"馬達加斯加艾瑞爾","TWD_displayName":"新臺幣","UGS_displayName":"烏干達先令 (1966-1987)","SBD_symbol":"SI$","ZAL_displayName":"南非 - 蘭特 (金融)","GEL_displayName":"喬治拉里","ILP_displayName":"以色列鎊","MKD_symbol":"MDen","KES_displayName":"肯尼亞先令","CZK_displayName":"捷克克朗","UGX_displayName":"烏干達先令","KZT_symbol":"T","BGL_displayName":"保加利亞硬列弗","ARP_displayName":"阿根廷披索(1983-1985)","BBD_symbol":"BDS$","MYR_symbol":"RM","RUR_displayName":"俄羅斯盧布 (1991-1998)","ERN_displayName":"厄立特里亞納克法","BEF_symbol":"BF","CLF_displayName":"卡林油達佛曼跎","BRB_displayName":"巴西克魯薩多農瓦(1967-1986)","IDR_symbol":"Rp","IEP_symbol":"IR£","BHD_displayName":"巴林第納爾","SYP_displayName":"敘利亞鎊","BIF_symbol":"Fbu","SZL_displayName":"史瓦濟蘭里朗吉尼","INR_displayName":"印度盧布","PTE_displayName":"葡萄牙埃斯庫多","KPW_displayName":"北朝鮮幣","XOF_displayName":"西非法郎 BCEAO","DOP_symbol":"RD$","MXN_displayName":"墨西哥 - 披索","RWF_displayName":"盧安達法郎","ETB_displayName":"衣索比亞比爾","LTL_displayName":"立陶宛里塔","SZL_symbol":"E","QAR_symbol":"QR","SOS_symbol":"Sh.","BND_displayName":"汶萊元","SUR_displayName":"蘇聯盧布","AOA_displayName":"安哥拉寬扎","FJD_symbol":"F$","CVE_displayName":"維德角埃斯庫多","XTS_displayName":"XTS","CLP_displayName":"智利披索","HUF_displayName":"匈牙利 - 福林","LKR_symbol":"SL Re","SCR_symbol":"SR","TJS_displayName":"塔吉克索莫尼","MWK_symbol":"MK","GBP_displayName":"英鎊","TPE_displayName":"帝汶埃斯庫多","GNF_symbol":"GF","SGD_displayName":"新加坡幣","SLL_displayName":"獅子山利昂","MZM_symbol":"Mt","PHP_symbol":"Php","CYP_symbol":"£C","XAF_displayName":"西非法郎 BEAC","MTL_displayName":"馬爾他里拉","KHR_displayName":"柬埔寨瑞爾","ZRZ_displayName":"扎伊爾扎伊爾","KES_symbol":"K Sh","PKR_symbol":"Pra","IQD_symbol":"ID","BEC_displayName":"比利時法郎 (可轉換)","BEL_displayName":"比利時法郎 (金融)","AZN_displayName":"亞塞拜然蒙納特","FIM_displayName":"芬蘭馬克","PKR_displayName":"巴基斯坦盧布","UYP_displayName":"烏拉圭披索 (1975-1993)","ANG_symbol":"NA f.","CHW_displayName":"WIR 法郎","PLN_displayName":"波蘭茲羅提","RON_symbol":"0≤lei|1≤leu|1","BTN_displayName":"不丹那特倫","UAH_displayName":"烏克蘭格里夫那","YER_displayName":"也門里亞爾","UYU_displayName":"烏拉圭披索","CRC_symbol":"C","PGK_displayName":"巴布亞紐幾內亞基那","XBC_displayName":"歐洲會計單位(XBC)","EUR_displayName":"歐元","MUR_displayName":"模里西斯盧布","BYR_displayName":"白俄羅斯盧布","SEK_symbol":"SKr","BHD_symbol":"BD","IQD_displayName":"伊拉克第納爾","VEB_displayName":"委內瑞拉博利瓦","CLP_symbol":"Ch$","MZM_displayName":"莫三比克梅蒂卡爾","NZD_symbol":"$NZ","CHF_symbol":"Fr.","SIT_displayName":"斯洛維尼亞托勒","NOK_symbol":"NKr","XCD_displayName":"格瑞那達元","RUB_displayName":"俄羅斯盧布","BUK_displayName":"緬甸元 BUK","ILS_displayName":"以色列新謝克爾","KHR_symbol":"CR","NAD_displayName":"納米比亞元","HNL_displayName":"洪都拉斯倫皮拉","GTQ_displayName":"瓜地馬拉格查爾","EUR_symbol":"€","NZD_displayName":"紐西蘭幣","ARA_displayName":"阿根廷奧斯特納爾","ARS_displayName":"阿根廷披索","ANG_displayName":"荷屬安地列斯盾","MOP_symbol":"MOP","ZWD_symbol":"Z$","ITL_symbol":"₤","ZAR_symbol":"R","CHF_displayName":"瑞士法郎","USD_displayName":"美元","CNY_symbol":"¥","HKD_symbol":"HK$","JPY_symbol":"JP¥"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.zh_tw");dojo.cldr.nls.gregorian.zh_tw={"dateFormatItem-yM":"yyyy/M","field-minute":"分鐘","eraNames":["西元前","西元"],"field-weekday":"週天","dateFormatItem-MMdd":"MM/dd","field-day-relative+-3":"大前天","field-relative-day":"大後天","months-standAlone-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"field-era":"年代","field-hour":"小時","quarters-standAlone-abbr":["第1季","第2季","第3季","第4季"],"timeFormat-full":"zzzzah時mm分ss秒","months-standAlone-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-Ed":"d日(E)","dateFormatItem-yMMM":"y年M月","eraAbbr":["西元前","西元"],"field-day-relative+2":"後天","field-day-relative+3":"大後天","timeFormat-medium":"ah:mm:ss","field-zone":"區域","dateFormatItem-yyMM":"yy-MM","dateFormat-medium":"yyyy/M/d","quarters-standAlone-wide":["第1季","第2季","第3季","第4季"],"dateFormatItem-yMMMM":"y年M月","dateFormatItem-HHmmss":"H:mm:ss","months-standAlone-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"field-week":"週","dateFormatItem-HHmm":"H:mm","timeFormat-long":"zah時mm分ss秒","dateFormatItem-H":"H時","quarters-format-abbr":["第1季","第2季","第3季","第4季"],"days-format-abbr":["週日","週一","週二","週三","週四","週五","週六"],"field-second":"秒","dateFormatItem-MEd":"M/d(E)","months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"days-standAlone-abbr":["週日","週一","週二","週三","週四","週五","週六"],"dateFormat-short":"yy/M/d","dateFormatItem-yMMMEd":"y年M月d日EEE","dateFormatItem-Md":"M/d","dateFormatItem-yMEd":"yyyy/M/d(EEE)","dateTimeAvailableFormats":["d日(E)","H:mm","H:mm:ss","M-d(E)","MM/dd","M/d","yyyy/M","yyyy/M/d(EEE)","yyyy年M月","yyyy年M月","yyyy/MM","MMMMdd日","MMMd日","MM-dd","M-d","d日","mm:ss","mm:ss","yyyy年","yyyy-M","yyyy年M月d日,E","yyyy年MMM","yyyy年MMMd日EEE","yyyy年MMMM","yyyy年QQQ","y年QQQ","yy-MM","yy年MMM","yy年第Q季度","yyyy年","yyyy年M月","yyyy年MMMM"],"quarters-format-wide":["第1季","第2季","第3季","第4季"],"eraNarrow":["西元前","西元"],"dateFormatItem-yQQQ":"y年QQQ","dateFormatItem-MMMEd":"MMMd日E","dayPeriods-format-wide-earlyMorning":"清晨","dayPeriods-format-wide-morning":"上午","dateFormat-long":"y年M月d日","months-format-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"下午","dateFormat-full":"y年M月d日EEEE","timeFormat-short":"ah:mm","field-year":"年","dateFormatItem-yQ":"y年QQQ","dateFormatItem-yyyyMMMM":"y年MMMM","months-format-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-yyQ":"yy年第Q季度","field-day-relative+0":"今天","field-day-relative+1":"明天","dateFormatItem-M":"L","days-standAlone-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"dateFormatItem-yyMMM":"yy年MMM","dateFormatItem-Hm":"H:mm","field-dayperiod":"上午/下午","dayPeriods-format-wide-night":"晚上","dateFormatItem-d":"d日","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"昨天","dateFormatItem-h":"ah","dateTimeFormat-long":"{1}{0}","field-day-relative+-2":"前天","dateFormatItem-MMMd":"MMMd日","dayPeriods-format-wide-midDay":"中午","dateTimeFormat-full":"{1}{0}","field-day":"日","days-format-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"dateFormatItem-y":"y年","dateFormatItem-hm":"ah:mm","dateFormatItem-yMMMd":"y年MMMd日","days-format-narrow":["日","一","二","三","四","五","六"],"field-month":"月","days-standAlone-narrow":["日","一","二","三","四","五","六"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"上午","dateFormatItem-MMMMdd":"MMMMdd日","dayPeriods-format-wide-weeHours":"凌晨","dayPeriods-format-wide-afternoon":"下午","dateFormatItem-yyyyM":"y年M月","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-hms":"ah:mm:ss","dateFormatItem-yyyy":"y年","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-format-narrow":["1","2","3","4"],"dayPeriods-format-narrow-am":"AM","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM"}; diff --git a/lib/dijit/nls/dijit-all_zh.js b/lib/dijit/nls/dijit-all_zh.js new file mode 100644 index 000000000..12af91a7a --- /dev/null +++ b/lib/dijit/nls/dijit-all_zh.js @@ -0,0 +1 @@ +dojo.provide("dijit.nls.dijit-all_zh");dojo.provide("dojo.nls.colors");dojo.nls.colors._built=true;dojo.provide("dojo.nls.colors.zh");dojo.nls.colors.zh={"lightsteelblue":"浅钢蓝色","orangered":"橙红色","midnightblue":"深蓝色","cadetblue":"灰蓝色","seashell":"海贝色","slategrey":"灰石色","coral":"珊瑚色","darkturquoise":"深粉蓝","antiquewhite":"古董白","mediumspringgreen":"间春绿色","salmon":"橙红","darkgrey":"深灰色","ivory":"象牙色","greenyellow":"绿黄色","mistyrose":"浅玫瑰色","lightsalmon":"淡橙色","silver":"银白色","dimgrey":"暗灰色","orange":"橙色","white":"白色","navajowhite":"纳瓦白","royalblue":"品蓝","deeppink":"深粉红色","lime":"淡黄绿色","oldlace":"老白色","chartreuse":"黄绿色","darkcyan":"深青绿","yellow":"黄色","linen":"亚麻色","olive":"橄榄绿","gold":"金黄色","lawngreen":"草绿色","lightyellow":"浅黄色","tan":"棕褐色","darkviolet":"深紫色","lightslategrey":"浅青灰","grey":"灰色","darkkhaki":"深卡其色","green":"绿色","deepskyblue":"深天蓝色","aqua":"浅绿色","sienna":"赭色","mintcream":"薄荷色","rosybrown":"褐玫瑰红","mediumslateblue":"间暗蓝色","magenta":"洋红色","lightseagreen":"浅海藻绿","cyan":"青蓝色","olivedrab":"草绿色","darkgoldenrod":"深金黄","slateblue":"石蓝色","mediumaquamarine":"间绿色","lavender":"淡紫色","mediumseagreen":"间海蓝色","maroon":"栗色","darkslategray":"深青灰","mediumturquoise":"间绿宝石色","ghostwhite":"苍白","darkblue":"深蓝","mediumvioletred":"间紫罗兰色","brown":"棕色","lightgray":"浅灰色","sandybrown":"沙褐色","pink":"粉红色","firebrick":"砖红","indigo":"靛青","snow":"雪白色","darkorchid":"深紫色","turquoise":"绿宝石色","chocolate":"巧克力色","springgreen":"春绿色","moccasin":"鹿皮色","navy":"藏青色","lemonchiffon":"柠檬绸色","teal":"水鸭色","floralwhite":"花白色","cornflowerblue":"浅蓝色","paleturquoise":"苍绿色","purple":"紫色","gainsboro":"淡灰色","plum":"杨李色","red":"红色","blue":"蓝色","forestgreen":"森林绿","darkgreen":"深绿色","honeydew":"蜜汁色","darkseagreen":"深海藻绿","lightcoral":"浅珊瑚色","palevioletred":"苍紫罗兰色","mediumpurple":"间紫色","saddlebrown":"重褐色","darkmagenta":"深洋红色","thistle":"蓟色","whitesmoke":"烟白色","wheat":"浅黄色","violet":"紫色","lightskyblue":"浅天蓝色","goldenrod":"金麒麟色","mediumblue":"间蓝色","skyblue":"天蓝色","crimson":"绯红色","darksalmon":"深橙红","darkred":"深红色","darkslategrey":"深青灰","peru":"秘鲁色","lightgrey":"浅灰色","lightgoldenrodyellow":"浅金黄色","blanchedalmond":"白杏色","aliceblue":"爱丽丝蓝","bisque":"桔黄色","slategray":"灰石色","palegoldenrod":"淡金黄色","darkorange":"深橙色","aquamarine":"碧绿色","lightgreen":"浅绿色","burlywood":"实木色","dodgerblue":"闪蓝色","darkgray":"深灰色","lightcyan":"浅青色","powderblue":"铁蓝","blueviolet":"蓝紫色","orchid":"紫色","dimgray":"暗灰色","beige":"米色","fuchsia":"紫红色","lavenderblush":"淡紫红","hotpink":"深粉红","steelblue":"钢蓝色","tomato":"西红柿色","lightpink":"浅粉红色","limegreen":"橙绿色","indianred":"印度红","papayawhip":"木瓜色","lightslategray":"浅青灰","gray":"灰色","mediumorchid":"间紫色","cornsilk":"米绸色","black":"黑色","seagreen":"海绿色","darkslateblue":"深青蓝","khaki":"卡其色","lightblue":"淡蓝色","palegreen":"淡绿色","azure":"天蓝色","peachpuff":"桃色","darkolivegreen":"深橄榄绿","yellowgreen":"黄绿色"};dojo.provide("dijit.nls.loading");dijit.nls.loading._built=true;dojo.provide("dijit.nls.loading.zh");dijit.nls.loading.zh={"loadingState":"正在加载...","errorState":"对不起,发生了错误"};dojo.provide("dijit.nls.common");dijit.nls.common._built=true;dojo.provide("dijit.nls.common.zh");dijit.nls.common.zh={"buttonOk":"确定","buttonCancel":"取消","buttonSave":"保存","itemClose":"关闭"};dojo.provide("dijit._editor.nls.commands");dijit._editor.nls.commands._built=true;dojo.provide("dijit._editor.nls.commands.zh");dijit._editor.nls.commands.zh={"removeFormat":"除去格式","copy":"复制","paste":"粘贴","selectAll":"全选","insertOrderedList":"编号列表","insertTable":"插入/编辑表","print":"打印","underline":"下划线","foreColor":"前景色","htmlToggle":"HTML 源代码","formatBlock":"段落样式","newPage":"新建页面","insertHorizontalRule":"水平线","delete":"删除","insertUnorderedList":"符号列表","tableProp":"表属性","insertImage":"插入图像","superscript":"上标","subscript":"下标","createLink":"创建链接","undo":"撤销","fullScreen":"切换全屏幕","italic":"斜体","fontName":"字体名称","justifyLeft":"左对齐","unlink":"除去链接","toggleTableBorder":"切换表边框","viewSource":"查看 HTML 源代码","fontSize":"字体大小","systemShortcut":"只能在浏览器中通过键盘快捷方式执行“${0}”操作。使用 ${1}。","indent":"增加缩进","redo":"重做","strikethrough":"删除线","justifyFull":"对齐","justifyCenter":"居中","hiliteColor":"背景色","deleteTable":"删除表","outdent":"减少缩进","cut":"剪切","plainFormatBlock":"段落样式","toggleDir":"固定方向","bold":"粗体","tabIndent":"制表符缩进","justifyRight":"右对齐","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"};dojo.provide("dijit.form.nls.validate");dijit.form.nls.validate._built=true;dojo.provide("dijit.form.nls.validate.zh");dijit.form.nls.validate.zh={"rangeMessage":"此值超出范围。","invalidMessage":"输入的值无效。","missingMessage":"此值是必需值。"};dojo.provide("dijit.form.nls.ComboBox");dijit.form.nls.ComboBox._built=true;dojo.provide("dijit.form.nls.ComboBox.zh");dijit.form.nls.ComboBox.zh={"previousMessage":"先前选项","nextMessage":"更多选项"};dojo.provide("dijit._editor.nls.FontChoice");dijit._editor.nls.FontChoice._built=true;dojo.provide("dijit._editor.nls.FontChoice.zh");dijit._editor.nls.FontChoice.zh={"1":"XXS 号","2":"XS 号","formatBlock":"格式","3":"S 号","4":"M 号","5":"L 号","6":"XL 号","7":"XXL 号","fantasy":"虚线","serif":"有衬线","p":"段落","pre":"预设有格式的","sans-serif":"无衬线","fontName":"字体","h1":"标题","h2":"子标题","h3":"二级子标题","monospace":"等宽字体","fontSize":"大小","cursive":"草书","noFormat":"None"};dojo.provide("dijit._editor.nls.LinkDialog");dijit._editor.nls.LinkDialog._built=true;dojo.provide("dijit._editor.nls.LinkDialog.zh");dijit._editor.nls.LinkDialog.zh={"text":"描述:","insertImageTitle":"图像属性","set":"设置","newWindow":"新窗口","topWindow":"最顶部窗口","target":"目标:","createLinkTitle":"链接属性","parentWindow":"父窗口","currentWindow":"当前窗口","url":"URL:"};dojo.provide("dojo.cldr.nls.number");dojo.cldr.nls.number._built=true;dojo.provide("dojo.cldr.nls.number.zh");dojo.cldr.nls.number.zh={"decimalFormat":"#,##0.###","group":",","scientificFormat":"#E0","percentFormat":"#,##0%","currencyFormat":"¤#,##0.00","decimal":".","currencySpacing-afterCurrency-currencyMatch":"[:letter:]","infinity":"∞","list":";","percentSign":"%","minusSign":"-","currencySpacing-beforeCurrency-surroundingMatch":"[:digit:]","currencySpacing-afterCurrency-insertBetween":" ","nan":"NaN","nativeZeroDigit":"0","plusSign":"+","currencySpacing-afterCurrency-surroundingMatch":"[:digit:]","currencySpacing-beforeCurrency-currencyMatch":"[:letter:]","perMille":"‰","patternDigit":"#","currencySpacing-beforeCurrency-insertBetween":" ","exponential":"E"};dojo.provide("dojo.cldr.nls.currency");dojo.cldr.nls.currency._built=true;dojo.provide("dojo.cldr.nls.currency.zh");dojo.cldr.nls.currency.zh={"HKD_displayName":"港元","CHF_displayName":"瑞士法郎","CAD_displayName":"加拿大元","CNY_displayName":"人民币","AUD_displayName":"澳大利亚元","JPY_displayName":"日元","USD_displayName":"美元","CNY_symbol":"¥","GBP_displayName":"英镑","EUR_displayName":"欧元","USD_symbol":"US$","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","JPY_symbol":"JP¥","AUD_symbol":"AU$","EUR_symbol":"€"};dojo.provide("dojo.cldr.nls.gregorian");dojo.cldr.nls.gregorian._built=true;dojo.provide("dojo.cldr.nls.gregorian.zh");dojo.cldr.nls.gregorian.zh={"months-format-narrow":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"field-weekday":"周天","dateFormatItem-yQQQ":"y年QQQ","dateFormatItem-yMEd":"y年M月d日,E","dateFormatItem-MMMEd":"MMMd日E","eraNarrow":["公元前","公元"],"dayPeriods-format-wide-earlyMorning":"清晨","dayPeriods-format-wide-morning":"上午","dateFormat-long":"y年M月d日","months-format-wide":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateTimeFormat-medium":"{1} {0}","dayPeriods-format-wide-pm":"下午","dateFormat-full":"y年M月d日EEEE","dateFormatItem-Md":"M-d","field-era":"时期","dateFormatItem-yM":"yyyy-M","months-standAlone-wide":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"timeFormat-short":"ah:mm","quarters-format-wide":["第1季度","第2季度","第3季度","第4季度"],"timeFormat-long":"zah时mm分ss秒","field-year":"年","dateFormatItem-yMMM":"y年MMM","dateFormatItem-yQ":"y年QQQ","dateFormatItem-yyyyMMMM":"y年MMMM","field-hour":"小时","dateFormatItem-MMdd":"MM-dd","months-format-abbr":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-yyQ":"yy年第Q季度","timeFormat-full":"zzzzah时mm分ss秒","field-day-relative+0":"今天","field-day-relative+1":"明天","field-day-relative+2":"后天","dateFormatItem-H":"H时","months-standAlone-abbr":["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],"quarters-format-abbr":["1季","2季","3季","4季"],"quarters-standAlone-wide":["第1季度","第2季度","第3季度","第4季度"],"dateFormatItem-M":"L","days-standAlone-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"dateFormatItem-yyMMM":"yy年MMM","timeFormat-medium":"ah:mm:ss","dateFormatItem-Hm":"H:mm","quarters-standAlone-abbr":["1季","2季","3季","4季"],"eraAbbr":["公元前","公元"],"field-minute":"分钟","field-dayperiod":"上午/下午","days-standAlone-abbr":["周日","周一","周二","周三","周四","周五","周六"],"dayPeriods-format-wide-night":"晚上","dateFormatItem-d":"d日","dateFormatItem-ms":"mm:ss","field-day-relative+-1":"昨天","dateFormatItem-h":"ah","dateTimeFormat-long":"{1}{0}","field-day-relative+-2":"前天","dateFormatItem-MMMd":"MMMd日","dayPeriods-format-wide-midDay":"中午","dateFormatItem-MEd":"M-dE","dateTimeFormat-full":"{1}{0}","field-day":"日","days-format-wide":["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],"field-zone":"区域","dateFormatItem-y":"y年","months-standAlone-narrow":["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"dateFormatItem-yyMM":"yy-MM","dateFormatItem-hm":"ah:mm","days-format-abbr":["周日","周一","周二","周三","周四","周五","周六"],"dateFormatItem-yMMMd":"y年MMMd日","eraNames":["公元前","公元"],"days-format-narrow":["日","一","二","三","四","五","六"],"field-month":"月","days-standAlone-narrow":["日","一","二","三","四","五","六"],"dateFormatItem-MMM":"LLL","dayPeriods-format-wide-am":"上午","dateFormatItem-MMMMdd":"MMMMdd日","dayPeriods-format-wide-weeHours":"凌晨","dateFormat-short":"yy-M-d","dayPeriods-format-wide-afternoon":"下午","field-second":"秒钟","dateFormatItem-yMMMEd":"y年MMMd日EEE","dateFormatItem-Ed":"d日E","field-week":"周","dateFormat-medium":"yyyy-M-d","dateFormatItem-yyyyM":"y年M月","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"H:mm:ss","dateFormatItem-hms":"ah:mm:ss","dateFormatItem-yyyy":"y年","quarters-standAlone-narrow":["1","2","3","4"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateFormatItem-EEEd":"d EEE","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","quarters-format-narrow":["1","2","3","4"],"dayPeriods-format-narrow-am":"AM","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","dateTimeFormats-appendItem-Quarter":"{0} ({2}: {1})","dateTimeFormats-appendItem-Month":"{0} ({2}: {1})","dateTimeFormats-appendItem-Minute":"{0} ({2}: {1})","dateTimeFormats-appendItem-Timezone":"{0} {1}","dayPeriods-format-narrow-pm":"PM"}; diff --git a/lib/dijit/nls/el/common.js b/lib/dijit/nls/el/common.js new file mode 100644 index 000000000..8e7a36af7 --- /dev/null +++ b/lib/dijit/nls/el/common.js @@ -0,0 +1 @@ +({"buttonOk":"ΟΚ","buttonCancel":"Ακύρωση","buttonSave":"Αποθήκευση","itemClose":"Κλείσιμο"})
\ No newline at end of file diff --git a/lib/dijit/nls/el/loading.js b/lib/dijit/nls/el/loading.js new file mode 100644 index 000000000..9567b3cec --- /dev/null +++ b/lib/dijit/nls/el/loading.js @@ -0,0 +1 @@ +({"loadingState":"Φόρτωση...","errorState":"Σας ζητούμε συγνώμη, παρουσιάστηκε σφάλμα"})
\ No newline at end of file diff --git a/lib/dijit/nls/es/common.js b/lib/dijit/nls/es/common.js new file mode 100644 index 000000000..b4feef98b --- /dev/null +++ b/lib/dijit/nls/es/common.js @@ -0,0 +1 @@ +({"buttonOk":"Aceptar","buttonCancel":"Cancelar","buttonSave":"Guardar","itemClose":"Cerrar"})
\ No newline at end of file diff --git a/lib/dijit/nls/es/loading.js b/lib/dijit/nls/es/loading.js new file mode 100644 index 000000000..dc969a3bf --- /dev/null +++ b/lib/dijit/nls/es/loading.js @@ -0,0 +1 @@ +({"loadingState":"Cargando...","errorState":"Lo siento, se ha producido un error"})
\ No newline at end of file diff --git a/lib/dijit/nls/fi/common.js b/lib/dijit/nls/fi/common.js new file mode 100644 index 000000000..8b2fc2679 --- /dev/null +++ b/lib/dijit/nls/fi/common.js @@ -0,0 +1 @@ +({"buttonOk":"OK","buttonCancel":"Peruuta","buttonSave":"Tallenna","itemClose":"Sulje"})
\ No newline at end of file diff --git a/lib/dijit/nls/fi/loading.js b/lib/dijit/nls/fi/loading.js new file mode 100644 index 000000000..73e10a140 --- /dev/null +++ b/lib/dijit/nls/fi/loading.js @@ -0,0 +1 @@ +({"loadingState":"Lataus on meneillään...","errorState":"On ilmennyt virhe."})
\ No newline at end of file diff --git a/lib/dijit/nls/fr/common.js b/lib/dijit/nls/fr/common.js new file mode 100644 index 000000000..9f6aabe4d --- /dev/null +++ b/lib/dijit/nls/fr/common.js @@ -0,0 +1 @@ +({"buttonOk":"OK","buttonCancel":"Annuler","buttonSave":"Sauvegarder","itemClose":"Fermer"})
\ No newline at end of file diff --git a/lib/dijit/nls/fr/loading.js b/lib/dijit/nls/fr/loading.js new file mode 100644 index 000000000..ec7192baf --- /dev/null +++ b/lib/dijit/nls/fr/loading.js @@ -0,0 +1 @@ +({"loadingState":"Chargement...","errorState":"Une erreur est survenue"})
\ No newline at end of file diff --git a/lib/dijit/nls/he/common.js b/lib/dijit/nls/he/common.js new file mode 100644 index 000000000..b04d1cc3a --- /dev/null +++ b/lib/dijit/nls/he/common.js @@ -0,0 +1 @@ +({"buttonOk":"אישור","buttonCancel":"ביטול","buttonSave":"שמירה","itemClose":"סגירה"})
\ No newline at end of file diff --git a/lib/dijit/nls/he/loading.js b/lib/dijit/nls/he/loading.js new file mode 100644 index 000000000..7b1d5f3a0 --- /dev/null +++ b/lib/dijit/nls/he/loading.js @@ -0,0 +1 @@ +({"loadingState":"טעינה...","errorState":"אירעה שגיאה"})
\ No newline at end of file diff --git a/lib/dijit/nls/hu/common.js b/lib/dijit/nls/hu/common.js new file mode 100644 index 000000000..21a773f49 --- /dev/null +++ b/lib/dijit/nls/hu/common.js @@ -0,0 +1 @@ +({"buttonOk":"OK","buttonCancel":"Mégse","buttonSave":"Mentés","itemClose":"Bezárás"})
\ No newline at end of file diff --git a/lib/dijit/nls/hu/loading.js b/lib/dijit/nls/hu/loading.js new file mode 100644 index 000000000..d61e9a2aa --- /dev/null +++ b/lib/dijit/nls/hu/loading.js @@ -0,0 +1 @@ +({"loadingState":"Betöltés...","errorState":"Sajnálom, hiba történt"})
\ No newline at end of file diff --git a/lib/dijit/nls/it/common.js b/lib/dijit/nls/it/common.js new file mode 100644 index 000000000..6b3dc74e2 --- /dev/null +++ b/lib/dijit/nls/it/common.js @@ -0,0 +1 @@ +({"buttonOk":"OK","buttonCancel":"Annulla","buttonSave":"Salva","itemClose":"Chiudi"})
\ No newline at end of file diff --git a/lib/dijit/nls/it/loading.js b/lib/dijit/nls/it/loading.js new file mode 100644 index 000000000..60d05e007 --- /dev/null +++ b/lib/dijit/nls/it/loading.js @@ -0,0 +1 @@ +({"loadingState":"Caricamento in corso...","errorState":"Si è verificato un errore"})
\ No newline at end of file diff --git a/lib/dijit/nls/ja/common.js b/lib/dijit/nls/ja/common.js new file mode 100644 index 000000000..b0b48c617 --- /dev/null +++ b/lib/dijit/nls/ja/common.js @@ -0,0 +1 @@ +({"buttonOk":"OK","buttonCancel":"キャンセル","buttonSave":"保存","itemClose":"閉じる"})
\ No newline at end of file diff --git a/lib/dijit/nls/ja/loading.js b/lib/dijit/nls/ja/loading.js new file mode 100644 index 000000000..fa67d67cc --- /dev/null +++ b/lib/dijit/nls/ja/loading.js @@ -0,0 +1 @@ +({"loadingState":"ロード中...","errorState":"エラーが発生しました。"})
\ No newline at end of file diff --git a/lib/dijit/nls/ko/common.js b/lib/dijit/nls/ko/common.js new file mode 100644 index 000000000..8e12bbff2 --- /dev/null +++ b/lib/dijit/nls/ko/common.js @@ -0,0 +1 @@ +({"buttonOk":"확인","buttonCancel":"취소","buttonSave":"저장","itemClose":"닫기"})
\ No newline at end of file diff --git a/lib/dijit/nls/ko/loading.js b/lib/dijit/nls/ko/loading.js new file mode 100644 index 000000000..5d1ca128b --- /dev/null +++ b/lib/dijit/nls/ko/loading.js @@ -0,0 +1 @@ +({"loadingState":"로드 중...","errorState":"죄송합니다. 오류가 발생했습니다."})
\ No newline at end of file diff --git a/lib/dijit/nls/loading.js b/lib/dijit/nls/loading.js new file mode 100644 index 000000000..1d6fa9b7d --- /dev/null +++ b/lib/dijit/nls/loading.js @@ -0,0 +1 @@ +({"loadingState":"Loading...","errorState":"Sorry, an error occurred"})
\ No newline at end of file diff --git a/lib/dijit/nls/nb/common.js b/lib/dijit/nls/nb/common.js new file mode 100644 index 000000000..73e38c782 --- /dev/null +++ b/lib/dijit/nls/nb/common.js @@ -0,0 +1 @@ +({"buttonOk":"OK","buttonCancel":"Avbryt","buttonSave":"Lagre","itemClose":"Lukk"})
\ No newline at end of file diff --git a/lib/dijit/nls/nb/loading.js b/lib/dijit/nls/nb/loading.js new file mode 100644 index 000000000..dbc314dfa --- /dev/null +++ b/lib/dijit/nls/nb/loading.js @@ -0,0 +1 @@ +({"loadingState":"Laster inn...","errorState":"Det oppsto en feil"})
\ No newline at end of file diff --git a/lib/dijit/nls/nl/common.js b/lib/dijit/nls/nl/common.js new file mode 100644 index 000000000..fa4c66e7a --- /dev/null +++ b/lib/dijit/nls/nl/common.js @@ -0,0 +1 @@ +({"buttonOk":"OK","buttonCancel":"Annuleren","buttonSave":"Opslaan","itemClose":"Sluiten"})
\ No newline at end of file diff --git a/lib/dijit/nls/nl/loading.js b/lib/dijit/nls/nl/loading.js new file mode 100644 index 000000000..c9870fd51 --- /dev/null +++ b/lib/dijit/nls/nl/loading.js @@ -0,0 +1 @@ +({"loadingState":"Bezig met laden...","errorState":"Er is een fout opgetreden"})
\ No newline at end of file diff --git a/lib/dijit/nls/pl/common.js b/lib/dijit/nls/pl/common.js new file mode 100644 index 000000000..c84e5390e --- /dev/null +++ b/lib/dijit/nls/pl/common.js @@ -0,0 +1 @@ +({"buttonOk":"OK","buttonCancel":"Anuluj","buttonSave":"Zapisz","itemClose":"Zamknij"})
\ No newline at end of file diff --git a/lib/dijit/nls/pl/loading.js b/lib/dijit/nls/pl/loading.js new file mode 100644 index 000000000..eed3c3e4c --- /dev/null +++ b/lib/dijit/nls/pl/loading.js @@ -0,0 +1 @@ +({"loadingState":"Ładowanie...","errorState":"Niestety, wystąpił błąd"})
\ No newline at end of file diff --git a/lib/dijit/nls/pt-pt/common.js b/lib/dijit/nls/pt-pt/common.js new file mode 100644 index 000000000..799270516 --- /dev/null +++ b/lib/dijit/nls/pt-pt/common.js @@ -0,0 +1 @@ +({"buttonOk":"OK","buttonCancel":"Cancelar","buttonSave":"Guardar","itemClose":"Fechar"})
\ No newline at end of file diff --git a/lib/dijit/nls/pt-pt/loading.js b/lib/dijit/nls/pt-pt/loading.js new file mode 100644 index 000000000..80257d372 --- /dev/null +++ b/lib/dijit/nls/pt-pt/loading.js @@ -0,0 +1 @@ +({"loadingState":"A carregar...","errorState":"Lamentamos, mas ocorreu um erro"})
\ No newline at end of file diff --git a/lib/dijit/nls/pt/common.js b/lib/dijit/nls/pt/common.js new file mode 100644 index 000000000..b94e6bc51 --- /dev/null +++ b/lib/dijit/nls/pt/common.js @@ -0,0 +1 @@ +({"buttonOk":"OK","buttonCancel":"Cancelar","buttonSave":"Salvar","itemClose":"Fechar"})
\ No newline at end of file diff --git a/lib/dijit/nls/pt/loading.js b/lib/dijit/nls/pt/loading.js new file mode 100644 index 000000000..88cda7a2e --- /dev/null +++ b/lib/dijit/nls/pt/loading.js @@ -0,0 +1 @@ +({"loadingState":"Carregando...","errorState":"Desculpe, ocorreu um erro"})
\ No newline at end of file diff --git a/lib/dijit/nls/ro/common.js b/lib/dijit/nls/ro/common.js new file mode 100644 index 000000000..e28d4e700 --- /dev/null +++ b/lib/dijit/nls/ro/common.js @@ -0,0 +1 @@ +({"buttonOk":"OK","buttonCancel":"Anulare","buttonSave":"Salvare","itemClose":"Închidere"})
\ No newline at end of file diff --git a/lib/dijit/nls/ro/loading.js b/lib/dijit/nls/ro/loading.js new file mode 100644 index 000000000..273efb444 --- /dev/null +++ b/lib/dijit/nls/ro/loading.js @@ -0,0 +1 @@ +({"loadingState":"Încărcare...","errorState":"Ne pare rău, a apărut o eroare "})
\ No newline at end of file diff --git a/lib/dijit/nls/ru/common.js b/lib/dijit/nls/ru/common.js new file mode 100644 index 000000000..9a76d095e --- /dev/null +++ b/lib/dijit/nls/ru/common.js @@ -0,0 +1 @@ +({"buttonOk":"ОК","buttonCancel":"Отмена","buttonSave":"Сохранить","itemClose":"Закрыть"})
\ No newline at end of file diff --git a/lib/dijit/nls/ru/loading.js b/lib/dijit/nls/ru/loading.js new file mode 100644 index 000000000..55cd03b63 --- /dev/null +++ b/lib/dijit/nls/ru/loading.js @@ -0,0 +1 @@ +({"loadingState":"Загрузка...","errorState":"Извините, возникла ошибка"})
\ No newline at end of file diff --git a/lib/dijit/nls/sk/common.js b/lib/dijit/nls/sk/common.js new file mode 100644 index 000000000..59a12d11e --- /dev/null +++ b/lib/dijit/nls/sk/common.js @@ -0,0 +1 @@ +({"buttonOk":"OK","buttonCancel":"Zrušiť","buttonSave":"Uložiť","itemClose":"Zatvoriť"})
\ No newline at end of file diff --git a/lib/dijit/nls/sk/loading.js b/lib/dijit/nls/sk/loading.js new file mode 100644 index 000000000..e805bd809 --- /dev/null +++ b/lib/dijit/nls/sk/loading.js @@ -0,0 +1 @@ +({"loadingState":"Zavádzanie...","errorState":"Nastala chyba"})
\ No newline at end of file diff --git a/lib/dijit/nls/sl/common.js b/lib/dijit/nls/sl/common.js new file mode 100644 index 000000000..4704cc51f --- /dev/null +++ b/lib/dijit/nls/sl/common.js @@ -0,0 +1 @@ +({"buttonOk":"V redu","buttonCancel":"Prekliči","buttonSave":"Shrani","itemClose":"Zapri"})
\ No newline at end of file diff --git a/lib/dijit/nls/sl/loading.js b/lib/dijit/nls/sl/loading.js new file mode 100644 index 000000000..4100866db --- /dev/null +++ b/lib/dijit/nls/sl/loading.js @@ -0,0 +1 @@ +({"loadingState":"Nalaganje...","errorState":"Oprostite, prišlo je do napake."})
\ No newline at end of file diff --git a/lib/dijit/nls/sv/common.js b/lib/dijit/nls/sv/common.js new file mode 100644 index 000000000..cd3444f43 --- /dev/null +++ b/lib/dijit/nls/sv/common.js @@ -0,0 +1 @@ +({"buttonOk":"OK","buttonCancel":"Avbryt","buttonSave":"Spara","itemClose":"Stäng"})
\ No newline at end of file diff --git a/lib/dijit/nls/sv/loading.js b/lib/dijit/nls/sv/loading.js new file mode 100644 index 000000000..95b90d263 --- /dev/null +++ b/lib/dijit/nls/sv/loading.js @@ -0,0 +1 @@ +({"loadingState":"Läser in...","errorState":"Det uppstod ett fel."})
\ No newline at end of file diff --git a/lib/dijit/nls/th/common.js b/lib/dijit/nls/th/common.js new file mode 100644 index 000000000..be06dd04f --- /dev/null +++ b/lib/dijit/nls/th/common.js @@ -0,0 +1 @@ +({"buttonOk":"ตกลง","buttonCancel":"ยกเลิก","buttonSave":"บันทึก","itemClose":"ปิด"})
\ No newline at end of file diff --git a/lib/dijit/nls/th/loading.js b/lib/dijit/nls/th/loading.js new file mode 100644 index 000000000..bb6b75d3a --- /dev/null +++ b/lib/dijit/nls/th/loading.js @@ -0,0 +1 @@ +({"loadingState":"กำลังโหลด...","errorState":"ขออภัย เกิดข้อผิดพลาด"})
\ No newline at end of file diff --git a/lib/dijit/nls/tr/common.js b/lib/dijit/nls/tr/common.js new file mode 100644 index 000000000..e89e645e0 --- /dev/null +++ b/lib/dijit/nls/tr/common.js @@ -0,0 +1 @@ +({"buttonOk":"Tamam","buttonCancel":"İptal","buttonSave":"Kaydet","itemClose":"Kapat"})
\ No newline at end of file diff --git a/lib/dijit/nls/tr/loading.js b/lib/dijit/nls/tr/loading.js new file mode 100644 index 000000000..b0ed738a8 --- /dev/null +++ b/lib/dijit/nls/tr/loading.js @@ -0,0 +1 @@ +({"loadingState":"Yükleniyor...","errorState":"Üzgünüz, bir hata oluştu"})
\ No newline at end of file diff --git a/lib/dijit/nls/zh-tw/common.js b/lib/dijit/nls/zh-tw/common.js new file mode 100644 index 000000000..5d3fee069 --- /dev/null +++ b/lib/dijit/nls/zh-tw/common.js @@ -0,0 +1 @@ +({"buttonOk":"確定","buttonCancel":"取消","buttonSave":"儲存","itemClose":"關閉"})
\ No newline at end of file diff --git a/lib/dijit/nls/zh-tw/loading.js b/lib/dijit/nls/zh-tw/loading.js new file mode 100644 index 000000000..00785410b --- /dev/null +++ b/lib/dijit/nls/zh-tw/loading.js @@ -0,0 +1 @@ +({"loadingState":"載入中...","errorState":"抱歉,發生錯誤"})
\ No newline at end of file diff --git a/lib/dijit/nls/zh/common.js b/lib/dijit/nls/zh/common.js new file mode 100644 index 000000000..0bb6267e1 --- /dev/null +++ b/lib/dijit/nls/zh/common.js @@ -0,0 +1 @@ +({"buttonOk":"确定","buttonCancel":"取消","buttonSave":"保存","itemClose":"关闭"})
\ No newline at end of file diff --git a/lib/dijit/nls/zh/loading.js b/lib/dijit/nls/zh/loading.js new file mode 100644 index 000000000..c4b6fd758 --- /dev/null +++ b/lib/dijit/nls/zh/loading.js @@ -0,0 +1 @@ +({"loadingState":"正在加载...","errorState":"对不起,发生了错误"})
\ No newline at end of file diff --git a/lib/dijit/resources/_modules.js b/lib/dijit/resources/_modules.js new file mode 100644 index 000000000..8d3fc5de7 --- /dev/null +++ b/lib/dijit/resources/_modules.js @@ -0,0 +1,7 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + diff --git a/lib/dijit/robot.js b/lib/dijit/robot.js new file mode 100644 index 000000000..5035cf5d4 --- /dev/null +++ b/lib/dijit/robot.js @@ -0,0 +1,12 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.robot"]){ +dojo._hasResource["dijit.robot"]=true; +dojo.provide("dijit.robot"); +dojo.require("dojo.robot"); +} diff --git a/lib/dijit/robotx.js b/lib/dijit/robotx.js new file mode 100644 index 000000000..8f86dd81b --- /dev/null +++ b/lib/dijit/robotx.js @@ -0,0 +1,24 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.robotx"]){ +dojo._hasResource["dijit.robotx"]=true; +dojo.provide("dijit.robotx"); +dojo.require("dijit.robot"); +dojo.require("dojo.robotx"); +dojo.experimental("dijit.robotx"); +(function(){ +var _1=doh.robot._updateDocument; +dojo.mixin(doh.robot,{_updateDocument:function(){ +_1(); +var _2=dojo.global; +if(_2["dijit"]){ +dijit=_2.dijit; +} +}}); +})(); +} diff --git a/lib/dijit/themes/a11y/README.txt b/lib/dijit/themes/a11y/README.txt new file mode 100644 index 000000000..a80935429 --- /dev/null +++ b/lib/dijit/themes/a11y/README.txt @@ -0,0 +1,3 @@ +This folder contains images used by all themes when in "high-contrast" mode. + +If you think you need to put something here, please talk to Becky or Bill first.
\ No newline at end of file diff --git a/lib/dijit/themes/a11y/colors3x4-rtl.png b/lib/dijit/themes/a11y/colors3x4-rtl.png Binary files differnew file mode 100644 index 000000000..51a7d11a2 --- /dev/null +++ b/lib/dijit/themes/a11y/colors3x4-rtl.png diff --git a/lib/dijit/themes/a11y/colors3x4.png b/lib/dijit/themes/a11y/colors3x4.png Binary files differnew file mode 100644 index 000000000..5125cb656 --- /dev/null +++ b/lib/dijit/themes/a11y/colors3x4.png diff --git a/lib/dijit/themes/a11y/colors7x10-rtl.png b/lib/dijit/themes/a11y/colors7x10-rtl.png Binary files differnew file mode 100644 index 000000000..c191e9056 --- /dev/null +++ b/lib/dijit/themes/a11y/colors7x10-rtl.png diff --git a/lib/dijit/themes/a11y/colors7x10.png b/lib/dijit/themes/a11y/colors7x10.png Binary files differnew file mode 100644 index 000000000..d1354aff5 --- /dev/null +++ b/lib/dijit/themes/a11y/colors7x10.png diff --git a/lib/dijit/themes/a11y/indeterminate_progress.gif b/lib/dijit/themes/a11y/indeterminate_progress.gif Binary files differnew file mode 100644 index 000000000..66f535cd8 --- /dev/null +++ b/lib/dijit/themes/a11y/indeterminate_progress.gif diff --git a/lib/dijit/themes/claro/Calendar.css b/lib/dijit/themes/claro/Calendar.css new file mode 100644 index 000000000..3a3256ef0 --- /dev/null +++ b/lib/dijit/themes/claro/Calendar.css @@ -0,0 +1,206 @@ + +.claro .dijitCalendar { + border:solid 1px #b5bcc7; + background-color:#d4ebff; + background-image:url("images/calendarContainerImages.png"); + background-position:0px -448px; + background-repeat:repeat-x; + text-align:center; + padding:6px 5px 3px 5px; + -moz-border-radius:4px; + -webkit-border-radius:4px; +} +.dj_ie6 .claro .dijitCalendar { + background-image:none; +} +.claro .dijitCalendar img { + border:none; +} +.claro .dijitCalendarHover, +.claro .dijitCalendarActive { + background-color: #b7dcff; + border:solid 1px #769dc0; +} +.claro .dijitCalendarMonthContainer th { + text-align:center; + padding-bottom:4px; + vertical-align:middle; +} +.claro .dijitCalendarMonthLabelSpacer { + display:none; +} +.claro .dijitCalendarMonthLabel { + color:#000000; + font-size: 1.091em; + display: block; +} +.claro .dijitCalendarIncrementControl { + width:18px; + height:16px; + background-image: url("images/calendarArrows.png"); + background-repeat: no-repeat; +} +.dj_ie6 .claro .dijitCalendarIncrementControl { + background-image: url("images/calendarArrows8bit.png"); +} +.claro .dijitCalendarIncrease { + background-position:-18px 0px; +} +.claro .dijitCalendarArrowHover .dijitCalendarDecrease { + background-position:-36px 0px; +} +.claro .dijitCalendarArrowHover .dijitCalendarIncrease { + background-position:-55px 0px; +} +.claro .dijitCalendarArrowActive .dijitCalendarDecrease { + background-position:-72px 0px; +} +.claro .dijitCalendarArrowActive .dijitCalendarIncrease { + background-position:-91px 0px; +} +.claro .dijitA11ySideArrow { + + display: none; +} +.claro .dijitDayLabels th { + padding:0px 4px 0px 4px; + border-bottom:solid 1px #99b5cd; + font-weight:bold; + text-align:center; +} +.claro .dijitCalendarDayLabelTemplate { + padding-bottom:0em; + text-align:center; + border-bottom:1px solid #99B5CD; + font-size:0.909em; + padding:0 3px 2px; +} +.claro .dijitCalendarDateTemplate { + text-align:center; + background-color:#fff; + background-image:url("images/calendarContainerImages.png"); + background-position:0px 0px; + background-repeat:repeat-x; + border-bottom: 1px solid #dadde1; + padding-top:0px; + font-size:0.909em; + font-family: Arial; + font-weight:bold; + letter-spacing:.05em; + text-align:center; +} +.dj_ie6 .claro .dijitCalendarDateTemplate { + background-image: none; +} +.claro .dijitCalendarPreviousMonth, +.claro .dijitCalendarNextMonth { + background-color:#ebf3f9; + background-image:none; + border-bottom:solid 1px #d2dae8; + color:#547da1; +} +.claro .dijitCalendarDateTemplate .dijitCalendarDateLabel { + text-decoration:none; + display:block; + padding:3px 5px 3px 4px; + border:solid 1px #fff; + color:#1e1e1e; + background-color:rgba(171,212,251,0); + -webkit-transition-property:background-color, border; + -webkit-transition-duration:.35s; +} +.claro .dijitCalendarPreviousMonth .dijitCalendarDateLabel, +.claro .dijitCalendarNextMonth .dijitCalendarDateLabel{ + color:#547da1; + border-color:#ebf3f9; +} +.claro .dijitCalendarYearContainer { + vertical-align:middle; +} +.claro .dijitCalendarYearControl { + padding: 1px 2px 2px 2px; +} +.claro .dijitCalendarYearLabel { + padding:2px 0px 0px 0px; + margin:0; +} +.claro .dijitCalendarYearLabel span { + + vertical-align:middle; +} +.claro .dijitCalendarSelectedYear { + padding:0px 3px; +} +.claro .dijitCalendarNextYear, +.claro .dijitCalendarPreviousYear { + padding: 1px 6px 1px 6px; + font-size:0.909em; +} +.claro .dijitCalendarSelectedYear { + font-size:1.091em; + color:#000; +} +.claro .dijitCalendarHoveredDate .dijitCalendarDateLabel{ + background-color:#abd4fb; + border:solid 1px #729dc2; + color:#000; + -webkit-transition-duration:.2s; +} +.claro .dijitCalendarNextYearHover, +.claro .dijitCalendarPreviousYearHover { + color:#000; + border:solid 1px #fefefe; + padding: 0px 5px 0px 5px; + background-color:#eaf4fe; +} +.claro .dijitCalendarNextYearActive, +.claro .dijitCalendarPreviousYearActive { + border: solid 1px #87b3d9; + padding: 0px 5px 0px 5px; + background-color:#90bde6; +} +.claro .dijitCalendarActiveDate .dijitCalendarDateLabel { + background-image:url("images/calendarContainerImages.png"); + background-position:0px -300px; + background-color:#75b5f0; + border:solid 1px #fff; + -webkit-transition-duration:.1s; +} +.dj_ie6 .claro .dijitCalendarActiveDate .dijitCalendarDateLabel { + background-image:none; +} +.claro .dijitCalendarSelectedDate .dijitCalendarDateLabel { + color:#000; + background-color:#e7f4ff; + border-color:#accfed; +} +.claro .dijitCalendarDisabledDate .dijitCalendarDateLabel { + text-decoration:line-through; + + + background-color: transparent; + border-width: 0px; + padding: 4px 6px 4px 5px; + color: #547DA1; +} +.claro .dijitCalendarMonthContainer .dijitMenu{ + + top: 20px !important; + left: 0px; + border-color: #769dc0; + background-color: #fff; + text-align:center; + background-image: none; +} +.claro .dijitCalendarMonthContainer .dijitMenu .dijitCalendarMonthLabel{ + border-top: solid 1px #fff; + border-bottom: solid 1px #fff; + padding: 2px 20px; +} +.claro .dijitCalendarMonthContainer .dijitMenu .dijitMenuItemHover { + background-color: #abd6ff; + border-color: #769dc0; + border-width:1px 0px; + background-image: url("images/commonHighlight.png"); + background-repeat:repeat-x; +} diff --git a/lib/dijit/themes/claro/Calendar_rtl.css b/lib/dijit/themes/claro/Calendar_rtl.css new file mode 100644 index 000000000..0f35d60ef --- /dev/null +++ b/lib/dijit/themes/claro/Calendar_rtl.css @@ -0,0 +1,18 @@ +.claro .dijitCalendarRtl .dijitCalendarIncrease{ + background-position: 0px 0px; +} +.claro .dijitCalendarRtl .dijitCalendarDecrease { + background-position: -18px 0px; +} +.claro .dijitCalendarRtl .dijitCalendarArrowHover .dijitCalendarIncrease { + background-position: -36px 0px; +} +.claro .dijitCalendarRtl .dijitCalendarArrowHover .dijitCalendarDecrease { + background-position: -55px 0px; +} +.claro .dijitCalendarRtl .dijitCalendarArrowActive .dijitCalendarIncrease { + background-position: -72px 0px; +} +.claro .dijitCalendarRtl .dijitCalendarArrowActive .dijitCalendarDecrease { + background-position: -91px 0px; +} diff --git a/lib/dijit/themes/claro/ColorPalette.css b/lib/dijit/themes/claro/ColorPalette.css new file mode 100644 index 000000000..87a25ae25 --- /dev/null +++ b/lib/dijit/themes/claro/ColorPalette.css @@ -0,0 +1,18 @@ + +.claro .dijitColorPalette { + outline: 1px solid #769dc0; + border: 1px solid #c0ccdf; + background:#fff; + -moz-border-radius: 0px; +} +.claro .dijitColorPalette .dijitPaletteImg { + + border: 1px solid #cecece; +} +.claro .dijitColorPalette .dijitPaletteCellHover .dijitPaletteImg { + border: 1px solid #000; +} +.claro .dijitColorPalette .dijitPaletteCellActive .dijitPaletteImg, +.claro .dijitColorPalette .dijitPaletteCellSelected .dijitPaletteImg { + border: 2px solid #000; +} diff --git a/lib/dijit/themes/claro/Common.css b/lib/dijit/themes/claro/Common.css new file mode 100644 index 000000000..dd68ce14c --- /dev/null +++ b/lib/dijit/themes/claro/Common.css @@ -0,0 +1,70 @@ + +.claro .dijitPopup { + box-shadow: 0px 1px 5px rgba(0,0,0,0.25); + -webkit-box-shadow: 0px 1px 5px rgba(0,0,0,0.25); + -moz-box-shadow: 0px 1px 5px rgba(0,0,0,0.25); +} +.claro .dijitTooltipDialogPopup { + + box-shadow: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; +} +.claro .dijitComboBoxHighlightMatch { + background-color:#a5beda; +} +.claro .dijitFocusedLabel { + + outline: 1px dotted #666666; +} +.claro .dijitContentPaneLoading { + background:url('images/loadingAnimation.gif') no-repeat left center; + padding-left:25px; +} +.claro .dijitContentPaneError { + background:url('../../icons/images/commonIconsObjActEnabled.png') no-repeat left center; + background-position: -496px; + no-repeat left center; + padding-left:25px; +} +.claro .dojoDndItemBefore, +.claro .dojoDndItemAfter{ + border-top: 1px solid #769DC0; +} +.claro .dojoDndItemOver { + cursor:pointer; + } +.claro table.dojoDndAvatar { + border: 1px solid #b5bcc7; + border-collapse: collapse; + background-color: #fff; + -webkit-box-shadow:0px 1px 3px rgba(0, 0, 0, .25); +} +.claro .dojoDndAvatarHeader td { + height: 20px; + padding-left:21px; +} +.claro.dojoDndMove .dojoDndAvatarHeader, .claro.dojoDndCopy .dojoDndAvatarHeader { + background-image: url(images/dnd.png); + background-repeat: no-repeat; + background-position:2px -122px; +} +.claro .dojoDndAvatarItem td { + padding: 5px; +} +.claro.dojoDndMove .dojoDndAvatarHeader { + background-color: #f58383; + background-position:2px -103px; +} +.claro.dojoDndCopy .dojoDndAvatarHeader { + background-color: #f58383; + background-position:2px -68px; +} +.claro.dojoDndMove .dojoDndAvatarCanDrop .dojoDndAvatarHeader { + background-color: #97e68d; + background-position:2px -33px; +} +.claro.dojoDndCopy .dojoDndAvatarCanDrop .dojoDndAvatarHeader { + background-color: #97e68d; + background-position:2px 2px; +} diff --git a/lib/dijit/themes/claro/Dialog.css b/lib/dijit/themes/claro/Dialog.css new file mode 100644 index 000000000..10b513485 --- /dev/null +++ b/lib/dijit/themes/claro/Dialog.css @@ -0,0 +1,162 @@ + +.claro .dijitDialog { + border: 1px solid #769dc0; + box-shadow:0px 1px 5px rgba(0,0,0,0.25); + -webkit-box-shadow:0px 1px 5px rgba(0,0,0,0.25); + -moz-box-shadow: 0px 1px 5px rgba(0,0,0,0.25); +} +.claro .dijitDialogPaneContent { + background: #fff repeat-x top left; + border-top: 1px solid #769dc0; + padding:10px 8px; + position: relative; +} +.claro .dijitDialogPaneContentArea { + + margin: -10px -8px; + padding: 10px 8px; +} +.claro .dijitDialogPaneActionBar { + + background-color: #f2f2f2; + padding: 3px 5px 2px 7px; + text-align: right; + border-top: 1px solid #cdcdcd; + margin: 10px -8px -10px; +} +.claro .dijitDialogPaneActionBar .dijitButton { + float: none; +} +.claro .dijitDialogTitleBar { + + border: 1px solid #fff; + border-top:none; + background-color: #abd6ff; + background-image: url("images/titlebar.png"); + background-repeat:repeat-x; + padding: 5px 7px 4px 7px; +} +.claro .dijitDialogTitle { + + padding: 0px 1px; + font-size:1.091em; +} +.claro .dijitDialogCloseIcon { + + background: url("images/dialogCloseIcon.png"); + background-repeat:no-repeat; + position: absolute; + right: 5px; + height: 15px; + width: 21px; +} +.dj_ie6 .claro .dijitDialogCloseIcon { + background-image: url("images/dialogCloseIcon8bit.png"); +} +.claro .dijitDialogCloseIconHover { + background-position:-21px; +} +.claro .dijitDialogCloseIconActive { + background-position:-42px; +} +.claro .dijitTooltip, +.claro .dijitTooltipDialog { + + background: transparent; +} +.dijitTooltipBelow { + + padding-top: 13px; + padding-left:3px; + padding-right:3px; +} +.dijitTooltipAbove { + + padding-bottom: 13px; + padding-left:3px; + padding-right:3px; +} +.claro .dijitTooltipContainer { + + background-color:#fff; + background-image:url("images/tooltip.png"); + background-repeat:repeat-x; + background-position:-575px 100%; + border:1px solid #769DC0; + padding:6px 8px; + border-radius: 4px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + box-shadow:0px 1px 3px rgba(0,0,0,0.25); + -webkit-box-shadow:0px 1px 3px rgba(0,0,0,0.25); + -moz-box-shadow: 0px 1px 3px rgba(0,0,0,0.25); + font-size: 1em; +} +.dj_ie6 .claro .dijitTooltipContainer { + background-image: none; +} +.claro .dijitTooltipConnector { + + border: 0px; + z-index: 2; + background-image:url("images/tooltip.png"); + background-repeat:no-repeat; + width:16px; + height:14px; +} +.dj_ie6 .claro .dijitTooltipConnector { + background-image:url("images/tooltip8bit.png"); +} +.claro .dijitTooltipABRight .dijitTooltipConnector { + + left: auto !important; + right: 3px; +} +.claro .dijitTooltipBelow .dijitTooltipConnector { + + top: 0px; + left: 3px; + background-position:-31px 0%; + width:16px; + height:14px; +} +.claro .dijitTooltipAbove .dijitTooltipConnector { + + bottom: 0px; + left: 3px; + background-position:-15px 0%; + width:16px; + height:14px; +} +.dj_ie7 .claro .dijitTooltipAbove .dijitTooltipConnector, +.dj_ie6 .claro .dijitTooltipAbove .dijitTooltipConnector { + bottom: -1px; +} +.claro .dijitTooltipLeft { + padding-right: 14px; +} +.dj_ie6 .claro .dijitTooltipLeft { + padding-left: 15px; +} +.claro .dijitTooltipLeft .dijitTooltipConnector { + + right: 0px; + bottom: 3px; + background-position:0px 0%; + width:16px; + height:14px; +} +.claro .dijitTooltipRight { + padding-left: 14px; +} +.claro .dijitTooltipRight .dijitTooltipConnector { + + left: 0px; + bottom: 3px; + background-position:-48px 0%; + width:16px; + height:14px; +} +.claro .dijitDialogUnderlay { + background: #fff; +} diff --git a/lib/dijit/themes/claro/Dialog_rtl.css b/lib/dijit/themes/claro/Dialog_rtl.css new file mode 100644 index 000000000..7bb72e75a --- /dev/null +++ b/lib/dijit/themes/claro/Dialog_rtl.css @@ -0,0 +1,9 @@ + +.claro .dijitDialogRtl .dijitDialogCloseIcon { + right: auto; + left: 5px; +} +.claro .dijitDialogRtl .dijitDialogPaneActionBar { + text-align: left; + padding: 3px 7px 2px 5px; +} diff --git a/lib/dijit/themes/claro/Editor.css b/lib/dijit/themes/claro/Editor.css new file mode 100644 index 000000000..b9af7e798 --- /dev/null +++ b/lib/dijit/themes/claro/Editor.css @@ -0,0 +1,36 @@ + +.claro .dijitEditorIFrameContainer{ + padding:3px 3px 1px 10px; +} +.claro .dijitEditorIFrame { + background-color: #fff; +} +.claro .dijitEditor { + border: 1px solid #b5bcc7; +} +.claro .dijitEditor .dijitEditorIFrameContainer{ + background-color: #fff; + background-image: url('form/images/textBox_back.png'); + background-repeat:repeat-x; +} +.dj_ie6 .claro .dijitEditor .dijitEditorIFrameContainer{ + background-image: none; +} +.claro .dijitEditorHover .dijitEditorIFrameContainer, +.claro .dijitEditorHover .dijitEditorIFrameContainer .dijitEditorIFrame{ + background-color: #eef7ff; +} +.claro .dijitEditorFocused .dijitEditorIFrameContainer, +.claro .dijitEditorFocused .dijitEditorIFrameContainer .dijitEditorIFrame{ + + background-color: #fff; +} +.claro .dijitEditorDisabled { + border: 1px solid #d3d3d3; + color: #818181; +} +.claro .dijitDisabled .dijitEditorIFrame, +.claro .dijitDisabled .dijitEditorIFrameContainer { + background-color: #efefef; + background-image: none; +} diff --git a/lib/dijit/themes/claro/Editor_rtl.css b/lib/dijit/themes/claro/Editor_rtl.css new file mode 100644 index 000000000..b09efaac8 --- /dev/null +++ b/lib/dijit/themes/claro/Editor_rtl.css @@ -0,0 +1,4 @@ + +.claro .dijitEditorRtl .dijitEditorIFrameContainer{ + padding:3px 10px 1px 3px; +} diff --git a/lib/dijit/themes/claro/InlineEditBox.css b/lib/dijit/themes/claro/InlineEditBox.css new file mode 100644 index 000000000..b92c24e97 --- /dev/null +++ b/lib/dijit/themes/claro/InlineEditBox.css @@ -0,0 +1,11 @@ + +.claro .dijitInlineEditBoxDisplayMode { + border: 1px solid transparent; +} +.claro .dijitInlineEditBoxDisplayModeHover { + background-color: #e2f1ff; + border: solid 1px #769dc0; +} +.dj_ie6 .claro .dijitInlineEditBoxDisplayMode { + border: none; +} diff --git a/lib/dijit/themes/claro/Menu.css b/lib/dijit/themes/claro/Menu.css new file mode 100644 index 000000000..4bb0be6e0 --- /dev/null +++ b/lib/dijit/themes/claro/Menu.css @@ -0,0 +1,143 @@ + +.claro .dijitMenuBar { + border: 1px solid #b5bcc7; + margin: 0px; + padding: 0px; + background-color: #e6e6e7; + background-image: url("images/commonHighlight.png"); + background-position:0px 0px; + background-repeat:repeat-x; +} +.dj_ie6 .claro .dijitMenuBar { + background-image:none; +} +.claro .dijitMenu { + background-repeat:repeat-y; + background-color:#fff; + border: 1px solid #769dc0; + + margin: -1px 0; +} +.claro .dijitMenuBar .dijitMenuItem { + padding: 6px 10px 7px; + background-position:0px 100px; + color:#4a4a4a; + margin:-1px; +} +.claro .dijitMenuItem { + background-image: url("images/menuHighlight.png"); + background-position:0px -40px; + background-repeat:repeat-x; +} +.claro .dijitMenuTable { + border-collapse:separate; + border-spacing:0 0; + padding:0px; +} +.claro .dijitMenuItem td{ + padding:1px; +} +.claro .dijitMenuPassive .dijitMenuItemHover, +.claro .dijitMenuPassive .dijitMenuItemSelected { + background-color: #abd6ff; + border:solid 1px #769dc0; + background-position:0px 0px; + color:#000; + padding: 5px 9px 6px; +} +.claro .dijitMenuPassive .dijitMenuItemActive{ + background-position:0px -177px; +} +.dj_ie6 .claro .dijitMenuItem, +.dj_ie6 .claro .dijitMenuPassive .dijitMenuItem { + background-image: none; +} +.claro .dijitMenuActive .dijitMenuItemHover, +.claro .dijitMenuActive .dijitMenuItemSelected { + border:solid 1px #769dc0; + padding: 5px 9px 6px; + background-color: #9dcfff; + background-position:0px 0px; + color:#000; +} +.dj_ie .claro .dijitMenuActive .dijitMenuItemHover, +.dj_ie .claro .dijitMenuActive .dijitMenuItemSelected, +.dj_ie .claro .dijitMenuPassive .dijitMenuItemHover, +.dj_ie .claro .dijitMenuPassive .dijitMenuItemSelected { + padding-top: 6px; + padding-bottom: 5px; + margin-top: -3px; +} +.claro .dijitMenuActive .dijitMenuItemActive{ + background-color: #7dbefa; + background-position:0px -177px; +} +.claro .dijitMenuItemActive { + background-position:0px -177px; +} +.claro td.dijitMenuItemIconCell { + padding: 2px; + margin: 0px 0px 0px 4px; +} +.claro td.dijitMenuItemLabel { + padding-top: 5px; + padding-bottom: 5px; +} +.claro .dijitMenuExpand { + width: 7px; + height: 7px; + background-image: url('images/spriteArrows.png'); + background-position: -14px 0px; + margin-right:3px; +} +.claro .dijitMenuItemDisabled .dijitMenuItemIconCell { + opacity:1; +} +.claro .dijitMenuSeparatorTop { + height: auto; + margin-top:1px; + border-bottom: 1px solid #b5bcc7 +} +.claro .dijitMenuSeparatorBottom{ + height: auto; + margin-bottom:1px; +} +.claro .dijitCheckedMenuItemIconChar { + display: none; +} +.claro .dijitCheckedMenuItemIcon { + background-image: url('form/images/checkboxRadioButtonStates.png'); + background-repeat:no-repeat; + background-position: -15px 50%; + width:15px; + height:16px; +} +.dj_ie6 .claro .dijitCheckedMenuItemIcon { + background-image: url('form/images/checkboxAndRadioButtons_IE6.png'); +} +.claro .dijitCheckedMenuItemChecked .dijitCheckedMenuItemIcon { + background-position: 0 50%; +} +.claro .dijitComboBoxMenu { + margin-left:0px; + background-image: none; +} +.claro .dijitComboBoxMenu .dijitMenuItem{ + padding:2px 0px; + text-indent:6px; + border-width:1px 0px 1px 0px; + border-style:solid; + border-color:#fff; +} +.claro .dijitComboBoxMenu .dijitMenuItemSelected { + color:#000; + border-color:#768dc0; + background-color:#abd6ff; +} +.claro .dijitComboBoxMenuActive .dijitMenuItemSelected { + background-position:0px -177px; + background-color:#7dbefa; +} +.claro .dijitMenuPreviousButton, .claro .dijitMenuNextButton { + font-style: italic; +} diff --git a/lib/dijit/themes/claro/Menu_rtl.css b/lib/dijit/themes/claro/Menu_rtl.css new file mode 100644 index 000000000..6ba061bec --- /dev/null +++ b/lib/dijit/themes/claro/Menu_rtl.css @@ -0,0 +1,8 @@ +.claro .dijitMenuItemRtl .dijitMenuExpand { + background-position: -7px 0px; + margin-right: 0px; + margin-left: 3px; +} +.claro .dijitMenuItemRtl .dijitMenuItemIcon { + margin:0px 4px 0px 0px; +} diff --git a/lib/dijit/themes/claro/ProgressBar.css b/lib/dijit/themes/claro/ProgressBar.css new file mode 100644 index 000000000..13e8f266f --- /dev/null +++ b/lib/dijit/themes/claro/ProgressBar.css @@ -0,0 +1,28 @@ + + +.claro .dijitProgressBar { + margin:2px 0px 2px 0px; +} +.claro .dijitProgressBarEmpty { + + background:#fff url("images/progressBarEmpty.png") repeat-none left; + border-color: #769dc0; +} +.claro .dijitProgressBarTile { + + background:#9dcfff url("images/progressBarFull.png") repeat-x top; +} +.dj_ie6 .claro .dijitProgressBarTile { + background-image: none; +} +.claro .dijitProgressBarFull { + border-right:1px solid #769dc0; +} +.claro .dijitProgressBarLabel { + + color:#293a4b; +} +.claro .dijitProgressBarIndeterminate .dijitProgressBarTile { + + background:#cad2de url("images/progressBarAnim.gif") repeat-x top; +} diff --git a/lib/dijit/themes/claro/TimePicker.css b/lib/dijit/themes/claro/TimePicker.css new file mode 100644 index 000000000..a5ddf9129 --- /dev/null +++ b/lib/dijit/themes/claro/TimePicker.css @@ -0,0 +1,102 @@ + +.claro .dijitTimePicker .dijitButtonNode { + padding: 0 0; + border-radius: 0; + -moz-border-radius: 0; + -webkit-border-radius: 0; +} +.claro .dijitTimePicker{ + border:1px #b5bcc7 solid; + border-top:none; + border-bottom:none; + background-color:#fff; +} +.claro .dijitTimePickerItem{ + + background-image: url("images/commonHighlight.png"); + background-position:0px -1px; + background-repeat:repeat-x; + border-top:solid 1px #b5bcc7; + border-bottom:solid 1px #b5bcc7; + margin-right:-1px; + margin-left:-1px; + margin-top:-1px; +} +.dj_ie6 .claro .dijitTimePickerItem { + background-image: none; +} +.claro .dijitTimePickerTick { + + color:#7a7a7a; + background-color:#f2f2f2; + font-size:0.818em; +} +.claro .dijitTimePickerMarker { + + color:#000; + background-color:#e3f2ff; + font-size: 1em; + white-space: nowrap; +} +.claro .dijitTimePickerTickHover, +.claro .dijitTimePickerMarkerHover, +.claro .dijitTimePickerMarkerSelected, +.claro .dijitTimePickerTickSelected { + background-color: #83c0fa; + color:#000; + border:solid 1px #b5bcc7; + margin-left:-7px; + margin-right:-7px; +} +.claro .dijitTimePickerMarkerSelected, +.claro .dijitTimePickerTickSelected { + font-size: 1em; + } +.dj_ie .claro .dijitTimePickerTickHover, +.dj_ie .claro .dijitTimePickerMarkerHover, +.dj_ie .claro .dijitTimePickerMarkerSelected, +.dj_ie .claro .dijitTimePickerTickSelected { + width: 114%; +} +.dj_ie6 .claro .dijitTimePickerTickHover, +.dj_ie6 .claro .dijitTimePickerMarkerHover, +.dj_ie6 .claro .dijitTimePickerMarkerSelected, +.dj_ie6 .claro .dijitTimePickerTickSelected { + position: relative; + zoom: 1; +} +.claro .dijitTimePickerTick .dijitTimePickerItemInner { + padding:1px; + margin:0px; +} +.claro .dijitTimePicker .dijitButtonNode { + border-left:none; + border-right:none; + border-color:#b5bcc7; + background-color: #f6f7fa; + background-image: url("images/commonHighlight.png"); + background-position:0px -1px; + background-repeat:repeat-x; +} +.dj_ie6 .claro .dijitTimePicker .dijitButtonNode { + background-image: none; +} +.claro .dijitTimePicker .dijitArrowButtonInner{ + height: 100%; + background-image: url("form/images/commonFormArrows.png"); + background-repeat: no-repeat; + background-position:-140px 45%; +} +.claro .dijitTimePicker .dijitDownArrowButton .dijitArrowButtonInner{ + background-position:-35px 45%; +} +.claro .dijitTimePicker .dijitUpArrowHover, +.claro .dijitTimePicker .dijitDownArrowHover { + background-color: #abd6ff; +} +.claro .dijitTimePicker .dijitUpArrowHover .dijitArrowButtonInner { + background-position:-175px 45%; +} +.claro .dijitTimePicker .dijitDownArrowHover .dijitArrowButtonInner { + background-position:-70px 45%; +} diff --git a/lib/dijit/themes/claro/TimePicker_rtl.css b/lib/dijit/themes/claro/TimePicker_rtl.css new file mode 100644 index 000000000..a1bf2fbf0 --- /dev/null +++ b/lib/dijit/themes/claro/TimePicker_rtl.css @@ -0,0 +1,9 @@ + +.dj_ie .claro .dijitTimePickerRtl .dijitTimePickerTickHover, +.dj_ie .claro .dijitTimePickerRtl .dijitTimePickerMarkerHover, +.dj_ie .claro .dijitTimePickerRtl .dijitTimePickerMarkerSelected, +.dj_ie .claro .dijitTimePickerRtl .dijitTimePickerTickSelected { + margin-left:-6px; + margin-right:-8px; + width: 114%; +} diff --git a/lib/dijit/themes/claro/TitlePane.css b/lib/dijit/themes/claro/TitlePane.css new file mode 100644 index 000000000..a0191fc53 --- /dev/null +++ b/lib/dijit/themes/claro/TitlePane.css @@ -0,0 +1,54 @@ + +.claro .dijitTitlePaneTitle { + background-color: #e6e6e7; + background-image: url("images/titlebar.png"); + background-repeat:repeat-x; + border:1px solid #b5bcc7; + padding: 0px 7px 3px 7px; + min-height:17px; + color:#131313; +} +.dj_ie6 .claro .dijitTitlePaneTitle { + background-image: none; +} +.claro .dijitTitlePaneTitleHover { + background-color: #abd6ff; + border-color: #769dc0; +} +.claro .dijitTitlePaneTitleActive { + background-color: #7dbefa; + border-color: #769dc0; + background-position:0px -136px; +} +.claro .dijitTitlePaneTitleFocus { + margin-top:3px; + padding-bottom:2px; +} +.claro .dijitTitlePane .dijitArrowNode { + background-image: url('images/spriteArrows.png'); + background-repeat: no-repeat; + height: 8px; + width: 7px; +} +.claro .dijitTitlePane .dijitOpen .dijitArrowNode { + background-position: 0px 0px; +} +.claro .dijitTitlePane .dijitClosed .dijitArrowNode { + background-position: -14px 0px; +} +.claro .dijitTitlePaneFocused .dijitTitlePaneTextNode { + color:#000; +} +.claro .dijitTitlePaneContentOuter { + background: #ffffff; + border:1px solid #b5bcc7; + border-top:none; +} +.claro .dijitTitlePaneContentInner { + padding:10px; +} +.claro .dijitTitlePaneTextNode { + margin-left: 4px; + margin-right: 4px; + vertical-align:text-top; +} diff --git a/lib/dijit/themes/claro/TitlePane_rtl.css b/lib/dijit/themes/claro/TitlePane_rtl.css new file mode 100644 index 000000000..09ca395f7 --- /dev/null +++ b/lib/dijit/themes/claro/TitlePane_rtl.css @@ -0,0 +1,4 @@ + +.claro .dijitTitlePaneRtl .dijitClosed .dijitArrowNode { + background-position: -7px 0px; +} diff --git a/lib/dijit/themes/claro/Toolbar.css b/lib/dijit/themes/claro/Toolbar.css new file mode 100644 index 000000000..2189dcd4d --- /dev/null +++ b/lib/dijit/themes/claro/Toolbar.css @@ -0,0 +1,133 @@ + +.claro .dijitToolbar { + border-bottom: 1px solid #b5bcc7; + background-color: #f1f1f1; + background-image: url("images/commonHighlight.png"); + background-position:0px 0px; + background-repeat:repeat-x; + padding: 2px 0px 2px 4px; + zoom: 1; +} +.claro .dijitToolbar label { + padding: 0px 3px 0 6px; +} +.claro .dijitToolbar .dijitButtonNode { + border:none; + padding: 2px; + background-image: url("images/commonHighlight.png"); + background-position:0 -30px; + background-repeat:repeat-x; + background-color:rgba(171,214,255,0); + border-radius: 2px; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + -moz-box-shadow: none; + -webkit-box-shadow: none; + -webkit-transition-property:background-color; + -webkit-transition-duration:.3s, .35s; +} +.claro .dijitToolbar .dijitComboButton .dijitButtonNode{ + padding: 3px 2px 3px 2px; +} +.dj_ie .claro .dijitToolbar .dijitButtonNode { + background-color: transparent; +} +.dj_ie6 .claro .dijitToolbar .dijitButtonNode { + background: none; +} +.claro .dijitToolbar .dijitComboBox .dijitButtonNode { + padding: 0px; +} +.claro .dijitToolbar .dijitComboButton { + padding: 1px; +} +.claro .dijitToolbar .dijitButtonHover .dijitButtonNode, +.claro .dijitToolbar .dijitDropDownButtonHover .dijitButtonNode, +.claro .dijitToolbar .dijitToggleButtonHover .dijitButtonNode { + background-position:0 0; + border:solid 1px #769dc0; + background-color: #abd6ff; + padding: 1px; +} +.claro .dijitToolbar .dijitComboButtonHover { + background-color: #abd6ff; + border: solid 1px #769dc0; + padding: 0px; +} +.claro .dijitToolbar .dijitComboButtonHover .dijitButtonNode, +.claro .dijitToolbar .dijitComboButtonHover .dijitDownArrowButton { + background-position:0 0; + padding: 2px; +} +.claro .dijitToolbar .dijitComboButtonHover .dijitDownArrowButton { + background-color: #7dd6fa; +} +.claro .dijitToolbar .dijitButtonActive .dijitButtonNode, +.claro .dijitToolbar .dijitDropDownButtonActive .dijitButtonNode, +.claro .dijitToolbar .dijitToggleButtonActive .dijitButtonNode { + border:solid 1px #769dc0; + background-color:#7dbefa; + background-position:0px -177px; + padding: 1px; +} +.claro .dijitToolbar .dijitComboButtonActive { + -webkit-transition-duration:.2s; + border: solid 1px #769dc0; + padding: 0px; +} +.claro .dijitToolbar .dijitComboButtonActive .dijitButtonNode { + background-color: #7dbefa; + background-position:0px -177px; + padding: 2px; +} +.claro .dijitToolbar .dijitComboButton .dijitDownArrowButtonActive { + background-color: #7dbefa; +} +.claro .dijitToolbar .dijitToggleButtonChecked .dijitButtonNode { + border-color: #769dc0; + background-color:#fff; + padding: 1px; +} +.dj_ie6 .claro .dijitToolbar .dijitButtonContents, +.dj_ie7 .claro .dijitToolbar .dijitButtonContents { + margin: -2px 0; + padding: 0; +} +.dj_ie6 .claro .dijitToolbar { + background-image: none; +} +.dj_ie6 .claro .dijitToolbar .dijitButtonNode { + margin: 1px; + border: none; +} +.dj_ie6 .claro .dijitToolbar .dijitButtonHover .dijitButtonNode, +.dj_ie6 .claro .dijitToolbar .dijitDropDownButtonHover .dijitButtonNode, +.dj_ie6 .claro .dijitToolbar .dijitComboButton .dijitButtonNodeHover, +.dj_ie6 .claro .dijitToolbar .dijitComboButton .dijitDownArrowButtonHover, +.dj_ie6 .claro .dijitToolbar .dijitToggleButtonHover .dijitButtonNode, +.dj_ie6 .claro .dijitToolbar .dijitButtonActive .dijitButtonNode, +.dj_ie6 .claro .dijitToolbar .dijitDropDownButtonActive .dijitButtonNode, +.dj_ie6 .claro .dijitToolbar .dijitComboButton .dijitButtonNodeActive, +.dj_ie6 .claro .dijitToolbar .dijitComboButton .dijitDownArrowButtonActive, +.dj_ie6 .claro .dijitToolbar .dijitToggleButtonActive .dijitButtonNode, +.claro .dijitToolbar .dijitToggleButtonChecked .dijitButtonNode { + margin: 0; + border-width: 1px; + border-style: solid; + background-image: none; +} +.dj_ie6 .claro .dijitToolbar .dijitComboButton .dijitButtonNodeHover, +.dj_ie6 .claro .dijitToolbar .dijitComboButton .dijitDownArrowButtonHover, +.dj_ie6 .claro .dijitToolbar .dijitComboButton .dijitButtonNodeActive, +.dj_ie6 .claro .dijitToolbar .dijitComboButton .dijitDownArrowButtonActive { + padding: 1px; +} +.claro .dijitToolbarSeparator { + + background: url('../../icons/images/editorIconsEnabled.png'); +} +.claro .dijitDisabled .dijitToolbar { + background:none; + background-color:#f5f5f5; + border-bottom: 1px solid #d3d3d3; +} diff --git a/lib/dijit/themes/claro/Tree.css b/lib/dijit/themes/claro/Tree.css new file mode 100644 index 000000000..739a4931e --- /dev/null +++ b/lib/dijit/themes/claro/Tree.css @@ -0,0 +1,88 @@ + +.claro .dijitTreeNode { + zoom: 1; +} +.claro .dijitTreeIsRoot { + background-image: none; +} +.claro .dijitTreeRow { + + padding: 4px 1px 2px 0px; + margin-left: 1px; + background-image: url("images/commonHighlight.png"); + background-position:0px 0px; + background-repeat:repeat-x; + border-color: rgba(118,157,192,0); + background-color: rgba(171,214,255,0); + -webkit-transition-property:background-color, border-color; + -webkit-transition-duration:.25s ; + -webkit-transition-timing-function: ease-out; +} +.dj_ie6 .claro .dijitTreeRow { + background-image: none; +} +.claro .dijitTreeRowSelected { + background-repeat:repeat-x; + background-color:#d8edff; + padding: 3px 0px 1px; + margin-left: 0px; + border:solid 1px #c3e2fd; + color:#000; +} +.claro .dijitTreeRowHover { + background-color:#abd6ff; + padding: 3px 0px 1px; + margin-left: 0px; + border:solid 1px #769dc0; + color:#000; + -webkit-transition-duration:.25s ; +} +.claro .dijitTreeRowActive { + background-color:#7dbefa; + background-position:0px -177px; + padding: 3px 0px 1px; + margin-left: 0px; + border:solid 1px #769dc0; + color:#000; +} +.dj_ie6 .claro .dijitTreeRowActive { + background-image: none; +} +.claro .dijitTreeRowFocused { + background-repeat: repeat; +} +.claro .dijitTreeExpando { + background-image: url('images/treeExpandImages.png'); + width: 16px; + height: 16px; + background-position: -35px 0px +} +.dj_ie6 .claro .dijitTreeExpando { + background-image: url('images/treeExpandImages8bit.png'); +} +.claro .dijitTreeRowHover .dijitTreeExpandoOpened { + background-position: -53px 0px; +} +.claro .dijitTreeExpandoClosed { + background-position: 1px 0px; +} +.claro .dijitTreeRowHover .dijitTreeExpandoClosed { + background-position: -17px 0px; +} +.claro .dijitTreeExpandoLeaf{ + background-image:none; +} +.claro .dijitTreeExpandoLoading { + background-image: url('images/loadingAnimation.gif'); +} +.claro .dijitTreeNode .dojoDndItemBefore, +.claro .dijitTreeNode .dojoDndItemAfter { + border-bottom: none; + border-top: none; +} +.claro .dijitTreeNode .dojoDndItemBefore .dijitTreeContent { + border-top: 2px solid #369; +} +.claro .dijitTreeNode .dojoDndItemAfter .dijitTreeContent { + border-bottom: 2px solid #369; +} diff --git a/lib/dijit/themes/claro/claro.css b/lib/dijit/themes/claro/claro.css new file mode 100644 index 000000000..7ed7f1856 --- /dev/null +++ b/lib/dijit/themes/claro/claro.css @@ -0,0 +1,4689 @@ + +.dijitReset { + + margin:0; + border:0; + padding:0; + line-height:normal; + font: inherit; + color: inherit; +} +.dijit_a11y .dijitReset { + -moz-appearance: none; +} +.dijitInline { + + display:inline-block; + #zoom: 1; + #display:inline; + border:0; + padding:0; + vertical-align:middle; + #vertical-align: auto; +} +.dijitHidden { + + display: none !important; +} +.dijitVisible { + + display: block !important; + position: relative; +} +.dijitInputContainer { + + #zoom: 1; + overflow: hidden; + float: none !important; + position:relative; +} +.dj_ie INPUT.dijitTextBox, +.dj_ie .dijitTextBox INPUT { + font-size: 100%; +} +.dijitTextBox .dijitSpinnerButtonContainer, +.dijitTextBox .dijitArrowButtonContainer, +.dijitTextBox .dijitValidationContainer { + float: right; + text-align: center; +} +.dijitTextBox INPUT.dijitInputField { + + padding-left: 0 !important; + padding-right: 0 !important; +} +.dijitTextBox .dijitValidationContainer { + display: none; +} +.dijitInlineTable { + + display:inline-table; + display:inline-block; + #zoom: 1; + #display:inline; + box-sizing: content-box; -moz-box-sizing: content-box; + border:0; + padding:0; +} +.dijitTeeny { + font-size:1px; + line-height:1px; +} +.dijitOffScreen { + position: absolute; + visibility: hidden; + left: 50%; + top: -10000px; +} +.dijitPopup { + position: absolute; + background-color: transparent; + margin: 0; + border: 0; + padding: 0; +} +.dijit_a11y .dijitPopup, +.dijit_ally .dijitPopup DIV, +.dijit_a11y .dijitPopup TABLE, +.dijit_a11y .dijitTooltipContainer { + background-color: white !important; +} +.dijitPositionOnly { + + padding: 0 !important; + border: 0 !important; + background-color: transparent !important; + background-image: none !important; + height: auto !important; + width: auto !important; +} +.dijitNonPositionOnly { + + float: none !important; + position: static !important; + margin: 0 0 0 0 !important; + vertical-align: middle !important; +} +.dijitBackgroundIframe { + + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + z-index: -1; + border: 0; + padding: 0; + margin: 0; +} +.dijitDisplayNone { + + display:none !important; +} +.dijitContainer { + + overflow: hidden; +} +.dijit_a11y * { + background-image:none !important; +} +.dijit_a11y .dijitIcon, +.dijit_a11y DIV.dijitArrowButtonInner, +.dijit_a11y SPAN.dijitArrowButtonInner, +.dijit_a11y IMG.dijitArrowButtonInner, +.dijit_a11y .dijitCalendarIncrementControl { + + display: none; +} +.dijitSpinner DIV.dijitArrowButtonInner { + display: block; +} +.dijit_a11y .dijitA11ySideArrow { + display: inline !important; + cursor: pointer; +} +.dijit_a11y .dijitCalendarDateLabel { + padding: 1px; +} +.dijit_a11y .dijitCalendarSelectedDate .dijitCalendarDateLabel { + border-style: dotted !important; + border-width: 1px; + padding: 0px; +} +.dijit_a11y .dijitCalendarDateTemplate { + padding-bottom: 0.1em !important; +} +.dijit_a11y .dijit * { + background:white !important; + color:black !important; +} +.dijit_a11y .dijitButtonNode { + border-color: black!important; + border-style: outset!important; + border-width: medium!important; +} +.dijit_a11y .dijitTextBoxReadOnly .dijitInputField, +.dijit_a11y .dijitTextBoxReadOnly .dijitButtonNode { + border-style: outset!important; + border-width: medium!important; + border-color: #999 !important; + color:#999 !important; +} +.dijitButtonNode * { + vertical-align: middle; +} +.dijitButtonNode .dijitArrowButtonInner { + + background: no-repeat center; + width: 12px; + height: 12px; + direction: ltr; +} +.dijitLeft { + + background-position:left top; + background-repeat:no-repeat; +} +.dijitStretch { + + white-space:nowrap; + background-repeat:repeat-x; +} +.dijitRight { + + #display:inline; + background-position:right top; + background-repeat:no-repeat; +} +.dijitToggleButton, +.dijitButton, +.dijitDropDownButton, +.dijitComboButton { + + margin: 0.2em; +} +.dijitButtonContents { + display: block; +} +td.dijitButtonContents { + display: table-cell; +} +.dijitButtonNode IMG { + + vertical-align:middle; + +} +TABLE.dijitComboButton { + + border-collapse: collapse; + border:0; + padding:0; + margin:0; +} +.dijitToolbar .dijitComboButton { + + border-collapse: separate; +} +.dijitToolbar .dijitToggleButton, +.dijitToolbar .dijitButton, +.dijitToolbar .dijitDropDownButton, +.dijitToolbar .dijitComboButton { + margin: 0; +} +.dijitToolbar .dijitButtonContents { + + padding: 1px 2px; +} +.dj_ie .dijitComboButton { + + margin-bottom: -3px; +} +.dj_webkit .dijitToolbar .dijitDropDownButton { + padding-left: 0.3em; +} +.dj_gecko .dijitToolbar .dijitButtonNode::-moz-focus-inner { + padding:0; +} +.dijitButtonNode { + + border:1px solid gray; + margin:0; + line-height:normal; + vertical-align: middle; + #vertical-align: auto; + text-align:center; + white-space: nowrap; +} +.dj_webkit .dijitSpinner .dijitSpinnerButtonContainer { + + line-height:inherit; +} +.dijitTextBox .dijitButtonNode { + border-width: 0; +} +.dijitButtonNode, +.dijitButtonNode * { + cursor: pointer; +} +.dj_ie .dijitButtonNode { + + zoom: 1; +} +.dj_ie .dijitButtonNode button { + + overflow: visible; +} +DIV.dijitArrowButton { + float: right; +} +.dijitTextBox { + border: solid black 1px; + #overflow: hidden; + width: 15em; + vertical-align: middle; + #vertical-align: auto; +} +.dijitTextBoxReadOnly, +.dijitTextBoxDisabled { + color: gray; +} +.dj_webkit .dijitTextBoxDisabled INPUT { + color: #eee; +} +.dj_webkit TEXTAREA.dijitTextAreaDisabled { + color: #333; +} +.dj_gecko .dijitTextBoxReadOnly INPUT, +.dj_gecko .dijitTextBoxDisabled INPUT { + -moz-user-input: none; +} +.dijitPlaceHolder { + + color: #AAAAAA; + font-style: italic; + position: absolute; + top: 0; + left: 0; + #filter: ""; +} +.dijitTimeTextBox { + width: 8em; +} +.dijitTextBox INPUT:focus { + outline: none; +} +.dijitTextBoxFocused { + outline: auto 5px -webkit-focus-ring-color; +} +.dijitTextBox INPUT { + float: left; +} +.dijitInputInner { + + border:0 !important; + vertical-align:middle !important; + background-color:transparent !important; + width:100% !important; + + padding-left: 0 !important; + padding-right: 0 !important; + margin-left: 0 !important; + margin-right: 0 !important; +} +.dijit_a11y .dijitTextBox INPUT { + margin: 0 !important; +} +.dijitTextBoxError INPUT.dijitValidationInner, +.dijitTextBox INPUT.dijitArrowButtonInner { + + text-indent: -1em !important; + direction: ltr !important; + text-align: left !important; + height: auto !important; + #text-indent: 0 !important; + #letter-spacing: -5em !important; + #text-align: right !important; +} +.dj_ie .dijitTextBox INPUT, +.dj_ie INPUT.dijitTextBox { + overflow-y: visible; + line-height: normal; +} +.dj_ie7 .dijitTextBox INPUT.dijitValidationInner, +.dj_ie7 .dijitTextBox INPUT.dijitArrowButtonInner { + line-height: 86%; +} +.dj_ie6 .dijitTextBox INPUT, +.dj_ie6 INPUT.dijitTextBox, +.dj_iequirks .dijitTextBox INPUT.dijitValidationInner, +.dj_iequirks .dijitTextBox INPUT.dijitArrowButtonInner, +.dj_iequirks .dijitTextBox INPUT.dijitSpinnerButtonInner, +.dj_iequirks .dijitTextBox INPUT.dijitInputInner, +.dj_iequirks INPUT.dijitTextBox { + line-height: 100%; +} +.dijit_a11y INPUT.dijitValidationInner, +.dijit_a11y INPUT.dijitArrowButtonInner { + + text-indent: 0 !important; + width: 1em !important; + #text-align: left !important; +} +.dijitTextBoxError .dijitValidationContainer { + display: inline; + cursor: default; +} +.dijitSpinner .dijitSpinnerButtonContainer, +.dijitComboBox .dijitArrowButtonContainer { + + border-width: 0 0 0 1px !important; +} +.dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode { + + border-width: 0; +} +.dj_ie .dijit_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode { + clear: both; +} +.dijit_a11y .dijitTextBox .dijitValidationContainer, +.dijit_a11y .dijitTextBox .dijitSpinnerButtonContainer, +.dijit_a11y .dijitComboBox .dijitArrowButtonContainer { + + border: solid black !important; + border-width: 0 0 0 1px !important; +} +.dj_ie .dijitToolbar .dijitComboBox { + + vertical-align: middle; +} +.dijitTextBox .dijitSpinnerButtonContainer { + width: 1em; + position: relative !important; + overflow: hidden; +} +.dijitSpinner .dijitSpinnerButtonInner { + width:1em; + visibility:hidden !important; + overflow-x:hidden; +} +.dijitComboBox .dijitButtonNode, +.dijitSpinnerButtonContainer .dijitButtonNode { + border-width: 0; +} +.dijit_a11y .dijitSpinnerButtonContainer .dijitButtonNode { + border: 0 none !important; +} +.dijit_a11y .dijitTextBox .dijitSpinnerButtonContainer, +.dijit_a11y .dijitSpinner .dijitArrowButtonInner, +.dijit_a11y .dijitSpinnerButtonContainer INPUT { + width: 1em !important; +} +.dijit_a11y .dijitSpinner .dijitArrowButtonInner { + margin: 0 auto !important; +} +.dj_ie .dijit_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { + padding-left: 0.3em !important; + padding-right: 0.3em !important; + margin-left: 0.3em !important; + margin-right: 0.3em !important; + width: 1.4em !important; +} +.dj_ie7 .dijit_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { + padding-left: 0.0em !important; + padding-right: 0.0em !important; + width: 1em !important; +} +.dj_ie6 .dijit_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { + margin-left: 0.1em !important; + margin-right: 0.1em !important; + width: 1em !important; +} +.dj_iequirks .dijit_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { + margin-left: 0 !important; + margin-right: 0 !important; + width: 2em !important; +} +.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { + + padding: 0; + position: absolute !important; + right: 0; + float: none; + height: 50%; + width: 100%; + bottom: auto; + left: 0; + right: auto; +} +.dj_iequirks .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { + width: auto; +} +.dijit_a11y .dijitSpinnerButtonContainer .dijitArrowButton { + overflow: visible !important; +} +.dijitSpinner .dijitSpinnerButtonContainer .dijitDownArrowButton { + top: 50%; + border-top-width: 1px !important; +} +.dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton { + #bottom: 50%; + top: 0; +} +.dijitSpinner .dijitArrowButtonInner { + margin: auto; + overflow-x: hidden; + height: 100% !important; +} +.dj_iequirks .dijitSpinner .dijitArrowButtonInner { + height: auto !important; +} +.dijitSpinner .dijitArrowButtonInner .dijitInputField { + -moz-transform: scale(0.5); + -moz-transform-origin: center top; + -webkit-transform: scale(0.5); + -webkit-transform-origin: center top; + -o-transform: scale(0.5); + -o-transform-origin: center top; + transform: scale(0.5); + transform-origin: left top; + padding-top: 0; + padding-bottom: 0; + padding-left: 0 !important; + padding-right: 0 !important; + width: 100%; +} +.dj_ie .dijitSpinner .dijitArrowButtonInner .dijitInputField { + zoom: 50%; +} +.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButtonInner { + overflow: hidden; +} +.dijit_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { + width: 100%; +} +.dj_iequirks .dijit_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { + width: 1em; +} +.dijitSpinner .dijitArrowButtonInner .dijitInputField { + visibility: hidden; +} +.dijit_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { + vertical-align:top; + visibility: visible; +} +.dijit_a11y .dijitSpinnerButtonContainer { + width: 1em; +} +.dijit_a11y .dijitSpinnerButtonContainer .dijitButtonNode { + border-width: 1px 0px 0px 0px; + border-style: solid !important; +} +.dijitCheckBox, +.dijitRadio, +.dijitCheckBoxInput { + padding: 0; + border: 0; + width: 16px; + height: 16px; + background-position:center center; + background-repeat:no-repeat; + overflow: hidden; +} +.dijitCheckBox INPUT, +.dijitRadio INPUT { + margin: 0; + padding: 0; + display: block; +} +.dijitCheckBoxInput { + + opacity: 0.01; +} +.dj_ie .dijitCheckBoxInput { + filter: alpha(opacity=0); +} +.dijit_a11y .dijitCheckBox, +.dijit_a11y .dijitRadio { + + width: auto !important; + height: auto !important; +} +.dijit_a11y .dijitCheckBoxInput { + opacity: 1; + filter: none; + width: auto; + height: auto; +} +.dijitProgressBarEmpty { + + position:relative;overflow:hidden; + border:1px solid black; + z-index:0; +} +.dijitProgressBarFull { + + position:absolute; + overflow:hidden; + z-index:-1; + top:0; + width:100%; +} +.dj_ie6 .dijitProgressBarFull { + height:1.6em; +} +.dijitProgressBarTile { + + position:absolute; + overflow:hidden; + top:0; + left:0; + bottom:0; + right:0; + margin:0; + padding:0; + width:auto; + height:auto; + background-color:#aaa; + background-attachment: fixed; +} +.dijit_a11y .dijitProgressBarTile { + + border-width:2px; + border-style:solid; + background-color:transparent !important; +} +.dj_ie6 .dijitProgressBarTile { + + position:static; + + height:1.6em; +} +.dijitProgressBarIndeterminate .dijitProgressBarLabel { + visibility:hidden; +} +.dijitProgressBarIndeterminate .dijitProgressBarTile { + +} +.dijitProgressBarIndeterminateHighContrastImage { + display:none; +} +.dijit_a11y .dijitProgressBarIndeterminate .dijitProgressBarIndeterminateHighContrastImage { + display:block; + position:absolute; + top:0; + bottom:0; + margin:0; + padding:0; + width:100%; + height:auto; +} +.dijitProgressBarLabel { + display:block; + position:static; + width:100%; + text-align:center; + background-color:transparent !important; +} +.dijitTooltip { + position: absolute; + z-index: 2000; + display: block; + + left: 50%; + top: -10000px; + overflow: visible; +} +.dijitTooltipContainer { + border: solid black 2px; + background: #b8b5b5; + color: black; + font-size: small; +} +.dijitTooltipFocusNode { + padding: 2px 2px 2px 2px; +} +.dijitTooltipConnector { + position: absolute; +} +.dijit_a11y .dijitTooltipConnector { + display: none; +} +.dijitTooltipData { + display:none; +} +.dijitLayoutContainer { + position: relative; + display: block; + overflow: hidden; +} +body .dijitAlignTop, +body .dijitAlignBottom, +body .dijitAlignLeft, +body .dijitAlignRight { + position: absolute; + overflow: hidden; +} +body .dijitAlignClient { position: absolute; } +.dijitBorderContainer, .dijitBorderContainerNoGutter { + position:relative; + overflow: hidden; +} +.dijitBorderContainerPane, +.dijitBorderContainerNoGutterPane { + position: absolute !important; + z-index: 2; +} +.dijitBorderContainer > .dijitTextArea { + + resize: none; +} +.dijitGutter { + + position: absolute; + font-size: 1px; +} +.dijitSplitter { + position: absolute; + overflow: hidden; + z-index: 10; + background-color: #fff; + border-color: gray; + border-style: solid; + border-width: 0; +} +.dj_ie .dijitSplitter { + z-index: 1; +} +.dijitSplitterActive { + z-index: 11 !important; +} +.dijitSplitterCover { + position:absolute; + z-index:-1; + top:0; + left:0; + width:100%; + height:100%; +} +.dijitSplitterCoverActive { + z-index:3 !important; +} +.dj_ie .dijitSplitterCover { + background: white; + filter: alpha(opacity=0); +} +.dijitSplitterH { + height: 7px; + border-top:1px; + border-bottom:1px; + cursor: ns-resize; +} +.dijitSplitterV { + width: 7px; + border-left:1px; + border-right:1px; + cursor: ew-resize; +} +.dijitSplitContainer { + position: relative; + overflow: hidden; + display: block; +} +.dj_ff3 .dijit_a11y div.dijitSplitter:focus { + outline-style:dotted; + outline-width: 2px; +} +.dijitSplitPane { + position: absolute; +} +.dijitSplitContainerSizerH, +.dijitSplitContainerSizerV { + position:absolute; + font-size: 1px; + cursor: move; + cursor: w-resize; + background-color: ThreeDFace; + border: 1px solid; + border-color: ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight; + margin: 0; +} +.dijitSplitContainerSizerH .thumb, .dijitSplitterV .dijitSplitterThumb { + overflow:hidden; + position:absolute; + top:49%; +} +.dijitSplitContainerSizerV .thumb, .dijitSplitterH .dijitSplitterThumb { + position:absolute; + left:49%; +} +.dijitSplitterShadow, +.dijitSplitContainerVirtualSizerH, +.dijitSplitContainerVirtualSizerV { + font-size: 1px; + background-color: ThreeDShadow; + -moz-opacity: 0.5; + opacity: 0.5; + filter: Alpha(Opacity=50); + margin: 0; +} +.dj_ie .dijitSplitterV, .dijitSplitContainerVirtualSizerH { + cursor: w-resize; +} +.dj_ie .dijitSplitterH, .dijitSplitContainerSizerV, .dijitSplitContainerVirtualSizerV { + cursor: n-resize; +} +.dijit_a11y .dijitSplitterH { + border-top:1px solid #d3d3d3 !important; + border-bottom:1px solid #d3d3d3 !important; +} +.dijit_a11y .dijitSplitterV { + border-left:1px solid #d3d3d3 !important; + border-right:1px solid #d3d3d3 !important; +} +.dijitContentPane { + display: block; + overflow: auto; +} +.dijitContentPaneSingleChild { + + overflow: hidden; +} +.dijitTitlePane { + display: block; + overflow: hidden; +} +.dijitTitlePaneTitle { + cursor: pointer; +} +.dijitFixedOpen { + + cursor: default; +} +.dijitTitlePaneTitle * { + vertical-align: middle; +} +.dijitTitlePane .dijitArrowNodeInner { + + display: none; +} +.dijit_a11y .dijitTitlePane .dijitArrowNodeInner { + + display:inline !important; + font-family: monospace; +} +.dijit_a11y .dijitTitlePane .dijitArrowNode { + + display:none; +} +.dj_ie6 .dijitTitlePaneContentOuter, +.dj_ie6 .dijitTitlePane .dijitTitlePaneTitle { + + zoom: 1; +} +.dijitColorPalette { + border: 1px solid #999; + background: #fff; + position: relative; +} +img.dijitColorPaletteUnder { + + border-style: none; + position: absolute; + left: 0; + top: 0; +} +.dijitColorPalette .dijitPaletteTable { + + padding: 2px 3px 3px 3px; + position: relative; + overflow: hidden; + outline: 0; + border-collapse: separate; +} +.dj_ie6 .dijitColorPalette .dijitPaletteTable, +.dj_ie7 .dijitColorPalette .dijitPaletteTable, +.dj_iequirks .dijitColorPalette .dijitPaletteTable { + + padding: 0; + margin: 2px 3px 3px 3px; +} +.dijitColorPalette .dijitPaletteCell { + + height: 20px; + width: 20px; + font-size: 1px; + vertical-align: middle; + text-align: center; +} +.dijitColorPalette .dijitPaletteImg { + + width: 16px; + height: 14px; + border: 1px solid #999; + cursor: default; + vertical-align: middle; +} +.dj_iequirks .dijitColorPalette .dijitPaletteImg { + margin: 1px; +} +.dijitPaletteTable td { + padding: 0px; +} +.dijitColorPalette .dijitPaletteCellHover .dijitPaletteImg { + + border: 1px solid #000; +} +.dijitColorPalette .dijitPaletteCellActive .dijitPaletteImg, +.dijitColorPalette .dijitPaletteCellSelected .dijitPaletteImg { + border: 2px solid #000; +} +.dijit_a11y .dijitColorPalette .dijitPaletteTable, +.dijit_a11y .dijitColorPalette .dijitPaletteTable * { + + background-color: transparent !important; +} +.dj_gecko .dijit_a11y .dijitColorPalette .dijitPaletteCellFocused .dijitPaletteImg { + border: 3px dotted #000; + margin: -1px; +} +.dijit_a11y .dijitColorPalette .dijitPaletteCellHover .dijitPaletteImg { + border: 2px solid #000 !important; +} +.dijitAccordionContainer { + border:1px solid #b7b7b7; + border-top:0 !important; +} +.dijitAccordionTitle { + cursor: pointer; +} +.dijitAccordionTitleSelected { + cursor: default; +} +.dijitAccordionTitle .arrowTextUp, +.dijitAccordionTitle .arrowTextDown { + display: none; + font-size: 0.65em; + font-weight: normal !important; +} +.dijit_a11y .dijitAccordionTitle .arrowTextUp, +.dijit_a11y .dijitAccordionTitleSelected .arrowTextDown { + display: inline; +} +.dijit_a11y .dijitAccordionTitleSelected .arrowTextUp { + display: none; +} +.dj_ie6 .dijitAccordionTitle, +.dj_iequirks .dijitAccordionTitle { + + zoom: 1; +} +.dijitCalendarContainer { + width: auto; +} +.dijitCalendarContainer th, .dijitCalendarContainer td { + padding: 0; +} +.dijitCalendarNextYear { + margin:0 0 0 0.55em; +} +.dijitCalendarPreviousYear { + margin:0 0.55em 0 0; +} +.dijitCalendarIncrementControl { + vertical-align: middle; +} +.dijitCalendarIncrementControl, +.dijitCalendarDateTemplate, +.dijitCalendarMonthLabel, +.dijitCalendarPreviousYear, +.dijitCalendarNextYear { + cursor: pointer; +} +.dijitCalendarDisabledDate { + color: gray; + text-decoration: line-through; + cursor: default; +} +.dijitSpacer { + + position: relative; + height: 1px; + overflow: hidden; + visibility: hidden; +} +.dijitMenu { + border:1px solid black; + background-color:white; +} +.dijitMenuTable { + border-collapse:collapse; + border-width:0; + background-color:white; +} +.dj_webkit .dijitMenuTable td[colspan="2"]{ + border-right:hidden; +} +.dijitMenuItem { + text-align: left; + white-space: nowrap; + padding:.1em .2em; + cursor:pointer; +} +.dijitMenuPassive .dijitMenuItemHover, +.dijitMenuItemSelected { + + background-color:black; + color:white; +} +.dijitMenuItemIcon, .dijitMenuExpand { + background-repeat: no-repeat; +} +.dijitMenuItemDisabled * { + + opacity:0.5; + cursor:default; +} +.dj_ie .dijit_a11y .dijitMenuItemDisabled, +.dj_ie .dijit_a11y .dijitMenuItemDisabled td, +.dj_ie .dijitMenuItemDisabled *, +.dj_ie .dijitMenuItemDisabled td { + color:gray !important; + filter: alpha(opacity=35); +} +.dijitMenuItemLabel { + position: relative; + vertical-align: middle; +} +.dijit_a11y .dijitMenuItemSelected { + border: 1px dotted black !important; +} +.dj_ff3 .dijit_a11y .dijitMenuItem td { + padding: none !important; + background:none !important; +} +.dijit_a11y .dijitMenuItemSelected .dijitMenuItemLabel { + border-width: 1px; + border-style: solid; +} +.dj_ie8 .dijit_a11y .dijitMenuItemLabel { + position:static; +} +.dijitMenuExpandA11y { + display: none; +} +.dijit_a11y .dijitMenuExpandA11y { + display: inline; +} +.dijitMenuSeparator td { + border: 0; + padding: 0; +} +.dijitMenuSeparatorTop { + height: 50%; + margin: 0; + margin-top:3px; + font-size: 1px; +} +.dijitMenuSeparatorBottom { + height: 50%; + margin: 0; + margin-bottom:3px; + font-size: 1px; +} +.dijitCheckedMenuItemIconChar { + vertical-align: middle; + visibility:hidden; +} +.dijitCheckedMenuItemChecked .dijitCheckedMenuItemIconChar { + visibility: visible; +} +.dijit_a11y .dijitCheckedMenuItemIconChar { + display:inline !important; +} +.dijit_a11y .dijitCheckedMenuItemIcon { + display: none; +} +.dj_ie .dijit_a11y .dijitMenuBar .dijitMenuItem { + + margin: 0px; +} +.dijitStackController .dijitToggleButtonChecked * { + cursor: default; +} +.dijitTabContainerNoLayout { + width: 100%; +} +.dijitTabContainerBottom-tabs, +.dijitTabContainerTop-tabs, +.dijitTabContainerLeft-tabs, +.dijitTabContainerRight-tabs { + overflow: visible !important; +} +.dijitTabContainerBottom-container, +.dijitTabContainerTop-container, +.dijitTabContainerLeft-container, +.dijitTabContainerRight-container { + z-index:0; + overflow: hidden; + border: 1px solid black; +} +.nowrapTabStrip { + width: 50000px; + display: block; + position: relative; +} +.dijitTabListWrapper { + overflow: hidden; +} +.dijit_a11y .tabStripButton img { + + display: none; +} +.dijitTabContainerTop-tabs { + border-bottom: 1px solid black; +} +.dijitTabContainerTop-container { + border-top: 0px; +} +.dijitTabContainerLeft-tabs { + border-right: 1px solid black; + float: left; +} +.dijitTabContainerLeft-container { + border-left: 0px; +} +.dijitTabContainerBottom-tabs { + border-top: 1px solid black; +} +.dijitTabContainerBottom-container { + border-bottom: 0px; +} +.dijitTabContainerRight-tabs { + border-left: 1px solid black; + float: left; +} +.dijitTabContainerRight-container { + border-right: 0px; +} +DIV.dijitTabDisabled, .dj_ie DIV.dijitTabDisabled { + cursor: auto; +} +.dijitTab { + position:relative; + cursor:pointer; + white-space:nowrap; + z-index:3; +} +.dijitTab * { + + vertical-align: middle; +} +.dijitTabChecked { + cursor: default; +} +.dijitTabContainerTop-tabs .dijitTab { + top: 1px; +} +.dijitTabContainerBottom-tabs .dijitTab { + top: -1px; +} +.dijitTabContainerLeft-tabs .dijitTab { + left: 1px; +} +.dijitTabContainerRight-tabs .dijitTab { + left: -1px; +} +.dijitTabContainerTop-tabs .dijitTab, +.dijitTabContainerBottom-tabs .dijitTab { + + display:inline-block; + #zoom: 1; + #display:inline; +} +.dijitTabInnerDiv { + position:relative; +} +.tabStripButton { + z-index: 12; +} +.dijitTabButtonDisabled .tabStripButton { + display: none; +} +.dijitTabCloseButton { + margin-left: 1em; +} +.dijitTabCloseText { + display:none; +} +.dijit_a11y .dijitTabCloseButton { + background-image: none !important; + width: auto !important; + height: auto !important; + border: thin dotted; +} +.dijit_a11y .dijitTabCloseButtonHover { + border:thin solid; +} +.dijit_a11y .dijitTabCloseText { + display: inline; +} +.dijit_a11y .dijitTabChecked { + + border-style:dashed !important; +} +.dijit_a11y .dijitTabInnerDiv { + border-left:none !important; + } +.dijitTabPane, +.dijitStackContainer-child, +.dijitAccordionContainer-child { + + border: none !important; +} +.dijitInlineEditBoxDisplayMode { + border: 1px solid transparent; + cursor: text; +} +.dijit_a11y .dijitInlineEditBoxDisplayMode, +.dj_ie6 .dijitInlineEditBoxDisplayMode { + + border: none; +} +.dijitInlineEditBoxDisplayModeHover, +.dijit_a11y .dijitInlineEditBoxDisplayModeHover, +.dj_ie6 .dijitInlineEditBoxDisplayModeHover { + + background-color: #e2ebf2; + border: solid 1px black; +} +.dijitInlineEditBoxDisplayModeDisabled { + cursor: default; +} +.dijitTreeIndent { + + width: 19px; +} +.dijitTreeRow, .dijitTreeContent { + white-space: nowrap; +} +.dijitTreeRow img { + + vertical-align: middle; +} +.dijitTreeContent { + cursor: default; +} +.dijitExpandoText { + display: none; +} +.dijit_a11y .dijitExpandoText { + display: inline; + padding-left: 10px; + padding-right: 10px; + font-family: monospace; + border-style: solid; + border-width: thin; + cursor: pointer; +} +.dijitTreeLabel { + margin: 0px 4px; +} +.dijitDialog { + position: absolute; + z-index: 999; + overflow: hidden; +} +.dijitDialogTitleBar { + cursor: move; +} +.dijitDialogFixed .dijitDialogTitleBar { + cursor:default; +} +.dijitDialogCloseIcon { + cursor: pointer; +} +.dijitDialogUnderlayWrapper { + position: absolute; + left: 0; + top: 0; + z-index: 998; + display: none; + background: transparent !important; +} +.dijitDialogUnderlay { + background: #eee; + opacity: 0.5; +} +.dj_ie .dijitDialogUnderlay { + filter: alpha(opacity=50); +} +.dijit_a11y .dijitSpinnerButtonContainer, +.dijit_a11y .dijitDialog { + opacity: 1 !important; + background-color: white !important; +} +.dijitDialog .closeText { + display:none; + + position:absolute; +} +.dijit_a11y .dijitDialog .closeText { + display:inline; +} +.dijitSliderMoveable { + z-index:99; + position:absolute !important; + display:block; + vertical-align:middle; +} +.dijitSliderMoveableH { + right:0; +} +.dijitSliderMoveableV { + right:50%; +} +.dijit_a11y DIV.dijitSliderImageHandle, +.dijitSliderImageHandle { + margin:0; + padding:0; + position:relative !important; + border:8px solid gray; + width:0; + height:0; + cursor: pointer; +} +.dj_iequirks .dijit_a11y .dijitSliderImageHandle { + font-size: 0; +} +.dj_ie7 .dijitSliderImageHandle { + overflow: hidden; +} +.dj_ie7 .dijit_a11y .dijitSliderImageHandle { + overflow: visible; +} +.dijit_a11y .dijitSliderFocused .dijitSliderImageHandle { + border:4px solid #000; + height:8px; + width:8px; +} +.dijitSliderImageHandleV { + top:-8px; + right: -50%; +} +.dijitSliderImageHandleH { + left:50%; + top:-5px; + vertical-align:top; +} +.dijitSliderBar { + border-style:solid; + border-color:black; + cursor: pointer; +} +.dijitSliderBarContainerV { + position:relative; + height:100%; + z-index:1; +} +.dijitSliderBarContainerH { + position:relative; + z-index:1; +} +.dijitSliderBarH { + height:4px; + border-width:1px 0; +} +.dijitSliderBarV { + width:4px; + border-width:0 1px; +} +.dijitSliderProgressBar { + background-color:red; + z-index:1; +} +.dijitSliderProgressBarV { + position:static !important; + height:0%; + vertical-align:top; + text-align:left; +} +.dijitSliderProgressBarH { + position:absolute !important; + width:0%; + vertical-align:middle; + overflow:visible; +} +.dijitSliderRemainingBar { + overflow:hidden; + background-color:transparent; + z-index:1; +} +.dijitSliderRemainingBarV { + height:100%; + text-align:left; +} +.dijitSliderRemainingBarH { + width:100% !important; +} +.dijitSliderBumper { + overflow:hidden; + z-index:1; +} +.dijitSliderBumperV { + width:4px; + height:8px; + border-width:0 1px; +} +.dijitSliderBumperH { + width:8px; + height:4px; + border-width:1px 0; +} +.dijitSliderBottomBumper, +.dijitSliderLeftBumper { + background-color:red; +} +.dijitSliderTopBumper, +.dijitSliderRightBumper { + background-color:transparent; +} +.dijitSliderDecoration { + text-align:center; +} +.dijitSliderV TD { + position: relative; +} +.dijitSliderDecorationH { + width: 100%; +} +.dijitSliderDecorationV { + height: 100%; +} +.dijitSliderButton { + font-family:monospace; + margin:0; + padding:0; + display:block; +} +.dijit_a11y .dijitSliderButtonInner { + visibility:visible !important; +} +.dijitSliderButtonContainer { + text-align:center; + height:0; +} +.dijitSliderButtonContainer * { + cursor: pointer; +} +.dijitSlider .dijitButtonNode { + padding:0; + display:block; +} +.dijitRuleContainer { + position:relative; + overflow:visible; +} +.dijitRuleContainerV { + height:100%; + line-height:0; + float:left; + text-align:left; +} +.dj_opera .dijitRuleContainerV { + line-height:2%; +} +.dj_ie .dijitRuleContainerV { + line-height:normal; +} +.dj_gecko .dijitRuleContainerV { + margin:0 0 1px 0; +} +.dijitRuleMark { + position:absolute; + border:1px solid black; + line-height:0; + height:100%; +} +.dijitRuleMarkH { + width:0; + border-top-width:0 !important; + border-bottom-width:0 !important; + border-left-width:0 !important; +} +.dijitRuleLabelContainer { + position:absolute; +} +.dijitRuleLabelContainerH { + text-align:center; + display:inline-block; +} +.dijitRuleLabelH { + position:relative; + left:-50%; +} +.dijitRuleLabelV { + + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} +.dijitRuleMarkV { + height:0; + border-right-width:0 !important; + border-bottom-width:0 !important; + border-left-width:0 !important; + width:100%; + left:0; +} +.dj_ie .dijitRuleLabelContainerV { + margin-top:-.55em; +} +.dijit_a11y .dijitSliderReadOnly, +.dijit_a11y .dijitSliderDisabled { + opacity:0.6; +} +.dj_ie .dijit_a11y .dijitSliderReadOnly .dijitSliderBar, +.dj_ie .dijit_a11y .dijitSliderDisabled .dijitSliderBar { + filter: alpha(opacity=40); +} +.dijit_a11y .dijitSlider .dijitSliderButtonContainer DIV { + font-family: monospace; + font-size: 1em; + line-height: 1em; + height: auto; + width: auto; + margin: 0px 4px; +} +.dijit_a11y .dijitButtonContents .dijitButtonText, +.dijit_a11y .dijitTab .tabLabel { + display: inline !important; +} +.dijitTextArea { + width:100%; + overflow-y: auto; +} +.dijitTextArea[cols] { + width:auto; +} +.dj_ie .dijitTextAreaCols { + width:auto; +} +.dijitToolbarSeparator { + height: 18px; + width: 5px; + padding: 0 1px; + margin: 0; +} +.dijitIEFixedToolbar { + position:absolute; + + top: expression(eval((document.documentElement||document.body).scrollTop)); +} +.dijitEditor { + display: block; +} +.dijitEditorDisabled, +.dijitEditorReadOnly { + color: gray; +} +.dijitTimePickerItemInner { + text-align:center; + border:0; + padding:2px 8px 2px 8px; +} +.dijitTimePickerTick, +.dijitTimePickerMarker { + border-bottom:1px solid gray; +} +.dijitTimePicker .dijitDownArrowButton { + border-top: none !important; +} +.dijitTimePickerTick { + color:#CCC; +} +.dijitTimePickerMarker { + color:black; + background-color:#CCC; +} +.dijitTimePickerItemSelected { + font-weight:bold; + color:#333; + background-color:#b7cdee; +} +.dijitTimePickerItemHover { + background-color:gray; + color:white; + cursor:pointer; +} +.dijit_a11y .dijitTimePickerItemSelected .dijitTimePickerItemInner { + border: solid 4px black; +} +.dijit_a11y .dijitTimePickerItemHover .dijitTimePickerItemInner { + border: dashed 4px black; +} +.dijitToggleButtonIconChar { + + display:none !important; +} +.dijit_a11y .dijitToggleButton .dijitToggleButtonIconChar { + display:inline !important; + visibility:hidden; +} +.dj_ie6 .dijitToggleButtonIconChar, .dj_ie6 .tabStripButton .dijitButtonText { + font-family: "Arial Unicode MS"; +} +.dijit_a11y .dijitToggleButtonChecked .dijitToggleButtonIconChar { + display: inline !important; + visibility:visible !important; +} +.dijitArrowButtonChar { + display:none !important; +} +.dijit_a11y .dijitArrowButtonChar { + display:inline !important; +} +.dijit_a11y .dijitDropDownButton .dijitArrowButtonInner, +.dijit_a11y .dijitComboButton .dijitArrowButtonInner { + display:none !important; +} +.dijitSelect { + margin: 0.2em; + border-collapse: collapse; +} +.dj_ie .dijitSelect, +.dj_ie7 .dijitSelect, +.dj_iequirks .dijitSelect { + vertical-align: middle; +} +.dj_ie8 .dijitSelect .dijitButtonText { + vertical-align: top; +} +.dijitToolbar .dijitSelect { + margin: 0; +} +.dj_webkit .dijitToolbar .dijitSelect { + padding-left: 0.3em; +} +.dijit_a11y .dijitSelectDisabled .dijitButtonNode { + border-style: outset!important; + border-width: medium!important; + border-color: #999 !important; + color:#999 !important; +} +.dijitSelect .dijitButtonContents { + padding: 0px; + background: transparent none; + white-space: nowrap; + text-align: left; +} +.dijitSelectFixedWidth .dijitButtonContents { + width: 100%; +} +.dijitSelectMenu .dijitMenuItemIcon { + + display:none; +} +.dj_ie6 .dijitSelectMenu .dijitMenuItemLabel, +.dj_ie7 .dijitSelectMenu .dijitMenuItemLabel { + + position: static; +} +.dijitSelectLabel * +{ + vertical-align: baseline; +} +.dijitSelectSelectedOption * { + font-weight: bold; +} +.dijitSelectMenu { + border-width: 1px; +} +.dijitSelectMenu .dijitMenuTable { + margin: 0px; + background-color: transparent; +} +.dijitForceStatic { + position: static !important; +} +.dijitReadOnly *, +.dijitDisabled *, +.dijitReadOnly, +.dijitDisabled { + + cursor: default; +} +.claro { + font-family:Verdana,Arial,Helvetica,sans-serif; + font-size: .688em; + color: #131313; +} +h1 { + font-size: 1.545em; + font-weight: normal; + line-height: 1em; + margin-top: 1em; + margin-bottom:0.727em; +} +.claro .dijitDialog h1 { + margin-top:0em; +} +h2 { + font-size: 1.364em; + line-height: 1.455em; + margin-top:1em; + margin-bottom:0.60em; + font-weight: normal; +} +h3, h4, h5, h6 { + font-size:1.091em; + font-weight: normal; + line-height: 1.5em; + margin-top: 1.5em; + margin-bottom: 0; +} +p { + font-size: 1em; + line-height: 1.3em; +} +blockquote { + font-size: 0.916em; + margin-top: 3.272em; + margin-bottom: 3.272em; + line-height: 1.636em; + padding: 1.636em; + border-top: 1px solid #ccc; + border-bottom: 1px solid #ccc; +} +ol li, ul li { + font-size: 1em; + line-height: 1.5em; + margin: 0; +} +pre, code { + font-size:115%; + *font-size:100%; + font-family:inherit; + background-color: #efefef; + border: 1px solid #ccc; +} +pre { + border-width: 1px 0; + padding: 1.5em; +} +table { font-size:100%; } +table.dojoTabular { + border-collapse: collapse; + border-spacing: 0; + border: 1px solid #ccc; + margin: 0 1.5em; +} +.dojoTabular th { + text-align: center; + font-weight: bold; +} +table.dojoTabular thead, table.dojoTabular tfoot { + background-color: #efefef; + border: 1px solid #ccc; + border-width: 1px 0; +} +table.dojoTabular thead tr th, +table.dojoTabular thead tr td, +table.dojoTabular tbody tr td, +table.dojoTabular tfoot tr td { + padding: 0.25em 0.5em; +} + +.dijitIconSave, +.dijitIconPrint, +.dijitIconCut, +.dijitIconCopy, +.dijitIconClear, +.dijitIconDelete, +.dijitIconUndo, +.dijitIconEdit, +.dijitIconNewTask, +.dijitIconEditTask, +.dijitIconEditProperty, +.dijitIconTask, +.dijitIconFilter, +.dijitIconConfigure, +.dijitIconSearch, +.dijitIconApplication, +.dijitIconBookmark, +.dijitIconChart, +.dijitIconConnector, +.dijitIconDatabase, +.dijitIconDocuments, +.dijitIconMail, +.dijitLeaf, +.dijitIconFile, +.dijitIconFunction, +.dijitIconKey, +.dijitIconPackage, +.dijitIconSample, +.dijitIconTable, +.dijitIconUsers, +.dijitFolderClosed, +.dijitIconFolderClosed, +.dijitFolderOpened, +.dijitIconFolderOpen, +.dijitIconError { + background-image: url(../../icons/images/commonIconsObjActEnabled.png); + width: 16px; + height: 16px; +} +.dj_ie6 .dijitIconSave, +.dj_ie6 .dijitIconPrint, +.dj_ie6 .dijitIconCut, +.dj_ie6 .dijitIconCopy, +.dj_ie6 .dijitIconClear, +.dj_ie6 .dijitIconDelete, +.dj_ie6 .dijitIconUndo, +.dj_ie6 .dijitIconEdit, +.dj_ie6 .dijitIconNewTask, +.dj_ie6 .dijitIconEditTask, +.dj_ie6 .dijitIconEditProperty, +.dj_ie6 .dijitIconTask, +.dj_ie6 .dijitIconFilter, +.dj_ie6 .dijitIconConfigure, +.dj_ie6 .dijitIconSearch, +.dj_ie6 .dijitIconApplication, +.dj_ie6 .dijitIconBookmark, +.dj_ie6 .dijitIconChart, +.dj_ie6 .dijitIconConnector, +.dj_ie6 .dijitIconDatabase, +.dj_ie6 .dijitIconDocuments, +.dj_ie6 .dijitIconMail, +.dj_ie6 .dijitLeaf, +.dj_ie6 .dijitIconFile, +.dj_ie6 .dijitIconFunction, +.dj_ie6 .dijitIconKey, +.dj_ie6 .dijitIconPackage, +.dj_ie6 .dijitIconSample, +.dj_ie6 .dijitIconTable, +.dj_ie6 .dijitIconUsers, +.dj_ie6 .dijitFolderClosed, +.dj_ie6 .dijitIconFolderClosed, +.dj_ie6 .dijitFolderOpened, +.dj_ie6 .dijitIconFolderOpen, +.dj_ie6 .dijitIconError { + background-image: url(../../icons/images/commonIconsObjActEnabled8bit.png); +} +.dijitDisabled .dijitIconSave, +.dijitDisabled .dijitIconPrint, +.dijitDisabled .dijitIconCut, +.dijitDisabled .dijitIconCopy, +.dijitDisabled .dijitIconClear, +.dijitDisabled .dijitIconDelete, +.dijitDisabled .dijitIconUndo, +.dijitDisabled .dijitIconEdit, +.dijitDisabled .dijitIconNewTask, +.dijitDisabled .dijitIconEditTask, +.dijitDisabled .dijitIconEditProperty, +.dijitDisabled .dijitIconTask, +.dijitDisabled .dijitIconFilter, +.dijitDisabled .dijitIconConfigure, +.dijitDisabled .dijitIconSearch, +.dijitDisabled .dijitIconApplication, +.dijitDisabled .dijitIconBookmark, +.dijitDisabled .dijitIconChart, +.dijitDisabled .dijitIconConnector, +.dijitDisabled .dijitIconDatabase, +.dijitDisabled .dijitIconDocuments, +.dijitDisabled .dijitIconMail, +.dijitDisabled .dijitLeaf, +.dijitDisabled .dijitIconFile, +.dijitDisabled .dijitIconFunction, +.dijitDisabled .dijitIconKey, +.dijitDisabled .dijitIconPackage, +.dijitDisabled .dijitIconSample, +.dijitDisabled .dijitIconTable, +.dijitDisabled .dijitIconUsers, +.dijitDisabled .dijitFolderClosed, +.dijitDisabled .dijitIconFolderClosed, +.dijitDisabled .dijitFolderOpened, +.dijitDisabled .dijitIconFolderOpen, +.dijitDisabled .dijitIconError { + background-image: url(../../icons/images/commonIconsObjActDisabled.png); +} +.dijitIconSave { background-position: 0px; } +.dijitIconPrint { background-position: -16px; } +.dijitIconCut { background-position: -32px; } +.dijitIconCopy { background-position: -48px; } +.dijitIconClear { background-position: -64px; } +.dijitIconDelete { background-position: -80px; } +.dijitIconUndo { background-position: -96px; } +.dijitIconEdit { background-position: -112px; } +.dijitIconNewTask { background-position: -128px; } +.dijitIconEditTask { background-position: -144px; } +.dijitIconEditProperty { background-position: -166px; } +.dijitIconTask { background-position: -176px; } +.dijitIconFilter { background-position: -192px; } +.dijitIconConfigure { background-position: -208px; } +.dijitIconSearch { background-position: -224px; } +.dijitIconError { background-position: -496px; } +.dijitIconApplication { background-position: -240px; } +.dijitIconBookmark { background-position: -256px; } +.dijitIconChart { background-position: -272px; } +.dijitIconConnector { background-position: -288px; } +.dijitIconDatabase { background-position: -304px; } +.dijitIconDocuments { background-position: -320px; } +.dijitIconMail { background-position: -336px; } +.dijitIconFile, .dijitLeaf { background-position: -352px; } +.dijitIconFunction { background-position: -368px; } +.dijitIconKey { background-position: -384px; } +.dijitIconPackage{ background-position: -400px; } +.dijitIconSample { background-position: -416px; } +.dijitIconTable { background-position: -432px; } +.dijitIconUsers { background-position: -448px; } +.dijitIconFolderClosed, .dijitFolderClosed { background-position: -464px; } +.dijitIconFolderOpen, .dijitFolderOpened { background-position: -480px; } +.claro .dijitPopup { + box-shadow: 0px 1px 5px rgba(0,0,0,0.25); + -webkit-box-shadow: 0px 1px 5px rgba(0,0,0,0.25); + -moz-box-shadow: 0px 1px 5px rgba(0,0,0,0.25); +} +.claro .dijitTooltipDialogPopup { + + box-shadow: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; +} +.claro .dijitComboBoxHighlightMatch { + background-color:#a5beda; +} +.claro .dijitFocusedLabel { + + outline: 1px dotted #666666; +} +.claro .dijitContentPaneLoading { + background:url(images/loadingAnimation.gif) no-repeat left center; + padding-left:25px; +} +.claro .dijitContentPaneError { + background:url(../../icons/images/commonIconsObjActEnabled.png) no-repeat left center; + background-position: -496px; + no-repeat left center; + padding-left:25px; +} +.claro .dojoDndItemBefore, +.claro .dojoDndItemAfter{ + border-top: 1px solid #769DC0; +} +.claro .dojoDndItemOver { + cursor:pointer; + } +.claro table.dojoDndAvatar { + border: 1px solid #b5bcc7; + border-collapse: collapse; + background-color: #fff; + -webkit-box-shadow:0px 1px 3px rgba(0, 0, 0, .25); +} +.claro .dojoDndAvatarHeader td { + height: 20px; + padding-left:21px; +} +.claro.dojoDndMove .dojoDndAvatarHeader, .claro.dojoDndCopy .dojoDndAvatarHeader { + background-image: url(images/dnd.png); + background-repeat: no-repeat; + background-position:2px -122px; +} +.claro .dojoDndAvatarItem td { + padding: 5px; +} +.claro.dojoDndMove .dojoDndAvatarHeader { + background-color: #f58383; + background-position:2px -103px; +} +.claro.dojoDndCopy .dojoDndAvatarHeader { + background-color: #f58383; + background-position:2px -68px; +} +.claro.dojoDndMove .dojoDndAvatarCanDrop .dojoDndAvatarHeader { + background-color: #97e68d; + background-position:2px -33px; +} +.claro.dojoDndCopy .dojoDndAvatarCanDrop .dojoDndAvatarHeader { + background-color: #97e68d; + background-position:2px 2px; +} +.claro .dijitTextBoxError .dijitValidationContainer { + background-color: #d46363; + background-image: url(form/images/error.png); + background-position: top center; + border: solid #d46464 0px; + border-left-width: 1px; + width: 9px; +} +.claro .dijitTextBoxError .dijitValidationIcon { + width: 0px; + background-color: transparent !important; +} +.claro .dijitTextBox .dijitInputContainer, +.claro .dijitTextArea, +.claro .dijitInputField .dijitPlaceHolder { + padding: 2px; +} +.claro .dijitTextBox, +.claro .dijitTextBox .dijitButtonNode { + + border-color: #b5bcc7; + -webkit-transition-property:background-color, border; + -webkit-transition-duration:.35s; +} +.claro .dijitTextBox { + background-color: #f7fcff; +} +.claro .dijitTextBoxHover, +.claro .dijitTextBoxHover .dijitButtonNode { + border-color: #769dc0; + -webkit-transition-duration:.25s; +} +.claro .dijitTextBoxHover { + background-color: #e9f4fe; + background-image: url(form/images/textBox_back.png); + background-repeat: repeat-x; +} +.claro .dijitTextBoxError, +.claro .dijitTextBoxError .dijitButtonNode { + border-color: #d46464; +} +.claro .dijitTextBoxError, +.claro .dijitTextBoxError .dijitInputContainer { + background-color: #fdf7f7; +} +.claro .dijitTextBoxFocused, +.claro .dijitTextBoxFocused .dijitButtonNode { + border-color:#769dc0; + -webkit-transition-duration:.1s; +} +.claro .dijitTextBoxFocused { + background-color: #fff; + background-image: url(form/images/textBox_back.png); + background-repeat: repeat-x; +} +.claro .dijitTextBoxFocused .dijitInputContainer { + background: #fff; +} +.claro .dijitTextBoxErrorFocused, +.claro .dijitTextBoxErrorFocused .dijitButtonNode { + border-color: #ce4f4f; +} +.claro .dijitTextBoxDisabled, +.claro .dijitTextBoxDisabled .dijitButtonNode { + border-color: #d3d3d3; +} +.claro .dijitTextBoxDisabled { + background-color: #efefef; + background-image: none; + color: #818181; +} +.claro .dijitComboBox .dijitArrowButtonInner { + background-image: url(form/images/commonFormArrows.png); + background-position:-35px 53%; + background-repeat: no-repeat; + margin: 0px; + width:16px; + height:100%; + border: 1px solid #fff; +} +.claro .dijitTextBox .dijitInputField { + padding-top: 1px; + padding-bottom: 1px; +} +.claro .dijitTextBox .dijitInputInner { + + padding: 1px 2px 1px 0; +} +.claro .dijitTextBox .dijitValidationContainer { + padding: 0 0 2px 0; +} +.claro .dijitComboBox .dijitButtonNode { + background-color: #ebeef4; + background-image: url(form/images/formHighlight.png); + background-repeat:repeat-x; +} +.claro .dijitComboBoxHover .dijitButtonNode { + background-color:#abd6ff; +} +.claro .dijitComboBoxHover .dijitArrowButtonInner { + background-position:-70px 53%; +} +.claro .dijitComboBoxFocused .dijitButtonNode { + background-color:#7dbefa; + background-position:0px -177px; + padding: 1px; +} +.claro .dijitComboBoxFocused .dijitArrowButtonInner { + background-position:-70px 53%; + border: 0px none; +} +.claro div.dijitComboBoxDisabled .dijitArrowButtonInner { + + background-position:0px 50%; + background-color:#f1f1f1; +} +.dj_ff3 .claro .dijitInputField input[type="hidden"] { + display: none; + height: 0; + width: 0; +} +.dj_ie6 .claro .dijitTextBox, +.dj_ie6 .claro .dijitComboBox .dijitButtonNode { + background-image: none; +} +.dj_quirks .claro .dijitComboBox .dijitArrowButtonInner { + border: 0px; +} +.dj_quirks .claro .dijitComboBox .dijitArrowButtonContainer { + padding: 1px; +} +.claro .dijitButtonNode { + + -webkit-transition-property:background-color; + -webkit-transition-duration:.3s; +} +.claro .dijitButton .dijitButtonNode, +.claro .dijitDropDownButton .dijitButtonNode, +.claro .dijitComboButton .dijitButtonNode, +.claro .dijitToggleButton .dijitButtonNode { + + border: 1px solid #769dc0; + padding:2px 4px 4px 4px; + background-image: url(form/images/button.png); + background-position: center top; + background-repeat: repeat-x; + background-color: #e4f2ff; + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + box-shadow:0px 1px 1px rgba(0,0,0,0.15); + -webkit-box-shadow:0px 1px 1px rgba(0,0,0,0.15); + -moz-box-shadow: 0px 1px 1px rgba(0,0,0,0.15); +} +.claro .dijitComboButton .dijitArrowButton { + border-left-width: 0px; + padding: 4px 2px 4px 2px; +} +.claro .dijitArrowButtonInner { + width: 15px; + height: 15px; + margin: 0 auto; + background-image:url(form/images/buttonArrows.png); + background-repeat:no-repeat; + background-position:-51px 53%; +} +.claro .dijitLeftArrowButton .dijitArrowButtonInner { + background-position: -77px 53%; +} +.claro .dijitRightArrowButton .dijitArrowButtonInner { + background-position: -26px 53%; +} +.claro .dijitUpArrowButton .dijitArrowButtonInner { + background-position: 0px 53%; +} +.claro .dijitDisabled .dijitArrowButtonInner { + background-position: -151px 53%; +} +.claro .dijitDisabled .dijitLeftArrowButton .dijitArrowButtonInner { + background-position: -177px 53%; +} +.claro .dijitDisabled .dijitRightArrowButton .dijitArrowButtonInner { + background-position: -126px 53%; +} +.claro .dijitDisabled .dijitUpArrowButton .dijitArrowButtonInner { + background-position: -100px 53%; +} +.claro .dijitButtonText { + padding: 0 0.3em; + text-align: center; +} +.claro .dijitDisabled .dijitButtonText { + color: #7F7F7F; +} +.claro .dijitButtonHover .dijitButtonNode, +.claro .dijitDropDownButtonHover .dijitButtonNode, +.claro .dijitComboButton .dijitButtonNodeHover, +.claro .dijitComboButton .dijitDownArrowButtonHover, +.claro .dijitToggleButtonHover .dijitButtonNode { + background-color: #afd9ff; + color:#000; + -webkit-transition-duration:.2s; +} +.claro .dijitButtonActive .dijitButtonNode, +.claro .dijitDropDownButtonActive .dijitButtonNode, +.claro .dijitComboButtonActive .dijitButtonNode, +.claro .dijitToggleButtonActive .dijitButtonNode { + background-color: #99cfff; + box-shadow:0px 0px 0px rgba(0,0,0,0); + -webkit-box-shadow:0px 0px 0px rgba(0,0,0,0); + -moz-box-shadow: 0px 0px 0px rgba(0,0,0,0); + -webkit-transition-duration:.1s; +} +.claro .dijitButtonDisabled, +.claro .dijitDropDownButtonDisabled, +.claro .dijitComboButtonDisabled, +.claro .dijitToggleButtonDisabled { + background-image: none; + outline: none; +} +.claro .dijitButtonDisabled .dijitButtonNode, +.claro .dijitDropDownButtonDisabled .dijitButtonNode, +.claro .dijitComboButtonDisabled .dijitButtonNode, +.claro .dijitToggleButtonDisabled .dijitButtonNode { + background-position:0px -149px; + background-color: #e3e3e3; + border: solid 1px #c9c9c9; + color: #696969; + box-shadow:0px 0px 0px rgba(0,0,0,0); + -webkit-box-shadow:0px 0px 0px rgba(0,0,0,0); + -moz-box-shadow: 0px 0px 0px rgba(0,0,0,0); +} +.claro .dijitComboButtonDisabled .dijitArrowButton{ + border-left-width: 0px; +} +.claro table.dijitComboButton { + border-collapse: separate; +} +.dj_ie6 .claro .dijitButtonNode { + background-image: none; +} +.claro .dijitComboButton .dijitStretch { + -moz-border-radius: 4px 0px 0px 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 0px; + -webkit-border-bottom-right-radius: 0px; + -webkit-border-bottom-left-radius: 4px; +} +.claro .dijitComboButton .dijitArrowButton { + -moz-border-radius: 0px 4px 4px 0px; + -webkit-border-top-left-radius: 0px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-border-bottom-left-radius: 0px; +} +.claro .dijitToggleButton .dijitCheckBoxIcon { + background-image: url(images/checkmarkNoBorder.png); +} +.dj_ie6 .claro .dijitToggleButton .dijitCheckBoxIcon { + background-image: url(images/checkmarkNoBorder.gif); +} +.claro .dijitCheckBox, +.claro .dijitCheckBoxIcon { + background-image: url(form/images/checkboxRadioButtonStates.png); + background-repeat: no-repeat; + width: 15px; + height: 16px; + margin: 0 2px 0 0; + padding: 0; +} +.dj_ie6 .claro .dijitCheckBox, +.dj_ie6 .claro .dijitCheckBoxIcon { + background-image: url(form/images/checkboxAndRadioButtons_IE6.png); +} +.claro .dijitCheckBox, +.claro .dijitToggleButton .dijitCheckBoxIcon { + + background-position: -15px; +} +.claro .dijitCheckBoxChecked, +.claro .dijitToggleButtonChecked .dijitCheckBoxIcon { + + background-position: -0px; +} +.claro .dijitCheckBoxDisabled { + + background-position: -75px; +} +.claro .dijitCheckBoxCheckedDisabled { + + background-position: -60px; +} +.claro .dijitCheckBoxHover { + + background-position: -45px; +} +.claro .dijitCheckBoxCheckedHover { + + background-position: -30px; +} +.claro .dijitToggleButton .dijitRadio, +.claro .dijitToggleButton .dijitRadioIcon { + background-image: url(form/images/checkboxRadioButtonStates.png); +} +.dj_ie6 .claro .dijitToggleButton .dijitRadio, +.dj_ie6 .claro .dijitToggleButton .dijitRadioIcon { + background-image: url(form/images/checkboxAndRadioButtons_IE6.png); +} +.claro .dijitRadio, +.claro .dijitRadioIcon { + background-image: url(form/images/checkboxRadioButtonStates.png); + background-repeat: no-repeat; + width: 15px; + height: 15px; + margin: 0px 2px 0px 0px; + padding: 0px; +} +.dj_ie6 .claro .dijitRadio, +.dj_ie6 .claro .dijitRadioIcon { + background-image: url(form/images/checkboxAndRadioButtons_IE6.png); +} +.claro .dijitRadio{ + + background-position: -105px; +} +.claro .dijitToggleButton .dijitRadioIcon { + + background-position: -107px; +} +.claro .dijitRadioDisabled { + + background-position: -165px; +} +.claro .dijitRadioHover { + + background-position: -135px; +} +.claro .dijitRadioChecked{ + background-position: -90px; +} +.claro .dijitToggleButtonChecked .dijitRadioIcon { + background-position: -92px; +} +.claro .dijitRadioCheckedHover{ + background-position: -120px; +} +.claro .dijitRadioCheckedDisabled { + + background-position: -150px; +} +.claro .dijitSelect .dijitButtonText { + padding: 0px 5px 2px 5px; +} +.claro .dijitSelect { + border: 1px solid #b5bcc7; + background-color: #f7fcff; + border-collapse: separate; +} +.dj_ie6 .claro .dijitSelect, +.dj_ie6 .claro .dijitSelect .dijitButtonNode { + background-image:none; +} +.claro .dijitSelect .dijitButtonContents { + border: 0px solid #b5bcc7; + border-right-width: 1px; +} +.claro .dijitSelect .dijitArrowButton { + padding: 0; + border: 1px solid #fff; + border-top:none; + background-color:#ebeef4; + background-image: url(form/images/formHighlight.png); + background-repeat:repeat-x; +} +.claro .dijitSelect .dijitArrowButton .dijitArrowButtonInner { + background-image: url(form/images/commonFormArrows.png); + background-position:-35px 70%; + background-repeat: no-repeat; + width:16px; + height:16px; + display:block; +} +.claro .dijitSelectHover { + border: 1px solid #769dc0; + background-color: #e9f4fe; + background-image: url(form/images/textBox_back.png); + background-repeat: repeat-x; +} +.claro .dijitSelectHover .dijitButtonContents { + border-color:#81a5c6; +} +.claro .dijitSelectHover .dijitArrowButton { + background-color:#abd6ff; +} +.claro .dijitSelectHover .dijitArrowButton .dijitArrowButtonInner { + background-position:-70px 70%; +} +.claro .dijitSelectFocused { + border: 1px solid #769dc0; +} +.claro .dijitSelectFocused .dijitButtonContents { + border-color:#81a5c6; +} +.claro .dijitSelectFocused .dijitArrowButton { + background-color:#7dbefa; + background-position:0px -177px; + border: none; + padding: 0px 1px; +} +.claro .dijitSelectFocused .dijitArrowButton .dijitArrowButtonInner { + background-position:-70px 70%; + margin-bottom: 1px; +} +.claro .dijitSelectDisabled { + border: 1px solid #d3d3d3; + background-color: #efefef; + background-image: none; + color: #818181; +} +.claro .dijitSelectDisabled .dijitArrowButton { + background-color: #efefef; +} +.claro .dijitSelectDisabled .dijitArrowButton .dijitArrowButtonInner { + background-position:0px 70% +} +.claro .dijitSelectMenu td.dijitMenuItemIconCell, +.claro .dijitSelectMenu td.dijitMenuArrowCell { + + display: none; +} +.claro .dijitSelectMenu td.dijitMenuItemLabel { + + padding-left: 5px; + padding-right: 5px; +} +.claro .dijitSelectMenu .dijitMenuSeparatorTop { + border-bottom:1px solid #769dc0; +} +.claro .dijitTabPaneWrapper { + background:#fff; +} +.claro .dijitTabPaneWrapper, +.claro .dijitTabContainerTop-tabs, +.claro .dijitTabContainerBottom-tabs, +.claro .dijitTabContainerLeft-tabs, +.claro .dijitTabContainerRight-tabs { + + border-color: #b5bcc7; +} +.claro .dijitTabCloseButton { + background: url(layout/images/tabClose.png) no-repeat; + width: 14px; + height: 14px; + margin-left: 5px; + margin-right:-3px; +} +.claro .dijitTabCloseButtonHover { + background-position:-14px; +} +.claro .dijitTabCloseButtonActive { + background-position:-28px; +} +.claro .dijitTabSpacer { + + display: none; +} +.claro .dijitTabInnerDiv { + background-color:#e6e6e7; + -webkit-transition-property:background-color, border; + -webkit-transition-duration:.35s; + color:#4a4a4a; +} +.claro .dijitTabHover .dijitTabInnerDiv { + background-color:#a9d6ff; + -webkit-transition-duration:.25s; + color:#000; +} +.claro .dijitTabActive .dijitTabInnerDiv { + background-color:#8bc4f9; + color:#000; + -webkit-transition-duration:.1s; +} +.claro .dijitTabChecked .dijitTabInnerDiv { + background-color:#b2d4f3; + color:#000; +} +.claro .dijitTabContent { + border: 1px solid #b5bcc7; +} +.claro .dijitTabHover .dijitTabContent, +.claro .dijitTabActive .dijitTabContent { + border-color: #769dc0; +} +.claro .dijitTabChecked .dijitTabContent { + color:#000; + border-color: #b5bcc7; +} +.claro .tabStripButton .dijitTabInnerDiv { + background-color: transparent; +} +.claro .tabStripButton .dijitTabContent { + border: none; +} +.claro .dijitTabContainerTop-tabs .dijitTab { + top: 1px; + margin-right: 1px; + padding-top: 3px; +} +.dj_ie7 .claro .dijitTabContainerTop-tabs .dijitTab { + top: 3px; +} +.claro .dijitTabContainerTop-tabs .dijitTabContent { + padding:3px 8px 3px 4px; + border-bottom: 1px; + background-image:url(layout/images/tabTop.png); + background-position:0px 0px; + background-repeat:repeat-x; + min-width: 60px; + text-align: center; +} +.claro .dijitTabContainerTop-tabs .dijitTabChecked .dijitTabContent { + padding-bottom: 4px; + padding-top: 6px; +} +.dj_ie .claro .dijitTabContainerTop-tabs .dijitTabChecked .dijitTabContent { + border-bottom: none; +} +.claro .dijitTabContainerTop-tabs .dijitTabInnerDiv { + background-image:url(layout/images/tabTop.png); + background-position:0px -248px; + background-position:bottom; + background-repeat:repeat-x; + box-shadow: 0px -1px 1px rgba(0, 0, 0, 0.04); + -webkit-box-shadow: 0px -1px 1px rgba(0, 0, 0, 0.04); + -moz-box-shadow: 0px -1px 1px rgba(0, 0, 0, 0.04); +} +.claro .dijitTabContainerTop-tabs .dijitTabChecked .dijitTabInnerDiv { + background-image:none; + box-shadow: 0px -1px 2px rgba(0, 0, 0, 0.05); + -webkit-box-shadow: 0px -1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: 0px -1px 2px rgba(0, 0, 0, 0.05); +} +.claro .dijitTabContainerTop-tabs .dijitTabChecked .dijitTabContent { + background-position:0px -102px; + background-repeat:repeat-x; +} +.claro .dijitTabContainerBottom-tabs .dijitTab { + top: -1px; + margin-right: 1px; +} +.claro .dijitTabContainerBottom-tabs .dijitTabContent { + padding:3px 8px 4px 4px; + border-top: none; + background-image: url(layout/images/tabBottom.png); + background-position:0px -249px; + background-repeat: repeat-x; + background-position:bottom; + min-width: 60px; + text-align: center; +} +.claro .dijitTabContainerBottom-tabs .dijitTab { + padding-bottom: 3px; +} +.claro .dijitTabContainerBottom-tabs .dijitTabInnerDiv { + background-image: url(layout/images/tabBottom.png); + background-position: top; + background-repeat: repeat-x; + box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.04); + -webkit-box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.04); + -moz-box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.04); + +} +.claro .dijitTabContainerBottom-tabs .dijitTabChecked .dijitTabContent { + padding-bottom: 7px; + padding-top: 4px; + background-position:0px -119px; +} +.claro .dijitTabContainerBottom-tabs .dijitTabChecked { + padding-bottom: 0; +} +.claro .dijitTabContainerBottom-tabs .dijitTabChecked .dijitTabInnerDiv { + background-image:none; + box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.05); + -webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.05); +} +.claro .dijitTabContainerLeft-tabs .dijitTab { + left: 1px; + margin-bottom: 1px; +} +.claro .dijitTabContainerLeft-tabs .dijitTabInnerDiv { + background-image: url(layout/images/tabLeft.png); + background-position: -347px -340px; + background-repeat: repeat-y; +} +.claro .dijitTabContainerLeft-tabs .dijitTabContent { + padding:3px 8px 4px 4px; + background-image: url(layout/images/tabLeft.png); + background-repeat: repeat-y; + background-position:0px 0px; +} +.claro .dijitTabContainerLeft-tabs .dijitTabChecked .dijitTabContent { + padding-right: 9px; + border-right: none; + background-image: none; +} +.claro .dijitTabContainerLeft-tabs .dijitTabChecked .dijitTabInnerDiv { + background-position:0px -179px; + background-repeat:repeat-y; + box-shadow: -1px 0px 2px rgba(0, 0, 0, .05); + -webkit-box-shadow: -1px 0px 2px rgba(0, 0, 0, .05); + -moz-box-shadow: -1px 0px 2px rgba(0, 0, 0, 0.05); +} +.claro .dijitTabContainerRight-tabs .dijitTab { + left: -1px; + margin-bottom: 1px; +} +.claro .dijitTabContainerRight-tabs .dijitTabInnerDiv { + background-image: url(layout/images/tabRight.png); + background-repeat: repeat-y; + background-position: -1px -347px; +} +.claro .dijitTabContainerRight-tabs .dijitTabContent { + padding:3px 8px 4px 4px; + background-image: url(layout/images/tabRight.png); + background-position:right top; + background-repeat: repeat-y; +} +.claro .dijitTabContainerRight-tabs .dijitTabChecked .dijitTabContent { + padding-left: 5px; + border-left: none; + background-image: none; +} +.claro .dijitTabContainerRight-tabs .dijitTabChecked .dijitTabInnerDiv { + background-position:-348px -179px; + box-shadow: 1px 0px 2px rgba(0, 0, 0, 0.07); + -webkit-box-shadow: 1px 0px 2px rgba(0, 0, 0, 0.07); + -moz-box-shadow: 1px 0px 2px rgba(0, 0, 0, 0.07); +} +.claro .dijitTabContainerTop-tabs .dijitTabInnerDiv, +.claro .dijitTabContainerTop-tabs .dijitTabContent { + border-radius: 2px 2px 0px 0px; + -moz-border-radius: 2px 2px 0px 0px; + -webkit-border-top-left-radius:2px; + -webkit-border-top-right-radius:2px; +} +.claro .dijitTabContainerBottom-tabs .dijitTabInnerDiv, +.claro .dijitTabContainerBottom-tabs .dijitTabContent{ + border-radius: 0px 0px 2px 2px; + -moz-border-radius: 0px 0px 2px 2px; + -webkit-border-bottom-right-radius:2px; + -webkit-border-bottom-left-radius:2px; +} +.claro .dijitTabContainerLeft-tabs .dijitTabInnerDiv, +.claro .dijitTabContainerLeft-tabs .dijitTabContent{ + border-radius: 2px 0px 0px 2px; + -moz-border-radius: 2px 0px 0px 2px; + -webkit-border-top-left-radius:2px; + -webkit-border-bottom-left-radius:2px; +} +.claro .dijitTabContainerRight-tabs .dijitTabInnerDiv, +.claro .dijitTabContainerRight-tabs .dijitTabContent{ + border-radius: 0px 2px 2px 0px; + -moz-border-radius: 0px 2px 2px 0px; + -webkit-border-top-right-radius:2px; + -webkit-border-bottom-right-radius:2px; +} +.claro .tabStripButton { + background-color:#deecf9; + border: 1px solid #b5bcc7; +} +.claro .dijitTabListContainer-top .tabStripButton { + padding: 4px 3px; + margin-top:7px; + background-image: url(layout/images/tabTop.png); + background-position:0px 0px; +} +.claro .dijitTabListContainer-bottom .tabStripButton { + padding:5px 3px; + margin-bottom:4px; + background-image: url(layout/images/tabTop.png); + background-position:0px -248px; + background-position:bottom; +} +.claro .tabStripButtonHover { + background-color:#a6d2fb; +} +.claro .tabStripButtonActive { + background-color:#7dbefa; +} +.claro .dijitTabStripIcon { + height:15px; + width:15px; + margin: 0 auto; + background:url(form/images/buttonArrows.png) no-repeat -75px 50%; + background-color: transparent; +} +.claro .dijitTabStripSlideRightIcon{ + background-position: -24px 50%; +} +.claro .dijitTabStripMenuIcon { + background-position: -51px 50%; +} +.claro .dijitTabListContainer-top .tabStripButtonDisabled, +.claro .dijitTabListContainer-bottom .tabStripButtonDisabled { + background-color:#dddddd; + border:1px solid #c9c9c9; +} +.claro .tabStripButtonDisabled .dijitTabStripSlideLeftIcon { + background-position:-175px 50%; +} +.claro .tabStripButtonDisabled .dijitTabStripSlideRightIcon { + background-position: -124px 50%; +} +.claro .tabStripButtonDisabled .dijitTabStripMenuIcon { + background-position: -151px 50%; +} +.claro .dijitTabContainerNested .dijitTabListWrapper { + height: auto; +} +.claro .dijitTabContainerNested .dijitTabContainerTop-tabs { + border-bottom:solid 1px #b5bcc7; + padding:1px 2px 4px; + margin-top:-2px; +} +.claro .dijitTabContainerTabListNested .dijitTabContent { + background:rgba(255, 255, 255, 0) none repeat scroll 0 0; + border: none; + padding: 4px; + border-color: rgba(118,157,192,0); + -webkit-transition-property:background-color, border-color; + -webkit-transition-duration:.3s; +} +.claro .dijitTabContainerTabListNested .dijitTab .dijitTabInnerDiv { + + background: none; + border: none; + top: 0px; + box-shadow: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; +} +.claro .dijitTabContainerTabListNested .dijitTabHover .dijitTabContent { + background-color:#eaf4fc; + border-radius: 2px 2px 2px 2px; + -moz-border-radius: 2px 2px 2px 2px; + -webkit-border-radius:2px; + border:solid 1px #c8dff3; + padding: 3px; + webkit-transition-duration:.2s; +} +.claro .dijitTabContainerTabListNested .dijitTabHover .tabLabel { + text-decoration: none; +} +.claro .dijitTabContainerTabListNested .dijitTabActive .dijitTabContent { + border-radius: 2px 2px 2px 2px; + -moz-border-radius: 2px 2px 2px 2px; + -webkit-border-radius:2px; + border:solid 1px #a8c7e2; + padding: 3px; + background:#b9d9f5 url(layout/images/tabNested.png) repeat-x; + -webkit-transition-duration:.1s; +} +.claro .dijitTabContainerTabListNested .dijitTabChecked .dijitTabContent { + border-radius: 2px 2px 2px 2px; + -moz-border-radius: 2px 2px 2px 2px; + -webkit-border-radius:2px; + padding: 3px; + border:solid 1px #a8c7e2; + background-position: 0px 105px; + background-color:#d4e8f9; +} +.claro .dijitTabContainerTabListNested .dijitTabChecked .tabLabel { + text-decoration: none; + background-image:none; +} +.claro .dijitTabPaneWrapperNested { + border: none; +} +.dj_ie6 .claro .dijitTabContent, +.dj_ie6 .claro .dijitTabInnerDiv, +.dj_ie6 .dijitTabListContainer-top .tabStripButton, +.dj_ie6 .dijitTabListContainer-bottom .tabStripButton{ + background-image: none; +} +.claro .dijitDialog { + border: 1px solid #769dc0; + box-shadow:0px 1px 5px rgba(0,0,0,0.25); + -webkit-box-shadow:0px 1px 5px rgba(0,0,0,0.25); + -moz-box-shadow: 0px 1px 5px rgba(0,0,0,0.25); +} +.claro .dijitDialogPaneContent { + background: #fff repeat-x top left; + border-top: 1px solid #769dc0; + padding:10px 8px; + position: relative; +} +.claro .dijitDialogPaneContentArea { + + margin: -10px -8px; + padding: 10px 8px; +} +.claro .dijitDialogPaneActionBar { + + background-color: #f2f2f2; + padding: 3px 5px 2px 7px; + text-align: right; + border-top: 1px solid #cdcdcd; + margin: 10px -8px -10px; +} +.claro .dijitDialogPaneActionBar .dijitButton { + float: none; +} +.claro .dijitDialogTitleBar { + + border: 1px solid #fff; + border-top:none; + background-color: #abd6ff; + background-image: url(images/titlebar.png); + background-repeat:repeat-x; + padding: 5px 7px 4px 7px; +} +.claro .dijitDialogTitle { + + padding: 0px 1px; + font-size:1.091em; +} +.claro .dijitDialogCloseIcon { + + background: url(images/dialogCloseIcon.png); + background-repeat:no-repeat; + position: absolute; + right: 5px; + height: 15px; + width: 21px; +} +.dj_ie6 .claro .dijitDialogCloseIcon { + background-image: url(images/dialogCloseIcon8bit.png); +} +.claro .dijitDialogCloseIconHover { + background-position:-21px; +} +.claro .dijitDialogCloseIconActive { + background-position:-42px; +} +.claro .dijitTooltip, +.claro .dijitTooltipDialog { + + background: transparent; +} +.dijitTooltipBelow { + + padding-top: 13px; + padding-left:3px; + padding-right:3px; +} +.dijitTooltipAbove { + + padding-bottom: 13px; + padding-left:3px; + padding-right:3px; +} +.claro .dijitTooltipContainer { + + background-color:#fff; + background-image:url(images/tooltip.png); + background-repeat:repeat-x; + background-position:-575px 100%; + border:1px solid #769DC0; + padding:6px 8px; + border-radius: 4px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + box-shadow:0px 1px 3px rgba(0,0,0,0.25); + -webkit-box-shadow:0px 1px 3px rgba(0,0,0,0.25); + -moz-box-shadow: 0px 1px 3px rgba(0,0,0,0.25); + font-size: 1em; +} +.dj_ie6 .claro .dijitTooltipContainer { + background-image: none; +} +.claro .dijitTooltipConnector { + + border: 0px; + z-index: 2; + background-image:url(images/tooltip.png); + background-repeat:no-repeat; + width:16px; + height:14px; +} +.dj_ie6 .claro .dijitTooltipConnector { + background-image:url(images/tooltip8bit.png); +} +.claro .dijitTooltipABRight .dijitTooltipConnector { + + left: auto !important; + right: 3px; +} +.claro .dijitTooltipBelow .dijitTooltipConnector { + + top: 0px; + left: 3px; + background-position:-31px 0%; + width:16px; + height:14px; +} +.claro .dijitTooltipAbove .dijitTooltipConnector { + + bottom: 0px; + left: 3px; + background-position:-15px 0%; + width:16px; + height:14px; +} +.dj_ie7 .claro .dijitTooltipAbove .dijitTooltipConnector, +.dj_ie6 .claro .dijitTooltipAbove .dijitTooltipConnector { + bottom: -1px; +} +.claro .dijitTooltipLeft { + padding-right: 14px; +} +.dj_ie6 .claro .dijitTooltipLeft { + padding-left: 15px; +} +.claro .dijitTooltipLeft .dijitTooltipConnector { + + right: 0px; + bottom: 3px; + background-position:0px 0%; + width:16px; + height:14px; +} +.claro .dijitTooltipRight { + padding-left: 14px; +} +.claro .dijitTooltipRight .dijitTooltipConnector { + + left: 0px; + bottom: 3px; + background-position:-48px 0%; + width:16px; + height:14px; +} +.claro .dijitDialogUnderlay { + background: #fff; +} +.claro .dijitAccordionContainer { + border:none; +} +.claro .dijitAccordionInnerContainer { + background-color: #e6e6e7; + border:solid 1px #b5bcc7; + margin-bottom:1px; + -webkit-transition-property:background-color,border; + -webkit-transition-duration:.3s; + -webkit-transition-timing-function:linear; +} +.claro .dijitAccordionTitle { + background-color: transparent; + background-image: url(layout/images/accordion.png); + background-position:0px 0px; + background-repeat:repeat-x; + padding: 5px 7px 2px 7px; + min-height:17px; + color:#4a4a4a; +} +.dj_ie6 .claro .dijitAccordionTitle { + background-image: none; +} +.claro .dijitAccordionContainer .dijitAccordionContainer-child { + background-color:#fff; + + border:1px solid #92bce1 !important; + margin: 0px 2px 2px; + padding: 9px; +} +.claro .dijitAccordionInnerContainerActive { + border:1px solid #769DC0; + background-color:#7dbefa; + -webkit-transition-duration:.1s; +} +.claro .dijitAccordionInnerContainerActive .dijitAccordionTitle { + background-position:0px -136px; + color:#000; +} +.claro .dijitAccordionInnerContainerSelected { + border-color:#92bce1; + background-color: #cde8ff; +} +.claro .dijitAccordionInnerContainerSelected .dijitAccordionTitle { + color:#000; + background-position: 0 0; +} +.claro .dijitAccordionInnerContainerHover dijitAccordionTitle { + + color:#000; +} +.claro .dijitAccordionInnerContainerHover, +.claro .dijitAccordionInnerContainerSelectedActive { + border:1px solid #769DC0; + background-color:#9dcfff; + -webkit-transition-duration:.2s; +} +.claro .dijitAccordionInnerContainerSelectedHover .dijitAccordionContainer-child, +.claro .dijitAccordionInnerContainerSelectedActive .dijitAccordionContainer-child { + background-color:#ffffff; + border:1px solid #769DC0 !important; + -webkit-box-shadow:inset 0px 0px 3px rgba(0, 0, 0, .25); + -moz-box-shadow:inset 0px 0px 3px rgba(0, 0, 0, .25); +} +.claro .dijitContentPane { + padding: 8px; +} +.claro .dijitTabContainerTop-dijitContentPane, +.claro .dijitTabContainerLeft-dijitContentPane, +.claro .dijitTabContainerBottom-dijitContentPane, +.claro .dijitTabContainerRight-dijitContentPane, +.claro .dijitAccordionContainer-dijitContentPane { + background-color: #fff; + padding: 8px; +} +.claro .dijitSplitContainer-dijitContentPane, +.claro .dijitBorderContainer-dijitContentPane { + background-color: #fff; + padding: 8px; +} +.claro .dijitCalendar { + border:solid 1px #b5bcc7; + background-color:#d4ebff; + background-image:url(images/calendarContainerImages.png); + background-position:0px -448px; + background-repeat:repeat-x; + text-align:center; + padding:6px 5px 3px 5px; + -moz-border-radius:4px; + -webkit-border-radius:4px; +} +.dj_ie6 .claro .dijitCalendar { + background-image:none; +} +.claro .dijitCalendar img { + border:none; +} +.claro .dijitCalendarHover, +.claro .dijitCalendarActive { + background-color: #b7dcff; + border:solid 1px #769dc0; +} +.claro .dijitCalendarMonthContainer th { + text-align:center; + padding-bottom:4px; + vertical-align:middle; +} +.claro .dijitCalendarMonthLabelSpacer { + display:none; +} +.claro .dijitCalendarMonthLabel { + color:#000000; + font-size: 1.091em; + display: block; +} +.claro .dijitCalendarIncrementControl { + width:18px; + height:16px; + background-image: url(images/calendarArrows.png); + background-repeat: no-repeat; +} +.dj_ie6 .claro .dijitCalendarIncrementControl { + background-image: url(images/calendarArrows8bit.png); +} +.claro .dijitCalendarIncrease { + background-position:-18px 0px; +} +.claro .dijitCalendarArrowHover .dijitCalendarDecrease { + background-position:-36px 0px; +} +.claro .dijitCalendarArrowHover .dijitCalendarIncrease { + background-position:-55px 0px; +} +.claro .dijitCalendarArrowActive .dijitCalendarDecrease { + background-position:-72px 0px; +} +.claro .dijitCalendarArrowActive .dijitCalendarIncrease { + background-position:-91px 0px; +} +.claro .dijitA11ySideArrow { + + display: none; +} +.claro .dijitDayLabels th { + padding:0px 4px 0px 4px; + border-bottom:solid 1px #99b5cd; + font-weight:bold; + text-align:center; +} +.claro .dijitCalendarDayLabelTemplate { + padding-bottom:0em; + text-align:center; + border-bottom:1px solid #99B5CD; + font-size:0.909em; + padding:0 3px 2px; +} +.claro .dijitCalendarDateTemplate { + text-align:center; + background-color:#fff; + background-image:url(images/calendarContainerImages.png); + background-position:0px 0px; + background-repeat:repeat-x; + border-bottom: 1px solid #dadde1; + padding-top:0px; + font-size:0.909em; + font-family: Arial; + font-weight:bold; + letter-spacing:.05em; + text-align:center; +} +.dj_ie6 .claro .dijitCalendarDateTemplate { + background-image: none; +} +.claro .dijitCalendarPreviousMonth, +.claro .dijitCalendarNextMonth { + background-color:#ebf3f9; + background-image:none; + border-bottom:solid 1px #d2dae8; + color:#547da1; +} +.claro .dijitCalendarDateTemplate .dijitCalendarDateLabel { + text-decoration:none; + display:block; + padding:3px 5px 3px 4px; + border:solid 1px #fff; + color:#1e1e1e; + background-color:rgba(171,212,251,0); + -webkit-transition-property:background-color, border; + -webkit-transition-duration:.35s; +} +.claro .dijitCalendarPreviousMonth .dijitCalendarDateLabel, +.claro .dijitCalendarNextMonth .dijitCalendarDateLabel{ + color:#547da1; + border-color:#ebf3f9; +} +.claro .dijitCalendarYearContainer { + vertical-align:middle; +} +.claro .dijitCalendarYearControl { + padding: 1px 2px 2px 2px; +} +.claro .dijitCalendarYearLabel { + padding:2px 0px 0px 0px; + margin:0; +} +.claro .dijitCalendarYearLabel span { + + vertical-align:middle; +} +.claro .dijitCalendarSelectedYear { + padding:0px 3px; +} +.claro .dijitCalendarNextYear, +.claro .dijitCalendarPreviousYear { + padding: 1px 6px 1px 6px; + font-size:0.909em; +} +.claro .dijitCalendarSelectedYear { + font-size:1.091em; + color:#000; +} +.claro .dijitCalendarHoveredDate .dijitCalendarDateLabel{ + background-color:#abd4fb; + border:solid 1px #729dc2; + color:#000; + -webkit-transition-duration:.2s; +} +.claro .dijitCalendarNextYearHover, +.claro .dijitCalendarPreviousYearHover { + color:#000; + border:solid 1px #fefefe; + padding: 0px 5px 0px 5px; + background-color:#eaf4fe; +} +.claro .dijitCalendarNextYearActive, +.claro .dijitCalendarPreviousYearActive { + border: solid 1px #87b3d9; + padding: 0px 5px 0px 5px; + background-color:#90bde6; +} +.claro .dijitCalendarActiveDate .dijitCalendarDateLabel { + background-image:url(images/calendarContainerImages.png); + background-position:0px -300px; + background-color:#75b5f0; + border:solid 1px #fff; + -webkit-transition-duration:.1s; +} +.dj_ie6 .claro .dijitCalendarActiveDate .dijitCalendarDateLabel { + background-image:none; +} +.claro .dijitCalendarSelectedDate .dijitCalendarDateLabel { + color:#000; + background-color:#e7f4ff; + border-color:#accfed; +} +.claro .dijitCalendarDisabledDate .dijitCalendarDateLabel { + text-decoration:line-through; + + + background-color: transparent; + border-width: 0px; + padding: 4px 6px 4px 5px; + color: #547DA1; +} +.claro .dijitCalendarMonthContainer .dijitMenu{ + + top: 20px !important; + left: 0px; + border-color: #769dc0; + background-color: #fff; + text-align:center; + background-image: none; +} +.claro .dijitCalendarMonthContainer .dijitMenu .dijitCalendarMonthLabel{ + border-top: solid 1px #fff; + border-bottom: solid 1px #fff; + padding: 2px 20px; +} +.claro .dijitCalendarMonthContainer .dijitMenu .dijitMenuItemHover { + background-color: #abd6ff; + border-color: #769dc0; + border-width:1px 0px; + background-image: url(images/commonHighlight.png); + background-repeat:repeat-x; +} +.claro .dijitMenuBar { + border: 1px solid #b5bcc7; + margin: 0px; + padding: 0px; + background-color: #e6e6e7; + background-image: url(images/commonHighlight.png); + background-position:0px 0px; + background-repeat:repeat-x; +} +.dj_ie6 .claro .dijitMenuBar { + background-image:none; +} +.claro .dijitMenu { + background-repeat:repeat-y; + background-color:#fff; + border: 1px solid #769dc0; + + margin: -1px 0; +} +.claro .dijitMenuBar .dijitMenuItem { + padding: 6px 10px 7px; + background-position:0px 100px; + color:#4a4a4a; + margin:-1px; +} +.claro .dijitMenuItem { + background-image: url(images/menuHighlight.png); + background-position:0px -40px; + background-repeat:repeat-x; +} +.claro .dijitMenuTable { + border-collapse:separate; + border-spacing:0 0; + padding:0px; +} +.claro .dijitMenuItem td{ + padding:1px; +} +.claro .dijitMenuPassive .dijitMenuItemHover, +.claro .dijitMenuPassive .dijitMenuItemSelected { + background-color: #abd6ff; + border:solid 1px #769dc0; + background-position:0px 0px; + color:#000; + padding: 5px 9px 6px; +} +.claro .dijitMenuPassive .dijitMenuItemActive{ + background-position:0px -177px; +} +.dj_ie6 .claro .dijitMenuItem, +.dj_ie6 .claro .dijitMenuPassive .dijitMenuItem { + background-image: none; +} +.claro .dijitMenuActive .dijitMenuItemHover, +.claro .dijitMenuActive .dijitMenuItemSelected { + border:solid 1px #769dc0; + padding: 5px 9px 6px; + background-color: #9dcfff; + background-position:0px 0px; + color:#000; +} +.dj_ie .claro .dijitMenuActive .dijitMenuItemHover, +.dj_ie .claro .dijitMenuActive .dijitMenuItemSelected, +.dj_ie .claro .dijitMenuPassive .dijitMenuItemHover, +.dj_ie .claro .dijitMenuPassive .dijitMenuItemSelected { + padding-top: 6px; + padding-bottom: 5px; + margin-top: -3px; +} +.claro .dijitMenuActive .dijitMenuItemActive{ + background-color: #7dbefa; + background-position:0px -177px; +} +.claro .dijitMenuItemActive { + background-position:0px -177px; +} +.claro td.dijitMenuItemIconCell { + padding: 2px; + margin: 0px 0px 0px 4px; +} +.claro td.dijitMenuItemLabel { + padding-top: 5px; + padding-bottom: 5px; +} +.claro .dijitMenuExpand { + width: 7px; + height: 7px; + background-image: url(images/spriteArrows.png); + background-position: -14px 0px; + margin-right:3px; +} +.claro .dijitMenuItemDisabled .dijitMenuItemIconCell { + opacity:1; +} +.claro .dijitMenuSeparatorTop { + height: auto; + margin-top:1px; + border-bottom: 1px solid #b5bcc7 +} +.claro .dijitMenuSeparatorBottom{ + height: auto; + margin-bottom:1px; +} +.claro .dijitCheckedMenuItemIconChar { + display: none; +} +.claro .dijitCheckedMenuItemIcon { + background-image: url(form/images/checkboxRadioButtonStates.png); + background-repeat:no-repeat; + background-position: -15px 50%; + width:15px; + height:16px; +} +.dj_ie6 .claro .dijitCheckedMenuItemIcon { + background-image: url(form/images/checkboxAndRadioButtons_IE6.png); +} +.claro .dijitCheckedMenuItemChecked .dijitCheckedMenuItemIcon { + background-position: 0 50%; +} +.claro .dijitComboBoxMenu { + margin-left:0px; + background-image: none; +} +.claro .dijitComboBoxMenu .dijitMenuItem{ + padding:2px 0px; + text-indent:6px; + border-width:1px 0px 1px 0px; + border-style:solid; + border-color:#fff; +} +.claro .dijitComboBoxMenu .dijitMenuItemSelected { + color:#000; + border-color:#768dc0; + background-color:#abd6ff; +} +.claro .dijitComboBoxMenuActive .dijitMenuItemSelected { + background-position:0px -177px; + background-color:#7dbefa; +} +.claro .dijitMenuPreviousButton, .claro .dijitMenuNextButton { + font-style: italic; +} +.claro .dijitSliderBar { + border-style: solid; + outline: 1px; +} +.claro .dijitSliderFocused .dijitSliderBar { + border-color: #769dc0; +} +.claro .dijitSliderHover .dijitSliderBar { + border-color: #769dc0; +} +.claro .dijitSliderDisabled .dijitSliderBar { + background-image: none; + border-color: #d3d3d3; +} +.claro .dijitRuleLabelsContainerH { + padding: 2px 0px; +} +.claro .dijitSlider .dijitSliderProgressBarH, +.claro .dijitSlider .dijitSliderLeftBumper{ + background-image: url(form/images/sliderHorizontal.png); + background-repeat:repeat-x; + background-position:0 -20px; + border-color: #b5bcc7; + background-color: #cfe5fa; +} +.claro .dijitSlider .dijitSliderRemainingBarH, +.claro .dijitSlider .dijitSliderRightBumper{ + background-image: url(form/images/sliderHorizontal.png); + background-repeat:repeat-x; + background-position:0 -11px; + border-color: #b5bcc7; + background-color: #fff; +} +.claro .dijitSliderRightBumper { + border-right: solid 1px #b5bcc7; +} +.claro .dijitSliderLeftBumper { + border-left: solid 1px #b5bcc7; +} +.claro .dijitSliderHover .dijitSliderProgressBarH, +.claro .dijitSliderHover .dijitSliderLeftBumper{ + background-position:0 -20px; + background-color: #abd6ff; + border-color: #769dc0; +} +.claro .dijitSliderHover .dijitSliderRemainingBarH, +.claro .dijitSliderHover .dijitSliderRightBumper{ + background-position:0 0px; + background-color: #fff; + border-color: #769dc0; +} +.claro .dijitSliderFocused .dijitSliderProgressBarH, +.claro .dijitSliderFocused .dijitSliderLeftBumper{ + background-position:0 -30px; + background-color: #abd6ff; + border-color: #769dc0; +} +.claro .dijitSliderFocused .dijitSliderRemainingBarH, +.claro .dijitSliderFocused .dijitSliderRightBumper{ + background-position:0 -9px; + background-color: #fff; + border-color: #769dc0; +} +.claro .dijitSliderDisabled .dijitSliderProgressBarH, +.claro .dijitSliderDisabled .dijitSliderLeftBumper{ + background-color: #cdcdcd; + background-image:none; +} +.claro .dijitSliderDisabled .dijitSliderRemainingBarH, +.claro .dijitSliderDisabled .dijitSliderRightBumper{ + background-color: #efefef; +} +.claro .dijitRuleLabelsContainerV { + padding: 0px 2px; +} +.claro .dijitSlider .dijitSliderProgressBarV, +.claro .dijitSlider .dijitSliderBottomBumper{ + background-image: url(form/images/sliderVertical.png); + background-repeat:repeat-y; + background-position:-36px 0; + border-color: #b5bcc7; + background-color: #cfe5fa; +} +.claro .dijitSlider .dijitSliderRemainingBarV, +.claro .dijitSlider .dijitSliderTopBumper{ + background-image: url(form/images/sliderVertical.png); + background-repeat:repeat-y; + background-position:-3px 0; + border-color: #b5bcc7; + background-color: #fff; +} +.claro .dijitSliderBottomBumper { + border-bottom: solid 1px #b5bcc7; +} +.claro .dijitSliderTopBumper { + border-top: solid 1px #b5bcc7; +} +.claro .dijitSliderHover .dijitSliderProgressBarV, +.claro .dijitSliderHover .dijitSliderBottomBumper{ + background-position:-36px 0; + background-color: #abd6ff; +} +.claro .dijitSliderHover .dijitSliderRemainingBarV, +.claro .dijitSliderHover .dijitSliderTopBumper{ + background-position:0 0; + background-color: #fff; +} +.claro .dijitSliderFocused .dijitSliderProgressBarV, +.claro .dijitSliderFocused .dijitSliderBottomBumper{ + background-position:-56px 0; + background-color: #abd6ff; +} +.claro .dijitSliderFocused .dijitSliderRemainingBarV, +.claro .dijitSliderFocused .dijitSliderTopBumper{ + background-position:-18px 0; + background-color: #fff; +} +.claro .dijitSliderDisabled .dijitSliderProgressBarV, +.claro .dijitSliderDisabled .dijitSliderBottomBumper{ + background-color: #cdcdcd; +} +.claro .dijitSliderDisabled .dijitSliderRemainingBarV, +.claro .dijitSliderDisabled .dijitSliderTopBumper{ + background-color: #efefef; +} +.claro .dijitSliderImageHandleH { + border: 0px; + width: 18px; + height: 16px; + background-image: url(form/images/sliderThumbs.png); + background-repeat:no-repeat; + background-position:0 0; +} +.claro .dijitSliderHover .dijitSliderImageHandleH { + background-position:-18px 0; +} +.claro .dijitSliderFocused .dijitSliderImageHandleH { + background-position:-36px 0; +} +.claro .dijitSliderProgressBarH .dijitSliderThumbHover{ + background-position:-36px 0; +} +.claro .dijitSliderProgressBarH .dijitSliderThumbActive{ + background-position:-36px 0; +} +.claro .dijitSliderReadOnly .dijitSliderImageHandleH, +.claro .dijitSliderDisabled .dijitSliderImageHandleH { + background-position:-54px 0; +} +.claro .dijitSliderImageHandleV { + border: 0px; + width: 18px; + height: 16px; + background-image: url(form/images/sliderThumbs.png); + background-repeat:no-repeat; + background-position:-289px 0; +} +.claro .dijitSliderHover .dijitSliderImageHandleV { + background-position:-307px 0; +} +.claro .dijitSliderFocused .dijitSliderImageHandleV { + background-position:-325px 0; +} +.claro .dijitSliderProgressBarV .dijitSliderThumbHover{ + background-position:-325px 0; +} +.claro .dijitSliderProgressBarV .dijitSliderThumbActive{ + background-position:-325px 0; +} +.claro .dijitSliderReadOnly .dijitSliderImageHandleV, +.claro .dijitSliderDisabled .dijitSliderImageHandleV { + background-position:-343px 0; +} +.claro .dijitSliderButtonContainerH{ + padding: 1px 3px 1px 2px; +} +.claro .dijitSliderButtonContainerV{ + padding: 3px 1px 2px 1px; +} +.claro .dijitSliderDecrementIconH, +.claro .dijitSliderIncrementIconH, +.claro .dijitSliderDecrementIconV, +.claro .dijitSliderIncrementIconV { + background-image: url(form/images/commonFormArrows.png); + background-repeat:no-repeat; + background-color: #e9ecf2; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border: solid 1px #b5bcc7; + font-size: 1px; +} +.claro .dijitSliderDecrementIconH, +.claro .dijitSliderIncrementIconH { + height: 12px; + width: 9px; +} +.claro .dijitSliderDecrementIconV, +.claro .dijitSliderIncrementIconV { + height: 9px; + width: 12px; +} +.claro .dijitSliderActive .dijitSliderDecrementIconH, +.claro .dijitSliderActive .dijitSliderIncrementIconH, +.claro .dijitSliderActive .dijitSliderDecrementIconV, +.claro .dijitSliderActive .dijitSliderIncrementIconV, +.claro .dijitSliderHover .dijitSliderDecrementIconH, +.claro .dijitSliderHover .dijitSliderIncrementIconH, +.claro .dijitSliderHover .dijitSliderDecrementIconV, +.claro .dijitSliderHover .dijitSliderIncrementIconV { + border: solid 1px #769dc0; + background-color:#fff; +} +.claro .dijitSliderDecrementIconH { + background-position:-357px 50%; +} +.claro .dijitSliderActive .dijitSliderDecrementIconH +.claro .dijitSliderHover .dijitSliderDecrementIconH { + background-position:-393px 50%; +} +.claro .dijitSliderIncrementIconH { + background-position:-251px 50%; +} +.claro .dijitSliderActive .dijitSliderIncrementIconH +.claro .dijitSliderHover .dijitSliderIncrementIconH { + background-position:-283px 50%; +} +.claro .dijitSliderDecrementIconV { + background-position:-38px 50%; +} +.claro .dijitSliderActive .dijitSliderDecrementIconV +.claro .dijitSliderHover .dijitSliderDecrementIconV { + background-position:-73px 50%; +} +.claro .dijitSliderIncrementIconV { + background-position:-143px 49%; +} +.claro .dijitSliderActive .dijitSliderIncrementIconV +.claro .dijitSliderHover .dijitSliderIncrementIconV { + background-position:-178px 49%; +} +.claro .dijitSliderButtonContainerV .dijitSliderDecrementButtonHover, +.claro .dijitSliderButtonContainerH .dijitSliderDecrementButtonHover, +.claro .dijitSliderButtonContainerV .dijitSliderIncrementButtonHover, +.claro .dijitSliderButtonContainerH .dijitSliderIncrementButtonHover { + background-color: #cce3fc; +} +.claro .dijitSliderButtonContainerV .dijitSliderDecrementButtonActive, +.claro .dijitSliderButtonContainerH .dijitSliderDecrementButtonActive, +.claro .dijitSliderButtonContainerV .dijitSliderIncrementButtonActive, +.claro .dijitSliderButtonContainerH .dijitSliderIncrementButtonActive { + background-color: #a5d0fc; + border-color:#6591b9; +} +.claro .dijitSliderButtonInner { + visibility: hidden; +} +.claro .dijitSliderDisabled .dijitSliderBar{ + border-color: #d3d3d3; +} +.claro .dijitSliderReadOnly *,.claro .dijitSliderDisabled * { + border-color: #d3d3d3; + color: #bdbdbd; +} +.claro .dijitSliderReadOnly .dijitSliderDecrementIconH, +.claro .dijitSliderDisabled .dijitSliderDecrementIconH { + background-position:-321px 50%; + background-color:#e9e9e9; +} +.claro .dijitSliderReadOnly .dijitSliderIncrementIconH, +.claro .dijitSliderDisabled .dijitSliderIncrementIconH { + background-position:-215px 50%; + background-color:#e9e9e9; +} +.claro .dijitSliderReadOnly .dijitSliderDecrementIconV, +.claro .dijitSliderDisabled .dijitSliderDecrementIconV { + background-position:-3px 49%; + background-color:#e9e9e9; +} +.claro .dijitSliderReadOnly .dijitSliderIncrementIconV, +.claro .dijitSliderDisabled .dijitSliderIncrementIconV { + background-position:-107px 49%; + background-color:#e9e9e9; +} +.dj_ie6 .claro .dijitSlider .dijitSliderProgressBarH, +.dj_ie6 .claro .dijitSlider .dijitSliderLeftBumper, +.dj_ie6 .claro .dijitSlider .dijitSliderRemainingBarH, +.dj_ie6 .claro .dijitSlider .dijitSliderRightBumper, +.dj_ie6 .claro .dijitSlider .dijitSliderProgressBarV, +.dj_ie6 .claro .dijitSlider .dijitSliderTopBumper, +.dj_ie6 .claro .dijitSlider .dijitSliderRemainingBarV, +.dj_ie6 .claro .dijitSlider .dijitSliderBottomBumper { + background-image:none; +} +.claro .dijitColorPalette { + outline: 1px solid #769dc0; + border: 1px solid #c0ccdf; + background:#fff; + -moz-border-radius: 0px; +} +.claro .dijitColorPalette .dijitPaletteImg { + + border: 1px solid #cecece; +} +.claro .dijitColorPalette .dijitPaletteCellHover .dijitPaletteImg { + border: 1px solid #000; +} +.claro .dijitColorPalette .dijitPaletteCellActive .dijitPaletteImg, +.claro .dijitColorPalette .dijitPaletteCellSelected .dijitPaletteImg { + border: 2px solid #000; +} +.claro .dijitInlineEditBoxDisplayMode { + border: 1px solid transparent; +} +.claro .dijitInlineEditBoxDisplayModeHover { + background-color: #e2f1ff; + border: solid 1px #769dc0; +} +.dj_ie6 .claro .dijitInlineEditBoxDisplayMode { + border: none; +} + +.claro .dijitProgressBar { + margin:2px 0px 2px 0px; +} +.claro .dijitProgressBarEmpty { + + background:#fff url(images/progressBarEmpty.png) repeat-none left; + border-color: #769dc0; +} +.claro .dijitProgressBarTile { + + background:#9dcfff url(images/progressBarFull.png) repeat-x top; +} +.dj_ie6 .claro .dijitProgressBarTile { + background-image: none; +} +.claro .dijitProgressBarFull { + border-right:1px solid #769dc0; +} +.claro .dijitProgressBarLabel { + + color:#293a4b; +} +.claro .dijitProgressBarIndeterminate .dijitProgressBarTile { + + background:#cad2de url(images/progressBarAnim.gif) repeat-x top; +} +.claro .dijitTimePicker .dijitButtonNode { + padding: 0 0; + border-radius: 0; + -moz-border-radius: 0; + -webkit-border-radius: 0; +} +.claro .dijitTimePicker{ + border:1px #b5bcc7 solid; + border-top:none; + border-bottom:none; + background-color:#fff; +} +.claro .dijitTimePickerItem{ + + background-image: url(images/commonHighlight.png); + background-position:0px -1px; + background-repeat:repeat-x; + border-top:solid 1px #b5bcc7; + border-bottom:solid 1px #b5bcc7; + margin-right:-1px; + margin-left:-1px; + margin-top:-1px; +} +.dj_ie6 .claro .dijitTimePickerItem { + background-image: none; +} +.claro .dijitTimePickerTick { + + color:#7a7a7a; + background-color:#f2f2f2; + font-size:0.818em; +} +.claro .dijitTimePickerMarker { + + color:#000; + background-color:#e3f2ff; + font-size: 1em; + white-space: nowrap; +} +.claro .dijitTimePickerTickHover, +.claro .dijitTimePickerMarkerHover, +.claro .dijitTimePickerMarkerSelected, +.claro .dijitTimePickerTickSelected { + background-color: #83c0fa; + color:#000; + border:solid 1px #b5bcc7; + margin-left:-7px; + margin-right:-7px; +} +.claro .dijitTimePickerMarkerSelected, +.claro .dijitTimePickerTickSelected { + font-size: 1em; + } +.dj_ie .claro .dijitTimePickerTickHover, +.dj_ie .claro .dijitTimePickerMarkerHover, +.dj_ie .claro .dijitTimePickerMarkerSelected, +.dj_ie .claro .dijitTimePickerTickSelected { + width: 114%; +} +.dj_ie6 .claro .dijitTimePickerTickHover, +.dj_ie6 .claro .dijitTimePickerMarkerHover, +.dj_ie6 .claro .dijitTimePickerMarkerSelected, +.dj_ie6 .claro .dijitTimePickerTickSelected { + position: relative; + zoom: 1; +} +.claro .dijitTimePickerTick .dijitTimePickerItemInner { + padding:1px; + margin:0px; +} +.claro .dijitTimePicker .dijitButtonNode { + border-left:none; + border-right:none; + border-color:#b5bcc7; + background-color: #f6f7fa; + background-image: url(images/commonHighlight.png); + background-position:0px -1px; + background-repeat:repeat-x; +} +.dj_ie6 .claro .dijitTimePicker .dijitButtonNode { + background-image: none; +} +.claro .dijitTimePicker .dijitArrowButtonInner{ + height: 100%; + background-image: url(form/images/commonFormArrows.png); + background-repeat: no-repeat; + background-position:-140px 45%; +} +.claro .dijitTimePicker .dijitDownArrowButton .dijitArrowButtonInner{ + background-position:-35px 45%; +} +.claro .dijitTimePicker .dijitUpArrowHover, +.claro .dijitTimePicker .dijitDownArrowHover { + background-color: #abd6ff; +} +.claro .dijitTimePicker .dijitUpArrowHover .dijitArrowButtonInner { + background-position:-175px 45%; +} +.claro .dijitTimePicker .dijitDownArrowHover .dijitArrowButtonInner { + background-position:-70px 45%; +} +.claro .dijitBorderContainer { + border: 1px #b5bcc7 solid; + padding: 5px; +} +.claro .dijitSplitContainer-child, +.claro .dijitBorderContainer-child { + + border: 1px #b5bcc7 solid; +} +.claro .dijitBorderContainer-dijitTabContainerTop, +.claro .dijitBorderContainer-dijitTabContainerBottom, +.claro .dijitBorderContainer-dijitTabContainerLeft, +.claro .dijitBorderContainer-dijitTabContainerRight, +.claro .dijitBorderContainer-dijitAccordionContainer { + + border: none; +} +.claro .dijitBorderContainer-dijitBorderContainer { + + border: 1px #c0ccdf solid; + padding: 5px; +} +.claro .dijitSplitterH, +.claro .dijitGutterH { + background:none; + border:0; + height:5px; +} +.claro .dijitSplitterH .dijitSplitterThumb { + background:#dde2e9 none; + height:1px; + top:2px; + width:19px; +} +.claro .dijitSplitterV, +.claro .dijitGutterV { + background:none; + border:0; + width:5px; + margin: 0; +} +.claro .dijitSplitterV .dijitSplitterThumb { + background:#dde2e9 none; + height:19px; + left:2px; + width:1px; + margin: 0; +} +.claro .dijitSplitterHHover { + font-size: 1px; + background: url(layout/images/splitterHorizontalHover.png) no-repeat center top; +} +.claro .dijitSplitterHHover .dijitSplitterThumb { + background:#769dc0 none; +} +.claro .dijitSplitterVHover { + font-size: 1px; + background: url(layout/images/splitterVerticalHover.png) no-repeat center left; +} +.claro .dijitSplitterVHover .dijitSplitterThumb { + background:#769dc0 none; +} +.dj_ie6 .dijitSplitterHHover, +.dj_ie6 .claro .dijitSplitterVHover { + background-color:#cfe9ff; + background-image:none; +} +.claro .dijitSplitterHActive { + font-size: 1px; + background-color:#abd4fb; + border-top:blue; +} +.claro .dijitSplitterVActive { + font-size: 1px; + background-color:#abd4fb; +} +.claro .dijitTreeNode { + zoom: 1; +} +.claro .dijitTreeIsRoot { + background-image: none; +} +.claro .dijitTreeRow { + + padding: 4px 1px 2px 0px; + margin-left: 1px; + background-image: url(images/commonHighlight.png); + background-position:0px 0px; + background-repeat:repeat-x; + border-color: rgba(118,157,192,0); + background-color: rgba(171,214,255,0); + -webkit-transition-property:background-color, border-color; + -webkit-transition-duration:.25s ; + -webkit-transition-timing-function: ease-out; +} +.dj_ie6 .claro .dijitTreeRow { + background-image: none; +} +.claro .dijitTreeRowSelected { + background-repeat:repeat-x; + background-color:#d8edff; + padding: 3px 0px 1px; + margin-left: 0px; + border:solid 1px #c3e2fd; + color:#000; +} +.claro .dijitTreeRowHover { + background-color:#abd6ff; + padding: 3px 0px 1px; + margin-left: 0px; + border:solid 1px #769dc0; + color:#000; + -webkit-transition-duration:.25s ; +} +.claro .dijitTreeRowActive { + background-color:#7dbefa; + background-position:0px -177px; + padding: 3px 0px 1px; + margin-left: 0px; + border:solid 1px #769dc0; + color:#000; +} +.dj_ie6 .claro .dijitTreeRowActive { + background-image: none; +} +.claro .dijitTreeRowFocused { + background-repeat: repeat; +} +.claro .dijitTreeExpando { + background-image: url(images/treeExpandImages.png); + width: 16px; + height: 16px; + background-position: -35px 0px +} +.dj_ie6 .claro .dijitTreeExpando { + background-image: url(images/treeExpandImages8bit.png); +} +.claro .dijitTreeRowHover .dijitTreeExpandoOpened { + background-position: -53px 0px; +} +.claro .dijitTreeExpandoClosed { + background-position: 1px 0px; +} +.claro .dijitTreeRowHover .dijitTreeExpandoClosed { + background-position: -17px 0px; +} +.claro .dijitTreeExpandoLeaf{ + background-image:none; +} +.claro .dijitTreeExpandoLoading { + background-image: url(images/loadingAnimation.gif); +} +.claro .dijitTreeNode .dojoDndItemBefore, +.claro .dijitTreeNode .dojoDndItemAfter { + border-bottom: none; + border-top: none; +} +.claro .dijitTreeNode .dojoDndItemBefore .dijitTreeContent { + border-top: 2px solid #369; +} +.claro .dijitTreeNode .dojoDndItemAfter .dijitTreeContent { + border-bottom: 2px solid #369; +} + +.claro .dijitToolbar { + border-bottom: 1px solid #b5bcc7; + background-color: #f1f1f1; + background-image: url(images/commonHighlight.png); + background-position:0px 0px; + background-repeat:repeat-x; + padding: 2px 0px 2px 4px; + zoom: 1; +} +.claro .dijitToolbar label { + padding: 0px 3px 0 6px; +} +.claro .dijitToolbar .dijitButtonNode { + border:none; + padding: 2px; + background-image: url(images/commonHighlight.png); + background-position:0 -30px; + background-repeat:repeat-x; + background-color:rgba(171,214,255,0); + border-radius: 2px; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + -moz-box-shadow: none; + -webkit-box-shadow: none; + -webkit-transition-property:background-color; + -webkit-transition-duration:.3s, .35s; +} +.claro .dijitToolbar .dijitComboButton .dijitButtonNode{ + padding: 3px 2px 3px 2px; +} +.dj_ie .claro .dijitToolbar .dijitButtonNode { + background-color: transparent; +} +.dj_ie6 .claro .dijitToolbar .dijitButtonNode { + background: none; +} +.claro .dijitToolbar .dijitComboBox .dijitButtonNode { + padding: 0px; +} +.claro .dijitToolbar .dijitComboButton { + padding: 1px; +} +.claro .dijitToolbar .dijitButtonHover .dijitButtonNode, +.claro .dijitToolbar .dijitDropDownButtonHover .dijitButtonNode, +.claro .dijitToolbar .dijitToggleButtonHover .dijitButtonNode { + background-position:0 0; + border:solid 1px #769dc0; + background-color: #abd6ff; + padding: 1px; +} +.claro .dijitToolbar .dijitComboButtonHover { + background-color: #abd6ff; + border: solid 1px #769dc0; + padding: 0px; +} +.claro .dijitToolbar .dijitComboButtonHover .dijitButtonNode, +.claro .dijitToolbar .dijitComboButtonHover .dijitDownArrowButton { + background-position:0 0; + padding: 2px; +} +.claro .dijitToolbar .dijitComboButtonHover .dijitDownArrowButton { + background-color: #7dd6fa; +} +.claro .dijitToolbar .dijitButtonActive .dijitButtonNode, +.claro .dijitToolbar .dijitDropDownButtonActive .dijitButtonNode, +.claro .dijitToolbar .dijitToggleButtonActive .dijitButtonNode { + border:solid 1px #769dc0; + background-color:#7dbefa; + background-position:0px -177px; + padding: 1px; +} +.claro .dijitToolbar .dijitComboButtonActive { + -webkit-transition-duration:.2s; + border: solid 1px #769dc0; + padding: 0px; +} +.claro .dijitToolbar .dijitComboButtonActive .dijitButtonNode { + background-color: #7dbefa; + background-position:0px -177px; + padding: 2px; +} +.claro .dijitToolbar .dijitComboButton .dijitDownArrowButtonActive { + background-color: #7dbefa; +} +.claro .dijitToolbar .dijitToggleButtonChecked .dijitButtonNode { + border-color: #769dc0; + background-color:#fff; + padding: 1px; +} +.dj_ie6 .claro .dijitToolbar .dijitButtonContents, +.dj_ie7 .claro .dijitToolbar .dijitButtonContents { + margin: -2px 0; + padding: 0; +} +.dj_ie6 .claro .dijitToolbar { + background-image: none; +} +.dj_ie6 .claro .dijitToolbar .dijitButtonNode { + margin: 1px; + border: none; +} +.dj_ie6 .claro .dijitToolbar .dijitButtonHover .dijitButtonNode, +.dj_ie6 .claro .dijitToolbar .dijitDropDownButtonHover .dijitButtonNode, +.dj_ie6 .claro .dijitToolbar .dijitComboButton .dijitButtonNodeHover, +.dj_ie6 .claro .dijitToolbar .dijitComboButton .dijitDownArrowButtonHover, +.dj_ie6 .claro .dijitToolbar .dijitToggleButtonHover .dijitButtonNode, +.dj_ie6 .claro .dijitToolbar .dijitButtonActive .dijitButtonNode, +.dj_ie6 .claro .dijitToolbar .dijitDropDownButtonActive .dijitButtonNode, +.dj_ie6 .claro .dijitToolbar .dijitComboButton .dijitButtonNodeActive, +.dj_ie6 .claro .dijitToolbar .dijitComboButton .dijitDownArrowButtonActive, +.dj_ie6 .claro .dijitToolbar .dijitToggleButtonActive .dijitButtonNode, +.claro .dijitToolbar .dijitToggleButtonChecked .dijitButtonNode { + margin: 0; + border-width: 1px; + border-style: solid; + background-image: none; +} +.dj_ie6 .claro .dijitToolbar .dijitComboButton .dijitButtonNodeHover, +.dj_ie6 .claro .dijitToolbar .dijitComboButton .dijitDownArrowButtonHover, +.dj_ie6 .claro .dijitToolbar .dijitComboButton .dijitButtonNodeActive, +.dj_ie6 .claro .dijitToolbar .dijitComboButton .dijitDownArrowButtonActive { + padding: 1px; +} +.claro .dijitToolbarSeparator { + + background: url(../../icons/images/editorIconsEnabled.png); +} +.claro .dijitDisabled .dijitToolbar { + background:none; + background-color:#f5f5f5; + border-bottom: 1px solid #d3d3d3; +} +.claro .dijitEditorIFrameContainer{ + padding:3px 3px 1px 10px; +} +.claro .dijitEditorIFrame { + background-color: #fff; +} +.claro .dijitEditor { + border: 1px solid #b5bcc7; +} +.claro .dijitEditor .dijitEditorIFrameContainer{ + background-color: #fff; + background-image: url(form/images/textBox_back.png); + background-repeat:repeat-x; +} +.dj_ie6 .claro .dijitEditor .dijitEditorIFrameContainer{ + background-image: none; +} +.claro .dijitEditorHover .dijitEditorIFrameContainer, +.claro .dijitEditorHover .dijitEditorIFrameContainer .dijitEditorIFrame{ + background-color: #eef7ff; +} +.claro .dijitEditorFocused .dijitEditorIFrameContainer, +.claro .dijitEditorFocused .dijitEditorIFrameContainer .dijitEditorIFrame{ + + background-color: #fff; +} +.claro .dijitEditorDisabled { + border: 1px solid #d3d3d3; + color: #818181; +} +.claro .dijitDisabled .dijitEditorIFrame, +.claro .dijitDisabled .dijitEditorIFrameContainer { + background-color: #efefef; + background-image: none; +} +.dijitEditorIcon { + background-image: url(../../icons/images/editorIconsEnabled.png); + background-repeat: no-repeat; + width: 18px; + height: 18px; + text-align: center; +} +.dijitDisabled .dijitEditorIcon { + background-image: url(../../icons/images/editorIconsDisabled.png); +} +.dijitEditorIconSep { background-position: 0px; } +.dijitEditorIconSave { background-position: -18px; } +.dijitEditorIconPrint { background-position: -36px; } +.dijitEditorIconCut { background-position: -54px; } +.dijitEditorIconCopy { background-position: -72px; } +.dijitEditorIconPaste { background-position: -90px; } +.dijitEditorIconDelete { background-position: -108px; } +.dijitEditorIconCancel { background-position: -126px; } +.dijitEditorIconUndo { background-position: -144px; } +.dijitEditorIconRedo { background-position: -162px; } +.dijitEditorIconSelectAll { background-position: -180px; } +.dijitEditorIconBold { background-position: -198px; } +.dijitEditorIconItalic { background-position: -216px; } +.dijitEditorIconUnderline { background-position: -234px; } +.dijitEditorIconStrikethrough { background-position: -252px; } +.dijitEditorIconSuperscript { background-position: -270px; } +.dijitEditorIconSubscript { background-position: -288px; } +.dijitEditorIconJustifyCenter { background-position: -306px; } +.dijitEditorIconJustifyFull { background-position: -324px; } +.dijitEditorIconJustifyLeft { background-position: -342px; } +.dijitEditorIconJustifyRight { background-position: -360px; } +.dijitEditorIconIndent { background-position: -378px; } +.dijitEditorIconOutdent { background-position: -396px; } +.dijitEditorIconListBulletIndent { background-position: -414px; } +.dijitEditorIconListBulletOutdent { background-position: -432px; } +.dijitEditorIconListNumIndent { background-position: -450px; } +.dijitEditorIconListNumOutdent { background-position: -468px; } +.dijitEditorIconTabIndent { background-position: -486px; } +.dijitEditorIconLeftToRight { background-position: -504px; } +.dijitEditorIconRightToLeft, .dijitEditorIconToggleDir { background-position: -522px; } +.dijitEditorIconBackColor { background-position: -540px; } +.dijitEditorIconForeColor { background-position: -558px; } +.dijitEditorIconHiliteColor { background-position: -576px; } +.dijitEditorIconNewPage { background-position: -594px; } +.dijitEditorIconInsertImage { background-position: -612px; } +.dijitEditorIconInsertTable { background-position: -630px; } +.dijitEditorIconSpace { background-position: -648px; } +.dijitEditorIconInsertHorizontalRule { background-position: -666px; } +.dijitEditorIconInsertOrderedList { background-position: -684px; } +.dijitEditorIconInsertUnorderedList { background-position: -702px; } +.dijitEditorIconCreateLink { background-position: -720px; } +.dijitEditorIconUnlink { background-position: -738px; } +.dijitEditorIconViewSource { background-position: -756px; } +.dijitEditorIconRemoveFormat { background-position: -774px; } +.dijitEditorIconFullScreen { background-position: -792px; } +.dijitEditorIconWikiword { background-position: -810px; } + +.claro .dijitTitlePaneTitle { + background-color: #e6e6e7; + background-image: url(images/titlebar.png); + background-repeat:repeat-x; + border:1px solid #b5bcc7; + padding: 0px 7px 3px 7px; + min-height:17px; + color:#131313; +} +.dj_ie6 .claro .dijitTitlePaneTitle { + background-image: none; +} +.claro .dijitTitlePaneTitleHover { + background-color: #abd6ff; + border-color: #769dc0; +} +.claro .dijitTitlePaneTitleActive { + background-color: #7dbefa; + border-color: #769dc0; + background-position:0px -136px; +} +.claro .dijitTitlePaneTitleFocus { + margin-top:3px; + padding-bottom:2px; +} +.claro .dijitTitlePane .dijitArrowNode { + background-image: url(images/spriteArrows.png); + background-repeat: no-repeat; + height: 8px; + width: 7px; +} +.claro .dijitTitlePane .dijitOpen .dijitArrowNode { + background-position: 0px 0px; +} +.claro .dijitTitlePane .dijitClosed .dijitArrowNode { + background-position: -14px 0px; +} +.claro .dijitTitlePaneFocused .dijitTitlePaneTextNode { + color:#000; +} +.claro .dijitTitlePaneContentOuter { + background: #ffffff; + border:1px solid #b5bcc7; + border-top:none; +} +.claro .dijitTitlePaneContentInner { + padding:10px; +} +.claro .dijitTitlePaneTextNode { + margin-left: 4px; + margin-right: 4px; + vertical-align:text-top; +} +.claro .dijitSpinnerButtonContainer { + overflow: hidden; + position: relative; + width: auto; + padding: 0 2px; +} +.claro .dijitSpinnerButtonContainer .dijitSpinnerButtonInner { + border-width: 1px 0; + border-style: solid none; +} +.claro .dijitSpinner .dijitArrowButton { + width:auto; + background-color: #ebeef4; + background-image: url(form/images/formHighlight.png); + background-position:0px 0px; + background-repeat:repeat-x; + overflow: hidden; +} +.dj_iequirks .claro .dijitSpinner .dijitArrowButton { + overflow: visible; +} +.claro .dijitSpinner .dijitSpinnerButtonInner { + width: 15px; +} +.claro .dijitSpinner .dijitArrowButtonInner { + border:solid 1px #fff; + border-bottom-width: 0; + background-image: url(form/images/commonFormArrows.png); + background-repeat: no-repeat; + height: 100%; + width:15px; + padding-left: 1px; + padding-right: 1px; + + background-position:-139px center; + + display: block; + margin: -1px 0px -1px 0px; + #margin-top: 0; +} +.dj_iequirks .claro .dijitSpinner .dijitArrowButtonInner { + width: 19px; +} +.claro .dijitSpinner .dijitDownArrowButton .dijitArrowButtonInner { + background-position:-34px; +} +.claro .dijitSpinner .dijitArrowButtonInner .dijitInputField { + padding: 0; +} +.claro .dijitUpArrowButtonActive, +.claro .dijitDownArrowButtonActive { + background-color:#abd6ff; +} +.claro .dijitSpinner .dijitUpArrowButtonHover, +.claro .dijitSpinner .dijitDownArrowButtonHover, +.claro .dijitSpinnerFocused .dijitArrowButton { + background-color: #a0d1ff; +} +.claro .dijitSpinner .dijitUpArrowButtonHover .dijitArrowButtonInner { + background-position:-174px; +} +.claro .dijitSpinner .dijitDownArrowButtonHover .dijitArrowButtonInner { + background-position:-69px; +} +.claro .dijitSpinnerFocused { + background-color: #fff; + background-image: none; +} +.claro .dijitSpinner .dijitDownArrowButtonActive, +.claro .dijitSpinner .dijitUpArrowButtonActive { + background-color: #3299f9; + background-position:0px -177px; +} +.claro .dijitSpinner .dijitUpArrowButtonActive .dijitArrowButtonInner, +.claro .dijitSpinner .dijitDownArrowButtonActive .dijitArrowButtonInner { + + border: 0px; + padding: 1px; + margin-right:2px; + margin-bottom:1px; +} +.claro .dijitSpinner .dijitUpArrowButtonActive .dijitArrowButtonInner { + background-position:-173px; +} +.claro .dijitSpinner .dijitDownArrowButtonActive .dijitArrowButtonInner { + background-position:-68px; +} +.claro .dijitSpinnerDisabled .dijitArrowButtonInner { + background-color: #f1f1f1; +} +.claro .dijitSpinnerDisabled .dijitUpArrowButton .dijitArrowButtonInner { + background-position:-104px; +} +.claro .dijitSpinnerDisabled .dijitDownArrowButton .dijitArrowButtonInner { + background-position:1px; +} +.dj_ie7 .claro .dijitSpinner { + overflow:visible; +} +.dijitRtl .dijitPlaceHolder { + left: auto; + right: 0; +} +.dijitMenuItemRtl { + text-align: right; +} +.dj_iequirks .dijitComboButtonRtl BUTTON { + + float:left; +} +.dijit_a11y .dijitTextBoxRtl .dijitValidationContainer, +.dijitTextBoxRtl .dijitSpinnerButtonContainer, +.dijitComboBoxRtl .dijitArrowButtonContainer { + + border-right-width: 1px !important; + border-right-style: solid !important; + border-left-width: 0px !important; + border-left-style: none !important; +} +.dijit_a11y .dijitTextBoxRtl .dijitValidationContainer, +.dijit_a11y .dijitTextBoxRtl .dijitSpinnerButtonContainer, +.dijit_a11y .dijitComboBoxRtl .dijitArrowButtonContainer { + border-right: 1px solid black !important; + border-left: 0px none black !important; +} +.dijitSpinnerRtl .dijitSpinnerButtonContainer .dijitArrowButton { + right: 0; + left: auto; +} +.dijitTextBoxRtl .dijitSpinnerButtonContainer, +.dijitTextBoxRtl .dijitValidationContainer, +.dijitTextBoxRtl .dijitArrowButtonContainer { + float: left; +} +.dijitCalendarRtl .dijitCalendarNextYear { + margin:0 0.55em 0 0; +} +.dijitCalendarRtl .dijitCalendarPreviousYear { + margin:0 0 0 0.55em; +} +.dijitSliderRtl .dijitSliderImageHandleV { + left:auto; +} +.dijitSliderRtl .dijitSliderImageHandleH { + left:-50%; +} +.dijitSliderRtl .dijitSliderMoveableH { + right:auto; + left:0; +} +.dijitSliderRtl .dijitRuleContainerV { + float:right; +} +.dj_ie .dijitSliderRtl .dijitRuleContainerV { + text-align:right; +} +.dj_ie .dijitSliderRtl .dijitRuleLabelV { + text-align:left; +} +.dj_ie .dijitSliderRtl .dijitRuleLabelH { + zoom:1; +} +.dijitSliderRtl .dijitSliderProgressBarH { + + float:right; + right:0; + left:auto; +} +.dijitRtl .dijitContentPaneLoading, .dijitRtl .dijitContentPaneError { + background-position:right; + padding-right:25px; +} +.dijitTabRtl .dijitTabCloseButton { + margin-left: 0px; + margin-right: 1em; +} +.dj_ie .dijitTimePickerRtl .dijitTimePickerItem { + width:100%; +} +.dijitColorPaletteRtl .dijitColorPaletteUnder { + + left: auto; + right: 0; +} +.dijitSelectRtl .dijitButtonContents { + text-align: right; +} +.claro .dijitTextBoxRtlError .dijitValidationContainer { + border-left-width: 0px; + border-right-width: 1px; +} +.claro .dijitComboButtonRtl .dijitStretch { + -moz-border-radius: 0px 4px 4px 0px; + -webkit-border-top-left-radius: 0px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-border-bottom-left-radius: 0px; +} +.claro .dijitComboButtonRtl .dijitArrowButton { + -moz-border-radius: 4px 0px 0px 4px; + -webkit-border-top-left-radius:4px; + -webkit-border-top-right-radius:0px; + -webkit-border-bottom-right-radius:0px; + -webkit-border-bottom-left-radius:4px; + padding:3px 0px 4px; + border-left-width: 1px; + border-right-width: 0px; +} +.claro .dijitTabContainerTop-tabs .dijitTabRtl, +.claro .dijitTabContainerBottom-tabs .dijitTabRtl { + margin-right: 0; + margin-left: 1px; +} +.claro .dijitTabRtl { + -moz-box-orient:horizontal; + text-align: right; +} +.dj_ie7 .claro .dijitTabRtl .dijitTabContent { + display: block; + left: 0; +} +.dj_ie7 .claro .dijitTabContainerTop-tabs .dijitTabRtl, +.dj_ie7 .claro .dijitTabContainerTop-tabs .dijitTabCheckedRtl { + top: 1px; +} +.dj_ie7 .claro .tabStripButtonRtl .dijitButtonContents, +.dj_ie8 .claro .tabStripButtonRtl .dijitButtonContents, +.dj_ie6 .claro .dijitTabContainerTop-tabs .dijitTabRtl .dijitTabInnerDiv, +.dj_ie6 .claro .dijitTabContainerBottom-tabs .dijitTabRtl .dijitTabInnerDiv, +.dj_ie7 .claro .dijitTabContainerTop-tabs .dijitTabRtl .dijitTabInnerDiv, +.dj_ie7 .claro .dijitTabContainerBottom-tabs .dijitTabRtl .dijitTabInnerDiv, +.dj_iequirks .claro .dijitTabContainerTop-tabs .dijitTabRtl .dijitTabInnerDiv, +.dj_iequirks .claro .dijitTabContainerBottom-tabs .dijitTabRtl .dijitTabInnerDiv { + float:left; +} +.dj_ie6 .claro .dijitTabRtl .tabLabel, +.dj_ie6 .claro .dijitTabContainerRight-tabs .dijitTabRtl, +.dj_ie6 .claro .dijitTabContainerLeft-tabs .dijitTabRtl, +.dj_ie7 .claro .dijitTabContainerRight-tabs .dijitTabRtl .dijitTabInnerDiv, +.dj_ie7 .claro .dijitTabContainerLeft-tabs .dijitTabRtl .dijitTabInnerDiv { + + zoom:1; +} +.dj_ie6 .claro .dijitTabRtl .dijitTabCloseButton, +.dj_ie7 .claro .dijitTabRtl .dijitTabCloseButton, +.dj_iequirks .claro .dijitTabRtl .dijitTabCloseButton { + margin-right:5px; +} +.dj_ie6 .claro .dijitTabContainerRightRtl .dijitTabContainerRight-tabs, +.dj_ie6 .claro .dijitTabContainerLeftRtl .dijitTabContainerLeft-tabs { + width:1%; +} +.dj_ie6 .dijitTabContainerTopStrip, +.dj_ie6 .dijitTabContainerBottomStrip { + position:absolute; +} +.dj_iequirks .claro .dijitTabContainerTopRtl .dijitTabContainerTopStrip { + padding-top: 10px; +} +.dj_ie7 .claro .dijitTabContainerRight-tabs .dijitTabRtlChecked .dijitTabInnerDiv { + background-position:-341px -179px; +} +.dj_ie6 .dijitTabContainerTopRtl .dijitTabStripIcon, +.dj_ie6 .dijitTabContainerBottomRtl .dijitTabStripIcon { + position: relative; +} +.dj_ie6-rtl .claro .dijitTabContainerTop-tabs { + + padding-left: 3px; +} +.dj_iequirks-rtl .claro .dijitTabListWrapper { + + border-left: 1px solid #fff; + border-right: 1px solid #fff; +} +.claro .dijitSliderRtl .dijitSliderProgressBarH, +.claro .dijitSliderRtl .dijitSliderRemainingBarH, +.claro .dijitSliderRtl .dijitSliderLeftBumper, +.claro .dijitSliderRtl .dijitSliderRightBumper, +.claro .dijitSliderRtl .dijitSliderTopBumper { + background-position: top right; +} +.claro .dijitSliderRtl .dijitSliderProgressBarV, +.claro .dijitSliderRtl .dijitSliderRemainingBarV, +.claro .dijitSliderRtl .dijitSliderBottomBumper { + background-position: bottom right; +} +.claro .dijitSliderRtl .dijitSliderLeftBumper { + border-left-width: 0px; + border-right-width: 1px; +} +.claro .dijitSliderRtl .dijitSliderRightBumper { + border-left-width: 1px; + border-right-width: 0px; +} +.claro .dijitSliderRtl .dijitSliderIncrementIconH { + background-position:-357px 50%; +} +.claro .dijitSliderRtl .dijitSliderDecrementIconH { + background-position:-251px 50%; +} +.claro .dijitSelectRtl .dijitButtonContents { + border-right-width: 0px; + border-left-width: 1px; +} +.claro .dijitDialogRtl .dijitDialogCloseIcon { + right: auto; + left: 5px; +} +.claro .dijitDialogRtl .dijitDialogPaneActionBar { + text-align: left; + padding: 3px 7px 2px 5px; +} +.claro .dijitEditorRtl .dijitEditorIFrameContainer{ + padding:3px 10px 1px 3px; +} +.dijitEditorRtl .dijitEditorIcon { + background-image: url(../../icons/images/editorIconsEnabled_rtl.png); +} +.dijitEditorRtlDisabled .dijitEditorIcon { + background-image: url(../../icons/images/editorIconsDisabled_rtl.png); +} +.dijitToolbarRtl .dijitToolbarSeparator { + background-image: url(../../icons/images/editorIconsEnabled_rtl.png); +} +.dijitRtl .dijitIconSave, +.dijitRtl .dijitIconPrint, +.dijitRtl .dijitIconCut, +.dijitRtl .dijitIconCopy, +.dijitRtl .dijitIconClear, +.dijitRtl .dijitIconDelete, +.dijitRtl .dijitIconUndo, +.dijitRtl .dijitIconEdit, +.dijitRtl .dijitIconNewTask, +.dijitRtl .dijitIconEditTask, +.dijitRtl .dijitIconEditProperty, +.dijitRtl .dijitIconTask, +.dijitRtl .dijitIconFilter, +.dijitRtl .dijitIconConfigure, +.dijitRtl .dijitIconSearch, +.dijitRtl .dijitIconApplication, +.dijitRtl .dijitIconBookmark, +.dijitRtl .dijitIconChart, +.dijitRtl .dijitIconConnector, +.dijitRtl .dijitIconDatabase, +.dijitRtl .dijitIconDocuments, +.dijitRtl .dijitIconMail, +.dijitRtl .dijitLeaf, +.dijitRtl .dijitIconFile, +.dijitRtl .dijitIconFunction, +.dijitRtl .dijitIconKey, +.dijitRtl .dijitIconPackage, +.dijitRtl .dijitIconSample, +.dijitRtl .dijitIconTable, +.dijitRtl .dijitIconUsers, +.dijitRtl .dijitFolderClosed, +.dijitRtl .dijitIconFolderClosed, +.dijitRtl .dijitFolderOpened, +.dijitRtl .dijitIconFolderOpen, +.dijitRtl .dijitIconError, .dijitRtl .dijitContentPaneError { + background-image: url(../../icons/images/commonIconsObjActEnabled_rtl.png); + width: 16px; + height: 16px; +} +.dj_ie6 .dijitRtl .dijitIconSave, +.dj_ie6 .dijitRtl .dijitIconPrint, +.dj_ie6 .dijitRtl .dijitIconCut, +.dj_ie6 .dijitRtl .dijitIconCopy, +.dj_ie6 .dijitRtl .dijitIconClear, +.dj_ie6 .dijitRtl .dijitIconDelete, +.dj_ie6 .dijitRtl .dijitIconUndo, +.dj_ie6 .dijitRtl .dijitIconEdit, +.dj_ie6 .dijitRtl .dijitIconNewTask, +.dj_ie6 .dijitRtl .dijitIconEditTask, +.dj_ie6 .dijitRtl .dijitIconEditProperty, +.dj_ie6 .dijitRtl .dijitIconTask, +.dj_ie6 .dijitRtl .dijitIconFilter, +.dj_ie6 .dijitRtl .dijitIconConfigure, +.dj_ie6 .dijitRtl .dijitIconSearch, +.dj_ie6 .dijitRtl .dijitIconApplication, +.dj_ie6 .dijitRtl .dijitIconBookmark, +.dj_ie6 .dijitRtl .dijitIconChart, +.dj_ie6 .dijitRtl .dijitIconConnector, +.dj_ie6 .dijitRtl .dijitIconDatabase, +.dj_ie6 .dijitRtl .dijitIconDocuments, +.dj_ie6 .dijitRtl .dijitIconMail, +.dj_ie6 .dijitRtl .dijitLeaf, +.dj_ie6 .dijitRtl .dijitIconFile, +.dj_ie6 .dijitRtl .dijitIconFunction, +.dj_ie6 .dijitRtl .dijitIconKey, +.dj_ie6 .dijitRtl .dijitIconPackage, +.dj_ie6 .dijitRtl .dijitIconSample, +.dj_ie6 .dijitRtl .dijitIconTable, +.dj_ie6 .dijitRtl .dijitIconUsers, +.dj_ie6 .dijitRtl .dijitFolderClosed, +.dj_ie6 .dijitRtl .dijitIconFolderClosed, +.dj_ie6 .dijitRtl .dijitFolderOpened, +.dj_ie6 .dijitRtl .dijitIconFolderOpen, +.dj_ie6 .dijitRtl .dijitIconError, .dj_ie6 .dijitRtl .dijitContentPaneError { + background-image: url(../../icons/images/commonIconsObjActEnabled8bit_rtl.png); +} +.dijitRtl .dijitDisabled .dijitIconSave, +.dijitRtl .dijitDisabled .dijitIconPrint, +.dijitRtl .dijitDisabled .dijitIconCut, +.dijitRtl .dijitDisabled .dijitIconCopy, +.dijitRtl .dijitDisabled .dijitIconClear, +.dijitRtl .dijitDisabled .dijitIconDelete, +.dijitRtl .dijitDisabled .dijitIconUndo, +.dijitRtl .dijitDisabled .dijitIconEdit, +.dijitRtl .dijitDisabled .dijitIconNewTask, +.dijitRtl .dijitDisabled .dijitIconEditTask, +.dijitRtl .dijitDisabled .dijitIconEditProperty, +.dijitRtl .dijitDisabled .dijitIconTask, +.dijitRtl .dijitDisabled .dijitIconFilter, +.dijitRtl .dijitDisabled .dijitIconConfigure, +.dijitRtl .dijitDisabled .dijitIconSearch, +.dijitRtl .dijitDisabled .dijitIconApplication, +.dijitRtl .dijitDisabled .dijitIconBookmark, +.dijitRtl .dijitDisabled .dijitIconChart, +.dijitRtl .dijitDisabled .dijitIconConnector, +.dijitRtl .dijitDisabled .dijitIconDatabase, +.dijitRtl .dijitDisabled .dijitIconDocuments, +.dijitRtl .dijitDisabled .dijitIconMail, +.dijitRtl .dijitDisabled .dijitLeaf, +.dijitRtl .dijitDisabled .dijitIconFile, +.dijitRtl .dijitDisabled .dijitIconFunction, +.dijitRtl .dijitDisabled .dijitIconKey, +.dijitRtl .dijitDisabled .dijitIconPackage, +.dijitRtl .dijitDisabled .dijitIconSample, +.dijitRtl .dijitDisabled .dijitIconTable, +.dijitRtl .dijitDisabled .dijitIconUsers, +.dijitRtl .dijitDisabled .dijitFolderClosed, +.dijitRtl .dijitDisabled .dijitIconFolderClosed, +.dijitRtl .dijitDisabled .dijitFolderOpened, +.dijitRtl .dijitDisabled .dijitIconFolderOpen, +.dijitRtl .dijitDisabled .dijitIconError, .dijitRtl .dijitDisabled .dijitContentPaneError { + background-image: url(../../icons/images/commonIconsObjActDisabled_rtl.png); +} +.dijitRtl .dijitContentPaneLoading { + background:url(../../icons/images/loadingAnimation_rtl.gif) no-repeat; +} +.claro .dijitTitlePaneRtl .dijitClosed .dijitArrowNode { + background-position: -7px 0px; +} +.claro .dijitMenuItemRtl .dijitMenuExpand { + background-position: -7px 0px; + margin-right: 0px; + margin-left: 3px; +} +.claro .dijitMenuItemRtl .dijitMenuItemIcon { + margin:0px 4px 0px 0px; +} +.claro .dijitCalendarRtl .dijitCalendarIncrease{ + background-position: 0px 0px; +} +.claro .dijitCalendarRtl .dijitCalendarDecrease { + background-position: -18px 0px; +} +.claro .dijitCalendarRtl .dijitCalendarArrowHover .dijitCalendarIncrease { + background-position: -36px 0px; +} +.claro .dijitCalendarRtl .dijitCalendarArrowHover .dijitCalendarDecrease { + background-position: -55px 0px; +} +.claro .dijitCalendarRtl .dijitCalendarArrowActive .dijitCalendarIncrease { + background-position: -72px 0px; +} +.claro .dijitCalendarRtl .dijitCalendarArrowActive .dijitCalendarDecrease { + background-position: -91px 0px; +} +.dj_ie .claro .dijitTimePickerRtl .dijitTimePickerTickHover, +.dj_ie .claro .dijitTimePickerRtl .dijitTimePickerMarkerHover, +.dj_ie .claro .dijitTimePickerRtl .dijitTimePickerMarkerSelected, +.dj_ie .claro .dijitTimePickerRtl .dijitTimePickerTickSelected { + margin-left:-6px; + margin-right:-8px; + width: 114%; +} diff --git a/lib/dijit/themes/claro/claro_rtl.css b/lib/dijit/themes/claro/claro_rtl.css new file mode 100644 index 000000000..01a0342cd --- /dev/null +++ b/lib/dijit/themes/claro/claro_rtl.css @@ -0,0 +1,380 @@ + +.dijitRtl .dijitPlaceHolder { + left: auto; + right: 0; +} +.dijitMenuItemRtl { + text-align: right; +} +.dj_iequirks .dijitComboButtonRtl BUTTON { + + float:left; +} +.dijit_a11y .dijitTextBoxRtl .dijitValidationContainer, +.dijitTextBoxRtl .dijitSpinnerButtonContainer, +.dijitComboBoxRtl .dijitArrowButtonContainer { + + border-right-width: 1px !important; + border-right-style: solid !important; + border-left-width: 0px !important; + border-left-style: none !important; +} +.dijit_a11y .dijitTextBoxRtl .dijitValidationContainer, +.dijit_a11y .dijitTextBoxRtl .dijitSpinnerButtonContainer, +.dijit_a11y .dijitComboBoxRtl .dijitArrowButtonContainer { + border-right: 1px solid black !important; + border-left: 0px none black !important; +} +.dijitSpinnerRtl .dijitSpinnerButtonContainer .dijitArrowButton { + right: 0; + left: auto; +} +.dijitTextBoxRtl .dijitSpinnerButtonContainer, +.dijitTextBoxRtl .dijitValidationContainer, +.dijitTextBoxRtl .dijitArrowButtonContainer { + float: left; +} +.dijitCalendarRtl .dijitCalendarNextYear { + margin:0 0.55em 0 0; +} +.dijitCalendarRtl .dijitCalendarPreviousYear { + margin:0 0 0 0.55em; +} +.dijitSliderRtl .dijitSliderImageHandleV { + left:auto; +} +.dijitSliderRtl .dijitSliderImageHandleH { + left:-50%; +} +.dijitSliderRtl .dijitSliderMoveableH { + right:auto; + left:0; +} +.dijitSliderRtl .dijitRuleContainerV { + float:right; +} +.dj_ie .dijitSliderRtl .dijitRuleContainerV { + text-align:right; +} +.dj_ie .dijitSliderRtl .dijitRuleLabelV { + text-align:left; +} +.dj_ie .dijitSliderRtl .dijitRuleLabelH { + zoom:1; +} +.dijitSliderRtl .dijitSliderProgressBarH { + + float:right; + right:0; + left:auto; +} +.dijitRtl .dijitContentPaneLoading, .dijitRtl .dijitContentPaneError { + background-position:right; + padding-right:25px; +} +.dijitTabRtl .dijitTabCloseButton { + margin-left: 0px; + margin-right: 1em; +} +.dj_ie .dijitTimePickerRtl .dijitTimePickerItem { + width:100%; +} +.dijitColorPaletteRtl .dijitColorPaletteUnder { + + left: auto; + right: 0; +} +.dijitSelectRtl .dijitButtonContents { + text-align: right; +} +.claro .dijitTextBoxRtlError .dijitValidationContainer { + border-left-width: 0px; + border-right-width: 1px; +} +.claro .dijitComboButtonRtl .dijitStretch { + -moz-border-radius: 0px 4px 4px 0px; + -webkit-border-top-left-radius: 0px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-border-bottom-left-radius: 0px; +} +.claro .dijitComboButtonRtl .dijitArrowButton { + -moz-border-radius: 4px 0px 0px 4px; + -webkit-border-top-left-radius:4px; + -webkit-border-top-right-radius:0px; + -webkit-border-bottom-right-radius:0px; + -webkit-border-bottom-left-radius:4px; + padding:3px 0px 4px; + border-left-width: 1px; + border-right-width: 0px; +} +.claro .dijitTabContainerTop-tabs .dijitTabRtl, +.claro .dijitTabContainerBottom-tabs .dijitTabRtl { + margin-right: 0; + margin-left: 1px; +} +.claro .dijitTabRtl { + -moz-box-orient:horizontal; + text-align: right; +} +.dj_ie7 .claro .dijitTabRtl .dijitTabContent { + display: block; + left: 0; +} +.dj_ie7 .claro .dijitTabContainerTop-tabs .dijitTabRtl, +.dj_ie7 .claro .dijitTabContainerTop-tabs .dijitTabCheckedRtl { + top: 1px; +} +.dj_ie7 .claro .tabStripButtonRtl .dijitButtonContents, +.dj_ie8 .claro .tabStripButtonRtl .dijitButtonContents, +.dj_ie6 .claro .dijitTabContainerTop-tabs .dijitTabRtl .dijitTabInnerDiv, +.dj_ie6 .claro .dijitTabContainerBottom-tabs .dijitTabRtl .dijitTabInnerDiv, +.dj_ie7 .claro .dijitTabContainerTop-tabs .dijitTabRtl .dijitTabInnerDiv, +.dj_ie7 .claro .dijitTabContainerBottom-tabs .dijitTabRtl .dijitTabInnerDiv, +.dj_iequirks .claro .dijitTabContainerTop-tabs .dijitTabRtl .dijitTabInnerDiv, +.dj_iequirks .claro .dijitTabContainerBottom-tabs .dijitTabRtl .dijitTabInnerDiv { + float:left; +} +.dj_ie6 .claro .dijitTabRtl .tabLabel, +.dj_ie6 .claro .dijitTabContainerRight-tabs .dijitTabRtl, +.dj_ie6 .claro .dijitTabContainerLeft-tabs .dijitTabRtl, +.dj_ie7 .claro .dijitTabContainerRight-tabs .dijitTabRtl .dijitTabInnerDiv, +.dj_ie7 .claro .dijitTabContainerLeft-tabs .dijitTabRtl .dijitTabInnerDiv { + + zoom:1; +} +.dj_ie6 .claro .dijitTabRtl .dijitTabCloseButton, +.dj_ie7 .claro .dijitTabRtl .dijitTabCloseButton, +.dj_iequirks .claro .dijitTabRtl .dijitTabCloseButton { + margin-right:5px; +} +.dj_ie6 .claro .dijitTabContainerRightRtl .dijitTabContainerRight-tabs, +.dj_ie6 .claro .dijitTabContainerLeftRtl .dijitTabContainerLeft-tabs { + width:1%; +} +.dj_ie6 .dijitTabContainerTopStrip, +.dj_ie6 .dijitTabContainerBottomStrip { + position:absolute; +} +.dj_iequirks .claro .dijitTabContainerTopRtl .dijitTabContainerTopStrip { + padding-top: 10px; +} +.dj_ie7 .claro .dijitTabContainerRight-tabs .dijitTabRtlChecked .dijitTabInnerDiv { + background-position:-341px -179px; +} +.dj_ie6 .dijitTabContainerTopRtl .dijitTabStripIcon, +.dj_ie6 .dijitTabContainerBottomRtl .dijitTabStripIcon { + position: relative; +} +.dj_ie6-rtl .claro .dijitTabContainerTop-tabs { + + padding-left: 3px; +} +.dj_iequirks-rtl .claro .dijitTabListWrapper { + + border-left: 1px solid #fff; + border-right: 1px solid #fff; +} +.claro .dijitSliderRtl .dijitSliderProgressBarH, +.claro .dijitSliderRtl .dijitSliderRemainingBarH, +.claro .dijitSliderRtl .dijitSliderLeftBumper, +.claro .dijitSliderRtl .dijitSliderRightBumper, +.claro .dijitSliderRtl .dijitSliderTopBumper { + background-position: top right; +} +.claro .dijitSliderRtl .dijitSliderProgressBarV, +.claro .dijitSliderRtl .dijitSliderRemainingBarV, +.claro .dijitSliderRtl .dijitSliderBottomBumper { + background-position: bottom right; +} +.claro .dijitSliderRtl .dijitSliderLeftBumper { + border-left-width: 0px; + border-right-width: 1px; +} +.claro .dijitSliderRtl .dijitSliderRightBumper { + border-left-width: 1px; + border-right-width: 0px; +} +.claro .dijitSliderRtl .dijitSliderIncrementIconH { + background-position:-357px 50%; +} +.claro .dijitSliderRtl .dijitSliderDecrementIconH { + background-position:-251px 50%; +} +.claro .dijitSelectRtl .dijitButtonContents { + border-right-width: 0px; + border-left-width: 1px; +} +.claro .dijitDialogRtl .dijitDialogCloseIcon { + right: auto; + left: 5px; +} +.claro .dijitDialogRtl .dijitDialogPaneActionBar { + text-align: left; + padding: 3px 7px 2px 5px; +} +.claro .dijitEditorRtl .dijitEditorIFrameContainer{ + padding:3px 10px 1px 3px; +} +.dijitEditorRtl .dijitEditorIcon { + background-image: url(../../icons/images/editorIconsEnabled_rtl.png); +} +.dijitEditorRtlDisabled .dijitEditorIcon { + background-image: url(../../icons/images/editorIconsDisabled_rtl.png); +} +.dijitToolbarRtl .dijitToolbarSeparator { + background-image: url(../../icons/images/editorIconsEnabled_rtl.png); +} +.dijitRtl .dijitIconSave, +.dijitRtl .dijitIconPrint, +.dijitRtl .dijitIconCut, +.dijitRtl .dijitIconCopy, +.dijitRtl .dijitIconClear, +.dijitRtl .dijitIconDelete, +.dijitRtl .dijitIconUndo, +.dijitRtl .dijitIconEdit, +.dijitRtl .dijitIconNewTask, +.dijitRtl .dijitIconEditTask, +.dijitRtl .dijitIconEditProperty, +.dijitRtl .dijitIconTask, +.dijitRtl .dijitIconFilter, +.dijitRtl .dijitIconConfigure, +.dijitRtl .dijitIconSearch, +.dijitRtl .dijitIconApplication, +.dijitRtl .dijitIconBookmark, +.dijitRtl .dijitIconChart, +.dijitRtl .dijitIconConnector, +.dijitRtl .dijitIconDatabase, +.dijitRtl .dijitIconDocuments, +.dijitRtl .dijitIconMail, +.dijitRtl .dijitLeaf, +.dijitRtl .dijitIconFile, +.dijitRtl .dijitIconFunction, +.dijitRtl .dijitIconKey, +.dijitRtl .dijitIconPackage, +.dijitRtl .dijitIconSample, +.dijitRtl .dijitIconTable, +.dijitRtl .dijitIconUsers, +.dijitRtl .dijitFolderClosed, +.dijitRtl .dijitIconFolderClosed, +.dijitRtl .dijitFolderOpened, +.dijitRtl .dijitIconFolderOpen, +.dijitRtl .dijitIconError, .dijitRtl .dijitContentPaneError { + background-image: url(../../icons/images/commonIconsObjActEnabled_rtl.png); + width: 16px; + height: 16px; +} +.dj_ie6 .dijitRtl .dijitIconSave, +.dj_ie6 .dijitRtl .dijitIconPrint, +.dj_ie6 .dijitRtl .dijitIconCut, +.dj_ie6 .dijitRtl .dijitIconCopy, +.dj_ie6 .dijitRtl .dijitIconClear, +.dj_ie6 .dijitRtl .dijitIconDelete, +.dj_ie6 .dijitRtl .dijitIconUndo, +.dj_ie6 .dijitRtl .dijitIconEdit, +.dj_ie6 .dijitRtl .dijitIconNewTask, +.dj_ie6 .dijitRtl .dijitIconEditTask, +.dj_ie6 .dijitRtl .dijitIconEditProperty, +.dj_ie6 .dijitRtl .dijitIconTask, +.dj_ie6 .dijitRtl .dijitIconFilter, +.dj_ie6 .dijitRtl .dijitIconConfigure, +.dj_ie6 .dijitRtl .dijitIconSearch, +.dj_ie6 .dijitRtl .dijitIconApplication, +.dj_ie6 .dijitRtl .dijitIconBookmark, +.dj_ie6 .dijitRtl .dijitIconChart, +.dj_ie6 .dijitRtl .dijitIconConnector, +.dj_ie6 .dijitRtl .dijitIconDatabase, +.dj_ie6 .dijitRtl .dijitIconDocuments, +.dj_ie6 .dijitRtl .dijitIconMail, +.dj_ie6 .dijitRtl .dijitLeaf, +.dj_ie6 .dijitRtl .dijitIconFile, +.dj_ie6 .dijitRtl .dijitIconFunction, +.dj_ie6 .dijitRtl .dijitIconKey, +.dj_ie6 .dijitRtl .dijitIconPackage, +.dj_ie6 .dijitRtl .dijitIconSample, +.dj_ie6 .dijitRtl .dijitIconTable, +.dj_ie6 .dijitRtl .dijitIconUsers, +.dj_ie6 .dijitRtl .dijitFolderClosed, +.dj_ie6 .dijitRtl .dijitIconFolderClosed, +.dj_ie6 .dijitRtl .dijitFolderOpened, +.dj_ie6 .dijitRtl .dijitIconFolderOpen, +.dj_ie6 .dijitRtl .dijitIconError, .dj_ie6 .dijitRtl .dijitContentPaneError { + background-image: url(../../icons/images/commonIconsObjActEnabled8bit_rtl.png); +} +.dijitRtl .dijitDisabled .dijitIconSave, +.dijitRtl .dijitDisabled .dijitIconPrint, +.dijitRtl .dijitDisabled .dijitIconCut, +.dijitRtl .dijitDisabled .dijitIconCopy, +.dijitRtl .dijitDisabled .dijitIconClear, +.dijitRtl .dijitDisabled .dijitIconDelete, +.dijitRtl .dijitDisabled .dijitIconUndo, +.dijitRtl .dijitDisabled .dijitIconEdit, +.dijitRtl .dijitDisabled .dijitIconNewTask, +.dijitRtl .dijitDisabled .dijitIconEditTask, +.dijitRtl .dijitDisabled .dijitIconEditProperty, +.dijitRtl .dijitDisabled .dijitIconTask, +.dijitRtl .dijitDisabled .dijitIconFilter, +.dijitRtl .dijitDisabled .dijitIconConfigure, +.dijitRtl .dijitDisabled .dijitIconSearch, +.dijitRtl .dijitDisabled .dijitIconApplication, +.dijitRtl .dijitDisabled .dijitIconBookmark, +.dijitRtl .dijitDisabled .dijitIconChart, +.dijitRtl .dijitDisabled .dijitIconConnector, +.dijitRtl .dijitDisabled .dijitIconDatabase, +.dijitRtl .dijitDisabled .dijitIconDocuments, +.dijitRtl .dijitDisabled .dijitIconMail, +.dijitRtl .dijitDisabled .dijitLeaf, +.dijitRtl .dijitDisabled .dijitIconFile, +.dijitRtl .dijitDisabled .dijitIconFunction, +.dijitRtl .dijitDisabled .dijitIconKey, +.dijitRtl .dijitDisabled .dijitIconPackage, +.dijitRtl .dijitDisabled .dijitIconSample, +.dijitRtl .dijitDisabled .dijitIconTable, +.dijitRtl .dijitDisabled .dijitIconUsers, +.dijitRtl .dijitDisabled .dijitFolderClosed, +.dijitRtl .dijitDisabled .dijitIconFolderClosed, +.dijitRtl .dijitDisabled .dijitFolderOpened, +.dijitRtl .dijitDisabled .dijitIconFolderOpen, +.dijitRtl .dijitDisabled .dijitIconError, .dijitRtl .dijitDisabled .dijitContentPaneError { + background-image: url(../../icons/images/commonIconsObjActDisabled_rtl.png); +} +.dijitRtl .dijitContentPaneLoading { + background:url(../../icons/images/loadingAnimation_rtl.gif) no-repeat; +} +.claro .dijitTitlePaneRtl .dijitClosed .dijitArrowNode { + background-position: -7px 0px; +} +.claro .dijitMenuItemRtl .dijitMenuExpand { + background-position: -7px 0px; + margin-right: 0px; + margin-left: 3px; +} +.claro .dijitMenuItemRtl .dijitMenuItemIcon { + margin:0px 4px 0px 0px; +} +.claro .dijitCalendarRtl .dijitCalendarIncrease{ + background-position: 0px 0px; +} +.claro .dijitCalendarRtl .dijitCalendarDecrease { + background-position: -18px 0px; +} +.claro .dijitCalendarRtl .dijitCalendarArrowHover .dijitCalendarIncrease { + background-position: -36px 0px; +} +.claro .dijitCalendarRtl .dijitCalendarArrowHover .dijitCalendarDecrease { + background-position: -55px 0px; +} +.claro .dijitCalendarRtl .dijitCalendarArrowActive .dijitCalendarIncrease { + background-position: -72px 0px; +} +.claro .dijitCalendarRtl .dijitCalendarArrowActive .dijitCalendarDecrease { + background-position: -91px 0px; +} +.dj_ie .claro .dijitTimePickerRtl .dijitTimePickerTickHover, +.dj_ie .claro .dijitTimePickerRtl .dijitTimePickerMarkerHover, +.dj_ie .claro .dijitTimePickerRtl .dijitTimePickerMarkerSelected, +.dj_ie .claro .dijitTimePickerRtl .dijitTimePickerTickSelected { + margin-left:-6px; + margin-right:-8px; + width: 114%; +} diff --git a/lib/dijit/themes/claro/document.css b/lib/dijit/themes/claro/document.css new file mode 100644 index 000000000..72f9b1b40 --- /dev/null +++ b/lib/dijit/themes/claro/document.css @@ -0,0 +1,81 @@ + +.claro { + font-family:Verdana,Arial,Helvetica,sans-serif; + font-size: .688em; + color: #131313; +} +h1 { + font-size: 1.545em; + font-weight: normal; + line-height: 1em; + margin-top: 1em; + margin-bottom:0.727em; +} +.claro .dijitDialog h1 { + margin-top:0em; +} +h2 { + font-size: 1.364em; + line-height: 1.455em; + margin-top:1em; + margin-bottom:0.60em; + font-weight: normal; +} +h3, h4, h5, h6 { + font-size:1.091em; + font-weight: normal; + line-height: 1.5em; + margin-top: 1.5em; + margin-bottom: 0; +} +p { + font-size: 1em; + line-height: 1.3em; +} +blockquote { + font-size: 0.916em; + margin-top: 3.272em; + margin-bottom: 3.272em; + line-height: 1.636em; + padding: 1.636em; + border-top: 1px solid #ccc; + border-bottom: 1px solid #ccc; +} +ol li, ul li { + font-size: 1em; + line-height: 1.5em; + margin: 0; +} +pre, code { + font-size:115%; + *font-size:100%; + font-family:inherit; + background-color: #efefef; + border: 1px solid #ccc; +} +pre { + border-width: 1px 0; + padding: 1.5em; +} +table { font-size:100%; } +table.dojoTabular { + border-collapse: collapse; + border-spacing: 0; + border: 1px solid #ccc; + margin: 0 1.5em; +} +.dojoTabular th { + text-align: center; + font-weight: bold; +} +table.dojoTabular thead, table.dojoTabular tfoot { + background-color: #efefef; + border: 1px solid #ccc; + border-width: 1px 0; +} +table.dojoTabular thead tr th, +table.dojoTabular thead tr td, +table.dojoTabular tbody tr td, +table.dojoTabular tfoot tr td { + padding: 0.25em 0.5em; +} diff --git a/lib/dijit/themes/claro/form/Button.css b/lib/dijit/themes/claro/form/Button.css new file mode 100644 index 000000000..a2a15c0cc --- /dev/null +++ b/lib/dijit/themes/claro/form/Button.css @@ -0,0 +1,125 @@ + +.claro .dijitButtonNode { + + -webkit-transition-property:background-color; + -webkit-transition-duration:.3s; +} +.claro .dijitButton .dijitButtonNode, +.claro .dijitDropDownButton .dijitButtonNode, +.claro .dijitComboButton .dijitButtonNode, +.claro .dijitToggleButton .dijitButtonNode { + + border: 1px solid #769dc0; + padding:2px 4px 4px 4px; + background-image: url("images/button.png"); + background-position: center top; + background-repeat: repeat-x; + background-color: #e4f2ff; + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + box-shadow:0px 1px 1px rgba(0,0,0,0.15); + -webkit-box-shadow:0px 1px 1px rgba(0,0,0,0.15); + -moz-box-shadow: 0px 1px 1px rgba(0,0,0,0.15); +} +.claro .dijitComboButton .dijitArrowButton { + border-left-width: 0px; + padding: 4px 2px 4px 2px; +} +.claro .dijitArrowButtonInner { + width: 15px; + height: 15px; + margin: 0 auto; + background-image:url("images/buttonArrows.png"); + background-repeat:no-repeat; + background-position:-51px 53%; +} +.claro .dijitLeftArrowButton .dijitArrowButtonInner { + background-position: -77px 53%; +} +.claro .dijitRightArrowButton .dijitArrowButtonInner { + background-position: -26px 53%; +} +.claro .dijitUpArrowButton .dijitArrowButtonInner { + background-position: 0px 53%; +} +.claro .dijitDisabled .dijitArrowButtonInner { + background-position: -151px 53%; +} +.claro .dijitDisabled .dijitLeftArrowButton .dijitArrowButtonInner { + background-position: -177px 53%; +} +.claro .dijitDisabled .dijitRightArrowButton .dijitArrowButtonInner { + background-position: -126px 53%; +} +.claro .dijitDisabled .dijitUpArrowButton .dijitArrowButtonInner { + background-position: -100px 53%; +} +.claro .dijitButtonText { + padding: 0 0.3em; + text-align: center; +} +.claro .dijitDisabled .dijitButtonText { + color: #7F7F7F; +} +.claro .dijitButtonHover .dijitButtonNode, +.claro .dijitDropDownButtonHover .dijitButtonNode, +.claro .dijitComboButton .dijitButtonNodeHover, +.claro .dijitComboButton .dijitDownArrowButtonHover, +.claro .dijitToggleButtonHover .dijitButtonNode { + background-color: #afd9ff; + color:#000; + -webkit-transition-duration:.2s; +} +.claro .dijitButtonActive .dijitButtonNode, +.claro .dijitDropDownButtonActive .dijitButtonNode, +.claro .dijitComboButtonActive .dijitButtonNode, +.claro .dijitToggleButtonActive .dijitButtonNode { + background-color: #99cfff; + box-shadow:0px 0px 0px rgba(0,0,0,0); + -webkit-box-shadow:0px 0px 0px rgba(0,0,0,0); + -moz-box-shadow: 0px 0px 0px rgba(0,0,0,0); + -webkit-transition-duration:.1s; +} +.claro .dijitButtonDisabled, +.claro .dijitDropDownButtonDisabled, +.claro .dijitComboButtonDisabled, +.claro .dijitToggleButtonDisabled { + background-image: none; + outline: none; +} +.claro .dijitButtonDisabled .dijitButtonNode, +.claro .dijitDropDownButtonDisabled .dijitButtonNode, +.claro .dijitComboButtonDisabled .dijitButtonNode, +.claro .dijitToggleButtonDisabled .dijitButtonNode { + background-position:0px -149px; + background-color: #e3e3e3; + border: solid 1px #c9c9c9; + color: #696969; + box-shadow:0px 0px 0px rgba(0,0,0,0); + -webkit-box-shadow:0px 0px 0px rgba(0,0,0,0); + -moz-box-shadow: 0px 0px 0px rgba(0,0,0,0); +} +.claro .dijitComboButtonDisabled .dijitArrowButton{ + border-left-width: 0px; +} +.claro table.dijitComboButton { + border-collapse: separate; +} +.dj_ie6 .claro .dijitButtonNode { + background-image: none; +} +.claro .dijitComboButton .dijitStretch { + -moz-border-radius: 4px 0px 0px 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 0px; + -webkit-border-bottom-right-radius: 0px; + -webkit-border-bottom-left-radius: 4px; +} +.claro .dijitComboButton .dijitArrowButton { + -moz-border-radius: 0px 4px 4px 0px; + -webkit-border-top-left-radius: 0px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-border-bottom-left-radius: 0px; +} diff --git a/lib/dijit/themes/claro/form/Button_rtl.css b/lib/dijit/themes/claro/form/Button_rtl.css new file mode 100644 index 000000000..f1484b127 --- /dev/null +++ b/lib/dijit/themes/claro/form/Button_rtl.css @@ -0,0 +1,18 @@ + +.claro .dijitComboButtonRtl .dijitStretch { + -moz-border-radius: 0px 4px 4px 0px; + -webkit-border-top-left-radius: 0px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-border-bottom-left-radius: 0px; +} +.claro .dijitComboButtonRtl .dijitArrowButton { + -moz-border-radius: 4px 0px 0px 4px; + -webkit-border-top-left-radius:4px; + -webkit-border-top-right-radius:0px; + -webkit-border-bottom-right-radius:0px; + -webkit-border-bottom-left-radius:4px; + padding:3px 0px 4px; + border-left-width: 1px; + border-right-width: 0px; +} diff --git a/lib/dijit/themes/claro/form/Checkbox.css b/lib/dijit/themes/claro/form/Checkbox.css new file mode 100644 index 000000000..be3604ddd --- /dev/null +++ b/lib/dijit/themes/claro/form/Checkbox.css @@ -0,0 +1,46 @@ + +.claro .dijitToggleButton .dijitCheckBoxIcon { + background-image: url('../images/checkmarkNoBorder.png'); +} +.dj_ie6 .claro .dijitToggleButton .dijitCheckBoxIcon { + background-image: url('../images/checkmarkNoBorder.gif'); +} +.claro .dijitCheckBox, +.claro .dijitCheckBoxIcon { + background-image: url('images/checkboxRadioButtonStates.png'); + background-repeat: no-repeat; + width: 15px; + height: 16px; + margin: 0 2px 0 0; + padding: 0; +} +.dj_ie6 .claro .dijitCheckBox, +.dj_ie6 .claro .dijitCheckBoxIcon { + background-image: url('images/checkboxAndRadioButtons_IE6.png'); +} +.claro .dijitCheckBox, +.claro .dijitToggleButton .dijitCheckBoxIcon { + + background-position: -15px; +} +.claro .dijitCheckBoxChecked, +.claro .dijitToggleButtonChecked .dijitCheckBoxIcon { + + background-position: -0px; +} +.claro .dijitCheckBoxDisabled { + + background-position: -75px; +} +.claro .dijitCheckBoxCheckedDisabled { + + background-position: -60px; +} +.claro .dijitCheckBoxHover { + + background-position: -45px; +} +.claro .dijitCheckBoxCheckedHover { + + background-position: -30px; +} diff --git a/lib/dijit/themes/claro/form/Common.css b/lib/dijit/themes/claro/form/Common.css new file mode 100644 index 000000000..b04061b65 --- /dev/null +++ b/lib/dijit/themes/claro/form/Common.css @@ -0,0 +1,132 @@ + +.claro .dijitTextBoxError .dijitValidationContainer { + background-color: #d46363; + background-image: url('images/error.png'); + background-position: top center; + border: solid #d46464 0px; + border-left-width: 1px; + width: 9px; +} +.claro .dijitTextBoxError .dijitValidationIcon { + width: 0px; + background-color: transparent !important; +} +.claro .dijitTextBox .dijitInputContainer, +.claro .dijitTextArea, +.claro .dijitInputField .dijitPlaceHolder { + padding: 2px; +} +.claro .dijitTextBox, +.claro .dijitTextBox .dijitButtonNode { + + border-color: #b5bcc7; + -webkit-transition-property:background-color, border; + -webkit-transition-duration:.35s; +} +.claro .dijitTextBox { + background-color: #f7fcff; +} +.claro .dijitTextBoxHover, +.claro .dijitTextBoxHover .dijitButtonNode { + border-color: #769dc0; + -webkit-transition-duration:.25s; +} +.claro .dijitTextBoxHover { + background-color: #e9f4fe; + background-image: url('images/textBox_back.png'); + background-repeat: repeat-x; +} +.claro .dijitTextBoxError, +.claro .dijitTextBoxError .dijitButtonNode { + border-color: #d46464; +} +.claro .dijitTextBoxError, +.claro .dijitTextBoxError .dijitInputContainer { + background-color: #fdf7f7; +} +.claro .dijitTextBoxFocused, +.claro .dijitTextBoxFocused .dijitButtonNode { + border-color:#769dc0; + -webkit-transition-duration:.1s; +} +.claro .dijitTextBoxFocused { + background-color: #fff; + background-image: url('images/textBox_back.png'); + background-repeat: repeat-x; +} +.claro .dijitTextBoxFocused .dijitInputContainer { + background: #fff; +} +.claro .dijitTextBoxErrorFocused, +.claro .dijitTextBoxErrorFocused .dijitButtonNode { + border-color: #ce4f4f; +} +.claro .dijitTextBoxDisabled, +.claro .dijitTextBoxDisabled .dijitButtonNode { + border-color: #d3d3d3; +} +.claro .dijitTextBoxDisabled { + background-color: #efefef; + background-image: none; + color: #818181; +} +.claro .dijitComboBox .dijitArrowButtonInner { + background-image: url("images/commonFormArrows.png"); + background-position:-35px 53%; + background-repeat: no-repeat; + margin: 0px; + width:16px; + height:100%; + border: 1px solid #fff; +} +.claro .dijitTextBox .dijitInputField { + padding-top: 1px; + padding-bottom: 1px; +} +.claro .dijitTextBox .dijitInputInner { + + padding: 1px 2px 1px 0; +} +.claro .dijitTextBox .dijitValidationContainer { + padding: 0 0 2px 0; +} +.claro .dijitComboBox .dijitButtonNode { + background-color: #ebeef4; + background-image: url("images/formHighlight.png"); + background-repeat:repeat-x; +} +.claro .dijitComboBoxHover .dijitButtonNode { + background-color:#abd6ff; +} +.claro .dijitComboBoxHover .dijitArrowButtonInner { + background-position:-70px 53%; +} +.claro .dijitComboBoxFocused .dijitButtonNode { + background-color:#7dbefa; + background-position:0px -177px; + padding: 1px; +} +.claro .dijitComboBoxFocused .dijitArrowButtonInner { + background-position:-70px 53%; + border: 0px none; +} +.claro div.dijitComboBoxDisabled .dijitArrowButtonInner { + + background-position:0px 50%; + background-color:#f1f1f1; +} +.dj_ff3 .claro .dijitInputField input[type="hidden"] { + display: none; + height: 0; + width: 0; +} +.dj_ie6 .claro .dijitTextBox, +.dj_ie6 .claro .dijitComboBox .dijitButtonNode { + background-image: none; +} +.dj_quirks .claro .dijitComboBox .dijitArrowButtonInner { + border: 0px; +} +.dj_quirks .claro .dijitComboBox .dijitArrowButtonContainer { + padding: 1px; +} diff --git a/lib/dijit/themes/claro/form/Common_rtl.css b/lib/dijit/themes/claro/form/Common_rtl.css new file mode 100644 index 000000000..065f0c70d --- /dev/null +++ b/lib/dijit/themes/claro/form/Common_rtl.css @@ -0,0 +1,5 @@ + +.claro .dijitTextBoxRtlError .dijitValidationContainer { + border-left-width: 0px; + border-right-width: 1px; +} diff --git a/lib/dijit/themes/claro/form/NumberSpinner.css b/lib/dijit/themes/claro/form/NumberSpinner.css new file mode 100644 index 000000000..66b97da62 --- /dev/null +++ b/lib/dijit/themes/claro/form/NumberSpinner.css @@ -0,0 +1,100 @@ + +.claro .dijitSpinnerButtonContainer { + overflow: hidden; + position: relative; + width: auto; + padding: 0 2px; +} +.claro .dijitSpinnerButtonContainer .dijitSpinnerButtonInner { + border-width: 1px 0; + border-style: solid none; +} +.claro .dijitSpinner .dijitArrowButton { + width:auto; + background-color: #ebeef4; + background-image: url("images/formHighlight.png"); + background-position:0px 0px; + background-repeat:repeat-x; + overflow: hidden; +} +.dj_iequirks .claro .dijitSpinner .dijitArrowButton { + overflow: visible; +} +.claro .dijitSpinner .dijitSpinnerButtonInner { + width: 15px; +} +.claro .dijitSpinner .dijitArrowButtonInner { + border:solid 1px #fff; + border-bottom-width: 0; + background-image: url("images/commonFormArrows.png"); + background-repeat: no-repeat; + height: 100%; + width:15px; + padding-left: 1px; + padding-right: 1px; + + background-position:-139px center; + + display: block; + margin: -1px 0px -1px 0px; + #margin-top: 0; +} +.dj_iequirks .claro .dijitSpinner .dijitArrowButtonInner { + width: 19px; +} +.claro .dijitSpinner .dijitDownArrowButton .dijitArrowButtonInner { + background-position:-34px; +} +.claro .dijitSpinner .dijitArrowButtonInner .dijitInputField { + padding: 0; +} +.claro .dijitUpArrowButtonActive, +.claro .dijitDownArrowButtonActive { + background-color:#abd6ff; +} +.claro .dijitSpinner .dijitUpArrowButtonHover, +.claro .dijitSpinner .dijitDownArrowButtonHover, +.claro .dijitSpinnerFocused .dijitArrowButton { + background-color: #a0d1ff; +} +.claro .dijitSpinner .dijitUpArrowButtonHover .dijitArrowButtonInner { + background-position:-174px; +} +.claro .dijitSpinner .dijitDownArrowButtonHover .dijitArrowButtonInner { + background-position:-69px; +} +.claro .dijitSpinnerFocused { + background-color: #fff; + background-image: none; +} +.claro .dijitSpinner .dijitDownArrowButtonActive, +.claro .dijitSpinner .dijitUpArrowButtonActive { + background-color: #3299f9; + background-position:0px -177px; +} +.claro .dijitSpinner .dijitUpArrowButtonActive .dijitArrowButtonInner, +.claro .dijitSpinner .dijitDownArrowButtonActive .dijitArrowButtonInner { + + border: 0px; + padding: 1px; + margin-right:2px; + margin-bottom:1px; +} +.claro .dijitSpinner .dijitUpArrowButtonActive .dijitArrowButtonInner { + background-position:-173px; +} +.claro .dijitSpinner .dijitDownArrowButtonActive .dijitArrowButtonInner { + background-position:-68px; +} +.claro .dijitSpinnerDisabled .dijitArrowButtonInner { + background-color: #f1f1f1; +} +.claro .dijitSpinnerDisabled .dijitUpArrowButton .dijitArrowButtonInner { + background-position:-104px; +} +.claro .dijitSpinnerDisabled .dijitDownArrowButton .dijitArrowButtonInner { + background-position:1px; +} +.dj_ie7 .claro .dijitSpinner { + overflow:visible; +} diff --git a/lib/dijit/themes/claro/form/RadioButton.css b/lib/dijit/themes/claro/form/RadioButton.css new file mode 100644 index 000000000..b9058d1b9 --- /dev/null +++ b/lib/dijit/themes/claro/form/RadioButton.css @@ -0,0 +1,51 @@ + +.claro .dijitToggleButton .dijitRadio, +.claro .dijitToggleButton .dijitRadioIcon { + background-image: url('images/checkboxRadioButtonStates.png'); +} +.dj_ie6 .claro .dijitToggleButton .dijitRadio, +.dj_ie6 .claro .dijitToggleButton .dijitRadioIcon { + background-image: url('images/checkboxAndRadioButtons_IE6.png'); +} +.claro .dijitRadio, +.claro .dijitRadioIcon { + background-image: url('images/checkboxRadioButtonStates.png'); + background-repeat: no-repeat; + width: 15px; + height: 15px; + margin: 0px 2px 0px 0px; + padding: 0px; +} +.dj_ie6 .claro .dijitRadio, +.dj_ie6 .claro .dijitRadioIcon { + background-image: url('images/checkboxAndRadioButtons_IE6.png'); +} +.claro .dijitRadio{ + + background-position: -105px; +} +.claro .dijitToggleButton .dijitRadioIcon { + + background-position: -107px; +} +.claro .dijitRadioDisabled { + + background-position: -165px; +} +.claro .dijitRadioHover { + + background-position: -135px; +} +.claro .dijitRadioChecked{ + background-position: -90px; +} +.claro .dijitToggleButtonChecked .dijitRadioIcon { + background-position: -92px; +} +.claro .dijitRadioCheckedHover{ + background-position: -120px; +} +.claro .dijitRadioCheckedDisabled { + + background-position: -150px; +} diff --git a/lib/dijit/themes/claro/form/Select.css b/lib/dijit/themes/claro/form/Select.css new file mode 100644 index 000000000..c8f1d43fa --- /dev/null +++ b/lib/dijit/themes/claro/form/Select.css @@ -0,0 +1,89 @@ + +.claro .dijitSelect .dijitButtonText { + padding: 0px 5px 2px 5px; +} +.claro .dijitSelect { + border: 1px solid #b5bcc7; + background-color: #f7fcff; + border-collapse: separate; +} +.dj_ie6 .claro .dijitSelect, +.dj_ie6 .claro .dijitSelect .dijitButtonNode { + background-image:none; +} +.claro .dijitSelect .dijitButtonContents { + border: 0px solid #b5bcc7; + border-right-width: 1px; +} +.claro .dijitSelect .dijitArrowButton { + padding: 0; + border: 1px solid #fff; + border-top:none; + background-color:#ebeef4; + background-image: url("images/formHighlight.png"); + background-repeat:repeat-x; +} +.claro .dijitSelect .dijitArrowButton .dijitArrowButtonInner { + background-image: url("images/commonFormArrows.png"); + background-position:-35px 70%; + background-repeat: no-repeat; + width:16px; + height:16px; + display:block; +} +.claro .dijitSelectHover { + border: 1px solid #769dc0; + background-color: #e9f4fe; + background-image: url('images/textBox_back.png'); + background-repeat: repeat-x; +} +.claro .dijitSelectHover .dijitButtonContents { + border-color:#81a5c6; +} +.claro .dijitSelectHover .dijitArrowButton { + background-color:#abd6ff; +} +.claro .dijitSelectHover .dijitArrowButton .dijitArrowButtonInner { + background-position:-70px 70%; +} +.claro .dijitSelectFocused { + border: 1px solid #769dc0; +} +.claro .dijitSelectFocused .dijitButtonContents { + border-color:#81a5c6; +} +.claro .dijitSelectFocused .dijitArrowButton { + background-color:#7dbefa; + background-position:0px -177px; + border: none; + padding: 0px 1px; +} +.claro .dijitSelectFocused .dijitArrowButton .dijitArrowButtonInner { + background-position:-70px 70%; + margin-bottom: 1px; +} +.claro .dijitSelectDisabled { + border: 1px solid #d3d3d3; + background-color: #efefef; + background-image: none; + color: #818181; +} +.claro .dijitSelectDisabled .dijitArrowButton { + background-color: #efefef; +} +.claro .dijitSelectDisabled .dijitArrowButton .dijitArrowButtonInner { + background-position:0px 70% +} +.claro .dijitSelectMenu td.dijitMenuItemIconCell, +.claro .dijitSelectMenu td.dijitMenuArrowCell { + + display: none; +} +.claro .dijitSelectMenu td.dijitMenuItemLabel { + + padding-left: 5px; + padding-right: 5px; +} +.claro .dijitSelectMenu .dijitMenuSeparatorTop { + border-bottom:1px solid #769dc0; +} diff --git a/lib/dijit/themes/claro/form/Select_rtl.css b/lib/dijit/themes/claro/form/Select_rtl.css new file mode 100644 index 000000000..43797508f --- /dev/null +++ b/lib/dijit/themes/claro/form/Select_rtl.css @@ -0,0 +1,4 @@ +.claro .dijitSelectRtl .dijitButtonContents { + border-right-width: 0px; + border-left-width: 1px; +} diff --git a/lib/dijit/themes/claro/form/Slider.css b/lib/dijit/themes/claro/form/Slider.css new file mode 100644 index 000000000..51c2c2313 --- /dev/null +++ b/lib/dijit/themes/claro/form/Slider.css @@ -0,0 +1,294 @@ + +.claro .dijitSliderBar { + border-style: solid; + outline: 1px; +} +.claro .dijitSliderFocused .dijitSliderBar { + border-color: #769dc0; +} +.claro .dijitSliderHover .dijitSliderBar { + border-color: #769dc0; +} +.claro .dijitSliderDisabled .dijitSliderBar { + background-image: none; + border-color: #d3d3d3; +} +.claro .dijitRuleLabelsContainerH { + padding: 2px 0px; +} +.claro .dijitSlider .dijitSliderProgressBarH, +.claro .dijitSlider .dijitSliderLeftBumper{ + background-image: url("images/sliderHorizontal.png"); + background-repeat:repeat-x; + background-position:0 -20px; + border-color: #b5bcc7; + background-color: #cfe5fa; +} +.claro .dijitSlider .dijitSliderRemainingBarH, +.claro .dijitSlider .dijitSliderRightBumper{ + background-image: url("images/sliderHorizontal.png"); + background-repeat:repeat-x; + background-position:0 -11px; + border-color: #b5bcc7; + background-color: #fff; +} +.claro .dijitSliderRightBumper { + border-right: solid 1px #b5bcc7; +} +.claro .dijitSliderLeftBumper { + border-left: solid 1px #b5bcc7; +} +.claro .dijitSliderHover .dijitSliderProgressBarH, +.claro .dijitSliderHover .dijitSliderLeftBumper{ + background-position:0 -20px; + background-color: #abd6ff; + border-color: #769dc0; +} +.claro .dijitSliderHover .dijitSliderRemainingBarH, +.claro .dijitSliderHover .dijitSliderRightBumper{ + background-position:0 0px; + background-color: #fff; + border-color: #769dc0; +} +.claro .dijitSliderFocused .dijitSliderProgressBarH, +.claro .dijitSliderFocused .dijitSliderLeftBumper{ + background-position:0 -30px; + background-color: #abd6ff; + border-color: #769dc0; +} +.claro .dijitSliderFocused .dijitSliderRemainingBarH, +.claro .dijitSliderFocused .dijitSliderRightBumper{ + background-position:0 -9px; + background-color: #fff; + border-color: #769dc0; +} +.claro .dijitSliderDisabled .dijitSliderProgressBarH, +.claro .dijitSliderDisabled .dijitSliderLeftBumper{ + background-color: #cdcdcd; + background-image:none; +} +.claro .dijitSliderDisabled .dijitSliderRemainingBarH, +.claro .dijitSliderDisabled .dijitSliderRightBumper{ + background-color: #efefef; +} +.claro .dijitRuleLabelsContainerV { + padding: 0px 2px; +} +.claro .dijitSlider .dijitSliderProgressBarV, +.claro .dijitSlider .dijitSliderBottomBumper{ + background-image: url("images/sliderVertical.png"); + background-repeat:repeat-y; + background-position:-36px 0; + border-color: #b5bcc7; + background-color: #cfe5fa; +} +.claro .dijitSlider .dijitSliderRemainingBarV, +.claro .dijitSlider .dijitSliderTopBumper{ + background-image: url("images/sliderVertical.png"); + background-repeat:repeat-y; + background-position:-3px 0; + border-color: #b5bcc7; + background-color: #fff; +} +.claro .dijitSliderBottomBumper { + border-bottom: solid 1px #b5bcc7; +} +.claro .dijitSliderTopBumper { + border-top: solid 1px #b5bcc7; +} +.claro .dijitSliderHover .dijitSliderProgressBarV, +.claro .dijitSliderHover .dijitSliderBottomBumper{ + background-position:-36px 0; + background-color: #abd6ff; +} +.claro .dijitSliderHover .dijitSliderRemainingBarV, +.claro .dijitSliderHover .dijitSliderTopBumper{ + background-position:0 0; + background-color: #fff; +} +.claro .dijitSliderFocused .dijitSliderProgressBarV, +.claro .dijitSliderFocused .dijitSliderBottomBumper{ + background-position:-56px 0; + background-color: #abd6ff; +} +.claro .dijitSliderFocused .dijitSliderRemainingBarV, +.claro .dijitSliderFocused .dijitSliderTopBumper{ + background-position:-18px 0; + background-color: #fff; +} +.claro .dijitSliderDisabled .dijitSliderProgressBarV, +.claro .dijitSliderDisabled .dijitSliderBottomBumper{ + background-color: #cdcdcd; +} +.claro .dijitSliderDisabled .dijitSliderRemainingBarV, +.claro .dijitSliderDisabled .dijitSliderTopBumper{ + background-color: #efefef; +} +.claro .dijitSliderImageHandleH { + border: 0px; + width: 18px; + height: 16px; + background-image: url("images/sliderThumbs.png"); + background-repeat:no-repeat; + background-position:0 0; +} +.claro .dijitSliderHover .dijitSliderImageHandleH { + background-position:-18px 0; +} +.claro .dijitSliderFocused .dijitSliderImageHandleH { + background-position:-36px 0; +} +.claro .dijitSliderProgressBarH .dijitSliderThumbHover{ + background-position:-36px 0; +} +.claro .dijitSliderProgressBarH .dijitSliderThumbActive{ + background-position:-36px 0; +} +.claro .dijitSliderReadOnly .dijitSliderImageHandleH, +.claro .dijitSliderDisabled .dijitSliderImageHandleH { + background-position:-54px 0; +} +.claro .dijitSliderImageHandleV { + border: 0px; + width: 18px; + height: 16px; + background-image: url("images/sliderThumbs.png"); + background-repeat:no-repeat; + background-position:-289px 0; +} +.claro .dijitSliderHover .dijitSliderImageHandleV { + background-position:-307px 0; +} +.claro .dijitSliderFocused .dijitSliderImageHandleV { + background-position:-325px 0; +} +.claro .dijitSliderProgressBarV .dijitSliderThumbHover{ + background-position:-325px 0; +} +.claro .dijitSliderProgressBarV .dijitSliderThumbActive{ + background-position:-325px 0; +} +.claro .dijitSliderReadOnly .dijitSliderImageHandleV, +.claro .dijitSliderDisabled .dijitSliderImageHandleV { + background-position:-343px 0; +} +.claro .dijitSliderButtonContainerH{ + padding: 1px 3px 1px 2px; +} +.claro .dijitSliderButtonContainerV{ + padding: 3px 1px 2px 1px; +} +.claro .dijitSliderDecrementIconH, +.claro .dijitSliderIncrementIconH, +.claro .dijitSliderDecrementIconV, +.claro .dijitSliderIncrementIconV { + background-image: url('images/commonFormArrows.png'); + background-repeat:no-repeat; + background-color: #e9ecf2; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border: solid 1px #b5bcc7; + font-size: 1px; +} +.claro .dijitSliderDecrementIconH, +.claro .dijitSliderIncrementIconH { + height: 12px; + width: 9px; +} +.claro .dijitSliderDecrementIconV, +.claro .dijitSliderIncrementIconV { + height: 9px; + width: 12px; +} +.claro .dijitSliderActive .dijitSliderDecrementIconH, +.claro .dijitSliderActive .dijitSliderIncrementIconH, +.claro .dijitSliderActive .dijitSliderDecrementIconV, +.claro .dijitSliderActive .dijitSliderIncrementIconV, +.claro .dijitSliderHover .dijitSliderDecrementIconH, +.claro .dijitSliderHover .dijitSliderIncrementIconH, +.claro .dijitSliderHover .dijitSliderDecrementIconV, +.claro .dijitSliderHover .dijitSliderIncrementIconV { + border: solid 1px #769dc0; + background-color:#fff; +} +.claro .dijitSliderDecrementIconH { + background-position:-357px 50%; +} +.claro .dijitSliderActive .dijitSliderDecrementIconH +.claro .dijitSliderHover .dijitSliderDecrementIconH { + background-position:-393px 50%; +} +.claro .dijitSliderIncrementIconH { + background-position:-251px 50%; +} +.claro .dijitSliderActive .dijitSliderIncrementIconH +.claro .dijitSliderHover .dijitSliderIncrementIconH { + background-position:-283px 50%; +} +.claro .dijitSliderDecrementIconV { + background-position:-38px 50%; +} +.claro .dijitSliderActive .dijitSliderDecrementIconV +.claro .dijitSliderHover .dijitSliderDecrementIconV { + background-position:-73px 50%; +} +.claro .dijitSliderIncrementIconV { + background-position:-143px 49%; +} +.claro .dijitSliderActive .dijitSliderIncrementIconV +.claro .dijitSliderHover .dijitSliderIncrementIconV { + background-position:-178px 49%; +} +.claro .dijitSliderButtonContainerV .dijitSliderDecrementButtonHover, +.claro .dijitSliderButtonContainerH .dijitSliderDecrementButtonHover, +.claro .dijitSliderButtonContainerV .dijitSliderIncrementButtonHover, +.claro .dijitSliderButtonContainerH .dijitSliderIncrementButtonHover { + background-color: #cce3fc; +} +.claro .dijitSliderButtonContainerV .dijitSliderDecrementButtonActive, +.claro .dijitSliderButtonContainerH .dijitSliderDecrementButtonActive, +.claro .dijitSliderButtonContainerV .dijitSliderIncrementButtonActive, +.claro .dijitSliderButtonContainerH .dijitSliderIncrementButtonActive { + background-color: #a5d0fc; + border-color:#6591b9; +} +.claro .dijitSliderButtonInner { + visibility: hidden; +} +.claro .dijitSliderDisabled .dijitSliderBar{ + border-color: #d3d3d3; +} +.claro .dijitSliderReadOnly *,.claro .dijitSliderDisabled * { + border-color: #d3d3d3; + color: #bdbdbd; +} +.claro .dijitSliderReadOnly .dijitSliderDecrementIconH, +.claro .dijitSliderDisabled .dijitSliderDecrementIconH { + background-position:-321px 50%; + background-color:#e9e9e9; +} +.claro .dijitSliderReadOnly .dijitSliderIncrementIconH, +.claro .dijitSliderDisabled .dijitSliderIncrementIconH { + background-position:-215px 50%; + background-color:#e9e9e9; +} +.claro .dijitSliderReadOnly .dijitSliderDecrementIconV, +.claro .dijitSliderDisabled .dijitSliderDecrementIconV { + background-position:-3px 49%; + background-color:#e9e9e9; +} +.claro .dijitSliderReadOnly .dijitSliderIncrementIconV, +.claro .dijitSliderDisabled .dijitSliderIncrementIconV { + background-position:-107px 49%; + background-color:#e9e9e9; +} +.dj_ie6 .claro .dijitSlider .dijitSliderProgressBarH, +.dj_ie6 .claro .dijitSlider .dijitSliderLeftBumper, +.dj_ie6 .claro .dijitSlider .dijitSliderRemainingBarH, +.dj_ie6 .claro .dijitSlider .dijitSliderRightBumper, +.dj_ie6 .claro .dijitSlider .dijitSliderProgressBarV, +.dj_ie6 .claro .dijitSlider .dijitSliderTopBumper, +.dj_ie6 .claro .dijitSlider .dijitSliderRemainingBarV, +.dj_ie6 .claro .dijitSlider .dijitSliderBottomBumper { + background-image:none; +} diff --git a/lib/dijit/themes/claro/form/Slider_rtl.css b/lib/dijit/themes/claro/form/Slider_rtl.css new file mode 100644 index 000000000..ebff4268d --- /dev/null +++ b/lib/dijit/themes/claro/form/Slider_rtl.css @@ -0,0 +1,26 @@ +.claro .dijitSliderRtl .dijitSliderProgressBarH, +.claro .dijitSliderRtl .dijitSliderRemainingBarH, +.claro .dijitSliderRtl .dijitSliderLeftBumper, +.claro .dijitSliderRtl .dijitSliderRightBumper, +.claro .dijitSliderRtl .dijitSliderTopBumper { + background-position: top right; +} +.claro .dijitSliderRtl .dijitSliderProgressBarV, +.claro .dijitSliderRtl .dijitSliderRemainingBarV, +.claro .dijitSliderRtl .dijitSliderBottomBumper { + background-position: bottom right; +} +.claro .dijitSliderRtl .dijitSliderLeftBumper { + border-left-width: 0px; + border-right-width: 1px; +} +.claro .dijitSliderRtl .dijitSliderRightBumper { + border-left-width: 1px; + border-right-width: 0px; +} +.claro .dijitSliderRtl .dijitSliderIncrementIconH { + background-position:-357px 50%; +} +.claro .dijitSliderRtl .dijitSliderDecrementIconH { + background-position:-251px 50%; +} diff --git a/lib/dijit/themes/claro/form/images/button.png b/lib/dijit/themes/claro/form/images/button.png Binary files differnew file mode 100644 index 000000000..cb787cb2c --- /dev/null +++ b/lib/dijit/themes/claro/form/images/button.png diff --git a/lib/dijit/themes/claro/form/images/buttonArrows.png b/lib/dijit/themes/claro/form/images/buttonArrows.png Binary files differnew file mode 100644 index 000000000..642eff39b --- /dev/null +++ b/lib/dijit/themes/claro/form/images/buttonArrows.png diff --git a/lib/dijit/themes/claro/form/images/button_grad_d.png b/lib/dijit/themes/claro/form/images/button_grad_d.png Binary files differnew file mode 100644 index 000000000..3a71a4653 --- /dev/null +++ b/lib/dijit/themes/claro/form/images/button_grad_d.png diff --git a/lib/dijit/themes/claro/form/images/checkboxAndRadioButtons_IE6.png b/lib/dijit/themes/claro/form/images/checkboxAndRadioButtons_IE6.png Binary files differnew file mode 100644 index 000000000..92d222178 --- /dev/null +++ b/lib/dijit/themes/claro/form/images/checkboxAndRadioButtons_IE6.png diff --git a/lib/dijit/themes/claro/form/images/checkboxRadioButtonStates.png b/lib/dijit/themes/claro/form/images/checkboxRadioButtonStates.png Binary files differnew file mode 100644 index 000000000..2d06a8288 --- /dev/null +++ b/lib/dijit/themes/claro/form/images/checkboxRadioButtonStates.png diff --git a/lib/dijit/themes/claro/form/images/commonFormArrows.png b/lib/dijit/themes/claro/form/images/commonFormArrows.png Binary files differnew file mode 100644 index 000000000..6d04742ed --- /dev/null +++ b/lib/dijit/themes/claro/form/images/commonFormArrows.png diff --git a/lib/dijit/themes/claro/form/images/error.png b/lib/dijit/themes/claro/form/images/error.png Binary files differnew file mode 100644 index 000000000..46de1cd8b --- /dev/null +++ b/lib/dijit/themes/claro/form/images/error.png diff --git a/lib/dijit/themes/claro/form/images/formHighlight.png b/lib/dijit/themes/claro/form/images/formHighlight.png Binary files differnew file mode 100644 index 000000000..f90eb25ba --- /dev/null +++ b/lib/dijit/themes/claro/form/images/formHighlight.png diff --git a/lib/dijit/themes/claro/form/images/shadow.png b/lib/dijit/themes/claro/form/images/shadow.png Binary files differnew file mode 100644 index 000000000..72d60e628 --- /dev/null +++ b/lib/dijit/themes/claro/form/images/shadow.png diff --git a/lib/dijit/themes/claro/form/images/sliderHorizontal.png b/lib/dijit/themes/claro/form/images/sliderHorizontal.png Binary files differnew file mode 100644 index 000000000..d769a6489 --- /dev/null +++ b/lib/dijit/themes/claro/form/images/sliderHorizontal.png diff --git a/lib/dijit/themes/claro/form/images/sliderThumbs.png b/lib/dijit/themes/claro/form/images/sliderThumbs.png Binary files differnew file mode 100644 index 000000000..70ab2fe29 --- /dev/null +++ b/lib/dijit/themes/claro/form/images/sliderThumbs.png diff --git a/lib/dijit/themes/claro/form/images/sliderVertical.png b/lib/dijit/themes/claro/form/images/sliderVertical.png Binary files differnew file mode 100644 index 000000000..9d69d04c2 --- /dev/null +++ b/lib/dijit/themes/claro/form/images/sliderVertical.png diff --git a/lib/dijit/themes/claro/form/images/textBox_back.png b/lib/dijit/themes/claro/form/images/textBox_back.png Binary files differnew file mode 100644 index 000000000..dfc752afe --- /dev/null +++ b/lib/dijit/themes/claro/form/images/textBox_back.png diff --git a/lib/dijit/themes/claro/images/calendarArrows.png b/lib/dijit/themes/claro/images/calendarArrows.png Binary files differnew file mode 100644 index 000000000..3f6faa5f4 --- /dev/null +++ b/lib/dijit/themes/claro/images/calendarArrows.png diff --git a/lib/dijit/themes/claro/images/calendarArrows8bit.png b/lib/dijit/themes/claro/images/calendarArrows8bit.png Binary files differnew file mode 100644 index 000000000..ab9d66cb9 --- /dev/null +++ b/lib/dijit/themes/claro/images/calendarArrows8bit.png diff --git a/lib/dijit/themes/claro/images/calendarContainerImages.png b/lib/dijit/themes/claro/images/calendarContainerImages.png Binary files differnew file mode 100644 index 000000000..44fa088b7 --- /dev/null +++ b/lib/dijit/themes/claro/images/calendarContainerImages.png diff --git a/lib/dijit/themes/claro/images/checkmarkNoBorder.gif b/lib/dijit/themes/claro/images/checkmarkNoBorder.gif Binary files differnew file mode 100644 index 000000000..324bfb3cd --- /dev/null +++ b/lib/dijit/themes/claro/images/checkmarkNoBorder.gif diff --git a/lib/dijit/themes/claro/images/checkmarkNoBorder.png b/lib/dijit/themes/claro/images/checkmarkNoBorder.png Binary files differnew file mode 100644 index 000000000..9cec0c0aa --- /dev/null +++ b/lib/dijit/themes/claro/images/checkmarkNoBorder.png diff --git a/lib/dijit/themes/claro/images/commonHighlight.png b/lib/dijit/themes/claro/images/commonHighlight.png Binary files differnew file mode 100644 index 000000000..f90eb25ba --- /dev/null +++ b/lib/dijit/themes/claro/images/commonHighlight.png diff --git a/lib/dijit/themes/claro/images/dialogCloseIcon.png b/lib/dijit/themes/claro/images/dialogCloseIcon.png Binary files differnew file mode 100644 index 000000000..a605c71de --- /dev/null +++ b/lib/dijit/themes/claro/images/dialogCloseIcon.png diff --git a/lib/dijit/themes/claro/images/dialogCloseIcon8bit.png b/lib/dijit/themes/claro/images/dialogCloseIcon8bit.png Binary files differnew file mode 100644 index 000000000..d2b063b16 --- /dev/null +++ b/lib/dijit/themes/claro/images/dialogCloseIcon8bit.png diff --git a/lib/dijit/themes/claro/images/dnd.png b/lib/dijit/themes/claro/images/dnd.png Binary files differnew file mode 100644 index 000000000..8cb04aa43 --- /dev/null +++ b/lib/dijit/themes/claro/images/dnd.png diff --git a/lib/dijit/themes/claro/images/loading.gif b/lib/dijit/themes/claro/images/loading.gif Binary files differnew file mode 100644 index 000000000..6e7c8e5ec --- /dev/null +++ b/lib/dijit/themes/claro/images/loading.gif diff --git a/lib/dijit/themes/claro/images/loadingAnimation.gif b/lib/dijit/themes/claro/images/loadingAnimation.gif Binary files differnew file mode 100644 index 000000000..d76e4cd7f --- /dev/null +++ b/lib/dijit/themes/claro/images/loadingAnimation.gif diff --git a/lib/dijit/themes/claro/images/menuHighlight.png b/lib/dijit/themes/claro/images/menuHighlight.png Binary files differnew file mode 100644 index 000000000..22328a7d8 --- /dev/null +++ b/lib/dijit/themes/claro/images/menuHighlight.png diff --git a/lib/dijit/themes/claro/images/progressBarAnim.gif b/lib/dijit/themes/claro/images/progressBarAnim.gif Binary files differnew file mode 100644 index 000000000..30c0d9d87 --- /dev/null +++ b/lib/dijit/themes/claro/images/progressBarAnim.gif diff --git a/lib/dijit/themes/claro/images/progressBarEmpty.png b/lib/dijit/themes/claro/images/progressBarEmpty.png Binary files differnew file mode 100644 index 000000000..e0a68561f --- /dev/null +++ b/lib/dijit/themes/claro/images/progressBarEmpty.png diff --git a/lib/dijit/themes/claro/images/progressBarFull.png b/lib/dijit/themes/claro/images/progressBarFull.png Binary files differnew file mode 100644 index 000000000..280f51d2c --- /dev/null +++ b/lib/dijit/themes/claro/images/progressBarFull.png diff --git a/lib/dijit/themes/claro/images/spriteArrows.png b/lib/dijit/themes/claro/images/spriteArrows.png Binary files differnew file mode 100644 index 000000000..608f4c7f7 --- /dev/null +++ b/lib/dijit/themes/claro/images/spriteArrows.png diff --git a/lib/dijit/themes/claro/images/titlebar.png b/lib/dijit/themes/claro/images/titlebar.png Binary files differnew file mode 100644 index 000000000..48181035a --- /dev/null +++ b/lib/dijit/themes/claro/images/titlebar.png diff --git a/lib/dijit/themes/claro/images/tooltip.png b/lib/dijit/themes/claro/images/tooltip.png Binary files differnew file mode 100644 index 000000000..aca14988a --- /dev/null +++ b/lib/dijit/themes/claro/images/tooltip.png diff --git a/lib/dijit/themes/claro/images/tooltip8bit.png b/lib/dijit/themes/claro/images/tooltip8bit.png Binary files differnew file mode 100644 index 000000000..51f65f104 --- /dev/null +++ b/lib/dijit/themes/claro/images/tooltip8bit.png diff --git a/lib/dijit/themes/claro/images/treeExpandImages.png b/lib/dijit/themes/claro/images/treeExpandImages.png Binary files differnew file mode 100644 index 000000000..75cf38570 --- /dev/null +++ b/lib/dijit/themes/claro/images/treeExpandImages.png diff --git a/lib/dijit/themes/claro/images/treeExpandImages8bit.png b/lib/dijit/themes/claro/images/treeExpandImages8bit.png Binary files differnew file mode 100644 index 000000000..290b2e14f --- /dev/null +++ b/lib/dijit/themes/claro/images/treeExpandImages8bit.png diff --git a/lib/dijit/themes/claro/images/treeExpand_loading.gif b/lib/dijit/themes/claro/images/treeExpand_loading.gif Binary files differnew file mode 100644 index 000000000..424d376ac --- /dev/null +++ b/lib/dijit/themes/claro/images/treeExpand_loading.gif diff --git a/lib/dijit/themes/claro/layout/AccordionContainer.css b/lib/dijit/themes/claro/layout/AccordionContainer.css new file mode 100644 index 000000000..77b8bd967 --- /dev/null +++ b/lib/dijit/themes/claro/layout/AccordionContainer.css @@ -0,0 +1,65 @@ + +.claro .dijitAccordionContainer { + border:none; +} +.claro .dijitAccordionInnerContainer { + background-color: #e6e6e7; + border:solid 1px #b5bcc7; + margin-bottom:1px; + -webkit-transition-property:background-color,border; + -webkit-transition-duration:.3s; + -webkit-transition-timing-function:linear; +} +.claro .dijitAccordionTitle { + background-color: transparent; + background-image: url("images/accordion.png"); + background-position:0px 0px; + background-repeat:repeat-x; + padding: 5px 7px 2px 7px; + min-height:17px; + color:#4a4a4a; +} +.dj_ie6 .claro .dijitAccordionTitle { + background-image: none; +} +.claro .dijitAccordionContainer .dijitAccordionContainer-child { + background-color:#fff; + + border:1px solid #92bce1 !important; + margin: 0px 2px 2px; + padding: 9px; +} +.claro .dijitAccordionInnerContainerActive { + border:1px solid #769DC0; + background-color:#7dbefa; + -webkit-transition-duration:.1s; +} +.claro .dijitAccordionInnerContainerActive .dijitAccordionTitle { + background-position:0px -136px; + color:#000; +} +.claro .dijitAccordionInnerContainerSelected { + border-color:#92bce1; + background-color: #cde8ff; +} +.claro .dijitAccordionInnerContainerSelected .dijitAccordionTitle { + color:#000; + background-position: 0 0; +} +.claro .dijitAccordionInnerContainerHover dijitAccordionTitle { + + color:#000; +} +.claro .dijitAccordionInnerContainerHover, +.claro .dijitAccordionInnerContainerSelectedActive { + border:1px solid #769DC0; + background-color:#9dcfff; + -webkit-transition-duration:.2s; +} +.claro .dijitAccordionInnerContainerSelectedHover .dijitAccordionContainer-child, +.claro .dijitAccordionInnerContainerSelectedActive .dijitAccordionContainer-child { + background-color:#ffffff; + border:1px solid #769DC0 !important; + -webkit-box-shadow:inset 0px 0px 3px rgba(0, 0, 0, .25); + -moz-box-shadow:inset 0px 0px 3px rgba(0, 0, 0, .25); +} diff --git a/lib/dijit/themes/claro/layout/BorderContainer.css b/lib/dijit/themes/claro/layout/BorderContainer.css new file mode 100644 index 000000000..333a45890 --- /dev/null +++ b/lib/dijit/themes/claro/layout/BorderContainer.css @@ -0,0 +1,77 @@ + +.claro .dijitBorderContainer { + border: 1px #b5bcc7 solid; + padding: 5px; +} +.claro .dijitSplitContainer-child, +.claro .dijitBorderContainer-child { + + border: 1px #b5bcc7 solid; +} +.claro .dijitBorderContainer-dijitTabContainerTop, +.claro .dijitBorderContainer-dijitTabContainerBottom, +.claro .dijitBorderContainer-dijitTabContainerLeft, +.claro .dijitBorderContainer-dijitTabContainerRight, +.claro .dijitBorderContainer-dijitAccordionContainer { + + border: none; +} +.claro .dijitBorderContainer-dijitBorderContainer { + + border: 1px #c0ccdf solid; + padding: 5px; +} +.claro .dijitSplitterH, +.claro .dijitGutterH { + background:none; + border:0; + height:5px; +} +.claro .dijitSplitterH .dijitSplitterThumb { + background:#dde2e9 none; + height:1px; + top:2px; + width:19px; +} +.claro .dijitSplitterV, +.claro .dijitGutterV { + background:none; + border:0; + width:5px; + margin: 0; +} +.claro .dijitSplitterV .dijitSplitterThumb { + background:#dde2e9 none; + height:19px; + left:2px; + width:1px; + margin: 0; +} +.claro .dijitSplitterHHover { + font-size: 1px; + background: url("images/splitterHorizontalHover.png") no-repeat center top; +} +.claro .dijitSplitterHHover .dijitSplitterThumb { + background:#769dc0 none; +} +.claro .dijitSplitterVHover { + font-size: 1px; + background: url("images/splitterVerticalHover.png") no-repeat center left; +} +.claro .dijitSplitterVHover .dijitSplitterThumb { + background:#769dc0 none; +} +.dj_ie6 .dijitSplitterHHover, +.dj_ie6 .claro .dijitSplitterVHover { + background-color:#cfe9ff; + background-image:none; +} +.claro .dijitSplitterHActive { + font-size: 1px; + background-color:#abd4fb; + border-top:blue; +} +.claro .dijitSplitterVActive { + font-size: 1px; + background-color:#abd4fb; +} diff --git a/lib/dijit/themes/claro/layout/ContentPane.css b/lib/dijit/themes/claro/layout/ContentPane.css new file mode 100644 index 000000000..f9f543cd1 --- /dev/null +++ b/lib/dijit/themes/claro/layout/ContentPane.css @@ -0,0 +1,17 @@ + +.claro .dijitContentPane { + padding: 8px; +} +.claro .dijitTabContainerTop-dijitContentPane, +.claro .dijitTabContainerLeft-dijitContentPane, +.claro .dijitTabContainerBottom-dijitContentPane, +.claro .dijitTabContainerRight-dijitContentPane, +.claro .dijitAccordionContainer-dijitContentPane { + background-color: #fff; + padding: 8px; +} +.claro .dijitSplitContainer-dijitContentPane, +.claro .dijitBorderContainer-dijitContentPane { + background-color: #fff; + padding: 8px; +} diff --git a/lib/dijit/themes/claro/layout/TabContainer.css b/lib/dijit/themes/claro/layout/TabContainer.css new file mode 100644 index 000000000..95fe2c262 --- /dev/null +++ b/lib/dijit/themes/claro/layout/TabContainer.css @@ -0,0 +1,348 @@ + +.claro .dijitTabPaneWrapper { + background:#fff; +} +.claro .dijitTabPaneWrapper, +.claro .dijitTabContainerTop-tabs, +.claro .dijitTabContainerBottom-tabs, +.claro .dijitTabContainerLeft-tabs, +.claro .dijitTabContainerRight-tabs { + + border-color: #b5bcc7; +} +.claro .dijitTabCloseButton { + background: url("images/tabClose.png") no-repeat; + width: 14px; + height: 14px; + margin-left: 5px; + margin-right:-3px; +} +.claro .dijitTabCloseButtonHover { + background-position:-14px; +} +.claro .dijitTabCloseButtonActive { + background-position:-28px; +} +.claro .dijitTabSpacer { + + display: none; +} +.claro .dijitTabInnerDiv { + background-color:#e6e6e7; + -webkit-transition-property:background-color, border; + -webkit-transition-duration:.35s; + color:#4a4a4a; +} +.claro .dijitTabHover .dijitTabInnerDiv { + background-color:#a9d6ff; + -webkit-transition-duration:.25s; + color:#000; +} +.claro .dijitTabActive .dijitTabInnerDiv { + background-color:#8bc4f9; + color:#000; + -webkit-transition-duration:.1s; +} +.claro .dijitTabChecked .dijitTabInnerDiv { + background-color:#b2d4f3; + color:#000; +} +.claro .dijitTabContent { + border: 1px solid #b5bcc7; +} +.claro .dijitTabHover .dijitTabContent, +.claro .dijitTabActive .dijitTabContent { + border-color: #769dc0; +} +.claro .dijitTabChecked .dijitTabContent { + color:#000; + border-color: #b5bcc7; +} +.claro .tabStripButton .dijitTabInnerDiv { + background-color: transparent; +} +.claro .tabStripButton .dijitTabContent { + border: none; +} +.claro .dijitTabContainerTop-tabs .dijitTab { + top: 1px; + margin-right: 1px; + padding-top: 3px; +} +.dj_ie7 .claro .dijitTabContainerTop-tabs .dijitTab { + top: 3px; +} +.claro .dijitTabContainerTop-tabs .dijitTabContent { + padding:3px 8px 3px 4px; + border-bottom: 1px; + background-image:url("images/tabTop.png"); + background-position:0px 0px; + background-repeat:repeat-x; + min-width: 60px; + text-align: center; +} +.claro .dijitTabContainerTop-tabs .dijitTabChecked .dijitTabContent { + padding-bottom: 4px; + padding-top: 6px; +} +.dj_ie .claro .dijitTabContainerTop-tabs .dijitTabChecked .dijitTabContent { + border-bottom: none; +} +.claro .dijitTabContainerTop-tabs .dijitTabInnerDiv { + background-image:url("images/tabTop.png"); + background-position:0px -248px; + background-position:bottom; + background-repeat:repeat-x; + box-shadow: 0px -1px 1px rgba(0, 0, 0, 0.04); + -webkit-box-shadow: 0px -1px 1px rgba(0, 0, 0, 0.04); + -moz-box-shadow: 0px -1px 1px rgba(0, 0, 0, 0.04); +} +.claro .dijitTabContainerTop-tabs .dijitTabChecked .dijitTabInnerDiv { + background-image:none; + box-shadow: 0px -1px 2px rgba(0, 0, 0, 0.05); + -webkit-box-shadow: 0px -1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: 0px -1px 2px rgba(0, 0, 0, 0.05); +} +.claro .dijitTabContainerTop-tabs .dijitTabChecked .dijitTabContent { + background-position:0px -102px; + background-repeat:repeat-x; +} +.claro .dijitTabContainerBottom-tabs .dijitTab { + top: -1px; + margin-right: 1px; +} +.claro .dijitTabContainerBottom-tabs .dijitTabContent { + padding:3px 8px 4px 4px; + border-top: none; + background-image: url("images/tabBottom.png"); + background-position:0px -249px; + background-repeat: repeat-x; + background-position:bottom; + min-width: 60px; + text-align: center; +} +.claro .dijitTabContainerBottom-tabs .dijitTab { + padding-bottom: 3px; +} +.claro .dijitTabContainerBottom-tabs .dijitTabInnerDiv { + background-image: url("images/tabBottom.png"); + background-position: top; + background-repeat: repeat-x; + box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.04); + -webkit-box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.04); + -moz-box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.04); + +} +.claro .dijitTabContainerBottom-tabs .dijitTabChecked .dijitTabContent { + padding-bottom: 7px; + padding-top: 4px; + background-position:0px -119px; +} +.claro .dijitTabContainerBottom-tabs .dijitTabChecked { + padding-bottom: 0; +} +.claro .dijitTabContainerBottom-tabs .dijitTabChecked .dijitTabInnerDiv { + background-image:none; + box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.05); + -webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.05); +} +.claro .dijitTabContainerLeft-tabs .dijitTab { + left: 1px; + margin-bottom: 1px; +} +.claro .dijitTabContainerLeft-tabs .dijitTabInnerDiv { + background-image: url("images/tabLeft.png"); + background-position: -347px -340px; + background-repeat: repeat-y; +} +.claro .dijitTabContainerLeft-tabs .dijitTabContent { + padding:3px 8px 4px 4px; + background-image: url("images/tabLeft.png"); + background-repeat: repeat-y; + background-position:0px 0px; +} +.claro .dijitTabContainerLeft-tabs .dijitTabChecked .dijitTabContent { + padding-right: 9px; + border-right: none; + background-image: none; +} +.claro .dijitTabContainerLeft-tabs .dijitTabChecked .dijitTabInnerDiv { + background-position:0px -179px; + background-repeat:repeat-y; + box-shadow: -1px 0px 2px rgba(0, 0, 0, .05); + -webkit-box-shadow: -1px 0px 2px rgba(0, 0, 0, .05); + -moz-box-shadow: -1px 0px 2px rgba(0, 0, 0, 0.05); +} +.claro .dijitTabContainerRight-tabs .dijitTab { + left: -1px; + margin-bottom: 1px; +} +.claro .dijitTabContainerRight-tabs .dijitTabInnerDiv { + background-image: url("images/tabRight.png"); + background-repeat: repeat-y; + background-position: -1px -347px; +} +.claro .dijitTabContainerRight-tabs .dijitTabContent { + padding:3px 8px 4px 4px; + background-image: url("images/tabRight.png"); + background-position:right top; + background-repeat: repeat-y; +} +.claro .dijitTabContainerRight-tabs .dijitTabChecked .dijitTabContent { + padding-left: 5px; + border-left: none; + background-image: none; +} +.claro .dijitTabContainerRight-tabs .dijitTabChecked .dijitTabInnerDiv { + background-position:-348px -179px; + box-shadow: 1px 0px 2px rgba(0, 0, 0, 0.07); + -webkit-box-shadow: 1px 0px 2px rgba(0, 0, 0, 0.07); + -moz-box-shadow: 1px 0px 2px rgba(0, 0, 0, 0.07); +} +.claro .dijitTabContainerTop-tabs .dijitTabInnerDiv, +.claro .dijitTabContainerTop-tabs .dijitTabContent { + border-radius: 2px 2px 0px 0px; + -moz-border-radius: 2px 2px 0px 0px; + -webkit-border-top-left-radius:2px; + -webkit-border-top-right-radius:2px; +} +.claro .dijitTabContainerBottom-tabs .dijitTabInnerDiv, +.claro .dijitTabContainerBottom-tabs .dijitTabContent{ + border-radius: 0px 0px 2px 2px; + -moz-border-radius: 0px 0px 2px 2px; + -webkit-border-bottom-right-radius:2px; + -webkit-border-bottom-left-radius:2px; +} +.claro .dijitTabContainerLeft-tabs .dijitTabInnerDiv, +.claro .dijitTabContainerLeft-tabs .dijitTabContent{ + border-radius: 2px 0px 0px 2px; + -moz-border-radius: 2px 0px 0px 2px; + -webkit-border-top-left-radius:2px; + -webkit-border-bottom-left-radius:2px; +} +.claro .dijitTabContainerRight-tabs .dijitTabInnerDiv, +.claro .dijitTabContainerRight-tabs .dijitTabContent{ + border-radius: 0px 2px 2px 0px; + -moz-border-radius: 0px 2px 2px 0px; + -webkit-border-top-right-radius:2px; + -webkit-border-bottom-right-radius:2px; +} +.claro .tabStripButton { + background-color:#deecf9; + border: 1px solid #b5bcc7; +} +.claro .dijitTabListContainer-top .tabStripButton { + padding: 4px 3px; + margin-top:7px; + background-image: url("images/tabTop.png"); + background-position:0px 0px; +} +.claro .dijitTabListContainer-bottom .tabStripButton { + padding:5px 3px; + margin-bottom:4px; + background-image: url("images/tabTop.png"); + background-position:0px -248px; + background-position:bottom; +} +.claro .tabStripButtonHover { + background-color:#a6d2fb; +} +.claro .tabStripButtonActive { + background-color:#7dbefa; +} +.claro .dijitTabStripIcon { + height:15px; + width:15px; + margin: 0 auto; + background:url("../form/images/buttonArrows.png") no-repeat -75px 50%; + background-color: transparent; +} +.claro .dijitTabStripSlideRightIcon{ + background-position: -24px 50%; +} +.claro .dijitTabStripMenuIcon { + background-position: -51px 50%; +} +.claro .dijitTabListContainer-top .tabStripButtonDisabled, +.claro .dijitTabListContainer-bottom .tabStripButtonDisabled { + background-color:#dddddd; + border:1px solid #c9c9c9; +} +.claro .tabStripButtonDisabled .dijitTabStripSlideLeftIcon { + background-position:-175px 50%; +} +.claro .tabStripButtonDisabled .dijitTabStripSlideRightIcon { + background-position: -124px 50%; +} +.claro .tabStripButtonDisabled .dijitTabStripMenuIcon { + background-position: -151px 50%; +} +.claro .dijitTabContainerNested .dijitTabListWrapper { + height: auto; +} +.claro .dijitTabContainerNested .dijitTabContainerTop-tabs { + border-bottom:solid 1px #b5bcc7; + padding:1px 2px 4px; + margin-top:-2px; +} +.claro .dijitTabContainerTabListNested .dijitTabContent { + background:rgba(255, 255, 255, 0) none repeat scroll 0 0; + border: none; + padding: 4px; + border-color: rgba(118,157,192,0); + -webkit-transition-property:background-color, border-color; + -webkit-transition-duration:.3s; +} +.claro .dijitTabContainerTabListNested .dijitTab .dijitTabInnerDiv { + + background: none; + border: none; + top: 0px; + box-shadow: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; +} +.claro .dijitTabContainerTabListNested .dijitTabHover .dijitTabContent { + background-color:#eaf4fc; + border-radius: 2px 2px 2px 2px; + -moz-border-radius: 2px 2px 2px 2px; + -webkit-border-radius:2px; + border:solid 1px #c8dff3; + padding: 3px; + webkit-transition-duration:.2s; +} +.claro .dijitTabContainerTabListNested .dijitTabHover .tabLabel { + text-decoration: none; +} +.claro .dijitTabContainerTabListNested .dijitTabActive .dijitTabContent { + border-radius: 2px 2px 2px 2px; + -moz-border-radius: 2px 2px 2px 2px; + -webkit-border-radius:2px; + border:solid 1px #a8c7e2; + padding: 3px; + background:#b9d9f5 url("images/tabNested.png") repeat-x; + -webkit-transition-duration:.1s; +} +.claro .dijitTabContainerTabListNested .dijitTabChecked .dijitTabContent { + border-radius: 2px 2px 2px 2px; + -moz-border-radius: 2px 2px 2px 2px; + -webkit-border-radius:2px; + padding: 3px; + border:solid 1px #a8c7e2; + background-position: 0px 105px; + background-color:#d4e8f9; +} +.claro .dijitTabContainerTabListNested .dijitTabChecked .tabLabel { + text-decoration: none; + background-image:none; +} +.claro .dijitTabPaneWrapperNested { + border: none; +} +.dj_ie6 .claro .dijitTabContent, +.dj_ie6 .claro .dijitTabInnerDiv, +.dj_ie6 .dijitTabListContainer-top .tabStripButton, +.dj_ie6 .dijitTabListContainer-bottom .tabStripButton{ + background-image: none; +} diff --git a/lib/dijit/themes/claro/layout/TabContainer_rtl.css b/lib/dijit/themes/claro/layout/TabContainer_rtl.css new file mode 100644 index 000000000..156cea977 --- /dev/null +++ b/lib/dijit/themes/claro/layout/TabContainer_rtl.css @@ -0,0 +1,67 @@ +.claro .dijitTabContainerTop-tabs .dijitTabRtl, +.claro .dijitTabContainerBottom-tabs .dijitTabRtl { + margin-right: 0; + margin-left: 1px; +} +.claro .dijitTabRtl { + -moz-box-orient:horizontal; + text-align: right; +} +.dj_ie7 .claro .dijitTabRtl .dijitTabContent { + display: block; + left: 0; +} +.dj_ie7 .claro .dijitTabContainerTop-tabs .dijitTabRtl, +.dj_ie7 .claro .dijitTabContainerTop-tabs .dijitTabCheckedRtl { + top: 1px; +} +.dj_ie7 .claro .tabStripButtonRtl .dijitButtonContents, +.dj_ie8 .claro .tabStripButtonRtl .dijitButtonContents, +.dj_ie6 .claro .dijitTabContainerTop-tabs .dijitTabRtl .dijitTabInnerDiv, +.dj_ie6 .claro .dijitTabContainerBottom-tabs .dijitTabRtl .dijitTabInnerDiv, +.dj_ie7 .claro .dijitTabContainerTop-tabs .dijitTabRtl .dijitTabInnerDiv, +.dj_ie7 .claro .dijitTabContainerBottom-tabs .dijitTabRtl .dijitTabInnerDiv, +.dj_iequirks .claro .dijitTabContainerTop-tabs .dijitTabRtl .dijitTabInnerDiv, +.dj_iequirks .claro .dijitTabContainerBottom-tabs .dijitTabRtl .dijitTabInnerDiv { + float:left; +} +.dj_ie6 .claro .dijitTabRtl .tabLabel, +.dj_ie6 .claro .dijitTabContainerRight-tabs .dijitTabRtl, +.dj_ie6 .claro .dijitTabContainerLeft-tabs .dijitTabRtl, +.dj_ie7 .claro .dijitTabContainerRight-tabs .dijitTabRtl .dijitTabInnerDiv, +.dj_ie7 .claro .dijitTabContainerLeft-tabs .dijitTabRtl .dijitTabInnerDiv { + + zoom:1; +} +.dj_ie6 .claro .dijitTabRtl .dijitTabCloseButton, +.dj_ie7 .claro .dijitTabRtl .dijitTabCloseButton, +.dj_iequirks .claro .dijitTabRtl .dijitTabCloseButton { + margin-right:5px; +} +.dj_ie6 .claro .dijitTabContainerRightRtl .dijitTabContainerRight-tabs, +.dj_ie6 .claro .dijitTabContainerLeftRtl .dijitTabContainerLeft-tabs { + width:1%; +} +.dj_ie6 .dijitTabContainerTopStrip, +.dj_ie6 .dijitTabContainerBottomStrip { + position:absolute; +} +.dj_iequirks .claro .dijitTabContainerTopRtl .dijitTabContainerTopStrip { + padding-top: 10px; +} +.dj_ie7 .claro .dijitTabContainerRight-tabs .dijitTabRtlChecked .dijitTabInnerDiv { + background-position:-341px -179px; +} +.dj_ie6 .dijitTabContainerTopRtl .dijitTabStripIcon, +.dj_ie6 .dijitTabContainerBottomRtl .dijitTabStripIcon { + position: relative; +} +.dj_ie6-rtl .claro .dijitTabContainerTop-tabs { + + padding-left: 3px; +} +.dj_iequirks-rtl .claro .dijitTabListWrapper { + + border-left: 1px solid #fff; + border-right: 1px solid #fff; +} diff --git a/lib/dijit/themes/claro/layout/images/accordion.png b/lib/dijit/themes/claro/layout/images/accordion.png Binary files differnew file mode 100644 index 000000000..48181035a --- /dev/null +++ b/lib/dijit/themes/claro/layout/images/accordion.png diff --git a/lib/dijit/themes/claro/layout/images/splitterHorizontalHover.png b/lib/dijit/themes/claro/layout/images/splitterHorizontalHover.png Binary files differnew file mode 100644 index 000000000..0f5b691f6 --- /dev/null +++ b/lib/dijit/themes/claro/layout/images/splitterHorizontalHover.png diff --git a/lib/dijit/themes/claro/layout/images/splitterVerticalHover.png b/lib/dijit/themes/claro/layout/images/splitterVerticalHover.png Binary files differnew file mode 100644 index 000000000..2c3c6960e --- /dev/null +++ b/lib/dijit/themes/claro/layout/images/splitterVerticalHover.png diff --git a/lib/dijit/themes/claro/layout/images/tabBottom.png b/lib/dijit/themes/claro/layout/images/tabBottom.png Binary files differnew file mode 100644 index 000000000..bf232406f --- /dev/null +++ b/lib/dijit/themes/claro/layout/images/tabBottom.png diff --git a/lib/dijit/themes/claro/layout/images/tabClose.png b/lib/dijit/themes/claro/layout/images/tabClose.png Binary files differnew file mode 100644 index 000000000..f3b236393 --- /dev/null +++ b/lib/dijit/themes/claro/layout/images/tabClose.png diff --git a/lib/dijit/themes/claro/layout/images/tabLeft.png b/lib/dijit/themes/claro/layout/images/tabLeft.png Binary files differnew file mode 100644 index 000000000..8e9fcba27 --- /dev/null +++ b/lib/dijit/themes/claro/layout/images/tabLeft.png diff --git a/lib/dijit/themes/claro/layout/images/tabNested.png b/lib/dijit/themes/claro/layout/images/tabNested.png Binary files differnew file mode 100644 index 000000000..0140cf45b --- /dev/null +++ b/lib/dijit/themes/claro/layout/images/tabNested.png diff --git a/lib/dijit/themes/claro/layout/images/tabRight.png b/lib/dijit/themes/claro/layout/images/tabRight.png Binary files differnew file mode 100644 index 000000000..0aaae53a1 --- /dev/null +++ b/lib/dijit/themes/claro/layout/images/tabRight.png diff --git a/lib/dijit/themes/claro/layout/images/tabTop.png b/lib/dijit/themes/claro/layout/images/tabTop.png Binary files differnew file mode 100644 index 000000000..db7626ea8 --- /dev/null +++ b/lib/dijit/themes/claro/layout/images/tabTop.png diff --git a/lib/dijit/themes/dijit.css b/lib/dijit/themes/dijit.css new file mode 100644 index 000000000..0d8302344 --- /dev/null +++ b/lib/dijit/themes/dijit.css @@ -0,0 +1,1654 @@ + +.dijitReset { + + margin:0; + border:0; + padding:0; + line-height:normal; + font: inherit; + color: inherit; +} +.dijit_a11y .dijitReset { + -moz-appearance: none; +} +.dijitInline { + + display:inline-block; + #zoom: 1; + #display:inline; + border:0; + padding:0; + vertical-align:middle; + #vertical-align: auto; +} +.dijitHidden { + + display: none !important; +} +.dijitVisible { + + display: block !important; + position: relative; +} +.dijitInputContainer { + + #zoom: 1; + overflow: hidden; + float: none !important; + position:relative; +} +.dj_ie INPUT.dijitTextBox, +.dj_ie .dijitTextBox INPUT { + font-size: 100%; +} +.dijitTextBox .dijitSpinnerButtonContainer, +.dijitTextBox .dijitArrowButtonContainer, +.dijitTextBox .dijitValidationContainer { + float: right; + text-align: center; +} +.dijitTextBox INPUT.dijitInputField { + + padding-left: 0 !important; + padding-right: 0 !important; +} +.dijitTextBox .dijitValidationContainer { + display: none; +} +.dijitInlineTable { + + display:inline-table; + display:inline-block; + #zoom: 1; + #display:inline; + box-sizing: content-box; -moz-box-sizing: content-box; + border:0; + padding:0; +} +.dijitTeeny { + font-size:1px; + line-height:1px; +} +.dijitOffScreen { + position: absolute; + visibility: hidden; + left: 50%; + top: -10000px; +} +.dijitPopup { + position: absolute; + background-color: transparent; + margin: 0; + border: 0; + padding: 0; +} +.dijit_a11y .dijitPopup, +.dijit_ally .dijitPopup DIV, +.dijit_a11y .dijitPopup TABLE, +.dijit_a11y .dijitTooltipContainer { + background-color: white !important; +} +.dijitPositionOnly { + + padding: 0 !important; + border: 0 !important; + background-color: transparent !important; + background-image: none !important; + height: auto !important; + width: auto !important; +} +.dijitNonPositionOnly { + + float: none !important; + position: static !important; + margin: 0 0 0 0 !important; + vertical-align: middle !important; +} +.dijitBackgroundIframe { + + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + z-index: -1; + border: 0; + padding: 0; + margin: 0; +} +.dijitDisplayNone { + + display:none !important; +} +.dijitContainer { + + overflow: hidden; +} +.dijit_a11y * { + background-image:none !important; +} +.dijit_a11y .dijitIcon, +.dijit_a11y DIV.dijitArrowButtonInner, +.dijit_a11y SPAN.dijitArrowButtonInner, +.dijit_a11y IMG.dijitArrowButtonInner, +.dijit_a11y .dijitCalendarIncrementControl { + + display: none; +} +.dijitSpinner DIV.dijitArrowButtonInner { + display: block; +} +.dijit_a11y .dijitA11ySideArrow { + display: inline !important; + cursor: pointer; +} +.dijit_a11y .dijitCalendarDateLabel { + padding: 1px; +} +.dijit_a11y .dijitCalendarSelectedDate .dijitCalendarDateLabel { + border-style: dotted !important; + border-width: 1px; + padding: 0px; +} +.dijit_a11y .dijitCalendarDateTemplate { + padding-bottom: 0.1em !important; +} +.dijit_a11y .dijit * { + background:white !important; + color:black !important; +} +.dijit_a11y .dijitButtonNode { + border-color: black!important; + border-style: outset!important; + border-width: medium!important; +} +.dijit_a11y .dijitTextBoxReadOnly .dijitInputField, +.dijit_a11y .dijitTextBoxReadOnly .dijitButtonNode { + border-style: outset!important; + border-width: medium!important; + border-color: #999 !important; + color:#999 !important; +} +.dijitButtonNode * { + vertical-align: middle; +} +.dijitButtonNode .dijitArrowButtonInner { + + background: no-repeat center; + width: 12px; + height: 12px; + direction: ltr; +} +.dijitLeft { + + background-position:left top; + background-repeat:no-repeat; +} +.dijitStretch { + + white-space:nowrap; + background-repeat:repeat-x; +} +.dijitRight { + + #display:inline; + background-position:right top; + background-repeat:no-repeat; +} +.dijitToggleButton, +.dijitButton, +.dijitDropDownButton, +.dijitComboButton { + + margin: 0.2em; +} +.dijitButtonContents { + display: block; +} +td.dijitButtonContents { + display: table-cell; +} +.dijitButtonNode IMG { + + vertical-align:middle; + +} +TABLE.dijitComboButton { + + border-collapse: collapse; + border:0; + padding:0; + margin:0; +} +.dijitToolbar .dijitComboButton { + + border-collapse: separate; +} +.dijitToolbar .dijitToggleButton, +.dijitToolbar .dijitButton, +.dijitToolbar .dijitDropDownButton, +.dijitToolbar .dijitComboButton { + margin: 0; +} +.dijitToolbar .dijitButtonContents { + + padding: 1px 2px; +} +.dj_ie .dijitComboButton { + + margin-bottom: -3px; +} +.dj_webkit .dijitToolbar .dijitDropDownButton { + padding-left: 0.3em; +} +.dj_gecko .dijitToolbar .dijitButtonNode::-moz-focus-inner { + padding:0; +} +.dijitButtonNode { + + border:1px solid gray; + margin:0; + line-height:normal; + vertical-align: middle; + #vertical-align: auto; + text-align:center; + white-space: nowrap; +} +.dj_webkit .dijitSpinner .dijitSpinnerButtonContainer { + + line-height:inherit; +} +.dijitTextBox .dijitButtonNode { + border-width: 0; +} +.dijitButtonNode, +.dijitButtonNode * { + cursor: pointer; +} +.dj_ie .dijitButtonNode { + + zoom: 1; +} +.dj_ie .dijitButtonNode button { + + overflow: visible; +} +DIV.dijitArrowButton { + float: right; +} +.dijitTextBox { + border: solid black 1px; + #overflow: hidden; + width: 15em; + vertical-align: middle; + #vertical-align: auto; +} +.dijitTextBoxReadOnly, +.dijitTextBoxDisabled { + color: gray; +} +.dj_webkit .dijitTextBoxDisabled INPUT { + color: #eee; +} +.dj_webkit TEXTAREA.dijitTextAreaDisabled { + color: #333; +} +.dj_gecko .dijitTextBoxReadOnly INPUT, +.dj_gecko .dijitTextBoxDisabled INPUT { + -moz-user-input: none; +} +.dijitPlaceHolder { + + color: #AAAAAA; + font-style: italic; + position: absolute; + top: 0; + left: 0; + #filter: ""; +} +.dijitTimeTextBox { + width: 8em; +} +.dijitTextBox INPUT:focus { + outline: none; +} +.dijitTextBoxFocused { + outline: auto 5px -webkit-focus-ring-color; +} +.dijitTextBox INPUT { + float: left; +} +.dijitInputInner { + + border:0 !important; + vertical-align:middle !important; + background-color:transparent !important; + width:100% !important; + + padding-left: 0 !important; + padding-right: 0 !important; + margin-left: 0 !important; + margin-right: 0 !important; +} +.dijit_a11y .dijitTextBox INPUT { + margin: 0 !important; +} +.dijitTextBoxError INPUT.dijitValidationInner, +.dijitTextBox INPUT.dijitArrowButtonInner { + + text-indent: -1em !important; + direction: ltr !important; + text-align: left !important; + height: auto !important; + #text-indent: 0 !important; + #letter-spacing: -5em !important; + #text-align: right !important; +} +.dj_ie .dijitTextBox INPUT, +.dj_ie INPUT.dijitTextBox { + overflow-y: visible; + line-height: normal; +} +.dj_ie7 .dijitTextBox INPUT.dijitValidationInner, +.dj_ie7 .dijitTextBox INPUT.dijitArrowButtonInner { + line-height: 86%; +} +.dj_ie6 .dijitTextBox INPUT, +.dj_ie6 INPUT.dijitTextBox, +.dj_iequirks .dijitTextBox INPUT.dijitValidationInner, +.dj_iequirks .dijitTextBox INPUT.dijitArrowButtonInner, +.dj_iequirks .dijitTextBox INPUT.dijitSpinnerButtonInner, +.dj_iequirks .dijitTextBox INPUT.dijitInputInner, +.dj_iequirks INPUT.dijitTextBox { + line-height: 100%; +} +.dijit_a11y INPUT.dijitValidationInner, +.dijit_a11y INPUT.dijitArrowButtonInner { + + text-indent: 0 !important; + width: 1em !important; + #text-align: left !important; +} +.dijitTextBoxError .dijitValidationContainer { + display: inline; + cursor: default; +} +.dijitSpinner .dijitSpinnerButtonContainer, +.dijitComboBox .dijitArrowButtonContainer { + + border-width: 0 0 0 1px !important; +} +.dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode { + + border-width: 0; +} +.dj_ie .dijit_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode { + clear: both; +} +.dijit_a11y .dijitTextBox .dijitValidationContainer, +.dijit_a11y .dijitTextBox .dijitSpinnerButtonContainer, +.dijit_a11y .dijitComboBox .dijitArrowButtonContainer { + + border: solid black !important; + border-width: 0 0 0 1px !important; +} +.dj_ie .dijitToolbar .dijitComboBox { + + vertical-align: middle; +} +.dijitTextBox .dijitSpinnerButtonContainer { + width: 1em; + position: relative !important; + overflow: hidden; +} +.dijitSpinner .dijitSpinnerButtonInner { + width:1em; + visibility:hidden !important; + overflow-x:hidden; +} +.dijitComboBox .dijitButtonNode, +.dijitSpinnerButtonContainer .dijitButtonNode { + border-width: 0; +} +.dijit_a11y .dijitSpinnerButtonContainer .dijitButtonNode { + border: 0 none !important; +} +.dijit_a11y .dijitTextBox .dijitSpinnerButtonContainer, +.dijit_a11y .dijitSpinner .dijitArrowButtonInner, +.dijit_a11y .dijitSpinnerButtonContainer INPUT { + width: 1em !important; +} +.dijit_a11y .dijitSpinner .dijitArrowButtonInner { + margin: 0 auto !important; +} +.dj_ie .dijit_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { + padding-left: 0.3em !important; + padding-right: 0.3em !important; + margin-left: 0.3em !important; + margin-right: 0.3em !important; + width: 1.4em !important; +} +.dj_ie7 .dijit_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { + padding-left: 0.0em !important; + padding-right: 0.0em !important; + width: 1em !important; +} +.dj_ie6 .dijit_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { + margin-left: 0.1em !important; + margin-right: 0.1em !important; + width: 1em !important; +} +.dj_iequirks .dijit_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { + margin-left: 0 !important; + margin-right: 0 !important; + width: 2em !important; +} +.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { + + padding: 0; + position: absolute !important; + right: 0; + float: none; + height: 50%; + width: 100%; + bottom: auto; + left: 0; + right: auto; +} +.dj_iequirks .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { + width: auto; +} +.dijit_a11y .dijitSpinnerButtonContainer .dijitArrowButton { + overflow: visible !important; +} +.dijitSpinner .dijitSpinnerButtonContainer .dijitDownArrowButton { + top: 50%; + border-top-width: 1px !important; +} +.dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton { + #bottom: 50%; + top: 0; +} +.dijitSpinner .dijitArrowButtonInner { + margin: auto; + overflow-x: hidden; + height: 100% !important; +} +.dj_iequirks .dijitSpinner .dijitArrowButtonInner { + height: auto !important; +} +.dijitSpinner .dijitArrowButtonInner .dijitInputField { + -moz-transform: scale(0.5); + -moz-transform-origin: center top; + -webkit-transform: scale(0.5); + -webkit-transform-origin: center top; + -o-transform: scale(0.5); + -o-transform-origin: center top; + transform: scale(0.5); + transform-origin: left top; + padding-top: 0; + padding-bottom: 0; + padding-left: 0 !important; + padding-right: 0 !important; + width: 100%; +} +.dj_ie .dijitSpinner .dijitArrowButtonInner .dijitInputField { + zoom: 50%; +} +.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButtonInner { + overflow: hidden; +} +.dijit_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { + width: 100%; +} +.dj_iequirks .dijit_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { + width: 1em; +} +.dijitSpinner .dijitArrowButtonInner .dijitInputField { + visibility: hidden; +} +.dijit_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { + vertical-align:top; + visibility: visible; +} +.dijit_a11y .dijitSpinnerButtonContainer { + width: 1em; +} +.dijit_a11y .dijitSpinnerButtonContainer .dijitButtonNode { + border-width: 1px 0px 0px 0px; + border-style: solid !important; +} +.dijitCheckBox, +.dijitRadio, +.dijitCheckBoxInput { + padding: 0; + border: 0; + width: 16px; + height: 16px; + background-position:center center; + background-repeat:no-repeat; + overflow: hidden; +} +.dijitCheckBox INPUT, +.dijitRadio INPUT { + margin: 0; + padding: 0; + display: block; +} +.dijitCheckBoxInput { + + opacity: 0.01; +} +.dj_ie .dijitCheckBoxInput { + filter: alpha(opacity=0); +} +.dijit_a11y .dijitCheckBox, +.dijit_a11y .dijitRadio { + + width: auto !important; + height: auto !important; +} +.dijit_a11y .dijitCheckBoxInput { + opacity: 1; + filter: none; + width: auto; + height: auto; +} +.dijitProgressBarEmpty { + + position:relative;overflow:hidden; + border:1px solid black; + z-index:0; +} +.dijitProgressBarFull { + + position:absolute; + overflow:hidden; + z-index:-1; + top:0; + width:100%; +} +.dj_ie6 .dijitProgressBarFull { + height:1.6em; +} +.dijitProgressBarTile { + + position:absolute; + overflow:hidden; + top:0; + left:0; + bottom:0; + right:0; + margin:0; + padding:0; + width:auto; + height:auto; + background-color:#aaa; + background-attachment: fixed; +} +.dijit_a11y .dijitProgressBarTile { + + border-width:2px; + border-style:solid; + background-color:transparent !important; +} +.dj_ie6 .dijitProgressBarTile { + + position:static; + + height:1.6em; +} +.dijitProgressBarIndeterminate .dijitProgressBarLabel { + visibility:hidden; +} +.dijitProgressBarIndeterminate .dijitProgressBarTile { + +} +.dijitProgressBarIndeterminateHighContrastImage { + display:none; +} +.dijit_a11y .dijitProgressBarIndeterminate .dijitProgressBarIndeterminateHighContrastImage { + display:block; + position:absolute; + top:0; + bottom:0; + margin:0; + padding:0; + width:100%; + height:auto; +} +.dijitProgressBarLabel { + display:block; + position:static; + width:100%; + text-align:center; + background-color:transparent !important; +} +.dijitTooltip { + position: absolute; + z-index: 2000; + display: block; + + left: 50%; + top: -10000px; + overflow: visible; +} +.dijitTooltipContainer { + border: solid black 2px; + background: #b8b5b5; + color: black; + font-size: small; +} +.dijitTooltipFocusNode { + padding: 2px 2px 2px 2px; +} +.dijitTooltipConnector { + position: absolute; +} +.dijit_a11y .dijitTooltipConnector { + display: none; +} +.dijitTooltipData { + display:none; +} +.dijitLayoutContainer { + position: relative; + display: block; + overflow: hidden; +} +body .dijitAlignTop, +body .dijitAlignBottom, +body .dijitAlignLeft, +body .dijitAlignRight { + position: absolute; + overflow: hidden; +} +body .dijitAlignClient { position: absolute; } +.dijitBorderContainer, .dijitBorderContainerNoGutter { + position:relative; + overflow: hidden; +} +.dijitBorderContainerPane, +.dijitBorderContainerNoGutterPane { + position: absolute !important; + z-index: 2; +} +.dijitBorderContainer > .dijitTextArea { + + resize: none; +} +.dijitGutter { + + position: absolute; + font-size: 1px; +} +.dijitSplitter { + position: absolute; + overflow: hidden; + z-index: 10; + background-color: #fff; + border-color: gray; + border-style: solid; + border-width: 0; +} +.dj_ie .dijitSplitter { + z-index: 1; +} +.dijitSplitterActive { + z-index: 11 !important; +} +.dijitSplitterCover { + position:absolute; + z-index:-1; + top:0; + left:0; + width:100%; + height:100%; +} +.dijitSplitterCoverActive { + z-index:3 !important; +} +.dj_ie .dijitSplitterCover { + background: white; + filter: alpha(opacity=0); +} +.dijitSplitterH { + height: 7px; + border-top:1px; + border-bottom:1px; + cursor: ns-resize; +} +.dijitSplitterV { + width: 7px; + border-left:1px; + border-right:1px; + cursor: ew-resize; +} +.dijitSplitContainer { + position: relative; + overflow: hidden; + display: block; +} +.dj_ff3 .dijit_a11y div.dijitSplitter:focus { + outline-style:dotted; + outline-width: 2px; +} +.dijitSplitPane { + position: absolute; +} +.dijitSplitContainerSizerH, +.dijitSplitContainerSizerV { + position:absolute; + font-size: 1px; + cursor: move; + cursor: w-resize; + background-color: ThreeDFace; + border: 1px solid; + border-color: ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight; + margin: 0; +} +.dijitSplitContainerSizerH .thumb, .dijitSplitterV .dijitSplitterThumb { + overflow:hidden; + position:absolute; + top:49%; +} +.dijitSplitContainerSizerV .thumb, .dijitSplitterH .dijitSplitterThumb { + position:absolute; + left:49%; +} +.dijitSplitterShadow, +.dijitSplitContainerVirtualSizerH, +.dijitSplitContainerVirtualSizerV { + font-size: 1px; + background-color: ThreeDShadow; + -moz-opacity: 0.5; + opacity: 0.5; + filter: Alpha(Opacity=50); + margin: 0; +} +.dj_ie .dijitSplitterV, .dijitSplitContainerVirtualSizerH { + cursor: w-resize; +} +.dj_ie .dijitSplitterH, .dijitSplitContainerSizerV, .dijitSplitContainerVirtualSizerV { + cursor: n-resize; +} +.dijit_a11y .dijitSplitterH { + border-top:1px solid #d3d3d3 !important; + border-bottom:1px solid #d3d3d3 !important; +} +.dijit_a11y .dijitSplitterV { + border-left:1px solid #d3d3d3 !important; + border-right:1px solid #d3d3d3 !important; +} +.dijitContentPane { + display: block; + overflow: auto; +} +.dijitContentPaneSingleChild { + + overflow: hidden; +} +.dijitTitlePane { + display: block; + overflow: hidden; +} +.dijitTitlePaneTitle { + cursor: pointer; +} +.dijitFixedOpen { + + cursor: default; +} +.dijitTitlePaneTitle * { + vertical-align: middle; +} +.dijitTitlePane .dijitArrowNodeInner { + + display: none; +} +.dijit_a11y .dijitTitlePane .dijitArrowNodeInner { + + display:inline !important; + font-family: monospace; +} +.dijit_a11y .dijitTitlePane .dijitArrowNode { + + display:none; +} +.dj_ie6 .dijitTitlePaneContentOuter, +.dj_ie6 .dijitTitlePane .dijitTitlePaneTitle { + + zoom: 1; +} +.dijitColorPalette { + border: 1px solid #999; + background: #fff; + position: relative; +} +img.dijitColorPaletteUnder { + + border-style: none; + position: absolute; + left: 0; + top: 0; +} +.dijitColorPalette .dijitPaletteTable { + + padding: 2px 3px 3px 3px; + position: relative; + overflow: hidden; + outline: 0; + border-collapse: separate; +} +.dj_ie6 .dijitColorPalette .dijitPaletteTable, +.dj_ie7 .dijitColorPalette .dijitPaletteTable, +.dj_iequirks .dijitColorPalette .dijitPaletteTable { + + padding: 0; + margin: 2px 3px 3px 3px; +} +.dijitColorPalette .dijitPaletteCell { + + height: 20px; + width: 20px; + font-size: 1px; + vertical-align: middle; + text-align: center; +} +.dijitColorPalette .dijitPaletteImg { + + width: 16px; + height: 14px; + border: 1px solid #999; + cursor: default; + vertical-align: middle; +} +.dj_iequirks .dijitColorPalette .dijitPaletteImg { + margin: 1px; +} +.dijitPaletteTable td { + padding: 0px; +} +.dijitColorPalette .dijitPaletteCellHover .dijitPaletteImg { + + border: 1px solid #000; +} +.dijitColorPalette .dijitPaletteCellActive .dijitPaletteImg, +.dijitColorPalette .dijitPaletteCellSelected .dijitPaletteImg { + border: 2px solid #000; +} +.dijit_a11y .dijitColorPalette .dijitPaletteTable, +.dijit_a11y .dijitColorPalette .dijitPaletteTable * { + + background-color: transparent !important; +} +.dj_gecko .dijit_a11y .dijitColorPalette .dijitPaletteCellFocused .dijitPaletteImg { + border: 3px dotted #000; + margin: -1px; +} +.dijit_a11y .dijitColorPalette .dijitPaletteCellHover .dijitPaletteImg { + border: 2px solid #000 !important; +} +.dijitAccordionContainer { + border:1px solid #b7b7b7; + border-top:0 !important; +} +.dijitAccordionTitle { + cursor: pointer; +} +.dijitAccordionTitleSelected { + cursor: default; +} +.dijitAccordionTitle .arrowTextUp, +.dijitAccordionTitle .arrowTextDown { + display: none; + font-size: 0.65em; + font-weight: normal !important; +} +.dijit_a11y .dijitAccordionTitle .arrowTextUp, +.dijit_a11y .dijitAccordionTitleSelected .arrowTextDown { + display: inline; +} +.dijit_a11y .dijitAccordionTitleSelected .arrowTextUp { + display: none; +} +.dj_ie6 .dijitAccordionTitle, +.dj_iequirks .dijitAccordionTitle { + + zoom: 1; +} +.dijitCalendarContainer { + width: auto; +} +.dijitCalendarContainer th, .dijitCalendarContainer td { + padding: 0; +} +.dijitCalendarNextYear { + margin:0 0 0 0.55em; +} +.dijitCalendarPreviousYear { + margin:0 0.55em 0 0; +} +.dijitCalendarIncrementControl { + vertical-align: middle; +} +.dijitCalendarIncrementControl, +.dijitCalendarDateTemplate, +.dijitCalendarMonthLabel, +.dijitCalendarPreviousYear, +.dijitCalendarNextYear { + cursor: pointer; +} +.dijitCalendarDisabledDate { + color: gray; + text-decoration: line-through; + cursor: default; +} +.dijitSpacer { + + position: relative; + height: 1px; + overflow: hidden; + visibility: hidden; +} +.dijitMenu { + border:1px solid black; + background-color:white; +} +.dijitMenuTable { + border-collapse:collapse; + border-width:0; + background-color:white; +} +.dj_webkit .dijitMenuTable td[colspan="2"]{ + border-right:hidden; +} +.dijitMenuItem { + text-align: left; + white-space: nowrap; + padding:.1em .2em; + cursor:pointer; +} +.dijitMenuPassive .dijitMenuItemHover, +.dijitMenuItemSelected { + + background-color:black; + color:white; +} +.dijitMenuItemIcon, .dijitMenuExpand { + background-repeat: no-repeat; +} +.dijitMenuItemDisabled * { + + opacity:0.5; + cursor:default; +} +.dj_ie .dijit_a11y .dijitMenuItemDisabled, +.dj_ie .dijit_a11y .dijitMenuItemDisabled td, +.dj_ie .dijitMenuItemDisabled *, +.dj_ie .dijitMenuItemDisabled td { + color:gray !important; + filter: alpha(opacity=35); +} +.dijitMenuItemLabel { + position: relative; + vertical-align: middle; +} +.dijit_a11y .dijitMenuItemSelected { + border: 1px dotted black !important; +} +.dj_ff3 .dijit_a11y .dijitMenuItem td { + padding: none !important; + background:none !important; +} +.dijit_a11y .dijitMenuItemSelected .dijitMenuItemLabel { + border-width: 1px; + border-style: solid; +} +.dj_ie8 .dijit_a11y .dijitMenuItemLabel { + position:static; +} +.dijitMenuExpandA11y { + display: none; +} +.dijit_a11y .dijitMenuExpandA11y { + display: inline; +} +.dijitMenuSeparator td { + border: 0; + padding: 0; +} +.dijitMenuSeparatorTop { + height: 50%; + margin: 0; + margin-top:3px; + font-size: 1px; +} +.dijitMenuSeparatorBottom { + height: 50%; + margin: 0; + margin-bottom:3px; + font-size: 1px; +} +.dijitCheckedMenuItemIconChar { + vertical-align: middle; + visibility:hidden; +} +.dijitCheckedMenuItemChecked .dijitCheckedMenuItemIconChar { + visibility: visible; +} +.dijit_a11y .dijitCheckedMenuItemIconChar { + display:inline !important; +} +.dijit_a11y .dijitCheckedMenuItemIcon { + display: none; +} +.dj_ie .dijit_a11y .dijitMenuBar .dijitMenuItem { + + margin: 0px; +} +.dijitStackController .dijitToggleButtonChecked * { + cursor: default; +} +.dijitTabContainerNoLayout { + width: 100%; +} +.dijitTabContainerBottom-tabs, +.dijitTabContainerTop-tabs, +.dijitTabContainerLeft-tabs, +.dijitTabContainerRight-tabs { + overflow: visible !important; +} +.dijitTabContainerBottom-container, +.dijitTabContainerTop-container, +.dijitTabContainerLeft-container, +.dijitTabContainerRight-container { + z-index:0; + overflow: hidden; + border: 1px solid black; +} +.nowrapTabStrip { + width: 50000px; + display: block; + position: relative; +} +.dijitTabListWrapper { + overflow: hidden; +} +.dijit_a11y .tabStripButton img { + + display: none; +} +.dijitTabContainerTop-tabs { + border-bottom: 1px solid black; +} +.dijitTabContainerTop-container { + border-top: 0px; +} +.dijitTabContainerLeft-tabs { + border-right: 1px solid black; + float: left; +} +.dijitTabContainerLeft-container { + border-left: 0px; +} +.dijitTabContainerBottom-tabs { + border-top: 1px solid black; +} +.dijitTabContainerBottom-container { + border-bottom: 0px; +} +.dijitTabContainerRight-tabs { + border-left: 1px solid black; + float: left; +} +.dijitTabContainerRight-container { + border-right: 0px; +} +DIV.dijitTabDisabled, .dj_ie DIV.dijitTabDisabled { + cursor: auto; +} +.dijitTab { + position:relative; + cursor:pointer; + white-space:nowrap; + z-index:3; +} +.dijitTab * { + + vertical-align: middle; +} +.dijitTabChecked { + cursor: default; +} +.dijitTabContainerTop-tabs .dijitTab { + top: 1px; +} +.dijitTabContainerBottom-tabs .dijitTab { + top: -1px; +} +.dijitTabContainerLeft-tabs .dijitTab { + left: 1px; +} +.dijitTabContainerRight-tabs .dijitTab { + left: -1px; +} +.dijitTabContainerTop-tabs .dijitTab, +.dijitTabContainerBottom-tabs .dijitTab { + + display:inline-block; + #zoom: 1; + #display:inline; +} +.dijitTabInnerDiv { + position:relative; +} +.tabStripButton { + z-index: 12; +} +.dijitTabButtonDisabled .tabStripButton { + display: none; +} +.dijitTabCloseButton { + margin-left: 1em; +} +.dijitTabCloseText { + display:none; +} +.dijit_a11y .dijitTabCloseButton { + background-image: none !important; + width: auto !important; + height: auto !important; + border: thin dotted; +} +.dijit_a11y .dijitTabCloseButtonHover { + border:thin solid; +} +.dijit_a11y .dijitTabCloseText { + display: inline; +} +.dijit_a11y .dijitTabChecked { + + border-style:dashed !important; +} +.dijit_a11y .dijitTabInnerDiv { + border-left:none !important; + } +.dijitTabPane, +.dijitStackContainer-child, +.dijitAccordionContainer-child { + + border: none !important; +} +.dijitInlineEditBoxDisplayMode { + border: 1px solid transparent; + cursor: text; +} +.dijit_a11y .dijitInlineEditBoxDisplayMode, +.dj_ie6 .dijitInlineEditBoxDisplayMode { + + border: none; +} +.dijitInlineEditBoxDisplayModeHover, +.dijit_a11y .dijitInlineEditBoxDisplayModeHover, +.dj_ie6 .dijitInlineEditBoxDisplayModeHover { + + background-color: #e2ebf2; + border: solid 1px black; +} +.dijitInlineEditBoxDisplayModeDisabled { + cursor: default; +} +.dijitTreeIndent { + + width: 19px; +} +.dijitTreeRow, .dijitTreeContent { + white-space: nowrap; +} +.dijitTreeRow img { + + vertical-align: middle; +} +.dijitTreeContent { + cursor: default; +} +.dijitExpandoText { + display: none; +} +.dijit_a11y .dijitExpandoText { + display: inline; + padding-left: 10px; + padding-right: 10px; + font-family: monospace; + border-style: solid; + border-width: thin; + cursor: pointer; +} +.dijitTreeLabel { + margin: 0px 4px; +} +.dijitDialog { + position: absolute; + z-index: 999; + overflow: hidden; +} +.dijitDialogTitleBar { + cursor: move; +} +.dijitDialogFixed .dijitDialogTitleBar { + cursor:default; +} +.dijitDialogCloseIcon { + cursor: pointer; +} +.dijitDialogUnderlayWrapper { + position: absolute; + left: 0; + top: 0; + z-index: 998; + display: none; + background: transparent !important; +} +.dijitDialogUnderlay { + background: #eee; + opacity: 0.5; +} +.dj_ie .dijitDialogUnderlay { + filter: alpha(opacity=50); +} +.dijit_a11y .dijitSpinnerButtonContainer, +.dijit_a11y .dijitDialog { + opacity: 1 !important; + background-color: white !important; +} +.dijitDialog .closeText { + display:none; + + position:absolute; +} +.dijit_a11y .dijitDialog .closeText { + display:inline; +} +.dijitSliderMoveable { + z-index:99; + position:absolute !important; + display:block; + vertical-align:middle; +} +.dijitSliderMoveableH { + right:0; +} +.dijitSliderMoveableV { + right:50%; +} +.dijit_a11y DIV.dijitSliderImageHandle, +.dijitSliderImageHandle { + margin:0; + padding:0; + position:relative !important; + border:8px solid gray; + width:0; + height:0; + cursor: pointer; +} +.dj_iequirks .dijit_a11y .dijitSliderImageHandle { + font-size: 0; +} +.dj_ie7 .dijitSliderImageHandle { + overflow: hidden; +} +.dj_ie7 .dijit_a11y .dijitSliderImageHandle { + overflow: visible; +} +.dijit_a11y .dijitSliderFocused .dijitSliderImageHandle { + border:4px solid #000; + height:8px; + width:8px; +} +.dijitSliderImageHandleV { + top:-8px; + right: -50%; +} +.dijitSliderImageHandleH { + left:50%; + top:-5px; + vertical-align:top; +} +.dijitSliderBar { + border-style:solid; + border-color:black; + cursor: pointer; +} +.dijitSliderBarContainerV { + position:relative; + height:100%; + z-index:1; +} +.dijitSliderBarContainerH { + position:relative; + z-index:1; +} +.dijitSliderBarH { + height:4px; + border-width:1px 0; +} +.dijitSliderBarV { + width:4px; + border-width:0 1px; +} +.dijitSliderProgressBar { + background-color:red; + z-index:1; +} +.dijitSliderProgressBarV { + position:static !important; + height:0%; + vertical-align:top; + text-align:left; +} +.dijitSliderProgressBarH { + position:absolute !important; + width:0%; + vertical-align:middle; + overflow:visible; +} +.dijitSliderRemainingBar { + overflow:hidden; + background-color:transparent; + z-index:1; +} +.dijitSliderRemainingBarV { + height:100%; + text-align:left; +} +.dijitSliderRemainingBarH { + width:100% !important; +} +.dijitSliderBumper { + overflow:hidden; + z-index:1; +} +.dijitSliderBumperV { + width:4px; + height:8px; + border-width:0 1px; +} +.dijitSliderBumperH { + width:8px; + height:4px; + border-width:1px 0; +} +.dijitSliderBottomBumper, +.dijitSliderLeftBumper { + background-color:red; +} +.dijitSliderTopBumper, +.dijitSliderRightBumper { + background-color:transparent; +} +.dijitSliderDecoration { + text-align:center; +} +.dijitSliderV TD { + position: relative; +} +.dijitSliderDecorationH { + width: 100%; +} +.dijitSliderDecorationV { + height: 100%; +} +.dijitSliderButton { + font-family:monospace; + margin:0; + padding:0; + display:block; +} +.dijit_a11y .dijitSliderButtonInner { + visibility:visible !important; +} +.dijitSliderButtonContainer { + text-align:center; + height:0; +} +.dijitSliderButtonContainer * { + cursor: pointer; +} +.dijitSlider .dijitButtonNode { + padding:0; + display:block; +} +.dijitRuleContainer { + position:relative; + overflow:visible; +} +.dijitRuleContainerV { + height:100%; + line-height:0; + float:left; + text-align:left; +} +.dj_opera .dijitRuleContainerV { + line-height:2%; +} +.dj_ie .dijitRuleContainerV { + line-height:normal; +} +.dj_gecko .dijitRuleContainerV { + margin:0 0 1px 0; +} +.dijitRuleMark { + position:absolute; + border:1px solid black; + line-height:0; + height:100%; +} +.dijitRuleMarkH { + width:0; + border-top-width:0 !important; + border-bottom-width:0 !important; + border-left-width:0 !important; +} +.dijitRuleLabelContainer { + position:absolute; +} +.dijitRuleLabelContainerH { + text-align:center; + display:inline-block; +} +.dijitRuleLabelH { + position:relative; + left:-50%; +} +.dijitRuleLabelV { + + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} +.dijitRuleMarkV { + height:0; + border-right-width:0 !important; + border-bottom-width:0 !important; + border-left-width:0 !important; + width:100%; + left:0; +} +.dj_ie .dijitRuleLabelContainerV { + margin-top:-.55em; +} +.dijit_a11y .dijitSliderReadOnly, +.dijit_a11y .dijitSliderDisabled { + opacity:0.6; +} +.dj_ie .dijit_a11y .dijitSliderReadOnly .dijitSliderBar, +.dj_ie .dijit_a11y .dijitSliderDisabled .dijitSliderBar { + filter: alpha(opacity=40); +} +.dijit_a11y .dijitSlider .dijitSliderButtonContainer DIV { + font-family: monospace; + font-size: 1em; + line-height: 1em; + height: auto; + width: auto; + margin: 0px 4px; +} +.dijit_a11y .dijitButtonContents .dijitButtonText, +.dijit_a11y .dijitTab .tabLabel { + display: inline !important; +} +.dijitTextArea { + width:100%; + overflow-y: auto; +} +.dijitTextArea[cols] { + width:auto; +} +.dj_ie .dijitTextAreaCols { + width:auto; +} +.dijitToolbarSeparator { + height: 18px; + width: 5px; + padding: 0 1px; + margin: 0; +} +.dijitIEFixedToolbar { + position:absolute; + + top: expression(eval((document.documentElement||document.body).scrollTop)); +} +.dijitEditor { + display: block; +} +.dijitEditorDisabled, +.dijitEditorReadOnly { + color: gray; +} +.dijitTimePickerItemInner { + text-align:center; + border:0; + padding:2px 8px 2px 8px; +} +.dijitTimePickerTick, +.dijitTimePickerMarker { + border-bottom:1px solid gray; +} +.dijitTimePicker .dijitDownArrowButton { + border-top: none !important; +} +.dijitTimePickerTick { + color:#CCC; +} +.dijitTimePickerMarker { + color:black; + background-color:#CCC; +} +.dijitTimePickerItemSelected { + font-weight:bold; + color:#333; + background-color:#b7cdee; +} +.dijitTimePickerItemHover { + background-color:gray; + color:white; + cursor:pointer; +} +.dijit_a11y .dijitTimePickerItemSelected .dijitTimePickerItemInner { + border: solid 4px black; +} +.dijit_a11y .dijitTimePickerItemHover .dijitTimePickerItemInner { + border: dashed 4px black; +} +.dijitToggleButtonIconChar { + + display:none !important; +} +.dijit_a11y .dijitToggleButton .dijitToggleButtonIconChar { + display:inline !important; + visibility:hidden; +} +.dj_ie6 .dijitToggleButtonIconChar, .dj_ie6 .tabStripButton .dijitButtonText { + font-family: "Arial Unicode MS"; +} +.dijit_a11y .dijitToggleButtonChecked .dijitToggleButtonIconChar { + display: inline !important; + visibility:visible !important; +} +.dijitArrowButtonChar { + display:none !important; +} +.dijit_a11y .dijitArrowButtonChar { + display:inline !important; +} +.dijit_a11y .dijitDropDownButton .dijitArrowButtonInner, +.dijit_a11y .dijitComboButton .dijitArrowButtonInner { + display:none !important; +} +.dijitSelect { + margin: 0.2em; + border-collapse: collapse; +} +.dj_ie .dijitSelect, +.dj_ie7 .dijitSelect, +.dj_iequirks .dijitSelect { + vertical-align: middle; +} +.dj_ie8 .dijitSelect .dijitButtonText { + vertical-align: top; +} +.dijitToolbar .dijitSelect { + margin: 0; +} +.dj_webkit .dijitToolbar .dijitSelect { + padding-left: 0.3em; +} +.dijit_a11y .dijitSelectDisabled .dijitButtonNode { + border-style: outset!important; + border-width: medium!important; + border-color: #999 !important; + color:#999 !important; +} +.dijitSelect .dijitButtonContents { + padding: 0px; + background: transparent none; + white-space: nowrap; + text-align: left; +} +.dijitSelectFixedWidth .dijitButtonContents { + width: 100%; +} +.dijitSelectMenu .dijitMenuItemIcon { + + display:none; +} +.dj_ie6 .dijitSelectMenu .dijitMenuItemLabel, +.dj_ie7 .dijitSelectMenu .dijitMenuItemLabel { + + position: static; +} +.dijitSelectLabel * +{ + vertical-align: baseline; +} +.dijitSelectSelectedOption * { + font-weight: bold; +} +.dijitSelectMenu { + border-width: 1px; +} +.dijitSelectMenu .dijitMenuTable { + margin: 0px; + background-color: transparent; +} +.dijitForceStatic { + position: static !important; +} +.dijitReadOnly *, +.dijitDisabled *, +.dijitReadOnly, +.dijitDisabled { + + cursor: default; +} diff --git a/lib/dijit/themes/dijit_rtl.css b/lib/dijit/themes/dijit_rtl.css new file mode 100644 index 000000000..d1dc4fe15 --- /dev/null +++ b/lib/dijit/themes/dijit_rtl.css @@ -0,0 +1,88 @@ +.dijitRtl .dijitPlaceHolder { + left: auto; + right: 0; +} +.dijitMenuItemRtl { + text-align: right; +} +.dj_iequirks .dijitComboButtonRtl BUTTON { + + float:left; +} +.dijit_a11y .dijitTextBoxRtl .dijitValidationContainer, +.dijitTextBoxRtl .dijitSpinnerButtonContainer, +.dijitComboBoxRtl .dijitArrowButtonContainer { + + border-right-width: 1px !important; + border-right-style: solid !important; + border-left-width: 0px !important; + border-left-style: none !important; +} +.dijit_a11y .dijitTextBoxRtl .dijitValidationContainer, +.dijit_a11y .dijitTextBoxRtl .dijitSpinnerButtonContainer, +.dijit_a11y .dijitComboBoxRtl .dijitArrowButtonContainer { + border-right: 1px solid black !important; + border-left: 0px none black !important; +} +.dijitSpinnerRtl .dijitSpinnerButtonContainer .dijitArrowButton { + right: 0; + left: auto; +} +.dijitTextBoxRtl .dijitSpinnerButtonContainer, +.dijitTextBoxRtl .dijitValidationContainer, +.dijitTextBoxRtl .dijitArrowButtonContainer { + float: left; +} +.dijitCalendarRtl .dijitCalendarNextYear { + margin:0 0.55em 0 0; +} +.dijitCalendarRtl .dijitCalendarPreviousYear { + margin:0 0 0 0.55em; +} +.dijitSliderRtl .dijitSliderImageHandleV { + left:auto; +} +.dijitSliderRtl .dijitSliderImageHandleH { + left:-50%; +} +.dijitSliderRtl .dijitSliderMoveableH { + right:auto; + left:0; +} +.dijitSliderRtl .dijitRuleContainerV { + float:right; +} +.dj_ie .dijitSliderRtl .dijitRuleContainerV { + text-align:right; +} +.dj_ie .dijitSliderRtl .dijitRuleLabelV { + text-align:left; +} +.dj_ie .dijitSliderRtl .dijitRuleLabelH { + zoom:1; +} +.dijitSliderRtl .dijitSliderProgressBarH { + + float:right; + right:0; + left:auto; +} +.dijitRtl .dijitContentPaneLoading, .dijitRtl .dijitContentPaneError { + background-position:right; + padding-right:25px; +} +.dijitTabRtl .dijitTabCloseButton { + margin-left: 0px; + margin-right: 1em; +} +.dj_ie .dijitTimePickerRtl .dijitTimePickerItem { + width:100%; +} +.dijitColorPaletteRtl .dijitColorPaletteUnder { + + left: auto; + right: 0; +} +.dijitSelectRtl .dijitButtonContents { + text-align: right; +} diff --git a/lib/dijit/themes/nihilo/Calendar.css b/lib/dijit/themes/nihilo/Calendar.css new file mode 100644 index 000000000..a193f8ddf --- /dev/null +++ b/lib/dijit/themes/nihilo/Calendar.css @@ -0,0 +1,117 @@ + +.nihilo .dijitCalendarIncrementControl { + + width:15px; + height:15px; + background-image: url("images/spriteRoundedIconsSmall.png"); + background-repeat: no-repeat +} +.dj_ie6 .nihilo .dijitCalendarIncrementControl { + font-size:.1em; + background-image: url("images/spriteRoundedIconsSmall.gif"); +} +.nihilo .dijitA11ySideArrow { + display: none; +} +.nihilo .dijitCalendarDecrease { + background-position: top left; +} +.nihilo .dijitCalendarIncrease { + background-position: -30px top; +} +.nihilo table.dijitCalendarContainer { + font-size: 100%; + border-spacing: 0; + border-collapse: separate; + border: 1px solid #ccc; + margin: 0; +} +.nihilo .dijitCalendarMonthContainer th { + + background:#d3d3d3 url("images/titleBar.png") repeat-x top; + padding-top:.3em; + padding-bottom:.2em; + text-align:center; +} +.dj_ie6 .nihilo .dijitCalendarMonthContainer th { + padding-top:.2em; + padding-bottom:.1em; +} +.nihilo .dijitCalendarDayLabelTemplate { + + background:#fefefe; + font-weight:normal; + padding-top:.15em; + padding-bottom:.2em; + border-bottom: 1px solid #eeeeee; + color:#293a4b; + text-align:center; +} +.nihilo .dijitCalendarBodyContainer { + border-bottom: 1px solid #eeeeee; +} +.nihilo .dijitCalendarMonthLabel { + color:#293a4b; + font-weight: bold; +} +.nihilo .dijitCalendarDateTemplate { + + font-size: 0.9em; + font-weight: bold; + text-align: center; + padding: 0.3em 0.3em 0.05em 0.3em; + letter-spacing: 1px; + background-color: #fdfdfd; + border:#fdfdfd solid 1px !important; +} +.dj_ie .nihilo .dijitCalendarDateTemplate { + padding: 0.1em .33em 0.02em .33em; +} +.nihilo .dijitCalendarPreviousMonth, +.nihilo .dijitCalendarNextMonth { + + color:#999999; + background-color:#f5f5f5 !important; + border:#f5f5f5 solid 1px !important; +} +.nihilo .dijitCalendarCurrentMonth { + +} +.nihilo .dijitCalendarDisabledDate { + text-decoration:line-through !important; +} +.nihilo .dijitCalendarCurrentDate { + + text-decoration:underline; + font-weight:bold; +} +.nihilo .dijitCalendarSelectedDate { + + background-color:#ffe284 !important; + color:black !important; + border:#f7c95c solid 1px !important; +} +.nihilo .dijitCalendarYearContainer { + + background:white url("images/titleBar.png") repeat-x top; +} +.nihilo .dijitCalendarYearLabel { + + margin:0; + padding:0.4em 0 0.25em 0; + text-align:center; +} +.nihilo .dijitCalendarSelectedYear { + + color:black; + padding:0.2em; + padding-bottom:0.1em; + background-color:#ffe284 !important; + border:#f7c95c solid 1px !important; +} +.nihilo .dijitCalendarNextYear, +.nihilo .dijitCalendarPreviousYear { + + color:black !important; + font-weight:normal; +} diff --git a/lib/dijit/themes/nihilo/Calendar_rtl.css b/lib/dijit/themes/nihilo/Calendar_rtl.css new file mode 100644 index 000000000..245d93fef --- /dev/null +++ b/lib/dijit/themes/nihilo/Calendar_rtl.css @@ -0,0 +1,7 @@ + +.dijitRtl .nihilo .dijitCalendarDecrease { + background-position: -30px top; +} +.dijitRtl .nihilo .dijitCalendarIncrease { + background-position: 0px top; +} diff --git a/lib/dijit/themes/nihilo/ColorPalette.css b/lib/dijit/themes/nihilo/ColorPalette.css new file mode 100644 index 000000000..328bc84a4 --- /dev/null +++ b/lib/dijit/themes/nihilo/ColorPalette.css @@ -0,0 +1,5 @@ +.dijitColorPalette { + border:1px solid #d3d3d3; + background:#fff; + -moz-border-radius: 0px !important; +} diff --git a/lib/dijit/themes/nihilo/Common.css b/lib/dijit/themes/nihilo/Common.css new file mode 100644 index 000000000..c894deadf --- /dev/null +++ b/lib/dijit/themes/nihilo/Common.css @@ -0,0 +1,19 @@ + +.nihilo .dojoDndItemBefore { + border-top: 2px solid #369; +} +.nihilo .dojoDndItemAfter { + border-bottom: 2px solid #369; +} +.nihilo .dojoDndItemOver { + cursor:pointer; +} +.nihilo table.dojoDndAvatar { -moz-border-radius: 0; border: 1px solid #ccc; border-collapse: collapse; background-color: #fff; font-size: 75%; color: black;} +.nihilo .dojoDndAvatar td { border: none; } +.nihilo .dojoDndAvatar tr { border: none; } +.nihilo .dojoDndAvatarHeader td { height: 20px; padding: 0 0 0 21px; } +.nihilo .dojoDndAvatarItem td { padding: 2px;} +.nihilo.dojoDndMove .dojoDndAvatarHeader {background-color: #f58383; background-image: url(images/dndNoMove.png); background-repeat: no-repeat; background-position: 2px center;} +.nihilo.dojoDndCopy .dojoDndAvatarHeader {background-color: #f58383; background-image: url(images/dndNoCopy.png); background-repeat: no-repeat; background-position: 2px center;} +.nihilo.dojoDndMove .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-color: #97e68d; background-image: url(images/dndMove.png); background-repeat: no-repeat; background-position: 2px center;} +.nihilo.dojoDndCopy .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-color: #97e68d; background-image: url(images/dndCopy.png); background-repeat: no-repeat; background-position: 2px center;} diff --git a/lib/dijit/themes/nihilo/Dialog.css b/lib/dijit/themes/nihilo/Dialog.css new file mode 100644 index 000000000..1c2ff2e3d --- /dev/null +++ b/lib/dijit/themes/nihilo/Dialog.css @@ -0,0 +1,128 @@ + +.nihilo .dijitDialog { + background: #eee; + border: 1px solid #d3d3d3; + -webkit-box-shadow: 0px 5px 10px #adadad; + padding: 0px; +} +.nihilo .dijitDialog .dijitDialogTitle { + + font-size: 0.9em; + color: #3243C5F; + font-weight: bold; + padding: 0px 4px; +} +.nihilo .dijitDialog .dijitDialogPaneContent { + background: #ffffff; + border-top: 1px solid #d3d3d3; + padding:10px; +} +.nihilo .dijitDialogTitleBar { + + background: #fafafa url("images/titleBar.png") repeat-x top left; + padding: 5px 6px 3px 6px; + outline:0; +} +.nihilo .dijitDialogCloseIcon { + + background-image: url("images/spriteRoundedIconsSmall.png"); + background-repeat: no-repeat; + background-position: -60px 0px; + position: absolute; + vertical-align: middle; + right: 6px; + top: 4px; + height: 15px; + width: 15px; +} +.dj_ie6 .nihilo .dijitDialogCloseIcon { + background-image: url("images/spriteRoundedIconsSmall.gif"); +} +.nihilo .dijitDialogCloseIconHover { + background-position: -60px -15px; +} +.nihilo .dijitTooltip, +.nihilo .dijitTooltipDialog { + + background: transparent; +} +.dijitTooltipBelow { + + padding-top: 10px; +} +.dijitTooltipAbove { + + padding-bottom: 10px; +} +.nihilo .dijitTooltipContainer { + + background-color: #fff; + border:1px solid #d3d3d3; + padding:0.45em; +} +.nihilo .dijitTooltipConnector { + + border:0px; + z-index: 2; +} +.nihilo .dijitTooltipABRight .dijitTooltipConnector { + + left: auto !important; + right: 6px; +} +.nihilo .dijitTooltipBelow .dijitTooltipConnector { + + top: 0px; + left: 6px; + background:url("images/tooltipConnectorUp.png") no-repeat top left; + width:17px; + height:11px; +} +.dj_ie .nihilo .dijitTooltipBelow .dijitTooltipConnector { + background-image: url("images/tooltipConnectorUp.gif"); +} +.nihilo .dijitTooltipAbove .dijitTooltipConnector { + + bottom: 0px; + left: 6px; + background:url("images/tooltipConnectorDown.png") no-repeat top left; + width:17px; + height:11px; +} +.dj_ie .nihilo .dijitTooltipAbove .dijitTooltipConnector { + background-image: url("images/tooltipConnectorDown.gif"); +} +.dj_ie6 .nihilo .dijitTooltipAbove .dijitTooltipConnector { + bottom: -5px; +} +.nihilo .dijitTooltipLeft { + padding-right: 10px; +} +.dj_ie6 .nihilo .dijitTooltipLeft { + padding-left: 11px; +} +.nihilo .dijitTooltipLeft .dijitTooltipConnector { + + right: 0px; + bottom: 3px; + background:url("images/tooltipConnectorRight.png") no-repeat top left; + width:11px; + height:17px; +} +.dj_ie .nihilo .dijitTooltipLeft .dijitTooltipConnector { + background-image: url("images/tooltipConnectorRight.gif"); +} +.nihilo .dijitTooltipRight { + padding-left: 10px; +} +.nihilo .dijitTooltipRight .dijitTooltipConnector { + + left: 0px; + bottom: 3px; + background:url("images/tooltipConnectorLeft.png") no-repeat top left; + width:11px; + height:17px; +} +.dj_ie .nihilo .dijitTooltipRight .dijitTooltipConnector { + background-image: url("images/tooltipConnectorLeft.gif"); +} diff --git a/lib/dijit/themes/nihilo/Dialog_rtl.css b/lib/dijit/themes/nihilo/Dialog_rtl.css new file mode 100644 index 000000000..105d5040c --- /dev/null +++ b/lib/dijit/themes/nihilo/Dialog_rtl.css @@ -0,0 +1,5 @@ + +.dijitRtl .nihilo .dijitDialogTitleBar .dijitDialogCloseIcon { + right: auto; + left: 5px; +} diff --git a/lib/dijit/themes/nihilo/Editor.css b/lib/dijit/themes/nihilo/Editor.css new file mode 100644 index 000000000..77280d9af --- /dev/null +++ b/lib/dijit/themes/nihilo/Editor.css @@ -0,0 +1,13 @@ +.nihilo .dijitToolbar .dijitToolbarSeparator { + background: url('../../icons/images/editorIconsEnabled.png'); +} +.nihilo .dijitEditorIcon { + background-image: url('../../icons/images/editorIconsEnabled.png'); + background-repeat: no-repeat; + width: 18px; + height: 18px; + text-align: center; +} +.nihilo .dijitDisabled .dijitEditorIcon { + background-image: url('../../icons/images/editorIconsDisabled.png'); +} diff --git a/lib/dijit/themes/nihilo/Editor_rtl.css b/lib/dijit/themes/nihilo/Editor_rtl.css new file mode 100644 index 000000000..37849a5bd --- /dev/null +++ b/lib/dijit/themes/nihilo/Editor_rtl.css @@ -0,0 +1,7 @@ + +.dijitRtl .nihilo .dijitEditorIcon { + background-image: url('../../icons/images/editorIconsEnabled_rtl.png'); +} +.dijitRtl .nihilo .dijitDisabled .dijitEditorIcon { + background-image: url('../../icons/images/editorIconsDisabled_rtl.png'); +} diff --git a/lib/dijit/themes/nihilo/Menu.css b/lib/dijit/themes/nihilo/Menu.css new file mode 100644 index 000000000..b530a90b1 --- /dev/null +++ b/lib/dijit/themes/nihilo/Menu.css @@ -0,0 +1,62 @@ + +.nihilo .dijitMenu, +.nihilo .dijitMenuBar { + border: 1px solid #d3d3d3; + margin: 0px; + padding: 0px; + background-color: #fff; +} +.nihilo .dijitBorderContainer .dijitMenuBar { + border: 1px #ccc solid; +} +.nihilo .dijitMenuItem { + font-family: sans-serif; + margin: 0px; + color: #243C5F; +} +.nihilo .dijitMenuBar .dijitMenuItem { + padding: 4px 5px; +} +.nihilo .dijitMenuPreviousButton, .nihilo .dijitMenuNextButton { + font-style: italic; +} +.nihilo .dijitMenuItem TD { + padding:1px; +} +.nihilo .dijitMenuPassive .dijitMenuItemHover, +.nihilo .dijitMenuItemSelected { + background-color: #ffe284; + color: #243C5F; +} +.nihilo .dijitMenuItemIcon { + width: 15px; + height: 15px; +} +.nihilo .dijitMenuExpand { + width:15px; + height:15px; + background-image: url('images/spriteRoundedIconsSmall.png'); + background-position: -30px top; +} +.dj_ie6 .nihilo .dijitMenuExpand { + background-image:url('images/spriteRoundedIconsSmall.gif'); +} +.nihilo .dijitMenuSeparator { + height: 1px; +} +.nihilo .dijitMenuSeparatorTop { + border-bottom: 1px solid #fff; +} +.nihilo .dijitMenuSeparatorBottom { + border-top: 1px solid #d3d3d3; +} +.nihilo .dijitCheckedMenuItemIconChar { + display: none; +} +.nihilo .dijitCheckedMenuItemIcon { + background-image: url('images/spriteCheckbox.gif'); + background-position: -80px; +} +.nihilo .dijitCheckedMenuItemChecked .dijitCheckedMenuItemIcon { + background-position: -64px; +} diff --git a/lib/dijit/themes/nihilo/Menu_rtl.css b/lib/dijit/themes/nihilo/Menu_rtl.css new file mode 100644 index 000000000..06fccbf81 --- /dev/null +++ b/lib/dijit/themes/nihilo/Menu_rtl.css @@ -0,0 +1,8 @@ + +.dijitRtl .nihilo .dijitMenuItem .dijitMenuItemIcon { + padding-left: 3px; + padding-right: 0px; +} +.dijitRtl .nihilo .dijitMenuItem .dijitMenuExpand { + background-position: 0px top; +} diff --git a/lib/dijit/themes/nihilo/ProgressBar.css b/lib/dijit/themes/nihilo/ProgressBar.css new file mode 100644 index 000000000..7713aeb7c --- /dev/null +++ b/lib/dijit/themes/nihilo/ProgressBar.css @@ -0,0 +1,24 @@ + +.nihilo .dijitProgressBar { + margin:2px 0px 2px 0px; +} +.nihilo .dijitProgressBarEmpty{ + + background:#fff url("images/progressBarEmpty.png") repeat-x center center; + border-color: #f8d582 #f8d582 #f8d582 #f8d582; +} +.nihilo .dijitProgressBarTile{ + + background:#f0f0f0 url("images/progressBarFull.png") repeat-x center center; +} +.nihilo .dijitProgressBarFull { + border-right:1px solid #f8d582; +} +.nihilo .dijitProgressBarLabel { + + color:#293a4b; +} +.nihilo .dijitProgressBarIndeterminate .dijitProgressBarTile { + + background:#cad2de url("images/progressBarAnim.gif") repeat-x center center; +} diff --git a/lib/dijit/themes/nihilo/TimePicker.css b/lib/dijit/themes/nihilo/TimePicker.css new file mode 100644 index 000000000..63157f29c --- /dev/null +++ b/lib/dijit/themes/nihilo/TimePicker.css @@ -0,0 +1,42 @@ + +.nihilo .dijitTimePickerTick, +.nihilo .dijitTimePickerMarker { + border-color: #eeeeee; +} +.nihilo .dijitTimePickerTick { + color:white; +} +.nihilo .dijitTimePickerMarker { + background:#d3d3d3 url("images/titleBar.png") repeat-x top; + color:#293a4b; + font-weight: bold; +} +.nihilo .dijitTimePickerItemSelected { + color: black; + background: #ffe284 none; +} +.nihilo .dijitTimePickerItemHover { + background: #d6d6dd none; + color:black; +} +.nihilo .dijitTimePickerItemHover, +.nihilo .dijitTimePickerItemSelected { + position: relative; + z-index: 10; +} +.nihilo .dijitTimePickerTick .dijitTimePickerItemInner { + font-size:0.4em; +} +.nihilo .dijitTimePickerItemHover .dijitTimePickerItemInner, +.nihilo .dijitTimePickerItemSelected .dijitTimePickerItemInner { + font-size:1em; +} +.nihilo .dijitTimePickerMarkerHover { + border-top: 1px solid #eeeeee; +} +.nihilo .dijitTimePickerTickHover, +.nihilo .dijitTimePickerTickSelected { + margin-top:-0.3em; + margin-bottom:-0.3em; + border-bottom: none; +} diff --git a/lib/dijit/themes/nihilo/TimePicker_rtl.css b/lib/dijit/themes/nihilo/TimePicker_rtl.css new file mode 100644 index 000000000..a6c0a68e7 --- /dev/null +++ b/lib/dijit/themes/nihilo/TimePicker_rtl.css @@ -0,0 +1,4 @@ +.dj_ie6-rtl .nihilo .dijitTimePickerMarkerHover, +.dj_ie7-rtl .nihilo .dijitTimePickerMarkerHover { + border-top: 0px; +} diff --git a/lib/dijit/themes/nihilo/TitlePane.css b/lib/dijit/themes/nihilo/TitlePane.css new file mode 100644 index 000000000..58ca8e56c --- /dev/null +++ b/lib/dijit/themes/nihilo/TitlePane.css @@ -0,0 +1,45 @@ + +.nihilo .dijitTitlePaneTitle { + background: #cccccc; + background:#fff url("images/titleBar.png") repeat-x top left; + border:1px solid #bfbfbf; + padding:3px 4px; + font-size: 0.9em; + font-weight: bold; + color: #6d6d6d; +} +.nihilo .dijitTitlePaneTitleHover { + background: #f9f9f9 url("images/accordionItemActive.png") top repeat-x; +} +.nihilo .dijitTitlePane .dijitOpen .dijitArrowNode, +.nihilo .dijitTitlePane .dijitClosed .dijitArrowNode { + width:15px; + height:15px; +} +.nihilo .dijitTitlePaneTextNode { + color: #243C5F; +} +.nihilo .dijitTitlePane .dijitClosed .dijitArrowNode { + background: url('images/spriteRoundedIconsSmall.png') no-repeat -30px top; +} +.dj_ie6 .nihilo .dijitTitlePane .dijitClosed .dijitArrowNode { + background:url('images/spriteRoundedIconsSmall.gif') no-repeat -30px top; +} +.nihilo .dijitTitlePane .dijitOpen .dijitArrowNode { + background:url('images/spriteRoundedIconsSmall.png') no-repeat -15px top; +} +.dj_ie6 .nihilo .dijitTitlePane .dijitOpen .dijitArrowNode { + background:url('images/spriteRoundedIconsSmall.gif') no-repeat -15px top; +} +.nihilo .dijitTitlePaneContentOuter { + background: #ffffff; + border:1px solid #bfbfbf; + border-top: 0px; +} +.nihilo .dijitTitlePaneContentInner { + padding:10px; +} +.nihilo .dijitTitlePaneTextNode { + margin-left: 4px; + margin-right: 4px; +} diff --git a/lib/dijit/themes/nihilo/TitlePane_rtl.css b/lib/dijit/themes/nihilo/TitlePane_rtl.css new file mode 100644 index 000000000..a8aef8334 --- /dev/null +++ b/lib/dijit/themes/nihilo/TitlePane_rtl.css @@ -0,0 +1,6 @@ +.dijitRtl .nihilo .dijitTitlePane .dijitClosed .dijitArrowNode { + background-position: 0px top; +} +.dj_ie6-rtl .nihilo .dijitTitlePane .dijitClosed .dijitArrowNode { + background-position: 0px top; +} diff --git a/lib/dijit/themes/nihilo/Toolbar.css b/lib/dijit/themes/nihilo/Toolbar.css new file mode 100644 index 000000000..aeee9e4ed --- /dev/null +++ b/lib/dijit/themes/nihilo/Toolbar.css @@ -0,0 +1,56 @@ +.nihilo .dijitToolbar { + border-bottom: 1px solid #ccc; + background:#eaeaea url("images/titleBar.png") repeat-x top left; +} +.dj_ie6 .nihilo .dijitToolbar { + height: 10px; +} +.nihilo .dijitToolbar .dijitButtonNode, +.nihilo .dijitToolbar .dijitComboButton .dijitButtonContents, +.nihilo .dijitToolbar .dijitComboButton .dijitDownArrowButton { + background: none; + margin: 0px; + padding: 0px; + border: none; + font-size: 12px; +} +.nihilo .dijitToolbar .dijitButton, +.nihilo .dijitToolbar .dijitToggleButton, +.nihilo .dijitToolbar .dijitDropDownButton, +.nihilo .dijitToolbar .dijitComboButton .dijitButtonContents, +.nihilo .dijitToolbar .dijitComboButton .dijitDownArrowButton { + background: none; + padding: 1px; +} +.nihilo .dijitToolbar .dijitButtonChecked, +.nihilo .dijitToolbar .dijitToggleButtonChecked { + background-color:#ffeeb9; + border:1px solid #f7c95c; + padding: 0; +} +.nihilo .dijitToolbar .dijitButtonCheckedHover, +.nihilo .dijitToolbar .dijitToggleButtonCheckedHover + { + background-color:#ffe284; + border:1px solid #f7c95c; + padding: 0; +} +.nihilo .dijitToolbar .dijitButtonHover, +.nihilo .dijitToolbar .dijitToggleButtonHover, +.nihilo .dijitToolbar .dijitDropDownButtonHover, +.nihilo .dijitToolbar .dijitComboButton .dijitButtonContentsHover, +.nihilo .dijitToolbar .dijitComboButton .dijitDownArrowButtonHover { + + border: 1px solid #f7c95c; + padding: 0; + background-color:#ffe284; +} +.nihilo .dijitToolbar label { + padding: 3px 3px 0 6px; +} +.dj_ie .nihilo .dijitToolbar .dijitComboButton .dijitButtonContentsFocused, +.dj_ie .nihilo .dijitToolbar .dijitComboButton .dijitDownArrowButtonFocused { + + border: 1px #555 dotted !important; + padding: 0px; +} diff --git a/lib/dijit/themes/nihilo/Tree.css b/lib/dijit/themes/nihilo/Tree.css new file mode 100644 index 000000000..b0012be1e --- /dev/null +++ b/lib/dijit/themes/nihilo/Tree.css @@ -0,0 +1,75 @@ + +.nihilo .dijitTreeNode { + background : url('images/treeI.gif') no-repeat; + background-position : top left; + background-repeat : repeat-y; + zoom: 1; +} +.nihilo .dijitTreeIsLast { + background: url('images/treeI_half.gif') no-repeat; +} +.nihilo .dijitTreeRowHover { + + background-image: url(images/treeHover.png); + background-repeat: repeat; + background-color: transparent !important; +} +.nihilo .dijitTreeLabel { + font-weight: normal; + margin-left: 3px; +} +.nihilo .dijitTreeIsRoot { + margin-left: 0; + background-image: none; +} +.nihilo .dijitTreeExpando { + width: 18px; + height: 18px; +} +.nihilo .dijitTreeRow { + + padding-bottom: 2px; +} +.nihilo .dijitTreeContent { + min-height: 18px; + min-width: 18px; + padding-left:1px; +} +.nihilo .dijitTreeExpandoOpened { + background: url('images/spriteTree.gif') no-repeat -18px top; +} +.nihilo .dijitTreeExpandoClosed { + background-image: url('images/spriteTree.gif'); +} +.nihilo .dijitTreeExpandoLeaf { + background: url('images/spriteTree.gif') no-repeat -36px top; +} +.nihilo .dijitTreeExpandoLoading { + background-image: url('images/treeExpand_loading.gif'); +} +.nihilo .dijitTreeIcon { + width: 16px; + height: 16px; +} +.nihilo .dijitFolderOpened { + background: url('images/spriteDivIcons.gif') no-repeat -16px top; +} +.nihilo .dijitFolderClosed { + background: url('images/spriteDivIcons.gif') no-repeat top left; +} +.nihilo .dijitLeaf { + background: url('images/spriteDivIcons.gif') no-repeat -32px top; +} +.nihilo .dijitTreeNode .dojoDndItemBefore, +.nihilo .dijitTreeNode .dojoDndItemAfter { + border-bottom: none; + border-top: none; +} +.nihilo .dijitTreeNode .dojoDndItemBefore .dijitTreeContent { + + border-top: 2px solid #369; +} +.nihilo .dijitTreeNode .dojoDndItemAfter .dijitTreeContent { + + border-bottom: 2px solid #369; +} diff --git a/lib/dijit/themes/nihilo/Tree_rtl.css b/lib/dijit/themes/nihilo/Tree_rtl.css new file mode 100644 index 000000000..6a7a889ba --- /dev/null +++ b/lib/dijit/themes/nihilo/Tree_rtl.css @@ -0,0 +1,18 @@ + +.dijitRtl .nihilo .dijitTreeNode, +.dijitRtl .nihilo .dijitTreeExpandoLeaf { + + background-image: none; +} +.dijitRtl .nihilo .dijitTreeContent { + padding-left: 0px; + padding-right: 1px; +} +.dijitRtl .nihilo .dijitTreeExpandoOpened { + + background: url('images/spriteTree_rtl.gif') no-repeat -18px top; +} +.dijitRtl .nihilo .dijitTreeExpandoClosed { + + background-image: url('images/spriteTree_rtl.gif'); +} diff --git a/lib/dijit/themes/nihilo/form/Button.css b/lib/dijit/themes/nihilo/form/Button.css new file mode 100644 index 000000000..b1ea84e96 --- /dev/null +++ b/lib/dijit/themes/nihilo/form/Button.css @@ -0,0 +1,108 @@ + +.nihilo .dijitButtonNode { + + + border:1px solid #dedede; + border-bottom:1px solid #dedede; + padding: 0.1em 0.2em 0.2em 0.2em; + background: #fff url("../images/buttonEnabled.png") repeat-x top left; +} +.nihilo .dijitSelect .dijitButtonContents { + border-right: none; +} +.nihilo .dijitButtonText { + text-align: center; + padding: 0 0.3em; +} +.nihilo .dijitComboBox .dijitButtonNode { + border-width: 0px 0px 0px 1px; +} +.nihilo .dijitArrowButton { + color: #111; +} +.nihilo .dijitComboButton .dijitDownArrowButton { + padding-right:4px; +} +.nihilo .dijitComboBoxReadOnly, +.nihilo .dijitSpinnerReadOnly, +.nihilo .dijitSpinnerReadOnly .dijitButtonNode, +.nihilo .dijitButtonDisabled .dijitButtonNode, +.nihilo .dijitToggleButtonDisabled .dijitButtonNode, +.nihilo .dijitDropDownButtonDisabled .dijitButtonNode, +.nihilo .dijitComboButtonDisabled .dijitButtonNode, +.nihilo .dijitComboBoxDisabled, +.nihilo .dijitSpinnerDisabled, +.nihilo .dijitSpinnerDisabled .dijitButtonNode { + + border-color: #dedede; + background:#fafafa url("../images/buttonDisabled.png") top repeat-x; + opacity: 0.60; +} +.dj_ie6 .nihilo .dijitReadOnly INPUT, +.dj_ie7 .nihilo .dijitReadOnly INPUT, +.dj_ie6 .nihilo .dijitComboButtonDisabled .dijitButtonText, +.dj_ie7 .nihilo .dijitComboButtonDisabled .dijitButtonText { + + color: #aaa; +} +.nihilo .dijitButtonHover .dijitButtonNode, +.nihilo .dijitButtonNodeHover, +.nihilo .dijitToggleButtonHover .dijitButtonNode, +.nihilo .dijitDropDownButtonHover .dijitButtonNode, +.nihilo .dijitButtonContentsHover, +.nihilo .dijitDownArrowButtonHover, +.nihilo .dijitUpArrowButtonHover { + + + color:#243C5F; + background:#fcfcfc url("../images/buttonHover.png") repeat-x top left; +} +.nihilo .dijitUpArrowButtonActive, +.nihilo .dijitDownArrowButtonActive, +.nihilo .dijitButtonActive .dijitButtonNode, +.nihilo .dijitToggleButtonActive .dijitButtonNode, +.nihilo .dijitDropDownButtonActive .dijitButtonNode, +.nihilo .dijitComboButton .dijitButtonContentsActive, +.nihilo .dijitStackController .dijitToggleButtonChecked .dijitButtonNode { + + border-color:#dedede; + background: #f5f5f5 url("../images/buttonActive.png") top left repeat-x; +} +.nihilo .dijitArrowButtonInner { + background-image: url("../images/spriteArrows.png"); + background-repeat: no-repeat; + background-position: 0px center; + width: 11px; + height: 11px; +} +.nihilo .dijitLeftArrowButton .dijitArrowButtonInner { + background-position: -11px center; +} +.nihilo .dijitUpArrowButton .dijitArrowButtonInner { + background-position: -22px center; +} +.nihilo .dijitRightArrowButton .dijitArrowButtonInner { + background-position: -33px center; +} +.dj_ie6 .nihilo .dijitArrowButtonInner { + background-image: url("../images/spriteArrows.gif"); +} +.dj_webkit .nihilo .dijitSpinner .dijitUpArrowButton .dijitArrowButtonInner { + margin-top: -1px; +} +.dj_ie .nihilo .dijitSpinner .dijitUpArrowButton .dijitArrowButtonInner { + margin-top: 1px; +} +.nihilo .dijitSpinnerButtonContainer { + width: auto; + padding: 0; +} +.nihilo .dijitSpinner .dijitArrowButton { + width: 15px; +} +.nihilo .dijitSpinner .dijitSpinnerButtonInner { + width: 15px; +} +.nihilo .dijitSpinner .dijitArrowButtonInner .dijitInputField { + padding: 0; +} diff --git a/lib/dijit/themes/nihilo/form/Button_rtl.css b/lib/dijit/themes/nihilo/form/Button_rtl.css new file mode 100644 index 000000000..3a7acc04c --- /dev/null +++ b/lib/dijit/themes/nihilo/form/Button_rtl.css @@ -0,0 +1,7 @@ +.dijitRtl .nihilo .dijitComboBox .dijitButtonNode { + border-width: 0px 0px 0px 1px; +} +.dijitRtl .nihilo .dijitSelect .dijitButtonContents { + border-left: none; + border-right-width: 1px; +} diff --git a/lib/dijit/themes/nihilo/form/Checkbox.css b/lib/dijit/themes/nihilo/form/Checkbox.css new file mode 100644 index 000000000..ceee44ffe --- /dev/null +++ b/lib/dijit/themes/nihilo/form/Checkbox.css @@ -0,0 +1,40 @@ + +.nihilo .dijitToggleButton .dijitCheckBox, +.nihilo .dijitToggleButton .dijitCheckBoxIcon { + background-image: url('../images/spriteCheckbox.gif'); +} +.nihilo .dijitCheckBox, +.nihilo .dijitCheckBoxIcon { + background-image: url('../images/spriteCheckbox.gif'); + background-repeat: no-repeat; + width: 16px; + height: 16px; + margin: 0; + padding: 0; +} +.nihilo .dijitCheckBox, +.nihilo .dijitToggleButton .dijitCheckBoxIcon { + + background-position: -16px; +} +.nihilo .dijitCheckBoxChecked, +.nihilo .dijitToggleButtonChecked .dijitCheckBoxIcon { + + background-position: 0px; +} +.nihilo .dijitCheckBoxDisabled { + + background-position: -48px; +} +.nihilo .dijitCheckBoxCheckedDisabled { + + background-position: -32px; +} +.nihilo .dijitCheckBoxHover { + + background-position: -80px; +} +.nihilo .dijitCheckBoxCheckedHover { + + background-position: -64px; +} diff --git a/lib/dijit/themes/nihilo/form/Common.css b/lib/dijit/themes/nihilo/form/Common.css new file mode 100644 index 000000000..fab63eba8 --- /dev/null +++ b/lib/dijit/themes/nihilo/form/Common.css @@ -0,0 +1,51 @@ + +.nihilo .dijitInputContainer INPUT, +.nihilo .dijitTextBox { + margin: 0em 0.1em; +} +.nihilo .dijitTextBox, +.nihilo .dijitTextArea { + + background:#fff url("../images/validationInputBg.png") repeat-x top left; + #background:#fff url('../images/validationInputBg.gif') repeat-x top left; + border:1px solid #d3d3d3; +} +.nihilo .dijitComboBox .dijitButtonNode { + padding: 0 0.2em !important; +} +.nihilo .dijitTextBox .dijitButtonNode { + + border-color: #d3d3d3; +} +.nihilo .dijitTextBoxFocused, +.nihilo .dijitTextAreaFocused { + + border-color:#b3b3b3; +} +.nihilo .dijitTextBoxFocused .dijitButtonNode, +.nihilo .dijitSpinner .dijitUpArrowButtonActive, +.nihilo .dijitSpinner .dijitDownArrowButtonActive { + border-left-color:#d3d3d3; +} +.nihilo .dijitSpinnerFocused .dijitDownArrowButton, +.nihilo .dijitSpinner .dijitUpArrowButtonActive, +.nihilo .dijitSpinner .dijitDownArrowButtonActive { + border-top-color:#d3d3d3; +} +.nihilo .dijitError { + border-color:#b3b3b3; + background-color:#f9f7ba; + background-image:none; +} +.nihilo .dijitErrorFocused { + background-color:#ff6; + background-image:none; +} +.nihilo .dijitValidationIcon { + + width: 16px; + background: transparent url('../images/warning.png') no-repeat center center; +} +.nihilo .dijitComboBoxHighlightMatch { + background-color:#d3d3d3; +} diff --git a/lib/dijit/themes/nihilo/form/RadioButton.css b/lib/dijit/themes/nihilo/form/RadioButton.css new file mode 100644 index 000000000..c876f590e --- /dev/null +++ b/lib/dijit/themes/nihilo/form/RadioButton.css @@ -0,0 +1,40 @@ + +.nihilo .dijitToggleButton .dijitRadio, +.nihilo .dijitToggleButton .dijitRadioIcon { + background-image: url('../images/spriteRadio.gif'); +} +.nihilo .dijitRadio, +.nihilo .dijitRadioIcon { + background-image: url('../images/spriteRadio.gif'); + background-repeat: no-repeat; + width: 16px; + height: 16px; + margin: 0; + padding: 0; +} +.nihilo .dijitRadio, +.nihilo .dijitToggleButton .dijitRadioIcon { + + background-position: -16px; +} +.nihilo .dijitRadioChecked, +.nihilo .dijitToggleButtonChecked .dijitRadioIcon { + + background-position: 0px; +} +.nihilo .dijitRadioDisabled { + + background-position: -48px; +} +.nihilo .dijitRadioCheckedDisabled { + + background-position: -32px; +} +.nihilo .dijitRadioHover { + + background-position: -80px; +} +.nihilo .dijitRadioCheckedHover { + + background-position: -64px; +} diff --git a/lib/dijit/themes/nihilo/form/Select.css b/lib/dijit/themes/nihilo/form/Select.css new file mode 100644 index 000000000..af811f50e --- /dev/null +++ b/lib/dijit/themes/nihilo/form/Select.css @@ -0,0 +1,44 @@ +.nihilo .dijitSelect .dijitButtonNode { + padding: 0px; +} +.nihilo .dijitSelect .dijitButtonContents { + padding-top: 1px; + background:#fff url("../images/validationInputBg.png") repeat-x top left; + #background:#fff url('../images/validationInputBg.gif') repeat-x top left; +} +.nihilo .dijitSelectHover .dijitButtonContents, +.nihilo .dijitSelectActive .dijitButtonContents, +.nihilo .dijitSelectOpened .dijitButtonContents, +.nihilo .dijitSelectDisabled .dijitButtonContents, +.nihilo .dijitSelectReadOnly .dijitButtonContents{ + background: transparent none; +} +.dj_ie .nihilo .dijitSelect .dijitButtonContents { + padding-top: 0px; +} +.nihilo .dijitSelect .dijitArrowButton { + padding: 0px 2px; +} +.nihilo .dijitSelectDisabled .dijitButtonNode { + border-color: #dedede; + background:#fafafa url("../images/buttonDisabled.png") top repeat-x; +} +.dj_ie .nihilo .dijitSelectDisabled .dijitButtonNode * { + filter: gray() alpha(opacity=50); +} +.nihilo .dijitSelectHover .dijitButtonNode { + color:#000; + background:#fcfcfc url("../images/buttonHover.png") repeat-x top left; +} +.nihilo .dijitSelectActive .dijitButtonNode, +.nihilo .dijitSelectOpened .dijitButtonNode { + border-color:#dedede; + background: #f5f5f5 url("../images/buttonActive.png") top left repeat-x; +} +.nihilo .dijitSelectMenu td { + padding: 0em; +} +.nihilo .dijitSelectMenu .dijitMenuItemLabel, +.nihilo .dijitSelectMenu .dijitMenuArrowCell { + padding: 0.1em 0.2em; +} diff --git a/lib/dijit/themes/nihilo/form/Slider.css b/lib/dijit/themes/nihilo/form/Slider.css new file mode 100644 index 000000000..6458e89f0 --- /dev/null +++ b/lib/dijit/themes/nihilo/form/Slider.css @@ -0,0 +1,120 @@ + +.nihilo .dijitSliderProgressBarH { + border-color: #aab0bb; + background: #c0c2c5 url("../images/sliderFull.png") repeat-x top left; +} +.nihilo .dijitSliderProgressBarV { + border-color: #aab0bb; + background: #c0c2c5 url("../images/sliderFullVertical.png") repeat-y bottom left; +} +.nihilo .dijitSliderFocused .dijitSliderProgressBarH, +.nihilo .dijitSliderFocused .dijitSliderLeftBumper { + background-image:url("../images/sliderFullFocus.png"); +} +.nihilo .dijitSliderFocused .dijitSliderProgressBarV, +.nihilo .dijitSliderFocused .dijitSliderBottomBumper { + background-image:url("../images/sliderFullVerticalFocus.png"); +} +.nihilo .dijitSliderRemainingBarV { + border-color: #b4b4b4; + background: #dcdcdc url("../images/sliderEmptyVertical.png") repeat-y bottom left; +} +.nihilo .dijitSliderRemainingBarH { + border-color: #b4b4b4; + background: #dcdcdc url("../images/sliderEmpty.png") repeat-x top left; +} +.nihilo .dijitSliderBar { + border-style: solid; + outline:1px; + +} +.nihilo .dijitSliderFocused .dijitSliderBar { + border-color:#727272; +} +.nihilo .dijitSliderImageHandleH { + border:0px; + width:15px; + height:18px; + background:url("../images/preciseSliderThumb.png") no-repeat center top; + #background:url("../images/preciseSliderThumb.gif") no-repeat center top; +} +.nihilo .dijitSliderFocused .dijitSliderImageHandleH { + background-image:url("../images/preciseSliderThumbFocus.png"); + #background-image:url("../images/preciseSliderThumbFocus.gif"); +} +.nihilo .dijitSliderLeftBumper { + border-left-width: 1px; + border-color: #aab0bb; + background: #c0c2c5 url("../images/sliderFull.png") repeat-x top left; +} +.nihilo .dijitSliderRightBumper { + background: #dcdcdc url("../images/sliderEmpty.png") repeat-x top left; + border-color: #b4b4b4; + border-right-width: 1px; +} +.nihilo .dijitSliderImageHandleV { + border:0px; + width:20px; + height:15px; + background:url("../images/sliderThumb.png") no-repeat center center; + #background:url("../images/sliderThumb.gif") no-repeat center center; +} +.nihilo .dijitSliderFocused .dijitSliderImageHandleV { + background-image:url("../images/sliderThumbFocus.png"); + #background-image:url("../images/sliderThumbFocus.gif"); +} +.nihilo .dijitSliderBottomBumper { + border-bottom-width: 1px; + border-color: #aab0bb; + background: #c0c2c5 url("../images/sliderFullVertical.png") repeat-y bottom left; +} +.nihilo .dijitSliderTopBumper { + background: #dcdcdc url("../images/sliderEmptyVertical.png") repeat-y top left; + border-color: #b4b4b4; + border-top-width: 1px; +} +.nihilo .dijitSliderIncrementIconH, +.nihilo .dijitSliderIncrementIconV { + background:url('../images/spriteRoundedIconsSmall.png') no-repeat -45px top; + #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat -45px top; + width:15px; height:15px; +} +.nihilo .dijitSliderIncrementIconH { + background:url('../images/spriteRoundedIconsSmall.png') no-repeat -30px top; + #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat -30px top; +} +.nihilo .dijitSliderDecrementIconH, +.nihilo .dijitSliderDecrementIconV { + width:15px; + height:15px; + background:url('../images/spriteRoundedIconsSmall.png') no-repeat -15px top; + #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat -15px top; +} +.nihilo .dijitSliderDecrementIconH { + background:url('../images/spriteRoundedIconsSmall.png') no-repeat 0px top; + #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat 0px top; +} +.nihilo .dijitSliderButtonInner { + visibility:hidden; +} +.nihilo .dijitSliderReadOnly *, +.nihilo .dijitSliderDisabled * { + border-color: #d5d5d5 #bdbdbd #bdbdbd #d5d5d5; + color: #bdbdbd; +} +.nihilo .dijitSliderReadOnly .dijitSliderDecrementIconH, +.nihilo .dijitSliderDisabled .dijitSliderDecrementIconH { + background-position: 0px -15px; +} +.nihilo .dijitSliderReadOnly .dijitSliderIncrementIconH, +.nihilo .dijitSliderDisabled .dijitSliderIncrementIconH { + background-position: -30px -15px; +} +.nihilo .dijitSliderReadOnly .dijitSliderDecrementIconV, +.nihilo .dijitSliderDisabled .dijitSliderDecrementIconV { + background-position: -15px -15px; +} +.nihilo .dijitSliderReadOnly .dijitSliderIncrementIconV, +.nihilo .dijitSliderDisabled .dijitSliderIncrementIconV { + background-position: -45px -15px; +} diff --git a/lib/dijit/themes/nihilo/form/Slider_rtl.css b/lib/dijit/themes/nihilo/form/Slider_rtl.css new file mode 100644 index 000000000..fc40452de --- /dev/null +++ b/lib/dijit/themes/nihilo/form/Slider_rtl.css @@ -0,0 +1,29 @@ + +.dijitRtl .nihilo .dijitSliderProgressBarH, +.dijitRtl .nihilo .dijitSliderRemainingBarH, +.dijitRtl .nihilo .dijitSliderLeftBumper, +.dijitRtl .nihilo .dijitSliderRightBumper, +.dijitRtl .nihilo .dijitSliderTopBumper { + background-position: top right; +} +.dijitRtl .nihilo .dijitSliderProgressBarV, +.dijitRtl .nihilo .dijitSliderRemainingBarV, +.dijitRtl .nihilo .dijitSliderBottomBumper { + background-position: bottom right; +} +.dijitRtl .nihilo .dijitSliderLeftBumper { + border-left-width: 0px; + border-right-width: 1px; +} +.dijitRtl .nihilo .dijitSliderRightBumper { + border-left-width: 1px; + border-right-width: 0px; +} +.dijitRtl .nihilo .dijitSliderIncrementIconH { + background:url('../images/spriteRoundedIconsSmall.png') no-repeat left top; + #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat left top; +} +.dijitRtl .nihilo .dijitSliderDecrementIconH { + background:url('../images/spriteRoundedIconsSmall.png') no-repeat -30px top; + #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat -30px top; +} diff --git a/lib/dijit/themes/nihilo/form/TimeTextBox.css b/lib/dijit/themes/nihilo/form/TimeTextBox.css new file mode 100644 index 000000000..d450925b4 --- /dev/null +++ b/lib/dijit/themes/nihilo/form/TimeTextBox.css @@ -0,0 +1 @@ +@CHARSET "UTF-8"; diff --git a/lib/dijit/themes/nihilo/images/accordionItemActive.png b/lib/dijit/themes/nihilo/images/accordionItemActive.png Binary files differnew file mode 100644 index 000000000..58f3cf965 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/accordionItemActive.png diff --git a/lib/dijit/themes/nihilo/images/buttonActive.png b/lib/dijit/themes/nihilo/images/buttonActive.png Binary files differnew file mode 100644 index 000000000..e2f2fda30 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/buttonActive.png diff --git a/lib/dijit/themes/nihilo/images/buttonDisabled.png b/lib/dijit/themes/nihilo/images/buttonDisabled.png Binary files differnew file mode 100644 index 000000000..b76af42f5 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/buttonDisabled.png diff --git a/lib/dijit/themes/nihilo/images/buttonEnabled.png b/lib/dijit/themes/nihilo/images/buttonEnabled.png Binary files differnew file mode 100644 index 000000000..d4fd306ac --- /dev/null +++ b/lib/dijit/themes/nihilo/images/buttonEnabled.png diff --git a/lib/dijit/themes/nihilo/images/buttonHover.png b/lib/dijit/themes/nihilo/images/buttonHover.png Binary files differnew file mode 100644 index 000000000..1af7e835a --- /dev/null +++ b/lib/dijit/themes/nihilo/images/buttonHover.png diff --git a/lib/dijit/themes/nihilo/images/dndCopy.png b/lib/dijit/themes/nihilo/images/dndCopy.png Binary files differnew file mode 100644 index 000000000..baecd7cf2 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/dndCopy.png diff --git a/lib/dijit/themes/nihilo/images/dndMove.png b/lib/dijit/themes/nihilo/images/dndMove.png Binary files differnew file mode 100644 index 000000000..07f878cfb --- /dev/null +++ b/lib/dijit/themes/nihilo/images/dndMove.png diff --git a/lib/dijit/themes/nihilo/images/dndNoCopy.png b/lib/dijit/themes/nihilo/images/dndNoCopy.png Binary files differnew file mode 100644 index 000000000..9bf9c3396 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/dndNoCopy.png diff --git a/lib/dijit/themes/nihilo/images/dndNoMove.png b/lib/dijit/themes/nihilo/images/dndNoMove.png Binary files differnew file mode 100644 index 000000000..cb8bd8bdd --- /dev/null +++ b/lib/dijit/themes/nihilo/images/dndNoMove.png diff --git a/lib/dijit/themes/nihilo/images/no.gif b/lib/dijit/themes/nihilo/images/no.gif Binary files differnew file mode 100644 index 000000000..9021a14e2 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/no.gif diff --git a/lib/dijit/themes/nihilo/images/preciseSliderThumb.gif b/lib/dijit/themes/nihilo/images/preciseSliderThumb.gif Binary files differnew file mode 100644 index 000000000..53b33e54a --- /dev/null +++ b/lib/dijit/themes/nihilo/images/preciseSliderThumb.gif diff --git a/lib/dijit/themes/nihilo/images/preciseSliderThumb.png b/lib/dijit/themes/nihilo/images/preciseSliderThumb.png Binary files differnew file mode 100644 index 000000000..045bf35ed --- /dev/null +++ b/lib/dijit/themes/nihilo/images/preciseSliderThumb.png diff --git a/lib/dijit/themes/nihilo/images/preciseSliderThumbFocus.gif b/lib/dijit/themes/nihilo/images/preciseSliderThumbFocus.gif Binary files differnew file mode 100644 index 000000000..8c6f92eb4 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/preciseSliderThumbFocus.gif diff --git a/lib/dijit/themes/nihilo/images/preciseSliderThumbFocus.png b/lib/dijit/themes/nihilo/images/preciseSliderThumbFocus.png Binary files differnew file mode 100644 index 000000000..c23584959 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/preciseSliderThumbFocus.png diff --git a/lib/dijit/themes/nihilo/images/progressBarAnim.gif b/lib/dijit/themes/nihilo/images/progressBarAnim.gif Binary files differnew file mode 100644 index 000000000..543d0485c --- /dev/null +++ b/lib/dijit/themes/nihilo/images/progressBarAnim.gif diff --git a/lib/dijit/themes/nihilo/images/progressBarEmpty.png b/lib/dijit/themes/nihilo/images/progressBarEmpty.png Binary files differnew file mode 100644 index 000000000..c2d369505 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/progressBarEmpty.png diff --git a/lib/dijit/themes/nihilo/images/progressBarFull.png b/lib/dijit/themes/nihilo/images/progressBarFull.png Binary files differnew file mode 100644 index 000000000..a8f38657a --- /dev/null +++ b/lib/dijit/themes/nihilo/images/progressBarFull.png diff --git a/lib/dijit/themes/nihilo/images/sliderEmpty.png b/lib/dijit/themes/nihilo/images/sliderEmpty.png Binary files differnew file mode 100644 index 000000000..99fbd727b --- /dev/null +++ b/lib/dijit/themes/nihilo/images/sliderEmpty.png diff --git a/lib/dijit/themes/nihilo/images/sliderEmptyVertical.png b/lib/dijit/themes/nihilo/images/sliderEmptyVertical.png Binary files differnew file mode 100644 index 000000000..2d497e3e0 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/sliderEmptyVertical.png diff --git a/lib/dijit/themes/nihilo/images/sliderFull.png b/lib/dijit/themes/nihilo/images/sliderFull.png Binary files differnew file mode 100644 index 000000000..9adb25441 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/sliderFull.png diff --git a/lib/dijit/themes/nihilo/images/sliderFullFocus.png b/lib/dijit/themes/nihilo/images/sliderFullFocus.png Binary files differnew file mode 100644 index 000000000..3d75caeb6 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/sliderFullFocus.png diff --git a/lib/dijit/themes/nihilo/images/sliderFullVertical.png b/lib/dijit/themes/nihilo/images/sliderFullVertical.png Binary files differnew file mode 100644 index 000000000..27e9752e8 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/sliderFullVertical.png diff --git a/lib/dijit/themes/nihilo/images/sliderFullVerticalFocus.png b/lib/dijit/themes/nihilo/images/sliderFullVerticalFocus.png Binary files differnew file mode 100644 index 000000000..cca618417 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/sliderFullVerticalFocus.png diff --git a/lib/dijit/themes/nihilo/images/sliderThumb.gif b/lib/dijit/themes/nihilo/images/sliderThumb.gif Binary files differnew file mode 100644 index 000000000..29899a4b6 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/sliderThumb.gif diff --git a/lib/dijit/themes/nihilo/images/sliderThumb.png b/lib/dijit/themes/nihilo/images/sliderThumb.png Binary files differnew file mode 100644 index 000000000..b6abbd2fd --- /dev/null +++ b/lib/dijit/themes/nihilo/images/sliderThumb.png diff --git a/lib/dijit/themes/nihilo/images/sliderThumbFocus.gif b/lib/dijit/themes/nihilo/images/sliderThumbFocus.gif Binary files differnew file mode 100644 index 000000000..f8d306feb --- /dev/null +++ b/lib/dijit/themes/nihilo/images/sliderThumbFocus.gif diff --git a/lib/dijit/themes/nihilo/images/sliderThumbFocus.png b/lib/dijit/themes/nihilo/images/sliderThumbFocus.png Binary files differnew file mode 100644 index 000000000..73ee70565 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/sliderThumbFocus.png diff --git a/lib/dijit/themes/nihilo/images/splitContainerSizerH-thumb.png b/lib/dijit/themes/nihilo/images/splitContainerSizerH-thumb.png Binary files differnew file mode 100644 index 000000000..e7bc204d8 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/splitContainerSizerH-thumb.png diff --git a/lib/dijit/themes/nihilo/images/splitContainerSizerH.png b/lib/dijit/themes/nihilo/images/splitContainerSizerH.png Binary files differnew file mode 100644 index 000000000..5f5b0e9fc --- /dev/null +++ b/lib/dijit/themes/nihilo/images/splitContainerSizerH.png diff --git a/lib/dijit/themes/nihilo/images/splitContainerSizerV-thumb.png b/lib/dijit/themes/nihilo/images/splitContainerSizerV-thumb.png Binary files differnew file mode 100644 index 000000000..410a0a7a4 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/splitContainerSizerV-thumb.png diff --git a/lib/dijit/themes/nihilo/images/splitContainerSizerV.png b/lib/dijit/themes/nihilo/images/splitContainerSizerV.png Binary files differnew file mode 100644 index 000000000..064bc1897 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/splitContainerSizerV.png diff --git a/lib/dijit/themes/nihilo/images/spriteArrows.gif b/lib/dijit/themes/nihilo/images/spriteArrows.gif Binary files differnew file mode 100644 index 000000000..fc81207e7 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/spriteArrows.gif diff --git a/lib/dijit/themes/nihilo/images/spriteArrows.png b/lib/dijit/themes/nihilo/images/spriteArrows.png Binary files differnew file mode 100644 index 000000000..73aa70091 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/spriteArrows.png diff --git a/lib/dijit/themes/nihilo/images/spriteCheckbox.gif b/lib/dijit/themes/nihilo/images/spriteCheckbox.gif Binary files differnew file mode 100644 index 000000000..d2c4ebfaf --- /dev/null +++ b/lib/dijit/themes/nihilo/images/spriteCheckbox.gif diff --git a/lib/dijit/themes/nihilo/images/spriteCheckbox.png b/lib/dijit/themes/nihilo/images/spriteCheckbox.png Binary files differnew file mode 100644 index 000000000..e99233079 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/spriteCheckbox.png diff --git a/lib/dijit/themes/nihilo/images/spriteDivIcons.gif b/lib/dijit/themes/nihilo/images/spriteDivIcons.gif Binary files differnew file mode 100644 index 000000000..00ad23a31 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/spriteDivIcons.gif diff --git a/lib/dijit/themes/nihilo/images/spriteDivIcons.png b/lib/dijit/themes/nihilo/images/spriteDivIcons.png Binary files differnew file mode 100644 index 000000000..413098acb --- /dev/null +++ b/lib/dijit/themes/nihilo/images/spriteDivIcons.png diff --git a/lib/dijit/themes/nihilo/images/spriteRadio.gif b/lib/dijit/themes/nihilo/images/spriteRadio.gif Binary files differnew file mode 100644 index 000000000..8dd6e578e --- /dev/null +++ b/lib/dijit/themes/nihilo/images/spriteRadio.gif diff --git a/lib/dijit/themes/nihilo/images/spriteRadio.png b/lib/dijit/themes/nihilo/images/spriteRadio.png Binary files differnew file mode 100644 index 000000000..14c1080ee --- /dev/null +++ b/lib/dijit/themes/nihilo/images/spriteRadio.png diff --git a/lib/dijit/themes/nihilo/images/spriteRoundedIconsSmall.gif b/lib/dijit/themes/nihilo/images/spriteRoundedIconsSmall.gif Binary files differnew file mode 100644 index 000000000..251389a28 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/spriteRoundedIconsSmall.gif diff --git a/lib/dijit/themes/nihilo/images/spriteRoundedIconsSmall.png b/lib/dijit/themes/nihilo/images/spriteRoundedIconsSmall.png Binary files differnew file mode 100644 index 000000000..e81ba07f8 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/spriteRoundedIconsSmall.png diff --git a/lib/dijit/themes/nihilo/images/spriteTree.gif b/lib/dijit/themes/nihilo/images/spriteTree.gif Binary files differnew file mode 100644 index 000000000..e546e281b --- /dev/null +++ b/lib/dijit/themes/nihilo/images/spriteTree.gif diff --git a/lib/dijit/themes/nihilo/images/spriteTree.png b/lib/dijit/themes/nihilo/images/spriteTree.png Binary files differnew file mode 100644 index 000000000..33ae07be4 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/spriteTree.png diff --git a/lib/dijit/themes/nihilo/images/spriteTree_rtl.gif b/lib/dijit/themes/nihilo/images/spriteTree_rtl.gif Binary files differnew file mode 100644 index 000000000..bbcc64be8 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/spriteTree_rtl.gif diff --git a/lib/dijit/themes/nihilo/images/spriteTree_rtl.png b/lib/dijit/themes/nihilo/images/spriteTree_rtl.png Binary files differnew file mode 100644 index 000000000..b06afdb82 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/spriteTree_rtl.png diff --git a/lib/dijit/themes/nihilo/images/tabBottomActiveC.gif b/lib/dijit/themes/nihilo/images/tabBottomActiveC.gif Binary files differnew file mode 100644 index 000000000..84bffde04 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/tabBottomActiveC.gif diff --git a/lib/dijit/themes/nihilo/images/tabBottomActiveSpriteLR.gif b/lib/dijit/themes/nihilo/images/tabBottomActiveSpriteLR.gif Binary files differnew file mode 100644 index 000000000..6803db442 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/tabBottomActiveSpriteLR.gif diff --git a/lib/dijit/themes/nihilo/images/tabBottomEnabledC.gif b/lib/dijit/themes/nihilo/images/tabBottomEnabledC.gif Binary files differnew file mode 100644 index 000000000..9ef9ab084 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/tabBottomEnabledC.gif diff --git a/lib/dijit/themes/nihilo/images/tabBottomEnabledSpriteLR.gif b/lib/dijit/themes/nihilo/images/tabBottomEnabledSpriteLR.gif Binary files differnew file mode 100644 index 000000000..b6b08ce48 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/tabBottomEnabledSpriteLR.gif diff --git a/lib/dijit/themes/nihilo/images/tabBottomHoverC.gif b/lib/dijit/themes/nihilo/images/tabBottomHoverC.gif Binary files differnew file mode 100644 index 000000000..0f533b567 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/tabBottomHoverC.gif diff --git a/lib/dijit/themes/nihilo/images/tabBottomHoverSpriteLR.gif b/lib/dijit/themes/nihilo/images/tabBottomHoverSpriteLR.gif Binary files differnew file mode 100644 index 000000000..010b08ae9 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/tabBottomHoverSpriteLR.gif diff --git a/lib/dijit/themes/nihilo/images/tabContainerSprite.gif b/lib/dijit/themes/nihilo/images/tabContainerSprite.gif Binary files differnew file mode 100644 index 000000000..92044a7f1 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/tabContainerSprite.gif diff --git a/lib/dijit/themes/nihilo/images/tabLeftChecked.gif b/lib/dijit/themes/nihilo/images/tabLeftChecked.gif Binary files differnew file mode 100644 index 000000000..d59fd4a5b --- /dev/null +++ b/lib/dijit/themes/nihilo/images/tabLeftChecked.gif diff --git a/lib/dijit/themes/nihilo/images/tabRightChecked.gif b/lib/dijit/themes/nihilo/images/tabRightChecked.gif Binary files differnew file mode 100644 index 000000000..d32f44e3c --- /dev/null +++ b/lib/dijit/themes/nihilo/images/tabRightChecked.gif diff --git a/lib/dijit/themes/nihilo/images/tabStripe.gif b/lib/dijit/themes/nihilo/images/tabStripe.gif Binary files differnew file mode 100644 index 000000000..a93467520 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/tabStripe.gif diff --git a/lib/dijit/themes/nihilo/images/tabStripeBottom.gif b/lib/dijit/themes/nihilo/images/tabStripeBottom.gif Binary files differnew file mode 100644 index 000000000..64c3376bd --- /dev/null +++ b/lib/dijit/themes/nihilo/images/tabStripeBottom.gif diff --git a/lib/dijit/themes/nihilo/images/tabStripeLeft.gif b/lib/dijit/themes/nihilo/images/tabStripeLeft.gif Binary files differnew file mode 100644 index 000000000..d607a45f7 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/tabStripeLeft.gif diff --git a/lib/dijit/themes/nihilo/images/tabStripeRight.gif b/lib/dijit/themes/nihilo/images/tabStripeRight.gif Binary files differnew file mode 100644 index 000000000..9778cedf7 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/tabStripeRight.gif diff --git a/lib/dijit/themes/nihilo/images/titleBar.png b/lib/dijit/themes/nihilo/images/titleBar.png Binary files differnew file mode 100644 index 000000000..06ea21c21 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/titleBar.png diff --git a/lib/dijit/themes/nihilo/images/titleBarActive.png b/lib/dijit/themes/nihilo/images/titleBarActive.png Binary files differnew file mode 100644 index 000000000..fe6c7a4e4 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/titleBarActive.png diff --git a/lib/dijit/themes/nihilo/images/tooltipConnectorDown.gif b/lib/dijit/themes/nihilo/images/tooltipConnectorDown.gif Binary files differnew file mode 100644 index 000000000..9c3849553 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/tooltipConnectorDown.gif diff --git a/lib/dijit/themes/nihilo/images/tooltipConnectorDown.png b/lib/dijit/themes/nihilo/images/tooltipConnectorDown.png Binary files differnew file mode 100644 index 000000000..d75af71f9 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/tooltipConnectorDown.png diff --git a/lib/dijit/themes/nihilo/images/tooltipConnectorLeft.gif b/lib/dijit/themes/nihilo/images/tooltipConnectorLeft.gif Binary files differnew file mode 100644 index 000000000..fc947e0a1 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/tooltipConnectorLeft.gif diff --git a/lib/dijit/themes/nihilo/images/tooltipConnectorLeft.png b/lib/dijit/themes/nihilo/images/tooltipConnectorLeft.png Binary files differnew file mode 100644 index 000000000..f3de66a74 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/tooltipConnectorLeft.png diff --git a/lib/dijit/themes/nihilo/images/tooltipConnectorRight.gif b/lib/dijit/themes/nihilo/images/tooltipConnectorRight.gif Binary files differnew file mode 100644 index 000000000..b0e8097f4 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/tooltipConnectorRight.gif diff --git a/lib/dijit/themes/nihilo/images/tooltipConnectorRight.png b/lib/dijit/themes/nihilo/images/tooltipConnectorRight.png Binary files differnew file mode 100644 index 000000000..ed6efc46c --- /dev/null +++ b/lib/dijit/themes/nihilo/images/tooltipConnectorRight.png diff --git a/lib/dijit/themes/nihilo/images/tooltipConnectorUp.gif b/lib/dijit/themes/nihilo/images/tooltipConnectorUp.gif Binary files differnew file mode 100644 index 000000000..54bcf652c --- /dev/null +++ b/lib/dijit/themes/nihilo/images/tooltipConnectorUp.gif diff --git a/lib/dijit/themes/nihilo/images/tooltipConnectorUp.png b/lib/dijit/themes/nihilo/images/tooltipConnectorUp.png Binary files differnew file mode 100644 index 000000000..7f7a5d8fd --- /dev/null +++ b/lib/dijit/themes/nihilo/images/tooltipConnectorUp.png diff --git a/lib/dijit/themes/nihilo/images/treeExpand_loading.gif b/lib/dijit/themes/nihilo/images/treeExpand_loading.gif Binary files differnew file mode 100644 index 000000000..db9ddd028 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/treeExpand_loading.gif diff --git a/lib/dijit/themes/nihilo/images/treeHover.png b/lib/dijit/themes/nihilo/images/treeHover.png Binary files differnew file mode 100644 index 000000000..ca80cd2c4 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/treeHover.png diff --git a/lib/dijit/themes/nihilo/images/treeI.gif b/lib/dijit/themes/nihilo/images/treeI.gif Binary files differnew file mode 100644 index 000000000..6f669e240 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/treeI.gif diff --git a/lib/dijit/themes/nihilo/images/treeI_half.gif b/lib/dijit/themes/nihilo/images/treeI_half.gif Binary files differnew file mode 100644 index 000000000..e5fd0155b --- /dev/null +++ b/lib/dijit/themes/nihilo/images/treeI_half.gif diff --git a/lib/dijit/themes/nihilo/images/treeI_half_rtl.gif b/lib/dijit/themes/nihilo/images/treeI_half_rtl.gif Binary files differnew file mode 100644 index 000000000..44ad021a3 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/treeI_half_rtl.gif diff --git a/lib/dijit/themes/nihilo/images/treeI_rtl.gif b/lib/dijit/themes/nihilo/images/treeI_rtl.gif Binary files differnew file mode 100644 index 000000000..0d32a2f73 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/treeI_rtl.gif diff --git a/lib/dijit/themes/nihilo/images/validationInputBg.gif b/lib/dijit/themes/nihilo/images/validationInputBg.gif Binary files differnew file mode 100644 index 000000000..c28475c8d --- /dev/null +++ b/lib/dijit/themes/nihilo/images/validationInputBg.gif diff --git a/lib/dijit/themes/nihilo/images/validationInputBg.png b/lib/dijit/themes/nihilo/images/validationInputBg.png Binary files differnew file mode 100644 index 000000000..f3039f952 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/validationInputBg.png diff --git a/lib/dijit/themes/nihilo/images/warning.png b/lib/dijit/themes/nihilo/images/warning.png Binary files differnew file mode 100644 index 000000000..c52f83dc3 --- /dev/null +++ b/lib/dijit/themes/nihilo/images/warning.png diff --git a/lib/dijit/themes/nihilo/layout/AccordionContainer.css b/lib/dijit/themes/nihilo/layout/AccordionContainer.css new file mode 100644 index 000000000..a74b01a2e --- /dev/null +++ b/lib/dijit/themes/nihilo/layout/AccordionContainer.css @@ -0,0 +1,35 @@ + +.nihilo .dijitAccordionContainer { + border-color: #ccc; + background-color: #fff; +} +.nihilo .dijitAccordionTitle { + background:#fafafa url("../images/titleBar.png") repeat-x top left; + border-top: 1px solid #dedede; + padding: 5px 4px 6px 8px; + font-size: 0.9em; + font-weight: bold; + color: #6d6d6d; +} +.nihilo .dijitAccordionTitleSelected { + background: #f9f9f9 url("../images/accordionItemActive.png") top repeat-x; + font-weight: bold; + border-top: 1px solid #dedede; + border-bottom: 1px solid #dedede; + padding: 5px 4px 5px 8px; + color: #243C5F; +} +.nihilo .dijitAccordionArrow { + background:url("../images/spriteRoundedIconsSmall.gif") no-repeat -30px top; + width:15px; + height:15px; + margin-top:-1px; +} +.nihilo .dijitAccordionTitleSelected .dijitAccordionArrow { + background:url("../images/spriteRoundedIconsSmall.gif") no-repeat -15px top; + margin-top:-1px; +} +.nihilo .dijitAccordionText { + margin-left: 4px; + margin-right: 4px; +} diff --git a/lib/dijit/themes/nihilo/layout/AccordionContainer_rtl.css b/lib/dijit/themes/nihilo/layout/AccordionContainer_rtl.css new file mode 100644 index 000000000..b71afbacf --- /dev/null +++ b/lib/dijit/themes/nihilo/layout/AccordionContainer_rtl.css @@ -0,0 +1,7 @@ +.dijitRtl .nihilo .dijitAccordionArrow { + background-position: 0px top; +} +.dijitRtl .nihilo .dijitAccordionTitleSelected .dijitAccordionArrow { + + background-position: -15px top; +} diff --git a/lib/dijit/themes/nihilo/layout/BorderContainer.css b/lib/dijit/themes/nihilo/layout/BorderContainer.css new file mode 100644 index 000000000..29fcc39da --- /dev/null +++ b/lib/dijit/themes/nihilo/layout/BorderContainer.css @@ -0,0 +1,59 @@ + +.nihilo .dijitBorderContainer { + background-color: #fcfcfc; + padding: 5px; +} +.nihilo .dijitSplitContainer-child, +.nihilo .dijitBorderContainer-child { + + border: 1px #ccc solid; +} +.nihilo .dijitBorderContainer-dijitTabContainerTop, +.nihilo .dijitBorderContainer-dijitTabContainerBottom, +.nihilo .dijitBorderContainer-dijitTabContainerLeft, +.nihilo .dijitBorderContainer-dijitTabContainerRight { + + border: none; +} +.nihilo .dijitBorderContainer-dijitBorderContainer { + + border: none; + padding: 0px; +} +.nihilo .dijitSplitterH, +.nihilo .dijitGutterH { + background:#FCFCFC; + border:0; + border-left:0px solid #d3d3d3; + border-right:0px solid #d3d3d3; + height:5px; +} +.nihilo .dijitSplitterH .dijitSplitterThumb { + background:#8BA0BD none; + height:1px; + top:2px; + width:19px; +} +.nihilo .dijitSplitterV, +.nihilo .dijitGutterV { + background:#FCFCFC; + border:0; + border-top:0px solid #d3d3d3; + border-bottom:0px solid #d3d3d3; + width:5px; +} +.nihilo .dijitSplitterV .dijitSplitterThumb { + background:#8BA0BD none; + height:19px; + left:2px; + width:1px; +} +.nihilo .dijitSplitterActive { + font-size: 1px; + background-image: none; + background-color: #aaa; + -moz-opacity: 0.6; + opacity: 0.6; + filter: Alpha(Opacity=60); + margin: 0; +} diff --git a/lib/dijit/themes/nihilo/layout/ContentPane.css b/lib/dijit/themes/nihilo/layout/ContentPane.css new file mode 100644 index 000000000..2bd0a191b --- /dev/null +++ b/lib/dijit/themes/nihilo/layout/ContentPane.css @@ -0,0 +1,17 @@ + +.nihilo .dijitContentPane { + padding: 0px; +} +.nihilo .dijitTabContainerTop-dijitContentPane, +.nihilo .dijitTabContainerLeft-dijitContentPane, +.nihilo .dijitTabContainerRight-dijitContentPane, +.nihilo .dijitTabContainerBottom-dijitContentPane, +.nihilo .dijitAccordionContainer-dijitContentPane { + background-color: #fff; + padding: 5px; +} +.nihilo .dijitSplitContainer-dijitContentPane, +.nihilo .dijitBorderContainer-dijitContentPane { + background-color: #fff; + padding: 5px; +} diff --git a/lib/dijit/themes/nihilo/layout/SplitContainer.css b/lib/dijit/themes/nihilo/layout/SplitContainer.css new file mode 100644 index 000000000..79d8fbdde --- /dev/null +++ b/lib/dijit/themes/nihilo/layout/SplitContainer.css @@ -0,0 +1,27 @@ + +.nihilo .dijitSplitContainerSizerH { + background:url("../images/splitContainerSizerV.png") repeat-y #fff; + border:0; + border-left:0px solid #d3d3d3; + border-right:0px solid #d3d3d3; + width:5px; +} +.nihilo .dijitSplitContainerSizerH .thumb { + background:url("../images/splitContainerSizerV-thumb.png") no-repeat; + left:1px; + width:2px; + height:19px; +} +.nihilo .dijitSplitContainerSizerV { + background:url("../images/splitContainerSizerH.png") repeat-x #fff; + border:0; + border-top:0px solid #d3d3d3; + border-bottom:0px solid #d3d3d3; + height:2px; +} +.nihilo .dijitSplitContainerSizerV .thumb { + background:url("../images/splitContainerSizerH-thumb.png") no-repeat; + top:1px; + width:19px; + height:5px; +} diff --git a/lib/dijit/themes/nihilo/layout/TabContainer.css b/lib/dijit/themes/nihilo/layout/TabContainer.css new file mode 100644 index 000000000..3652f229b --- /dev/null +++ b/lib/dijit/themes/nihilo/layout/TabContainer.css @@ -0,0 +1,439 @@ + +.nihilo .dijitMenu, +.nihilo .dijitMenuBar { + border: 1px solid #d3d3d3; + margin: 0px; + padding: 0px; + background-color: #fff; +} +.nihilo .dijitBorderContainer .dijitMenuBar { + border: 1px #ccc solid; +} +.nihilo .dijitMenuItem { + font-family: sans-serif; + margin: 0px; + color: #243C5F; +} +.nihilo .dijitMenuBar .dijitMenuItem { + padding: 4px 5px; +} +.nihilo .dijitMenuPreviousButton, .nihilo .dijitMenuNextButton { + font-style: italic; +} +.nihilo .dijitMenuItem TD { + padding:1px; +} +.nihilo .dijitMenuPassive .dijitMenuItemHover, +.nihilo .dijitMenuItemSelected { + background-color: #ffe284; + color: #243C5F; +} +.nihilo .dijitMenuItemIcon { + width: 15px; + height: 15px; +} +.nihilo .dijitMenuExpand { + width:15px; + height:15px; + background-image: url(../images/spriteRoundedIconsSmall.png); + background-position: -30px top; +} +.dj_ie6 .nihilo .dijitMenuExpand { + background-image:url(../images/spriteRoundedIconsSmall.gif); +} +.nihilo .dijitMenuSeparator { + height: 1px; +} +.nihilo .dijitMenuSeparatorTop { + border-bottom: 1px solid #fff; +} +.nihilo .dijitMenuSeparatorBottom { + border-top: 1px solid #d3d3d3; +} +.nihilo .dijitCheckedMenuItemIconChar { + display: none; +} +.nihilo .dijitCheckedMenuItemIcon { + background-image: url(../images/spriteCheckbox.gif); + background-position: -80px; +} +.nihilo .dijitCheckedMenuItemChecked .dijitCheckedMenuItemIcon { + background-position: -64px; +} +.nihilo .dijitTabContainer .tabStripRBtn { + margin-right: 21px; +} +.nihilo .dijitTabContainer .tabStripLBtn { + margin-left: 21px; +} +.nihilo .dijitTabContainerBottom .nowrapTabStrip .dijitTab { + top: 0px; +} +.nihilo .dijitTabPaneWrapper { + background:#fff; + border:1px solid #ccc; + margin: 0; + padding: 0; +} +.nihilo .dijitTabInnerDiv { + padding:0px 3px 0px 0px; + margin: 0 0 0 4px; + background: url("../images/tabContainerSprite.gif") no-repeat; + background-position: right -400px; +} +.nihilo .dijitTab { + line-height:normal; + margin:0 2px 0 0; + padding:0px; + background: url("../images/tabContainerSprite.gif") no-repeat 0 -300px; + color: #6d6d6d; + border-bottom: 1px #ccc solid; +} +.nihilo .dijitTabInnerDiv .dijitTabContent { + padding:3px 3px 3px 4px; + background: url("../images/tabContainerSprite.gif") repeat-x 0 -350px; + position: relative; +} +.nihilo .dijitTabHover { + color: #243C5F; + background: url("../images/tabContainerSprite.gif") no-repeat 0px -150px; +} +.nihilo .dijitTabHover .dijitTabInnerDiv { + background: url("../images/tabContainerSprite.gif") no-repeat right -250px; +} +.nihilo .dijitTabHover .dijitTabInnerDiv .dijitTabContent { + background: url("../images/tabContainerSprite.gif") repeat-x 0 -200px; +} +.nihilo .dijitTabChecked +{ + + background: url("../images/tabContainerSprite.gif") no-repeat 0px -0px; +} +.nihilo .dijitTabChecked .dijitTabInnerDiv { + background: url("../images/tabContainerSprite.gif") no-repeat right -100px; +} +.nihilo .dijitTabChecked .dijitTabInnerDiv .dijitTabContent { + background: url("../images/tabContainerSprite.gif") repeat-x 0 -50px; + color: #243C5F !important; +} +.nihilo .dijitTabContainerNested .dijitTabListWrapper { + height: auto; +} +.nihilo .dijitTabContainerTabListNested { + background: #FDFDFD; + border: none; + margin-bottom: 0px; +} +.nihilo .dijitTabContainerTabListNested .dijitTab { + background: none; + border: none; + top: 0px; +} +.nihilo .dijitTabContainerTabListNested .dijitTab .dijitTabInnerDiv, +.nihilo .dijitTabContainerTabListNested .dijitTab .dijitTabContent { + background: none; +} +.nihilo .dijitTabContainerTabListNested .dijitTabHover .dijitTabContent .tabLabel { + text-decoration: underline; +} +.nihilo .dijitTabContainerTabListNested .dijitTabChecked .tabLabel { + text-decoration: underline; + font-weight: bold; +} +.nihilo .dijitTabContainerSpacerNested { + + height: 0px; + border-bottom: 0px; +} +.nihilo .dijitTabPaneWrapperNested { + border: none; +} +.nihilo .dijitTabCloseButton { + background: url("../images/spriteRoundedIconsSmall.png") no-repeat -60px top; + width: 15px; + height: 15px; + margin-top: -1px; +} +.dj_ie6 .nihilo .dijitTabCloseButton { + background: url("../images/spriteRoundedIconsSmall.gif") no-repeat -60px top; +} +.nihilo .dijitTabCloseButtonHover { + background: url("../images/spriteRoundedIconsSmall.png") no-repeat -60px -15px; +} +.dj_ie6 .nihilo .dijitTabCloseButtonHover { + background: url("../images/spriteRoundedIconsSmall.gif") no-repeat -60px -15px; +} +.nihilo .dijitTab .tabLabel { + + min-height: 15px; + display: inline-block; +} +.dj_ie6 .nihilo .dijitTabButtonIcon { + + height: 18px; + width: 1px; +} +.nihilo .dijitTabContainerTop-tabs { + border-bottom: none; + padding-bottom: 1px; + background-position: bottom; + padding-left: 3px; +} +.dj_ie6 .nihilo .dijitTabListContainer-top, +.dj_ie7 .nihilo .dijitTabListContainer-top { + z-index: 3; +} +.dj_ie6 .nihilo .dijitTabContainerTop-tabs, +.dj_ie7 .nihilo .dijitTabContainerTop-tabs { + border-bottom: 1px solid #ccc; + padding-bottom: 0px; +} +.nihilo .dijitTabContainerTopNoStrip { + padding-top: 3px; +} +.nihilo .dijitTabContainerTop-container { + border-top: none; +} +.nihilo .dijitTabContainerTop-tabs .dijitTabChecked { + border-bottom-color: #f8f8f8; +} +.nihilo .dijitTabContainer .dijitTabContainerTopStrip { + border-bottom: none; + padding-top: 1px; + margin-top: 1px; + background: #f2f2f2; + border-top: 1px solid #CCC; + border-right: 1px solid #CCC; + border-left: 1px solid #CCC; +} +.nihilo .dijitTabContainerBottom-tabs { + border-top: none; + background-position: top; + padding-left: 3px; +} +.dj_ie6 .nihilo .dijitTabListContainer-bottom, +.dj_ie7 .nihilo .dijitTabListContainer-bottom { + z-index: 3; +} +.dj_ie6 .nihilo .dijitTabContainerBottom-tabs, +.dj_ie7 .nihilo .dijitTabContainerBottom-tabs { + border-top: 1px solid #ccc; + margin-top: -1px; +} +.nihilo .dijitTabContainerBottom-container { + border-bottom: none; +} +.nihilo .dijitTabContainerBottom-tabs .dijitTab { + border-bottom: none; + border-top: 1px solid #ccc; + background: url("../images/tabBottomEnabledSpriteLR.gif") no-repeat bottom left; +} +.nihilo .dijitTabContainerBottom-tabs .dijitTabChecked { + border-top-color: #f8f8f8; +} +.nihilo .dijitTabContainerBottom-tabs .dijitTabInnerDiv .dijitTabContent { + padding-top: 3px; + padding-bottom: 3px; + background: url("../images/tabBottomEnabledC.gif") repeat-x bottom left; +} +.nihilo .dijitTabContainerBottom-tabs .dijitTabInnerDiv { + background: url("../images/tabBottomEnabledSpriteLR.gif") no-repeat bottom right; +} +.nihilo .dijitTabContainerBottom-tabs .dijitTabHover { + color: #243C5F; + background: url("../images/tabBottomHoverSpriteLR.gif") no-repeat bottom left; +} +.nihilo .dijitTabContainerBottom-tabs .dijitTabHover .dijitTabInnerDiv { + background: url("../images/tabBottomHoverSpriteLR.gif") no-repeat bottom right; +} +.nihilo .dijitTabContainerBottom-tabs .dijitTabHover .dijitTabInnerDiv .dijitTabContent { + background: url("../images/tabBottomHoverC.gif") repeat-x bottom left; +} +.nihilo .dijitTabContainerBottom-tabs .dijitTabChecked { + + background: url("../images/tabBottomActiveSpriteLR.gif") no-repeat bottom left; +} +.nihilo .dijitTabContainerBottom-tabs .dijitTabChecked .dijitTabInnerDiv { + background: url("../images/tabBottomActiveSpriteLR.gif") no-repeat bottom right; +} +.nihilo .dijitTabContainerBottom-tabs .dijitTabChecked .dijitTabInnerDiv .dijitTabContent { + background: url("../images/tabBottomActiveC.gif") repeat-x bottom left; +} +.nihilo .dijitTabContainer .dijitTabContainerBottomStrip { + border: 1px solid #ccc; + background: #f2f2f2; + border-top: none; + padding-bottom: 2px; +} +.nihilo .dijitTabContainerBottom-spacer, +.nihilo .dijitTabContainerTop-spacer { + height: 2px; + border: 1px solid #ccc; + background: #f8f8f8; +} +.nihilo .dijitTabContainerTop-spacer { + margin-top: -1px; +} +.nihilo .dijitTabContainerBottom-spacer { + margin-bottom: -1px; +} +.nihilo .dijitTabContainerRight-tabs { + border-color: #ccc; + padding-top: 3px; +} +.nihilo .dijitTabContainerRight .dijitTabListWrapper { + padding-right: 3px; +} +.nihilo .dijitTabContainerRight-container { + border-right: none; +} +.nihilo .dijitTabContainerRight-tabs .dijitTab { + border-bottom: none; + border-left: 1px solid #ccc; + border-bottom: 1px solid #dedede !important; +} +.dj_ie .nihilo .dijitTabContainerRight-tabs .dijitTabInnerDiv { + border-bottom: solid #fff 1px; +} +.nihilo .dijitTabContainerRight-tabs .dijitTabChecked { + border-left-color: #f8f8f8; +} +.nihilo .dijitTabContainerRight-tabs .dijitTabChecked { + background: url("../images/tabRightChecked.gif") no-repeat left top !important; +} +.dj_ie .nihilo .dijitTabContainerRight-tabs .dijitTabChecked .dijitTabInnerDiv, +.dj_ie .nihilo .dijitTabContainerRight-tabs .dijitTabCheckedHover .dijitTabInnerDiv { + border-bottom: solid #efefef 1px; +} +.nihilo .dijitTabContainerRight-tabs .dijitTab { + background: url("../images/tabContainerSprite.gif") no-repeat left -350px; +} +.nihilo .dijitTabContainerRight-tabs .dijitTabHover .dijitTab { + background: url("../images/tabContainerSprite.gif") no-repeat left -200px; +} +.nihilo .dijitTabContainerRightStrip { + padding-right: 2px; + border: 1px solid #ccc; + border-left: none; + background: #f2f2f2; +} +.nihilo .dijitTabContainerLeft-tabs { + border-color: #ccc; + padding-top: 3px; +} +.nihilo .dijitTabContainerLeft-container { + border-left: none; +} +.nihilo .dijitTabContainerLeft-tabs .dijitTab { + border-right: 1px solid #ccc; + border-bottom: 1px solid #dedede; +} +.nihilo .dijitTabContainerLeft-tabs .dijitTabChecked { + border-right: 1px solid #f8f8f8; +} +.nihilo .dijitTabContainerLeft-tabs .dijitTabInnerDiv { + background: url("../images/tabContainerSprite.gif") no-repeat right -350px; +} +.nihilo .dijitTabContainerLeft-tabs .dijitTabHover .dijitTabInnerDiv { + background: url("../images/tabContainerSprite.gif") no-repeat right -200px; +} +.nihilo .dijitTabContainerLeft-tabs .dijitTabChecked .dijitTabInnerDiv, +.nihilo .dijitTabContainerLeft-tabs .dijitTabCheckedHover .dijitTabInnerDiv { + background: url("../images/tabLeftChecked.gif") no-repeat right top; +} +.dj_ie .nihilo .dijitTabContainerLeft-tabs .dijitTabChecked .dijitTabInnerDiv, +.dj_ie .nihilo .dijitTabContainerLeft-tabs .dijitTabCheckedHover .dijitTabInnerDiv { + border-bottom: solid #efefef 1px; +} +.dj_ie .nihilo .dijitTabContainerLeft-tabs .dijitTabInnerDiv { + border-bottom: solid #fff 1px; +} +.nihilo .dijitTabContainerLeftStrip { + padding-left: 2px; + border: 1px solid #ccc; + border-right: none; +} +.nihilo .dijitTabContainerLeftStrip { + background: #f2f2f2; +} +.nihilo .dijitTabContainerLeft-tabs .dijitTab, +.nihilo .dijitTabContainerRight-tabs .dijitTab { + margin-right:auto; + margin-bottom:2px; +} +.nihilo .dijitTabContainerLeft-spacer, +.nihilo .dijitTabContainerRight-spacer { + width: 2px; + border: 1px solid #ccc; + background: #f8f8f8; +} +.nihilo .dijitTabContainerRight-spacer { + border-right: none; +} +.nihilo .dijitTabContainerRight-tabs { + padding-top: 3px; + height: 100%; +} +.nihilo .dijitTabContainerLeft-tabs { + height: 100%; +} +.nihilo .dijitTabContainerLeft-spacer { + border-left: none; +} +.nihilo .dijitTabContainerTop-dijitContentPane .dijitTabContainerTop-tabs { + border-left: 0px solid #ccc; + border-top: 0px solid #ccc; + border-right: 0px solid #ccc; + padding-top: 0px; + padding-left: 0px; +} +.nihilo .dijitTabContainer .tabStripButton { + margin-right: 0px; +} +.nihilo .tabStripButton .dijitTabInnerDiv .dijitTabContent { + padding: 5px 0 6px; +} +.dj_ie6 .nihilo .tabStripButton .dijitTabInnerDiv .dijitTabContent, +.dj_ie7 .nihilo .tabStripButton .dijitTabInnerDiv .dijitTabContent, +.dj_opera .nihilo .tabStripButton .dijitTabInnerDiv .dijitTabContent { + padding-bottom: 7px; +} +.nihilo .tabStrip-disabled .tabStripButton .dijitTabInnerDiv .dijitTabContent { + padding: 3px 0 5px; +} +.dj_ie6 .nihilo .tabStrip-disabled .tabStripButton .dijitTabInnerDiv .dijitTabContent, +.dj_ie7 .nihilo .tabStrip-disabled .tabStripButton .dijitTabInnerDiv .dijitTabContent, +.dj_opera .nihilo .tabStrip-disabled .tabStripButton .dijitTabInnerDiv .dijitTabContent { + padding-top: 4px; +} +.nihilo .dijitTabStripIcon { + height: 14px; + width: 14px; + background: url(../images/spriteRoundedIconsSmall.png) no-repeat left top; +} +.dj_ie6 .nihilo .dijitTabStripIcon { + background-image: url(../images/spriteRoundedIconsSmall.gif); +} +.nihilo .dijitTabStripSlideRightIcon { + background-position: -30px top; +} +.nihilo .dijitTabStripMenuIcon { + background-position: -15px top; +} +.nihilo .dijitTabContainerTopNone { + padding-top: 0px; +} +.nihilo .dijitTabContainer .tabStripButton-top { + margin-top: 1px; +} +.nihilo .dijitTabContainer .tabStripButton-bottom { + background: transparent url(../images/tabBottomEnabledSpriteLR.gif) no-repeat scroll left bottom; + border-bottom: medium none; + border-top: 1px solid #CCCCCC; +} +.nihilo .dijitTabContainer .tabStripButton-bottom .dijitTabInnerDiv { + background: transparent url(../images/tabBottomEnabledSpriteLR.gif) no-repeat scroll right bottom; +} +.nihilo .dijitTabContainer .tabStripButton-bottom .dijitTabContent { + background: transparent; +} diff --git a/lib/dijit/themes/nihilo/layout/TabContainer_rtl.css b/lib/dijit/themes/nihilo/layout/TabContainer_rtl.css new file mode 100644 index 000000000..8a55f5026 --- /dev/null +++ b/lib/dijit/themes/nihilo/layout/TabContainer_rtl.css @@ -0,0 +1,34 @@ +.dijitRtl .nihilo .dijitTab { + margin-right:0; + margin-left:2px; +} +.dijitRtl .nihilo .dijitTabContainer .tabStripButton { + margin-left: 0; +} +.dijitRtl .nihilo .dijitTabContainerTopStrip, +.dijitRtl .nihilo .dijitTabContainerBottomStrip, +.dijitRtl .nihilo .dijitTabContainerTop-tabs, +.dijitRtl .nihilo .dijitTabContainerBottom-tabs { + padding-left: 0; + padding-right: 3px; +} +.dijitRtl .nihilo .dijitTabInnerDiv { + padding-left: 3px; + padding-right: 4px; +} +.dijitRtl .nihilo .dijitTabPaneWrapper { + #zoom: 1; +} +.dj_ie-rtl .nihilo .dijitTabContainerLeft-tabs { + margin-left: 0px !important; +} +.dj_ie-rtl .nihilo .dijitTabContainerRight-tabs { + margin-right: 0px !important; +} +.dijitRtl .nihilo .dijitTabContainerLeft-tabs .dijitTab, +.dijitRtl .nihilo .dijitTabContainerRight-tabs .dijitTab { + margin-left:0px; +} +.dj_ie-rtl .nihilo .dijitTab .dijitTabInnerDiv{ + width : 1%; +} diff --git a/lib/dijit/themes/nihilo/nihilo.css b/lib/dijit/themes/nihilo/nihilo.css new file mode 100644 index 000000000..5a0bc3e3d --- /dev/null +++ b/lib/dijit/themes/nihilo/nihilo.css @@ -0,0 +1,3404 @@ + +.dijitReset { + + margin:0; + border:0; + padding:0; + line-height:normal; + font: inherit; + color: inherit; +} +.dijit_a11y .dijitReset { + -moz-appearance: none; +} +.dijitInline { + + display:inline-block; + #zoom: 1; + #display:inline; + border:0; + padding:0; + vertical-align:middle; + #vertical-align: auto; +} +.dijitHidden { + + display: none !important; +} +.dijitVisible { + + display: block !important; + position: relative; +} +.dijitInputContainer { + + #zoom: 1; + overflow: hidden; + float: none !important; + position:relative; +} +.dj_ie INPUT.dijitTextBox, +.dj_ie .dijitTextBox INPUT { + font-size: 100%; +} +.dijitTextBox .dijitSpinnerButtonContainer, +.dijitTextBox .dijitArrowButtonContainer, +.dijitTextBox .dijitValidationContainer { + float: right; + text-align: center; +} +.dijitTextBox INPUT.dijitInputField { + + padding-left: 0 !important; + padding-right: 0 !important; +} +.dijitTextBox .dijitValidationContainer { + display: none; +} +.dijitInlineTable { + + display:inline-table; + display:inline-block; + #zoom: 1; + #display:inline; + box-sizing: content-box; -moz-box-sizing: content-box; + border:0; + padding:0; +} +.dijitTeeny { + font-size:1px; + line-height:1px; +} +.dijitOffScreen { + position: absolute; + visibility: hidden; + left: 50%; + top: -10000px; +} +.dijitPopup { + position: absolute; + background-color: transparent; + margin: 0; + border: 0; + padding: 0; +} +.dijit_a11y .dijitPopup, +.dijit_ally .dijitPopup DIV, +.dijit_a11y .dijitPopup TABLE, +.dijit_a11y .dijitTooltipContainer { + background-color: white !important; +} +.dijitPositionOnly { + + padding: 0 !important; + border: 0 !important; + background-color: transparent !important; + background-image: none !important; + height: auto !important; + width: auto !important; +} +.dijitNonPositionOnly { + + float: none !important; + position: static !important; + margin: 0 0 0 0 !important; + vertical-align: middle !important; +} +.dijitBackgroundIframe { + + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + z-index: -1; + border: 0; + padding: 0; + margin: 0; +} +.dijitDisplayNone { + + display:none !important; +} +.dijitContainer { + + overflow: hidden; +} +.dijit_a11y * { + background-image:none !important; +} +.dijit_a11y .dijitIcon, +.dijit_a11y DIV.dijitArrowButtonInner, +.dijit_a11y SPAN.dijitArrowButtonInner, +.dijit_a11y IMG.dijitArrowButtonInner, +.dijit_a11y .dijitCalendarIncrementControl { + + display: none; +} +.dijitSpinner DIV.dijitArrowButtonInner { + display: block; +} +.dijit_a11y .dijitA11ySideArrow { + display: inline !important; + cursor: pointer; +} +.dijit_a11y .dijitCalendarDateLabel { + padding: 1px; +} +.dijit_a11y .dijitCalendarSelectedDate .dijitCalendarDateLabel { + border-style: dotted !important; + border-width: 1px; + padding: 0px; +} +.dijit_a11y .dijitCalendarDateTemplate { + padding-bottom: 0.1em !important; +} +.dijit_a11y .dijit * { + background:white !important; + color:black !important; +} +.dijit_a11y .dijitButtonNode { + border-color: black!important; + border-style: outset!important; + border-width: medium!important; +} +.dijit_a11y .dijitTextBoxReadOnly .dijitInputField, +.dijit_a11y .dijitTextBoxReadOnly .dijitButtonNode { + border-style: outset!important; + border-width: medium!important; + border-color: #999 !important; + color:#999 !important; +} +.dijitButtonNode * { + vertical-align: middle; +} +.dijitButtonNode .dijitArrowButtonInner { + + background: no-repeat center; + width: 12px; + height: 12px; + direction: ltr; +} +.dijitLeft { + + background-position:left top; + background-repeat:no-repeat; +} +.dijitStretch { + + white-space:nowrap; + background-repeat:repeat-x; +} +.dijitRight { + + #display:inline; + background-position:right top; + background-repeat:no-repeat; +} +.dijitToggleButton, +.dijitButton, +.dijitDropDownButton, +.dijitComboButton { + + margin: 0.2em; +} +.dijitButtonContents { + display: block; +} +td.dijitButtonContents { + display: table-cell; +} +.dijitButtonNode IMG { + + vertical-align:middle; + +} +TABLE.dijitComboButton { + + border-collapse: collapse; + border:0; + padding:0; + margin:0; +} +.dijitToolbar .dijitComboButton { + + border-collapse: separate; +} +.dijitToolbar .dijitToggleButton, +.dijitToolbar .dijitButton, +.dijitToolbar .dijitDropDownButton, +.dijitToolbar .dijitComboButton { + margin: 0; +} +.dijitToolbar .dijitButtonContents { + + padding: 1px 2px; +} +.dj_ie .dijitComboButton { + + margin-bottom: -3px; +} +.dj_webkit .dijitToolbar .dijitDropDownButton { + padding-left: 0.3em; +} +.dj_gecko .dijitToolbar .dijitButtonNode::-moz-focus-inner { + padding:0; +} +.dijitButtonNode { + + border:1px solid gray; + margin:0; + line-height:normal; + vertical-align: middle; + #vertical-align: auto; + text-align:center; + white-space: nowrap; +} +.dj_webkit .dijitSpinner .dijitSpinnerButtonContainer { + + line-height:inherit; +} +.dijitTextBox .dijitButtonNode { + border-width: 0; +} +.dijitButtonNode, +.dijitButtonNode * { + cursor: pointer; +} +.dj_ie .dijitButtonNode { + + zoom: 1; +} +.dj_ie .dijitButtonNode button { + + overflow: visible; +} +DIV.dijitArrowButton { + float: right; +} +.dijitTextBox { + border: solid black 1px; + #overflow: hidden; + width: 15em; + vertical-align: middle; + #vertical-align: auto; +} +.dijitTextBoxReadOnly, +.dijitTextBoxDisabled { + color: gray; +} +.dj_webkit .dijitTextBoxDisabled INPUT { + color: #eee; +} +.dj_webkit TEXTAREA.dijitTextAreaDisabled { + color: #333; +} +.dj_gecko .dijitTextBoxReadOnly INPUT, +.dj_gecko .dijitTextBoxDisabled INPUT { + -moz-user-input: none; +} +.dijitPlaceHolder { + + color: #AAAAAA; + font-style: italic; + position: absolute; + top: 0; + left: 0; + #filter: ""; +} +.dijitTimeTextBox { + width: 8em; +} +.dijitTextBox INPUT:focus { + outline: none; +} +.dijitTextBoxFocused { + outline: auto 5px -webkit-focus-ring-color; +} +.dijitTextBox INPUT { + float: left; +} +.dijitInputInner { + + border:0 !important; + vertical-align:middle !important; + background-color:transparent !important; + width:100% !important; + + padding-left: 0 !important; + padding-right: 0 !important; + margin-left: 0 !important; + margin-right: 0 !important; +} +.dijit_a11y .dijitTextBox INPUT { + margin: 0 !important; +} +.dijitTextBoxError INPUT.dijitValidationInner, +.dijitTextBox INPUT.dijitArrowButtonInner { + + text-indent: -1em !important; + direction: ltr !important; + text-align: left !important; + height: auto !important; + #text-indent: 0 !important; + #letter-spacing: -5em !important; + #text-align: right !important; +} +.dj_ie .dijitTextBox INPUT, +.dj_ie INPUT.dijitTextBox { + overflow-y: visible; + line-height: normal; +} +.dj_ie7 .dijitTextBox INPUT.dijitValidationInner, +.dj_ie7 .dijitTextBox INPUT.dijitArrowButtonInner { + line-height: 86%; +} +.dj_ie6 .dijitTextBox INPUT, +.dj_ie6 INPUT.dijitTextBox, +.dj_iequirks .dijitTextBox INPUT.dijitValidationInner, +.dj_iequirks .dijitTextBox INPUT.dijitArrowButtonInner, +.dj_iequirks .dijitTextBox INPUT.dijitSpinnerButtonInner, +.dj_iequirks .dijitTextBox INPUT.dijitInputInner, +.dj_iequirks INPUT.dijitTextBox { + line-height: 100%; +} +.dijit_a11y INPUT.dijitValidationInner, +.dijit_a11y INPUT.dijitArrowButtonInner { + + text-indent: 0 !important; + width: 1em !important; + #text-align: left !important; +} +.dijitTextBoxError .dijitValidationContainer { + display: inline; + cursor: default; +} +.dijitSpinner .dijitSpinnerButtonContainer, +.dijitComboBox .dijitArrowButtonContainer { + + border-width: 0 0 0 1px !important; +} +.dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode { + + border-width: 0; +} +.dj_ie .dijit_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode { + clear: both; +} +.dijit_a11y .dijitTextBox .dijitValidationContainer, +.dijit_a11y .dijitTextBox .dijitSpinnerButtonContainer, +.dijit_a11y .dijitComboBox .dijitArrowButtonContainer { + + border: solid black !important; + border-width: 0 0 0 1px !important; +} +.dj_ie .dijitToolbar .dijitComboBox { + + vertical-align: middle; +} +.dijitTextBox .dijitSpinnerButtonContainer { + width: 1em; + position: relative !important; + overflow: hidden; +} +.dijitSpinner .dijitSpinnerButtonInner { + width:1em; + visibility:hidden !important; + overflow-x:hidden; +} +.dijitComboBox .dijitButtonNode, +.dijitSpinnerButtonContainer .dijitButtonNode { + border-width: 0; +} +.dijit_a11y .dijitSpinnerButtonContainer .dijitButtonNode { + border: 0 none !important; +} +.dijit_a11y .dijitTextBox .dijitSpinnerButtonContainer, +.dijit_a11y .dijitSpinner .dijitArrowButtonInner, +.dijit_a11y .dijitSpinnerButtonContainer INPUT { + width: 1em !important; +} +.dijit_a11y .dijitSpinner .dijitArrowButtonInner { + margin: 0 auto !important; +} +.dj_ie .dijit_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { + padding-left: 0.3em !important; + padding-right: 0.3em !important; + margin-left: 0.3em !important; + margin-right: 0.3em !important; + width: 1.4em !important; +} +.dj_ie7 .dijit_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { + padding-left: 0.0em !important; + padding-right: 0.0em !important; + width: 1em !important; +} +.dj_ie6 .dijit_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { + margin-left: 0.1em !important; + margin-right: 0.1em !important; + width: 1em !important; +} +.dj_iequirks .dijit_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { + margin-left: 0 !important; + margin-right: 0 !important; + width: 2em !important; +} +.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { + + padding: 0; + position: absolute !important; + right: 0; + float: none; + height: 50%; + width: 100%; + bottom: auto; + left: 0; + right: auto; +} +.dj_iequirks .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { + width: auto; +} +.dijit_a11y .dijitSpinnerButtonContainer .dijitArrowButton { + overflow: visible !important; +} +.dijitSpinner .dijitSpinnerButtonContainer .dijitDownArrowButton { + top: 50%; + border-top-width: 1px !important; +} +.dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton { + #bottom: 50%; + top: 0; +} +.dijitSpinner .dijitArrowButtonInner { + margin: auto; + overflow-x: hidden; + height: 100% !important; +} +.dj_iequirks .dijitSpinner .dijitArrowButtonInner { + height: auto !important; +} +.dijitSpinner .dijitArrowButtonInner .dijitInputField { + -moz-transform: scale(0.5); + -moz-transform-origin: center top; + -webkit-transform: scale(0.5); + -webkit-transform-origin: center top; + -o-transform: scale(0.5); + -o-transform-origin: center top; + transform: scale(0.5); + transform-origin: left top; + padding-top: 0; + padding-bottom: 0; + padding-left: 0 !important; + padding-right: 0 !important; + width: 100%; +} +.dj_ie .dijitSpinner .dijitArrowButtonInner .dijitInputField { + zoom: 50%; +} +.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButtonInner { + overflow: hidden; +} +.dijit_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { + width: 100%; +} +.dj_iequirks .dijit_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { + width: 1em; +} +.dijitSpinner .dijitArrowButtonInner .dijitInputField { + visibility: hidden; +} +.dijit_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { + vertical-align:top; + visibility: visible; +} +.dijit_a11y .dijitSpinnerButtonContainer { + width: 1em; +} +.dijit_a11y .dijitSpinnerButtonContainer .dijitButtonNode { + border-width: 1px 0px 0px 0px; + border-style: solid !important; +} +.dijitCheckBox, +.dijitRadio, +.dijitCheckBoxInput { + padding: 0; + border: 0; + width: 16px; + height: 16px; + background-position:center center; + background-repeat:no-repeat; + overflow: hidden; +} +.dijitCheckBox INPUT, +.dijitRadio INPUT { + margin: 0; + padding: 0; + display: block; +} +.dijitCheckBoxInput { + + opacity: 0.01; +} +.dj_ie .dijitCheckBoxInput { + filter: alpha(opacity=0); +} +.dijit_a11y .dijitCheckBox, +.dijit_a11y .dijitRadio { + + width: auto !important; + height: auto !important; +} +.dijit_a11y .dijitCheckBoxInput { + opacity: 1; + filter: none; + width: auto; + height: auto; +} +.dijitProgressBarEmpty { + + position:relative;overflow:hidden; + border:1px solid black; + z-index:0; +} +.dijitProgressBarFull { + + position:absolute; + overflow:hidden; + z-index:-1; + top:0; + width:100%; +} +.dj_ie6 .dijitProgressBarFull { + height:1.6em; +} +.dijitProgressBarTile { + + position:absolute; + overflow:hidden; + top:0; + left:0; + bottom:0; + right:0; + margin:0; + padding:0; + width:auto; + height:auto; + background-color:#aaa; + background-attachment: fixed; +} +.dijit_a11y .dijitProgressBarTile { + + border-width:2px; + border-style:solid; + background-color:transparent !important; +} +.dj_ie6 .dijitProgressBarTile { + + position:static; + + height:1.6em; +} +.dijitProgressBarIndeterminate .dijitProgressBarLabel { + visibility:hidden; +} +.dijitProgressBarIndeterminate .dijitProgressBarTile { + +} +.dijitProgressBarIndeterminateHighContrastImage { + display:none; +} +.dijit_a11y .dijitProgressBarIndeterminate .dijitProgressBarIndeterminateHighContrastImage { + display:block; + position:absolute; + top:0; + bottom:0; + margin:0; + padding:0; + width:100%; + height:auto; +} +.dijitProgressBarLabel { + display:block; + position:static; + width:100%; + text-align:center; + background-color:transparent !important; +} +.dijitTooltip { + position: absolute; + z-index: 2000; + display: block; + + left: 50%; + top: -10000px; + overflow: visible; +} +.dijitTooltipContainer { + border: solid black 2px; + background: #b8b5b5; + color: black; + font-size: small; +} +.dijitTooltipFocusNode { + padding: 2px 2px 2px 2px; +} +.dijitTooltipConnector { + position: absolute; +} +.dijit_a11y .dijitTooltipConnector { + display: none; +} +.dijitTooltipData { + display:none; +} +.dijitLayoutContainer { + position: relative; + display: block; + overflow: hidden; +} +body .dijitAlignTop, +body .dijitAlignBottom, +body .dijitAlignLeft, +body .dijitAlignRight { + position: absolute; + overflow: hidden; +} +body .dijitAlignClient { position: absolute; } +.dijitBorderContainer, .dijitBorderContainerNoGutter { + position:relative; + overflow: hidden; +} +.dijitBorderContainerPane, +.dijitBorderContainerNoGutterPane { + position: absolute !important; + z-index: 2; +} +.dijitBorderContainer > .dijitTextArea { + + resize: none; +} +.dijitGutter { + + position: absolute; + font-size: 1px; +} +.dijitSplitter { + position: absolute; + overflow: hidden; + z-index: 10; + background-color: #fff; + border-color: gray; + border-style: solid; + border-width: 0; +} +.dj_ie .dijitSplitter { + z-index: 1; +} +.dijitSplitterActive { + z-index: 11 !important; +} +.dijitSplitterCover { + position:absolute; + z-index:-1; + top:0; + left:0; + width:100%; + height:100%; +} +.dijitSplitterCoverActive { + z-index:3 !important; +} +.dj_ie .dijitSplitterCover { + background: white; + filter: alpha(opacity=0); +} +.dijitSplitterH { + height: 7px; + border-top:1px; + border-bottom:1px; + cursor: ns-resize; +} +.dijitSplitterV { + width: 7px; + border-left:1px; + border-right:1px; + cursor: ew-resize; +} +.dijitSplitContainer { + position: relative; + overflow: hidden; + display: block; +} +.dj_ff3 .dijit_a11y div.dijitSplitter:focus { + outline-style:dotted; + outline-width: 2px; +} +.dijitSplitPane { + position: absolute; +} +.dijitSplitContainerSizerH, +.dijitSplitContainerSizerV { + position:absolute; + font-size: 1px; + cursor: move; + cursor: w-resize; + background-color: ThreeDFace; + border: 1px solid; + border-color: ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight; + margin: 0; +} +.dijitSplitContainerSizerH .thumb, .dijitSplitterV .dijitSplitterThumb { + overflow:hidden; + position:absolute; + top:49%; +} +.dijitSplitContainerSizerV .thumb, .dijitSplitterH .dijitSplitterThumb { + position:absolute; + left:49%; +} +.dijitSplitterShadow, +.dijitSplitContainerVirtualSizerH, +.dijitSplitContainerVirtualSizerV { + font-size: 1px; + background-color: ThreeDShadow; + -moz-opacity: 0.5; + opacity: 0.5; + filter: Alpha(Opacity=50); + margin: 0; +} +.dj_ie .dijitSplitterV, .dijitSplitContainerVirtualSizerH { + cursor: w-resize; +} +.dj_ie .dijitSplitterH, .dijitSplitContainerSizerV, .dijitSplitContainerVirtualSizerV { + cursor: n-resize; +} +.dijit_a11y .dijitSplitterH { + border-top:1px solid #d3d3d3 !important; + border-bottom:1px solid #d3d3d3 !important; +} +.dijit_a11y .dijitSplitterV { + border-left:1px solid #d3d3d3 !important; + border-right:1px solid #d3d3d3 !important; +} +.dijitContentPane { + display: block; + overflow: auto; +} +.dijitContentPaneSingleChild { + + overflow: hidden; +} +.dijitTitlePane { + display: block; + overflow: hidden; +} +.dijitTitlePaneTitle { + cursor: pointer; +} +.dijitFixedOpen { + + cursor: default; +} +.dijitTitlePaneTitle * { + vertical-align: middle; +} +.dijitTitlePane .dijitArrowNodeInner { + + display: none; +} +.dijit_a11y .dijitTitlePane .dijitArrowNodeInner { + + display:inline !important; + font-family: monospace; +} +.dijit_a11y .dijitTitlePane .dijitArrowNode { + + display:none; +} +.dj_ie6 .dijitTitlePaneContentOuter, +.dj_ie6 .dijitTitlePane .dijitTitlePaneTitle { + + zoom: 1; +} +.dijitColorPalette { + border: 1px solid #999; + background: #fff; + position: relative; +} +img.dijitColorPaletteUnder { + + border-style: none; + position: absolute; + left: 0; + top: 0; +} +.dijitColorPalette .dijitPaletteTable { + + padding: 2px 3px 3px 3px; + position: relative; + overflow: hidden; + outline: 0; + border-collapse: separate; +} +.dj_ie6 .dijitColorPalette .dijitPaletteTable, +.dj_ie7 .dijitColorPalette .dijitPaletteTable, +.dj_iequirks .dijitColorPalette .dijitPaletteTable { + + padding: 0; + margin: 2px 3px 3px 3px; +} +.dijitColorPalette .dijitPaletteCell { + + height: 20px; + width: 20px; + font-size: 1px; + vertical-align: middle; + text-align: center; +} +.dijitColorPalette .dijitPaletteImg { + + width: 16px; + height: 14px; + border: 1px solid #999; + cursor: default; + vertical-align: middle; +} +.dj_iequirks .dijitColorPalette .dijitPaletteImg { + margin: 1px; +} +.dijitPaletteTable td { + padding: 0px; +} +.dijitColorPalette .dijitPaletteCellHover .dijitPaletteImg { + + border: 1px solid #000; +} +.dijitColorPalette .dijitPaletteCellActive .dijitPaletteImg, +.dijitColorPalette .dijitPaletteCellSelected .dijitPaletteImg { + border: 2px solid #000; +} +.dijit_a11y .dijitColorPalette .dijitPaletteTable, +.dijit_a11y .dijitColorPalette .dijitPaletteTable * { + + background-color: transparent !important; +} +.dj_gecko .dijit_a11y .dijitColorPalette .dijitPaletteCellFocused .dijitPaletteImg { + border: 3px dotted #000; + margin: -1px; +} +.dijit_a11y .dijitColorPalette .dijitPaletteCellHover .dijitPaletteImg { + border: 2px solid #000 !important; +} +.dijitAccordionContainer { + border:1px solid #b7b7b7; + border-top:0 !important; +} +.dijitAccordionTitle { + cursor: pointer; +} +.dijitAccordionTitleSelected { + cursor: default; +} +.dijitAccordionTitle .arrowTextUp, +.dijitAccordionTitle .arrowTextDown { + display: none; + font-size: 0.65em; + font-weight: normal !important; +} +.dijit_a11y .dijitAccordionTitle .arrowTextUp, +.dijit_a11y .dijitAccordionTitleSelected .arrowTextDown { + display: inline; +} +.dijit_a11y .dijitAccordionTitleSelected .arrowTextUp { + display: none; +} +.dj_ie6 .dijitAccordionTitle, +.dj_iequirks .dijitAccordionTitle { + + zoom: 1; +} +.dijitCalendarContainer { + width: auto; +} +.dijitCalendarContainer th, .dijitCalendarContainer td { + padding: 0; +} +.dijitCalendarNextYear { + margin:0 0 0 0.55em; +} +.dijitCalendarPreviousYear { + margin:0 0.55em 0 0; +} +.dijitCalendarIncrementControl { + vertical-align: middle; +} +.dijitCalendarIncrementControl, +.dijitCalendarDateTemplate, +.dijitCalendarMonthLabel, +.dijitCalendarPreviousYear, +.dijitCalendarNextYear { + cursor: pointer; +} +.dijitCalendarDisabledDate { + color: gray; + text-decoration: line-through; + cursor: default; +} +.dijitSpacer { + + position: relative; + height: 1px; + overflow: hidden; + visibility: hidden; +} +.dijitMenu { + border:1px solid black; + background-color:white; +} +.dijitMenuTable { + border-collapse:collapse; + border-width:0; + background-color:white; +} +.dj_webkit .dijitMenuTable td[colspan="2"]{ + border-right:hidden; +} +.dijitMenuItem { + text-align: left; + white-space: nowrap; + padding:.1em .2em; + cursor:pointer; +} +.dijitMenuPassive .dijitMenuItemHover, +.dijitMenuItemSelected { + + background-color:black; + color:white; +} +.dijitMenuItemIcon, .dijitMenuExpand { + background-repeat: no-repeat; +} +.dijitMenuItemDisabled * { + + opacity:0.5; + cursor:default; +} +.dj_ie .dijit_a11y .dijitMenuItemDisabled, +.dj_ie .dijit_a11y .dijitMenuItemDisabled td, +.dj_ie .dijitMenuItemDisabled *, +.dj_ie .dijitMenuItemDisabled td { + color:gray !important; + filter: alpha(opacity=35); +} +.dijitMenuItemLabel { + position: relative; + vertical-align: middle; +} +.dijit_a11y .dijitMenuItemSelected { + border: 1px dotted black !important; +} +.dj_ff3 .dijit_a11y .dijitMenuItem td { + padding: none !important; + background:none !important; +} +.dijit_a11y .dijitMenuItemSelected .dijitMenuItemLabel { + border-width: 1px; + border-style: solid; +} +.dj_ie8 .dijit_a11y .dijitMenuItemLabel { + position:static; +} +.dijitMenuExpandA11y { + display: none; +} +.dijit_a11y .dijitMenuExpandA11y { + display: inline; +} +.dijitMenuSeparator td { + border: 0; + padding: 0; +} +.dijitMenuSeparatorTop { + height: 50%; + margin: 0; + margin-top:3px; + font-size: 1px; +} +.dijitMenuSeparatorBottom { + height: 50%; + margin: 0; + margin-bottom:3px; + font-size: 1px; +} +.dijitCheckedMenuItemIconChar { + vertical-align: middle; + visibility:hidden; +} +.dijitCheckedMenuItemChecked .dijitCheckedMenuItemIconChar { + visibility: visible; +} +.dijit_a11y .dijitCheckedMenuItemIconChar { + display:inline !important; +} +.dijit_a11y .dijitCheckedMenuItemIcon { + display: none; +} +.dj_ie .dijit_a11y .dijitMenuBar .dijitMenuItem { + + margin: 0px; +} +.dijitStackController .dijitToggleButtonChecked * { + cursor: default; +} +.dijitTabContainerNoLayout { + width: 100%; +} +.dijitTabContainerBottom-tabs, +.dijitTabContainerTop-tabs, +.dijitTabContainerLeft-tabs, +.dijitTabContainerRight-tabs { + overflow: visible !important; +} +.dijitTabContainerBottom-container, +.dijitTabContainerTop-container, +.dijitTabContainerLeft-container, +.dijitTabContainerRight-container { + z-index:0; + overflow: hidden; + border: 1px solid black; +} +.nowrapTabStrip { + width: 50000px; + display: block; + position: relative; +} +.dijitTabListWrapper { + overflow: hidden; +} +.dijit_a11y .tabStripButton img { + + display: none; +} +.dijitTabContainerTop-tabs { + border-bottom: 1px solid black; +} +.dijitTabContainerTop-container { + border-top: 0px; +} +.dijitTabContainerLeft-tabs { + border-right: 1px solid black; + float: left; +} +.dijitTabContainerLeft-container { + border-left: 0px; +} +.dijitTabContainerBottom-tabs { + border-top: 1px solid black; +} +.dijitTabContainerBottom-container { + border-bottom: 0px; +} +.dijitTabContainerRight-tabs { + border-left: 1px solid black; + float: left; +} +.dijitTabContainerRight-container { + border-right: 0px; +} +DIV.dijitTabDisabled, .dj_ie DIV.dijitTabDisabled { + cursor: auto; +} +.dijitTab { + position:relative; + cursor:pointer; + white-space:nowrap; + z-index:3; +} +.dijitTab * { + + vertical-align: middle; +} +.dijitTabChecked { + cursor: default; +} +.dijitTabContainerTop-tabs .dijitTab { + top: 1px; +} +.dijitTabContainerBottom-tabs .dijitTab { + top: -1px; +} +.dijitTabContainerLeft-tabs .dijitTab { + left: 1px; +} +.dijitTabContainerRight-tabs .dijitTab { + left: -1px; +} +.dijitTabContainerTop-tabs .dijitTab, +.dijitTabContainerBottom-tabs .dijitTab { + + display:inline-block; + #zoom: 1; + #display:inline; +} +.dijitTabInnerDiv { + position:relative; +} +.tabStripButton { + z-index: 12; +} +.dijitTabButtonDisabled .tabStripButton { + display: none; +} +.dijitTabCloseButton { + margin-left: 1em; +} +.dijitTabCloseText { + display:none; +} +.dijit_a11y .dijitTabCloseButton { + background-image: none !important; + width: auto !important; + height: auto !important; + border: thin dotted; +} +.dijit_a11y .dijitTabCloseButtonHover { + border:thin solid; +} +.dijit_a11y .dijitTabCloseText { + display: inline; +} +.dijit_a11y .dijitTabChecked { + + border-style:dashed !important; +} +.dijit_a11y .dijitTabInnerDiv { + border-left:none !important; + } +.dijitTabPane, +.dijitStackContainer-child, +.dijitAccordionContainer-child { + + border: none !important; +} +.dijitInlineEditBoxDisplayMode { + border: 1px solid transparent; + cursor: text; +} +.dijit_a11y .dijitInlineEditBoxDisplayMode, +.dj_ie6 .dijitInlineEditBoxDisplayMode { + + border: none; +} +.dijitInlineEditBoxDisplayModeHover, +.dijit_a11y .dijitInlineEditBoxDisplayModeHover, +.dj_ie6 .dijitInlineEditBoxDisplayModeHover { + + background-color: #e2ebf2; + border: solid 1px black; +} +.dijitInlineEditBoxDisplayModeDisabled { + cursor: default; +} +.dijitTreeIndent { + + width: 19px; +} +.dijitTreeRow, .dijitTreeContent { + white-space: nowrap; +} +.dijitTreeRow img { + + vertical-align: middle; +} +.dijitTreeContent { + cursor: default; +} +.dijitExpandoText { + display: none; +} +.dijit_a11y .dijitExpandoText { + display: inline; + padding-left: 10px; + padding-right: 10px; + font-family: monospace; + border-style: solid; + border-width: thin; + cursor: pointer; +} +.dijitTreeLabel { + margin: 0px 4px; +} +.dijitDialog { + position: absolute; + z-index: 999; + overflow: hidden; +} +.dijitDialogTitleBar { + cursor: move; +} +.dijitDialogFixed .dijitDialogTitleBar { + cursor:default; +} +.dijitDialogCloseIcon { + cursor: pointer; +} +.dijitDialogUnderlayWrapper { + position: absolute; + left: 0; + top: 0; + z-index: 998; + display: none; + background: transparent !important; +} +.dijitDialogUnderlay { + background: #eee; + opacity: 0.5; +} +.dj_ie .dijitDialogUnderlay { + filter: alpha(opacity=50); +} +.dijit_a11y .dijitSpinnerButtonContainer, +.dijit_a11y .dijitDialog { + opacity: 1 !important; + background-color: white !important; +} +.dijitDialog .closeText { + display:none; + + position:absolute; +} +.dijit_a11y .dijitDialog .closeText { + display:inline; +} +.dijitSliderMoveable { + z-index:99; + position:absolute !important; + display:block; + vertical-align:middle; +} +.dijitSliderMoveableH { + right:0; +} +.dijitSliderMoveableV { + right:50%; +} +.dijit_a11y DIV.dijitSliderImageHandle, +.dijitSliderImageHandle { + margin:0; + padding:0; + position:relative !important; + border:8px solid gray; + width:0; + height:0; + cursor: pointer; +} +.dj_iequirks .dijit_a11y .dijitSliderImageHandle { + font-size: 0; +} +.dj_ie7 .dijitSliderImageHandle { + overflow: hidden; +} +.dj_ie7 .dijit_a11y .dijitSliderImageHandle { + overflow: visible; +} +.dijit_a11y .dijitSliderFocused .dijitSliderImageHandle { + border:4px solid #000; + height:8px; + width:8px; +} +.dijitSliderImageHandleV { + top:-8px; + right: -50%; +} +.dijitSliderImageHandleH { + left:50%; + top:-5px; + vertical-align:top; +} +.dijitSliderBar { + border-style:solid; + border-color:black; + cursor: pointer; +} +.dijitSliderBarContainerV { + position:relative; + height:100%; + z-index:1; +} +.dijitSliderBarContainerH { + position:relative; + z-index:1; +} +.dijitSliderBarH { + height:4px; + border-width:1px 0; +} +.dijitSliderBarV { + width:4px; + border-width:0 1px; +} +.dijitSliderProgressBar { + background-color:red; + z-index:1; +} +.dijitSliderProgressBarV { + position:static !important; + height:0%; + vertical-align:top; + text-align:left; +} +.dijitSliderProgressBarH { + position:absolute !important; + width:0%; + vertical-align:middle; + overflow:visible; +} +.dijitSliderRemainingBar { + overflow:hidden; + background-color:transparent; + z-index:1; +} +.dijitSliderRemainingBarV { + height:100%; + text-align:left; +} +.dijitSliderRemainingBarH { + width:100% !important; +} +.dijitSliderBumper { + overflow:hidden; + z-index:1; +} +.dijitSliderBumperV { + width:4px; + height:8px; + border-width:0 1px; +} +.dijitSliderBumperH { + width:8px; + height:4px; + border-width:1px 0; +} +.dijitSliderBottomBumper, +.dijitSliderLeftBumper { + background-color:red; +} +.dijitSliderTopBumper, +.dijitSliderRightBumper { + background-color:transparent; +} +.dijitSliderDecoration { + text-align:center; +} +.dijitSliderV TD { + position: relative; +} +.dijitSliderDecorationH { + width: 100%; +} +.dijitSliderDecorationV { + height: 100%; +} +.dijitSliderButton { + font-family:monospace; + margin:0; + padding:0; + display:block; +} +.dijit_a11y .dijitSliderButtonInner { + visibility:visible !important; +} +.dijitSliderButtonContainer { + text-align:center; + height:0; +} +.dijitSliderButtonContainer * { + cursor: pointer; +} +.dijitSlider .dijitButtonNode { + padding:0; + display:block; +} +.dijitRuleContainer { + position:relative; + overflow:visible; +} +.dijitRuleContainerV { + height:100%; + line-height:0; + float:left; + text-align:left; +} +.dj_opera .dijitRuleContainerV { + line-height:2%; +} +.dj_ie .dijitRuleContainerV { + line-height:normal; +} +.dj_gecko .dijitRuleContainerV { + margin:0 0 1px 0; +} +.dijitRuleMark { + position:absolute; + border:1px solid black; + line-height:0; + height:100%; +} +.dijitRuleMarkH { + width:0; + border-top-width:0 !important; + border-bottom-width:0 !important; + border-left-width:0 !important; +} +.dijitRuleLabelContainer { + position:absolute; +} +.dijitRuleLabelContainerH { + text-align:center; + display:inline-block; +} +.dijitRuleLabelH { + position:relative; + left:-50%; +} +.dijitRuleLabelV { + + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} +.dijitRuleMarkV { + height:0; + border-right-width:0 !important; + border-bottom-width:0 !important; + border-left-width:0 !important; + width:100%; + left:0; +} +.dj_ie .dijitRuleLabelContainerV { + margin-top:-.55em; +} +.dijit_a11y .dijitSliderReadOnly, +.dijit_a11y .dijitSliderDisabled { + opacity:0.6; +} +.dj_ie .dijit_a11y .dijitSliderReadOnly .dijitSliderBar, +.dj_ie .dijit_a11y .dijitSliderDisabled .dijitSliderBar { + filter: alpha(opacity=40); +} +.dijit_a11y .dijitSlider .dijitSliderButtonContainer DIV { + font-family: monospace; + font-size: 1em; + line-height: 1em; + height: auto; + width: auto; + margin: 0px 4px; +} +.dijit_a11y .dijitButtonContents .dijitButtonText, +.dijit_a11y .dijitTab .tabLabel { + display: inline !important; +} +.dijitTextArea { + width:100%; + overflow-y: auto; +} +.dijitTextArea[cols] { + width:auto; +} +.dj_ie .dijitTextAreaCols { + width:auto; +} +.dijitToolbarSeparator { + height: 18px; + width: 5px; + padding: 0 1px; + margin: 0; +} +.dijitIEFixedToolbar { + position:absolute; + + top: expression(eval((document.documentElement||document.body).scrollTop)); +} +.dijitEditor { + display: block; +} +.dijitEditorDisabled, +.dijitEditorReadOnly { + color: gray; +} +.dijitTimePickerItemInner { + text-align:center; + border:0; + padding:2px 8px 2px 8px; +} +.dijitTimePickerTick, +.dijitTimePickerMarker { + border-bottom:1px solid gray; +} +.dijitTimePicker .dijitDownArrowButton { + border-top: none !important; +} +.dijitTimePickerTick { + color:#CCC; +} +.dijitTimePickerMarker { + color:black; + background-color:#CCC; +} +.dijitTimePickerItemSelected { + font-weight:bold; + color:#333; + background-color:#b7cdee; +} +.dijitTimePickerItemHover { + background-color:gray; + color:white; + cursor:pointer; +} +.dijit_a11y .dijitTimePickerItemSelected .dijitTimePickerItemInner { + border: solid 4px black; +} +.dijit_a11y .dijitTimePickerItemHover .dijitTimePickerItemInner { + border: dashed 4px black; +} +.dijitToggleButtonIconChar { + + display:none !important; +} +.dijit_a11y .dijitToggleButton .dijitToggleButtonIconChar { + display:inline !important; + visibility:hidden; +} +.dj_ie6 .dijitToggleButtonIconChar, .dj_ie6 .tabStripButton .dijitButtonText { + font-family: "Arial Unicode MS"; +} +.dijit_a11y .dijitToggleButtonChecked .dijitToggleButtonIconChar { + display: inline !important; + visibility:visible !important; +} +.dijitArrowButtonChar { + display:none !important; +} +.dijit_a11y .dijitArrowButtonChar { + display:inline !important; +} +.dijit_a11y .dijitDropDownButton .dijitArrowButtonInner, +.dijit_a11y .dijitComboButton .dijitArrowButtonInner { + display:none !important; +} +.dijitSelect { + margin: 0.2em; + border-collapse: collapse; +} +.dj_ie .dijitSelect, +.dj_ie7 .dijitSelect, +.dj_iequirks .dijitSelect { + vertical-align: middle; +} +.dj_ie8 .dijitSelect .dijitButtonText { + vertical-align: top; +} +.dijitToolbar .dijitSelect { + margin: 0; +} +.dj_webkit .dijitToolbar .dijitSelect { + padding-left: 0.3em; +} +.dijit_a11y .dijitSelectDisabled .dijitButtonNode { + border-style: outset!important; + border-width: medium!important; + border-color: #999 !important; + color:#999 !important; +} +.dijitSelect .dijitButtonContents { + padding: 0px; + background: transparent none; + white-space: nowrap; + text-align: left; +} +.dijitSelectFixedWidth .dijitButtonContents { + width: 100%; +} +.dijitSelectMenu .dijitMenuItemIcon { + + display:none; +} +.dj_ie6 .dijitSelectMenu .dijitMenuItemLabel, +.dj_ie7 .dijitSelectMenu .dijitMenuItemLabel { + + position: static; +} +.dijitSelectLabel * +{ + vertical-align: baseline; +} +.dijitSelectSelectedOption * { + font-weight: bold; +} +.dijitSelectMenu { + border-width: 1px; +} +.dijitSelectMenu .dijitMenuTable { + margin: 0px; + background-color: transparent; +} +.dijitForceStatic { + position: static !important; +} +.dijitReadOnly *, +.dijitDisabled *, +.dijitReadOnly, +.dijitDisabled { + + cursor: default; +} +.dijitIconSave, +.dijitIconPrint, +.dijitIconCut, +.dijitIconCopy, +.dijitIconClear, +.dijitIconDelete, +.dijitIconUndo, +.dijitIconEdit, +.dijitIconNewTask, +.dijitIconEditTask, +.dijitIconEditProperty, +.dijitIconTask, +.dijitIconFilter, +.dijitIconConfigure, +.dijitIconSearch, +.dijitIconApplication, +.dijitIconBookmark, +.dijitIconChart, +.dijitIconConnector, +.dijitIconDatabase, +.dijitIconDocuments, +.dijitIconMail, +.dijitLeaf, +.dijitIconFile, +.dijitIconFunction, +.dijitIconKey, +.dijitIconPackage, +.dijitIconSample, +.dijitIconTable, +.dijitIconUsers, +.dijitFolderClosed, +.dijitIconFolderClosed, +.dijitFolderOpened, +.dijitIconFolderOpen, +.dijitIconError { + background-image: url(../../icons/images/commonIconsObjActEnabled.png); + width: 16px; + height: 16px; +} +.dj_ie6 .dijitIconSave, +.dj_ie6 .dijitIconPrint, +.dj_ie6 .dijitIconCut, +.dj_ie6 .dijitIconCopy, +.dj_ie6 .dijitIconClear, +.dj_ie6 .dijitIconDelete, +.dj_ie6 .dijitIconUndo, +.dj_ie6 .dijitIconEdit, +.dj_ie6 .dijitIconNewTask, +.dj_ie6 .dijitIconEditTask, +.dj_ie6 .dijitIconEditProperty, +.dj_ie6 .dijitIconTask, +.dj_ie6 .dijitIconFilter, +.dj_ie6 .dijitIconConfigure, +.dj_ie6 .dijitIconSearch, +.dj_ie6 .dijitIconApplication, +.dj_ie6 .dijitIconBookmark, +.dj_ie6 .dijitIconChart, +.dj_ie6 .dijitIconConnector, +.dj_ie6 .dijitIconDatabase, +.dj_ie6 .dijitIconDocuments, +.dj_ie6 .dijitIconMail, +.dj_ie6 .dijitLeaf, +.dj_ie6 .dijitIconFile, +.dj_ie6 .dijitIconFunction, +.dj_ie6 .dijitIconKey, +.dj_ie6 .dijitIconPackage, +.dj_ie6 .dijitIconSample, +.dj_ie6 .dijitIconTable, +.dj_ie6 .dijitIconUsers, +.dj_ie6 .dijitFolderClosed, +.dj_ie6 .dijitIconFolderClosed, +.dj_ie6 .dijitFolderOpened, +.dj_ie6 .dijitIconFolderOpen, +.dj_ie6 .dijitIconError { + background-image: url(../../icons/images/commonIconsObjActEnabled8bit.png); +} +.dijitDisabled .dijitIconSave, +.dijitDisabled .dijitIconPrint, +.dijitDisabled .dijitIconCut, +.dijitDisabled .dijitIconCopy, +.dijitDisabled .dijitIconClear, +.dijitDisabled .dijitIconDelete, +.dijitDisabled .dijitIconUndo, +.dijitDisabled .dijitIconEdit, +.dijitDisabled .dijitIconNewTask, +.dijitDisabled .dijitIconEditTask, +.dijitDisabled .dijitIconEditProperty, +.dijitDisabled .dijitIconTask, +.dijitDisabled .dijitIconFilter, +.dijitDisabled .dijitIconConfigure, +.dijitDisabled .dijitIconSearch, +.dijitDisabled .dijitIconApplication, +.dijitDisabled .dijitIconBookmark, +.dijitDisabled .dijitIconChart, +.dijitDisabled .dijitIconConnector, +.dijitDisabled .dijitIconDatabase, +.dijitDisabled .dijitIconDocuments, +.dijitDisabled .dijitIconMail, +.dijitDisabled .dijitLeaf, +.dijitDisabled .dijitIconFile, +.dijitDisabled .dijitIconFunction, +.dijitDisabled .dijitIconKey, +.dijitDisabled .dijitIconPackage, +.dijitDisabled .dijitIconSample, +.dijitDisabled .dijitIconTable, +.dijitDisabled .dijitIconUsers, +.dijitDisabled .dijitFolderClosed, +.dijitDisabled .dijitIconFolderClosed, +.dijitDisabled .dijitFolderOpened, +.dijitDisabled .dijitIconFolderOpen, +.dijitDisabled .dijitIconError { + background-image: url(../../icons/images/commonIconsObjActDisabled.png); +} +.dijitIconSave { background-position: 0px; } +.dijitIconPrint { background-position: -16px; } +.dijitIconCut { background-position: -32px; } +.dijitIconCopy { background-position: -48px; } +.dijitIconClear { background-position: -64px; } +.dijitIconDelete { background-position: -80px; } +.dijitIconUndo { background-position: -96px; } +.dijitIconEdit { background-position: -112px; } +.dijitIconNewTask { background-position: -128px; } +.dijitIconEditTask { background-position: -144px; } +.dijitIconEditProperty { background-position: -166px; } +.dijitIconTask { background-position: -176px; } +.dijitIconFilter { background-position: -192px; } +.dijitIconConfigure { background-position: -208px; } +.dijitIconSearch { background-position: -224px; } +.dijitIconError { background-position: -496px; } +.dijitIconApplication { background-position: -240px; } +.dijitIconBookmark { background-position: -256px; } +.dijitIconChart { background-position: -272px; } +.dijitIconConnector { background-position: -288px; } +.dijitIconDatabase { background-position: -304px; } +.dijitIconDocuments { background-position: -320px; } +.dijitIconMail { background-position: -336px; } +.dijitIconFile, .dijitLeaf { background-position: -352px; } +.dijitIconFunction { background-position: -368px; } +.dijitIconKey { background-position: -384px; } +.dijitIconPackage{ background-position: -400px; } +.dijitIconSample { background-position: -416px; } +.dijitIconTable { background-position: -432px; } +.dijitIconUsers { background-position: -448px; } +.dijitIconFolderClosed, .dijitFolderClosed { background-position: -464px; } +.dijitIconFolderOpen, .dijitFolderOpened { background-position: -480px; } +.nihilo .dojoDndItemBefore { + border-top: 2px solid #369; +} +.nihilo .dojoDndItemAfter { + border-bottom: 2px solid #369; +} +.nihilo .dojoDndItemOver { + cursor:pointer; +} +.nihilo table.dojoDndAvatar { -moz-border-radius: 0; border: 1px solid #ccc; border-collapse: collapse; background-color: #fff; font-size: 75%; color: black;} +.nihilo .dojoDndAvatar td { border: none; } +.nihilo .dojoDndAvatar tr { border: none; } +.nihilo .dojoDndAvatarHeader td { height: 20px; padding: 0 0 0 21px; } +.nihilo .dojoDndAvatarItem td { padding: 2px;} +.nihilo.dojoDndMove .dojoDndAvatarHeader {background-color: #f58383; background-image: url(images/dndNoMove.png); background-repeat: no-repeat; background-position: 2px center;} +.nihilo.dojoDndCopy .dojoDndAvatarHeader {background-color: #f58383; background-image: url(images/dndNoCopy.png); background-repeat: no-repeat; background-position: 2px center;} +.nihilo.dojoDndMove .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-color: #97e68d; background-image: url(images/dndMove.png); background-repeat: no-repeat; background-position: 2px center;} +.nihilo.dojoDndCopy .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-color: #97e68d; background-image: url(images/dndCopy.png); background-repeat: no-repeat; background-position: 2px center;} +.nihilo .dijitContentPane { + padding: 0px; +} +.nihilo .dijitTabContainerTop-dijitContentPane, +.nihilo .dijitTabContainerLeft-dijitContentPane, +.nihilo .dijitTabContainerRight-dijitContentPane, +.nihilo .dijitTabContainerBottom-dijitContentPane, +.nihilo .dijitAccordionContainer-dijitContentPane { + background-color: #fff; + padding: 5px; +} +.nihilo .dijitSplitContainer-dijitContentPane, +.nihilo .dijitBorderContainer-dijitContentPane { + background-color: #fff; + padding: 5px; +} +.nihilo .dijitMenu, +.nihilo .dijitMenuBar { + border: 1px solid #d3d3d3; + margin: 0px; + padding: 0px; + background-color: #fff; +} +.nihilo .dijitBorderContainer .dijitMenuBar { + border: 1px #ccc solid; +} +.nihilo .dijitMenuItem { + font-family: sans-serif; + margin: 0px; + color: #243C5F; +} +.nihilo .dijitMenuBar .dijitMenuItem { + padding: 4px 5px; +} +.nihilo .dijitMenuPreviousButton, .nihilo .dijitMenuNextButton { + font-style: italic; +} +.nihilo .dijitMenuItem TD { + padding:1px; +} +.nihilo .dijitMenuPassive .dijitMenuItemHover, +.nihilo .dijitMenuItemSelected { + background-color: #ffe284; + color: #243C5F; +} +.nihilo .dijitMenuItemIcon { + width: 15px; + height: 15px; +} +.nihilo .dijitMenuExpand { + width:15px; + height:15px; + background-image: url(images/spriteRoundedIconsSmall.png); + background-position: -30px top; +} +.dj_ie6 .nihilo .dijitMenuExpand { + background-image:url(images/spriteRoundedIconsSmall.gif); +} +.nihilo .dijitMenuSeparator { + height: 1px; +} +.nihilo .dijitMenuSeparatorTop { + border-bottom: 1px solid #fff; +} +.nihilo .dijitMenuSeparatorBottom { + border-top: 1px solid #d3d3d3; +} +.nihilo .dijitCheckedMenuItemIconChar { + display: none; +} +.nihilo .dijitCheckedMenuItemIcon { + background-image: url(images/spriteCheckbox.gif); + background-position: -80px; +} +.nihilo .dijitCheckedMenuItemChecked .dijitCheckedMenuItemIcon { + background-position: -64px; +} +.nihilo .dijitTabContainer .tabStripRBtn { + margin-right: 21px; +} +.nihilo .dijitTabContainer .tabStripLBtn { + margin-left: 21px; +} +.nihilo .dijitTabContainerBottom .nowrapTabStrip .dijitTab { + top: 0px; +} +.nihilo .dijitTabPaneWrapper { + background:#fff; + border:1px solid #ccc; + margin: 0; + padding: 0; +} +.nihilo .dijitTabInnerDiv { + padding:0px 3px 0px 0px; + margin: 0 0 0 4px; + background: url(images/tabContainerSprite.gif) no-repeat; + background-position: right -400px; +} +.nihilo .dijitTab { + line-height:normal; + margin:0 2px 0 0; + padding:0px; + background: url(images/tabContainerSprite.gif) no-repeat 0 -300px; + color: #6d6d6d; + border-bottom: 1px #ccc solid; +} +.nihilo .dijitTabInnerDiv .dijitTabContent { + padding:3px 3px 3px 4px; + background: url(images/tabContainerSprite.gif) repeat-x 0 -350px; + position: relative; +} +.nihilo .dijitTabHover { + color: #243C5F; + background: url(images/tabContainerSprite.gif) no-repeat 0px -150px; +} +.nihilo .dijitTabHover .dijitTabInnerDiv { + background: url(images/tabContainerSprite.gif) no-repeat right -250px; +} +.nihilo .dijitTabHover .dijitTabInnerDiv .dijitTabContent { + background: url(images/tabContainerSprite.gif) repeat-x 0 -200px; +} +.nihilo .dijitTabChecked +{ + + background: url(images/tabContainerSprite.gif) no-repeat 0px -0px; +} +.nihilo .dijitTabChecked .dijitTabInnerDiv { + background: url(images/tabContainerSprite.gif) no-repeat right -100px; +} +.nihilo .dijitTabChecked .dijitTabInnerDiv .dijitTabContent { + background: url(images/tabContainerSprite.gif) repeat-x 0 -50px; + color: #243C5F !important; +} +.nihilo .dijitTabContainerNested .dijitTabListWrapper { + height: auto; +} +.nihilo .dijitTabContainerTabListNested { + background: #FDFDFD; + border: none; + margin-bottom: 0px; +} +.nihilo .dijitTabContainerTabListNested .dijitTab { + background: none; + border: none; + top: 0px; +} +.nihilo .dijitTabContainerTabListNested .dijitTab .dijitTabInnerDiv, +.nihilo .dijitTabContainerTabListNested .dijitTab .dijitTabContent { + background: none; +} +.nihilo .dijitTabContainerTabListNested .dijitTabHover .dijitTabContent .tabLabel { + text-decoration: underline; +} +.nihilo .dijitTabContainerTabListNested .dijitTabChecked .tabLabel { + text-decoration: underline; + font-weight: bold; +} +.nihilo .dijitTabContainerSpacerNested { + + height: 0px; + border-bottom: 0px; +} +.nihilo .dijitTabPaneWrapperNested { + border: none; +} +.nihilo .dijitTabCloseButton { + background: url(images/spriteRoundedIconsSmall.png) no-repeat -60px top; + width: 15px; + height: 15px; + margin-top: -1px; +} +.dj_ie6 .nihilo .dijitTabCloseButton { + background: url(images/spriteRoundedIconsSmall.gif) no-repeat -60px top; +} +.nihilo .dijitTabCloseButtonHover { + background: url(images/spriteRoundedIconsSmall.png) no-repeat -60px -15px; +} +.dj_ie6 .nihilo .dijitTabCloseButtonHover { + background: url(images/spriteRoundedIconsSmall.gif) no-repeat -60px -15px; +} +.nihilo .dijitTab .tabLabel { + + min-height: 15px; + display: inline-block; +} +.dj_ie6 .nihilo .dijitTabButtonIcon { + + height: 18px; + width: 1px; +} +.nihilo .dijitTabContainerTop-tabs { + border-bottom: none; + padding-bottom: 1px; + background-position: bottom; + padding-left: 3px; +} +.dj_ie6 .nihilo .dijitTabListContainer-top, +.dj_ie7 .nihilo .dijitTabListContainer-top { + z-index: 3; +} +.dj_ie6 .nihilo .dijitTabContainerTop-tabs, +.dj_ie7 .nihilo .dijitTabContainerTop-tabs { + border-bottom: 1px solid #ccc; + padding-bottom: 0px; +} +.nihilo .dijitTabContainerTopNoStrip { + padding-top: 3px; +} +.nihilo .dijitTabContainerTop-container { + border-top: none; +} +.nihilo .dijitTabContainerTop-tabs .dijitTabChecked { + border-bottom-color: #f8f8f8; +} +.nihilo .dijitTabContainer .dijitTabContainerTopStrip { + border-bottom: none; + padding-top: 1px; + margin-top: 1px; + background: #f2f2f2; + border-top: 1px solid #CCC; + border-right: 1px solid #CCC; + border-left: 1px solid #CCC; +} +.nihilo .dijitTabContainerBottom-tabs { + border-top: none; + background-position: top; + padding-left: 3px; +} +.dj_ie6 .nihilo .dijitTabListContainer-bottom, +.dj_ie7 .nihilo .dijitTabListContainer-bottom { + z-index: 3; +} +.dj_ie6 .nihilo .dijitTabContainerBottom-tabs, +.dj_ie7 .nihilo .dijitTabContainerBottom-tabs { + border-top: 1px solid #ccc; + margin-top: -1px; +} +.nihilo .dijitTabContainerBottom-container { + border-bottom: none; +} +.nihilo .dijitTabContainerBottom-tabs .dijitTab { + border-bottom: none; + border-top: 1px solid #ccc; + background: url(images/tabBottomEnabledSpriteLR.gif) no-repeat bottom left; +} +.nihilo .dijitTabContainerBottom-tabs .dijitTabChecked { + border-top-color: #f8f8f8; +} +.nihilo .dijitTabContainerBottom-tabs .dijitTabInnerDiv .dijitTabContent { + padding-top: 3px; + padding-bottom: 3px; + background: url(images/tabBottomEnabledC.gif) repeat-x bottom left; +} +.nihilo .dijitTabContainerBottom-tabs .dijitTabInnerDiv { + background: url(images/tabBottomEnabledSpriteLR.gif) no-repeat bottom right; +} +.nihilo .dijitTabContainerBottom-tabs .dijitTabHover { + color: #243C5F; + background: url(images/tabBottomHoverSpriteLR.gif) no-repeat bottom left; +} +.nihilo .dijitTabContainerBottom-tabs .dijitTabHover .dijitTabInnerDiv { + background: url(images/tabBottomHoverSpriteLR.gif) no-repeat bottom right; +} +.nihilo .dijitTabContainerBottom-tabs .dijitTabHover .dijitTabInnerDiv .dijitTabContent { + background: url(images/tabBottomHoverC.gif) repeat-x bottom left; +} +.nihilo .dijitTabContainerBottom-tabs .dijitTabChecked { + + background: url(images/tabBottomActiveSpriteLR.gif) no-repeat bottom left; +} +.nihilo .dijitTabContainerBottom-tabs .dijitTabChecked .dijitTabInnerDiv { + background: url(images/tabBottomActiveSpriteLR.gif) no-repeat bottom right; +} +.nihilo .dijitTabContainerBottom-tabs .dijitTabChecked .dijitTabInnerDiv .dijitTabContent { + background: url(images/tabBottomActiveC.gif) repeat-x bottom left; +} +.nihilo .dijitTabContainer .dijitTabContainerBottomStrip { + border: 1px solid #ccc; + background: #f2f2f2; + border-top: none; + padding-bottom: 2px; +} +.nihilo .dijitTabContainerBottom-spacer, +.nihilo .dijitTabContainerTop-spacer { + height: 2px; + border: 1px solid #ccc; + background: #f8f8f8; +} +.nihilo .dijitTabContainerTop-spacer { + margin-top: -1px; +} +.nihilo .dijitTabContainerBottom-spacer { + margin-bottom: -1px; +} +.nihilo .dijitTabContainerRight-tabs { + border-color: #ccc; + padding-top: 3px; +} +.nihilo .dijitTabContainerRight .dijitTabListWrapper { + padding-right: 3px; +} +.nihilo .dijitTabContainerRight-container { + border-right: none; +} +.nihilo .dijitTabContainerRight-tabs .dijitTab { + border-bottom: none; + border-left: 1px solid #ccc; + border-bottom: 1px solid #dedede !important; +} +.dj_ie .nihilo .dijitTabContainerRight-tabs .dijitTabInnerDiv { + border-bottom: solid #fff 1px; +} +.nihilo .dijitTabContainerRight-tabs .dijitTabChecked { + border-left-color: #f8f8f8; +} +.nihilo .dijitTabContainerRight-tabs .dijitTabChecked { + background: url(images/tabRightChecked.gif) no-repeat left top !important; +} +.dj_ie .nihilo .dijitTabContainerRight-tabs .dijitTabChecked .dijitTabInnerDiv, +.dj_ie .nihilo .dijitTabContainerRight-tabs .dijitTabCheckedHover .dijitTabInnerDiv { + border-bottom: solid #efefef 1px; +} +.nihilo .dijitTabContainerRight-tabs .dijitTab { + background: url(images/tabContainerSprite.gif) no-repeat left -350px; +} +.nihilo .dijitTabContainerRight-tabs .dijitTabHover .dijitTab { + background: url(images/tabContainerSprite.gif) no-repeat left -200px; +} +.nihilo .dijitTabContainerRightStrip { + padding-right: 2px; + border: 1px solid #ccc; + border-left: none; + background: #f2f2f2; +} +.nihilo .dijitTabContainerLeft-tabs { + border-color: #ccc; + padding-top: 3px; +} +.nihilo .dijitTabContainerLeft-container { + border-left: none; +} +.nihilo .dijitTabContainerLeft-tabs .dijitTab { + border-right: 1px solid #ccc; + border-bottom: 1px solid #dedede; +} +.nihilo .dijitTabContainerLeft-tabs .dijitTabChecked { + border-right: 1px solid #f8f8f8; +} +.nihilo .dijitTabContainerLeft-tabs .dijitTabInnerDiv { + background: url(images/tabContainerSprite.gif) no-repeat right -350px; +} +.nihilo .dijitTabContainerLeft-tabs .dijitTabHover .dijitTabInnerDiv { + background: url(images/tabContainerSprite.gif) no-repeat right -200px; +} +.nihilo .dijitTabContainerLeft-tabs .dijitTabChecked .dijitTabInnerDiv, +.nihilo .dijitTabContainerLeft-tabs .dijitTabCheckedHover .dijitTabInnerDiv { + background: url(images/tabLeftChecked.gif) no-repeat right top; +} +.dj_ie .nihilo .dijitTabContainerLeft-tabs .dijitTabChecked .dijitTabInnerDiv, +.dj_ie .nihilo .dijitTabContainerLeft-tabs .dijitTabCheckedHover .dijitTabInnerDiv { + border-bottom: solid #efefef 1px; +} +.dj_ie .nihilo .dijitTabContainerLeft-tabs .dijitTabInnerDiv { + border-bottom: solid #fff 1px; +} +.nihilo .dijitTabContainerLeftStrip { + padding-left: 2px; + border: 1px solid #ccc; + border-right: none; +} +.nihilo .dijitTabContainerLeftStrip { + background: #f2f2f2; +} +.nihilo .dijitTabContainerLeft-tabs .dijitTab, +.nihilo .dijitTabContainerRight-tabs .dijitTab { + margin-right:auto; + margin-bottom:2px; +} +.nihilo .dijitTabContainerLeft-spacer, +.nihilo .dijitTabContainerRight-spacer { + width: 2px; + border: 1px solid #ccc; + background: #f8f8f8; +} +.nihilo .dijitTabContainerRight-spacer { + border-right: none; +} +.nihilo .dijitTabContainerRight-tabs { + padding-top: 3px; + height: 100%; +} +.nihilo .dijitTabContainerLeft-tabs { + height: 100%; +} +.nihilo .dijitTabContainerLeft-spacer { + border-left: none; +} +.nihilo .dijitTabContainerTop-dijitContentPane .dijitTabContainerTop-tabs { + border-left: 0px solid #ccc; + border-top: 0px solid #ccc; + border-right: 0px solid #ccc; + padding-top: 0px; + padding-left: 0px; +} +.nihilo .dijitTabContainer .tabStripButton { + margin-right: 0px; +} +.nihilo .tabStripButton .dijitTabInnerDiv .dijitTabContent { + padding: 5px 0 6px; +} +.dj_ie6 .nihilo .tabStripButton .dijitTabInnerDiv .dijitTabContent, +.dj_ie7 .nihilo .tabStripButton .dijitTabInnerDiv .dijitTabContent, +.dj_opera .nihilo .tabStripButton .dijitTabInnerDiv .dijitTabContent { + padding-bottom: 7px; +} +.nihilo .tabStrip-disabled .tabStripButton .dijitTabInnerDiv .dijitTabContent { + padding: 3px 0 5px; +} +.dj_ie6 .nihilo .tabStrip-disabled .tabStripButton .dijitTabInnerDiv .dijitTabContent, +.dj_ie7 .nihilo .tabStrip-disabled .tabStripButton .dijitTabInnerDiv .dijitTabContent, +.dj_opera .nihilo .tabStrip-disabled .tabStripButton .dijitTabInnerDiv .dijitTabContent { + padding-top: 4px; +} +.nihilo .dijitTabStripIcon { + height: 14px; + width: 14px; + background: url(images/spriteRoundedIconsSmall.png) no-repeat left top; +} +.dj_ie6 .nihilo .dijitTabStripIcon { + background-image: url(images/spriteRoundedIconsSmall.gif); +} +.nihilo .dijitTabStripSlideRightIcon { + background-position: -30px top; +} +.nihilo .dijitTabStripMenuIcon { + background-position: -15px top; +} +.nihilo .dijitTabContainerTopNone { + padding-top: 0px; +} +.nihilo .dijitTabContainer .tabStripButton-top { + margin-top: 1px; +} +.nihilo .dijitTabContainer .tabStripButton-bottom { + background: transparent url(images/tabBottomEnabledSpriteLR.gif) no-repeat scroll left bottom; + border-bottom: medium none; + border-top: 1px solid #CCCCCC; +} +.nihilo .dijitTabContainer .tabStripButton-bottom .dijitTabInnerDiv { + background: transparent url(images/tabBottomEnabledSpriteLR.gif) no-repeat scroll right bottom; +} +.nihilo .dijitTabContainer .tabStripButton-bottom .dijitTabContent { + background: transparent; +} +.nihilo .dijitAccordionContainer { + border-color: #ccc; + background-color: #fff; +} +.nihilo .dijitAccordionTitle { + background:#fafafa url(images/titleBar.png) repeat-x top left; + border-top: 1px solid #dedede; + padding: 5px 4px 6px 8px; + font-size: 0.9em; + font-weight: bold; + color: #6d6d6d; +} +.nihilo .dijitAccordionTitleSelected { + background: #f9f9f9 url(images/accordionItemActive.png) top repeat-x; + font-weight: bold; + border-top: 1px solid #dedede; + border-bottom: 1px solid #dedede; + padding: 5px 4px 5px 8px; + color: #243C5F; +} +.nihilo .dijitAccordionArrow { + background:url(images/spriteRoundedIconsSmall.gif) no-repeat -30px top; + width:15px; + height:15px; + margin-top:-1px; +} +.nihilo .dijitAccordionTitleSelected .dijitAccordionArrow { + background:url(images/spriteRoundedIconsSmall.gif) no-repeat -15px top; + margin-top:-1px; +} +.nihilo .dijitAccordionText { + margin-left: 4px; + margin-right: 4px; +} +.nihilo .dijitSplitContainerSizerH { + background:url(images/splitContainerSizerV.png) repeat-y #fff; + border:0; + border-left:0px solid #d3d3d3; + border-right:0px solid #d3d3d3; + width:5px; +} +.nihilo .dijitSplitContainerSizerH .thumb { + background:url(images/splitContainerSizerV-thumb.png) no-repeat; + left:1px; + width:2px; + height:19px; +} +.nihilo .dijitSplitContainerSizerV { + background:url(images/splitContainerSizerH.png) repeat-x #fff; + border:0; + border-top:0px solid #d3d3d3; + border-bottom:0px solid #d3d3d3; + height:2px; +} +.nihilo .dijitSplitContainerSizerV .thumb { + background:url(images/splitContainerSizerH-thumb.png) no-repeat; + top:1px; + width:19px; + height:5px; +} +.nihilo .dijitBorderContainer { + background-color: #fcfcfc; + padding: 5px; +} +.nihilo .dijitSplitContainer-child, +.nihilo .dijitBorderContainer-child { + + border: 1px #ccc solid; +} +.nihilo .dijitBorderContainer-dijitTabContainerTop, +.nihilo .dijitBorderContainer-dijitTabContainerBottom, +.nihilo .dijitBorderContainer-dijitTabContainerLeft, +.nihilo .dijitBorderContainer-dijitTabContainerRight { + + border: none; +} +.nihilo .dijitBorderContainer-dijitBorderContainer { + + border: none; + padding: 0px; +} +.nihilo .dijitSplitterH, +.nihilo .dijitGutterH { + background:#FCFCFC; + border:0; + border-left:0px solid #d3d3d3; + border-right:0px solid #d3d3d3; + height:5px; +} +.nihilo .dijitSplitterH .dijitSplitterThumb { + background:#8BA0BD none; + height:1px; + top:2px; + width:19px; +} +.nihilo .dijitSplitterV, +.nihilo .dijitGutterV { + background:#FCFCFC; + border:0; + border-top:0px solid #d3d3d3; + border-bottom:0px solid #d3d3d3; + width:5px; +} +.nihilo .dijitSplitterV .dijitSplitterThumb { + background:#8BA0BD none; + height:19px; + left:2px; + width:1px; +} +.nihilo .dijitSplitterActive { + font-size: 1px; + background-image: none; + background-color: #aaa; + -moz-opacity: 0.6; + opacity: 0.6; + filter: Alpha(Opacity=60); + margin: 0; +} +.nihilo .dijitInputContainer INPUT, +.nihilo .dijitTextBox { + margin: 0em 0.1em; +} +.nihilo .dijitTextBox, +.nihilo .dijitTextArea { + + background:#fff url(images/validationInputBg.png) repeat-x top left; + #background:#fff url(images/validationInputBg.gif) repeat-x top left; + border:1px solid #d3d3d3; +} +.nihilo .dijitComboBox .dijitButtonNode { + padding: 0 0.2em !important; +} +.nihilo .dijitTextBox .dijitButtonNode { + + border-color: #d3d3d3; +} +.nihilo .dijitTextBoxFocused, +.nihilo .dijitTextAreaFocused { + + border-color:#b3b3b3; +} +.nihilo .dijitTextBoxFocused .dijitButtonNode, +.nihilo .dijitSpinner .dijitUpArrowButtonActive, +.nihilo .dijitSpinner .dijitDownArrowButtonActive { + border-left-color:#d3d3d3; +} +.nihilo .dijitSpinnerFocused .dijitDownArrowButton, +.nihilo .dijitSpinner .dijitUpArrowButtonActive, +.nihilo .dijitSpinner .dijitDownArrowButtonActive { + border-top-color:#d3d3d3; +} +.nihilo .dijitError { + border-color:#b3b3b3; + background-color:#f9f7ba; + background-image:none; +} +.nihilo .dijitErrorFocused { + background-color:#ff6; + background-image:none; +} +.nihilo .dijitValidationIcon { + + width: 16px; + background: transparent url(images/warning.png) no-repeat center center; +} +.nihilo .dijitComboBoxHighlightMatch { + background-color:#d3d3d3; +} +.nihilo .dijitButtonNode { + + + border:1px solid #dedede; + border-bottom:1px solid #dedede; + padding: 0.1em 0.2em 0.2em 0.2em; + background: #fff url(images/buttonEnabled.png) repeat-x top left; +} +.nihilo .dijitSelect .dijitButtonContents { + border-right: none; +} +.nihilo .dijitButtonText { + text-align: center; + padding: 0 0.3em; +} +.nihilo .dijitComboBox .dijitButtonNode { + border-width: 0px 0px 0px 1px; +} +.nihilo .dijitArrowButton { + color: #111; +} +.nihilo .dijitComboButton .dijitDownArrowButton { + padding-right:4px; +} +.nihilo .dijitComboBoxReadOnly, +.nihilo .dijitSpinnerReadOnly, +.nihilo .dijitSpinnerReadOnly .dijitButtonNode, +.nihilo .dijitButtonDisabled .dijitButtonNode, +.nihilo .dijitToggleButtonDisabled .dijitButtonNode, +.nihilo .dijitDropDownButtonDisabled .dijitButtonNode, +.nihilo .dijitComboButtonDisabled .dijitButtonNode, +.nihilo .dijitComboBoxDisabled, +.nihilo .dijitSpinnerDisabled, +.nihilo .dijitSpinnerDisabled .dijitButtonNode { + + border-color: #dedede; + background:#fafafa url(images/buttonDisabled.png) top repeat-x; + opacity: 0.60; +} +.dj_ie6 .nihilo .dijitReadOnly INPUT, +.dj_ie7 .nihilo .dijitReadOnly INPUT, +.dj_ie6 .nihilo .dijitComboButtonDisabled .dijitButtonText, +.dj_ie7 .nihilo .dijitComboButtonDisabled .dijitButtonText { + + color: #aaa; +} +.nihilo .dijitButtonHover .dijitButtonNode, +.nihilo .dijitButtonNodeHover, +.nihilo .dijitToggleButtonHover .dijitButtonNode, +.nihilo .dijitDropDownButtonHover .dijitButtonNode, +.nihilo .dijitButtonContentsHover, +.nihilo .dijitDownArrowButtonHover, +.nihilo .dijitUpArrowButtonHover { + + + color:#243C5F; + background:#fcfcfc url(images/buttonHover.png) repeat-x top left; +} +.nihilo .dijitUpArrowButtonActive, +.nihilo .dijitDownArrowButtonActive, +.nihilo .dijitButtonActive .dijitButtonNode, +.nihilo .dijitToggleButtonActive .dijitButtonNode, +.nihilo .dijitDropDownButtonActive .dijitButtonNode, +.nihilo .dijitComboButton .dijitButtonContentsActive, +.nihilo .dijitStackController .dijitToggleButtonChecked .dijitButtonNode { + + border-color:#dedede; + background: #f5f5f5 url(images/buttonActive.png) top left repeat-x; +} +.nihilo .dijitArrowButtonInner { + background-image: url(images/spriteArrows.png); + background-repeat: no-repeat; + background-position: 0px center; + width: 11px; + height: 11px; +} +.nihilo .dijitLeftArrowButton .dijitArrowButtonInner { + background-position: -11px center; +} +.nihilo .dijitUpArrowButton .dijitArrowButtonInner { + background-position: -22px center; +} +.nihilo .dijitRightArrowButton .dijitArrowButtonInner { + background-position: -33px center; +} +.dj_ie6 .nihilo .dijitArrowButtonInner { + background-image: url(images/spriteArrows.gif); +} +.dj_webkit .nihilo .dijitSpinner .dijitUpArrowButton .dijitArrowButtonInner { + margin-top: -1px; +} +.dj_ie .nihilo .dijitSpinner .dijitUpArrowButton .dijitArrowButtonInner { + margin-top: 1px; +} +.nihilo .dijitSpinnerButtonContainer { + width: auto; + padding: 0; +} +.nihilo .dijitSpinner .dijitArrowButton { + width: 15px; +} +.nihilo .dijitSpinner .dijitSpinnerButtonInner { + width: 15px; +} +.nihilo .dijitSpinner .dijitArrowButtonInner .dijitInputField { + padding: 0; +} +.nihilo .dijitToggleButton .dijitCheckBox, +.nihilo .dijitToggleButton .dijitCheckBoxIcon { + background-image: url(images/spriteCheckbox.gif); +} +.nihilo .dijitCheckBox, +.nihilo .dijitCheckBoxIcon { + background-image: url(images/spriteCheckbox.gif); + background-repeat: no-repeat; + width: 16px; + height: 16px; + margin: 0; + padding: 0; +} +.nihilo .dijitCheckBox, +.nihilo .dijitToggleButton .dijitCheckBoxIcon { + + background-position: -16px; +} +.nihilo .dijitCheckBoxChecked, +.nihilo .dijitToggleButtonChecked .dijitCheckBoxIcon { + + background-position: 0px; +} +.nihilo .dijitCheckBoxDisabled { + + background-position: -48px; +} +.nihilo .dijitCheckBoxCheckedDisabled { + + background-position: -32px; +} +.nihilo .dijitCheckBoxHover { + + background-position: -80px; +} +.nihilo .dijitCheckBoxCheckedHover { + + background-position: -64px; +} +.nihilo .dijitToggleButton .dijitRadio, +.nihilo .dijitToggleButton .dijitRadioIcon { + background-image: url(images/spriteRadio.gif); +} +.nihilo .dijitRadio, +.nihilo .dijitRadioIcon { + background-image: url(images/spriteRadio.gif); + background-repeat: no-repeat; + width: 16px; + height: 16px; + margin: 0; + padding: 0; +} +.nihilo .dijitRadio, +.nihilo .dijitToggleButton .dijitRadioIcon { + + background-position: -16px; +} +.nihilo .dijitRadioChecked, +.nihilo .dijitToggleButtonChecked .dijitRadioIcon { + + background-position: 0px; +} +.nihilo .dijitRadioDisabled { + + background-position: -48px; +} +.nihilo .dijitRadioCheckedDisabled { + + background-position: -32px; +} +.nihilo .dijitRadioHover { + + background-position: -80px; +} +.nihilo .dijitRadioCheckedHover { + + background-position: -64px; +} +.nihilo .dijitSliderProgressBarH { + border-color: #aab0bb; + background: #c0c2c5 url(images/sliderFull.png) repeat-x top left; +} +.nihilo .dijitSliderProgressBarV { + border-color: #aab0bb; + background: #c0c2c5 url(images/sliderFullVertical.png) repeat-y bottom left; +} +.nihilo .dijitSliderFocused .dijitSliderProgressBarH, +.nihilo .dijitSliderFocused .dijitSliderLeftBumper { + background-image:url(images/sliderFullFocus.png); +} +.nihilo .dijitSliderFocused .dijitSliderProgressBarV, +.nihilo .dijitSliderFocused .dijitSliderBottomBumper { + background-image:url(images/sliderFullVerticalFocus.png); +} +.nihilo .dijitSliderRemainingBarV { + border-color: #b4b4b4; + background: #dcdcdc url(images/sliderEmptyVertical.png) repeat-y bottom left; +} +.nihilo .dijitSliderRemainingBarH { + border-color: #b4b4b4; + background: #dcdcdc url(images/sliderEmpty.png) repeat-x top left; +} +.nihilo .dijitSliderBar { + border-style: solid; + outline:1px; + +} +.nihilo .dijitSliderFocused .dijitSliderBar { + border-color:#727272; +} +.nihilo .dijitSliderImageHandleH { + border:0px; + width:15px; + height:18px; + background:url(images/preciseSliderThumb.png) no-repeat center top; + #background:url(images/preciseSliderThumb.gif) no-repeat center top; +} +.nihilo .dijitSliderFocused .dijitSliderImageHandleH { + background-image:url(images/preciseSliderThumbFocus.png); + #background-image:url(images/preciseSliderThumbFocus.gif); +} +.nihilo .dijitSliderLeftBumper { + border-left-width: 1px; + border-color: #aab0bb; + background: #c0c2c5 url(images/sliderFull.png) repeat-x top left; +} +.nihilo .dijitSliderRightBumper { + background: #dcdcdc url(images/sliderEmpty.png) repeat-x top left; + border-color: #b4b4b4; + border-right-width: 1px; +} +.nihilo .dijitSliderImageHandleV { + border:0px; + width:20px; + height:15px; + background:url(images/sliderThumb.png) no-repeat center center; + #background:url(images/sliderThumb.gif) no-repeat center center; +} +.nihilo .dijitSliderFocused .dijitSliderImageHandleV { + background-image:url(images/sliderThumbFocus.png); + #background-image:url(images/sliderThumbFocus.gif); +} +.nihilo .dijitSliderBottomBumper { + border-bottom-width: 1px; + border-color: #aab0bb; + background: #c0c2c5 url(images/sliderFullVertical.png) repeat-y bottom left; +} +.nihilo .dijitSliderTopBumper { + background: #dcdcdc url(images/sliderEmptyVertical.png) repeat-y top left; + border-color: #b4b4b4; + border-top-width: 1px; +} +.nihilo .dijitSliderIncrementIconH, +.nihilo .dijitSliderIncrementIconV { + background:url(images/spriteRoundedIconsSmall.png) no-repeat -45px top; + #background:url(images/spriteRoundedIconsSmall.gif) no-repeat -45px top; + width:15px; height:15px; +} +.nihilo .dijitSliderIncrementIconH { + background:url(images/spriteRoundedIconsSmall.png) no-repeat -30px top; + #background:url(images/spriteRoundedIconsSmall.gif) no-repeat -30px top; +} +.nihilo .dijitSliderDecrementIconH, +.nihilo .dijitSliderDecrementIconV { + width:15px; + height:15px; + background:url(images/spriteRoundedIconsSmall.png) no-repeat -15px top; + #background:url(images/spriteRoundedIconsSmall.gif) no-repeat -15px top; +} +.nihilo .dijitSliderDecrementIconH { + background:url(images/spriteRoundedIconsSmall.png) no-repeat 0px top; + #background:url(images/spriteRoundedIconsSmall.gif) no-repeat 0px top; +} +.nihilo .dijitSliderButtonInner { + visibility:hidden; +} +.nihilo .dijitSliderReadOnly *, +.nihilo .dijitSliderDisabled * { + border-color: #d5d5d5 #bdbdbd #bdbdbd #d5d5d5; + color: #bdbdbd; +} +.nihilo .dijitSliderReadOnly .dijitSliderDecrementIconH, +.nihilo .dijitSliderDisabled .dijitSliderDecrementIconH { + background-position: 0px -15px; +} +.nihilo .dijitSliderReadOnly .dijitSliderIncrementIconH, +.nihilo .dijitSliderDisabled .dijitSliderIncrementIconH { + background-position: -30px -15px; +} +.nihilo .dijitSliderReadOnly .dijitSliderDecrementIconV, +.nihilo .dijitSliderDisabled .dijitSliderDecrementIconV { + background-position: -15px -15px; +} +.nihilo .dijitSliderReadOnly .dijitSliderIncrementIconV, +.nihilo .dijitSliderDisabled .dijitSliderIncrementIconV { + background-position: -45px -15px; +} +.nihilo .dijitSelect .dijitButtonNode { + padding: 0px; +} +.nihilo .dijitSelect .dijitButtonContents { + padding-top: 1px; + background:#fff url(images/validationInputBg.png) repeat-x top left; + #background:#fff url(images/validationInputBg.gif) repeat-x top left; +} +.nihilo .dijitSelectHover .dijitButtonContents, +.nihilo .dijitSelectActive .dijitButtonContents, +.nihilo .dijitSelectOpened .dijitButtonContents, +.nihilo .dijitSelectDisabled .dijitButtonContents, +.nihilo .dijitSelectReadOnly .dijitButtonContents{ + background: transparent none; +} +.dj_ie .nihilo .dijitSelect .dijitButtonContents { + padding-top: 0px; +} +.nihilo .dijitSelect .dijitArrowButton { + padding: 0px 2px; +} +.nihilo .dijitSelectDisabled .dijitButtonNode { + border-color: #dedede; + background:#fafafa url(images/buttonDisabled.png) top repeat-x; +} +.dj_ie .nihilo .dijitSelectDisabled .dijitButtonNode * { + filter: gray() alpha(opacity=50); +} +.nihilo .dijitSelectHover .dijitButtonNode { + color:#000; + background:#fcfcfc url(images/buttonHover.png) repeat-x top left; +} +.nihilo .dijitSelectActive .dijitButtonNode, +.nihilo .dijitSelectOpened .dijitButtonNode { + border-color:#dedede; + background: #f5f5f5 url(images/buttonActive.png) top left repeat-x; +} +.nihilo .dijitSelectMenu td { + padding: 0em; +} +.nihilo .dijitSelectMenu .dijitMenuItemLabel, +.nihilo .dijitSelectMenu .dijitMenuArrowCell { + padding: 0.1em 0.2em; +} +.nihilo .dijitTreeNode { + background : url(images/treeI.gif) no-repeat; + background-position : top left; + background-repeat : repeat-y; + zoom: 1; +} +.nihilo .dijitTreeIsLast { + background: url(images/treeI_half.gif) no-repeat; +} +.nihilo .dijitTreeRowHover { + + background-image: url(images/treeHover.png); + background-repeat: repeat; + background-color: transparent !important; +} +.nihilo .dijitTreeLabel { + font-weight: normal; + margin-left: 3px; +} +.nihilo .dijitTreeIsRoot { + margin-left: 0; + background-image: none; +} +.nihilo .dijitTreeExpando { + width: 18px; + height: 18px; +} +.nihilo .dijitTreeRow { + + padding-bottom: 2px; +} +.nihilo .dijitTreeContent { + min-height: 18px; + min-width: 18px; + padding-left:1px; +} +.nihilo .dijitTreeExpandoOpened { + background: url(images/spriteTree.gif) no-repeat -18px top; +} +.nihilo .dijitTreeExpandoClosed { + background-image: url(images/spriteTree.gif); +} +.nihilo .dijitTreeExpandoLeaf { + background: url(images/spriteTree.gif) no-repeat -36px top; +} +.nihilo .dijitTreeExpandoLoading { + background-image: url(images/treeExpand_loading.gif); +} +.nihilo .dijitTreeIcon { + width: 16px; + height: 16px; +} +.nihilo .dijitFolderOpened { + background: url(images/spriteDivIcons.gif) no-repeat -16px top; +} +.nihilo .dijitFolderClosed { + background: url(images/spriteDivIcons.gif) no-repeat top left; +} +.nihilo .dijitLeaf { + background: url(images/spriteDivIcons.gif) no-repeat -32px top; +} +.nihilo .dijitTreeNode .dojoDndItemBefore, +.nihilo .dijitTreeNode .dojoDndItemAfter { + border-bottom: none; + border-top: none; +} +.nihilo .dijitTreeNode .dojoDndItemBefore .dijitTreeContent { + + border-top: 2px solid #369; +} +.nihilo .dijitTreeNode .dojoDndItemAfter .dijitTreeContent { + + border-bottom: 2px solid #369; +} +.nihilo .dijitProgressBar { + margin:2px 0px 2px 0px; +} +.nihilo .dijitProgressBarEmpty{ + + background:#fff url(images/progressBarEmpty.png) repeat-x center center; + border-color: #f8d582 #f8d582 #f8d582 #f8d582; +} +.nihilo .dijitProgressBarTile{ + + background:#f0f0f0 url(images/progressBarFull.png) repeat-x center center; +} +.nihilo .dijitProgressBarFull { + border-right:1px solid #f8d582; +} +.nihilo .dijitProgressBarLabel { + + color:#293a4b; +} +.nihilo .dijitProgressBarIndeterminate .dijitProgressBarTile { + + background:#cad2de url(images/progressBarAnim.gif) repeat-x center center; +} +.nihilo .dijitTitlePaneTitle { + background: #cccccc; + background:#fff url(images/titleBar.png) repeat-x top left; + border:1px solid #bfbfbf; + padding:3px 4px; + font-size: 0.9em; + font-weight: bold; + color: #6d6d6d; +} +.nihilo .dijitTitlePaneTitleHover { + background: #f9f9f9 url(images/accordionItemActive.png) top repeat-x; +} +.nihilo .dijitTitlePane .dijitOpen .dijitArrowNode, +.nihilo .dijitTitlePane .dijitClosed .dijitArrowNode { + width:15px; + height:15px; +} +.nihilo .dijitTitlePaneTextNode { + color: #243C5F; +} +.nihilo .dijitTitlePane .dijitClosed .dijitArrowNode { + background: url(images/spriteRoundedIconsSmall.png) no-repeat -30px top; +} +.dj_ie6 .nihilo .dijitTitlePane .dijitClosed .dijitArrowNode { + background:url(images/spriteRoundedIconsSmall.gif) no-repeat -30px top; +} +.nihilo .dijitTitlePane .dijitOpen .dijitArrowNode { + background:url(images/spriteRoundedIconsSmall.png) no-repeat -15px top; +} +.dj_ie6 .nihilo .dijitTitlePane .dijitOpen .dijitArrowNode { + background:url(images/spriteRoundedIconsSmall.gif) no-repeat -15px top; +} +.nihilo .dijitTitlePaneContentOuter { + background: #ffffff; + border:1px solid #bfbfbf; + border-top: 0px; +} +.nihilo .dijitTitlePaneContentInner { + padding:10px; +} +.nihilo .dijitTitlePaneTextNode { + margin-left: 4px; + margin-right: 4px; +} +.nihilo .dijitCalendarIncrementControl { + + width:15px; + height:15px; + background-image: url(images/spriteRoundedIconsSmall.png); + background-repeat: no-repeat +} +.dj_ie6 .nihilo .dijitCalendarIncrementControl { + font-size:.1em; + background-image: url(images/spriteRoundedIconsSmall.gif); +} +.nihilo .dijitA11ySideArrow { + display: none; +} +.nihilo .dijitCalendarDecrease { + background-position: top left; +} +.nihilo .dijitCalendarIncrease { + background-position: -30px top; +} +.nihilo table.dijitCalendarContainer { + font-size: 100%; + border-spacing: 0; + border-collapse: separate; + border: 1px solid #ccc; + margin: 0; +} +.nihilo .dijitCalendarMonthContainer th { + + background:#d3d3d3 url(images/titleBar.png) repeat-x top; + padding-top:.3em; + padding-bottom:.2em; + text-align:center; +} +.dj_ie6 .nihilo .dijitCalendarMonthContainer th { + padding-top:.2em; + padding-bottom:.1em; +} +.nihilo .dijitCalendarDayLabelTemplate { + + background:#fefefe; + font-weight:normal; + padding-top:.15em; + padding-bottom:.2em; + border-bottom: 1px solid #eeeeee; + color:#293a4b; + text-align:center; +} +.nihilo .dijitCalendarBodyContainer { + border-bottom: 1px solid #eeeeee; +} +.nihilo .dijitCalendarMonthLabel { + color:#293a4b; + font-weight: bold; +} +.nihilo .dijitCalendarDateTemplate { + + font-size: 0.9em; + font-weight: bold; + text-align: center; + padding: 0.3em 0.3em 0.05em 0.3em; + letter-spacing: 1px; + background-color: #fdfdfd; + border:#fdfdfd solid 1px !important; +} +.dj_ie .nihilo .dijitCalendarDateTemplate { + padding: 0.1em .33em 0.02em .33em; +} +.nihilo .dijitCalendarPreviousMonth, +.nihilo .dijitCalendarNextMonth { + + color:#999999; + background-color:#f5f5f5 !important; + border:#f5f5f5 solid 1px !important; +} +.nihilo .dijitCalendarCurrentMonth { + +} +.nihilo .dijitCalendarDisabledDate { + text-decoration:line-through !important; +} +.nihilo .dijitCalendarCurrentDate { + + text-decoration:underline; + font-weight:bold; +} +.nihilo .dijitCalendarSelectedDate { + + background-color:#ffe284 !important; + color:black !important; + border:#f7c95c solid 1px !important; +} +.nihilo .dijitCalendarYearContainer { + + background:white url(images/titleBar.png) repeat-x top; +} +.nihilo .dijitCalendarYearLabel { + + margin:0; + padding:0.4em 0 0.25em 0; + text-align:center; +} +.nihilo .dijitCalendarSelectedYear { + + color:black; + padding:0.2em; + padding-bottom:0.1em; + background-color:#ffe284 !important; + border:#f7c95c solid 1px !important; +} +.nihilo .dijitCalendarNextYear, +.nihilo .dijitCalendarPreviousYear { + + color:black !important; + font-weight:normal; +} +.nihilo .dijitTimePickerTick, +.nihilo .dijitTimePickerMarker { + border-color: #eeeeee; +} +.nihilo .dijitTimePickerTick { + color:white; +} +.nihilo .dijitTimePickerMarker { + background:#d3d3d3 url(images/titleBar.png) repeat-x top; + color:#293a4b; + font-weight: bold; +} +.nihilo .dijitTimePickerItemSelected { + color: black; + background: #ffe284 none; +} +.nihilo .dijitTimePickerItemHover { + background: #d6d6dd none; + color:black; +} +.nihilo .dijitTimePickerItemHover, +.nihilo .dijitTimePickerItemSelected { + position: relative; + z-index: 10; +} +.nihilo .dijitTimePickerTick .dijitTimePickerItemInner { + font-size:0.4em; +} +.nihilo .dijitTimePickerItemHover .dijitTimePickerItemInner, +.nihilo .dijitTimePickerItemSelected .dijitTimePickerItemInner { + font-size:1em; +} +.nihilo .dijitTimePickerMarkerHover { + border-top: 1px solid #eeeeee; +} +.nihilo .dijitTimePickerTickHover, +.nihilo .dijitTimePickerTickSelected { + margin-top:-0.3em; + margin-bottom:-0.3em; + border-bottom: none; +} +.nihilo .dijitToolbar { + border-bottom: 1px solid #ccc; + background:#eaeaea url(images/titleBar.png) repeat-x top left; +} +.dj_ie6 .nihilo .dijitToolbar { + height: 10px; +} +.nihilo .dijitToolbar .dijitButtonNode, +.nihilo .dijitToolbar .dijitComboButton .dijitButtonContents, +.nihilo .dijitToolbar .dijitComboButton .dijitDownArrowButton { + background: none; + margin: 0px; + padding: 0px; + border: none; + font-size: 12px; +} +.nihilo .dijitToolbar .dijitButton, +.nihilo .dijitToolbar .dijitToggleButton, +.nihilo .dijitToolbar .dijitDropDownButton, +.nihilo .dijitToolbar .dijitComboButton .dijitButtonContents, +.nihilo .dijitToolbar .dijitComboButton .dijitDownArrowButton { + background: none; + padding: 1px; +} +.nihilo .dijitToolbar .dijitButtonChecked, +.nihilo .dijitToolbar .dijitToggleButtonChecked { + background-color:#ffeeb9; + border:1px solid #f7c95c; + padding: 0; +} +.nihilo .dijitToolbar .dijitButtonCheckedHover, +.nihilo .dijitToolbar .dijitToggleButtonCheckedHover + { + background-color:#ffe284; + border:1px solid #f7c95c; + padding: 0; +} +.nihilo .dijitToolbar .dijitButtonHover, +.nihilo .dijitToolbar .dijitToggleButtonHover, +.nihilo .dijitToolbar .dijitDropDownButtonHover, +.nihilo .dijitToolbar .dijitComboButton .dijitButtonContentsHover, +.nihilo .dijitToolbar .dijitComboButton .dijitDownArrowButtonHover { + + border: 1px solid #f7c95c; + padding: 0; + background-color:#ffe284; +} +.nihilo .dijitToolbar label { + padding: 3px 3px 0 6px; +} +.dj_ie .nihilo .dijitToolbar .dijitComboButton .dijitButtonContentsFocused, +.dj_ie .nihilo .dijitToolbar .dijitComboButton .dijitDownArrowButtonFocused { + + border: 1px #555 dotted !important; + padding: 0px; +} +.nihilo .dijitDialog { + background: #eee; + border: 1px solid #d3d3d3; + -webkit-box-shadow: 0px 5px 10px #adadad; + padding: 0px; +} +.nihilo .dijitDialog .dijitDialogTitle { + + font-size: 0.9em; + color: #3243C5F; + font-weight: bold; + padding: 0px 4px; +} +.nihilo .dijitDialog .dijitDialogPaneContent { + background: #ffffff; + border-top: 1px solid #d3d3d3; + padding:10px; +} +.nihilo .dijitDialogTitleBar { + + background: #fafafa url(images/titleBar.png) repeat-x top left; + padding: 5px 6px 3px 6px; + outline:0; +} +.nihilo .dijitDialogCloseIcon { + + background-image: url(images/spriteRoundedIconsSmall.png); + background-repeat: no-repeat; + background-position: -60px 0px; + position: absolute; + vertical-align: middle; + right: 6px; + top: 4px; + height: 15px; + width: 15px; +} +.dj_ie6 .nihilo .dijitDialogCloseIcon { + background-image: url(images/spriteRoundedIconsSmall.gif); +} +.nihilo .dijitDialogCloseIconHover { + background-position: -60px -15px; +} +.nihilo .dijitTooltip, +.nihilo .dijitTooltipDialog { + + background: transparent; +} +.dijitTooltipBelow { + + padding-top: 10px; +} +.dijitTooltipAbove { + + padding-bottom: 10px; +} +.nihilo .dijitTooltipContainer { + + background-color: #fff; + border:1px solid #d3d3d3; + padding:0.45em; +} +.nihilo .dijitTooltipConnector { + + border:0px; + z-index: 2; +} +.nihilo .dijitTooltipABRight .dijitTooltipConnector { + + left: auto !important; + right: 6px; +} +.nihilo .dijitTooltipBelow .dijitTooltipConnector { + + top: 0px; + left: 6px; + background:url(images/tooltipConnectorUp.png) no-repeat top left; + width:17px; + height:11px; +} +.dj_ie .nihilo .dijitTooltipBelow .dijitTooltipConnector { + background-image: url(images/tooltipConnectorUp.gif); +} +.nihilo .dijitTooltipAbove .dijitTooltipConnector { + + bottom: 0px; + left: 6px; + background:url(images/tooltipConnectorDown.png) no-repeat top left; + width:17px; + height:11px; +} +.dj_ie .nihilo .dijitTooltipAbove .dijitTooltipConnector { + background-image: url(images/tooltipConnectorDown.gif); +} +.dj_ie6 .nihilo .dijitTooltipAbove .dijitTooltipConnector { + bottom: -5px; +} +.nihilo .dijitTooltipLeft { + padding-right: 10px; +} +.dj_ie6 .nihilo .dijitTooltipLeft { + padding-left: 11px; +} +.nihilo .dijitTooltipLeft .dijitTooltipConnector { + + right: 0px; + bottom: 3px; + background:url(images/tooltipConnectorRight.png) no-repeat top left; + width:11px; + height:17px; +} +.dj_ie .nihilo .dijitTooltipLeft .dijitTooltipConnector { + background-image: url(images/tooltipConnectorRight.gif); +} +.nihilo .dijitTooltipRight { + padding-left: 10px; +} +.nihilo .dijitTooltipRight .dijitTooltipConnector { + + left: 0px; + bottom: 3px; + background:url(images/tooltipConnectorLeft.png) no-repeat top left; + width:11px; + height:17px; +} +.dj_ie .nihilo .dijitTooltipRight .dijitTooltipConnector { + background-image: url(images/tooltipConnectorLeft.gif); +} +.nihilo .dijitMenu, +.nihilo .dijitMenuBar { + border: 1px solid #d3d3d3; + margin: 0px; + padding: 0px; + background-color: #fff; +} +.nihilo .dijitBorderContainer .dijitMenuBar { + border: 1px #ccc solid; +} +.nihilo .dijitMenuItem { + font-family: sans-serif; + margin: 0px; + color: #243C5F; +} +.nihilo .dijitMenuBar .dijitMenuItem { + padding: 4px 5px; +} +.nihilo .dijitMenuPreviousButton, .nihilo .dijitMenuNextButton { + font-style: italic; +} +.nihilo .dijitMenuItem TD { + padding:1px; +} +.nihilo .dijitMenuPassive .dijitMenuItemHover, +.nihilo .dijitMenuItemSelected { + background-color: #ffe284; + color: #243C5F; +} +.nihilo .dijitMenuItemIcon { + width: 15px; + height: 15px; +} +.nihilo .dijitMenuExpand { + width:15px; + height:15px; + background-image: url(images/spriteRoundedIconsSmall.png); + background-position: -30px top; +} +.dj_ie6 .nihilo .dijitMenuExpand { + background-image:url(images/spriteRoundedIconsSmall.gif); +} +.nihilo .dijitMenuSeparator { + height: 1px; +} +.nihilo .dijitMenuSeparatorTop { + border-bottom: 1px solid #fff; +} +.nihilo .dijitMenuSeparatorBottom { + border-top: 1px solid #d3d3d3; +} +.nihilo .dijitCheckedMenuItemIconChar { + display: none; +} +.nihilo .dijitCheckedMenuItemIcon { + background-image: url(images/spriteCheckbox.gif); + background-position: -80px; +} +.nihilo .dijitCheckedMenuItemChecked .dijitCheckedMenuItemIcon { + background-position: -64px; +} +.nihilo .dijitToolbar .dijitToolbarSeparator { + background: url(../../icons/images/editorIconsEnabled.png); +} +.nihilo .dijitEditorIcon { + background-image: url(../../icons/images/editorIconsEnabled.png); + background-repeat: no-repeat; + width: 18px; + height: 18px; + text-align: center; +} +.nihilo .dijitDisabled .dijitEditorIcon { + background-image: url(../../icons/images/editorIconsDisabled.png); +} +.dijitEditorIcon { + background-image: url(../../icons/images/editorIconsEnabled.png); + background-repeat: no-repeat; + width: 18px; + height: 18px; + text-align: center; +} +.dijitDisabled .dijitEditorIcon { + background-image: url(../../icons/images/editorIconsDisabled.png); +} +.dijitEditorIconSep { background-position: 0px; } +.dijitEditorIconSave { background-position: -18px; } +.dijitEditorIconPrint { background-position: -36px; } +.dijitEditorIconCut { background-position: -54px; } +.dijitEditorIconCopy { background-position: -72px; } +.dijitEditorIconPaste { background-position: -90px; } +.dijitEditorIconDelete { background-position: -108px; } +.dijitEditorIconCancel { background-position: -126px; } +.dijitEditorIconUndo { background-position: -144px; } +.dijitEditorIconRedo { background-position: -162px; } +.dijitEditorIconSelectAll { background-position: -180px; } +.dijitEditorIconBold { background-position: -198px; } +.dijitEditorIconItalic { background-position: -216px; } +.dijitEditorIconUnderline { background-position: -234px; } +.dijitEditorIconStrikethrough { background-position: -252px; } +.dijitEditorIconSuperscript { background-position: -270px; } +.dijitEditorIconSubscript { background-position: -288px; } +.dijitEditorIconJustifyCenter { background-position: -306px; } +.dijitEditorIconJustifyFull { background-position: -324px; } +.dijitEditorIconJustifyLeft { background-position: -342px; } +.dijitEditorIconJustifyRight { background-position: -360px; } +.dijitEditorIconIndent { background-position: -378px; } +.dijitEditorIconOutdent { background-position: -396px; } +.dijitEditorIconListBulletIndent { background-position: -414px; } +.dijitEditorIconListBulletOutdent { background-position: -432px; } +.dijitEditorIconListNumIndent { background-position: -450px; } +.dijitEditorIconListNumOutdent { background-position: -468px; } +.dijitEditorIconTabIndent { background-position: -486px; } +.dijitEditorIconLeftToRight { background-position: -504px; } +.dijitEditorIconRightToLeft, .dijitEditorIconToggleDir { background-position: -522px; } +.dijitEditorIconBackColor { background-position: -540px; } +.dijitEditorIconForeColor { background-position: -558px; } +.dijitEditorIconHiliteColor { background-position: -576px; } +.dijitEditorIconNewPage { background-position: -594px; } +.dijitEditorIconInsertImage { background-position: -612px; } +.dijitEditorIconInsertTable { background-position: -630px; } +.dijitEditorIconSpace { background-position: -648px; } +.dijitEditorIconInsertHorizontalRule { background-position: -666px; } +.dijitEditorIconInsertOrderedList { background-position: -684px; } +.dijitEditorIconInsertUnorderedList { background-position: -702px; } +.dijitEditorIconCreateLink { background-position: -720px; } +.dijitEditorIconUnlink { background-position: -738px; } +.dijitEditorIconViewSource { background-position: -756px; } +.dijitEditorIconRemoveFormat { background-position: -774px; } +.dijitEditorIconFullScreen { background-position: -792px; } +.dijitEditorIconWikiword { background-position: -810px; } + +.dijitColorPalette { + border:1px solid #d3d3d3; + background:#fff; + -moz-border-radius: 0px !important; +} diff --git a/lib/dijit/themes/nihilo/nihilo_rtl.css b/lib/dijit/themes/nihilo/nihilo_rtl.css new file mode 100644 index 000000000..b47f8431b --- /dev/null +++ b/lib/dijit/themes/nihilo/nihilo_rtl.css @@ -0,0 +1,224 @@ + +.dijitRtl .dijitPlaceHolder { + left: auto; + right: 0; +} +.dijitMenuItemRtl { + text-align: right; +} +.dj_iequirks .dijitComboButtonRtl BUTTON { + + float:left; +} +.dijit_a11y .dijitTextBoxRtl .dijitValidationContainer, +.dijitTextBoxRtl .dijitSpinnerButtonContainer, +.dijitComboBoxRtl .dijitArrowButtonContainer { + + border-right-width: 1px !important; + border-right-style: solid !important; + border-left-width: 0px !important; + border-left-style: none !important; +} +.dijit_a11y .dijitTextBoxRtl .dijitValidationContainer, +.dijit_a11y .dijitTextBoxRtl .dijitSpinnerButtonContainer, +.dijit_a11y .dijitComboBoxRtl .dijitArrowButtonContainer { + border-right: 1px solid black !important; + border-left: 0px none black !important; +} +.dijitSpinnerRtl .dijitSpinnerButtonContainer .dijitArrowButton { + right: 0; + left: auto; +} +.dijitTextBoxRtl .dijitSpinnerButtonContainer, +.dijitTextBoxRtl .dijitValidationContainer, +.dijitTextBoxRtl .dijitArrowButtonContainer { + float: left; +} +.dijitCalendarRtl .dijitCalendarNextYear { + margin:0 0.55em 0 0; +} +.dijitCalendarRtl .dijitCalendarPreviousYear { + margin:0 0 0 0.55em; +} +.dijitSliderRtl .dijitSliderImageHandleV { + left:auto; +} +.dijitSliderRtl .dijitSliderImageHandleH { + left:-50%; +} +.dijitSliderRtl .dijitSliderMoveableH { + right:auto; + left:0; +} +.dijitSliderRtl .dijitRuleContainerV { + float:right; +} +.dj_ie .dijitSliderRtl .dijitRuleContainerV { + text-align:right; +} +.dj_ie .dijitSliderRtl .dijitRuleLabelV { + text-align:left; +} +.dj_ie .dijitSliderRtl .dijitRuleLabelH { + zoom:1; +} +.dijitSliderRtl .dijitSliderProgressBarH { + + float:right; + right:0; + left:auto; +} +.dijitRtl .dijitContentPaneLoading, .dijitRtl .dijitContentPaneError { + background-position:right; + padding-right:25px; +} +.dijitTabRtl .dijitTabCloseButton { + margin-left: 0px; + margin-right: 1em; +} +.dj_ie .dijitTimePickerRtl .dijitTimePickerItem { + width:100%; +} +.dijitColorPaletteRtl .dijitColorPaletteUnder { + + left: auto; + right: 0; +} +.dijitSelectRtl .dijitButtonContents { + text-align: right; +} +.dijitRtl .nihilo .dijitTab { + margin-right:0; + margin-left:2px; +} +.dijitRtl .nihilo .dijitTabContainer .tabStripButton { + margin-left: 0; +} +.dijitRtl .nihilo .dijitTabContainerTopStrip, +.dijitRtl .nihilo .dijitTabContainerBottomStrip, +.dijitRtl .nihilo .dijitTabContainerTop-tabs, +.dijitRtl .nihilo .dijitTabContainerBottom-tabs { + padding-left: 0; + padding-right: 3px; +} +.dijitRtl .nihilo .dijitTabInnerDiv { + padding-left: 3px; + padding-right: 4px; +} +.dijitRtl .nihilo .dijitTabPaneWrapper { + #zoom: 1; +} +.dj_ie-rtl .nihilo .dijitTabContainerLeft-tabs { + margin-left: 0px !important; +} +.dj_ie-rtl .nihilo .dijitTabContainerRight-tabs { + margin-right: 0px !important; +} +.dijitRtl .nihilo .dijitTabContainerLeft-tabs .dijitTab, +.dijitRtl .nihilo .dijitTabContainerRight-tabs .dijitTab { + margin-left:0px; +} +.dj_ie-rtl .nihilo .dijitTab .dijitTabInnerDiv{ + width : 1%; +} +.dijitRtl .nihilo .dijitAccordionArrow { + background-position: 0px top; +} +.dijitRtl .nihilo .dijitAccordionTitleSelected .dijitAccordionArrow { + + background-position: -15px top; +} +.dijitRtl .nihilo .dijitSliderProgressBarH, +.dijitRtl .nihilo .dijitSliderRemainingBarH, +.dijitRtl .nihilo .dijitSliderLeftBumper, +.dijitRtl .nihilo .dijitSliderRightBumper, +.dijitRtl .nihilo .dijitSliderTopBumper { + background-position: top right; +} +.dijitRtl .nihilo .dijitSliderProgressBarV, +.dijitRtl .nihilo .dijitSliderRemainingBarV, +.dijitRtl .nihilo .dijitSliderBottomBumper { + background-position: bottom right; +} +.dijitRtl .nihilo .dijitSliderLeftBumper { + border-left-width: 0px; + border-right-width: 1px; +} +.dijitRtl .nihilo .dijitSliderRightBumper { + border-left-width: 1px; + border-right-width: 0px; +} +.dijitRtl .nihilo .dijitSliderIncrementIconH { + background:url(images/spriteRoundedIconsSmall.png) no-repeat left top; + #background:url(images/spriteRoundedIconsSmall.gif) no-repeat left top; +} +.dijitRtl .nihilo .dijitSliderDecrementIconH { + background:url(images/spriteRoundedIconsSmall.png) no-repeat -30px top; + #background:url(images/spriteRoundedIconsSmall.gif) no-repeat -30px top; +} +.dijitRtl .nihilo .dijitComboBox .dijitButtonNode { + border-width: 0px 0px 0px 1px; +} +.dijitRtl .nihilo .dijitSelect .dijitButtonContents { + border-left: none; + border-right-width: 1px; +} +.dijitRtl .nihilo .dijitTreeNode, +.dijitRtl .nihilo .dijitTreeExpandoLeaf { + + background-image: none; +} +.dijitRtl .nihilo .dijitTreeContent { + padding-left: 0px; + padding-right: 1px; +} +.dijitRtl .nihilo .dijitTreeExpandoOpened { + + background: url(images/spriteTree_rtl.gif) no-repeat -18px top; +} +.dijitRtl .nihilo .dijitTreeExpandoClosed { + + background-image: url(images/spriteTree_rtl.gif); +} +.dijitRtl .nihilo .dijitTitlePane .dijitClosed .dijitArrowNode { + background-position: 0px top; +} +.dj_ie6-rtl .nihilo .dijitTitlePane .dijitClosed .dijitArrowNode { + background-position: 0px top; +} +.dijitRtl .nihilo .dijitCalendarDecrease { + background-position: -30px top; +} +.dijitRtl .nihilo .dijitCalendarIncrease { + background-position: 0px top; +} +.dj_ie6-rtl .nihilo .dijitTimePickerMarkerHover, +.dj_ie7-rtl .nihilo .dijitTimePickerMarkerHover { + border-top: 0px; +} +.dijitRtl .nihilo .dijitDialogTitleBar .dijitDialogCloseIcon { + right: auto; + left: 5px; +} +.dijitRtl .nihilo .dijitMenuItem .dijitMenuItemIcon { + padding-left: 3px; + padding-right: 0px; +} +.dijitRtl .nihilo .dijitMenuItem .dijitMenuExpand { + background-position: 0px top; +} +.dijitRtl .nihilo .dijitEditorIcon { + background-image: url(../../icons/images/editorIconsEnabled_rtl.png); +} +.dijitRtl .nihilo .dijitDisabled .dijitEditorIcon { + background-image: url(../../icons/images/editorIconsDisabled_rtl.png); +} +.dijitEditorRtl .dijitEditorIcon { + background-image: url(../../icons/images/editorIconsEnabled_rtl.png); +} +.dijitEditorRtlDisabled .dijitEditorIcon { + background-image: url(../../icons/images/editorIconsDisabled_rtl.png); +} +.dijitToolbarRtl .dijitToolbarSeparator { + background-image: url(../../icons/images/editorIconsEnabled_rtl.png); +} diff --git a/lib/dijit/themes/soria/Calendar.css b/lib/dijit/themes/soria/Calendar.css new file mode 100644 index 000000000..b2576c0e0 --- /dev/null +++ b/lib/dijit/themes/soria/Calendar.css @@ -0,0 +1,117 @@ + +.soria .dijitCalendarIncrementControl { + + width:15px; + height:15px; + background-image: url("images/spriteRoundedIconsSmall.png"); + background-repeat: no-repeat; +} +.dj_ie6 .soria .dijitCalendarIncrementControl { + font-size:.1em; + background-image: url("images/spriteRoundedIconsSmall.gif"); +} +.soria .dijitA11ySideArrow { + display: none; +} +.soria .dijitCalendarDecrease { + background-position: top left; +} +.soria .dijitCalendarIncrease { + background-position: -30px top; +} +.soria table.dijitCalendarContainer { + font-size: 100%; + border-spacing: 0; + border-collapse: separate; + border: 1px solid #b1badf; + margin: 0; +} +.soria .dijitCalendarMonthContainer th { + + background:#bed7f0 url("images/titleBar.png") repeat-x top; + padding-top:.3em; + padding-bottom:.2em; + text-align:center; +} +.dj_ie6 .soria .dijitCalendarMonthContainer th { + padding-top:.2em; + padding-bottom:.1em; +} +.soria .dijitCalendarDayLabelTemplate { + + background:#bed7f0; + font-weight:normal; + padding-top:.15em; + padding-bottom:.2em; + border-bottom: 1px solid #b1badf; + color:#293a4b; + text-align:center; +} +.soria .dijitCalendarBodyContainer { + border-bottom: 1px solid #eeeeee; +} +.soria .dijitCalendarMonthLabel { + color:#293a4b; + font-weight: bold; +} +.soria .dijitCalendarDateTemplate { + + font-size: 0.9em; + font-weight: bold; + text-align: center; + padding: 0.3em 0.3em 0.05em 0.3em; + letter-spacing: 1px; + background-color: #fff; + border:#fff solid 1px !important; +} +.dj_ie .soria .dijitCalendarDateTemplate { + padding: 0.1em .33em 0.02em .33em; +} +.soria .dijitCalendarPreviousMonth, +.soria .dijitCalendarNextMonth { + + color:#999999; + background-color:#fdfdfd !important; + border:#fdfdfd solid 1px !important; +} +.soria .dijitCalendarCurrentMonth { + +} +.soria .dijitCalendarDisabledDate { + text-decoration:line-through !important; +} +.soria .dijitCalendarCurrentDate { + + text-decoration:underline; + font-weight:bold; +} +.soria .dijitCalendarSelectedDate { + + background-color:#b9cbf1 !important; + color:black !important; + border:#4b5aaa solid 1px !important; +} +.soria .dijitCalendarYearContainer { + + background:white url("images/titleBar.png") repeat-x top; +} +.soria .dijitCalendarYearLabel { + + margin:0; + padding:0.4em 0 0.25em 0; + text-align:center; +} +.soria .dijitCalendarSelectedYear { + + color:black; + padding:0.2em; + padding-bottom:0.1em; + background-color:#b9cbf1 !important; + border:#4b5aaa solid 1px !important; +} +.soria .dijitCalendarNextYear, +.soria .dijitCalendarPreviousYear { + + color:black !important; + font-weight:normal; +} diff --git a/lib/dijit/themes/soria/Calendar_rtl.css b/lib/dijit/themes/soria/Calendar_rtl.css new file mode 100644 index 000000000..bcfa495d8 --- /dev/null +++ b/lib/dijit/themes/soria/Calendar_rtl.css @@ -0,0 +1,7 @@ + +.dijitRtl .soria .dijitCalendarDecrease { + background-position: -30px top; +} +.dijitRtl .soria .dijitCalendarIncrease { + background-position: 0px top; +} diff --git a/lib/dijit/themes/soria/ColorPalette.css b/lib/dijit/themes/soria/ColorPalette.css new file mode 100644 index 000000000..5a51275d9 --- /dev/null +++ b/lib/dijit/themes/soria/ColorPalette.css @@ -0,0 +1,5 @@ +.dijitColorPalette { + border:1px solid #cbcbcb; + background:#fff; + -moz-border-radius: 0px !important; +} diff --git a/lib/dijit/themes/soria/Common.css b/lib/dijit/themes/soria/Common.css new file mode 100644 index 000000000..362a867f1 --- /dev/null +++ b/lib/dijit/themes/soria/Common.css @@ -0,0 +1,19 @@ + +.soria .dojoDndItemBefore { + border-top: 2px solid #369; +} +.soria .dojoDndItemAfter { + border-bottom: 2px solid #369; +} +.soria .dojoDndItemOver { + cursor:pointer; +} +.soria table.dojoDndAvatar { -moz-border-radius: 0; border: 1px solid #ccc; border-collapse: collapse; background-color: #fff; font-size: 75%; color: black;} +.soria .dojoDndAvatar td { border: none; } +.soria .dojoDndAvatar tr { border: none; } +.soria .dojoDndAvatarHeader td { height: 20px; padding: 0 0 0 21px; } +.soria .dojoDndAvatarItem td { padding: 2px;} +.soria.dojoDndMove .dojoDndAvatarHeader {background-color: #f58383; background-image: url(images/dndNoMove.png); background-repeat: no-repeat; background-position: 2px center;} +.soria.dojoDndCopy .dojoDndAvatarHeader {background-color: #f58383; background-image: url(images/dndNoCopy.png); background-repeat: no-repeat; background-position: 2px center;} +.soria.dojoDndMove .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-color: #97e68d; background-image: url(images/dndMove.png); background-repeat: no-repeat; background-position: 2px center;} +.soria.dojoDndCopy .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-color: #97e68d; background-image: url(images/dndCopy.png); background-repeat: no-repeat; background-position: 2px center;} diff --git a/lib/dijit/themes/soria/Dialog.css b/lib/dijit/themes/soria/Dialog.css new file mode 100644 index 000000000..b4a185115 --- /dev/null +++ b/lib/dijit/themes/soria/Dialog.css @@ -0,0 +1,131 @@ + +.soria .dijitDialog { + background: #eee; + border: 1px solid #cbcbcb; + -webkit-box-shadow: 0px 5px 10px #adadad; + padding: 0px; +} +.soria .dijitDialog .dijitDialogTitle { + + font-weight: bold; + padding: 0px 4px; + font-size: 0.9em; + color: #3243C5F; +} +.soria .dijitDialog .dijitDialogPaneContent { + background: #ffffff; + border-top: 1px solid #b1badf; + padding:10px; +} +.soria .dijitDialogTitleBar { + + background: #fafafa url("images/titleBar.png") repeat-x top left; + padding: 5px 6px 3px 6px; + outline:0; +} +.soria .dijitDialogCloseIcon { + + background-image: url("images/spriteRoundedIconsSmallBl.png"); + background-repeat: no-repeat; + background-position: -60px 0px; + position: absolute; + vertical-align: middle; + right: 6px; + top: 4px; + height: 15px; + width: 15px; +} +.dj_ie6 .soria .dijitDialogCloseIcon { + background-image: url("images/spriteRoundedIconsSmallBl.gif"); +} +.soria .dijitDialogCloseIconHover { + background-position: -60px -15px; +} +.soria .dijitTooltip, +.soria .dijitTooltipDialog { + + background: transparent; +} +.dijitTooltipBelow { + + padding-top: 10px; +} +.dijitTooltipAbove { + + padding-bottom: 10px; +} +.soria .dijitTooltipContainer { + + background-color: #fff; + border:1px solid #cbcbcb; + padding:0.45em; +} +.soria .dijitTooltipConnector { + + border:0px; + z-index: 2; +} +.soria .dijitTooltipABRight .dijitTooltipConnector { + + left: auto !important; + right: 6px; +} +.soria .dijitTooltipBelow .dijitTooltipConnector { + + top: 0px; + left: 6px; + background:url("images/tooltipConnectorUp.png") no-repeat top left; + width:17px; + height:11px; +} +.dj_ie .soria .dijitTooltipBelow .dijitTooltipConnector { + background-image: url("images/tooltipConnectorUp.gif"); +} +.soria .dijitTooltipAbove .dijitTooltipConnector { + + bottom: 0px; + left: 6px; + background:url("images/tooltipConnectorDown.png") no-repeat top left; + width:17px; + height:11px; +} +.dj_ie .soria .dijitTooltipAbove .dijitTooltipConnector { + background-image: url("images/tooltipConnectorDown.gif"); +} +.dj_ie .soria .dijitTooltipAbove .dijitTooltipConnector { + background-image: url("images/tooltipConnectorDown.gif"); +} +.dj_ie6 .soria .dijitTooltipAbove .dijitTooltipConnector { + bottom: -5px; +} +.soria .dijitTooltipLeft { + padding-right: 10px; +} +.dj_ie6 .soria .dijitTooltipLeft { + padding-left: 11px; +} +.soria .dijitTooltipLeft .dijitTooltipConnector { + + right: 0px; + bottom: 3px; + background:url("images/tooltipConnectorRight.png") no-repeat top left; + width:11px; + height:17px; +} +.dj_ie .soria .dijitTooltipLeft .dijitTooltipConnector { + background-image: url("images/tooltipConnectorRight.gif"); +} +.soria .dijitTooltipRight { + padding-left: 10px; +} +.soria .dijitTooltipRight .dijitTooltipConnector { + + left: 0px; + bottom: 3px; + background:url("images/tooltipConnectorLeft.png") no-repeat top left; + width:11px; + height:17px; +} +.dj_ie .soria .dijitTooltipRight .dijitTooltipConnector { + background-image: url("images/tooltipConnectorLeft.gif"); +} diff --git a/lib/dijit/themes/soria/Dialog_rtl.css b/lib/dijit/themes/soria/Dialog_rtl.css new file mode 100644 index 000000000..41db9ce02 --- /dev/null +++ b/lib/dijit/themes/soria/Dialog_rtl.css @@ -0,0 +1,5 @@ + +.dijitRtl .soria .dijitDialogTitleBar .dijitDialogCloseIcon { + right: auto; + left: 5px; +} diff --git a/lib/dijit/themes/soria/Editor.css b/lib/dijit/themes/soria/Editor.css new file mode 100644 index 000000000..c30665986 --- /dev/null +++ b/lib/dijit/themes/soria/Editor.css @@ -0,0 +1,13 @@ +.soria .dijitToolbar .dijitToolbarSeparator { + background: url('../../icons/images/editorIconsEnabled.png'); +} +.soria .dijitEditorIcon { + background-image: url('../../icons/images/editorIconsEnabled.png'); + background-repeat: no-repeat; + width: 18px; + height: 18px; + text-align: center; +} +.soria .dijitDisabled .dijitEditorIcon { + background-image: url('../../icons/images/editorIconsDisabled.png'); +} diff --git a/lib/dijit/themes/soria/Editor_rtl.css b/lib/dijit/themes/soria/Editor_rtl.css new file mode 100644 index 000000000..4499e5232 --- /dev/null +++ b/lib/dijit/themes/soria/Editor_rtl.css @@ -0,0 +1,7 @@ + +.dijitRtl .soria .dijitEditorIcon { + background-image: url('../../icons/images/editorIconsEnabled_rtl.png'); +} +.dijitRtl .soria .dijitDisabled .dijitEditorIcon { + background-image: url('../../icons/images/editorIconsDisabled_rtl.png'); +} diff --git a/lib/dijit/themes/soria/Menu.css b/lib/dijit/themes/soria/Menu.css new file mode 100644 index 000000000..9d6b97a0e --- /dev/null +++ b/lib/dijit/themes/soria/Menu.css @@ -0,0 +1,62 @@ + +.soria .dijitMenu, +.soria .dijitMenuBar { + border: 1px solid #cbcbcb; + margin: 0px; + padding: 0px; + background-color: #fff; +} +.soria .dijitBorderContainer .dijitMenuBar { + border:1px solid #B1BADF; +} +.soria .dijitMenuItem { + font-family: sans-serif; + margin: 0px; + color: #243C5F; +} +.soria .dijitMenuBar .dijitMenuItem { + padding: 4px 5px; +} +.soria .dijitMenuPreviousButton, .soria .dijitMenuNextButton { + font-style: italic; +} +.soria .dijitMenuItem TD { + padding:1px; +} +.soria .dijitMenuPassive .dijitMenuItemHover, +.soria .dijitMenuItemSelected { + background-color: #d9e6f9; + color: #243C5F; +} +.soria .dijitMenuItemIcon { + width: 15px; + height: 15px; +} +.soria .dijitMenuExpand { + width:15px; + height:15px; + background-image: url('images/spriteRoundedIconsSmall.png'); + background-position: -30px top; +} +.dj_ie6 .soria .dijitMenuExpand { + background-image: url('images/spriteRoundedIconsSmall.gif'); +} +.soria .dijitMenuSeparator { + height: 1px; +} +.soria .dijitMenuSeparatorTop { + border-bottom: 1px solid #fff; +} +.soria .dijitMenuSeparatorBottom { + border-top: 1px solid #8ba0bd; +} +.soria .dijitCheckedMenuItemIconChar { + display: none; +} +.soria .dijitCheckedMenuItemIcon { + background-image: url('images/spriteCheckbox.gif'); + background-position: -80px; +} +.soria .dijitCheckedMenuItemChecked .dijitCheckedMenuItemIcon { + background-position: -64px; +} diff --git a/lib/dijit/themes/soria/Menu_rtl.css b/lib/dijit/themes/soria/Menu_rtl.css new file mode 100644 index 000000000..6fa9a6a6a --- /dev/null +++ b/lib/dijit/themes/soria/Menu_rtl.css @@ -0,0 +1,8 @@ + +.dijitRtl .soria .dijitMenuItem .dijitMenuItemIcon { + padding-left: 3px; + padding-right: 0px; +} +.dijitRtl .soria .dijitMenuItem .dijitMenuExpand { + background-position: left top; +} diff --git a/lib/dijit/themes/soria/ProgressBar.css b/lib/dijit/themes/soria/ProgressBar.css new file mode 100644 index 000000000..566d0488c --- /dev/null +++ b/lib/dijit/themes/soria/ProgressBar.css @@ -0,0 +1,24 @@ + +.soria .dijitProgressBar { + margin:2px 0px 2px 0px; +} +.soria .dijitProgressBarEmpty{ + + background:#fff url("images/progressBarEmpty.png") repeat-x center center; + border-color: #8ba0bd; +} +.soria .dijitProgressBarTile{ + + background:#f0f0f0 url("images/progressBarFull.png") repeat-x center center; +} +.soria .dijitProgressBarFull { + border-right:1px solid #8ba0bd; +} +.soria .dijitProgressBarLabel { + + color:#293a4b; +} +.soria .dijitProgressBarIndeterminate .dijitProgressBarTile { + + background:#cad2de url("images/progressBarAnim.gif") repeat-x center center; +} diff --git a/lib/dijit/themes/soria/TimePicker.css b/lib/dijit/themes/soria/TimePicker.css new file mode 100644 index 000000000..761aac944 --- /dev/null +++ b/lib/dijit/themes/soria/TimePicker.css @@ -0,0 +1,42 @@ + +.soria .dijitTimePickerTick, +.soria .dijitTimePickerMarker { + border-color: #b1badf; +} +.soria .dijitTimePickerTick { + color:white; +} +.soria .dijitTimePickerMarker { + background:#bed7f0 url("images/titleBar.png") repeat-x top; + color:#293a4b; + font-weight: bold; +} +.soria .dijitTimePickerItemSelected { + color: black; + background: #b9cbf1 none; +} +.soria .dijitTimePickerItemHover { + background: #60a1ea none; + color:white; +} +.soria .dijitTimePickerItemHover, +.soria .dijitTimePickerItemSelected { + position: relative; + z-index: 10; +} +.soria .dijitTimePickerTick .dijitTimePickerItemInner { + font-size:0.4em; +} +.soria .dijitTimePickerItemHover .dijitTimePickerItemInner, +.soria .dijitTimePickerItemSelected .dijitTimePickerItemInner { + font-size:1em; +} +.soria .dijitTimePickerMarkerHover { + border-top: 1px solid #94b9ef; +} +.soria .dijitTimePickerTickHover, +.soria .dijitTimePickerTickSelected { + margin-top:-0.3em; + margin-bottom:-0.3em; + border-bottom: none; +} diff --git a/lib/dijit/themes/soria/TimePicker_rtl.css b/lib/dijit/themes/soria/TimePicker_rtl.css new file mode 100644 index 000000000..39835b00f --- /dev/null +++ b/lib/dijit/themes/soria/TimePicker_rtl.css @@ -0,0 +1,4 @@ +.dj_ie6-rtl .soria .dijitTimePickerMarkerHover, +.dj_ie7-rtl .soria .dijitTimePickerMarkerHover { + border-top: 0px; +} diff --git a/lib/dijit/themes/soria/TitlePane.css b/lib/dijit/themes/soria/TitlePane.css new file mode 100644 index 000000000..a1676796a --- /dev/null +++ b/lib/dijit/themes/soria/TitlePane.css @@ -0,0 +1,48 @@ + +.soria .dijitTitlePaneTitle { + background: #cccccc; + background:#fff url("images/titleBar.png") repeat-x top left; + border:1px solid #bfbfbf; + padding:3px 4px; + font-size: 0.9em; + font-weight: bold; + color: #6d6d6d; +} +.soria .dijitTitlePaneTitleHover { + background: #f9f9f9 url("images/accordionItemActive.png") top repeat-x; +} +.soria .dijitTitlePaneTitle * { + vertical-align: middle; +} +.soria .dijitTitlePane .dijitOpen .dijitArrowNode, +.soria .dijitTitlePane .dijitClosed .dijitArrowNode { + width:15px; + height:15px; +} +.soria .dijitTitlePaneTextNode { + color: #243C5F; +} +.soria .dijitTitlePane .dijitClosed .dijitArrowNode { + background: url('images/spriteRoundedIconsSmall.png') no-repeat -30px top; +} +.dj_ie6 .soria .dijitTitlePane .dijitClosed .dijitArrowNode { + background:url('images/spriteRoundedIconsSmall.gif') no-repeat -30px top; +} +.soria .dijitTitlePane .dijitOpen .dijitArrowNode { + background:url('images/spriteRoundedIconsSmall.png') no-repeat -15px top; +} +.dj_ie6 .soria .dijitTitlePane .dijitOpen .dijitArrowNode { + background:url('images/spriteRoundedIconsSmall.gif') no-repeat -15px top; +} +.soria .dijitTitlePaneContentOuter { + background: #ffffff; + border: 1px solid #bfbfbf; + border-top: 0px; +} +.soria .dijitTitlePaneContentInner { + padding:10px; +} +.soria .dijitTitlePaneTextNode { + margin-left: 4px; + margin-right: 4px; +} diff --git a/lib/dijit/themes/soria/TitlePane_rtl.css b/lib/dijit/themes/soria/TitlePane_rtl.css new file mode 100644 index 000000000..1ac12452f --- /dev/null +++ b/lib/dijit/themes/soria/TitlePane_rtl.css @@ -0,0 +1,6 @@ +.dijitRtl .soria .dijitTitlePane .dijitClosed .dijitArrowNode { + background-position: 0px top; +} +.dj_ie6-rtl .soria .dijitTitlePane .dijitClosed .dijitArrowNode { + background-position: 0px top; +} diff --git a/lib/dijit/themes/soria/Toolbar.css b/lib/dijit/themes/soria/Toolbar.css new file mode 100644 index 000000000..4eb55a4e1 --- /dev/null +++ b/lib/dijit/themes/soria/Toolbar.css @@ -0,0 +1,56 @@ +.soria .dijitToolbar { + border-bottom: 1px solid #ccc; + background:#eaeaea url("images/titleBar.png") repeat-x top left; +} +.dj_ie6 .soria .dijitToolbar { + height: 10px; +} +.soria .dijitToolbar .dijitButtonNode, +.soria .dijitToolbar .dijitComboButton .dijitButtonContents, +.soria .dijitToolbar .dijitComboButton .dijitDownArrowButton { + background: none; + margin: 0px; + padding: 0px; + border: none; + font-size: 12px; +} +.soria .dijitToolbar .dijitButton, +.soria .dijitToolbar .dijitToggleButton, +.soria .dijitToolbar .dijitDropDownButton, +.soria .dijitToolbar .dijitComboButton .dijitButtonContents, +.soria .dijitToolbar .dijitComboButton .dijitDownArrowButton { + background: none; + padding: 1px; +} +.soria .dijitToolbar .dijitButtonChecked, +.soria .dijitToolbar .dijitToggleButtonChecked { + background-color:#d8e5f8; + border:1px solid #316ac5; + padding: 0px; +} +.soria .dijitToolbar .dijitButtonCheckedHover, +.soria .dijitToolbar .dijitToggleButtonCheckedHover + { + background-color:#9abbea; + border:1px solid #316ac5; + padding: 0px; +} +.soria .dijitToolbar .dijitButtonHover, +.soria .dijitToolbar .dijitToggleButtonHover, +.soria .dijitToolbar .dijitDropDownButtonHover, +.soria .dijitToolbar .dijitComboButton .dijitButtonContentsHover, +.soria .dijitToolbar .dijitComboButton .dijitDownArrowButtonHover { + + border: 1px solid #316ac5; + padding: 0px; + background-color:#9abbea; +} +.soria .dijitToolbar label { + padding: 3px 3px 0 6px; +} +.dj_ie .soria .dijitToolbar .dijitComboButton .dijitButtonContentsFocused, +.dj_ie .soria .dijitToolbar .dijitComboButton .dijitDownArrowButtonFocused { + + border: 1px #777 dotted !important; + padding: 0px; +} diff --git a/lib/dijit/themes/soria/Tree.css b/lib/dijit/themes/soria/Tree.css new file mode 100644 index 000000000..60934d414 --- /dev/null +++ b/lib/dijit/themes/soria/Tree.css @@ -0,0 +1,78 @@ + +.soria .dijitTreeNode { + background : url('images/treeI.gif') no-repeat; + background-position : top left; + background-repeat : repeat-y; + zoom: 1; +} +.soria .dijitTreeRowHover { + + background-image: url(images/treeHover.png); + background-repeat: repeat; + background-color: transparent !important; +} +.soria .dijitTreeIsLast { + background: url('images/treeI_half.gif') no-repeat; +} +.soria .dijitTreeLabel { + font-weight: normal; + margin-left: 3px; +} +.soria .dijitTreeIsRoot { + margin-left: 0; + background-image: none; +} +.soria .dijitTreeExpando { + width: 18px; + height: 18px; +} +.soria .dijitTreeRow { + + padding-bottom: 2px; +} +.soria .dijitTreeContent { + min-height: 18px; + min-width: 18px; + padding-left:1px; +} +.soria .dijitTreeRowSelected .dijitTreeLabel{ + background:#b8cbec; +} +.soria .dijitTreeExpandoOpened { + background: url('images/spriteTree.gif') no-repeat -18px top; +} +.soria .dijitTreeExpandoClosed { + background-image: url('images/spriteTree.gif'); +} +.soria .dijitTreeExpandoLeaf { + background: url('images/spriteTree.gif') no-repeat -36px top; +} +.soria .dijitTreeExpandoLoading { + background-image: url('images/treeExpand_loading.gif'); +} +.soria .dijitTreeIcon { + width: 16px; + height: 16px; +} +.soria .dijitFolderOpened { + background: url('images/spriteDivIcons.gif') no-repeat -16px top; +} +.soria .dijitFolderClosed { + background: url('images/spriteDivIcons.gif') no-repeat top left; +} +.soria .dijitLeaf { + background: url('images/spriteDivIcons.gif') no-repeat -32px top; +} +.soria .dijitTreeNode .dojoDndItemBefore, +.soria .dijitTreeNode .dojoDndItemAfter { + border-bottom: none; + border-top: none; +} +.soria .dijitTreeNode .dojoDndItemBefore .dijitTreeContent { + + border-top: 2px solid #369; +} +.soria .dijitTreeNode .dojoDndItemAfter .dijitTreeContent { + + border-bottom: 2px solid #369; +} diff --git a/lib/dijit/themes/soria/Tree_rtl.css b/lib/dijit/themes/soria/Tree_rtl.css new file mode 100644 index 000000000..41dd308b4 --- /dev/null +++ b/lib/dijit/themes/soria/Tree_rtl.css @@ -0,0 +1,18 @@ + +.dijitRtl .soria .dijitTreeNode, +.dijitRtl .soria .dijitTreeExpandoLeaf { + + background-image: none; +} +.dijitRtl .soria .dijitTreeContent { + padding-left: 0px; + padding-right: 1px; +} +.dijitRtl .soria .dijitTreeExpandoOpened { + + background: url('images/spriteTree_rtl.gif') no-repeat -18px top; +} +.dijitRtl .soria .dijitTreeExpandoClosed { + + background-image: url('images/spriteTree_rtl.gif'); +} diff --git a/lib/dijit/themes/soria/form/Button.css b/lib/dijit/themes/soria/form/Button.css new file mode 100644 index 000000000..9bf643709 --- /dev/null +++ b/lib/dijit/themes/soria/form/Button.css @@ -0,0 +1,105 @@ + +.soria .dijitButtonNode { + + border: 1px solid #8ba0bd; + border-bottom:1px solid #657c9c; + padding: 0.1em 0.2em 0.2em 0.2em; + background: #bcd5f0 url("../images/buttonEnabled.png") repeat-x top left; +} +.soria .dijitSelect .dijitButtonContents { + border-right: none; +} +.soria .dijitButtonText { + text-align: center; + padding: 0 0.3em; +} +.soria .dijitArrowButton { + color: #111; +} +.soria .dijitComboButton .dijitDownArrowButton { + padding-right:4px; +} +.soria .dijitTextBoxReadOnly, +.soria .dijitTextBoxReadOnly .dijitButtonNode, +.soria .dijitButtonDisabled .dijitButtonNode, +.soria .dijitToggleButtonDisabled .dijitButtonNode, +.soria .dijitDropDownButtonDisabled .dijitButtonNode, +.soria .dijitComboButtonDisabled .dijitButtonNode, +.soria .dijitTextBoxDisabled, +.soria .dijitTextBoxDisabled .dijitButtonNode { + + border-color: #b9bbdd #b9bbdd #b9bbdd #b9bbdd; + background:#c3d3e5 url("../images/buttonDisabled.png") top repeat-x; + opacity: 0.60; +} +.dj_ie6 .soria .dijitReadOnly INPUT, +.dj_ie7 .soria .dijitReadOnly INPUT, +.dj_ie6 .soria .dijitComboButtonDisabled .dijitButtonText, +.dj_ie7 .soria .dijitComboButtonDisabled .dijitButtonText { + + color: #aaa; +} +.soria .dijitButtonHover .dijitButtonNode, +.soria .dijitButtonNodeHover, +.soria .dijitToggleButtonHover .dijitButtonNode, +.soria .dijitDropDownButtonHover .dijitButtonNode, +.soria .dijitButtonContentsHover, +.soria .dijitUpArrowButtonHover, +.soria .dijitDownArrowButtonHover { + + + color:#243C5F; + background:#acc5e2 url("../images/buttonHover.png") repeat-x top left; +} +.soria .dijitButtonActive .dijitButtonNode, +.soria .dijitToggleButtonActive .dijitButtonNode, +.soria .dijitDropDownButtonActive .dijitButtonNode, +.soria .dijitComboButtonActive .dijitButtonContents, +.soria .dijitStackController .dijitToggleButtonChecked .dijitButtonNode { + + border-color:#657c9c; + background: #91b4e5 url("../images/buttonActive.png") top left repeat-x; +} +.soria .dijitUpArrowButtonActive, +.soria .dijitDownArrowButtonActive { + + background: #91b4e5 url("../images/buttonActive.png") top left repeat-x; +} +.soria .dijitArrowButtonInner { + background-image: url("../images/spriteArrows.png"); + background-repeat: no-repeat; + background-position: 0px center; + width: 11px; + height: 11px; +} +.soria .dijitComboBox .dijitArrowButtonInner { + background-position: 0 center; +} +.soria .dijitLeftArrowButton .dijitArrowButtonInner { + background-position: -11px center; +} +.soria .dijitUpArrowButton .dijitArrowButtonInner { + background-position: -22px center; +} +.soria .dijitRightArrowButton .dijitArrowButtonInner { + background-position: -33px center; +} +.dj_ie6 .soria .dijitArrowButtonInner { + background-image: url("../images/spriteArrows.gif"); +} +.dj_ie .soria .dijitSpinner .dijitUpArrowButton .dijitArrowButtonInner { + margin-top: 1px; +} +.soria .dijitSpinnerButtonContainer { + width: auto; + padding: 0; +} +.soria .dijitSpinner .dijitArrowButton { + width: 15px; +} +.soria .dijitSpinner .dijitSpinnerButtonInner { + width: 15px; +} +.soria .dijitSpinner .dijitArrowButtonInner .dijitInputField { + padding: 0; +} diff --git a/lib/dijit/themes/soria/form/Button_rtl.css b/lib/dijit/themes/soria/form/Button_rtl.css new file mode 100644 index 000000000..50a5c5e0b --- /dev/null +++ b/lib/dijit/themes/soria/form/Button_rtl.css @@ -0,0 +1,7 @@ +.dijitRtl .soria .dijitComboBox .dijitButtonNode { + border-width: 0px 0px 0px 1px; +} +.dijitRtl .soria .dijitSelect .dijitButtonContents { + border-left: none; + border-right-width: 1px; +} diff --git a/lib/dijit/themes/soria/form/Checkbox.css b/lib/dijit/themes/soria/form/Checkbox.css new file mode 100644 index 000000000..8227dcb74 --- /dev/null +++ b/lib/dijit/themes/soria/form/Checkbox.css @@ -0,0 +1,40 @@ + +.soria .dijitToggleButton .dijitCheckBox, +.soria .dijitToggleButton .dijitCheckBoxIcon { + background-image: url('../images/spriteCheckbox.gif'); +} +.soria .dijitCheckBox, +.soria .dijitCheckBoxIcon { + background-image: url('../images/spriteCheckbox.gif'); + background-repeat: no-repeat; + width: 16px; + height: 16px; + margin: 0; + padding: 0; +} +.soria .dijitCheckBox, +.soria .dijitToggleButton .dijitCheckBoxIcon { + + background-position: -16px; +} +.soria .dijitCheckBoxChecked, +.soria .dijitToggleButtonChecked .dijitCheckBoxIcon { + + background-position: 0px; +} +.soria .dijitCheckBoxDisabled { + + background-position: -48px; +} +.soria .dijitCheckBoxCheckedDisabled { + + background-position: -32px; +} +.soria .dijitCheckBoxHover { + + background-position: -80px; +} +.soria .dijitCheckBoxCheckedHover { + + background-position: -64px; +} diff --git a/lib/dijit/themes/soria/form/Common.css b/lib/dijit/themes/soria/form/Common.css new file mode 100644 index 000000000..0fe92d2a1 --- /dev/null +++ b/lib/dijit/themes/soria/form/Common.css @@ -0,0 +1,51 @@ + +.soria .dijitInputContainer INPUT, +.soria .dijitTextBox { + margin: 0em 0.1em; +} +.soria .dijitTextBox, +.soria .dijitTextArea { + + background:#fff url("../images/validationInputBg.png") repeat-x top left; + #background:#fff url('../images/validationInputBg.gif') repeat-x top left; + border:1px solid #8ba0bd; +} +.soria .dijitComboBox .dijitButtonNode { + padding: 0 0.2em; +} +.soria .dijitTextBox .dijitButtonNode { + + border-color: #8ba0bd; +} +.soria .dijitTextBoxFocused, +.soria .dijitTextAreaFocused { + + border-color:#406b9b; +} +.soria .dijitTextBoxFocused .dijitButtonNode, +.soria .dijitSpinner .dijitUpArrowButtonActive, +.soria .dijitSpinner .dijitDownArrowButtonActive { + border-left-color:#8ba0bd; +} +.soria .dijitSpinnerFocused .dijitDownArrowButton, +.soria .dijitSpinner .dijitUpArrowButtonActive, +.soria .dijitSpinner .dijitDownArrowButtonActive { + border-top-color:#8ba0bd; +} +.soria .dijitError { + border-color:#f3d118; + background-color:#f9f7ba; + background-image:none; +} +.soria .dijitErrorFocused { + background-color:#ff6; + background-image:none; +} +.soria .dijitValidationIcon { + + width: 16px; + background: transparent url('../images/warning.png') no-repeat center center; +} +.soria .dijitComboBoxHighlightMatch { + background-color:#f9f7ba; +} diff --git a/lib/dijit/themes/soria/form/RadioButton.css b/lib/dijit/themes/soria/form/RadioButton.css new file mode 100644 index 000000000..543694e28 --- /dev/null +++ b/lib/dijit/themes/soria/form/RadioButton.css @@ -0,0 +1,40 @@ + +.soria .dijitToggleButton .dijitRadio, +.soria .dijitToggleButton .dijitRadioIcon { + background-image: url('../images/spriteRadio.gif'); +} +.soria .dijitRadio, +.soria .dijitRadioIcon { + background-image: url('../images/spriteRadio.gif'); + background-repeat: no-repeat; + width: 16px; + height: 16px; + margin: 0; + padding: 0; +} +.soria .dijitRadio, +.soria .dijitToggleButton .dijitRadioIcon { + + background-position: -16px; +} +.soria .dijitRadioChecked, +.soria .dijitToggleButtonChecked .dijitRadioIcon { + + background-position: 0px; +} +.soria .dijitRadioDisabled { + + background-position: -48px; +} +.soria .dijitRadioCheckedDisabled { + + background-position: -32px; +} +.soria .dijitRadioHover { + + background-position: -80px; +} +.soria .dijitRadioCheckedHover { + + background-position: -64px; +} diff --git a/lib/dijit/themes/soria/form/Select.css b/lib/dijit/themes/soria/form/Select.css new file mode 100644 index 000000000..eb85ceaeb --- /dev/null +++ b/lib/dijit/themes/soria/form/Select.css @@ -0,0 +1,44 @@ +.soria .dijitSelect .dijitButtonNode { + padding: 0px; +} +.soria .dijitSelect .dijitButtonContents { + padding-top: 1px; + background:#fff url("../images/validationInputBg.png") repeat-x top left; + #background:#fff url('../images/validationInputBg.gif') repeat-x top left; +} +.soria .dijitSelectHover .dijitButtonContents, +.soria .dijitSelectActive .dijitButtonContents, +.soria .dijitSelectOpened .dijitButtonContents, +.soria .dijitSelectDisabled .dijitButtonContents, +.soria .dijitSelectReadOnly .dijitButtonContents{ + background: transparent none; +} +.dj_ie .soria .dijitSelect .dijitButtonContents { + padding-top: 0px; +} +.soria .dijitSelect .dijitArrowButton { + padding: 0px 2px; +} +.soria .dijitSelectDisabled .dijitButtonNode { + border-color: #b9bbdd #b9bbdd #b9bbdd #b9bbdd; + background:#c3d3e5 url("../images/buttonDisabled.png") top repeat-x; +} +.dj_ie .soria .dijitSelectDisabled .dijitButtonNode * { + filter: gray() alpha(opacity=50); +} +.soria .dijitSelectHover .dijitButtonNode { + color:#000; + background:#acc5e2 url("../images/buttonHover.png") repeat-x top left; +} +.soria .dijitSelectActive .dijitButtonNode, +.soria .dijitSelectOpened .dijitButtonNode { + border-color:#657c9c; + background: #91b4e5 url("../images/buttonActive.png") top left repeat-x; +} +.soria .dijitSelectMenu td { + padding: 0em; +} +.soria .dijitSelectMenu .dijitMenuItemLabel, +.soria .dijitSelectMenu .dijitMenuArrowCell { + padding: 0.1em 0.2em; +} diff --git a/lib/dijit/themes/soria/form/Slider.css b/lib/dijit/themes/soria/form/Slider.css new file mode 100644 index 000000000..72e48b678 --- /dev/null +++ b/lib/dijit/themes/soria/form/Slider.css @@ -0,0 +1,122 @@ + +.soria .dijitSliderProgressBarH { + border-color: #b1badf; + background: #c0c2c5 url("../images/sliderFull.png") repeat-x top left; +} +.soria .dijitSliderProgressBarV { + border-color: #b1badf; + background: #c0c2c5 url("../images/sliderFullVertical.png") repeat-y bottom left; +} +.soria .dijitSliderFocused .dijitSliderProgressBarH, +.soria .dijitSliderFocused .dijitSliderLeftBumper { + background-image:url("../images/sliderFullFocus.png"); +} +.soria .dijitSliderFocused .dijitSliderProgressBarV, +.soria .dijitSliderFocused .dijitSliderBottomBumper { + background-image:url("../images/sliderFullVerticalFocus.png"); +} +.soria .dijitSliderRemainingBarV { + border-color: #b4b4b4; + background: #dcdcdc url("../images/sliderEmptyVertical.png") repeat-y bottom left; +} +.soria .dijitSliderRemainingBarH { + border-color: #b4b4b4; + background: #dcdcdc url("../images/sliderEmpty.png") repeat-x top left; +} +.soria .dijitSliderBar { + border-style: solid; + outline:1px; + +} +.soria .dijitSliderFocused .dijitSliderBar { + border-color:#8ba0bd; +} +.soria .dijitSliderImageHandleH { + border:0px; + width:15px; + height:18px; + background:url("../images/preciseSliderThumb.png") no-repeat center top; +} +.soria .dijitSliderFocused .dijitSliderImageHandleH { + background-image:url("../images/preciseSliderThumbFocus.png"); + #background-image:url("../images/preciseSliderThumbFocus.gif"); +} +.dj_ie6 .soria .dijitSliderImageHandleH { + background-image:url("../images/preciseSliderThumb.gif"); +} +.soria .dijitSliderLeftBumper { + border-left-width: 1px; + border-color: #aab0bb; + background: #c0c2c5 url("../images/sliderFull.png") repeat-x top left; +} +.soria .dijitSliderRightBumper { + background: #dcdcdc url("../images/sliderEmpty.png") repeat-x top left; + border-color: #b4b4b4; + border-right-width: 1px; +} +.soria .dijitSliderImageHandleV { + border:0px; + width:20px; + height:15px; + background:url("../images/sliderThumb.png") no-repeat center center; + #background:url("../images/sliderThumb.gif") no-repeat center center; +} +.soria .dijitSliderFocused .dijitSliderImageHandleV { + background-image:url("../images/sliderThumbFocus.png"); + #background-image:url("../images/sliderThumbFocus.gif"); +} +.soria .dijitSliderBottomBumper { + border-bottom-width: 1px; + border-color: #aab0bb; + background: #c0c2c5 url("../images/sliderFullVertical.png") repeat-y bottom left; +} +.soria .dijitSliderTopBumper { + background: #dcdcdc url("../images/sliderEmptyVertical.png") repeat-y top left; + border-color: #b4b4b4; + border-top-width: 1px; +} +.soria .dijitSliderIncrementIconH, +.soria .dijitSliderIncrementIconV { + background:url('../images/spriteRoundedIconsSmall.png') no-repeat -45px top; + #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat -45px top; + width:15px; height:15px; +} +.soria .dijitSliderIncrementIconH { + background:url('../images/spriteRoundedIconsSmall.png') no-repeat -30px top; + #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat -30px top; +} +.soria .dijitSliderDecrementIconH, +.soria .dijitSliderDecrementIconV { + width:15px; + height:15px; + background:url('../images/spriteRoundedIconsSmall.png') no-repeat -15px top; + #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat -15px top; +} +.soria .dijitSliderDecrementIconH { + background:url('../images/spriteRoundedIconsSmall.png') no-repeat 0px top; + #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat 0px top; +} +.soria .dijitSliderButtonInner { + visibility:hidden; +} +.soria .dijitSliderReadOnly *, +.soria .dijitSliderDisabled * { + border-color: #d5d5d5 #bdbdbd #bdbdbd #d5d5d5; + color: #bdbdbd; +} +.soria .dijitSliderReadOnly .dijitSliderDecrementIconH, +.soria .dijitSliderDisabled .dijitSliderDecrementIconH { + background-position: 0px -15px; +} +.soria .dijitSliderReadOnly .dijitSliderIncrementIconH, +.soria .dijitSliderDisabled .dijitSliderIncrementIconH { + background-position: -30px -15px; +} +.soria .dijitSliderReadOnly .dijitSliderDecrementIconV, +.soria .dijitSliderDisabled .dijitSliderDecrementIconV { + background-position: -15px -15px; +} +.soria .dijitSliderReadOnly .dijitSliderIncrementIconV, +.soria .dijitSliderDisabled .dijitSliderIncrementIconV { + background-position: -45px -15px; +} diff --git a/lib/dijit/themes/soria/form/Slider_rtl.css b/lib/dijit/themes/soria/form/Slider_rtl.css new file mode 100644 index 000000000..c1d8de322 --- /dev/null +++ b/lib/dijit/themes/soria/form/Slider_rtl.css @@ -0,0 +1,29 @@ + +.dijitRtl .soria .dijitSliderProgressBarH, +.dijitRtl .soria .dijitSliderRemainingBarH, +.dijitRtl .soria .dijitSliderLeftBumper, +.dijitRtl .soria .dijitSliderRightBumper, +.dijitRtl .soria .dijitSliderTopBumper { + background-position: top right; +} +.dijitRtl .soria .dijitSliderProgressBarV, +.dijitRtl .soria .dijitSliderRemainingBarV, +.dijitRtl .soria .dijitSliderBottomBumper { + background-position: bottom right; +} +.dijitRtl .soria .dijitSliderLeftBumper { + border-left-width: 0px; + border-right-width: 1px; +} +.dijitRtl .soria .dijitSliderRightBumper { + border-left-width: 1px; + border-right-width: 0px; +} +.dijitRtl .soria .dijitSliderIncrementIconH { + background:url('../images/spriteRoundedIconsSmall.png') no-repeat left top; + #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat left top; +} +.dijitRtl .soria .dijitSliderDecrementIconH { + background:url('../images/spriteRoundedIconsSmall.png') no-repeat -30px top; + #background:url('../images/spriteRoundedIconsSmall.gif') no-repeat -30px top; +} diff --git a/lib/dijit/themes/soria/form/TimeTextBox.css b/lib/dijit/themes/soria/form/TimeTextBox.css new file mode 100644 index 000000000..d450925b4 --- /dev/null +++ b/lib/dijit/themes/soria/form/TimeTextBox.css @@ -0,0 +1 @@ +@CHARSET "UTF-8"; diff --git a/lib/dijit/themes/soria/images/accordionItemActive.gif b/lib/dijit/themes/soria/images/accordionItemActive.gif Binary files differnew file mode 100644 index 000000000..249a1533f --- /dev/null +++ b/lib/dijit/themes/soria/images/accordionItemActive.gif diff --git a/lib/dijit/themes/soria/images/accordionItemActive.png b/lib/dijit/themes/soria/images/accordionItemActive.png Binary files differnew file mode 100644 index 000000000..92c74315c --- /dev/null +++ b/lib/dijit/themes/soria/images/accordionItemActive.png diff --git a/lib/dijit/themes/soria/images/buttonActive.png b/lib/dijit/themes/soria/images/buttonActive.png Binary files differnew file mode 100644 index 000000000..f81598388 --- /dev/null +++ b/lib/dijit/themes/soria/images/buttonActive.png diff --git a/lib/dijit/themes/soria/images/buttonDisabled.png b/lib/dijit/themes/soria/images/buttonDisabled.png Binary files differnew file mode 100644 index 000000000..f76e4ab57 --- /dev/null +++ b/lib/dijit/themes/soria/images/buttonDisabled.png diff --git a/lib/dijit/themes/soria/images/buttonEnabled.png b/lib/dijit/themes/soria/images/buttonEnabled.png Binary files differnew file mode 100644 index 000000000..3c55c834e --- /dev/null +++ b/lib/dijit/themes/soria/images/buttonEnabled.png diff --git a/lib/dijit/themes/soria/images/buttonHover.png b/lib/dijit/themes/soria/images/buttonHover.png Binary files differnew file mode 100644 index 000000000..a22ebdaca --- /dev/null +++ b/lib/dijit/themes/soria/images/buttonHover.png diff --git a/lib/dijit/themes/soria/images/dndCopy.png b/lib/dijit/themes/soria/images/dndCopy.png Binary files differnew file mode 100644 index 000000000..baecd7cf2 --- /dev/null +++ b/lib/dijit/themes/soria/images/dndCopy.png diff --git a/lib/dijit/themes/soria/images/dndMove.png b/lib/dijit/themes/soria/images/dndMove.png Binary files differnew file mode 100644 index 000000000..07f878cfb --- /dev/null +++ b/lib/dijit/themes/soria/images/dndMove.png diff --git a/lib/dijit/themes/soria/images/dndNoCopy.png b/lib/dijit/themes/soria/images/dndNoCopy.png Binary files differnew file mode 100644 index 000000000..9bf9c3396 --- /dev/null +++ b/lib/dijit/themes/soria/images/dndNoCopy.png diff --git a/lib/dijit/themes/soria/images/dndNoMove.png b/lib/dijit/themes/soria/images/dndNoMove.png Binary files differnew file mode 100644 index 000000000..cb8bd8bdd --- /dev/null +++ b/lib/dijit/themes/soria/images/dndNoMove.png diff --git a/lib/dijit/themes/soria/images/preciseSliderThumb.gif b/lib/dijit/themes/soria/images/preciseSliderThumb.gif Binary files differnew file mode 100644 index 000000000..53b33e54a --- /dev/null +++ b/lib/dijit/themes/soria/images/preciseSliderThumb.gif diff --git a/lib/dijit/themes/soria/images/preciseSliderThumb.png b/lib/dijit/themes/soria/images/preciseSliderThumb.png Binary files differnew file mode 100644 index 000000000..045bf35ed --- /dev/null +++ b/lib/dijit/themes/soria/images/preciseSliderThumb.png diff --git a/lib/dijit/themes/soria/images/preciseSliderThumbFocus.gif b/lib/dijit/themes/soria/images/preciseSliderThumbFocus.gif Binary files differnew file mode 100644 index 000000000..8c6f92eb4 --- /dev/null +++ b/lib/dijit/themes/soria/images/preciseSliderThumbFocus.gif diff --git a/lib/dijit/themes/soria/images/preciseSliderThumbFocus.png b/lib/dijit/themes/soria/images/preciseSliderThumbFocus.png Binary files differnew file mode 100644 index 000000000..c23584959 --- /dev/null +++ b/lib/dijit/themes/soria/images/preciseSliderThumbFocus.png diff --git a/lib/dijit/themes/soria/images/progressBarAnim.gif b/lib/dijit/themes/soria/images/progressBarAnim.gif Binary files differnew file mode 100644 index 000000000..73e25e172 --- /dev/null +++ b/lib/dijit/themes/soria/images/progressBarAnim.gif diff --git a/lib/dijit/themes/soria/images/progressBarEmpty.png b/lib/dijit/themes/soria/images/progressBarEmpty.png Binary files differnew file mode 100644 index 000000000..04d81df08 --- /dev/null +++ b/lib/dijit/themes/soria/images/progressBarEmpty.png diff --git a/lib/dijit/themes/soria/images/progressBarFull.png b/lib/dijit/themes/soria/images/progressBarFull.png Binary files differnew file mode 100644 index 000000000..bed17b390 --- /dev/null +++ b/lib/dijit/themes/soria/images/progressBarFull.png diff --git a/lib/dijit/themes/soria/images/sliderEmpty.png b/lib/dijit/themes/soria/images/sliderEmpty.png Binary files differnew file mode 100644 index 000000000..99fbd727b --- /dev/null +++ b/lib/dijit/themes/soria/images/sliderEmpty.png diff --git a/lib/dijit/themes/soria/images/sliderEmptyVertical.png b/lib/dijit/themes/soria/images/sliderEmptyVertical.png Binary files differnew file mode 100644 index 000000000..2d497e3e0 --- /dev/null +++ b/lib/dijit/themes/soria/images/sliderEmptyVertical.png diff --git a/lib/dijit/themes/soria/images/sliderFull.png b/lib/dijit/themes/soria/images/sliderFull.png Binary files differnew file mode 100644 index 000000000..171eb54d9 --- /dev/null +++ b/lib/dijit/themes/soria/images/sliderFull.png diff --git a/lib/dijit/themes/soria/images/sliderFullFocus.png b/lib/dijit/themes/soria/images/sliderFullFocus.png Binary files differnew file mode 100644 index 000000000..0956a726d --- /dev/null +++ b/lib/dijit/themes/soria/images/sliderFullFocus.png diff --git a/lib/dijit/themes/soria/images/sliderFullVertical.png b/lib/dijit/themes/soria/images/sliderFullVertical.png Binary files differnew file mode 100644 index 000000000..35845daf1 --- /dev/null +++ b/lib/dijit/themes/soria/images/sliderFullVertical.png diff --git a/lib/dijit/themes/soria/images/sliderFullVerticalFocus.png b/lib/dijit/themes/soria/images/sliderFullVerticalFocus.png Binary files differnew file mode 100644 index 000000000..9b158bb04 --- /dev/null +++ b/lib/dijit/themes/soria/images/sliderFullVerticalFocus.png diff --git a/lib/dijit/themes/soria/images/sliderThumb.gif b/lib/dijit/themes/soria/images/sliderThumb.gif Binary files differnew file mode 100644 index 000000000..29899a4b6 --- /dev/null +++ b/lib/dijit/themes/soria/images/sliderThumb.gif diff --git a/lib/dijit/themes/soria/images/sliderThumb.png b/lib/dijit/themes/soria/images/sliderThumb.png Binary files differnew file mode 100644 index 000000000..b6abbd2fd --- /dev/null +++ b/lib/dijit/themes/soria/images/sliderThumb.png diff --git a/lib/dijit/themes/soria/images/sliderThumbFocus.gif b/lib/dijit/themes/soria/images/sliderThumbFocus.gif Binary files differnew file mode 100644 index 000000000..f8d306feb --- /dev/null +++ b/lib/dijit/themes/soria/images/sliderThumbFocus.gif diff --git a/lib/dijit/themes/soria/images/sliderThumbFocus.png b/lib/dijit/themes/soria/images/sliderThumbFocus.png Binary files differnew file mode 100644 index 000000000..73ee70565 --- /dev/null +++ b/lib/dijit/themes/soria/images/sliderThumbFocus.png diff --git a/lib/dijit/themes/soria/images/splitContainerSizerH-thumb.png b/lib/dijit/themes/soria/images/splitContainerSizerH-thumb.png Binary files differnew file mode 100644 index 000000000..0e8f39722 --- /dev/null +++ b/lib/dijit/themes/soria/images/splitContainerSizerH-thumb.png diff --git a/lib/dijit/themes/soria/images/splitContainerSizerH.png b/lib/dijit/themes/soria/images/splitContainerSizerH.png Binary files differnew file mode 100644 index 000000000..7cdf79a92 --- /dev/null +++ b/lib/dijit/themes/soria/images/splitContainerSizerH.png diff --git a/lib/dijit/themes/soria/images/splitContainerSizerV-thumb.png b/lib/dijit/themes/soria/images/splitContainerSizerV-thumb.png Binary files differnew file mode 100644 index 000000000..7f12fed5c --- /dev/null +++ b/lib/dijit/themes/soria/images/splitContainerSizerV-thumb.png diff --git a/lib/dijit/themes/soria/images/splitContainerSizerV.png b/lib/dijit/themes/soria/images/splitContainerSizerV.png Binary files differnew file mode 100644 index 000000000..9ff14d641 --- /dev/null +++ b/lib/dijit/themes/soria/images/splitContainerSizerV.png diff --git a/lib/dijit/themes/soria/images/spriteArrows.gif b/lib/dijit/themes/soria/images/spriteArrows.gif Binary files differnew file mode 100644 index 000000000..fc81207e7 --- /dev/null +++ b/lib/dijit/themes/soria/images/spriteArrows.gif diff --git a/lib/dijit/themes/soria/images/spriteArrows.png b/lib/dijit/themes/soria/images/spriteArrows.png Binary files differnew file mode 100644 index 000000000..73aa70091 --- /dev/null +++ b/lib/dijit/themes/soria/images/spriteArrows.png diff --git a/lib/dijit/themes/soria/images/spriteCheckbox.gif b/lib/dijit/themes/soria/images/spriteCheckbox.gif Binary files differnew file mode 100644 index 000000000..d2c4ebfaf --- /dev/null +++ b/lib/dijit/themes/soria/images/spriteCheckbox.gif diff --git a/lib/dijit/themes/soria/images/spriteCheckbox.png b/lib/dijit/themes/soria/images/spriteCheckbox.png Binary files differnew file mode 100644 index 000000000..e99233079 --- /dev/null +++ b/lib/dijit/themes/soria/images/spriteCheckbox.png diff --git a/lib/dijit/themes/soria/images/spriteDivIcons.gif b/lib/dijit/themes/soria/images/spriteDivIcons.gif Binary files differnew file mode 100644 index 000000000..f5c58e47a --- /dev/null +++ b/lib/dijit/themes/soria/images/spriteDivIcons.gif diff --git a/lib/dijit/themes/soria/images/spriteDivIcons.png b/lib/dijit/themes/soria/images/spriteDivIcons.png Binary files differnew file mode 100644 index 000000000..d76325f39 --- /dev/null +++ b/lib/dijit/themes/soria/images/spriteDivIcons.png diff --git a/lib/dijit/themes/soria/images/spriteRadio.gif b/lib/dijit/themes/soria/images/spriteRadio.gif Binary files differnew file mode 100644 index 000000000..8dd6e578e --- /dev/null +++ b/lib/dijit/themes/soria/images/spriteRadio.gif diff --git a/lib/dijit/themes/soria/images/spriteRadio.png b/lib/dijit/themes/soria/images/spriteRadio.png Binary files differnew file mode 100644 index 000000000..14c1080ee --- /dev/null +++ b/lib/dijit/themes/soria/images/spriteRadio.png diff --git a/lib/dijit/themes/soria/images/spriteRoundedIconsSmall.gif b/lib/dijit/themes/soria/images/spriteRoundedIconsSmall.gif Binary files differnew file mode 100644 index 000000000..795ea848d --- /dev/null +++ b/lib/dijit/themes/soria/images/spriteRoundedIconsSmall.gif diff --git a/lib/dijit/themes/soria/images/spriteRoundedIconsSmall.png b/lib/dijit/themes/soria/images/spriteRoundedIconsSmall.png Binary files differnew file mode 100644 index 000000000..10c0d139f --- /dev/null +++ b/lib/dijit/themes/soria/images/spriteRoundedIconsSmall.png diff --git a/lib/dijit/themes/soria/images/spriteRoundedIconsSmallBl.gif b/lib/dijit/themes/soria/images/spriteRoundedIconsSmallBl.gif Binary files differnew file mode 100644 index 000000000..67581811d --- /dev/null +++ b/lib/dijit/themes/soria/images/spriteRoundedIconsSmallBl.gif diff --git a/lib/dijit/themes/soria/images/spriteRoundedIconsSmallBl.png b/lib/dijit/themes/soria/images/spriteRoundedIconsSmallBl.png Binary files differnew file mode 100644 index 000000000..2c9f51a71 --- /dev/null +++ b/lib/dijit/themes/soria/images/spriteRoundedIconsSmallBl.png diff --git a/lib/dijit/themes/soria/images/spriteTree.gif b/lib/dijit/themes/soria/images/spriteTree.gif Binary files differnew file mode 100644 index 000000000..e546e281b --- /dev/null +++ b/lib/dijit/themes/soria/images/spriteTree.gif diff --git a/lib/dijit/themes/soria/images/spriteTree.png b/lib/dijit/themes/soria/images/spriteTree.png Binary files differnew file mode 100644 index 000000000..33ae07be4 --- /dev/null +++ b/lib/dijit/themes/soria/images/spriteTree.png diff --git a/lib/dijit/themes/soria/images/spriteTree_rtl.gif b/lib/dijit/themes/soria/images/spriteTree_rtl.gif Binary files differnew file mode 100644 index 000000000..bbcc64be8 --- /dev/null +++ b/lib/dijit/themes/soria/images/spriteTree_rtl.gif diff --git a/lib/dijit/themes/soria/images/spriteTree_rtl.png b/lib/dijit/themes/soria/images/spriteTree_rtl.png Binary files differnew file mode 100644 index 000000000..b06afdb82 --- /dev/null +++ b/lib/dijit/themes/soria/images/spriteTree_rtl.png diff --git a/lib/dijit/themes/soria/images/tabBottomActiveC.gif b/lib/dijit/themes/soria/images/tabBottomActiveC.gif Binary files differnew file mode 100644 index 000000000..fb61df9a2 --- /dev/null +++ b/lib/dijit/themes/soria/images/tabBottomActiveC.gif diff --git a/lib/dijit/themes/soria/images/tabBottomActiveSpriteLR.gif b/lib/dijit/themes/soria/images/tabBottomActiveSpriteLR.gif Binary files differnew file mode 100644 index 000000000..7c2ed86d2 --- /dev/null +++ b/lib/dijit/themes/soria/images/tabBottomActiveSpriteLR.gif diff --git a/lib/dijit/themes/soria/images/tabBottomEnabledC.gif b/lib/dijit/themes/soria/images/tabBottomEnabledC.gif Binary files differnew file mode 100644 index 000000000..0a5f0f8e3 --- /dev/null +++ b/lib/dijit/themes/soria/images/tabBottomEnabledC.gif diff --git a/lib/dijit/themes/soria/images/tabBottomEnabledSpriteLR.gif b/lib/dijit/themes/soria/images/tabBottomEnabledSpriteLR.gif Binary files differnew file mode 100644 index 000000000..a77da39b6 --- /dev/null +++ b/lib/dijit/themes/soria/images/tabBottomEnabledSpriteLR.gif diff --git a/lib/dijit/themes/soria/images/tabBottomHoverC.gif b/lib/dijit/themes/soria/images/tabBottomHoverC.gif Binary files differnew file mode 100644 index 000000000..47b9da29a --- /dev/null +++ b/lib/dijit/themes/soria/images/tabBottomHoverC.gif diff --git a/lib/dijit/themes/soria/images/tabBottomHoverSpriteLR.gif b/lib/dijit/themes/soria/images/tabBottomHoverSpriteLR.gif Binary files differnew file mode 100644 index 000000000..59f3edd60 --- /dev/null +++ b/lib/dijit/themes/soria/images/tabBottomHoverSpriteLR.gif diff --git a/lib/dijit/themes/soria/images/tabContainerSprite.gif b/lib/dijit/themes/soria/images/tabContainerSprite.gif Binary files differnew file mode 100644 index 000000000..f0b38421e --- /dev/null +++ b/lib/dijit/themes/soria/images/tabContainerSprite.gif diff --git a/lib/dijit/themes/soria/images/tabLeftChecked.gif b/lib/dijit/themes/soria/images/tabLeftChecked.gif Binary files differnew file mode 100644 index 000000000..3e7475aa5 --- /dev/null +++ b/lib/dijit/themes/soria/images/tabLeftChecked.gif diff --git a/lib/dijit/themes/soria/images/tabRightChecked.gif b/lib/dijit/themes/soria/images/tabRightChecked.gif Binary files differnew file mode 100644 index 000000000..ec4b65936 --- /dev/null +++ b/lib/dijit/themes/soria/images/tabRightChecked.gif diff --git a/lib/dijit/themes/soria/images/tabStripe.gif b/lib/dijit/themes/soria/images/tabStripe.gif Binary files differnew file mode 100644 index 000000000..51a2d40aa --- /dev/null +++ b/lib/dijit/themes/soria/images/tabStripe.gif diff --git a/lib/dijit/themes/soria/images/tabStripeBottom.gif b/lib/dijit/themes/soria/images/tabStripeBottom.gif Binary files differnew file mode 100644 index 000000000..41b1ac0f6 --- /dev/null +++ b/lib/dijit/themes/soria/images/tabStripeBottom.gif diff --git a/lib/dijit/themes/soria/images/tabStripeLeft.gif b/lib/dijit/themes/soria/images/tabStripeLeft.gif Binary files differnew file mode 100644 index 000000000..b2214fa41 --- /dev/null +++ b/lib/dijit/themes/soria/images/tabStripeLeft.gif diff --git a/lib/dijit/themes/soria/images/tabStripeRight.gif b/lib/dijit/themes/soria/images/tabStripeRight.gif Binary files differnew file mode 100644 index 000000000..bff311553 --- /dev/null +++ b/lib/dijit/themes/soria/images/tabStripeRight.gif diff --git a/lib/dijit/themes/soria/images/titleBar.png b/lib/dijit/themes/soria/images/titleBar.png Binary files differnew file mode 100644 index 000000000..93c4146e9 --- /dev/null +++ b/lib/dijit/themes/soria/images/titleBar.png diff --git a/lib/dijit/themes/soria/images/titleBarActive.png b/lib/dijit/themes/soria/images/titleBarActive.png Binary files differnew file mode 100644 index 000000000..fb8a2e688 --- /dev/null +++ b/lib/dijit/themes/soria/images/titleBarActive.png diff --git a/lib/dijit/themes/soria/images/tooltipConnectorDown.gif b/lib/dijit/themes/soria/images/tooltipConnectorDown.gif Binary files differnew file mode 100644 index 000000000..9c3849553 --- /dev/null +++ b/lib/dijit/themes/soria/images/tooltipConnectorDown.gif diff --git a/lib/dijit/themes/soria/images/tooltipConnectorDown.png b/lib/dijit/themes/soria/images/tooltipConnectorDown.png Binary files differnew file mode 100644 index 000000000..d75af71f9 --- /dev/null +++ b/lib/dijit/themes/soria/images/tooltipConnectorDown.png diff --git a/lib/dijit/themes/soria/images/tooltipConnectorLeft.gif b/lib/dijit/themes/soria/images/tooltipConnectorLeft.gif Binary files differnew file mode 100644 index 000000000..fc947e0a1 --- /dev/null +++ b/lib/dijit/themes/soria/images/tooltipConnectorLeft.gif diff --git a/lib/dijit/themes/soria/images/tooltipConnectorLeft.png b/lib/dijit/themes/soria/images/tooltipConnectorLeft.png Binary files differnew file mode 100644 index 000000000..f3de66a74 --- /dev/null +++ b/lib/dijit/themes/soria/images/tooltipConnectorLeft.png diff --git a/lib/dijit/themes/soria/images/tooltipConnectorRight.gif b/lib/dijit/themes/soria/images/tooltipConnectorRight.gif Binary files differnew file mode 100644 index 000000000..b0e8097f4 --- /dev/null +++ b/lib/dijit/themes/soria/images/tooltipConnectorRight.gif diff --git a/lib/dijit/themes/soria/images/tooltipConnectorRight.png b/lib/dijit/themes/soria/images/tooltipConnectorRight.png Binary files differnew file mode 100644 index 000000000..64190eef7 --- /dev/null +++ b/lib/dijit/themes/soria/images/tooltipConnectorRight.png diff --git a/lib/dijit/themes/soria/images/tooltipConnectorUp.gif b/lib/dijit/themes/soria/images/tooltipConnectorUp.gif Binary files differnew file mode 100644 index 000000000..54bcf652c --- /dev/null +++ b/lib/dijit/themes/soria/images/tooltipConnectorUp.gif diff --git a/lib/dijit/themes/soria/images/tooltipConnectorUp.png b/lib/dijit/themes/soria/images/tooltipConnectorUp.png Binary files differnew file mode 100644 index 000000000..7f7a5d8fd --- /dev/null +++ b/lib/dijit/themes/soria/images/tooltipConnectorUp.png diff --git a/lib/dijit/themes/soria/images/treeExpand_loading.gif b/lib/dijit/themes/soria/images/treeExpand_loading.gif Binary files differnew file mode 100644 index 000000000..db9ddd028 --- /dev/null +++ b/lib/dijit/themes/soria/images/treeExpand_loading.gif diff --git a/lib/dijit/themes/soria/images/treeHover.png b/lib/dijit/themes/soria/images/treeHover.png Binary files differnew file mode 100644 index 000000000..cd6d28be4 --- /dev/null +++ b/lib/dijit/themes/soria/images/treeHover.png diff --git a/lib/dijit/themes/soria/images/treeI.gif b/lib/dijit/themes/soria/images/treeI.gif Binary files differnew file mode 100644 index 000000000..6f669e240 --- /dev/null +++ b/lib/dijit/themes/soria/images/treeI.gif diff --git a/lib/dijit/themes/soria/images/treeI_half.gif b/lib/dijit/themes/soria/images/treeI_half.gif Binary files differnew file mode 100644 index 000000000..e5fd0155b --- /dev/null +++ b/lib/dijit/themes/soria/images/treeI_half.gif diff --git a/lib/dijit/themes/soria/images/treeI_half_rtl.gif b/lib/dijit/themes/soria/images/treeI_half_rtl.gif Binary files differnew file mode 100644 index 000000000..44ad021a3 --- /dev/null +++ b/lib/dijit/themes/soria/images/treeI_half_rtl.gif diff --git a/lib/dijit/themes/soria/images/treeI_rtl.gif b/lib/dijit/themes/soria/images/treeI_rtl.gif Binary files differnew file mode 100644 index 000000000..0d32a2f73 --- /dev/null +++ b/lib/dijit/themes/soria/images/treeI_rtl.gif diff --git a/lib/dijit/themes/soria/images/validationInputBg.gif b/lib/dijit/themes/soria/images/validationInputBg.gif Binary files differnew file mode 100644 index 000000000..c28475c8d --- /dev/null +++ b/lib/dijit/themes/soria/images/validationInputBg.gif diff --git a/lib/dijit/themes/soria/images/validationInputBg.png b/lib/dijit/themes/soria/images/validationInputBg.png Binary files differnew file mode 100644 index 000000000..f3039f952 --- /dev/null +++ b/lib/dijit/themes/soria/images/validationInputBg.png diff --git a/lib/dijit/themes/soria/images/warning.png b/lib/dijit/themes/soria/images/warning.png Binary files differnew file mode 100644 index 000000000..c52f83dc3 --- /dev/null +++ b/lib/dijit/themes/soria/images/warning.png diff --git a/lib/dijit/themes/soria/layout/AccordionContainer.css b/lib/dijit/themes/soria/layout/AccordionContainer.css new file mode 100644 index 000000000..b65187f6b --- /dev/null +++ b/lib/dijit/themes/soria/layout/AccordionContainer.css @@ -0,0 +1,35 @@ + +.soria .dijitAccordionContainer { + border-color: #b1badf; + background-color: #fff; +} +.soria .dijitAccordionTitle { + background:#fafafa url("../images/titleBar.png") repeat-x top left; + border-top: 1px solid #b9bbdd; + padding: 5px 4px 6px 8px; + font-size: 0.9em; + font-weight: bold; + color: #373941; +} +.soria .dijitAccordionTitleSelected { + background: #f9f9f9 url("../images/accordionItemActive.png") top repeat-x; + font-weight: bold; + border-top: 1px solid #b9bbdd; + border-bottom: 1px solid #b9bbdd; + padding: 5px 4px 5px 8px; + color: #243C5F; +} +.soria .dijitAccordionArrow { + background:url("../images/spriteRoundedIconsSmallBl.gif") no-repeat -30px top; + width:15px; + height:15px; + margin-top:-1px; +} +.soria .dijitAccordionTitleSelected .dijitAccordionArrow { + background:url("../images/spriteRoundedIconsSmallBl.gif") no-repeat -15px top; + margin-top:-1px; +} +.soria .dijitAccordionText { + margin-left: 4px; + margin-right: 4px; +} diff --git a/lib/dijit/themes/soria/layout/AccordionContainer_rtl.css b/lib/dijit/themes/soria/layout/AccordionContainer_rtl.css new file mode 100644 index 000000000..c9f07e067 --- /dev/null +++ b/lib/dijit/themes/soria/layout/AccordionContainer_rtl.css @@ -0,0 +1,7 @@ +.dijitRtl .soria .dijitAccordionArrow { + background-position: 0px top; +} +.dijitRtl .soria .dijitAccordionTitleSelected .dijitAccordionArrow { + + background-position: -15px top; +} diff --git a/lib/dijit/themes/soria/layout/BorderContainer.css b/lib/dijit/themes/soria/layout/BorderContainer.css new file mode 100644 index 000000000..aec147ae6 --- /dev/null +++ b/lib/dijit/themes/soria/layout/BorderContainer.css @@ -0,0 +1,59 @@ + +.soria .dijitBorderContainer { + background-color: #e1ebfb; + padding: 5px; +} +.soria .dijitSplitContainer-child, +.soria .dijitBorderContainer-child { + + border: 1px #b1badf solid; +} +.soria .dijitBorderContainer-dijitTabContainerTop, +.soria .dijitBorderContainer-dijitTabContainerBottom, +.soria .dijitBorderContainer-dijitTabContainerLeft, +.soria .dijitBorderContainer-dijitTabContainerRight { + + border: none; +} +.soria .dijitBorderContainer-dijitBorderContainer { + + border: none; + padding: 0px; +} +.soria .dijitSplitterH, +.soria .dijitGutterH { + background: #E1EBFB; + border:0; + border-left:0px solid #d3d3d3; + border-right:0px solid #d3d3d3; + height:5px; +} +.soria .dijitSplitterH .dijitSplitterThumb { + background:#B0B0B0 none; + height:1px; + top:2px; + width:19px; +} +.soria .dijitSplitterV, +.soria .dijitGutterV { + background: #E1EBFB; + border:0; + border-top:0px solid #d3d3d3; + border-bottom:0px solid #d3d3d3; + width:5px; +} +.soria .dijitSplitterV .dijitSplitterThumb { + background:#B0B0B0 none; + height:19px; + left:2px; + width:1px; +} +.soria .dijitSplitterActive { + font-size: 1px; + background-image: none; + background-color: #aaa; + -moz-opacity: 0.6; + opacity: 0.6; + filter: Alpha(Opacity=60); + margin: 0; +} diff --git a/lib/dijit/themes/soria/layout/ContentPane.css b/lib/dijit/themes/soria/layout/ContentPane.css new file mode 100644 index 000000000..9308d50ee --- /dev/null +++ b/lib/dijit/themes/soria/layout/ContentPane.css @@ -0,0 +1,17 @@ + +.soria .dijitContentPane { + padding: 0px; +} +.soria .dijitTabContainerTop-dijitContentPane, +.soria .dijitTabContainerLeft-dijitContentPane, +.soria .dijitTabContainerBottom-dijitContentPane, +.soria .dijitTabContainerRight-dijitContentPane, +.soria .dijitAccordionContainer-dijitContentPane { + background-color: #fff; + padding: 5px; +} +.soria .dijitSplitContainer-dijitContentPane, +.soria .dijitBorderContainer-dijitContentPane { + background-color: #fff; + padding: 5px; +} diff --git a/lib/dijit/themes/soria/layout/SplitContainer.css b/lib/dijit/themes/soria/layout/SplitContainer.css new file mode 100644 index 000000000..87f065752 --- /dev/null +++ b/lib/dijit/themes/soria/layout/SplitContainer.css @@ -0,0 +1,27 @@ + +.soria .dijitSplitContainerSizerH { + background:url("../images/splitContainerSizerV.png") repeat-y #cddef4; + border:0; + border-left:0px solid #436496; + border-right:0px solid #436496; + width:5px; +} +.soria .dijitSplitContainerSizerH .thumb { + background:url("../images/splitContainerSizerV-thumb.png") no-repeat #ccc; + left:1px; + width:2px; + height:19px; +} +.soria .dijitSplitContainerSizerV { + background:url("../images/splitContainerSizerH.png") repeat-x #cddef4; + border:0; + border-top:0px solid #436496; + border-bottom:0px solid #436496; + height:2px; +} +.soria .dijitSplitContainerSizerV .thumb { + background:url("../images/splitContainerSizerH-thumb.png") no-repeat #ccc; + top:1px; + width:19px; + height:5px; +} diff --git a/lib/dijit/themes/soria/layout/TabContainer.css b/lib/dijit/themes/soria/layout/TabContainer.css new file mode 100644 index 000000000..0cf156dec --- /dev/null +++ b/lib/dijit/themes/soria/layout/TabContainer.css @@ -0,0 +1,372 @@ + + .soria .dijitTabContainer .tabStripRBtn { + margin-right: 21px; +} + .soria .dijitTabContainer .tabStripLBtn { + margin-left: 21px; +} + .soria .nowrapTabStrip .dijitTab { + top: 2px; +} + .soria .dijitTabContainerBottom-tabs .dijitTab { + top: -1px; + bottom: 2px; +} +.soria .dijitTabPaneWrapper { + background:#fff; + border:1px solid #B1BADF; + margin: 0; + padding-left: 0px; +} +.soria .dijitTabInnerDiv { + padding:0px 3px 0px 0px; + margin: 0 0 0 4px; + background: url("../images/tabContainerSprite.gif") no-repeat; + background-position: right -400px; +} +.soria .dijitTab { + line-height:normal; + margin:0 2px 0 0; + padding:0px; + background: url("../images/tabContainerSprite.gif") no-repeat 0 -300px; + color: #243C5F; + border-bottom: 1px #B1BADF solid; +} +.soria .dijitTabInnerDiv .dijitTabContent { + padding:4px 3px 2px 4px; + background: url("../images/tabContainerSprite.gif") repeat-x 0 -350px; + position: relative; +} +.soria .dijitTabListWrapper { + z-index: 10; +} +.soria .dijitTabHover { + color: #243C5F; + background: url("../images/tabContainerSprite.gif") no-repeat 0px -150px; +} +.soria .dijitTabHover .dijitTabInnerDiv { + background: url("../images/tabContainerSprite.gif") no-repeat right -250px; +} +.soria .dijitTabHover .dijitTabInnerDiv .dijitTabContent { + background: url("../images/tabContainerSprite.gif") repeat-x 0 -200px; +} +.soria .dijitTabChecked +{ + + background: url("../images/tabContainerSprite.gif") no-repeat 0px -0px; +} +.soria .dijitTabChecked .dijitTabInnerDiv { + background: url("../images/tabContainerSprite.gif") no-repeat right -100px; +} +.soria .dijitTabChecked .dijitTabInnerDiv .dijitTabContent { + background: url("../images/tabContainerSprite.gif") repeat-x 0 -50px; + color: #243C5F !important; +} +.soria .dijitTabContainerTabListNested { + background: #F0F4FC; + background: #D9E9F9; + border: none; +} +.soria .dijitTabContainerTabListNested .dijitTab { + background: none; + border: none; + top: 0px; +} +.soria .dijitTabContainerTabListNested .dijitTab .dijitTabInnerDiv, +.soria .dijitTabContainerTabListNested .dijitTab .dijitTabContent { + background: none; +} +.soria .dijitTabContainerTabListNested .dijitTabHover .dijitTabContent .tabLabel { + text-decoration: underline; +} +.soria .dijitTabContainerTabListNested .dijitTabChecked .tabLabel { + text-decoration: underline; + font-weight: bold; +} +.soria .dijitTabContainerSpacerNested .dijitTabSpacer { + + height: 0px; +} +.soria .dijitTabPaneWrapperNested { + border: none; +} +.soria .dijitTabCloseButton { + width: 15px; + height: 15px; + background: url("../images/spriteRoundedIconsSmall.png") no-repeat -60px top; + margin-top: -1px; +} +.dj_ie6 .soria .dijitTabCloseButton { + background: url("../images/spriteRoundedIconsSmall.gif") no-repeat -60px top; +} +.soria .dijitTabCloseButtonHover { + background: url("../images/spriteRoundedIconsSmall.png") no-repeat -60px -15px; +} +.dj_ie6 .soria .dijitTabCloseButtonHover { + background: url("../images/spriteRoundedIconsSmall.gif") no-repeat -60px -15px; +} +.soria .dijitTab .tabLabel { + + min-height: 15px; + display: inline-block; +} +.dj_ie6 .soria .dijitTabButtonIcon { + + height: 18px; + width: 1px; +} +.soria .dijitTabContainerTop-tabs { + border-color: #B1BADF; + padding-left: 3px; +} +.soria .dijitTabContainerTopNoStrip { + padding-top: 3px; +} +.soria .dijitTabContainerTop-container { + border-top: none; +} +.soria .dijitTabContainerTop .dijitTabListWrapper { + border-bottom: none; +} +.soria .dijitTabContainerTop-tabs .dijitTab { + top: 1px; +} +.soria .dijitTabContainerTop-tabs .dijitTabChecked { + border-bottom-color: #94b4e6; +} +.soria .dijitTabContainerTopStrip { + border: 1px solid #B1BADF; + margin-top: 1px; + padding-top: 1px; + background: #F0F4FC; +} +.soria .dijitTabContainerTopStrip .dijitTabContainerTop-tabs { + padding-left: 3px; +} +.soria .dijitTabContainerNested .dijitTabListWrapper { + height: auto; +} +.soria .dijitTabContainerBottom-tabs { + margin-top: -1px; + padding-left: 3px; + border-top: 1px solid #B1BADF; +} +.soria .dijitTabContainerBottom .dijitTabListWrapper { + border-top: none; + padding-top: 1px; + padding-bottom: 1px; + float: left; +} +.soria .dijitTabContainerBottom-container { + border-bottom: none; +} +.soria .dijitTabContainerBottom-tabs .dijitTab { + border-bottom: none; + border-top: 1px solid #B1BADF; + background: url("../images/tabBottomEnabledSpriteLR.gif") no-repeat bottom left; +} +.soria .dijitTabContainerBottom-tabs .dijitTabChecked { + border-top-color:#94b4e6; +} +.soria .dijitTabContainerBottom-tabs .dijitTabInnerDiv .dijitTabContent { + padding-top: 3px; + padding-bottom: 3px; + background: url("../images/tabBottomEnabledC.gif") repeat-x bottom left; +} +.soria .dijitTabContainerBottom-tabs .dijitTabInnerDiv { + background: url("../images/tabBottomEnabledSpriteLR.gif") no-repeat bottom right; +} +.soria .dijitTabContainerBottom-tabs .dijitTabHover { + color: #243C5F; + background: url("../images/tabBottomHoverSpriteLR.gif") no-repeat bottom left; +} +.soria .dijitTabContainerBottom-tabs .dijitTabHover .dijitTabInnerDiv { + background: url("../images/tabBottomHoverSpriteLR.gif") no-repeat bottom right; +} +.soria .dijitTabContainerBottom-tabs .dijitTabHover .dijitTabInnerDiv .dijitTabContent { + background: url("../images/tabBottomHoverC.gif") repeat-x bottom left; +} +.soria .dijitTabContainerBottom-tabs .dijitTabChecked { + + background: url("../images/tabBottomActiveSpriteLR.gif") no-repeat bottom left; +} +.soria .dijitTabContainerBottom-tabs .dijitTabChecked .dijitTabInnerDiv { + background: url("../images/tabBottomActiveSpriteLR.gif") no-repeat bottom right; +} +.soria .dijitTabContainerBottom-tabs .dijitTabChecked .dijitTabInnerDiv .dijitTabContent { + background: url("../images/tabBottomActiveC.gif") repeat-x bottom left; +} +.soria .dijitTabContainerBottomStrip { + padding-bottom: 2px; + border: 1px solid #B1BADF; +} +.soria .dijitTabContainerBottomStrip { + background: #F0F4FC; +} +.soria .dijitTabContainerBottom-spacer, +.soria .dijitTabContainerTop-spacer { + height: 2px; + border: 1px solid #8ba0bd; + background: #94b4e6; +} +.soria .dijitTabContainerTop-spacer { + border-top: none; +} +.soria .dijitTabContainerBottom-spacer { + border-bottom: none; +} +.soria .dijitTabContainerRight-tabs { + height: 100%; + border-color: #ccc; + padding-top: 3px; +} +.soria .dijitTabContainerRight-container { + border-right: none; +} +.soria .dijitTabContainerRight-tabs .dijitTab { + border-bottom: none; + border-left: 1px solid #B1BADF; + border-bottom: 1px solid #B1BADF !important; +} +.dj_ie6 .soria .dijitTabContainerRight-tabs .dijitTabInnerDiv, +.dj_ie7 .soria .dijitTabContainerRight-tabs .dijitTabInnerDiv { + border-bottom: solid #B1BADF 1px; + margin-bottom: -1px; +} +.soria .dijitTabContainerRight-tabs .dijitTabChecked { + border-left-color: #94b4e6; +} +.soria .dijitTabContainerRight-tabs .dijitTabChecked { + background: url("../images/tabRightChecked.gif") no-repeat left top !important; +} +.dj_ie6 .soria .dijitTabContainerRight-tabs .dijitTabChecked .dijitTabInnerDiv, +.dj_ie7 .soria .dijitTabContainerRight-tabs .dijitTabChecked .dijitTabInnerDiv, +.dj_ie6 .soria .dijitTabContainerRight-tabs .dijitTabCheckedHover .dijitTabInnerDiv, +.dj_ie7 .soria .dijitTabContainerRight-tabs .dijitTabCheckedHover .dijitTabInnerDiv { + border-bottom: solid #94b4e6 1px; + margin-bottom: -1px; +} +.soria .dijitTabContainerRight-tabs .dijitTab { + background: url("../images/tabContainerSprite.gif") no-repeat left -350px; +} +.soria .dijitTabContainerRight-tabs .dijitTabHover .dijitTab { + background: url("../images/tabContainerSprite.gif") no-repeat left -200px; +} +.soria .dijitTabContainerRightStrip { + padding-right: 2px; + border: 1px solid #B1BADF; + background: #F0F4FC; + border-left: none; +} +.soria .dijitTabContainerLeft-tabs { + border-color: #ccc; + padding-top: 3px; + height: 100%; +} +.soria .dijitTabContainerLeft-container { + border-left: none; +} +.soria .dijitTabContainerLeft-tabs .dijitTab { + border-right: 1px solid #B1BADF; + border-bottom: 1px solid #B1BADF; +} +.soria .dijitTabContainerLeft-tabs .dijitTabChecked { + border-right: 1px solid #94b4e6; +} +.soria .dijitTabContainerLeft-tabs .dijitTabInnerDiv { + background: url("../images/tabContainerSprite.gif") no-repeat right -350px; +} +.soria .dijitTabContainerLeft-tabs .dijitTabHover .dijitTabInnerDiv { + background: url("../images/tabContainerSprite.gif") no-repeat right -200px; +} +.soria .dijitTabContainerLeft-tabs .dijitTabChecked .dijitTabInnerDiv, +.soria .dijitTabContainerLeft-tabs .dijitTabCheckedHover .dijitTabInnerDiv { + background: url("../images/tabLeftChecked.gif") no-repeat right top; +} +.dj_ie6 .soria .dijitTabContainerLeft-tabs .dijitTabInnerDiv, +.dj_ie7 .soria .dijitTabContainerLeft-tabs .dijitTabInnerDiv { + border-bottom: solid #B1BADF 1px; + margin-bottom: -1px; +} +.dj_ie6 .soria .dijitTabContainerLeft-tabs .dijitTabChecked .dijitTabInnerDiv, +.dj_ie7 .soria .dijitTabContainerLeft-tabs .dijitTabChecked .dijitTabInnerDiv, +.dj_ie6 .soria .dijitTabContainerLeft-tabs .dijitTabCheckedHover .dijitTabInnerDiv, +.dj_ie7 .soria .dijitTabContainerLeft-tabs .dijitTabCheckedHover .dijitTabInnerDiv { + border-bottom: solid #94b4e6 1px; + margin-bottom: -1px; +} +.soria .dijitTabContainerLeftStrip { + padding-left: 2px; + border: 1px solid #B1BADF; + background: #F0F4FC; + border-right: none; +} +.soria .dijitTabContainerLeft-tabs .dijitTab, +.soria .dijitTabContainerRight-tabs .dijitTab { + margin-right:auto; + margin-bottom:2px; +} +.soria .dijitTabContainerLeft-spacer, +.soria .dijitTabContainerRight-spacer { + width: 2px; + border: 1px solid #8ba0bd; + background: #94b4e6; +} +.soria .dijitTabContainerLeft-spacer { + border-left: none; +} +.soria .dijitTabContainerRight-spacer { + border-right: none; +} +.soria .dijitTabContainerTop-dijitContentPane .dijitTabContainerTop-tabs { + border-left: 0px solid #ccc; + border-top: 0px solid #ccc; + border-right: 0px solid #ccc; + padding-top: 0px; + padding-left: 0px; +} +.soria .dijitTabContainer .tabStripButton { + margin-right: 0; +} +.soria .dijitTabContainer .tabStripButton-top { + margin-top: 1px; +} +.soria .tabStripButton .dijitTabContent{ + padding: 6px 0 5px 0; +} +.dj_ie6 .soria .tabStripButton .dijitTabContent, +.dj_ie7 .soria .tabStripButton .dijitTabContent { + padding-top: 7px; +} +.soria .tabStrip-disabled .tabStripButton .dijitTabContent { + padding: 5px 0 3px 0; +} +.dj_ie6 .soria .tabStrip-disabled .tabStripButton .dijitTabContent, +.dj_ie7 .soria .tabStrip-disabled .tabStripButton .dijitTabContent { + padding-top: 6px; +} +.soria .dijitTabContainer .tabStripButton-bottom { + background: transparent url(../images/tabBottomEnabledSpriteLR.gif) no-repeat scroll left bottom; + border-bottom: medium none; + border-top: 1px solid #B1BADF; +} +.soria .dijitTabContainer .tabStripButton-bottom .dijitTabInnerDiv { + background: transparent url(../images/tabBottomEnabledSpriteLR.gif) no-repeat scroll right bottom; +} +.soria .dijitTabContainer .tabStripButton-bottom .dijitTabContent { + background: transparent; +} +.soria .dijitTabStripIcon { + height: 14px; + width: 14px; + background: url(../images/spriteRoundedIconsSmall.png) no-repeat left top ; +} +.dj_ie6 .soria .dijitTabStripIcon { + background-image: url(../images/spriteRoundedIconsSmall.gif); +} +.soria .dijitTabStripSlideRightIcon { + background-position: -30px top; +} +.soria .dijitTabStripMenuIcon { + background-position: -15px top; +} diff --git a/lib/dijit/themes/soria/layout/TabContainer_rtl.css b/lib/dijit/themes/soria/layout/TabContainer_rtl.css new file mode 100644 index 000000000..863849813 --- /dev/null +++ b/lib/dijit/themes/soria/layout/TabContainer_rtl.css @@ -0,0 +1,34 @@ +.dijitRtl .soria .dijitTab { + margin-right:0; + margin-left:2px; +} +.dijitRtl .soria .dijitTabContainer .tabStripButton { + margin-left: 0; +} +.dijitRtl .soria .dijitTabContainerTopStrip, +.dijitRtl .soria .dijitTabContainerBottomStrip, +.dijitRtl .soria .dijitTabContainerTop-tabs, +.dijitRtl .soria .dijitTabContainerBottom-tabs { + padding-left: 0; + padding-right: 3px; +} +.dijitRtl .soria .dijitTabInnerDiv { + padding-left: 3px; + padding-right: 4px; +} +.dijitRtl .soria .dijitTabPaneWrapper { + #zoom: 1; +} +.dj_ie-rtl .soria .dijitTabContainerLeft-tabs { + margin-left: 0px !important; +} +.dj_ie-rtl .soria .dijitTabContainerRight-tabs { + margin-right: 0px !important; +} +.dijitRtl .soria .dijitTabContainerLeft-tabs .dijitTab, +.dijitRtl .soria .dijitTabContainerRight-tabs .dijitTab { + margin-left:0px; +} +.dj_ie-rtl .soria .dijitTab .dijitTabInnerDiv{ + width : 1%; +} diff --git a/lib/dijit/themes/soria/soria.css b/lib/dijit/themes/soria/soria.css new file mode 100644 index 000000000..e7f4ac6ab --- /dev/null +++ b/lib/dijit/themes/soria/soria.css @@ -0,0 +1,3345 @@ + +.dijitReset { + + margin:0; + border:0; + padding:0; + line-height:normal; + font: inherit; + color: inherit; +} +.dijit_a11y .dijitReset { + -moz-appearance: none; +} +.dijitInline { + + display:inline-block; + #zoom: 1; + #display:inline; + border:0; + padding:0; + vertical-align:middle; + #vertical-align: auto; +} +.dijitHidden { + + display: none !important; +} +.dijitVisible { + + display: block !important; + position: relative; +} +.dijitInputContainer { + + #zoom: 1; + overflow: hidden; + float: none !important; + position:relative; +} +.dj_ie INPUT.dijitTextBox, +.dj_ie .dijitTextBox INPUT { + font-size: 100%; +} +.dijitTextBox .dijitSpinnerButtonContainer, +.dijitTextBox .dijitArrowButtonContainer, +.dijitTextBox .dijitValidationContainer { + float: right; + text-align: center; +} +.dijitTextBox INPUT.dijitInputField { + + padding-left: 0 !important; + padding-right: 0 !important; +} +.dijitTextBox .dijitValidationContainer { + display: none; +} +.dijitInlineTable { + + display:inline-table; + display:inline-block; + #zoom: 1; + #display:inline; + box-sizing: content-box; -moz-box-sizing: content-box; + border:0; + padding:0; +} +.dijitTeeny { + font-size:1px; + line-height:1px; +} +.dijitOffScreen { + position: absolute; + visibility: hidden; + left: 50%; + top: -10000px; +} +.dijitPopup { + position: absolute; + background-color: transparent; + margin: 0; + border: 0; + padding: 0; +} +.dijit_a11y .dijitPopup, +.dijit_ally .dijitPopup DIV, +.dijit_a11y .dijitPopup TABLE, +.dijit_a11y .dijitTooltipContainer { + background-color: white !important; +} +.dijitPositionOnly { + + padding: 0 !important; + border: 0 !important; + background-color: transparent !important; + background-image: none !important; + height: auto !important; + width: auto !important; +} +.dijitNonPositionOnly { + + float: none !important; + position: static !important; + margin: 0 0 0 0 !important; + vertical-align: middle !important; +} +.dijitBackgroundIframe { + + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + z-index: -1; + border: 0; + padding: 0; + margin: 0; +} +.dijitDisplayNone { + + display:none !important; +} +.dijitContainer { + + overflow: hidden; +} +.dijit_a11y * { + background-image:none !important; +} +.dijit_a11y .dijitIcon, +.dijit_a11y DIV.dijitArrowButtonInner, +.dijit_a11y SPAN.dijitArrowButtonInner, +.dijit_a11y IMG.dijitArrowButtonInner, +.dijit_a11y .dijitCalendarIncrementControl { + + display: none; +} +.dijitSpinner DIV.dijitArrowButtonInner { + display: block; +} +.dijit_a11y .dijitA11ySideArrow { + display: inline !important; + cursor: pointer; +} +.dijit_a11y .dijitCalendarDateLabel { + padding: 1px; +} +.dijit_a11y .dijitCalendarSelectedDate .dijitCalendarDateLabel { + border-style: dotted !important; + border-width: 1px; + padding: 0px; +} +.dijit_a11y .dijitCalendarDateTemplate { + padding-bottom: 0.1em !important; +} +.dijit_a11y .dijit * { + background:white !important; + color:black !important; +} +.dijit_a11y .dijitButtonNode { + border-color: black!important; + border-style: outset!important; + border-width: medium!important; +} +.dijit_a11y .dijitTextBoxReadOnly .dijitInputField, +.dijit_a11y .dijitTextBoxReadOnly .dijitButtonNode { + border-style: outset!important; + border-width: medium!important; + border-color: #999 !important; + color:#999 !important; +} +.dijitButtonNode * { + vertical-align: middle; +} +.dijitButtonNode .dijitArrowButtonInner { + + background: no-repeat center; + width: 12px; + height: 12px; + direction: ltr; +} +.dijitLeft { + + background-position:left top; + background-repeat:no-repeat; +} +.dijitStretch { + + white-space:nowrap; + background-repeat:repeat-x; +} +.dijitRight { + + #display:inline; + background-position:right top; + background-repeat:no-repeat; +} +.dijitToggleButton, +.dijitButton, +.dijitDropDownButton, +.dijitComboButton { + + margin: 0.2em; +} +.dijitButtonContents { + display: block; +} +td.dijitButtonContents { + display: table-cell; +} +.dijitButtonNode IMG { + + vertical-align:middle; + +} +TABLE.dijitComboButton { + + border-collapse: collapse; + border:0; + padding:0; + margin:0; +} +.dijitToolbar .dijitComboButton { + + border-collapse: separate; +} +.dijitToolbar .dijitToggleButton, +.dijitToolbar .dijitButton, +.dijitToolbar .dijitDropDownButton, +.dijitToolbar .dijitComboButton { + margin: 0; +} +.dijitToolbar .dijitButtonContents { + + padding: 1px 2px; +} +.dj_ie .dijitComboButton { + + margin-bottom: -3px; +} +.dj_webkit .dijitToolbar .dijitDropDownButton { + padding-left: 0.3em; +} +.dj_gecko .dijitToolbar .dijitButtonNode::-moz-focus-inner { + padding:0; +} +.dijitButtonNode { + + border:1px solid gray; + margin:0; + line-height:normal; + vertical-align: middle; + #vertical-align: auto; + text-align:center; + white-space: nowrap; +} +.dj_webkit .dijitSpinner .dijitSpinnerButtonContainer { + + line-height:inherit; +} +.dijitTextBox .dijitButtonNode { + border-width: 0; +} +.dijitButtonNode, +.dijitButtonNode * { + cursor: pointer; +} +.dj_ie .dijitButtonNode { + + zoom: 1; +} +.dj_ie .dijitButtonNode button { + + overflow: visible; +} +DIV.dijitArrowButton { + float: right; +} +.dijitTextBox { + border: solid black 1px; + #overflow: hidden; + width: 15em; + vertical-align: middle; + #vertical-align: auto; +} +.dijitTextBoxReadOnly, +.dijitTextBoxDisabled { + color: gray; +} +.dj_webkit .dijitTextBoxDisabled INPUT { + color: #eee; +} +.dj_webkit TEXTAREA.dijitTextAreaDisabled { + color: #333; +} +.dj_gecko .dijitTextBoxReadOnly INPUT, +.dj_gecko .dijitTextBoxDisabled INPUT { + -moz-user-input: none; +} +.dijitPlaceHolder { + + color: #AAAAAA; + font-style: italic; + position: absolute; + top: 0; + left: 0; + #filter: ""; +} +.dijitTimeTextBox { + width: 8em; +} +.dijitTextBox INPUT:focus { + outline: none; +} +.dijitTextBoxFocused { + outline: auto 5px -webkit-focus-ring-color; +} +.dijitTextBox INPUT { + float: left; +} +.dijitInputInner { + + border:0 !important; + vertical-align:middle !important; + background-color:transparent !important; + width:100% !important; + + padding-left: 0 !important; + padding-right: 0 !important; + margin-left: 0 !important; + margin-right: 0 !important; +} +.dijit_a11y .dijitTextBox INPUT { + margin: 0 !important; +} +.dijitTextBoxError INPUT.dijitValidationInner, +.dijitTextBox INPUT.dijitArrowButtonInner { + + text-indent: -1em !important; + direction: ltr !important; + text-align: left !important; + height: auto !important; + #text-indent: 0 !important; + #letter-spacing: -5em !important; + #text-align: right !important; +} +.dj_ie .dijitTextBox INPUT, +.dj_ie INPUT.dijitTextBox { + overflow-y: visible; + line-height: normal; +} +.dj_ie7 .dijitTextBox INPUT.dijitValidationInner, +.dj_ie7 .dijitTextBox INPUT.dijitArrowButtonInner { + line-height: 86%; +} +.dj_ie6 .dijitTextBox INPUT, +.dj_ie6 INPUT.dijitTextBox, +.dj_iequirks .dijitTextBox INPUT.dijitValidationInner, +.dj_iequirks .dijitTextBox INPUT.dijitArrowButtonInner, +.dj_iequirks .dijitTextBox INPUT.dijitSpinnerButtonInner, +.dj_iequirks .dijitTextBox INPUT.dijitInputInner, +.dj_iequirks INPUT.dijitTextBox { + line-height: 100%; +} +.dijit_a11y INPUT.dijitValidationInner, +.dijit_a11y INPUT.dijitArrowButtonInner { + + text-indent: 0 !important; + width: 1em !important; + #text-align: left !important; +} +.dijitTextBoxError .dijitValidationContainer { + display: inline; + cursor: default; +} +.dijitSpinner .dijitSpinnerButtonContainer, +.dijitComboBox .dijitArrowButtonContainer { + + border-width: 0 0 0 1px !important; +} +.dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode { + + border-width: 0; +} +.dj_ie .dijit_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode { + clear: both; +} +.dijit_a11y .dijitTextBox .dijitValidationContainer, +.dijit_a11y .dijitTextBox .dijitSpinnerButtonContainer, +.dijit_a11y .dijitComboBox .dijitArrowButtonContainer { + + border: solid black !important; + border-width: 0 0 0 1px !important; +} +.dj_ie .dijitToolbar .dijitComboBox { + + vertical-align: middle; +} +.dijitTextBox .dijitSpinnerButtonContainer { + width: 1em; + position: relative !important; + overflow: hidden; +} +.dijitSpinner .dijitSpinnerButtonInner { + width:1em; + visibility:hidden !important; + overflow-x:hidden; +} +.dijitComboBox .dijitButtonNode, +.dijitSpinnerButtonContainer .dijitButtonNode { + border-width: 0; +} +.dijit_a11y .dijitSpinnerButtonContainer .dijitButtonNode { + border: 0 none !important; +} +.dijit_a11y .dijitTextBox .dijitSpinnerButtonContainer, +.dijit_a11y .dijitSpinner .dijitArrowButtonInner, +.dijit_a11y .dijitSpinnerButtonContainer INPUT { + width: 1em !important; +} +.dijit_a11y .dijitSpinner .dijitArrowButtonInner { + margin: 0 auto !important; +} +.dj_ie .dijit_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { + padding-left: 0.3em !important; + padding-right: 0.3em !important; + margin-left: 0.3em !important; + margin-right: 0.3em !important; + width: 1.4em !important; +} +.dj_ie7 .dijit_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { + padding-left: 0.0em !important; + padding-right: 0.0em !important; + width: 1em !important; +} +.dj_ie6 .dijit_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { + margin-left: 0.1em !important; + margin-right: 0.1em !important; + width: 1em !important; +} +.dj_iequirks .dijit_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { + margin-left: 0 !important; + margin-right: 0 !important; + width: 2em !important; +} +.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { + + padding: 0; + position: absolute !important; + right: 0; + float: none; + height: 50%; + width: 100%; + bottom: auto; + left: 0; + right: auto; +} +.dj_iequirks .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { + width: auto; +} +.dijit_a11y .dijitSpinnerButtonContainer .dijitArrowButton { + overflow: visible !important; +} +.dijitSpinner .dijitSpinnerButtonContainer .dijitDownArrowButton { + top: 50%; + border-top-width: 1px !important; +} +.dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton { + #bottom: 50%; + top: 0; +} +.dijitSpinner .dijitArrowButtonInner { + margin: auto; + overflow-x: hidden; + height: 100% !important; +} +.dj_iequirks .dijitSpinner .dijitArrowButtonInner { + height: auto !important; +} +.dijitSpinner .dijitArrowButtonInner .dijitInputField { + -moz-transform: scale(0.5); + -moz-transform-origin: center top; + -webkit-transform: scale(0.5); + -webkit-transform-origin: center top; + -o-transform: scale(0.5); + -o-transform-origin: center top; + transform: scale(0.5); + transform-origin: left top; + padding-top: 0; + padding-bottom: 0; + padding-left: 0 !important; + padding-right: 0 !important; + width: 100%; +} +.dj_ie .dijitSpinner .dijitArrowButtonInner .dijitInputField { + zoom: 50%; +} +.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButtonInner { + overflow: hidden; +} +.dijit_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { + width: 100%; +} +.dj_iequirks .dijit_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { + width: 1em; +} +.dijitSpinner .dijitArrowButtonInner .dijitInputField { + visibility: hidden; +} +.dijit_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { + vertical-align:top; + visibility: visible; +} +.dijit_a11y .dijitSpinnerButtonContainer { + width: 1em; +} +.dijit_a11y .dijitSpinnerButtonContainer .dijitButtonNode { + border-width: 1px 0px 0px 0px; + border-style: solid !important; +} +.dijitCheckBox, +.dijitRadio, +.dijitCheckBoxInput { + padding: 0; + border: 0; + width: 16px; + height: 16px; + background-position:center center; + background-repeat:no-repeat; + overflow: hidden; +} +.dijitCheckBox INPUT, +.dijitRadio INPUT { + margin: 0; + padding: 0; + display: block; +} +.dijitCheckBoxInput { + + opacity: 0.01; +} +.dj_ie .dijitCheckBoxInput { + filter: alpha(opacity=0); +} +.dijit_a11y .dijitCheckBox, +.dijit_a11y .dijitRadio { + + width: auto !important; + height: auto !important; +} +.dijit_a11y .dijitCheckBoxInput { + opacity: 1; + filter: none; + width: auto; + height: auto; +} +.dijitProgressBarEmpty { + + position:relative;overflow:hidden; + border:1px solid black; + z-index:0; +} +.dijitProgressBarFull { + + position:absolute; + overflow:hidden; + z-index:-1; + top:0; + width:100%; +} +.dj_ie6 .dijitProgressBarFull { + height:1.6em; +} +.dijitProgressBarTile { + + position:absolute; + overflow:hidden; + top:0; + left:0; + bottom:0; + right:0; + margin:0; + padding:0; + width:auto; + height:auto; + background-color:#aaa; + background-attachment: fixed; +} +.dijit_a11y .dijitProgressBarTile { + + border-width:2px; + border-style:solid; + background-color:transparent !important; +} +.dj_ie6 .dijitProgressBarTile { + + position:static; + + height:1.6em; +} +.dijitProgressBarIndeterminate .dijitProgressBarLabel { + visibility:hidden; +} +.dijitProgressBarIndeterminate .dijitProgressBarTile { + +} +.dijitProgressBarIndeterminateHighContrastImage { + display:none; +} +.dijit_a11y .dijitProgressBarIndeterminate .dijitProgressBarIndeterminateHighContrastImage { + display:block; + position:absolute; + top:0; + bottom:0; + margin:0; + padding:0; + width:100%; + height:auto; +} +.dijitProgressBarLabel { + display:block; + position:static; + width:100%; + text-align:center; + background-color:transparent !important; +} +.dijitTooltip { + position: absolute; + z-index: 2000; + display: block; + + left: 50%; + top: -10000px; + overflow: visible; +} +.dijitTooltipContainer { + border: solid black 2px; + background: #b8b5b5; + color: black; + font-size: small; +} +.dijitTooltipFocusNode { + padding: 2px 2px 2px 2px; +} +.dijitTooltipConnector { + position: absolute; +} +.dijit_a11y .dijitTooltipConnector { + display: none; +} +.dijitTooltipData { + display:none; +} +.dijitLayoutContainer { + position: relative; + display: block; + overflow: hidden; +} +body .dijitAlignTop, +body .dijitAlignBottom, +body .dijitAlignLeft, +body .dijitAlignRight { + position: absolute; + overflow: hidden; +} +body .dijitAlignClient { position: absolute; } +.dijitBorderContainer, .dijitBorderContainerNoGutter { + position:relative; + overflow: hidden; +} +.dijitBorderContainerPane, +.dijitBorderContainerNoGutterPane { + position: absolute !important; + z-index: 2; +} +.dijitBorderContainer > .dijitTextArea { + + resize: none; +} +.dijitGutter { + + position: absolute; + font-size: 1px; +} +.dijitSplitter { + position: absolute; + overflow: hidden; + z-index: 10; + background-color: #fff; + border-color: gray; + border-style: solid; + border-width: 0; +} +.dj_ie .dijitSplitter { + z-index: 1; +} +.dijitSplitterActive { + z-index: 11 !important; +} +.dijitSplitterCover { + position:absolute; + z-index:-1; + top:0; + left:0; + width:100%; + height:100%; +} +.dijitSplitterCoverActive { + z-index:3 !important; +} +.dj_ie .dijitSplitterCover { + background: white; + filter: alpha(opacity=0); +} +.dijitSplitterH { + height: 7px; + border-top:1px; + border-bottom:1px; + cursor: ns-resize; +} +.dijitSplitterV { + width: 7px; + border-left:1px; + border-right:1px; + cursor: ew-resize; +} +.dijitSplitContainer { + position: relative; + overflow: hidden; + display: block; +} +.dj_ff3 .dijit_a11y div.dijitSplitter:focus { + outline-style:dotted; + outline-width: 2px; +} +.dijitSplitPane { + position: absolute; +} +.dijitSplitContainerSizerH, +.dijitSplitContainerSizerV { + position:absolute; + font-size: 1px; + cursor: move; + cursor: w-resize; + background-color: ThreeDFace; + border: 1px solid; + border-color: ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight; + margin: 0; +} +.dijitSplitContainerSizerH .thumb, .dijitSplitterV .dijitSplitterThumb { + overflow:hidden; + position:absolute; + top:49%; +} +.dijitSplitContainerSizerV .thumb, .dijitSplitterH .dijitSplitterThumb { + position:absolute; + left:49%; +} +.dijitSplitterShadow, +.dijitSplitContainerVirtualSizerH, +.dijitSplitContainerVirtualSizerV { + font-size: 1px; + background-color: ThreeDShadow; + -moz-opacity: 0.5; + opacity: 0.5; + filter: Alpha(Opacity=50); + margin: 0; +} +.dj_ie .dijitSplitterV, .dijitSplitContainerVirtualSizerH { + cursor: w-resize; +} +.dj_ie .dijitSplitterH, .dijitSplitContainerSizerV, .dijitSplitContainerVirtualSizerV { + cursor: n-resize; +} +.dijit_a11y .dijitSplitterH { + border-top:1px solid #d3d3d3 !important; + border-bottom:1px solid #d3d3d3 !important; +} +.dijit_a11y .dijitSplitterV { + border-left:1px solid #d3d3d3 !important; + border-right:1px solid #d3d3d3 !important; +} +.dijitContentPane { + display: block; + overflow: auto; +} +.dijitContentPaneSingleChild { + + overflow: hidden; +} +.dijitTitlePane { + display: block; + overflow: hidden; +} +.dijitTitlePaneTitle { + cursor: pointer; +} +.dijitFixedOpen { + + cursor: default; +} +.dijitTitlePaneTitle * { + vertical-align: middle; +} +.dijitTitlePane .dijitArrowNodeInner { + + display: none; +} +.dijit_a11y .dijitTitlePane .dijitArrowNodeInner { + + display:inline !important; + font-family: monospace; +} +.dijit_a11y .dijitTitlePane .dijitArrowNode { + + display:none; +} +.dj_ie6 .dijitTitlePaneContentOuter, +.dj_ie6 .dijitTitlePane .dijitTitlePaneTitle { + + zoom: 1; +} +.dijitColorPalette { + border: 1px solid #999; + background: #fff; + position: relative; +} +img.dijitColorPaletteUnder { + + border-style: none; + position: absolute; + left: 0; + top: 0; +} +.dijitColorPalette .dijitPaletteTable { + + padding: 2px 3px 3px 3px; + position: relative; + overflow: hidden; + outline: 0; + border-collapse: separate; +} +.dj_ie6 .dijitColorPalette .dijitPaletteTable, +.dj_ie7 .dijitColorPalette .dijitPaletteTable, +.dj_iequirks .dijitColorPalette .dijitPaletteTable { + + padding: 0; + margin: 2px 3px 3px 3px; +} +.dijitColorPalette .dijitPaletteCell { + + height: 20px; + width: 20px; + font-size: 1px; + vertical-align: middle; + text-align: center; +} +.dijitColorPalette .dijitPaletteImg { + + width: 16px; + height: 14px; + border: 1px solid #999; + cursor: default; + vertical-align: middle; +} +.dj_iequirks .dijitColorPalette .dijitPaletteImg { + margin: 1px; +} +.dijitPaletteTable td { + padding: 0px; +} +.dijitColorPalette .dijitPaletteCellHover .dijitPaletteImg { + + border: 1px solid #000; +} +.dijitColorPalette .dijitPaletteCellActive .dijitPaletteImg, +.dijitColorPalette .dijitPaletteCellSelected .dijitPaletteImg { + border: 2px solid #000; +} +.dijit_a11y .dijitColorPalette .dijitPaletteTable, +.dijit_a11y .dijitColorPalette .dijitPaletteTable * { + + background-color: transparent !important; +} +.dj_gecko .dijit_a11y .dijitColorPalette .dijitPaletteCellFocused .dijitPaletteImg { + border: 3px dotted #000; + margin: -1px; +} +.dijit_a11y .dijitColorPalette .dijitPaletteCellHover .dijitPaletteImg { + border: 2px solid #000 !important; +} +.dijitAccordionContainer { + border:1px solid #b7b7b7; + border-top:0 !important; +} +.dijitAccordionTitle { + cursor: pointer; +} +.dijitAccordionTitleSelected { + cursor: default; +} +.dijitAccordionTitle .arrowTextUp, +.dijitAccordionTitle .arrowTextDown { + display: none; + font-size: 0.65em; + font-weight: normal !important; +} +.dijit_a11y .dijitAccordionTitle .arrowTextUp, +.dijit_a11y .dijitAccordionTitleSelected .arrowTextDown { + display: inline; +} +.dijit_a11y .dijitAccordionTitleSelected .arrowTextUp { + display: none; +} +.dj_ie6 .dijitAccordionTitle, +.dj_iequirks .dijitAccordionTitle { + + zoom: 1; +} +.dijitCalendarContainer { + width: auto; +} +.dijitCalendarContainer th, .dijitCalendarContainer td { + padding: 0; +} +.dijitCalendarNextYear { + margin:0 0 0 0.55em; +} +.dijitCalendarPreviousYear { + margin:0 0.55em 0 0; +} +.dijitCalendarIncrementControl { + vertical-align: middle; +} +.dijitCalendarIncrementControl, +.dijitCalendarDateTemplate, +.dijitCalendarMonthLabel, +.dijitCalendarPreviousYear, +.dijitCalendarNextYear { + cursor: pointer; +} +.dijitCalendarDisabledDate { + color: gray; + text-decoration: line-through; + cursor: default; +} +.dijitSpacer { + + position: relative; + height: 1px; + overflow: hidden; + visibility: hidden; +} +.dijitMenu { + border:1px solid black; + background-color:white; +} +.dijitMenuTable { + border-collapse:collapse; + border-width:0; + background-color:white; +} +.dj_webkit .dijitMenuTable td[colspan="2"]{ + border-right:hidden; +} +.dijitMenuItem { + text-align: left; + white-space: nowrap; + padding:.1em .2em; + cursor:pointer; +} +.dijitMenuPassive .dijitMenuItemHover, +.dijitMenuItemSelected { + + background-color:black; + color:white; +} +.dijitMenuItemIcon, .dijitMenuExpand { + background-repeat: no-repeat; +} +.dijitMenuItemDisabled * { + + opacity:0.5; + cursor:default; +} +.dj_ie .dijit_a11y .dijitMenuItemDisabled, +.dj_ie .dijit_a11y .dijitMenuItemDisabled td, +.dj_ie .dijitMenuItemDisabled *, +.dj_ie .dijitMenuItemDisabled td { + color:gray !important; + filter: alpha(opacity=35); +} +.dijitMenuItemLabel { + position: relative; + vertical-align: middle; +} +.dijit_a11y .dijitMenuItemSelected { + border: 1px dotted black !important; +} +.dj_ff3 .dijit_a11y .dijitMenuItem td { + padding: none !important; + background:none !important; +} +.dijit_a11y .dijitMenuItemSelected .dijitMenuItemLabel { + border-width: 1px; + border-style: solid; +} +.dj_ie8 .dijit_a11y .dijitMenuItemLabel { + position:static; +} +.dijitMenuExpandA11y { + display: none; +} +.dijit_a11y .dijitMenuExpandA11y { + display: inline; +} +.dijitMenuSeparator td { + border: 0; + padding: 0; +} +.dijitMenuSeparatorTop { + height: 50%; + margin: 0; + margin-top:3px; + font-size: 1px; +} +.dijitMenuSeparatorBottom { + height: 50%; + margin: 0; + margin-bottom:3px; + font-size: 1px; +} +.dijitCheckedMenuItemIconChar { + vertical-align: middle; + visibility:hidden; +} +.dijitCheckedMenuItemChecked .dijitCheckedMenuItemIconChar { + visibility: visible; +} +.dijit_a11y .dijitCheckedMenuItemIconChar { + display:inline !important; +} +.dijit_a11y .dijitCheckedMenuItemIcon { + display: none; +} +.dj_ie .dijit_a11y .dijitMenuBar .dijitMenuItem { + + margin: 0px; +} +.dijitStackController .dijitToggleButtonChecked * { + cursor: default; +} +.dijitTabContainerNoLayout { + width: 100%; +} +.dijitTabContainerBottom-tabs, +.dijitTabContainerTop-tabs, +.dijitTabContainerLeft-tabs, +.dijitTabContainerRight-tabs { + overflow: visible !important; +} +.dijitTabContainerBottom-container, +.dijitTabContainerTop-container, +.dijitTabContainerLeft-container, +.dijitTabContainerRight-container { + z-index:0; + overflow: hidden; + border: 1px solid black; +} +.nowrapTabStrip { + width: 50000px; + display: block; + position: relative; +} +.dijitTabListWrapper { + overflow: hidden; +} +.dijit_a11y .tabStripButton img { + + display: none; +} +.dijitTabContainerTop-tabs { + border-bottom: 1px solid black; +} +.dijitTabContainerTop-container { + border-top: 0px; +} +.dijitTabContainerLeft-tabs { + border-right: 1px solid black; + float: left; +} +.dijitTabContainerLeft-container { + border-left: 0px; +} +.dijitTabContainerBottom-tabs { + border-top: 1px solid black; +} +.dijitTabContainerBottom-container { + border-bottom: 0px; +} +.dijitTabContainerRight-tabs { + border-left: 1px solid black; + float: left; +} +.dijitTabContainerRight-container { + border-right: 0px; +} +DIV.dijitTabDisabled, .dj_ie DIV.dijitTabDisabled { + cursor: auto; +} +.dijitTab { + position:relative; + cursor:pointer; + white-space:nowrap; + z-index:3; +} +.dijitTab * { + + vertical-align: middle; +} +.dijitTabChecked { + cursor: default; +} +.dijitTabContainerTop-tabs .dijitTab { + top: 1px; +} +.dijitTabContainerBottom-tabs .dijitTab { + top: -1px; +} +.dijitTabContainerLeft-tabs .dijitTab { + left: 1px; +} +.dijitTabContainerRight-tabs .dijitTab { + left: -1px; +} +.dijitTabContainerTop-tabs .dijitTab, +.dijitTabContainerBottom-tabs .dijitTab { + + display:inline-block; + #zoom: 1; + #display:inline; +} +.dijitTabInnerDiv { + position:relative; +} +.tabStripButton { + z-index: 12; +} +.dijitTabButtonDisabled .tabStripButton { + display: none; +} +.dijitTabCloseButton { + margin-left: 1em; +} +.dijitTabCloseText { + display:none; +} +.dijit_a11y .dijitTabCloseButton { + background-image: none !important; + width: auto !important; + height: auto !important; + border: thin dotted; +} +.dijit_a11y .dijitTabCloseButtonHover { + border:thin solid; +} +.dijit_a11y .dijitTabCloseText { + display: inline; +} +.dijit_a11y .dijitTabChecked { + + border-style:dashed !important; +} +.dijit_a11y .dijitTabInnerDiv { + border-left:none !important; + } +.dijitTabPane, +.dijitStackContainer-child, +.dijitAccordionContainer-child { + + border: none !important; +} +.dijitInlineEditBoxDisplayMode { + border: 1px solid transparent; + cursor: text; +} +.dijit_a11y .dijitInlineEditBoxDisplayMode, +.dj_ie6 .dijitInlineEditBoxDisplayMode { + + border: none; +} +.dijitInlineEditBoxDisplayModeHover, +.dijit_a11y .dijitInlineEditBoxDisplayModeHover, +.dj_ie6 .dijitInlineEditBoxDisplayModeHover { + + background-color: #e2ebf2; + border: solid 1px black; +} +.dijitInlineEditBoxDisplayModeDisabled { + cursor: default; +} +.dijitTreeIndent { + + width: 19px; +} +.dijitTreeRow, .dijitTreeContent { + white-space: nowrap; +} +.dijitTreeRow img { + + vertical-align: middle; +} +.dijitTreeContent { + cursor: default; +} +.dijitExpandoText { + display: none; +} +.dijit_a11y .dijitExpandoText { + display: inline; + padding-left: 10px; + padding-right: 10px; + font-family: monospace; + border-style: solid; + border-width: thin; + cursor: pointer; +} +.dijitTreeLabel { + margin: 0px 4px; +} +.dijitDialog { + position: absolute; + z-index: 999; + overflow: hidden; +} +.dijitDialogTitleBar { + cursor: move; +} +.dijitDialogFixed .dijitDialogTitleBar { + cursor:default; +} +.dijitDialogCloseIcon { + cursor: pointer; +} +.dijitDialogUnderlayWrapper { + position: absolute; + left: 0; + top: 0; + z-index: 998; + display: none; + background: transparent !important; +} +.dijitDialogUnderlay { + background: #eee; + opacity: 0.5; +} +.dj_ie .dijitDialogUnderlay { + filter: alpha(opacity=50); +} +.dijit_a11y .dijitSpinnerButtonContainer, +.dijit_a11y .dijitDialog { + opacity: 1 !important; + background-color: white !important; +} +.dijitDialog .closeText { + display:none; + + position:absolute; +} +.dijit_a11y .dijitDialog .closeText { + display:inline; +} +.dijitSliderMoveable { + z-index:99; + position:absolute !important; + display:block; + vertical-align:middle; +} +.dijitSliderMoveableH { + right:0; +} +.dijitSliderMoveableV { + right:50%; +} +.dijit_a11y DIV.dijitSliderImageHandle, +.dijitSliderImageHandle { + margin:0; + padding:0; + position:relative !important; + border:8px solid gray; + width:0; + height:0; + cursor: pointer; +} +.dj_iequirks .dijit_a11y .dijitSliderImageHandle { + font-size: 0; +} +.dj_ie7 .dijitSliderImageHandle { + overflow: hidden; +} +.dj_ie7 .dijit_a11y .dijitSliderImageHandle { + overflow: visible; +} +.dijit_a11y .dijitSliderFocused .dijitSliderImageHandle { + border:4px solid #000; + height:8px; + width:8px; +} +.dijitSliderImageHandleV { + top:-8px; + right: -50%; +} +.dijitSliderImageHandleH { + left:50%; + top:-5px; + vertical-align:top; +} +.dijitSliderBar { + border-style:solid; + border-color:black; + cursor: pointer; +} +.dijitSliderBarContainerV { + position:relative; + height:100%; + z-index:1; +} +.dijitSliderBarContainerH { + position:relative; + z-index:1; +} +.dijitSliderBarH { + height:4px; + border-width:1px 0; +} +.dijitSliderBarV { + width:4px; + border-width:0 1px; +} +.dijitSliderProgressBar { + background-color:red; + z-index:1; +} +.dijitSliderProgressBarV { + position:static !important; + height:0%; + vertical-align:top; + text-align:left; +} +.dijitSliderProgressBarH { + position:absolute !important; + width:0%; + vertical-align:middle; + overflow:visible; +} +.dijitSliderRemainingBar { + overflow:hidden; + background-color:transparent; + z-index:1; +} +.dijitSliderRemainingBarV { + height:100%; + text-align:left; +} +.dijitSliderRemainingBarH { + width:100% !important; +} +.dijitSliderBumper { + overflow:hidden; + z-index:1; +} +.dijitSliderBumperV { + width:4px; + height:8px; + border-width:0 1px; +} +.dijitSliderBumperH { + width:8px; + height:4px; + border-width:1px 0; +} +.dijitSliderBottomBumper, +.dijitSliderLeftBumper { + background-color:red; +} +.dijitSliderTopBumper, +.dijitSliderRightBumper { + background-color:transparent; +} +.dijitSliderDecoration { + text-align:center; +} +.dijitSliderV TD { + position: relative; +} +.dijitSliderDecorationH { + width: 100%; +} +.dijitSliderDecorationV { + height: 100%; +} +.dijitSliderButton { + font-family:monospace; + margin:0; + padding:0; + display:block; +} +.dijit_a11y .dijitSliderButtonInner { + visibility:visible !important; +} +.dijitSliderButtonContainer { + text-align:center; + height:0; +} +.dijitSliderButtonContainer * { + cursor: pointer; +} +.dijitSlider .dijitButtonNode { + padding:0; + display:block; +} +.dijitRuleContainer { + position:relative; + overflow:visible; +} +.dijitRuleContainerV { + height:100%; + line-height:0; + float:left; + text-align:left; +} +.dj_opera .dijitRuleContainerV { + line-height:2%; +} +.dj_ie .dijitRuleContainerV { + line-height:normal; +} +.dj_gecko .dijitRuleContainerV { + margin:0 0 1px 0; +} +.dijitRuleMark { + position:absolute; + border:1px solid black; + line-height:0; + height:100%; +} +.dijitRuleMarkH { + width:0; + border-top-width:0 !important; + border-bottom-width:0 !important; + border-left-width:0 !important; +} +.dijitRuleLabelContainer { + position:absolute; +} +.dijitRuleLabelContainerH { + text-align:center; + display:inline-block; +} +.dijitRuleLabelH { + position:relative; + left:-50%; +} +.dijitRuleLabelV { + + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} +.dijitRuleMarkV { + height:0; + border-right-width:0 !important; + border-bottom-width:0 !important; + border-left-width:0 !important; + width:100%; + left:0; +} +.dj_ie .dijitRuleLabelContainerV { + margin-top:-.55em; +} +.dijit_a11y .dijitSliderReadOnly, +.dijit_a11y .dijitSliderDisabled { + opacity:0.6; +} +.dj_ie .dijit_a11y .dijitSliderReadOnly .dijitSliderBar, +.dj_ie .dijit_a11y .dijitSliderDisabled .dijitSliderBar { + filter: alpha(opacity=40); +} +.dijit_a11y .dijitSlider .dijitSliderButtonContainer DIV { + font-family: monospace; + font-size: 1em; + line-height: 1em; + height: auto; + width: auto; + margin: 0px 4px; +} +.dijit_a11y .dijitButtonContents .dijitButtonText, +.dijit_a11y .dijitTab .tabLabel { + display: inline !important; +} +.dijitTextArea { + width:100%; + overflow-y: auto; +} +.dijitTextArea[cols] { + width:auto; +} +.dj_ie .dijitTextAreaCols { + width:auto; +} +.dijitToolbarSeparator { + height: 18px; + width: 5px; + padding: 0 1px; + margin: 0; +} +.dijitIEFixedToolbar { + position:absolute; + + top: expression(eval((document.documentElement||document.body).scrollTop)); +} +.dijitEditor { + display: block; +} +.dijitEditorDisabled, +.dijitEditorReadOnly { + color: gray; +} +.dijitTimePickerItemInner { + text-align:center; + border:0; + padding:2px 8px 2px 8px; +} +.dijitTimePickerTick, +.dijitTimePickerMarker { + border-bottom:1px solid gray; +} +.dijitTimePicker .dijitDownArrowButton { + border-top: none !important; +} +.dijitTimePickerTick { + color:#CCC; +} +.dijitTimePickerMarker { + color:black; + background-color:#CCC; +} +.dijitTimePickerItemSelected { + font-weight:bold; + color:#333; + background-color:#b7cdee; +} +.dijitTimePickerItemHover { + background-color:gray; + color:white; + cursor:pointer; +} +.dijit_a11y .dijitTimePickerItemSelected .dijitTimePickerItemInner { + border: solid 4px black; +} +.dijit_a11y .dijitTimePickerItemHover .dijitTimePickerItemInner { + border: dashed 4px black; +} +.dijitToggleButtonIconChar { + + display:none !important; +} +.dijit_a11y .dijitToggleButton .dijitToggleButtonIconChar { + display:inline !important; + visibility:hidden; +} +.dj_ie6 .dijitToggleButtonIconChar, .dj_ie6 .tabStripButton .dijitButtonText { + font-family: "Arial Unicode MS"; +} +.dijit_a11y .dijitToggleButtonChecked .dijitToggleButtonIconChar { + display: inline !important; + visibility:visible !important; +} +.dijitArrowButtonChar { + display:none !important; +} +.dijit_a11y .dijitArrowButtonChar { + display:inline !important; +} +.dijit_a11y .dijitDropDownButton .dijitArrowButtonInner, +.dijit_a11y .dijitComboButton .dijitArrowButtonInner { + display:none !important; +} +.dijitSelect { + margin: 0.2em; + border-collapse: collapse; +} +.dj_ie .dijitSelect, +.dj_ie7 .dijitSelect, +.dj_iequirks .dijitSelect { + vertical-align: middle; +} +.dj_ie8 .dijitSelect .dijitButtonText { + vertical-align: top; +} +.dijitToolbar .dijitSelect { + margin: 0; +} +.dj_webkit .dijitToolbar .dijitSelect { + padding-left: 0.3em; +} +.dijit_a11y .dijitSelectDisabled .dijitButtonNode { + border-style: outset!important; + border-width: medium!important; + border-color: #999 !important; + color:#999 !important; +} +.dijitSelect .dijitButtonContents { + padding: 0px; + background: transparent none; + white-space: nowrap; + text-align: left; +} +.dijitSelectFixedWidth .dijitButtonContents { + width: 100%; +} +.dijitSelectMenu .dijitMenuItemIcon { + + display:none; +} +.dj_ie6 .dijitSelectMenu .dijitMenuItemLabel, +.dj_ie7 .dijitSelectMenu .dijitMenuItemLabel { + + position: static; +} +.dijitSelectLabel * +{ + vertical-align: baseline; +} +.dijitSelectSelectedOption * { + font-weight: bold; +} +.dijitSelectMenu { + border-width: 1px; +} +.dijitSelectMenu .dijitMenuTable { + margin: 0px; + background-color: transparent; +} +.dijitForceStatic { + position: static !important; +} +.dijitReadOnly *, +.dijitDisabled *, +.dijitReadOnly, +.dijitDisabled { + + cursor: default; +} +.dijitIconSave, +.dijitIconPrint, +.dijitIconCut, +.dijitIconCopy, +.dijitIconClear, +.dijitIconDelete, +.dijitIconUndo, +.dijitIconEdit, +.dijitIconNewTask, +.dijitIconEditTask, +.dijitIconEditProperty, +.dijitIconTask, +.dijitIconFilter, +.dijitIconConfigure, +.dijitIconSearch, +.dijitIconApplication, +.dijitIconBookmark, +.dijitIconChart, +.dijitIconConnector, +.dijitIconDatabase, +.dijitIconDocuments, +.dijitIconMail, +.dijitLeaf, +.dijitIconFile, +.dijitIconFunction, +.dijitIconKey, +.dijitIconPackage, +.dijitIconSample, +.dijitIconTable, +.dijitIconUsers, +.dijitFolderClosed, +.dijitIconFolderClosed, +.dijitFolderOpened, +.dijitIconFolderOpen, +.dijitIconError { + background-image: url(../../icons/images/commonIconsObjActEnabled.png); + width: 16px; + height: 16px; +} +.dj_ie6 .dijitIconSave, +.dj_ie6 .dijitIconPrint, +.dj_ie6 .dijitIconCut, +.dj_ie6 .dijitIconCopy, +.dj_ie6 .dijitIconClear, +.dj_ie6 .dijitIconDelete, +.dj_ie6 .dijitIconUndo, +.dj_ie6 .dijitIconEdit, +.dj_ie6 .dijitIconNewTask, +.dj_ie6 .dijitIconEditTask, +.dj_ie6 .dijitIconEditProperty, +.dj_ie6 .dijitIconTask, +.dj_ie6 .dijitIconFilter, +.dj_ie6 .dijitIconConfigure, +.dj_ie6 .dijitIconSearch, +.dj_ie6 .dijitIconApplication, +.dj_ie6 .dijitIconBookmark, +.dj_ie6 .dijitIconChart, +.dj_ie6 .dijitIconConnector, +.dj_ie6 .dijitIconDatabase, +.dj_ie6 .dijitIconDocuments, +.dj_ie6 .dijitIconMail, +.dj_ie6 .dijitLeaf, +.dj_ie6 .dijitIconFile, +.dj_ie6 .dijitIconFunction, +.dj_ie6 .dijitIconKey, +.dj_ie6 .dijitIconPackage, +.dj_ie6 .dijitIconSample, +.dj_ie6 .dijitIconTable, +.dj_ie6 .dijitIconUsers, +.dj_ie6 .dijitFolderClosed, +.dj_ie6 .dijitIconFolderClosed, +.dj_ie6 .dijitFolderOpened, +.dj_ie6 .dijitIconFolderOpen, +.dj_ie6 .dijitIconError { + background-image: url(../../icons/images/commonIconsObjActEnabled8bit.png); +} +.dijitDisabled .dijitIconSave, +.dijitDisabled .dijitIconPrint, +.dijitDisabled .dijitIconCut, +.dijitDisabled .dijitIconCopy, +.dijitDisabled .dijitIconClear, +.dijitDisabled .dijitIconDelete, +.dijitDisabled .dijitIconUndo, +.dijitDisabled .dijitIconEdit, +.dijitDisabled .dijitIconNewTask, +.dijitDisabled .dijitIconEditTask, +.dijitDisabled .dijitIconEditProperty, +.dijitDisabled .dijitIconTask, +.dijitDisabled .dijitIconFilter, +.dijitDisabled .dijitIconConfigure, +.dijitDisabled .dijitIconSearch, +.dijitDisabled .dijitIconApplication, +.dijitDisabled .dijitIconBookmark, +.dijitDisabled .dijitIconChart, +.dijitDisabled .dijitIconConnector, +.dijitDisabled .dijitIconDatabase, +.dijitDisabled .dijitIconDocuments, +.dijitDisabled .dijitIconMail, +.dijitDisabled .dijitLeaf, +.dijitDisabled .dijitIconFile, +.dijitDisabled .dijitIconFunction, +.dijitDisabled .dijitIconKey, +.dijitDisabled .dijitIconPackage, +.dijitDisabled .dijitIconSample, +.dijitDisabled .dijitIconTable, +.dijitDisabled .dijitIconUsers, +.dijitDisabled .dijitFolderClosed, +.dijitDisabled .dijitIconFolderClosed, +.dijitDisabled .dijitFolderOpened, +.dijitDisabled .dijitIconFolderOpen, +.dijitDisabled .dijitIconError { + background-image: url(../../icons/images/commonIconsObjActDisabled.png); +} +.dijitIconSave { background-position: 0px; } +.dijitIconPrint { background-position: -16px; } +.dijitIconCut { background-position: -32px; } +.dijitIconCopy { background-position: -48px; } +.dijitIconClear { background-position: -64px; } +.dijitIconDelete { background-position: -80px; } +.dijitIconUndo { background-position: -96px; } +.dijitIconEdit { background-position: -112px; } +.dijitIconNewTask { background-position: -128px; } +.dijitIconEditTask { background-position: -144px; } +.dijitIconEditProperty { background-position: -166px; } +.dijitIconTask { background-position: -176px; } +.dijitIconFilter { background-position: -192px; } +.dijitIconConfigure { background-position: -208px; } +.dijitIconSearch { background-position: -224px; } +.dijitIconError { background-position: -496px; } +.dijitIconApplication { background-position: -240px; } +.dijitIconBookmark { background-position: -256px; } +.dijitIconChart { background-position: -272px; } +.dijitIconConnector { background-position: -288px; } +.dijitIconDatabase { background-position: -304px; } +.dijitIconDocuments { background-position: -320px; } +.dijitIconMail { background-position: -336px; } +.dijitIconFile, .dijitLeaf { background-position: -352px; } +.dijitIconFunction { background-position: -368px; } +.dijitIconKey { background-position: -384px; } +.dijitIconPackage{ background-position: -400px; } +.dijitIconSample { background-position: -416px; } +.dijitIconTable { background-position: -432px; } +.dijitIconUsers { background-position: -448px; } +.dijitIconFolderClosed, .dijitFolderClosed { background-position: -464px; } +.dijitIconFolderOpen, .dijitFolderOpened { background-position: -480px; } +.soria .dojoDndItemBefore { + border-top: 2px solid #369; +} +.soria .dojoDndItemAfter { + border-bottom: 2px solid #369; +} +.soria .dojoDndItemOver { + cursor:pointer; +} +.soria table.dojoDndAvatar { -moz-border-radius: 0; border: 1px solid #ccc; border-collapse: collapse; background-color: #fff; font-size: 75%; color: black;} +.soria .dojoDndAvatar td { border: none; } +.soria .dojoDndAvatar tr { border: none; } +.soria .dojoDndAvatarHeader td { height: 20px; padding: 0 0 0 21px; } +.soria .dojoDndAvatarItem td { padding: 2px;} +.soria.dojoDndMove .dojoDndAvatarHeader {background-color: #f58383; background-image: url(images/dndNoMove.png); background-repeat: no-repeat; background-position: 2px center;} +.soria.dojoDndCopy .dojoDndAvatarHeader {background-color: #f58383; background-image: url(images/dndNoCopy.png); background-repeat: no-repeat; background-position: 2px center;} +.soria.dojoDndMove .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-color: #97e68d; background-image: url(images/dndMove.png); background-repeat: no-repeat; background-position: 2px center;} +.soria.dojoDndCopy .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-color: #97e68d; background-image: url(images/dndCopy.png); background-repeat: no-repeat; background-position: 2px center;} +.soria .dijitContentPane { + padding: 0px; +} +.soria .dijitTabContainerTop-dijitContentPane, +.soria .dijitTabContainerLeft-dijitContentPane, +.soria .dijitTabContainerBottom-dijitContentPane, +.soria .dijitTabContainerRight-dijitContentPane, +.soria .dijitAccordionContainer-dijitContentPane { + background-color: #fff; + padding: 5px; +} +.soria .dijitSplitContainer-dijitContentPane, +.soria .dijitBorderContainer-dijitContentPane { + background-color: #fff; + padding: 5px; +} + .soria .dijitTabContainer .tabStripRBtn { + margin-right: 21px; +} + .soria .dijitTabContainer .tabStripLBtn { + margin-left: 21px; +} + .soria .nowrapTabStrip .dijitTab { + top: 2px; +} + .soria .dijitTabContainerBottom-tabs .dijitTab { + top: -1px; + bottom: 2px; +} +.soria .dijitTabPaneWrapper { + background:#fff; + border:1px solid #B1BADF; + margin: 0; + padding-left: 0px; +} +.soria .dijitTabInnerDiv { + padding:0px 3px 0px 0px; + margin: 0 0 0 4px; + background: url(images/tabContainerSprite.gif) no-repeat; + background-position: right -400px; +} +.soria .dijitTab { + line-height:normal; + margin:0 2px 0 0; + padding:0px; + background: url(images/tabContainerSprite.gif) no-repeat 0 -300px; + color: #243C5F; + border-bottom: 1px #B1BADF solid; +} +.soria .dijitTabInnerDiv .dijitTabContent { + padding:4px 3px 2px 4px; + background: url(images/tabContainerSprite.gif) repeat-x 0 -350px; + position: relative; +} +.soria .dijitTabListWrapper { + z-index: 10; +} +.soria .dijitTabHover { + color: #243C5F; + background: url(images/tabContainerSprite.gif) no-repeat 0px -150px; +} +.soria .dijitTabHover .dijitTabInnerDiv { + background: url(images/tabContainerSprite.gif) no-repeat right -250px; +} +.soria .dijitTabHover .dijitTabInnerDiv .dijitTabContent { + background: url(images/tabContainerSprite.gif) repeat-x 0 -200px; +} +.soria .dijitTabChecked +{ + + background: url(images/tabContainerSprite.gif) no-repeat 0px -0px; +} +.soria .dijitTabChecked .dijitTabInnerDiv { + background: url(images/tabContainerSprite.gif) no-repeat right -100px; +} +.soria .dijitTabChecked .dijitTabInnerDiv .dijitTabContent { + background: url(images/tabContainerSprite.gif) repeat-x 0 -50px; + color: #243C5F !important; +} +.soria .dijitTabContainerTabListNested { + background: #F0F4FC; + background: #D9E9F9; + border: none; +} +.soria .dijitTabContainerTabListNested .dijitTab { + background: none; + border: none; + top: 0px; +} +.soria .dijitTabContainerTabListNested .dijitTab .dijitTabInnerDiv, +.soria .dijitTabContainerTabListNested .dijitTab .dijitTabContent { + background: none; +} +.soria .dijitTabContainerTabListNested .dijitTabHover .dijitTabContent .tabLabel { + text-decoration: underline; +} +.soria .dijitTabContainerTabListNested .dijitTabChecked .tabLabel { + text-decoration: underline; + font-weight: bold; +} +.soria .dijitTabContainerSpacerNested .dijitTabSpacer { + + height: 0px; +} +.soria .dijitTabPaneWrapperNested { + border: none; +} +.soria .dijitTabCloseButton { + width: 15px; + height: 15px; + background: url(images/spriteRoundedIconsSmall.png) no-repeat -60px top; + margin-top: -1px; +} +.dj_ie6 .soria .dijitTabCloseButton { + background: url(images/spriteRoundedIconsSmall.gif) no-repeat -60px top; +} +.soria .dijitTabCloseButtonHover { + background: url(images/spriteRoundedIconsSmall.png) no-repeat -60px -15px; +} +.dj_ie6 .soria .dijitTabCloseButtonHover { + background: url(images/spriteRoundedIconsSmall.gif) no-repeat -60px -15px; +} +.soria .dijitTab .tabLabel { + + min-height: 15px; + display: inline-block; +} +.dj_ie6 .soria .dijitTabButtonIcon { + + height: 18px; + width: 1px; +} +.soria .dijitTabContainerTop-tabs { + border-color: #B1BADF; + padding-left: 3px; +} +.soria .dijitTabContainerTopNoStrip { + padding-top: 3px; +} +.soria .dijitTabContainerTop-container { + border-top: none; +} +.soria .dijitTabContainerTop .dijitTabListWrapper { + border-bottom: none; +} +.soria .dijitTabContainerTop-tabs .dijitTab { + top: 1px; +} +.soria .dijitTabContainerTop-tabs .dijitTabChecked { + border-bottom-color: #94b4e6; +} +.soria .dijitTabContainerTopStrip { + border: 1px solid #B1BADF; + margin-top: 1px; + padding-top: 1px; + background: #F0F4FC; +} +.soria .dijitTabContainerTopStrip .dijitTabContainerTop-tabs { + padding-left: 3px; +} +.soria .dijitTabContainerNested .dijitTabListWrapper { + height: auto; +} +.soria .dijitTabContainerBottom-tabs { + margin-top: -1px; + padding-left: 3px; + border-top: 1px solid #B1BADF; +} +.soria .dijitTabContainerBottom .dijitTabListWrapper { + border-top: none; + padding-top: 1px; + padding-bottom: 1px; + float: left; +} +.soria .dijitTabContainerBottom-container { + border-bottom: none; +} +.soria .dijitTabContainerBottom-tabs .dijitTab { + border-bottom: none; + border-top: 1px solid #B1BADF; + background: url(images/tabBottomEnabledSpriteLR.gif) no-repeat bottom left; +} +.soria .dijitTabContainerBottom-tabs .dijitTabChecked { + border-top-color:#94b4e6; +} +.soria .dijitTabContainerBottom-tabs .dijitTabInnerDiv .dijitTabContent { + padding-top: 3px; + padding-bottom: 3px; + background: url(images/tabBottomEnabledC.gif) repeat-x bottom left; +} +.soria .dijitTabContainerBottom-tabs .dijitTabInnerDiv { + background: url(images/tabBottomEnabledSpriteLR.gif) no-repeat bottom right; +} +.soria .dijitTabContainerBottom-tabs .dijitTabHover { + color: #243C5F; + background: url(images/tabBottomHoverSpriteLR.gif) no-repeat bottom left; +} +.soria .dijitTabContainerBottom-tabs .dijitTabHover .dijitTabInnerDiv { + background: url(images/tabBottomHoverSpriteLR.gif) no-repeat bottom right; +} +.soria .dijitTabContainerBottom-tabs .dijitTabHover .dijitTabInnerDiv .dijitTabContent { + background: url(images/tabBottomHoverC.gif) repeat-x bottom left; +} +.soria .dijitTabContainerBottom-tabs .dijitTabChecked { + + background: url(images/tabBottomActiveSpriteLR.gif) no-repeat bottom left; +} +.soria .dijitTabContainerBottom-tabs .dijitTabChecked .dijitTabInnerDiv { + background: url(images/tabBottomActiveSpriteLR.gif) no-repeat bottom right; +} +.soria .dijitTabContainerBottom-tabs .dijitTabChecked .dijitTabInnerDiv .dijitTabContent { + background: url(images/tabBottomActiveC.gif) repeat-x bottom left; +} +.soria .dijitTabContainerBottomStrip { + padding-bottom: 2px; + border: 1px solid #B1BADF; +} +.soria .dijitTabContainerBottomStrip { + background: #F0F4FC; +} +.soria .dijitTabContainerBottom-spacer, +.soria .dijitTabContainerTop-spacer { + height: 2px; + border: 1px solid #8ba0bd; + background: #94b4e6; +} +.soria .dijitTabContainerTop-spacer { + border-top: none; +} +.soria .dijitTabContainerBottom-spacer { + border-bottom: none; +} +.soria .dijitTabContainerRight-tabs { + height: 100%; + border-color: #ccc; + padding-top: 3px; +} +.soria .dijitTabContainerRight-container { + border-right: none; +} +.soria .dijitTabContainerRight-tabs .dijitTab { + border-bottom: none; + border-left: 1px solid #B1BADF; + border-bottom: 1px solid #B1BADF !important; +} +.dj_ie6 .soria .dijitTabContainerRight-tabs .dijitTabInnerDiv, +.dj_ie7 .soria .dijitTabContainerRight-tabs .dijitTabInnerDiv { + border-bottom: solid #B1BADF 1px; + margin-bottom: -1px; +} +.soria .dijitTabContainerRight-tabs .dijitTabChecked { + border-left-color: #94b4e6; +} +.soria .dijitTabContainerRight-tabs .dijitTabChecked { + background: url(images/tabRightChecked.gif) no-repeat left top !important; +} +.dj_ie6 .soria .dijitTabContainerRight-tabs .dijitTabChecked .dijitTabInnerDiv, +.dj_ie7 .soria .dijitTabContainerRight-tabs .dijitTabChecked .dijitTabInnerDiv, +.dj_ie6 .soria .dijitTabContainerRight-tabs .dijitTabCheckedHover .dijitTabInnerDiv, +.dj_ie7 .soria .dijitTabContainerRight-tabs .dijitTabCheckedHover .dijitTabInnerDiv { + border-bottom: solid #94b4e6 1px; + margin-bottom: -1px; +} +.soria .dijitTabContainerRight-tabs .dijitTab { + background: url(images/tabContainerSprite.gif) no-repeat left -350px; +} +.soria .dijitTabContainerRight-tabs .dijitTabHover .dijitTab { + background: url(images/tabContainerSprite.gif) no-repeat left -200px; +} +.soria .dijitTabContainerRightStrip { + padding-right: 2px; + border: 1px solid #B1BADF; + background: #F0F4FC; + border-left: none; +} +.soria .dijitTabContainerLeft-tabs { + border-color: #ccc; + padding-top: 3px; + height: 100%; +} +.soria .dijitTabContainerLeft-container { + border-left: none; +} +.soria .dijitTabContainerLeft-tabs .dijitTab { + border-right: 1px solid #B1BADF; + border-bottom: 1px solid #B1BADF; +} +.soria .dijitTabContainerLeft-tabs .dijitTabChecked { + border-right: 1px solid #94b4e6; +} +.soria .dijitTabContainerLeft-tabs .dijitTabInnerDiv { + background: url(images/tabContainerSprite.gif) no-repeat right -350px; +} +.soria .dijitTabContainerLeft-tabs .dijitTabHover .dijitTabInnerDiv { + background: url(images/tabContainerSprite.gif) no-repeat right -200px; +} +.soria .dijitTabContainerLeft-tabs .dijitTabChecked .dijitTabInnerDiv, +.soria .dijitTabContainerLeft-tabs .dijitTabCheckedHover .dijitTabInnerDiv { + background: url(images/tabLeftChecked.gif) no-repeat right top; +} +.dj_ie6 .soria .dijitTabContainerLeft-tabs .dijitTabInnerDiv, +.dj_ie7 .soria .dijitTabContainerLeft-tabs .dijitTabInnerDiv { + border-bottom: solid #B1BADF 1px; + margin-bottom: -1px; +} +.dj_ie6 .soria .dijitTabContainerLeft-tabs .dijitTabChecked .dijitTabInnerDiv, +.dj_ie7 .soria .dijitTabContainerLeft-tabs .dijitTabChecked .dijitTabInnerDiv, +.dj_ie6 .soria .dijitTabContainerLeft-tabs .dijitTabCheckedHover .dijitTabInnerDiv, +.dj_ie7 .soria .dijitTabContainerLeft-tabs .dijitTabCheckedHover .dijitTabInnerDiv { + border-bottom: solid #94b4e6 1px; + margin-bottom: -1px; +} +.soria .dijitTabContainerLeftStrip { + padding-left: 2px; + border: 1px solid #B1BADF; + background: #F0F4FC; + border-right: none; +} +.soria .dijitTabContainerLeft-tabs .dijitTab, +.soria .dijitTabContainerRight-tabs .dijitTab { + margin-right:auto; + margin-bottom:2px; +} +.soria .dijitTabContainerLeft-spacer, +.soria .dijitTabContainerRight-spacer { + width: 2px; + border: 1px solid #8ba0bd; + background: #94b4e6; +} +.soria .dijitTabContainerLeft-spacer { + border-left: none; +} +.soria .dijitTabContainerRight-spacer { + border-right: none; +} +.soria .dijitTabContainerTop-dijitContentPane .dijitTabContainerTop-tabs { + border-left: 0px solid #ccc; + border-top: 0px solid #ccc; + border-right: 0px solid #ccc; + padding-top: 0px; + padding-left: 0px; +} +.soria .dijitTabContainer .tabStripButton { + margin-right: 0; +} +.soria .dijitTabContainer .tabStripButton-top { + margin-top: 1px; +} +.soria .tabStripButton .dijitTabContent{ + padding: 6px 0 5px 0; +} +.dj_ie6 .soria .tabStripButton .dijitTabContent, +.dj_ie7 .soria .tabStripButton .dijitTabContent { + padding-top: 7px; +} +.soria .tabStrip-disabled .tabStripButton .dijitTabContent { + padding: 5px 0 3px 0; +} +.dj_ie6 .soria .tabStrip-disabled .tabStripButton .dijitTabContent, +.dj_ie7 .soria .tabStrip-disabled .tabStripButton .dijitTabContent { + padding-top: 6px; +} +.soria .dijitTabContainer .tabStripButton-bottom { + background: transparent url(images/tabBottomEnabledSpriteLR.gif) no-repeat scroll left bottom; + border-bottom: medium none; + border-top: 1px solid #B1BADF; +} +.soria .dijitTabContainer .tabStripButton-bottom .dijitTabInnerDiv { + background: transparent url(images/tabBottomEnabledSpriteLR.gif) no-repeat scroll right bottom; +} +.soria .dijitTabContainer .tabStripButton-bottom .dijitTabContent { + background: transparent; +} +.soria .dijitTabStripIcon { + height: 14px; + width: 14px; + background: url(images/spriteRoundedIconsSmall.png) no-repeat left top ; +} +.dj_ie6 .soria .dijitTabStripIcon { + background-image: url(images/spriteRoundedIconsSmall.gif); +} +.soria .dijitTabStripSlideRightIcon { + background-position: -30px top; +} +.soria .dijitTabStripMenuIcon { + background-position: -15px top; +} +.soria .dijitAccordionContainer { + border-color: #b1badf; + background-color: #fff; +} +.soria .dijitAccordionTitle { + background:#fafafa url(images/titleBar.png) repeat-x top left; + border-top: 1px solid #b9bbdd; + padding: 5px 4px 6px 8px; + font-size: 0.9em; + font-weight: bold; + color: #373941; +} +.soria .dijitAccordionTitleSelected { + background: #f9f9f9 url(images/accordionItemActive.png) top repeat-x; + font-weight: bold; + border-top: 1px solid #b9bbdd; + border-bottom: 1px solid #b9bbdd; + padding: 5px 4px 5px 8px; + color: #243C5F; +} +.soria .dijitAccordionArrow { + background:url(images/spriteRoundedIconsSmallBl.gif) no-repeat -30px top; + width:15px; + height:15px; + margin-top:-1px; +} +.soria .dijitAccordionTitleSelected .dijitAccordionArrow { + background:url(images/spriteRoundedIconsSmallBl.gif) no-repeat -15px top; + margin-top:-1px; +} +.soria .dijitAccordionText { + margin-left: 4px; + margin-right: 4px; +} +.soria .dijitSplitContainerSizerH { + background:url(images/splitContainerSizerV.png) repeat-y #cddef4; + border:0; + border-left:0px solid #436496; + border-right:0px solid #436496; + width:5px; +} +.soria .dijitSplitContainerSizerH .thumb { + background:url(images/splitContainerSizerV-thumb.png) no-repeat #ccc; + left:1px; + width:2px; + height:19px; +} +.soria .dijitSplitContainerSizerV { + background:url(images/splitContainerSizerH.png) repeat-x #cddef4; + border:0; + border-top:0px solid #436496; + border-bottom:0px solid #436496; + height:2px; +} +.soria .dijitSplitContainerSizerV .thumb { + background:url(images/splitContainerSizerH-thumb.png) no-repeat #ccc; + top:1px; + width:19px; + height:5px; +} +.soria .dijitBorderContainer { + background-color: #e1ebfb; + padding: 5px; +} +.soria .dijitSplitContainer-child, +.soria .dijitBorderContainer-child { + + border: 1px #b1badf solid; +} +.soria .dijitBorderContainer-dijitTabContainerTop, +.soria .dijitBorderContainer-dijitTabContainerBottom, +.soria .dijitBorderContainer-dijitTabContainerLeft, +.soria .dijitBorderContainer-dijitTabContainerRight { + + border: none; +} +.soria .dijitBorderContainer-dijitBorderContainer { + + border: none; + padding: 0px; +} +.soria .dijitSplitterH, +.soria .dijitGutterH { + background: #E1EBFB; + border:0; + border-left:0px solid #d3d3d3; + border-right:0px solid #d3d3d3; + height:5px; +} +.soria .dijitSplitterH .dijitSplitterThumb { + background:#B0B0B0 none; + height:1px; + top:2px; + width:19px; +} +.soria .dijitSplitterV, +.soria .dijitGutterV { + background: #E1EBFB; + border:0; + border-top:0px solid #d3d3d3; + border-bottom:0px solid #d3d3d3; + width:5px; +} +.soria .dijitSplitterV .dijitSplitterThumb { + background:#B0B0B0 none; + height:19px; + left:2px; + width:1px; +} +.soria .dijitSplitterActive { + font-size: 1px; + background-image: none; + background-color: #aaa; + -moz-opacity: 0.6; + opacity: 0.6; + filter: Alpha(Opacity=60); + margin: 0; +} +.soria .dijitInputContainer INPUT, +.soria .dijitTextBox { + margin: 0em 0.1em; +} +.soria .dijitTextBox, +.soria .dijitTextArea { + + background:#fff url(images/validationInputBg.png) repeat-x top left; + #background:#fff url(images/validationInputBg.gif) repeat-x top left; + border:1px solid #8ba0bd; +} +.soria .dijitComboBox .dijitButtonNode { + padding: 0 0.2em; +} +.soria .dijitTextBox .dijitButtonNode { + + border-color: #8ba0bd; +} +.soria .dijitTextBoxFocused, +.soria .dijitTextAreaFocused { + + border-color:#406b9b; +} +.soria .dijitTextBoxFocused .dijitButtonNode, +.soria .dijitSpinner .dijitUpArrowButtonActive, +.soria .dijitSpinner .dijitDownArrowButtonActive { + border-left-color:#8ba0bd; +} +.soria .dijitSpinnerFocused .dijitDownArrowButton, +.soria .dijitSpinner .dijitUpArrowButtonActive, +.soria .dijitSpinner .dijitDownArrowButtonActive { + border-top-color:#8ba0bd; +} +.soria .dijitError { + border-color:#f3d118; + background-color:#f9f7ba; + background-image:none; +} +.soria .dijitErrorFocused { + background-color:#ff6; + background-image:none; +} +.soria .dijitValidationIcon { + + width: 16px; + background: transparent url(images/warning.png) no-repeat center center; +} +.soria .dijitComboBoxHighlightMatch { + background-color:#f9f7ba; +} +.soria .dijitButtonNode { + + border: 1px solid #8ba0bd; + border-bottom:1px solid #657c9c; + padding: 0.1em 0.2em 0.2em 0.2em; + background: #bcd5f0 url(images/buttonEnabled.png) repeat-x top left; +} +.soria .dijitSelect .dijitButtonContents { + border-right: none; +} +.soria .dijitButtonText { + text-align: center; + padding: 0 0.3em; +} +.soria .dijitArrowButton { + color: #111; +} +.soria .dijitComboButton .dijitDownArrowButton { + padding-right:4px; +} +.soria .dijitTextBoxReadOnly, +.soria .dijitTextBoxReadOnly .dijitButtonNode, +.soria .dijitButtonDisabled .dijitButtonNode, +.soria .dijitToggleButtonDisabled .dijitButtonNode, +.soria .dijitDropDownButtonDisabled .dijitButtonNode, +.soria .dijitComboButtonDisabled .dijitButtonNode, +.soria .dijitTextBoxDisabled, +.soria .dijitTextBoxDisabled .dijitButtonNode { + + border-color: #b9bbdd #b9bbdd #b9bbdd #b9bbdd; + background:#c3d3e5 url(images/buttonDisabled.png) top repeat-x; + opacity: 0.60; +} +.dj_ie6 .soria .dijitReadOnly INPUT, +.dj_ie7 .soria .dijitReadOnly INPUT, +.dj_ie6 .soria .dijitComboButtonDisabled .dijitButtonText, +.dj_ie7 .soria .dijitComboButtonDisabled .dijitButtonText { + + color: #aaa; +} +.soria .dijitButtonHover .dijitButtonNode, +.soria .dijitButtonNodeHover, +.soria .dijitToggleButtonHover .dijitButtonNode, +.soria .dijitDropDownButtonHover .dijitButtonNode, +.soria .dijitButtonContentsHover, +.soria .dijitUpArrowButtonHover, +.soria .dijitDownArrowButtonHover { + + + color:#243C5F; + background:#acc5e2 url(images/buttonHover.png) repeat-x top left; +} +.soria .dijitButtonActive .dijitButtonNode, +.soria .dijitToggleButtonActive .dijitButtonNode, +.soria .dijitDropDownButtonActive .dijitButtonNode, +.soria .dijitComboButtonActive .dijitButtonContents, +.soria .dijitStackController .dijitToggleButtonChecked .dijitButtonNode { + + border-color:#657c9c; + background: #91b4e5 url(images/buttonActive.png) top left repeat-x; +} +.soria .dijitUpArrowButtonActive, +.soria .dijitDownArrowButtonActive { + + background: #91b4e5 url(images/buttonActive.png) top left repeat-x; +} +.soria .dijitArrowButtonInner { + background-image: url(images/spriteArrows.png); + background-repeat: no-repeat; + background-position: 0px center; + width: 11px; + height: 11px; +} +.soria .dijitComboBox .dijitArrowButtonInner { + background-position: 0 center; +} +.soria .dijitLeftArrowButton .dijitArrowButtonInner { + background-position: -11px center; +} +.soria .dijitUpArrowButton .dijitArrowButtonInner { + background-position: -22px center; +} +.soria .dijitRightArrowButton .dijitArrowButtonInner { + background-position: -33px center; +} +.dj_ie6 .soria .dijitArrowButtonInner { + background-image: url(images/spriteArrows.gif); +} +.dj_ie .soria .dijitSpinner .dijitUpArrowButton .dijitArrowButtonInner { + margin-top: 1px; +} +.soria .dijitSpinnerButtonContainer { + width: auto; + padding: 0; +} +.soria .dijitSpinner .dijitArrowButton { + width: 15px; +} +.soria .dijitSpinner .dijitSpinnerButtonInner { + width: 15px; +} +.soria .dijitSpinner .dijitArrowButtonInner .dijitInputField { + padding: 0; +} +.soria .dijitToggleButton .dijitCheckBox, +.soria .dijitToggleButton .dijitCheckBoxIcon { + background-image: url(images/spriteCheckbox.gif); +} +.soria .dijitCheckBox, +.soria .dijitCheckBoxIcon { + background-image: url(images/spriteCheckbox.gif); + background-repeat: no-repeat; + width: 16px; + height: 16px; + margin: 0; + padding: 0; +} +.soria .dijitCheckBox, +.soria .dijitToggleButton .dijitCheckBoxIcon { + + background-position: -16px; +} +.soria .dijitCheckBoxChecked, +.soria .dijitToggleButtonChecked .dijitCheckBoxIcon { + + background-position: 0px; +} +.soria .dijitCheckBoxDisabled { + + background-position: -48px; +} +.soria .dijitCheckBoxCheckedDisabled { + + background-position: -32px; +} +.soria .dijitCheckBoxHover { + + background-position: -80px; +} +.soria .dijitCheckBoxCheckedHover { + + background-position: -64px; +} +.soria .dijitToggleButton .dijitRadio, +.soria .dijitToggleButton .dijitRadioIcon { + background-image: url(images/spriteRadio.gif); +} +.soria .dijitRadio, +.soria .dijitRadioIcon { + background-image: url(images/spriteRadio.gif); + background-repeat: no-repeat; + width: 16px; + height: 16px; + margin: 0; + padding: 0; +} +.soria .dijitRadio, +.soria .dijitToggleButton .dijitRadioIcon { + + background-position: -16px; +} +.soria .dijitRadioChecked, +.soria .dijitToggleButtonChecked .dijitRadioIcon { + + background-position: 0px; +} +.soria .dijitRadioDisabled { + + background-position: -48px; +} +.soria .dijitRadioCheckedDisabled { + + background-position: -32px; +} +.soria .dijitRadioHover { + + background-position: -80px; +} +.soria .dijitRadioCheckedHover { + + background-position: -64px; +} +.soria .dijitSliderProgressBarH { + border-color: #b1badf; + background: #c0c2c5 url(images/sliderFull.png) repeat-x top left; +} +.soria .dijitSliderProgressBarV { + border-color: #b1badf; + background: #c0c2c5 url(images/sliderFullVertical.png) repeat-y bottom left; +} +.soria .dijitSliderFocused .dijitSliderProgressBarH, +.soria .dijitSliderFocused .dijitSliderLeftBumper { + background-image:url(images/sliderFullFocus.png); +} +.soria .dijitSliderFocused .dijitSliderProgressBarV, +.soria .dijitSliderFocused .dijitSliderBottomBumper { + background-image:url(images/sliderFullVerticalFocus.png); +} +.soria .dijitSliderRemainingBarV { + border-color: #b4b4b4; + background: #dcdcdc url(images/sliderEmptyVertical.png) repeat-y bottom left; +} +.soria .dijitSliderRemainingBarH { + border-color: #b4b4b4; + background: #dcdcdc url(images/sliderEmpty.png) repeat-x top left; +} +.soria .dijitSliderBar { + border-style: solid; + outline:1px; + +} +.soria .dijitSliderFocused .dijitSliderBar { + border-color:#8ba0bd; +} +.soria .dijitSliderImageHandleH { + border:0px; + width:15px; + height:18px; + background:url(images/preciseSliderThumb.png) no-repeat center top; +} +.soria .dijitSliderFocused .dijitSliderImageHandleH { + background-image:url(images/preciseSliderThumbFocus.png); + #background-image:url(images/preciseSliderThumbFocus.gif); +} +.dj_ie6 .soria .dijitSliderImageHandleH { + background-image:url(images/preciseSliderThumb.gif); +} +.soria .dijitSliderLeftBumper { + border-left-width: 1px; + border-color: #aab0bb; + background: #c0c2c5 url(images/sliderFull.png) repeat-x top left; +} +.soria .dijitSliderRightBumper { + background: #dcdcdc url(images/sliderEmpty.png) repeat-x top left; + border-color: #b4b4b4; + border-right-width: 1px; +} +.soria .dijitSliderImageHandleV { + border:0px; + width:20px; + height:15px; + background:url(images/sliderThumb.png) no-repeat center center; + #background:url(images/sliderThumb.gif) no-repeat center center; +} +.soria .dijitSliderFocused .dijitSliderImageHandleV { + background-image:url(images/sliderThumbFocus.png); + #background-image:url(images/sliderThumbFocus.gif); +} +.soria .dijitSliderBottomBumper { + border-bottom-width: 1px; + border-color: #aab0bb; + background: #c0c2c5 url(images/sliderFullVertical.png) repeat-y bottom left; +} +.soria .dijitSliderTopBumper { + background: #dcdcdc url(images/sliderEmptyVertical.png) repeat-y top left; + border-color: #b4b4b4; + border-top-width: 1px; +} +.soria .dijitSliderIncrementIconH, +.soria .dijitSliderIncrementIconV { + background:url(images/spriteRoundedIconsSmall.png) no-repeat -45px top; + #background:url(images/spriteRoundedIconsSmall.gif) no-repeat -45px top; + width:15px; height:15px; +} +.soria .dijitSliderIncrementIconH { + background:url(images/spriteRoundedIconsSmall.png) no-repeat -30px top; + #background:url(images/spriteRoundedIconsSmall.gif) no-repeat -30px top; +} +.soria .dijitSliderDecrementIconH, +.soria .dijitSliderDecrementIconV { + width:15px; + height:15px; + background:url(images/spriteRoundedIconsSmall.png) no-repeat -15px top; + #background:url(images/spriteRoundedIconsSmall.gif) no-repeat -15px top; +} +.soria .dijitSliderDecrementIconH { + background:url(images/spriteRoundedIconsSmall.png) no-repeat 0px top; + #background:url(images/spriteRoundedIconsSmall.gif) no-repeat 0px top; +} +.soria .dijitSliderButtonInner { + visibility:hidden; +} +.soria .dijitSliderReadOnly *, +.soria .dijitSliderDisabled * { + border-color: #d5d5d5 #bdbdbd #bdbdbd #d5d5d5; + color: #bdbdbd; +} +.soria .dijitSliderReadOnly .dijitSliderDecrementIconH, +.soria .dijitSliderDisabled .dijitSliderDecrementIconH { + background-position: 0px -15px; +} +.soria .dijitSliderReadOnly .dijitSliderIncrementIconH, +.soria .dijitSliderDisabled .dijitSliderIncrementIconH { + background-position: -30px -15px; +} +.soria .dijitSliderReadOnly .dijitSliderDecrementIconV, +.soria .dijitSliderDisabled .dijitSliderDecrementIconV { + background-position: -15px -15px; +} +.soria .dijitSliderReadOnly .dijitSliderIncrementIconV, +.soria .dijitSliderDisabled .dijitSliderIncrementIconV { + background-position: -45px -15px; +} +.soria .dijitSelect .dijitButtonNode { + padding: 0px; +} +.soria .dijitSelect .dijitButtonContents { + padding-top: 1px; + background:#fff url(images/validationInputBg.png) repeat-x top left; + #background:#fff url(images/validationInputBg.gif) repeat-x top left; +} +.soria .dijitSelectHover .dijitButtonContents, +.soria .dijitSelectActive .dijitButtonContents, +.soria .dijitSelectOpened .dijitButtonContents, +.soria .dijitSelectDisabled .dijitButtonContents, +.soria .dijitSelectReadOnly .dijitButtonContents{ + background: transparent none; +} +.dj_ie .soria .dijitSelect .dijitButtonContents { + padding-top: 0px; +} +.soria .dijitSelect .dijitArrowButton { + padding: 0px 2px; +} +.soria .dijitSelectDisabled .dijitButtonNode { + border-color: #b9bbdd #b9bbdd #b9bbdd #b9bbdd; + background:#c3d3e5 url(images/buttonDisabled.png) top repeat-x; +} +.dj_ie .soria .dijitSelectDisabled .dijitButtonNode * { + filter: gray() alpha(opacity=50); +} +.soria .dijitSelectHover .dijitButtonNode { + color:#000; + background:#acc5e2 url(images/buttonHover.png) repeat-x top left; +} +.soria .dijitSelectActive .dijitButtonNode, +.soria .dijitSelectOpened .dijitButtonNode { + border-color:#657c9c; + background: #91b4e5 url(images/buttonActive.png) top left repeat-x; +} +.soria .dijitSelectMenu td { + padding: 0em; +} +.soria .dijitSelectMenu .dijitMenuItemLabel, +.soria .dijitSelectMenu .dijitMenuArrowCell { + padding: 0.1em 0.2em; +} +.soria .dijitTreeNode { + background : url(images/treeI.gif) no-repeat; + background-position : top left; + background-repeat : repeat-y; + zoom: 1; +} +.soria .dijitTreeRowHover { + + background-image: url(images/treeHover.png); + background-repeat: repeat; + background-color: transparent !important; +} +.soria .dijitTreeIsLast { + background: url(images/treeI_half.gif) no-repeat; +} +.soria .dijitTreeLabel { + font-weight: normal; + margin-left: 3px; +} +.soria .dijitTreeIsRoot { + margin-left: 0; + background-image: none; +} +.soria .dijitTreeExpando { + width: 18px; + height: 18px; +} +.soria .dijitTreeRow { + + padding-bottom: 2px; +} +.soria .dijitTreeContent { + min-height: 18px; + min-width: 18px; + padding-left:1px; +} +.soria .dijitTreeRowSelected .dijitTreeLabel{ + background:#b8cbec; +} +.soria .dijitTreeExpandoOpened { + background: url(images/spriteTree.gif) no-repeat -18px top; +} +.soria .dijitTreeExpandoClosed { + background-image: url(images/spriteTree.gif); +} +.soria .dijitTreeExpandoLeaf { + background: url(images/spriteTree.gif) no-repeat -36px top; +} +.soria .dijitTreeExpandoLoading { + background-image: url(images/treeExpand_loading.gif); +} +.soria .dijitTreeIcon { + width: 16px; + height: 16px; +} +.soria .dijitFolderOpened { + background: url(images/spriteDivIcons.gif) no-repeat -16px top; +} +.soria .dijitFolderClosed { + background: url(images/spriteDivIcons.gif) no-repeat top left; +} +.soria .dijitLeaf { + background: url(images/spriteDivIcons.gif) no-repeat -32px top; +} +.soria .dijitTreeNode .dojoDndItemBefore, +.soria .dijitTreeNode .dojoDndItemAfter { + border-bottom: none; + border-top: none; +} +.soria .dijitTreeNode .dojoDndItemBefore .dijitTreeContent { + + border-top: 2px solid #369; +} +.soria .dijitTreeNode .dojoDndItemAfter .dijitTreeContent { + + border-bottom: 2px solid #369; +} +.soria .dijitProgressBar { + margin:2px 0px 2px 0px; +} +.soria .dijitProgressBarEmpty{ + + background:#fff url(images/progressBarEmpty.png) repeat-x center center; + border-color: #8ba0bd; +} +.soria .dijitProgressBarTile{ + + background:#f0f0f0 url(images/progressBarFull.png) repeat-x center center; +} +.soria .dijitProgressBarFull { + border-right:1px solid #8ba0bd; +} +.soria .dijitProgressBarLabel { + + color:#293a4b; +} +.soria .dijitProgressBarIndeterminate .dijitProgressBarTile { + + background:#cad2de url(images/progressBarAnim.gif) repeat-x center center; +} +.soria .dijitTitlePaneTitle { + background: #cccccc; + background:#fff url(images/titleBar.png) repeat-x top left; + border:1px solid #bfbfbf; + padding:3px 4px; + font-size: 0.9em; + font-weight: bold; + color: #6d6d6d; +} +.soria .dijitTitlePaneTitleHover { + background: #f9f9f9 url(images/accordionItemActive.png) top repeat-x; +} +.soria .dijitTitlePaneTitle * { + vertical-align: middle; +} +.soria .dijitTitlePane .dijitOpen .dijitArrowNode, +.soria .dijitTitlePane .dijitClosed .dijitArrowNode { + width:15px; + height:15px; +} +.soria .dijitTitlePaneTextNode { + color: #243C5F; +} +.soria .dijitTitlePane .dijitClosed .dijitArrowNode { + background: url(images/spriteRoundedIconsSmall.png) no-repeat -30px top; +} +.dj_ie6 .soria .dijitTitlePane .dijitClosed .dijitArrowNode { + background:url(images/spriteRoundedIconsSmall.gif) no-repeat -30px top; +} +.soria .dijitTitlePane .dijitOpen .dijitArrowNode { + background:url(images/spriteRoundedIconsSmall.png) no-repeat -15px top; +} +.dj_ie6 .soria .dijitTitlePane .dijitOpen .dijitArrowNode { + background:url(images/spriteRoundedIconsSmall.gif) no-repeat -15px top; +} +.soria .dijitTitlePaneContentOuter { + background: #ffffff; + border: 1px solid #bfbfbf; + border-top: 0px; +} +.soria .dijitTitlePaneContentInner { + padding:10px; +} +.soria .dijitTitlePaneTextNode { + margin-left: 4px; + margin-right: 4px; +} +.soria .dijitCalendarIncrementControl { + + width:15px; + height:15px; + background-image: url(images/spriteRoundedIconsSmall.png); + background-repeat: no-repeat; +} +.dj_ie6 .soria .dijitCalendarIncrementControl { + font-size:.1em; + background-image: url(images/spriteRoundedIconsSmall.gif); +} +.soria .dijitA11ySideArrow { + display: none; +} +.soria .dijitCalendarDecrease { + background-position: top left; +} +.soria .dijitCalendarIncrease { + background-position: -30px top; +} +.soria table.dijitCalendarContainer { + font-size: 100%; + border-spacing: 0; + border-collapse: separate; + border: 1px solid #b1badf; + margin: 0; +} +.soria .dijitCalendarMonthContainer th { + + background:#bed7f0 url(images/titleBar.png) repeat-x top; + padding-top:.3em; + padding-bottom:.2em; + text-align:center; +} +.dj_ie6 .soria .dijitCalendarMonthContainer th { + padding-top:.2em; + padding-bottom:.1em; +} +.soria .dijitCalendarDayLabelTemplate { + + background:#bed7f0; + font-weight:normal; + padding-top:.15em; + padding-bottom:.2em; + border-bottom: 1px solid #b1badf; + color:#293a4b; + text-align:center; +} +.soria .dijitCalendarBodyContainer { + border-bottom: 1px solid #eeeeee; +} +.soria .dijitCalendarMonthLabel { + color:#293a4b; + font-weight: bold; +} +.soria .dijitCalendarDateTemplate { + + font-size: 0.9em; + font-weight: bold; + text-align: center; + padding: 0.3em 0.3em 0.05em 0.3em; + letter-spacing: 1px; + background-color: #fff; + border:#fff solid 1px !important; +} +.dj_ie .soria .dijitCalendarDateTemplate { + padding: 0.1em .33em 0.02em .33em; +} +.soria .dijitCalendarPreviousMonth, +.soria .dijitCalendarNextMonth { + + color:#999999; + background-color:#fdfdfd !important; + border:#fdfdfd solid 1px !important; +} +.soria .dijitCalendarCurrentMonth { + +} +.soria .dijitCalendarDisabledDate { + text-decoration:line-through !important; +} +.soria .dijitCalendarCurrentDate { + + text-decoration:underline; + font-weight:bold; +} +.soria .dijitCalendarSelectedDate { + + background-color:#b9cbf1 !important; + color:black !important; + border:#4b5aaa solid 1px !important; +} +.soria .dijitCalendarYearContainer { + + background:white url(images/titleBar.png) repeat-x top; +} +.soria .dijitCalendarYearLabel { + + margin:0; + padding:0.4em 0 0.25em 0; + text-align:center; +} +.soria .dijitCalendarSelectedYear { + + color:black; + padding:0.2em; + padding-bottom:0.1em; + background-color:#b9cbf1 !important; + border:#4b5aaa solid 1px !important; +} +.soria .dijitCalendarNextYear, +.soria .dijitCalendarPreviousYear { + + color:black !important; + font-weight:normal; +} +.soria .dijitTimePickerTick, +.soria .dijitTimePickerMarker { + border-color: #b1badf; +} +.soria .dijitTimePickerTick { + color:white; +} +.soria .dijitTimePickerMarker { + background:#bed7f0 url(images/titleBar.png) repeat-x top; + color:#293a4b; + font-weight: bold; +} +.soria .dijitTimePickerItemSelected { + color: black; + background: #b9cbf1 none; +} +.soria .dijitTimePickerItemHover { + background: #60a1ea none; + color:white; +} +.soria .dijitTimePickerItemHover, +.soria .dijitTimePickerItemSelected { + position: relative; + z-index: 10; +} +.soria .dijitTimePickerTick .dijitTimePickerItemInner { + font-size:0.4em; +} +.soria .dijitTimePickerItemHover .dijitTimePickerItemInner, +.soria .dijitTimePickerItemSelected .dijitTimePickerItemInner { + font-size:1em; +} +.soria .dijitTimePickerMarkerHover { + border-top: 1px solid #94b9ef; +} +.soria .dijitTimePickerTickHover, +.soria .dijitTimePickerTickSelected { + margin-top:-0.3em; + margin-bottom:-0.3em; + border-bottom: none; +} +.soria .dijitToolbar { + border-bottom: 1px solid #ccc; + background:#eaeaea url(images/titleBar.png) repeat-x top left; +} +.dj_ie6 .soria .dijitToolbar { + height: 10px; +} +.soria .dijitToolbar .dijitButtonNode, +.soria .dijitToolbar .dijitComboButton .dijitButtonContents, +.soria .dijitToolbar .dijitComboButton .dijitDownArrowButton { + background: none; + margin: 0px; + padding: 0px; + border: none; + font-size: 12px; +} +.soria .dijitToolbar .dijitButton, +.soria .dijitToolbar .dijitToggleButton, +.soria .dijitToolbar .dijitDropDownButton, +.soria .dijitToolbar .dijitComboButton .dijitButtonContents, +.soria .dijitToolbar .dijitComboButton .dijitDownArrowButton { + background: none; + padding: 1px; +} +.soria .dijitToolbar .dijitButtonChecked, +.soria .dijitToolbar .dijitToggleButtonChecked { + background-color:#d8e5f8; + border:1px solid #316ac5; + padding: 0px; +} +.soria .dijitToolbar .dijitButtonCheckedHover, +.soria .dijitToolbar .dijitToggleButtonCheckedHover + { + background-color:#9abbea; + border:1px solid #316ac5; + padding: 0px; +} +.soria .dijitToolbar .dijitButtonHover, +.soria .dijitToolbar .dijitToggleButtonHover, +.soria .dijitToolbar .dijitDropDownButtonHover, +.soria .dijitToolbar .dijitComboButton .dijitButtonContentsHover, +.soria .dijitToolbar .dijitComboButton .dijitDownArrowButtonHover { + + border: 1px solid #316ac5; + padding: 0px; + background-color:#9abbea; +} +.soria .dijitToolbar label { + padding: 3px 3px 0 6px; +} +.dj_ie .soria .dijitToolbar .dijitComboButton .dijitButtonContentsFocused, +.dj_ie .soria .dijitToolbar .dijitComboButton .dijitDownArrowButtonFocused { + + border: 1px #777 dotted !important; + padding: 0px; +} +.soria .dijitDialog { + background: #eee; + border: 1px solid #cbcbcb; + -webkit-box-shadow: 0px 5px 10px #adadad; + padding: 0px; +} +.soria .dijitDialog .dijitDialogTitle { + + font-weight: bold; + padding: 0px 4px; + font-size: 0.9em; + color: #3243C5F; +} +.soria .dijitDialog .dijitDialogPaneContent { + background: #ffffff; + border-top: 1px solid #b1badf; + padding:10px; +} +.soria .dijitDialogTitleBar { + + background: #fafafa url(images/titleBar.png) repeat-x top left; + padding: 5px 6px 3px 6px; + outline:0; +} +.soria .dijitDialogCloseIcon { + + background-image: url(images/spriteRoundedIconsSmallBl.png); + background-repeat: no-repeat; + background-position: -60px 0px; + position: absolute; + vertical-align: middle; + right: 6px; + top: 4px; + height: 15px; + width: 15px; +} +.dj_ie6 .soria .dijitDialogCloseIcon { + background-image: url(images/spriteRoundedIconsSmallBl.gif); +} +.soria .dijitDialogCloseIconHover { + background-position: -60px -15px; +} +.soria .dijitTooltip, +.soria .dijitTooltipDialog { + + background: transparent; +} +.dijitTooltipBelow { + + padding-top: 10px; +} +.dijitTooltipAbove { + + padding-bottom: 10px; +} +.soria .dijitTooltipContainer { + + background-color: #fff; + border:1px solid #cbcbcb; + padding:0.45em; +} +.soria .dijitTooltipConnector { + + border:0px; + z-index: 2; +} +.soria .dijitTooltipABRight .dijitTooltipConnector { + + left: auto !important; + right: 6px; +} +.soria .dijitTooltipBelow .dijitTooltipConnector { + + top: 0px; + left: 6px; + background:url(images/tooltipConnectorUp.png) no-repeat top left; + width:17px; + height:11px; +} +.dj_ie .soria .dijitTooltipBelow .dijitTooltipConnector { + background-image: url(images/tooltipConnectorUp.gif); +} +.soria .dijitTooltipAbove .dijitTooltipConnector { + + bottom: 0px; + left: 6px; + background:url(images/tooltipConnectorDown.png) no-repeat top left; + width:17px; + height:11px; +} +.dj_ie .soria .dijitTooltipAbove .dijitTooltipConnector { + background-image: url(images/tooltipConnectorDown.gif); +} +.dj_ie .soria .dijitTooltipAbove .dijitTooltipConnector { + background-image: url(images/tooltipConnectorDown.gif); +} +.dj_ie6 .soria .dijitTooltipAbove .dijitTooltipConnector { + bottom: -5px; +} +.soria .dijitTooltipLeft { + padding-right: 10px; +} +.dj_ie6 .soria .dijitTooltipLeft { + padding-left: 11px; +} +.soria .dijitTooltipLeft .dijitTooltipConnector { + + right: 0px; + bottom: 3px; + background:url(images/tooltipConnectorRight.png) no-repeat top left; + width:11px; + height:17px; +} +.dj_ie .soria .dijitTooltipLeft .dijitTooltipConnector { + background-image: url(images/tooltipConnectorRight.gif); +} +.soria .dijitTooltipRight { + padding-left: 10px; +} +.soria .dijitTooltipRight .dijitTooltipConnector { + + left: 0px; + bottom: 3px; + background:url(images/tooltipConnectorLeft.png) no-repeat top left; + width:11px; + height:17px; +} +.dj_ie .soria .dijitTooltipRight .dijitTooltipConnector { + background-image: url(images/tooltipConnectorLeft.gif); +} +.soria .dijitMenu, +.soria .dijitMenuBar { + border: 1px solid #cbcbcb; + margin: 0px; + padding: 0px; + background-color: #fff; +} +.soria .dijitBorderContainer .dijitMenuBar { + border:1px solid #B1BADF; +} +.soria .dijitMenuItem { + font-family: sans-serif; + margin: 0px; + color: #243C5F; +} +.soria .dijitMenuBar .dijitMenuItem { + padding: 4px 5px; +} +.soria .dijitMenuPreviousButton, .soria .dijitMenuNextButton { + font-style: italic; +} +.soria .dijitMenuItem TD { + padding:1px; +} +.soria .dijitMenuPassive .dijitMenuItemHover, +.soria .dijitMenuItemSelected { + background-color: #d9e6f9; + color: #243C5F; +} +.soria .dijitMenuItemIcon { + width: 15px; + height: 15px; +} +.soria .dijitMenuExpand { + width:15px; + height:15px; + background-image: url(images/spriteRoundedIconsSmall.png); + background-position: -30px top; +} +.dj_ie6 .soria .dijitMenuExpand { + background-image: url(images/spriteRoundedIconsSmall.gif); +} +.soria .dijitMenuSeparator { + height: 1px; +} +.soria .dijitMenuSeparatorTop { + border-bottom: 1px solid #fff; +} +.soria .dijitMenuSeparatorBottom { + border-top: 1px solid #8ba0bd; +} +.soria .dijitCheckedMenuItemIconChar { + display: none; +} +.soria .dijitCheckedMenuItemIcon { + background-image: url(images/spriteCheckbox.gif); + background-position: -80px; +} +.soria .dijitCheckedMenuItemChecked .dijitCheckedMenuItemIcon { + background-position: -64px; +} +.soria .dijitToolbar .dijitToolbarSeparator { + background: url(../../icons/images/editorIconsEnabled.png); +} +.soria .dijitEditorIcon { + background-image: url(../../icons/images/editorIconsEnabled.png); + background-repeat: no-repeat; + width: 18px; + height: 18px; + text-align: center; +} +.soria .dijitDisabled .dijitEditorIcon { + background-image: url(../../icons/images/editorIconsDisabled.png); +} +.dijitEditorIcon { + background-image: url(../../icons/images/editorIconsEnabled.png); + background-repeat: no-repeat; + width: 18px; + height: 18px; + text-align: center; +} +.dijitDisabled .dijitEditorIcon { + background-image: url(../../icons/images/editorIconsDisabled.png); +} +.dijitEditorIconSep { background-position: 0px; } +.dijitEditorIconSave { background-position: -18px; } +.dijitEditorIconPrint { background-position: -36px; } +.dijitEditorIconCut { background-position: -54px; } +.dijitEditorIconCopy { background-position: -72px; } +.dijitEditorIconPaste { background-position: -90px; } +.dijitEditorIconDelete { background-position: -108px; } +.dijitEditorIconCancel { background-position: -126px; } +.dijitEditorIconUndo { background-position: -144px; } +.dijitEditorIconRedo { background-position: -162px; } +.dijitEditorIconSelectAll { background-position: -180px; } +.dijitEditorIconBold { background-position: -198px; } +.dijitEditorIconItalic { background-position: -216px; } +.dijitEditorIconUnderline { background-position: -234px; } +.dijitEditorIconStrikethrough { background-position: -252px; } +.dijitEditorIconSuperscript { background-position: -270px; } +.dijitEditorIconSubscript { background-position: -288px; } +.dijitEditorIconJustifyCenter { background-position: -306px; } +.dijitEditorIconJustifyFull { background-position: -324px; } +.dijitEditorIconJustifyLeft { background-position: -342px; } +.dijitEditorIconJustifyRight { background-position: -360px; } +.dijitEditorIconIndent { background-position: -378px; } +.dijitEditorIconOutdent { background-position: -396px; } +.dijitEditorIconListBulletIndent { background-position: -414px; } +.dijitEditorIconListBulletOutdent { background-position: -432px; } +.dijitEditorIconListNumIndent { background-position: -450px; } +.dijitEditorIconListNumOutdent { background-position: -468px; } +.dijitEditorIconTabIndent { background-position: -486px; } +.dijitEditorIconLeftToRight { background-position: -504px; } +.dijitEditorIconRightToLeft, .dijitEditorIconToggleDir { background-position: -522px; } +.dijitEditorIconBackColor { background-position: -540px; } +.dijitEditorIconForeColor { background-position: -558px; } +.dijitEditorIconHiliteColor { background-position: -576px; } +.dijitEditorIconNewPage { background-position: -594px; } +.dijitEditorIconInsertImage { background-position: -612px; } +.dijitEditorIconInsertTable { background-position: -630px; } +.dijitEditorIconSpace { background-position: -648px; } +.dijitEditorIconInsertHorizontalRule { background-position: -666px; } +.dijitEditorIconInsertOrderedList { background-position: -684px; } +.dijitEditorIconInsertUnorderedList { background-position: -702px; } +.dijitEditorIconCreateLink { background-position: -720px; } +.dijitEditorIconUnlink { background-position: -738px; } +.dijitEditorIconViewSource { background-position: -756px; } +.dijitEditorIconRemoveFormat { background-position: -774px; } +.dijitEditorIconFullScreen { background-position: -792px; } +.dijitEditorIconWikiword { background-position: -810px; } + +.dijitColorPalette { + border:1px solid #cbcbcb; + background:#fff; + -moz-border-radius: 0px !important; +} diff --git a/lib/dijit/themes/soria/soria_rtl.css b/lib/dijit/themes/soria/soria_rtl.css new file mode 100644 index 000000000..97246a28f --- /dev/null +++ b/lib/dijit/themes/soria/soria_rtl.css @@ -0,0 +1,225 @@ + +.dijitRtl .dijitPlaceHolder { + left: auto; + right: 0; +} +.dijitMenuItemRtl { + text-align: right; +} +.dj_iequirks .dijitComboButtonRtl BUTTON { + + float:left; +} +.dijit_a11y .dijitTextBoxRtl .dijitValidationContainer, +.dijitTextBoxRtl .dijitSpinnerButtonContainer, +.dijitComboBoxRtl .dijitArrowButtonContainer { + + border-right-width: 1px !important; + border-right-style: solid !important; + border-left-width: 0px !important; + border-left-style: none !important; +} +.dijit_a11y .dijitTextBoxRtl .dijitValidationContainer, +.dijit_a11y .dijitTextBoxRtl .dijitSpinnerButtonContainer, +.dijit_a11y .dijitComboBoxRtl .dijitArrowButtonContainer { + border-right: 1px solid black !important; + border-left: 0px none black !important; +} +.dijitSpinnerRtl .dijitSpinnerButtonContainer .dijitArrowButton { + right: 0; + left: auto; +} +.dijitTextBoxRtl .dijitSpinnerButtonContainer, +.dijitTextBoxRtl .dijitValidationContainer, +.dijitTextBoxRtl .dijitArrowButtonContainer { + float: left; +} +.dijitCalendarRtl .dijitCalendarNextYear { + margin:0 0.55em 0 0; +} +.dijitCalendarRtl .dijitCalendarPreviousYear { + margin:0 0 0 0.55em; +} +.dijitSliderRtl .dijitSliderImageHandleV { + left:auto; +} +.dijitSliderRtl .dijitSliderImageHandleH { + left:-50%; +} +.dijitSliderRtl .dijitSliderMoveableH { + right:auto; + left:0; +} +.dijitSliderRtl .dijitRuleContainerV { + float:right; +} +.dj_ie .dijitSliderRtl .dijitRuleContainerV { + text-align:right; +} +.dj_ie .dijitSliderRtl .dijitRuleLabelV { + text-align:left; +} +.dj_ie .dijitSliderRtl .dijitRuleLabelH { + zoom:1; +} +.dijitSliderRtl .dijitSliderProgressBarH { + + float:right; + right:0; + left:auto; +} +.dijitRtl .dijitContentPaneLoading, .dijitRtl .dijitContentPaneError { + background-position:right; + padding-right:25px; +} +.dijitTabRtl .dijitTabCloseButton { + margin-left: 0px; + margin-right: 1em; +} +.dj_ie .dijitTimePickerRtl .dijitTimePickerItem { + width:100%; +} +.dijitColorPaletteRtl .dijitColorPaletteUnder { + + left: auto; + right: 0; +} +.dijitSelectRtl .dijitButtonContents { + text-align: right; +} +.dijitRtl .soria .dijitTab { + margin-right:0; + margin-left:2px; +} +.dijitRtl .soria .dijitTabContainer .tabStripButton { + margin-left: 0; +} +.dijitRtl .soria .dijitTabContainerTopStrip, +.dijitRtl .soria .dijitTabContainerBottomStrip, +.dijitRtl .soria .dijitTabContainerTop-tabs, +.dijitRtl .soria .dijitTabContainerBottom-tabs { + padding-left: 0; + padding-right: 3px; +} +.dijitRtl .soria .dijitTabInnerDiv { + padding-left: 3px; + padding-right: 4px; +} +.dijitRtl .soria .dijitTabPaneWrapper { + #zoom: 1; +} +.dj_ie-rtl .soria .dijitTabContainerLeft-tabs { + margin-left: 0px !important; +} +.dj_ie-rtl .soria .dijitTabContainerRight-tabs { + margin-right: 0px !important; +} +.dijitRtl .soria .dijitTabContainerLeft-tabs .dijitTab, +.dijitRtl .soria .dijitTabContainerRight-tabs .dijitTab { + margin-left:0px; +} +.dj_ie-rtl .soria .dijitTab .dijitTabInnerDiv{ + width : 1%; +} +.dijitRtl .soria .dijitAccordionArrow { + background-position: 0px top; +} +.dijitRtl .soria .dijitAccordionTitleSelected .dijitAccordionArrow { + + background-position: -15px top; +} +.dijitRtl .soria .dijitSliderProgressBarH, +.dijitRtl .soria .dijitSliderRemainingBarH, +.dijitRtl .soria .dijitSliderLeftBumper, +.dijitRtl .soria .dijitSliderRightBumper, +.dijitRtl .soria .dijitSliderTopBumper { + background-position: top right; +} +.dijitRtl .soria .dijitSliderProgressBarV, +.dijitRtl .soria .dijitSliderRemainingBarV, +.dijitRtl .soria .dijitSliderBottomBumper { + background-position: bottom right; +} +.dijitRtl .soria .dijitSliderLeftBumper { + border-left-width: 0px; + border-right-width: 1px; +} +.dijitRtl .soria .dijitSliderRightBumper { + border-left-width: 1px; + border-right-width: 0px; +} +.dijitRtl .soria .dijitSliderIncrementIconH { + background:url(images/spriteRoundedIconsSmall.png) no-repeat left top; + #background:url(images/spriteRoundedIconsSmall.gif) no-repeat left top; +} +.dijitRtl .soria .dijitSliderDecrementIconH { + background:url(images/spriteRoundedIconsSmall.png) no-repeat -30px top; + #background:url(images/spriteRoundedIconsSmall.gif) no-repeat -30px top; +} +.dijitRtl .soria .dijitComboBox .dijitButtonNode { + border-width: 0px 0px 0px 1px; +} +.dijitRtl .soria .dijitSelect .dijitButtonContents { + border-left: none; + border-right-width: 1px; +} +.dijitRtl .soria .dijitTreeNode, +.dijitRtl .soria .dijitTreeExpandoLeaf { + + background-image: none; +} +.dijitRtl .soria .dijitTreeContent { + padding-left: 0px; + padding-right: 1px; +} +.dijitRtl .soria .dijitTreeExpandoOpened { + + background: url(images/spriteTree_rtl.gif) no-repeat -18px top; +} +.dijitRtl .soria .dijitTreeExpandoClosed { + + background-image: url(images/spriteTree_rtl.gif); +} +.dijitRtl .soria .dijitTitlePane .dijitClosed .dijitArrowNode { + background-position: 0px top; +} +.dj_ie6-rtl .soria .dijitTitlePane .dijitClosed .dijitArrowNode { + background-position: 0px top; +} +.dijitRtl .soria .dijitCalendarDecrease { + background-position: -30px top; +} +.dijitRtl .soria .dijitCalendarIncrease { + background-position: 0px top; +} +.dj_ie6-rtl .soria .dijitTimePickerMarkerHover, +.dj_ie7-rtl .soria .dijitTimePickerMarkerHover { + border-top: 0px; +} +.dijitRtl .soria .dijitDialogTitleBar .dijitDialogCloseIcon { + right: auto; + left: 5px; +} +.dijitRtl .soria .dijitMenuItem .dijitMenuItemIcon { + padding-left: 3px; + padding-right: 0px; +} +.dijitRtl .soria .dijitMenuItem .dijitMenuExpand { + background-position: left top; +} +.dijitRtl .soria .dijitEditorIcon { + background-image: url(../../icons/images/editorIconsEnabled_rtl.png); +} +.dijitRtl .soria .dijitDisabled .dijitEditorIcon { + background-image: url(../../icons/images/editorIconsDisabled_rtl.png); +} +.dijitEditorRtl .dijitEditorIcon { + background-image: url(../../icons/images/editorIconsEnabled_rtl.png); +} +.dijitEditorRtlDisabled .dijitEditorIcon { + background-image: url(../../icons/images/editorIconsDisabled_rtl.png); +} +.dijitToolbarRtl .dijitToolbarSeparator { + background-image: url(../../icons/images/editorIconsEnabled_rtl.png); +} + diff --git a/lib/dijit/themes/tundra/Calendar.css b/lib/dijit/themes/tundra/Calendar.css new file mode 100644 index 000000000..19d8bf76a --- /dev/null +++ b/lib/dijit/themes/tundra/Calendar.css @@ -0,0 +1,118 @@ + +.tundra .dijitCalendarIncrementControl { + + width:15px; + height:15px; + background-image: url("images/spriteRoundedIconsSmall.png"); + background-repeat: no-repeat +} +.dj_ie6 .tundra .dijitCalendarIncrementControl { + font-size:.1em; + background-image: url("images/spriteRoundedIconsSmall.gif"); +} +.tundra .dijitA11ySideArrow { + display: none; +} +.tundra .dijitCalendarDecrease { + background-position: top left; +} +.tundra .dijitCalendarIncrease { + background-position: -30px top; +} +.tundra .dijitCalendarContainer { + font-size: 100%; + border-spacing: 0; + border-collapse: separate; + border: 1px solid #ccc; + margin: 0; +} +.tundra .dijitCalendarMonthContainer th { + + background:#d3d3d3 url("images/titleBar.png") repeat-x top; + padding-top:.3em; + padding-bottom:.2em; + text-align:center; +} +.dj_ie6 .tundra .dijitCalendarMonthContainer th { + padding-top:.2em; + padding-bottom:.1em; +} +.tundra .dijitCalendarDayLabelTemplate { + + background:white url("images/calendarDayLabel.png") repeat-x bottom; + font-weight:normal; + padding-top:.15em; + padding-bottom:0em; + border-top: 1px solid #eeeeee; + color:#293a4b; + text-align:center; +} +.tundra .dijitCalendarBodyContainer { + border-bottom: 1px solid #eeeeee; +} +.tundra .dijitCalendarMonthLabel { + color:#293a4b; + font-weight: bold; +} +.tundra .dijitCalendarDateTemplate { + + font-size: 0.9em; + font-weight: bold; + text-align: center; + padding: 0.3em 0.3em 0.05em 0.3em; + letter-spacing: 1px; +} +.dj_ie .tundra .dijitCalendarDateTemplate { + padding: 0.1em .33em 0.02em .33em; +} +.tundra .dijitCalendarPreviousMonth, +.tundra .dijitCalendarNextMonth { + + color:#999999; + background-color:#f8f8f8; +} +.tundra .dijitCalendarCurrentMonth { + + background-color: white; +} +.tundra .dijitCalendarCurrentDate { + + text-decoration:underline; + font-weight:bold; +} +.tundra .dijitCalendarHoveredDate { + background-color: #e2ebf2; +} +.tundra .dijitCalendarDisabledDate { + text-decoration: line-through; + background-color: white; +} +.tundra .dijitCalendarSelectedDate { + + background-color:#bbc4d0 !important; + color:black !important; +} +.tundra .dijitCalendarYearContainer { + + background:white url("images/calendarYearLabel.png") repeat-x bottom; + border-top:1px solid #ccc; +} +.tundra .dijitCalendarYearLabel { + + margin:0; + padding:0.4em 0 0.25em 0; + text-align:center; +} +.tundra .dijitCalendarSelectedYear { + + color:black; + padding:0.2em; + padding-bottom:0.1em; + background-color:#bbc4d0 !important; +} +.tundra .dijitCalendarNextYear, +.tundra .dijitCalendarPreviousYear { + + color:black !important; + font-weight:normal; +} diff --git a/lib/dijit/themes/tundra/Calendar_rtl.css b/lib/dijit/themes/tundra/Calendar_rtl.css new file mode 100644 index 000000000..9144dcfeb --- /dev/null +++ b/lib/dijit/themes/tundra/Calendar_rtl.css @@ -0,0 +1,7 @@ + +.tundra .dijitCalendarRtl .dijitCalendarDecrease { + background-position: -30px top; +} +.tundra .dijitCalendarRtl .dijitCalendarIncrease { + background-position: 0px top; +} diff --git a/lib/dijit/themes/tundra/ColorPalette.css b/lib/dijit/themes/tundra/ColorPalette.css new file mode 100644 index 000000000..56fa5585a --- /dev/null +++ b/lib/dijit/themes/tundra/ColorPalette.css @@ -0,0 +1,5 @@ +.dijitColorPalette { + border:1px solid #7eabcd; + background:#fff; + -moz-border-radius: 0px !important; +} diff --git a/lib/dijit/themes/tundra/Common.css b/lib/dijit/themes/tundra/Common.css new file mode 100644 index 000000000..b7f8ace85 --- /dev/null +++ b/lib/dijit/themes/tundra/Common.css @@ -0,0 +1,27 @@ + +.tundra .dojoDndItemBefore { + border-top: 2px solid #369; +} +.tundra .dojoDndItemAfter { + border-bottom: 2px solid #369; +} +.tundra .dojoDndItemOver { + cursor:pointer; +} +.tundra table.dojoDndAvatar { -moz-border-radius: 0; border: 1px solid #ccc; border-collapse: collapse; background-color: #fff; font-size: 75%; color: black;} +.tundra .dojoDndAvatar td { border: none; } +.tundra .dojoDndAvatar tr { border: none; } +.tundra .dojoDndAvatarHeader td { height: 20px; padding: 0 0 0 21px; } +.tundra .dojoDndAvatarItem td { padding: 2px;} +.tundra.dojoDndMove .dojoDndAvatarHeader {background-color: #f58383; background-image: url(images/dndNoMove.png); background-repeat: no-repeat; background-position: 2px center;} +.tundra.dojoDndCopy .dojoDndAvatarHeader {background-color: #f58383; background-image: url(images/dndNoCopy.png); background-repeat: no-repeat; background-position: 2px center;} +.tundra.dojoDndMove .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-color: #97e68d; background-image: url(images/dndMove.png); background-repeat: no-repeat; background-position: 2px center;} +.tundra.dojoDndCopy .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-color: #97e68d; background-image: url(images/dndCopy.png); background-repeat: no-repeat; background-position: 2px center;} +.tundra .dijitContentPaneLoading { + background:url('images/loading.gif') no-repeat left center; + padding-left:25px; +} +.tundra .dijitContentPaneError { + background:url('images/warning.png') no-repeat left center; + padding-left:25px; +} diff --git a/lib/dijit/themes/tundra/Dialog.css b/lib/dijit/themes/tundra/Dialog.css new file mode 100644 index 000000000..74d3d36ef --- /dev/null +++ b/lib/dijit/themes/tundra/Dialog.css @@ -0,0 +1,134 @@ + +.tundra .dijitDialog { + background: #fff; + border: 1px solid #7eabcd; + padding: 0px; + -webkit-box-shadow: 0px 5px 10px #adadad; +} +.tundra .dijitDialogPaneContent { + background: #fff; + border-top: 1px solid #d3d3d3; + padding:10px; +} +.tundra .dijitDialogTitleBar { + + background: #fafafa url("images/titleBar.png") repeat-x top left; + padding: 5px 6px 3px 6px; + outline:0; +} +.tundra .dijitDialogTitle { + + font-weight: bold; + padding: 0px 4px; +} +.tundra .dijitDialogCloseIcon { + + + background: url("images/tabClose.png") no-repeat right top; + position: absolute; + vertical-align: middle; + right: 6px; + top: 4px; + height: 15px; + width: 15px; +} +.dj_ie6 .tundra .dijitDialogCloseIcon { + background : url("images/tabClose.gif") no-repeat right top; +} +.tundra .dijitDialogCloseIconHover { + background: url("images/tabCloseHover.png") no-repeat right top; +} +.dj_ie6 .tundra .dijitDialogCloseIconHover { + background : url("images/tabCloseHover.gif") no-repeat right top; +} +.tundra .dijitTooltip, +.tundra .dijitTooltipDialog { + + background: transparent; +} +.dijitTooltipBelow { + + padding-top: 13px; +} +.dijitTooltipAbove { + + padding-bottom: 13px; +} +.tundra .dijitTooltipContainer { + + background: #ffffff url("images/popupMenuBg.gif") repeat-x bottom left; + border: 1px solid #7eabcd; + padding: 0.45em; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; +} +.tundra .dijitTooltipConnector { + + border:0px; + z-index: 2; +} +.tundra .dijitTooltipABRight .dijitTooltipConnector { + + left: auto !important; + right: 3px; +} +.tundra .dijitTooltipBelow .dijitTooltipConnector { + + top: 0px; + left: 3px; + background:url("images/tooltipConnectorUp.png") no-repeat top left; + width:16px; + height:14px; +} +.dj_ie .tundra .dijitTooltipBelow .dijitTooltipConnector { + + background-image: url("images/tooltipConnectorUp.gif"); +} +.tundra .dijitTooltipAbove .dijitTooltipConnector { + + bottom: 0px; + left: 3px; + background:url("images/tooltipConnectorDown.png") no-repeat top left; + width:16px; + height:14px; +} +.dj_ie .tundra .dijitTooltipAbove .dijitTooltipConnector { + background-image: url("images/tooltipConnectorDown.gif"); +} +.dj_ie6 .tundra .dijitTooltipAbove .dijitTooltipConnector { + bottom: -3px; +} +.tundra .dijitTooltipLeft { + padding-right: 14px; +} +.dj_ie6 .tundra .dijitTooltipLeft { + padding-left: 15px; +} +.tundra .dijitTooltipLeft .dijitTooltipConnector { + + right: 0px; + bottom: 3px; + background:url("images/tooltipConnectorRight.png") no-repeat top left; + width:16px; + height:14px; +} +.dj_ie .tundra .dijitTooltipLeft .dijitTooltipConnector { + background-image: url("images/tooltipConnectorRight.gif"); +} +.tundra .dijitTooltipRight { + padding-left: 14px; +} +.tundra .dijitTooltipRight .dijitTooltipConnector { + + left: 0px; + bottom: 3px; + background:url("images/tooltipConnectorLeft.png") no-repeat top left; + width:16px; + height:14px; +} +.dj_ie .tundra .dijitTooltipRight .dijitTooltipConnector { + background-image: url("images/tooltipConnectorLeft.gif"); +} +.dj_webkit .tundra .dijitTooltipContainer { + -webkit-box-shadow: 0px 5px 10px #adadad; +} diff --git a/lib/dijit/themes/tundra/Dialog_rtl.css b/lib/dijit/themes/tundra/Dialog_rtl.css new file mode 100644 index 000000000..faeaa4139 --- /dev/null +++ b/lib/dijit/themes/tundra/Dialog_rtl.css @@ -0,0 +1,5 @@ + +.tundra .dijitDialogRtl .dijitDialogCloseIcon { + right: auto; + left: 5px; +} diff --git a/lib/dijit/themes/tundra/Editor.css b/lib/dijit/themes/tundra/Editor.css new file mode 100644 index 000000000..d24de9557 --- /dev/null +++ b/lib/dijit/themes/tundra/Editor.css @@ -0,0 +1,14 @@ +.dijitEditor { + border:1px solid #bfbfbf; + border-top:0; +} +.tundra .dijitEditorIcon { + background-image: url('../../icons/images/editorIconsEnabled.png'); + background-repeat: no-repeat; + width: 18px; + height: 18px; + text-align: center; +} +.tundra .dijitDisabled .dijitEditorIcon { + background-image: url('../../icons/images/editorIconsDisabled.png'); +} diff --git a/lib/dijit/themes/tundra/Editor_rtl.css b/lib/dijit/themes/tundra/Editor_rtl.css new file mode 100644 index 000000000..888c0335a --- /dev/null +++ b/lib/dijit/themes/tundra/Editor_rtl.css @@ -0,0 +1,7 @@ + +.tundra .dijitEditorRtl .dijitEditorIcon { + background-image: url('../../icons/images/editorIconsEnabled_rtl.png'); +} +.tundra .dijitEditorRtlDisabled .dijitEditorIcon { + background-image: url('../../icons/images/editorIconsDisabled_rtl.png'); +} diff --git a/lib/dijit/themes/tundra/Menu.css b/lib/dijit/themes/tundra/Menu.css new file mode 100644 index 000000000..ca1198864 --- /dev/null +++ b/lib/dijit/themes/tundra/Menu.css @@ -0,0 +1,61 @@ +.tundra .dijitMenu, +.tundra .dijitMenuBar { + border: 1px solid #7eabcd; + margin: 0px; + padding: 0px; + background-color: #f7f7f7; +} +.tundra .dijitBorderContainer .dijitMenuBar { + border:1px solid #ccc; +} +.tundra .dijitMenuItem { + font-family: sans-serif; + margin: 0; +} +.tundra .dijitMenuItem { + padding: 4px 5px; +} +.tundra .dijitMenuPreviousButton, .tundra .dijitMenuNextButton { + font-style: italic; +} +.tundra .dijitMenuItem td { + padding: 2px; +} +.tundra .dijitMenuPassive .dijitMenuItemHover, +.tundra .dijitMenuItemSelected { + background-color: #3559ac; + color:#fff; +} +.tundra .dijitMenuItemIcon { + width: 16px; + height: 16px; +} +.tundra .dijitMenuExpand { + + width: 7px; + height: 7px; + background-image: url('images/spriteArrows.png'); + background-position: -14px 0px; +} +.dj_ie6 .tundra .dijitMenuExpand { + background-image: url('images/spriteArrows.gif'); +} +.tundra .dijitMenuSeparatorTop { + border-bottom: 1px solid #9b9b9b; +} +.tundra .dijitMenuSeparatorBottom { + border-top: 1px solid #e8e8e8; +} +.tundra .dijitCheckedMenuItemIconChar { + display: none; +} +.tundra .dijitCheckedMenuItemIcon { + background-image: url('images/checkmark.png'); + background-position: -80px; +} +.dj_ie6 .tundra .dijitCheckedMenuItemIcon { + background-image: url('images/checkmark.gif'); +} +.tundra .dijitCheckedMenuItemChecked .dijitCheckedMenuItemIcon { + background-position: -64px; +} diff --git a/lib/dijit/themes/tundra/Menu_rtl.css b/lib/dijit/themes/tundra/Menu_rtl.css new file mode 100644 index 000000000..7f0a58ae3 --- /dev/null +++ b/lib/dijit/themes/tundra/Menu_rtl.css @@ -0,0 +1,3 @@ +.tundra .dijitMenuItemRtl .dijitMenuExpand { + background-position: -7px 0px; +} diff --git a/lib/dijit/themes/tundra/ProgressBar.css b/lib/dijit/themes/tundra/ProgressBar.css new file mode 100644 index 000000000..3f555c42b --- /dev/null +++ b/lib/dijit/themes/tundra/ProgressBar.css @@ -0,0 +1,23 @@ +.tundra .dijitProgressBar { + margin:2px 0px 2px 0px; +} +.tundra .dijitProgressBarEmpty { + + background:#fff url("images/progressBarEmpty.png") repeat-x center center; + border-color: #a2a2a2 #b8b8b8 #b8b8b8 #a2a2a2; +} +.tundra .dijitProgressBarTile { + + background:#f0f0f0 url("images/progressBarFull.png") repeat-x center center; +} +.tundra .dijitProgressBarFull { + border-right:1px solid #b8b8b8; +} +.tundra .dijitProgressBarLabel { + + color:#293a4b; +} +.tundra .dijitProgressBarIndeterminate .dijitProgressBarTile { + + background:#cad2de url("images/progressBarAnim.gif") repeat-x center center; +} diff --git a/lib/dijit/themes/tundra/TimePicker.css b/lib/dijit/themes/tundra/TimePicker.css new file mode 100644 index 000000000..5811ad665 --- /dev/null +++ b/lib/dijit/themes/tundra/TimePicker.css @@ -0,0 +1,42 @@ + +.tundra .dijitTimePickerTick, +.tundra .dijitTimePickerMarker { + border-color: #ccc; +} +.tundra .dijitTimePickerTick { + color:white; +} +.tundra .dijitTimePickerMarker { + background:#d3d3d3 url("images/titleBar.png") repeat-x top; + color:#293a4b; + font-weight: bold; +} +.tundra .dijitTimePickerItemSelected { + color: black; + background: #bbc4d0 none; +} +.tundra .dijitTimePickerItemHover { + background: #60a1ea none; + color:white; +} +.tundra .dijitTimePickerItemHover, +.tundra .dijitTimePickerItemSelected { + position: relative; + z-index: 10; +} +.tundra .dijitTimePickerTick .dijitTimePickerItemInner { + font-size:0.4em; +} +.tundra .dijitTimePickerItemHover .dijitTimePickerItemInner, +.tundra .dijitTimePickerItemSelected .dijitTimePickerItemInner { + font-size:1em; +} +.tundra .dijitTimePickerMarkerHover { + border-top: 1px solid #ccc; +} +.tundra .dijitTimePickerTickHover, +.tundra .dijitTimePickerTickSelected { + margin-top:-0.3em; + margin-bottom:-0.3em; + border-bottom: none; +} diff --git a/lib/dijit/themes/tundra/TimePicker_rtl.css b/lib/dijit/themes/tundra/TimePicker_rtl.css new file mode 100644 index 000000000..985600778 --- /dev/null +++ b/lib/dijit/themes/tundra/TimePicker_rtl.css @@ -0,0 +1,4 @@ + .dj_ie6 .tundra .dijitTimePickerRtl .dijitTimePickerMarkerHover, +.dj_ie7 .tundra .dijitTimePickerRtl .dijitTimePickerMarkerHover { + border-top: 0px; +} diff --git a/lib/dijit/themes/tundra/TitlePane.css b/lib/dijit/themes/tundra/TitlePane.css new file mode 100644 index 000000000..265de718c --- /dev/null +++ b/lib/dijit/themes/tundra/TitlePane.css @@ -0,0 +1,34 @@ +.tundra .dijitTitlePaneTitle { + background: #cccccc; + background:#fff url("images/titleBar.png") repeat-x bottom left; + border:1px solid #bfbfbf; + padding:3px 4px; +} +.tundra .dijitTitlePaneTitleHover { + background: #f8fafd url("images/accordionItemHover.gif") bottom repeat-x; +} +.tundra .dijitTitlePane .dijitArrowNode { + background-image: url('images/spriteArrows.png'); + background-repeat: no-repeat; + background-position: 0px 0px; + height: 7px; + width: 7px; +} +.dj_ie6 .tundra .dijitTitlePane .dijitArrowNode { + background-image: url('images/spriteArrows.gif'); +} +.tundra .dijitTitlePane .dijitClosed .dijitArrowNode { + background-position: -14px 0px; +} +.tundra .dijitTitlePaneContentOuter { + background: #ffffff; + border:1px solid #bfbfbf; + border-top: 0px; +} +.tundra .dijitTitlePaneContentInner { + padding:10px; +} +.tundra .dijitTitlePaneTextNode { + margin-left: 4px; + margin-right: 4px; +} diff --git a/lib/dijit/themes/tundra/TitlePane_rtl.css b/lib/dijit/themes/tundra/TitlePane_rtl.css new file mode 100644 index 000000000..f3d2b91a3 --- /dev/null +++ b/lib/dijit/themes/tundra/TitlePane_rtl.css @@ -0,0 +1,3 @@ +.tundra .dijitTitlePaneRtl .dijitClosed .dijitArrowNode { + background-position: -7px 0px; +} diff --git a/lib/dijit/themes/tundra/Toolbar.css b/lib/dijit/themes/tundra/Toolbar.css new file mode 100644 index 000000000..0f489fa85 --- /dev/null +++ b/lib/dijit/themes/tundra/Toolbar.css @@ -0,0 +1,64 @@ +.tundra .dijitToolbar { + border-bottom: 1px solid #ccc; + background:#eaeaea url("images/titleBar.png") repeat-x top left; +} +.dj_ie6 .tundra .dijitToolbar { + height: 10px; +} +.tundra .dijitToolbar .dijitButtonNode, +.tundra .dijitToolbar .dijitComboButton .dijitButtonContents, +.tundra .dijitToolbar .dijitComboButton .dijitDownArrowButton { + background: none; + margin: 0px; + padding: 0px; + border: none; + font-size: 12px; +} +.tundra .dijitToolbar .dijitButton, +.tundra .dijitToolbar .dijitToggleButton, +.tundra .dijitToolbar .dijitDropDownButton, +.tundra .dijitToolbar .dijitComboButton .dijitButtonContents, +.tundra .dijitToolbar .dijitComboButton .dijitDownArrowButton { + background: none; + padding: 1px; +} +.tundra .dijitToolbar .dijitButtonChecked, +.tundra .dijitToolbar .dijitToggleButtonChecked { + background-color:#d4dff2; + border:1px solid #316ac5; + padding: 0px; +} +.tundra .dijitToolbar .dijitButtonCheckedHover, +.tundra .dijitToolbar .dijitToggleButtonCheckedHover + { + background-color:#abc1e5; + border:1px solid #316ac5; + padding: 0px; +} +.tundra .dijitToolbar .dijitButtonHover, +.tundra .dijitToolbar .dijitToggleButtonHover, +.tundra .dijitToolbar .dijitDropDownButtonHover, +.tundra .dijitToolbar .dijitComboButton .dijitButtonContentsHover, +.tundra .dijitToolbar .dijitComboButton .dijitDownArrowButtonHover { + + border: 1px solid #869cbf; + padding: 0px; + background-color:#e1e5f0; +} +.tundra .dijitToolbar label { + padding: 3px 3px 0 6px; +} +.dj_ie .tundra .dijitToolbar .dijitComboButton .dijitButtonContentsFocused, +.dj_ie .tundra .dijitToolbar .dijitComboButton .dijitDownArrowButtonFocused { + + border: 1px #555 dotted !important; + padding: 0px; +} +.tundra .dijitToolbarSeparator { + + background: url('../../icons/images/editorIconsEnabled.png'); +} +.tundra .dijitToolbarRtl .dijitToolbarSeparator { + + background-image: url('../../icons/images/editorIconsDisabled.png'); +} diff --git a/lib/dijit/themes/tundra/Tree.css b/lib/dijit/themes/tundra/Tree.css new file mode 100644 index 000000000..5ba1c8804 --- /dev/null +++ b/lib/dijit/themes/tundra/Tree.css @@ -0,0 +1,72 @@ + +.tundra .dijitTreeNode { + background-image : url('images/i.gif'); + background-repeat : repeat-y; + zoom: 1; +} +.tundra .dijitTreeIsLast { + background: url('images/i_half.gif') no-repeat; +} +.tundra .dijitTreeIsRoot { + margin-left: 0; + background-image: none; +} +.tundra .dijitTreeExpando { + width: 18px; + height: 18px; +} +.tundra .dijitTreeRow { + + padding-bottom: 2px; +} +.tundra .dijitTreeContent { + min-height: 18px; + min-width: 18px; +} +.tundra .dijitTreeRowSelected .dijitTreeLabel { + background:#e2ebfe; +} +.tundra .dijitTreeRowHover { + + background-image: url(images/treeHover.png); + background-repeat: repeat; + background-color: transparent !important; +} +.tundra .dijitTreeExpandoOpened { + background-image: url('images/treeExpand_minus.gif'); +} +.tundra .dijitTreeExpandoClosed { + background-image: url('images/treeExpand_plus.gif'); +} +.tundra .dijitTreeExpandoLeaf { + background-image: url('images/treeExpand_leaf.gif'); +} +.tundra .dijitTreeExpandoLoading { + background-image: url('images/treeExpand_loading.gif'); +} +.tundra .dijitTreeIcon { + width: 16px; + height: 16px; +} +.tundra .dijitFolderOpened { + background: url('images/folderOpened.gif') no-repeat; +} +.tundra .dijitFolderClosed { + background: url('images/folderClosed.gif') no-repeat; +} +.tundra .dijitLeaf { + background: url('images/leaf.gif') no-repeat; +} +.tundra .dijitTreeNode .dojoDndItemBefore, +.tundra .dijitTreeNode .dojoDndItemAfter { + border-bottom: none; + border-top: none; +} +.tundra .dijitTreeNode .dojoDndItemBefore .dijitTreeContent { + + border-top: 2px solid #369; +} +.tundra .dijitTreeNode .dojoDndItemAfter .dijitTreeContent { + + border-bottom: 2px solid #369; +} diff --git a/lib/dijit/themes/tundra/Tree_rtl.css b/lib/dijit/themes/tundra/Tree_rtl.css new file mode 100644 index 000000000..6a9d93186 --- /dev/null +++ b/lib/dijit/themes/tundra/Tree_rtl.css @@ -0,0 +1,13 @@ + +.tundra .dijitTreeNodeRtl, +.tundra .dijitTreeNodeRtl .dijitTreeExpandoLeaf { + + background-image: none; +} +.tundra .dijitTreeNodeRtl .dijitTreeExpandoOpened { + + background-image: url('images/treeExpand_minus_rtl.gif'); +} +.tundra .dijitTreeNodeRtl .dijitTreeExpandoClosed { + background-image: url('images/treeExpand_plus_rtl.gif'); +} diff --git a/lib/dijit/themes/tundra/form/Button.css b/lib/dijit/themes/tundra/form/Button.css new file mode 100644 index 000000000..d9d103fc1 --- /dev/null +++ b/lib/dijit/themes/tundra/form/Button.css @@ -0,0 +1,118 @@ + +.tundra .dijitButtonNode { + + border: 1px solid #c0c0c0; + border-bottom: 1px solid #9b9b9b; + padding: 0.1em 0.2em 0.2em 0.2em; + background: #fff url("../images/buttonEnabled.png") repeat-x bottom left; +} +.tundra .dijitButtonText { + text-align: center; + padding: 0 0.3em; +} +.tundra .dijitDisabled .dijitButtonText { + color: #7F7F7F; +} +.tundra .dijitArrowButton { + color: #111; +} +.tundra .dijitComboButton .dijitDownArrowButton { + padding-right:4px; +} +.tundra .dijitTextBoxReadOnly, +.tundra .dijitTextBoxReadOnly .dijitButtonNode, +.tundra .dijitButtonDisabled .dijitButtonNode, +.tundra .dijitToggleButtonDisabled .dijitButtonNode, +.tundra .dijitDropDownButtonDisabled .dijitButtonNode, +.tundra .dijitComboButtonDisabled .dijitButtonNode, +.tundra .dijitTextBoxDisabled, +.tundra .dijitTextBoxDisabled .dijitButtonNode { + + border-color: #d5d5d5 #d5d5d5 #bdbdbd #d5d5d5; + background:#e4e4e4 url("../images/buttonDisabled.png") top repeat-x; +} +.tundra .dijitButtonHover .dijitButtonNode, +.tundra .dijitButtonNodeHover, +.tundra .dijitToggleButtonHover .dijitButtonNode, +.tundra .dijitDropDownButtonHover .dijitButtonNode, +.tundra .dijitComboButton .dijitButtonContentsHover, +.tundra .dijitComboButton .dijitDownArrowButtonHover { + + + border-color: #a5beda; + border-bottom-color:#5c7590; + color:#243C5F; + background:#fcfdff url("../images/buttonHover.png") repeat-x bottom; +} +.tundra .dijitDownArrowButtonHover, +.tundra .dijitUpArrowButtonHover { + + color:#243C5F; + background:#fcfdff url("../images/buttonHover.png") repeat-x bottom; +} +.tundra .dijitUpArrowButtonActive, +.tundra .dijitDownArrowButtonActive, +.tundra .dijitButtonActive .dijitButtonNode, +.tundra .dijitToggleButtonActive .dijitButtonNode, +.tundra .dijitDropDownButtonActive .dijitButtonNode, +.tundra .dijitButtonContentsActive, +.tundra .dijitStackController .dijitToggleButtonChecked .dijitButtonNode { + + border-color:#366dba; + background: #ededed url("../images/buttonActive.png") bottom repeat-x; +} +.tundra .dijitArrowButtonInner { + background:url("../images/spriteArrows.png") no-repeat scroll 0px center; + width: 7px; + height: 7px; + margin: 0px 4px 0px 4px; +} +.tundra .dijitTextBox .dijitArrowButtonInner { + background-position: 0 center; +} +.dj_ie6 .tundra .dijitArrowButtonInner { + background-image:url("../images/spriteArrows.gif"); +} +.tundra .dijitLeftArrowButton .dijitArrowButtonInner { + background-position: -7px center; +} +.tundra .dijitRightArrowButton .dijitArrowButtonInner { + background-position: -14px center; +} +.tundra .dijitUpArrowButton .dijitArrowButtonInner { + background-position: -21px center; +} +.tundra .dijitDisabled .dijitArrowButtonInner { + background-position: -28px center; +} +.tundra .dijitDisabled .dijitLeftArrowButton .dijitArrowButtonInner { + background-position: -35px center; +} +.tundra .dijitDisabled .dijitRightArrowButton .dijitArrowButtonInner { + background-position: -42px center; +} +.tundra .dijitDisabled .dijitUpArrowButton .dijitArrowButtonInner { + background-position: -49px center; +} +.dj_webkit .tundra .dijitSpinner .dijitUpArrowButton .dijitArrowButtonInner { + margin-top: -1px; +} +.dj_ie .tundra .dijitSpinner .dijitDownArrowButton .dijitArrowButtonInner { + margin-top: -2px; +} +.dj_ie8 .tundra .dijitSpinner .dijitDownArrowButton .dijitArrowButtonInner { + margin-top: -1px; +} +.tundra .dijitSpinnerButtonContainer { + width: auto; + padding: 0; +} +.tundra .dijitSpinner .dijitArrowButton { + width: 15px; +} +.tundra .dijitSpinner .dijitSpinnerButtonInner { + width: 15px; +} +.tundra .dijitSpinner .dijitArrowButtonInner .dijitInputField { + padding: 0; +} diff --git a/lib/dijit/themes/tundra/form/Checkbox.css b/lib/dijit/themes/tundra/form/Checkbox.css new file mode 100644 index 000000000..e7ff2f945 --- /dev/null +++ b/lib/dijit/themes/tundra/form/Checkbox.css @@ -0,0 +1,45 @@ +.tundra .dijitToggleButton .dijitCheckBoxIcon { + background-image: url('../images/checkmarkNoBorder.png'); +} +.dj_ie6 .tundra .dijitToggleButton .dijitCheckBoxIcon { + background-image: url('../images/checkmarkNoBorder.gif'); +} +.tundra .dijitCheckBox, +.tundra .dijitCheckBoxIcon { + background-image: url('../images/checkmark.png'); + background-repeat: no-repeat; + width: 16px; + height: 16px; + margin: 0 2px 0 0; + padding: 0; +} +.dj_ie6 .tundra .dijitCheckBox, +.dj_ie6 .tundra .dijitCheckBoxIcon { + background-image: url('../images/checkmark.gif'); +} +.tundra .dijitCheckBox, +.tundra .dijitToggleButton .dijitCheckBoxIcon { + + background-position: -16px; +} +.tundra .dijitCheckBoxChecked, +.tundra .dijitToggleButtonChecked .dijitCheckBoxIcon { + + background-position: 0px; +} +.tundra .dijitCheckBoxDisabled { + + background-position: -48px; +} +.tundra .dijitCheckBoxCheckedDisabled { + + background-position: -32px; +} +.tundra .dijitCheckBoxHover { + + background-position: -80px; +} +.tundra .dijitCheckBoxCheckedHover { + + background-position: -64px; +} diff --git a/lib/dijit/themes/tundra/form/Common.css b/lib/dijit/themes/tundra/form/Common.css new file mode 100644 index 000000000..999eb22ee --- /dev/null +++ b/lib/dijit/themes/tundra/form/Common.css @@ -0,0 +1,48 @@ + +.tundra .dijitInputContainer INPUT, +.tundra .dijitTextBox { + margin: 0em 0.1em; +} +.tundra .dijitTextArea { + padding: 3px; +} +.tundra .dijitTextBox { + + background:#fff url("../images/validationInputBg.png") repeat-x top left; + #background:#fff url('../images/validationInputBg.gif') repeat-x top left; + border:1px solid #b3b3b3; +} +.tundra .dijitComboBox .dijitButtonNode { + padding: 0 0.2em; +} +.tundra .dijitTextBox .dijitButtonNode { + + border-color: #9b9b9b; +} +.tundra .dijitTextBoxFocused { + + border-color:#406b9b; +} +.tundra .dijitTextBoxFocused .dijitButtonNode { + border-color:#366dba; +} +.tundra .dijitError { + background-color:#f9f7ba; + background-image:none; +} +.tundra .dijitErrorFocused { + background-color:#f9f999; + background-image:none; +} +.tundra .dijitValidationIcon { + + width: 16px; + background: transparent url('../images/warning.png') no-repeat center center; +} +.tundra .dijitComboBoxHighlightMatch { + background-color:#a5beda; +} +.tundra .dijitFocusedLabel { + + outline: 1px dotted #666666; +} diff --git a/lib/dijit/themes/tundra/form/RadioButton.css b/lib/dijit/themes/tundra/form/RadioButton.css new file mode 100644 index 000000000..3044d0edb --- /dev/null +++ b/lib/dijit/themes/tundra/form/RadioButton.css @@ -0,0 +1,44 @@ + +.tundra .dijitRadio, +.tundra .dijitRadioIcon { + background-image: url('../images/checkmark.png'); + background-repeat: no-repeat; + width: 16px; + height: 16px; + margin: 0; + padding: 0; +} +.dj_ie6 .tundra .dijitRadio, +.dj_ie6 .tundra .dijitRadioIcon { + background-image: url('../images/checkmark.gif'); +} +.tundra .dijitToggleButton .dijitRadioIcon { + + background-image: url('../images/checkmarkNoBorder.png'); +} +.dj_ie6 .tundra .dijitToggleButton .dijitRadioIcon { + background-image: url('../images/checkmarkNoBorder.gif'); +} +.tundra .dijitRadio, +.tundra .dijitRadioIcon { + + background-position: -112px; +} +.tundra .dijitRadioDisabled { + + background-position: -144px; +} +.tundra .dijitRadioHover { + + background-position: -176px; +} +.tundra .dijitRadioChecked, +.tundra .dijitRadioCheckedHover, +.tundra .dijitToggleButtonChecked .dijitRadioIcon { + + background-position: -96px; +} +.tundra .dijitRadioCheckedDisabled { + + background-position: -128px; +} diff --git a/lib/dijit/themes/tundra/form/Select.css b/lib/dijit/themes/tundra/form/Select.css new file mode 100644 index 000000000..072b1204a --- /dev/null +++ b/lib/dijit/themes/tundra/form/Select.css @@ -0,0 +1,47 @@ +.tundra .dijitSelect .dijitButtonNode { + padding: 0px; +} +.tundra .dijitSelect .dijitButtonNode .dijitArrowButtonInner { + margin: 0px 4px 0px 5px; +} +.tundra .dijitSelect .dijitButtonContents { + padding-top: 1px; + background:#fff url("../images/validationInputBg.png") repeat-x top left; + #background:#fff url('../images/validationInputBg.gif') repeat-x top left; +} +.tundra .dijitSelectHover .dijitButtonContents, +.tundra .dijitSelectActive .dijitButtonContents, +.tundra .dijitSelectOpened .dijitButtonContents, +.tundra .dijitSelectDisabled .dijitButtonContents, +.tundra .dijitSelectReadOnly .dijitButtonContents{ + background: transparent none; +} +.dj_ie .tundra .dijitSelect .dijitButtonContents { + padding-top: 0px; +} +.tundra .dijitSelectDisabled .dijitButtonNode { + border-color: #d5d5d5 #bdbdbd #bdbdbd #d5d5d5; + background:#e4e4e4 url("../images/buttonDisabled.png") top repeat-x; +} +.dj_ie .tundra .dijitSelectDisabled .dijitButtonNode * { + filter: gray() alpha(opacity=50); +} +.tundra .dijitSelectHover .dijitButtonNode { + border-color:#a5beda; + border-bottom-color:#5c7590; + border-right-color:#5c7590; + color:#243C5F; + background:#fcfdff url("../images/buttonHover.png") repeat-x bottom; +} +.tundra .dijitSelectActive .dijitButtonNode, +.tundra .dijitSelectOpened .dijitButtonNode { + border-color:#366dba; + background: #ededed url("../images/buttonActive.png") bottom repeat-x; +} +.tundra .dijitSelectMenu td { + padding: 0em; +} +.tundra .dijitSelectMenu .dijitMenuItemLabel, +.tundra .dijitSelectMenu .dijitMenuArrowCell { + padding: 0.1em 0.2em; +} diff --git a/lib/dijit/themes/tundra/form/Slider.css b/lib/dijit/themes/tundra/form/Slider.css new file mode 100644 index 000000000..b2c2b69f8 --- /dev/null +++ b/lib/dijit/themes/tundra/form/Slider.css @@ -0,0 +1,129 @@ +.tundra .dijitSliderProgressBarH { + border-color: #aab0bb; + background: #c0c2c5 url("../images/sliderFull.png") repeat-x top left; +} +.tundra .dijitSliderProgressBarV { + border-color: #aab0bb; + background: #c0c2c5 url("../images/sliderFullVertical.png") repeat-y bottom left; +} +.tundra .dijitSliderFocused .dijitSliderProgressBarH, +.tundra .dijitSliderFocused .dijitSliderLeftBumper { + background-image:url("../images/sliderFullFocus.png"); +} +.tundra .dijitSliderFocused .dijitSliderProgressBarV, +.tundra .dijitSliderFocused .dijitSliderBottomBumper { + background-image:url("../images/sliderFullVerticalFocus.png"); +} +.tundra .dijitSliderRemainingBarV { + border-color: #b4b4b4; + background: #dcdcdc url("../images/sliderEmptyVertical.png") repeat-y bottom left; +} +.tundra .dijitSliderRemainingBarH { + border-color: #b4b4b4; + background: #dcdcdc url("../images/sliderEmpty.png") repeat-x top left; +} +.tundra .dijitSliderBar { + border-style: solid; + outline:1px; +} +.tundra .dijitSliderFocused .dijitSliderBar { + border-color:#888; +} +.tundra .dijitSliderImageHandleH { + border:0px; + width:16px; + height:16px; + background:url("../images/preciseSliderThumb.png") no-repeat center top; +} +.tundra .dijitSliderFocused .dijitSliderImageHandleH { + background-image:url("../images/preciseSliderThumbFocus.png"); + #background-image:url("../images/preciseSliderThumbFocus.gif"); +} +.dj_ie6 .tundra .dijitSliderImageHandleH { + background-image:url("../images/preciseSliderThumb.gif"); +} +.tundra .dijitSliderLeftBumper { + border-left-width: 1px; + border-color: #aab0bb; + background: #c0c2c5 url("../images/sliderFull.png") repeat-x top left; +} +.tundra .dijitSliderRightBumper { + background: #dcdcdc url("../images/sliderEmpty.png") repeat-x top left; + border-color: #b4b4b4; + border-right-width: 1px; +} +.tundra .dijitSliderImageHandleV { + border:0px; + width:16px; + height:16px; + background:url("../images/sliderThumb.png") no-repeat center center; +} +.tundra .dijitSliderFocused .dijitSliderImageHandleV { + background-image:url("../images/sliderThumbFocus.png"); +} +.dj_ie6 .tundra .dijitSliderFocused .dijitSliderImageHandleV { + background-image:url("../images/sliderThumbFocus.gif"); +} +.tundra .dijitSliderBottomBumper { + border-bottom-width: 1px; + border-color: #aab0bb; + background: #c0c2c5 url("../images/sliderFullVertical.png") repeat-y bottom left; +} +.tundra .dijitSliderTopBumper { + background: #dcdcdc url("../images/sliderEmptyVertical.png") repeat-y top left; + border-color: #b4b4b4; + border-top-width: 1px; +} +.tundra .dijitSliderDecrementIconH, +.tundra .dijitSliderDecrementIconV, +.tundra .dijitSliderIncrementIconH, +.tundra .dijitSliderIncrementIconV { + background-image: url('../images/spriteArrows.png'); + background-repeat: no-repeat; + margin: 5px; + height: 7px; + width: 7px; + font-size: 1px; +} +.dj_ie6 .tundra .dijitSliderDecrementIconH, +.dj_ie6 .tundra .dijitSliderDecrementIconV, +.dj_ie6 .tundra .dijitSliderIncrementIconH, +.dj_ie6 .tundra .dijitSliderIncrementIconV { + background-image: url('../images/spriteArrows.gif'); +} +.tundra .dijitSliderDecrementIconH { + background-position: -7px 0px; +} +.tundra .dijitSliderIncrementIconH { + background-position: -14px 0px; +} +.tundra .dijitSliderDecrementIconV { + background-position: 0px 0px; +} +.tundra .dijitSliderIncrementIconV { + background-position: -21px 0px; +} +.tundra .dijitSliderButtonInner { + visibility:hidden; +} +.tundra .dijitSliderReadOnly *, +.tundra .dijitSliderDisabled * { + border-color: #d5d5d5 #bdbdbd #bdbdbd #d5d5d5; + color: #bdbdbd; +} +.tundra .dijitSliderReadOnly .dijitSliderDecrementIconH, +.tundra .dijitSliderDisabled .dijitSliderDecrementIconH { + background-position: -35px 0px; +} +.tundra .dijitSliderReadOnly .dijitSliderIncrementIconH, +.tundra .dijitSliderDisabled .dijitSliderIncrementIconH { + background-position: -42px 0px; +} +.tundra .dijitSliderReadOnly .dijitSliderDecrementIconV, +.tundra .dijitSliderDisabled .dijitSliderDecrementIconV { + background-position: -28px 0px; +} +.tundra .dijitSliderReadOnly .dijitSliderIncrementIconV, +.tundra .dijitSliderDisabled .dijitSliderIncrementIconV { + background-position: -49px 0px; +} diff --git a/lib/dijit/themes/tundra/form/Slider_rtl.css b/lib/dijit/themes/tundra/form/Slider_rtl.css new file mode 100644 index 000000000..979eed651 --- /dev/null +++ b/lib/dijit/themes/tundra/form/Slider_rtl.css @@ -0,0 +1,26 @@ +.tundra .dijitSliderRtl .dijitSliderProgressBarH, +.tundra .dijitSliderRtl .dijitSliderRemainingBarH, +.tundra .dijitSliderRtl .dijitSliderLeftBumper, +.tundra .dijitSliderRtl .dijitSliderRightBumper, +.tundra .dijitSliderRtl .dijitSliderTopBumper { + background-position: top right; +} +.tundra .dijitSliderRtl .dijitSliderProgressBarV, +.tundra .dijitSliderRtl .dijitSliderRemainingBarV, +.tundra .dijitSliderRtl .dijitSliderBottomBumper { + background-position: bottom right; +} +.tundra .dijitSliderRtl .dijitSliderLeftBumper { + border-left-width: 0px; + border-right-width: 1px; +} +.tundra .dijitSliderRtl .dijitSliderRightBumper { + border-left-width: 1px; + border-right-width: 0px; +} +.tundra .dijitSliderRtl .dijitSliderIncrementIconH { + background-position: -7px 0px; +} +.tundra .dijitSliderRtl .dijitSliderDecrementIconH { + background-position: -14px 0px; +} diff --git a/lib/dijit/themes/tundra/images/accordionItemActive.gif b/lib/dijit/themes/tundra/images/accordionItemActive.gif Binary files differnew file mode 100644 index 000000000..ccff3835a --- /dev/null +++ b/lib/dijit/themes/tundra/images/accordionItemActive.gif diff --git a/lib/dijit/themes/tundra/images/accordionItemHover.gif b/lib/dijit/themes/tundra/images/accordionItemHover.gif Binary files differnew file mode 100644 index 000000000..96bd3a439 --- /dev/null +++ b/lib/dijit/themes/tundra/images/accordionItemHover.gif diff --git a/lib/dijit/themes/tundra/images/buttonActive.png b/lib/dijit/themes/tundra/images/buttonActive.png Binary files differnew file mode 100644 index 000000000..09417b1a6 --- /dev/null +++ b/lib/dijit/themes/tundra/images/buttonActive.png diff --git a/lib/dijit/themes/tundra/images/buttonDisabled.png b/lib/dijit/themes/tundra/images/buttonDisabled.png Binary files differnew file mode 100644 index 000000000..70766f4f1 --- /dev/null +++ b/lib/dijit/themes/tundra/images/buttonDisabled.png diff --git a/lib/dijit/themes/tundra/images/buttonEnabled.png b/lib/dijit/themes/tundra/images/buttonEnabled.png Binary files differnew file mode 100644 index 000000000..cf0eb2054 --- /dev/null +++ b/lib/dijit/themes/tundra/images/buttonEnabled.png diff --git a/lib/dijit/themes/tundra/images/buttonHover.png b/lib/dijit/themes/tundra/images/buttonHover.png Binary files differnew file mode 100644 index 000000000..b074e4ede --- /dev/null +++ b/lib/dijit/themes/tundra/images/buttonHover.png diff --git a/lib/dijit/themes/tundra/images/calendarDayLabel.png b/lib/dijit/themes/tundra/images/calendarDayLabel.png Binary files differnew file mode 100644 index 000000000..c1a1553eb --- /dev/null +++ b/lib/dijit/themes/tundra/images/calendarDayLabel.png diff --git a/lib/dijit/themes/tundra/images/calendarMonthLabel.png b/lib/dijit/themes/tundra/images/calendarMonthLabel.png Binary files differnew file mode 100644 index 000000000..fd2cf0ab3 --- /dev/null +++ b/lib/dijit/themes/tundra/images/calendarMonthLabel.png diff --git a/lib/dijit/themes/tundra/images/calendarYearLabel.png b/lib/dijit/themes/tundra/images/calendarYearLabel.png Binary files differnew file mode 100644 index 000000000..dd344f54c --- /dev/null +++ b/lib/dijit/themes/tundra/images/calendarYearLabel.png diff --git a/lib/dijit/themes/tundra/images/checkmark.gif b/lib/dijit/themes/tundra/images/checkmark.gif Binary files differnew file mode 100644 index 000000000..ae6faa95a --- /dev/null +++ b/lib/dijit/themes/tundra/images/checkmark.gif diff --git a/lib/dijit/themes/tundra/images/checkmark.png b/lib/dijit/themes/tundra/images/checkmark.png Binary files differnew file mode 100644 index 000000000..0307109bd --- /dev/null +++ b/lib/dijit/themes/tundra/images/checkmark.png diff --git a/lib/dijit/themes/tundra/images/checkmarkNoBorder.gif b/lib/dijit/themes/tundra/images/checkmarkNoBorder.gif Binary files differnew file mode 100644 index 000000000..324bfb3cd --- /dev/null +++ b/lib/dijit/themes/tundra/images/checkmarkNoBorder.gif diff --git a/lib/dijit/themes/tundra/images/checkmarkNoBorder.png b/lib/dijit/themes/tundra/images/checkmarkNoBorder.png Binary files differnew file mode 100644 index 000000000..9cec0c0aa --- /dev/null +++ b/lib/dijit/themes/tundra/images/checkmarkNoBorder.png diff --git a/lib/dijit/themes/tundra/images/circleIcon.gif b/lib/dijit/themes/tundra/images/circleIcon.gif Binary files differnew file mode 100644 index 000000000..d582290a5 --- /dev/null +++ b/lib/dijit/themes/tundra/images/circleIcon.gif diff --git a/lib/dijit/themes/tundra/images/circleIcon.png b/lib/dijit/themes/tundra/images/circleIcon.png Binary files differnew file mode 100644 index 000000000..6f059e61e --- /dev/null +++ b/lib/dijit/themes/tundra/images/circleIcon.png diff --git a/lib/dijit/themes/tundra/images/comboArrowDown.gif b/lib/dijit/themes/tundra/images/comboArrowDown.gif Binary files differnew file mode 100644 index 000000000..e00a87b36 --- /dev/null +++ b/lib/dijit/themes/tundra/images/comboArrowDown.gif diff --git a/lib/dijit/themes/tundra/images/dijitProgressBarAnim.gif b/lib/dijit/themes/tundra/images/dijitProgressBarAnim.gif Binary files differnew file mode 100644 index 000000000..167a3e0d5 --- /dev/null +++ b/lib/dijit/themes/tundra/images/dijitProgressBarAnim.gif diff --git a/lib/dijit/themes/tundra/images/dijitProgressBarAnim.psd b/lib/dijit/themes/tundra/images/dijitProgressBarAnim.psd Binary files differnew file mode 100644 index 000000000..0a7bf23a4 --- /dev/null +++ b/lib/dijit/themes/tundra/images/dijitProgressBarAnim.psd diff --git a/lib/dijit/themes/tundra/images/dndCopy.png b/lib/dijit/themes/tundra/images/dndCopy.png Binary files differnew file mode 100644 index 000000000..baecd7cf2 --- /dev/null +++ b/lib/dijit/themes/tundra/images/dndCopy.png diff --git a/lib/dijit/themes/tundra/images/dndMove.png b/lib/dijit/themes/tundra/images/dndMove.png Binary files differnew file mode 100644 index 000000000..07f878cfb --- /dev/null +++ b/lib/dijit/themes/tundra/images/dndMove.png diff --git a/lib/dijit/themes/tundra/images/dndNoCopy.png b/lib/dijit/themes/tundra/images/dndNoCopy.png Binary files differnew file mode 100644 index 000000000..9bf9c3396 --- /dev/null +++ b/lib/dijit/themes/tundra/images/dndNoCopy.png diff --git a/lib/dijit/themes/tundra/images/dndNoMove.png b/lib/dijit/themes/tundra/images/dndNoMove.png Binary files differnew file mode 100644 index 000000000..cb8bd8bdd --- /dev/null +++ b/lib/dijit/themes/tundra/images/dndNoMove.png diff --git a/lib/dijit/themes/tundra/images/dojoTundraGradientBg.gif b/lib/dijit/themes/tundra/images/dojoTundraGradientBg.gif Binary files differnew file mode 100644 index 000000000..0da12393b --- /dev/null +++ b/lib/dijit/themes/tundra/images/dojoTundraGradientBg.gif diff --git a/lib/dijit/themes/tundra/images/dojoTundraGradientBg.png b/lib/dijit/themes/tundra/images/dojoTundraGradientBg.png Binary files differnew file mode 100644 index 000000000..ac118dd76 --- /dev/null +++ b/lib/dijit/themes/tundra/images/dojoTundraGradientBg.png diff --git a/lib/dijit/themes/tundra/images/doubleArrowDown.png b/lib/dijit/themes/tundra/images/doubleArrowDown.png Binary files differnew file mode 100644 index 000000000..92678d2f9 --- /dev/null +++ b/lib/dijit/themes/tundra/images/doubleArrowDown.png diff --git a/lib/dijit/themes/tundra/images/doubleArrowUp.png b/lib/dijit/themes/tundra/images/doubleArrowUp.png Binary files differnew file mode 100644 index 000000000..bba30fe95 --- /dev/null +++ b/lib/dijit/themes/tundra/images/doubleArrowUp.png diff --git a/lib/dijit/themes/tundra/images/folderClosed.gif b/lib/dijit/themes/tundra/images/folderClosed.gif Binary files differnew file mode 100644 index 000000000..9d5fcbc6d --- /dev/null +++ b/lib/dijit/themes/tundra/images/folderClosed.gif diff --git a/lib/dijit/themes/tundra/images/folderOpened.gif b/lib/dijit/themes/tundra/images/folderOpened.gif Binary files differnew file mode 100644 index 000000000..a514c7bf1 --- /dev/null +++ b/lib/dijit/themes/tundra/images/folderOpened.gif diff --git a/lib/dijit/themes/tundra/images/i.gif b/lib/dijit/themes/tundra/images/i.gif Binary files differnew file mode 100644 index 000000000..ebd95a7aa --- /dev/null +++ b/lib/dijit/themes/tundra/images/i.gif diff --git a/lib/dijit/themes/tundra/images/i_half.gif b/lib/dijit/themes/tundra/images/i_half.gif Binary files differnew file mode 100644 index 000000000..2947c4fa1 --- /dev/null +++ b/lib/dijit/themes/tundra/images/i_half.gif diff --git a/lib/dijit/themes/tundra/images/i_half_rtl.gif b/lib/dijit/themes/tundra/images/i_half_rtl.gif Binary files differnew file mode 100644 index 000000000..4f60ec444 --- /dev/null +++ b/lib/dijit/themes/tundra/images/i_half_rtl.gif diff --git a/lib/dijit/themes/tundra/images/i_rtl.gif b/lib/dijit/themes/tundra/images/i_rtl.gif Binary files differnew file mode 100644 index 000000000..7dafaadef --- /dev/null +++ b/lib/dijit/themes/tundra/images/i_rtl.gif diff --git a/lib/dijit/themes/tundra/images/leaf.gif b/lib/dijit/themes/tundra/images/leaf.gif Binary files differnew file mode 100644 index 000000000..85b017810 --- /dev/null +++ b/lib/dijit/themes/tundra/images/leaf.gif diff --git a/lib/dijit/themes/tundra/images/loading.gif b/lib/dijit/themes/tundra/images/loading.gif Binary files differnew file mode 100644 index 000000000..6e7c8e5ec --- /dev/null +++ b/lib/dijit/themes/tundra/images/loading.gif diff --git a/lib/dijit/themes/tundra/images/menu.png b/lib/dijit/themes/tundra/images/menu.png Binary files differnew file mode 100644 index 000000000..f5b93d115 --- /dev/null +++ b/lib/dijit/themes/tundra/images/menu.png diff --git a/lib/dijit/themes/tundra/images/minusButton.gif b/lib/dijit/themes/tundra/images/minusButton.gif Binary files differnew file mode 100644 index 000000000..48d517247 --- /dev/null +++ b/lib/dijit/themes/tundra/images/minusButton.gif diff --git a/lib/dijit/themes/tundra/images/no.gif b/lib/dijit/themes/tundra/images/no.gif Binary files differnew file mode 100644 index 000000000..9021a14e2 --- /dev/null +++ b/lib/dijit/themes/tundra/images/no.gif diff --git a/lib/dijit/themes/tundra/images/noX.gif b/lib/dijit/themes/tundra/images/noX.gif Binary files differnew file mode 100644 index 000000000..4a16dc795 --- /dev/null +++ b/lib/dijit/themes/tundra/images/noX.gif diff --git a/lib/dijit/themes/tundra/images/plusButton.gif b/lib/dijit/themes/tundra/images/plusButton.gif Binary files differnew file mode 100644 index 000000000..103c021da --- /dev/null +++ b/lib/dijit/themes/tundra/images/plusButton.gif diff --git a/lib/dijit/themes/tundra/images/popupMenuBg.gif b/lib/dijit/themes/tundra/images/popupMenuBg.gif Binary files differnew file mode 100644 index 000000000..15f4f1b8c --- /dev/null +++ b/lib/dijit/themes/tundra/images/popupMenuBg.gif diff --git a/lib/dijit/themes/tundra/images/preciseSliderThumb.gif b/lib/dijit/themes/tundra/images/preciseSliderThumb.gif Binary files differnew file mode 100644 index 000000000..15d4879cb --- /dev/null +++ b/lib/dijit/themes/tundra/images/preciseSliderThumb.gif diff --git a/lib/dijit/themes/tundra/images/preciseSliderThumb.png b/lib/dijit/themes/tundra/images/preciseSliderThumb.png Binary files differnew file mode 100644 index 000000000..f2fc33870 --- /dev/null +++ b/lib/dijit/themes/tundra/images/preciseSliderThumb.png diff --git a/lib/dijit/themes/tundra/images/preciseSliderThumbFocus.gif b/lib/dijit/themes/tundra/images/preciseSliderThumbFocus.gif Binary files differnew file mode 100644 index 000000000..b44611c7c --- /dev/null +++ b/lib/dijit/themes/tundra/images/preciseSliderThumbFocus.gif diff --git a/lib/dijit/themes/tundra/images/preciseSliderThumbFocus.png b/lib/dijit/themes/tundra/images/preciseSliderThumbFocus.png Binary files differnew file mode 100644 index 000000000..fb0632378 --- /dev/null +++ b/lib/dijit/themes/tundra/images/preciseSliderThumbFocus.png diff --git a/lib/dijit/themes/tundra/images/progressBarAnim-1.png b/lib/dijit/themes/tundra/images/progressBarAnim-1.png Binary files differnew file mode 100644 index 000000000..cfc3fd2c9 --- /dev/null +++ b/lib/dijit/themes/tundra/images/progressBarAnim-1.png diff --git a/lib/dijit/themes/tundra/images/progressBarAnim-2.png b/lib/dijit/themes/tundra/images/progressBarAnim-2.png Binary files differnew file mode 100644 index 000000000..d27981d64 --- /dev/null +++ b/lib/dijit/themes/tundra/images/progressBarAnim-2.png diff --git a/lib/dijit/themes/tundra/images/progressBarAnim-3.png b/lib/dijit/themes/tundra/images/progressBarAnim-3.png Binary files differnew file mode 100644 index 000000000..3b92a7dbe --- /dev/null +++ b/lib/dijit/themes/tundra/images/progressBarAnim-3.png diff --git a/lib/dijit/themes/tundra/images/progressBarAnim-4.png b/lib/dijit/themes/tundra/images/progressBarAnim-4.png Binary files differnew file mode 100644 index 000000000..61e4276c2 --- /dev/null +++ b/lib/dijit/themes/tundra/images/progressBarAnim-4.png diff --git a/lib/dijit/themes/tundra/images/progressBarAnim-5.png b/lib/dijit/themes/tundra/images/progressBarAnim-5.png Binary files differnew file mode 100644 index 000000000..48b189ae2 --- /dev/null +++ b/lib/dijit/themes/tundra/images/progressBarAnim-5.png diff --git a/lib/dijit/themes/tundra/images/progressBarAnim-6.png b/lib/dijit/themes/tundra/images/progressBarAnim-6.png Binary files differnew file mode 100644 index 000000000..af50c4d58 --- /dev/null +++ b/lib/dijit/themes/tundra/images/progressBarAnim-6.png diff --git a/lib/dijit/themes/tundra/images/progressBarAnim-7.png b/lib/dijit/themes/tundra/images/progressBarAnim-7.png Binary files differnew file mode 100644 index 000000000..a4fffa303 --- /dev/null +++ b/lib/dijit/themes/tundra/images/progressBarAnim-7.png diff --git a/lib/dijit/themes/tundra/images/progressBarAnim-8.png b/lib/dijit/themes/tundra/images/progressBarAnim-8.png Binary files differnew file mode 100644 index 000000000..b4c92f31a --- /dev/null +++ b/lib/dijit/themes/tundra/images/progressBarAnim-8.png diff --git a/lib/dijit/themes/tundra/images/progressBarAnim-9.png b/lib/dijit/themes/tundra/images/progressBarAnim-9.png Binary files differnew file mode 100644 index 000000000..d8bff13a4 --- /dev/null +++ b/lib/dijit/themes/tundra/images/progressBarAnim-9.png diff --git a/lib/dijit/themes/tundra/images/progressBarAnim.gif b/lib/dijit/themes/tundra/images/progressBarAnim.gif Binary files differnew file mode 100644 index 000000000..d3df139dc --- /dev/null +++ b/lib/dijit/themes/tundra/images/progressBarAnim.gif diff --git a/lib/dijit/themes/tundra/images/progressBarAnim.psd b/lib/dijit/themes/tundra/images/progressBarAnim.psd Binary files differnew file mode 100644 index 000000000..0a7bf23a4 --- /dev/null +++ b/lib/dijit/themes/tundra/images/progressBarAnim.psd diff --git a/lib/dijit/themes/tundra/images/progressBarEmpty.png b/lib/dijit/themes/tundra/images/progressBarEmpty.png Binary files differnew file mode 100644 index 000000000..07f4c91e5 --- /dev/null +++ b/lib/dijit/themes/tundra/images/progressBarEmpty.png diff --git a/lib/dijit/themes/tundra/images/progressBarFull.png b/lib/dijit/themes/tundra/images/progressBarFull.png Binary files differnew file mode 100644 index 000000000..0ce60f558 --- /dev/null +++ b/lib/dijit/themes/tundra/images/progressBarFull.png diff --git a/lib/dijit/themes/tundra/images/radioButtonActive.png b/lib/dijit/themes/tundra/images/radioButtonActive.png Binary files differnew file mode 100644 index 000000000..60840c782 --- /dev/null +++ b/lib/dijit/themes/tundra/images/radioButtonActive.png diff --git a/lib/dijit/themes/tundra/images/radioButtonActiveDisabled.png b/lib/dijit/themes/tundra/images/radioButtonActiveDisabled.png Binary files differnew file mode 100644 index 000000000..b49724e5f --- /dev/null +++ b/lib/dijit/themes/tundra/images/radioButtonActiveDisabled.png diff --git a/lib/dijit/themes/tundra/images/radioButtonActiveHover.png b/lib/dijit/themes/tundra/images/radioButtonActiveHover.png Binary files differnew file mode 100644 index 000000000..f21d4e5ec --- /dev/null +++ b/lib/dijit/themes/tundra/images/radioButtonActiveHover.png diff --git a/lib/dijit/themes/tundra/images/radioButtonDisabled.png b/lib/dijit/themes/tundra/images/radioButtonDisabled.png Binary files differnew file mode 100644 index 000000000..8da7e78f7 --- /dev/null +++ b/lib/dijit/themes/tundra/images/radioButtonDisabled.png diff --git a/lib/dijit/themes/tundra/images/radioButtonEnabled.png b/lib/dijit/themes/tundra/images/radioButtonEnabled.png Binary files differnew file mode 100644 index 000000000..4342feafd --- /dev/null +++ b/lib/dijit/themes/tundra/images/radioButtonEnabled.png diff --git a/lib/dijit/themes/tundra/images/radioButtonHover.png b/lib/dijit/themes/tundra/images/radioButtonHover.png Binary files differnew file mode 100644 index 000000000..fcb697fba --- /dev/null +++ b/lib/dijit/themes/tundra/images/radioButtonHover.png diff --git a/lib/dijit/themes/tundra/images/sliderEmpty.png b/lib/dijit/themes/tundra/images/sliderEmpty.png Binary files differnew file mode 100644 index 000000000..070c12f5b --- /dev/null +++ b/lib/dijit/themes/tundra/images/sliderEmpty.png diff --git a/lib/dijit/themes/tundra/images/sliderEmptyVertical.png b/lib/dijit/themes/tundra/images/sliderEmptyVertical.png Binary files differnew file mode 100644 index 000000000..45aceb7b5 --- /dev/null +++ b/lib/dijit/themes/tundra/images/sliderEmptyVertical.png diff --git a/lib/dijit/themes/tundra/images/sliderFull.png b/lib/dijit/themes/tundra/images/sliderFull.png Binary files differnew file mode 100644 index 000000000..4b3fcbb0c --- /dev/null +++ b/lib/dijit/themes/tundra/images/sliderFull.png diff --git a/lib/dijit/themes/tundra/images/sliderFullFocus.png b/lib/dijit/themes/tundra/images/sliderFullFocus.png Binary files differnew file mode 100644 index 000000000..ee193560d --- /dev/null +++ b/lib/dijit/themes/tundra/images/sliderFullFocus.png diff --git a/lib/dijit/themes/tundra/images/sliderFullVertical.png b/lib/dijit/themes/tundra/images/sliderFullVertical.png Binary files differnew file mode 100644 index 000000000..e7618e839 --- /dev/null +++ b/lib/dijit/themes/tundra/images/sliderFullVertical.png diff --git a/lib/dijit/themes/tundra/images/sliderFullVerticalFocus.png b/lib/dijit/themes/tundra/images/sliderFullVerticalFocus.png Binary files differnew file mode 100644 index 000000000..3ab37e6cc --- /dev/null +++ b/lib/dijit/themes/tundra/images/sliderFullVerticalFocus.png diff --git a/lib/dijit/themes/tundra/images/sliderThumb.png b/lib/dijit/themes/tundra/images/sliderThumb.png Binary files differnew file mode 100644 index 000000000..fe335835c --- /dev/null +++ b/lib/dijit/themes/tundra/images/sliderThumb.png diff --git a/lib/dijit/themes/tundra/images/sliderThumbFocus.gif b/lib/dijit/themes/tundra/images/sliderThumbFocus.gif Binary files differnew file mode 100644 index 000000000..15dd3d9d6 --- /dev/null +++ b/lib/dijit/themes/tundra/images/sliderThumbFocus.gif diff --git a/lib/dijit/themes/tundra/images/sliderThumbFocus.png b/lib/dijit/themes/tundra/images/sliderThumbFocus.png Binary files differnew file mode 100644 index 000000000..fe9763a43 --- /dev/null +++ b/lib/dijit/themes/tundra/images/sliderThumbFocus.png diff --git a/lib/dijit/themes/tundra/images/smallArrowDown.png b/lib/dijit/themes/tundra/images/smallArrowDown.png Binary files differnew file mode 100644 index 000000000..cabd01cd4 --- /dev/null +++ b/lib/dijit/themes/tundra/images/smallArrowDown.png diff --git a/lib/dijit/themes/tundra/images/smallArrowUp.png b/lib/dijit/themes/tundra/images/smallArrowUp.png Binary files differnew file mode 100644 index 000000000..a4dd67068 --- /dev/null +++ b/lib/dijit/themes/tundra/images/smallArrowUp.png diff --git a/lib/dijit/themes/tundra/images/splitContainerSizerH-thumb.png b/lib/dijit/themes/tundra/images/splitContainerSizerH-thumb.png Binary files differnew file mode 100644 index 000000000..e7bc204d8 --- /dev/null +++ b/lib/dijit/themes/tundra/images/splitContainerSizerH-thumb.png diff --git a/lib/dijit/themes/tundra/images/splitContainerSizerH.png b/lib/dijit/themes/tundra/images/splitContainerSizerH.png Binary files differnew file mode 100644 index 000000000..0e5e4715f --- /dev/null +++ b/lib/dijit/themes/tundra/images/splitContainerSizerH.png diff --git a/lib/dijit/themes/tundra/images/splitContainerSizerV-thumb.png b/lib/dijit/themes/tundra/images/splitContainerSizerV-thumb.png Binary files differnew file mode 100644 index 000000000..410a0a7a4 --- /dev/null +++ b/lib/dijit/themes/tundra/images/splitContainerSizerV-thumb.png diff --git a/lib/dijit/themes/tundra/images/splitContainerSizerV.png b/lib/dijit/themes/tundra/images/splitContainerSizerV.png Binary files differnew file mode 100644 index 000000000..6781f0ea9 --- /dev/null +++ b/lib/dijit/themes/tundra/images/splitContainerSizerV.png diff --git a/lib/dijit/themes/tundra/images/spriteArrows.gif b/lib/dijit/themes/tundra/images/spriteArrows.gif Binary files differnew file mode 100644 index 000000000..56a37f43b --- /dev/null +++ b/lib/dijit/themes/tundra/images/spriteArrows.gif diff --git a/lib/dijit/themes/tundra/images/spriteArrows.png b/lib/dijit/themes/tundra/images/spriteArrows.png Binary files differnew file mode 100644 index 000000000..e0229c9f7 --- /dev/null +++ b/lib/dijit/themes/tundra/images/spriteArrows.png diff --git a/lib/dijit/themes/tundra/images/spriteRoundedIconsSmall.gif b/lib/dijit/themes/tundra/images/spriteRoundedIconsSmall.gif Binary files differnew file mode 100644 index 000000000..251389a28 --- /dev/null +++ b/lib/dijit/themes/tundra/images/spriteRoundedIconsSmall.gif diff --git a/lib/dijit/themes/tundra/images/spriteRoundedIconsSmall.png b/lib/dijit/themes/tundra/images/spriteRoundedIconsSmall.png Binary files differnew file mode 100644 index 000000000..e81ba07f8 --- /dev/null +++ b/lib/dijit/themes/tundra/images/spriteRoundedIconsSmall.png diff --git a/lib/dijit/themes/tundra/images/tabActive.png b/lib/dijit/themes/tundra/images/tabActive.png Binary files differnew file mode 100644 index 000000000..eaf1ed489 --- /dev/null +++ b/lib/dijit/themes/tundra/images/tabActive.png diff --git a/lib/dijit/themes/tundra/images/tabClose.gif b/lib/dijit/themes/tundra/images/tabClose.gif Binary files differnew file mode 100644 index 000000000..2cb0ee1fa --- /dev/null +++ b/lib/dijit/themes/tundra/images/tabClose.gif diff --git a/lib/dijit/themes/tundra/images/tabClose.png b/lib/dijit/themes/tundra/images/tabClose.png Binary files differnew file mode 100644 index 000000000..136cd220d --- /dev/null +++ b/lib/dijit/themes/tundra/images/tabClose.png diff --git a/lib/dijit/themes/tundra/images/tabCloseHover.gif b/lib/dijit/themes/tundra/images/tabCloseHover.gif Binary files differnew file mode 100644 index 000000000..f59471e6e --- /dev/null +++ b/lib/dijit/themes/tundra/images/tabCloseHover.gif diff --git a/lib/dijit/themes/tundra/images/tabCloseHover.png b/lib/dijit/themes/tundra/images/tabCloseHover.png Binary files differnew file mode 100644 index 000000000..290e77f55 --- /dev/null +++ b/lib/dijit/themes/tundra/images/tabCloseHover.png diff --git a/lib/dijit/themes/tundra/images/tabDisabled.png b/lib/dijit/themes/tundra/images/tabDisabled.png Binary files differnew file mode 100644 index 000000000..ea0f61722 --- /dev/null +++ b/lib/dijit/themes/tundra/images/tabDisabled.png diff --git a/lib/dijit/themes/tundra/images/tabEnabled.png b/lib/dijit/themes/tundra/images/tabEnabled.png Binary files differnew file mode 100644 index 000000000..d40cf4525 --- /dev/null +++ b/lib/dijit/themes/tundra/images/tabEnabled.png diff --git a/lib/dijit/themes/tundra/images/tabHover.gif b/lib/dijit/themes/tundra/images/tabHover.gif Binary files differnew file mode 100644 index 000000000..471e0eee2 --- /dev/null +++ b/lib/dijit/themes/tundra/images/tabHover.gif diff --git a/lib/dijit/themes/tundra/images/tabHover.png b/lib/dijit/themes/tundra/images/tabHover.png Binary files differnew file mode 100644 index 000000000..16487f1dc --- /dev/null +++ b/lib/dijit/themes/tundra/images/tabHover.png diff --git a/lib/dijit/themes/tundra/images/titleBar.png b/lib/dijit/themes/tundra/images/titleBar.png Binary files differnew file mode 100644 index 000000000..b2609f372 --- /dev/null +++ b/lib/dijit/themes/tundra/images/titleBar.png diff --git a/lib/dijit/themes/tundra/images/titleBarBg.gif b/lib/dijit/themes/tundra/images/titleBarBg.gif Binary files differnew file mode 100644 index 000000000..1cd57cf5a --- /dev/null +++ b/lib/dijit/themes/tundra/images/titleBarBg.gif diff --git a/lib/dijit/themes/tundra/images/tooltipConnectorDown.gif b/lib/dijit/themes/tundra/images/tooltipConnectorDown.gif Binary files differnew file mode 100644 index 000000000..18b27951a --- /dev/null +++ b/lib/dijit/themes/tundra/images/tooltipConnectorDown.gif diff --git a/lib/dijit/themes/tundra/images/tooltipConnectorDown.png b/lib/dijit/themes/tundra/images/tooltipConnectorDown.png Binary files differnew file mode 100644 index 000000000..1aff5a3c9 --- /dev/null +++ b/lib/dijit/themes/tundra/images/tooltipConnectorDown.png diff --git a/lib/dijit/themes/tundra/images/tooltipConnectorLeft.gif b/lib/dijit/themes/tundra/images/tooltipConnectorLeft.gif Binary files differnew file mode 100644 index 000000000..3d9cbc542 --- /dev/null +++ b/lib/dijit/themes/tundra/images/tooltipConnectorLeft.gif diff --git a/lib/dijit/themes/tundra/images/tooltipConnectorLeft.png b/lib/dijit/themes/tundra/images/tooltipConnectorLeft.png Binary files differnew file mode 100644 index 000000000..e68fec3d8 --- /dev/null +++ b/lib/dijit/themes/tundra/images/tooltipConnectorLeft.png diff --git a/lib/dijit/themes/tundra/images/tooltipConnectorRight.gif b/lib/dijit/themes/tundra/images/tooltipConnectorRight.gif Binary files differnew file mode 100644 index 000000000..2b887f790 --- /dev/null +++ b/lib/dijit/themes/tundra/images/tooltipConnectorRight.gif diff --git a/lib/dijit/themes/tundra/images/tooltipConnectorRight.png b/lib/dijit/themes/tundra/images/tooltipConnectorRight.png Binary files differnew file mode 100644 index 000000000..dc2434a17 --- /dev/null +++ b/lib/dijit/themes/tundra/images/tooltipConnectorRight.png diff --git a/lib/dijit/themes/tundra/images/tooltipConnectorUp.gif b/lib/dijit/themes/tundra/images/tooltipConnectorUp.gif Binary files differnew file mode 100644 index 000000000..d0cad8a2c --- /dev/null +++ b/lib/dijit/themes/tundra/images/tooltipConnectorUp.gif diff --git a/lib/dijit/themes/tundra/images/tooltipConnectorUp.png b/lib/dijit/themes/tundra/images/tooltipConnectorUp.png Binary files differnew file mode 100644 index 000000000..55a378b89 --- /dev/null +++ b/lib/dijit/themes/tundra/images/tooltipConnectorUp.png diff --git a/lib/dijit/themes/tundra/images/treeExpand_leaf.gif b/lib/dijit/themes/tundra/images/treeExpand_leaf.gif Binary files differnew file mode 100644 index 000000000..4b1c6c156 --- /dev/null +++ b/lib/dijit/themes/tundra/images/treeExpand_leaf.gif diff --git a/lib/dijit/themes/tundra/images/treeExpand_leaf_rtl.gif b/lib/dijit/themes/tundra/images/treeExpand_leaf_rtl.gif Binary files differnew file mode 100644 index 000000000..b563d7c6c --- /dev/null +++ b/lib/dijit/themes/tundra/images/treeExpand_leaf_rtl.gif diff --git a/lib/dijit/themes/tundra/images/treeExpand_loading.gif b/lib/dijit/themes/tundra/images/treeExpand_loading.gif Binary files differnew file mode 100644 index 000000000..424d376ac --- /dev/null +++ b/lib/dijit/themes/tundra/images/treeExpand_loading.gif diff --git a/lib/dijit/themes/tundra/images/treeExpand_minus.gif b/lib/dijit/themes/tundra/images/treeExpand_minus.gif Binary files differnew file mode 100644 index 000000000..597778237 --- /dev/null +++ b/lib/dijit/themes/tundra/images/treeExpand_minus.gif diff --git a/lib/dijit/themes/tundra/images/treeExpand_minus_rtl.gif b/lib/dijit/themes/tundra/images/treeExpand_minus_rtl.gif Binary files differnew file mode 100644 index 000000000..cf50054b6 --- /dev/null +++ b/lib/dijit/themes/tundra/images/treeExpand_minus_rtl.gif diff --git a/lib/dijit/themes/tundra/images/treeExpand_mius.gif b/lib/dijit/themes/tundra/images/treeExpand_mius.gif Binary files differnew file mode 100644 index 000000000..597778237 --- /dev/null +++ b/lib/dijit/themes/tundra/images/treeExpand_mius.gif diff --git a/lib/dijit/themes/tundra/images/treeExpand_plus.gif b/lib/dijit/themes/tundra/images/treeExpand_plus.gif Binary files differnew file mode 100644 index 000000000..2b96a5552 --- /dev/null +++ b/lib/dijit/themes/tundra/images/treeExpand_plus.gif diff --git a/lib/dijit/themes/tundra/images/treeExpand_plus_rtl.gif b/lib/dijit/themes/tundra/images/treeExpand_plus_rtl.gif Binary files differnew file mode 100644 index 000000000..11f991674 --- /dev/null +++ b/lib/dijit/themes/tundra/images/treeExpand_plus_rtl.gif diff --git a/lib/dijit/themes/tundra/images/treeHover.png b/lib/dijit/themes/tundra/images/treeHover.png Binary files differnew file mode 100644 index 000000000..cd6d28be4 --- /dev/null +++ b/lib/dijit/themes/tundra/images/treeHover.png diff --git a/lib/dijit/themes/tundra/images/validationInputBg.gif b/lib/dijit/themes/tundra/images/validationInputBg.gif Binary files differnew file mode 100644 index 000000000..5a9916a66 --- /dev/null +++ b/lib/dijit/themes/tundra/images/validationInputBg.gif diff --git a/lib/dijit/themes/tundra/images/validationInputBg.png b/lib/dijit/themes/tundra/images/validationInputBg.png Binary files differnew file mode 100644 index 000000000..d222fb4e5 --- /dev/null +++ b/lib/dijit/themes/tundra/images/validationInputBg.png diff --git a/lib/dijit/themes/tundra/images/warning.png b/lib/dijit/themes/tundra/images/warning.png Binary files differnew file mode 100644 index 000000000..c52f83dc3 --- /dev/null +++ b/lib/dijit/themes/tundra/images/warning.png diff --git a/lib/dijit/themes/tundra/layout/AccordionContainer.css b/lib/dijit/themes/tundra/layout/AccordionContainer.css new file mode 100644 index 000000000..6479956e6 --- /dev/null +++ b/lib/dijit/themes/tundra/layout/AccordionContainer.css @@ -0,0 +1,20 @@ + +.tundra .dijitAccordionContainer { + border-color: #ccc; + background-color: #fff; +} +.tundra .dijitAccordionTitle { + background:#fafafa url("../images/titleBar.png") repeat-x bottom left; + border-top: 1px solid #bfbfbf; + padding: 4px 4px 4px 8px; +} +.tundra .dijitAccordionTitleHover { + background: #f8fafd url("../images/accordionItemHover.gif") bottom repeat-x; +} +.tundra .dijitAccordionTitleSelected { + background: #f9f9f9 url("../images/accordionItemActive.gif") bottom repeat-x; + font-weight: bold; + border-top: 1px solid #aaaaaa; + border-bottom: 1px solid #bfbfbf; + padding: 4px 4px 4px 8px; +} diff --git a/lib/dijit/themes/tundra/layout/BorderContainer.css b/lib/dijit/themes/tundra/layout/BorderContainer.css new file mode 100644 index 000000000..076460f15 --- /dev/null +++ b/lib/dijit/themes/tundra/layout/BorderContainer.css @@ -0,0 +1,55 @@ + +.tundra .dijitBorderContainer { + background-color: #fcfcfc; + padding: 5px; +} +.tundra .dijitSplitContainer-child, +.tundra .dijitBorderContainer-child { + + border: 1px #ccc solid; +} +.tundra .dijitBorderContainer-dijitTabContainerTop, +.tundra .dijitBorderContainer-dijitTabContainerBottom, +.tundra .dijitBorderContainer-dijitTabContainerLeft, +.tundra .dijitBorderContainer-dijitTabContainerRight { + + border: none; +} +.tundra .dijitBorderContainer-dijitBorderContainer { + + border: none; + padding: 0px; +} +.tundra .dijitSplitterH, +.tundra .dijitGutterH { + background:#fcfcfc; + border:0; + height:5px; +} +.tundra .dijitSplitterH .dijitSplitterThumb { + background:#B0B0B0 none; + height:1px; + top:2px; + width:19px; +} +.tundra .dijitSplitterV, +.tundra .dijitGutterV { + background:#fcfcfc; + border:0; + width:5px; +} +.tundra .dijitSplitterV .dijitSplitterThumb { + background:#B0B0B0 none; + height:19px; + left:2px; + width:1px; +} +.tundra .dijitSplitterActive { + font-size: 1px; + background-image: none; + background-color: #aaa; + -moz-opacity: 0.6; + opacity: 0.6; + filter: Alpha(Opacity=60); + margin: 0; +} diff --git a/lib/dijit/themes/tundra/layout/ContentPane.css b/lib/dijit/themes/tundra/layout/ContentPane.css new file mode 100644 index 000000000..8b470b938 --- /dev/null +++ b/lib/dijit/themes/tundra/layout/ContentPane.css @@ -0,0 +1,17 @@ + +.tundra .dijitContentPane { + padding: 0px; +} +.tundra .dijitTabContainerTop-dijitContentPane, +.tundra .dijitTabContainerLeft-dijitContentPane, +.tundra .dijitTabContainerBottom-dijitContentPane, +.tundra .dijitTabContainerRight-dijitContentPane, +.tundra .dijitAccordionContainer-dijitContentPane { + background-color: #fff; + padding: 5px; +} +.tundra .dijitSplitContainer-dijitContentPane, +.tundra .dijitBorderContainer-dijitContentPane { + background-color: #fff; + padding: 5px; +} diff --git a/lib/dijit/themes/tundra/layout/SplitContainer.css b/lib/dijit/themes/tundra/layout/SplitContainer.css new file mode 100644 index 000000000..278503116 --- /dev/null +++ b/lib/dijit/themes/tundra/layout/SplitContainer.css @@ -0,0 +1,28 @@ +.tundra .dijitSplitContainerSizerH { + background:url("../images/splitContainerSizerV.png") repeat-y #fff; + border:0; + border-left:1px solid #bfbfbf; + border-right:1px solid #bfbfbf; + width:7px; +} +.tundra .dijitSplitContainerSizerH .thumb { + background:url("../images/splitContainerSizerV-thumb.png") no-repeat #ccc; + left:1px; + width:3px; + height:19px; + overflow: hidden; +} +.tundra .dijitSplitContainerSizerV { + background:url("../images/splitContainerSizerH.png") repeat-x #fff; + border:0; + border-top:1px solid #bfbfbf; + border-bottom:1px solid #bfbfbf; + height:7px; +} +.tundra .dijitSplitContainerSizerV .thumb { + background:url("../images/splitContainerSizerH-thumb.png") no-repeat #ccc; + top:1px; + width:19px; + height:3px; + overflow: hidden; +} diff --git a/lib/dijit/themes/tundra/layout/TabContainer.css b/lib/dijit/themes/tundra/layout/TabContainer.css new file mode 100644 index 000000000..8e859b9b4 --- /dev/null +++ b/lib/dijit/themes/tundra/layout/TabContainer.css @@ -0,0 +1,249 @@ + +.tundra .dijitTabPaneWrapper { + background:#fff; + border:1px solid #ccc; + margin: 0; + padding: 0; +} +.tundra .dijitTab { + line-height:normal; + margin-right:4px; + padding:0px; + border:1px solid #ccc; + background:#e2e2e2 url("../images/tabEnabled.png") repeat-x; +} +.tundra .dijitTabInnerDiv { + padding:2px 8px 2px 9px; +} +.tundra .dijitTabSpacer { + display: none; +} +.tundra .dijitTabContainer .tabStripRBtn { + margin-right: 20px; +} +.tundra .dijitTabContainer .tabStripLBtn { + margin-left: 20px; +} +.tundra .nowrapTabStrip .dijitTab { + top: 2px; +} +.tundra .dijitTabContainerBottom .nowrapTabStrip .dijitTab { + top: 0px; + bottom: 2px; +} +.tundra .dijitTabChecked { + + background-color:#fff; + border-color: #ccc; + background-image:none; +} +.tundra .dijitTabHover { + color: #243C5F; + border-top-color:#92a0b3; + border-left-color:#92a0b3; + border-right-color:#92a0b3; + border-bottom-color:#92a0b3; + background:#e2e2e2 url("../images/tabHover.gif") repeat-x; +} +.tundra .dijitTabContainerTop .dijitTabHover { + border-bottom-color:#ccc; +} +.tundra .dijitTabContainerBottom .dijitTabHover { + border-top-color:#ccc; +} +.tundra .dijitTabContainerLeft .dijitTabHover { + border-right-color:#ccc; +} +.tundra .dijitTabContainerRight .dijitTabHover { + border-left-color:#ccc; +} +.tundra .dijitTabContainer .dijitTabCheckedHover { + color: inherit; + border:1px solid #ccc; + background:#fff; +} +.tundra .dijitTab .tabLabel { + + min-height: 12px; + display: inline-block; +} +.tundra .dijitTabContainerNested .dijitTabListWrapper { + height: auto; +} +.tundra .dijitTabContainerNested .dijitTabContainerTop-tabs { + border-bottom: 1px solid #CCC; +} +.tundra .dijitTabContainerTabListNested .dijitTab { + background: none; + border: none; + top: 0px; +} +.tundra .dijitTabContainerTabListNested .dijitTab .dijitTabContent { +} +.tundra .dijitTabContainerTabListNested .dijitTabHover .dijitTabContent .tabLabel { + text-decoration: underline; +} +.tundra .dijitTabContainerTabListNested .dijitTabChecked .dijitTabContent .tabLabel { + text-decoration: underline; + font-weight: bold; + +} +.tundra .dijitTabContainer .dijitTabPaneWrapperNested { + border: none; +} +.tundra .dijitTabCloseButton { + background: url("../images/tabClose.png") no-repeat right top; + width: 12px; + height: 12px; +} +.dj_ie6 .tundra .dijitTabCloseButton { + background-image : url("../images/tabClose.gif"); +} +.tundra .dijitTabCloseButtonHover { + background-image : url("../images/tabCloseHover.png"); +} +.dj_ie6 .tundra .dijitTabCloseButtonHover { + background-image : url("../images/tabCloseHover.gif"); +} +.tundra .dijitTabContainerTop-tabs { + margin-bottom: 0px; + border-color: #cccccc; + padding-left: 3px; + background-position: bottom; +} +.tundra .dijitTabContainerTop-tabs .dijitTab { + top: 0px; + margin-bottom: -1px; +} +.tundra .dijitTabContainerTop-container { + border-top: none; +} +.tundra .dijitTabContainerTop-tabs .dijitTabChecked { + border-bottom-color:white; +} +.tundra .dijitTabContainerTop-tabs, +.tundra .dijitTabContainerBottom-tabs { + padding-left: 3px; + padding-right: 3px; +} +.tundra .dijitTabContainerTopStrip { + border-top: 1px solid #CCC; + border-right: 1px solid #CCC; + border-left: 1px solid #CCC; + padding-top: 2px; + background: #f2f2f2; +} +.tundra .dijitTabContainerTopNone { + padding-top: 0px; +} +.tundra .dijitTabContainerBottom-tabs { + margin-top: 0px; + border-color: #cccccc; + background-position: top; + padding-left: 3px; +} +.tundra .dijitTabContainerBottom-tabs .dijitTab { + bottom: 0px; + margin-top: -1px; +} +.tundra .dijitTabContainerBottom-container { + border-bottom: none; +} +.tundra .dijitTabContainerBottom-tabs .dijitTabChecked { + border-top-color:white; +} +.tundra .dijitTabContainerBottomStrip { + padding-bottom: 2px; + border: 1px solid #ccc; + background: #f2f2f2; + border-top: none; +} +.tundra .dijitTabContainerRight-tabs { + border-color: #ccc; + height: 100%; + padding-top: 3px; +} +.tundra .dijitTabContainerRightStrip { + margin-left: -1px; +} +.tundra .dijitTabContainerRight-container { + border-right: none; +} +.tundra .dijitTabContainerRight-tabs .dijitTabChecked { + border-left-color:white; +} +.tundra .dijitTabContainerRightStrip { + padding-right: 2px; + border: 1px solid #ccc; +} +.tundra .dijitTabContainerRightStrip { + background: #f2f2f2; +} +.tundra .dijitTabContainerLeft-tabs { + border-color: #ccc; + padding-top: 3px; + height: 100%; +} +.tundra .dijitTabContainerLeft-container { + border-left: none; +} +.tundra .dijitTabContainerLeft-tabs .dijitTabChecked { + border-right-color:white; +} +.tundra .dijitTabContainerLeftStrip { + padding-left: 2px; + border: 1px solid #ccc; + background: #f2f2f2; + border-right: none; +} +.tundra .dijitTabContainerLeft-tabs .dijitTab, +.tundra .dijitTabContainerRight-tabs .dijitTab { + margin-right:0px; + margin-bottom:4px; +} +.tundra .dijitTabContainerTop-dijitContentPane .dijitTabContainerTop-tabs { + border-left: 0px solid #ccc; + border-top: 0px solid #ccc; + border-right: 0px solid #ccc; + padding-top: 0px; + padding-left: 0px; +} +.tundra .dijitTabContainer .tabStripButton { + margin-right: 0; + padding-top: 2px; + z-index: 12; +} +.tundra .dijitTabContainerBottom .tabStripButton { + padding-top: 2px; +} +.tundra .tabStrip-disabled .tabStripButton .dijitTabInnerDiv { + padding-bottom: 3px; + padding-top: 1px; +} +.tundra .tabStripButton .dijitTabInnerDiv { + padding: 3px 2px 4px 2px; +} +.dj_ie6 .tundra .tabStripButton .dijitTabInnerDiv, +.dj_ie7 .tundra .tabStripButton .dijitTabInnerDiv, +.dj_opera .tundra .tabStripButton .dijitTabInnerDiv { + padding-bottom: 5px; +} +.dj_ie6 .tundra .tabStrip-disabled .tabStripButton .dijitTabInnerDiv, +.dj_ie7 .tundra .tabStrip-disabled .tabStripButton .dijitTabInnerDiv, +.dj_opera .tundra .tabStrip-disabled .tabStripButton .dijitTabInnerDiv { + padding-bottom: 4px; +} +.tundra .dijitTabStripIcon { + height: 14px; + width: 14px; + background: url(../images/spriteRoundedIconsSmall.png) no-repeat left top ; +} +.dj_ie6 .tundra .dijitTabStripIcon { + background-image: url(../images/spriteRoundedIconsSmall.gif); +} +.tundra .dijitTabStripSlideRightIcon { + background-position: -30px top; +} +.tundra .dijitTabStripMenuIcon { + background-position: -15px top; +} diff --git a/lib/dijit/themes/tundra/layout/TabContainer_rtl.css b/lib/dijit/themes/tundra/layout/TabContainer_rtl.css new file mode 100644 index 000000000..1811a5b6c --- /dev/null +++ b/lib/dijit/themes/tundra/layout/TabContainer_rtl.css @@ -0,0 +1,38 @@ +.tundra .dijitTabRtl { + -moz-box-orient:horizontal; + text-align: right; +} +.tundra .dijitTabRtl .dijitTabInnerDiv { + padding:2px 9px 2px 8px; +} +.tundra .tabStrip-disabled .tabStripButtonRtl .dijitTabInnerDiv { + + padding-bottom: 3px; + padding-top: 1px; +} +.tundra .tabStripButtonRtl .dijitTabInnerDiv { + padding: 3px 2px 4px 2px; +} +.tundra .dijitTabPaneWrapper { + #zoom: 1; +} +.dj_ie-rtl .tundra .dijitTabContainerLeft-tabs { + margin-left: 1px !important; +} +.dj_ie-rtl .tundra .dijitTabContainerRight-tabs { + margin-right: 1px !important; +} +.tundra .dijitTabContainerLeft-tabs .dijitTabRtl, +.tundra .dijitTabContainerRight-tabs .dijitTabRtl { + margin-left:0px; +} +.dj_ie .tundra .dijitTabRtl .dijitTabInnerDiv { + + width : 0.1% !important; +} +.dj_iequirks-rtl .tundra .dijitTabContainerTopNone, +.dj_iequirks-rtl .tundra .dijitTabContainerBottomNone { + + border-left: 1px solid #fff; + border-right: 1px solid #fff; +} diff --git a/lib/dijit/themes/tundra/tundra.css b/lib/dijit/themes/tundra/tundra.css new file mode 100644 index 000000000..ee23609b6 --- /dev/null +++ b/lib/dijit/themes/tundra/tundra.css @@ -0,0 +1,3437 @@ + +.dijitReset { + + margin:0; + border:0; + padding:0; + line-height:normal; + font: inherit; + color: inherit; +} +.dijit_a11y .dijitReset { + -moz-appearance: none; +} +.dijitInline { + + display:inline-block; + #zoom: 1; + #display:inline; + border:0; + padding:0; + vertical-align:middle; + #vertical-align: auto; +} +.dijitHidden { + + display: none !important; +} +.dijitVisible { + + display: block !important; + position: relative; +} +.dijitInputContainer { + + #zoom: 1; + overflow: hidden; + float: none !important; + position:relative; +} +.dj_ie INPUT.dijitTextBox, +.dj_ie .dijitTextBox INPUT { + font-size: 100%; +} +.dijitTextBox .dijitSpinnerButtonContainer, +.dijitTextBox .dijitArrowButtonContainer, +.dijitTextBox .dijitValidationContainer { + float: right; + text-align: center; +} +.dijitTextBox INPUT.dijitInputField { + + padding-left: 0 !important; + padding-right: 0 !important; +} +.dijitTextBox .dijitValidationContainer { + display: none; +} +.dijitInlineTable { + + display:inline-table; + display:inline-block; + #zoom: 1; + #display:inline; + box-sizing: content-box; -moz-box-sizing: content-box; + border:0; + padding:0; +} +.dijitTeeny { + font-size:1px; + line-height:1px; +} +.dijitOffScreen { + position: absolute; + visibility: hidden; + left: 50%; + top: -10000px; +} +.dijitPopup { + position: absolute; + background-color: transparent; + margin: 0; + border: 0; + padding: 0; +} +.dijit_a11y .dijitPopup, +.dijit_ally .dijitPopup DIV, +.dijit_a11y .dijitPopup TABLE, +.dijit_a11y .dijitTooltipContainer { + background-color: white !important; +} +.dijitPositionOnly { + + padding: 0 !important; + border: 0 !important; + background-color: transparent !important; + background-image: none !important; + height: auto !important; + width: auto !important; +} +.dijitNonPositionOnly { + + float: none !important; + position: static !important; + margin: 0 0 0 0 !important; + vertical-align: middle !important; +} +.dijitBackgroundIframe { + + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + z-index: -1; + border: 0; + padding: 0; + margin: 0; +} +.dijitDisplayNone { + + display:none !important; +} +.dijitContainer { + + overflow: hidden; +} +.dijit_a11y * { + background-image:none !important; +} +.dijit_a11y .dijitIcon, +.dijit_a11y DIV.dijitArrowButtonInner, +.dijit_a11y SPAN.dijitArrowButtonInner, +.dijit_a11y IMG.dijitArrowButtonInner, +.dijit_a11y .dijitCalendarIncrementControl { + + display: none; +} +.dijitSpinner DIV.dijitArrowButtonInner { + display: block; +} +.dijit_a11y .dijitA11ySideArrow { + display: inline !important; + cursor: pointer; +} +.dijit_a11y .dijitCalendarDateLabel { + padding: 1px; +} +.dijit_a11y .dijitCalendarSelectedDate .dijitCalendarDateLabel { + border-style: dotted !important; + border-width: 1px; + padding: 0px; +} +.dijit_a11y .dijitCalendarDateTemplate { + padding-bottom: 0.1em !important; +} +.dijit_a11y .dijit * { + background:white !important; + color:black !important; +} +.dijit_a11y .dijitButtonNode { + border-color: black!important; + border-style: outset!important; + border-width: medium!important; +} +.dijit_a11y .dijitTextBoxReadOnly .dijitInputField, +.dijit_a11y .dijitTextBoxReadOnly .dijitButtonNode { + border-style: outset!important; + border-width: medium!important; + border-color: #999 !important; + color:#999 !important; +} +.dijitButtonNode * { + vertical-align: middle; +} +.dijitButtonNode .dijitArrowButtonInner { + + background: no-repeat center; + width: 12px; + height: 12px; + direction: ltr; +} +.dijitLeft { + + background-position:left top; + background-repeat:no-repeat; +} +.dijitStretch { + + white-space:nowrap; + background-repeat:repeat-x; +} +.dijitRight { + + #display:inline; + background-position:right top; + background-repeat:no-repeat; +} +.dijitToggleButton, +.dijitButton, +.dijitDropDownButton, +.dijitComboButton { + + margin: 0.2em; +} +.dijitButtonContents { + display: block; +} +td.dijitButtonContents { + display: table-cell; +} +.dijitButtonNode IMG { + + vertical-align:middle; + +} +TABLE.dijitComboButton { + + border-collapse: collapse; + border:0; + padding:0; + margin:0; +} +.dijitToolbar .dijitComboButton { + + border-collapse: separate; +} +.dijitToolbar .dijitToggleButton, +.dijitToolbar .dijitButton, +.dijitToolbar .dijitDropDownButton, +.dijitToolbar .dijitComboButton { + margin: 0; +} +.dijitToolbar .dijitButtonContents { + + padding: 1px 2px; +} +.dj_ie .dijitComboButton { + + margin-bottom: -3px; +} +.dj_webkit .dijitToolbar .dijitDropDownButton { + padding-left: 0.3em; +} +.dj_gecko .dijitToolbar .dijitButtonNode::-moz-focus-inner { + padding:0; +} +.dijitButtonNode { + + border:1px solid gray; + margin:0; + line-height:normal; + vertical-align: middle; + #vertical-align: auto; + text-align:center; + white-space: nowrap; +} +.dj_webkit .dijitSpinner .dijitSpinnerButtonContainer { + + line-height:inherit; +} +.dijitTextBox .dijitButtonNode { + border-width: 0; +} +.dijitButtonNode, +.dijitButtonNode * { + cursor: pointer; +} +.dj_ie .dijitButtonNode { + + zoom: 1; +} +.dj_ie .dijitButtonNode button { + + overflow: visible; +} +DIV.dijitArrowButton { + float: right; +} +.dijitTextBox { + border: solid black 1px; + #overflow: hidden; + width: 15em; + vertical-align: middle; + #vertical-align: auto; +} +.dijitTextBoxReadOnly, +.dijitTextBoxDisabled { + color: gray; +} +.dj_webkit .dijitTextBoxDisabled INPUT { + color: #eee; +} +.dj_webkit TEXTAREA.dijitTextAreaDisabled { + color: #333; +} +.dj_gecko .dijitTextBoxReadOnly INPUT, +.dj_gecko .dijitTextBoxDisabled INPUT { + -moz-user-input: none; +} +.dijitPlaceHolder { + + color: #AAAAAA; + font-style: italic; + position: absolute; + top: 0; + left: 0; + #filter: ""; +} +.dijitTimeTextBox { + width: 8em; +} +.dijitTextBox INPUT:focus { + outline: none; +} +.dijitTextBoxFocused { + outline: auto 5px -webkit-focus-ring-color; +} +.dijitTextBox INPUT { + float: left; +} +.dijitInputInner { + + border:0 !important; + vertical-align:middle !important; + background-color:transparent !important; + width:100% !important; + + padding-left: 0 !important; + padding-right: 0 !important; + margin-left: 0 !important; + margin-right: 0 !important; +} +.dijit_a11y .dijitTextBox INPUT { + margin: 0 !important; +} +.dijitTextBoxError INPUT.dijitValidationInner, +.dijitTextBox INPUT.dijitArrowButtonInner { + + text-indent: -1em !important; + direction: ltr !important; + text-align: left !important; + height: auto !important; + #text-indent: 0 !important; + #letter-spacing: -5em !important; + #text-align: right !important; +} +.dj_ie .dijitTextBox INPUT, +.dj_ie INPUT.dijitTextBox { + overflow-y: visible; + line-height: normal; +} +.dj_ie7 .dijitTextBox INPUT.dijitValidationInner, +.dj_ie7 .dijitTextBox INPUT.dijitArrowButtonInner { + line-height: 86%; +} +.dj_ie6 .dijitTextBox INPUT, +.dj_ie6 INPUT.dijitTextBox, +.dj_iequirks .dijitTextBox INPUT.dijitValidationInner, +.dj_iequirks .dijitTextBox INPUT.dijitArrowButtonInner, +.dj_iequirks .dijitTextBox INPUT.dijitSpinnerButtonInner, +.dj_iequirks .dijitTextBox INPUT.dijitInputInner, +.dj_iequirks INPUT.dijitTextBox { + line-height: 100%; +} +.dijit_a11y INPUT.dijitValidationInner, +.dijit_a11y INPUT.dijitArrowButtonInner { + + text-indent: 0 !important; + width: 1em !important; + #text-align: left !important; +} +.dijitTextBoxError .dijitValidationContainer { + display: inline; + cursor: default; +} +.dijitSpinner .dijitSpinnerButtonContainer, +.dijitComboBox .dijitArrowButtonContainer { + + border-width: 0 0 0 1px !important; +} +.dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode { + + border-width: 0; +} +.dj_ie .dijit_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitButtonNode { + clear: both; +} +.dijit_a11y .dijitTextBox .dijitValidationContainer, +.dijit_a11y .dijitTextBox .dijitSpinnerButtonContainer, +.dijit_a11y .dijitComboBox .dijitArrowButtonContainer { + + border: solid black !important; + border-width: 0 0 0 1px !important; +} +.dj_ie .dijitToolbar .dijitComboBox { + + vertical-align: middle; +} +.dijitTextBox .dijitSpinnerButtonContainer { + width: 1em; + position: relative !important; + overflow: hidden; +} +.dijitSpinner .dijitSpinnerButtonInner { + width:1em; + visibility:hidden !important; + overflow-x:hidden; +} +.dijitComboBox .dijitButtonNode, +.dijitSpinnerButtonContainer .dijitButtonNode { + border-width: 0; +} +.dijit_a11y .dijitSpinnerButtonContainer .dijitButtonNode { + border: 0 none !important; +} +.dijit_a11y .dijitTextBox .dijitSpinnerButtonContainer, +.dijit_a11y .dijitSpinner .dijitArrowButtonInner, +.dijit_a11y .dijitSpinnerButtonContainer INPUT { + width: 1em !important; +} +.dijit_a11y .dijitSpinner .dijitArrowButtonInner { + margin: 0 auto !important; +} +.dj_ie .dijit_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { + padding-left: 0.3em !important; + padding-right: 0.3em !important; + margin-left: 0.3em !important; + margin-right: 0.3em !important; + width: 1.4em !important; +} +.dj_ie7 .dijit_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { + padding-left: 0.0em !important; + padding-right: 0.0em !important; + width: 1em !important; +} +.dj_ie6 .dijit_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { + margin-left: 0.1em !important; + margin-right: 0.1em !important; + width: 1em !important; +} +.dj_iequirks .dijit_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { + margin-left: 0 !important; + margin-right: 0 !important; + width: 2em !important; +} +.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { + + padding: 0; + position: absolute !important; + right: 0; + float: none; + height: 50%; + width: 100%; + bottom: auto; + left: 0; + right: auto; +} +.dj_iequirks .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { + width: auto; +} +.dijit_a11y .dijitSpinnerButtonContainer .dijitArrowButton { + overflow: visible !important; +} +.dijitSpinner .dijitSpinnerButtonContainer .dijitDownArrowButton { + top: 50%; + border-top-width: 1px !important; +} +.dijitSpinner .dijitSpinnerButtonContainer .dijitUpArrowButton { + #bottom: 50%; + top: 0; +} +.dijitSpinner .dijitArrowButtonInner { + margin: auto; + overflow-x: hidden; + height: 100% !important; +} +.dj_iequirks .dijitSpinner .dijitArrowButtonInner { + height: auto !important; +} +.dijitSpinner .dijitArrowButtonInner .dijitInputField { + -moz-transform: scale(0.5); + -moz-transform-origin: center top; + -webkit-transform: scale(0.5); + -webkit-transform-origin: center top; + -o-transform: scale(0.5); + -o-transform-origin: center top; + transform: scale(0.5); + transform-origin: left top; + padding-top: 0; + padding-bottom: 0; + padding-left: 0 !important; + padding-right: 0 !important; + width: 100%; +} +.dj_ie .dijitSpinner .dijitArrowButtonInner .dijitInputField { + zoom: 50%; +} +.dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButtonInner { + overflow: hidden; +} +.dijit_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { + width: 100%; +} +.dj_iequirks .dijit_a11y .dijitSpinner .dijitSpinnerButtonContainer .dijitArrowButton { + width: 1em; +} +.dijitSpinner .dijitArrowButtonInner .dijitInputField { + visibility: hidden; +} +.dijit_a11y .dijitSpinner .dijitArrowButtonInner .dijitInputField { + vertical-align:top; + visibility: visible; +} +.dijit_a11y .dijitSpinnerButtonContainer { + width: 1em; +} +.dijit_a11y .dijitSpinnerButtonContainer .dijitButtonNode { + border-width: 1px 0px 0px 0px; + border-style: solid !important; +} +.dijitCheckBox, +.dijitRadio, +.dijitCheckBoxInput { + padding: 0; + border: 0; + width: 16px; + height: 16px; + background-position:center center; + background-repeat:no-repeat; + overflow: hidden; +} +.dijitCheckBox INPUT, +.dijitRadio INPUT { + margin: 0; + padding: 0; + display: block; +} +.dijitCheckBoxInput { + + opacity: 0.01; +} +.dj_ie .dijitCheckBoxInput { + filter: alpha(opacity=0); +} +.dijit_a11y .dijitCheckBox, +.dijit_a11y .dijitRadio { + + width: auto !important; + height: auto !important; +} +.dijit_a11y .dijitCheckBoxInput { + opacity: 1; + filter: none; + width: auto; + height: auto; +} +.dijitProgressBarEmpty { + + position:relative;overflow:hidden; + border:1px solid black; + z-index:0; +} +.dijitProgressBarFull { + + position:absolute; + overflow:hidden; + z-index:-1; + top:0; + width:100%; +} +.dj_ie6 .dijitProgressBarFull { + height:1.6em; +} +.dijitProgressBarTile { + + position:absolute; + overflow:hidden; + top:0; + left:0; + bottom:0; + right:0; + margin:0; + padding:0; + width:auto; + height:auto; + background-color:#aaa; + background-attachment: fixed; +} +.dijit_a11y .dijitProgressBarTile { + + border-width:2px; + border-style:solid; + background-color:transparent !important; +} +.dj_ie6 .dijitProgressBarTile { + + position:static; + + height:1.6em; +} +.dijitProgressBarIndeterminate .dijitProgressBarLabel { + visibility:hidden; +} +.dijitProgressBarIndeterminate .dijitProgressBarTile { + +} +.dijitProgressBarIndeterminateHighContrastImage { + display:none; +} +.dijit_a11y .dijitProgressBarIndeterminate .dijitProgressBarIndeterminateHighContrastImage { + display:block; + position:absolute; + top:0; + bottom:0; + margin:0; + padding:0; + width:100%; + height:auto; +} +.dijitProgressBarLabel { + display:block; + position:static; + width:100%; + text-align:center; + background-color:transparent !important; +} +.dijitTooltip { + position: absolute; + z-index: 2000; + display: block; + + left: 50%; + top: -10000px; + overflow: visible; +} +.dijitTooltipContainer { + border: solid black 2px; + background: #b8b5b5; + color: black; + font-size: small; +} +.dijitTooltipFocusNode { + padding: 2px 2px 2px 2px; +} +.dijitTooltipConnector { + position: absolute; +} +.dijit_a11y .dijitTooltipConnector { + display: none; +} +.dijitTooltipData { + display:none; +} +.dijitLayoutContainer { + position: relative; + display: block; + overflow: hidden; +} +body .dijitAlignTop, +body .dijitAlignBottom, +body .dijitAlignLeft, +body .dijitAlignRight { + position: absolute; + overflow: hidden; +} +body .dijitAlignClient { position: absolute; } +.dijitBorderContainer, .dijitBorderContainerNoGutter { + position:relative; + overflow: hidden; +} +.dijitBorderContainerPane, +.dijitBorderContainerNoGutterPane { + position: absolute !important; + z-index: 2; +} +.dijitBorderContainer > .dijitTextArea { + + resize: none; +} +.dijitGutter { + + position: absolute; + font-size: 1px; +} +.dijitSplitter { + position: absolute; + overflow: hidden; + z-index: 10; + background-color: #fff; + border-color: gray; + border-style: solid; + border-width: 0; +} +.dj_ie .dijitSplitter { + z-index: 1; +} +.dijitSplitterActive { + z-index: 11 !important; +} +.dijitSplitterCover { + position:absolute; + z-index:-1; + top:0; + left:0; + width:100%; + height:100%; +} +.dijitSplitterCoverActive { + z-index:3 !important; +} +.dj_ie .dijitSplitterCover { + background: white; + filter: alpha(opacity=0); +} +.dijitSplitterH { + height: 7px; + border-top:1px; + border-bottom:1px; + cursor: ns-resize; +} +.dijitSplitterV { + width: 7px; + border-left:1px; + border-right:1px; + cursor: ew-resize; +} +.dijitSplitContainer { + position: relative; + overflow: hidden; + display: block; +} +.dj_ff3 .dijit_a11y div.dijitSplitter:focus { + outline-style:dotted; + outline-width: 2px; +} +.dijitSplitPane { + position: absolute; +} +.dijitSplitContainerSizerH, +.dijitSplitContainerSizerV { + position:absolute; + font-size: 1px; + cursor: move; + cursor: w-resize; + background-color: ThreeDFace; + border: 1px solid; + border-color: ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight; + margin: 0; +} +.dijitSplitContainerSizerH .thumb, .dijitSplitterV .dijitSplitterThumb { + overflow:hidden; + position:absolute; + top:49%; +} +.dijitSplitContainerSizerV .thumb, .dijitSplitterH .dijitSplitterThumb { + position:absolute; + left:49%; +} +.dijitSplitterShadow, +.dijitSplitContainerVirtualSizerH, +.dijitSplitContainerVirtualSizerV { + font-size: 1px; + background-color: ThreeDShadow; + -moz-opacity: 0.5; + opacity: 0.5; + filter: Alpha(Opacity=50); + margin: 0; +} +.dj_ie .dijitSplitterV, .dijitSplitContainerVirtualSizerH { + cursor: w-resize; +} +.dj_ie .dijitSplitterH, .dijitSplitContainerSizerV, .dijitSplitContainerVirtualSizerV { + cursor: n-resize; +} +.dijit_a11y .dijitSplitterH { + border-top:1px solid #d3d3d3 !important; + border-bottom:1px solid #d3d3d3 !important; +} +.dijit_a11y .dijitSplitterV { + border-left:1px solid #d3d3d3 !important; + border-right:1px solid #d3d3d3 !important; +} +.dijitContentPane { + display: block; + overflow: auto; +} +.dijitContentPaneSingleChild { + + overflow: hidden; +} +.dijitTitlePane { + display: block; + overflow: hidden; +} +.dijitTitlePaneTitle { + cursor: pointer; +} +.dijitFixedOpen { + + cursor: default; +} +.dijitTitlePaneTitle * { + vertical-align: middle; +} +.dijitTitlePane .dijitArrowNodeInner { + + display: none; +} +.dijit_a11y .dijitTitlePane .dijitArrowNodeInner { + + display:inline !important; + font-family: monospace; +} +.dijit_a11y .dijitTitlePane .dijitArrowNode { + + display:none; +} +.dj_ie6 .dijitTitlePaneContentOuter, +.dj_ie6 .dijitTitlePane .dijitTitlePaneTitle { + + zoom: 1; +} +.dijitColorPalette { + border: 1px solid #999; + background: #fff; + position: relative; +} +img.dijitColorPaletteUnder { + + border-style: none; + position: absolute; + left: 0; + top: 0; +} +.dijitColorPalette .dijitPaletteTable { + + padding: 2px 3px 3px 3px; + position: relative; + overflow: hidden; + outline: 0; + border-collapse: separate; +} +.dj_ie6 .dijitColorPalette .dijitPaletteTable, +.dj_ie7 .dijitColorPalette .dijitPaletteTable, +.dj_iequirks .dijitColorPalette .dijitPaletteTable { + + padding: 0; + margin: 2px 3px 3px 3px; +} +.dijitColorPalette .dijitPaletteCell { + + height: 20px; + width: 20px; + font-size: 1px; + vertical-align: middle; + text-align: center; +} +.dijitColorPalette .dijitPaletteImg { + + width: 16px; + height: 14px; + border: 1px solid #999; + cursor: default; + vertical-align: middle; +} +.dj_iequirks .dijitColorPalette .dijitPaletteImg { + margin: 1px; +} +.dijitPaletteTable td { + padding: 0px; +} +.dijitColorPalette .dijitPaletteCellHover .dijitPaletteImg { + + border: 1px solid #000; +} +.dijitColorPalette .dijitPaletteCellActive .dijitPaletteImg, +.dijitColorPalette .dijitPaletteCellSelected .dijitPaletteImg { + border: 2px solid #000; +} +.dijit_a11y .dijitColorPalette .dijitPaletteTable, +.dijit_a11y .dijitColorPalette .dijitPaletteTable * { + + background-color: transparent !important; +} +.dj_gecko .dijit_a11y .dijitColorPalette .dijitPaletteCellFocused .dijitPaletteImg { + border: 3px dotted #000; + margin: -1px; +} +.dijit_a11y .dijitColorPalette .dijitPaletteCellHover .dijitPaletteImg { + border: 2px solid #000 !important; +} +.dijitAccordionContainer { + border:1px solid #b7b7b7; + border-top:0 !important; +} +.dijitAccordionTitle { + cursor: pointer; +} +.dijitAccordionTitleSelected { + cursor: default; +} +.dijitAccordionTitle .arrowTextUp, +.dijitAccordionTitle .arrowTextDown { + display: none; + font-size: 0.65em; + font-weight: normal !important; +} +.dijit_a11y .dijitAccordionTitle .arrowTextUp, +.dijit_a11y .dijitAccordionTitleSelected .arrowTextDown { + display: inline; +} +.dijit_a11y .dijitAccordionTitleSelected .arrowTextUp { + display: none; +} +.dj_ie6 .dijitAccordionTitle, +.dj_iequirks .dijitAccordionTitle { + + zoom: 1; +} +.dijitCalendarContainer { + width: auto; +} +.dijitCalendarContainer th, .dijitCalendarContainer td { + padding: 0; +} +.dijitCalendarNextYear { + margin:0 0 0 0.55em; +} +.dijitCalendarPreviousYear { + margin:0 0.55em 0 0; +} +.dijitCalendarIncrementControl { + vertical-align: middle; +} +.dijitCalendarIncrementControl, +.dijitCalendarDateTemplate, +.dijitCalendarMonthLabel, +.dijitCalendarPreviousYear, +.dijitCalendarNextYear { + cursor: pointer; +} +.dijitCalendarDisabledDate { + color: gray; + text-decoration: line-through; + cursor: default; +} +.dijitSpacer { + + position: relative; + height: 1px; + overflow: hidden; + visibility: hidden; +} +.dijitMenu { + border:1px solid black; + background-color:white; +} +.dijitMenuTable { + border-collapse:collapse; + border-width:0; + background-color:white; +} +.dj_webkit .dijitMenuTable td[colspan="2"]{ + border-right:hidden; +} +.dijitMenuItem { + text-align: left; + white-space: nowrap; + padding:.1em .2em; + cursor:pointer; +} +.dijitMenuPassive .dijitMenuItemHover, +.dijitMenuItemSelected { + + background-color:black; + color:white; +} +.dijitMenuItemIcon, .dijitMenuExpand { + background-repeat: no-repeat; +} +.dijitMenuItemDisabled * { + + opacity:0.5; + cursor:default; +} +.dj_ie .dijit_a11y .dijitMenuItemDisabled, +.dj_ie .dijit_a11y .dijitMenuItemDisabled td, +.dj_ie .dijitMenuItemDisabled *, +.dj_ie .dijitMenuItemDisabled td { + color:gray !important; + filter: alpha(opacity=35); +} +.dijitMenuItemLabel { + position: relative; + vertical-align: middle; +} +.dijit_a11y .dijitMenuItemSelected { + border: 1px dotted black !important; +} +.dj_ff3 .dijit_a11y .dijitMenuItem td { + padding: none !important; + background:none !important; +} +.dijit_a11y .dijitMenuItemSelected .dijitMenuItemLabel { + border-width: 1px; + border-style: solid; +} +.dj_ie8 .dijit_a11y .dijitMenuItemLabel { + position:static; +} +.dijitMenuExpandA11y { + display: none; +} +.dijit_a11y .dijitMenuExpandA11y { + display: inline; +} +.dijitMenuSeparator td { + border: 0; + padding: 0; +} +.dijitMenuSeparatorTop { + height: 50%; + margin: 0; + margin-top:3px; + font-size: 1px; +} +.dijitMenuSeparatorBottom { + height: 50%; + margin: 0; + margin-bottom:3px; + font-size: 1px; +} +.dijitCheckedMenuItemIconChar { + vertical-align: middle; + visibility:hidden; +} +.dijitCheckedMenuItemChecked .dijitCheckedMenuItemIconChar { + visibility: visible; +} +.dijit_a11y .dijitCheckedMenuItemIconChar { + display:inline !important; +} +.dijit_a11y .dijitCheckedMenuItemIcon { + display: none; +} +.dj_ie .dijit_a11y .dijitMenuBar .dijitMenuItem { + + margin: 0px; +} +.dijitStackController .dijitToggleButtonChecked * { + cursor: default; +} +.dijitTabContainerNoLayout { + width: 100%; +} +.dijitTabContainerBottom-tabs, +.dijitTabContainerTop-tabs, +.dijitTabContainerLeft-tabs, +.dijitTabContainerRight-tabs { + overflow: visible !important; +} +.dijitTabContainerBottom-container, +.dijitTabContainerTop-container, +.dijitTabContainerLeft-container, +.dijitTabContainerRight-container { + z-index:0; + overflow: hidden; + border: 1px solid black; +} +.nowrapTabStrip { + width: 50000px; + display: block; + position: relative; +} +.dijitTabListWrapper { + overflow: hidden; +} +.dijit_a11y .tabStripButton img { + + display: none; +} +.dijitTabContainerTop-tabs { + border-bottom: 1px solid black; +} +.dijitTabContainerTop-container { + border-top: 0px; +} +.dijitTabContainerLeft-tabs { + border-right: 1px solid black; + float: left; +} +.dijitTabContainerLeft-container { + border-left: 0px; +} +.dijitTabContainerBottom-tabs { + border-top: 1px solid black; +} +.dijitTabContainerBottom-container { + border-bottom: 0px; +} +.dijitTabContainerRight-tabs { + border-left: 1px solid black; + float: left; +} +.dijitTabContainerRight-container { + border-right: 0px; +} +DIV.dijitTabDisabled, .dj_ie DIV.dijitTabDisabled { + cursor: auto; +} +.dijitTab { + position:relative; + cursor:pointer; + white-space:nowrap; + z-index:3; +} +.dijitTab * { + + vertical-align: middle; +} +.dijitTabChecked { + cursor: default; +} +.dijitTabContainerTop-tabs .dijitTab { + top: 1px; +} +.dijitTabContainerBottom-tabs .dijitTab { + top: -1px; +} +.dijitTabContainerLeft-tabs .dijitTab { + left: 1px; +} +.dijitTabContainerRight-tabs .dijitTab { + left: -1px; +} +.dijitTabContainerTop-tabs .dijitTab, +.dijitTabContainerBottom-tabs .dijitTab { + + display:inline-block; + #zoom: 1; + #display:inline; +} +.dijitTabInnerDiv { + position:relative; +} +.tabStripButton { + z-index: 12; +} +.dijitTabButtonDisabled .tabStripButton { + display: none; +} +.dijitTabCloseButton { + margin-left: 1em; +} +.dijitTabCloseText { + display:none; +} +.dijit_a11y .dijitTabCloseButton { + background-image: none !important; + width: auto !important; + height: auto !important; + border: thin dotted; +} +.dijit_a11y .dijitTabCloseButtonHover { + border:thin solid; +} +.dijit_a11y .dijitTabCloseText { + display: inline; +} +.dijit_a11y .dijitTabChecked { + + border-style:dashed !important; +} +.dijit_a11y .dijitTabInnerDiv { + border-left:none !important; + } +.dijitTabPane, +.dijitStackContainer-child, +.dijitAccordionContainer-child { + + border: none !important; +} +.dijitInlineEditBoxDisplayMode { + border: 1px solid transparent; + cursor: text; +} +.dijit_a11y .dijitInlineEditBoxDisplayMode, +.dj_ie6 .dijitInlineEditBoxDisplayMode { + + border: none; +} +.dijitInlineEditBoxDisplayModeHover, +.dijit_a11y .dijitInlineEditBoxDisplayModeHover, +.dj_ie6 .dijitInlineEditBoxDisplayModeHover { + + background-color: #e2ebf2; + border: solid 1px black; +} +.dijitInlineEditBoxDisplayModeDisabled { + cursor: default; +} +.dijitTreeIndent { + + width: 19px; +} +.dijitTreeRow, .dijitTreeContent { + white-space: nowrap; +} +.dijitTreeRow img { + + vertical-align: middle; +} +.dijitTreeContent { + cursor: default; +} +.dijitExpandoText { + display: none; +} +.dijit_a11y .dijitExpandoText { + display: inline; + padding-left: 10px; + padding-right: 10px; + font-family: monospace; + border-style: solid; + border-width: thin; + cursor: pointer; +} +.dijitTreeLabel { + margin: 0px 4px; +} +.dijitDialog { + position: absolute; + z-index: 999; + overflow: hidden; +} +.dijitDialogTitleBar { + cursor: move; +} +.dijitDialogFixed .dijitDialogTitleBar { + cursor:default; +} +.dijitDialogCloseIcon { + cursor: pointer; +} +.dijitDialogUnderlayWrapper { + position: absolute; + left: 0; + top: 0; + z-index: 998; + display: none; + background: transparent !important; +} +.dijitDialogUnderlay { + background: #eee; + opacity: 0.5; +} +.dj_ie .dijitDialogUnderlay { + filter: alpha(opacity=50); +} +.dijit_a11y .dijitSpinnerButtonContainer, +.dijit_a11y .dijitDialog { + opacity: 1 !important; + background-color: white !important; +} +.dijitDialog .closeText { + display:none; + + position:absolute; +} +.dijit_a11y .dijitDialog .closeText { + display:inline; +} +.dijitSliderMoveable { + z-index:99; + position:absolute !important; + display:block; + vertical-align:middle; +} +.dijitSliderMoveableH { + right:0; +} +.dijitSliderMoveableV { + right:50%; +} +.dijit_a11y DIV.dijitSliderImageHandle, +.dijitSliderImageHandle { + margin:0; + padding:0; + position:relative !important; + border:8px solid gray; + width:0; + height:0; + cursor: pointer; +} +.dj_iequirks .dijit_a11y .dijitSliderImageHandle { + font-size: 0; +} +.dj_ie7 .dijitSliderImageHandle { + overflow: hidden; +} +.dj_ie7 .dijit_a11y .dijitSliderImageHandle { + overflow: visible; +} +.dijit_a11y .dijitSliderFocused .dijitSliderImageHandle { + border:4px solid #000; + height:8px; + width:8px; +} +.dijitSliderImageHandleV { + top:-8px; + right: -50%; +} +.dijitSliderImageHandleH { + left:50%; + top:-5px; + vertical-align:top; +} +.dijitSliderBar { + border-style:solid; + border-color:black; + cursor: pointer; +} +.dijitSliderBarContainerV { + position:relative; + height:100%; + z-index:1; +} +.dijitSliderBarContainerH { + position:relative; + z-index:1; +} +.dijitSliderBarH { + height:4px; + border-width:1px 0; +} +.dijitSliderBarV { + width:4px; + border-width:0 1px; +} +.dijitSliderProgressBar { + background-color:red; + z-index:1; +} +.dijitSliderProgressBarV { + position:static !important; + height:0%; + vertical-align:top; + text-align:left; +} +.dijitSliderProgressBarH { + position:absolute !important; + width:0%; + vertical-align:middle; + overflow:visible; +} +.dijitSliderRemainingBar { + overflow:hidden; + background-color:transparent; + z-index:1; +} +.dijitSliderRemainingBarV { + height:100%; + text-align:left; +} +.dijitSliderRemainingBarH { + width:100% !important; +} +.dijitSliderBumper { + overflow:hidden; + z-index:1; +} +.dijitSliderBumperV { + width:4px; + height:8px; + border-width:0 1px; +} +.dijitSliderBumperH { + width:8px; + height:4px; + border-width:1px 0; +} +.dijitSliderBottomBumper, +.dijitSliderLeftBumper { + background-color:red; +} +.dijitSliderTopBumper, +.dijitSliderRightBumper { + background-color:transparent; +} +.dijitSliderDecoration { + text-align:center; +} +.dijitSliderV TD { + position: relative; +} +.dijitSliderDecorationH { + width: 100%; +} +.dijitSliderDecorationV { + height: 100%; +} +.dijitSliderButton { + font-family:monospace; + margin:0; + padding:0; + display:block; +} +.dijit_a11y .dijitSliderButtonInner { + visibility:visible !important; +} +.dijitSliderButtonContainer { + text-align:center; + height:0; +} +.dijitSliderButtonContainer * { + cursor: pointer; +} +.dijitSlider .dijitButtonNode { + padding:0; + display:block; +} +.dijitRuleContainer { + position:relative; + overflow:visible; +} +.dijitRuleContainerV { + height:100%; + line-height:0; + float:left; + text-align:left; +} +.dj_opera .dijitRuleContainerV { + line-height:2%; +} +.dj_ie .dijitRuleContainerV { + line-height:normal; +} +.dj_gecko .dijitRuleContainerV { + margin:0 0 1px 0; +} +.dijitRuleMark { + position:absolute; + border:1px solid black; + line-height:0; + height:100%; +} +.dijitRuleMarkH { + width:0; + border-top-width:0 !important; + border-bottom-width:0 !important; + border-left-width:0 !important; +} +.dijitRuleLabelContainer { + position:absolute; +} +.dijitRuleLabelContainerH { + text-align:center; + display:inline-block; +} +.dijitRuleLabelH { + position:relative; + left:-50%; +} +.dijitRuleLabelV { + + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} +.dijitRuleMarkV { + height:0; + border-right-width:0 !important; + border-bottom-width:0 !important; + border-left-width:0 !important; + width:100%; + left:0; +} +.dj_ie .dijitRuleLabelContainerV { + margin-top:-.55em; +} +.dijit_a11y .dijitSliderReadOnly, +.dijit_a11y .dijitSliderDisabled { + opacity:0.6; +} +.dj_ie .dijit_a11y .dijitSliderReadOnly .dijitSliderBar, +.dj_ie .dijit_a11y .dijitSliderDisabled .dijitSliderBar { + filter: alpha(opacity=40); +} +.dijit_a11y .dijitSlider .dijitSliderButtonContainer DIV { + font-family: monospace; + font-size: 1em; + line-height: 1em; + height: auto; + width: auto; + margin: 0px 4px; +} +.dijit_a11y .dijitButtonContents .dijitButtonText, +.dijit_a11y .dijitTab .tabLabel { + display: inline !important; +} +.dijitTextArea { + width:100%; + overflow-y: auto; +} +.dijitTextArea[cols] { + width:auto; +} +.dj_ie .dijitTextAreaCols { + width:auto; +} +.dijitToolbarSeparator { + height: 18px; + width: 5px; + padding: 0 1px; + margin: 0; +} +.dijitIEFixedToolbar { + position:absolute; + + top: expression(eval((document.documentElement||document.body).scrollTop)); +} +.dijitEditor { + display: block; +} +.dijitEditorDisabled, +.dijitEditorReadOnly { + color: gray; +} +.dijitTimePickerItemInner { + text-align:center; + border:0; + padding:2px 8px 2px 8px; +} +.dijitTimePickerTick, +.dijitTimePickerMarker { + border-bottom:1px solid gray; +} +.dijitTimePicker .dijitDownArrowButton { + border-top: none !important; +} +.dijitTimePickerTick { + color:#CCC; +} +.dijitTimePickerMarker { + color:black; + background-color:#CCC; +} +.dijitTimePickerItemSelected { + font-weight:bold; + color:#333; + background-color:#b7cdee; +} +.dijitTimePickerItemHover { + background-color:gray; + color:white; + cursor:pointer; +} +.dijit_a11y .dijitTimePickerItemSelected .dijitTimePickerItemInner { + border: solid 4px black; +} +.dijit_a11y .dijitTimePickerItemHover .dijitTimePickerItemInner { + border: dashed 4px black; +} +.dijitToggleButtonIconChar { + + display:none !important; +} +.dijit_a11y .dijitToggleButton .dijitToggleButtonIconChar { + display:inline !important; + visibility:hidden; +} +.dj_ie6 .dijitToggleButtonIconChar, .dj_ie6 .tabStripButton .dijitButtonText { + font-family: "Arial Unicode MS"; +} +.dijit_a11y .dijitToggleButtonChecked .dijitToggleButtonIconChar { + display: inline !important; + visibility:visible !important; +} +.dijitArrowButtonChar { + display:none !important; +} +.dijit_a11y .dijitArrowButtonChar { + display:inline !important; +} +.dijit_a11y .dijitDropDownButton .dijitArrowButtonInner, +.dijit_a11y .dijitComboButton .dijitArrowButtonInner { + display:none !important; +} +.dijitSelect { + margin: 0.2em; + border-collapse: collapse; +} +.dj_ie .dijitSelect, +.dj_ie7 .dijitSelect, +.dj_iequirks .dijitSelect { + vertical-align: middle; +} +.dj_ie8 .dijitSelect .dijitButtonText { + vertical-align: top; +} +.dijitToolbar .dijitSelect { + margin: 0; +} +.dj_webkit .dijitToolbar .dijitSelect { + padding-left: 0.3em; +} +.dijit_a11y .dijitSelectDisabled .dijitButtonNode { + border-style: outset!important; + border-width: medium!important; + border-color: #999 !important; + color:#999 !important; +} +.dijitSelect .dijitButtonContents { + padding: 0px; + background: transparent none; + white-space: nowrap; + text-align: left; +} +.dijitSelectFixedWidth .dijitButtonContents { + width: 100%; +} +.dijitSelectMenu .dijitMenuItemIcon { + + display:none; +} +.dj_ie6 .dijitSelectMenu .dijitMenuItemLabel, +.dj_ie7 .dijitSelectMenu .dijitMenuItemLabel { + + position: static; +} +.dijitSelectLabel * +{ + vertical-align: baseline; +} +.dijitSelectSelectedOption * { + font-weight: bold; +} +.dijitSelectMenu { + border-width: 1px; +} +.dijitSelectMenu .dijitMenuTable { + margin: 0px; + background-color: transparent; +} +.dijitForceStatic { + position: static !important; +} +.dijitReadOnly *, +.dijitDisabled *, +.dijitReadOnly, +.dijitDisabled { + + cursor: default; +} +.dijitIconSave, +.dijitIconPrint, +.dijitIconCut, +.dijitIconCopy, +.dijitIconClear, +.dijitIconDelete, +.dijitIconUndo, +.dijitIconEdit, +.dijitIconNewTask, +.dijitIconEditTask, +.dijitIconEditProperty, +.dijitIconTask, +.dijitIconFilter, +.dijitIconConfigure, +.dijitIconSearch, +.dijitIconApplication, +.dijitIconBookmark, +.dijitIconChart, +.dijitIconConnector, +.dijitIconDatabase, +.dijitIconDocuments, +.dijitIconMail, +.dijitLeaf, +.dijitIconFile, +.dijitIconFunction, +.dijitIconKey, +.dijitIconPackage, +.dijitIconSample, +.dijitIconTable, +.dijitIconUsers, +.dijitFolderClosed, +.dijitIconFolderClosed, +.dijitFolderOpened, +.dijitIconFolderOpen, +.dijitIconError { + background-image: url(../../icons/images/commonIconsObjActEnabled.png); + width: 16px; + height: 16px; +} +.dj_ie6 .dijitIconSave, +.dj_ie6 .dijitIconPrint, +.dj_ie6 .dijitIconCut, +.dj_ie6 .dijitIconCopy, +.dj_ie6 .dijitIconClear, +.dj_ie6 .dijitIconDelete, +.dj_ie6 .dijitIconUndo, +.dj_ie6 .dijitIconEdit, +.dj_ie6 .dijitIconNewTask, +.dj_ie6 .dijitIconEditTask, +.dj_ie6 .dijitIconEditProperty, +.dj_ie6 .dijitIconTask, +.dj_ie6 .dijitIconFilter, +.dj_ie6 .dijitIconConfigure, +.dj_ie6 .dijitIconSearch, +.dj_ie6 .dijitIconApplication, +.dj_ie6 .dijitIconBookmark, +.dj_ie6 .dijitIconChart, +.dj_ie6 .dijitIconConnector, +.dj_ie6 .dijitIconDatabase, +.dj_ie6 .dijitIconDocuments, +.dj_ie6 .dijitIconMail, +.dj_ie6 .dijitLeaf, +.dj_ie6 .dijitIconFile, +.dj_ie6 .dijitIconFunction, +.dj_ie6 .dijitIconKey, +.dj_ie6 .dijitIconPackage, +.dj_ie6 .dijitIconSample, +.dj_ie6 .dijitIconTable, +.dj_ie6 .dijitIconUsers, +.dj_ie6 .dijitFolderClosed, +.dj_ie6 .dijitIconFolderClosed, +.dj_ie6 .dijitFolderOpened, +.dj_ie6 .dijitIconFolderOpen, +.dj_ie6 .dijitIconError { + background-image: url(../../icons/images/commonIconsObjActEnabled8bit.png); +} +.dijitDisabled .dijitIconSave, +.dijitDisabled .dijitIconPrint, +.dijitDisabled .dijitIconCut, +.dijitDisabled .dijitIconCopy, +.dijitDisabled .dijitIconClear, +.dijitDisabled .dijitIconDelete, +.dijitDisabled .dijitIconUndo, +.dijitDisabled .dijitIconEdit, +.dijitDisabled .dijitIconNewTask, +.dijitDisabled .dijitIconEditTask, +.dijitDisabled .dijitIconEditProperty, +.dijitDisabled .dijitIconTask, +.dijitDisabled .dijitIconFilter, +.dijitDisabled .dijitIconConfigure, +.dijitDisabled .dijitIconSearch, +.dijitDisabled .dijitIconApplication, +.dijitDisabled .dijitIconBookmark, +.dijitDisabled .dijitIconChart, +.dijitDisabled .dijitIconConnector, +.dijitDisabled .dijitIconDatabase, +.dijitDisabled .dijitIconDocuments, +.dijitDisabled .dijitIconMail, +.dijitDisabled .dijitLeaf, +.dijitDisabled .dijitIconFile, +.dijitDisabled .dijitIconFunction, +.dijitDisabled .dijitIconKey, +.dijitDisabled .dijitIconPackage, +.dijitDisabled .dijitIconSample, +.dijitDisabled .dijitIconTable, +.dijitDisabled .dijitIconUsers, +.dijitDisabled .dijitFolderClosed, +.dijitDisabled .dijitIconFolderClosed, +.dijitDisabled .dijitFolderOpened, +.dijitDisabled .dijitIconFolderOpen, +.dijitDisabled .dijitIconError { + background-image: url(../../icons/images/commonIconsObjActDisabled.png); +} +.dijitIconSave { background-position: 0px; } +.dijitIconPrint { background-position: -16px; } +.dijitIconCut { background-position: -32px; } +.dijitIconCopy { background-position: -48px; } +.dijitIconClear { background-position: -64px; } +.dijitIconDelete { background-position: -80px; } +.dijitIconUndo { background-position: -96px; } +.dijitIconEdit { background-position: -112px; } +.dijitIconNewTask { background-position: -128px; } +.dijitIconEditTask { background-position: -144px; } +.dijitIconEditProperty { background-position: -166px; } +.dijitIconTask { background-position: -176px; } +.dijitIconFilter { background-position: -192px; } +.dijitIconConfigure { background-position: -208px; } +.dijitIconSearch { background-position: -224px; } +.dijitIconError { background-position: -496px; } +.dijitIconApplication { background-position: -240px; } +.dijitIconBookmark { background-position: -256px; } +.dijitIconChart { background-position: -272px; } +.dijitIconConnector { background-position: -288px; } +.dijitIconDatabase { background-position: -304px; } +.dijitIconDocuments { background-position: -320px; } +.dijitIconMail { background-position: -336px; } +.dijitIconFile, .dijitLeaf { background-position: -352px; } +.dijitIconFunction { background-position: -368px; } +.dijitIconKey { background-position: -384px; } +.dijitIconPackage{ background-position: -400px; } +.dijitIconSample { background-position: -416px; } +.dijitIconTable { background-position: -432px; } +.dijitIconUsers { background-position: -448px; } +.dijitIconFolderClosed, .dijitFolderClosed { background-position: -464px; } +.dijitIconFolderOpen, .dijitFolderOpened { background-position: -480px; } +.tundra .dojoDndItemBefore { + border-top: 2px solid #369; +} +.tundra .dojoDndItemAfter { + border-bottom: 2px solid #369; +} +.tundra .dojoDndItemOver { + cursor:pointer; +} +.tundra table.dojoDndAvatar { -moz-border-radius: 0; border: 1px solid #ccc; border-collapse: collapse; background-color: #fff; font-size: 75%; color: black;} +.tundra .dojoDndAvatar td { border: none; } +.tundra .dojoDndAvatar tr { border: none; } +.tundra .dojoDndAvatarHeader td { height: 20px; padding: 0 0 0 21px; } +.tundra .dojoDndAvatarItem td { padding: 2px;} +.tundra.dojoDndMove .dojoDndAvatarHeader {background-color: #f58383; background-image: url(images/dndNoMove.png); background-repeat: no-repeat; background-position: 2px center;} +.tundra.dojoDndCopy .dojoDndAvatarHeader {background-color: #f58383; background-image: url(images/dndNoCopy.png); background-repeat: no-repeat; background-position: 2px center;} +.tundra.dojoDndMove .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-color: #97e68d; background-image: url(images/dndMove.png); background-repeat: no-repeat; background-position: 2px center;} +.tundra.dojoDndCopy .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-color: #97e68d; background-image: url(images/dndCopy.png); background-repeat: no-repeat; background-position: 2px center;} +.tundra .dijitContentPaneLoading { + background:url(images/loading.gif) no-repeat left center; + padding-left:25px; +} +.tundra .dijitContentPaneError { + background:url(images/warning.png) no-repeat left center; + padding-left:25px; +} +.tundra .dijitContentPane { + padding: 0px; +} +.tundra .dijitTabContainerTop-dijitContentPane, +.tundra .dijitTabContainerLeft-dijitContentPane, +.tundra .dijitTabContainerBottom-dijitContentPane, +.tundra .dijitTabContainerRight-dijitContentPane, +.tundra .dijitAccordionContainer-dijitContentPane { + background-color: #fff; + padding: 5px; +} +.tundra .dijitSplitContainer-dijitContentPane, +.tundra .dijitBorderContainer-dijitContentPane { + background-color: #fff; + padding: 5px; +} +.tundra .dijitTabPaneWrapper { + background:#fff; + border:1px solid #ccc; + margin: 0; + padding: 0; +} +.tundra .dijitTab { + line-height:normal; + margin-right:4px; + padding:0px; + border:1px solid #ccc; + background:#e2e2e2 url(images/tabEnabled.png) repeat-x; +} +.tundra .dijitTabInnerDiv { + padding:2px 8px 2px 9px; +} +.tundra .dijitTabSpacer { + display: none; +} +.tundra .dijitTabContainer .tabStripRBtn { + margin-right: 20px; +} +.tundra .dijitTabContainer .tabStripLBtn { + margin-left: 20px; +} +.tundra .nowrapTabStrip .dijitTab { + top: 2px; +} +.tundra .dijitTabContainerBottom .nowrapTabStrip .dijitTab { + top: 0px; + bottom: 2px; +} +.tundra .dijitTabChecked { + + background-color:#fff; + border-color: #ccc; + background-image:none; +} +.tundra .dijitTabHover { + color: #243C5F; + border-top-color:#92a0b3; + border-left-color:#92a0b3; + border-right-color:#92a0b3; + border-bottom-color:#92a0b3; + background:#e2e2e2 url(images/tabHover.gif) repeat-x; +} +.tundra .dijitTabContainerTop .dijitTabHover { + border-bottom-color:#ccc; +} +.tundra .dijitTabContainerBottom .dijitTabHover { + border-top-color:#ccc; +} +.tundra .dijitTabContainerLeft .dijitTabHover { + border-right-color:#ccc; +} +.tundra .dijitTabContainerRight .dijitTabHover { + border-left-color:#ccc; +} +.tundra .dijitTabContainer .dijitTabCheckedHover { + color: inherit; + border:1px solid #ccc; + background:#fff; +} +.tundra .dijitTab .tabLabel { + + min-height: 12px; + display: inline-block; +} +.tundra .dijitTabContainerNested .dijitTabListWrapper { + height: auto; +} +.tundra .dijitTabContainerNested .dijitTabContainerTop-tabs { + border-bottom: 1px solid #CCC; +} +.tundra .dijitTabContainerTabListNested .dijitTab { + background: none; + border: none; + top: 0px; +} +.tundra .dijitTabContainerTabListNested .dijitTab .dijitTabContent { +} +.tundra .dijitTabContainerTabListNested .dijitTabHover .dijitTabContent .tabLabel { + text-decoration: underline; +} +.tundra .dijitTabContainerTabListNested .dijitTabChecked .dijitTabContent .tabLabel { + text-decoration: underline; + font-weight: bold; + +} +.tundra .dijitTabContainer .dijitTabPaneWrapperNested { + border: none; +} +.tundra .dijitTabCloseButton { + background: url(images/tabClose.png) no-repeat right top; + width: 12px; + height: 12px; +} +.dj_ie6 .tundra .dijitTabCloseButton { + background-image : url(images/tabClose.gif); +} +.tundra .dijitTabCloseButtonHover { + background-image : url(images/tabCloseHover.png); +} +.dj_ie6 .tundra .dijitTabCloseButtonHover { + background-image : url(images/tabCloseHover.gif); +} +.tundra .dijitTabContainerTop-tabs { + margin-bottom: 0px; + border-color: #cccccc; + padding-left: 3px; + background-position: bottom; +} +.tundra .dijitTabContainerTop-tabs .dijitTab { + top: 0px; + margin-bottom: -1px; +} +.tundra .dijitTabContainerTop-container { + border-top: none; +} +.tundra .dijitTabContainerTop-tabs .dijitTabChecked { + border-bottom-color:white; +} +.tundra .dijitTabContainerTop-tabs, +.tundra .dijitTabContainerBottom-tabs { + padding-left: 3px; + padding-right: 3px; +} +.tundra .dijitTabContainerTopStrip { + border-top: 1px solid #CCC; + border-right: 1px solid #CCC; + border-left: 1px solid #CCC; + padding-top: 2px; + background: #f2f2f2; +} +.tundra .dijitTabContainerTopNone { + padding-top: 0px; +} +.tundra .dijitTabContainerBottom-tabs { + margin-top: 0px; + border-color: #cccccc; + background-position: top; + padding-left: 3px; +} +.tundra .dijitTabContainerBottom-tabs .dijitTab { + bottom: 0px; + margin-top: -1px; +} +.tundra .dijitTabContainerBottom-container { + border-bottom: none; +} +.tundra .dijitTabContainerBottom-tabs .dijitTabChecked { + border-top-color:white; +} +.tundra .dijitTabContainerBottomStrip { + padding-bottom: 2px; + border: 1px solid #ccc; + background: #f2f2f2; + border-top: none; +} +.tundra .dijitTabContainerRight-tabs { + border-color: #ccc; + height: 100%; + padding-top: 3px; +} +.tundra .dijitTabContainerRightStrip { + margin-left: -1px; +} +.tundra .dijitTabContainerRight-container { + border-right: none; +} +.tundra .dijitTabContainerRight-tabs .dijitTabChecked { + border-left-color:white; +} +.tundra .dijitTabContainerRightStrip { + padding-right: 2px; + border: 1px solid #ccc; +} +.tundra .dijitTabContainerRightStrip { + background: #f2f2f2; +} +.tundra .dijitTabContainerLeft-tabs { + border-color: #ccc; + padding-top: 3px; + height: 100%; +} +.tundra .dijitTabContainerLeft-container { + border-left: none; +} +.tundra .dijitTabContainerLeft-tabs .dijitTabChecked { + border-right-color:white; +} +.tundra .dijitTabContainerLeftStrip { + padding-left: 2px; + border: 1px solid #ccc; + background: #f2f2f2; + border-right: none; +} +.tundra .dijitTabContainerLeft-tabs .dijitTab, +.tundra .dijitTabContainerRight-tabs .dijitTab { + margin-right:0px; + margin-bottom:4px; +} +.tundra .dijitTabContainerTop-dijitContentPane .dijitTabContainerTop-tabs { + border-left: 0px solid #ccc; + border-top: 0px solid #ccc; + border-right: 0px solid #ccc; + padding-top: 0px; + padding-left: 0px; +} +.tundra .dijitTabContainer .tabStripButton { + margin-right: 0; + padding-top: 2px; + z-index: 12; +} +.tundra .dijitTabContainerBottom .tabStripButton { + padding-top: 2px; +} +.tundra .tabStrip-disabled .tabStripButton .dijitTabInnerDiv { + padding-bottom: 3px; + padding-top: 1px; +} +.tundra .tabStripButton .dijitTabInnerDiv { + padding: 3px 2px 4px 2px; +} +.dj_ie6 .tundra .tabStripButton .dijitTabInnerDiv, +.dj_ie7 .tundra .tabStripButton .dijitTabInnerDiv, +.dj_opera .tundra .tabStripButton .dijitTabInnerDiv { + padding-bottom: 5px; +} +.dj_ie6 .tundra .tabStrip-disabled .tabStripButton .dijitTabInnerDiv, +.dj_ie7 .tundra .tabStrip-disabled .tabStripButton .dijitTabInnerDiv, +.dj_opera .tundra .tabStrip-disabled .tabStripButton .dijitTabInnerDiv { + padding-bottom: 4px; +} +.tundra .dijitTabStripIcon { + height: 14px; + width: 14px; + background: url(images/spriteRoundedIconsSmall.png) no-repeat left top ; +} +.dj_ie6 .tundra .dijitTabStripIcon { + background-image: url(images/spriteRoundedIconsSmall.gif); +} +.tundra .dijitTabStripSlideRightIcon { + background-position: -30px top; +} +.tundra .dijitTabStripMenuIcon { + background-position: -15px top; +} +.tundra .dijitAccordionContainer { + border-color: #ccc; + background-color: #fff; +} +.tundra .dijitAccordionTitle { + background:#fafafa url(images/titleBar.png) repeat-x bottom left; + border-top: 1px solid #bfbfbf; + padding: 4px 4px 4px 8px; +} +.tundra .dijitAccordionTitleHover { + background: #f8fafd url(images/accordionItemHover.gif) bottom repeat-x; +} +.tundra .dijitAccordionTitleSelected { + background: #f9f9f9 url(images/accordionItemActive.gif) bottom repeat-x; + font-weight: bold; + border-top: 1px solid #aaaaaa; + border-bottom: 1px solid #bfbfbf; + padding: 4px 4px 4px 8px; +} +.tundra .dijitSplitContainerSizerH { + background:url(images/splitContainerSizerV.png) repeat-y #fff; + border:0; + border-left:1px solid #bfbfbf; + border-right:1px solid #bfbfbf; + width:7px; +} +.tundra .dijitSplitContainerSizerH .thumb { + background:url(images/splitContainerSizerV-thumb.png) no-repeat #ccc; + left:1px; + width:3px; + height:19px; + overflow: hidden; +} +.tundra .dijitSplitContainerSizerV { + background:url(images/splitContainerSizerH.png) repeat-x #fff; + border:0; + border-top:1px solid #bfbfbf; + border-bottom:1px solid #bfbfbf; + height:7px; +} +.tundra .dijitSplitContainerSizerV .thumb { + background:url(images/splitContainerSizerH-thumb.png) no-repeat #ccc; + top:1px; + width:19px; + height:3px; + overflow: hidden; +} +.tundra .dijitBorderContainer { + background-color: #fcfcfc; + padding: 5px; +} +.tundra .dijitSplitContainer-child, +.tundra .dijitBorderContainer-child { + + border: 1px #ccc solid; +} +.tundra .dijitBorderContainer-dijitTabContainerTop, +.tundra .dijitBorderContainer-dijitTabContainerBottom, +.tundra .dijitBorderContainer-dijitTabContainerLeft, +.tundra .dijitBorderContainer-dijitTabContainerRight { + + border: none; +} +.tundra .dijitBorderContainer-dijitBorderContainer { + + border: none; + padding: 0px; +} +.tundra .dijitSplitterH, +.tundra .dijitGutterH { + background:#fcfcfc; + border:0; + height:5px; +} +.tundra .dijitSplitterH .dijitSplitterThumb { + background:#B0B0B0 none; + height:1px; + top:2px; + width:19px; +} +.tundra .dijitSplitterV, +.tundra .dijitGutterV { + background:#fcfcfc; + border:0; + width:5px; +} +.tundra .dijitSplitterV .dijitSplitterThumb { + background:#B0B0B0 none; + height:19px; + left:2px; + width:1px; +} +.tundra .dijitSplitterActive { + font-size: 1px; + background-image: none; + background-color: #aaa; + -moz-opacity: 0.6; + opacity: 0.6; + filter: Alpha(Opacity=60); + margin: 0; +} +.tundra .dijitInputContainer INPUT, +.tundra .dijitTextBox { + margin: 0em 0.1em; +} +.tundra .dijitTextArea { + padding: 3px; +} +.tundra .dijitTextBox { + + background:#fff url(images/validationInputBg.png) repeat-x top left; + #background:#fff url(images/validationInputBg.gif) repeat-x top left; + border:1px solid #b3b3b3; +} +.tundra .dijitComboBox .dijitButtonNode { + padding: 0 0.2em; +} +.tundra .dijitTextBox .dijitButtonNode { + + border-color: #9b9b9b; +} +.tundra .dijitTextBoxFocused { + + border-color:#406b9b; +} +.tundra .dijitTextBoxFocused .dijitButtonNode { + border-color:#366dba; +} +.tundra .dijitError { + background-color:#f9f7ba; + background-image:none; +} +.tundra .dijitErrorFocused { + background-color:#f9f999; + background-image:none; +} +.tundra .dijitValidationIcon { + + width: 16px; + background: transparent url(images/warning.png) no-repeat center center; +} +.tundra .dijitComboBoxHighlightMatch { + background-color:#a5beda; +} +.tundra .dijitFocusedLabel { + + outline: 1px dotted #666666; +} +.tundra .dijitButtonNode { + + border: 1px solid #c0c0c0; + border-bottom: 1px solid #9b9b9b; + padding: 0.1em 0.2em 0.2em 0.2em; + background: #fff url(images/buttonEnabled.png) repeat-x bottom left; +} +.tundra .dijitButtonText { + text-align: center; + padding: 0 0.3em; +} +.tundra .dijitDisabled .dijitButtonText { + color: #7F7F7F; +} +.tundra .dijitArrowButton { + color: #111; +} +.tundra .dijitComboButton .dijitDownArrowButton { + padding-right:4px; +} +.tundra .dijitTextBoxReadOnly, +.tundra .dijitTextBoxReadOnly .dijitButtonNode, +.tundra .dijitButtonDisabled .dijitButtonNode, +.tundra .dijitToggleButtonDisabled .dijitButtonNode, +.tundra .dijitDropDownButtonDisabled .dijitButtonNode, +.tundra .dijitComboButtonDisabled .dijitButtonNode, +.tundra .dijitTextBoxDisabled, +.tundra .dijitTextBoxDisabled .dijitButtonNode { + + border-color: #d5d5d5 #d5d5d5 #bdbdbd #d5d5d5; + background:#e4e4e4 url(images/buttonDisabled.png) top repeat-x; +} +.tundra .dijitButtonHover .dijitButtonNode, +.tundra .dijitButtonNodeHover, +.tundra .dijitToggleButtonHover .dijitButtonNode, +.tundra .dijitDropDownButtonHover .dijitButtonNode, +.tundra .dijitComboButton .dijitButtonContentsHover, +.tundra .dijitComboButton .dijitDownArrowButtonHover { + + + border-color: #a5beda; + border-bottom-color:#5c7590; + color:#243C5F; + background:#fcfdff url(images/buttonHover.png) repeat-x bottom; +} +.tundra .dijitDownArrowButtonHover, +.tundra .dijitUpArrowButtonHover { + + color:#243C5F; + background:#fcfdff url(images/buttonHover.png) repeat-x bottom; +} +.tundra .dijitUpArrowButtonActive, +.tundra .dijitDownArrowButtonActive, +.tundra .dijitButtonActive .dijitButtonNode, +.tundra .dijitToggleButtonActive .dijitButtonNode, +.tundra .dijitDropDownButtonActive .dijitButtonNode, +.tundra .dijitButtonContentsActive, +.tundra .dijitStackController .dijitToggleButtonChecked .dijitButtonNode { + + border-color:#366dba; + background: #ededed url(images/buttonActive.png) bottom repeat-x; +} +.tundra .dijitArrowButtonInner { + background:url(images/spriteArrows.png) no-repeat scroll 0px center; + width: 7px; + height: 7px; + margin: 0px 4px 0px 4px; +} +.tundra .dijitTextBox .dijitArrowButtonInner { + background-position: 0 center; +} +.dj_ie6 .tundra .dijitArrowButtonInner { + background-image:url(images/spriteArrows.gif); +} +.tundra .dijitLeftArrowButton .dijitArrowButtonInner { + background-position: -7px center; +} +.tundra .dijitRightArrowButton .dijitArrowButtonInner { + background-position: -14px center; +} +.tundra .dijitUpArrowButton .dijitArrowButtonInner { + background-position: -21px center; +} +.tundra .dijitDisabled .dijitArrowButtonInner { + background-position: -28px center; +} +.tundra .dijitDisabled .dijitLeftArrowButton .dijitArrowButtonInner { + background-position: -35px center; +} +.tundra .dijitDisabled .dijitRightArrowButton .dijitArrowButtonInner { + background-position: -42px center; +} +.tundra .dijitDisabled .dijitUpArrowButton .dijitArrowButtonInner { + background-position: -49px center; +} +.dj_webkit .tundra .dijitSpinner .dijitUpArrowButton .dijitArrowButtonInner { + margin-top: -1px; +} +.dj_ie .tundra .dijitSpinner .dijitDownArrowButton .dijitArrowButtonInner { + margin-top: -2px; +} +.dj_ie8 .tundra .dijitSpinner .dijitDownArrowButton .dijitArrowButtonInner { + margin-top: -1px; +} +.tundra .dijitSpinnerButtonContainer { + width: auto; + padding: 0; +} +.tundra .dijitSpinner .dijitArrowButton { + width: 15px; +} +.tundra .dijitSpinner .dijitSpinnerButtonInner { + width: 15px; +} +.tundra .dijitSpinner .dijitArrowButtonInner .dijitInputField { + padding: 0; +} +.tundra .dijitToggleButton .dijitCheckBoxIcon { + background-image: url(images/checkmarkNoBorder.png); +} +.dj_ie6 .tundra .dijitToggleButton .dijitCheckBoxIcon { + background-image: url(images/checkmarkNoBorder.gif); +} +.tundra .dijitCheckBox, +.tundra .dijitCheckBoxIcon { + background-image: url(images/checkmark.png); + background-repeat: no-repeat; + width: 16px; + height: 16px; + margin: 0 2px 0 0; + padding: 0; +} +.dj_ie6 .tundra .dijitCheckBox, +.dj_ie6 .tundra .dijitCheckBoxIcon { + background-image: url(images/checkmark.gif); +} +.tundra .dijitCheckBox, +.tundra .dijitToggleButton .dijitCheckBoxIcon { + + background-position: -16px; +} +.tundra .dijitCheckBoxChecked, +.tundra .dijitToggleButtonChecked .dijitCheckBoxIcon { + + background-position: 0px; +} +.tundra .dijitCheckBoxDisabled { + + background-position: -48px; +} +.tundra .dijitCheckBoxCheckedDisabled { + + background-position: -32px; +} +.tundra .dijitCheckBoxHover { + + background-position: -80px; +} +.tundra .dijitCheckBoxCheckedHover { + + background-position: -64px; +} +.tundra .dijitRadio, +.tundra .dijitRadioIcon { + background-image: url(images/checkmark.png); + background-repeat: no-repeat; + width: 16px; + height: 16px; + margin: 0; + padding: 0; +} +.dj_ie6 .tundra .dijitRadio, +.dj_ie6 .tundra .dijitRadioIcon { + background-image: url(images/checkmark.gif); +} +.tundra .dijitToggleButton .dijitRadioIcon { + + background-image: url(images/checkmarkNoBorder.png); +} +.dj_ie6 .tundra .dijitToggleButton .dijitRadioIcon { + background-image: url(images/checkmarkNoBorder.gif); +} +.tundra .dijitRadio, +.tundra .dijitRadioIcon { + + background-position: -112px; +} +.tundra .dijitRadioDisabled { + + background-position: -144px; +} +.tundra .dijitRadioHover { + + background-position: -176px; +} +.tundra .dijitRadioChecked, +.tundra .dijitRadioCheckedHover, +.tundra .dijitToggleButtonChecked .dijitRadioIcon { + + background-position: -96px; +} +.tundra .dijitRadioCheckedDisabled { + + background-position: -128px; +} +.tundra .dijitSliderProgressBarH { + border-color: #aab0bb; + background: #c0c2c5 url(images/sliderFull.png) repeat-x top left; +} +.tundra .dijitSliderProgressBarV { + border-color: #aab0bb; + background: #c0c2c5 url(images/sliderFullVertical.png) repeat-y bottom left; +} +.tundra .dijitSliderFocused .dijitSliderProgressBarH, +.tundra .dijitSliderFocused .dijitSliderLeftBumper { + background-image:url(images/sliderFullFocus.png); +} +.tundra .dijitSliderFocused .dijitSliderProgressBarV, +.tundra .dijitSliderFocused .dijitSliderBottomBumper { + background-image:url(images/sliderFullVerticalFocus.png); +} +.tundra .dijitSliderRemainingBarV { + border-color: #b4b4b4; + background: #dcdcdc url(images/sliderEmptyVertical.png) repeat-y bottom left; +} +.tundra .dijitSliderRemainingBarH { + border-color: #b4b4b4; + background: #dcdcdc url(images/sliderEmpty.png) repeat-x top left; +} +.tundra .dijitSliderBar { + border-style: solid; + outline:1px; +} +.tundra .dijitSliderFocused .dijitSliderBar { + border-color:#888; +} +.tundra .dijitSliderImageHandleH { + border:0px; + width:16px; + height:16px; + background:url(images/preciseSliderThumb.png) no-repeat center top; +} +.tundra .dijitSliderFocused .dijitSliderImageHandleH { + background-image:url(images/preciseSliderThumbFocus.png); + #background-image:url(images/preciseSliderThumbFocus.gif); +} +.dj_ie6 .tundra .dijitSliderImageHandleH { + background-image:url(images/preciseSliderThumb.gif); +} +.tundra .dijitSliderLeftBumper { + border-left-width: 1px; + border-color: #aab0bb; + background: #c0c2c5 url(images/sliderFull.png) repeat-x top left; +} +.tundra .dijitSliderRightBumper { + background: #dcdcdc url(images/sliderEmpty.png) repeat-x top left; + border-color: #b4b4b4; + border-right-width: 1px; +} +.tundra .dijitSliderImageHandleV { + border:0px; + width:16px; + height:16px; + background:url(images/sliderThumb.png) no-repeat center center; +} +.tundra .dijitSliderFocused .dijitSliderImageHandleV { + background-image:url(images/sliderThumbFocus.png); +} +.dj_ie6 .tundra .dijitSliderFocused .dijitSliderImageHandleV { + background-image:url(images/sliderThumbFocus.gif); +} +.tundra .dijitSliderBottomBumper { + border-bottom-width: 1px; + border-color: #aab0bb; + background: #c0c2c5 url(images/sliderFullVertical.png) repeat-y bottom left; +} +.tundra .dijitSliderTopBumper { + background: #dcdcdc url(images/sliderEmptyVertical.png) repeat-y top left; + border-color: #b4b4b4; + border-top-width: 1px; +} +.tundra .dijitSliderDecrementIconH, +.tundra .dijitSliderDecrementIconV, +.tundra .dijitSliderIncrementIconH, +.tundra .dijitSliderIncrementIconV { + background-image: url(images/spriteArrows.png); + background-repeat: no-repeat; + margin: 5px; + height: 7px; + width: 7px; + font-size: 1px; +} +.dj_ie6 .tundra .dijitSliderDecrementIconH, +.dj_ie6 .tundra .dijitSliderDecrementIconV, +.dj_ie6 .tundra .dijitSliderIncrementIconH, +.dj_ie6 .tundra .dijitSliderIncrementIconV { + background-image: url(images/spriteArrows.gif); +} +.tundra .dijitSliderDecrementIconH { + background-position: -7px 0px; +} +.tundra .dijitSliderIncrementIconH { + background-position: -14px 0px; +} +.tundra .dijitSliderDecrementIconV { + background-position: 0px 0px; +} +.tundra .dijitSliderIncrementIconV { + background-position: -21px 0px; +} +.tundra .dijitSliderButtonInner { + visibility:hidden; +} +.tundra .dijitSliderReadOnly *, +.tundra .dijitSliderDisabled * { + border-color: #d5d5d5 #bdbdbd #bdbdbd #d5d5d5; + color: #bdbdbd; +} +.tundra .dijitSliderReadOnly .dijitSliderDecrementIconH, +.tundra .dijitSliderDisabled .dijitSliderDecrementIconH { + background-position: -35px 0px; +} +.tundra .dijitSliderReadOnly .dijitSliderIncrementIconH, +.tundra .dijitSliderDisabled .dijitSliderIncrementIconH { + background-position: -42px 0px; +} +.tundra .dijitSliderReadOnly .dijitSliderDecrementIconV, +.tundra .dijitSliderDisabled .dijitSliderDecrementIconV { + background-position: -28px 0px; +} +.tundra .dijitSliderReadOnly .dijitSliderIncrementIconV, +.tundra .dijitSliderDisabled .dijitSliderIncrementIconV { + background-position: -49px 0px; +} +.tundra .dijitSelect .dijitButtonNode { + padding: 0px; +} +.tundra .dijitSelect .dijitButtonNode .dijitArrowButtonInner { + margin: 0px 4px 0px 5px; +} +.tundra .dijitSelect .dijitButtonContents { + padding-top: 1px; + background:#fff url(images/validationInputBg.png) repeat-x top left; + #background:#fff url(images/validationInputBg.gif) repeat-x top left; +} +.tundra .dijitSelectHover .dijitButtonContents, +.tundra .dijitSelectActive .dijitButtonContents, +.tundra .dijitSelectOpened .dijitButtonContents, +.tundra .dijitSelectDisabled .dijitButtonContents, +.tundra .dijitSelectReadOnly .dijitButtonContents{ + background: transparent none; +} +.dj_ie .tundra .dijitSelect .dijitButtonContents { + padding-top: 0px; +} +.tundra .dijitSelectDisabled .dijitButtonNode { + border-color: #d5d5d5 #bdbdbd #bdbdbd #d5d5d5; + background:#e4e4e4 url(images/buttonDisabled.png) top repeat-x; +} +.dj_ie .tundra .dijitSelectDisabled .dijitButtonNode * { + filter: gray() alpha(opacity=50); +} +.tundra .dijitSelectHover .dijitButtonNode { + border-color:#a5beda; + border-bottom-color:#5c7590; + border-right-color:#5c7590; + color:#243C5F; + background:#fcfdff url(images/buttonHover.png) repeat-x bottom; +} +.tundra .dijitSelectActive .dijitButtonNode, +.tundra .dijitSelectOpened .dijitButtonNode { + border-color:#366dba; + background: #ededed url(images/buttonActive.png) bottom repeat-x; +} +.tundra .dijitSelectMenu td { + padding: 0em; +} +.tundra .dijitSelectMenu .dijitMenuItemLabel, +.tundra .dijitSelectMenu .dijitMenuArrowCell { + padding: 0.1em 0.2em; +} +.tundra .dijitTreeNode { + background-image : url(images/i.gif); + background-repeat : repeat-y; + zoom: 1; +} +.tundra .dijitTreeIsLast { + background: url(images/i_half.gif) no-repeat; +} +.tundra .dijitTreeIsRoot { + margin-left: 0; + background-image: none; +} +.tundra .dijitTreeExpando { + width: 18px; + height: 18px; +} +.tundra .dijitTreeRow { + + padding-bottom: 2px; +} +.tundra .dijitTreeContent { + min-height: 18px; + min-width: 18px; +} +.tundra .dijitTreeRowSelected .dijitTreeLabel { + background:#e2ebfe; +} +.tundra .dijitTreeRowHover { + + background-image: url(images/treeHover.png); + background-repeat: repeat; + background-color: transparent !important; +} +.tundra .dijitTreeExpandoOpened { + background-image: url(images/treeExpand_minus.gif); +} +.tundra .dijitTreeExpandoClosed { + background-image: url(images/treeExpand_plus.gif); +} +.tundra .dijitTreeExpandoLeaf { + background-image: url(images/treeExpand_leaf.gif); +} +.tundra .dijitTreeExpandoLoading { + background-image: url(images/treeExpand_loading.gif); +} +.tundra .dijitTreeIcon { + width: 16px; + height: 16px; +} +.tundra .dijitFolderOpened { + background: url(images/folderOpened.gif) no-repeat; +} +.tundra .dijitFolderClosed { + background: url(images/folderClosed.gif) no-repeat; +} +.tundra .dijitLeaf { + background: url(images/leaf.gif) no-repeat; +} +.tundra .dijitTreeNode .dojoDndItemBefore, +.tundra .dijitTreeNode .dojoDndItemAfter { + border-bottom: none; + border-top: none; +} +.tundra .dijitTreeNode .dojoDndItemBefore .dijitTreeContent { + + border-top: 2px solid #369; +} +.tundra .dijitTreeNode .dojoDndItemAfter .dijitTreeContent { + + border-bottom: 2px solid #369; +} +.tundra .dijitProgressBar { + margin:2px 0px 2px 0px; +} +.tundra .dijitProgressBarEmpty { + + background:#fff url(images/progressBarEmpty.png) repeat-x center center; + border-color: #a2a2a2 #b8b8b8 #b8b8b8 #a2a2a2; +} +.tundra .dijitProgressBarTile { + + background:#f0f0f0 url(images/progressBarFull.png) repeat-x center center; +} +.tundra .dijitProgressBarFull { + border-right:1px solid #b8b8b8; +} +.tundra .dijitProgressBarLabel { + + color:#293a4b; +} +.tundra .dijitProgressBarIndeterminate .dijitProgressBarTile { + + background:#cad2de url(images/progressBarAnim.gif) repeat-x center center; +} +.tundra .dijitTitlePaneTitle { + background: #cccccc; + background:#fff url(images/titleBar.png) repeat-x bottom left; + border:1px solid #bfbfbf; + padding:3px 4px; +} +.tundra .dijitTitlePaneTitleHover { + background: #f8fafd url(images/accordionItemHover.gif) bottom repeat-x; +} +.tundra .dijitTitlePane .dijitArrowNode { + background-image: url(images/spriteArrows.png); + background-repeat: no-repeat; + background-position: 0px 0px; + height: 7px; + width: 7px; +} +.dj_ie6 .tundra .dijitTitlePane .dijitArrowNode { + background-image: url(images/spriteArrows.gif); +} +.tundra .dijitTitlePane .dijitClosed .dijitArrowNode { + background-position: -14px 0px; +} +.tundra .dijitTitlePaneContentOuter { + background: #ffffff; + border:1px solid #bfbfbf; + border-top: 0px; +} +.tundra .dijitTitlePaneContentInner { + padding:10px; +} +.tundra .dijitTitlePaneTextNode { + margin-left: 4px; + margin-right: 4px; +} +.tundra .dijitCalendarIncrementControl { + + width:15px; + height:15px; + background-image: url(images/spriteRoundedIconsSmall.png); + background-repeat: no-repeat +} +.dj_ie6 .tundra .dijitCalendarIncrementControl { + font-size:.1em; + background-image: url(images/spriteRoundedIconsSmall.gif); +} +.tundra .dijitA11ySideArrow { + display: none; +} +.tundra .dijitCalendarDecrease { + background-position: top left; +} +.tundra .dijitCalendarIncrease { + background-position: -30px top; +} +.tundra .dijitCalendarContainer { + font-size: 100%; + border-spacing: 0; + border-collapse: separate; + border: 1px solid #ccc; + margin: 0; +} +.tundra .dijitCalendarMonthContainer th { + + background:#d3d3d3 url(images/titleBar.png) repeat-x top; + padding-top:.3em; + padding-bottom:.2em; + text-align:center; +} +.dj_ie6 .tundra .dijitCalendarMonthContainer th { + padding-top:.2em; + padding-bottom:.1em; +} +.tundra .dijitCalendarDayLabelTemplate { + + background:white url(images/calendarDayLabel.png) repeat-x bottom; + font-weight:normal; + padding-top:.15em; + padding-bottom:0em; + border-top: 1px solid #eeeeee; + color:#293a4b; + text-align:center; +} +.tundra .dijitCalendarBodyContainer { + border-bottom: 1px solid #eeeeee; +} +.tundra .dijitCalendarMonthLabel { + color:#293a4b; + font-weight: bold; +} +.tundra .dijitCalendarDateTemplate { + + font-size: 0.9em; + font-weight: bold; + text-align: center; + padding: 0.3em 0.3em 0.05em 0.3em; + letter-spacing: 1px; +} +.dj_ie .tundra .dijitCalendarDateTemplate { + padding: 0.1em .33em 0.02em .33em; +} +.tundra .dijitCalendarPreviousMonth, +.tundra .dijitCalendarNextMonth { + + color:#999999; + background-color:#f8f8f8; +} +.tundra .dijitCalendarCurrentMonth { + + background-color: white; +} +.tundra .dijitCalendarCurrentDate { + + text-decoration:underline; + font-weight:bold; +} +.tundra .dijitCalendarHoveredDate { + background-color: #e2ebf2; +} +.tundra .dijitCalendarDisabledDate { + text-decoration: line-through; + background-color: white; +} +.tundra .dijitCalendarSelectedDate { + + background-color:#bbc4d0 !important; + color:black !important; +} +.tundra .dijitCalendarYearContainer { + + background:white url(images/calendarYearLabel.png) repeat-x bottom; + border-top:1px solid #ccc; +} +.tundra .dijitCalendarYearLabel { + + margin:0; + padding:0.4em 0 0.25em 0; + text-align:center; +} +.tundra .dijitCalendarSelectedYear { + + color:black; + padding:0.2em; + padding-bottom:0.1em; + background-color:#bbc4d0 !important; +} +.tundra .dijitCalendarNextYear, +.tundra .dijitCalendarPreviousYear { + + color:black !important; + font-weight:normal; +} +.tundra .dijitTimePickerTick, +.tundra .dijitTimePickerMarker { + border-color: #ccc; +} +.tundra .dijitTimePickerTick { + color:white; +} +.tundra .dijitTimePickerMarker { + background:#d3d3d3 url(images/titleBar.png) repeat-x top; + color:#293a4b; + font-weight: bold; +} +.tundra .dijitTimePickerItemSelected { + color: black; + background: #bbc4d0 none; +} +.tundra .dijitTimePickerItemHover { + background: #60a1ea none; + color:white; +} +.tundra .dijitTimePickerItemHover, +.tundra .dijitTimePickerItemSelected { + position: relative; + z-index: 10; +} +.tundra .dijitTimePickerTick .dijitTimePickerItemInner { + font-size:0.4em; +} +.tundra .dijitTimePickerItemHover .dijitTimePickerItemInner, +.tundra .dijitTimePickerItemSelected .dijitTimePickerItemInner { + font-size:1em; +} +.tundra .dijitTimePickerMarkerHover { + border-top: 1px solid #ccc; +} +.tundra .dijitTimePickerTickHover, +.tundra .dijitTimePickerTickSelected { + margin-top:-0.3em; + margin-bottom:-0.3em; + border-bottom: none; +} +.tundra .dijitToolbar { + border-bottom: 1px solid #ccc; + background:#eaeaea url(images/titleBar.png) repeat-x top left; +} +.dj_ie6 .tundra .dijitToolbar { + height: 10px; +} +.tundra .dijitToolbar .dijitButtonNode, +.tundra .dijitToolbar .dijitComboButton .dijitButtonContents, +.tundra .dijitToolbar .dijitComboButton .dijitDownArrowButton { + background: none; + margin: 0px; + padding: 0px; + border: none; + font-size: 12px; +} +.tundra .dijitToolbar .dijitButton, +.tundra .dijitToolbar .dijitToggleButton, +.tundra .dijitToolbar .dijitDropDownButton, +.tundra .dijitToolbar .dijitComboButton .dijitButtonContents, +.tundra .dijitToolbar .dijitComboButton .dijitDownArrowButton { + background: none; + padding: 1px; +} +.tundra .dijitToolbar .dijitButtonChecked, +.tundra .dijitToolbar .dijitToggleButtonChecked { + background-color:#d4dff2; + border:1px solid #316ac5; + padding: 0px; +} +.tundra .dijitToolbar .dijitButtonCheckedHover, +.tundra .dijitToolbar .dijitToggleButtonCheckedHover + { + background-color:#abc1e5; + border:1px solid #316ac5; + padding: 0px; +} +.tundra .dijitToolbar .dijitButtonHover, +.tundra .dijitToolbar .dijitToggleButtonHover, +.tundra .dijitToolbar .dijitDropDownButtonHover, +.tundra .dijitToolbar .dijitComboButton .dijitButtonContentsHover, +.tundra .dijitToolbar .dijitComboButton .dijitDownArrowButtonHover { + + border: 1px solid #869cbf; + padding: 0px; + background-color:#e1e5f0; +} +.tundra .dijitToolbar label { + padding: 3px 3px 0 6px; +} +.dj_ie .tundra .dijitToolbar .dijitComboButton .dijitButtonContentsFocused, +.dj_ie .tundra .dijitToolbar .dijitComboButton .dijitDownArrowButtonFocused { + + border: 1px #555 dotted !important; + padding: 0px; +} +.tundra .dijitToolbarSeparator { + + background: url(../../icons/images/editorIconsEnabled.png); +} +.tundra .dijitToolbarRtl .dijitToolbarSeparator { + + background-image: url(../../icons/images/editorIconsDisabled.png); +} +.tundra .dijitDialog { + background: #fff; + border: 1px solid #7eabcd; + padding: 0px; + -webkit-box-shadow: 0px 5px 10px #adadad; +} +.tundra .dijitDialogPaneContent { + background: #fff; + border-top: 1px solid #d3d3d3; + padding:10px; +} +.tundra .dijitDialogTitleBar { + + background: #fafafa url(images/titleBar.png) repeat-x top left; + padding: 5px 6px 3px 6px; + outline:0; +} +.tundra .dijitDialogTitle { + + font-weight: bold; + padding: 0px 4px; +} +.tundra .dijitDialogCloseIcon { + + + background: url(images/tabClose.png) no-repeat right top; + position: absolute; + vertical-align: middle; + right: 6px; + top: 4px; + height: 15px; + width: 15px; +} +.dj_ie6 .tundra .dijitDialogCloseIcon { + background : url(images/tabClose.gif) no-repeat right top; +} +.tundra .dijitDialogCloseIconHover { + background: url(images/tabCloseHover.png) no-repeat right top; +} +.dj_ie6 .tundra .dijitDialogCloseIconHover { + background : url(images/tabCloseHover.gif) no-repeat right top; +} +.tundra .dijitTooltip, +.tundra .dijitTooltipDialog { + + background: transparent; +} +.dijitTooltipBelow { + + padding-top: 13px; +} +.dijitTooltipAbove { + + padding-bottom: 13px; +} +.tundra .dijitTooltipContainer { + + background: #ffffff url(images/popupMenuBg.gif) repeat-x bottom left; + border: 1px solid #7eabcd; + padding: 0.45em; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; +} +.tundra .dijitTooltipConnector { + + border:0px; + z-index: 2; +} +.tundra .dijitTooltipABRight .dijitTooltipConnector { + + left: auto !important; + right: 3px; +} +.tundra .dijitTooltipBelow .dijitTooltipConnector { + + top: 0px; + left: 3px; + background:url(images/tooltipConnectorUp.png) no-repeat top left; + width:16px; + height:14px; +} +.dj_ie .tundra .dijitTooltipBelow .dijitTooltipConnector { + + background-image: url(images/tooltipConnectorUp.gif); +} +.tundra .dijitTooltipAbove .dijitTooltipConnector { + + bottom: 0px; + left: 3px; + background:url(images/tooltipConnectorDown.png) no-repeat top left; + width:16px; + height:14px; +} +.dj_ie .tundra .dijitTooltipAbove .dijitTooltipConnector { + background-image: url(images/tooltipConnectorDown.gif); +} +.dj_ie6 .tundra .dijitTooltipAbove .dijitTooltipConnector { + bottom: -3px; +} +.tundra .dijitTooltipLeft { + padding-right: 14px; +} +.dj_ie6 .tundra .dijitTooltipLeft { + padding-left: 15px; +} +.tundra .dijitTooltipLeft .dijitTooltipConnector { + + right: 0px; + bottom: 3px; + background:url(images/tooltipConnectorRight.png) no-repeat top left; + width:16px; + height:14px; +} +.dj_ie .tundra .dijitTooltipLeft .dijitTooltipConnector { + background-image: url(images/tooltipConnectorRight.gif); +} +.tundra .dijitTooltipRight { + padding-left: 14px; +} +.tundra .dijitTooltipRight .dijitTooltipConnector { + + left: 0px; + bottom: 3px; + background:url(images/tooltipConnectorLeft.png) no-repeat top left; + width:16px; + height:14px; +} +.dj_ie .tundra .dijitTooltipRight .dijitTooltipConnector { + background-image: url(images/tooltipConnectorLeft.gif); +} +.dj_webkit .tundra .dijitTooltipContainer { + -webkit-box-shadow: 0px 5px 10px #adadad; +} +.tundra .dijitMenu, +.tundra .dijitMenuBar { + border: 1px solid #7eabcd; + margin: 0px; + padding: 0px; + background-color: #f7f7f7; +} +.tundra .dijitBorderContainer .dijitMenuBar { + border:1px solid #ccc; +} +.tundra .dijitMenuItem { + font-family: sans-serif; + margin: 0; +} +.tundra .dijitMenuItem { + padding: 4px 5px; +} +.tundra .dijitMenuPreviousButton, .tundra .dijitMenuNextButton { + font-style: italic; +} +.tundra .dijitMenuItem td { + padding: 2px; +} +.tundra .dijitMenuPassive .dijitMenuItemHover, +.tundra .dijitMenuItemSelected { + background-color: #3559ac; + color:#fff; +} +.tundra .dijitMenuItemIcon { + width: 16px; + height: 16px; +} +.tundra .dijitMenuExpand { + + width: 7px; + height: 7px; + background-image: url(images/spriteArrows.png); + background-position: -14px 0px; +} +.dj_ie6 .tundra .dijitMenuExpand { + background-image: url(images/spriteArrows.gif); +} +.tundra .dijitMenuSeparatorTop { + border-bottom: 1px solid #9b9b9b; +} +.tundra .dijitMenuSeparatorBottom { + border-top: 1px solid #e8e8e8; +} +.tundra .dijitCheckedMenuItemIconChar { + display: none; +} +.tundra .dijitCheckedMenuItemIcon { + background-image: url(images/checkmark.png); + background-position: -80px; +} +.dj_ie6 .tundra .dijitCheckedMenuItemIcon { + background-image: url(images/checkmark.gif); +} +.tundra .dijitCheckedMenuItemChecked .dijitCheckedMenuItemIcon { + background-position: -64px; +} +.dijitEditor { + border:1px solid #bfbfbf; + border-top:0; +} +.tundra .dijitEditorIcon { + background-image: url(../../icons/images/editorIconsEnabled.png); + background-repeat: no-repeat; + width: 18px; + height: 18px; + text-align: center; +} +.tundra .dijitDisabled .dijitEditorIcon { + background-image: url(../../icons/images/editorIconsDisabled.png); +} +.dijitEditorIcon { + background-image: url(../../icons/images/editorIconsEnabled.png); + background-repeat: no-repeat; + width: 18px; + height: 18px; + text-align: center; +} +.dijitDisabled .dijitEditorIcon { + background-image: url(../../icons/images/editorIconsDisabled.png); +} +.dijitEditorIconSep { background-position: 0px; } +.dijitEditorIconSave { background-position: -18px; } +.dijitEditorIconPrint { background-position: -36px; } +.dijitEditorIconCut { background-position: -54px; } +.dijitEditorIconCopy { background-position: -72px; } +.dijitEditorIconPaste { background-position: -90px; } +.dijitEditorIconDelete { background-position: -108px; } +.dijitEditorIconCancel { background-position: -126px; } +.dijitEditorIconUndo { background-position: -144px; } +.dijitEditorIconRedo { background-position: -162px; } +.dijitEditorIconSelectAll { background-position: -180px; } +.dijitEditorIconBold { background-position: -198px; } +.dijitEditorIconItalic { background-position: -216px; } +.dijitEditorIconUnderline { background-position: -234px; } +.dijitEditorIconStrikethrough { background-position: -252px; } +.dijitEditorIconSuperscript { background-position: -270px; } +.dijitEditorIconSubscript { background-position: -288px; } +.dijitEditorIconJustifyCenter { background-position: -306px; } +.dijitEditorIconJustifyFull { background-position: -324px; } +.dijitEditorIconJustifyLeft { background-position: -342px; } +.dijitEditorIconJustifyRight { background-position: -360px; } +.dijitEditorIconIndent { background-position: -378px; } +.dijitEditorIconOutdent { background-position: -396px; } +.dijitEditorIconListBulletIndent { background-position: -414px; } +.dijitEditorIconListBulletOutdent { background-position: -432px; } +.dijitEditorIconListNumIndent { background-position: -450px; } +.dijitEditorIconListNumOutdent { background-position: -468px; } +.dijitEditorIconTabIndent { background-position: -486px; } +.dijitEditorIconLeftToRight { background-position: -504px; } +.dijitEditorIconRightToLeft, .dijitEditorIconToggleDir { background-position: -522px; } +.dijitEditorIconBackColor { background-position: -540px; } +.dijitEditorIconForeColor { background-position: -558px; } +.dijitEditorIconHiliteColor { background-position: -576px; } +.dijitEditorIconNewPage { background-position: -594px; } +.dijitEditorIconInsertImage { background-position: -612px; } +.dijitEditorIconInsertTable { background-position: -630px; } +.dijitEditorIconSpace { background-position: -648px; } +.dijitEditorIconInsertHorizontalRule { background-position: -666px; } +.dijitEditorIconInsertOrderedList { background-position: -684px; } +.dijitEditorIconInsertUnorderedList { background-position: -702px; } +.dijitEditorIconCreateLink { background-position: -720px; } +.dijitEditorIconUnlink { background-position: -738px; } +.dijitEditorIconViewSource { background-position: -756px; } +.dijitEditorIconRemoveFormat { background-position: -774px; } +.dijitEditorIconFullScreen { background-position: -792px; } +.dijitEditorIconWikiword { background-position: -810px; } + +.dijitColorPalette { + border:1px solid #7eabcd; + background:#fff; + -moz-border-radius: 0px !important; +} +.dijitRtl .dijitPlaceHolder { + left: auto; + right: 0; +} +.dijitMenuItemRtl { + text-align: right; +} +.dj_iequirks .dijitComboButtonRtl BUTTON { + + float:left; +} +.dijit_a11y .dijitTextBoxRtl .dijitValidationContainer, +.dijitTextBoxRtl .dijitSpinnerButtonContainer, +.dijitComboBoxRtl .dijitArrowButtonContainer { + + border-right-width: 1px !important; + border-right-style: solid !important; + border-left-width: 0px !important; + border-left-style: none !important; +} +.dijit_a11y .dijitTextBoxRtl .dijitValidationContainer, +.dijit_a11y .dijitTextBoxRtl .dijitSpinnerButtonContainer, +.dijit_a11y .dijitComboBoxRtl .dijitArrowButtonContainer { + border-right: 1px solid black !important; + border-left: 0px none black !important; +} +.dijitSpinnerRtl .dijitSpinnerButtonContainer .dijitArrowButton { + right: 0; + left: auto; +} +.dijitTextBoxRtl .dijitSpinnerButtonContainer, +.dijitTextBoxRtl .dijitValidationContainer, +.dijitTextBoxRtl .dijitArrowButtonContainer { + float: left; +} +.dijitCalendarRtl .dijitCalendarNextYear { + margin:0 0.55em 0 0; +} +.dijitCalendarRtl .dijitCalendarPreviousYear { + margin:0 0 0 0.55em; +} +.dijitSliderRtl .dijitSliderImageHandleV { + left:auto; +} +.dijitSliderRtl .dijitSliderImageHandleH { + left:-50%; +} +.dijitSliderRtl .dijitSliderMoveableH { + right:auto; + left:0; +} +.dijitSliderRtl .dijitRuleContainerV { + float:right; +} +.dj_ie .dijitSliderRtl .dijitRuleContainerV { + text-align:right; +} +.dj_ie .dijitSliderRtl .dijitRuleLabelV { + text-align:left; +} +.dj_ie .dijitSliderRtl .dijitRuleLabelH { + zoom:1; +} +.dijitSliderRtl .dijitSliderProgressBarH { + + float:right; + right:0; + left:auto; +} +.dijitRtl .dijitContentPaneLoading, .dijitRtl .dijitContentPaneError { + background-position:right; + padding-right:25px; +} +.dijitTabRtl .dijitTabCloseButton { + margin-left: 0px; + margin-right: 1em; +} +.dj_ie .dijitTimePickerRtl .dijitTimePickerItem { + width:100%; +} +.dijitColorPaletteRtl .dijitColorPaletteUnder { + + left: auto; + right: 0; +} +.dijitSelectRtl .dijitButtonContents { + text-align: right; +} +.tundra .dijitCalendarRtl .dijitCalendarDecrease { + background-position: -30px top; +} +.tundra .dijitCalendarRtl .dijitCalendarIncrease { + background-position: 0px top; +} + .dj_ie6 .tundra .dijitTimePickerRtl .dijitTimePickerMarkerHover, +.dj_ie7 .tundra .dijitTimePickerRtl .dijitTimePickerMarkerHover { + border-top: 0px; +} +.tundra .dijitDialogRtl .dijitDialogCloseIcon { + right: auto; + left: 5px; +} +.tundra .dijitEditorRtl .dijitEditorIcon { + background-image: url(../../icons/images/editorIconsEnabled_rtl.png); +} +.tundra .dijitEditorRtlDisabled .dijitEditorIcon { + background-image: url(../../icons/images/editorIconsDisabled_rtl.png); +} +.dijitEditorRtl .dijitEditorIcon { + background-image: url(../../icons/images/editorIconsEnabled_rtl.png); +} +.dijitEditorRtlDisabled .dijitEditorIcon { + background-image: url(../../icons/images/editorIconsDisabled_rtl.png); +} +.dijitToolbarRtl .dijitToolbarSeparator { + background-image: url(../../icons/images/editorIconsEnabled_rtl.png); +} +.tundra .dijitMenuItemRtl .dijitMenuExpand { + background-position: -7px 0px; +} +.tundra .dijitTreeNodeRtl, +.tundra .dijitTreeNodeRtl .dijitTreeExpandoLeaf { + + background-image: none; +} +.tundra .dijitTreeNodeRtl .dijitTreeExpandoOpened { + + background-image: url(images/treeExpand_minus_rtl.gif); +} +.tundra .dijitTreeNodeRtl .dijitTreeExpandoClosed { + background-image: url(images/treeExpand_plus_rtl.gif); +} +.tundra .dijitTitlePaneRtl .dijitClosed .dijitArrowNode { + background-position: -7px 0px; +} +.tundra .dijitTabRtl { + -moz-box-orient:horizontal; + text-align: right; +} +.tundra .dijitTabRtl .dijitTabInnerDiv { + padding:2px 9px 2px 8px; +} +.tundra .tabStrip-disabled .tabStripButtonRtl .dijitTabInnerDiv { + + padding-bottom: 3px; + padding-top: 1px; +} +.tundra .tabStripButtonRtl .dijitTabInnerDiv { + padding: 3px 2px 4px 2px; +} +.tundra .dijitTabPaneWrapper { + #zoom: 1; +} +.dj_ie-rtl .tundra .dijitTabContainerLeft-tabs { + margin-left: 1px !important; +} +.dj_ie-rtl .tundra .dijitTabContainerRight-tabs { + margin-right: 1px !important; +} +.tundra .dijitTabContainerLeft-tabs .dijitTabRtl, +.tundra .dijitTabContainerRight-tabs .dijitTabRtl { + margin-left:0px; +} +.dj_ie .tundra .dijitTabRtl .dijitTabInnerDiv { + + width : 0.1% !important; +} +.dj_iequirks-rtl .tundra .dijitTabContainerTopNone, +.dj_iequirks-rtl .tundra .dijitTabContainerBottomNone { + + border-left: 1px solid #fff; + border-right: 1px solid #fff; +} +.tundra .dijitSliderRtl .dijitSliderProgressBarH, +.tundra .dijitSliderRtl .dijitSliderRemainingBarH, +.tundra .dijitSliderRtl .dijitSliderLeftBumper, +.tundra .dijitSliderRtl .dijitSliderRightBumper, +.tundra .dijitSliderRtl .dijitSliderTopBumper { + background-position: top right; +} +.tundra .dijitSliderRtl .dijitSliderProgressBarV, +.tundra .dijitSliderRtl .dijitSliderRemainingBarV, +.tundra .dijitSliderRtl .dijitSliderBottomBumper { + background-position: bottom right; +} +.tundra .dijitSliderRtl .dijitSliderLeftBumper { + border-left-width: 0px; + border-right-width: 1px; +} +.tundra .dijitSliderRtl .dijitSliderRightBumper { + border-left-width: 1px; + border-right-width: 0px; +} +.tundra .dijitSliderRtl .dijitSliderIncrementIconH { + background-position: -7px 0px; +} +.tundra .dijitSliderRtl .dijitSliderDecrementIconH { + background-position: -14px 0px; +} diff --git a/lib/dijit/themes/tundra/tundra_rtl.css b/lib/dijit/themes/tundra/tundra_rtl.css new file mode 100644 index 000000000..0ec76debc --- /dev/null +++ b/lib/dijit/themes/tundra/tundra_rtl.css @@ -0,0 +1,200 @@ + +.dijitRtl .dijitPlaceHolder { + left: auto; + right: 0; +} +.dijitMenuItemRtl { + text-align: right; +} +.dj_iequirks .dijitComboButtonRtl BUTTON { + + float:left; +} +.dijit_a11y .dijitTextBoxRtl .dijitValidationContainer, +.dijitTextBoxRtl .dijitSpinnerButtonContainer, +.dijitComboBoxRtl .dijitArrowButtonContainer { + + border-right-width: 1px !important; + border-right-style: solid !important; + border-left-width: 0px !important; + border-left-style: none !important; +} +.dijit_a11y .dijitTextBoxRtl .dijitValidationContainer, +.dijit_a11y .dijitTextBoxRtl .dijitSpinnerButtonContainer, +.dijit_a11y .dijitComboBoxRtl .dijitArrowButtonContainer { + border-right: 1px solid black !important; + border-left: 0px none black !important; +} +.dijitSpinnerRtl .dijitSpinnerButtonContainer .dijitArrowButton { + right: 0; + left: auto; +} +.dijitTextBoxRtl .dijitSpinnerButtonContainer, +.dijitTextBoxRtl .dijitValidationContainer, +.dijitTextBoxRtl .dijitArrowButtonContainer { + float: left; +} +.dijitCalendarRtl .dijitCalendarNextYear { + margin:0 0.55em 0 0; +} +.dijitCalendarRtl .dijitCalendarPreviousYear { + margin:0 0 0 0.55em; +} +.dijitSliderRtl .dijitSliderImageHandleV { + left:auto; +} +.dijitSliderRtl .dijitSliderImageHandleH { + left:-50%; +} +.dijitSliderRtl .dijitSliderMoveableH { + right:auto; + left:0; +} +.dijitSliderRtl .dijitRuleContainerV { + float:right; +} +.dj_ie .dijitSliderRtl .dijitRuleContainerV { + text-align:right; +} +.dj_ie .dijitSliderRtl .dijitRuleLabelV { + text-align:left; +} +.dj_ie .dijitSliderRtl .dijitRuleLabelH { + zoom:1; +} +.dijitSliderRtl .dijitSliderProgressBarH { + + float:right; + right:0; + left:auto; +} +.dijitRtl .dijitContentPaneLoading, .dijitRtl .dijitContentPaneError { + background-position:right; + padding-right:25px; +} +.dijitTabRtl .dijitTabCloseButton { + margin-left: 0px; + margin-right: 1em; +} +.dj_ie .dijitTimePickerRtl .dijitTimePickerItem { + width:100%; +} +.dijitColorPaletteRtl .dijitColorPaletteUnder { + + left: auto; + right: 0; +} +.dijitSelectRtl .dijitButtonContents { + text-align: right; +} +.tundra .dijitCalendarRtl .dijitCalendarDecrease { + background-position: -30px top; +} +.tundra .dijitCalendarRtl .dijitCalendarIncrease { + background-position: 0px top; +} + .dj_ie6 .tundra .dijitTimePickerRtl .dijitTimePickerMarkerHover, +.dj_ie7 .tundra .dijitTimePickerRtl .dijitTimePickerMarkerHover { + border-top: 0px; +} +.tundra .dijitDialogRtl .dijitDialogCloseIcon { + right: auto; + left: 5px; +} +.tundra .dijitEditorRtl .dijitEditorIcon { + background-image: url(../../icons/images/editorIconsEnabled_rtl.png); +} +.tundra .dijitEditorRtlDisabled .dijitEditorIcon { + background-image: url(../../icons/images/editorIconsDisabled_rtl.png); +} +.dijitEditorRtl .dijitEditorIcon { + background-image: url(../../icons/images/editorIconsEnabled_rtl.png); +} +.dijitEditorRtlDisabled .dijitEditorIcon { + background-image: url(../../icons/images/editorIconsDisabled_rtl.png); +} +.dijitToolbarRtl .dijitToolbarSeparator { + background-image: url(../../icons/images/editorIconsEnabled_rtl.png); +} +.tundra .dijitMenuItemRtl .dijitMenuExpand { + background-position: -7px 0px; +} +.tundra .dijitTreeNodeRtl, +.tundra .dijitTreeNodeRtl .dijitTreeExpandoLeaf { + + background-image: none; +} +.tundra .dijitTreeNodeRtl .dijitTreeExpandoOpened { + + background-image: url(images/treeExpand_minus_rtl.gif); +} +.tundra .dijitTreeNodeRtl .dijitTreeExpandoClosed { + background-image: url(images/treeExpand_plus_rtl.gif); +} +.tundra .dijitTitlePaneRtl .dijitClosed .dijitArrowNode { + background-position: -7px 0px; +} +.tundra .dijitTabRtl { + -moz-box-orient:horizontal; + text-align: right; +} +.tundra .dijitTabRtl .dijitTabInnerDiv { + padding:2px 9px 2px 8px; +} +.tundra .tabStrip-disabled .tabStripButtonRtl .dijitTabInnerDiv { + + padding-bottom: 3px; + padding-top: 1px; +} +.tundra .tabStripButtonRtl .dijitTabInnerDiv { + padding: 3px 2px 4px 2px; +} +.tundra .dijitTabPaneWrapper { + #zoom: 1; +} +.dj_ie-rtl .tundra .dijitTabContainerLeft-tabs { + margin-left: 1px !important; +} +.dj_ie-rtl .tundra .dijitTabContainerRight-tabs { + margin-right: 1px !important; +} +.tundra .dijitTabContainerLeft-tabs .dijitTabRtl, +.tundra .dijitTabContainerRight-tabs .dijitTabRtl { + margin-left:0px; +} +.dj_ie .tundra .dijitTabRtl .dijitTabInnerDiv { + + width : 0.1% !important; +} +.dj_iequirks-rtl .tundra .dijitTabContainerTopNone, +.dj_iequirks-rtl .tundra .dijitTabContainerBottomNone { + + border-left: 1px solid #fff; + border-right: 1px solid #fff; +} +.tundra .dijitSliderRtl .dijitSliderProgressBarH, +.tundra .dijitSliderRtl .dijitSliderRemainingBarH, +.tundra .dijitSliderRtl .dijitSliderLeftBumper, +.tundra .dijitSliderRtl .dijitSliderRightBumper, +.tundra .dijitSliderRtl .dijitSliderTopBumper { + background-position: top right; +} +.tundra .dijitSliderRtl .dijitSliderProgressBarV, +.tundra .dijitSliderRtl .dijitSliderRemainingBarV, +.tundra .dijitSliderRtl .dijitSliderBottomBumper { + background-position: bottom right; +} +.tundra .dijitSliderRtl .dijitSliderLeftBumper { + border-left-width: 0px; + border-right-width: 1px; +} +.tundra .dijitSliderRtl .dijitSliderRightBumper { + border-left-width: 1px; + border-right-width: 0px; +} +.tundra .dijitSliderRtl .dijitSliderIncrementIconH { + background-position: -7px 0px; +} +.tundra .dijitSliderRtl .dijitSliderDecrementIconH { + background-position: -14px 0px; +} diff --git a/lib/dijit/tree/ForestStoreModel.js b/lib/dijit/tree/ForestStoreModel.js new file mode 100644 index 000000000..aa51b0023 --- /dev/null +++ b/lib/dijit/tree/ForestStoreModel.js @@ -0,0 +1,83 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.tree.ForestStoreModel"]){ +dojo._hasResource["dijit.tree.ForestStoreModel"]=true; +dojo.provide("dijit.tree.ForestStoreModel"); +dojo.require("dijit.tree.TreeStoreModel"); +dojo.declare("dijit.tree.ForestStoreModel",dijit.tree.TreeStoreModel,{rootId:"$root$",rootLabel:"ROOT",query:null,constructor:function(_1){ +this.root={store:this,root:true,id:_1.rootId,label:_1.rootLabel,children:_1.rootChildren}; +},mayHaveChildren:function(_2){ +return _2===this.root||this.inherited(arguments); +},getChildren:function(_3,_4,_5){ +if(_3===this.root){ +if(this.root.children){ +_4(this.root.children); +}else{ +this.store.fetch({query:this.query,onComplete:dojo.hitch(this,function(_6){ +this.root.children=_6; +_4(_6); +}),onError:_5}); +} +}else{ +this.inherited(arguments); +} +},isItem:function(_7){ +return (_7===this.root)?true:this.inherited(arguments); +},fetchItemByIdentity:function(_8){ +if(_8.identity==this.root.id){ +var _9=_8.scope?_8.scope:dojo.global; +if(_8.onItem){ +_8.onItem.call(_9,this.root); +} +}else{ +this.inherited(arguments); +} +},getIdentity:function(_a){ +return (_a===this.root)?this.root.id:this.inherited(arguments); +},getLabel:function(_b){ +return (_b===this.root)?this.root.label:this.inherited(arguments); +},newItem:function(_c,_d,_e){ +if(_d===this.root){ +this.onNewRootItem(_c); +return this.store.newItem(_c); +}else{ +return this.inherited(arguments); +} +},onNewRootItem:function(_f){ +},pasteItem:function(_10,_11,_12,_13,_14){ +if(_11===this.root){ +if(!_13){ +this.onLeaveRoot(_10); +} +} +dijit.tree.TreeStoreModel.prototype.pasteItem.call(this,_10,_11===this.root?null:_11,_12===this.root?null:_12,_13,_14); +if(_12===this.root){ +this.onAddToRoot(_10); +} +},onAddToRoot:function(_15){ +},onLeaveRoot:function(_16){ +},_requeryTop:function(){ +var _17=this.root.children||[]; +this.store.fetch({query:this.query,onComplete:dojo.hitch(this,function(_18){ +this.root.children=_18; +if(_17.length!=_18.length||dojo.some(_17,function(_19,idx){ +return _18[idx]!=_19; +})){ +this.onChildrenChange(this.root,_18); +} +})}); +},onNewItem:function(_1a,_1b){ +this._requeryTop(); +this.inherited(arguments); +},onDeleteItem:function(_1c){ +if(dojo.indexOf(this.root.children,_1c)!=-1){ +this._requeryTop(); +} +this.inherited(arguments); +}}); +} diff --git a/lib/dijit/tree/TreeStoreModel.js b/lib/dijit/tree/TreeStoreModel.js new file mode 100644 index 000000000..c03bef526 --- /dev/null +++ b/lib/dijit/tree/TreeStoreModel.js @@ -0,0 +1,145 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.tree.TreeStoreModel"]){ +dojo._hasResource["dijit.tree.TreeStoreModel"]=true; +dojo.provide("dijit.tree.TreeStoreModel"); +dojo.declare("dijit.tree.TreeStoreModel",null,{store:null,childrenAttrs:["children"],newItemIdAttr:"id",labelAttr:"",root:null,query:null,deferItemLoadingUntilExpand:false,constructor:function(_1){ +dojo.mixin(this,_1); +this.connects=[]; +var _2=this.store; +if(!_2.getFeatures()["dojo.data.api.Identity"]){ +throw new Error("dijit.Tree: store must support dojo.data.Identity"); +} +if(_2.getFeatures()["dojo.data.api.Notification"]){ +this.connects=this.connects.concat([dojo.connect(_2,"onNew",this,"onNewItem"),dojo.connect(_2,"onDelete",this,"onDeleteItem"),dojo.connect(_2,"onSet",this,"onSetItem")]); +} +},destroy:function(){ +dojo.forEach(this.connects,dojo.disconnect); +},getRoot:function(_3,_4){ +if(this.root){ +_3(this.root); +}else{ +this.store.fetch({query:this.query,onComplete:dojo.hitch(this,function(_5){ +if(_5.length!=1){ +throw new Error(this.declaredClass+": query "+dojo.toJson(this.query)+" returned "+_5.length+" items, but must return exactly one item"); +} +this.root=_5[0]; +_3(this.root); +}),onError:_4}); +} +},mayHaveChildren:function(_6){ +return dojo.some(this.childrenAttrs,function(_7){ +return this.store.hasAttribute(_6,_7); +},this); +},getChildren:function(_8,_9,_a){ +var _b=this.store; +if(!_b.isItemLoaded(_8)){ +var _c=dojo.hitch(this,arguments.callee); +_b.loadItem({item:_8,onItem:function(_d){ +_c(_d,_9,_a); +},onError:_a}); +return; +} +var _e=[]; +for(var i=0;i<this.childrenAttrs.length;i++){ +var _f=_b.getValues(_8,this.childrenAttrs[i]); +_e=_e.concat(_f); +} +var _10=0; +if(!this.deferItemLoadingUntilExpand){ +dojo.forEach(_e,function(_11){ +if(!_b.isItemLoaded(_11)){ +_10++; +} +}); +} +if(_10==0){ +_9(_e); +}else{ +dojo.forEach(_e,function(_12,idx){ +if(!_b.isItemLoaded(_12)){ +_b.loadItem({item:_12,onItem:function(_13){ +_e[idx]=_13; +if(--_10==0){ +_9(_e); +} +},onError:_a}); +} +}); +} +},isItem:function(_14){ +return this.store.isItem(_14); +},fetchItemByIdentity:function(_15){ +this.store.fetchItemByIdentity(_15); +},getIdentity:function(_16){ +return this.store.getIdentity(_16); +},getLabel:function(_17){ +if(this.labelAttr){ +return this.store.getValue(_17,this.labelAttr); +}else{ +return this.store.getLabel(_17); +} +},newItem:function(_18,_19,_1a){ +var _1b={parent:_19,attribute:this.childrenAttrs[0],insertIndex:_1a}; +if(this.newItemIdAttr&&_18[this.newItemIdAttr]){ +this.fetchItemByIdentity({identity:_18[this.newItemIdAttr],scope:this,onItem:function(_1c){ +if(_1c){ +this.pasteItem(_1c,null,_19,true,_1a); +}else{ +this.store.newItem(_18,_1b); +} +}}); +}else{ +this.store.newItem(_18,_1b); +} +},pasteItem:function(_1d,_1e,_1f,_20,_21){ +var _22=this.store,_23=this.childrenAttrs[0]; +if(_1e){ +dojo.forEach(this.childrenAttrs,function(_24){ +if(_22.containsValue(_1e,_24,_1d)){ +if(!_20){ +var _25=dojo.filter(_22.getValues(_1e,_24),function(x){ +return x!=_1d; +}); +_22.setValues(_1e,_24,_25); +} +_23=_24; +} +}); +} +if(_1f){ +if(typeof _21=="number"){ +var _26=_22.getValues(_1f,_23).slice(); +_26.splice(_21,0,_1d); +_22.setValues(_1f,_23,_26); +}else{ +_22.setValues(_1f,_23,_22.getValues(_1f,_23).concat(_1d)); +} +} +},onChange:function(_27){ +},onChildrenChange:function(_28,_29){ +},onDelete:function(_2a,_2b){ +},onNewItem:function(_2c,_2d){ +if(!_2d){ +return; +} +this.getChildren(_2d.item,dojo.hitch(this,function(_2e){ +this.onChildrenChange(_2d.item,_2e); +})); +},onDeleteItem:function(_2f){ +this.onDelete(_2f); +},onSetItem:function(_30,_31,_32,_33){ +if(dojo.indexOf(this.childrenAttrs,_31)!=-1){ +this.getChildren(_30,dojo.hitch(this,function(_34){ +this.onChildrenChange(_30,_34); +})); +}else{ +this.onChange(_30); +} +}}); +} diff --git a/lib/dijit/tree/_dndContainer.js b/lib/dijit/tree/_dndContainer.js new file mode 100644 index 000000000..e925283df --- /dev/null +++ b/lib/dijit/tree/_dndContainer.js @@ -0,0 +1,49 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.tree._dndContainer"]){ +dojo._hasResource["dijit.tree._dndContainer"]=true; +dojo.provide("dijit.tree._dndContainer"); +dojo.require("dojo.dnd.common"); +dojo.require("dojo.dnd.Container"); +dojo.declare("dijit.tree._dndContainer",null,{constructor:function(_1,_2){ +this.tree=_1; +this.node=_1.domNode; +dojo.mixin(this,_2); +this.map={}; +this.current=null; +this.containerState=""; +dojo.addClass(this.node,"dojoDndContainer"); +this.events=[dojo.connect(this.node,"onmouseenter",this,"onOverEvent"),dojo.connect(this.node,"onmouseleave",this,"onOutEvent"),dojo.connect(this.tree,"_onNodeMouseEnter",this,"onMouseOver"),dojo.connect(this.tree,"_onNodeMouseLeave",this,"onMouseOut"),dojo.connect(this.node,"ondragstart",dojo,"stopEvent"),dojo.connect(this.node,"onselectstart",dojo,"stopEvent")]; +},getItem:function(_3){ +var _4=this.selection[_3],_5={data:dijit.getEnclosingWidget(_4),type:["treeNode"]}; +return _5; +},destroy:function(){ +dojo.forEach(this.events,dojo.disconnect); +this.node=this.parent=null; +},onMouseOver:function(_6,_7){ +this.current=_6.rowNode; +this.currentWidget=_6; +},onMouseOut:function(_8,_9){ +this.current=null; +this.currentWidget=null; +},_changeState:function(_a,_b){ +var _c="dojoDnd"+_a; +var _d=_a.toLowerCase()+"State"; +dojo.removeClass(this.node,_c+this[_d]); +dojo.addClass(this.node,_c+_b); +this[_d]=_b; +},_addItemClass:function(_e,_f){ +dojo.addClass(_e,"dojoDndItem"+_f); +},_removeItemClass:function(_10,_11){ +dojo.removeClass(_10,"dojoDndItem"+_11); +},onOverEvent:function(){ +this._changeState("Container","Over"); +},onOutEvent:function(){ +this._changeState("Container",""); +}}); +} diff --git a/lib/dijit/tree/_dndSelector.js b/lib/dijit/tree/_dndSelector.js new file mode 100644 index 000000000..3d7795598 --- /dev/null +++ b/lib/dijit/tree/_dndSelector.js @@ -0,0 +1,125 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.tree._dndSelector"]){ +dojo._hasResource["dijit.tree._dndSelector"]=true; +dojo.provide("dijit.tree._dndSelector"); +dojo.require("dojo.dnd.common"); +dojo.require("dijit.tree._dndContainer"); +dojo.declare("dijit.tree._dndSelector",dijit.tree._dndContainer,{constructor:function(_1,_2){ +this.selection={}; +this.anchor=null; +this.simpleSelection=false; +this.events.push(dojo.connect(this.tree.domNode,"onmousedown",this,"onMouseDown"),dojo.connect(this.tree.domNode,"onmouseup",this,"onMouseUp"),dojo.connect(this.tree.domNode,"onmousemove",this,"onMouseMove")); +},singular:false,getSelectedNodes:function(){ +return this.selection; +},selectNone:function(){ +return this._removeSelection()._removeAnchor(); +},destroy:function(){ +this.inherited(arguments); +this.selection=this.anchor=null; +},onMouseDown:function(e){ +if(!this.current){ +return; +} +if(e.button==dojo.mouseButtons.RIGHT){ +return; +} +var _3=dijit.getEnclosingWidget(this.current),id=_3.id+"-dnd"; +if(!dojo.hasAttr(this.current,"id")){ +dojo.attr(this.current,"id",id); +} +if(!this.singular&&!dojo.isCopyKey(e)&&!e.shiftKey&&(this.current.id in this.selection)){ +this.simpleSelection=true; +dojo.stopEvent(e); +return; +} +if(this.singular){ +if(this.anchor==this.current){ +if(dojo.isCopyKey(e)){ +this.selectNone(); +} +}else{ +this.selectNone(); +this.anchor=this.current; +this._addItemClass(this.anchor,"Anchor"); +this.selection[this.current.id]=this.current; +} +}else{ +if(!this.singular&&e.shiftKey){ +if(dojo.isCopyKey(e)){ +}else{ +} +}else{ +if(dojo.isCopyKey(e)){ +if(this.anchor==this.current){ +delete this.selection[this.anchor.id]; +this._removeAnchor(); +}else{ +if(this.current.id in this.selection){ +this._removeItemClass(this.current,"Selected"); +delete this.selection[this.current.id]; +}else{ +if(this.anchor){ +this._removeItemClass(this.anchor,"Anchor"); +this._addItemClass(this.anchor,"Selected"); +} +this.anchor=this.current; +this._addItemClass(this.current,"Anchor"); +this.selection[this.current.id]=this.current; +} +} +}else{ +if(!(id in this.selection)){ +this.selectNone(); +this.anchor=this.current; +this._addItemClass(this.current,"Anchor"); +this.selection[id]=this.current; +} +} +} +} +dojo.stopEvent(e); +},onMouseUp:function(e){ +if(!this.simpleSelection){ +return; +} +this.simpleSelection=false; +this.selectNone(); +if(this.current){ +this.anchor=this.current; +this._addItemClass(this.anchor,"Anchor"); +this.selection[this.current.id]=this.current; +} +},onMouseMove:function(e){ +this.simpleSelection=false; +},_removeSelection:function(){ +var e=dojo.dnd._empty; +for(var i in this.selection){ +if(i in e){ +continue; +} +var _4=dojo.byId(i); +if(_4){ +this._removeItemClass(_4,"Selected"); +} +} +this.selection={}; +return this; +},_removeAnchor:function(){ +if(this.anchor){ +this._removeItemClass(this.anchor,"Anchor"); +this.anchor=null; +} +return this; +},forInSelectedItems:function(f,o){ +o=o||dojo.global; +for(var id in this.selection){ +f.call(o,this.getItem(id),id,this); +} +}}); +} diff --git a/lib/dijit/tree/dndSource.js b/lib/dijit/tree/dndSource.js new file mode 100644 index 000000000..ef129d9cb --- /dev/null +++ b/lib/dijit/tree/dndSource.js @@ -0,0 +1,240 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +if(!dojo._hasResource["dijit.tree.dndSource"]){ +dojo._hasResource["dijit.tree.dndSource"]=true; +dojo.provide("dijit.tree.dndSource"); +dojo.require("dijit.tree._dndSelector"); +dojo.require("dojo.dnd.Manager"); +dojo.declare("dijit.tree.dndSource",dijit.tree._dndSelector,{isSource:true,accept:["text","treeNode"],copyOnly:false,dragThreshold:5,betweenThreshold:0,constructor:function(_1,_2){ +if(!_2){ +_2={}; +} +dojo.mixin(this,_2); +this.isSource=typeof _2.isSource=="undefined"?true:_2.isSource; +var _3=_2.accept instanceof Array?_2.accept:["text","treeNode"]; +this.accept=null; +if(_3.length){ +this.accept={}; +for(var i=0;i<_3.length;++i){ +this.accept[_3[i]]=1; +} +} +this.isDragging=false; +this.mouseDown=false; +this.targetAnchor=null; +this.targetBox=null; +this.dropPosition=""; +this._lastX=0; +this._lastY=0; +this.sourceState=""; +if(this.isSource){ +dojo.addClass(this.node,"dojoDndSource"); +} +this.targetState=""; +if(this.accept){ +dojo.addClass(this.node,"dojoDndTarget"); +} +this.topics=[dojo.subscribe("/dnd/source/over",this,"onDndSourceOver"),dojo.subscribe("/dnd/start",this,"onDndStart"),dojo.subscribe("/dnd/drop",this,"onDndDrop"),dojo.subscribe("/dnd/cancel",this,"onDndCancel")]; +},checkAcceptance:function(_4,_5){ +return true; +},copyState:function(_6){ +return this.copyOnly||_6; +},destroy:function(){ +this.inherited("destroy",arguments); +dojo.forEach(this.topics,dojo.unsubscribe); +this.targetAnchor=null; +},_onDragMouse:function(e){ +var m=dojo.dnd.manager(),_7=this.targetAnchor,_8=this.current,_9=this.currentWidget,_a=this.dropPosition; +var _b="Over"; +if(_8&&this.betweenThreshold>0){ +if(!this.targetBox||_7!=_8){ +this.targetBox=dojo.position(_8,true); +} +if((e.pageY-this.targetBox.y)<=this.betweenThreshold){ +_b="Before"; +}else{ +if((e.pageY-this.targetBox.y)>=(this.targetBox.h-this.betweenThreshold)){ +_b="After"; +} +} +} +if(_8!=_7||_b!=_a){ +if(_7){ +this._removeItemClass(_7,_a); +} +if(_8){ +this._addItemClass(_8,_b); +} +if(!_8){ +m.canDrop(false); +}else{ +if(_9==this.tree.rootNode&&_b!="Over"){ +m.canDrop(false); +}else{ +if(m.source==this&&(_8.id in this.selection)){ +m.canDrop(false); +}else{ +if(this.checkItemAcceptance(_8,m.source,_b.toLowerCase())&&!this._isParentChildDrop(m.source,_8)){ +m.canDrop(true); +}else{ +m.canDrop(false); +} +} +} +} +this.targetAnchor=_8; +this.dropPosition=_b; +} +},onMouseMove:function(e){ +if(this.isDragging&&this.targetState=="Disabled"){ +return; +} +this.inherited(arguments); +var m=dojo.dnd.manager(); +if(this.isDragging){ +this._onDragMouse(e); +}else{ +if(this.mouseDown&&this.isSource&&(Math.abs(e.pageX-this._lastX)>=this.dragThreshold||Math.abs(e.pageY-this._lastY)>=this.dragThreshold)){ +var n=this.getSelectedNodes(); +var _c=[]; +for(var i in n){ +_c.push(n[i]); +} +if(_c.length){ +m.startDrag(this,_c,this.copyState(dojo.isCopyKey(e))); +} +} +} +},onMouseDown:function(e){ +this.mouseDown=true; +this.mouseButton=e.button; +this._lastX=e.pageX; +this._lastY=e.pageY; +this.inherited("onMouseDown",arguments); +},onMouseUp:function(e){ +if(this.mouseDown){ +this.mouseDown=false; +this.inherited("onMouseUp",arguments); +} +},onMouseOut:function(){ +this.inherited(arguments); +this._unmarkTargetAnchor(); +},checkItemAcceptance:function(_d,_e,_f){ +return true; +},onDndSourceOver:function(_10){ +if(this!=_10){ +this.mouseDown=false; +this._unmarkTargetAnchor(); +}else{ +if(this.isDragging){ +var m=dojo.dnd.manager(); +m.canDrop(false); +} +} +},onDndStart:function(_11,_12,_13){ +if(this.isSource){ +this._changeState("Source",this==_11?(_13?"Copied":"Moved"):""); +} +var _14=this.checkAcceptance(_11,_12); +this._changeState("Target",_14?"":"Disabled"); +if(this==_11){ +dojo.dnd.manager().overSource(this); +} +this.isDragging=true; +},itemCreator:function(_15,_16,_17){ +return dojo.map(_15,function(_18){ +return {"id":_18.id,"name":_18.textContent||_18.innerText||""}; +}); +},onDndDrop:function(_19,_1a,_1b){ +if(this.containerState=="Over"){ +var _1c=this.tree,_1d=_1c.model,_1e=this.targetAnchor,_1f=false; +this.isDragging=false; +var _20=dijit.getEnclosingWidget(_1e); +var _21; +var _22; +_21=(_20&&_20.item)||_1c.item; +if(this.dropPosition=="Before"||this.dropPosition=="After"){ +_21=(_20.getParent()&&_20.getParent().item)||_1c.item; +_22=_20.getIndexInParent(); +if(this.dropPosition=="After"){ +_22=_20.getIndexInParent()+1; +} +}else{ +_21=(_20&&_20.item)||_1c.item; +} +var _23; +dojo.forEach(_1a,function(_24,idx){ +var _25=_19.getItem(_24.id); +if(dojo.indexOf(_25.type,"treeNode")!=-1){ +var _26=_25.data,_27=_26.item,_28=_26.getParent().item; +} +if(_19==this){ +if(typeof _22=="number"){ +if(_21==_28&&_26.getIndexInParent()<_22){ +_22-=1; +} +} +_1d.pasteItem(_27,_28,_21,_1b,_22); +}else{ +if(_1d.isItem(_27)){ +_1d.pasteItem(_27,_28,_21,_1b,_22); +}else{ +if(!_23){ +_23=this.itemCreator(_1a,_1e,_19); +} +_1d.newItem(_23[idx],_21,_22); +} +} +},this); +this.tree._expandNode(_20); +} +this.onDndCancel(); +},onDndCancel:function(){ +this._unmarkTargetAnchor(); +this.isDragging=false; +this.mouseDown=false; +delete this.mouseButton; +this._changeState("Source",""); +this._changeState("Target",""); +},onOverEvent:function(){ +this.inherited(arguments); +dojo.dnd.manager().overSource(this); +},onOutEvent:function(){ +this._unmarkTargetAnchor(); +var m=dojo.dnd.manager(); +if(this.isDragging){ +m.canDrop(false); +} +m.outSource(this); +this.inherited(arguments); +},_isParentChildDrop:function(_29,_2a){ +if(!_29.tree||_29.tree!=this.tree){ +return false; +} +var _2b=_29.tree.domNode; +var ids={}; +for(var x in _29.selection){ +ids[_29.selection[x].parentNode.id]=true; +} +var _2c=_2a.parentNode; +while(_2c!=_2b&&(!_2c.id||!ids[_2c.id])){ +_2c=_2c.parentNode; +} +return _2c.id&&ids[_2c.id]; +},_unmarkTargetAnchor:function(){ +if(!this.targetAnchor){ +return; +} +this._removeItemClass(this.targetAnchor,this.dropPosition); +this.targetAnchor=null; +this.targetBox=null; +this.dropPosition=null; +},_markDndStatus:function(_2d){ +this._changeState("Source",_2d?"Copied":"Moved"); +}}); +} diff --git a/lib/dijit/tree/model.js b/lib/dijit/tree/model.js new file mode 100644 index 000000000..091d72fca --- /dev/null +++ b/lib/dijit/tree/model.js @@ -0,0 +1,20 @@ +/* + Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + + +dojo.declare("dijit.tree.model",null,{destroy:function(){ +},getRoot:function(_1){ +},mayHaveChildren:function(_2){ +},getChildren:function(_3,_4){ +},isItem:function(_5){ +},fetchItemByIdentity:function(_6){ +},getIdentity:function(_7){ +},getLabel:function(_8){ +},newItem:function(_9,_a,_b){ +},pasteItem:function(_c,_d,_e,_f){ +},onChange:function(_10){ +},onChildrenChange:function(_11,_12){ +}}); |