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/dojo | |
parent | 951906dcecb1d3c7bcf751976a03e0c196ca6db0 (diff) |
add dijit/dojo stuff; initial ui mockup
Diffstat (limited to 'lib/dojo')
243 files changed, 26938 insertions, 0 deletions
diff --git a/lib/dojo/AdapterRegistry.js b/lib/dojo/AdapterRegistry.js new file mode 100644 index 000000000..1939cfa98 --- /dev/null +++ b/lib/dojo/AdapterRegistry.js @@ -0,0 +1,39 @@ +/* + 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["dojo.AdapterRegistry"]){ +dojo._hasResource["dojo.AdapterRegistry"]=true; +dojo.provide("dojo.AdapterRegistry"); +dojo.AdapterRegistry=function(_1){ +this.pairs=[]; +this.returnWrappers=_1||false; +}; +dojo.extend(dojo.AdapterRegistry,{register:function(_2,_3,_4,_5,_6){ +this.pairs[((_6)?"unshift":"push")]([_2,_3,_4,_5]); +},match:function(){ +for(var i=0;i<this.pairs.length;i++){ +var _7=this.pairs[i]; +if(_7[1].apply(this,arguments)){ +if((_7[3])||(this.returnWrappers)){ +return _7[2]; +}else{ +return _7[2].apply(this,arguments); +} +} +} +throw new Error("No match found"); +},unregister:function(_8){ +for(var i=0;i<this.pairs.length;i++){ +var _9=this.pairs[i]; +if(_9[0]==_8){ +this.pairs.splice(i,1); +return true; +} +} +return false; +}}); +} diff --git a/lib/dojo/DeferredList.js b/lib/dojo/DeferredList.js new file mode 100644 index 000000000..6a1a1aae6 --- /dev/null +++ b/lib/dojo/DeferredList.js @@ -0,0 +1,58 @@ +/* + 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["dojo.DeferredList"]){ +dojo._hasResource["dojo.DeferredList"]=true; +dojo.provide("dojo.DeferredList"); +dojo.DeferredList=function(_1,_2,_3,_4,_5){ +var _6=[]; +dojo.Deferred.call(this); +var _7=this; +if(_1.length===0&&!_2){ +this.resolve([0,[]]); +} +var _8=0; +dojo.forEach(_1,function(_9,i){ +_9.then(function(_a){ +if(_2){ +_7.resolve([i,_a]); +}else{ +_b(true,_a); +} +},function(_c){ +if(_3){ +_7.reject(_c); +}else{ +_b(false,_c); +} +if(_4){ +return null; +} +throw _c; +}); +function _b(_d,_e){ +_6[i]=[_d,_e]; +_8++; +if(_8===_1.length){ +_7.resolve(_6); +} +}; +}); +}; +dojo.DeferredList.prototype=new dojo.Deferred(); +dojo.DeferredList.prototype.gatherResults=function(_f){ +var d=new dojo.DeferredList(_f,false,true,false); +d.addCallback(function(_10){ +var ret=[]; +dojo.forEach(_10,function(_11){ +ret.push(_11[1]); +}); +return ret; +}); +return d; +}; +} diff --git a/lib/dojo/LICENSE b/lib/dojo/LICENSE new file mode 100644 index 000000000..4c93ded6b --- /dev/null +++ b/lib/dojo/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/dojo/NodeList-fx.js b/lib/dojo/NodeList-fx.js new file mode 100644 index 000000000..f08fdcab4 --- /dev/null +++ b/lib/dojo/NodeList-fx.js @@ -0,0 +1,41 @@ +/* + 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["dojo.NodeList-fx"]){ +dojo._hasResource["dojo.NodeList-fx"]=true; +dojo.provide("dojo.NodeList-fx"); +dojo.require("dojo.fx"); +dojo.extend(dojo.NodeList,{_anim:function(_1,_2,_3){ +_3=_3||{}; +var a=dojo.fx.combine(this.map(function(_4){ +var _5={node:_4}; +dojo.mixin(_5,_3); +return _1[_2](_5); +})); +return _3.auto?a.play()&&this:a; +},wipeIn:function(_6){ +return this._anim(dojo.fx,"wipeIn",_6); +},wipeOut:function(_7){ +return this._anim(dojo.fx,"wipeOut",_7); +},slideTo:function(_8){ +return this._anim(dojo.fx,"slideTo",_8); +},fadeIn:function(_9){ +return this._anim(dojo,"fadeIn",_9); +},fadeOut:function(_a){ +return this._anim(dojo,"fadeOut",_a); +},animateProperty:function(_b){ +return this._anim(dojo,"animateProperty",_b); +},anim:function(_c,_d,_e,_f,_10){ +var _11=dojo.fx.combine(this.map(function(_12){ +return dojo.animateProperty({node:_12,properties:_c,duration:_d||350,easing:_e}); +})); +if(_f){ +dojo.connect(_11,"onEnd",_f); +} +return _11.play(_10||0); +}}); +} diff --git a/lib/dojo/NodeList-html.js b/lib/dojo/NodeList-html.js new file mode 100644 index 000000000..ccc6f10ae --- /dev/null +++ b/lib/dojo/NodeList-html.js @@ -0,0 +1,21 @@ +/* + 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["dojo.NodeList-html"]){ +dojo._hasResource["dojo.NodeList-html"]=true; +dojo.provide("dojo.NodeList-html"); +dojo.require("dojo.html"); +dojo.extend(dojo.NodeList,{html:function(_1,_2){ +var _3=new dojo.html._ContentSetter(_2||{}); +this.forEach(function(_4){ +_3.node=_4; +_3.set(_1); +_3.tearDown(); +}); +return this; +}}); +} diff --git a/lib/dojo/NodeList-manipulate.js b/lib/dojo/NodeList-manipulate.js new file mode 100644 index 000000000..b0b7498a6 --- /dev/null +++ b/lib/dojo/NodeList-manipulate.js @@ -0,0 +1,212 @@ +/* + 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["dojo.NodeList-manipulate"]){ +dojo._hasResource["dojo.NodeList-manipulate"]=true; +dojo.provide("dojo.NodeList-manipulate"); +(function(){ +function _1(_2){ +var _3="",ch=_2.childNodes; +for(var i=0,n;n=ch[i];i++){ +if(n.nodeType!=8){ +if(n.nodeType==1){ +_3+=_1(n); +}else{ +_3+=n.nodeValue; +} +} +} +return _3; +}; +function _4(_5){ +while(_5.childNodes[0]&&_5.childNodes[0].nodeType==1){ +_5=_5.childNodes[0]; +} +return _5; +}; +function _6(_7,_8){ +if(typeof _7=="string"){ +_7=dojo._toDom(_7,(_8&&_8.ownerDocument)); +if(_7.nodeType==11){ +_7=_7.childNodes[0]; +} +}else{ +if(_7.nodeType==1&&_7.parentNode){ +_7=_7.cloneNode(false); +} +} +return _7; +}; +dojo.extend(dojo.NodeList,{_placeMultiple:function(_9,_a){ +var _b=typeof _9=="string"||_9.nodeType?dojo.query(_9):_9; +var _c=[]; +for(var i=0;i<_b.length;i++){ +var _d=_b[i]; +var _e=this.length; +for(var j=_e-1,_f;_f=this[j];j--){ +if(i>0){ +_f=this._cloneNode(_f); +_c.unshift(_f); +} +if(j==_e-1){ +dojo.place(_f,_d,_a); +}else{ +_d.parentNode.insertBefore(_f,_d); +} +_d=_f; +} +} +if(_c.length){ +_c.unshift(0); +_c.unshift(this.length-1); +Array.prototype.splice.apply(this,_c); +} +return this; +},innerHTML:function(_10){ +if(arguments.length){ +return this.addContent(_10,"only"); +}else{ +return this[0].innerHTML; +} +},text:function(_11){ +if(arguments.length){ +for(var i=0,_12;_12=this[i];i++){ +if(_12.nodeType==1){ +dojo.empty(_12); +_12.appendChild(_12.ownerDocument.createTextNode(_11)); +} +} +return this; +}else{ +var _13=""; +for(i=0;_12=this[i];i++){ +_13+=_1(_12); +} +return _13; +} +},val:function(_14){ +if(arguments.length){ +var _15=dojo.isArray(_14); +for(var _16=0,_17;_17=this[_16];_16++){ +var _18=_17.nodeName.toUpperCase(); +var _19=_17.type; +var _1a=_15?_14[_16]:_14; +if(_18=="SELECT"){ +var _1b=_17.options; +for(var i=0;i<_1b.length;i++){ +var opt=_1b[i]; +if(_17.multiple){ +opt.selected=(dojo.indexOf(_14,opt.value)!=-1); +}else{ +opt.selected=(opt.value==_1a); +} +} +}else{ +if(_19=="checkbox"||_19=="radio"){ +_17.checked=(_17.value==_1a); +}else{ +_17.value=_1a; +} +} +} +return this; +}else{ +_17=this[0]; +if(!_17||_17.nodeType!=1){ +return undefined; +} +_14=_17.value||""; +if(_17.nodeName.toUpperCase()=="SELECT"&&_17.multiple){ +_14=[]; +_1b=_17.options; +for(i=0;i<_1b.length;i++){ +opt=_1b[i]; +if(opt.selected){ +_14.push(opt.value); +} +} +if(!_14.length){ +_14=null; +} +} +return _14; +} +},append:function(_1c){ +return this.addContent(_1c,"last"); +},appendTo:function(_1d){ +return this._placeMultiple(_1d,"last"); +},prepend:function(_1e){ +return this.addContent(_1e,"first"); +},prependTo:function(_1f){ +return this._placeMultiple(_1f,"first"); +},after:function(_20){ +return this.addContent(_20,"after"); +},insertAfter:function(_21){ +return this._placeMultiple(_21,"after"); +},before:function(_22){ +return this.addContent(_22,"before"); +},insertBefore:function(_23){ +return this._placeMultiple(_23,"before"); +},remove:dojo.NodeList.prototype.orphan,wrap:function(_24){ +if(this[0]){ +_24=_6(_24,this[0]); +for(var i=0,_25;_25=this[i];i++){ +var _26=this._cloneNode(_24); +if(_25.parentNode){ +_25.parentNode.replaceChild(_26,_25); +} +var _27=_4(_26); +_27.appendChild(_25); +} +} +return this; +},wrapAll:function(_28){ +if(this[0]){ +_28=_6(_28,this[0]); +this[0].parentNode.replaceChild(_28,this[0]); +var _29=_4(_28); +for(var i=0,_2a;_2a=this[i];i++){ +_29.appendChild(_2a); +} +} +return this; +},wrapInner:function(_2b){ +if(this[0]){ +_2b=_6(_2b,this[0]); +for(var i=0;i<this.length;i++){ +var _2c=this._cloneNode(_2b); +this._wrap(dojo._toArray(this[i].childNodes),null,this._NodeListCtor).wrapAll(_2c); +} +} +return this; +},replaceWith:function(_2d){ +_2d=this._normalize(_2d,this[0]); +for(var i=0,_2e;_2e=this[i];i++){ +this._place(_2d,_2e,"before",i>0); +_2e.parentNode.removeChild(_2e); +} +return this; +},replaceAll:function(_2f){ +var nl=dojo.query(_2f); +var _30=this._normalize(this,this[0]); +for(var i=0,_31;_31=nl[i];i++){ +this._place(_30,_31,"before",i>0); +_31.parentNode.removeChild(_31); +} +return this; +},clone:function(){ +var ary=[]; +for(var i=0;i<this.length;i++){ +ary.push(this._cloneNode(this[i])); +} +return this._wrap(ary,this,this._NodeListCtor); +}}); +if(!dojo.NodeList.prototype.html){ +dojo.NodeList.prototype.html=dojo.NodeList.prototype.innerHTML; +} +})(); +} diff --git a/lib/dojo/NodeList-traverse.js b/lib/dojo/NodeList-traverse.js new file mode 100644 index 000000000..4fda2e7ea --- /dev/null +++ b/lib/dojo/NodeList-traverse.js @@ -0,0 +1,131 @@ +/* + 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["dojo.NodeList-traverse"]){ +dojo._hasResource["dojo.NodeList-traverse"]=true; +dojo.provide("dojo.NodeList-traverse"); +dojo.extend(dojo.NodeList,{_buildArrayFromCallback:function(_1){ +var _2=[]; +for(var i=0;i<this.length;i++){ +var _3=_1.call(this[i],this[i],_2); +if(_3){ +_2=_2.concat(_3); +} +} +return _2; +},_filterQueryResult:function(_4,_5){ +var _6=dojo.filter(_4,function(_7){ +return dojo.query(_5,_7.parentNode).indexOf(_7)!=-1; +}); +var _8=this._wrap(_6); +return _8; +},_getUniqueAsNodeList:function(_9){ +var _a=[]; +for(var i=0,_b;_b=_9[i];i++){ +if(_b.nodeType==1&&dojo.indexOf(_a,_b)==-1){ +_a.push(_b); +} +} +return this._wrap(_a,null,this._NodeListCtor); +},_getUniqueNodeListWithParent:function(_c,_d){ +var _e=this._getUniqueAsNodeList(_c); +_e=(_d?this._filterQueryResult(_e,_d):_e); +return _e._stash(this); +},_getRelatedUniqueNodes:function(_f,_10){ +return this._getUniqueNodeListWithParent(this._buildArrayFromCallback(_10),_f); +},children:function(_11){ +return this._getRelatedUniqueNodes(_11,function(_12,ary){ +return dojo._toArray(_12.childNodes); +}); +},closest:function(_13){ +var _14=this; +return this._getRelatedUniqueNodes(_13,function(_15,ary){ +do{ +if(_14._filterQueryResult([_15],_13).length){ +return _15; +} +}while((_15=_15.parentNode)&&_15.nodeType==1); +return null; +}); +},parent:function(_16){ +return this._getRelatedUniqueNodes(_16,function(_17,ary){ +return _17.parentNode; +}); +},parents:function(_18){ +return this._getRelatedUniqueNodes(_18,function(_19,ary){ +var _1a=[]; +while(_19.parentNode){ +_19=_19.parentNode; +_1a.push(_19); +} +return _1a; +}); +},siblings:function(_1b){ +return this._getRelatedUniqueNodes(_1b,function(_1c,ary){ +var _1d=[]; +var _1e=(_1c.parentNode&&_1c.parentNode.childNodes); +for(var i=0;i<_1e.length;i++){ +if(_1e[i]!=_1c){ +_1d.push(_1e[i]); +} +} +return _1d; +}); +},next:function(_1f){ +return this._getRelatedUniqueNodes(_1f,function(_20,ary){ +var _21=_20.nextSibling; +while(_21&&_21.nodeType!=1){ +_21=_21.nextSibling; +} +return _21; +}); +},nextAll:function(_22){ +return this._getRelatedUniqueNodes(_22,function(_23,ary){ +var _24=[]; +var _25=_23; +while((_25=_25.nextSibling)){ +if(_25.nodeType==1){ +_24.push(_25); +} +} +return _24; +}); +},prev:function(_26){ +return this._getRelatedUniqueNodes(_26,function(_27,ary){ +var _28=_27.previousSibling; +while(_28&&_28.nodeType!=1){ +_28=_28.previousSibling; +} +return _28; +}); +},prevAll:function(_29){ +return this._getRelatedUniqueNodes(_29,function(_2a,ary){ +var _2b=[]; +var _2c=_2a; +while((_2c=_2c.previousSibling)){ +if(_2c.nodeType==1){ +_2b.push(_2c); +} +} +return _2b; +}); +},andSelf:function(){ +return this.concat(this._parent); +},first:function(){ +return this._wrap(((this[0]&&[this[0]])||[]),this); +},last:function(){ +return this._wrap((this.length?[this[this.length-1]]:[]),this); +},even:function(){ +return this.filter(function(_2d,i){ +return i%2!=0; +}); +},odd:function(){ +return this.filter(function(_2e,i){ +return i%2==0; +}); +}}); +} diff --git a/lib/dojo/OpenAjax.js b/lib/dojo/OpenAjax.js new file mode 100644 index 000000000..a33e67d52 --- /dev/null +++ b/lib/dojo/OpenAjax.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(!window["OpenAjax"]){ +OpenAjax=new function(){ +var t=true; +var f=false; +var g=window; +var _1; +var _2="org.openajax.hub."; +var h={}; +this.hub=h; +h.implementer="http://openajax.org"; +h.implVersion="0.6"; +h.specVersion="0.6"; +h.implExtraData={}; +var _1={}; +h.libraries=_1; +h.registerLibrary=function(_3,_4,_5,_6){ +_1[_3]={prefix:_3,namespaceURI:_4,version:_5,extraData:_6}; +this.publish(_2+"registerLibrary",_1[_3]); +}; +h.unregisterLibrary=function(_7){ +this.publish(_2+"unregisterLibrary",_1[_7]); +delete _1[_7]; +}; +h._subscriptions={c:{},s:[]}; +h._cleanup=[]; +h._subIndex=0; +h._pubDepth=0; +h.subscribe=function(_8,_9,_a,_b,_c){ +if(!_a){ +_a=window; +} +var _d=_8+"."+this._subIndex; +var _e={scope:_a,cb:_9,fcb:_c,data:_b,sid:this._subIndex++,hdl:_d}; +var _f=_8.split("."); +this._subscribe(this._subscriptions,_f,0,_e); +return _d; +}; +h.publish=function(_10,_11){ +var _12=_10.split("."); +this._pubDepth++; +this._publish(this._subscriptions,_12,0,_10,_11); +this._pubDepth--; +if((this._cleanup.length>0)&&(this._pubDepth==0)){ +for(var i=0;i<this._cleanup.length;i++){ +this.unsubscribe(this._cleanup[i].hdl); +} +delete (this._cleanup); +this._cleanup=[]; +} +}; +h.unsubscribe=function(sub){ +var _13=sub.split("."); +var sid=_13.pop(); +this._unsubscribe(this._subscriptions,_13,0,sid); +}; +h._subscribe=function(_14,_15,_16,sub){ +var _17=_15[_16]; +if(_16==_15.length){ +_14.s.push(sub); +}else{ +if(typeof _14.c=="undefined"){ +_14.c={}; +} +if(typeof _14.c[_17]=="undefined"){ +_14.c[_17]={c:{},s:[]}; +this._subscribe(_14.c[_17],_15,_16+1,sub); +}else{ +this._subscribe(_14.c[_17],_15,_16+1,sub); +} +} +}; +h._publish=function(_18,_19,_1a,_1b,msg){ +if(typeof _18!="undefined"){ +var _1c; +if(_1a==_19.length){ +_1c=_18; +}else{ +this._publish(_18.c[_19[_1a]],_19,_1a+1,_1b,msg); +this._publish(_18.c["*"],_19,_1a+1,_1b,msg); +_1c=_18.c["**"]; +} +if(typeof _1c!="undefined"){ +var _1d=_1c.s; +var max=_1d.length; +for(var i=0;i<max;i++){ +if(_1d[i].cb){ +var sc=_1d[i].scope; +var cb=_1d[i].cb; +var fcb=_1d[i].fcb; +var d=_1d[i].data; +if(typeof cb=="string"){ +cb=sc[cb]; +} +if(typeof fcb=="string"){ +fcb=sc[fcb]; +} +if((!fcb)||(fcb.call(sc,_1b,msg,d))){ +cb.call(sc,_1b,msg,d); +} +} +} +} +} +}; +h._unsubscribe=function(_1e,_1f,_20,sid){ +if(typeof _1e!="undefined"){ +if(_20<_1f.length){ +var _21=_1e.c[_1f[_20]]; +this._unsubscribe(_21,_1f,_20+1,sid); +if(_21.s.length==0){ +for(var x in _21.c){ +return; +} +delete _1e.c[_1f[_20]]; +} +return; +}else{ +var _22=_1e.s; +var max=_22.length; +for(var i=0;i<max;i++){ +if(sid==_22[i].sid){ +if(this._pubDepth>0){ +_22[i].cb=null; +this._cleanup.push(_22[i]); +}else{ +_22.splice(i,1); +} +return; +} +} +} +} +}; +h.reinit=function(){ +for(var lib in OpenAjax.hub.libraries){ +delete OpenAjax.hub.libraries[lib]; +} +OpenAjax.hub.registerLibrary("OpenAjax","http://openajax.org/hub","0.6",{}); +delete OpenAjax._subscriptions; +OpenAjax._subscriptions={c:{},s:[]}; +delete OpenAjax._cleanup; +OpenAjax._cleanup=[]; +OpenAjax._subIndex=0; +OpenAjax._pubDepth=0; +}; +}; +OpenAjax.hub.registerLibrary("OpenAjax","http://openajax.org/hub","0.6",{}); +} diff --git a/lib/dojo/Stateful.js b/lib/dojo/Stateful.js new file mode 100644 index 000000000..136b319c7 --- /dev/null +++ b/lib/dojo/Stateful.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["dojo.Stateful"]){ +dojo._hasResource["dojo.Stateful"]=true; +dojo.provide("dojo.Stateful"); +dojo.declare("dojo.Stateful",null,{postscript:function(_1){ +if(_1){ +dojo.mixin(this,_1); +} +},get:function(_2){ +return this[_2]; +},set:function(_3,_4){ +if(typeof _3==="object"){ +for(var x in _3){ +this.set(x,_3[x]); +} +return this; +} +var _5=this[_3]; +this[_3]=_4; +if(this._watchCallbacks){ +this._watchCallbacks(_3,_5,_4); +} +return this; +},watch:function(_6,_7){ +var _8=this._watchCallbacks; +if(!_8){ +var _9=this; +_8=this._watchCallbacks=function(_a,_b,_c,_d){ +var _e=function(_f){ +for(var i=0,l=_f&&_f.length;i<l;i++){ +try{ +_f[i].call(_9,_a,_b,_c); +} +catch(e){ +console.error(e); +} +} +}; +_e(_8[_a]); +if(!_d){ +_e(_8["*"]); +} +}; +} +if(!_7&&typeof _6==="function"){ +_7=_6; +_6="*"; +} +var _10=_8[_6]; +if(typeof _10!=="object"){ +_10=_8[_6]=[]; +} +_10.push(_7); +return {unwatch:function(){ +_10.splice(dojo.indexOf(_10,_7),1); +}}; +}}); +} diff --git a/lib/dojo/_base.js b/lib/dojo/_base.js new file mode 100644 index 000000000..73097400e --- /dev/null +++ b/lib/dojo/_base.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["dojo._base"]){ +dojo._hasResource["dojo._base"]=true; +dojo.provide("dojo._base"); +dojo.require("dojo._base.lang"); +dojo.require("dojo._base.array"); +dojo.require("dojo._base.declare"); +dojo.require("dojo._base.connect"); +dojo.require("dojo._base.Deferred"); +dojo.require("dojo._base.json"); +dojo.require("dojo._base.Color"); +dojo.requireIf(dojo.isBrowser,"dojo._base.browser"); +} diff --git a/lib/dojo/_base/Color.js b/lib/dojo/_base/Color.js new file mode 100644 index 000000000..0ee5888d1 --- /dev/null +++ b/lib/dojo/_base/Color.js @@ -0,0 +1,102 @@ +/* + 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["dojo._base.Color"]){ +dojo._hasResource["dojo._base.Color"]=true; +dojo.provide("dojo._base.Color"); +dojo.require("dojo._base.array"); +dojo.require("dojo._base.lang"); +(function(){ +var d=dojo; +dojo.Color=function(_1){ +if(_1){ +this.setColor(_1); +} +}; +dojo.Color.named={black:[0,0,0],silver:[192,192,192],gray:[128,128,128],white:[255,255,255],maroon:[128,0,0],red:[255,0,0],purple:[128,0,128],fuchsia:[255,0,255],green:[0,128,0],lime:[0,255,0],olive:[128,128,0],yellow:[255,255,0],navy:[0,0,128],blue:[0,0,255],teal:[0,128,128],aqua:[0,255,255],transparent:d.config.transparentColor||[255,255,255]}; +dojo.extend(dojo.Color,{r:255,g:255,b:255,a:1,_set:function(r,g,b,a){ +var t=this; +t.r=r; +t.g=g; +t.b=b; +t.a=a; +},setColor:function(_2){ +if(d.isString(_2)){ +d.colorFromString(_2,this); +}else{ +if(d.isArray(_2)){ +d.colorFromArray(_2,this); +}else{ +this._set(_2.r,_2.g,_2.b,_2.a); +if(!(_2 instanceof d.Color)){ +this.sanitize(); +} +} +} +return this; +},sanitize:function(){ +return this; +},toRgb:function(){ +var t=this; +return [t.r,t.g,t.b]; +},toRgba:function(){ +var t=this; +return [t.r,t.g,t.b,t.a]; +},toHex:function(){ +var _3=d.map(["r","g","b"],function(x){ +var s=this[x].toString(16); +return s.length<2?"0"+s:s; +},this); +return "#"+_3.join(""); +},toCss:function(_4){ +var t=this,_5=t.r+", "+t.g+", "+t.b; +return (_4?"rgba("+_5+", "+t.a:"rgb("+_5)+")"; +},toString:function(){ +return this.toCss(true); +}}); +dojo.blendColors=function(_6,_7,_8,_9){ +var t=_9||new d.Color(); +d.forEach(["r","g","b","a"],function(x){ +t[x]=_6[x]+(_7[x]-_6[x])*_8; +if(x!="a"){ +t[x]=Math.round(t[x]); +} +}); +return t.sanitize(); +}; +dojo.colorFromRgb=function(_a,_b){ +var m=_a.toLowerCase().match(/^rgba?\(([\s\.,0-9]+)\)/); +return m&&dojo.colorFromArray(m[1].split(/\s*,\s*/),_b); +}; +dojo.colorFromHex=function(_c,_d){ +var t=_d||new d.Color(),_e=(_c.length==4)?4:8,_f=(1<<_e)-1; +_c=Number("0x"+_c.substr(1)); +if(isNaN(_c)){ +return null; +} +d.forEach(["b","g","r"],function(x){ +var c=_c&_f; +_c>>=_e; +t[x]=_e==4?17*c:c; +}); +t.a=1; +return t; +}; +dojo.colorFromArray=function(a,obj){ +var t=obj||new d.Color(); +t._set(Number(a[0]),Number(a[1]),Number(a[2]),Number(a[3])); +if(isNaN(t.a)){ +t.a=1; +} +return t.sanitize(); +}; +dojo.colorFromString=function(str,obj){ +var a=d.Color.named[str]; +return a&&d.colorFromArray(a,obj)||d.colorFromRgb(str,obj)||d.colorFromHex(str,obj); +}; +})(); +} diff --git a/lib/dojo/_base/Deferred.js b/lib/dojo/_base/Deferred.js new file mode 100644 index 000000000..dfbabc4c0 --- /dev/null +++ b/lib/dojo/_base/Deferred.js @@ -0,0 +1,130 @@ +/* + 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["dojo._base.Deferred"]){ +dojo._hasResource["dojo._base.Deferred"]=true; +dojo.provide("dojo._base.Deferred"); +dojo.require("dojo._base.lang"); +(function(){ +var _1=function(){ +}; +var _2=Object.freeze||function(){ +}; +dojo.Deferred=function(_3){ +var _4,_5,_6,_7,_8; +var _9=this.promise={}; +function _a(_b){ +if(_5){ +throw new Error("This deferred has already been resolved"); +} +_4=_b; +_5=true; +_c(); +}; +function _c(){ +var _d; +while(!_d&&_8){ +var _e=_8; +_8=_8.next; +if(_d=(_e.progress==_1)){ +_5=false; +} +var _f=(_6?_e.error:_e.resolved); +if(_f){ +try{ +var _10=_f(_4); +if(_10&&typeof _10.then==="function"){ +_10.then(dojo.hitch(_e.deferred,"resolve"),dojo.hitch(_e.deferred,"reject")); +continue; +} +var _11=_d&&_10===undefined; +_e.deferred[_11&&_6?"reject":"resolve"](_11?_4:_10); +} +catch(e){ +_e.deferred.reject(e); +} +}else{ +if(_6){ +_e.deferred.reject(_4); +}else{ +_e.deferred.resolve(_4); +} +} +} +}; +this.resolve=this.callback=function(_12){ +this.fired=0; +this.results=[_12,null]; +_a(_12); +}; +this.reject=this.errback=function(_13){ +_6=true; +this.fired=1; +_a(_13); +this.results=[null,_13]; +if(!_13||_13.log!==false){ +(dojo.config.deferredOnError||function(x){ +console.error(x); +})(_13); +} +}; +this.progress=function(_14){ +var _15=_8; +while(_15){ +var _16=_15.progress; +_16&&_16(_14); +_15=_15.next; +} +}; +this.addCallbacks=function(_17,_18){ +this.then(_17,_18,_1); +return this; +}; +this.then=_9.then=function(_19,_1a,_1b){ +var _1c=_1b==_1?this:new dojo.Deferred(_9.cancel); +var _1d={resolved:_19,error:_1a,progress:_1b,deferred:_1c}; +if(_8){ +_7=_7.next=_1d; +}else{ +_8=_7=_1d; +} +if(_5){ +_c(); +} +return _1c.promise; +}; +var _1e=this; +this.cancel=_9.cancel=function(){ +if(!_5){ +var _1f=_3&&_3(_1e); +if(!_5){ +if(!(_1f instanceof Error)){ +_1f=new Error(_1f); +} +_1f.log=false; +_1e.reject(_1f); +} +} +}; +_2(_9); +}; +dojo.extend(dojo.Deferred,{addCallback:function(_20){ +return this.addCallbacks(dojo.hitch.apply(dojo,arguments)); +},addErrback:function(_21){ +return this.addCallbacks(null,dojo.hitch.apply(dojo,arguments)); +},addBoth:function(_22){ +var _23=dojo.hitch.apply(dojo,arguments); +return this.addCallbacks(_23,_23); +},fired:-1}); +})(); +dojo.when=function(_24,_25,_26,_27){ +if(_24&&typeof _24.then==="function"){ +return _24.then(_25,_26,_27); +} +return _25(_24); +}; +} diff --git a/lib/dojo/_base/NodeList.js b/lib/dojo/_base/NodeList.js new file mode 100644 index 000000000..6df6db976 --- /dev/null +++ b/lib/dojo/_base/NodeList.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["dojo._base.NodeList"]){ +dojo._hasResource["dojo._base.NodeList"]=true; +dojo.provide("dojo._base.NodeList"); +dojo.require("dojo._base.lang"); +dojo.require("dojo._base.array"); +(function(){ +var d=dojo; +var ap=Array.prototype,_1=ap.slice,_2=ap.concat; +var _3=function(a,_4,_5){ +if(!a.sort){ +a=_1.call(a,0); +} +var _6=_5||this._NodeListCtor||d._NodeListCtor; +a.constructor=_6; +dojo._mixin(a,_6.prototype); +a._NodeListCtor=_6; +return _4?a._stash(_4):a; +}; +var _7=function(f,a,o){ +a=[0].concat(_1.call(a,0)); +o=o||d.global; +return function(_8){ +a[0]=_8; +return f.apply(o,a); +}; +}; +var _9=function(f,o){ +return function(){ +this.forEach(_7(f,arguments,o)); +return this; +}; +}; +var _a=function(f,o){ +return function(){ +return this.map(_7(f,arguments,o)); +}; +}; +var _b=function(f,o){ +return function(){ +return this.filter(_7(f,arguments,o)); +}; +}; +var _c=function(f,g,o){ +return function(){ +var a=arguments,_d=_7(f,a,o); +if(g.call(o||d.global,a)){ +return this.map(_d); +} +this.forEach(_d); +return this; +}; +}; +var _e=function(a){ +return a.length==1&&(typeof a[0]=="string"); +}; +var _f=function(_10){ +var p=_10.parentNode; +if(p){ +p.removeChild(_10); +} +}; +dojo.NodeList=function(){ +return _3(Array.apply(null,arguments)); +}; +d._NodeListCtor=d.NodeList; +var nl=d.NodeList,nlp=nl.prototype; +nl._wrap=nlp._wrap=_3; +nl._adaptAsMap=_a; +nl._adaptAsForEach=_9; +nl._adaptAsFilter=_b; +nl._adaptWithCondition=_c; +d.forEach(["slice","splice"],function(_11){ +var f=ap[_11]; +nlp[_11]=function(){ +return this._wrap(f.apply(this,arguments),_11=="slice"?this:null); +}; +}); +d.forEach(["indexOf","lastIndexOf","every","some"],function(_12){ +var f=d[_12]; +nlp[_12]=function(){ +return f.apply(d,[this].concat(_1.call(arguments,0))); +}; +}); +d.forEach(["attr","style"],function(_13){ +nlp[_13]=_c(d[_13],_e); +}); +d.forEach(["connect","addClass","removeClass","toggleClass","empty","removeAttr"],function(_14){ +nlp[_14]=_9(d[_14]); +}); +dojo.extend(dojo.NodeList,{_normalize:function(_15,_16){ +var _17=_15.parse===true?true:false; +if(typeof _15.template=="string"){ +var _18=_15.templateFunc||(dojo.string&&dojo.string.substitute); +_15=_18?_18(_15.template,_15):_15; +} +var _19=(typeof _15); +if(_19=="string"||_19=="number"){ +_15=dojo._toDom(_15,(_16&&_16.ownerDocument)); +if(_15.nodeType==11){ +_15=dojo._toArray(_15.childNodes); +}else{ +_15=[_15]; +} +}else{ +if(!dojo.isArrayLike(_15)){ +_15=[_15]; +}else{ +if(!dojo.isArray(_15)){ +_15=dojo._toArray(_15); +} +} +} +if(_17){ +_15._runParse=true; +} +return _15; +},_cloneNode:function(_1a){ +return _1a.cloneNode(true); +},_place:function(ary,_1b,_1c,_1d){ +if(_1b.nodeType!=1&&_1c=="only"){ +return; +} +var _1e=_1b,_1f; +var _20=ary.length; +for(var i=_20-1;i>=0;i--){ +var _21=(_1d?this._cloneNode(ary[i]):ary[i]); +if(ary._runParse&&dojo.parser&&dojo.parser.parse){ +if(!_1f){ +_1f=_1e.ownerDocument.createElement("div"); +} +_1f.appendChild(_21); +dojo.parser.parse(_1f); +_21=_1f.firstChild; +while(_1f.firstChild){ +_1f.removeChild(_1f.firstChild); +} +} +if(i==_20-1){ +dojo.place(_21,_1e,_1c); +}else{ +_1e.parentNode.insertBefore(_21,_1e); +} +_1e=_21; +} +},_stash:function(_22){ +this._parent=_22; +return this; +},end:function(){ +if(this._parent){ +return this._parent; +}else{ +return new this._NodeListCtor(); +} +},concat:function(_23){ +var t=d.isArray(this)?this:_1.call(this,0),m=d.map(arguments,function(a){ +return a&&!d.isArray(a)&&(typeof NodeList!="undefined"&&a.constructor===NodeList||a.constructor===this._NodeListCtor)?_1.call(a,0):a; +}); +return this._wrap(_2.apply(t,m),this); +},map:function(_24,obj){ +return this._wrap(d.map(this,_24,obj),this); +},forEach:function(_25,_26){ +d.forEach(this,_25,_26); +return this; +},coords:_a(d.coords),position:_a(d.position),place:function(_27,_28){ +var _29=d.query(_27)[0]; +return this.forEach(function(_2a){ +d.place(_2a,_29,_28); +}); +},orphan:function(_2b){ +return (_2b?d._filterQueryResult(this,_2b):this).forEach(_f); +},adopt:function(_2c,_2d){ +return d.query(_2c).place(this[0],_2d)._stash(this); +},query:function(_2e){ +if(!_2e){ +return this; +} +var ret=this.map(function(_2f){ +return d.query(_2e,_2f).filter(function(_30){ +return _30!==undefined; +}); +}); +return this._wrap(_2.apply([],ret),this); +},filter:function(_31){ +var a=arguments,_32=this,_33=0; +if(typeof _31=="string"){ +_32=d._filterQueryResult(this,a[0]); +if(a.length==1){ +return _32._stash(this); +} +_33=1; +} +return this._wrap(d.filter(_32,a[_33],a[_33+1]),this); +},addContent:function(_34,_35){ +_34=this._normalize(_34,this[0]); +for(var i=0,_36;_36=this[i];i++){ +this._place(_34,_36,_35,i>0); +} +return this; +},instantiate:function(_37,_38){ +var c=d.isFunction(_37)?_37:d.getObject(_37); +_38=_38||{}; +return this.forEach(function(_39){ +new c(_38,_39); +}); +},at:function(){ +var t=new this._NodeListCtor(); +d.forEach(arguments,function(i){ +if(i<0){ +i=this.length+i; +} +if(this[i]){ +t.push(this[i]); +} +},this); +return t._stash(this); +}}); +nl.events=["blur","focus","change","click","error","keydown","keypress","keyup","load","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","submit"]; +d.forEach(nl.events,function(evt){ +var _3a="on"+evt; +nlp[_3a]=function(a,b){ +return this.connect(_3a,a,b); +}; +}); +})(); +} diff --git a/lib/dojo/_base/_loader/bootstrap.js b/lib/dojo/_base/_loader/bootstrap.js new file mode 100644 index 000000000..7cc168e5d --- /dev/null +++ b/lib/dojo/_base/_loader/bootstrap.js @@ -0,0 +1,120 @@ +/* + 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 +*/ + + +(function(){ +if(typeof this["loadFirebugConsole"]=="function"){ +this["loadFirebugConsole"](); +}else{ +this.console=this.console||{}; +var cn=["assert","count","debug","dir","dirxml","error","group","groupEnd","info","profile","profileEnd","time","timeEnd","trace","warn","log"]; +var i=0,tn; +while((tn=cn[i++])){ +if(!console[tn]){ +(function(){ +var _1=tn+""; +console[_1]=("log" in console)?function(){ +var a=Array.apply({},arguments); +a.unshift(_1+":"); +console["log"](a.join(" ")); +}:function(){ +}; +console[_1]._fake=true; +})(); +} +} +} +if(typeof dojo=="undefined"){ +dojo={_scopeName:"dojo",_scopePrefix:"",_scopePrefixArgs:"",_scopeSuffix:"",_scopeMap:{},_scopeMapRev:{}}; +} +var d=dojo; +if(typeof dijit=="undefined"){ +dijit={_scopeName:"dijit"}; +} +if(typeof dojox=="undefined"){ +dojox={_scopeName:"dojox"}; +} +if(!d._scopeArgs){ +d._scopeArgs=[dojo,dijit,dojox]; +} +d.global=this; +d.config={isDebug:false,debugAtAllCosts:false}; +if(typeof djConfig!="undefined"){ +for(var _2 in djConfig){ +d.config[_2]=djConfig[_2]; +} +} +dojo.locale=d.config.locale; +var _3="$Rev: 22487 $".match(/\d+/); +dojo.version={major:1,minor:5,patch:0,flag:"",revision:_3?+_3[0]:NaN,toString:function(){ +with(d.version){ +return major+"."+minor+"."+patch+flag+" ("+revision+")"; +} +}}; +if(typeof OpenAjax!="undefined"){ +OpenAjax.hub.registerLibrary(dojo._scopeName,"http://dojotoolkit.org",d.version.toString()); +} +var _4,_5,_6={}; +for(var i in {toString:1}){ +_4=[]; +break; +} +dojo._extraNames=_4=_4||["hasOwnProperty","valueOf","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","constructor"]; +_5=_4.length; +dojo._mixin=function(_7,_8){ +var _9,s,i; +for(_9 in _8){ +s=_8[_9]; +if(!(_9 in _7)||(_7[_9]!==s&&(!(_9 in _6)||_6[_9]!==s))){ +_7[_9]=s; +} +} +if(_5&&_8){ +for(i=0;i<_5;++i){ +_9=_4[i]; +s=_8[_9]; +if(!(_9 in _7)||(_7[_9]!==s&&(!(_9 in _6)||_6[_9]!==s))){ +_7[_9]=s; +} +} +} +return _7; +}; +dojo.mixin=function(_a,_b){ +if(!_a){ +_a={}; +} +for(var i=1,l=arguments.length;i<l;i++){ +d._mixin(_a,arguments[i]); +} +return _a; +}; +dojo._getProp=function(_c,_d,_e){ +var _f=_e||d.global; +for(var i=0,p;_f&&(p=_c[i]);i++){ +if(i==0&&d._scopeMap[p]){ +p=d._scopeMap[p]; +} +_f=(p in _f?_f[p]:(_d?_f[p]={}:undefined)); +} +return _f; +}; +dojo.setObject=function(_10,_11,_12){ +var _13=_10.split("."),p=_13.pop(),obj=d._getProp(_13,true,_12); +return obj&&p?(obj[p]=_11):undefined; +}; +dojo.getObject=function(_14,_15,_16){ +return d._getProp(_14.split("."),_15,_16); +}; +dojo.exists=function(_17,obj){ +return !!d.getObject(_17,false,obj); +}; +dojo["eval"]=function(_18){ +return d.global.eval?d.global.eval(_18):eval(_18); +}; +d.deprecated=d.experimental=function(){ +}; +})(); diff --git a/lib/dojo/_base/_loader/hostenv_browser.js b/lib/dojo/_base/_loader/hostenv_browser.js new file mode 100644 index 000000000..0d746833e --- /dev/null +++ b/lib/dojo/_base/_loader/hostenv_browser.js @@ -0,0 +1,244 @@ +/* + 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(typeof window!="undefined"){ +dojo.isBrowser=true; +dojo._name="browser"; +(function(){ +var d=dojo; +if(document&&document.getElementsByTagName){ +var _1=document.getElementsByTagName("script"); +var _2=/dojo(\.xd)?\.js(\W|$)/i; +for(var i=0;i<_1.length;i++){ +var _3=_1[i].getAttribute("src"); +if(!_3){ +continue; +} +var m=_3.match(_2); +if(m){ +if(!d.config.baseUrl){ +d.config.baseUrl=_3.substring(0,m.index); +} +var _4=_1[i].getAttribute("djConfig"); +if(_4){ +var _5=eval("({ "+_4+" })"); +for(var x in _5){ +dojo.config[x]=_5[x]; +} +} +break; +} +} +} +d.baseUrl=d.config.baseUrl; +var n=navigator; +var _6=n.userAgent,_7=n.appVersion,tv=parseFloat(_7); +if(_6.indexOf("Opera")>=0){ +d.isOpera=tv; +} +if(_6.indexOf("AdobeAIR")>=0){ +d.isAIR=1; +} +d.isKhtml=(_7.indexOf("Konqueror")>=0)?tv:0; +d.isWebKit=parseFloat(_6.split("WebKit/")[1])||undefined; +d.isChrome=parseFloat(_6.split("Chrome/")[1])||undefined; +d.isMac=_7.indexOf("Macintosh")>=0; +var _8=Math.max(_7.indexOf("WebKit"),_7.indexOf("Safari"),0); +if(_8&&!dojo.isChrome){ +d.isSafari=parseFloat(_7.split("Version/")[1]); +if(!d.isSafari||parseFloat(_7.substr(_8+7))<=419.3){ +d.isSafari=2; +} +} +if(_6.indexOf("Gecko")>=0&&!d.isKhtml&&!d.isWebKit){ +d.isMozilla=d.isMoz=tv; +} +if(d.isMoz){ +d.isFF=parseFloat(_6.split("Firefox/")[1]||_6.split("Minefield/")[1])||undefined; +} +if(document.all&&!d.isOpera){ +d.isIE=parseFloat(_7.split("MSIE ")[1])||undefined; +var _9=document.documentMode; +if(_9&&_9!=5&&Math.floor(d.isIE)!=_9){ +d.isIE=_9; +} +} +if(dojo.isIE&&window.location.protocol==="file:"){ +dojo.config.ieForceActiveXXhr=true; +} +d.isQuirks=document.compatMode=="BackCompat"; +d.locale=dojo.config.locale||(d.isIE?n.userLanguage:n.language).toLowerCase(); +d._XMLHTTP_PROGIDS=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"]; +d._xhrObj=function(){ +var _a,_b; +if(!dojo.isIE||!dojo.config.ieForceActiveXXhr){ +try{ +_a=new XMLHttpRequest(); +} +catch(e){ +} +} +if(!_a){ +for(var i=0;i<3;++i){ +var _c=d._XMLHTTP_PROGIDS[i]; +try{ +_a=new ActiveXObject(_c); +} +catch(e){ +_b=e; +} +if(_a){ +d._XMLHTTP_PROGIDS=[_c]; +break; +} +} +} +if(!_a){ +throw new Error("XMLHTTP not available: "+_b); +} +return _a; +}; +d._isDocumentOk=function(_d){ +var _e=_d.status||0,lp=location.protocol; +return (_e>=200&&_e<300)||_e==304||_e==1223||(!_e&&(lp=="file:"||lp=="chrome:"||lp=="chrome-extension:"||lp=="app:")); +}; +var _f=window.location+""; +var _10=document.getElementsByTagName("base"); +var _11=(_10&&_10.length>0); +d._getText=function(uri,_12){ +var _13=d._xhrObj(); +if(!_11&&dojo._Url){ +uri=(new dojo._Url(_f,uri)).toString(); +} +if(d.config.cacheBust){ +uri+=""; +uri+=(uri.indexOf("?")==-1?"?":"&")+String(d.config.cacheBust).replace(/\W+/g,""); +} +_13.open("GET",uri,false); +try{ +_13.send(null); +if(!d._isDocumentOk(_13)){ +var err=Error("Unable to load "+uri+" status:"+_13.status); +err.status=_13.status; +err.responseText=_13.responseText; +throw err; +} +} +catch(e){ +if(_12){ +return null; +} +throw e; +} +return _13.responseText; +}; +var _14=window; +var _15=function(_16,fp){ +var _17=_14.attachEvent||_14.addEventListener; +_16=_14.attachEvent?_16:_16.substring(2); +_17(_16,function(){ +fp.apply(_14,arguments); +},false); +}; +d._windowUnloaders=[]; +d.windowUnloaded=function(){ +var mll=d._windowUnloaders; +while(mll.length){ +(mll.pop())(); +} +d=null; +}; +var _18=0; +d.addOnWindowUnload=function(obj,_19){ +d._onto(d._windowUnloaders,obj,_19); +if(!_18){ +_18=1; +_15("onunload",d.windowUnloaded); +} +}; +var _1a=0; +d.addOnUnload=function(obj,_1b){ +d._onto(d._unloaders,obj,_1b); +if(!_1a){ +_1a=1; +_15("onbeforeunload",dojo.unloaded); +} +}; +})(); +dojo._initFired=false; +dojo._loadInit=function(e){ +if(dojo._scrollIntervalId){ +clearInterval(dojo._scrollIntervalId); +dojo._scrollIntervalId=0; +} +if(!dojo._initFired){ +dojo._initFired=true; +if(!dojo.config.afterOnLoad&&window.detachEvent){ +window.detachEvent("onload",dojo._loadInit); +} +if(dojo._inFlightCount==0){ +dojo._modulesLoaded(); +} +} +}; +if(!dojo.config.afterOnLoad){ +if(document.addEventListener){ +document.addEventListener("DOMContentLoaded",dojo._loadInit,false); +window.addEventListener("load",dojo._loadInit,false); +}else{ +if(window.attachEvent){ +window.attachEvent("onload",dojo._loadInit); +if(!dojo.config.skipIeDomLoaded&&self===self.top){ +dojo._scrollIntervalId=setInterval(function(){ +try{ +if(document.body){ +document.documentElement.doScroll("left"); +dojo._loadInit(); +} +} +catch(e){ +} +},30); +} +} +} +} +if(dojo.isIE){ +try{ +(function(){ +document.namespaces.add("v","urn:schemas-microsoft-com:vml"); +var _1c=["*","group","roundrect","oval","shape","rect","imagedata","path","textpath","text"],i=0,l=1,s=document.createStyleSheet(); +if(dojo.isIE>=8){ +i=1; +l=_1c.length; +} +for(;i<l;++i){ +s.addRule("v\\:"+_1c[i],"behavior:url(#default#VML); display:inline-block"); +} +})(); +} +catch(e){ +} +} +} +(function(){ +var mp=dojo.config["modulePaths"]; +if(mp){ +for(var _1d in mp){ +dojo.registerModulePath(_1d,mp[_1d]); +} +} +})(); +if(dojo.config.isDebug){ +dojo.require("dojo._firebug.firebug"); +} +if(dojo.config.debugAtAllCosts){ +dojo.config.useXDomain=true; +dojo.require("dojo._base._loader.loader_xd"); +dojo.require("dojo._base._loader.loader_debug"); +dojo.require("dojo.i18n"); +} diff --git a/lib/dojo/_base/_loader/hostenv_ff_ext.js b/lib/dojo/_base/_loader/hostenv_ff_ext.js new file mode 100644 index 000000000..08242393d --- /dev/null +++ b/lib/dojo/_base/_loader/hostenv_ff_ext.js @@ -0,0 +1,175 @@ +/* + 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(typeof window!="undefined"){ +dojo.isBrowser=true; +dojo._name="browser"; +(function(){ +var d=dojo; +d.baseUrl=d.config.baseUrl; +var n=navigator; +var _1=n.userAgent; +var _2=n.appVersion; +var tv=parseFloat(_2); +d.isMozilla=d.isMoz=tv; +if(d.isMoz){ +d.isFF=parseFloat(_1.split("Firefox/")[1])||undefined; +} +d.isQuirks=document.compatMode=="BackCompat"; +d.locale=dojo.config.locale||n.language.toLowerCase(); +d._xhrObj=function(){ +return new XMLHttpRequest(); +}; +var _3=d._loadUri; +d._loadUri=function(_4,cb){ +var _5=["file:","chrome:","resource:"].some(function(_6){ +return String(_4).indexOf(_6)==0; +}); +if(_5){ +var l=Components.classes["@mozilla.org/moz/jssubscript-loader;1"].getService(Components.interfaces.mozIJSSubScriptLoader); +var _7=l.loadSubScript(_4,d.global); +if(cb){ +cb(_7); +} +return true; +}else{ +return _3.apply(d,arguments); +} +}; +d._isDocumentOk=function(_8){ +var _9=_8.status||0; +return (_9>=200&&_9<300)||_9==304||_9==1223||(!_9&&(location.protocol=="file:"||location.protocol=="chrome:")); +}; +var _a=false; +d._getText=function(_b,_c){ +var _d=d._xhrObj(); +if(!_a&&dojo._Url){ +_b=(new dojo._Url(_b)).toString(); +} +if(d.config.cacheBust){ +_b+=""; +_b+=(_b.indexOf("?")==-1?"?":"&")+String(d.config.cacheBust).replace(/\W+/g,""); +} +var _e=["file:","chrome:","resource:"].some(function(_f){ +return String(_b).indexOf(_f)==0; +}); +if(_e){ +var _10=Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService); +var _11=Components.classes["@mozilla.org/scriptableinputstream;1"].getService(Components.interfaces.nsIScriptableInputStream); +var _12=_10.newChannel(_b,null,null); +var _13=_12.open(); +_11.init(_13); +var str=_11.read(_13.available()); +_11.close(); +_13.close(); +return str; +}else{ +_d.open("GET",_b,false); +try{ +_d.send(null); +if(!d._isDocumentOk(_d)){ +var err=Error("Unable to load "+_b+" status:"+_d.status); +err.status=_d.status; +err.responseText=_d.responseText; +throw err; +} +} +catch(e){ +if(_c){ +return null; +} +throw e; +} +return _d.responseText; +} +}; +d._windowUnloaders=[]; +d.windowUnloaded=function(){ +var mll=d._windowUnloaders; +while(mll.length){ +(mll.pop())(); +} +}; +d.addOnWindowUnload=function(obj,_14){ +d._onto(d._windowUnloaders,obj,_14); +}; +var _15=[]; +var _16=null; +dojo._defaultContext=[window,document]; +dojo.pushContext=function(g,d){ +var old=[dojo.global,dojo.doc]; +_15.push(old); +var n; +if(!g&&!d){ +n=dojo._defaultContext; +}else{ +n=[g,d]; +if(!d&&dojo.isString(g)){ +var t=document.getElementById(g); +if(t.contentDocument){ +n=[t.contentWindow,t.contentDocument]; +} +} +} +_16=n; +dojo.setContext.apply(dojo,n); +return old; +}; +dojo.popContext=function(){ +var oc=_16; +if(!_15.length){ +return oc; +} +dojo.setContext.apply(dojo,_15.pop()); +return oc; +}; +dojo._inContext=function(g,d,f){ +var a=dojo._toArray(arguments); +f=a.pop(); +if(a.length==1){ +d=null; +} +dojo.pushContext(g,d); +var r=f(); +dojo.popContext(); +return r; +}; +})(); +dojo._initFired=false; +dojo._loadInit=function(e){ +dojo._initFired=true; +var _17=(e&&e.type)?e.type.toLowerCase():"load"; +if(arguments.callee.initialized||(_17!="domcontentloaded"&&_17!="load")){ +return; +} +arguments.callee.initialized=true; +if(dojo._inFlightCount==0){ +dojo._modulesLoaded(); +} +}; +if(!dojo.config.afterOnLoad){ +window.addEventListener("DOMContentLoaded",function(e){ +dojo._loadInit(e); +},false); +} +} +(function(){ +var mp=dojo.config["modulePaths"]; +if(mp){ +for(var _18 in mp){ +dojo.registerModulePath(_18,mp[_18]); +} +} +})(); +if(dojo.config.isDebug){ +console.log=function(m){ +var s=Components.classes["@mozilla.org/consoleservice;1"].getService(Components.interfaces.nsIConsoleService); +s.logStringMessage(m); +}; +console.debug=function(){ +}; +} diff --git a/lib/dojo/_base/_loader/hostenv_rhino.js b/lib/dojo/_base/_loader/hostenv_rhino.js new file mode 100644 index 000000000..9cd882713 --- /dev/null +++ b/lib/dojo/_base/_loader/hostenv_rhino.js @@ -0,0 +1,153 @@ +/* + 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.config["baseUrl"]){ +dojo.baseUrl=dojo.config["baseUrl"]; +}else{ +dojo.baseUrl="./"; +} +dojo.locale=dojo.locale||String(java.util.Locale.getDefault().toString().replace("_","-").toLowerCase()); +dojo._name="rhino"; +dojo.isRhino=true; +if(typeof print=="function"){ +console.debug=print; +} +if(!("byId" in dojo)){ +dojo.byId=function(id,_1){ +if(id&&(typeof id=="string"||id instanceof String)){ +if(!_1){ +_1=document; +} +return _1.getElementById(id); +} +return id; +}; +} +dojo._isLocalUrl=function(_2){ +var _3=(new java.io.File(_2)).exists(); +if(!_3){ +var _4; +try{ +_4=(new java.net.URL(_2)).openStream(); +_4.close(); +} +finally{ +if(_4&&_4.close){ +_4.close(); +} +} +} +return _3; +}; +dojo._loadUri=function(_5,cb){ +try{ +var _6; +try{ +_6=dojo._isLocalUrl(_5); +} +catch(e){ +return false; +} +if(cb){ +var _7=(_6?readText:readUri)(_5,"UTF-8"); +if(!eval("''").length){ +_7=String(_7).replace(/[\u200E\u200F\u202A-\u202E]/g,function(_8){ +return "\\u"+_8.charCodeAt(0).toString(16); +}); +} +cb(eval("("+_7+")")); +}else{ +load(_5); +} +return true; +} +catch(e){ +return false; +} +}; +dojo.exit=function(_9){ +quit(_9); +}; +function readText(_a,_b){ +_b=_b||"utf-8"; +var jf=new java.io.File(_a); +var is=new java.io.FileInputStream(jf); +return dj_readInputStream(is,_b); +}; +function readUri(_c,_d){ +var _e=(new java.net.URL(_c)).openConnection(); +_d=_d||_e.getContentEncoding()||"utf-8"; +var is=_e.getInputStream(); +return dj_readInputStream(is,_d); +}; +function dj_readInputStream(is,_f){ +var _10=new java.io.BufferedReader(new java.io.InputStreamReader(is,_f)); +try{ +var sb=new java.lang.StringBuffer(); +var _11=""; +while((_11=_10.readLine())!==null){ +sb.append(_11); +sb.append(java.lang.System.getProperty("line.separator")); +} +return sb.toString(); +} +finally{ +_10.close(); +} +}; +dojo._getText=function(uri,_12){ +try{ +var _13=dojo._isLocalUrl(uri); +var _14=(_13?readText:readUri)(uri,"UTF-8"); +if(_14!==null){ +_14+=""; +} +return _14; +} +catch(e){ +if(_12){ +return null; +}else{ +throw e; +} +} +}; +dojo.doc=typeof document!="undefined"?document:null; +dojo.body=function(){ +return document.body; +}; +if(typeof setTimeout=="undefined"||typeof clearTimeout=="undefined"){ +dojo._timeouts=[]; +clearTimeout=function(idx){ +if(!dojo._timeouts[idx]){ +return; +} +dojo._timeouts[idx].stop(); +}; +setTimeout=function(_15,_16){ +var def={sleepTime:_16,hasSlept:false,run:function(){ +if(!this.hasSlept){ +this.hasSlept=true; +java.lang.Thread.currentThread().sleep(this.sleepTime); +} +try{ +_15(); +} +catch(e){ +} +}}; +var _17=new java.lang.Runnable(def); +var _18=new java.lang.Thread(_17); +_18.start(); +return dojo._timeouts.push(_18)-1; +}; +} +if(dojo.config["modulePaths"]){ +for(var param in dojo.config["modulePaths"]){ +dojo.registerModulePath(param,dojo.config["modulePaths"][param]); +} +} diff --git a/lib/dojo/_base/_loader/hostenv_spidermonkey.js b/lib/dojo/_base/_loader/hostenv_spidermonkey.js new file mode 100644 index 000000000..ca63f16ce --- /dev/null +++ b/lib/dojo/_base/_loader/hostenv_spidermonkey.js @@ -0,0 +1,50 @@ +/* + 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.config["baseUrl"]){ +dojo.baseUrl=dojo.config["baseUrl"]; +}else{ +dojo.baseUrl="./"; +} +dojo._name="spidermonkey"; +dojo.isSpidermonkey=true; +dojo.exit=function(_1){ +quit(_1); +}; +if(typeof print=="function"){ +console.debug=print; +} +if(typeof line2pc=="undefined"){ +throw new Error("attempt to use SpiderMonkey host environment when no 'line2pc' global"); +} +dojo._spidermonkeyCurrentFile=function(_2){ +var s=""; +try{ +throw Error("whatever"); +} +catch(e){ +s=e.stack; +} +var _3=s.match(/[^@]*\.js/gi); +if(!_3){ +throw Error("could not parse stack string: '"+s+"'"); +} +var _4=(typeof _2!="undefined"&&_2)?_3[_2+1]:_3[_3.length-1]; +if(!_4){ +throw Error("could not find file name in stack string '"+s+"'"); +} +return _4; +}; +dojo._loadUri=function(_5){ +var ok=load(_5); +return 1; +}; +if(dojo.config["modulePaths"]){ +for(var param in dojo.config["modulePaths"]){ +dojo.registerModulePath(param,dojo.config["modulePaths"][param]); +} +} diff --git a/lib/dojo/_base/_loader/loader.js b/lib/dojo/_base/_loader/loader.js new file mode 100644 index 000000000..3f31040a1 --- /dev/null +++ b/lib/dojo/_base/_loader/loader.js @@ -0,0 +1,300 @@ +/* + 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["dojo.foo"]){ +dojo._hasResource["dojo.foo"]=true; +(function(){ +var d=dojo; +d.mixin(d,{_loadedModules:{},_inFlightCount:0,_hasResource:{},_modulePrefixes:{dojo:{name:"dojo",value:"."},doh:{name:"doh",value:"../util/doh"},tests:{name:"tests",value:"tests"}},_moduleHasPrefix:function(_1){ +var mp=d._modulePrefixes; +return !!(mp[_1]&&mp[_1].value); +},_getModulePrefix:function(_2){ +var mp=d._modulePrefixes; +if(d._moduleHasPrefix(_2)){ +return mp[_2].value; +} +return _2; +},_loadedUrls:[],_postLoad:false,_loaders:[],_unloaders:[],_loadNotifying:false}); +dojo._loadPath=function(_3,_4,cb){ +var _5=((_3.charAt(0)=="/"||_3.match(/^\w+:/))?"":d.baseUrl)+_3; +try{ +return !_4?d._loadUri(_5,cb):d._loadUriAndCheck(_5,_4,cb); +} +catch(e){ +console.error(e); +return false; +} +}; +dojo._loadUri=function(_6,cb){ +if(d._loadedUrls[_6]){ +return true; +} +d._inFlightCount++; +var _7=d._getText(_6,true); +if(_7){ +d._loadedUrls[_6]=true; +d._loadedUrls.push(_6); +if(cb){ +_7="("+_7+")"; +}else{ +_7=d._scopePrefix+_7+d._scopeSuffix; +} +if(!d.isIE){ +_7+="\r\n//@ sourceURL="+_6; +} +var _8=d["eval"](_7); +if(cb){ +cb(_8); +} +} +if(--d._inFlightCount==0&&d._postLoad&&d._loaders.length){ +setTimeout(function(){ +if(d._inFlightCount==0){ +d._callLoaded(); +} +},0); +} +return !!_7; +}; +dojo._loadUriAndCheck=function(_9,_a,cb){ +var ok=false; +try{ +ok=d._loadUri(_9,cb); +} +catch(e){ +console.error("failed loading "+_9+" with error: "+e); +} +return !!(ok&&d._loadedModules[_a]); +}; +dojo.loaded=function(){ +d._loadNotifying=true; +d._postLoad=true; +var _b=d._loaders; +d._loaders=[]; +for(var x=0;x<_b.length;x++){ +_b[x](); +} +d._loadNotifying=false; +if(d._postLoad&&d._inFlightCount==0&&_b.length){ +d._callLoaded(); +} +}; +dojo.unloaded=function(){ +var _c=d._unloaders; +while(_c.length){ +(_c.pop())(); +} +}; +d._onto=function(_d,_e,fn){ +if(!fn){ +_d.push(_e); +}else{ +if(fn){ +var _f=(typeof fn=="string")?_e[fn]:fn; +_d.push(function(){ +_f.call(_e); +}); +} +} +}; +dojo.ready=dojo.addOnLoad=function(obj,_10){ +d._onto(d._loaders,obj,_10); +if(d._postLoad&&d._inFlightCount==0&&!d._loadNotifying){ +d._callLoaded(); +} +}; +var dca=d.config.addOnLoad; +if(dca){ +d.addOnLoad[(dca instanceof Array?"apply":"call")](d,dca); +} +dojo._modulesLoaded=function(){ +if(d._postLoad){ +return; +} +if(d._inFlightCount>0){ +console.warn("files still in flight!"); +return; +} +d._callLoaded(); +}; +dojo._callLoaded=function(){ +if(typeof setTimeout=="object"||(d.config.useXDomain&&d.isOpera)){ +setTimeout(d.isAIR?function(){ +d.loaded(); +}:d._scopeName+".loaded();",0); +}else{ +d.loaded(); +} +}; +dojo._getModuleSymbols=function(_11){ +var _12=_11.split("."); +for(var i=_12.length;i>0;i--){ +var _13=_12.slice(0,i).join("."); +if(i==1&&!d._moduleHasPrefix(_13)){ +_12[0]="../"+_12[0]; +}else{ +var _14=d._getModulePrefix(_13); +if(_14!=_13){ +_12.splice(0,i,_14); +break; +} +} +} +return _12; +}; +dojo._global_omit_module_check=false; +dojo.loadInit=function(_15){ +_15(); +}; +dojo._loadModule=dojo.require=function(_16,_17){ +_17=d._global_omit_module_check||_17; +var _18=d._loadedModules[_16]; +if(_18){ +return _18; +} +var _19=d._getModuleSymbols(_16).join("/")+".js"; +var _1a=!_17?_16:null; +var ok=d._loadPath(_19,_1a); +if(!ok&&!_17){ +throw new Error("Could not load '"+_16+"'; last tried '"+_19+"'"); +} +if(!_17&&!d._isXDomain){ +_18=d._loadedModules[_16]; +if(!_18){ +throw new Error("symbol '"+_16+"' is not defined after loading '"+_19+"'"); +} +} +return _18; +}; +dojo.provide=function(_1b){ +_1b=_1b+""; +return (d._loadedModules[_1b]=d.getObject(_1b,true)); +}; +dojo.platformRequire=function(_1c){ +var _1d=_1c.common||[]; +var _1e=_1d.concat(_1c[d._name]||_1c["default"]||[]); +for(var x=0;x<_1e.length;x++){ +var _1f=_1e[x]; +if(_1f.constructor==Array){ +d._loadModule.apply(d,_1f); +}else{ +d._loadModule(_1f); +} +} +}; +dojo.requireIf=function(_20,_21){ +if(_20===true){ +var _22=[]; +for(var i=1;i<arguments.length;i++){ +_22.push(arguments[i]); +} +d.require.apply(d,_22); +} +}; +dojo.requireAfterIf=d.requireIf; +dojo.registerModulePath=function(_23,_24){ +d._modulePrefixes[_23]={name:_23,value:_24}; +}; +dojo.requireLocalization=function(_25,_26,_27,_28){ +d.require("dojo.i18n"); +d.i18n._requireLocalization.apply(d.hostenv,arguments); +}; +var ore=new RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$"),ire=new RegExp("^((([^\\[:]+):)?([^@]+)@)?(\\[([^\\]]+)\\]|([^\\[:]*))(:([0-9]+))?$"); +dojo._Url=function(){ +var n=null,_29=arguments,uri=[_29[0]]; +for(var i=1;i<_29.length;i++){ +if(!_29[i]){ +continue; +} +var _2a=new d._Url(_29[i]+""),_2b=new d._Url(uri[0]+""); +if(_2a.path==""&&!_2a.scheme&&!_2a.authority&&!_2a.query){ +if(_2a.fragment!=n){ +_2b.fragment=_2a.fragment; +} +_2a=_2b; +}else{ +if(!_2a.scheme){ +_2a.scheme=_2b.scheme; +if(!_2a.authority){ +_2a.authority=_2b.authority; +if(_2a.path.charAt(0)!="/"){ +var _2c=_2b.path.substring(0,_2b.path.lastIndexOf("/")+1)+_2a.path; +var _2d=_2c.split("/"); +for(var j=0;j<_2d.length;j++){ +if(_2d[j]=="."){ +if(j==_2d.length-1){ +_2d[j]=""; +}else{ +_2d.splice(j,1); +j--; +} +}else{ +if(j>0&&!(j==1&&_2d[0]=="")&&_2d[j]==".."&&_2d[j-1]!=".."){ +if(j==(_2d.length-1)){ +_2d.splice(j,1); +_2d[j-1]=""; +}else{ +_2d.splice(j-1,2); +j-=2; +} +} +} +} +_2a.path=_2d.join("/"); +} +} +} +} +uri=[]; +if(_2a.scheme){ +uri.push(_2a.scheme,":"); +} +if(_2a.authority){ +uri.push("//",_2a.authority); +} +uri.push(_2a.path); +if(_2a.query){ +uri.push("?",_2a.query); +} +if(_2a.fragment){ +uri.push("#",_2a.fragment); +} +} +this.uri=uri.join(""); +var r=this.uri.match(ore); +this.scheme=r[2]||(r[1]?"":n); +this.authority=r[4]||(r[3]?"":n); +this.path=r[5]; +this.query=r[7]||(r[6]?"":n); +this.fragment=r[9]||(r[8]?"":n); +if(this.authority!=n){ +r=this.authority.match(ire); +this.user=r[3]||n; +this.password=r[4]||n; +this.host=r[6]||r[7]; +this.port=r[9]||n; +} +}; +dojo._Url.prototype.toString=function(){ +return this.uri; +}; +dojo.moduleUrl=function(_2e,url){ +var loc=d._getModuleSymbols(_2e).join("/"); +if(!loc){ +return null; +} +if(loc.lastIndexOf("/")!=loc.length-1){ +loc+="/"; +} +var _2f=loc.indexOf(":"); +if(loc.charAt(0)!="/"&&(_2f==-1||_2f>loc.indexOf("/"))){ +loc=d.baseUrl+loc; +} +return new d._Url(loc,url); +}; +})(); +} diff --git a/lib/dojo/_base/_loader/loader_debug.js b/lib/dojo/_base/_loader/loader_debug.js new file mode 100644 index 000000000..a28040f58 --- /dev/null +++ b/lib/dojo/_base/_loader/loader_debug.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["dojo._base._loader.loader_debug"]){ +dojo._hasResource["dojo._base._loader.loader_debug"]=true; +dojo.provide("dojo._base._loader.loader_debug"); +dojo.nonDebugProvide=dojo.provide; +dojo.provide=function(_1){ +var _2=dojo["_xdDebugQueue"]; +if(_2&&_2.length>0&&_1==_2["currentResourceName"]){ +if(dojo.isAIR){ +window.setTimeout(function(){ +dojo._xdDebugFileLoaded(_1); +},1); +}else{ +window.setTimeout(dojo._scopeName+"._xdDebugFileLoaded('"+_1+"')",1); +} +} +return dojo.nonDebugProvide.apply(dojo,arguments); +}; +dojo._xdDebugFileLoaded=function(_3){ +if(!dojo._xdDebugScopeChecked){ +if(dojo._scopeName!="dojo"){ +window.dojo=window[dojo.config.scopeMap[0][1]]; +window.dijit=window[dojo.config.scopeMap[1][1]]; +window.dojox=window[dojo.config.scopeMap[2][1]]; +} +dojo._xdDebugScopeChecked=true; +} +var _4=dojo._xdDebugQueue; +if(_3&&_3==_4.currentResourceName){ +_4.shift(); +} +if(_4.length==0){ +dojo._xdWatchInFlight(); +} +if(_4.length==0){ +_4.currentResourceName=null; +for(var _5 in dojo._xdInFlight){ +if(dojo._xdInFlight[_5]===true){ +return; +} +} +dojo._xdNotifyLoaded(); +}else{ +if(_3==_4.currentResourceName){ +_4.currentResourceName=_4[0].resourceName; +var _6=document.createElement("script"); +_6.type="text/javascript"; +_6.src=_4[0].resourcePath; +document.getElementsByTagName("head")[0].appendChild(_6); +} +} +}; +} diff --git a/lib/dojo/_base/_loader/loader_xd.js b/lib/dojo/_base/_loader/loader_xd.js new file mode 100644 index 000000000..2ecab3db6 --- /dev/null +++ b/lib/dojo/_base/_loader/loader_xd.js @@ -0,0 +1,465 @@ +/* + 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["dojo._base._loader.loader_xd"]){ +dojo._hasResource["dojo._base._loader.loader_xd"]=true; +dojo.provide("dojo._base._loader.loader_xd"); +dojo._xdReset=function(){ +dojo._isXDomain=dojo.config.useXDomain||false; +dojo._xdClearInterval(); +dojo._xdInFlight={}; +dojo._xdOrderedReqs=[]; +dojo._xdDepMap={}; +dojo._xdContents=[]; +dojo._xdDefList=[]; +}; +dojo._xdClearInterval=function(){ +if(dojo._xdTimer){ +clearInterval(dojo._xdTimer); +dojo._xdTimer=0; +} +}; +dojo._xdReset(); +dojo._xdCreateResource=function(_1,_2,_3){ +var _4=_1.replace(/(\/\*([\s\S]*?)\*\/|\/\/(.*)$)/mg,""); +var _5=[]; +var _6=/dojo.(require|requireIf|provide|requireAfterIf|platformRequire|requireLocalization)\s*\(([\w\W]*?)\)/mg; +var _7; +while((_7=_6.exec(_4))!=null){ +if(_7[1]=="requireLocalization"){ +eval(_7[0]); +}else{ +_5.push("\""+_7[1]+"\", "+_7[2]); +} +} +var _8=[]; +_8.push(dojo._scopeName+"._xdResourceLoaded(function("+dojo._scopePrefixArgs+"){\n"); +var _9=dojo._xdExtractLoadInits(_1); +if(_9){ +_1=_9[0]; +for(var i=1;i<_9.length;i++){ +_8.push(_9[i]+";\n"); +} +} +_8.push("return {"); +if(_5.length>0){ +_8.push("depends: ["); +for(i=0;i<_5.length;i++){ +if(i>0){ +_8.push(",\n"); +} +_8.push("["+_5[i]+"]"); +} +_8.push("],"); +} +_8.push("\ndefineResource: function("+dojo._scopePrefixArgs+"){"); +if(!dojo.config["debugAtAllCosts"]||_2=="dojo._base._loader.loader_debug"){ +_8.push(_1); +} +_8.push("\n}, resourceName: '"+_2+"', resourcePath: '"+_3+"'};});"); +return _8.join(""); +}; +dojo._xdExtractLoadInits=function(_a){ +var _b=/dojo.loadInit\s*\(/g; +_b.lastIndex=0; +var _c=/[\(\)]/g; +_c.lastIndex=0; +var _d=[]; +var _e; +while((_e=_b.exec(_a))){ +_c.lastIndex=_b.lastIndex; +var _f=1; +var _10; +while((_10=_c.exec(_a))){ +if(_10[0]==")"){ +_f-=1; +}else{ +_f+=1; +} +if(_f==0){ +break; +} +} +if(_f!=0){ +throw "unmatched paren around character "+_c.lastIndex+" in: "+_a; +} +var _11=_b.lastIndex-_e[0].length; +_d.push(_a.substring(_11,_c.lastIndex)); +var _12=_c.lastIndex-_11; +_a=_a.substring(0,_11)+_a.substring(_c.lastIndex,_a.length); +_b.lastIndex=_c.lastIndex-_12; +_b.lastIndex=_c.lastIndex; +} +if(_d.length>0){ +_d.unshift(_a); +} +return (_d.length?_d:null); +}; +dojo._xdIsXDomainPath=function(_13){ +var _14=_13.indexOf(":"); +var _15=_13.indexOf("/"); +if(_14>0&&_14<_15){ +return true; +}else{ +var url=dojo.baseUrl; +_14=url.indexOf(":"); +_15=url.indexOf("/"); +if(_14>0&&_14<_15&&(!location.host||url.indexOf("http://"+location.host)!=0)){ +return true; +} +} +return false; +}; +dojo._loadPath=function(_16,_17,cb){ +var _18=dojo._xdIsXDomainPath(_16); +dojo._isXDomain|=_18; +var uri=((_16.charAt(0)=="/"||_16.match(/^\w+:/))?"":dojo.baseUrl)+_16; +try{ +return ((!_17||dojo._isXDomain)?dojo._loadUri(uri,cb,_18,_17):dojo._loadUriAndCheck(uri,_17,cb)); +} +catch(e){ +console.error(e); +return false; +} +}; +dojo._xdCharSet="utf-8"; +dojo._loadUri=function(uri,cb,_19,_1a){ +if(dojo._loadedUrls[uri]){ +return 1; +} +if(dojo._isXDomain&&_1a&&_1a!="dojo.i18n"){ +dojo._xdOrderedReqs.push(_1a); +if(_19||uri.indexOf("/nls/")==-1){ +dojo._xdInFlight[_1a]=true; +dojo._inFlightCount++; +} +if(!dojo._xdTimer){ +if(dojo.isAIR){ +dojo._xdTimer=setInterval(function(){ +dojo._xdWatchInFlight(); +},100); +}else{ +dojo._xdTimer=setInterval(dojo._scopeName+"._xdWatchInFlight();",100); +} +} +dojo._xdStartTime=(new Date()).getTime(); +} +if(_19){ +var _1b=uri.lastIndexOf("."); +if(_1b<=0){ +_1b=uri.length-1; +} +var _1c=uri.substring(0,_1b)+".xd"; +if(_1b!=uri.length-1){ +_1c+=uri.substring(_1b,uri.length); +} +if(dojo.isAIR){ +_1c=_1c.replace("app:/","/"); +} +var _1d=document.createElement("script"); +_1d.type="text/javascript"; +if(dojo._xdCharSet){ +_1d.charset=dojo._xdCharSet; +} +_1d.src=_1c; +if(!dojo.headElement){ +dojo._headElement=document.getElementsByTagName("head")[0]; +if(!dojo._headElement){ +dojo._headElement=document.getElementsByTagName("html")[0]; +} +} +dojo._headElement.appendChild(_1d); +}else{ +var _1e=dojo._getText(uri,null,true); +if(_1e==null){ +return 0; +} +if(dojo._isXDomain&&uri.indexOf("/nls/")==-1&&_1a!="dojo.i18n"){ +var res=dojo._xdCreateResource(_1e,_1a,uri); +dojo.eval(res); +}else{ +if(cb){ +_1e="("+_1e+")"; +}else{ +_1e=dojo._scopePrefix+_1e+dojo._scopeSuffix; +} +var _1f=dojo["eval"](_1e+"\r\n//@ sourceURL="+uri); +if(cb){ +cb(_1f); +} +} +} +dojo._loadedUrls[uri]=true; +dojo._loadedUrls.push(uri); +return true; +}; +dojo._xdResourceLoaded=function(res){ +res=res.apply(dojo.global,dojo._scopeArgs); +var _20=res.depends; +var _21=null; +var _22=null; +var _23=[]; +if(_20&&_20.length>0){ +var dep=null; +var _24=0; +var _25=false; +for(var i=0;i<_20.length;i++){ +dep=_20[i]; +if(dep[0]=="provide"){ +_23.push(dep[1]); +}else{ +if(!_21){ +_21=[]; +} +if(!_22){ +_22=[]; +} +var _26=dojo._xdUnpackDependency(dep); +if(_26.requires){ +_21=_21.concat(_26.requires); +} +if(_26.requiresAfter){ +_22=_22.concat(_26.requiresAfter); +} +} +var _27=dep[0]; +var _28=_27.split("."); +if(_28.length==2){ +dojo[_28[0]][_28[1]].apply(dojo[_28[0]],dep.slice(1)); +}else{ +dojo[_27].apply(dojo,dep.slice(1)); +} +} +if(_23.length==1&&_23[0]=="dojo._base._loader.loader_debug"){ +res.defineResource(dojo); +}else{ +var _29=dojo._xdContents.push({content:res.defineResource,resourceName:res["resourceName"],resourcePath:res["resourcePath"],isDefined:false})-1; +for(i=0;i<_23.length;i++){ +dojo._xdDepMap[_23[i]]={requires:_21,requiresAfter:_22,contentIndex:_29}; +} +} +for(i=0;i<_23.length;i++){ +dojo._xdInFlight[_23[i]]=false; +} +} +}; +dojo._xdLoadFlattenedBundle=function(_2a,_2b,_2c,_2d){ +_2c=_2c||"root"; +var _2e=dojo.i18n.normalizeLocale(_2c).replace("-","_"); +var _2f=[_2a,"nls",_2b].join("."); +var _30=dojo["provide"](_2f); +_30[_2e]=_2d; +var _31=[_2a,_2e,_2b].join("."); +var _32=dojo._xdBundleMap[_31]; +if(_32){ +for(var _33 in _32){ +_30[_33]=_2d; +} +} +}; +dojo._xdInitExtraLocales=function(){ +var _34=dojo.config.extraLocale; +if(_34){ +if(!_34 instanceof Array){ +_34=[_34]; +} +dojo._xdReqLoc=dojo.xdRequireLocalization; +dojo.xdRequireLocalization=function(m,b,_35,_36){ +dojo._xdReqLoc(m,b,_35,_36); +if(_35){ +return; +} +for(var i=0;i<_34.length;i++){ +dojo._xdReqLoc(m,b,_34[i],_36); +} +}; +} +}; +dojo._xdBundleMap={}; +dojo.xdRequireLocalization=function(_37,_38,_39,_3a){ +if(dojo._xdInitExtraLocales){ +dojo._xdInitExtraLocales(); +dojo._xdInitExtraLocales=null; +dojo.xdRequireLocalization.apply(dojo,arguments); +return; +} +var _3b=_3a.split(","); +var _3c=dojo.i18n.normalizeLocale(_39); +var _3d=""; +for(var i=0;i<_3b.length;i++){ +if(_3c.indexOf(_3b[i])==0){ +if(_3b[i].length>_3d.length){ +_3d=_3b[i]; +} +} +} +var _3e=_3d.replace("-","_"); +var _3f=dojo.getObject([_37,"nls",_38].join(".")); +if(!_3f||!_3f[_3e]){ +var _40=[_37,(_3e||"root"),_38].join("."); +var _41=dojo._xdBundleMap[_40]; +if(!_41){ +_41=dojo._xdBundleMap[_40]={}; +} +_41[_3c.replace("-","_")]=true; +dojo.require(_37+".nls"+(_3d?"."+_3d:"")+"."+_38); +} +}; +dojo._xdRealRequireLocalization=dojo.requireLocalization; +dojo.requireLocalization=function(_42,_43,_44,_45){ +var _46=dojo.moduleUrl(_42).toString(); +if(dojo._xdIsXDomainPath(_46)){ +return dojo.xdRequireLocalization.apply(dojo,arguments); +}else{ +return dojo._xdRealRequireLocalization.apply(dojo,arguments); +} +}; +dojo._xdUnpackDependency=function(dep){ +var _47=null; +var _48=null; +switch(dep[0]){ +case "requireIf": +case "requireAfterIf": +if(dep[1]===true){ +_47=[{name:dep[2],content:null}]; +} +break; +case "platformRequire": +var _49=dep[1]; +var _4a=_49["common"]||[]; +_47=(_49[dojo.hostenv.name_])?_4a.concat(_49[dojo.hostenv.name_]||[]):_4a.concat(_49["default"]||[]); +if(_47){ +for(var i=0;i<_47.length;i++){ +if(_47[i] instanceof Array){ +_47[i]={name:_47[i][0],content:null}; +}else{ +_47[i]={name:_47[i],content:null}; +} +} +} +break; +case "require": +_47=[{name:dep[1],content:null}]; +break; +case "i18n._preloadLocalizations": +dojo.i18n._preloadLocalizations.apply(dojo.i18n._preloadLocalizations,dep.slice(1)); +break; +} +if(dep[0]=="requireAfterIf"||dep[0]=="requireIf"){ +_48=_47; +_47=null; +} +return {requires:_47,requiresAfter:_48}; +}; +dojo._xdWalkReqs=function(){ +var _4b=null; +var req; +for(var i=0;i<dojo._xdOrderedReqs.length;i++){ +req=dojo._xdOrderedReqs[i]; +if(dojo._xdDepMap[req]){ +_4b=[req]; +_4b[req]=true; +dojo._xdEvalReqs(_4b); +} +} +}; +dojo._xdEvalReqs=function(_4c){ +while(_4c.length>0){ +var req=_4c[_4c.length-1]; +var res=dojo._xdDepMap[req]; +var i,_4d,_4e; +if(res){ +_4d=res.requires; +if(_4d&&_4d.length>0){ +for(i=0;i<_4d.length;i++){ +_4e=_4d[i].name; +if(_4e&&!_4c[_4e]){ +_4c.push(_4e); +_4c[_4e]=true; +dojo._xdEvalReqs(_4c); +} +} +} +var _4f=dojo._xdContents[res.contentIndex]; +if(!_4f.isDefined){ +var _50=_4f.content; +_50["resourceName"]=_4f["resourceName"]; +_50["resourcePath"]=_4f["resourcePath"]; +dojo._xdDefList.push(_50); +_4f.isDefined=true; +} +dojo._xdDepMap[req]=null; +_4d=res.requiresAfter; +if(_4d&&_4d.length>0){ +for(i=0;i<_4d.length;i++){ +_4e=_4d[i].name; +if(_4e&&!_4c[_4e]){ +_4c.push(_4e); +_4c[_4e]=true; +dojo._xdEvalReqs(_4c); +} +} +} +} +_4c.pop(); +} +}; +dojo._xdWatchInFlight=function(){ +var _51=""; +var _52=(dojo.config.xdWaitSeconds||15)*1000; +var _53=(dojo._xdStartTime+_52)<(new Date()).getTime(); +for(var _54 in dojo._xdInFlight){ +if(dojo._xdInFlight[_54]===true){ +if(_53){ +_51+=_54+" "; +}else{ +return; +} +} +} +dojo._xdClearInterval(); +if(_53){ +throw "Could not load cross-domain resources: "+_51; +} +dojo._xdWalkReqs(); +var _55=dojo._xdDefList.length; +for(var i=0;i<_55;i++){ +var _56=dojo._xdDefList[i]; +if(dojo.config["debugAtAllCosts"]&&_56["resourceName"]){ +if(!dojo["_xdDebugQueue"]){ +dojo._xdDebugQueue=[]; +} +dojo._xdDebugQueue.push({resourceName:_56.resourceName,resourcePath:_56.resourcePath}); +}else{ +_56.apply(dojo.global,dojo._scopeArgs); +} +} +for(i=0;i<dojo._xdContents.length;i++){ +var _57=dojo._xdContents[i]; +if(_57.content&&!_57.isDefined){ +_57.content.apply(dojo.global,dojo._scopeArgs); +} +} +dojo._xdReset(); +if(dojo["_xdDebugQueue"]&&dojo._xdDebugQueue.length>0){ +dojo._xdDebugFileLoaded(); +}else{ +dojo._xdNotifyLoaded(); +} +}; +dojo._xdNotifyLoaded=function(){ +for(var _58 in dojo._xdInFlight){ +if(typeof dojo._xdInFlight[_58]=="boolean"){ +return; +} +} +dojo._inFlightCount=0; +if(dojo._initFired&&!dojo._loadNotifying){ +dojo._callLoaded(); +} +}; +} diff --git a/lib/dojo/_base/array.js b/lib/dojo/_base/array.js new file mode 100644 index 000000000..83c21c8d8 --- /dev/null +++ b/lib/dojo/_base/array.js @@ -0,0 +1,79 @@ +/* + 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["dojo._base.array"]){ +dojo._hasResource["dojo._base.array"]=true; +dojo.require("dojo._base.lang"); +dojo.provide("dojo._base.array"); +(function(){ +var _1=function(_2,_3,cb){ +return [(typeof _2=="string")?_2.split(""):_2,_3||dojo.global,(typeof cb=="string")?new Function("item","index","array",cb):cb]; +}; +var _4=function(_5,_6,_7,_8){ +var _9=_1(_6,_8,_7); +_6=_9[0]; +for(var i=0,l=_6.length;i<l;++i){ +var _a=!!_9[2].call(_9[1],_6[i],i,_6); +if(_5^_a){ +return _a; +} +} +return _5; +}; +dojo.mixin(dojo,{indexOf:function(_b,_c,_d,_e){ +var _f=1,end=_b.length||0,i=0; +if(_e){ +i=end-1; +_f=end=-1; +} +if(_d!=undefined){ +i=_d; +} +if((_e&&i>end)||i<end){ +for(;i!=end;i+=_f){ +if(_b[i]==_c){ +return i; +} +} +} +return -1; +},lastIndexOf:function(_10,_11,_12){ +return dojo.indexOf(_10,_11,_12,true); +},forEach:function(arr,_13,_14){ +if(!arr||!arr.length){ +return; +} +var _15=_1(arr,_14,_13); +arr=_15[0]; +for(var i=0,l=arr.length;i<l;++i){ +_15[2].call(_15[1],arr[i],i,arr); +} +},every:function(arr,_16,_17){ +return _4(true,arr,_16,_17); +},some:function(arr,_18,_19){ +return _4(false,arr,_18,_19); +},map:function(arr,_1a,_1b){ +var _1c=_1(arr,_1b,_1a); +arr=_1c[0]; +var _1d=(arguments[3]?(new arguments[3]()):[]); +for(var i=0,l=arr.length;i<l;++i){ +_1d.push(_1c[2].call(_1c[1],arr[i],i,arr)); +} +return _1d; +},filter:function(arr,_1e,_1f){ +var _20=_1(arr,_1f,_1e); +arr=_20[0]; +var _21=[]; +for(var i=0,l=arr.length;i<l;++i){ +if(_20[2].call(_20[1],arr[i],i,arr)){ +_21.push(arr[i]); +} +} +return _21; +}}); +})(); +} diff --git a/lib/dojo/_base/browser.js b/lib/dojo/_base/browser.js new file mode 100644 index 000000000..67c1eef37 --- /dev/null +++ b/lib/dojo/_base/browser.js @@ -0,0 +1,22 @@ +/* + 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["dojo._base.browser"]){ +dojo._hasResource["dojo._base.browser"]=true; +dojo.provide("dojo._base.browser"); +dojo.require("dojo._base.window"); +dojo.require("dojo._base.connect"); +dojo.require("dojo._base.event"); +dojo.require("dojo._base.html"); +dojo.require("dojo._base.NodeList"); +dojo.require("dojo._base.query"); +dojo.require("dojo._base.xhr"); +dojo.require("dojo._base.fx"); +dojo.forEach(dojo.config.require,function(i){ +dojo["require"](i); +}); +} diff --git a/lib/dojo/_base/connect.js b/lib/dojo/_base/connect.js new file mode 100644 index 000000000..3905d92e7 --- /dev/null +++ b/lib/dojo/_base/connect.js @@ -0,0 +1,85 @@ +/* + 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["dojo._base.connect"]){ +dojo._hasResource["dojo._base.connect"]=true; +dojo.provide("dojo._base.connect"); +dojo.require("dojo._base.lang"); +dojo._listener={getDispatcher:function(){ +return function(){ +var ap=Array.prototype,c=arguments.callee,ls=c._listeners,t=c.target; +var r=t&&t.apply(this,arguments); +var i,_1; +_1=[].concat(ls); +for(i in _1){ +if(!(i in ap)){ +_1[i].apply(this,arguments); +} +} +return r; +}; +},add:function(_2,_3,_4){ +_2=_2||dojo.global; +var f=_2[_3]; +if(!f||!f._listeners){ +var d=dojo._listener.getDispatcher(); +d.target=f; +d._listeners=[]; +f=_2[_3]=d; +} +return f._listeners.push(_4); +},remove:function(_5,_6,_7){ +var f=(_5||dojo.global)[_6]; +if(f&&f._listeners&&_7--){ +delete f._listeners[_7]; +} +}}; +dojo.connect=function(_8,_9,_a,_b,_c){ +var a=arguments,_d=[],i=0; +_d.push(dojo.isString(a[0])?null:a[i++],a[i++]); +var a1=a[i+1]; +_d.push(dojo.isString(a1)||dojo.isFunction(a1)?a[i++]:null,a[i++]); +for(var l=a.length;i<l;i++){ +_d.push(a[i]); +} +return dojo._connect.apply(this,_d); +}; +dojo._connect=function(_e,_f,_10,_11){ +var l=dojo._listener,h=l.add(_e,_f,dojo.hitch(_10,_11)); +return [_e,_f,h,l]; +}; +dojo.disconnect=function(_12){ +if(_12&&_12[0]!==undefined){ +dojo._disconnect.apply(this,_12); +delete _12[0]; +} +}; +dojo._disconnect=function(obj,_13,_14,_15){ +_15.remove(obj,_13,_14); +}; +dojo._topics={}; +dojo.subscribe=function(_16,_17,_18){ +return [_16,dojo._listener.add(dojo._topics,_16,dojo.hitch(_17,_18))]; +}; +dojo.unsubscribe=function(_19){ +if(_19){ +dojo._listener.remove(dojo._topics,_19[0],_19[1]); +} +}; +dojo.publish=function(_1a,_1b){ +var f=dojo._topics[_1a]; +if(f){ +f.apply(this,_1b||[]); +} +}; +dojo.connectPublisher=function(_1c,obj,_1d){ +var pf=function(){ +dojo.publish(_1c,arguments); +}; +return _1d?dojo.connect(obj,_1d,pf):dojo.connect(obj,pf); +}; +} diff --git a/lib/dojo/_base/declare.js b/lib/dojo/_base/declare.js new file mode 100644 index 000000000..f8ce201ec --- /dev/null +++ b/lib/dojo/_base/declare.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["dojo._base.declare"]){ +dojo._hasResource["dojo._base.declare"]=true; +dojo.provide("dojo._base.declare"); +dojo.require("dojo._base.lang"); +dojo.require("dojo._base.array"); +(function(){ +var d=dojo,_1=d._mixin,op=Object.prototype,_2=op.toString,_3=new Function,_4=0,_5="constructor"; +function _6(_7){ +throw new Error("declare: "+_7); +}; +function _8(_9){ +var _a=[],_b=[{cls:0,refs:[]}],_c={},_d=1,l=_9.length,i=0,j,_e,_f,top,_10,rec,_11,_12; +for(;i<l;++i){ +_f=_9[i]; +if(!_f){ +_6("mixin #"+i+" is unknown. Did you use dojo.require to pull it in?"); +}else{ +if(_2.call(_f)!="[object Function]"){ +_6("mixin #"+i+" is not a callable constructor."); +} +} +_e=_f._meta?_f._meta.bases:[_f]; +top=0; +for(j=_e.length-1;j>=0;--j){ +_10=_e[j].prototype; +if(!_10.hasOwnProperty("declaredClass")){ +_10.declaredClass="uniqName_"+(_4++); +} +_11=_10.declaredClass; +if(!_c.hasOwnProperty(_11)){ +_c[_11]={count:0,refs:[],cls:_e[j]}; +++_d; +} +rec=_c[_11]; +if(top&&top!==rec){ +rec.refs.push(top); +++top.count; +} +top=rec; +} +++top.count; +_b[0].refs.push(top); +} +while(_b.length){ +top=_b.pop(); +_a.push(top.cls); +--_d; +while(_12=top.refs,_12.length==1){ +top=_12[0]; +if(!top||--top.count){ +top=0; +break; +} +_a.push(top.cls); +--_d; +} +if(top){ +for(i=0,l=_12.length;i<l;++i){ +top=_12[i]; +if(!--top.count){ +_b.push(top); +} +} +} +} +if(_d){ +_6("can't build consistent linearization"); +} +_f=_9[0]; +_a[0]=_f?_f._meta&&_f===_a[_a.length-_f._meta.bases.length]?_f._meta.bases.length:1:0; +return _a; +}; +function _13(_14,a,f){ +var _15,_16,_17,_18,_19,_1a,_1b,opf,pos,_1c=this._inherited=this._inherited||{}; +if(typeof _14=="string"){ +_15=_14; +_14=a; +a=f; +} +f=0; +_18=_14.callee; +_15=_15||_18.nom; +if(!_15){ +_6("can't deduce a name to call inherited()"); +} +_19=this.constructor._meta; +_17=_19.bases; +pos=_1c.p; +if(_15!=_5){ +if(_1c.c!==_18){ +pos=0; +_1a=_17[0]; +_19=_1a._meta; +if(_19.hidden[_15]!==_18){ +_16=_19.chains; +if(_16&&typeof _16[_15]=="string"){ +_6("calling chained method with inherited: "+_15); +} +do{ +_19=_1a._meta; +_1b=_1a.prototype; +if(_19&&(_1b[_15]===_18&&_1b.hasOwnProperty(_15)||_19.hidden[_15]===_18)){ +break; +} +}while(_1a=_17[++pos]); +pos=_1a?pos:-1; +} +} +_1a=_17[++pos]; +if(_1a){ +_1b=_1a.prototype; +if(_1a._meta&&_1b.hasOwnProperty(_15)){ +f=_1b[_15]; +}else{ +opf=op[_15]; +do{ +_1b=_1a.prototype; +f=_1b[_15]; +if(f&&(_1a._meta?_1b.hasOwnProperty(_15):f!==opf)){ +break; +} +}while(_1a=_17[++pos]); +} +} +f=_1a&&f||op[_15]; +}else{ +if(_1c.c!==_18){ +pos=0; +_19=_17[0]._meta; +if(_19&&_19.ctor!==_18){ +_16=_19.chains; +if(!_16||_16.constructor!=="manual"){ +_6("calling chained constructor with inherited"); +} +while(_1a=_17[++pos]){ +_19=_1a._meta; +if(_19&&_19.ctor===_18){ +break; +} +} +pos=_1a?pos:-1; +} +} +while(_1a=_17[++pos]){ +_19=_1a._meta; +f=_19?_19.ctor:_1a; +if(f){ +break; +} +} +f=_1a&&f; +} +_1c.c=f; +_1c.p=pos; +if(f){ +return a===true?f:f.apply(this,a||_14); +} +}; +function _1d(_1e,_1f){ +if(typeof _1e=="string"){ +return this.inherited(_1e,_1f,true); +} +return this.inherited(_1e,true); +}; +function _20(cls){ +var _21=this.constructor._meta.bases; +for(var i=0,l=_21.length;i<l;++i){ +if(_21[i]===cls){ +return true; +} +} +return this instanceof cls; +}; +function _22(_23,_24){ +var _25,i=0,l=d._extraNames.length; +for(_25 in _24){ +if(_25!=_5&&_24.hasOwnProperty(_25)){ +_23[_25]=_24[_25]; +} +} +for(;i<l;++i){ +_25=d._extraNames[i]; +if(_25!=_5&&_24.hasOwnProperty(_25)){ +_23[_25]=_24[_25]; +} +} +}; +function _26(_27,_28){ +var _29,t,i=0,l=d._extraNames.length; +for(_29 in _28){ +t=_28[_29]; +if((t!==op[_29]||!(_29 in op))&&_29!=_5){ +if(_2.call(t)=="[object Function]"){ +t.nom=_29; +} +_27[_29]=t; +} +} +for(;i<l;++i){ +_29=d._extraNames[i]; +t=_28[_29]; +if((t!==op[_29]||!(_29 in op))&&_29!=_5){ +if(_2.call(t)=="[object Function]"){ +t.nom=_29; +} +_27[_29]=t; +} +} +return _27; +}; +function _2a(_2b){ +_26(this.prototype,_2b); +return this; +}; +function _2c(_2d,_2e){ +return function(){ +var a=arguments,_2f=a,a0=a[0],f,i,m,l=_2d.length,_30; +if(!(this instanceof a.callee)){ +return _31(a); +} +if(_2e&&(a0&&a0.preamble||this.preamble)){ +_30=new Array(_2d.length); +_30[0]=a; +for(i=0;;){ +a0=a[0]; +if(a0){ +f=a0.preamble; +if(f){ +a=f.apply(this,a)||a; +} +} +f=_2d[i].prototype; +f=f.hasOwnProperty("preamble")&&f.preamble; +if(f){ +a=f.apply(this,a)||a; +} +if(++i==l){ +break; +} +_30[i]=a; +} +} +for(i=l-1;i>=0;--i){ +f=_2d[i]; +m=f._meta; +f=m?m.ctor:f; +if(f){ +f.apply(this,_30?_30[i]:a); +} +} +f=this.postscript; +if(f){ +f.apply(this,_2f); +} +}; +}; +function _32(_33,_34){ +return function(){ +var a=arguments,t=a,a0=a[0],f; +if(!(this instanceof a.callee)){ +return _31(a); +} +if(_34){ +if(a0){ +f=a0.preamble; +if(f){ +t=f.apply(this,t)||t; +} +} +f=this.preamble; +if(f){ +f.apply(this,t); +} +} +if(_33){ +_33.apply(this,a); +} +f=this.postscript; +if(f){ +f.apply(this,a); +} +}; +}; +function _35(_36){ +return function(){ +var a=arguments,i=0,f,m; +if(!(this instanceof a.callee)){ +return _31(a); +} +for(;f=_36[i];++i){ +m=f._meta; +f=m?m.ctor:f; +if(f){ +f.apply(this,a); +break; +} +} +f=this.postscript; +if(f){ +f.apply(this,a); +} +}; +}; +function _37(_38,_39,_3a){ +return function(){ +var b,m,f,i=0,_3b=1; +if(_3a){ +i=_39.length-1; +_3b=-1; +} +for(;b=_39[i];i+=_3b){ +m=b._meta; +f=(m?m.hidden:b.prototype)[_38]; +if(f){ +f.apply(this,arguments); +} +} +}; +}; +function _3c(_3d){ +_3.prototype=_3d.prototype; +var t=new _3; +_3.prototype=null; +return t; +}; +function _31(_3e){ +var _3f=_3e.callee,t=_3c(_3f); +_3f.apply(t,_3e); +return t; +}; +d.declare=function(_40,_41,_42){ +if(typeof _40!="string"){ +_42=_41; +_41=_40; +_40=""; +} +_42=_42||{}; +var _43,i,t,_44,_45,_46,_47,_48=1,_49=_41; +if(_2.call(_41)=="[object Array]"){ +_46=_8(_41); +t=_46[0]; +_48=_46.length-t; +_41=_46[_48]; +}else{ +_46=[0]; +if(_41){ +if(_2.call(_41)=="[object Function]"){ +t=_41._meta; +_46=_46.concat(t?t.bases:_41); +}else{ +_6("base class is not a callable constructor."); +} +}else{ +if(_41!==null){ +_6("unknown base class. Did you use dojo.require to pull it in?"); +} +} +} +if(_41){ +for(i=_48-1;;--i){ +_43=_3c(_41); +if(!i){ +break; +} +t=_46[i]; +(t._meta?_22:_1)(_43,t.prototype); +_44=new Function; +_44.superclass=_41; +_44.prototype=_43; +_41=_43.constructor=_44; +} +}else{ +_43={}; +} +_26(_43,_42); +t=_42.constructor; +if(t!==op.constructor){ +t.nom=_5; +_43.constructor=t; +} +for(i=_48-1;i;--i){ +t=_46[i]._meta; +if(t&&t.chains){ +_47=_1(_47||{},t.chains); +} +} +if(_43["-chains-"]){ +_47=_1(_47||{},_43["-chains-"]); +} +t=!_47||!_47.hasOwnProperty(_5); +_46[0]=_44=(_47&&_47.constructor==="manual")?_35(_46):(_46.length==1?_32(_42.constructor,t):_2c(_46,t)); +_44._meta={bases:_46,hidden:_42,chains:_47,parents:_49,ctor:_42.constructor}; +_44.superclass=_41&&_41.prototype; +_44.extend=_2a; +_44.prototype=_43; +_43.constructor=_44; +_43.getInherited=_1d; +_43.inherited=_13; +_43.isInstanceOf=_20; +if(_40){ +_43.declaredClass=_40; +d.setObject(_40,_44); +} +if(_47){ +for(_45 in _47){ +if(_43[_45]&&typeof _47[_45]=="string"&&_45!=_5){ +t=_43[_45]=_37(_45,_46,_47[_45]==="after"); +t.nom=_45; +} +} +} +return _44; +}; +d.safeMixin=_26; +})(); +} diff --git a/lib/dojo/_base/event.js b/lib/dojo/_base/event.js new file mode 100644 index 000000000..1e6ef788a --- /dev/null +++ b/lib/dojo/_base/event.js @@ -0,0 +1,359 @@ +/* + 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["dojo._base.event"]){ +dojo._hasResource["dojo._base.event"]=true; +dojo.provide("dojo._base.event"); +dojo.require("dojo._base.connect"); +(function(){ +var _1=(dojo._event_listener={add:function(_2,_3,fp){ +if(!_2){ +return; +} +_3=_1._normalizeEventName(_3); +fp=_1._fixCallback(_3,fp); +var _4=_3; +if(!dojo.isIE&&(_3=="mouseenter"||_3=="mouseleave")){ +var _5=fp; +_3=(_3=="mouseenter")?"mouseover":"mouseout"; +fp=function(e){ +if(!dojo.isDescendant(e.relatedTarget,_2)){ +return _5.call(this,e); +} +}; +} +_2.addEventListener(_3,fp,false); +return fp; +},remove:function(_6,_7,_8){ +if(_6){ +_7=_1._normalizeEventName(_7); +if(!dojo.isIE&&(_7=="mouseenter"||_7=="mouseleave")){ +_7=(_7=="mouseenter")?"mouseover":"mouseout"; +} +_6.removeEventListener(_7,_8,false); +} +},_normalizeEventName:function(_9){ +return _9.slice(0,2)=="on"?_9.slice(2):_9; +},_fixCallback:function(_a,fp){ +return _a!="keypress"?fp:function(e){ +return fp.call(this,_1._fixEvent(e,this)); +}; +},_fixEvent:function(_b,_c){ +switch(_b.type){ +case "keypress": +_1._setKeyChar(_b); +break; +} +return _b; +},_setKeyChar:function(_d){ +_d.keyChar=_d.charCode?String.fromCharCode(_d.charCode):""; +_d.charOrCode=_d.keyChar||_d.keyCode; +},_punctMap:{106:42,111:47,186:59,187:43,188:44,189:45,190:46,191:47,192:96,219:91,220:92,221:93,222:39}}); +dojo.fixEvent=function(_e,_f){ +return _1._fixEvent(_e,_f); +}; +dojo.stopEvent=function(evt){ +evt.preventDefault(); +evt.stopPropagation(); +}; +var _10=dojo._listener; +dojo._connect=function(obj,_11,_12,_13,_14){ +var _15=obj&&(obj.nodeType||obj.attachEvent||obj.addEventListener); +var lid=_15?(_14?2:1):0,l=[dojo._listener,_1,_10][lid]; +var h=l.add(obj,_11,dojo.hitch(_12,_13)); +return [obj,_11,h,lid]; +}; +dojo._disconnect=function(obj,_16,_17,_18){ +([dojo._listener,_1,_10][_18]).remove(obj,_16,_17); +}; +dojo.keys={BACKSPACE:8,TAB:9,CLEAR:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,META:dojo.isSafari?91:224,PAUSE:19,CAPS_LOCK:20,ESCAPE:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT_ARROW:37,UP_ARROW:38,RIGHT_ARROW:39,DOWN_ARROW:40,INSERT:45,DELETE:46,HELP:47,LEFT_WINDOW:91,RIGHT_WINDOW:92,SELECT:93,NUMPAD_0:96,NUMPAD_1:97,NUMPAD_2:98,NUMPAD_3:99,NUMPAD_4:100,NUMPAD_5:101,NUMPAD_6:102,NUMPAD_7:103,NUMPAD_8:104,NUMPAD_9:105,NUMPAD_MULTIPLY:106,NUMPAD_PLUS:107,NUMPAD_ENTER:108,NUMPAD_MINUS:109,NUMPAD_PERIOD:110,NUMPAD_DIVIDE:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,F13:124,F14:125,F15:126,NUM_LOCK:144,SCROLL_LOCK:145,copyKey:dojo.isMac&&!dojo.isAIR?(dojo.isSafari?91:224):17}; +var _19=dojo.isMac?"metaKey":"ctrlKey"; +dojo.isCopyKey=function(e){ +return e[_19]; +}; +if(dojo.isIE){ +dojo.mouseButtons={LEFT:1,MIDDLE:4,RIGHT:2,isButton:function(e,_1a){ +return e.button&_1a; +},isLeft:function(e){ +return e.button&1; +},isMiddle:function(e){ +return e.button&4; +},isRight:function(e){ +return e.button&2; +}}; +}else{ +dojo.mouseButtons={LEFT:0,MIDDLE:1,RIGHT:2,isButton:function(e,_1b){ +return e.button==_1b; +},isLeft:function(e){ +return e.button==0; +},isMiddle:function(e){ +return e.button==1; +},isRight:function(e){ +return e.button==2; +}}; +} +if(dojo.isIE){ +var _1c=function(e,_1d){ +try{ +return (e.keyCode=_1d); +} +catch(e){ +return 0; +} +}; +var iel=dojo._listener; +var _1e=(dojo._ieListenersName="_"+dojo._scopeName+"_listeners"); +if(!dojo.config._allow_leaks){ +_10=iel=dojo._ie_listener={handlers:[],add:function(_1f,_20,_21){ +_1f=_1f||dojo.global; +var f=_1f[_20]; +if(!f||!f[_1e]){ +var d=dojo._getIeDispatcher(); +d.target=f&&(ieh.push(f)-1); +d[_1e]=[]; +f=_1f[_20]=d; +} +return f[_1e].push(ieh.push(_21)-1); +},remove:function(_22,_23,_24){ +var f=(_22||dojo.global)[_23],l=f&&f[_1e]; +if(f&&l&&_24--){ +delete ieh[l[_24]]; +delete l[_24]; +} +}}; +var ieh=iel.handlers; +} +dojo.mixin(_1,{add:function(_25,_26,fp){ +if(!_25){ +return; +} +_26=_1._normalizeEventName(_26); +if(_26=="onkeypress"){ +var kd=_25.onkeydown; +if(!kd||!kd[_1e]||!kd._stealthKeydownHandle){ +var h=_1.add(_25,"onkeydown",_1._stealthKeyDown); +kd=_25.onkeydown; +kd._stealthKeydownHandle=h; +kd._stealthKeydownRefs=1; +}else{ +kd._stealthKeydownRefs++; +} +} +return iel.add(_25,_26,_1._fixCallback(fp)); +},remove:function(_27,_28,_29){ +_28=_1._normalizeEventName(_28); +iel.remove(_27,_28,_29); +if(_28=="onkeypress"){ +var kd=_27.onkeydown; +if(--kd._stealthKeydownRefs<=0){ +iel.remove(_27,"onkeydown",kd._stealthKeydownHandle); +delete kd._stealthKeydownHandle; +} +} +},_normalizeEventName:function(_2a){ +return _2a.slice(0,2)!="on"?"on"+_2a:_2a; +},_nop:function(){ +},_fixEvent:function(evt,_2b){ +if(!evt){ +var w=_2b&&(_2b.ownerDocument||_2b.document||_2b).parentWindow||window; +evt=w.event; +} +if(!evt){ +return (evt); +} +evt.target=evt.srcElement; +evt.currentTarget=(_2b||evt.srcElement); +evt.layerX=evt.offsetX; +evt.layerY=evt.offsetY; +var se=evt.srcElement,doc=(se&&se.ownerDocument)||document; +var _2c=((dojo.isIE<6)||(doc["compatMode"]=="BackCompat"))?doc.body:doc.documentElement; +var _2d=dojo._getIeDocumentElementOffset(); +evt.pageX=evt.clientX+dojo._fixIeBiDiScrollLeft(_2c.scrollLeft||0)-_2d.x; +evt.pageY=evt.clientY+(_2c.scrollTop||0)-_2d.y; +if(evt.type=="mouseover"){ +evt.relatedTarget=evt.fromElement; +} +if(evt.type=="mouseout"){ +evt.relatedTarget=evt.toElement; +} +evt.stopPropagation=_1._stopPropagation; +evt.preventDefault=_1._preventDefault; +return _1._fixKeys(evt); +},_fixKeys:function(evt){ +switch(evt.type){ +case "keypress": +var c=("charCode" in evt?evt.charCode:evt.keyCode); +if(c==10){ +c=0; +evt.keyCode=13; +}else{ +if(c==13||c==27){ +c=0; +}else{ +if(c==3){ +c=99; +} +} +} +evt.charCode=c; +_1._setKeyChar(evt); +break; +} +return evt; +},_stealthKeyDown:function(evt){ +var kp=evt.currentTarget.onkeypress; +if(!kp||!kp[_1e]){ +return; +} +var k=evt.keyCode; +var _2e=k!=13&&k!=32&&k!=27&&(k<48||k>90)&&(k<96||k>111)&&(k<186||k>192)&&(k<219||k>222); +if(_2e||evt.ctrlKey){ +var c=_2e?0:k; +if(evt.ctrlKey){ +if(k==3||k==13){ +return; +}else{ +if(c>95&&c<106){ +c-=48; +}else{ +if((!evt.shiftKey)&&(c>=65&&c<=90)){ +c+=32; +}else{ +c=_1._punctMap[c]||c; +} +} +} +} +var _2f=_1._synthesizeEvent(evt,{type:"keypress",faux:true,charCode:c}); +kp.call(evt.currentTarget,_2f); +evt.cancelBubble=_2f.cancelBubble; +evt.returnValue=_2f.returnValue; +_1c(evt,_2f.keyCode); +} +},_stopPropagation:function(){ +this.cancelBubble=true; +},_preventDefault:function(){ +this.bubbledKeyCode=this.keyCode; +if(this.ctrlKey){ +_1c(this,0); +} +this.returnValue=false; +}}); +dojo.stopEvent=function(evt){ +evt=evt||window.event; +_1._stopPropagation.call(evt); +_1._preventDefault.call(evt); +}; +} +_1._synthesizeEvent=function(evt,_30){ +var _31=dojo.mixin({},evt,_30); +_1._setKeyChar(_31); +_31.preventDefault=function(){ +evt.preventDefault(); +}; +_31.stopPropagation=function(){ +evt.stopPropagation(); +}; +return _31; +}; +if(dojo.isOpera){ +dojo.mixin(_1,{_fixEvent:function(evt,_32){ +switch(evt.type){ +case "keypress": +var c=evt.which; +if(c==3){ +c=99; +} +c=c<41&&!evt.shiftKey?0:c; +if(evt.ctrlKey&&!evt.shiftKey&&c>=65&&c<=90){ +c+=32; +} +return _1._synthesizeEvent(evt,{charCode:c}); +} +return evt; +}}); +} +if(dojo.isWebKit){ +_1._add=_1.add; +_1._remove=_1.remove; +dojo.mixin(_1,{add:function(_33,_34,fp){ +if(!_33){ +return; +} +var _35=_1._add(_33,_34,fp); +if(_1._normalizeEventName(_34)=="keypress"){ +_35._stealthKeyDownHandle=_1._add(_33,"keydown",function(evt){ +var k=evt.keyCode; +var _36=k!=13&&k!=32&&(k<48||k>90)&&(k<96||k>111)&&(k<186||k>192)&&(k<219||k>222); +if(_36||evt.ctrlKey){ +var c=_36?0:k; +if(evt.ctrlKey){ +if(k==3||k==13){ +return; +}else{ +if(c>95&&c<106){ +c-=48; +}else{ +if(!evt.shiftKey&&c>=65&&c<=90){ +c+=32; +}else{ +c=_1._punctMap[c]||c; +} +} +} +} +var _37=_1._synthesizeEvent(evt,{type:"keypress",faux:true,charCode:c}); +fp.call(evt.currentTarget,_37); +} +}); +} +return _35; +},remove:function(_38,_39,_3a){ +if(_38){ +if(_3a._stealthKeyDownHandle){ +_1._remove(_38,"keydown",_3a._stealthKeyDownHandle); +} +_1._remove(_38,_39,_3a); +} +},_fixEvent:function(evt,_3b){ +switch(evt.type){ +case "keypress": +if(evt.faux){ +return evt; +} +var c=evt.charCode; +c=c>=32?c:0; +return _1._synthesizeEvent(evt,{charCode:c,faux:true}); +} +return evt; +}}); +} +})(); +if(dojo.isIE){ +dojo._ieDispatcher=function(_3c,_3d){ +var ap=Array.prototype,h=dojo._ie_listener.handlers,c=_3c.callee,ls=c[dojo._ieListenersName],t=h[c.target]; +var r=t&&t.apply(_3d,_3c); +var lls=[].concat(ls); +for(var i in lls){ +var f=h[lls[i]]; +if(!(i in ap)&&f){ +f.apply(_3d,_3c); +} +} +return r; +}; +dojo._getIeDispatcher=function(){ +return new Function(dojo._scopeName+"._ieDispatcher(arguments, this)"); +}; +dojo._event_listener._fixCallback=function(fp){ +var f=dojo._event_listener._fixEvent; +return function(e){ +return fp.call(this,f(e,this)); +}; +}; +} +} diff --git a/lib/dojo/_base/fx.js b/lib/dojo/_base/fx.js new file mode 100644 index 000000000..1c589402e --- /dev/null +++ b/lib/dojo/_base/fx.js @@ -0,0 +1,302 @@ +/* + 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["dojo._base.fx"]){ +dojo._hasResource["dojo._base.fx"]=true; +dojo.provide("dojo._base.fx"); +dojo.require("dojo._base.Color"); +dojo.require("dojo._base.connect"); +dojo.require("dojo._base.lang"); +dojo.require("dojo._base.html"); +(function(){ +var d=dojo; +var _1=d._mixin; +dojo._Line=function(_2,_3){ +this.start=_2; +this.end=_3; +}; +dojo._Line.prototype.getValue=function(n){ +return ((this.end-this.start)*n)+this.start; +}; +dojo.Animation=function(_4){ +_1(this,_4); +if(d.isArray(this.curve)){ +this.curve=new d._Line(this.curve[0],this.curve[1]); +} +}; +d._Animation=d.Animation; +d.extend(dojo.Animation,{duration:350,repeat:0,rate:20,_percent:0,_startRepeatCount:0,_getStep:function(){ +var _5=this._percent,_6=this.easing; +return _6?_6(_5):_5; +},_fire:function(_7,_8){ +var a=_8||[]; +if(this[_7]){ +if(d.config.debugAtAllCosts){ +this[_7].apply(this,a); +}else{ +try{ +this[_7].apply(this,a); +} +catch(e){ +console.error("exception in animation handler for:",_7); +console.error(e); +} +} +} +return this; +},play:function(_9,_a){ +var _b=this; +if(_b._delayTimer){ +_b._clearTimer(); +} +if(_a){ +_b._stopTimer(); +_b._active=_b._paused=false; +_b._percent=0; +}else{ +if(_b._active&&!_b._paused){ +return _b; +} +} +_b._fire("beforeBegin",[_b.node]); +var de=_9||_b.delay,_c=dojo.hitch(_b,"_play",_a); +if(de>0){ +_b._delayTimer=setTimeout(_c,de); +return _b; +} +_c(); +return _b; +},_play:function(_d){ +var _e=this; +if(_e._delayTimer){ +_e._clearTimer(); +} +_e._startTime=new Date().valueOf(); +if(_e._paused){ +_e._startTime-=_e.duration*_e._percent; +} +_e._active=true; +_e._paused=false; +var _f=_e.curve.getValue(_e._getStep()); +if(!_e._percent){ +if(!_e._startRepeatCount){ +_e._startRepeatCount=_e.repeat; +} +_e._fire("onBegin",[_f]); +} +_e._fire("onPlay",[_f]); +_e._cycle(); +return _e; +},pause:function(){ +var _10=this; +if(_10._delayTimer){ +_10._clearTimer(); +} +_10._stopTimer(); +if(!_10._active){ +return _10; +} +_10._paused=true; +_10._fire("onPause",[_10.curve.getValue(_10._getStep())]); +return _10; +},gotoPercent:function(_11,_12){ +var _13=this; +_13._stopTimer(); +_13._active=_13._paused=true; +_13._percent=_11; +if(_12){ +_13.play(); +} +return _13; +},stop:function(_14){ +var _15=this; +if(_15._delayTimer){ +_15._clearTimer(); +} +if(!_15._timer){ +return _15; +} +_15._stopTimer(); +if(_14){ +_15._percent=1; +} +_15._fire("onStop",[_15.curve.getValue(_15._getStep())]); +_15._active=_15._paused=false; +return _15; +},status:function(){ +if(this._active){ +return this._paused?"paused":"playing"; +} +return "stopped"; +},_cycle:function(){ +var _16=this; +if(_16._active){ +var _17=new Date().valueOf(); +var _18=(_17-_16._startTime)/(_16.duration); +if(_18>=1){ +_18=1; +} +_16._percent=_18; +if(_16.easing){ +_18=_16.easing(_18); +} +_16._fire("onAnimate",[_16.curve.getValue(_18)]); +if(_16._percent<1){ +_16._startTimer(); +}else{ +_16._active=false; +if(_16.repeat>0){ +_16.repeat--; +_16.play(null,true); +}else{ +if(_16.repeat==-1){ +_16.play(null,true); +}else{ +if(_16._startRepeatCount){ +_16.repeat=_16._startRepeatCount; +_16._startRepeatCount=0; +} +} +} +_16._percent=0; +_16._fire("onEnd",[_16.node]); +!_16.repeat&&_16._stopTimer(); +} +} +return _16; +},_clearTimer:function(){ +clearTimeout(this._delayTimer); +delete this._delayTimer; +}}); +var ctr=0,_19=null,_1a={run:function(){ +}}; +d.extend(d.Animation,{_startTimer:function(){ +if(!this._timer){ +this._timer=d.connect(_1a,"run",this,"_cycle"); +ctr++; +} +if(!_19){ +_19=setInterval(d.hitch(_1a,"run"),this.rate); +} +},_stopTimer:function(){ +if(this._timer){ +d.disconnect(this._timer); +this._timer=null; +ctr--; +} +if(ctr<=0){ +clearInterval(_19); +_19=null; +ctr=0; +} +}}); +var _1b=d.isIE?function(_1c){ +var ns=_1c.style; +if(!ns.width.length&&d.style(_1c,"width")=="auto"){ +ns.width="auto"; +} +}:function(){ +}; +dojo._fade=function(_1d){ +_1d.node=d.byId(_1d.node); +var _1e=_1({properties:{}},_1d),_1f=(_1e.properties.opacity={}); +_1f.start=!("start" in _1e)?function(){ +return +d.style(_1e.node,"opacity")||0; +}:_1e.start; +_1f.end=_1e.end; +var _20=d.animateProperty(_1e); +d.connect(_20,"beforeBegin",d.partial(_1b,_1e.node)); +return _20; +}; +dojo.fadeIn=function(_21){ +return d._fade(_1({end:1},_21)); +}; +dojo.fadeOut=function(_22){ +return d._fade(_1({end:0},_22)); +}; +dojo._defaultEasing=function(n){ +return 0.5+((Math.sin((n+1.5)*Math.PI))/2); +}; +var _23=function(_24){ +this._properties=_24; +for(var p in _24){ +var _25=_24[p]; +if(_25.start instanceof d.Color){ +_25.tempColor=new d.Color(); +} +} +}; +_23.prototype.getValue=function(r){ +var ret={}; +for(var p in this._properties){ +var _26=this._properties[p],_27=_26.start; +if(_27 instanceof d.Color){ +ret[p]=d.blendColors(_27,_26.end,r,_26.tempColor).toCss(); +}else{ +if(!d.isArray(_27)){ +ret[p]=((_26.end-_27)*r)+_27+(p!="opacity"?_26.units||"px":0); +} +} +} +return ret; +}; +dojo.animateProperty=function(_28){ +var n=_28.node=d.byId(_28.node); +if(!_28.easing){ +_28.easing=d._defaultEasing; +} +var _29=new d.Animation(_28); +d.connect(_29,"beforeBegin",_29,function(){ +var pm={}; +for(var p in this.properties){ +if(p=="width"||p=="height"){ +this.node.display="block"; +} +var _2a=this.properties[p]; +if(d.isFunction(_2a)){ +_2a=_2a(n); +} +_2a=pm[p]=_1({},(d.isObject(_2a)?_2a:{end:_2a})); +if(d.isFunction(_2a.start)){ +_2a.start=_2a.start(n); +} +if(d.isFunction(_2a.end)){ +_2a.end=_2a.end(n); +} +var _2b=(p.toLowerCase().indexOf("color")>=0); +function _2c(_2d,p){ +var v={height:_2d.offsetHeight,width:_2d.offsetWidth}[p]; +if(v!==undefined){ +return v; +} +v=d.style(_2d,p); +return (p=="opacity")?+v:(_2b?v:parseFloat(v)); +}; +if(!("end" in _2a)){ +_2a.end=_2c(n,p); +}else{ +if(!("start" in _2a)){ +_2a.start=_2c(n,p); +} +} +if(_2b){ +_2a.start=new d.Color(_2a.start); +_2a.end=new d.Color(_2a.end); +}else{ +_2a.start=(p=="opacity")?+_2a.start:parseFloat(_2a.start); +} +} +this.curve=new _23(pm); +}); +d.connect(_29,"onAnimate",d.hitch(d,"style",_29.node)); +return _29; +}; +dojo.anim=function(_2e,_2f,_30,_31,_32,_33){ +return d.animateProperty({node:_2e,duration:_30||d.Animation.prototype.duration,properties:_2f,easing:_31,onEnd:_32}).play(_33||0); +}; +})(); +} diff --git a/lib/dojo/_base/html.js b/lib/dojo/_base/html.js new file mode 100644 index 000000000..050841531 --- /dev/null +++ b/lib/dojo/_base/html.js @@ -0,0 +1,749 @@ +/* + 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["dojo._base.html"]){ +dojo._hasResource["dojo._base.html"]=true; +dojo.require("dojo._base.lang"); +dojo.provide("dojo._base.html"); +try{ +document.execCommand("BackgroundImageCache",false,true); +} +catch(e){ +} +if(dojo.isIE||dojo.isOpera){ +dojo.byId=function(id,_1){ +if(typeof id!="string"){ +return id; +} +var _2=_1||dojo.doc,te=_2.getElementById(id); +if(te&&(te.attributes.id.value==id||te.id==id)){ +return te; +}else{ +var _3=_2.all[id]; +if(!_3||_3.nodeName){ +_3=[_3]; +} +var i=0; +while((te=_3[i++])){ +if((te.attributes&&te.attributes.id&&te.attributes.id.value==id)||te.id==id){ +return te; +} +} +} +}; +}else{ +dojo.byId=function(id,_4){ +return (typeof id=="string")?(_4||dojo.doc).getElementById(id):id; +}; +} +(function(){ +var d=dojo; +var _5=d.byId; +var _6=null,_7; +d.addOnWindowUnload(function(){ +_6=null; +}); +dojo._destroyElement=dojo.destroy=function(_8){ +_8=_5(_8); +try{ +var _9=_8.ownerDocument; +if(!_6||_7!=_9){ +_6=_9.createElement("div"); +_7=_9; +} +_6.appendChild(_8.parentNode?_8.parentNode.removeChild(_8):_8); +_6.innerHTML=""; +} +catch(e){ +} +}; +dojo.isDescendant=function(_a,_b){ +try{ +_a=_5(_a); +_b=_5(_b); +while(_a){ +if(_a==_b){ +return true; +} +_a=_a.parentNode; +} +} +catch(e){ +} +return false; +}; +dojo.setSelectable=function(_c,_d){ +_c=_5(_c); +if(d.isMozilla){ +_c.style.MozUserSelect=_d?"":"none"; +}else{ +if(d.isKhtml||d.isWebKit){ +_c.style.KhtmlUserSelect=_d?"auto":"none"; +}else{ +if(d.isIE){ +var v=(_c.unselectable=_d?"":"on"); +d.query("*",_c).forEach("item.unselectable = '"+v+"'"); +} +} +} +}; +var _e=function(_f,ref){ +var _10=ref.parentNode; +if(_10){ +_10.insertBefore(_f,ref); +} +}; +var _11=function(_12,ref){ +var _13=ref.parentNode; +if(_13){ +if(_13.lastChild==ref){ +_13.appendChild(_12); +}else{ +_13.insertBefore(_12,ref.nextSibling); +} +} +}; +dojo.place=function(_14,_15,_16){ +_15=_5(_15); +if(typeof _14=="string"){ +_14=_14.charAt(0)=="<"?d._toDom(_14,_15.ownerDocument):_5(_14); +} +if(typeof _16=="number"){ +var cn=_15.childNodes; +if(!cn.length||cn.length<=_16){ +_15.appendChild(_14); +}else{ +_e(_14,cn[_16<0?0:_16]); +} +}else{ +switch(_16){ +case "before": +_e(_14,_15); +break; +case "after": +_11(_14,_15); +break; +case "replace": +_15.parentNode.replaceChild(_14,_15); +break; +case "only": +d.empty(_15); +_15.appendChild(_14); +break; +case "first": +if(_15.firstChild){ +_e(_14,_15.firstChild); +break; +} +default: +_15.appendChild(_14); +} +} +return _14; +}; +dojo.boxModel="content-box"; +if(d.isIE){ +d.boxModel=document.compatMode=="BackCompat"?"border-box":"content-box"; +} +var gcs; +if(d.isWebKit){ +gcs=function(_17){ +var s; +if(_17.nodeType==1){ +var dv=_17.ownerDocument.defaultView; +s=dv.getComputedStyle(_17,null); +if(!s&&_17.style){ +_17.style.display=""; +s=dv.getComputedStyle(_17,null); +} +} +return s||{}; +}; +}else{ +if(d.isIE){ +gcs=function(_18){ +return _18.nodeType==1?_18.currentStyle:{}; +}; +}else{ +gcs=function(_19){ +return _19.nodeType==1?_19.ownerDocument.defaultView.getComputedStyle(_19,null):{}; +}; +} +} +dojo.getComputedStyle=gcs; +if(!d.isIE){ +d._toPixelValue=function(_1a,_1b){ +return parseFloat(_1b)||0; +}; +}else{ +d._toPixelValue=function(_1c,_1d){ +if(!_1d){ +return 0; +} +if(_1d=="medium"){ +return 4; +} +if(_1d.slice&&_1d.slice(-2)=="px"){ +return parseFloat(_1d); +} +with(_1c){ +var _1e=style.left; +var _1f=runtimeStyle.left; +runtimeStyle.left=currentStyle.left; +try{ +style.left=_1d; +_1d=style.pixelLeft; +} +catch(e){ +_1d=0; +} +style.left=_1e; +runtimeStyle.left=_1f; +} +return _1d; +}; +} +var px=d._toPixelValue; +var _20="DXImageTransform.Microsoft.Alpha"; +var af=function(n,f){ +try{ +return n.filters.item(_20); +} +catch(e){ +return f?{}:null; +} +}; +dojo._getOpacity=d.isIE?function(_21){ +try{ +return af(_21).Opacity/100; +} +catch(e){ +return 1; +} +}:function(_22){ +return gcs(_22).opacity; +}; +dojo._setOpacity=d.isIE?function(_23,_24){ +var ov=_24*100,_25=_24==1; +_23.style.zoom=_25?"":1; +if(!af(_23)){ +if(_25){ +return _24; +} +_23.style.filter+=" progid:"+_20+"(Opacity="+ov+")"; +}else{ +af(_23,1).Opacity=ov; +} +af(_23,1).Enabled=!_25; +if(_23.nodeName.toLowerCase()=="tr"){ +d.query("> td",_23).forEach(function(i){ +d._setOpacity(i,_24); +}); +} +return _24; +}:function(_26,_27){ +return _26.style.opacity=_27; +}; +var _28={left:true,top:true}; +var _29=/margin|padding|width|height|max|min|offset/; +var _2a=function(_2b,_2c,_2d){ +_2c=_2c.toLowerCase(); +if(d.isIE){ +if(_2d=="auto"){ +if(_2c=="height"){ +return _2b.offsetHeight; +} +if(_2c=="width"){ +return _2b.offsetWidth; +} +} +if(_2c=="fontweight"){ +switch(_2d){ +case 700: +return "bold"; +case 400: +default: +return "normal"; +} +} +} +if(!(_2c in _28)){ +_28[_2c]=_29.test(_2c); +} +return _28[_2c]?px(_2b,_2d):_2d; +}; +var _2e=d.isIE?"styleFloat":"cssFloat",_2f={"cssFloat":_2e,"styleFloat":_2e,"float":_2e}; +dojo.style=function(_30,_31,_32){ +var n=_5(_30),_33=arguments.length,op=(_31=="opacity"); +_31=_2f[_31]||_31; +if(_33==3){ +return op?d._setOpacity(n,_32):n.style[_31]=_32; +} +if(_33==2&&op){ +return d._getOpacity(n); +} +var s=gcs(n); +if(_33==2&&typeof _31!="string"){ +for(var x in _31){ +d.style(_30,x,_31[x]); +} +return s; +} +return (_33==1)?s:_2a(n,_31,s[_31]||n.style[_31]); +}; +dojo._getPadExtents=function(n,_34){ +var s=_34||gcs(n),l=px(n,s.paddingLeft),t=px(n,s.paddingTop); +return {l:l,t:t,w:l+px(n,s.paddingRight),h:t+px(n,s.paddingBottom)}; +}; +dojo._getBorderExtents=function(n,_35){ +var ne="none",s=_35||gcs(n),bl=(s.borderLeftStyle!=ne?px(n,s.borderLeftWidth):0),bt=(s.borderTopStyle!=ne?px(n,s.borderTopWidth):0); +return {l:bl,t:bt,w:bl+(s.borderRightStyle!=ne?px(n,s.borderRightWidth):0),h:bt+(s.borderBottomStyle!=ne?px(n,s.borderBottomWidth):0)}; +}; +dojo._getPadBorderExtents=function(n,_36){ +var s=_36||gcs(n),p=d._getPadExtents(n,s),b=d._getBorderExtents(n,s); +return {l:p.l+b.l,t:p.t+b.t,w:p.w+b.w,h:p.h+b.h}; +}; +dojo._getMarginExtents=function(n,_37){ +var s=_37||gcs(n),l=px(n,s.marginLeft),t=px(n,s.marginTop),r=px(n,s.marginRight),b=px(n,s.marginBottom); +if(d.isWebKit&&(s.position!="absolute")){ +r=l; +} +return {l:l,t:t,w:l+r,h:t+b}; +}; +dojo._getMarginBox=function(_38,_39){ +var s=_39||gcs(_38),me=d._getMarginExtents(_38,s); +var l=_38.offsetLeft-me.l,t=_38.offsetTop-me.t,p=_38.parentNode; +if(d.isMoz){ +var sl=parseFloat(s.left),st=parseFloat(s.top); +if(!isNaN(sl)&&!isNaN(st)){ +l=sl,t=st; +}else{ +if(p&&p.style){ +var pcs=gcs(p); +if(pcs.overflow!="visible"){ +var be=d._getBorderExtents(p,pcs); +l+=be.l,t+=be.t; +} +} +} +}else{ +if(d.isOpera||(d.isIE>7&&!d.isQuirks)){ +if(p){ +be=d._getBorderExtents(p); +l-=be.l; +t-=be.t; +} +} +} +return {l:l,t:t,w:_38.offsetWidth+me.w,h:_38.offsetHeight+me.h}; +}; +dojo._getContentBox=function(_3a,_3b){ +var s=_3b||gcs(_3a),pe=d._getPadExtents(_3a,s),be=d._getBorderExtents(_3a,s),w=_3a.clientWidth,h; +if(!w){ +w=_3a.offsetWidth,h=_3a.offsetHeight; +}else{ +h=_3a.clientHeight,be.w=be.h=0; +} +if(d.isOpera){ +pe.l+=be.l; +pe.t+=be.t; +} +return {l:pe.l,t:pe.t,w:w-pe.w-be.w,h:h-pe.h-be.h}; +}; +dojo._getBorderBox=function(_3c,_3d){ +var s=_3d||gcs(_3c),pe=d._getPadExtents(_3c,s),cb=d._getContentBox(_3c,s); +return {l:cb.l-pe.l,t:cb.t-pe.t,w:cb.w+pe.w,h:cb.h+pe.h}; +}; +dojo._setBox=function(_3e,l,t,w,h,u){ +u=u||"px"; +var s=_3e.style; +if(!isNaN(l)){ +s.left=l+u; +} +if(!isNaN(t)){ +s.top=t+u; +} +if(w>=0){ +s.width=w+u; +} +if(h>=0){ +s.height=h+u; +} +}; +dojo._isButtonTag=function(_3f){ +return _3f.tagName=="BUTTON"||_3f.tagName=="INPUT"&&(_3f.getAttribute("type")||"").toUpperCase()=="BUTTON"; +}; +dojo._usesBorderBox=function(_40){ +var n=_40.tagName; +return d.boxModel=="border-box"||n=="TABLE"||d._isButtonTag(_40); +}; +dojo._setContentSize=function(_41,_42,_43,_44){ +if(d._usesBorderBox(_41)){ +var pb=d._getPadBorderExtents(_41,_44); +if(_42>=0){ +_42+=pb.w; +} +if(_43>=0){ +_43+=pb.h; +} +} +d._setBox(_41,NaN,NaN,_42,_43); +}; +dojo._setMarginBox=function(_45,_46,_47,_48,_49,_4a){ +var s=_4a||gcs(_45),bb=d._usesBorderBox(_45),pb=bb?_4b:d._getPadBorderExtents(_45,s); +if(d.isWebKit){ +if(d._isButtonTag(_45)){ +var ns=_45.style; +if(_48>=0&&!ns.width){ +ns.width="4px"; +} +if(_49>=0&&!ns.height){ +ns.height="4px"; +} +} +} +var mb=d._getMarginExtents(_45,s); +if(_48>=0){ +_48=Math.max(_48-pb.w-mb.w,0); +} +if(_49>=0){ +_49=Math.max(_49-pb.h-mb.h,0); +} +d._setBox(_45,_46,_47,_48,_49); +}; +var _4b={l:0,t:0,w:0,h:0}; +dojo.marginBox=function(_4c,box){ +var n=_5(_4c),s=gcs(n),b=box; +return !b?d._getMarginBox(n,s):d._setMarginBox(n,b.l,b.t,b.w,b.h,s); +}; +dojo.contentBox=function(_4d,box){ +var n=_5(_4d),s=gcs(n),b=box; +return !b?d._getContentBox(n,s):d._setContentSize(n,b.w,b.h,s); +}; +var _4e=function(_4f,_50){ +if(!(_4f=(_4f||0).parentNode)){ +return 0; +} +var val,_51=0,_52=d.body(); +while(_4f&&_4f.style){ +if(gcs(_4f).position=="fixed"){ +return 0; +} +val=_4f[_50]; +if(val){ +_51+=val-0; +if(_4f==_52){ +break; +} +} +_4f=_4f.parentNode; +} +return _51; +}; +dojo._docScroll=function(){ +var n=d.global; +return "pageXOffset" in n?{x:n.pageXOffset,y:n.pageYOffset}:(n=d.doc.documentElement,n.clientHeight?{x:d._fixIeBiDiScrollLeft(n.scrollLeft),y:n.scrollTop}:(n=d.body(),{x:n.scrollLeft||0,y:n.scrollTop||0})); +}; +dojo._isBodyLtr=function(){ +return "_bodyLtr" in d?d._bodyLtr:d._bodyLtr=(d.body().dir||d.doc.documentElement.dir||"ltr").toLowerCase()=="ltr"; +}; +dojo._getIeDocumentElementOffset=function(){ +var de=d.doc.documentElement; +if(d.isIE<8){ +var r=de.getBoundingClientRect(); +var l=r.left,t=r.top; +if(d.isIE<7){ +l+=de.clientLeft; +t+=de.clientTop; +} +return {x:l<0?0:l,y:t<0?0:t}; +}else{ +return {x:0,y:0}; +} +}; +dojo._fixIeBiDiScrollLeft=function(_53){ +var dd=d.doc; +if(d.isIE<8&&!d._isBodyLtr()){ +var de=d.isQuirks?dd.body:dd.documentElement; +return _53+de.clientWidth-de.scrollWidth; +} +return _53; +}; +dojo._abs=dojo.position=function(_54,_55){ +var db=d.body(),dh=db.parentNode,ret; +_54=_5(_54); +if(_54["getBoundingClientRect"]){ +ret=_54.getBoundingClientRect(); +ret={x:ret.left,y:ret.top,w:ret.right-ret.left,h:ret.bottom-ret.top}; +if(d.isIE){ +var _56=d._getIeDocumentElementOffset(); +ret.x-=_56.x+(d.isQuirks?db.clientLeft+db.offsetLeft:0); +ret.y-=_56.y+(d.isQuirks?db.clientTop+db.offsetTop:0); +}else{ +if(d.isFF==3){ +var cs=gcs(dh); +ret.x-=px(dh,cs.marginLeft)+px(dh,cs.borderLeftWidth); +ret.y-=px(dh,cs.marginTop)+px(dh,cs.borderTopWidth); +} +} +}else{ +ret={x:0,y:0,w:_54.offsetWidth,h:_54.offsetHeight}; +if(_54["offsetParent"]){ +ret.x-=_4e(_54,"scrollLeft"); +ret.y-=_4e(_54,"scrollTop"); +var _57=_54; +do{ +var n=_57.offsetLeft,t=_57.offsetTop; +ret.x+=isNaN(n)?0:n; +ret.y+=isNaN(t)?0:t; +cs=gcs(_57); +if(_57!=_54){ +if(d.isMoz){ +ret.x+=2*px(_57,cs.borderLeftWidth); +ret.y+=2*px(_57,cs.borderTopWidth); +}else{ +ret.x+=px(_57,cs.borderLeftWidth); +ret.y+=px(_57,cs.borderTopWidth); +} +} +if(d.isMoz&&cs.position=="static"){ +var _58=_57.parentNode; +while(_58!=_57.offsetParent){ +var pcs=gcs(_58); +if(pcs.position=="static"){ +ret.x+=px(_57,pcs.borderLeftWidth); +ret.y+=px(_57,pcs.borderTopWidth); +} +_58=_58.parentNode; +} +} +_57=_57.offsetParent; +}while((_57!=dh)&&_57); +}else{ +if(_54.x&&_54.y){ +ret.x+=isNaN(_54.x)?0:_54.x; +ret.y+=isNaN(_54.y)?0:_54.y; +} +} +} +if(_55){ +var _59=d._docScroll(); +ret.x+=_59.x; +ret.y+=_59.y; +} +return ret; +}; +dojo.coords=function(_5a,_5b){ +var n=_5(_5a),s=gcs(n),mb=d._getMarginBox(n,s); +var abs=d.position(n,_5b); +mb.x=abs.x; +mb.y=abs.y; +return mb; +}; +var _5c={"class":"className","for":"htmlFor",tabindex:"tabIndex",readonly:"readOnly",colspan:"colSpan",frameborder:"frameBorder",rowspan:"rowSpan",valuetype:"valueType"},_5d={classname:"class",htmlfor:"for",tabindex:"tabIndex",readonly:"readOnly"},_5e={innerHTML:1,className:1,htmlFor:d.isIE,value:1}; +var _5f=function(_60){ +return _5d[_60.toLowerCase()]||_60; +}; +var _61=function(_62,_63){ +var _64=_62.getAttributeNode&&_62.getAttributeNode(_63); +return _64&&_64.specified; +}; +dojo.hasAttr=function(_65,_66){ +var lc=_66.toLowerCase(); +return _5e[_5c[lc]||_66]||_61(_5(_65),_5d[lc]||_66); +}; +var _67={},_68=0,_69=dojo._scopeName+"attrid",_6a={col:1,colgroup:1,table:1,tbody:1,tfoot:1,thead:1,tr:1,title:1}; +dojo.attr=function(_6b,_6c,_6d){ +_6b=_5(_6b); +var _6e=arguments.length,_6f; +if(_6e==2&&typeof _6c!="string"){ +for(var x in _6c){ +d.attr(_6b,x,_6c[x]); +} +return _6b; +} +var lc=_6c.toLowerCase(),_70=_5c[lc]||_6c,_71=_5e[_70],_72=_5d[lc]||_6c; +if(_6e==3){ +do{ +if(_70=="style"&&typeof _6d!="string"){ +d.style(_6b,_6d); +break; +} +if(_70=="innerHTML"){ +if(d.isIE&&_6b.tagName.toLowerCase() in _6a){ +d.empty(_6b); +_6b.appendChild(d._toDom(_6d,_6b.ownerDocument)); +}else{ +_6b[_70]=_6d; +} +break; +} +if(d.isFunction(_6d)){ +var _73=d.attr(_6b,_69); +if(!_73){ +_73=_68++; +d.attr(_6b,_69,_73); +} +if(!_67[_73]){ +_67[_73]={}; +} +var h=_67[_73][_70]; +if(h){ +d.disconnect(h); +}else{ +try{ +delete _6b[_70]; +} +catch(e){ +} +} +_67[_73][_70]=d.connect(_6b,_70,_6d); +break; +} +if(_71||typeof _6d=="boolean"){ +_6b[_70]=_6d; +break; +} +_6b.setAttribute(_72,_6d); +}while(false); +return _6b; +} +_6d=_6b[_70]; +if(_71&&typeof _6d!="undefined"){ +return _6d; +} +if(_70!="href"&&(typeof _6d=="boolean"||d.isFunction(_6d))){ +return _6d; +} +return _61(_6b,_72)?_6b.getAttribute(_72):null; +}; +dojo.removeAttr=function(_74,_75){ +_5(_74).removeAttribute(_5f(_75)); +}; +dojo.getNodeProp=function(_76,_77){ +_76=_5(_76); +var lc=_77.toLowerCase(),_78=_5c[lc]||_77; +if((_78 in _76)&&_78!="href"){ +return _76[_78]; +} +var _79=_5d[lc]||_77; +return _61(_76,_79)?_76.getAttribute(_79):null; +}; +dojo.create=function(tag,_7a,_7b,pos){ +var doc=d.doc; +if(_7b){ +_7b=_5(_7b); +doc=_7b.ownerDocument; +} +if(typeof tag=="string"){ +tag=doc.createElement(tag); +} +if(_7a){ +d.attr(tag,_7a); +} +if(_7b){ +d.place(tag,_7b,pos); +} +return tag; +}; +d.empty=d.isIE?function(_7c){ +_7c=_5(_7c); +for(var c;c=_7c.lastChild;){ +d.destroy(c); +} +}:function(_7d){ +_5(_7d).innerHTML=""; +}; +var _7e={option:["select"],tbody:["table"],thead:["table"],tfoot:["table"],tr:["table","tbody"],td:["table","tbody","tr"],th:["table","thead","tr"],legend:["fieldset"],caption:["table"],colgroup:["table"],col:["table","colgroup"],li:["ul"]},_7f=/<\s*([\w\:]+)/,_80={},_81=0,_82="__"+d._scopeName+"ToDomId"; +for(var _83 in _7e){ +var tw=_7e[_83]; +tw.pre=_83=="option"?"<select multiple=\"multiple\">":"<"+tw.join("><")+">"; +tw.post="</"+tw.reverse().join("></")+">"; +} +d._toDom=function(_84,doc){ +doc=doc||d.doc; +var _85=doc[_82]; +if(!_85){ +doc[_82]=_85=++_81+""; +_80[_85]=doc.createElement("div"); +} +_84+=""; +var _86=_84.match(_7f),tag=_86?_86[1].toLowerCase():"",_87=_80[_85],_88,i,fc,df; +if(_86&&_7e[tag]){ +_88=_7e[tag]; +_87.innerHTML=_88.pre+_84+_88.post; +for(i=_88.length;i;--i){ +_87=_87.firstChild; +} +}else{ +_87.innerHTML=_84; +} +if(_87.childNodes.length==1){ +return _87.removeChild(_87.firstChild); +} +df=doc.createDocumentFragment(); +while(fc=_87.firstChild){ +df.appendChild(fc); +} +return df; +}; +var _89="className"; +dojo.hasClass=function(_8a,_8b){ +return ((" "+_5(_8a)[_89]+" ").indexOf(" "+_8b+" ")>=0); +}; +var _8c=/\s+/,a1=[""],_8d=function(s){ +if(typeof s=="string"||s instanceof String){ +if(s.indexOf(" ")<0){ +a1[0]=s; +return a1; +}else{ +return s.split(_8c); +} +} +return s||""; +}; +dojo.addClass=function(_8e,_8f){ +_8e=_5(_8e); +_8f=_8d(_8f); +var cls=_8e[_89],_90; +cls=cls?" "+cls+" ":" "; +_90=cls.length; +for(var i=0,len=_8f.length,c;i<len;++i){ +c=_8f[i]; +if(c&&cls.indexOf(" "+c+" ")<0){ +cls+=c+" "; +} +} +if(_90<cls.length){ +_8e[_89]=cls.substr(1,cls.length-2); +} +}; +dojo.removeClass=function(_91,_92){ +_91=_5(_91); +var cls; +if(_92!==undefined){ +_92=_8d(_92); +cls=" "+_91[_89]+" "; +for(var i=0,len=_92.length;i<len;++i){ +cls=cls.replace(" "+_92[i]+" "," "); +} +cls=d.trim(cls); +}else{ +cls=""; +} +if(_91[_89]!=cls){ +_91[_89]=cls; +} +}; +dojo.toggleClass=function(_93,_94,_95){ +if(_95===undefined){ +_95=!d.hasClass(_93,_94); +} +d[_95?"addClass":"removeClass"](_93,_94); +}; +})(); +} diff --git a/lib/dojo/_base/json.js b/lib/dojo/_base/json.js new file mode 100644 index 000000000..7d8c5af65 --- /dev/null +++ b/lib/dojo/_base/json.js @@ -0,0 +1,81 @@ +/* + 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["dojo._base.json"]){ +dojo._hasResource["dojo._base.json"]=true; +dojo.provide("dojo._base.json"); +dojo.fromJson=function(_1){ +return eval("("+_1+")"); +}; +dojo._escapeString=function(_2){ +return ("\""+_2.replace(/(["\\])/g,"\\$1")+"\"").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r"); +}; +dojo.toJsonIndentStr="\t"; +dojo.toJson=function(it,_3,_4){ +if(it===undefined){ +return "undefined"; +} +var _5=typeof it; +if(_5=="number"||_5=="boolean"){ +return it+""; +} +if(it===null){ +return "null"; +} +if(dojo.isString(it)){ +return dojo._escapeString(it); +} +var _6=arguments.callee; +var _7; +_4=_4||""; +var _8=_3?_4+dojo.toJsonIndentStr:""; +var tf=it.__json__||it.json; +if(dojo.isFunction(tf)){ +_7=tf.call(it); +if(it!==_7){ +return _6(_7,_3,_8); +} +} +if(it.nodeType&&it.cloneNode){ +throw new Error("Can't serialize DOM nodes"); +} +var _9=_3?" ":""; +var _a=_3?"\n":""; +if(dojo.isArray(it)){ +var _b=dojo.map(it,function(_c){ +var _d=_6(_c,_3,_8); +if(typeof _d!="string"){ +_d="undefined"; +} +return _a+_8+_d; +}); +return "["+_b.join(","+_9)+_a+_4+"]"; +} +if(_5=="function"){ +return null; +} +var _e=[],_f; +for(_f in it){ +var _10,val; +if(typeof _f=="number"){ +_10="\""+_f+"\""; +}else{ +if(typeof _f=="string"){ +_10=dojo._escapeString(_f); +}else{ +continue; +} +} +val=_6(it[_f],_3,_8); +if(typeof val!="string"){ +continue; +} +_e.push(_a+_8+_10+":"+_9+val); +} +return "{"+_e.join(","+_9)+_a+_4+"}"; +}; +} diff --git a/lib/dojo/_base/lang.js b/lib/dojo/_base/lang.js new file mode 100644 index 000000000..e7721a352 --- /dev/null +++ b/lib/dojo/_base/lang.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["dojo._base.lang"]){ +dojo._hasResource["dojo._base.lang"]=true; +dojo.provide("dojo._base.lang"); +(function(){ +var d=dojo,_1=Object.prototype.toString; +dojo.isString=function(it){ +return (typeof it=="string"||it instanceof String); +}; +dojo.isArray=function(it){ +return it&&(it instanceof Array||typeof it=="array"); +}; +dojo.isFunction=function(it){ +return _1.call(it)==="[object Function]"; +}; +dojo.isObject=function(it){ +return it!==undefined&&(it===null||typeof it=="object"||d.isArray(it)||d.isFunction(it)); +}; +dojo.isArrayLike=function(it){ +return it&&it!==undefined&&!d.isString(it)&&!d.isFunction(it)&&!(it.tagName&&it.tagName.toLowerCase()=="form")&&(d.isArray(it)||isFinite(it.length)); +}; +dojo.isAlien=function(it){ +return it&&!d.isFunction(it)&&/\{\s*\[native code\]\s*\}/.test(String(it)); +}; +dojo.extend=function(_2,_3){ +for(var i=1,l=arguments.length;i<l;i++){ +d._mixin(_2.prototype,arguments[i]); +} +return _2; +}; +dojo._hitchArgs=function(_4,_5){ +var _6=d._toArray(arguments,2); +var _7=d.isString(_5); +return function(){ +var _8=d._toArray(arguments); +var f=_7?(_4||d.global)[_5]:_5; +return f&&f.apply(_4||this,_6.concat(_8)); +}; +}; +dojo.hitch=function(_9,_a){ +if(arguments.length>2){ +return d._hitchArgs.apply(d,arguments); +} +if(!_a){ +_a=_9; +_9=null; +} +if(d.isString(_a)){ +_9=_9||d.global; +if(!_9[_a]){ +throw (["dojo.hitch: scope[\"",_a,"\"] is null (scope=\"",_9,"\")"].join("")); +} +return function(){ +return _9[_a].apply(_9,arguments||[]); +}; +} +return !_9?_a:function(){ +return _a.apply(_9,arguments||[]); +}; +}; +dojo.delegate=dojo._delegate=(function(){ +function _b(){ +}; +return function(_c,_d){ +_b.prototype=_c; +var _e=new _b(); +_b.prototype=null; +if(_d){ +d._mixin(_e,_d); +} +return _e; +}; +})(); +var _f=function(obj,_10,_11){ +return (_11||[]).concat(Array.prototype.slice.call(obj,_10||0)); +}; +var _12=function(obj,_13,_14){ +var arr=_14||[]; +for(var x=_13||0;x<obj.length;x++){ +arr.push(obj[x]); +} +return arr; +}; +dojo._toArray=d.isIE?function(obj){ +return ((obj.item)?_12:_f).apply(this,arguments); +}:_f; +dojo.partial=function(_15){ +var arr=[null]; +return d.hitch.apply(d,arr.concat(d._toArray(arguments))); +}; +var _16=d._extraNames,_17=_16.length,_18={}; +dojo.clone=function(o){ +if(!o||typeof o!="object"||d.isFunction(o)){ +return o; +} +if(o.nodeType&&"cloneNode" in o){ +return o.cloneNode(true); +} +if(o instanceof Date){ +return new Date(o.getTime()); +} +var r,i,l,s,_19; +if(d.isArray(o)){ +r=[]; +for(i=0,l=o.length;i<l;++i){ +if(i in o){ +r.push(d.clone(o[i])); +} +} +}else{ +r=o.constructor?new o.constructor():{}; +} +for(_19 in o){ +s=o[_19]; +if(!(_19 in r)||(r[_19]!==s&&(!(_19 in _18)||_18[_19]!==s))){ +r[_19]=d.clone(s); +} +} +if(_17){ +for(i=0;i<_17;++i){ +_19=_16[i]; +s=o[_19]; +if(!(_19 in r)||(r[_19]!==s&&(!(_19 in _18)||_18[_19]!==s))){ +r[_19]=s; +} +} +} +return r; +}; +dojo.trim=String.prototype.trim?function(str){ +return str.trim(); +}:function(str){ +return str.replace(/^\s\s*/,"").replace(/\s\s*$/,""); +}; +var _1a=/\{([^\}]+)\}/g; +dojo.replace=function(_1b,map,_1c){ +return _1b.replace(_1c||_1a,d.isFunction(map)?map:function(_1d,k){ +return d.getObject(k,false,map); +}); +}; +})(); +} diff --git a/lib/dojo/_base/query-sizzle.js b/lib/dojo/_base/query-sizzle.js new file mode 100644 index 000000000..ac26c1816 --- /dev/null +++ b/lib/dojo/_base/query-sizzle.js @@ -0,0 +1,628 @@ +/* + 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["dojo._base.query"]){ +dojo._hasResource["dojo._base.query"]=true; +if(typeof dojo!="undefined"){ +dojo.provide("dojo._base.query"); +dojo.require("dojo._base.NodeList"); +dojo.query=function(_1,_2,_3){ +_3=_3||dojo.NodeList; +if(!_1){ +return new _3(); +} +if(_1.constructor==_3){ +return _1; +} +if(!dojo.isString(_1)){ +return new _3(_1); +} +if(dojo.isString(_2)){ +_2=dojo.byId(_2); +if(!_2){ +return new _3(); +} +} +return dojo.Sizzle(_1,_2,new _3()); +}; +dojo._filterQueryResult=function(_4,_5){ +return dojo.Sizzle.filter(_5,_4); +}; +} +(function(ns){ +var _6=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|[^[\]]+)+\]|\\.|[^ >+~,(\[]+)+|[>+~])(\s*,\s*)?/g,_7=0,_8=Object.prototype.toString; +var _9=function(_a,_b,_c,_d){ +_c=_c||[]; +_b=_b||document; +if(_b.nodeType!==1&&_b.nodeType!==9){ +return []; +} +if(!_a||typeof _a!=="string"){ +return _c; +} +var _e=[],m,_f,_10,_11,_12,_13,_14=true; +_6.lastIndex=0; +while((m=_6.exec(_a))!==null){ +_e.push(m[1]); +if(m[2]){ +_13=RegExp.rightContext; +break; +} +} +if(_e.length>1&&_15.match.POS.exec(_a)){ +if(_e.length===2&&_15.relative[_e[0]]){ +var _16="",_17; +while((_17=_15.match.POS.exec(_a))){ +_16+=_17[0]; +_a=_a.replace(_15.match.POS,""); +} +_f=_9.filter(_16,_9(_a,_b)); +}else{ +_f=_15.relative[_e[0]]?[_b]:_9(_e.shift(),_b); +while(_e.length){ +var _18=[]; +_a=_e.shift(); +if(_15.relative[_a]){ +_a+=_e.shift(); +} +for(var i=0,l=_f.length;i<l;i++){ +_9(_a,_f[i],_18); +} +_f=_18; +} +} +}else{ +var ret=_d?{expr:_e.pop(),set:_19(_d)}:_9.find(_e.pop(),_e.length===1&&_b.parentNode?_b.parentNode:_b); +_f=_9.filter(ret.expr,ret.set); +if(_e.length>0){ +_10=_19(_f); +}else{ +_14=false; +} +while(_e.length){ +var cur=_e.pop(),pop=cur; +if(!_15.relative[cur]){ +cur=""; +}else{ +pop=_e.pop(); +} +if(pop==null){ +pop=_b; +} +_15.relative[cur](_10,pop); +} +} +if(!_10){ +_10=_f; +} +if(!_10){ +throw "Syntax error, unrecognized expression: "+(cur||_a); +} +if(_8.call(_10)==="[object Array]"){ +if(!_14){ +_c.push.apply(_c,_10); +}else{ +if(_b.nodeType===1){ +for(var i=0;_10[i]!=null;i++){ +if(_10[i]&&(_10[i]===true||_10[i].nodeType===1&&_1a(_b,_10[i]))){ +_c.push(_f[i]); +} +} +}else{ +for(var i=0;_10[i]!=null;i++){ +if(_10[i]&&_10[i].nodeType===1){ +_c.push(_f[i]); +} +} +} +} +}else{ +_19(_10,_c); +} +if(_13){ +_9(_13,_b,_c,_d); +} +return _c; +}; +_9.matches=function(_1b,set){ +return _9(_1b,null,null,set); +}; +_9.find=function(_1c,_1d){ +var set,_1e; +if(!_1c){ +return []; +} +for(var i=0,l=_15.order.length;i<l;i++){ +var _1f=_15.order[i],_1e; +if((_1e=_15.match[_1f].exec(_1c))){ +var _20=RegExp.leftContext; +if(_20.substr(_20.length-1)!=="\\"){ +_1e[1]=(_1e[1]||"").replace(/\\/g,""); +set=_15.find[_1f](_1e,_1d); +if(set!=null){ +_1c=_1c.replace(_15.match[_1f],""); +break; +} +} +} +} +if(!set){ +set=_1d.getElementsByTagName("*"); +} +return {set:set,expr:_1c}; +}; +_9.filter=function(_21,set,_22,not){ +var old=_21,_23=[],_24=set,_25,_26; +while(_21&&set.length){ +for(var _27 in _15.filter){ +if((_25=_15.match[_27].exec(_21))!=null){ +var _28=_15.filter[_27],_29=null,_2a=0,_2b,_2c; +_26=false; +if(_24==_23){ +_23=[]; +} +if(_15.preFilter[_27]){ +_25=_15.preFilter[_27](_25,_24,_22,_23,not); +if(!_25){ +_26=_2b=true; +}else{ +if(_25[0]===true){ +_29=[]; +var _2d=null,_2e; +for(var i=0;(_2e=_24[i])!==undefined;i++){ +if(_2e&&_2d!==_2e){ +_29.push(_2e); +_2d=_2e; +} +} +} +} +} +if(_25){ +for(var i=0;(_2c=_24[i])!==undefined;i++){ +if(_2c){ +if(_29&&_2c!=_29[_2a]){ +_2a++; +} +_2b=_28(_2c,_25,_2a,_29); +var _2f=not^!!_2b; +if(_22&&_2b!=null){ +if(_2f){ +_26=true; +}else{ +_24[i]=false; +} +}else{ +if(_2f){ +_23.push(_2c); +_26=true; +} +} +} +} +} +if(_2b!==undefined){ +if(!_22){ +_24=_23; +} +_21=_21.replace(_15.match[_27],""); +if(!_26){ +return []; +} +break; +} +} +} +_21=_21.replace(/\s*,\s*/,""); +if(_21==old){ +if(_26==null){ +throw "Syntax error, unrecognized expression: "+_21; +}else{ +break; +} +} +old=_21; +} +return _24; +}; +var _15=_9.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u0128-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u0128-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u0128-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[((?:[\w\u0128-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\]/,TAG:/^((?:[\w\u0128-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child\(?(even|odd|[\dn+-]*)\)?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)\(?(\d*)\)?(?:[^-]|$)/,PSEUDO:/:((?:[\w\u0128-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},relative:{"+":function(_30,_31){ +for(var i=0,l=_30.length;i<l;i++){ +var _32=_30[i]; +if(_32){ +var cur=_32.previousSibling; +while(cur&&cur.nodeType!==1){ +cur=cur.previousSibling; +} +_30[i]=typeof _31==="string"?cur||false:cur===_31; +} +} +if(typeof _31==="string"){ +_9.filter(_31,_30,true); +} +},">":function(_33,_34){ +if(typeof _34==="string"&&!/\W/.test(_34)){ +_34=_34.toUpperCase(); +for(var i=0,l=_33.length;i<l;i++){ +var _35=_33[i]; +if(_35){ +var _36=_35.parentNode; +_33[i]=_36.nodeName===_34?_36:false; +} +} +}else{ +for(var i=0,l=_33.length;i<l;i++){ +var _35=_33[i]; +if(_35){ +_33[i]=typeof _34==="string"?_35.parentNode:_35.parentNode===_34; +} +} +if(typeof _34==="string"){ +_9.filter(_34,_33,true); +} +} +},"":function(_37,_38){ +var _39="done"+(_7++),_3a=_3b; +if(!_38.match(/\W/)){ +var _3c=_38=_38.toUpperCase(); +_3a=_3d; +} +_3a("parentNode",_38,_39,_37,_3c); +},"~":function(_3e,_3f){ +var _40="done"+(_7++),_41=_3b; +if(typeof _3f==="string"&&!_3f.match(/\W/)){ +var _42=_3f=_3f.toUpperCase(); +_41=_3d; +} +_41("previousSibling",_3f,_40,_3e,_42); +}},find:{ID:function(_43,_44){ +if(_44.getElementById){ +var m=_44.getElementById(_43[1]); +return m?[m]:[]; +} +},NAME:function(_45,_46){ +return _46.getElementsByName?_46.getElementsByName(_45[1]):null; +},TAG:function(_47,_48){ +return _48.getElementsByTagName(_47[1]); +}},preFilter:{CLASS:function(_49,_4a,_4b,_4c,not){ +_49=" "+_49[1].replace(/\\/g,"")+" "; +for(var i=0;_4a[i];i++){ +if(not^(" "+_4a[i].className+" ").indexOf(_49)>=0){ +if(!_4b){ +_4c.push(_4a[i]); +} +}else{ +if(_4b){ +_4a[i]=false; +} +} +} +return false; +},ID:function(_4d){ +return _4d[1]; +},TAG:function(_4e){ +return _4e[1].toUpperCase(); +},CHILD:function(_4f){ +if(_4f[1]=="nth"){ +var _50=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(_4f[2]=="even"&&"2n"||_4f[2]=="odd"&&"2n+1"||!/\D/.test(_4f[2])&&"0n+"+_4f[2]||_4f[2]); +_4f[2]=(_50[1]+(_50[2]||1))-0; +_4f[3]=_50[3]-0; +} +_4f[0]="done"+(_7++); +return _4f; +},ATTR:function(_51){ +var _52=_51[1]; +if(_15.attrMap[_52]){ +_51[1]=_15.attrMap[_52]; +} +if(_51[2]==="~="){ +_51[4]=" "+_51[4]+" "; +} +return _51; +},PSEUDO:function(_53,_54,_55,_56,not){ +if(_53[1]==="not"){ +if(_53[3].match(_6).length>1){ +_53[3]=_9(_53[3],null,null,_54); +}else{ +var ret=_9.filter(_53[3],_54,_55,true^not); +if(!_55){ +_56.push.apply(_56,ret); +} +return false; +} +} +return _53; +},POS:function(_57){ +_57.unshift(true); +return _57; +}},filters:{enabled:function(_58){ +return _58.disabled===false&&_58.type!=="hidden"; +},disabled:function(_59){ +return _59.disabled===true; +},checked:function(_5a){ +return _5a.checked===true; +},selected:function(_5b){ +_5b.parentNode.selectedIndex; +return _5b.selected===true; +},parent:function(_5c){ +return !!_5c.firstChild; +},empty:function(_5d){ +return !_5d.firstChild; +},has:function(_5e,i,_5f){ +return !!_9(_5f[3],_5e).length; +},header:function(_60){ +return /h\d/i.test(_60.nodeName); +},text:function(_61){ +return "text"===_61.type; +},radio:function(_62){ +return "radio"===_62.type; +},checkbox:function(_63){ +return "checkbox"===_63.type; +},file:function(_64){ +return "file"===_64.type; +},password:function(_65){ +return "password"===_65.type; +},submit:function(_66){ +return "submit"===_66.type; +},image:function(_67){ +return "image"===_67.type; +},reset:function(_68){ +return "reset"===_68.type; +},button:function(_69){ +return "button"===_69.type||_69.nodeName.toUpperCase()==="BUTTON"; +},input:function(_6a){ +return /input|select|textarea|button/i.test(_6a.nodeName); +}},setFilters:{first:function(_6b,i){ +return i===0; +},last:function(_6c,i,_6d,_6e){ +return i===_6e.length-1; +},even:function(_6f,i){ +return i%2===0; +},odd:function(_70,i){ +return i%2===1; +},lt:function(_71,i,_72){ +return i<_72[3]-0; +},gt:function(_73,i,_74){ +return i>_74[3]-0; +},nth:function(_75,i,_76){ +return _76[3]-0==i; +},eq:function(_77,i,_78){ +return _78[3]-0==i; +}},filter:{CHILD:function(_79,_7a){ +var _7b=_7a[1],_7c=_79.parentNode; +var _7d=_7a[0]; +if(_7c&&!_7c[_7d]){ +var _7e=1; +for(var _7f=_7c.firstChild;_7f;_7f=_7f.nextSibling){ +if(_7f.nodeType==1){ +_7f.nodeIndex=_7e++; +} +} +_7c[_7d]=_7e-1; +} +if(_7b=="first"){ +return _79.nodeIndex==1; +}else{ +if(_7b=="last"){ +return _79.nodeIndex==_7c[_7d]; +}else{ +if(_7b=="only"){ +return _7c[_7d]==1; +}else{ +if(_7b=="nth"){ +var add=false,_80=_7a[2],_81=_7a[3]; +if(_80==1&&_81==0){ +return true; +} +if(_80==0){ +if(_79.nodeIndex==_81){ +add=true; +} +}else{ +if((_79.nodeIndex-_81)%_80==0&&(_79.nodeIndex-_81)/_80>=0){ +add=true; +} +} +return add; +} +} +} +} +},PSEUDO:function(_82,_83,i,_84){ +var _85=_83[1],_86=_15.filters[_85]; +if(_86){ +return _86(_82,i,_83,_84); +}else{ +if(_85==="contains"){ +return (_82.textContent||_82.innerText||"").indexOf(_83[3])>=0; +}else{ +if(_85==="not"){ +var not=_83[3]; +for(var i=0,l=not.length;i<l;i++){ +if(not[i]===_82){ +return false; +} +} +return true; +} +} +} +},ID:function(_87,_88){ +return _87.nodeType===1&&_87.getAttribute("id")===_88; +},TAG:function(_89,_8a){ +return (_8a==="*"&&_89.nodeType===1)||_89.nodeName===_8a; +},CLASS:function(_8b,_8c){ +return _8c.test(_8b.className); +},ATTR:function(_8d,_8e){ +var _8f=_8d[_8e[1]]||_8d.getAttribute(_8e[1]),_90=_8f+"",_91=_8e[2],_92=_8e[4]; +return _8f==null?false:_91==="="?_90===_92:_91==="*="?_90.indexOf(_92)>=0:_91==="~="?(" "+_90+" ").indexOf(_92)>=0:!_8e[4]?_8f:_91==="!="?_90!=_92:_91==="^="?_90.indexOf(_92)===0:_91==="$="?_90.substr(_90.length-_92.length)===_92:_91==="|="?_90===_92||_90.substr(0,_92.length+1)===_92+"-":false; +},POS:function(_93,_94,i,_95){ +var _96=_94[2],_97=_15.setFilters[_96]; +if(_97){ +return _97(_93,i,_94,_95); +} +}}}; +for(var _98 in _15.match){ +_15.match[_98]=RegExp(_15.match[_98].source+/(?![^\[]*\])(?![^\(]*\))/.source); +} +var _19=function(_99,_9a){ +_99=Array.prototype.slice.call(_99); +if(_9a){ +_9a.push.apply(_9a,_99); +return _9a; +} +return _99; +}; +try{ +Array.prototype.slice.call(document.documentElement.childNodes); +} +catch(e){ +_19=function(_9b,_9c){ +var ret=_9c||[]; +if(_8.call(_9b)==="[object Array]"){ +Array.prototype.push.apply(ret,_9b); +}else{ +if(typeof _9b.length==="number"){ +for(var i=0,l=_9b.length;i<l;i++){ +ret.push(_9b[i]); +} +}else{ +for(var i=0;_9b[i];i++){ +ret.push(_9b[i]); +} +} +} +return ret; +}; +} +(function(){ +var _9d=document.createElement("form"),id="script"+(new Date).getTime(); +_9d.innerHTML="<input name='"+id+"'/>"; +var _9e=document.documentElement; +_9e.insertBefore(_9d,_9e.firstChild); +if(!!document.getElementById(id)){ +_15.find.ID=function(_9f,_a0){ +if(_a0.getElementById){ +var m=_a0.getElementById(_9f[1]); +return m?m.id===_9f[1]||m.getAttributeNode&&m.getAttributeNode("id").nodeValue===_9f[1]?[m]:undefined:[]; +} +}; +_15.filter.ID=function(_a1,_a2){ +var _a3=_a1.getAttributeNode&&_a1.getAttributeNode("id"); +return _a1.nodeType===1&&_a3&&_a3.nodeValue===_a2; +}; +} +_9e.removeChild(_9d); +})(); +(function(){ +var div=document.createElement("div"); +div.appendChild(document.createComment("")); +if(div.getElementsByTagName("*").length>0){ +_15.find.TAG=function(_a4,_a5){ +var _a6=_a5.getElementsByTagName(_a4[1]); +if(_a4[1]==="*"){ +var tmp=[]; +for(var i=0;_a6[i];i++){ +if(_a6[i].nodeType===1){ +tmp.push(_a6[i]); +} +} +_a6=tmp; +} +return _a6; +}; +} +})(); +if(document.querySelectorAll){ +(function(){ +var _a7=_9; +_9=function(_a8,_a9,_aa,_ab){ +_a9=_a9||document; +if(!_ab&&_a9.nodeType===9){ +try{ +return _19(_a9.querySelectorAll(_a8),_aa); +} +catch(e){ +} +} +return _a7(_a8,_a9,_aa,_ab); +}; +_9.find=_a7.find; +_9.filter=_a7.filter; +_9.selectors=_a7.selectors; +_9.matches=_a7.matches; +})(); +} +if(document.documentElement.getElementsByClassName){ +_15.order.splice(1,0,"CLASS"); +_15.find.CLASS=function(_ac,_ad){ +return _ad.getElementsByClassName(_ac[1]); +}; +} +function _3d(dir,cur,_ae,_af,_b0){ +for(var i=0,l=_af.length;i<l;i++){ +var _b1=_af[i]; +if(_b1){ +_b1=_b1[dir]; +var _b2=false; +while(_b1&&_b1.nodeType){ +var _b3=_b1[_ae]; +if(_b3){ +_b2=_af[_b3]; +break; +} +if(_b1.nodeType===1){ +_b1[_ae]=i; +} +if(_b1.nodeName===cur){ +_b2=_b1; +break; +} +_b1=_b1[dir]; +} +_af[i]=_b2; +} +} +}; +function _3b(dir,cur,_b4,_b5,_b6){ +for(var i=0,l=_b5.length;i<l;i++){ +var _b7=_b5[i]; +if(_b7){ +_b7=_b7[dir]; +var _b8=false; +while(_b7&&_b7.nodeType){ +if(_b7[_b4]){ +_b8=_b5[_b7[_b4]]; +break; +} +if(_b7.nodeType===1){ +_b7[_b4]=i; +if(typeof cur!=="string"){ +if(_b7===cur){ +_b8=true; +break; +} +}else{ +if(_9.filter(cur,[_b7]).length>0){ +_b8=_b7; +break; +} +} +} +_b7=_b7[dir]; +} +_b5[i]=_b8; +} +} +}; +var _1a=document.compareDocumentPosition?function(a,b){ +return a.compareDocumentPosition(b)&16; +}:function(a,b){ +return a!==b&&(a.contains?a.contains(b):true); +}; +(ns||window).Sizzle=_9; +})(typeof dojo=="undefined"?null:dojo); +} diff --git a/lib/dojo/_base/query.js b/lib/dojo/_base/query.js new file mode 100644 index 000000000..ecf84682c --- /dev/null +++ b/lib/dojo/_base/query.js @@ -0,0 +1,797 @@ +/* + 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["dojo._base.query"]){ +dojo._hasResource["dojo._base.query"]=true; +if(typeof dojo!="undefined"){ +dojo.provide("dojo._base.query"); +dojo.require("dojo._base.NodeList"); +dojo.require("dojo._base.lang"); +} +(function(d){ +var _1=d.trim; +var _2=d.forEach; +var _3=d._NodeListCtor=d.NodeList; +var _4=function(){ +return d.doc; +}; +var _5=((d.isWebKit||d.isMozilla)&&((_4().compatMode)=="BackCompat")); +var _6=!!_4().firstChild["children"]?"children":"childNodes"; +var _7=">~+"; +var _8=false; +var _9=function(){ +return true; +}; +var _a=function(_b){ +if(_7.indexOf(_b.slice(-1))>=0){ +_b+=" * "; +}else{ +_b+=" "; +} +var ts=function(s,e){ +return _1(_b.slice(s,e)); +}; +var _c=[]; +var _d=-1,_e=-1,_f=-1,_10=-1,_11=-1,_12=-1,_13=-1,lc="",cc="",_14; +var x=0,ql=_b.length,_15=null,_16=null; +var _17=function(){ +if(_13>=0){ +var tv=(_13==x)?null:ts(_13,x); +_15[(_7.indexOf(tv)<0)?"tag":"oper"]=tv; +_13=-1; +} +}; +var _18=function(){ +if(_12>=0){ +_15.id=ts(_12,x).replace(/\\/g,""); +_12=-1; +} +}; +var _19=function(){ +if(_11>=0){ +_15.classes.push(ts(_11+1,x).replace(/\\/g,"")); +_11=-1; +} +}; +var _1a=function(){ +_18(); +_17(); +_19(); +}; +var _1b=function(){ +_1a(); +if(_10>=0){ +_15.pseudos.push({name:ts(_10+1,x)}); +} +_15.loops=(_15.pseudos.length||_15.attrs.length||_15.classes.length); +_15.oquery=_15.query=ts(_14,x); +_15.otag=_15.tag=(_15["oper"])?null:(_15.tag||"*"); +if(_15.tag){ +_15.tag=_15.tag.toUpperCase(); +} +if(_c.length&&(_c[_c.length-1].oper)){ +_15.infixOper=_c.pop(); +_15.query=_15.infixOper.query+" "+_15.query; +} +_c.push(_15); +_15=null; +}; +for(;lc=cc,cc=_b.charAt(x),x<ql;x++){ +if(lc=="\\"){ +continue; +} +if(!_15){ +_14=x; +_15={query:null,pseudos:[],attrs:[],classes:[],tag:null,oper:null,id:null,getTag:function(){ +return (_8)?this.otag:this.tag; +}}; +_13=x; +} +if(_d>=0){ +if(cc=="]"){ +if(!_16.attr){ +_16.attr=ts(_d+1,x); +}else{ +_16.matchFor=ts((_f||_d+1),x); +} +var cmf=_16.matchFor; +if(cmf){ +if((cmf.charAt(0)=="\"")||(cmf.charAt(0)=="'")){ +_16.matchFor=cmf.slice(1,-1); +} +} +_15.attrs.push(_16); +_16=null; +_d=_f=-1; +}else{ +if(cc=="="){ +var _1c=("|~^$*".indexOf(lc)>=0)?lc:""; +_16.type=_1c+cc; +_16.attr=ts(_d+1,x-_1c.length); +_f=x+1; +} +} +}else{ +if(_e>=0){ +if(cc==")"){ +if(_10>=0){ +_16.value=ts(_e+1,x); +} +_10=_e=-1; +} +}else{ +if(cc=="#"){ +_1a(); +_12=x+1; +}else{ +if(cc=="."){ +_1a(); +_11=x; +}else{ +if(cc==":"){ +_1a(); +_10=x; +}else{ +if(cc=="["){ +_1a(); +_d=x; +_16={}; +}else{ +if(cc=="("){ +if(_10>=0){ +_16={name:ts(_10+1,x),value:null}; +_15.pseudos.push(_16); +} +_e=x; +}else{ +if((cc==" ")&&(lc!=cc)){ +_1b(); +} +} +} +} +} +} +} +} +} +return _c; +}; +var _1d=function(_1e,_1f){ +if(!_1e){ +return _1f; +} +if(!_1f){ +return _1e; +} +return function(){ +return _1e.apply(window,arguments)&&_1f.apply(window,arguments); +}; +}; +var _20=function(i,arr){ +var r=arr||[]; +if(i){ +r.push(i); +} +return r; +}; +var _21=function(n){ +return (1==n.nodeType); +}; +var _22=""; +var _23=function(_24,_25){ +if(!_24){ +return _22; +} +if(_25=="class"){ +return _24.className||_22; +} +if(_25=="for"){ +return _24.htmlFor||_22; +} +if(_25=="style"){ +return _24.style.cssText||_22; +} +return (_8?_24.getAttribute(_25):_24.getAttribute(_25,2))||_22; +}; +var _26={"*=":function(_27,_28){ +return function(_29){ +return (_23(_29,_27).indexOf(_28)>=0); +}; +},"^=":function(_2a,_2b){ +return function(_2c){ +return (_23(_2c,_2a).indexOf(_2b)==0); +}; +},"$=":function(_2d,_2e){ +var _2f=" "+_2e; +return function(_30){ +var ea=" "+_23(_30,_2d); +return (ea.lastIndexOf(_2e)==(ea.length-_2e.length)); +}; +},"~=":function(_31,_32){ +var _33=" "+_32+" "; +return function(_34){ +var ea=" "+_23(_34,_31)+" "; +return (ea.indexOf(_33)>=0); +}; +},"|=":function(_35,_36){ +var _37=" "+_36+"-"; +return function(_38){ +var ea=" "+_23(_38,_35); +return ((ea==_36)||(ea.indexOf(_37)==0)); +}; +},"=":function(_39,_3a){ +return function(_3b){ +return (_23(_3b,_39)==_3a); +}; +}}; +var _3c=(typeof _4().firstChild.nextElementSibling=="undefined"); +var _3d=!_3c?"nextElementSibling":"nextSibling"; +var _3e=!_3c?"previousElementSibling":"previousSibling"; +var _3f=(_3c?_21:_9); +var _40=function(_41){ +while(_41=_41[_3e]){ +if(_3f(_41)){ +return false; +} +} +return true; +}; +var _42=function(_43){ +while(_43=_43[_3d]){ +if(_3f(_43)){ +return false; +} +} +return true; +}; +var _44=function(_45){ +var _46=_45.parentNode; +var i=0,_47=_46[_6],ci=(_45["_i"]||-1),cl=(_46["_l"]||-1); +if(!_47){ +return -1; +} +var l=_47.length; +if(cl==l&&ci>=0&&cl>=0){ +return ci; +} +_46["_l"]=l; +ci=-1; +for(var te=_46["firstElementChild"]||_46["firstChild"];te;te=te[_3d]){ +if(_3f(te)){ +te["_i"]=++i; +if(_45===te){ +ci=i; +} +} +} +return ci; +}; +var _48=function(_49){ +return !((_44(_49))%2); +}; +var _4a=function(_4b){ +return ((_44(_4b))%2); +}; +var _4c={"checked":function(_4d,_4e){ +return function(_4f){ +return !!("checked" in _4f?_4f.checked:_4f.selected); +}; +},"first-child":function(){ +return _40; +},"last-child":function(){ +return _42; +},"only-child":function(_50,_51){ +return function(_52){ +if(!_40(_52)){ +return false; +} +if(!_42(_52)){ +return false; +} +return true; +}; +},"empty":function(_53,_54){ +return function(_55){ +var cn=_55.childNodes; +var cnl=_55.childNodes.length; +for(var x=cnl-1;x>=0;x--){ +var nt=cn[x].nodeType; +if((nt===1)||(nt==3)){ +return false; +} +} +return true; +}; +},"contains":function(_56,_57){ +var cz=_57.charAt(0); +if(cz=="\""||cz=="'"){ +_57=_57.slice(1,-1); +} +return function(_58){ +return (_58.innerHTML.indexOf(_57)>=0); +}; +},"not":function(_59,_5a){ +var p=_a(_5a)[0]; +var _5b={el:1}; +if(p.tag!="*"){ +_5b.tag=1; +} +if(!p.classes.length){ +_5b.classes=1; +} +var ntf=_5c(p,_5b); +return function(_5d){ +return (!ntf(_5d)); +}; +},"nth-child":function(_5e,_5f){ +var pi=parseInt; +if(_5f=="odd"){ +return _4a; +}else{ +if(_5f=="even"){ +return _48; +} +} +if(_5f.indexOf("n")!=-1){ +var _60=_5f.split("n",2); +var _61=_60[0]?((_60[0]=="-")?-1:pi(_60[0])):1; +var idx=_60[1]?pi(_60[1]):0; +var lb=0,ub=-1; +if(_61>0){ +if(idx<0){ +idx=(idx%_61)&&(_61+(idx%_61)); +}else{ +if(idx>0){ +if(idx>=_61){ +lb=idx-idx%_61; +} +idx=idx%_61; +} +} +}else{ +if(_61<0){ +_61*=-1; +if(idx>0){ +ub=idx; +idx=idx%_61; +} +} +} +if(_61>0){ +return function(_62){ +var i=_44(_62); +return (i>=lb)&&(ub<0||i<=ub)&&((i%_61)==idx); +}; +}else{ +_5f=idx; +} +} +var _63=pi(_5f); +return function(_64){ +return (_44(_64)==_63); +}; +}}; +var _65=(d.isIE)?function(_66){ +var clc=_66.toLowerCase(); +if(clc=="class"){ +_66="className"; +} +return function(_67){ +return (_8?_67.getAttribute(_66):_67[_66]||_67[clc]); +}; +}:function(_68){ +return function(_69){ +return (_69&&_69.getAttribute&&_69.hasAttribute(_68)); +}; +}; +var _5c=function(_6a,_6b){ +if(!_6a){ +return _9; +} +_6b=_6b||{}; +var ff=null; +if(!("el" in _6b)){ +ff=_1d(ff,_21); +} +if(!("tag" in _6b)){ +if(_6a.tag!="*"){ +ff=_1d(ff,function(_6c){ +return (_6c&&(_6c.tagName==_6a.getTag())); +}); +} +} +if(!("classes" in _6b)){ +_2(_6a.classes,function(_6d,idx,arr){ +var re=new RegExp("(?:^|\\s)"+_6d+"(?:\\s|$)"); +ff=_1d(ff,function(_6e){ +return re.test(_6e.className); +}); +ff.count=idx; +}); +} +if(!("pseudos" in _6b)){ +_2(_6a.pseudos,function(_6f){ +var pn=_6f.name; +if(_4c[pn]){ +ff=_1d(ff,_4c[pn](pn,_6f.value)); +} +}); +} +if(!("attrs" in _6b)){ +_2(_6a.attrs,function(_70){ +var _71; +var a=_70.attr; +if(_70.type&&_26[_70.type]){ +_71=_26[_70.type](a,_70.matchFor); +}else{ +if(a.length){ +_71=_65(a); +} +} +if(_71){ +ff=_1d(ff,_71); +} +}); +} +if(!("id" in _6b)){ +if(_6a.id){ +ff=_1d(ff,function(_72){ +return (!!_72&&(_72.id==_6a.id)); +}); +} +} +if(!ff){ +if(!("default" in _6b)){ +ff=_9; +} +} +return ff; +}; +var _73=function(_74){ +return function(_75,ret,bag){ +while(_75=_75[_3d]){ +if(_3c&&(!_21(_75))){ +continue; +} +if((!bag||_76(_75,bag))&&_74(_75)){ +ret.push(_75); +} +break; +} +return ret; +}; +}; +var _77=function(_78){ +return function(_79,ret,bag){ +var te=_79[_3d]; +while(te){ +if(_3f(te)){ +if(bag&&!_76(te,bag)){ +break; +} +if(_78(te)){ +ret.push(te); +} +} +te=te[_3d]; +} +return ret; +}; +}; +var _7a=function(_7b){ +_7b=_7b||_9; +return function(_7c,ret,bag){ +var te,x=0,_7d=_7c[_6]; +while(te=_7d[x++]){ +if(_3f(te)&&(!bag||_76(te,bag))&&(_7b(te,x))){ +ret.push(te); +} +} +return ret; +}; +}; +var _7e=function(_7f,_80){ +var pn=_7f.parentNode; +while(pn){ +if(pn==_80){ +break; +} +pn=pn.parentNode; +} +return !!pn; +}; +var _81={}; +var _82=function(_83){ +var _84=_81[_83.query]; +if(_84){ +return _84; +} +var io=_83.infixOper; +var _85=(io?io.oper:""); +var _86=_5c(_83,{el:1}); +var qt=_83.tag; +var _87=("*"==qt); +var ecs=_4()["getElementsByClassName"]; +if(!_85){ +if(_83.id){ +_86=(!_83.loops&&_87)?_9:_5c(_83,{el:1,id:1}); +_84=function(_88,arr){ +var te=d.byId(_83.id,(_88.ownerDocument||_88)); +if(!te||!_86(te)){ +return; +} +if(9==_88.nodeType){ +return _20(te,arr); +}else{ +if(_7e(te,_88)){ +return _20(te,arr); +} +} +}; +}else{ +if(ecs&&/\{\s*\[native code\]\s*\}/.test(String(ecs))&&_83.classes.length&&!_5){ +_86=_5c(_83,{el:1,classes:1,id:1}); +var _89=_83.classes.join(" "); +_84=function(_8a,arr,bag){ +var ret=_20(0,arr),te,x=0; +var _8b=_8a.getElementsByClassName(_89); +while((te=_8b[x++])){ +if(_86(te,_8a)&&_76(te,bag)){ +ret.push(te); +} +} +return ret; +}; +}else{ +if(!_87&&!_83.loops){ +_84=function(_8c,arr,bag){ +var ret=_20(0,arr),te,x=0; +var _8d=_8c.getElementsByTagName(_83.getTag()); +while((te=_8d[x++])){ +if(_76(te,bag)){ +ret.push(te); +} +} +return ret; +}; +}else{ +_86=_5c(_83,{el:1,tag:1,id:1}); +_84=function(_8e,arr,bag){ +var ret=_20(0,arr),te,x=0; +var _8f=_8e.getElementsByTagName(_83.getTag()); +while((te=_8f[x++])){ +if(_86(te,_8e)&&_76(te,bag)){ +ret.push(te); +} +} +return ret; +}; +} +} +} +}else{ +var _90={el:1}; +if(_87){ +_90.tag=1; +} +_86=_5c(_83,_90); +if("+"==_85){ +_84=_73(_86); +}else{ +if("~"==_85){ +_84=_77(_86); +}else{ +if(">"==_85){ +_84=_7a(_86); +} +} +} +} +return _81[_83.query]=_84; +}; +var _91=function(_92,_93){ +var _94=_20(_92),qp,x,te,qpl=_93.length,bag,ret; +for(var i=0;i<qpl;i++){ +ret=[]; +qp=_93[i]; +x=_94.length-1; +if(x>0){ +bag={}; +ret.nozip=true; +} +var gef=_82(qp); +for(var j=0;(te=_94[j]);j++){ +gef(te,ret,bag); +} +if(!ret.length){ +break; +} +_94=ret; +} +return ret; +}; +var _95={},_96={}; +var _97=function(_98){ +var _99=_a(_1(_98)); +if(_99.length==1){ +var tef=_82(_99[0]); +return function(_9a){ +var r=tef(_9a,new _3()); +if(r){ +r.nozip=true; +} +return r; +}; +} +return function(_9b){ +return _91(_9b,_99); +}; +}; +var nua=navigator.userAgent; +var wk="WebKit/"; +var _9c=(d.isWebKit&&(nua.indexOf(wk)>0)&&(parseFloat(nua.split(wk)[1])>528)); +var _9d=d.isIE?"commentStrip":"nozip"; +var qsa="querySelectorAll"; +var _9e=(!!_4()[qsa]&&(!d.isSafari||(d.isSafari>3.1)||_9c)); +var _9f=/n\+\d|([^ ])?([>~+])([^ =])?/g; +var _a0=function(_a1,pre,ch,_a2){ +return ch?(pre?pre+" ":"")+ch+(_a2?" "+_a2:""):_a1; +}; +var _a3=function(_a4,_a5){ +_a4=_a4.replace(_9f,_a0); +if(_9e){ +var _a6=_96[_a4]; +if(_a6&&!_a5){ +return _a6; +} +} +var _a7=_95[_a4]; +if(_a7){ +return _a7; +} +var qcz=_a4.charAt(0); +var _a8=(-1==_a4.indexOf(" ")); +if((_a4.indexOf("#")>=0)&&(_a8)){ +_a5=true; +} +var _a9=(_9e&&(!_a5)&&(_7.indexOf(qcz)==-1)&&(!d.isIE||(_a4.indexOf(":")==-1))&&(!(_5&&(_a4.indexOf(".")>=0)))&&(_a4.indexOf(":contains")==-1)&&(_a4.indexOf(":checked")==-1)&&(_a4.indexOf("|=")==-1)); +if(_a9){ +var tq=(_7.indexOf(_a4.charAt(_a4.length-1))>=0)?(_a4+" *"):_a4; +return _96[_a4]=function(_aa){ +try{ +if(!((9==_aa.nodeType)||_a8)){ +throw ""; +} +var r=_aa[qsa](tq); +r[_9d]=true; +return r; +} +catch(e){ +return _a3(_a4,true)(_aa); +} +}; +}else{ +var _ab=_a4.split(/\s*,\s*/); +return _95[_a4]=((_ab.length<2)?_97(_a4):function(_ac){ +var _ad=0,ret=[],tp; +while((tp=_ab[_ad++])){ +ret=ret.concat(_97(tp)(_ac)); +} +return ret; +}); +} +}; +var _ae=0; +var _af=d.isIE?function(_b0){ +if(_8){ +return (_b0.getAttribute("_uid")||_b0.setAttribute("_uid",++_ae)||_ae); +}else{ +return _b0.uniqueID; +} +}:function(_b1){ +return (_b1._uid||(_b1._uid=++_ae)); +}; +var _76=function(_b2,bag){ +if(!bag){ +return 1; +} +var id=_af(_b2); +if(!bag[id]){ +return bag[id]=1; +} +return 0; +}; +var _b3="_zipIdx"; +var _b4=function(arr){ +if(arr&&arr.nozip){ +return (_3._wrap)?_3._wrap(arr):arr; +} +var ret=new _3(); +if(!arr||!arr.length){ +return ret; +} +if(arr[0]){ +ret.push(arr[0]); +} +if(arr.length<2){ +return ret; +} +_ae++; +if(d.isIE&&_8){ +var _b5=_ae+""; +arr[0].setAttribute(_b3,_b5); +for(var x=1,te;te=arr[x];x++){ +if(arr[x].getAttribute(_b3)!=_b5){ +ret.push(te); +} +te.setAttribute(_b3,_b5); +} +}else{ +if(d.isIE&&arr.commentStrip){ +try{ +for(var x=1,te;te=arr[x];x++){ +if(_21(te)){ +ret.push(te); +} +} +} +catch(e){ +} +}else{ +if(arr[0]){ +arr[0][_b3]=_ae; +} +for(var x=1,te;te=arr[x];x++){ +if(arr[x][_b3]!=_ae){ +ret.push(te); +} +te[_b3]=_ae; +} +} +} +return ret; +}; +d.query=function(_b6,_b7){ +_3=d._NodeListCtor; +if(!_b6){ +return new _3(); +} +if(_b6.constructor==_3){ +return _b6; +} +if(typeof _b6!="string"){ +return new _3(_b6); +} +if(typeof _b7=="string"){ +_b7=d.byId(_b7); +if(!_b7){ +return new _3(); +} +} +_b7=_b7||_4(); +var od=_b7.ownerDocument||_b7.documentElement; +_8=(_b7.contentType&&_b7.contentType=="application/xml")||(d.isOpera&&(_b7.doctype||od.toString()=="[object XMLDocument]"))||(!!od)&&(d.isIE?od.xml:(_b7.xmlVersion||od.xmlVersion)); +var r=_a3(_b6)(_b7); +if(r&&r.nozip&&!_3._wrap){ +return r; +} +return _b4(r); +}; +d.query.pseudos=_4c; +d._filterQueryResult=function(_b8,_b9){ +var _ba=new d._NodeListCtor(); +var _bb=_5c(_a(_b9)[0]); +for(var x=0,te;te=_b8[x];x++){ +if(_bb(te)){ +_ba.push(te); +} +} +return _ba; +}; +})(this["queryPortability"]||this["acme"]||dojo); +} diff --git a/lib/dojo/_base/window.js b/lib/dojo/_base/window.js new file mode 100644 index 000000000..44239d92c --- /dev/null +++ b/lib/dojo/_base/window.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["dojo._base.window"]){ +dojo._hasResource["dojo._base.window"]=true; +dojo.provide("dojo._base.window"); +dojo.doc=window["document"]||null; +dojo.body=function(){ +return dojo.doc.body||dojo.doc.getElementsByTagName("body")[0]; +}; +dojo.setContext=function(_1,_2){ +dojo.global=_1; +dojo.doc=_2; +}; +dojo.withGlobal=function(_3,_4,_5,_6){ +var _7=dojo.global; +try{ +dojo.global=_3; +return dojo.withDoc.call(null,_3.document,_4,_5,_6); +} +finally{ +dojo.global=_7; +} +}; +dojo.withDoc=function(_8,_9,_a,_b){ +var _c=dojo.doc,_d=dojo._bodyLtr,_e=dojo.isQuirks; +try{ +dojo.doc=_8; +delete dojo._bodyLtr; +dojo.isQuirks=dojo.doc.compatMode=="BackCompat"; +if(_a&&typeof _9=="string"){ +_9=_a[_9]; +} +return _9.apply(_a,_b||[]); +} +finally{ +dojo.doc=_c; +delete dojo._bodyLtr; +if(_d!==undefined){ +dojo._bodyLtr=_d; +} +dojo.isQuirks=_e; +} +}; +} diff --git a/lib/dojo/_base/xhr.js b/lib/dojo/_base/xhr.js new file mode 100644 index 000000000..5823371cf --- /dev/null +++ b/lib/dojo/_base/xhr.js @@ -0,0 +1,437 @@ +/* + 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["dojo._base.xhr"]){ +dojo._hasResource["dojo._base.xhr"]=true; +dojo.provide("dojo._base.xhr"); +dojo.require("dojo._base.Deferred"); +dojo.require("dojo._base.json"); +dojo.require("dojo._base.lang"); +dojo.require("dojo._base.query"); +(function(){ +var _1=dojo,_2=_1.config; +function _3(_4,_5,_6){ +if(_6===null){ +return; +} +var _7=_4[_5]; +if(typeof _7=="string"){ +_4[_5]=[_7,_6]; +}else{ +if(_1.isArray(_7)){ +_7.push(_6); +}else{ +_4[_5]=_6; +} +} +}; +dojo.fieldToObject=function(_8){ +var _9=null; +var _a=_1.byId(_8); +if(_a){ +var _b=_a.name; +var _c=(_a.type||"").toLowerCase(); +if(_b&&_c&&!_a.disabled){ +if(_c=="radio"||_c=="checkbox"){ +if(_a.checked){ +_9=_a.value; +} +}else{ +if(_a.multiple){ +_9=[]; +_1.query("option",_a).forEach(function(_d){ +if(_d.selected){ +_9.push(_d.value); +} +}); +}else{ +_9=_a.value; +} +} +} +} +return _9; +}; +dojo.formToObject=function(_e){ +var _f={}; +var _10="file|submit|image|reset|button|"; +_1.forEach(dojo.byId(_e).elements,function(_11){ +var _12=_11.name; +var _13=(_11.type||"").toLowerCase(); +if(_12&&_13&&_10.indexOf(_13)==-1&&!_11.disabled){ +_3(_f,_12,_1.fieldToObject(_11)); +if(_13=="image"){ +_f[_12+".x"]=_f[_12+".y"]=_f[_12].x=_f[_12].y=0; +} +} +}); +return _f; +}; +dojo.objectToQuery=function(map){ +var enc=encodeURIComponent; +var _14=[]; +var _15={}; +for(var _16 in map){ +var _17=map[_16]; +if(_17!=_15[_16]){ +var _18=enc(_16)+"="; +if(_1.isArray(_17)){ +for(var i=0;i<_17.length;i++){ +_14.push(_18+enc(_17[i])); +} +}else{ +_14.push(_18+enc(_17)); +} +} +} +return _14.join("&"); +}; +dojo.formToQuery=function(_19){ +return _1.objectToQuery(_1.formToObject(_19)); +}; +dojo.formToJson=function(_1a,_1b){ +return _1.toJson(_1.formToObject(_1a),_1b); +}; +dojo.queryToObject=function(str){ +var ret={}; +var qp=str.split("&"); +var dec=decodeURIComponent; +_1.forEach(qp,function(_1c){ +if(_1c.length){ +var _1d=_1c.split("="); +var _1e=dec(_1d.shift()); +var val=dec(_1d.join("=")); +if(typeof ret[_1e]=="string"){ +ret[_1e]=[ret[_1e]]; +} +if(_1.isArray(ret[_1e])){ +ret[_1e].push(val); +}else{ +ret[_1e]=val; +} +} +}); +return ret; +}; +dojo._blockAsync=false; +var _1f=_1._contentHandlers=dojo.contentHandlers={text:function(xhr){ +return xhr.responseText; +},json:function(xhr){ +return _1.fromJson(xhr.responseText||null); +},"json-comment-filtered":function(xhr){ +if(!dojo.config.useCommentedJson){ +console.warn("Consider using the standard mimetype:application/json."+" json-commenting can introduce security issues. To"+" decrease the chances of hijacking, use the standard the 'json' handler and"+" prefix your json with: {}&&\n"+"Use djConfig.useCommentedJson=true to turn off this message."); +} +var _20=xhr.responseText; +var _21=_20.indexOf("/*"); +var _22=_20.lastIndexOf("*/"); +if(_21==-1||_22==-1){ +throw new Error("JSON was not comment filtered"); +} +return _1.fromJson(_20.substring(_21+2,_22)); +},javascript:function(xhr){ +return _1.eval(xhr.responseText); +},xml:function(xhr){ +var _23=xhr.responseXML; +if(_1.isIE&&(!_23||!_23.documentElement)){ +var ms=function(n){ +return "MSXML"+n+".DOMDocument"; +}; +var dp=["Microsoft.XMLDOM",ms(6),ms(4),ms(3),ms(2)]; +_1.some(dp,function(p){ +try{ +var dom=new ActiveXObject(p); +dom.async=false; +dom.loadXML(xhr.responseText); +_23=dom; +} +catch(e){ +return false; +} +return true; +}); +} +return _23; +},"json-comment-optional":function(xhr){ +if(xhr.responseText&&/^[^{\[]*\/\*/.test(xhr.responseText)){ +return _1f["json-comment-filtered"](xhr); +}else{ +return _1f["json"](xhr); +} +}}; +dojo._ioSetArgs=function(_24,_25,_26,_27){ +var _28={args:_24,url:_24.url}; +var _29=null; +if(_24.form){ +var _2a=_1.byId(_24.form); +var _2b=_2a.getAttributeNode("action"); +_28.url=_28.url||(_2b?_2b.value:null); +_29=_1.formToObject(_2a); +} +var _2c=[{}]; +if(_29){ +_2c.push(_29); +} +if(_24.content){ +_2c.push(_24.content); +} +if(_24.preventCache){ +_2c.push({"dojo.preventCache":new Date().valueOf()}); +} +_28.query=_1.objectToQuery(_1.mixin.apply(null,_2c)); +_28.handleAs=_24.handleAs||"text"; +var d=new _1.Deferred(_25); +d.addCallbacks(_26,function(_2d){ +return _27(_2d,d); +}); +var ld=_24.load; +if(ld&&_1.isFunction(ld)){ +d.addCallback(function(_2e){ +return ld.call(_24,_2e,_28); +}); +} +var err=_24.error; +if(err&&_1.isFunction(err)){ +d.addErrback(function(_2f){ +return err.call(_24,_2f,_28); +}); +} +var _30=_24.handle; +if(_30&&_1.isFunction(_30)){ +d.addBoth(function(_31){ +return _30.call(_24,_31,_28); +}); +} +if(_2.ioPublish&&_1.publish&&_28.args.ioPublish!==false){ +d.addCallbacks(function(res){ +_1.publish("/dojo/io/load",[d,res]); +return res; +},function(res){ +_1.publish("/dojo/io/error",[d,res]); +return res; +}); +d.addBoth(function(res){ +_1.publish("/dojo/io/done",[d,res]); +return res; +}); +} +d.ioArgs=_28; +return d; +}; +var _32=function(dfd){ +dfd.canceled=true; +var xhr=dfd.ioArgs.xhr; +var _33=typeof xhr.abort; +if(_33=="function"||_33=="object"||_33=="unknown"){ +xhr.abort(); +} +var err=dfd.ioArgs.error; +if(!err){ +err=new Error("xhr cancelled"); +err.dojoType="cancel"; +} +return err; +}; +var _34=function(dfd){ +var ret=_1f[dfd.ioArgs.handleAs](dfd.ioArgs.xhr); +return ret===undefined?null:ret; +}; +var _35=function(_36,dfd){ +if(!dfd.ioArgs.args.failOk){ +console.error(_36); +} +return _36; +}; +var _37=null; +var _38=[]; +var _39=0; +var _3a=function(dfd){ +if(_39<=0){ +_39=0; +if(_2.ioPublish&&_1.publish&&(!dfd||dfd&&dfd.ioArgs.args.ioPublish!==false)){ +_1.publish("/dojo/io/stop"); +} +} +}; +var _3b=function(){ +var now=(new Date()).getTime(); +if(!_1._blockAsync){ +for(var i=0,tif;i<_38.length&&(tif=_38[i]);i++){ +var dfd=tif.dfd; +var _3c=function(){ +if(!dfd||dfd.canceled||!tif.validCheck(dfd)){ +_38.splice(i--,1); +_39-=1; +}else{ +if(tif.ioCheck(dfd)){ +_38.splice(i--,1); +tif.resHandle(dfd); +_39-=1; +}else{ +if(dfd.startTime){ +if(dfd.startTime+(dfd.ioArgs.args.timeout||0)<now){ +_38.splice(i--,1); +var err=new Error("timeout exceeded"); +err.dojoType="timeout"; +dfd.errback(err); +dfd.cancel(); +_39-=1; +} +} +} +} +}; +if(dojo.config.debugAtAllCosts){ +_3c.call(this); +}else{ +try{ +_3c.call(this); +} +catch(e){ +dfd.errback(e); +} +} +} +} +_3a(dfd); +if(!_38.length){ +clearInterval(_37); +_37=null; +return; +} +}; +dojo._ioCancelAll=function(){ +try{ +_1.forEach(_38,function(i){ +try{ +i.dfd.cancel(); +} +catch(e){ +} +}); +} +catch(e){ +} +}; +if(_1.isIE){ +_1.addOnWindowUnload(_1._ioCancelAll); +} +_1._ioNotifyStart=function(dfd){ +if(_2.ioPublish&&_1.publish&&dfd.ioArgs.args.ioPublish!==false){ +if(!_39){ +_1.publish("/dojo/io/start"); +} +_39+=1; +_1.publish("/dojo/io/send",[dfd]); +} +}; +_1._ioWatch=function(dfd,_3d,_3e,_3f){ +var _40=dfd.ioArgs.args; +if(_40.timeout){ +dfd.startTime=(new Date()).getTime(); +} +_38.push({dfd:dfd,validCheck:_3d,ioCheck:_3e,resHandle:_3f}); +if(!_37){ +_37=setInterval(_3b,50); +} +if(_40.sync){ +_3b(); +} +}; +var _41="application/x-www-form-urlencoded"; +var _42=function(dfd){ +return dfd.ioArgs.xhr.readyState; +}; +var _43=function(dfd){ +return 4==dfd.ioArgs.xhr.readyState; +}; +var _44=function(dfd){ +var xhr=dfd.ioArgs.xhr; +if(_1._isDocumentOk(xhr)){ +dfd.callback(dfd); +}else{ +var err=new Error("Unable to load "+dfd.ioArgs.url+" status:"+xhr.status); +err.status=xhr.status; +err.responseText=xhr.responseText; +dfd.errback(err); +} +}; +dojo._ioAddQueryToUrl=function(_45){ +if(_45.query.length){ +_45.url+=(_45.url.indexOf("?")==-1?"?":"&")+_45.query; +_45.query=null; +} +}; +dojo.xhr=function(_46,_47,_48){ +var dfd=_1._ioSetArgs(_47,_32,_34,_35); +var _49=dfd.ioArgs; +var xhr=_49.xhr=_1._xhrObj(_49.args); +if(!xhr){ +dfd.cancel(); +return dfd; +} +if("postData" in _47){ +_49.query=_47.postData; +}else{ +if("putData" in _47){ +_49.query=_47.putData; +}else{ +if("rawBody" in _47){ +_49.query=_47.rawBody; +}else{ +if((arguments.length>2&&!_48)||"POST|PUT".indexOf(_46.toUpperCase())==-1){ +_1._ioAddQueryToUrl(_49); +} +} +} +} +xhr.open(_46,_49.url,_47.sync!==true,_47.user||undefined,_47.password||undefined); +if(_47.headers){ +for(var hdr in _47.headers){ +if(hdr.toLowerCase()==="content-type"&&!_47.contentType){ +_47.contentType=_47.headers[hdr]; +}else{ +if(_47.headers[hdr]){ +xhr.setRequestHeader(hdr,_47.headers[hdr]); +} +} +} +} +xhr.setRequestHeader("Content-Type",_47.contentType||_41); +if(!_47.headers||!("X-Requested-With" in _47.headers)){ +xhr.setRequestHeader("X-Requested-With","XMLHttpRequest"); +} +_1._ioNotifyStart(dfd); +if(dojo.config.debugAtAllCosts){ +xhr.send(_49.query); +}else{ +try{ +xhr.send(_49.query); +} +catch(e){ +_49.error=e; +dfd.cancel(); +} +} +_1._ioWatch(dfd,_42,_43,_44); +xhr=null; +return dfd; +}; +dojo.xhrGet=function(_4a){ +return _1.xhr("GET",_4a); +}; +dojo.rawXhrPost=dojo.xhrPost=function(_4b){ +return _1.xhr("POST",_4b,true); +}; +dojo.rawXhrPut=dojo.xhrPut=function(_4c){ +return _1.xhr("PUT",_4c,true); +}; +dojo.xhrDelete=function(_4d){ +return _1.xhr("DELETE",_4d); +}; +})(); +} diff --git a/lib/dojo/_firebug/LICENSE b/lib/dojo/_firebug/LICENSE new file mode 100644 index 000000000..8c777a23e --- /dev/null +++ b/lib/dojo/_firebug/LICENSE @@ -0,0 +1,37 @@ +License Disclaimer: + +All contents of this directory are Copyright (c) the Dojo Foundation, with the +following exceptions: +------------------------------------------------------------------------------- + +firebug.html, firebug.js, errIcon.png, infoIcon.png, warningIcon.png: + * Copyright (c) 2006-2007, Joe Hewitt, All rights reserved. + Distributed under the terms of the BSD License (see below) + +------------------------------------------------------------------------------- + +Copyright (c) 2006-2007, Joe Hewitt +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. diff --git a/lib/dojo/_firebug/errorIcon.png b/lib/dojo/_firebug/errorIcon.png Binary files differnew file mode 100644 index 000000000..2d75261bb --- /dev/null +++ b/lib/dojo/_firebug/errorIcon.png diff --git a/lib/dojo/_firebug/firebug.css b/lib/dojo/_firebug/firebug.css new file mode 100644 index 000000000..3b6f4f99f --- /dev/null +++ b/lib/dojo/_firebug/firebug.css @@ -0,0 +1,208 @@ +.firebug { + margin: 0; + background:#fff; + font-family: Lucida Grande, Tahoma, sans-serif; + font-size: 11px; + overflow: hidden; + border: 1px solid black; + position: relative; +} +.firebug a { + text-decoration: none; +} +.firebug a:hover { + text-decoration: underline; +} +.firebug a:visited{ + color:#0000FF; +} +.firebug #firebugToolbar { + height: 18px; + line-height:18px; + border-top: 1px solid ThreeDHighlight; + border-bottom: 1px solid ThreeDShadow; + padding: 2px 6px; + + background:#f0f0f0; +} +.firebug #firebugLog, .firebug #objectLog { + overflow: auto; + position: absolute; + left: 0; + width: 100%; +} +#objectLog{ + overflow:scroll; + height:258px; +} +.firebug #firebugCommandLine { + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 18px; + border: none; + border-top: 1px solid ThreeDShadow; +} +.firebug .logRow { + position: relative; + border-bottom: 1px solid #D7D7D7; + padding: 2px 4px 1px 6px; + background-color: #FFFFFF; +} +.firebug .logRow-command { + font-family: Monaco, monospace; + color: blue; +} +.firebug .objectBox-null { + padding: 0 2px; + border: 1px solid #666666; + background-color: #888888; + color: #FFFFFF; +} +.firebug .objectBox-string { + font-family: Monaco, monospace; + color: red; + white-space: pre; +} +.firebug .objectBox-number { + color: #000088; +} +.firebug .objectBox-function { + font-family: Monaco, monospace; + color: DarkGreen; +} +.firebug .objectBox-object { + color: DarkGreen; + font-weight: bold; +} +.firebug .logRow-info, +.firebug .logRow-error, +.firebug .logRow-warning + { + background: #00FFFF no-repeat 2px 2px; + padding-left: 20px; + padding-bottom: 3px; +} +.firebug .logRow-info { + background: #FFF url(infoIcon.png) no-repeat 2px 2px; + padding-left: 20px; + padding-bottom: 3px; +} +.firebug .logRow-warning { + + background: #00FFFF url(warningIcon.png) no-repeat 2px 2px; + padding-left: 20px; + padding-bottom: 3px; +} +.firebug .logRow-error { + background: LightYellow url(errorIcon.png) no-repeat 2px 2px; + padding-left: 20px; + padding-bottom: 3px; +} +.firebug .errorMessage { + vertical-align: top; + color: #FF0000; +} +.firebug .objectBox-sourceLink { + position: absolute; + right: 4px; + top: 2px; + padding-left: 8px; + font-family: Lucida Grande, sans-serif; + font-weight: bold; + color: #0000FF; +} +.firebug .logRow-group { + background: #EEEEEE; + border-bottom: none; +} +.firebug .logGroup { + background: #EEEEEE; +} +.firebug .logGroupBox { + margin-left: 24px; + border-top: 1px solid #D7D7D7; + border-left: 1px solid #D7D7D7; +} +.firebug .selectorTag, +.firebug .selectorId, +.firebug .selectorClass { + font-family: Monaco, monospace; + font-weight: normal; +} +.firebug .selectorTag { + color: #0000FF; +} +.firebug .selectorId { + color: DarkBlue; +} +.firebug .selectorClass { + color: red; +} +.firebug .objectBox-element { + font-family: Monaco, monospace; + color: #000088; +} +.firebug .nodeChildren { + margin-left: 16px; +} +.firebug .nodeTag { + color: blue; +} +.firebug .nodeValue { + color: #FF0000; + font-weight: normal; +} +.firebug .nodeText, +.firebug .nodeComment { + margin: 0 2px; + vertical-align: top; +} +.firebug .nodeText { + color: #333333; +} +.firebug .nodeComment { + color: DarkGreen; +} +.firebug .propertyNameCell { + vertical-align: top; +} +.firebug .propertyName { + font-weight: bold; +} +#firebugToolbar ul.tabs{ + margin:0 !important; + padding:0; +} +#firebugToolbar ul.tabs li{ + list-style:none; + background:transparent url(tab_lft_norm.png) no-repeat left; + line-height:18px; + float:left; + margin-left:5px; +} +#firebugToolbar ul.tabs li.right{ + float:right; + margin-right:5px; + margin-left:0; +} +#firebugToolbar ul.tabs li.gap{ + margin-left:20px; +} +#firebugToolbar .tabs a{ + text-decoration:none; + background:transparent url(tab_rgt_norm.png) no-repeat right; + line-height:18px; + padding:3px 9px 4px 0px; + margin-left:9px; + color:#333333; +} +#firebugToolbar .tabs li:hover{ + background:transparent url(tab_lft_over.png) no-repeat left; +} +#firebugToolbar .tabs a:hover{ + text-decoration:none; + background:transparent url(tab_rgt_over.png) no-repeat right; + color:#FFFFFF; +} diff --git a/lib/dojo/_firebug/firebug.js b/lib/dojo/_firebug/firebug.js new file mode 100644 index 000000000..7736258b5 --- /dev/null +++ b/lib/dojo/_firebug/firebug.js @@ -0,0 +1,914 @@ +/* + 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["dojo._firebug.firebug"]){ +dojo._hasResource["dojo._firebug.firebug"]=true; +dojo.provide("dojo._firebug.firebug"); +dojo.deprecated=function(_1,_2,_3){ +var _4="DEPRECATED: "+_1; +if(_2){ +_4+=" "+_2; +} +if(_3){ +_4+=" -- will be removed in version: "+_3; +} +console.warn(_4); +}; +dojo.experimental=function(_5,_6){ +var _7="EXPERIMENTAL: "+_5+" -- APIs subject to change without notice."; +if(_6){ +_7+=" "+_6; +} +console.warn(_7); +}; +(function(){ +var _8=(/Trident/.test(window.navigator.userAgent)); +if(_8){ +var _9=["log","info","debug","warn","error"]; +for(var i=0;i<_9.length;i++){ +var m=_9[i]; +var n="_"+_9[i]; +console[n]=console[m]; +console[m]=(function(){ +var _a=n; +return function(){ +console[_a](Array.prototype.slice.call(arguments).join(" ")); +}; +})(); +} +try{ +console.clear(); +} +catch(e){ +} +} +if(!dojo.isFF&&(!dojo.isChrome||dojo.isChrome<3)&&(!dojo.isSafari||dojo.isSafari<4)&&!_8&&!window.firebug&&(typeof console!="undefined"&&!console.firebug)&&!dojo.config.useCustomLogger&&!dojo.isAIR){ +try{ +if(window!=window.parent){ +if(window.parent["console"]){ +window.console=window.parent.console; +} +return; +} +} +catch(e){ +} +var _b=document; +var _c=window; +var _d=0; +var _e=null; +var _f=null; +var _10=null; +var _11=null; +var _12=null; +var _13=null; +var _14=false; +var _15=[]; +var _16=[]; +var _17={}; +var _18={}; +var _19=null; +var _1a; +var _1b; +var _1c=false; +var _1d=null; +var _1e=document.createElement("div"); +var _1f; +var _20; +window.console={_connects:[],log:function(){ +_21(arguments,""); +},debug:function(){ +_21(arguments,"debug"); +},info:function(){ +_21(arguments,"info"); +},warn:function(){ +_21(arguments,"warning"); +},error:function(){ +_21(arguments,"error"); +},assert:function(_22,_23){ +if(!_22){ +var _24=[]; +for(var i=1;i<arguments.length;++i){ +_24.push(arguments[i]); +} +_21(_24.length?_24:["Assertion Failure"],"error"); +throw _23?_23:"Assertion Failure"; +} +},dir:function(obj){ +var str=_25(obj); +str=str.replace(/\n/g,"<br />"); +str=str.replace(/\t/g," "); +_26([str],"dir"); +},dirxml:function(_27){ +var _28=[]; +_29(_27,_28); +_26(_28,"dirxml"); +},group:function(){ +_26(arguments,"group",_2a); +},groupEnd:function(){ +_26(arguments,"",_2b); +},time:function(_2c){ +_17[_2c]=new Date().getTime(); +},timeEnd:function(_2d){ +if(_2d in _17){ +var _2e=(new Date()).getTime()-_17[_2d]; +_21([_2d+":",_2e+"ms"]); +delete _17[_2d]; +} +},count:function(_2f){ +if(!_18[_2f]){ +_18[_2f]=0; +} +_18[_2f]++; +_21([_2f+": "+_18[_2f]]); +},trace:function(_30){ +var _31=_30||3; +var f=console.trace.caller; +for(var i=0;i<_31;i++){ +var _32=f.toString(); +var _33=[]; +for(var a=0;a<f.arguments.length;a++){ +_33.push(f.arguments[a]); +} +if(f.arguments.length){ +}else{ +} +f=f.caller; +} +},profile:function(){ +this.warn(["profile() not supported."]); +},profileEnd:function(){ +},clear:function(){ +if(_f){ +while(_f.childNodes.length){ +dojo.destroy(_f.firstChild); +} +} +dojo.forEach(this._connects,dojo.disconnect); +},open:function(){ +_34(true); +},close:function(){ +if(_14){ +_34(); +} +},_restoreBorder:function(){ +if(_1f){ +_1f.style.border=_20; +} +},openDomInspector:function(){ +_1c=true; +_f.style.display="none"; +_19.style.display="block"; +_10.style.display="none"; +document.body.style.cursor="pointer"; +_1a=dojo.connect(document,"mousemove",function(evt){ +if(!_1c){ +return; +} +if(!_1d){ +_1d=setTimeout(function(){ +_1d=null; +},50); +}else{ +return; +} +var _35=evt.target; +if(_35&&(_1f!==_35)){ +var _36=true; +console._restoreBorder(); +var _37=[]; +_29(_35,_37); +_19.innerHTML=_37.join(""); +_1f=_35; +_20=_1f.style.border; +_1f.style.border="#0000FF 1px solid"; +} +}); +setTimeout(function(){ +_1b=dojo.connect(document,"click",function(evt){ +document.body.style.cursor=""; +_1c=!_1c; +dojo.disconnect(_1b); +}); +},30); +},_closeDomInspector:function(){ +document.body.style.cursor=""; +dojo.disconnect(_1a); +dojo.disconnect(_1b); +_1c=false; +console._restoreBorder(); +},openConsole:function(){ +_f.style.display="block"; +_19.style.display="none"; +_10.style.display="none"; +console._closeDomInspector(); +},openObjectInspector:function(){ +_f.style.display="none"; +_19.style.display="none"; +_10.style.display="block"; +console._closeDomInspector(); +},recss:function(){ +var i,a,s; +a=document.getElementsByTagName("link"); +for(i=0;i<a.length;i++){ +s=a[i]; +if(s.rel.toLowerCase().indexOf("stylesheet")>=0&&s.href){ +var h=s.href.replace(/(&|%5C?)forceReload=\d+/,""); +s.href=h+(h.indexOf("?")>=0?"&":"?")+"forceReload="+new Date().valueOf(); +} +} +}}; +function _34(_38){ +_14=_38||!_14; +if(_e){ +_e.style.display=_14?"block":"none"; +} +}; +function _39(){ +_34(true); +if(_12){ +_12.focus(); +} +}; +function _3a(x,y,w,h){ +var win=window.open("","_firebug","status=0,menubar=0,resizable=1,top="+y+",left="+x+",width="+w+",height="+h+",scrollbars=1,addressbar=0"); +if(!win){ +var msg="Firebug Lite could not open a pop-up window, most likely because of a blocker.\n"+"Either enable pop-ups for this domain, or change the djConfig to popup=false."; +alert(msg); +} +_3b(win); +var _3c=win.document; +var _3d="<html style=\"height:100%;\"><head><title>Firebug Lite</title></head>\n"+"<body bgColor=\"#ccc\" style=\"height:97%;\" onresize=\"opener.onFirebugResize()\">\n"+"<div id=\"fb\"></div>"+"</body></html>"; +_3c.write(_3d); +_3c.close(); +return win; +}; +function _3b(wn){ +var d=new Date(); +d.setTime(d.getTime()+(60*24*60*60*1000)); +d=d.toUTCString(); +var dc=wn.document,_3e; +if(wn.innerWidth){ +_3e=function(){ +return {w:wn.innerWidth,h:wn.innerHeight}; +}; +}else{ +if(dc.documentElement&&dc.documentElement.clientWidth){ +_3e=function(){ +return {w:dc.documentElement.clientWidth,h:dc.documentElement.clientHeight}; +}; +}else{ +if(dc.body){ +_3e=function(){ +return {w:dc.body.clientWidth,h:dc.body.clientHeight}; +}; +} +} +} +window.onFirebugResize=function(){ +_4c(_3e().h); +clearInterval(wn._firebugWin_resize); +wn._firebugWin_resize=setTimeout(function(){ +var x=wn.screenLeft,y=wn.screenTop,w=wn.outerWidth||wn.document.body.offsetWidth,h=wn.outerHeight||wn.document.body.offsetHeight; +document.cookie="_firebugPosition="+[x,y,w,h].join(",")+"; expires="+d+"; path=/"; +},5000); +}; +}; +function _3f(){ +if(_e){ +return; +} +if(dojo.config.popup){ +var _40="100%"; +var _41=document.cookie.match(/(?:^|; )_firebugPosition=([^;]*)/); +var p=_41?_41[1].split(","):[2,2,320,480]; +_c=_3a(p[0],p[1],p[2],p[3]); +_b=_c.document; +dojo.config.debugContainerId="fb"; +_c.console=window.console; +_c.dojo=window.dojo; +}else{ +_b=document; +_40=(dojo.config.debugHeight||300)+"px"; +} +var _42=_b.createElement("link"); +_42.href=dojo.moduleUrl("dojo._firebug","firebug.css"); +_42.rel="stylesheet"; +_42.type="text/css"; +var _43=_b.getElementsByTagName("head"); +if(_43){ +_43=_43[0]; +} +if(!_43){ +_43=_b.getElementsByTagName("html")[0]; +} +if(dojo.isIE){ +window.setTimeout(function(){ +_43.appendChild(_42); +},0); +}else{ +_43.appendChild(_42); +} +if(dojo.config.debugContainerId){ +_e=_b.getElementById(dojo.config.debugContainerId); +} +if(!_e){ +_e=_b.createElement("div"); +_b.body.appendChild(_e); +} +_e.className+=" firebug"; +_e.style.height=_40; +_e.style.display=(_14?"block":"none"); +var _44=function(_45,_46,_47,_48){ +return "<li class=\""+_48+"\"><a href=\"javascript:void(0);\" onclick=\"console."+_47+"(); return false;\" title=\""+_46+"\">"+_45+"</a></li>"; +}; +_e.innerHTML="<div id=\"firebugToolbar\">"+" <ul id=\"fireBugTabs\" class=\"tabs\">"+_44("Clear","Remove All Console Logs","clear","")+_44("ReCSS","Refresh CSS without reloading page","recss","")+_44("Console","Show Console Logs","openConsole","gap")+_44("DOM","Show DOM Inspector","openDomInspector","")+_44("Object","Show Object Inspector","openObjectInspector","")+((dojo.config.popup)?"":_44("Close","Close the console","close","gap"))+"\t</ul>"+"</div>"+"<input type=\"text\" id=\"firebugCommandLine\" />"+"<div id=\"firebugLog\"></div>"+"<div id=\"objectLog\" style=\"display:none;\">Click on an object in the Log display</div>"+"<div id=\"domInspect\" style=\"display:none;\">Hover over HTML elements in the main page. Click to hold selection.</div>"; +_13=_b.getElementById("firebugToolbar"); +_12=_b.getElementById("firebugCommandLine"); +_49(_12,"keydown",_4a); +_49(_b,dojo.isIE||dojo.isSafari?"keydown":"keypress",_4b); +_f=_b.getElementById("firebugLog"); +_10=_b.getElementById("objectLog"); +_19=_b.getElementById("domInspect"); +_11=_b.getElementById("fireBugTabs"); +_4c(); +_4d(); +}; +dojo.addOnLoad(_3f); +function _4e(){ +_b=null; +if(_c.console){ +_c.console.clear(); +} +_c=null; +_e=null; +_f=null; +_10=null; +_19=null; +_12=null; +_15=[]; +_16=[]; +_17={}; +}; +function _4f(){ +var _50=_12.value; +_12.value=""; +_26(["> ",_50],"command"); +var _51; +try{ +_51=eval(_50); +} +catch(e){ +} +}; +function _4c(h){ +var _52=25; +var _53=h?h-(_52+_12.offsetHeight+25+(h*0.01))+"px":(_e.offsetHeight-_52-_12.offsetHeight)+"px"; +_f.style.top=_52+"px"; +_f.style.height=_53; +_10.style.height=_53; +_10.style.top=_52+"px"; +_19.style.height=_53; +_19.style.top=_52+"px"; +_12.style.bottom=0; +dojo.addOnWindowUnload(_4e); +}; +function _26(_54,_55,_56){ +if(_f){ +_57(_54,_55,_56); +}else{ +_15.push([_54,_55,_56]); +} +}; +function _4d(){ +var _58=_15; +_15=[]; +for(var i=0;i<_58.length;++i){ +_57(_58[i][0],_58[i][1],_58[i][2]); +} +}; +function _57(_59,_5a,_5b){ +var _5c=_f.scrollTop+_f.offsetHeight>=_f.scrollHeight; +_5b=_5b||_5d; +_5b(_59,_5a); +if(_5c){ +_f.scrollTop=_f.scrollHeight-_f.offsetHeight; +} +}; +function _5e(row){ +var _5f=_16.length?_16[_16.length-1]:_f; +_5f.appendChild(row); +}; +function _5d(_60,_61){ +var row=_f.ownerDocument.createElement("div"); +row.className="logRow"+(_61?" logRow-"+_61:""); +row.innerHTML=_60.join(""); +_5e(row); +}; +function _2a(_62,_63){ +_21(_62,_63); +var _64=_f.ownerDocument.createElement("div"); +_64.className="logGroupBox"; +_5e(_64); +_16.push(_64); +}; +function _2b(){ +_16.pop(); +}; +function _21(_65,_66){ +var _67=[]; +var _68=_65[0]; +var _69=0; +if(typeof (_68)!="string"){ +_68=""; +_69=-1; +} +var _6a=_6b(_68); +for(var i=0;i<_6a.length;++i){ +var _6c=_6a[i]; +if(_6c&&typeof _6c=="object"){ +_6c.appender(_65[++_69],_67); +}else{ +_6d(_6c,_67); +} +} +var ids=[]; +var obs=[]; +for(i=_69+1;i<_65.length;++i){ +_6d(" ",_67); +var _6e=_65[i]; +if(_6e===undefined||_6e===null){ +_6f(_6e,_67); +}else{ +if(typeof (_6e)=="string"){ +_6d(_6e,_67); +}else{ +if(_6e instanceof Date){ +_6d(_6e.toString(),_67); +}else{ +if(_6e.nodeType==9){ +_6d("[ XmlDoc ]",_67); +}else{ +var id="_a"+_d++; +ids.push(id); +obs.push(_6e); +var str="<a id=\""+id+"\" href=\"javascript:void(0);\">"+_70(_6e)+"</a>"; +_71(str,_67); +} +} +} +} +} +_26(_67,_66); +for(i=0;i<ids.length;i++){ +var btn=_b.getElementById(ids[i]); +if(!btn){ +continue; +} +btn.obj=obs[i]; +_c.console._connects.push(dojo.connect(btn,"onclick",function(){ +console.openObjectInspector(); +try{ +_25(this.obj); +} +catch(e){ +this.obj=e; +} +_10.innerHTML="<pre>"+_25(this.obj)+"</pre>"; +})); +} +}; +function _6b(_72){ +var _73=[]; +var reg=/((^%|[^\\]%)(\d+)?(\.)([a-zA-Z]))|((^%|[^\\]%)([a-zA-Z]))/; +var _74={s:_6d,d:_75,i:_75,f:_76}; +for(var m=reg.exec(_72);m;m=reg.exec(_72)){ +var _77=m[8]?m[8]:m[5]; +var _78=_77 in _74?_74[_77]:_79; +var _7a=m[3]?parseInt(m[3]):(m[4]=="."?-1:0); +_73.push(_72.substr(0,m[0][0]=="%"?m.index:m.index+1)); +_73.push({appender:_78,precision:_7a}); +_72=_72.substr(m.index+m[0].length); +} +_73.push(_72); +return _73; +}; +function _7b(_7c){ +function _7d(ch){ +switch(ch){ +case "<": +return "<"; +case ">": +return ">"; +case "&": +return "&"; +case "'": +return "'"; +case "\"": +return """; +} +return "?"; +}; +return String(_7c).replace(/[<>&"']/g,_7d); +}; +function _7e(_7f){ +try{ +return _7f+""; +} +catch(e){ +return null; +} +}; +function _71(_80,_81){ +_81.push(_7e(_80)); +}; +function _6d(_82,_83){ +_83.push(_7b(_7e(_82))); +}; +function _6f(_84,_85){ +_85.push("<span class=\"objectBox-null\">",_7b(_7e(_84)),"</span>"); +}; +function _86(_87,_88){ +_88.push("<span class=\"objectBox-string\">"",_7b(_7e(_87)),""</span>"); +}; +function _75(_89,_8a){ +_8a.push("<span class=\"objectBox-number\">",_7b(_7e(_89)),"</span>"); +}; +function _76(_8b,_8c){ +_8c.push("<span class=\"objectBox-number\">",_7b(_7e(_8b)),"</span>"); +}; +function _8d(_8e,_8f){ +_8f.push("<span class=\"objectBox-function\">",_70(_8e),"</span>"); +}; +function _79(_90,_91){ +try{ +if(_90===undefined){ +_6f("undefined",_91); +}else{ +if(_90===null){ +_6f("null",_91); +}else{ +if(typeof _90=="string"){ +_86(_90,_91); +}else{ +if(typeof _90=="number"){ +_75(_90,_91); +}else{ +if(typeof _90=="function"){ +_8d(_90,_91); +}else{ +if(_90.nodeType==1){ +_92(_90,_91); +}else{ +if(typeof _90=="object"){ +_93(_90,_91); +}else{ +_6d(_90,_91); +} +} +} +} +} +} +} +} +catch(e){ +} +}; +function _93(_94,_95){ +var _96=_7e(_94); +var _97=/\[object (.*?)\]/; +var m=_97.exec(_96); +_95.push("<span class=\"objectBox-object\">",m?m[1]:_96,"</span>"); +}; +function _92(_98,_99){ +_99.push("<span class=\"objectBox-selector\">"); +_99.push("<span class=\"selectorTag\">",_7b(_98.nodeName.toLowerCase()),"</span>"); +if(_98.id){ +_99.push("<span class=\"selectorId\">#",_7b(_98.id),"</span>"); +} +if(_98.className){ +_99.push("<span class=\"selectorClass\">.",_7b(_98.className),"</span>"); +} +_99.push("</span>"); +}; +function _29(_9a,_9b){ +if(_9a.nodeType==1){ +_9b.push("<div class=\"objectBox-element\">","<<span class=\"nodeTag\">",_9a.nodeName.toLowerCase(),"</span>"); +for(var i=0;i<_9a.attributes.length;++i){ +var _9c=_9a.attributes[i]; +if(!_9c.specified){ +continue; +} +_9b.push(" <span class=\"nodeName\">",_9c.nodeName.toLowerCase(),"</span>="<span class=\"nodeValue\">",_7b(_9c.nodeValue),"</span>""); +} +if(_9a.firstChild){ +_9b.push("></div><div class=\"nodeChildren\">"); +for(var _9d=_9a.firstChild;_9d;_9d=_9d.nextSibling){ +_29(_9d,_9b); +} +_9b.push("</div><div class=\"objectBox-element\"></<span class=\"nodeTag\">",_9a.nodeName.toLowerCase(),"></span></div>"); +}else{ +_9b.push("/></div>"); +} +}else{ +if(_9a.nodeType==3){ +_9b.push("<div class=\"nodeText\">",_7b(_9a.nodeValue),"</div>"); +} +} +}; +function _49(_9e,_9f,_a0){ +if(document.all){ +_9e.attachEvent("on"+_9f,_a0); +}else{ +_9e.addEventListener(_9f,_a0,false); +} +}; +function _a1(_a2,_a3,_a4){ +if(document.all){ +_a2.detachEvent("on"+_a3,_a4); +}else{ +_a2.removeEventListener(_a3,_a4,false); +} +}; +function _a5(_a6){ +if(document.all){ +_a6.cancelBubble=true; +}else{ +_a6.stopPropagation(); +} +}; +function _a7(msg,_a8,_a9){ +var _aa=_a8.lastIndexOf("/"); +var _ab=_aa==-1?_a8:_a8.substr(_aa+1); +var _ac=["<span class=\"errorMessage\">",msg,"</span>","<div class=\"objectBox-sourceLink\">",_ab," (line ",_a9,")</div>"]; +_26(_ac,"error"); +}; +var _ad=new Date().getTime(); +function _4b(_ae){ +var _af=(new Date()).getTime(); +if(_af>_ad+200){ +_ae=dojo.fixEvent(_ae); +var _b0=dojo.keys; +var ekc=_ae.keyCode; +_ad=_af; +if(ekc==_b0.F12){ +_34(); +}else{ +if((ekc==_b0.NUMPAD_ENTER||ekc==76)&&_ae.shiftKey&&(_ae.metaKey||_ae.ctrlKey)){ +_39(); +}else{ +return; +} +} +_a5(_ae); +} +}; +function _4a(e){ +var dk=dojo.keys; +if(e.keyCode==13&&_12.value){ +_b1(_12.value); +_4f(); +}else{ +if(e.keyCode==27){ +_12.value=""; +}else{ +if(e.keyCode==dk.UP_ARROW||e.charCode==dk.UP_ARROW){ +_b2("older"); +}else{ +if(e.keyCode==dk.DOWN_ARROW||e.charCode==dk.DOWN_ARROW){ +_b2("newer"); +}else{ +if(e.keyCode==dk.HOME||e.charCode==dk.HOME){ +_b3=1; +_b2("older"); +}else{ +if(e.keyCode==dk.END||e.charCode==dk.END){ +_b3=999999; +_b2("newer"); +} +} +} +} +} +} +}; +var _b3=-1; +var _b4=null; +function _b1(_b5){ +var _b6=_b7("firebug_history"); +_b6=(_b6)?dojo.fromJson(_b6):[]; +var pos=dojo.indexOf(_b6,_b5); +if(pos!=-1){ +_b6.splice(pos,1); +} +_b6.push(_b5); +_b7("firebug_history",dojo.toJson(_b6),30); +while(_b6.length&&!_b7("firebug_history")){ +_b6.shift(); +_b7("firebug_history",dojo.toJson(_b6),30); +} +_b4=null; +_b3=-1; +}; +function _b2(_b8){ +var _b9=_b7("firebug_history"); +_b9=(_b9)?dojo.fromJson(_b9):[]; +if(!_b9.length){ +return; +} +if(_b4===null){ +_b4=_12.value; +} +if(_b3==-1){ +_b3=_b9.length; +} +if(_b8=="older"){ +--_b3; +if(_b3<0){ +_b3=0; +} +}else{ +if(_b8=="newer"){ +++_b3; +if(_b3>_b9.length){ +_b3=_b9.length; +} +} +} +if(_b3==_b9.length){ +_12.value=_b4; +_b4=null; +}else{ +_12.value=_b9[_b3]; +} +}; +function _b7(_ba,_bb){ +var c=document.cookie; +if(arguments.length==1){ +var _bc=c.match(new RegExp("(?:^|; )"+_ba+"=([^;]*)")); +return _bc?decodeURIComponent(_bc[1]):undefined; +}else{ +var d=new Date(); +d.setMonth(d.getMonth()+1); +document.cookie=_ba+"="+encodeURIComponent(_bb)+((d.toUtcString)?"; expires="+d.toUTCString():""); +} +}; +function _bd(it){ +return it&&it instanceof Array||typeof it=="array"; +}; +function _be(o){ +var cnt=0; +for(var nm in o){ +cnt++; +} +return cnt; +}; +function _25(o,i,txt,_bf){ +var ind=" \t"; +txt=txt||""; +i=i||ind; +_bf=_bf||[]; +var _c0; +if(o&&o.nodeType==1){ +var _c1=[]; +_29(o,_c1); +return _c1.join(""); +} +var br=",\n",cnt=0,_c2=_be(o); +if(o instanceof Date){ +return i+o.toString()+br; +} +looking: +for(var nm in o){ +cnt++; +if(cnt==_c2){ +br="\n"; +} +if(o[nm]===window||o[nm]===document){ +continue; +}else{ +if(o[nm]===null){ +txt+=i+nm+" : NULL"+br; +}else{ +if(o[nm]&&o[nm].nodeType){ +if(o[nm].nodeType==1){ +}else{ +if(o[nm].nodeType==3){ +txt+=i+nm+" : [ TextNode "+o[nm].data+" ]"+br; +} +} +}else{ +if(typeof o[nm]=="object"&&(o[nm] instanceof String||o[nm] instanceof Number||o[nm] instanceof Boolean)){ +txt+=i+nm+" : "+o[nm]+","+br; +}else{ +if(o[nm] instanceof Date){ +txt+=i+nm+" : "+o[nm].toString()+br; +}else{ +if(typeof (o[nm])=="object"&&o[nm]){ +for(var j=0,_c3;_c3=_bf[j];j++){ +if(o[nm]===_c3){ +txt+=i+nm+" : RECURSION"+br; +continue looking; +} +} +_bf.push(o[nm]); +_c0=(_bd(o[nm]))?["[","]"]:["{","}"]; +txt+=i+nm+" : "+_c0[0]+"\n"; +txt+=_25(o[nm],i+ind,"",_bf); +txt+=i+_c0[1]+br; +}else{ +if(typeof o[nm]=="undefined"){ +txt+=i+nm+" : undefined"+br; +}else{ +if(nm=="toString"&&typeof o[nm]=="function"){ +var _c4=o[nm](); +if(typeof _c4=="string"&&_c4.match(/function ?(.*?)\(/)){ +_c4=_7b(_70(o[nm])); +} +txt+=i+nm+" : "+_c4+br; +}else{ +txt+=i+nm+" : "+_7b(_70(o[nm]))+br; +} +} +} +} +} +} +} +} +} +return txt; +}; +function _70(obj){ +var _c5=(obj instanceof Error); +if(obj.nodeType==1){ +return _7b("< "+obj.tagName.toLowerCase()+" id=\""+obj.id+"\" />"); +} +if(obj.nodeType==3){ +return _7b("[TextNode: \""+obj.nodeValue+"\"]"); +} +var nm=(obj&&(obj.id||obj.name||obj.ObjectID||obj.widgetId)); +if(!_c5&&nm){ +return "{"+nm+"}"; +} +var _c6=2; +var _c7=4; +var cnt=0; +if(_c5){ +nm="[ Error: "+(obj.message||obj.description||obj)+" ]"; +}else{ +if(_bd(obj)){ +nm="["+obj.slice(0,_c7).join(","); +if(obj.length>_c7){ +nm+=" ... ("+obj.length+" items)"; +} +nm+="]"; +}else{ +if(typeof obj=="function"){ +nm=obj+""; +var reg=/function\s*([^\(]*)(\([^\)]*\))[^\{]*\{/; +var m=reg.exec(nm); +if(m){ +if(!m[1]){ +m[1]="function"; +} +nm=m[1]+m[2]; +}else{ +nm="function()"; +} +}else{ +if(typeof obj!="object"||typeof obj=="string"){ +nm=obj+""; +}else{ +nm="{"; +for(var i in obj){ +cnt++; +if(cnt>_c6){ +break; +} +nm+=i+":"+_7b(obj[i])+" "; +} +nm+="}"; +} +} +} +} +return nm; +}; +_49(document,dojo.isIE||dojo.isSafari?"keydown":"keypress",_4b); +if((document.documentElement.getAttribute("debug")=="true")||(dojo.config.isDebug)){ +_34(true); +} +dojo.addOnWindowUnload(function(){ +_a1(document,dojo.isIE||dojo.isSafari?"keydown":"keypress",_4b); +window.onFirebugResize=null; +window.console=null; +}); +} +})(); +} diff --git a/lib/dojo/_firebug/infoIcon.png b/lib/dojo/_firebug/infoIcon.png Binary files differnew file mode 100644 index 000000000..da1e5334c --- /dev/null +++ b/lib/dojo/_firebug/infoIcon.png diff --git a/lib/dojo/_firebug/tab_lft_norm.png b/lib/dojo/_firebug/tab_lft_norm.png Binary files differnew file mode 100644 index 000000000..f0479a28a --- /dev/null +++ b/lib/dojo/_firebug/tab_lft_norm.png diff --git a/lib/dojo/_firebug/tab_lft_over.png b/lib/dojo/_firebug/tab_lft_over.png Binary files differnew file mode 100644 index 000000000..2f36cca92 --- /dev/null +++ b/lib/dojo/_firebug/tab_lft_over.png diff --git a/lib/dojo/_firebug/tab_rgt_norm.png b/lib/dojo/_firebug/tab_rgt_norm.png Binary files differnew file mode 100644 index 000000000..464af3ef1 --- /dev/null +++ b/lib/dojo/_firebug/tab_rgt_norm.png diff --git a/lib/dojo/_firebug/tab_rgt_over.png b/lib/dojo/_firebug/tab_rgt_over.png Binary files differnew file mode 100644 index 000000000..2bc2cd075 --- /dev/null +++ b/lib/dojo/_firebug/tab_rgt_over.png diff --git a/lib/dojo/_firebug/warningIcon.png b/lib/dojo/_firebug/warningIcon.png Binary files differnew file mode 100644 index 000000000..de51084e8 --- /dev/null +++ b/lib/dojo/_firebug/warningIcon.png diff --git a/lib/dojo/back.js b/lib/dojo/back.js new file mode 100644 index 000000000..a26562872 --- /dev/null +++ b/lib/dojo/back.js @@ -0,0 +1,258 @@ +/* + 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["dojo.back"]){ +dojo._hasResource["dojo.back"]=true; +dojo.provide("dojo.back"); +(function(){ +var _1=dojo.back; +function _2(){ +var h=window.location.hash; +if(h.charAt(0)=="#"){ +h=h.substring(1); +} +return dojo.isMozilla?h:decodeURIComponent(h); +}; +function _3(h){ +if(!h){ +h=""; +} +window.location.hash=encodeURIComponent(h); +_4=history.length; +}; +if(dojo.exists("tests.back-hash")){ +_1.getHash=_2; +_1.setHash=_3; +} +var _5=(typeof (window)!=="undefined")?window.location.href:""; +var _6=(typeof (window)!=="undefined")?_2():""; +var _7=null; +var _8=null; +var _9=null; +var _a=null; +var _b=[]; +var _c=[]; +var _d=false; +var _e=false; +var _4; +function _f(){ +var _10=_c.pop(); +if(!_10){ +return; +} +var _11=_c[_c.length-1]; +if(!_11&&_c.length==0){ +_11=_7; +} +if(_11){ +if(_11.kwArgs["back"]){ +_11.kwArgs["back"](); +}else{ +if(_11.kwArgs["backButton"]){ +_11.kwArgs["backButton"](); +}else{ +if(_11.kwArgs["handle"]){ +_11.kwArgs.handle("back"); +} +} +} +} +_b.push(_10); +}; +_1.goBack=_f; +function _12(){ +var _13=_b.pop(); +if(!_13){ +return; +} +if(_13.kwArgs["forward"]){ +_13.kwArgs.forward(); +}else{ +if(_13.kwArgs["forwardButton"]){ +_13.kwArgs.forwardButton(); +}else{ +if(_13.kwArgs["handle"]){ +_13.kwArgs.handle("forward"); +} +} +} +_c.push(_13); +}; +_1.goForward=_12; +function _14(url,_15,_16){ +return {"url":url,"kwArgs":_15,"urlHash":_16}; +}; +function _17(url){ +var _18=url.split("?"); +if(_18.length<2){ +return null; +}else{ +return _18[1]; +} +}; +function _19(){ +var url=(dojo.config["dojoIframeHistoryUrl"]||dojo.moduleUrl("dojo","resources/iframe_history.html"))+"?"+(new Date()).getTime(); +_d=true; +if(_a){ +dojo.isWebKit?_a.location=url:window.frames[_a.name].location=url; +}else{ +} +return url; +}; +function _1a(){ +if(!_e){ +var hsl=_c.length; +var _1b=_2(); +if((_1b===_6||window.location.href==_5)&&(hsl==1)){ +_f(); +return; +} +if(_b.length>0){ +if(_b[_b.length-1].urlHash===_1b){ +_12(); +return; +} +} +if((hsl>=2)&&(_c[hsl-2])){ +if(_c[hsl-2].urlHash===_1b){ +_f(); +return; +} +} +if(dojo.isSafari&&dojo.isSafari<3){ +var _1c=history.length; +if(_1c>_4){ +_12(); +}else{ +if(_1c<_4){ +_f(); +} +} +_4=_1c; +} +} +}; +_1.init=function(){ +if(dojo.byId("dj_history")){ +return; +} +var src=dojo.config["dojoIframeHistoryUrl"]||dojo.moduleUrl("dojo","resources/iframe_history.html"); +if(dojo._postLoad){ +console.error("dojo.back.init() must be called before the DOM has loaded. "+"If using xdomain loading or djConfig.debugAtAllCosts, include dojo.back "+"in a build layer."); +}else{ +document.write("<iframe style=\"border:0;width:1px;height:1px;position:absolute;visibility:hidden;bottom:0;right:0;\" name=\"dj_history\" id=\"dj_history\" src=\""+src+"\"></iframe>"); +} +}; +_1.setInitialState=function(_1d){ +_7=_14(_5,_1d,_6); +}; +_1.addToHistory=function(_1e){ +_b=[]; +var _1f=null; +var url=null; +if(!_a){ +if(dojo.config["useXDomain"]&&!dojo.config["dojoIframeHistoryUrl"]){ +console.warn("dojo.back: When using cross-domain Dojo builds,"+" please save iframe_history.html to your domain and set djConfig.dojoIframeHistoryUrl"+" to the path on your domain to iframe_history.html"); +} +_a=window.frames["dj_history"]; +} +if(!_9){ +_9=dojo.create("a",{style:{display:"none"}},dojo.body()); +} +if(_1e["changeUrl"]){ +_1f=""+((_1e["changeUrl"]!==true)?_1e["changeUrl"]:(new Date()).getTime()); +if(_c.length==0&&_7.urlHash==_1f){ +_7=_14(url,_1e,_1f); +return; +}else{ +if(_c.length>0&&_c[_c.length-1].urlHash==_1f){ +_c[_c.length-1]=_14(url,_1e,_1f); +return; +} +} +_e=true; +setTimeout(function(){ +_3(_1f); +_e=false; +},1); +_9.href=_1f; +if(dojo.isIE){ +url=_19(); +var _20=_1e["back"]||_1e["backButton"]||_1e["handle"]; +var tcb=function(_21){ +if(_2()!=""){ +setTimeout(function(){ +_3(_1f); +},1); +} +_20.apply(this,[_21]); +}; +if(_1e["back"]){ +_1e.back=tcb; +}else{ +if(_1e["backButton"]){ +_1e.backButton=tcb; +}else{ +if(_1e["handle"]){ +_1e.handle=tcb; +} +} +} +var _22=_1e["forward"]||_1e["forwardButton"]||_1e["handle"]; +var tfw=function(_23){ +if(_2()!=""){ +_3(_1f); +} +if(_22){ +_22.apply(this,[_23]); +} +}; +if(_1e["forward"]){ +_1e.forward=tfw; +}else{ +if(_1e["forwardButton"]){ +_1e.forwardButton=tfw; +}else{ +if(_1e["handle"]){ +_1e.handle=tfw; +} +} +} +}else{ +if(!dojo.isIE){ +if(!_8){ +_8=setInterval(_1a,200); +} +} +} +}else{ +url=_19(); +} +_c.push(_14(url,_1e,_1f)); +}; +_1._iframeLoaded=function(evt,_24){ +var _25=_17(_24.href); +if(_25==null){ +if(_c.length==1){ +_f(); +} +return; +} +if(_d){ +_d=false; +return; +} +if(_c.length>=2&&_25==_17(_c[_c.length-2].url)){ +_f(); +}else{ +if(_b.length>0&&_25==_17(_b[_b.length-1].url)){ +_12(); +} +} +}; +})(); +} diff --git a/lib/dojo/behavior.js b/lib/dojo/behavior.js new file mode 100644 index 000000000..3420fec20 --- /dev/null +++ b/lib/dojo/behavior.js @@ -0,0 +1,94 @@ +/* + 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["dojo.behavior"]){ +dojo._hasResource["dojo.behavior"]=true; +dojo.provide("dojo.behavior"); +dojo.behavior=new function(){ +function _1(_2,_3){ +if(!_2[_3]){ +_2[_3]=[]; +} +return _2[_3]; +}; +var _4=0; +function _5(_6,_7,_8){ +var _9={}; +for(var x in _6){ +if(typeof _9[x]=="undefined"){ +if(!_8){ +_7(_6[x],x); +}else{ +_8.call(_7,_6[x],x); +} +} +} +}; +this._behaviors={}; +this.add=function(_a){ +var _b={}; +_5(_a,this,function(_c,_d){ +var _e=_1(this._behaviors,_d); +if(typeof _e["id"]!="number"){ +_e.id=_4++; +} +var _f=[]; +_e.push(_f); +if((dojo.isString(_c))||(dojo.isFunction(_c))){ +_c={found:_c}; +} +_5(_c,function(_10,_11){ +_1(_f,_11).push(_10); +}); +}); +}; +var _12=function(_13,_14,_15){ +if(dojo.isString(_14)){ +if(_15=="found"){ +dojo.publish(_14,[_13]); +}else{ +dojo.connect(_13,_15,function(){ +dojo.publish(_14,arguments); +}); +} +}else{ +if(dojo.isFunction(_14)){ +if(_15=="found"){ +_14(_13); +}else{ +dojo.connect(_13,_15,_14); +} +} +} +}; +this.apply=function(){ +_5(this._behaviors,function(_16,id){ +dojo.query(id).forEach(function(_17){ +var _18=0; +var bid="_dj_behavior_"+_16.id; +if(typeof _17[bid]=="number"){ +_18=_17[bid]; +if(_18==(_16.length)){ +return; +} +} +for(var x=_18,_19;_19=_16[x];x++){ +_5(_19,function(_1a,_1b){ +if(dojo.isArray(_1a)){ +dojo.forEach(_1a,function(_1c){ +_12(_17,_1c,_1b); +}); +} +}); +} +_17[bid]=_16.length; +}); +}); +}; +}; +dojo.addOnLoad(dojo.behavior,"apply"); +} diff --git a/lib/dojo/build.txt b/lib/dojo/build.txt new file mode 100644 index 000000000..5db48dd14 --- /dev/null +++ b/lib/dojo/build.txt @@ -0,0 +1,328 @@ +Files baked into this build: + +dojo.js: +./jslib/dojoGuardStart.jsfrag +./../../dojo/_base/_loader/bootstrap.js +./../../dojo/_base/_loader/loader.js +./../../dojo/_base/_loader/hostenv_browser.js +./../../release/dojo-release-1.5.0/dojo/_base/lang.js +./../../release/dojo-release-1.5.0/dojo/_base/array.js +./../../release/dojo-release-1.5.0/dojo/_base/declare.js +./../../release/dojo-release-1.5.0/dojo/_base/connect.js +./../../release/dojo-release-1.5.0/dojo/_base/Deferred.js +./../../release/dojo-release-1.5.0/dojo/_base/json.js +./../../release/dojo-release-1.5.0/dojo/_base/Color.js +./../../release/dojo-release-1.5.0/dojo/_base.js +./../../release/dojo-release-1.5.0/dojo/_base/window.js +./../../release/dojo-release-1.5.0/dojo/_base/event.js +./../../release/dojo-release-1.5.0/dojo/_base/html.js +./../../release/dojo-release-1.5.0/dojo/_base/NodeList.js +./../../release/dojo-release-1.5.0/dojo/_base/query.js +./../../release/dojo-release-1.5.0/dojo/_base/xhr.js +./../../release/dojo-release-1.5.0/dojo/_base/fx.js +./../../release/dojo-release-1.5.0/dojo/_base/browser.js +./jslib/dojoGuardEnd.jsfrag + +../dijit/dijit.js: +./../../release/dojo-release-1.5.0/dojo/window.js +./../../release/dojo-release-1.5.0/dijit/_base/manager.js +./../../release/dojo-release-1.5.0/dijit/_base/focus.js +./../../release/dojo-release-1.5.0/dojo/AdapterRegistry.js +./../../release/dojo-release-1.5.0/dijit/_base/place.js +./../../release/dojo-release-1.5.0/dijit/_base/window.js +./../../release/dojo-release-1.5.0/dijit/_base/popup.js +./../../release/dojo-release-1.5.0/dijit/_base/scroll.js +./../../release/dojo-release-1.5.0/dojo/uacss.js +./../../release/dojo-release-1.5.0/dijit/_base/sniff.js +./../../release/dojo-release-1.5.0/dijit/_base/typematic.js +./../../release/dojo-release-1.5.0/dijit/_base/wai.js +./../../release/dojo-release-1.5.0/dijit/_base.js +./../../release/dojo-release-1.5.0/dojo/date/stamp.js +./../../release/dojo-release-1.5.0/dojo/parser.js +./../../release/dojo-release-1.5.0/dijit/_Widget.js +./../../release/dojo-release-1.5.0/dojo/string.js +./../../release/dojo-release-1.5.0/dojo/cache.js +./../../release/dojo-release-1.5.0/dijit/_Templated.js +./../../release/dojo-release-1.5.0/dijit/_Container.js +./../../release/dojo-release-1.5.0/dijit/_Contained.js +./../../release/dojo-release-1.5.0/dijit/layout/_LayoutWidget.js +./../../release/dojo-release-1.5.0/dijit/_CssStateMixin.js +./../../release/dojo-release-1.5.0/dijit/form/_FormWidget.js +./../../release/dojo-release-1.5.0/dijit/dijit.js + +../dijit/dijit-all.js: +./../../release/dojo-release-1.5.0/dojo/colors.js +./../../release/dojo-release-1.5.0/dojo/i18n.js +./../../release/dojo-release-1.5.0/dijit/_PaletteMixin.js +./../../release/dojo-release-1.5.0/dijit/ColorPalette.js +./../../release/dojo-release-1.5.0/dijit/Declaration.js +./../../release/dojo-release-1.5.0/dojo/dnd/common.js +./../../release/dojo-release-1.5.0/dojo/dnd/autoscroll.js +./../../release/dojo-release-1.5.0/dojo/dnd/Mover.js +./../../release/dojo-release-1.5.0/dojo/dnd/Moveable.js +./../../release/dojo-release-1.5.0/dojo/dnd/move.js +./../../release/dojo-release-1.5.0/dojo/dnd/TimedMoveable.js +./../../release/dojo-release-1.5.0/dojo/fx/Toggler.js +./../../release/dojo-release-1.5.0/dojo/fx.js +./../../release/dojo-release-1.5.0/dijit/form/_FormMixin.js +./../../release/dojo-release-1.5.0/dijit/_DialogMixin.js +./../../release/dojo-release-1.5.0/dijit/DialogUnderlay.js +./../../release/dojo-release-1.5.0/dojo/html.js +./../../release/dojo-release-1.5.0/dijit/layout/ContentPane.js +./../../release/dojo-release-1.5.0/dijit/TooltipDialog.js +./../../release/dojo-release-1.5.0/dijit/Dialog.js +./../../release/dojo-release-1.5.0/dijit/_editor/selection.js +./../../release/dojo-release-1.5.0/dijit/_editor/range.js +./../../release/dojo-release-1.5.0/dijit/_editor/html.js +./../../release/dojo-release-1.5.0/dijit/_editor/RichText.js +./../../release/dojo-release-1.5.0/dijit/_KeyNavContainer.js +./../../release/dojo-release-1.5.0/dijit/ToolbarSeparator.js +./../../release/dojo-release-1.5.0/dijit/Toolbar.js +./../../release/dojo-release-1.5.0/dijit/_HasDropDown.js +./../../release/dojo-release-1.5.0/dijit/form/Button.js +./../../release/dojo-release-1.5.0/dijit/_editor/_Plugin.js +./../../release/dojo-release-1.5.0/dijit/_editor/plugins/EnterKeyHandling.js +./../../release/dojo-release-1.5.0/dijit/Editor.js +./../../release/dojo-release-1.5.0/dojo/regexp.js +./../../release/dojo-release-1.5.0/dojo/data/util/sorter.js +./../../release/dojo-release-1.5.0/dojo/data/util/simpleFetch.js +./../../release/dojo-release-1.5.0/dojo/data/util/filter.js +./../../release/dojo-release-1.5.0/dijit/form/TextBox.js +./../../release/dojo-release-1.5.0/dijit/Tooltip.js +./../../release/dojo-release-1.5.0/dijit/form/ValidationTextBox.js +./../../release/dojo-release-1.5.0/dijit/form/ComboBox.js +./../../release/dojo-release-1.5.0/dijit/form/FilteringSelect.js +./../../release/dojo-release-1.5.0/dojo/data/ItemFileReadStore.js +./../../release/dojo-release-1.5.0/dijit/_editor/plugins/FontChoice.js +./../../release/dojo-release-1.5.0/dijit/form/_FormSelectWidget.js +./../../release/dojo-release-1.5.0/dijit/MenuItem.js +./../../release/dojo-release-1.5.0/dijit/PopupMenuItem.js +./../../release/dojo-release-1.5.0/dijit/CheckedMenuItem.js +./../../release/dojo-release-1.5.0/dijit/MenuSeparator.js +./../../release/dojo-release-1.5.0/dijit/Menu.js +./../../release/dojo-release-1.5.0/dijit/form/Select.js +./../../release/dojo-release-1.5.0/dijit/_editor/plugins/LinkDialog.js +./../../release/dojo-release-1.5.0/dijit/MenuBar.js +./../../release/dojo-release-1.5.0/dijit/MenuBarItem.js +./../../release/dojo-release-1.5.0/dijit/PopupMenuBarItem.js +./../../release/dojo-release-1.5.0/dojo/number.js +./../../release/dojo-release-1.5.0/dijit/ProgressBar.js +./../../release/dojo-release-1.5.0/dijit/TitlePane.js +./../../release/dojo-release-1.5.0/dojo/DeferredList.js +./../../release/dojo-release-1.5.0/dojo/cookie.js +./../../release/dojo-release-1.5.0/dijit/tree/TreeStoreModel.js +./../../release/dojo-release-1.5.0/dijit/tree/ForestStoreModel.js +./../../release/dojo-release-1.5.0/dijit/Tree.js +./../../release/dojo-release-1.5.0/dijit/InlineEditBox.js +./../../release/dojo-release-1.5.0/dijit/form/Form.js +./../../release/dojo-release-1.5.0/dijit/form/DropDownButton.js +./../../release/dojo-release-1.5.0/dijit/form/ComboButton.js +./../../release/dojo-release-1.5.0/dijit/form/ToggleButton.js +./../../release/dojo-release-1.5.0/dijit/form/CheckBox.js +./../../release/dojo-release-1.5.0/dijit/form/RadioButton.js +./../../release/dojo-release-1.5.0/dojo/cldr/monetary.js +./../../release/dojo-release-1.5.0/dojo/currency.js +./../../release/dojo-release-1.5.0/dijit/form/NumberTextBox.js +./../../release/dojo-release-1.5.0/dijit/form/CurrencyTextBox.js +./../../release/dojo-release-1.5.0/dojo/cldr/supplemental.js +./../../release/dojo-release-1.5.0/dojo/date.js +./../../release/dojo-release-1.5.0/dojo/date/locale.js +./../../release/dojo-release-1.5.0/dijit/Calendar.js +./../../release/dojo-release-1.5.0/dijit/form/_DateTimeTextBox.js +./../../release/dojo-release-1.5.0/dijit/form/DateTextBox.js +./../../release/dojo-release-1.5.0/dijit/form/_Spinner.js +./../../release/dojo-release-1.5.0/dijit/form/NumberSpinner.js +./../../release/dojo-release-1.5.0/dijit/form/MultiSelect.js +./../../release/dojo-release-1.5.0/dijit/form/HorizontalSlider.js +./../../release/dojo-release-1.5.0/dijit/form/VerticalSlider.js +./../../release/dojo-release-1.5.0/dijit/form/HorizontalRule.js +./../../release/dojo-release-1.5.0/dijit/form/VerticalRule.js +./../../release/dojo-release-1.5.0/dijit/form/HorizontalRuleLabels.js +./../../release/dojo-release-1.5.0/dijit/form/VerticalRuleLabels.js +./../../release/dojo-release-1.5.0/dijit/form/SimpleTextarea.js +./../../release/dojo-release-1.5.0/dijit/form/Textarea.js +./../../release/dojo-release-1.5.0/dijit/layout/StackController.js +./../../release/dojo-release-1.5.0/dijit/layout/StackContainer.js +./../../release/dojo-release-1.5.0/dijit/layout/AccordionPane.js +./../../release/dojo-release-1.5.0/dijit/layout/AccordionContainer.js +./../../release/dojo-release-1.5.0/dijit/layout/BorderContainer.js +./../../release/dojo-release-1.5.0/dijit/layout/LayoutContainer.js +./../../release/dojo-release-1.5.0/dijit/layout/LinkPane.js +./../../release/dojo-release-1.5.0/dijit/layout/SplitContainer.js +./../../release/dojo-release-1.5.0/dijit/layout/_TabContainerBase.js +./../../release/dojo-release-1.5.0/dijit/layout/TabController.js +./../../release/dojo-release-1.5.0/dijit/layout/ScrollingTabController.js +./../../release/dojo-release-1.5.0/dijit/layout/TabContainer.js +./../../release/dojo-release-1.5.0/dijit/dijit-all.js + +../dojox/grid/DataGrid.js: +./../../release/dojo-release-1.5.0/dojo/window.js +./../../release/dojo-release-1.5.0/dijit/_base/manager.js +./../../release/dojo-release-1.5.0/dijit/_base/focus.js +./../../release/dojo-release-1.5.0/dojo/AdapterRegistry.js +./../../release/dojo-release-1.5.0/dijit/_base/place.js +./../../release/dojo-release-1.5.0/dijit/_base/window.js +./../../release/dojo-release-1.5.0/dijit/_base/popup.js +./../../release/dojo-release-1.5.0/dijit/_base/scroll.js +./../../release/dojo-release-1.5.0/dojo/uacss.js +./../../release/dojo-release-1.5.0/dijit/_base/sniff.js +./../../release/dojo-release-1.5.0/dijit/_base/typematic.js +./../../release/dojo-release-1.5.0/dijit/_base/wai.js +./../../release/dojo-release-1.5.0/dijit/_base.js +./../../release/dojo-release-1.5.0/dojo/date/stamp.js +./../../release/dojo-release-1.5.0/dojo/parser.js +./../../release/dojo-release-1.5.0/dijit/_Widget.js +./../../release/dojo-release-1.5.0/dojo/string.js +./../../release/dojo-release-1.5.0/dojo/cache.js +./../../release/dojo-release-1.5.0/dijit/_Templated.js +./../../release/dojo-release-1.5.0/dijit/_Container.js +./../../release/dojo-release-1.5.0/dijit/_Contained.js +./../../release/dojo-release-1.5.0/dijit/layout/_LayoutWidget.js +./../../release/dojo-release-1.5.0/dijit/_CssStateMixin.js +./../../release/dojo-release-1.5.0/dijit/form/_FormWidget.js +./../../release/dojo-release-1.5.0/dijit/dijit.js +./../../release/dojo-release-1.5.0/dijit/_KeyNavContainer.js +./../../release/dojo-release-1.5.0/dijit/MenuItem.js +./../../release/dojo-release-1.5.0/dijit/PopupMenuItem.js +./../../release/dojo-release-1.5.0/dijit/CheckedMenuItem.js +./../../release/dojo-release-1.5.0/dijit/MenuSeparator.js +./../../release/dojo-release-1.5.0/dijit/Menu.js +./../../release/dojo-release-1.5.0/dojox/html/metrics.js +./../../release/dojo-release-1.5.0/dojox/grid/util.js +./../../release/dojo-release-1.5.0/dojox/grid/_Scroller.js +./../../release/dojo-release-1.5.0/dojox/grid/cells/_base.js +./../../release/dojo-release-1.5.0/dojox/grid/cells.js +./../../release/dojo-release-1.5.0/dojo/dnd/common.js +./../../release/dojo-release-1.5.0/dojo/dnd/autoscroll.js +./../../release/dojo-release-1.5.0/dojo/dnd/Mover.js +./../../release/dojo-release-1.5.0/dojo/dnd/Moveable.js +./../../release/dojo-release-1.5.0/dojox/grid/_Builder.js +./../../release/dojo-release-1.5.0/dojo/dnd/Container.js +./../../release/dojo-release-1.5.0/dojo/dnd/Selector.js +./../../release/dojo-release-1.5.0/dojo/dnd/Avatar.js +./../../release/dojo-release-1.5.0/dojo/dnd/Manager.js +./../../release/dojo-release-1.5.0/dojo/dnd/Source.js +./../../release/dojo-release-1.5.0/dojox/grid/_View.js +./../../release/dojo-release-1.5.0/dojox/grid/_RowSelector.js +./../../release/dojo-release-1.5.0/dojox/grid/_Layout.js +./../../release/dojo-release-1.5.0/dojox/grid/_ViewManager.js +./../../release/dojo-release-1.5.0/dojox/grid/_RowManager.js +./../../release/dojo-release-1.5.0/dojox/grid/_FocusManager.js +./../../release/dojo-release-1.5.0/dojox/grid/_EditManager.js +./../../release/dojo-release-1.5.0/dojox/grid/Selection.js +./../../release/dojo-release-1.5.0/dojox/grid/_Events.js +./../../release/dojo-release-1.5.0/dojo/i18n.js +./../../release/dojo-release-1.5.0/dojox/grid/_Grid.js +./../../release/dojo-release-1.5.0/dojox/grid/DataSelection.js +./../../release/dojo-release-1.5.0/dojox/grid/DataGrid.js + +../dojox/gfx.js: +./../../release/dojo-release-1.5.0/dojox/gfx/matrix.js +./../../release/dojo-release-1.5.0/dojox/gfx/_base.js +./../../release/dojo-release-1.5.0/dojox/gfx.js + +../dojox/charting/widget/Chart2D.js: +./../../release/dojo-release-1.5.0/dojo/window.js +./../../release/dojo-release-1.5.0/dijit/_base/manager.js +./../../release/dojo-release-1.5.0/dijit/_base/focus.js +./../../release/dojo-release-1.5.0/dojo/AdapterRegistry.js +./../../release/dojo-release-1.5.0/dijit/_base/place.js +./../../release/dojo-release-1.5.0/dijit/_base/window.js +./../../release/dojo-release-1.5.0/dijit/_base/popup.js +./../../release/dojo-release-1.5.0/dijit/_base/scroll.js +./../../release/dojo-release-1.5.0/dojo/uacss.js +./../../release/dojo-release-1.5.0/dijit/_base/sniff.js +./../../release/dojo-release-1.5.0/dijit/_base/typematic.js +./../../release/dojo-release-1.5.0/dijit/_base/wai.js +./../../release/dojo-release-1.5.0/dijit/_base.js +./../../release/dojo-release-1.5.0/dijit/_Widget.js +./../../release/dojo-release-1.5.0/dojox/gfx/matrix.js +./../../release/dojo-release-1.5.0/dojox/gfx/_base.js +./../../release/dojo-release-1.5.0/dojox/gfx.js +./../../release/dojo-release-1.5.0/dojox/lang/functional/lambda.js +./../../release/dojo-release-1.5.0/dojox/lang/functional/array.js +./../../release/dojo-release-1.5.0/dojox/lang/functional/object.js +./../../release/dojo-release-1.5.0/dojox/lang/functional.js +./../../release/dojo-release-1.5.0/dojox/lang/functional/fold.js +./../../release/dojo-release-1.5.0/dojox/lang/functional/reversed.js +./../../release/dojo-release-1.5.0/dojo/colors.js +./../../release/dojo-release-1.5.0/dojox/color/_base.js +./../../release/dojo-release-1.5.0/dojox/color.js +./../../release/dojo-release-1.5.0/dojox/color/Palette.js +./../../release/dojo-release-1.5.0/dojox/lang/utils.js +./../../release/dojo-release-1.5.0/dojox/gfx/gradutils.js +./../../release/dojo-release-1.5.0/dojox/charting/Theme.js +./../../release/dojo-release-1.5.0/dojox/charting/Element.js +./../../release/dojo-release-1.5.0/dojox/charting/Series.js +./../../release/dojo-release-1.5.0/dojox/charting/scaler/common.js +./../../release/dojo-release-1.5.0/dojox/charting/scaler/linear.js +./../../release/dojo-release-1.5.0/dojox/charting/axis2d/common.js +./../../release/dojo-release-1.5.0/dojox/charting/axis2d/Base.js +./../../release/dojo-release-1.5.0/dojo/string.js +./../../release/dojo-release-1.5.0/dojox/charting/axis2d/Invisible.js +./../../release/dojo-release-1.5.0/dojox/charting/axis2d/Default.js +./../../release/dojo-release-1.5.0/dojox/charting/plot2d/common.js +./../../release/dojo-release-1.5.0/dojox/charting/scaler/primitive.js +./../../release/dojo-release-1.5.0/dojox/charting/plot2d/_PlotEvents.js +./../../release/dojo-release-1.5.0/dojox/charting/plot2d/Base.js +./../../release/dojo-release-1.5.0/dojox/gfx/fx.js +./../../release/dojo-release-1.5.0/dojox/charting/plot2d/Default.js +./../../release/dojo-release-1.5.0/dojox/charting/plot2d/Lines.js +./../../release/dojo-release-1.5.0/dojox/charting/plot2d/Areas.js +./../../release/dojo-release-1.5.0/dojox/charting/plot2d/Markers.js +./../../release/dojo-release-1.5.0/dojox/charting/plot2d/MarkersOnly.js +./../../release/dojo-release-1.5.0/dojox/charting/plot2d/Scatter.js +./../../release/dojo-release-1.5.0/dojox/lang/functional/sequence.js +./../../release/dojo-release-1.5.0/dojox/charting/plot2d/Stacked.js +./../../release/dojo-release-1.5.0/dojox/charting/plot2d/StackedLines.js +./../../release/dojo-release-1.5.0/dojox/charting/plot2d/StackedAreas.js +./../../release/dojo-release-1.5.0/dojox/charting/plot2d/Columns.js +./../../release/dojo-release-1.5.0/dojox/charting/plot2d/StackedColumns.js +./../../release/dojo-release-1.5.0/dojox/charting/plot2d/ClusteredColumns.js +./../../release/dojo-release-1.5.0/dojox/charting/plot2d/Bars.js +./../../release/dojo-release-1.5.0/dojox/charting/plot2d/StackedBars.js +./../../release/dojo-release-1.5.0/dojox/charting/plot2d/ClusteredBars.js +./../../release/dojo-release-1.5.0/dojox/charting/plot2d/Grid.js +./../../release/dojo-release-1.5.0/dojo/i18n.js +./../../release/dojo-release-1.5.0/dojo/regexp.js +./../../release/dojo-release-1.5.0/dojo/number.js +./../../release/dojo-release-1.5.0/dojox/charting/plot2d/Pie.js +./../../release/dojo-release-1.5.0/dojox/charting/plot2d/Bubble.js +./../../release/dojo-release-1.5.0/dojox/charting/plot2d/Candlesticks.js +./../../release/dojo-release-1.5.0/dojox/charting/plot2d/OHLC.js +./../../release/dojo-release-1.5.0/dojox/charting/Chart2D.js +./../../release/dojo-release-1.5.0/dojo/fx/easing.js +./../../release/dojo-release-1.5.0/dojox/charting/action2d/Base.js +./../../release/dojo-release-1.5.0/dojox/charting/action2d/Highlight.js +./../../release/dojo-release-1.5.0/dojo/fx/Toggler.js +./../../release/dojo-release-1.5.0/dojo/fx.js +./../../release/dojo-release-1.5.0/dojox/charting/action2d/Magnify.js +./../../release/dojo-release-1.5.0/dojox/lang/functional/scan.js +./../../release/dojo-release-1.5.0/dojox/charting/action2d/MoveSlice.js +./../../release/dojo-release-1.5.0/dojox/charting/action2d/Shake.js +./../../release/dojo-release-1.5.0/dojo/date/stamp.js +./../../release/dojo-release-1.5.0/dojo/parser.js +./../../release/dojo-release-1.5.0/dojo/cache.js +./../../release/dojo-release-1.5.0/dijit/_Templated.js +./../../release/dojo-release-1.5.0/dijit/Tooltip.js +./../../release/dojo-release-1.5.0/dojox/charting/action2d/Tooltip.js +./../../release/dojo-release-1.5.0/dojox/charting/widget/Chart2D.js +./../../release/dojo-release-1.5.0/dojox/charting/themes/ET/greys.js +./../../release/dojo-release-1.5.0/dojox/charting/widget/Sparkline.js +./../../release/dojo-release-1.5.0/dojox/charting/widget/Legend.js + +../dojox/dtl.js: +./../../release/dojo-release-1.5.0/dojox/string/Builder.js +./../../release/dojo-release-1.5.0/dojox/string/tokenize.js +./../../release/dojo-release-1.5.0/dojox/dtl/_base.js +./../../release/dojo-release-1.5.0/dojox/dtl.js +./../../release/dojo-release-1.5.0/dojox/dtl/Context.js +./../../release/dojo-release-1.5.0/dojox/dtl/tag/logic.js +./../../release/dojo-release-1.5.0/dojox/dtl/tag/loop.js +./../../release/dojo-release-1.5.0/dojo/date.js +./../../release/dojo-release-1.5.0/dojox/date/php.js +./../../release/dojo-release-1.5.0/dojox/dtl/utils/date.js +./../../release/dojo-release-1.5.0/dojox/dtl/tag/date.js +./../../release/dojo-release-1.5.0/dojox/dtl/tag/loader.js +./../../release/dojo-release-1.5.0/dojox/dtl/tag/misc.js +./../../release/dojo-release-1.5.0/dojox/dtl/ext-dojo/NodeList.js diff --git a/lib/dojo/cache.js b/lib/dojo/cache.js new file mode 100644 index 000000000..4c2d233da --- /dev/null +++ b/lib/dojo/cache.js @@ -0,0 +1,54 @@ +/* + 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["dojo.cache"]){ +dojo._hasResource["dojo.cache"]=true; +dojo.provide("dojo.cache"); +(function(){ +var _1={}; +dojo.cache=function(_2,_3,_4){ +if(typeof _2=="string"){ +var _5=dojo.moduleUrl(_2,_3); +}else{ +_5=_2; +_4=_3; +} +var _6=_5.toString(); +var _7=_4; +if(_4!=undefined&&!dojo.isString(_4)){ +_7=("value" in _4?_4.value:undefined); +} +var _8=_4&&_4.sanitize?true:false; +if(typeof _7=="string"){ +_7=_1[_6]=_8?dojo.cache._sanitize(_7):_7; +}else{ +if(_7===null){ +delete _1[_6]; +}else{ +if(!(_6 in _1)){ +_7=dojo._getText(_6); +_1[_6]=_8?dojo.cache._sanitize(_7):_7; +} +_7=_1[_6]; +} +} +return _7; +}; +dojo.cache._sanitize=function(_9){ +if(_9){ +_9=_9.replace(/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,""); +var _a=_9.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im); +if(_a){ +_9=_a[1]; +} +}else{ +_9=""; +} +return _9; +}; +})(); +} diff --git a/lib/dojo/cldr/LICENSE b/lib/dojo/cldr/LICENSE new file mode 100644 index 000000000..7aeb1dd5b --- /dev/null +++ b/lib/dojo/cldr/LICENSE @@ -0,0 +1,29 @@ +UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE + +Unicode Data Files include all data files under the directories http://www.unicode.org/Public/, http://www.unicode.org/reports/, +and http://www.unicode.org/cldr/data/ . Unicode Software includes any source code published in the Unicode Standard or under +the directories http://www.unicode.org/Public/, http://www.unicode.org/reports/, and http://www.unicode.org/cldr/data/. +NOTICE TO USER: Carefully read the following legal agreement. BY DOWNLOADING, INSTALLING, COPYING OR +OTHERWISE USING UNICODE INC.'S DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), YOU +UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE TERMS AND CONDITIONS OF THIS +AGREEMENT. IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR SOFTWARE. + +COPYRIGHT AND PERMISSION NOTICE +Copyright � 1991-2007 Unicode, Inc. All rights reserved. Distributed under the Terms of Use in http://www.unicode.org/copyright.html. + +Permission is hereby granted, free of charge, to any person obtaining a copy of the Unicode data files and any associated +documentation (the "Data Files") or Unicode software and any associated documentation (the "Software") to deal in the Data +Files or Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sell +copies of the Data Files or Software, and to permit persons to whom the Data Files or Software are furnished to do so, provided +that (a) the above copyright notice(s) and this permission notice appear with all copies of the Data Files or Software, (b) both the +above copyright notice(s) and this permission notice appear in associated documentation, and (c) there is clear notice in each modified Data File +or in the Software as well as in the documentation associated with the Data File(s) or Software that the data or software has been modified. +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE +AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS +INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, +OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF +CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THE DATA FILES OR SOFTWARE. +Except as contained in this notice, the name of a copyright holder shall not be used in advertising or otherwise to promote the sale, use or other +dealings in these Data Files or Software without prior written authorization of the copyright holder.
\ No newline at end of file diff --git a/lib/dojo/cldr/README b/lib/dojo/cldr/README new file mode 100644 index 000000000..36876766a --- /dev/null +++ b/lib/dojo/cldr/README @@ -0,0 +1,18 @@ +All files within this directory were derived from the Common Locale +Data Repository (see http://unicode.org/cldr) The CLDR project is +responsible for the accuracy and maintenance of this data. A copy +of this data is checked into the Dojo util project as a zip file. +The XML data is transformed to the JSON-style Javascript you see +under the nls/ directory. These Javascript files include data +necessary to do things like format and parse dates, numbers, and +currencies in different locales to consider cultural differences. +They are used by other modules in core Dojo such as dojo.date, +dojo.number and dojo.currency. It usually is not necessary to use +dojo.cldr directly. + +An arbitrary subset of locales have been checked in to dojo/cldr +under svn. To support other locales, the full set may be generated +by using xslt scripts in the util/buildscripts/cldr/ ant script. +Hundreds of locales are supported by the CLDR project. + +See terms of use: http://www.unicode.org/copyright.html#Exhibit1 diff --git a/lib/dojo/cldr/monetary.js b/lib/dojo/cldr/monetary.js new file mode 100644 index 000000000..b5b4c0a22 --- /dev/null +++ b/lib/dojo/cldr/monetary.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["dojo.cldr.monetary"]){ +dojo._hasResource["dojo.cldr.monetary"]=true; +dojo.provide("dojo.cldr.monetary"); +dojo.cldr.monetary.getData=function(_1){ +var _2={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 _3={CHF:5}; +var _4=_2[_1],_5=_3[_1]; +if(typeof _4=="undefined"){ +_4=2; +} +if(typeof _5=="undefined"){ +_5=0; +} +return {places:_4,round:_5}; +}; +} diff --git a/lib/dojo/cldr/nls/ar/currency.js b/lib/dojo/cldr/nls/ar/currency.js new file mode 100644 index 000000000..64c4cadf0 --- /dev/null +++ b/lib/dojo/cldr/nls/ar/currency.js @@ -0,0 +1 @@ +({"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":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/ar/gregorian.js b/lib/dojo/cldr/nls/ar/gregorian.js new file mode 100644 index 000000000..c25f80231 --- /dev/null +++ b/lib/dojo/cldr/nls/ar/gregorian.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/ar/hebrew.js b/lib/dojo/cldr/nls/ar/hebrew.js new file mode 100644 index 000000000..ab7071af4 --- /dev/null +++ b/lib/dojo/cldr/nls/ar/hebrew.js @@ -0,0 +1 @@ +({"dateFormat-medium":"dd/MM/yyyy","dateFormatItem-MMMEd":"E d MMM","dateFormatItem-yMEd":"EEE، d/M/yyyy","timeFormat-full":"zzzz h:mm:ss a","dateFormatItem-Md":"d/M","months-standAlone-wide":["تشري","مرحشوان","كيسلو","طيفت","شباط","آذار الأول","آذار","نيسان","أيار","سيفان","تموز","آب","أيلول"],"months-format-wide-leap":"آذار الثاني","days-standAlone-narrow":["ح","ن","ث","ر","خ","ج","س"],"dayPeriods-format-wide-pm":"م","months-standAlone-abbr":["تشري","مرحشوان","كيسلو","طيفت","شباط","آذار الأول","آذار","نيسان","أيار","سيفان","تموز","آب","أيلول"],"dayPeriods-format-wide-am":"ص","quarters-standAlone-narrow":["١","٢","٣","٤"],"timeFormat-medium":"h:mm:ss a","dateFormat-long":"d MMMM، y","dateFormat-short":"d/M/yyyy","dateFormatItem-yMMMEd":"EEE، d MMMM y","months-format-wide":["تشري","مرحشوان","كيسلو","طيفت","شباط","آذار الأول","آذار","نيسان","أيار","سيفان","تموز","آب","أيلول"],"dateFormatItem-yM":"M/yyyy","timeFormat-short":"h:mm a","months-format-abbr":["تشري","مرحشوان","كيسلو","طيفت","شباط","آذار الأول","آذار","نيسان","أيار","سيفان","تموز","آب","أيلول"],"timeFormat-long":"z h:mm:ss a","days-format-wide":["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"dateFormatItem-yQ":"yyyy Q","dateFormatItem-yMMM":"MMM y","quarters-format-wide":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"dateFormat-full":"EEEE، d MMMM، y","dateFormatItem-MMMd":"d MMM","days-format-abbr":["أحد","إثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],"months-format-narrow":["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul"],"dateFormatItem-yQQQ":"y QQQ","months-standAlone-narrow-leap":"Adar II","eraNarrow":["AM"],"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}","months-format-abbr-leap":"Adar II","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","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"],"months-standAlone-wide-leap":"Adar II","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"months-format-narrow-leap":"Adar II","eraAbbr":["AM"],"days-standAlone-abbr":["1","2","3","4","5","6","7"],"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-MEd":"E, M-d","dateTimeFormat-full":"{1} {0}","months-standAlone-abbr-leap":"Adar II","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-y":"y","months-standAlone-narrow":["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul"],"dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","eraNames":["AM"],"days-format-narrow":["1","2","3","4","5","6","7"],"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":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/ar/islamic-civil.js b/lib/dojo/cldr/nls/ar/islamic-civil.js new file mode 100644 index 000000000..bfbc2185b --- /dev/null +++ b/lib/dojo/cldr/nls/ar/islamic-civil.js @@ -0,0 +1 @@ +({"dateFormatItem-yM":"M/yyyy","dateFormatItem-yQ":"yyyy Q","dayPeriods-format-wide-pm":"م","eraNames":["ه"],"dateFormatItem-MMMEd":"E d MMM","days-standAlone-wide":["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"patternChars":"GanjkHmsSEDFwWxhKzAeugXZvcL","months-standAlone-narrow":["م","ص","ر","ر","ج","ج","ر","ش","ر","ش","ذ","ذ"],"dayPeriods-format-wide-am":"ص","dayPeriods-am-format-wide":"ص","quarters-standAlone-abbr":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"timeFormat-full":"zzzz h:mm:ss a","dayPeriods-pm-format-wide":"م","dayPeriods-format-wide":["ص","م"],"months-standAlone-abbr":["محرم","صفر","ربيع الأول","ربيع الآخر","جمادى الأولى","جمادى الآخرة","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة"],"dateFormatItem-yMMM":"MMM y","days-standAlone-narrow":["ح","ن","ث","ر","خ","ج","س"],"eraAbbr":["ه"],"dateFormat-long":"d MMMM، y","timeFormat-medium":"h:mm:ss a","dateFormat-medium":"dd/MM/yyyy","dayPeriods-format-narrow":["ص","م"],"quarters-standAlone-wide":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"dateFormatItem-yMMMM":"MMMM y","quarters-standAlone-narrow":["١","٢","٣","٤"],"months-standAlone-wide":["محرم","صفر","ربيع الأول","ربيع الآخر","جمادى الأولى","جمادى الآخرة","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة"],"dateFormatItem-MMMMEd":"E d MMMM","dateFormatItem-MMMd":"d MMM","quarters-format-narrow":["١","٢","٣","٤"],"timeFormat-long":"z h:mm:ss a","months-format-abbr":["محرم","صفر","ربيع الأول","ربيع الآخر","جمادى الأولى","جمادى الآخرة","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة"],"timeFormat-short":"h:mm a","dateFormatItem-MMMMd":"d MMMM","quarters-format-abbr":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"days-format-abbr":["أحد","إثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],"days-format-narrow":["ح","ن","ث","ر","خ","ج","س"],"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":["محرم","صفر","ربيع الأول","ربيع الآخر","جمادى الأولى","جمادى الآخرة","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة"],"dayPeriods-format-abbr":["ص","م"],"quarters-format-wide":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"days-format-wide":["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"eraNarrow":["ه"]})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/ar/islamic.js b/lib/dojo/cldr/nls/ar/islamic.js new file mode 100644 index 000000000..3bdbf9df3 --- /dev/null +++ b/lib/dojo/cldr/nls/ar/islamic.js @@ -0,0 +1 @@ +({"dateFormat-medium":"dd/MM/yyyy","dateFormatItem-MMMEd":"E d MMM","dateFormatItem-yMEd":"EEE، d/M/yyyy","eraNarrow":["هـ"],"months-format-narrow":["م","ص","ر","ر","ج","ج","ر","ش","ر","ش","ذ","ذ"],"timeFormat-full":"zzzz h:mm:ss a","dateFormatItem-Md":"d/M","months-standAlone-narrow":["م","ص","ر","ر","ج","ج","ر","ش","ر","ش","ذ","ذ"],"months-standAlone-wide":["محرم","صفر","ربيع الأول","ربيع الآخر","جمادى الأولى","جمادى الآخرة","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة"],"eraNames":["هـ"],"days-standAlone-narrow":["ح","ن","ث","ر","خ","ج","س"],"dayPeriods-format-wide-pm":"م","months-standAlone-abbr":["محرم","صفر","ربيع الأول","ربيع الآخر","جمادى الأولى","جمادى الآخرة","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة"],"dayPeriods-format-wide-am":"ص","quarters-standAlone-narrow":["١","٢","٣","٤"],"timeFormat-medium":"h:mm:ss a","dateFormat-long":"d MMMM، y","dateFormat-short":"d/M/yyyy","dateFormatItem-yMMMEd":"EEE، d MMMM y","months-format-wide":["محرم","صفر","ربيع الأول","ربيع الآخر","جمادى الأولى","جمادى الآخرة","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة"],"dateFormatItem-yM":"M/yyyy","timeFormat-short":"h:mm a","months-format-abbr":["محرم","صفر","ربيع الأول","ربيع الآخر","جمادى الأولى","جمادى الآخرة","رجب","شعبان","رمضان","شوال","ذو القعدة","ذو الحجة"],"eraAbbr":["هـ"],"timeFormat-long":"z h:mm:ss a","days-format-wide":["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],"dateFormatItem-yQ":"yyyy Q","dateFormatItem-yMMM":"MMM y","quarters-format-wide":["الربع الأول","الربع الثاني","الربع الثالث","الربع الرابع"],"dateFormat-full":"EEEE، d MMMM، y","dateFormatItem-MMMd":"d MMM","days-format-abbr":["أحد","إثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],"dateFormatItem-yQQQ":"y QQQ","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-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"],"dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"days-standAlone-abbr":["1","2","3","4","5","6","7"],"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-MEd":"E, M-d","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","days-format-narrow":["1","2","3","4","5","6","7"],"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":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/ar/number.js b/lib/dojo/cldr/nls/ar/number.js new file mode 100644 index 000000000..543ccb3e1 --- /dev/null +++ b/lib/dojo/cldr/nls/ar/number.js @@ -0,0 +1 @@ +({"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":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/buddhist.js b/lib/dojo/cldr/nls/buddhist.js new file mode 100644 index 000000000..6a70be9ad --- /dev/null +++ b/lib/dojo/cldr/nls/buddhist.js @@ -0,0 +1 @@ +({"months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-narrow":["1","2","3","4"],"dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"EEE, y-M-d","dateFormatItem-MMMEd":"E MMM d","eraNarrow":["BE"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateFormat-long":"MMMM d, y G","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, MMMM d, y G","dateFormatItem-Md":"M-d","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","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","dateFormatItem-yMMM":"y MMM","dateFormatItem-yQ":"y Q","dateTimeFormats-appendItem-Era":"{0} {1}","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})","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":["BE"],"days-standAlone-abbr":["1","2","3","4","5","6","7"],"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}","days-format-wide":["1","2","3","4","5","6","7"],"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":["BE"],"days-format-narrow":["1","2","3","4","5","6","7"],"days-standAlone-narrow":["1","2","3","4","5","6","7"],"dateFormatItem-MMM":"LLL","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":"M/d/yyyy","dateFormatItem-yMMMEd":"EEE, y MMM d","dateTimeFormats-appendItem-Timezone":"{0} {1}","dateFormat-medium":"MMM d, y G","dayPeriods-format-narrow-pm":"PM","dateTimeFormat-short":"{1} {0}","dateFormatItem-Hms":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/ca/currency.js b/lib/dojo/cldr/nls/ca/currency.js new file mode 100644 index 000000000..e23636787 --- /dev/null +++ b/lib/dojo/cldr/nls/ca/currency.js @@ -0,0 +1 @@ +({"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":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/ca/gregorian.js b/lib/dojo/cldr/nls/ca/gregorian.js new file mode 100644 index 000000000..2d6a2e163 --- /dev/null +++ b/lib/dojo/cldr/nls/ca/gregorian.js @@ -0,0 +1 @@ +({"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}"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/ca/number.js b/lib/dojo/cldr/nls/ca/number.js new file mode 100644 index 000000000..da4300c27 --- /dev/null +++ b/lib/dojo/cldr/nls/ca/number.js @@ -0,0 +1 @@ +({"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":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/cs/currency.js b/lib/dojo/cldr/nls/cs/currency.js new file mode 100644 index 000000000..b3b785909 --- /dev/null +++ b/lib/dojo/cldr/nls/cs/currency.js @@ -0,0 +1 @@ +({"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":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/cs/gregorian.js b/lib/dojo/cldr/nls/cs/gregorian.js new file mode 100644 index 000000000..3b9752ce9 --- /dev/null +++ b/lib/dojo/cldr/nls/cs/gregorian.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/cs/number.js b/lib/dojo/cldr/nls/cs/number.js new file mode 100644 index 000000000..f9a71abd6 --- /dev/null +++ b/lib/dojo/cldr/nls/cs/number.js @@ -0,0 +1 @@ +({"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":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/currency.js b/lib/dojo/cldr/nls/currency.js new file mode 100644 index 000000000..e526c6c02 --- /dev/null +++ b/lib/dojo/cldr/nls/currency.js @@ -0,0 +1 @@ +({"USD_symbol":"US$","CAD_symbol":"CA$","GBP_symbol":"£","HKD_symbol":"HK$","JPY_symbol":"JP¥","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/da/currency.js b/lib/dojo/cldr/nls/da/currency.js new file mode 100644 index 000000000..fe1b09fa9 --- /dev/null +++ b/lib/dojo/cldr/nls/da/currency.js @@ -0,0 +1 @@ +({"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":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/da/gregorian.js b/lib/dojo/cldr/nls/da/gregorian.js new file mode 100644 index 000000000..08e431184 --- /dev/null +++ b/lib/dojo/cldr/nls/da/gregorian.js @@ -0,0 +1 @@ +({"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}"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/da/number.js b/lib/dojo/cldr/nls/da/number.js new file mode 100644 index 000000000..2f5fc8e30 --- /dev/null +++ b/lib/dojo/cldr/nls/da/number.js @@ -0,0 +1 @@ +({"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":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/de/currency.js b/lib/dojo/cldr/nls/de/currency.js new file mode 100644 index 000000000..1fda2ecf3 --- /dev/null +++ b/lib/dojo/cldr/nls/de/currency.js @@ -0,0 +1 @@ +({"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":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/de/gregorian.js b/lib/dojo/cldr/nls/de/gregorian.js new file mode 100644 index 000000000..0a2720a81 --- /dev/null +++ b/lib/dojo/cldr/nls/de/gregorian.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/de/number.js b/lib/dojo/cldr/nls/de/number.js new file mode 100644 index 000000000..90861a091 --- /dev/null +++ b/lib/dojo/cldr/nls/de/number.js @@ -0,0 +1 @@ +({"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":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/el/currency.js b/lib/dojo/cldr/nls/el/currency.js new file mode 100644 index 000000000..7f2e4e47e --- /dev/null +++ b/lib/dojo/cldr/nls/el/currency.js @@ -0,0 +1 @@ +({"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":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/el/gregorian.js b/lib/dojo/cldr/nls/el/gregorian.js new file mode 100644 index 000000000..047e5d54d --- /dev/null +++ b/lib/dojo/cldr/nls/el/gregorian.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/el/number.js b/lib/dojo/cldr/nls/el/number.js new file mode 100644 index 000000000..ff419fb45 --- /dev/null +++ b/lib/dojo/cldr/nls/el/number.js @@ -0,0 +1 @@ +({"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":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/en-au/currency.js b/lib/dojo/cldr/nls/en-au/currency.js new file mode 100644 index 000000000..94324942e --- /dev/null +++ b/lib/dojo/cldr/nls/en-au/currency.js @@ -0,0 +1 @@ +({"AUD_symbol":"$","USD_symbol":"US$","HKD_displayName":"Hong Kong Dollar","CHF_displayName":"Swiss Franc","JPY_symbol":"¥","CAD_displayName":"Canadian Dollar","CNY_displayName":"Chinese Yuan Renminbi","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$","CNY_symbol":"CN¥","EUR_symbol":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/en-au/gregorian.js b/lib/dojo/cldr/nls/en-au/gregorian.js new file mode 100644 index 000000000..7df433e53 --- /dev/null +++ b/lib/dojo/cldr/nls/en-au/gregorian.js @@ -0,0 +1 @@ +({"dateFormatItem-yMEd":"EEE, d/M/y","dateFormatItem-yyyyMMMM":"MMMM y","dateFormatItem-MEd":"E, d/M","dateFormat-medium":"dd/MM/yyyy","dateFormatItem-yyyyMM":"MM/yyyy","dateFormatItem-MMdd":"dd/MM","dateFormat-full":"EEEE, d MMMM y","dateFormatItem-MMMMd":"d MMMM","dateFormat-short":"d/MM/yy","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","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"],"timeFormat-medium":"h:mm:ss a","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","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","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","dateFormatItem-Md":"M/d","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"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/en-au/number.js b/lib/dojo/cldr/nls/en-au/number.js new file mode 100644 index 000000000..748ea804a --- /dev/null +++ b/lib/dojo/cldr/nls/en-au/number.js @@ -0,0 +1 @@ +({"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":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/en-ca/currency.js b/lib/dojo/cldr/nls/en-ca/currency.js new file mode 100644 index 000000000..4e950ec5b --- /dev/null +++ b/lib/dojo/cldr/nls/en-ca/currency.js @@ -0,0 +1 @@ +({"CAD_symbol":"$","USD_symbol":"US$","HKD_displayName":"Hong Kong Dollar","CHF_displayName":"Swiss Franc","JPY_symbol":"¥","CAD_displayName":"Canadian Dollar","CNY_displayName":"Chinese Yuan Renminbi","AUD_displayName":"Australian Dollar","JPY_displayName":"Japanese Yen","USD_displayName":"US Dollar","GBP_displayName":"British Pound Sterling","EUR_displayName":"Euro","GBP_symbol":"£","HKD_symbol":"HK$","AUD_symbol":"AU$","CNY_symbol":"CN¥","EUR_symbol":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/en-ca/gregorian.js b/lib/dojo/cldr/nls/en-ca/gregorian.js new file mode 100644 index 000000000..02b282949 --- /dev/null +++ b/lib/dojo/cldr/nls/en-ca/gregorian.js @@ -0,0 +1 @@ +({"dateFormatItem-yMMMEd":"EEE, d MMM, y","dateFormatItem-yyMMM":"MMM-yy","dateFormatItem-Md":"M-d","dateFormatItem-yMEd":"EEE, y-M-d","dateFormatItem-MEd":"E, M-d","dateFormatItem-MMMMEd":"E, d MMMM","dateFormat-medium":"yyyy-MM-dd","dateFormatItem-MMMd":"d MMM","dateFormatItem-MMdd":"MM-dd","dateFormat-full":"EEEE, d MMMM, y","dateFormat-short":"yy-MM-dd","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","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"],"timeFormat-medium":"h:mm:ss a","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"],"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","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"],"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"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/en-gb/gregorian.js b/lib/dojo/cldr/nls/en-gb/gregorian.js new file mode 100644 index 000000000..1333aa05e --- /dev/null +++ b/lib/dojo/cldr/nls/en-gb/gregorian.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/en-gb/number.js b/lib/dojo/cldr/nls/en-gb/number.js new file mode 100644 index 000000000..748ea804a --- /dev/null +++ b/lib/dojo/cldr/nls/en-gb/number.js @@ -0,0 +1 @@ +({"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":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/en/currency.js b/lib/dojo/cldr/nls/en/currency.js new file mode 100644 index 000000000..e9729d96a --- /dev/null +++ b/lib/dojo/cldr/nls/en/currency.js @@ -0,0 +1 @@ +({"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":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/en/gregorian.js b/lib/dojo/cldr/nls/en/gregorian.js new file mode 100644 index 000000000..79fc81823 --- /dev/null +++ b/lib/dojo/cldr/nls/en/gregorian.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/en/number.js b/lib/dojo/cldr/nls/en/number.js new file mode 100644 index 000000000..92b2e32bf --- /dev/null +++ b/lib/dojo/cldr/nls/en/number.js @@ -0,0 +1 @@ +({"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":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/es/currency.js b/lib/dojo/cldr/nls/es/currency.js new file mode 100644 index 000000000..ce5b213cf --- /dev/null +++ b/lib/dojo/cldr/nls/es/currency.js @@ -0,0 +1 @@ +({"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":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/es/gregorian.js b/lib/dojo/cldr/nls/es/gregorian.js new file mode 100644 index 000000000..811e15ea3 --- /dev/null +++ b/lib/dojo/cldr/nls/es/gregorian.js @@ -0,0 +1 @@ +({"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}"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/es/number.js b/lib/dojo/cldr/nls/es/number.js new file mode 100644 index 000000000..be433d85a --- /dev/null +++ b/lib/dojo/cldr/nls/es/number.js @@ -0,0 +1 @@ +({"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":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/fi/currency.js b/lib/dojo/cldr/nls/fi/currency.js new file mode 100644 index 000000000..a52b1b045 --- /dev/null +++ b/lib/dojo/cldr/nls/fi/currency.js @@ -0,0 +1 @@ +({"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":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/fi/gregorian.js b/lib/dojo/cldr/nls/fi/gregorian.js new file mode 100644 index 000000000..db2ffc7c1 --- /dev/null +++ b/lib/dojo/cldr/nls/fi/gregorian.js @@ -0,0 +1 @@ +({"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}"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/fi/number.js b/lib/dojo/cldr/nls/fi/number.js new file mode 100644 index 000000000..aa0fee6ef --- /dev/null +++ b/lib/dojo/cldr/nls/fi/number.js @@ -0,0 +1 @@ +({"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":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/fr/currency.js b/lib/dojo/cldr/nls/fr/currency.js new file mode 100644 index 000000000..3d3eabeb7 --- /dev/null +++ b/lib/dojo/cldr/nls/fr/currency.js @@ -0,0 +1 @@ +({"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":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/fr/gregorian.js b/lib/dojo/cldr/nls/fr/gregorian.js new file mode 100644 index 000000000..052b03393 --- /dev/null +++ b/lib/dojo/cldr/nls/fr/gregorian.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/fr/number.js b/lib/dojo/cldr/nls/fr/number.js new file mode 100644 index 000000000..f9a71abd6 --- /dev/null +++ b/lib/dojo/cldr/nls/fr/number.js @@ -0,0 +1 @@ +({"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":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/gregorian.js b/lib/dojo/cldr/nls/gregorian.js new file mode 100644 index 000000000..5dced4268 --- /dev/null +++ b/lib/dojo/cldr/nls/gregorian.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/he/currency.js b/lib/dojo/cldr/nls/he/currency.js new file mode 100644 index 000000000..a133a5790 --- /dev/null +++ b/lib/dojo/cldr/nls/he/currency.js @@ -0,0 +1 @@ +({"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":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/he/gregorian.js b/lib/dojo/cldr/nls/he/gregorian.js new file mode 100644 index 000000000..235d886d7 --- /dev/null +++ b/lib/dojo/cldr/nls/he/gregorian.js @@ -0,0 +1 @@ +({"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}"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/he/hebrew.js b/lib/dojo/cldr/nls/he/hebrew.js new file mode 100644 index 000000000..6bbfaf916 --- /dev/null +++ b/lib/dojo/cldr/nls/he/hebrew.js @@ -0,0 +1 @@ +({"dateFormat-medium":"dd/MM/yyyy","dateFormatItem-MMMEd":"E, d בMMM","dateFormatItem-yMEd":"EEE, d.M.yyyy","eraNarrow":["לבה״ע"],"dateFormatItem-Md":"d/M","months-standAlone-wide":["תשרי","חשון","כסלו","טבת","שבט","אדר א׳","אדר","ניסן","אייר","סיון","תמוז","אב","אלול"],"months-format-wide-leap":"אדר ב׳","dateFormatItem-EEEd":"EEE ה-d","eraNames":["לבה״ע"],"days-standAlone-narrow":["א","ב","ג","ד","ה","ו","ש"],"dateFormatItem-MMMMEd":"E, d בMMMM","dayPeriods-format-wide-pm":"אחה״צ","months-standAlone-abbr":["תשרי","חשון","כסלו","טבת","שבט","אדר א׳","אדר","ניסן","אייר","סיון","תמוז","אב","אלול"],"dayPeriods-format-wide-am":"לפנה״צ","dateFormat-long":"d בMMMM y","dateFormat-short":"dd/MM/yy","dateFormatItem-yMMMEd":"EEE, d בMMM y","months-format-wide":["תשרי","חשון","כסלו","טבת","שבט","אדר א׳","אדר","ניסן","אייר","סיון","תמוז","אב","אלול"],"dateFormatItem-yM":"M.yyyy","months-format-abbr":["תשרי","חשון","כסלו","טבת","שבט","אדר א׳","אדר","ניסן","אייר","סיון","תמוז","אב","אלול"],"eraAbbr":["לבה״ע"],"days-format-wide":["יום ראשון","יום שני","יום שלישי","יום רביעי","יום חמישי","יום שישי","יום שבת"],"dateFormatItem-yQ":"yyyy Q","dateFormatItem-yMMM":"MMM y","quarters-format-wide":["רבעון 1","רבעון 2","רבעון 3","רבעון 4"],"dateFormat-full":"EEEE, d בMMMM y","dateFormatItem-MMMd":"d בMMM","days-format-abbr":["יום א׳","יום ב׳","יום ג׳","יום ד׳","יום ה׳","יום ו׳","שבת"],"months-format-narrow":["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul"],"quarters-standAlone-narrow":["1","2","3","4"],"dateFormatItem-yQQQ":"y QQQ","months-standAlone-narrow-leap":"Adar II","dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","timeFormat-short":"HH:mm","timeFormat-long":"HH:mm:ss z","dateTimeFormats-appendItem-Era":"{0} {1}","months-format-abbr-leap":"Adar II","timeFormat-full":"HH:mm:ss zzzz","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","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"],"months-standAlone-wide-leap":"Adar II","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"months-format-narrow-leap":"Adar II","days-standAlone-abbr":["1","2","3","4","5","6","7"],"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-MEd":"E, M-d","dateTimeFormat-full":"{1} {0}","months-standAlone-abbr-leap":"Adar II","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-y":"y","months-standAlone-narrow":["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul"],"dateFormatItem-hm":"h:mm a","dateTimeFormats-appendItem-Year":"{0} {1}","dateTimeFormats-appendItem-Hour":"{0} ({2}: {1})","dayPeriods-format-abbr-pm":"PM","days-format-narrow":["1","2","3","4","5","6","7"],"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":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/he/islamic.js b/lib/dojo/cldr/nls/he/islamic.js new file mode 100644 index 000000000..f427eb03d --- /dev/null +++ b/lib/dojo/cldr/nls/he/islamic.js @@ -0,0 +1 @@ +({"dateFormat-medium":"d בMMM yyyy","dateFormatItem-MMMEd":"E, d בMMM","dateFormatItem-yMEd":"EEE, d.M.yyyy","eraNarrow":["שנת היג׳רה"],"dateFormatItem-Md":"d/M","months-standAlone-wide":["מוחרם","ספר","רביע אל-אוואל","רביע אל-תני","ג׳ומדה אל-אוואל","ג׳ומדה אל-תני","רג׳אב","שעבאן","ראמדן","שוואל","זו אל-QI'DAH","זו אל-חיג׳ה"],"dateFormatItem-EEEd":"EEE ה-d","eraNames":["שנת היג׳רה"],"days-standAlone-narrow":["א","ב","ג","ד","ה","ו","ש"],"dayPeriods-format-wide-pm":"אחה״צ","months-standAlone-abbr":["מוחרם","ספר","רביע אל-אוואל","רביע אל-תני","ג׳ומדה אל-אוואל","ג׳ומדה אל-תני","רג׳אב","שעבאן","ראמדן","שוואל","זו אל-QI'DAH","זו אל-חיג׳ה"],"dayPeriods-format-wide-am":"לפנה״צ","dateFormat-long":"d בMMMM y","dateFormat-short":"dd/MM/yy","dateFormatItem-yMMMEd":"EEE, d בMMM y","months-format-wide":["מוחרם","ספר","רביע אל-אוואל","רביע אל-תני","ג׳ומדה אל-אוואל","ג׳ומדה אל-תני","רג׳אב","שעבאן","ראמדן","שוואל","זו אל-QI'DAH","זו אל-חיג׳ה"],"dateFormatItem-yM":"M.yyyy","months-format-abbr":["מוחרם","ספר","רביע אל-אוואל","רביע אל-תני","ג׳ומדה אל-אוואל","ג׳ומדה אל-תני","רג׳אב","שעבאן","ראמדן","שוואל","זו אל-QI'DAH","זו אל-חיג׳ה"],"eraAbbr":["שנת היג׳רה"],"days-format-wide":["יום ראשון","יום שני","יום שלישי","יום רביעי","יום חמישי","יום שישי","יום שבת"],"dateFormatItem-yQ":"yyyy Q","dateFormatItem-yMMM":"MMM y","quarters-format-wide":["רבעון 1","רבעון 2","רבעון 3","רבעון 4"],"dateFormat-full":"EEEE, d בMMMM y","dateFormatItem-MMMd":"d בMMM","days-format-abbr":["יום א׳","יום ב׳","יום ג׳","יום ד׳","יום ה׳","יום ו׳","שבת"],"months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-narrow":["1","2","3","4"],"dateFormatItem-yQQQ":"y QQQ","dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateTimeFormat-medium":"{1} {0}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","timeFormat-short":"HH:mm","timeFormat-long":"HH:mm:ss z","dateTimeFormats-appendItem-Era":"{0} {1}","timeFormat-full":"HH:mm:ss zzzz","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","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"],"days-standAlone-abbr":["1","2","3","4","5","6","7"],"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-MEd":"E, M-d","dateTimeFormat-full":"{1} {0}","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-narrow":["1","2","3","4","5","6","7"],"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":"HH:mm:ss","dateFormatItem-hms":"h:mm:ss a"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/he/number.js b/lib/dojo/cldr/nls/he/number.js new file mode 100644 index 000000000..23e6fa4e2 --- /dev/null +++ b/lib/dojo/cldr/nls/he/number.js @@ -0,0 +1 @@ +({"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":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/hebrew.js b/lib/dojo/cldr/nls/hebrew.js new file mode 100644 index 000000000..f4062b739 --- /dev/null +++ b/lib/dojo/cldr/nls/hebrew.js @@ -0,0 +1 @@ +({"months-format-narrow":["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul"],"quarters-standAlone-narrow":["1","2","3","4"],"dateFormatItem-yQQQ":"y QQQ","months-standAlone-narrow-leap":"Adar II","dateFormatItem-yMEd":"EEE, y-M-d","dateFormatItem-MMMEd":"E MMM d","eraNarrow":["AM"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateFormat-long":"y MMMM d","months-format-wide":["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul"],"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})","dateFormatItem-yM":"y-M","months-standAlone-wide":["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul"],"timeFormat-short":"HH:mm","quarters-format-wide":["Q1","Q2","Q3","Q4"],"timeFormat-long":"HH:mm:ss z","dateFormatItem-yMMM":"y MMM","dateFormatItem-yQ":"y Q","dateTimeFormats-appendItem-Era":"{0} {1}","months-format-abbr-leap":"Adar II","months-format-abbr":["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul"],"timeFormat-full":"HH:mm:ss zzzz","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","months-standAlone-abbr":["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul"],"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"],"months-standAlone-wide-leap":"Adar II","timeFormat-medium":"HH:mm:ss","dateFormatItem-Hm":"HH:mm","quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"months-format-narrow-leap":"Adar II","eraAbbr":["AM"],"days-standAlone-abbr":["1","2","3","4","5","6","7"],"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}","days-format-wide":["1","2","3","4","5","6","7"],"months-standAlone-abbr-leap":"Adar II","dateTimeFormats-appendItem-Day":"{0} ({2}: {1})","dateFormatItem-y":"y","months-standAlone-narrow":["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul"],"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":["AM"],"days-format-narrow":["1","2","3","4","5","6","7"],"days-standAlone-narrow":["1","2","3","4","5","6","7"],"dateFormatItem-MMM":"LLL","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","dateFormatItem-yMMMEd":"EEE, y MMM d","dateTimeFormats-appendItem-Timezone":"{0} {1}","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","months-format-wide-leap":"Adar II"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/hu/currency.js b/lib/dojo/cldr/nls/hu/currency.js new file mode 100644 index 000000000..6db8b84bf --- /dev/null +++ b/lib/dojo/cldr/nls/hu/currency.js @@ -0,0 +1 @@ +({"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":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/hu/gregorian.js b/lib/dojo/cldr/nls/hu/gregorian.js new file mode 100644 index 000000000..0418bd716 --- /dev/null +++ b/lib/dojo/cldr/nls/hu/gregorian.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/hu/number.js b/lib/dojo/cldr/nls/hu/number.js new file mode 100644 index 000000000..472a2c86d --- /dev/null +++ b/lib/dojo/cldr/nls/hu/number.js @@ -0,0 +1 @@ +({"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":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/islamic.js b/lib/dojo/cldr/nls/islamic.js new file mode 100644 index 000000000..a35c02b57 --- /dev/null +++ b/lib/dojo/cldr/nls/islamic.js @@ -0,0 +1 @@ +({"months-format-narrow":["1","2","3","4","5","6","7","8","9","10","11","12"],"quarters-standAlone-narrow":["1","2","3","4"],"dateFormatItem-yQQQ":"y QQQ","dateFormatItem-yMEd":"EEE, y-M-d","dateFormatItem-MMMEd":"E MMM d","eraNarrow":["AH"],"dateTimeFormats-appendItem-Day-Of-Week":"{0} {1}","dateFormat-long":"y MMMM d","months-format-wide":["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"],"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})","dateFormatItem-yM":"y-M","months-standAlone-wide":["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"],"timeFormat-short":"HH:mm","quarters-format-wide":["Q1","Q2","Q3","Q4"],"timeFormat-long":"HH:mm:ss z","dateFormatItem-yMMM":"y MMM","dateFormatItem-yQ":"y Q","dateTimeFormats-appendItem-Era":"{0} {1}","months-format-abbr":["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],"timeFormat-full":"HH:mm:ss zzzz","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","dateFormatItem-H":"HH","months-standAlone-abbr":["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],"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":["AH"],"days-standAlone-abbr":["1","2","3","4","5","6","7"],"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}","days-format-wide":["1","2","3","4","5","6","7"],"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":["AH"],"days-format-narrow":["1","2","3","4","5","6","7"],"days-standAlone-narrow":["1","2","3","4","5","6","7"],"dateFormatItem-MMM":"LLL","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","dateFormatItem-yMMMEd":"EEE, y MMM d","dateTimeFormats-appendItem-Timezone":"{0} {1}","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"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/it/currency.js b/lib/dojo/cldr/nls/it/currency.js new file mode 100644 index 000000000..58b5b814c --- /dev/null +++ b/lib/dojo/cldr/nls/it/currency.js @@ -0,0 +1 @@ +({"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":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/it/gregorian.js b/lib/dojo/cldr/nls/it/gregorian.js new file mode 100644 index 000000000..dbd7207e2 --- /dev/null +++ b/lib/dojo/cldr/nls/it/gregorian.js @@ -0,0 +1 @@ +({"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}"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/it/number.js b/lib/dojo/cldr/nls/it/number.js new file mode 100644 index 000000000..d878fb383 --- /dev/null +++ b/lib/dojo/cldr/nls/it/number.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/ja/currency.js b/lib/dojo/cldr/nls/ja/currency.js new file mode 100644 index 000000000..076cd8de4 --- /dev/null +++ b/lib/dojo/cldr/nls/ja/currency.js @@ -0,0 +1 @@ +({"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":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/ja/gregorian.js b/lib/dojo/cldr/nls/ja/gregorian.js new file mode 100644 index 000000000..412613187 --- /dev/null +++ b/lib/dojo/cldr/nls/ja/gregorian.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/ja/number.js b/lib/dojo/cldr/nls/ja/number.js new file mode 100644 index 000000000..90d87b946 --- /dev/null +++ b/lib/dojo/cldr/nls/ja/number.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/ko/currency.js b/lib/dojo/cldr/nls/ko/currency.js new file mode 100644 index 000000000..5185f3e4c --- /dev/null +++ b/lib/dojo/cldr/nls/ko/currency.js @@ -0,0 +1 @@ +({"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":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/ko/gregorian.js b/lib/dojo/cldr/nls/ko/gregorian.js new file mode 100644 index 000000000..b10bdbf17 --- /dev/null +++ b/lib/dojo/cldr/nls/ko/gregorian.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/ko/number.js b/lib/dojo/cldr/nls/ko/number.js new file mode 100644 index 000000000..b155b913d --- /dev/null +++ b/lib/dojo/cldr/nls/ko/number.js @@ -0,0 +1 @@ +({"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":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/nb/currency.js b/lib/dojo/cldr/nls/nb/currency.js new file mode 100644 index 000000000..88fcff8df --- /dev/null +++ b/lib/dojo/cldr/nls/nb/currency.js @@ -0,0 +1 @@ +({"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$"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/nb/gregorian.js b/lib/dojo/cldr/nls/nb/gregorian.js new file mode 100644 index 000000000..008dd84dd --- /dev/null +++ b/lib/dojo/cldr/nls/nb/gregorian.js @@ -0,0 +1 @@ +({"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}"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/nb/number.js b/lib/dojo/cldr/nls/nb/number.js new file mode 100644 index 000000000..2904b4ba2 --- /dev/null +++ b/lib/dojo/cldr/nls/nb/number.js @@ -0,0 +1 @@ +({"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":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/nl/currency.js b/lib/dojo/cldr/nls/nl/currency.js new file mode 100644 index 000000000..fb04881cd --- /dev/null +++ b/lib/dojo/cldr/nls/nl/currency.js @@ -0,0 +1 @@ +({"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":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/nl/gregorian.js b/lib/dojo/cldr/nls/nl/gregorian.js new file mode 100644 index 000000000..32eb4aa0b --- /dev/null +++ b/lib/dojo/cldr/nls/nl/gregorian.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/nl/number.js b/lib/dojo/cldr/nls/nl/number.js new file mode 100644 index 000000000..6e47a0a58 --- /dev/null +++ b/lib/dojo/cldr/nls/nl/number.js @@ -0,0 +1 @@ +({"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":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/number.js b/lib/dojo/cldr/nls/number.js new file mode 100644 index 000000000..8f762162f --- /dev/null +++ b/lib/dojo/cldr/nls/number.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/pl/currency.js b/lib/dojo/cldr/nls/pl/currency.js new file mode 100644 index 000000000..d1849ec9e --- /dev/null +++ b/lib/dojo/cldr/nls/pl/currency.js @@ -0,0 +1 @@ +({"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":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/pl/gregorian.js b/lib/dojo/cldr/nls/pl/gregorian.js new file mode 100644 index 000000000..661278f71 --- /dev/null +++ b/lib/dojo/cldr/nls/pl/gregorian.js @@ -0,0 +1 @@ +({"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}"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/pl/number.js b/lib/dojo/cldr/nls/pl/number.js new file mode 100644 index 000000000..ad7c86955 --- /dev/null +++ b/lib/dojo/cldr/nls/pl/number.js @@ -0,0 +1 @@ +({"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":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/pt-pt/gregorian.js b/lib/dojo/cldr/nls/pt-pt/gregorian.js new file mode 100644 index 000000000..010820010 --- /dev/null +++ b/lib/dojo/cldr/nls/pt-pt/gregorian.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/pt-pt/number.js b/lib/dojo/cldr/nls/pt-pt/number.js new file mode 100644 index 000000000..e06fd94c1 --- /dev/null +++ b/lib/dojo/cldr/nls/pt-pt/number.js @@ -0,0 +1 @@ +({"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":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/pt/currency.js b/lib/dojo/cldr/nls/pt/currency.js new file mode 100644 index 000000000..2e055699a --- /dev/null +++ b/lib/dojo/cldr/nls/pt/currency.js @@ -0,0 +1 @@ +({"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":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/pt/gregorian.js b/lib/dojo/cldr/nls/pt/gregorian.js new file mode 100644 index 000000000..296fb10e2 --- /dev/null +++ b/lib/dojo/cldr/nls/pt/gregorian.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/pt/number.js b/lib/dojo/cldr/nls/pt/number.js new file mode 100644 index 000000000..f10fcfa2f --- /dev/null +++ b/lib/dojo/cldr/nls/pt/number.js @@ -0,0 +1 @@ +({"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":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/ru/currency.js b/lib/dojo/cldr/nls/ru/currency.js new file mode 100644 index 000000000..fb05c6ddf --- /dev/null +++ b/lib/dojo/cldr/nls/ru/currency.js @@ -0,0 +1 @@ +({"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":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/ru/gregorian.js b/lib/dojo/cldr/nls/ru/gregorian.js new file mode 100644 index 000000000..8eadf9d28 --- /dev/null +++ b/lib/dojo/cldr/nls/ru/gregorian.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/ru/number.js b/lib/dojo/cldr/nls/ru/number.js new file mode 100644 index 000000000..55fbdf8ca --- /dev/null +++ b/lib/dojo/cldr/nls/ru/number.js @@ -0,0 +1 @@ +({"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":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/sk/currency.js b/lib/dojo/cldr/nls/sk/currency.js new file mode 100644 index 000000000..f1b79665a --- /dev/null +++ b/lib/dojo/cldr/nls/sk/currency.js @@ -0,0 +1 @@ +({"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":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/sk/gregorian.js b/lib/dojo/cldr/nls/sk/gregorian.js new file mode 100644 index 000000000..513ec559c --- /dev/null +++ b/lib/dojo/cldr/nls/sk/gregorian.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/sk/number.js b/lib/dojo/cldr/nls/sk/number.js new file mode 100644 index 000000000..f4095fdc6 --- /dev/null +++ b/lib/dojo/cldr/nls/sk/number.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/sl/currency.js b/lib/dojo/cldr/nls/sl/currency.js new file mode 100644 index 000000000..f071a988d --- /dev/null +++ b/lib/dojo/cldr/nls/sl/currency.js @@ -0,0 +1 @@ +({"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":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/sl/gregorian.js b/lib/dojo/cldr/nls/sl/gregorian.js new file mode 100644 index 000000000..15bc1846e --- /dev/null +++ b/lib/dojo/cldr/nls/sl/gregorian.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/sl/number.js b/lib/dojo/cldr/nls/sl/number.js new file mode 100644 index 000000000..cc627888e --- /dev/null +++ b/lib/dojo/cldr/nls/sl/number.js @@ -0,0 +1 @@ +({"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":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/sv/currency.js b/lib/dojo/cldr/nls/sv/currency.js new file mode 100644 index 000000000..76a878a93 --- /dev/null +++ b/lib/dojo/cldr/nls/sv/currency.js @@ -0,0 +1 @@ +({"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":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/sv/gregorian.js b/lib/dojo/cldr/nls/sv/gregorian.js new file mode 100644 index 000000000..b92d4fe93 --- /dev/null +++ b/lib/dojo/cldr/nls/sv/gregorian.js @@ -0,0 +1 @@ +({"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}"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/sv/number.js b/lib/dojo/cldr/nls/sv/number.js new file mode 100644 index 000000000..de83eac0d --- /dev/null +++ b/lib/dojo/cldr/nls/sv/number.js @@ -0,0 +1 @@ +({"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":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/th/buddhist.js b/lib/dojo/cldr/nls/th/buddhist.js new file mode 100644 index 000000000..d1876f7b1 --- /dev/null +++ b/lib/dojo/cldr/nls/th/buddhist.js @@ -0,0 +1 @@ +({"dateFormatItem-yM":"M/yyyy","dateFormatItem-yQ":"Q yyyy","dayPeriods-format-wide-pm":"หลังเที่ยง","eraNames":["พุทธศักราช"],"dateFormatItem-MMMEd":"E d MMM","dateTimeFormat-full":"{1}, {0}","dateFormatItem-yQQQ":"QQQ y","months-standAlone-narrow":["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],"dateTimeFormat-short":"{1}, {0}","dayPeriods-format-wide-am":"ก่อนเที่ยง","dateTimeFormat-medium":"{1}, {0}","timeFormat-full":"H นาฬิกา m นาที ss วินาที zzzz","dateFormatItem-yMMM":"MMM y","days-standAlone-narrow":["อ","จ","อ","พ","พ","ศ","ส"],"eraAbbr":["พ.ศ."],"dateFormat-long":"d MMMM y","timeFormat-medium":"H:mm:ss","dateFormatItem-EEEd":"EEE d","dateFormatItem-Hm":"H:mm","dateFormat-medium":"d MMM y","dateFormatItem-Hms":"H:mm:ss","dateTimeFormat-long":"{1}, {0}","dateFormatItem-MMMd":"d MMM","timeFormat-long":"H นาฬิกา m นาที ss วินาที z","months-format-abbr":["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],"timeFormat-short":"H:mm","dateFormatItem-H":"H","days-format-abbr":["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],"dateFormatItem-MEd":"E, d/M","dateFormat-short":"d/M/yyyy","dateFormatItem-yMMMEd":"EEE d MMM y","dateFormat-full":"EEEEที่ d MMMM G y","dateFormatItem-Md":"d/M","dateFormatItem-yMEd":"EEE d/M/yyyy","months-format-wide":["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],"quarters-format-wide":["ไตรมาส 1","ไตรมาส 2","ไตรมาส 3","ไตรมาส 4"],"days-format-wide":["วันอาทิตย์","วันจันทร์","วันอังคาร","วันพุธ","วันพฤหัสบดี","วันศุกร์","วันเสาร์"],"eraNarrow":["พ.ศ."],"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}","dayPeriods-format-abbr-am":"AM","dateTimeFormats-appendItem-Second":"{0} ({2}: {1})","months-standAlone-wide":["1","2","3","4","5","6","7","8","9","10","11","12"],"dateTimeFormats-appendItem-Era":"{0} {1}","dateTimeFormats-appendItem-Week":"{0} ({2}: {1})","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"],"quarters-standAlone-abbr":["Q1","Q2","Q3","Q4"],"days-standAlone-abbr":["1","2","3","4","5","6","7"],"dateFormatItem-d":"d","dateFormatItem-ms":"mm:ss","quarters-format-narrow":["1","2","3","4"],"dateFormatItem-h":"h a","dayPeriods-format-narrow-am":"AM","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","days-format-narrow":["1","2","3","4","5","6","7"],"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","dateFormatItem-hms":"h:mm:ss a"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/th/currency.js b/lib/dojo/cldr/nls/th/currency.js new file mode 100644 index 000000000..e2f76cca2 --- /dev/null +++ b/lib/dojo/cldr/nls/th/currency.js @@ -0,0 +1 @@ +({"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":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/th/gregorian.js b/lib/dojo/cldr/nls/th/gregorian.js new file mode 100644 index 000000000..ee17118f8 --- /dev/null +++ b/lib/dojo/cldr/nls/th/gregorian.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/th/number.js b/lib/dojo/cldr/nls/th/number.js new file mode 100644 index 000000000..9d4a2504c --- /dev/null +++ b/lib/dojo/cldr/nls/th/number.js @@ -0,0 +1 @@ +({"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":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/tr/currency.js b/lib/dojo/cldr/nls/tr/currency.js new file mode 100644 index 000000000..4e8104eb1 --- /dev/null +++ b/lib/dojo/cldr/nls/tr/currency.js @@ -0,0 +1 @@ +({"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":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/tr/gregorian.js b/lib/dojo/cldr/nls/tr/gregorian.js new file mode 100644 index 000000000..16c39aa0f --- /dev/null +++ b/lib/dojo/cldr/nls/tr/gregorian.js @@ -0,0 +1 @@ +({"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}"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/tr/number.js b/lib/dojo/cldr/nls/tr/number.js new file mode 100644 index 000000000..0be46063b --- /dev/null +++ b/lib/dojo/cldr/nls/tr/number.js @@ -0,0 +1 @@ +({"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":" "})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/zh-tw/currency.js b/lib/dojo/cldr/nls/zh-tw/currency.js new file mode 100644 index 000000000..a57f458d1 --- /dev/null +++ b/lib/dojo/cldr/nls/zh-tw/currency.js @@ -0,0 +1 @@ +({"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¥"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/zh-tw/gregorian.js b/lib/dojo/cldr/nls/zh-tw/gregorian.js new file mode 100644 index 000000000..78165cb92 --- /dev/null +++ b/lib/dojo/cldr/nls/zh-tw/gregorian.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/zh/currency.js b/lib/dojo/cldr/nls/zh/currency.js new file mode 100644 index 000000000..960d5e585 --- /dev/null +++ b/lib/dojo/cldr/nls/zh/currency.js @@ -0,0 +1 @@ +({"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":"€"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/zh/gregorian.js b/lib/dojo/cldr/nls/zh/gregorian.js new file mode 100644 index 000000000..4c5993f43 --- /dev/null +++ b/lib/dojo/cldr/nls/zh/gregorian.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/cldr/nls/zh/number.js b/lib/dojo/cldr/nls/zh/number.js new file mode 100644 index 000000000..90d87b946 --- /dev/null +++ b/lib/dojo/cldr/nls/zh/number.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/cldr/supplemental.js b/lib/dojo/cldr/supplemental.js new file mode 100644 index 000000000..011af7e63 --- /dev/null +++ b/lib/dojo/cldr/supplemental.js @@ -0,0 +1,45 @@ +/* + 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["dojo.cldr.supplemental"]){ +dojo._hasResource["dojo.cldr.supplemental"]=true; +dojo.provide("dojo.cldr.supplemental"); +dojo.require("dojo.i18n"); +dojo.cldr.supplemental.getFirstDayOfWeek=function(_1){ +var _2={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 _3=dojo.cldr.supplemental._region(_1); +var _4=_2[_3]; +return (_4===undefined)?1:_4; +}; +dojo.cldr.supplemental._region=function(_5){ +_5=dojo.i18n.normalizeLocale(_5); +var _6=_5.split("-"); +var _7=_6[1]; +if(!_7){ +_7={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"}[_6[0]]; +}else{ +if(_7.length==4){ +_7=_6[2]; +} +} +return _7; +}; +dojo.cldr.supplemental.getWeekend=function(_8){ +var _9={"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 _a={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 _b=dojo.cldr.supplemental._region(_8); +var _c=_9[_b]; +var _d=_a[_b]; +if(_c===undefined){ +_c=6; +} +if(_d===undefined){ +_d=0; +} +return {start:_c,end:_d}; +}; +} diff --git a/lib/dojo/colors.js b/lib/dojo/colors.js new file mode 100644 index 000000000..a5b0da7fd --- /dev/null +++ b/lib/dojo/colors.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["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]}); +} diff --git a/lib/dojo/cookie.js b/lib/dojo/cookie.js new file mode 100644 index 000000000..0d3b6eac0 --- /dev/null +++ b/lib/dojo/cookie.js @@ -0,0 +1,50 @@ +/* + 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["dojo.cookie"]){ +dojo._hasResource["dojo.cookie"]=true; +dojo.provide("dojo.cookie"); +dojo.require("dojo.regexp"); +dojo.cookie=function(_1,_2,_3){ +var c=document.cookie; +if(arguments.length==1){ +var _4=c.match(new RegExp("(?:^|; )"+dojo.regexp.escapeString(_1)+"=([^;]*)")); +return _4?decodeURIComponent(_4[1]):undefined; +}else{ +_3=_3||{}; +var _5=_3.expires; +if(typeof _5=="number"){ +var d=new Date(); +d.setTime(d.getTime()+_5*24*60*60*1000); +_5=_3.expires=d; +} +if(_5&&_5.toUTCString){ +_3.expires=_5.toUTCString(); +} +_2=encodeURIComponent(_2); +var _6=_1+"="+_2,_7; +for(_7 in _3){ +_6+="; "+_7; +var _8=_3[_7]; +if(_8!==true){ +_6+="="+_8; +} +} +document.cookie=_6; +} +}; +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; +}; +} diff --git a/lib/dojo/currency.js b/lib/dojo/currency.js new file mode 100644 index 000000000..10712660f --- /dev/null +++ b/lib/dojo/currency.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["dojo.currency"]){ +dojo._hasResource["dojo.currency"]=true; +dojo.provide("dojo.currency"); +dojo.require("dojo.number"); +dojo.require("dojo.i18n"); +dojo.requireLocalization("dojo.cldr","currency",null,"ROOT,ar,ca,cs,da,de,el,en,en-au,en-ca,es,fi,fr,he,hu,it,ja,ko,nb,nl,pl,pt,ru,sk,sl,sv,th,tr,zh,zh-tw"); +dojo.require("dojo.cldr.monetary"); +dojo.currency._mixInDefaults=function(_1){ +_1=_1||{}; +_1.type="currency"; +var _2=dojo.i18n.getLocalization("dojo.cldr","currency",_1.locale)||{}; +var _3=_1.currency; +var _4=dojo.cldr.monetary.getData(_3); +dojo.forEach(["displayName","symbol","group","decimal"],function(_5){ +_4[_5]=_2[_3+"_"+_5]; +}); +_4.fractional=[true,false]; +return dojo.mixin(_4,_1); +}; +dojo.currency.format=function(_6,_7){ +return dojo.number.format(_6,dojo.currency._mixInDefaults(_7)); +}; +dojo.currency.regexp=function(_8){ +return dojo.number.regexp(dojo.currency._mixInDefaults(_8)); +}; +dojo.currency.parse=function(_9,_a){ +return dojo.number.parse(_9,dojo.currency._mixInDefaults(_a)); +}; +} diff --git a/lib/dojo/data/ItemFileReadStore.js b/lib/dojo/data/ItemFileReadStore.js new file mode 100644 index 000000000..01c15ee00 --- /dev/null +++ b/lib/dojo/data/ItemFileReadStore.js @@ -0,0 +1,562 @@ +/* + 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["dojo.data.ItemFileReadStore"]){ +dojo._hasResource["dojo.data.ItemFileReadStore"]=true; +dojo.provide("dojo.data.ItemFileReadStore"); +dojo.require("dojo.data.util.filter"); +dojo.require("dojo.data.util.simpleFetch"); +dojo.require("dojo.date.stamp"); +dojo.declare("dojo.data.ItemFileReadStore",null,{constructor:function(_1){ +this._arrayOfAllItems=[]; +this._arrayOfTopLevelItems=[]; +this._loadFinished=false; +this._jsonFileUrl=_1.url; +this._ccUrl=_1.url; +this.url=_1.url; +this._jsonData=_1.data; +this.data=null; +this._datatypeMap=_1.typeMap||{}; +if(!this._datatypeMap["Date"]){ +this._datatypeMap["Date"]={type:Date,deserialize:function(_2){ +return dojo.date.stamp.fromISOString(_2); +}}; +} +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(_1.urlPreventCache!==undefined){ +this.urlPreventCache=_1.urlPreventCache?true:false; +} +if(_1.hierarchical!==undefined){ +this.hierarchical=_1.hierarchical?true:false; +} +if(_1.clearOnClose){ +this.clearOnClose=true; +} +if("failOk" in _1){ +this.failOk=_1.failOk?true:false; +} +},url:"",_ccUrl:"",data:null,typeMap:null,clearOnClose:false,urlPreventCache:false,failOk:false,hierarchical:true,_assertIsItem:function(_3){ +if(!this.isItem(_3)){ +throw new Error("dojo.data.ItemFileReadStore: Invalid item argument."); +} +},_assertIsAttribute:function(_4){ +if(typeof _4!=="string"){ +throw new Error("dojo.data.ItemFileReadStore: Invalid attribute argument."); +} +},getValue:function(_5,_6,_7){ +var _8=this.getValues(_5,_6); +return (_8.length>0)?_8[0]:_7; +},getValues:function(_9,_a){ +this._assertIsItem(_9); +this._assertIsAttribute(_a); +return (_9[_a]||[]).slice(0); +},getAttributes:function(_b){ +this._assertIsItem(_b); +var _c=[]; +for(var _d in _b){ +if((_d!==this._storeRefPropName)&&(_d!==this._itemNumPropName)&&(_d!==this._rootItemPropName)&&(_d!==this._reverseRefMap)){ +_c.push(_d); +} +} +return _c; +},hasAttribute:function(_e,_f){ +this._assertIsItem(_e); +this._assertIsAttribute(_f); +return (_f in _e); +},containsValue:function(_10,_11,_12){ +var _13=undefined; +if(typeof _12==="string"){ +_13=dojo.data.util.filter.patternToRegExp(_12,false); +} +return this._containsValue(_10,_11,_12,_13); +},_containsValue:function(_14,_15,_16,_17){ +return dojo.some(this.getValues(_14,_15),function(_18){ +if(_18!==null&&!dojo.isObject(_18)&&_17){ +if(_18.toString().match(_17)){ +return true; +} +}else{ +if(_16===_18){ +return true; +} +} +}); +},isItem:function(_19){ +if(_19&&_19[this._storeRefPropName]===this){ +if(this._arrayOfAllItems[_19[this._itemNumPropName]]===_19){ +return true; +} +} +return false; +},isItemLoaded:function(_1a){ +return this.isItem(_1a); +},loadItem:function(_1b){ +this._assertIsItem(_1b.item); +},getFeatures:function(){ +return this._features; +},getLabel:function(_1c){ +if(this._labelAttr&&this.isItem(_1c)){ +return this.getValue(_1c,this._labelAttr); +} +return undefined; +},getLabelAttributes:function(_1d){ +if(this._labelAttr){ +return [this._labelAttr]; +} +return null; +},_fetchItems:function(_1e,_1f,_20){ +var _21=this,_22=function(_23,_24){ +var _25=[],i,key; +if(_23.query){ +var _26,_27=_23.queryOptions?_23.queryOptions.ignoreCase:false; +var _28={}; +for(key in _23.query){ +_26=_23.query[key]; +if(typeof _26==="string"){ +_28[key]=dojo.data.util.filter.patternToRegExp(_26,_27); +}else{ +if(_26 instanceof RegExp){ +_28[key]=_26; +} +} +} +for(i=0;i<_24.length;++i){ +var _29=true; +var _2a=_24[i]; +if(_2a===null){ +_29=false; +}else{ +for(key in _23.query){ +_26=_23.query[key]; +if(!_21._containsValue(_2a,key,_26,_28[key])){ +_29=false; +} +} +} +if(_29){ +_25.push(_2a); +} +} +_1f(_25,_23); +}else{ +for(i=0;i<_24.length;++i){ +var _2b=_24[i]; +if(_2b!==null){ +_25.push(_2b); +} +} +_1f(_25,_23); +} +}; +if(this._loadFinished){ +_22(_1e,this._getItemsArray(_1e.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:_1e,filter:_22}); +}else{ +this._loadInProgress=true; +var _2c={url:_21._jsonFileUrl,handleAs:"json-comment-optional",preventCache:this.urlPreventCache,failOk:this.failOk}; +var _2d=dojo.xhrGet(_2c); +_2d.addCallback(function(_2e){ +try{ +_21._getItemsFromLoadedData(_2e); +_21._loadFinished=true; +_21._loadInProgress=false; +_22(_1e,_21._getItemsArray(_1e.queryOptions)); +_21._handleQueuedFetches(); +} +catch(e){ +_21._loadFinished=true; +_21._loadInProgress=false; +_20(e,_1e); +} +}); +_2d.addErrback(function(_2f){ +_21._loadInProgress=false; +_20(_2f,_1e); +}); +var _30=null; +if(_1e.abort){ +_30=_1e.abort; +} +_1e.abort=function(){ +var df=_2d; +if(df&&df.fired===-1){ +df.cancel(); +df=null; +} +if(_30){ +_30.call(_1e); +} +}; +} +}else{ +if(this._jsonData){ +try{ +this._loadFinished=true; +this._getItemsFromLoadedData(this._jsonData); +this._jsonData=null; +_22(_1e,this._getItemsArray(_1e.queryOptions)); +} +catch(e){ +_20(e,_1e); +} +}else{ +_20(new Error("dojo.data.ItemFileReadStore: No JSON source data was provided as either URL or a nested Javascript object."),_1e); +} +} +} +},_handleQueuedFetches:function(){ +if(this._queuedFetches.length>0){ +for(var i=0;i<this._queuedFetches.length;i++){ +var _31=this._queuedFetches[i],_32=_31.args,_33=_31.filter; +if(_33){ +_33(_32,this._getItemsArray(_32.queryOptions)); +}else{ +this.fetchItemByIdentity(_32); +} +} +this._queuedFetches=[]; +} +},_getItemsArray:function(_34){ +if(_34&&_34.deep){ +return this._arrayOfAllItems; +} +return this._arrayOfTopLevelItems; +},close:function(_35){ +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(_36){ +var _37=false,_38=this; +function _39(_3a){ +var _3b=((_3a!==null)&&(typeof _3a==="object")&&(!dojo.isArray(_3a)||_37)&&(!dojo.isFunction(_3a))&&(_3a.constructor==Object||dojo.isArray(_3a))&&(typeof _3a._reference==="undefined")&&(typeof _3a._type==="undefined")&&(typeof _3a._value==="undefined")&&_38.hierarchical); +return _3b; +}; +function _3c(_3d){ +_38._arrayOfAllItems.push(_3d); +for(var _3e in _3d){ +var _3f=_3d[_3e]; +if(_3f){ +if(dojo.isArray(_3f)){ +var _40=_3f; +for(var k=0;k<_40.length;++k){ +var _41=_40[k]; +if(_39(_41)){ +_3c(_41); +} +} +}else{ +if(_39(_3f)){ +_3c(_3f); +} +} +} +} +}; +this._labelAttr=_36.label; +var i,_42; +this._arrayOfAllItems=[]; +this._arrayOfTopLevelItems=_36.items; +for(i=0;i<this._arrayOfTopLevelItems.length;++i){ +_42=this._arrayOfTopLevelItems[i]; +if(dojo.isArray(_42)){ +_37=true; +} +_3c(_42); +_42[this._rootItemPropName]=true; +} +var _43={},key; +for(i=0;i<this._arrayOfAllItems.length;++i){ +_42=this._arrayOfAllItems[i]; +for(key in _42){ +if(key!==this._rootItemPropName){ +var _44=_42[key]; +if(_44!==null){ +if(!dojo.isArray(_44)){ +_42[key]=[_44]; +} +}else{ +_42[key]=[null]; +} +} +_43[key]=key; +} +} +while(_43[this._storeRefPropName]){ +this._storeRefPropName+="_"; +} +while(_43[this._itemNumPropName]){ +this._itemNumPropName+="_"; +} +while(_43[this._reverseRefMap]){ +this._reverseRefMap+="_"; +} +var _45; +var _46=_36.identifier; +if(_46){ +this._itemsByIdentity={}; +this._features["dojo.data.api.Identity"]=_46; +for(i=0;i<this._arrayOfAllItems.length;++i){ +_42=this._arrayOfAllItems[i]; +_45=_42[_46]; +var _47=_45[0]; +if(!this._itemsByIdentity[_47]){ +this._itemsByIdentity[_47]=_42; +}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: ["+_46+"]. Value collided: ["+_47+"]"); +}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: ["+_46+"]. Value collided: ["+_47+"]"); +} +} +} +} +}else{ +this._features["dojo.data.api.Identity"]=Number; +} +for(i=0;i<this._arrayOfAllItems.length;++i){ +_42=this._arrayOfAllItems[i]; +_42[this._storeRefPropName]=this; +_42[this._itemNumPropName]=i; +} +for(i=0;i<this._arrayOfAllItems.length;++i){ +_42=this._arrayOfAllItems[i]; +for(key in _42){ +_45=_42[key]; +for(var j=0;j<_45.length;++j){ +_44=_45[j]; +if(_44!==null&&typeof _44=="object"){ +if(("_type" in _44)&&("_value" in _44)){ +var _48=_44._type; +var _49=this._datatypeMap[_48]; +if(!_49){ +throw new Error("dojo.data.ItemFileReadStore: in the typeMap constructor arg, no object class was specified for the datatype '"+_48+"'"); +}else{ +if(dojo.isFunction(_49)){ +_45[j]=new _49(_44._value); +}else{ +if(dojo.isFunction(_49.deserialize)){ +_45[j]=_49.deserialize(_44._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(_44._reference){ +var _4a=_44._reference; +if(!dojo.isObject(_4a)){ +_45[j]=this._getItemByIdentity(_4a); +}else{ +for(var k=0;k<this._arrayOfAllItems.length;++k){ +var _4b=this._arrayOfAllItems[k],_4c=true; +for(var _4d in _4a){ +if(_4b[_4d]!=_4a[_4d]){ +_4c=false; +} +} +if(_4c){ +_45[j]=_4b; +} +} +} +if(this.referenceIntegrity){ +var _4e=_45[j]; +if(this.isItem(_4e)){ +this._addReferenceToMap(_4e,_42,key); +} +} +}else{ +if(this.isItem(_44)){ +if(this.referenceIntegrity){ +this._addReferenceToMap(_44,_42,key); +} +} +} +} +} +} +} +},_addReferenceToMap:function(_4f,_50,_51){ +},getIdentity:function(_52){ +var _53=this._features["dojo.data.api.Identity"]; +if(_53===Number){ +return _52[this._itemNumPropName]; +}else{ +var _54=_52[_53]; +if(_54){ +return _54[0]; +} +} +return null; +},fetchItemByIdentity:function(_55){ +var _56,_57; +if(!this._loadFinished){ +var _58=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:_55}); +}else{ +this._loadInProgress=true; +var _59={url:_58._jsonFileUrl,handleAs:"json-comment-optional",preventCache:this.urlPreventCache,failOk:this.failOk}; +var _5a=dojo.xhrGet(_59); +_5a.addCallback(function(_5b){ +var _5c=_55.scope?_55.scope:dojo.global; +try{ +_58._getItemsFromLoadedData(_5b); +_58._loadFinished=true; +_58._loadInProgress=false; +_56=_58._getItemByIdentity(_55.identity); +if(_55.onItem){ +_55.onItem.call(_5c,_56); +} +_58._handleQueuedFetches(); +} +catch(error){ +_58._loadInProgress=false; +if(_55.onError){ +_55.onError.call(_5c,error); +} +} +}); +_5a.addErrback(function(_5d){ +_58._loadInProgress=false; +if(_55.onError){ +var _5e=_55.scope?_55.scope:dojo.global; +_55.onError.call(_5e,_5d); +} +}); +} +}else{ +if(this._jsonData){ +_58._getItemsFromLoadedData(_58._jsonData); +_58._jsonData=null; +_58._loadFinished=true; +_56=_58._getItemByIdentity(_55.identity); +if(_55.onItem){ +_57=_55.scope?_55.scope:dojo.global; +_55.onItem.call(_57,_56); +} +} +} +}else{ +_56=this._getItemByIdentity(_55.identity); +if(_55.onItem){ +_57=_55.scope?_55.scope:dojo.global; +_55.onItem.call(_57,_56); +} +} +},_getItemByIdentity:function(_5f){ +var _60=null; +if(this._itemsByIdentity){ +_60=this._itemsByIdentity[_5f]; +}else{ +_60=this._arrayOfAllItems[_5f]; +} +if(_60===undefined){ +_60=null; +} +return _60; +},getIdentityAttributes:function(_61){ +var _62=this._features["dojo.data.api.Identity"]; +if(_62===Number){ +return null; +}else{ +return [_62]; +} +},_forceLoad:function(){ +var _63=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 _64={url:this._jsonFileUrl,handleAs:"json-comment-optional",preventCache:this.urlPreventCache,failOk:this.failOk,sync:true}; +var _65=dojo.xhrGet(_64); +_65.addCallback(function(_66){ +try{ +if(_63._loadInProgress!==true&&!_63._loadFinished){ +_63._getItemsFromLoadedData(_66); +_63._loadFinished=true; +}else{ +if(_63._loadInProgress){ +throw new Error("dojo.data.ItemFileReadStore: Unable to perform a synchronous load, an async load is in progress."); +} +} +} +catch(e){ +throw e; +} +}); +_65.addErrback(function(_67){ +throw _67; +}); +}else{ +if(this._jsonData){ +_63._getItemsFromLoadedData(_63._jsonData); +_63._jsonData=null; +_63._loadFinished=true; +} +} +}}); +dojo.extend(dojo.data.ItemFileReadStore,dojo.data.util.simpleFetch); +} diff --git a/lib/dojo/data/ItemFileWriteStore.js b/lib/dojo/data/ItemFileWriteStore.js new file mode 100644 index 000000000..c891c14e7 --- /dev/null +++ b/lib/dojo/data/ItemFileWriteStore.js @@ -0,0 +1,511 @@ +/* + 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["dojo.data.ItemFileWriteStore"]){ +dojo._hasResource["dojo.data.ItemFileWriteStore"]=true; +dojo.provide("dojo.data.ItemFileWriteStore"); +dojo.require("dojo.data.ItemFileReadStore"); +dojo.declare("dojo.data.ItemFileWriteStore",dojo.data.ItemFileReadStore,{constructor:function(_1){ +this._features["dojo.data.api.Write"]=true; +this._features["dojo.data.api.Notification"]=true; +this._pending={_newItems:{},_modifiedItems:{},_deletedItems:{}}; +if(!this._datatypeMap["Date"].serialize){ +this._datatypeMap["Date"].serialize=function(_2){ +return dojo.date.stamp.toISOString(_2,{zulu:true}); +}; +} +if(_1&&(_1.referenceIntegrity===false)){ +this.referenceIntegrity=false; +} +this._saveInProgress=false; +},referenceIntegrity:true,_assert:function(_3){ +if(!_3){ +throw new Error("assertion failed in ItemFileWriteStore"); +} +},_getIdentifierAttribute:function(){ +var _4=this.getFeatures()["dojo.data.api.Identity"]; +return _4; +},newItem:function(_5,_6){ +this._assert(!this._saveInProgress); +if(!this._loadFinished){ +this._forceLoad(); +} +if(typeof _5!="object"&&typeof _5!="undefined"){ +throw new Error("newItem() was passed something other than an object"); +} +var _7=null; +var _8=this._getIdentifierAttribute(); +if(_8===Number){ +_7=this._arrayOfAllItems.length; +}else{ +_7=_5[_8]; +if(typeof _7==="undefined"){ +throw new Error("newItem() was not passed an identity for the new item"); +} +if(dojo.isArray(_7)){ +throw new Error("newItem() was not passed an single-valued identity"); +} +} +if(this._itemsByIdentity){ +this._assert(typeof this._itemsByIdentity[_7]==="undefined"); +} +this._assert(typeof this._pending._newItems[_7]==="undefined"); +this._assert(typeof this._pending._deletedItems[_7]==="undefined"); +var _9={}; +_9[this._storeRefPropName]=this; +_9[this._itemNumPropName]=this._arrayOfAllItems.length; +if(this._itemsByIdentity){ +this._itemsByIdentity[_7]=_9; +_9[_8]=[_7]; +} +this._arrayOfAllItems.push(_9); +var _a=null; +if(_6&&_6.parent&&_6.attribute){ +_a={item:_6.parent,attribute:_6.attribute,oldValue:undefined}; +var _b=this.getValues(_6.parent,_6.attribute); +if(_b&&_b.length>0){ +var _c=_b.slice(0,_b.length); +if(_b.length===1){ +_a.oldValue=_b[0]; +}else{ +_a.oldValue=_b.slice(0,_b.length); +} +_c.push(_9); +this._setValueOrValues(_6.parent,_6.attribute,_c,false); +_a.newValue=this.getValues(_6.parent,_6.attribute); +}else{ +this._setValueOrValues(_6.parent,_6.attribute,_9,false); +_a.newValue=_9; +} +}else{ +_9[this._rootItemPropName]=true; +this._arrayOfTopLevelItems.push(_9); +} +this._pending._newItems[_7]=_9; +for(var _d in _5){ +if(_d===this._storeRefPropName||_d===this._itemNumPropName){ +throw new Error("encountered bug in ItemFileWriteStore.newItem"); +} +var _e=_5[_d]; +if(!dojo.isArray(_e)){ +_e=[_e]; +} +_9[_d]=_e; +if(this.referenceIntegrity){ +for(var i=0;i<_e.length;i++){ +var _f=_e[i]; +if(this.isItem(_f)){ +this._addReferenceToMap(_f,_9,_d); +} +} +} +} +this.onNew(_9,_a); +return _9; +},_removeArrayElement:function(_10,_11){ +var _12=dojo.indexOf(_10,_11); +if(_12!=-1){ +_10.splice(_12,1); +return true; +} +return false; +},deleteItem:function(_13){ +this._assert(!this._saveInProgress); +this._assertIsItem(_13); +var _14=_13[this._itemNumPropName]; +var _15=this.getIdentity(_13); +if(this.referenceIntegrity){ +var _16=this.getAttributes(_13); +if(_13[this._reverseRefMap]){ +_13["backup_"+this._reverseRefMap]=dojo.clone(_13[this._reverseRefMap]); +} +dojo.forEach(_16,function(_17){ +dojo.forEach(this.getValues(_13,_17),function(_18){ +if(this.isItem(_18)){ +if(!_13["backupRefs_"+this._reverseRefMap]){ +_13["backupRefs_"+this._reverseRefMap]=[]; +} +_13["backupRefs_"+this._reverseRefMap].push({id:this.getIdentity(_18),attr:_17}); +this._removeReferenceFromMap(_18,_13,_17); +} +},this); +},this); +var _19=_13[this._reverseRefMap]; +if(_19){ +for(var _1a in _19){ +var _1b=null; +if(this._itemsByIdentity){ +_1b=this._itemsByIdentity[_1a]; +}else{ +_1b=this._arrayOfAllItems[_1a]; +} +if(_1b){ +for(var _1c in _19[_1a]){ +var _1d=this.getValues(_1b,_1c)||[]; +var _1e=dojo.filter(_1d,function(_1f){ +return !(this.isItem(_1f)&&this.getIdentity(_1f)==_15); +},this); +this._removeReferenceFromMap(_13,_1b,_1c); +if(_1e.length<_1d.length){ +this._setValueOrValues(_1b,_1c,_1e,true); +} +} +} +} +} +} +this._arrayOfAllItems[_14]=null; +_13[this._storeRefPropName]=null; +if(this._itemsByIdentity){ +delete this._itemsByIdentity[_15]; +} +this._pending._deletedItems[_15]=_13; +if(_13[this._rootItemPropName]){ +this._removeArrayElement(this._arrayOfTopLevelItems,_13); +} +this.onDelete(_13); +return true; +},setValue:function(_20,_21,_22){ +return this._setValueOrValues(_20,_21,_22,true); +},setValues:function(_23,_24,_25){ +return this._setValueOrValues(_23,_24,_25,true); +},unsetAttribute:function(_26,_27){ +return this._setValueOrValues(_26,_27,[],true); +},_setValueOrValues:function(_28,_29,_2a,_2b){ +this._assert(!this._saveInProgress); +this._assertIsItem(_28); +this._assert(dojo.isString(_29)); +this._assert(typeof _2a!=="undefined"); +var _2c=this._getIdentifierAttribute(); +if(_29==_2c){ +throw new Error("ItemFileWriteStore does not have support for changing the value of an item's identifier."); +} +var _2d=this._getValueOrValues(_28,_29); +var _2e=this.getIdentity(_28); +if(!this._pending._modifiedItems[_2e]){ +var _2f={}; +for(var key in _28){ +if((key===this._storeRefPropName)||(key===this._itemNumPropName)||(key===this._rootItemPropName)){ +_2f[key]=_28[key]; +}else{ +if(key===this._reverseRefMap){ +_2f[key]=dojo.clone(_28[key]); +}else{ +_2f[key]=_28[key].slice(0,_28[key].length); +} +} +} +this._pending._modifiedItems[_2e]=_2f; +} +var _30=false; +if(dojo.isArray(_2a)&&_2a.length===0){ +_30=delete _28[_29]; +_2a=undefined; +if(this.referenceIntegrity&&_2d){ +var _31=_2d; +if(!dojo.isArray(_31)){ +_31=[_31]; +} +for(var i=0;i<_31.length;i++){ +var _32=_31[i]; +if(this.isItem(_32)){ +this._removeReferenceFromMap(_32,_28,_29); +} +} +} +}else{ +var _33; +if(dojo.isArray(_2a)){ +var _34=_2a; +_33=_2a.slice(0,_2a.length); +}else{ +_33=[_2a]; +} +if(this.referenceIntegrity){ +if(_2d){ +var _31=_2d; +if(!dojo.isArray(_31)){ +_31=[_31]; +} +var map={}; +dojo.forEach(_31,function(_35){ +if(this.isItem(_35)){ +var id=this.getIdentity(_35); +map[id.toString()]=true; +} +},this); +dojo.forEach(_33,function(_36){ +if(this.isItem(_36)){ +var id=this.getIdentity(_36); +if(map[id.toString()]){ +delete map[id.toString()]; +}else{ +this._addReferenceToMap(_36,_28,_29); +} +} +},this); +for(var rId in map){ +var _37; +if(this._itemsByIdentity){ +_37=this._itemsByIdentity[rId]; +}else{ +_37=this._arrayOfAllItems[rId]; +} +this._removeReferenceFromMap(_37,_28,_29); +} +}else{ +for(var i=0;i<_33.length;i++){ +var _32=_33[i]; +if(this.isItem(_32)){ +this._addReferenceToMap(_32,_28,_29); +} +} +} +} +_28[_29]=_33; +_30=true; +} +if(_2b){ +this.onSet(_28,_29,_2d,_2a); +} +return _30; +},_addReferenceToMap:function(_38,_39,_3a){ +var _3b=this.getIdentity(_39); +var _3c=_38[this._reverseRefMap]; +if(!_3c){ +_3c=_38[this._reverseRefMap]={}; +} +var _3d=_3c[_3b]; +if(!_3d){ +_3d=_3c[_3b]={}; +} +_3d[_3a]=true; +},_removeReferenceFromMap:function(_3e,_3f,_40){ +var _41=this.getIdentity(_3f); +var _42=_3e[this._reverseRefMap]; +var _43; +if(_42){ +for(_43 in _42){ +if(_43==_41){ +delete _42[_43][_40]; +if(this._isEmpty(_42[_43])){ +delete _42[_43]; +} +} +} +if(this._isEmpty(_42)){ +delete _3e[this._reverseRefMap]; +} +} +},_dumpReferenceMap:function(){ +var i; +for(i=0;i<this._arrayOfAllItems.length;i++){ +var _44=this._arrayOfAllItems[i]; +if(_44&&_44[this._reverseRefMap]){ +} +} +},_getValueOrValues:function(_45,_46){ +var _47=undefined; +if(this.hasAttribute(_45,_46)){ +var _48=this.getValues(_45,_46); +if(_48.length==1){ +_47=_48[0]; +}else{ +_47=_48; +} +} +return _47; +},_flatten:function(_49){ +if(this.isItem(_49)){ +var _4a=_49; +var _4b=this.getIdentity(_4a); +var _4c={_reference:_4b}; +return _4c; +}else{ +if(typeof _49==="object"){ +for(var _4d in this._datatypeMap){ +var _4e=this._datatypeMap[_4d]; +if(dojo.isObject(_4e)&&!dojo.isFunction(_4e)){ +if(_49 instanceof _4e.type){ +if(!_4e.serialize){ +throw new Error("ItemFileWriteStore: No serializer defined for type mapping: ["+_4d+"]"); +} +return {_type:_4d,_value:_4e.serialize(_49)}; +} +}else{ +if(_49 instanceof _4e){ +return {_type:_4d,_value:_49.toString()}; +} +} +} +} +return _49; +} +},_getNewFileContentString:function(){ +var _4f={}; +var _50=this._getIdentifierAttribute(); +if(_50!==Number){ +_4f.identifier=_50; +} +if(this._labelAttr){ +_4f.label=this._labelAttr; +} +_4f.items=[]; +for(var i=0;i<this._arrayOfAllItems.length;++i){ +var _51=this._arrayOfAllItems[i]; +if(_51!==null){ +var _52={}; +for(var key in _51){ +if(key!==this._storeRefPropName&&key!==this._itemNumPropName&&key!==this._reverseRefMap&&key!==this._rootItemPropName){ +var _53=key; +var _54=this.getValues(_51,_53); +if(_54.length==1){ +_52[_53]=this._flatten(_54[0]); +}else{ +var _55=[]; +for(var j=0;j<_54.length;++j){ +_55.push(this._flatten(_54[j])); +_52[_53]=_55; +} +} +} +} +_4f.items.push(_52); +} +} +var _56=true; +return dojo.toJson(_4f,_56); +},_isEmpty:function(_57){ +var _58=true; +if(dojo.isObject(_57)){ +var i; +for(i in _57){ +_58=false; +break; +} +}else{ +if(dojo.isArray(_57)){ +if(_57.length>0){ +_58=false; +} +} +} +return _58; +},save:function(_59){ +this._assert(!this._saveInProgress); +this._saveInProgress=true; +var _5a=this; +var _5b=function(){ +_5a._pending={_newItems:{},_modifiedItems:{},_deletedItems:{}}; +_5a._saveInProgress=false; +if(_59&&_59.onComplete){ +var _5c=_59.scope||dojo.global; +_59.onComplete.call(_5c); +} +}; +var _5d=function(err){ +_5a._saveInProgress=false; +if(_59&&_59.onError){ +var _5e=_59.scope||dojo.global; +_59.onError.call(_5e,err); +} +}; +if(this._saveEverything){ +var _5f=this._getNewFileContentString(); +this._saveEverything(_5b,_5d,_5f); +} +if(this._saveCustom){ +this._saveCustom(_5b,_5d); +} +if(!this._saveEverything&&!this._saveCustom){ +_5b(); +} +},revert:function(){ +this._assert(!this._saveInProgress); +var _60; +for(_60 in this._pending._modifiedItems){ +var _61=this._pending._modifiedItems[_60]; +var _62=null; +if(this._itemsByIdentity){ +_62=this._itemsByIdentity[_60]; +}else{ +_62=this._arrayOfAllItems[_60]; +} +_61[this._storeRefPropName]=this; +for(key in _62){ +delete _62[key]; +} +dojo.mixin(_62,_61); +} +var _63; +for(_60 in this._pending._deletedItems){ +_63=this._pending._deletedItems[_60]; +_63[this._storeRefPropName]=this; +var _64=_63[this._itemNumPropName]; +if(_63["backup_"+this._reverseRefMap]){ +_63[this._reverseRefMap]=_63["backup_"+this._reverseRefMap]; +delete _63["backup_"+this._reverseRefMap]; +} +this._arrayOfAllItems[_64]=_63; +if(this._itemsByIdentity){ +this._itemsByIdentity[_60]=_63; +} +if(_63[this._rootItemPropName]){ +this._arrayOfTopLevelItems.push(_63); +} +} +for(_60 in this._pending._deletedItems){ +_63=this._pending._deletedItems[_60]; +if(_63["backupRefs_"+this._reverseRefMap]){ +dojo.forEach(_63["backupRefs_"+this._reverseRefMap],function(_65){ +var _66; +if(this._itemsByIdentity){ +_66=this._itemsByIdentity[_65.id]; +}else{ +_66=this._arrayOfAllItems[_65.id]; +} +this._addReferenceToMap(_66,_63,_65.attr); +},this); +delete _63["backupRefs_"+this._reverseRefMap]; +} +} +for(_60 in this._pending._newItems){ +var _67=this._pending._newItems[_60]; +_67[this._storeRefPropName]=null; +this._arrayOfAllItems[_67[this._itemNumPropName]]=null; +if(_67[this._rootItemPropName]){ +this._removeArrayElement(this._arrayOfTopLevelItems,_67); +} +if(this._itemsByIdentity){ +delete this._itemsByIdentity[_60]; +} +} +this._pending={_newItems:{},_modifiedItems:{},_deletedItems:{}}; +return true; +},isDirty:function(_68){ +if(_68){ +var _69=this.getIdentity(_68); +return new Boolean(this._pending._newItems[_69]||this._pending._modifiedItems[_69]||this._pending._deletedItems[_69]).valueOf(); +}else{ +if(!this._isEmpty(this._pending._newItems)||!this._isEmpty(this._pending._modifiedItems)||!this._isEmpty(this._pending._deletedItems)){ +return true; +} +return false; +} +},onSet:function(_6a,_6b,_6c,_6d){ +},onNew:function(_6e,_6f){ +},onDelete:function(_70){ +},close:function(_71){ +if(this.clearOnClose){ +if(!this.isDirty()){ +this.inherited(arguments); +}else{ +throw new Error("dojo.data.ItemFileWriteStore: There are unsaved changes present in the store. Please save or revert the changes before invoking close."); +} +} +}}); +} diff --git a/lib/dojo/data/api/Identity.js b/lib/dojo/data/api/Identity.js new file mode 100644 index 000000000..a76dd481c --- /dev/null +++ b/lib/dojo/data/api/Identity.js @@ -0,0 +1,26 @@ +/* + 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["dojo.data.api.Identity"]){ +dojo._hasResource["dojo.data.api.Identity"]=true; +dojo.provide("dojo.data.api.Identity"); +dojo.require("dojo.data.api.Read"); +dojo.declare("dojo.data.api.Identity",dojo.data.api.Read,{getFeatures:function(){ +return {"dojo.data.api.Read":true,"dojo.data.api.Identity":true}; +},getIdentity:function(_1){ +throw new Error("Unimplemented API: dojo.data.api.Identity.getIdentity"); +var _2=null; +return _2; +},getIdentityAttributes:function(_3){ +throw new Error("Unimplemented API: dojo.data.api.Identity.getIdentityAttributes"); +return null; +},fetchItemByIdentity:function(_4){ +if(!this.isItemLoaded(_4.item)){ +throw new Error("Unimplemented API: dojo.data.api.Identity.fetchItemByIdentity"); +} +}}); +} diff --git a/lib/dojo/data/api/Notification.js b/lib/dojo/data/api/Notification.js new file mode 100644 index 000000000..d1afacda7 --- /dev/null +++ b/lib/dojo/data/api/Notification.js @@ -0,0 +1,21 @@ +/* + 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["dojo.data.api.Notification"]){ +dojo._hasResource["dojo.data.api.Notification"]=true; +dojo.provide("dojo.data.api.Notification"); +dojo.require("dojo.data.api.Read"); +dojo.declare("dojo.data.api.Notification",dojo.data.api.Read,{getFeatures:function(){ +return {"dojo.data.api.Read":true,"dojo.data.api.Notification":true}; +},onSet:function(_1,_2,_3,_4){ +throw new Error("Unimplemented API: dojo.data.api.Notification.onSet"); +},onNew:function(_5,_6){ +throw new Error("Unimplemented API: dojo.data.api.Notification.onNew"); +},onDelete:function(_7){ +throw new Error("Unimplemented API: dojo.data.api.Notification.onDelete"); +}}); +} diff --git a/lib/dojo/data/api/Read.js b/lib/dojo/data/api/Read.js new file mode 100644 index 000000000..e5e543e98 --- /dev/null +++ b/lib/dojo/data/api/Read.js @@ -0,0 +1,55 @@ +/* + 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["dojo.data.api.Read"]){ +dojo._hasResource["dojo.data.api.Read"]=true; +dojo.provide("dojo.data.api.Read"); +dojo.require("dojo.data.api.Request"); +dojo.declare("dojo.data.api.Read",null,{getValue:function(_1,_2,_3){ +var _4=null; +throw new Error("Unimplemented API: dojo.data.api.Read.getValue"); +return _4; +},getValues:function(_5,_6){ +var _7=[]; +throw new Error("Unimplemented API: dojo.data.api.Read.getValues"); +return _7; +},getAttributes:function(_8){ +var _9=[]; +throw new Error("Unimplemented API: dojo.data.api.Read.getAttributes"); +return _9; +},hasAttribute:function(_a,_b){ +throw new Error("Unimplemented API: dojo.data.api.Read.hasAttribute"); +return false; +},containsValue:function(_c,_d,_e){ +throw new Error("Unimplemented API: dojo.data.api.Read.containsValue"); +return false; +},isItem:function(_f){ +throw new Error("Unimplemented API: dojo.data.api.Read.isItem"); +return false; +},isItemLoaded:function(_10){ +throw new Error("Unimplemented API: dojo.data.api.Read.isItemLoaded"); +return false; +},loadItem:function(_11){ +if(!this.isItemLoaded(_11.item)){ +throw new Error("Unimplemented API: dojo.data.api.Read.loadItem"); +} +},fetch:function(_12){ +var _13=null; +throw new Error("Unimplemented API: dojo.data.api.Read.fetch"); +return _13; +},getFeatures:function(){ +return {"dojo.data.api.Read":true}; +},close:function(_14){ +throw new Error("Unimplemented API: dojo.data.api.Read.close"); +},getLabel:function(_15){ +throw new Error("Unimplemented API: dojo.data.api.Read.getLabel"); +return undefined; +},getLabelAttributes:function(_16){ +throw new Error("Unimplemented API: dojo.data.api.Read.getLabelAttributes"); +return null; +}}); +} diff --git a/lib/dojo/data/api/Request.js b/lib/dojo/data/api/Request.js new file mode 100644 index 000000000..2d8e0e044 --- /dev/null +++ b/lib/dojo/data/api/Request.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["dojo.data.api.Request"]){ +dojo._hasResource["dojo.data.api.Request"]=true; +dojo.provide("dojo.data.api.Request"); +dojo.declare("dojo.data.api.Request",null,{abort:function(){ +throw new Error("Unimplemented API: dojo.data.api.Request.abort"); +}}); +} diff --git a/lib/dojo/data/api/Write.js b/lib/dojo/data/api/Write.js new file mode 100644 index 000000000..cc9c3e4f4 --- /dev/null +++ b/lib/dojo/data/api/Write.js @@ -0,0 +1,39 @@ +/* + 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["dojo.data.api.Write"]){ +dojo._hasResource["dojo.data.api.Write"]=true; +dojo.provide("dojo.data.api.Write"); +dojo.require("dojo.data.api.Read"); +dojo.declare("dojo.data.api.Write",dojo.data.api.Read,{getFeatures:function(){ +return {"dojo.data.api.Read":true,"dojo.data.api.Write":true}; +},newItem:function(_1,_2){ +var _3; +throw new Error("Unimplemented API: dojo.data.api.Write.newItem"); +return _3; +},deleteItem:function(_4){ +throw new Error("Unimplemented API: dojo.data.api.Write.deleteItem"); +return false; +},setValue:function(_5,_6,_7){ +throw new Error("Unimplemented API: dojo.data.api.Write.setValue"); +return false; +},setValues:function(_8,_9,_a){ +throw new Error("Unimplemented API: dojo.data.api.Write.setValues"); +return false; +},unsetAttribute:function(_b,_c){ +throw new Error("Unimplemented API: dojo.data.api.Write.clear"); +return false; +},save:function(_d){ +throw new Error("Unimplemented API: dojo.data.api.Write.save"); +},revert:function(){ +throw new Error("Unimplemented API: dojo.data.api.Write.revert"); +return false; +},isDirty:function(_e){ +throw new Error("Unimplemented API: dojo.data.api.Write.isDirty"); +return false; +}}); +} diff --git a/lib/dojo/data/util/filter.js b/lib/dojo/data/util/filter.js new file mode 100644 index 000000000..dcdc050e6 --- /dev/null +++ b/lib/dojo/data/util/filter.js @@ -0,0 +1,52 @@ +/* + 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["dojo.data.util.filter"]){ +dojo._hasResource["dojo.data.util.filter"]=true; +dojo.provide("dojo.data.util.filter"); +dojo.data.util.filter.patternToRegExp=function(_1,_2){ +var _3="^"; +var c=null; +for(var i=0;i<_1.length;i++){ +c=_1.charAt(i); +switch(c){ +case "\\": +_3+=c; +i++; +_3+=_1.charAt(i); +break; +case "*": +_3+=".*"; +break; +case "?": +_3+="."; +break; +case "$": +case "^": +case "/": +case "+": +case ".": +case "|": +case "(": +case ")": +case "{": +case "}": +case "[": +case "]": +_3+="\\"; +default: +_3+=c; +} +} +_3+="$"; +if(_2){ +return new RegExp(_3,"mi"); +}else{ +return new RegExp(_3,"m"); +} +}; +} diff --git a/lib/dojo/data/util/simpleFetch.js b/lib/dojo/data/util/simpleFetch.js new file mode 100644 index 000000000..b3cc365d1 --- /dev/null +++ b/lib/dojo/data/util/simpleFetch.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["dojo.data.util.simpleFetch"]){ +dojo._hasResource["dojo.data.util.simpleFetch"]=true; +dojo.provide("dojo.data.util.simpleFetch"); +dojo.require("dojo.data.util.sorter"); +dojo.data.util.simpleFetch.fetch=function(_1){ +_1=_1||{}; +if(!_1.store){ +_1.store=this; +} +var _2=this; +var _3=function(_4,_5){ +if(_5.onError){ +var _6=_5.scope||dojo.global; +_5.onError.call(_6,_4,_5); +} +}; +var _7=function(_8,_9){ +var _a=_9.abort||null; +var _b=false; +var _c=_9.start?_9.start:0; +var _d=(_9.count&&(_9.count!==Infinity))?(_c+_9.count):_8.length; +_9.abort=function(){ +_b=true; +if(_a){ +_a.call(_9); +} +}; +var _e=_9.scope||dojo.global; +if(!_9.store){ +_9.store=_2; +} +if(_9.onBegin){ +_9.onBegin.call(_e,_8.length,_9); +} +if(_9.sort){ +_8.sort(dojo.data.util.sorter.createSortFunction(_9.sort,_2)); +} +if(_9.onItem){ +for(var i=_c;(i<_8.length)&&(i<_d);++i){ +var _f=_8[i]; +if(!_b){ +_9.onItem.call(_e,_f,_9); +} +} +} +if(_9.onComplete&&!_b){ +var _10=null; +if(!_9.onItem){ +_10=_8.slice(_c,_d); +} +_9.onComplete.call(_e,_10,_9); +} +}; +this._fetchItems(_1,_7,_3); +return _1; +}; +} diff --git a/lib/dojo/data/util/sorter.js b/lib/dojo/data/util/sorter.js new file mode 100644 index 000000000..ace781274 --- /dev/null +++ b/lib/dojo/data/util/sorter.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["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(_1,_2){ +var _3=[]; +function _4(_5,_6,_7,s){ +return function(_8,_9){ +var a=s.getValue(_8,_5); +var b=s.getValue(_9,_5); +return _6*_7(a,b); +}; +}; +var _a; +var _b=_2.comparatorMap; +var bc=dojo.data.util.sorter.basicComparator; +for(var i=0;i<_1.length;i++){ +_a=_1[i]; +var _c=_a.attribute; +if(_c){ +var _d=(_a.descending)?-1:1; +var _e=bc; +if(_b){ +if(typeof _c!=="string"&&("toString" in _c)){ +_c=_c.toString(); +} +_e=_b[_c]||bc; +} +_3.push(_4(_c,_d,_e,_2)); +} +} +return function(_f,_10){ +var i=0; +while(i<_3.length){ +var ret=_3[i++](_f,_10); +if(ret!==0){ +return ret; +} +} +return 0; +}; +}; +} diff --git a/lib/dojo/date.js b/lib/dojo/date.js new file mode 100644 index 000000000..dc51853f3 --- /dev/null +++ b/lib/dojo/date.js @@ -0,0 +1,213 @@ +/* + 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["dojo.date"]){ +dojo._hasResource["dojo.date"]=true; +dojo.provide("dojo.date"); +dojo.date.getDaysInMonth=function(_1){ +var _2=_1.getMonth(); +var _3=[31,28,31,30,31,30,31,31,30,31,30,31]; +if(_2==1&&dojo.date.isLeapYear(_1)){ +return 29; +} +return _3[_2]; +}; +dojo.date.isLeapYear=function(_4){ +var _5=_4.getFullYear(); +return !(_5%400)||(!(_5%4)&&!!(_5%100)); +}; +dojo.date.getTimezoneName=function(_6){ +var _7=_6.toString(); +var tz=""; +var _8; +var _9=_7.indexOf("("); +if(_9>-1){ +tz=_7.substring(++_9,_7.indexOf(")")); +}else{ +var _a=/([A-Z\/]+) \d{4}$/; +if((_8=_7.match(_a))){ +tz=_8[1]; +}else{ +_7=_6.toLocaleString(); +_a=/ ([A-Z\/]+)$/; +if((_8=_7.match(_a))){ +tz=_8[1]; +} +} +} +return (tz=="AM"||tz=="PM")?"":tz; +}; +dojo.date.compare=function(_b,_c,_d){ +_b=new Date(+_b); +_c=new Date(+(_c||new Date())); +if(_d=="date"){ +_b.setHours(0,0,0,0); +_c.setHours(0,0,0,0); +}else{ +if(_d=="time"){ +_b.setFullYear(0,0,0); +_c.setFullYear(0,0,0); +} +} +if(_b>_c){ +return 1; +} +if(_b<_c){ +return -1; +} +return 0; +}; +dojo.date.add=function(_e,_f,_10){ +var sum=new Date(+_e); +var _11=false; +var _12="Date"; +switch(_f){ +case "day": +break; +case "weekday": +var _13,_14; +var mod=_10%5; +if(!mod){ +_13=(_10>0)?5:-5; +_14=(_10>0)?((_10-5)/5):((_10+5)/5); +}else{ +_13=mod; +_14=parseInt(_10/5); +} +var _15=_e.getDay(); +var adj=0; +if(_15==6&&_10>0){ +adj=1; +}else{ +if(_15==0&&_10<0){ +adj=-1; +} +} +var _16=_15+_13; +if(_16==0||_16==6){ +adj=(_10>0)?2:-2; +} +_10=(7*_14)+_13+adj; +break; +case "year": +_12="FullYear"; +_11=true; +break; +case "week": +_10*=7; +break; +case "quarter": +_10*=3; +case "month": +_11=true; +_12="Month"; +break; +default: +_12="UTC"+_f.charAt(0).toUpperCase()+_f.substring(1)+"s"; +} +if(_12){ +sum["set"+_12](sum["get"+_12]()+_10); +} +if(_11&&(sum.getDate()<_e.getDate())){ +sum.setDate(0); +} +return sum; +}; +dojo.date.difference=function(_17,_18,_19){ +_18=_18||new Date(); +_19=_19||"day"; +var _1a=_18.getFullYear()-_17.getFullYear(); +var _1b=1; +switch(_19){ +case "quarter": +var m1=_17.getMonth(); +var m2=_18.getMonth(); +var q1=Math.floor(m1/3)+1; +var q2=Math.floor(m2/3)+1; +q2+=(_1a*4); +_1b=q2-q1; +break; +case "weekday": +var _1c=Math.round(dojo.date.difference(_17,_18,"day")); +var _1d=parseInt(dojo.date.difference(_17,_18,"week")); +var mod=_1c%7; +if(mod==0){ +_1c=_1d*5; +}else{ +var adj=0; +var _1e=_17.getDay(); +var _1f=_18.getDay(); +_1d=parseInt(_1c/7); +mod=_1c%7; +var _20=new Date(_17); +_20.setDate(_20.getDate()+(_1d*7)); +var _21=_20.getDay(); +if(_1c>0){ +switch(true){ +case _1e==6: +adj=-1; +break; +case _1e==0: +adj=0; +break; +case _1f==6: +adj=-1; +break; +case _1f==0: +adj=-2; +break; +case (_21+mod)>5: +adj=-2; +} +}else{ +if(_1c<0){ +switch(true){ +case _1e==6: +adj=0; +break; +case _1e==0: +adj=1; +break; +case _1f==6: +adj=2; +break; +case _1f==0: +adj=1; +break; +case (_21+mod)<0: +adj=2; +} +} +} +_1c+=adj; +_1c-=(_1d*2); +} +_1b=_1c; +break; +case "year": +_1b=_1a; +break; +case "month": +_1b=(_18.getMonth()-_17.getMonth())+(_1a*12); +break; +case "week": +_1b=parseInt(dojo.date.difference(_17,_18,"day")/7); +break; +case "day": +_1b/=24; +case "hour": +_1b/=60; +case "minute": +_1b/=60; +case "second": +_1b/=1000; +case "millisecond": +_1b*=_18.getTime()-_17.getTime(); +} +return Math.round(_1b); +}; +} diff --git a/lib/dojo/date/locale.js b/lib/dojo/date/locale.js new file mode 100644 index 000000000..666468649 --- /dev/null +++ b/lib/dojo/date/locale.js @@ -0,0 +1,464 @@ +/* + 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["dojo.date.locale"]){ +dojo._hasResource["dojo.date.locale"]=true; +dojo.provide("dojo.date.locale"); +dojo.require("dojo.date"); +dojo.require("dojo.cldr.supplemental"); +dojo.require("dojo.regexp"); +dojo.require("dojo.string"); +dojo.require("dojo.i18n"); +dojo.requireLocalization("dojo.cldr","gregorian",null,"ROOT,ar,ca,cs,da,de,el,en,en-au,en-ca,en-gb,es,fi,fr,he,hu,it,ja,ko,nb,nl,pl,pt,pt-pt,ru,sk,sl,sv,th,tr,zh,zh-tw"); +(function(){ +function _1(_2,_3,_4,_5){ +return _5.replace(/([a-z])\1*/ig,function(_6){ +var s,_7,c=_6.charAt(0),l=_6.length,_8=["abbr","wide","narrow"]; +switch(c){ +case "G": +s=_3[(l<4)?"eraAbbr":"eraNames"][_2.getFullYear()<0?0:1]; +break; +case "y": +s=_2.getFullYear(); +switch(l){ +case 1: +break; +case 2: +if(!_4.fullYear){ +s=String(s); +s=s.substr(s.length-2); +break; +} +default: +_7=true; +} +break; +case "Q": +case "q": +s=Math.ceil((_2.getMonth()+1)/3); +_7=true; +break; +case "M": +var m=_2.getMonth(); +if(l<3){ +s=m+1; +_7=true; +}else{ +var _9=["months","format",_8[l-3]].join("-"); +s=_3[_9][m]; +} +break; +case "w": +var _a=0; +s=dojo.date.locale._getWeekOfYear(_2,_a); +_7=true; +break; +case "d": +s=_2.getDate(); +_7=true; +break; +case "D": +s=dojo.date.locale._getDayOfYear(_2); +_7=true; +break; +case "E": +var d=_2.getDay(); +if(l<3){ +s=d+1; +_7=true; +}else{ +var _b=["days","format",_8[l-3]].join("-"); +s=_3[_b][d]; +} +break; +case "a": +var _c=(_2.getHours()<12)?"am":"pm"; +s=_3["dayPeriods-format-wide-"+_c]; +break; +case "h": +case "H": +case "K": +case "k": +var h=_2.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; +} +_7=true; +break; +case "m": +s=_2.getMinutes(); +_7=true; +break; +case "s": +s=_2.getSeconds(); +_7=true; +break; +case "S": +s=Math.round(_2.getMilliseconds()*Math.pow(10,l-3)); +_7=true; +break; +case "v": +case "z": +s=dojo.date.locale._getZone(_2,true,_4); +if(s){ +break; +} +l=4; +case "Z": +var _d=dojo.date.locale._getZone(_2,false,_4); +var tz=[(_d<=0?"+":"-"),dojo.string.pad(Math.floor(Math.abs(_d)/60),2),dojo.string.pad(Math.abs(_d)%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: "+_5); +} +if(_7){ +s=dojo.string.pad(s,l); +} +return s; +}); +}; +dojo.date.locale._getZone=function(_e,_f,_10){ +if(_f){ +return dojo.date.getTimezoneName(_e); +}else{ +return _e.getTimezoneOffset(); +} +}; +dojo.date.locale.format=function(_11,_12){ +_12=_12||{}; +var _13=dojo.i18n.normalizeLocale(_12.locale),_14=_12.formatLength||"short",_15=dojo.date.locale._getGregorianBundle(_13),str=[],_16=dojo.hitch(this,_1,_11,_15,_12); +if(_12.selector=="year"){ +return _17(_15["dateFormatItem-yyyy"]||"yyyy",_16); +} +var _18; +if(_12.selector!="date"){ +_18=_12.timePattern||_15["timeFormat-"+_14]; +if(_18){ +str.push(_17(_18,_16)); +} +} +if(_12.selector!="time"){ +_18=_12.datePattern||_15["dateFormat-"+_14]; +if(_18){ +str.push(_17(_18,_16)); +} +} +return str.length==1?str[0]:_15["dateTimeFormat-"+_14].replace(/\{(\d+)\}/g,function(_19,key){ +return str[key]; +}); +}; +dojo.date.locale.regexp=function(_1a){ +return dojo.date.locale._parseInfo(_1a).regexp; +}; +dojo.date.locale._parseInfo=function(_1b){ +_1b=_1b||{}; +var _1c=dojo.i18n.normalizeLocale(_1b.locale),_1d=dojo.date.locale._getGregorianBundle(_1c),_1e=_1b.formatLength||"short",_1f=_1b.datePattern||_1d["dateFormat-"+_1e],_20=_1b.timePattern||_1d["timeFormat-"+_1e],_21; +if(_1b.selector=="date"){ +_21=_1f; +}else{ +if(_1b.selector=="time"){ +_21=_20; +}else{ +_21=_1d["dateTimeFormat-"+_1e].replace(/\{(\d+)\}/g,function(_22,key){ +return [_20,_1f][key]; +}); +} +} +var _23=[],re=_17(_21,dojo.hitch(this,_24,_23,_1d,_1b)); +return {regexp:re,tokens:_23,bundle:_1d}; +}; +dojo.date.locale.parse=function(_25,_26){ +var _27=dojo.date.locale._parseInfo(_26),_28=_27.tokens,_29=_27.bundle,re=new RegExp("^"+_27.regexp+"$",_27.strict?"":"i"),_2a=re.exec(_25); +if(!_2a){ +return null; +} +var _2b=["abbr","wide","narrow"],_2c=[1970,0,1,0,0,0,0],_2d="",_2e=dojo.every(_2a,function(v,i){ +if(!i){ +return true; +} +var _2f=_28[i-1]; +var l=_2f.length; +switch(_2f.charAt(0)){ +case "y": +if(l!=2&&_26.strict){ +_2c[0]=v; +}else{ +if(v<100){ +v=Number(v); +var _30=""+new Date().getFullYear(),_31=_30.substring(0,2)*100,_32=Math.min(Number(_30.substring(2,4))+20,99),num=(v<_32)?_31+v:_31-100+v; +_2c[0]=num; +}else{ +if(_26.strict){ +return false; +} +_2c[0]=v; +} +} +break; +case "M": +if(l>2){ +var _33=_29["months-format-"+_2b[l-3]].concat(); +if(!_26.strict){ +v=v.replace(".","").toLowerCase(); +_33=dojo.map(_33,function(s){ +return s.replace(".","").toLowerCase(); +}); +} +v=dojo.indexOf(_33,v); +if(v==-1){ +return false; +} +}else{ +v--; +} +_2c[1]=v; +break; +case "E": +case "e": +var _34=_29["days-format-"+_2b[l-3]].concat(); +if(!_26.strict){ +v=v.toLowerCase(); +_34=dojo.map(_34,function(d){ +return d.toLowerCase(); +}); +} +v=dojo.indexOf(_34,v); +if(v==-1){ +return false; +} +break; +case "D": +_2c[1]=0; +case "d": +_2c[2]=v; +break; +case "a": +var am=_26.am||_29["dayPeriods-format-wide-am"],pm=_26.pm||_29["dayPeriods-format-wide-pm"]; +if(!_26.strict){ +var _35=/\./g; +v=v.replace(_35,"").toLowerCase(); +am=am.replace(_35,"").toLowerCase(); +pm=pm.replace(_35,"").toLowerCase(); +} +if(_26.strict&&v!=am&&v!=pm){ +return false; +} +_2d=(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; +} +_2c[3]=v; +break; +case "m": +_2c[4]=v; +break; +case "s": +_2c[5]=v; +break; +case "S": +_2c[6]=v; +} +return true; +}); +var _36=+_2c[3]; +if(_2d==="p"&&_36<12){ +_2c[3]=_36+12; +}else{ +if(_2d==="a"&&_36==12){ +_2c[3]=0; +} +} +var _37=new Date(_2c[0],_2c[1],_2c[2],_2c[3],_2c[4],_2c[5],_2c[6]); +if(_26.strict){ +_37.setFullYear(_2c[0]); +} +var _38=_28.join(""),_39=_38.indexOf("d")!=-1,_3a=_38.indexOf("M")!=-1; +if(!_2e||(_3a&&_37.getMonth()>_2c[1])||(_39&&_37.getDate()>_2c[2])){ +return null; +} +if((_3a&&_37.getMonth()<_2c[1])||(_39&&_37.getDate()<_2c[2])){ +_37=dojo.date.add(_37,"hour",1); +} +return _37; +}; +function _17(_3b,_3c,_3d,_3e){ +var _3f=function(x){ +return x; +}; +_3c=_3c||_3f; +_3d=_3d||_3f; +_3e=_3e||_3f; +var _40=_3b.match(/(''|[^'])+/g),_41=_3b.charAt(0)=="'"; +dojo.forEach(_40,function(_42,i){ +if(!_42){ +_40[i]=""; +}else{ +_40[i]=(_41?_3d:_3c)(_42.replace(/''/g,"'")); +_41=!_41; +} +}); +return _3e(_40.join("")); +}; +function _24(_43,_44,_45,_46){ +_46=dojo.regexp.escapeString(_46); +if(!_45.strict){ +_46=_46.replace(" a"," ?a"); +} +return _46.replace(/([a-z])\1*/ig,function(_47){ +var s,c=_47.charAt(0),l=_47.length,p2="",p3=""; +if(_45.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=_45.am||_44["dayPeriods-format-wide-am"],pm=_45.pm||_44["dayPeriods-format-wide-pm"]; +if(_45.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(_43){ +_43.push(_47); +} +return "("+s+")"; +}).replace(/[\xa0 ]/g,"[\\s\\xa0]"); +}; +})(); +(function(){ +var _48=[]; +dojo.date.locale.addCustomFormats=function(_49,_4a){ +_48.push({pkg:_49,name:_4a}); +}; +dojo.date.locale._getGregorianBundle=function(_4b){ +var _4c={}; +dojo.forEach(_48,function(_4d){ +var _4e=dojo.i18n.getLocalization(_4d.pkg,_4d.name,_4b); +_4c=dojo.mixin(_4c,_4e); +},this); +return _4c; +}; +})(); +dojo.date.locale.addCustomFormats("dojo.cldr","gregorian"); +dojo.date.locale.getNames=function(_4f,_50,_51,_52){ +var _53,_54=dojo.date.locale._getGregorianBundle(_52),_55=[_4f,_51,_50]; +if(_51=="standAlone"){ +var key=_55.join("-"); +_53=_54[key]; +if(_53[0]==1){ +_53=undefined; +} +} +_55[1]="format"; +return (_53||_54[_55.join("-")]).concat(); +}; +dojo.date.locale.isWeekend=function(_56,_57){ +var _58=dojo.cldr.supplemental.getWeekend(_57),day=(_56||new Date()).getDay(); +if(_58.end<_58.start){ +_58.end+=7; +if(day<_58.start){ +day+=7; +} +} +return day>=_58.start&&day<=_58.end; +}; +dojo.date.locale._getDayOfYear=function(_59){ +return dojo.date.difference(new Date(_59.getFullYear(),0,1,_59.getHours()),_59)+1; +}; +dojo.date.locale._getWeekOfYear=function(_5a,_5b){ +if(arguments.length==1){ +_5b=0; +} +var _5c=new Date(_5a.getFullYear(),0,1).getDay(),adj=(_5c-_5b+7)%7,_5d=Math.floor((dojo.date.locale._getDayOfYear(_5a)+adj-1)/7); +if(_5c==_5b){ +_5d++; +} +return _5d; +}; +} diff --git a/lib/dojo/date/stamp.js b/lib/dojo/date/stamp.js new file mode 100644 index 000000000..17c5308d2 --- /dev/null +++ b/lib/dojo/date/stamp.js @@ -0,0 +1,82 @@ +/* + 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["dojo.date.stamp"]){ +dojo._hasResource["dojo.date.stamp"]=true; +dojo.provide("dojo.date.stamp"); +dojo.date.stamp.fromISOString=function(_1,_2){ +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 _3=dojo.date.stamp._isoRegExp.exec(_1),_4=null; +if(_3){ +_3.shift(); +if(_3[1]){ +_3[1]--; +} +if(_3[6]){ +_3[6]*=1000; +} +if(_2){ +_2=new Date(_2); +dojo.forEach(dojo.map(["FullYear","Month","Date","Hours","Minutes","Seconds","Milliseconds"],function(_5){ +return _2["get"+_5](); +}),function(_6,_7){ +_3[_7]=_3[_7]||_6; +}); +} +_4=new Date(_3[0]||1970,_3[1]||0,_3[2]||1,_3[3]||0,_3[4]||0,_3[5]||0,_3[6]||0); +if(_3[0]<100){ +_4.setFullYear(_3[0]||1970); +} +var _8=0,_9=_3[7]&&_3[7].charAt(0); +if(_9!="Z"){ +_8=((_3[8]||0)*60)+(Number(_3[9])||0); +if(_9!="-"){ +_8*=-1; +} +} +if(_9){ +_8-=_4.getTimezoneOffset(); +} +if(_8){ +_4.setTime(_4.getTime()+_8*60000); +} +} +return _4; +}; +dojo.date.stamp.toISOString=function(_a,_b){ +var _c=function(n){ +return (n<10)?"0"+n:n; +}; +_b=_b||{}; +var _d=[],_e=_b.zulu?"getUTC":"get",_f=""; +if(_b.selector!="time"){ +var _10=_a[_e+"FullYear"](); +_f=["0000".substr((_10+"").length)+_10,_c(_a[_e+"Month"]()+1),_c(_a[_e+"Date"]())].join("-"); +} +_d.push(_f); +if(_b.selector!="date"){ +var _11=[_c(_a[_e+"Hours"]()),_c(_a[_e+"Minutes"]()),_c(_a[_e+"Seconds"]())].join(":"); +var _12=_a[_e+"Milliseconds"](); +if(_b.milliseconds){ +_11+="."+(_12<100?"0":"")+_c(_12); +} +if(_b.zulu){ +_11+="Z"; +}else{ +if(_b.selector!="time"){ +var _13=_a.getTimezoneOffset(); +var _14=Math.abs(_13); +_11+=(_13>0?"-":"+")+_c(Math.floor(_14/60))+":"+_c(_14%60); +} +} +_d.push(_11); +} +return _d.join("T"); +}; +} diff --git a/lib/dojo/dnd/Avatar.js b/lib/dojo/dnd/Avatar.js new file mode 100644 index 000000000..057668026 --- /dev/null +++ b/lib/dojo/dnd/Avatar.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["dojo.dnd.Avatar"]){ +dojo._hasResource["dojo.dnd.Avatar"]=true; +dojo.provide("dojo.dnd.Avatar"); +dojo.require("dojo.dnd.common"); +dojo.declare("dojo.dnd.Avatar",null,{constructor:function(_1){ +this.manager=_1; +this.construct(); +},construct:function(){ +this.isA11y=dojo.hasClass(dojo.body(),"dijit_a11y"); +var a=dojo.create("table",{"class":"dojoDndAvatar",style:{position:"absolute",zIndex:"1999",margin:"0px"}}),_2=this.manager.source,_3,b=dojo.create("tbody",null,a),tr=dojo.create("tr",null,b),td=dojo.create("td",null,tr),_4=this.isA11y?dojo.create("span",{id:"a11yIcon",innerHTML:this.manager.copy?"+":"<"},td):null,_5=dojo.create("span",{innerHTML:_2.generateText?this._generateText():""},td),k=Math.min(5,this.manager.nodes.length),i=0; +dojo.attr(tr,{"class":"dojoDndAvatarHeader",style:{opacity:0.9}}); +for(;i<k;++i){ +if(_2.creator){ +_3=_2._normalizedCreator(_2.getItem(this.manager.nodes[i].id).data,"avatar").node; +}else{ +_3=this.manager.nodes[i].cloneNode(true); +if(_3.tagName.toLowerCase()=="tr"){ +var _6=dojo.create("table"),_7=dojo.create("tbody",null,_6); +_7.appendChild(_3); +_3=_6; +} +} +_3.id=""; +tr=dojo.create("tr",null,b); +td=dojo.create("td",null,tr); +td.appendChild(_3); +dojo.attr(tr,{"class":"dojoDndAvatarItem",style:{opacity:(9-i)/10}}); +} +this.node=a; +},destroy:function(){ +dojo.destroy(this.node); +this.node=false; +},update:function(){ +dojo[(this.manager.canDropFlag?"add":"remove")+"Class"](this.node,"dojoDndAvatarCanDrop"); +if(this.isA11y){ +var _8=dojo.byId("a11yIcon"); +var _9="+"; +if(this.manager.canDropFlag&&!this.manager.copy){ +_9="< "; +}else{ +if(!this.manager.canDropFlag&&!this.manager.copy){ +_9="o"; +}else{ +if(!this.manager.canDropFlag){ +_9="x"; +} +} +} +_8.innerHTML=_9; +} +dojo.query(("tr.dojoDndAvatarHeader td span"+(this.isA11y?" span":"")),this.node).forEach(function(_a){ +_a.innerHTML=this._generateText(); +},this); +},_generateText:function(){ +return this.manager.nodes.length.toString(); +}}); +} diff --git a/lib/dojo/dnd/Container.js b/lib/dojo/dnd/Container.js new file mode 100644 index 000000000..01e4ce2d9 --- /dev/null +++ b/lib/dojo/dnd/Container.js @@ -0,0 +1,235 @@ +/* + 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["dojo.dnd.Container"]){ +dojo._hasResource["dojo.dnd.Container"]=true; +dojo.provide("dojo.dnd.Container"); +dojo.require("dojo.dnd.common"); +dojo.require("dojo.parser"); +dojo.declare("dojo.dnd.Container",null,{skipForm:false,constructor:function(_1,_2){ +this.node=dojo.byId(_1); +if(!_2){ +_2={}; +} +this.creator=_2.creator||null; +this.skipForm=_2.skipForm; +this.parent=_2.dropParent&&dojo.byId(_2.dropParent); +this.map={}; +this.current=null; +this.containerState=""; +dojo.addClass(this.node,"dojoDndContainer"); +if(!(_2&&_2._skipStartup)){ +this.startup(); +} +this.events=[dojo.connect(this.node,"onmouseover",this,"onMouseOver"),dojo.connect(this.node,"onmouseout",this,"onMouseOut"),dojo.connect(this.node,"ondragstart",this,"onSelectStart"),dojo.connect(this.node,"onselectstart",this,"onSelectStart")]; +},creator:function(){ +},getItem:function(_3){ +return this.map[_3]; +},setItem:function(_4,_5){ +this.map[_4]=_5; +},delItem:function(_6){ +delete this.map[_6]; +},forInItems:function(f,o){ +o=o||dojo.global; +var m=this.map,e=dojo.dnd._empty; +for(var i in m){ +if(i in e){ +continue; +} +f.call(o,m[i],i,this); +} +return o; +},clearItems:function(){ +this.map={}; +},getAllNodes:function(){ +return dojo.query("> .dojoDndItem",this.parent); +},sync:function(){ +var _7={}; +this.getAllNodes().forEach(function(_8){ +if(_8.id){ +var _9=this.getItem(_8.id); +if(_9){ +_7[_8.id]=_9; +return; +} +}else{ +_8.id=dojo.dnd.getUniqueId(); +} +var _a=_8.getAttribute("dndType"),_b=_8.getAttribute("dndData"); +_7[_8.id]={data:_b||_8.innerHTML,type:_a?_a.split(/\s*,\s*/):["text"]}; +},this); +this.map=_7; +return this; +},insertNodes:function(_c,_d,_e){ +if(!this.parent.firstChild){ +_e=null; +}else{ +if(_d){ +if(!_e){ +_e=this.parent.firstChild; +} +}else{ +if(_e){ +_e=_e.nextSibling; +} +} +} +if(_e){ +for(var i=0;i<_c.length;++i){ +var t=this._normalizedCreator(_c[i]); +this.setItem(t.node.id,{data:t.data,type:t.type}); +this.parent.insertBefore(t.node,_e); +} +}else{ +for(var i=0;i<_c.length;++i){ +var t=this._normalizedCreator(_c[i]); +this.setItem(t.node.id,{data:t.data,type:t.type}); +this.parent.appendChild(t.node); +} +} +return this; +},destroy:function(){ +dojo.forEach(this.events,dojo.disconnect); +this.clearItems(); +this.node=this.parent=this.current=null; +},markupFactory:function(_f,_10){ +_f._skipStartup=true; +return new dojo.dnd.Container(_10,_f); +},startup:function(){ +if(!this.parent){ +this.parent=this.node; +if(this.parent.tagName.toLowerCase()=="table"){ +var c=this.parent.getElementsByTagName("tbody"); +if(c&&c.length){ +this.parent=c[0]; +} +} +} +this.defaultCreator=dojo.dnd._defaultCreator(this.parent); +this.sync(); +},onMouseOver:function(e){ +var n=e.relatedTarget; +while(n){ +if(n==this.node){ +break; +} +try{ +n=n.parentNode; +} +catch(x){ +n=null; +} +} +if(!n){ +this._changeState("Container","Over"); +this.onOverEvent(); +} +n=this._getChildByEvent(e); +if(this.current==n){ +return; +} +if(this.current){ +this._removeItemClass(this.current,"Over"); +} +if(n){ +this._addItemClass(n,"Over"); +} +this.current=n; +},onMouseOut:function(e){ +for(var n=e.relatedTarget;n;){ +if(n==this.node){ +return; +} +try{ +n=n.parentNode; +} +catch(x){ +n=null; +} +} +if(this.current){ +this._removeItemClass(this.current,"Over"); +this.current=null; +} +this._changeState("Container",""); +this.onOutEvent(); +},onSelectStart:function(e){ +if(!this.skipForm||!dojo.dnd.isFormElement(e)){ +dojo.stopEvent(e); +} +},onOverEvent:function(){ +},onOutEvent:function(){ +},_changeState:function(_11,_12){ +var _13="dojoDnd"+_11; +var _14=_11.toLowerCase()+"State"; +dojo.removeClass(this.node,_13+this[_14]); +dojo.addClass(this.node,_13+_12); +this[_14]=_12; +},_addItemClass:function(_15,_16){ +dojo.addClass(_15,"dojoDndItem"+_16); +},_removeItemClass:function(_17,_18){ +dojo.removeClass(_17,"dojoDndItem"+_18); +},_getChildByEvent:function(e){ +var _19=e.target; +if(_19){ +for(var _1a=_19.parentNode;_1a;_19=_1a,_1a=_19.parentNode){ +if(_1a==this.parent&&dojo.hasClass(_19,"dojoDndItem")){ +return _19; +} +} +} +return null; +},_normalizedCreator:function(_1b,_1c){ +var t=(this.creator||this.defaultCreator).call(this,_1b,_1c); +if(!dojo.isArray(t.type)){ +t.type=["text"]; +} +if(!t.node.id){ +t.node.id=dojo.dnd.getUniqueId(); +} +dojo.addClass(t.node,"dojoDndItem"); +return t; +}}); +dojo.dnd._createNode=function(tag){ +if(!tag){ +return dojo.dnd._createSpan; +} +return function(_1d){ +return dojo.create(tag,{innerHTML:_1d}); +}; +}; +dojo.dnd._createTrTd=function(_1e){ +var tr=dojo.create("tr"); +dojo.create("td",{innerHTML:_1e},tr); +return tr; +}; +dojo.dnd._createSpan=function(_1f){ +return dojo.create("span",{innerHTML:_1f}); +}; +dojo.dnd._defaultCreatorNodes={ul:"li",ol:"li",div:"div",p:"div"}; +dojo.dnd._defaultCreator=function(_20){ +var tag=_20.tagName.toLowerCase(); +var c=tag=="tbody"||tag=="thead"?dojo.dnd._createTrTd:dojo.dnd._createNode(dojo.dnd._defaultCreatorNodes[tag]); +return function(_21,_22){ +var _23=_21&&dojo.isObject(_21),_24,_25,n; +if(_23&&_21.tagName&&_21.nodeType&&_21.getAttribute){ +_24=_21.getAttribute("dndData")||_21.innerHTML; +_25=_21.getAttribute("dndType"); +_25=_25?_25.split(/\s*,\s*/):["text"]; +n=_21; +}else{ +_24=(_23&&_21.data)?_21.data:_21; +_25=(_23&&_21.type)?_21.type:["text"]; +n=(_22=="avatar"?dojo.dnd._createSpan:c)(String(_24)); +} +if(!n.id){ +n.id=dojo.dnd.getUniqueId(); +} +return {node:n,data:_24,type:_25}; +}; +}; +} diff --git a/lib/dojo/dnd/Manager.js b/lib/dojo/dnd/Manager.js new file mode 100644 index 000000000..c6f91aac3 --- /dev/null +++ b/lib/dojo/dnd/Manager.js @@ -0,0 +1,128 @@ +/* + 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["dojo.dnd.Manager"]){ +dojo._hasResource["dojo.dnd.Manager"]=true; +dojo.provide("dojo.dnd.Manager"); +dojo.require("dojo.dnd.common"); +dojo.require("dojo.dnd.autoscroll"); +dojo.require("dojo.dnd.Avatar"); +dojo.declare("dojo.dnd.Manager",null,{constructor:function(){ +this.avatar=null; +this.source=null; +this.nodes=[]; +this.copy=true; +this.target=null; +this.canDropFlag=false; +this.events=[]; +},OFFSET_X:16,OFFSET_Y:16,overSource:function(_1){ +if(this.avatar){ +this.target=(_1&&_1.targetState!="Disabled")?_1:null; +this.canDropFlag=Boolean(this.target); +this.avatar.update(); +} +dojo.publish("/dnd/source/over",[_1]); +},outSource:function(_2){ +if(this.avatar){ +if(this.target==_2){ +this.target=null; +this.canDropFlag=false; +this.avatar.update(); +dojo.publish("/dnd/source/over",[null]); +} +}else{ +dojo.publish("/dnd/source/over",[null]); +} +},startDrag:function(_3,_4,_5){ +this.source=_3; +this.nodes=_4; +this.copy=Boolean(_5); +this.avatar=this.makeAvatar(); +dojo.body().appendChild(this.avatar.node); +dojo.publish("/dnd/start",[_3,_4,this.copy]); +this.events=[dojo.connect(dojo.doc,"onmousemove",this,"onMouseMove"),dojo.connect(dojo.doc,"onmouseup",this,"onMouseUp"),dojo.connect(dojo.doc,"onkeydown",this,"onKeyDown"),dojo.connect(dojo.doc,"onkeyup",this,"onKeyUp"),dojo.connect(dojo.doc,"ondragstart",dojo.stopEvent),dojo.connect(dojo.body(),"onselectstart",dojo.stopEvent)]; +var c="dojoDnd"+(_5?"Copy":"Move"); +dojo.addClass(dojo.body(),c); +},canDrop:function(_6){ +var _7=Boolean(this.target&&_6); +if(this.canDropFlag!=_7){ +this.canDropFlag=_7; +this.avatar.update(); +} +},stopDrag:function(){ +dojo.removeClass(dojo.body(),"dojoDndCopy"); +dojo.removeClass(dojo.body(),"dojoDndMove"); +dojo.forEach(this.events,dojo.disconnect); +this.events=[]; +this.avatar.destroy(); +this.avatar=null; +this.source=this.target=null; +this.nodes=[]; +},makeAvatar:function(){ +return new dojo.dnd.Avatar(this); +},updateAvatar:function(){ +this.avatar.update(); +},onMouseMove:function(e){ +var a=this.avatar; +if(a){ +dojo.dnd.autoScrollNodes(e); +var s=a.node.style; +s.left=(e.pageX+this.OFFSET_X)+"px"; +s.top=(e.pageY+this.OFFSET_Y)+"px"; +var _8=Boolean(this.source.copyState(dojo.isCopyKey(e))); +if(this.copy!=_8){ +this._setCopyStatus(_8); +} +} +},onMouseUp:function(e){ +if(this.avatar){ +if(this.target&&this.canDropFlag){ +var _9=Boolean(this.source.copyState(dojo.isCopyKey(e))),_a=[this.source,this.nodes,_9,this.target,e]; +dojo.publish("/dnd/drop/before",_a); +dojo.publish("/dnd/drop",_a); +}else{ +dojo.publish("/dnd/cancel"); +} +this.stopDrag(); +} +},onKeyDown:function(e){ +if(this.avatar){ +switch(e.keyCode){ +case dojo.keys.CTRL: +var _b=Boolean(this.source.copyState(true)); +if(this.copy!=_b){ +this._setCopyStatus(_b); +} +break; +case dojo.keys.ESCAPE: +dojo.publish("/dnd/cancel"); +this.stopDrag(); +break; +} +} +},onKeyUp:function(e){ +if(this.avatar&&e.keyCode==dojo.keys.CTRL){ +var _c=Boolean(this.source.copyState(false)); +if(this.copy!=_c){ +this._setCopyStatus(_c); +} +} +},_setCopyStatus:function(_d){ +this.copy=_d; +this.source._markDndStatus(this.copy); +this.updateAvatar(); +dojo.removeClass(dojo.body(),"dojoDnd"+(this.copy?"Move":"Copy")); +dojo.addClass(dojo.body(),"dojoDnd"+(this.copy?"Copy":"Move")); +}}); +dojo.dnd._manager=null; +dojo.dnd.manager=function(){ +if(!dojo.dnd._manager){ +dojo.dnd._manager=new dojo.dnd.Manager(); +} +return dojo.dnd._manager; +}; +} diff --git a/lib/dojo/dnd/Moveable.js b/lib/dojo/dnd/Moveable.js new file mode 100644 index 000000000..17d8d9200 --- /dev/null +++ b/lib/dojo/dnd/Moveable.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["dojo.dnd.Moveable"]){ +dojo._hasResource["dojo.dnd.Moveable"]=true; +dojo.provide("dojo.dnd.Moveable"); +dojo.require("dojo.dnd.Mover"); +dojo.declare("dojo.dnd.Moveable",null,{handle:"",delay:0,skip:false,constructor:function(_1,_2){ +this.node=dojo.byId(_1); +if(!_2){ +_2={}; +} +this.handle=_2.handle?dojo.byId(_2.handle):null; +if(!this.handle){ +this.handle=this.node; +} +this.delay=_2.delay>0?_2.delay:0; +this.skip=_2.skip; +this.mover=_2.mover?_2.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(_3,_4){ +return new dojo.dnd.Moveable(_4,_3); +},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(_5){ +dojo.publish("/dnd/move/start",[_5]); +dojo.addClass(dojo.body(),"dojoMove"); +dojo.addClass(this.node,"dojoMoveItem"); +},onMoveStop:function(_6){ +dojo.publish("/dnd/move/stop",[_6]); +dojo.removeClass(dojo.body(),"dojoMove"); +dojo.removeClass(this.node,"dojoMoveItem"); +},onFirstMove:function(_7,e){ +},onMove:function(_8,_9,e){ +this.onMoving(_8,_9); +var s=_8.node.style; +s.left=_9.l+"px"; +s.top=_9.t+"px"; +this.onMoved(_8,_9); +},onMoving:function(_a,_b){ +},onMoved:function(_c,_d){ +}}); +} diff --git a/lib/dojo/dnd/Mover.js b/lib/dojo/dnd/Mover.js new file mode 100644 index 000000000..6ea793efc --- /dev/null +++ b/lib/dojo/dnd/Mover.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["dojo.dnd.Mover"]){ +dojo._hasResource["dojo.dnd.Mover"]=true; +dojo.provide("dojo.dnd.Mover"); +dojo.require("dojo.dnd.common"); +dojo.require("dojo.dnd.autoscroll"); +dojo.declare("dojo.dnd.Mover",null,{constructor:function(_1,e,_2){ +this.node=dojo.byId(_1); +this.marginBox={l:e.pageX,t:e.pageY}; +this.mouseButton=e.button; +var h=this.host=_2,d=_1.ownerDocument,_3=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),_3]; +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; +}}); +} diff --git a/lib/dojo/dnd/Selector.js b/lib/dojo/dnd/Selector.js new file mode 100644 index 000000000..95c1bff47 --- /dev/null +++ b/lib/dojo/dnd/Selector.js @@ -0,0 +1,239 @@ +/* + 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["dojo.dnd.Selector"]){ +dojo._hasResource["dojo.dnd.Selector"]=true; +dojo.provide("dojo.dnd.Selector"); +dojo.require("dojo.dnd.common"); +dojo.require("dojo.dnd.Container"); +dojo.declare("dojo.dnd.Selector",dojo.dnd.Container,{constructor:function(_1,_2){ +if(!_2){ +_2={}; +} +this.singular=_2.singular; +this.autoSync=_2.autoSync; +this.selection={}; +this.anchor=null; +this.simpleSelection=false; +this.events.push(dojo.connect(this.node,"onmousedown",this,"onMouseDown"),dojo.connect(this.node,"onmouseup",this,"onMouseUp")); +},singular:false,getSelectedNodes:function(){ +var t=new dojo.NodeList(); +var e=dojo.dnd._empty; +for(var i in this.selection){ +if(i in e){ +continue; +} +t.push(dojo.byId(i)); +} +return t; +},selectNone:function(){ +return this._removeSelection()._removeAnchor(); +},selectAll:function(){ +this.forInItems(function(_3,id){ +this._addItemClass(dojo.byId(id),"Selected"); +this.selection[id]=1; +},this); +return this._removeAnchor(); +},deleteSelectedNodes:function(){ +var e=dojo.dnd._empty; +for(var i in this.selection){ +if(i in e){ +continue; +} +var n=dojo.byId(i); +this.delItem(i); +dojo.destroy(n); +} +this.anchor=null; +this.selection={}; +return this; +},forInSelectedItems:function(f,o){ +o=o||dojo.global; +var s=this.selection,e=dojo.dnd._empty; +for(var i in s){ +if(i in e){ +continue; +} +f.call(o,this.getItem(i),i,this); +} +},sync:function(){ +dojo.dnd.Selector.superclass.sync.call(this); +if(this.anchor){ +if(!this.getItem(this.anchor.id)){ +this.anchor=null; +} +} +var t=[],e=dojo.dnd._empty; +for(var i in this.selection){ +if(i in e){ +continue; +} +if(!this.getItem(i)){ +t.push(i); +} +} +dojo.forEach(t,function(i){ +delete this.selection[i]; +},this); +return this; +},insertNodes:function(_4,_5,_6,_7){ +var _8=this._normalizedCreator; +this._normalizedCreator=function(_9,_a){ +var t=_8.call(this,_9,_a); +if(_4){ +if(!this.anchor){ +this.anchor=t.node; +this._removeItemClass(t.node,"Selected"); +this._addItemClass(this.anchor,"Anchor"); +}else{ +if(this.anchor!=t.node){ +this._removeItemClass(t.node,"Anchor"); +this._addItemClass(t.node,"Selected"); +} +} +this.selection[t.node.id]=1; +}else{ +this._removeItemClass(t.node,"Selected"); +this._removeItemClass(t.node,"Anchor"); +} +return t; +}; +dojo.dnd.Selector.superclass.insertNodes.call(this,_5,_6,_7); +this._normalizedCreator=_8; +return this; +},destroy:function(){ +dojo.dnd.Selector.superclass.destroy.call(this); +this.selection=this.anchor=null; +},markupFactory:function(_b,_c){ +_b._skipStartup=true; +return new dojo.dnd.Selector(_c,_b); +},onMouseDown:function(e){ +if(this.autoSync){ +this.sync(); +} +if(!this.current){ +return; +} +if(!this.singular&&!dojo.isCopyKey(e)&&!e.shiftKey&&(this.current.id in this.selection)){ +this.simpleSelection=true; +if(e.button===dojo.mouseButtons.LEFT){ +dojo.stopEvent(e); +} +return; +} +if(!this.singular&&e.shiftKey){ +if(!dojo.isCopyKey(e)){ +this._removeSelection(); +} +var c=this.getAllNodes(); +if(c.length){ +if(!this.anchor){ +this.anchor=c[0]; +this._addItemClass(this.anchor,"Anchor"); +} +this.selection[this.anchor.id]=1; +if(this.anchor!=this.current){ +var i=0; +for(;i<c.length;++i){ +var _d=c[i]; +if(_d==this.anchor||_d==this.current){ +break; +} +} +for(++i;i<c.length;++i){ +var _d=c[i]; +if(_d==this.anchor||_d==this.current){ +break; +} +this._addItemClass(_d,"Selected"); +this.selection[_d.id]=1; +} +this._addItemClass(this.current,"Selected"); +this.selection[this.current.id]=1; +} +} +}else{ +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]=1; +} +}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]=1; +} +} +}else{ +if(!(this.current.id in this.selection)){ +this.selectNone(); +this.anchor=this.current; +this._addItemClass(this.current,"Anchor"); +this.selection[this.current.id]=1; +} +} +} +} +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]=1; +} +},onMouseMove:function(e){ +this.simpleSelection=false; +},onOverEvent:function(){ +this.onmousemoveEvent=dojo.connect(this.node,"onmousemove",this,"onMouseMove"); +},onOutEvent:function(){ +dojo.disconnect(this.onmousemoveEvent); +delete this.onmousemoveEvent; +},_removeSelection:function(){ +var e=dojo.dnd._empty; +for(var i in this.selection){ +if(i in e){ +continue; +} +var _e=dojo.byId(i); +if(_e){ +this._removeItemClass(_e,"Selected"); +} +} +this.selection={}; +return this; +},_removeAnchor:function(){ +if(this.anchor){ +this._removeItemClass(this.anchor,"Anchor"); +this.anchor=null; +} +return this; +}}); +} diff --git a/lib/dojo/dnd/Source.js b/lib/dojo/dnd/Source.js new file mode 100644 index 000000000..fb05eb048 --- /dev/null +++ b/lib/dojo/dnd/Source.js @@ -0,0 +1,298 @@ +/* + 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["dojo.dnd.Source"]){ +dojo._hasResource["dojo.dnd.Source"]=true; +dojo.provide("dojo.dnd.Source"); +dojo.require("dojo.dnd.Selector"); +dojo.require("dojo.dnd.Manager"); +dojo.declare("dojo.dnd.Source",dojo.dnd.Selector,{isSource:true,horizontal:false,copyOnly:false,selfCopy:false,selfAccept:true,skipForm:false,withHandles:false,autoSync:false,delay:0,accept:["text"],generateText:true,constructor:function(_1,_2){ +dojo.mixin(this,dojo.mixin({},_2)); +var _3=this.accept; +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.before=true; +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"); +} +if(this.horizontal){ +dojo.addClass(this.node,"dojoDndHorizontal"); +} +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){ +if(this==_4){ +return !this.copyOnly||this.selfAccept; +} +for(var i=0;i<_5.length;++i){ +var _6=_4.getItem(_5[i].id).type; +var _7=false; +for(var j=0;j<_6.length;++j){ +if(_6[j] in this.accept){ +_7=true; +break; +} +} +if(!_7){ +return false; +} +} +return true; +},copyState:function(_8,_9){ +if(_8){ +return true; +} +if(arguments.length<2){ +_9=this==dojo.dnd.manager().target; +} +if(_9){ +if(this.copyOnly){ +return this.selfCopy; +} +}else{ +return this.copyOnly; +} +return false; +},destroy:function(){ +dojo.dnd.Source.superclass.destroy.call(this); +dojo.forEach(this.topics,dojo.unsubscribe); +this.targetAnchor=null; +},markupFactory:function(_a,_b){ +_a._skipStartup=true; +return new dojo.dnd.Source(_b,_a); +},onMouseMove:function(e){ +if(this.isDragging&&this.targetState=="Disabled"){ +return; +} +dojo.dnd.Source.superclass.onMouseMove.call(this,e); +var m=dojo.dnd.manager(); +if(!this.isDragging){ +if(this.mouseDown&&this.isSource&&(Math.abs(e.pageX-this._lastX)>this.delay||Math.abs(e.pageY-this._lastY)>this.delay)){ +var _c=this.getSelectedNodes(); +if(_c.length){ +m.startDrag(this,_c,this.copyState(dojo.isCopyKey(e),true)); +} +} +} +if(this.isDragging){ +var _d=false; +if(this.current){ +if(!this.targetBox||this.targetAnchor!=this.current){ +this.targetBox=dojo.position(this.current,true); +} +if(this.horizontal){ +_d=(e.pageX-this.targetBox.x)<(this.targetBox.w/2); +}else{ +_d=(e.pageY-this.targetBox.y)<(this.targetBox.h/2); +} +} +if(this.current!=this.targetAnchor||_d!=this.before){ +this._markTargetAnchor(_d); +m.canDrop(!this.current||m.source!=this||!(this.current.id in this.selection)); +} +} +},onMouseDown:function(e){ +if(!this.mouseDown&&this._legalMouseDown(e)&&(!this.skipForm||!dojo.dnd.isFormElement(e))){ +this.mouseDown=true; +this._lastX=e.pageX; +this._lastY=e.pageY; +dojo.dnd.Source.superclass.onMouseDown.call(this,e); +} +},onMouseUp:function(e){ +if(this.mouseDown){ +this.mouseDown=false; +dojo.dnd.Source.superclass.onMouseUp.call(this,e); +} +},onDndSourceOver:function(_e){ +if(this!=_e){ +this.mouseDown=false; +if(this.targetAnchor){ +this._unmarkTargetAnchor(); +} +}else{ +if(this.isDragging){ +var m=dojo.dnd.manager(); +m.canDrop(this.targetState!="Disabled"&&(!this.current||m.source!=this||!(this.current.id in this.selection))); +} +} +},onDndStart:function(_f,_10,_11){ +if(this.autoSync){ +this.sync(); +} +if(this.isSource){ +this._changeState("Source",this==_f?(_11?"Copied":"Moved"):""); +} +var _12=this.accept&&this.checkAcceptance(_f,_10); +this._changeState("Target",_12?"":"Disabled"); +if(this==_f){ +dojo.dnd.manager().overSource(this); +} +this.isDragging=true; +},onDndDrop:function(_13,_14,_15,_16){ +if(this==_16){ +this.onDrop(_13,_14,_15); +} +this.onDndCancel(); +},onDndCancel:function(){ +if(this.targetAnchor){ +this._unmarkTargetAnchor(); +this.targetAnchor=null; +} +this.before=true; +this.isDragging=false; +this.mouseDown=false; +this._changeState("Source",""); +this._changeState("Target",""); +},onDrop:function(_17,_18,_19){ +if(this!=_17){ +this.onDropExternal(_17,_18,_19); +}else{ +this.onDropInternal(_18,_19); +} +},onDropExternal:function(_1a,_1b,_1c){ +var _1d=this._normalizedCreator; +if(this.creator){ +this._normalizedCreator=function(_1e,_1f){ +return _1d.call(this,_1a.getItem(_1e.id).data,_1f); +}; +}else{ +if(_1c){ +this._normalizedCreator=function(_20,_21){ +var t=_1a.getItem(_20.id); +var n=_20.cloneNode(true); +n.id=dojo.dnd.getUniqueId(); +return {node:n,data:t.data,type:t.type}; +}; +}else{ +this._normalizedCreator=function(_22,_23){ +var t=_1a.getItem(_22.id); +_1a.delItem(_22.id); +return {node:_22,data:t.data,type:t.type}; +}; +} +} +this.selectNone(); +if(!_1c&&!this.creator){ +_1a.selectNone(); +} +this.insertNodes(true,_1b,this.before,this.current); +if(!_1c&&this.creator){ +_1a.deleteSelectedNodes(); +} +this._normalizedCreator=_1d; +},onDropInternal:function(_24,_25){ +var _26=this._normalizedCreator; +if(this.current&&this.current.id in this.selection){ +return; +} +if(_25){ +if(this.creator){ +this._normalizedCreator=function(_27,_28){ +return _26.call(this,this.getItem(_27.id).data,_28); +}; +}else{ +this._normalizedCreator=function(_29,_2a){ +var t=this.getItem(_29.id); +var n=_29.cloneNode(true); +n.id=dojo.dnd.getUniqueId(); +return {node:n,data:t.data,type:t.type}; +}; +} +}else{ +if(!this.current){ +return; +} +this._normalizedCreator=function(_2b,_2c){ +var t=this.getItem(_2b.id); +return {node:_2b,data:t.data,type:t.type}; +}; +} +this._removeSelection(); +this.insertNodes(true,_24,this.before,this.current); +this._normalizedCreator=_26; +},onDraggingOver:function(){ +},onDraggingOut:function(){ +},onOverEvent:function(){ +dojo.dnd.Source.superclass.onOverEvent.call(this); +dojo.dnd.manager().overSource(this); +if(this.isDragging&&this.targetState!="Disabled"){ +this.onDraggingOver(); +} +},onOutEvent:function(){ +dojo.dnd.Source.superclass.onOutEvent.call(this); +dojo.dnd.manager().outSource(this); +if(this.isDragging&&this.targetState!="Disabled"){ +this.onDraggingOut(); +} +},_markTargetAnchor:function(_2d){ +if(this.current==this.targetAnchor&&this.before==_2d){ +return; +} +if(this.targetAnchor){ +this._removeItemClass(this.targetAnchor,this.before?"Before":"After"); +} +this.targetAnchor=this.current; +this.targetBox=null; +this.before=_2d; +if(this.targetAnchor){ +this._addItemClass(this.targetAnchor,this.before?"Before":"After"); +} +},_unmarkTargetAnchor:function(){ +if(!this.targetAnchor){ +return; +} +this._removeItemClass(this.targetAnchor,this.before?"Before":"After"); +this.targetAnchor=null; +this.targetBox=null; +this.before=true; +},_markDndStatus:function(_2e){ +this._changeState("Source",_2e?"Copied":"Moved"); +},_legalMouseDown:function(e){ +if(!dojo.mouseButtons.isLeft(e)){ +return false; +} +if(!this.withHandles){ +return true; +} +for(var _2f=e.target;_2f&&_2f!==this.node;_2f=_2f.parentNode){ +if(dojo.hasClass(_2f,"dojoDndHandle")){ +return true; +} +if(dojo.hasClass(_2f,"dojoDndItem")||dojo.hasClass(_2f,"dojoDndIgnore")){ +break; +} +} +return false; +}}); +dojo.declare("dojo.dnd.Target",dojo.dnd.Source,{constructor:function(_30,_31){ +this.isSource=false; +dojo.removeClass(this.node,"dojoDndSource"); +},markupFactory:function(_32,_33){ +_32._skipStartup=true; +return new dojo.dnd.Target(_33,_32); +}}); +dojo.declare("dojo.dnd.AutoSource",dojo.dnd.Source,{constructor:function(_34,_35){ +this.autoSync=true; +},markupFactory:function(_36,_37){ +_36._skipStartup=true; +return new dojo.dnd.AutoSource(_37,_36); +}}); +} diff --git a/lib/dojo/dnd/TimedMoveable.js b/lib/dojo/dnd/TimedMoveable.js new file mode 100644 index 000000000..05609a379 --- /dev/null +++ b/lib/dojo/dnd/TimedMoveable.js @@ -0,0 +1,40 @@ +/* + 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["dojo.dnd.TimedMoveable"]){ +dojo._hasResource["dojo.dnd.TimedMoveable"]=true; +dojo.provide("dojo.dnd.TimedMoveable"); +dojo.require("dojo.dnd.Moveable"); +(function(){ +var _1=dojo.dnd.Moveable.prototype.onMove; +dojo.declare("dojo.dnd.TimedMoveable",dojo.dnd.Moveable,{timeout:40,constructor:function(_2,_3){ +if(!_3){ +_3={}; +} +if(_3.timeout&&typeof _3.timeout=="number"&&_3.timeout>=0){ +this.timeout=_3.timeout; +} +},markupFactory:function(_4,_5){ +return new dojo.dnd.TimedMoveable(_5,_4); +},onMoveStop:function(_6){ +if(_6._timer){ +clearTimeout(_6._timer); +_1.call(this,_6,_6._leftTop); +} +dojo.dnd.Moveable.prototype.onMoveStop.apply(this,arguments); +},onMove:function(_7,_8){ +_7._leftTop=_8; +if(!_7._timer){ +var _9=this; +_7._timer=setTimeout(function(){ +_7._timer=null; +_1.call(_9,_7,_7._leftTop); +},this.timeout); +} +}}); +})(); +} diff --git a/lib/dojo/dnd/autoscroll.js b/lib/dojo/dnd/autoscroll.js new file mode 100644 index 000000000..27496c6cd --- /dev/null +++ b/lib/dojo/dnd/autoscroll.js @@ -0,0 +1,99 @@ +/* + 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["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 _1=n.scrollLeft,_2=n.scrollTop; +n.scrollLeft=n.scrollLeft+dx; +n.scrollTop=n.scrollTop+dy; +if(_1!=n.scrollLeft||_2!=n.scrollTop){ +return; +} +} +} +try{ +n=n.parentNode; +} +catch(x){ +n=null; +} +} +dojo.dnd.autoScroll(e); +}; +} diff --git a/lib/dojo/dnd/common.js b/lib/dojo/dnd/common.js new file mode 100644 index 000000000..d2d18f75a --- /dev/null +++ b/lib/dojo/dnd/common.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["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; +}; +} diff --git a/lib/dojo/dnd/move.js b/lib/dojo/dnd/move.js new file mode 100644 index 000000000..af7cd98dc --- /dev/null +++ b/lib/dojo/dnd/move.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["dojo.dnd.move"]){ +dojo._hasResource["dojo.dnd.move"]=true; +dojo.provide("dojo.dnd.move"); +dojo.require("dojo.dnd.Mover"); +dojo.require("dojo.dnd.Moveable"); +dojo.declare("dojo.dnd.move.constrainedMoveable",dojo.dnd.Moveable,{constraints:function(){ +},within:false,markupFactory:function(_1,_2){ +return new dojo.dnd.move.constrainedMoveable(_2,_1); +},constructor:function(_3,_4){ +if(!_4){ +_4={}; +} +this.constraints=_4.constraints; +this.within=_4.within; +},onFirstMove:function(_5){ +var c=this.constraintBox=this.constraints.call(this,_5); +c.r=c.l+c.w; +c.b=c.t+c.h; +if(this.within){ +var mb=dojo.marginBox(_5.node); +c.r-=mb.w; +c.b-=mb.h; +} +},onMove:function(_6,_7){ +var c=this.constraintBox,s=_6.node.style; +s.left=(_7.l<c.l?c.l:c.r<_7.l?c.r:_7.l)+"px"; +s.top=(_7.t<c.t?c.t:c.b<_7.t?c.b:_7.t)+"px"; +}}); +dojo.declare("dojo.dnd.move.boxConstrainedMoveable",dojo.dnd.move.constrainedMoveable,{box:{},markupFactory:function(_8,_9){ +return new dojo.dnd.move.boxConstrainedMoveable(_9,_8); +},constructor:function(_a,_b){ +var _c=_b&&_b.box; +this.constraints=function(){ +return _c; +}; +}}); +dojo.declare("dojo.dnd.move.parentConstrainedMoveable",dojo.dnd.move.constrainedMoveable,{area:"content",markupFactory:function(_d,_e){ +return new dojo.dnd.move.parentConstrainedMoveable(_e,_d); +},constructor:function(_f,_10){ +var _11=_10&&_10.area; +this.constraints=function(){ +var n=this.node.parentNode,s=dojo.getComputedStyle(n),mb=dojo._getMarginBox(n,s); +if(_11=="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(_11=="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(_11=="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,_12){ +dojo.deprecated("dojo.dnd.move.constrainedMover, use dojo.dnd.move.constrainedMoveable instead"); +var _13=function(_14,e,_15){ +dojo.dnd.Mover.call(this,_14,e,_15); +}; +dojo.extend(_13,dojo.dnd.Mover.prototype); +dojo.extend(_13,{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(_12){ +var mb=dojo.marginBox(this.node); +c.r-=mb.w; +c.b-=mb.h; +} +}}); +return _13; +}; +dojo.dnd.move.boxConstrainedMover=function(box,_16){ +dojo.deprecated("dojo.dnd.move.boxConstrainedMover, use dojo.dnd.move.boxConstrainedMoveable instead"); +return dojo.dnd.move.constrainedMover(function(){ +return box; +},_16); +}; +dojo.dnd.move.parentConstrainedMover=function(_17,_18){ +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(_17=="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(_17=="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(_17=="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,_18); +}; +dojo.dnd.constrainedMover=dojo.dnd.move.constrainedMover; +dojo.dnd.boxConstrainedMover=dojo.dnd.move.boxConstrainedMover; +dojo.dnd.parentConstrainedMover=dojo.dnd.move.parentConstrainedMover; +} diff --git a/lib/dojo/dojo.js b/lib/dojo/dojo.js new file mode 100644 index 000000000..665870c62 --- /dev/null +++ b/lib/dojo/dojo.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 +*/ + +(function(){var _1=null;if((_1||(typeof djConfig!="undefined"&&djConfig.scopeMap))&&(typeof window!="undefined")){var _2="",_3="",_4="",_5={},_6={};_1=_1||djConfig.scopeMap;for(var i=0;i<_1.length;i++){var _7=_1[i];_2+="var "+_7[0]+" = {}; "+_7[1]+" = "+_7[0]+";"+_7[1]+"._scopeName = '"+_7[1]+"';";_3+=(i==0?"":",")+_7[0];_4+=(i==0?"":",")+_7[1];_5[_7[0]]=_7[1];_6[_7[1]]=_7[0];}eval(_2+"dojo._scopeArgs = ["+_4+"];");dojo._scopePrefixArgs=_3;dojo._scopePrefix="(function("+_3+"){";dojo._scopeSuffix="})("+_4+")";dojo._scopeMap=_5;dojo._scopeMapRev=_6;}(function(){if(typeof this["loadFirebugConsole"]=="function"){this["loadFirebugConsole"]();}else{this.console=this.console||{};var cn=["assert","count","debug","dir","dirxml","error","group","groupEnd","info","profile","profileEnd","time","timeEnd","trace","warn","log"];var i=0,tn;while((tn=cn[i++])){if(!console[tn]){(function(){var _8=tn+"";console[_8]=("log" in console)?function(){var a=Array.apply({},arguments);a.unshift(_8+":");console["log"](a.join(" "));}:function(){};console[_8]._fake=true;})();}}}if(typeof dojo=="undefined"){dojo={_scopeName:"dojo",_scopePrefix:"",_scopePrefixArgs:"",_scopeSuffix:"",_scopeMap:{},_scopeMapRev:{}};}var d=dojo;if(typeof dijit=="undefined"){dijit={_scopeName:"dijit"};}if(typeof dojox=="undefined"){dojox={_scopeName:"dojox"};}if(!d._scopeArgs){d._scopeArgs=[dojo,dijit,dojox];}d.global=this;d.config={isDebug:false,debugAtAllCosts:false};if(typeof djConfig!="undefined"){for(var _9 in djConfig){d.config[_9]=djConfig[_9];}}dojo.locale=d.config.locale;var _a="$Rev: 22487 $".match(/\d+/);dojo.version={major:1,minor:5,patch:0,flag:"",revision:_a?+_a[0]:NaN,toString:function(){with(d.version){return major+"."+minor+"."+patch+flag+" ("+revision+")";}}};if(typeof OpenAjax!="undefined"){OpenAjax.hub.registerLibrary(dojo._scopeName,"http://dojotoolkit.org",d.version.toString());}var _b,_c,_d={};for(var i in {toString:1}){_b=[];break;}dojo._extraNames=_b=_b||["hasOwnProperty","valueOf","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","constructor"];_c=_b.length;dojo._mixin=function(_e,_f){var _10,s,i;for(_10 in _f){s=_f[_10];if(!(_10 in _e)||(_e[_10]!==s&&(!(_10 in _d)||_d[_10]!==s))){_e[_10]=s;}}if(_c&&_f){for(i=0;i<_c;++i){_10=_b[i];s=_f[_10];if(!(_10 in _e)||(_e[_10]!==s&&(!(_10 in _d)||_d[_10]!==s))){_e[_10]=s;}}}return _e;};dojo.mixin=function(obj,_11){if(!obj){obj={};}for(var i=1,l=arguments.length;i<l;i++){d._mixin(obj,arguments[i]);}return obj;};dojo._getProp=function(_12,_13,_14){var obj=_14||d.global;for(var i=0,p;obj&&(p=_12[i]);i++){if(i==0&&d._scopeMap[p]){p=d._scopeMap[p];}obj=(p in obj?obj[p]:(_13?obj[p]={}:undefined));}return obj;};dojo.setObject=function(_15,_16,_17){var _18=_15.split("."),p=_18.pop(),obj=d._getProp(_18,true,_17);return obj&&p?(obj[p]=_16):undefined;};dojo.getObject=function(_19,_1a,_1b){return d._getProp(_19.split("."),_1a,_1b);};dojo.exists=function(_1c,obj){return !!d.getObject(_1c,false,obj);};dojo["eval"]=function(_1d){return d.global.eval?d.global.eval(_1d):eval(_1d);};d.deprecated=d.experimental=function(){};})();(function(){var d=dojo;d.mixin(d,{_loadedModules:{},_inFlightCount:0,_hasResource:{},_modulePrefixes:{dojo:{name:"dojo",value:"."},doh:{name:"doh",value:"../util/doh"},tests:{name:"tests",value:"tests"}},_moduleHasPrefix:function(_1e){var mp=d._modulePrefixes;return !!(mp[_1e]&&mp[_1e].value);},_getModulePrefix:function(_1f){var mp=d._modulePrefixes;if(d._moduleHasPrefix(_1f)){return mp[_1f].value;}return _1f;},_loadedUrls:[],_postLoad:false,_loaders:[],_unloaders:[],_loadNotifying:false});dojo._loadPath=function(_20,_21,cb){var uri=((_20.charAt(0)=="/"||_20.match(/^\w+:/))?"":d.baseUrl)+_20;try{return !_21?d._loadUri(uri,cb):d._loadUriAndCheck(uri,_21,cb);}catch(e){console.error(e);return false;}};dojo._loadUri=function(uri,cb){if(d._loadedUrls[uri]){return true;}d._inFlightCount++;var _22=d._getText(uri,true);if(_22){d._loadedUrls[uri]=true;d._loadedUrls.push(uri);if(cb){_22="("+_22+")";}else{_22=d._scopePrefix+_22+d._scopeSuffix;}if(!d.isIE){_22+="\r\n//@ sourceURL="+uri;}var _23=d["eval"](_22);if(cb){cb(_23);}}if(--d._inFlightCount==0&&d._postLoad&&d._loaders.length){setTimeout(function(){if(d._inFlightCount==0){d._callLoaded();}},0);}return !!_22;};dojo._loadUriAndCheck=function(uri,_24,cb){var ok=false;try{ok=d._loadUri(uri,cb);}catch(e){console.error("failed loading "+uri+" with error: "+e);}return !!(ok&&d._loadedModules[_24]);};dojo.loaded=function(){d._loadNotifying=true;d._postLoad=true;var mll=d._loaders;d._loaders=[];for(var x=0;x<mll.length;x++){mll[x]();}d._loadNotifying=false;if(d._postLoad&&d._inFlightCount==0&&mll.length){d._callLoaded();}};dojo.unloaded=function(){var mll=d._unloaders;while(mll.length){(mll.pop())();}};d._onto=function(arr,obj,fn){if(!fn){arr.push(obj);}else{if(fn){var _25=(typeof fn=="string")?obj[fn]:fn;arr.push(function(){_25.call(obj);});}}};dojo.ready=dojo.addOnLoad=function(obj,_26){d._onto(d._loaders,obj,_26);if(d._postLoad&&d._inFlightCount==0&&!d._loadNotifying){d._callLoaded();}};var dca=d.config.addOnLoad;if(dca){d.addOnLoad[(dca instanceof Array?"apply":"call")](d,dca);}dojo._modulesLoaded=function(){if(d._postLoad){return;}if(d._inFlightCount>0){console.warn("files still in flight!");return;}d._callLoaded();};dojo._callLoaded=function(){if(typeof setTimeout=="object"||(d.config.useXDomain&&d.isOpera)){setTimeout(d.isAIR?function(){d.loaded();}:d._scopeName+".loaded();",0);}else{d.loaded();}};dojo._getModuleSymbols=function(_27){var _28=_27.split(".");for(var i=_28.length;i>0;i--){var _29=_28.slice(0,i).join(".");if(i==1&&!d._moduleHasPrefix(_29)){_28[0]="../"+_28[0];}else{var _2a=d._getModulePrefix(_29);if(_2a!=_29){_28.splice(0,i,_2a);break;}}}return _28;};dojo._global_omit_module_check=false;dojo.loadInit=function(_2b){_2b();};dojo._loadModule=dojo.require=function(_2c,_2d){_2d=d._global_omit_module_check||_2d;var _2e=d._loadedModules[_2c];if(_2e){return _2e;}var _2f=d._getModuleSymbols(_2c).join("/")+".js";var _30=!_2d?_2c:null;var ok=d._loadPath(_2f,_30);if(!ok&&!_2d){throw new Error("Could not load '"+_2c+"'; last tried '"+_2f+"'");}if(!_2d&&!d._isXDomain){_2e=d._loadedModules[_2c];if(!_2e){throw new Error("symbol '"+_2c+"' is not defined after loading '"+_2f+"'");}}return _2e;};dojo.provide=function(_31){_31=_31+"";return (d._loadedModules[_31]=d.getObject(_31,true));};dojo.platformRequire=function(_32){var _33=_32.common||[];var _34=_33.concat(_32[d._name]||_32["default"]||[]);for(var x=0;x<_34.length;x++){var _35=_34[x];if(_35.constructor==Array){d._loadModule.apply(d,_35);}else{d._loadModule(_35);}}};dojo.requireIf=function(_36,_37){if(_36===true){var _38=[];for(var i=1;i<arguments.length;i++){_38.push(arguments[i]);}d.require.apply(d,_38);}};dojo.requireAfterIf=d.requireIf;dojo.registerModulePath=function(_39,_3a){d._modulePrefixes[_39]={name:_39,value:_3a};};dojo.requireLocalization=function(_3b,_3c,_3d,_3e){d.require("dojo.i18n");d.i18n._requireLocalization.apply(d.hostenv,arguments);};var ore=new RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$"),ire=new RegExp("^((([^\\[:]+):)?([^@]+)@)?(\\[([^\\]]+)\\]|([^\\[:]*))(:([0-9]+))?$");dojo._Url=function(){var n=null,_3f=arguments,uri=[_3f[0]];for(var i=1;i<_3f.length;i++){if(!_3f[i]){continue;}var _40=new d._Url(_3f[i]+""),_41=new d._Url(uri[0]+"");if(_40.path==""&&!_40.scheme&&!_40.authority&&!_40.query){if(_40.fragment!=n){_41.fragment=_40.fragment;}_40=_41;}else{if(!_40.scheme){_40.scheme=_41.scheme;if(!_40.authority){_40.authority=_41.authority;if(_40.path.charAt(0)!="/"){var _42=_41.path.substring(0,_41.path.lastIndexOf("/")+1)+_40.path;var _43=_42.split("/");for(var j=0;j<_43.length;j++){if(_43[j]=="."){if(j==_43.length-1){_43[j]="";}else{_43.splice(j,1);j--;}}else{if(j>0&&!(j==1&&_43[0]=="")&&_43[j]==".."&&_43[j-1]!=".."){if(j==(_43.length-1)){_43.splice(j,1);_43[j-1]="";}else{_43.splice(j-1,2);j-=2;}}}}_40.path=_43.join("/");}}}}uri=[];if(_40.scheme){uri.push(_40.scheme,":");}if(_40.authority){uri.push("//",_40.authority);}uri.push(_40.path);if(_40.query){uri.push("?",_40.query);}if(_40.fragment){uri.push("#",_40.fragment);}}this.uri=uri.join("");var r=this.uri.match(ore);this.scheme=r[2]||(r[1]?"":n);this.authority=r[4]||(r[3]?"":n);this.path=r[5];this.query=r[7]||(r[6]?"":n);this.fragment=r[9]||(r[8]?"":n);if(this.authority!=n){r=this.authority.match(ire);this.user=r[3]||n;this.password=r[4]||n;this.host=r[6]||r[7];this.port=r[9]||n;}};dojo._Url.prototype.toString=function(){return this.uri;};dojo.moduleUrl=function(_44,url){var loc=d._getModuleSymbols(_44).join("/");if(!loc){return null;}if(loc.lastIndexOf("/")!=loc.length-1){loc+="/";}var _45=loc.indexOf(":");if(loc.charAt(0)!="/"&&(_45==-1||_45>loc.indexOf("/"))){loc=d.baseUrl+loc;}return new d._Url(loc,url);};})();if(typeof window!="undefined"){dojo.isBrowser=true;dojo._name="browser";(function(){var d=dojo;if(document&&document.getElementsByTagName){var _46=document.getElementsByTagName("script");var _47=/dojo(\.xd)?\.js(\W|$)/i;for(var i=0;i<_46.length;i++){var src=_46[i].getAttribute("src");if(!src){continue;}var m=src.match(_47);if(m){if(!d.config.baseUrl){d.config.baseUrl=src.substring(0,m.index);}var cfg=_46[i].getAttribute("djConfig");if(cfg){var _48=eval("({ "+cfg+" })");for(var x in _48){dojo.config[x]=_48[x];}}break;}}}d.baseUrl=d.config.baseUrl;var n=navigator;var dua=n.userAgent,dav=n.appVersion,tv=parseFloat(dav);if(dua.indexOf("Opera")>=0){d.isOpera=tv;}if(dua.indexOf("AdobeAIR")>=0){d.isAIR=1;}d.isKhtml=(dav.indexOf("Konqueror")>=0)?tv:0;d.isWebKit=parseFloat(dua.split("WebKit/")[1])||undefined;d.isChrome=parseFloat(dua.split("Chrome/")[1])||undefined;d.isMac=dav.indexOf("Macintosh")>=0;var _49=Math.max(dav.indexOf("WebKit"),dav.indexOf("Safari"),0);if(_49&&!dojo.isChrome){d.isSafari=parseFloat(dav.split("Version/")[1]);if(!d.isSafari||parseFloat(dav.substr(_49+7))<=419.3){d.isSafari=2;}}if(dua.indexOf("Gecko")>=0&&!d.isKhtml&&!d.isWebKit){d.isMozilla=d.isMoz=tv;}if(d.isMoz){d.isFF=parseFloat(dua.split("Firefox/")[1]||dua.split("Minefield/")[1])||undefined;}if(document.all&&!d.isOpera){d.isIE=parseFloat(dav.split("MSIE ")[1])||undefined;var _4a=document.documentMode;if(_4a&&_4a!=5&&Math.floor(d.isIE)!=_4a){d.isIE=_4a;}}if(dojo.isIE&&window.location.protocol==="file:"){dojo.config.ieForceActiveXXhr=true;}d.isQuirks=document.compatMode=="BackCompat";d.locale=dojo.config.locale||(d.isIE?n.userLanguage:n.language).toLowerCase();d._XMLHTTP_PROGIDS=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"];d._xhrObj=function(){var _4b,_4c;if(!dojo.isIE||!dojo.config.ieForceActiveXXhr){try{_4b=new XMLHttpRequest();}catch(e){}}if(!_4b){for(var i=0;i<3;++i){var _4d=d._XMLHTTP_PROGIDS[i];try{_4b=new ActiveXObject(_4d);}catch(e){_4c=e;}if(_4b){d._XMLHTTP_PROGIDS=[_4d];break;}}}if(!_4b){throw new Error("XMLHTTP not available: "+_4c);}return _4b;};d._isDocumentOk=function(_4e){var _4f=_4e.status||0,lp=location.protocol;return (_4f>=200&&_4f<300)||_4f==304||_4f==1223||(!_4f&&(lp=="file:"||lp=="chrome:"||lp=="chrome-extension:"||lp=="app:"));};var _50=window.location+"";var _51=document.getElementsByTagName("base");var _52=(_51&&_51.length>0);d._getText=function(uri,_53){var _54=d._xhrObj();if(!_52&&dojo._Url){uri=(new dojo._Url(_50,uri)).toString();}if(d.config.cacheBust){uri+="";uri+=(uri.indexOf("?")==-1?"?":"&")+String(d.config.cacheBust).replace(/\W+/g,"");}_54.open("GET",uri,false);try{_54.send(null);if(!d._isDocumentOk(_54)){var err=Error("Unable to load "+uri+" status:"+_54.status);err.status=_54.status;err.responseText=_54.responseText;throw err;}}catch(e){if(_53){return null;}throw e;}return _54.responseText;};var _55=window;var _56=function(_57,fp){var _58=_55.attachEvent||_55.addEventListener;_57=_55.attachEvent?_57:_57.substring(2);_58(_57,function(){fp.apply(_55,arguments);},false);};d._windowUnloaders=[];d.windowUnloaded=function(){var mll=d._windowUnloaders;while(mll.length){(mll.pop())();}d=null;};var _59=0;d.addOnWindowUnload=function(obj,_5a){d._onto(d._windowUnloaders,obj,_5a);if(!_59){_59=1;_56("onunload",d.windowUnloaded);}};var _5b=0;d.addOnUnload=function(obj,_5c){d._onto(d._unloaders,obj,_5c);if(!_5b){_5b=1;_56("onbeforeunload",dojo.unloaded);}};})();dojo._initFired=false;dojo._loadInit=function(e){if(dojo._scrollIntervalId){clearInterval(dojo._scrollIntervalId);dojo._scrollIntervalId=0;}if(!dojo._initFired){dojo._initFired=true;if(!dojo.config.afterOnLoad&&window.detachEvent){window.detachEvent("onload",dojo._loadInit);}if(dojo._inFlightCount==0){dojo._modulesLoaded();}}};if(!dojo.config.afterOnLoad){if(document.addEventListener){document.addEventListener("DOMContentLoaded",dojo._loadInit,false);window.addEventListener("load",dojo._loadInit,false);}else{if(window.attachEvent){window.attachEvent("onload",dojo._loadInit);if(!dojo.config.skipIeDomLoaded&&self===self.top){dojo._scrollIntervalId=setInterval(function(){try{if(document.body){document.documentElement.doScroll("left");dojo._loadInit();}}catch(e){}},30);}}}}if(dojo.isIE){try{(function(){document.namespaces.add("v","urn:schemas-microsoft-com:vml");var _5d=["*","group","roundrect","oval","shape","rect","imagedata","path","textpath","text"],i=0,l=1,s=document.createStyleSheet();if(dojo.isIE>=8){i=1;l=_5d.length;}for(;i<l;++i){s.addRule("v\\:"+_5d[i],"behavior:url(#default#VML); display:inline-block");}})();}catch(e){}}}(function(){var mp=dojo.config["modulePaths"];if(mp){for(var _5e in mp){dojo.registerModulePath(_5e,mp[_5e]);}}})();if(dojo.config.isDebug){dojo.require("dojo._firebug.firebug");}if(dojo.config.debugAtAllCosts){dojo.config.useXDomain=true;dojo.require("dojo._base._loader.loader_xd");dojo.require("dojo._base._loader.loader_debug");dojo.require("dojo.i18n");}if(!dojo._hasResource["dojo._base.lang"]){dojo._hasResource["dojo._base.lang"]=true;dojo.provide("dojo._base.lang");(function(){var d=dojo,_5f=Object.prototype.toString;dojo.isString=function(it){return (typeof it=="string"||it instanceof String);};dojo.isArray=function(it){return it&&(it instanceof Array||typeof it=="array");};dojo.isFunction=function(it){return _5f.call(it)==="[object Function]";};dojo.isObject=function(it){return it!==undefined&&(it===null||typeof it=="object"||d.isArray(it)||d.isFunction(it));};dojo.isArrayLike=function(it){return it&&it!==undefined&&!d.isString(it)&&!d.isFunction(it)&&!(it.tagName&&it.tagName.toLowerCase()=="form")&&(d.isArray(it)||isFinite(it.length));};dojo.isAlien=function(it){return it&&!d.isFunction(it)&&/\{\s*\[native code\]\s*\}/.test(String(it));};dojo.extend=function(_60,_61){for(var i=1,l=arguments.length;i<l;i++){d._mixin(_60.prototype,arguments[i]);}return _60;};dojo._hitchArgs=function(_62,_63){var pre=d._toArray(arguments,2);var _64=d.isString(_63);return function(){var _65=d._toArray(arguments);var f=_64?(_62||d.global)[_63]:_63;return f&&f.apply(_62||this,pre.concat(_65));};};dojo.hitch=function(_66,_67){if(arguments.length>2){return d._hitchArgs.apply(d,arguments);}if(!_67){_67=_66;_66=null;}if(d.isString(_67)){_66=_66||d.global;if(!_66[_67]){throw (["dojo.hitch: scope[\"",_67,"\"] is null (scope=\"",_66,"\")"].join(""));}return function(){return _66[_67].apply(_66,arguments||[]);};}return !_66?_67:function(){return _67.apply(_66,arguments||[]);};};dojo.delegate=dojo._delegate=(function(){function TMP(){};return function(obj,_68){TMP.prototype=obj;var tmp=new TMP();TMP.prototype=null;if(_68){d._mixin(tmp,_68);}return tmp;};})();var _69=function(obj,_6a,_6b){return (_6b||[]).concat(Array.prototype.slice.call(obj,_6a||0));};var _6c=function(obj,_6d,_6e){var arr=_6e||[];for(var x=_6d||0;x<obj.length;x++){arr.push(obj[x]);}return arr;};dojo._toArray=d.isIE?function(obj){return ((obj.item)?_6c:_69).apply(this,arguments);}:_69;dojo.partial=function(_6f){var arr=[null];return d.hitch.apply(d,arr.concat(d._toArray(arguments)));};var _70=d._extraNames,_71=_70.length,_72={};dojo.clone=function(o){if(!o||typeof o!="object"||d.isFunction(o)){return o;}if(o.nodeType&&"cloneNode" in o){return o.cloneNode(true);}if(o instanceof Date){return new Date(o.getTime());}var r,i,l,s,_73;if(d.isArray(o)){r=[];for(i=0,l=o.length;i<l;++i){if(i in o){r.push(d.clone(o[i]));}}}else{r=o.constructor?new o.constructor():{};}for(_73 in o){s=o[_73];if(!(_73 in r)||(r[_73]!==s&&(!(_73 in _72)||_72[_73]!==s))){r[_73]=d.clone(s);}}if(_71){for(i=0;i<_71;++i){_73=_70[i];s=o[_73];if(!(_73 in r)||(r[_73]!==s&&(!(_73 in _72)||_72[_73]!==s))){r[_73]=s;}}}return r;};dojo.trim=String.prototype.trim?function(str){return str.trim();}:function(str){return str.replace(/^\s\s*/,"").replace(/\s\s*$/,"");};var _74=/\{([^\}]+)\}/g;dojo.replace=function(_75,map,_76){return _75.replace(_76||_74,d.isFunction(map)?map:function(_77,k){return d.getObject(k,false,map);});};})();}if(!dojo._hasResource["dojo._base.array"]){dojo._hasResource["dojo._base.array"]=true;dojo.provide("dojo._base.array");(function(){var _78=function(arr,obj,cb){return [(typeof arr=="string")?arr.split(""):arr,obj||dojo.global,(typeof cb=="string")?new Function("item","index","array",cb):cb];};var _79=function(_7a,arr,_7b,_7c){var _7d=_78(arr,_7c,_7b);arr=_7d[0];for(var i=0,l=arr.length;i<l;++i){var _7e=!!_7d[2].call(_7d[1],arr[i],i,arr);if(_7a^_7e){return _7e;}}return _7a;};dojo.mixin(dojo,{indexOf:function(_7f,_80,_81,_82){var _83=1,end=_7f.length||0,i=0;if(_82){i=end-1;_83=end=-1;}if(_81!=undefined){i=_81;}if((_82&&i>end)||i<end){for(;i!=end;i+=_83){if(_7f[i]==_80){return i;}}}return -1;},lastIndexOf:function(_84,_85,_86){return dojo.indexOf(_84,_85,_86,true);},forEach:function(arr,_87,_88){if(!arr||!arr.length){return;}var _89=_78(arr,_88,_87);arr=_89[0];for(var i=0,l=arr.length;i<l;++i){_89[2].call(_89[1],arr[i],i,arr);}},every:function(arr,_8a,_8b){return _79(true,arr,_8a,_8b);},some:function(arr,_8c,_8d){return _79(false,arr,_8c,_8d);},map:function(arr,_8e,_8f){var _90=_78(arr,_8f,_8e);arr=_90[0];var _91=(arguments[3]?(new arguments[3]()):[]);for(var i=0,l=arr.length;i<l;++i){_91.push(_90[2].call(_90[1],arr[i],i,arr));}return _91;},filter:function(arr,_92,_93){var _94=_78(arr,_93,_92);arr=_94[0];var _95=[];for(var i=0,l=arr.length;i<l;++i){if(_94[2].call(_94[1],arr[i],i,arr)){_95.push(arr[i]);}}return _95;}});})();}if(!dojo._hasResource["dojo._base.declare"]){dojo._hasResource["dojo._base.declare"]=true;dojo.provide("dojo._base.declare");(function(){var d=dojo,mix=d._mixin,op=Object.prototype,_96=op.toString,_97=new Function,_98=0,_99="constructor";function err(msg){throw new Error("declare: "+msg);};function _9a(_9b){var _9c=[],_9d=[{cls:0,refs:[]}],_9e={},_9f=1,l=_9b.length,i=0,j,lin,_a0,top,_a1,rec,_a2,_a3;for(;i<l;++i){_a0=_9b[i];if(!_a0){err("mixin #"+i+" is unknown. Did you use dojo.require to pull it in?");}else{if(_96.call(_a0)!="[object Function]"){err("mixin #"+i+" is not a callable constructor.");}}lin=_a0._meta?_a0._meta.bases:[_a0];top=0;for(j=lin.length-1;j>=0;--j){_a1=lin[j].prototype;if(!_a1.hasOwnProperty("declaredClass")){_a1.declaredClass="uniqName_"+(_98++);}_a2=_a1.declaredClass;if(!_9e.hasOwnProperty(_a2)){_9e[_a2]={count:0,refs:[],cls:lin[j]};++_9f;}rec=_9e[_a2];if(top&&top!==rec){rec.refs.push(top);++top.count;}top=rec;}++top.count;_9d[0].refs.push(top);}while(_9d.length){top=_9d.pop();_9c.push(top.cls);--_9f;while(_a3=top.refs,_a3.length==1){top=_a3[0];if(!top||--top.count){top=0;break;}_9c.push(top.cls);--_9f;}if(top){for(i=0,l=_a3.length;i<l;++i){top=_a3[i];if(!--top.count){_9d.push(top);}}}}if(_9f){err("can't build consistent linearization");}_a0=_9b[0];_9c[0]=_a0?_a0._meta&&_a0===_9c[_9c.length-_a0._meta.bases.length]?_a0._meta.bases.length:1:0;return _9c;};function _a4(_a5,a,f){var _a6,_a7,_a8,_a9,_aa,_ab,_ac,opf,pos,_ad=this._inherited=this._inherited||{};if(typeof _a5=="string"){_a6=_a5;_a5=a;a=f;}f=0;_a9=_a5.callee;_a6=_a6||_a9.nom;if(!_a6){err("can't deduce a name to call inherited()");}_aa=this.constructor._meta;_a8=_aa.bases;pos=_ad.p;if(_a6!=_99){if(_ad.c!==_a9){pos=0;_ab=_a8[0];_aa=_ab._meta;if(_aa.hidden[_a6]!==_a9){_a7=_aa.chains;if(_a7&&typeof _a7[_a6]=="string"){err("calling chained method with inherited: "+_a6);}do{_aa=_ab._meta;_ac=_ab.prototype;if(_aa&&(_ac[_a6]===_a9&&_ac.hasOwnProperty(_a6)||_aa.hidden[_a6]===_a9)){break;}}while(_ab=_a8[++pos]);pos=_ab?pos:-1;}}_ab=_a8[++pos];if(_ab){_ac=_ab.prototype;if(_ab._meta&&_ac.hasOwnProperty(_a6)){f=_ac[_a6];}else{opf=op[_a6];do{_ac=_ab.prototype;f=_ac[_a6];if(f&&(_ab._meta?_ac.hasOwnProperty(_a6):f!==opf)){break;}}while(_ab=_a8[++pos]);}}f=_ab&&f||op[_a6];}else{if(_ad.c!==_a9){pos=0;_aa=_a8[0]._meta;if(_aa&&_aa.ctor!==_a9){_a7=_aa.chains;if(!_a7||_a7.constructor!=="manual"){err("calling chained constructor with inherited");}while(_ab=_a8[++pos]){_aa=_ab._meta;if(_aa&&_aa.ctor===_a9){break;}}pos=_ab?pos:-1;}}while(_ab=_a8[++pos]){_aa=_ab._meta;f=_aa?_aa.ctor:_ab;if(f){break;}}f=_ab&&f;}_ad.c=f;_ad.p=pos;if(f){return a===true?f:f.apply(this,a||_a5);}};function _ae(_af,_b0){if(typeof _af=="string"){return this.inherited(_af,_b0,true);}return this.inherited(_af,true);};function _b1(cls){var _b2=this.constructor._meta.bases;for(var i=0,l=_b2.length;i<l;++i){if(_b2[i]===cls){return true;}}return this instanceof cls;};function _b3(_b4,_b5){var _b6,i=0,l=d._extraNames.length;for(_b6 in _b5){if(_b6!=_99&&_b5.hasOwnProperty(_b6)){_b4[_b6]=_b5[_b6];}}for(;i<l;++i){_b6=d._extraNames[i];if(_b6!=_99&&_b5.hasOwnProperty(_b6)){_b4[_b6]=_b5[_b6];}}};function _b7(_b8,_b9){var _ba,t,i=0,l=d._extraNames.length;for(_ba in _b9){t=_b9[_ba];if((t!==op[_ba]||!(_ba in op))&&_ba!=_99){if(_96.call(t)=="[object Function]"){t.nom=_ba;}_b8[_ba]=t;}}for(;i<l;++i){_ba=d._extraNames[i];t=_b9[_ba];if((t!==op[_ba]||!(_ba in op))&&_ba!=_99){if(_96.call(t)=="[object Function]"){t.nom=_ba;}_b8[_ba]=t;}}return _b8;};function _bb(_bc){_b7(this.prototype,_bc);return this;};function _bd(_be,_bf){return function(){var a=arguments,_c0=a,a0=a[0],f,i,m,l=_be.length,_c1;if(!(this instanceof a.callee)){return _c2(a);}if(_bf&&(a0&&a0.preamble||this.preamble)){_c1=new Array(_be.length);_c1[0]=a;for(i=0;;){a0=a[0];if(a0){f=a0.preamble;if(f){a=f.apply(this,a)||a;}}f=_be[i].prototype;f=f.hasOwnProperty("preamble")&&f.preamble;if(f){a=f.apply(this,a)||a;}if(++i==l){break;}_c1[i]=a;}}for(i=l-1;i>=0;--i){f=_be[i];m=f._meta;f=m?m.ctor:f;if(f){f.apply(this,_c1?_c1[i]:a);}}f=this.postscript;if(f){f.apply(this,_c0);}};};function _c3(_c4,_c5){return function(){var a=arguments,t=a,a0=a[0],f;if(!(this instanceof a.callee)){return _c2(a);}if(_c5){if(a0){f=a0.preamble;if(f){t=f.apply(this,t)||t;}}f=this.preamble;if(f){f.apply(this,t);}}if(_c4){_c4.apply(this,a);}f=this.postscript;if(f){f.apply(this,a);}};};function _c6(_c7){return function(){var a=arguments,i=0,f,m;if(!(this instanceof a.callee)){return _c2(a);}for(;f=_c7[i];++i){m=f._meta;f=m?m.ctor:f;if(f){f.apply(this,a);break;}}f=this.postscript;if(f){f.apply(this,a);}};};function _c8(_c9,_ca,_cb){return function(){var b,m,f,i=0,_cc=1;if(_cb){i=_ca.length-1;_cc=-1;}for(;b=_ca[i];i+=_cc){m=b._meta;f=(m?m.hidden:b.prototype)[_c9];if(f){f.apply(this,arguments);}}};};function _cd(_ce){_97.prototype=_ce.prototype;var t=new _97;_97.prototype=null;return t;};function _c2(_cf){var _d0=_cf.callee,t=_cd(_d0);_d0.apply(t,_cf);return t;};d.declare=function(_d1,_d2,_d3){if(typeof _d1!="string"){_d3=_d2;_d2=_d1;_d1="";}_d3=_d3||{};var _d4,i,t,_d5,_d6,_d7,_d8,_d9=1,_da=_d2;if(_96.call(_d2)=="[object Array]"){_d7=_9a(_d2);t=_d7[0];_d9=_d7.length-t;_d2=_d7[_d9];}else{_d7=[0];if(_d2){if(_96.call(_d2)=="[object Function]"){t=_d2._meta;_d7=_d7.concat(t?t.bases:_d2);}else{err("base class is not a callable constructor.");}}else{if(_d2!==null){err("unknown base class. Did you use dojo.require to pull it in?");}}}if(_d2){for(i=_d9-1;;--i){_d4=_cd(_d2);if(!i){break;}t=_d7[i];(t._meta?_b3:mix)(_d4,t.prototype);_d5=new Function;_d5.superclass=_d2;_d5.prototype=_d4;_d2=_d4.constructor=_d5;}}else{_d4={};}_b7(_d4,_d3);t=_d3.constructor;if(t!==op.constructor){t.nom=_99;_d4.constructor=t;}for(i=_d9-1;i;--i){t=_d7[i]._meta;if(t&&t.chains){_d8=mix(_d8||{},t.chains);}}if(_d4["-chains-"]){_d8=mix(_d8||{},_d4["-chains-"]);}t=!_d8||!_d8.hasOwnProperty(_99);_d7[0]=_d5=(_d8&&_d8.constructor==="manual")?_c6(_d7):(_d7.length==1?_c3(_d3.constructor,t):_bd(_d7,t));_d5._meta={bases:_d7,hidden:_d3,chains:_d8,parents:_da,ctor:_d3.constructor};_d5.superclass=_d2&&_d2.prototype;_d5.extend=_bb;_d5.prototype=_d4;_d4.constructor=_d5;_d4.getInherited=_ae;_d4.inherited=_a4;_d4.isInstanceOf=_b1;if(_d1){_d4.declaredClass=_d1;d.setObject(_d1,_d5);}if(_d8){for(_d6 in _d8){if(_d4[_d6]&&typeof _d8[_d6]=="string"&&_d6!=_99){t=_d4[_d6]=_c8(_d6,_d7,_d8[_d6]==="after");t.nom=_d6;}}}return _d5;};d.safeMixin=_b7;})();}if(!dojo._hasResource["dojo._base.connect"]){dojo._hasResource["dojo._base.connect"]=true;dojo.provide("dojo._base.connect");dojo._listener={getDispatcher:function(){return function(){var ap=Array.prototype,c=arguments.callee,ls=c._listeners,t=c.target;var r=t&&t.apply(this,arguments);var i,lls;lls=[].concat(ls);for(i in lls){if(!(i in ap)){lls[i].apply(this,arguments);}}return r;};},add:function(_db,_dc,_dd){_db=_db||dojo.global;var f=_db[_dc];if(!f||!f._listeners){var d=dojo._listener.getDispatcher();d.target=f;d._listeners=[];f=_db[_dc]=d;}return f._listeners.push(_dd);},remove:function(_de,_df,_e0){var f=(_de||dojo.global)[_df];if(f&&f._listeners&&_e0--){delete f._listeners[_e0];}}};dojo.connect=function(obj,_e1,_e2,_e3,_e4){var a=arguments,_e5=[],i=0;_e5.push(dojo.isString(a[0])?null:a[i++],a[i++]);var a1=a[i+1];_e5.push(dojo.isString(a1)||dojo.isFunction(a1)?a[i++]:null,a[i++]);for(var l=a.length;i<l;i++){_e5.push(a[i]);}return dojo._connect.apply(this,_e5);};dojo._connect=function(obj,_e6,_e7,_e8){var l=dojo._listener,h=l.add(obj,_e6,dojo.hitch(_e7,_e8));return [obj,_e6,h,l];};dojo.disconnect=function(_e9){if(_e9&&_e9[0]!==undefined){dojo._disconnect.apply(this,_e9);delete _e9[0];}};dojo._disconnect=function(obj,_ea,_eb,_ec){_ec.remove(obj,_ea,_eb);};dojo._topics={};dojo.subscribe=function(_ed,_ee,_ef){return [_ed,dojo._listener.add(dojo._topics,_ed,dojo.hitch(_ee,_ef))];};dojo.unsubscribe=function(_f0){if(_f0){dojo._listener.remove(dojo._topics,_f0[0],_f0[1]);}};dojo.publish=function(_f1,_f2){var f=dojo._topics[_f1];if(f){f.apply(this,_f2||[]);}};dojo.connectPublisher=function(_f3,obj,_f4){var pf=function(){dojo.publish(_f3,arguments);};return _f4?dojo.connect(obj,_f4,pf):dojo.connect(obj,pf);};}if(!dojo._hasResource["dojo._base.Deferred"]){dojo._hasResource["dojo._base.Deferred"]=true;dojo.provide("dojo._base.Deferred");(function(){var _f5=function(){};var _f6=Object.freeze||function(){};dojo.Deferred=function(_f7){var _f8,_f9,_fa,_fb,_fc;var _fd=this.promise={};function _fe(_ff){if(_f9){throw new Error("This deferred has already been resolved");}_f8=_ff;_f9=true;_100();};function _100(){var _101;while(!_101&&_fc){var _102=_fc;_fc=_fc.next;if(_101=(_102.progress==_f5)){_f9=false;}var func=(_fa?_102.error:_102.resolved);if(func){try{var _103=func(_f8);if(_103&&typeof _103.then==="function"){_103.then(dojo.hitch(_102.deferred,"resolve"),dojo.hitch(_102.deferred,"reject"));continue;}var _104=_101&&_103===undefined;_102.deferred[_104&&_fa?"reject":"resolve"](_104?_f8:_103);}catch(e){_102.deferred.reject(e);}}else{if(_fa){_102.deferred.reject(_f8);}else{_102.deferred.resolve(_f8);}}}};this.resolve=this.callback=function(_105){this.fired=0;this.results=[_105,null];_fe(_105);};this.reject=this.errback=function(_106){_fa=true;this.fired=1;_fe(_106);this.results=[null,_106];if(!_106||_106.log!==false){(dojo.config.deferredOnError||function(x){console.error(x);})(_106);}};this.progress=function(_107){var _108=_fc;while(_108){var _109=_108.progress;_109&&_109(_107);_108=_108.next;}};this.addCallbacks=function(_10a,_10b){this.then(_10a,_10b,_f5);return this;};this.then=_fd.then=function(_10c,_10d,_10e){var _10f=_10e==_f5?this:new dojo.Deferred(_fd.cancel);var _110={resolved:_10c,error:_10d,progress:_10e,deferred:_10f};if(_fc){_fb=_fb.next=_110;}else{_fc=_fb=_110;}if(_f9){_100();}return _10f.promise;};var _111=this;this.cancel=_fd.cancel=function(){if(!_f9){var _112=_f7&&_f7(_111);if(!_f9){if(!(_112 instanceof Error)){_112=new Error(_112);}_112.log=false;_111.reject(_112);}}};_f6(_fd);};dojo.extend(dojo.Deferred,{addCallback:function(_113){return this.addCallbacks(dojo.hitch.apply(dojo,arguments));},addErrback:function(_114){return this.addCallbacks(null,dojo.hitch.apply(dojo,arguments));},addBoth:function(_115){var _116=dojo.hitch.apply(dojo,arguments);return this.addCallbacks(_116,_116);},fired:-1});})();dojo.when=function(_117,_118,_119,_11a){if(_117&&typeof _117.then==="function"){return _117.then(_118,_119,_11a);}return _118(_117);};}if(!dojo._hasResource["dojo._base.json"]){dojo._hasResource["dojo._base.json"]=true;dojo.provide("dojo._base.json");dojo.fromJson=function(json){return eval("("+json+")");};dojo._escapeString=function(str){return ("\""+str.replace(/(["\\])/g,"\\$1")+"\"").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r");};dojo.toJsonIndentStr="\t";dojo.toJson=function(it,_11b,_11c){if(it===undefined){return "undefined";}var _11d=typeof it;if(_11d=="number"||_11d=="boolean"){return it+"";}if(it===null){return "null";}if(dojo.isString(it)){return dojo._escapeString(it);}var _11e=arguments.callee;var _11f;_11c=_11c||"";var _120=_11b?_11c+dojo.toJsonIndentStr:"";var tf=it.__json__||it.json;if(dojo.isFunction(tf)){_11f=tf.call(it);if(it!==_11f){return _11e(_11f,_11b,_120);}}if(it.nodeType&&it.cloneNode){throw new Error("Can't serialize DOM nodes");}var sep=_11b?" ":"";var _121=_11b?"\n":"";if(dojo.isArray(it)){var res=dojo.map(it,function(obj){var val=_11e(obj,_11b,_120);if(typeof val!="string"){val="undefined";}return _121+_120+val;});return "["+res.join(","+sep)+_121+_11c+"]";}if(_11d=="function"){return null;}var _122=[],key;for(key in it){var _123,val;if(typeof key=="number"){_123="\""+key+"\"";}else{if(typeof key=="string"){_123=dojo._escapeString(key);}else{continue;}}val=_11e(it[key],_11b,_120);if(typeof val!="string"){continue;}_122.push(_121+_120+_123+":"+sep+val);}return "{"+_122.join(","+sep)+_121+_11c+"}";};}if(!dojo._hasResource["dojo._base.Color"]){dojo._hasResource["dojo._base.Color"]=true;dojo.provide("dojo._base.Color");(function(){var d=dojo;dojo.Color=function(_124){if(_124){this.setColor(_124);}};dojo.Color.named={black:[0,0,0],silver:[192,192,192],gray:[128,128,128],white:[255,255,255],maroon:[128,0,0],red:[255,0,0],purple:[128,0,128],fuchsia:[255,0,255],green:[0,128,0],lime:[0,255,0],olive:[128,128,0],yellow:[255,255,0],navy:[0,0,128],blue:[0,0,255],teal:[0,128,128],aqua:[0,255,255],transparent:d.config.transparentColor||[255,255,255]};dojo.extend(dojo.Color,{r:255,g:255,b:255,a:1,_set:function(r,g,b,a){var t=this;t.r=r;t.g=g;t.b=b;t.a=a;},setColor:function(_125){if(d.isString(_125)){d.colorFromString(_125,this);}else{if(d.isArray(_125)){d.colorFromArray(_125,this);}else{this._set(_125.r,_125.g,_125.b,_125.a);if(!(_125 instanceof d.Color)){this.sanitize();}}}return this;},sanitize:function(){return this;},toRgb:function(){var t=this;return [t.r,t.g,t.b];},toRgba:function(){var t=this;return [t.r,t.g,t.b,t.a];},toHex:function(){var arr=d.map(["r","g","b"],function(x){var s=this[x].toString(16);return s.length<2?"0"+s:s;},this);return "#"+arr.join("");},toCss:function(_126){var t=this,rgb=t.r+", "+t.g+", "+t.b;return (_126?"rgba("+rgb+", "+t.a:"rgb("+rgb)+")";},toString:function(){return this.toCss(true);}});dojo.blendColors=function(_127,end,_128,obj){var t=obj||new d.Color();d.forEach(["r","g","b","a"],function(x){t[x]=_127[x]+(end[x]-_127[x])*_128;if(x!="a"){t[x]=Math.round(t[x]);}});return t.sanitize();};dojo.colorFromRgb=function(_129,obj){var m=_129.toLowerCase().match(/^rgba?\(([\s\.,0-9]+)\)/);return m&&dojo.colorFromArray(m[1].split(/\s*,\s*/),obj);};dojo.colorFromHex=function(_12a,obj){var t=obj||new d.Color(),bits=(_12a.length==4)?4:8,mask=(1<<bits)-1;_12a=Number("0x"+_12a.substr(1));if(isNaN(_12a)){return null;}d.forEach(["b","g","r"],function(x){var c=_12a&mask;_12a>>=bits;t[x]=bits==4?17*c:c;});t.a=1;return t;};dojo.colorFromArray=function(a,obj){var t=obj||new d.Color();t._set(Number(a[0]),Number(a[1]),Number(a[2]),Number(a[3]));if(isNaN(t.a)){t.a=1;}return t.sanitize();};dojo.colorFromString=function(str,obj){var a=d.Color.named[str];return a&&d.colorFromArray(a,obj)||d.colorFromRgb(str,obj)||d.colorFromHex(str,obj);};})();}if(!dojo._hasResource["dojo._base"]){dojo._hasResource["dojo._base"]=true;dojo.provide("dojo._base");}if(!dojo._hasResource["dojo._base.window"]){dojo._hasResource["dojo._base.window"]=true;dojo.provide("dojo._base.window");dojo.doc=window["document"]||null;dojo.body=function(){return dojo.doc.body||dojo.doc.getElementsByTagName("body")[0];};dojo.setContext=function(_12b,_12c){dojo.global=_12b;dojo.doc=_12c;};dojo.withGlobal=function(_12d,_12e,_12f,_130){var _131=dojo.global;try{dojo.global=_12d;return dojo.withDoc.call(null,_12d.document,_12e,_12f,_130);}finally{dojo.global=_131;}};dojo.withDoc=function(_132,_133,_134,_135){var _136=dojo.doc,_137=dojo._bodyLtr,oldQ=dojo.isQuirks;try{dojo.doc=_132;delete dojo._bodyLtr;dojo.isQuirks=dojo.doc.compatMode=="BackCompat";if(_134&&typeof _133=="string"){_133=_134[_133];}return _133.apply(_134,_135||[]);}finally{dojo.doc=_136;delete dojo._bodyLtr;if(_137!==undefined){dojo._bodyLtr=_137;}dojo.isQuirks=oldQ;}};}if(!dojo._hasResource["dojo._base.event"]){dojo._hasResource["dojo._base.event"]=true;dojo.provide("dojo._base.event");(function(){var del=(dojo._event_listener={add:function(node,name,fp){if(!node){return;}name=del._normalizeEventName(name);fp=del._fixCallback(name,fp);var _138=name;if(!dojo.isIE&&(name=="mouseenter"||name=="mouseleave")){var ofp=fp;name=(name=="mouseenter")?"mouseover":"mouseout";fp=function(e){if(!dojo.isDescendant(e.relatedTarget,node)){return ofp.call(this,e);}};}node.addEventListener(name,fp,false);return fp;},remove:function(node,_139,_13a){if(node){_139=del._normalizeEventName(_139);if(!dojo.isIE&&(_139=="mouseenter"||_139=="mouseleave")){_139=(_139=="mouseenter")?"mouseover":"mouseout";}node.removeEventListener(_139,_13a,false);}},_normalizeEventName:function(name){return name.slice(0,2)=="on"?name.slice(2):name;},_fixCallback:function(name,fp){return name!="keypress"?fp:function(e){return fp.call(this,del._fixEvent(e,this));};},_fixEvent:function(evt,_13b){switch(evt.type){case "keypress":del._setKeyChar(evt);break;}return evt;},_setKeyChar:function(evt){evt.keyChar=evt.charCode?String.fromCharCode(evt.charCode):"";evt.charOrCode=evt.keyChar||evt.keyCode;},_punctMap:{106:42,111:47,186:59,187:43,188:44,189:45,190:46,191:47,192:96,219:91,220:92,221:93,222:39}});dojo.fixEvent=function(evt,_13c){return del._fixEvent(evt,_13c);};dojo.stopEvent=function(evt){evt.preventDefault();evt.stopPropagation();};var _13d=dojo._listener;dojo._connect=function(obj,_13e,_13f,_140,_141){var _142=obj&&(obj.nodeType||obj.attachEvent||obj.addEventListener);var lid=_142?(_141?2:1):0,l=[dojo._listener,del,_13d][lid];var h=l.add(obj,_13e,dojo.hitch(_13f,_140));return [obj,_13e,h,lid];};dojo._disconnect=function(obj,_143,_144,_145){([dojo._listener,del,_13d][_145]).remove(obj,_143,_144);};dojo.keys={BACKSPACE:8,TAB:9,CLEAR:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,META:dojo.isSafari?91:224,PAUSE:19,CAPS_LOCK:20,ESCAPE:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT_ARROW:37,UP_ARROW:38,RIGHT_ARROW:39,DOWN_ARROW:40,INSERT:45,DELETE:46,HELP:47,LEFT_WINDOW:91,RIGHT_WINDOW:92,SELECT:93,NUMPAD_0:96,NUMPAD_1:97,NUMPAD_2:98,NUMPAD_3:99,NUMPAD_4:100,NUMPAD_5:101,NUMPAD_6:102,NUMPAD_7:103,NUMPAD_8:104,NUMPAD_9:105,NUMPAD_MULTIPLY:106,NUMPAD_PLUS:107,NUMPAD_ENTER:108,NUMPAD_MINUS:109,NUMPAD_PERIOD:110,NUMPAD_DIVIDE:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,F13:124,F14:125,F15:126,NUM_LOCK:144,SCROLL_LOCK:145,copyKey:dojo.isMac&&!dojo.isAIR?(dojo.isSafari?91:224):17};var _146=dojo.isMac?"metaKey":"ctrlKey";dojo.isCopyKey=function(e){return e[_146];};if(dojo.isIE){dojo.mouseButtons={LEFT:1,MIDDLE:4,RIGHT:2,isButton:function(e,_147){return e.button&_147;},isLeft:function(e){return e.button&1;},isMiddle:function(e){return e.button&4;},isRight:function(e){return e.button&2;}};}else{dojo.mouseButtons={LEFT:0,MIDDLE:1,RIGHT:2,isButton:function(e,_148){return e.button==_148;},isLeft:function(e){return e.button==0;},isMiddle:function(e){return e.button==1;},isRight:function(e){return e.button==2;}};}if(dojo.isIE){var _149=function(e,code){try{return (e.keyCode=code);}catch(e){return 0;}};var iel=dojo._listener;var _14a=(dojo._ieListenersName="_"+dojo._scopeName+"_listeners");if(!dojo.config._allow_leaks){_13d=iel=dojo._ie_listener={handlers:[],add:function(_14b,_14c,_14d){_14b=_14b||dojo.global;var f=_14b[_14c];if(!f||!f[_14a]){var d=dojo._getIeDispatcher();d.target=f&&(ieh.push(f)-1);d[_14a]=[];f=_14b[_14c]=d;}return f[_14a].push(ieh.push(_14d)-1);},remove:function(_14e,_14f,_150){var f=(_14e||dojo.global)[_14f],l=f&&f[_14a];if(f&&l&&_150--){delete ieh[l[_150]];delete l[_150];}}};var ieh=iel.handlers;}dojo.mixin(del,{add:function(node,_151,fp){if(!node){return;}_151=del._normalizeEventName(_151);if(_151=="onkeypress"){var kd=node.onkeydown;if(!kd||!kd[_14a]||!kd._stealthKeydownHandle){var h=del.add(node,"onkeydown",del._stealthKeyDown);kd=node.onkeydown;kd._stealthKeydownHandle=h;kd._stealthKeydownRefs=1;}else{kd._stealthKeydownRefs++;}}return iel.add(node,_151,del._fixCallback(fp));},remove:function(node,_152,_153){_152=del._normalizeEventName(_152);iel.remove(node,_152,_153);if(_152=="onkeypress"){var kd=node.onkeydown;if(--kd._stealthKeydownRefs<=0){iel.remove(node,"onkeydown",kd._stealthKeydownHandle);delete kd._stealthKeydownHandle;}}},_normalizeEventName:function(_154){return _154.slice(0,2)!="on"?"on"+_154:_154;},_nop:function(){},_fixEvent:function(evt,_155){if(!evt){var w=_155&&(_155.ownerDocument||_155.document||_155).parentWindow||window;evt=w.event;}if(!evt){return (evt);}evt.target=evt.srcElement;evt.currentTarget=(_155||evt.srcElement);evt.layerX=evt.offsetX;evt.layerY=evt.offsetY;var se=evt.srcElement,doc=(se&&se.ownerDocument)||document;var _156=((dojo.isIE<6)||(doc["compatMode"]=="BackCompat"))?doc.body:doc.documentElement;var _157=dojo._getIeDocumentElementOffset();evt.pageX=evt.clientX+dojo._fixIeBiDiScrollLeft(_156.scrollLeft||0)-_157.x;evt.pageY=evt.clientY+(_156.scrollTop||0)-_157.y;if(evt.type=="mouseover"){evt.relatedTarget=evt.fromElement;}if(evt.type=="mouseout"){evt.relatedTarget=evt.toElement;}evt.stopPropagation=del._stopPropagation;evt.preventDefault=del._preventDefault;return del._fixKeys(evt);},_fixKeys:function(evt){switch(evt.type){case "keypress":var c=("charCode" in evt?evt.charCode:evt.keyCode);if(c==10){c=0;evt.keyCode=13;}else{if(c==13||c==27){c=0;}else{if(c==3){c=99;}}}evt.charCode=c;del._setKeyChar(evt);break;}return evt;},_stealthKeyDown:function(evt){var kp=evt.currentTarget.onkeypress;if(!kp||!kp[_14a]){return;}var k=evt.keyCode;var _158=k!=13&&k!=32&&k!=27&&(k<48||k>90)&&(k<96||k>111)&&(k<186||k>192)&&(k<219||k>222);if(_158||evt.ctrlKey){var c=_158?0:k;if(evt.ctrlKey){if(k==3||k==13){return;}else{if(c>95&&c<106){c-=48;}else{if((!evt.shiftKey)&&(c>=65&&c<=90)){c+=32;}else{c=del._punctMap[c]||c;}}}}var faux=del._synthesizeEvent(evt,{type:"keypress",faux:true,charCode:c});kp.call(evt.currentTarget,faux);evt.cancelBubble=faux.cancelBubble;evt.returnValue=faux.returnValue;_149(evt,faux.keyCode);}},_stopPropagation:function(){this.cancelBubble=true;},_preventDefault:function(){this.bubbledKeyCode=this.keyCode;if(this.ctrlKey){_149(this,0);}this.returnValue=false;}});dojo.stopEvent=function(evt){evt=evt||window.event;del._stopPropagation.call(evt);del._preventDefault.call(evt);};}del._synthesizeEvent=function(evt,_159){var faux=dojo.mixin({},evt,_159);del._setKeyChar(faux);faux.preventDefault=function(){evt.preventDefault();};faux.stopPropagation=function(){evt.stopPropagation();};return faux;};if(dojo.isOpera){dojo.mixin(del,{_fixEvent:function(evt,_15a){switch(evt.type){case "keypress":var c=evt.which;if(c==3){c=99;}c=c<41&&!evt.shiftKey?0:c;if(evt.ctrlKey&&!evt.shiftKey&&c>=65&&c<=90){c+=32;}return del._synthesizeEvent(evt,{charCode:c});}return evt;}});}if(dojo.isWebKit){del._add=del.add;del._remove=del.remove;dojo.mixin(del,{add:function(node,_15b,fp){if(!node){return;}var _15c=del._add(node,_15b,fp);if(del._normalizeEventName(_15b)=="keypress"){_15c._stealthKeyDownHandle=del._add(node,"keydown",function(evt){var k=evt.keyCode;var _15d=k!=13&&k!=32&&(k<48||k>90)&&(k<96||k>111)&&(k<186||k>192)&&(k<219||k>222);if(_15d||evt.ctrlKey){var c=_15d?0:k;if(evt.ctrlKey){if(k==3||k==13){return;}else{if(c>95&&c<106){c-=48;}else{if(!evt.shiftKey&&c>=65&&c<=90){c+=32;}else{c=del._punctMap[c]||c;}}}}var faux=del._synthesizeEvent(evt,{type:"keypress",faux:true,charCode:c});fp.call(evt.currentTarget,faux);}});}return _15c;},remove:function(node,_15e,_15f){if(node){if(_15f._stealthKeyDownHandle){del._remove(node,"keydown",_15f._stealthKeyDownHandle);}del._remove(node,_15e,_15f);}},_fixEvent:function(evt,_160){switch(evt.type){case "keypress":if(evt.faux){return evt;}var c=evt.charCode;c=c>=32?c:0;return del._synthesizeEvent(evt,{charCode:c,faux:true});}return evt;}});}})();if(dojo.isIE){dojo._ieDispatcher=function(args,_161){var ap=Array.prototype,h=dojo._ie_listener.handlers,c=args.callee,ls=c[dojo._ieListenersName],t=h[c.target];var r=t&&t.apply(_161,args);var lls=[].concat(ls);for(var i in lls){var f=h[lls[i]];if(!(i in ap)&&f){f.apply(_161,args);}}return r;};dojo._getIeDispatcher=function(){return new Function(dojo._scopeName+"._ieDispatcher(arguments, this)");};dojo._event_listener._fixCallback=function(fp){var f=dojo._event_listener._fixEvent;return function(e){return fp.call(this,f(e,this));};};}}if(!dojo._hasResource["dojo._base.html"]){dojo._hasResource["dojo._base.html"]=true;dojo.provide("dojo._base.html");try{document.execCommand("BackgroundImageCache",false,true);}catch(e){}if(dojo.isIE||dojo.isOpera){dojo.byId=function(id,doc){if(typeof id!="string"){return id;}var _162=doc||dojo.doc,te=_162.getElementById(id);if(te&&(te.attributes.id.value==id||te.id==id)){return te;}else{var eles=_162.all[id];if(!eles||eles.nodeName){eles=[eles];}var i=0;while((te=eles[i++])){if((te.attributes&&te.attributes.id&&te.attributes.id.value==id)||te.id==id){return te;}}}};}else{dojo.byId=function(id,doc){return (typeof id=="string")?(doc||dojo.doc).getElementById(id):id;};}(function(){var d=dojo;var byId=d.byId;var _163=null,_164;d.addOnWindowUnload(function(){_163=null;});dojo._destroyElement=dojo.destroy=function(node){node=byId(node);try{var doc=node.ownerDocument;if(!_163||_164!=doc){_163=doc.createElement("div");_164=doc;}_163.appendChild(node.parentNode?node.parentNode.removeChild(node):node);_163.innerHTML="";}catch(e){}};dojo.isDescendant=function(node,_165){try{node=byId(node);_165=byId(_165);while(node){if(node==_165){return true;}node=node.parentNode;}}catch(e){}return false;};dojo.setSelectable=function(node,_166){node=byId(node);if(d.isMozilla){node.style.MozUserSelect=_166?"":"none";}else{if(d.isKhtml||d.isWebKit){node.style.KhtmlUserSelect=_166?"auto":"none";}else{if(d.isIE){var v=(node.unselectable=_166?"":"on");d.query("*",node).forEach("item.unselectable = '"+v+"'");}}}};var _167=function(node,ref){var _168=ref.parentNode;if(_168){_168.insertBefore(node,ref);}};var _169=function(node,ref){var _16a=ref.parentNode;if(_16a){if(_16a.lastChild==ref){_16a.appendChild(node);}else{_16a.insertBefore(node,ref.nextSibling);}}};dojo.place=function(node,_16b,_16c){_16b=byId(_16b);if(typeof node=="string"){node=node.charAt(0)=="<"?d._toDom(node,_16b.ownerDocument):byId(node);}if(typeof _16c=="number"){var cn=_16b.childNodes;if(!cn.length||cn.length<=_16c){_16b.appendChild(node);}else{_167(node,cn[_16c<0?0:_16c]);}}else{switch(_16c){case "before":_167(node,_16b);break;case "after":_169(node,_16b);break;case "replace":_16b.parentNode.replaceChild(node,_16b);break;case "only":d.empty(_16b);_16b.appendChild(node);break;case "first":if(_16b.firstChild){_167(node,_16b.firstChild);break;}default:_16b.appendChild(node);}}return node;};dojo.boxModel="content-box";if(d.isIE){d.boxModel=document.compatMode=="BackCompat"?"border-box":"content-box";}var gcs;if(d.isWebKit){gcs=function(node){var s;if(node.nodeType==1){var dv=node.ownerDocument.defaultView;s=dv.getComputedStyle(node,null);if(!s&&node.style){node.style.display="";s=dv.getComputedStyle(node,null);}}return s||{};};}else{if(d.isIE){gcs=function(node){return node.nodeType==1?node.currentStyle:{};};}else{gcs=function(node){return node.nodeType==1?node.ownerDocument.defaultView.getComputedStyle(node,null):{};};}}dojo.getComputedStyle=gcs;if(!d.isIE){d._toPixelValue=function(_16d,_16e){return parseFloat(_16e)||0;};}else{d._toPixelValue=function(_16f,_170){if(!_170){return 0;}if(_170=="medium"){return 4;}if(_170.slice&&_170.slice(-2)=="px"){return parseFloat(_170);}with(_16f){var _171=style.left;var _172=runtimeStyle.left;runtimeStyle.left=currentStyle.left;try{style.left=_170;_170=style.pixelLeft;}catch(e){_170=0;}style.left=_171;runtimeStyle.left=_172;}return _170;};}var px=d._toPixelValue;var astr="DXImageTransform.Microsoft.Alpha";var af=function(n,f){try{return n.filters.item(astr);}catch(e){return f?{}:null;}};dojo._getOpacity=d.isIE?function(node){try{return af(node).Opacity/100;}catch(e){return 1;}}:function(node){return gcs(node).opacity;};dojo._setOpacity=d.isIE?function(node,_173){var ov=_173*100,_174=_173==1;node.style.zoom=_174?"":1;if(!af(node)){if(_174){return _173;}node.style.filter+=" progid:"+astr+"(Opacity="+ov+")";}else{af(node,1).Opacity=ov;}af(node,1).Enabled=!_174;if(node.nodeName.toLowerCase()=="tr"){d.query("> td",node).forEach(function(i){d._setOpacity(i,_173);});}return _173;}:function(node,_175){return node.style.opacity=_175;};var _176={left:true,top:true};var _177=/margin|padding|width|height|max|min|offset/;var _178=function(node,type,_179){type=type.toLowerCase();if(d.isIE){if(_179=="auto"){if(type=="height"){return node.offsetHeight;}if(type=="width"){return node.offsetWidth;}}if(type=="fontweight"){switch(_179){case 700:return "bold";case 400:default:return "normal";}}}if(!(type in _176)){_176[type]=_177.test(type);}return _176[type]?px(node,_179):_179;};var _17a=d.isIE?"styleFloat":"cssFloat",_17b={"cssFloat":_17a,"styleFloat":_17a,"float":_17a};dojo.style=function(node,_17c,_17d){var n=byId(node),args=arguments.length,op=(_17c=="opacity");_17c=_17b[_17c]||_17c;if(args==3){return op?d._setOpacity(n,_17d):n.style[_17c]=_17d;}if(args==2&&op){return d._getOpacity(n);}var s=gcs(n);if(args==2&&typeof _17c!="string"){for(var x in _17c){d.style(node,x,_17c[x]);}return s;}return (args==1)?s:_178(n,_17c,s[_17c]||n.style[_17c]);};dojo._getPadExtents=function(n,_17e){var s=_17e||gcs(n),l=px(n,s.paddingLeft),t=px(n,s.paddingTop);return {l:l,t:t,w:l+px(n,s.paddingRight),h:t+px(n,s.paddingBottom)};};dojo._getBorderExtents=function(n,_17f){var ne="none",s=_17f||gcs(n),bl=(s.borderLeftStyle!=ne?px(n,s.borderLeftWidth):0),bt=(s.borderTopStyle!=ne?px(n,s.borderTopWidth):0);return {l:bl,t:bt,w:bl+(s.borderRightStyle!=ne?px(n,s.borderRightWidth):0),h:bt+(s.borderBottomStyle!=ne?px(n,s.borderBottomWidth):0)};};dojo._getPadBorderExtents=function(n,_180){var s=_180||gcs(n),p=d._getPadExtents(n,s),b=d._getBorderExtents(n,s);return {l:p.l+b.l,t:p.t+b.t,w:p.w+b.w,h:p.h+b.h};};dojo._getMarginExtents=function(n,_181){var s=_181||gcs(n),l=px(n,s.marginLeft),t=px(n,s.marginTop),r=px(n,s.marginRight),b=px(n,s.marginBottom);if(d.isWebKit&&(s.position!="absolute")){r=l;}return {l:l,t:t,w:l+r,h:t+b};};dojo._getMarginBox=function(node,_182){var s=_182||gcs(node),me=d._getMarginExtents(node,s);var l=node.offsetLeft-me.l,t=node.offsetTop-me.t,p=node.parentNode;if(d.isMoz){var sl=parseFloat(s.left),st=parseFloat(s.top);if(!isNaN(sl)&&!isNaN(st)){l=sl,t=st;}else{if(p&&p.style){var pcs=gcs(p);if(pcs.overflow!="visible"){var be=d._getBorderExtents(p,pcs);l+=be.l,t+=be.t;}}}}else{if(d.isOpera||(d.isIE>7&&!d.isQuirks)){if(p){be=d._getBorderExtents(p);l-=be.l;t-=be.t;}}}return {l:l,t:t,w:node.offsetWidth+me.w,h:node.offsetHeight+me.h};};dojo._getContentBox=function(node,_183){var s=_183||gcs(node),pe=d._getPadExtents(node,s),be=d._getBorderExtents(node,s),w=node.clientWidth,h;if(!w){w=node.offsetWidth,h=node.offsetHeight;}else{h=node.clientHeight,be.w=be.h=0;}if(d.isOpera){pe.l+=be.l;pe.t+=be.t;}return {l:pe.l,t:pe.t,w:w-pe.w-be.w,h:h-pe.h-be.h};};dojo._getBorderBox=function(node,_184){var s=_184||gcs(node),pe=d._getPadExtents(node,s),cb=d._getContentBox(node,s);return {l:cb.l-pe.l,t:cb.t-pe.t,w:cb.w+pe.w,h:cb.h+pe.h};};dojo._setBox=function(node,l,t,w,h,u){u=u||"px";var s=node.style;if(!isNaN(l)){s.left=l+u;}if(!isNaN(t)){s.top=t+u;}if(w>=0){s.width=w+u;}if(h>=0){s.height=h+u;}};dojo._isButtonTag=function(node){return node.tagName=="BUTTON"||node.tagName=="INPUT"&&(node.getAttribute("type")||"").toUpperCase()=="BUTTON";};dojo._usesBorderBox=function(node){var n=node.tagName;return d.boxModel=="border-box"||n=="TABLE"||d._isButtonTag(node);};dojo._setContentSize=function(node,_185,_186,_187){if(d._usesBorderBox(node)){var pb=d._getPadBorderExtents(node,_187);if(_185>=0){_185+=pb.w;}if(_186>=0){_186+=pb.h;}}d._setBox(node,NaN,NaN,_185,_186);};dojo._setMarginBox=function(node,_188,_189,_18a,_18b,_18c){var s=_18c||gcs(node),bb=d._usesBorderBox(node),pb=bb?_18d:d._getPadBorderExtents(node,s);if(d.isWebKit){if(d._isButtonTag(node)){var ns=node.style;if(_18a>=0&&!ns.width){ns.width="4px";}if(_18b>=0&&!ns.height){ns.height="4px";}}}var mb=d._getMarginExtents(node,s);if(_18a>=0){_18a=Math.max(_18a-pb.w-mb.w,0);}if(_18b>=0){_18b=Math.max(_18b-pb.h-mb.h,0);}d._setBox(node,_188,_189,_18a,_18b);};var _18d={l:0,t:0,w:0,h:0};dojo.marginBox=function(node,box){var n=byId(node),s=gcs(n),b=box;return !b?d._getMarginBox(n,s):d._setMarginBox(n,b.l,b.t,b.w,b.h,s);};dojo.contentBox=function(node,box){var n=byId(node),s=gcs(n),b=box;return !b?d._getContentBox(n,s):d._setContentSize(n,b.w,b.h,s);};var _18e=function(node,prop){if(!(node=(node||0).parentNode)){return 0;}var val,_18f=0,_190=d.body();while(node&&node.style){if(gcs(node).position=="fixed"){return 0;}val=node[prop];if(val){_18f+=val-0;if(node==_190){break;}}node=node.parentNode;}return _18f;};dojo._docScroll=function(){var n=d.global;return "pageXOffset" in n?{x:n.pageXOffset,y:n.pageYOffset}:(n=d.doc.documentElement,n.clientHeight?{x:d._fixIeBiDiScrollLeft(n.scrollLeft),y:n.scrollTop}:(n=d.body(),{x:n.scrollLeft||0,y:n.scrollTop||0}));};dojo._isBodyLtr=function(){return "_bodyLtr" in d?d._bodyLtr:d._bodyLtr=(d.body().dir||d.doc.documentElement.dir||"ltr").toLowerCase()=="ltr";};dojo._getIeDocumentElementOffset=function(){var de=d.doc.documentElement;if(d.isIE<8){var r=de.getBoundingClientRect();var l=r.left,t=r.top;if(d.isIE<7){l+=de.clientLeft;t+=de.clientTop;}return {x:l<0?0:l,y:t<0?0:t};}else{return {x:0,y:0};}};dojo._fixIeBiDiScrollLeft=function(_191){var dd=d.doc;if(d.isIE<8&&!d._isBodyLtr()){var de=d.isQuirks?dd.body:dd.documentElement;return _191+de.clientWidth-de.scrollWidth;}return _191;};dojo._abs=dojo.position=function(node,_192){var db=d.body(),dh=db.parentNode,ret;node=byId(node);if(node["getBoundingClientRect"]){ret=node.getBoundingClientRect();ret={x:ret.left,y:ret.top,w:ret.right-ret.left,h:ret.bottom-ret.top};if(d.isIE){var _193=d._getIeDocumentElementOffset();ret.x-=_193.x+(d.isQuirks?db.clientLeft+db.offsetLeft:0);ret.y-=_193.y+(d.isQuirks?db.clientTop+db.offsetTop:0);}else{if(d.isFF==3){var cs=gcs(dh);ret.x-=px(dh,cs.marginLeft)+px(dh,cs.borderLeftWidth);ret.y-=px(dh,cs.marginTop)+px(dh,cs.borderTopWidth);}}}else{ret={x:0,y:0,w:node.offsetWidth,h:node.offsetHeight};if(node["offsetParent"]){ret.x-=_18e(node,"scrollLeft");ret.y-=_18e(node,"scrollTop");var _194=node;do{var n=_194.offsetLeft,t=_194.offsetTop;ret.x+=isNaN(n)?0:n;ret.y+=isNaN(t)?0:t;cs=gcs(_194);if(_194!=node){if(d.isMoz){ret.x+=2*px(_194,cs.borderLeftWidth);ret.y+=2*px(_194,cs.borderTopWidth);}else{ret.x+=px(_194,cs.borderLeftWidth);ret.y+=px(_194,cs.borderTopWidth);}}if(d.isMoz&&cs.position=="static"){var _195=_194.parentNode;while(_195!=_194.offsetParent){var pcs=gcs(_195);if(pcs.position=="static"){ret.x+=px(_194,pcs.borderLeftWidth);ret.y+=px(_194,pcs.borderTopWidth);}_195=_195.parentNode;}}_194=_194.offsetParent;}while((_194!=dh)&&_194);}else{if(node.x&&node.y){ret.x+=isNaN(node.x)?0:node.x;ret.y+=isNaN(node.y)?0:node.y;}}}if(_192){var _196=d._docScroll();ret.x+=_196.x;ret.y+=_196.y;}return ret;};dojo.coords=function(node,_197){var n=byId(node),s=gcs(n),mb=d._getMarginBox(n,s);var abs=d.position(n,_197);mb.x=abs.x;mb.y=abs.y;return mb;};var _198={"class":"className","for":"htmlFor",tabindex:"tabIndex",readonly:"readOnly",colspan:"colSpan",frameborder:"frameBorder",rowspan:"rowSpan",valuetype:"valueType"},_199={classname:"class",htmlfor:"for",tabindex:"tabIndex",readonly:"readOnly"},_19a={innerHTML:1,className:1,htmlFor:d.isIE,value:1};var _19b=function(name){return _199[name.toLowerCase()]||name;};var _19c=function(node,name){var attr=node.getAttributeNode&&node.getAttributeNode(name);return attr&&attr.specified;};dojo.hasAttr=function(node,name){var lc=name.toLowerCase();return _19a[_198[lc]||name]||_19c(byId(node),_199[lc]||name);};var _19d={},_19e=0,_19f=dojo._scopeName+"attrid",_1a0={col:1,colgroup:1,table:1,tbody:1,tfoot:1,thead:1,tr:1,title:1};dojo.attr=function(node,name,_1a1){node=byId(node);var args=arguments.length,prop;if(args==2&&typeof name!="string"){for(var x in name){d.attr(node,x,name[x]);}return node;}var lc=name.toLowerCase(),_1a2=_198[lc]||name,_1a3=_19a[_1a2],_1a4=_199[lc]||name;if(args==3){do{if(_1a2=="style"&&typeof _1a1!="string"){d.style(node,_1a1);break;}if(_1a2=="innerHTML"){if(d.isIE&&node.tagName.toLowerCase() in _1a0){d.empty(node);node.appendChild(d._toDom(_1a1,node.ownerDocument));}else{node[_1a2]=_1a1;}break;}if(d.isFunction(_1a1)){var _1a5=d.attr(node,_19f);if(!_1a5){_1a5=_19e++;d.attr(node,_19f,_1a5);}if(!_19d[_1a5]){_19d[_1a5]={};}var h=_19d[_1a5][_1a2];if(h){d.disconnect(h);}else{try{delete node[_1a2];}catch(e){}}_19d[_1a5][_1a2]=d.connect(node,_1a2,_1a1);break;}if(_1a3||typeof _1a1=="boolean"){node[_1a2]=_1a1;break;}node.setAttribute(_1a4,_1a1);}while(false);return node;}_1a1=node[_1a2];if(_1a3&&typeof _1a1!="undefined"){return _1a1;}if(_1a2!="href"&&(typeof _1a1=="boolean"||d.isFunction(_1a1))){return _1a1;}return _19c(node,_1a4)?node.getAttribute(_1a4):null;};dojo.removeAttr=function(node,name){byId(node).removeAttribute(_19b(name));};dojo.getNodeProp=function(node,name){node=byId(node);var lc=name.toLowerCase(),_1a6=_198[lc]||name;if((_1a6 in node)&&_1a6!="href"){return node[_1a6];}var _1a7=_199[lc]||name;return _19c(node,_1a7)?node.getAttribute(_1a7):null;};dojo.create=function(tag,_1a8,_1a9,pos){var doc=d.doc;if(_1a9){_1a9=byId(_1a9);doc=_1a9.ownerDocument;}if(typeof tag=="string"){tag=doc.createElement(tag);}if(_1a8){d.attr(tag,_1a8);}if(_1a9){d.place(tag,_1a9,pos);}return tag;};d.empty=d.isIE?function(node){node=byId(node);for(var c;c=node.lastChild;){d.destroy(c);}}:function(node){byId(node).innerHTML="";};var _1aa={option:["select"],tbody:["table"],thead:["table"],tfoot:["table"],tr:["table","tbody"],td:["table","tbody","tr"],th:["table","thead","tr"],legend:["fieldset"],caption:["table"],colgroup:["table"],col:["table","colgroup"],li:["ul"]},_1ab=/<\s*([\w\:]+)/,_1ac={},_1ad=0,_1ae="__"+d._scopeName+"ToDomId";for(var _1af in _1aa){var tw=_1aa[_1af];tw.pre=_1af=="option"?"<select multiple=\"multiple\">":"<"+tw.join("><")+">";tw.post="</"+tw.reverse().join("></")+">";}d._toDom=function(frag,doc){doc=doc||d.doc;var _1b0=doc[_1ae];if(!_1b0){doc[_1ae]=_1b0=++_1ad+"";_1ac[_1b0]=doc.createElement("div");}frag+="";var _1b1=frag.match(_1ab),tag=_1b1?_1b1[1].toLowerCase():"",_1b2=_1ac[_1b0],wrap,i,fc,df;if(_1b1&&_1aa[tag]){wrap=_1aa[tag];_1b2.innerHTML=wrap.pre+frag+wrap.post;for(i=wrap.length;i;--i){_1b2=_1b2.firstChild;}}else{_1b2.innerHTML=frag;}if(_1b2.childNodes.length==1){return _1b2.removeChild(_1b2.firstChild);}df=doc.createDocumentFragment();while(fc=_1b2.firstChild){df.appendChild(fc);}return df;};var _1b3="className";dojo.hasClass=function(node,_1b4){return ((" "+byId(node)[_1b3]+" ").indexOf(" "+_1b4+" ")>=0);};var _1b5=/\s+/,a1=[""],_1b6=function(s){if(typeof s=="string"||s instanceof String){if(s.indexOf(" ")<0){a1[0]=s;return a1;}else{return s.split(_1b5);}}return s||"";};dojo.addClass=function(node,_1b7){node=byId(node);_1b7=_1b6(_1b7);var cls=node[_1b3],_1b8;cls=cls?" "+cls+" ":" ";_1b8=cls.length;for(var i=0,len=_1b7.length,c;i<len;++i){c=_1b7[i];if(c&&cls.indexOf(" "+c+" ")<0){cls+=c+" ";}}if(_1b8<cls.length){node[_1b3]=cls.substr(1,cls.length-2);}};dojo.removeClass=function(node,_1b9){node=byId(node);var cls;if(_1b9!==undefined){_1b9=_1b6(_1b9);cls=" "+node[_1b3]+" ";for(var i=0,len=_1b9.length;i<len;++i){cls=cls.replace(" "+_1b9[i]+" "," ");}cls=d.trim(cls);}else{cls="";}if(node[_1b3]!=cls){node[_1b3]=cls;}};dojo.toggleClass=function(node,_1ba,_1bb){if(_1bb===undefined){_1bb=!d.hasClass(node,_1ba);}d[_1bb?"addClass":"removeClass"](node,_1ba);};})();}if(!dojo._hasResource["dojo._base.NodeList"]){dojo._hasResource["dojo._base.NodeList"]=true;dojo.provide("dojo._base.NodeList");(function(){var d=dojo;var ap=Array.prototype,aps=ap.slice,apc=ap.concat;var tnl=function(a,_1bc,_1bd){if(!a.sort){a=aps.call(a,0);}var ctor=_1bd||this._NodeListCtor||d._NodeListCtor;a.constructor=ctor;dojo._mixin(a,ctor.prototype);a._NodeListCtor=ctor;return _1bc?a._stash(_1bc):a;};var _1be=function(f,a,o){a=[0].concat(aps.call(a,0));o=o||d.global;return function(node){a[0]=node;return f.apply(o,a);};};var _1bf=function(f,o){return function(){this.forEach(_1be(f,arguments,o));return this;};};var _1c0=function(f,o){return function(){return this.map(_1be(f,arguments,o));};};var _1c1=function(f,o){return function(){return this.filter(_1be(f,arguments,o));};};var _1c2=function(f,g,o){return function(){var a=arguments,body=_1be(f,a,o);if(g.call(o||d.global,a)){return this.map(body);}this.forEach(body);return this;};};var _1c3=function(a){return a.length==1&&(typeof a[0]=="string");};var _1c4=function(node){var p=node.parentNode;if(p){p.removeChild(node);}};dojo.NodeList=function(){return tnl(Array.apply(null,arguments));};d._NodeListCtor=d.NodeList;var nl=d.NodeList,nlp=nl.prototype;nl._wrap=nlp._wrap=tnl;nl._adaptAsMap=_1c0;nl._adaptAsForEach=_1bf;nl._adaptAsFilter=_1c1;nl._adaptWithCondition=_1c2;d.forEach(["slice","splice"],function(name){var f=ap[name];nlp[name]=function(){return this._wrap(f.apply(this,arguments),name=="slice"?this:null);};});d.forEach(["indexOf","lastIndexOf","every","some"],function(name){var f=d[name];nlp[name]=function(){return f.apply(d,[this].concat(aps.call(arguments,0)));};});d.forEach(["attr","style"],function(name){nlp[name]=_1c2(d[name],_1c3);});d.forEach(["connect","addClass","removeClass","toggleClass","empty","removeAttr"],function(name){nlp[name]=_1bf(d[name]);});dojo.extend(dojo.NodeList,{_normalize:function(_1c5,_1c6){var _1c7=_1c5.parse===true?true:false;if(typeof _1c5.template=="string"){var _1c8=_1c5.templateFunc||(dojo.string&&dojo.string.substitute);_1c5=_1c8?_1c8(_1c5.template,_1c5):_1c5;}var type=(typeof _1c5);if(type=="string"||type=="number"){_1c5=dojo._toDom(_1c5,(_1c6&&_1c6.ownerDocument));if(_1c5.nodeType==11){_1c5=dojo._toArray(_1c5.childNodes);}else{_1c5=[_1c5];}}else{if(!dojo.isArrayLike(_1c5)){_1c5=[_1c5];}else{if(!dojo.isArray(_1c5)){_1c5=dojo._toArray(_1c5);}}}if(_1c7){_1c5._runParse=true;}return _1c5;},_cloneNode:function(node){return node.cloneNode(true);},_place:function(ary,_1c9,_1ca,_1cb){if(_1c9.nodeType!=1&&_1ca=="only"){return;}var _1cc=_1c9,_1cd;var _1ce=ary.length;for(var i=_1ce-1;i>=0;i--){var node=(_1cb?this._cloneNode(ary[i]):ary[i]);if(ary._runParse&&dojo.parser&&dojo.parser.parse){if(!_1cd){_1cd=_1cc.ownerDocument.createElement("div");}_1cd.appendChild(node);dojo.parser.parse(_1cd);node=_1cd.firstChild;while(_1cd.firstChild){_1cd.removeChild(_1cd.firstChild);}}if(i==_1ce-1){dojo.place(node,_1cc,_1ca);}else{_1cc.parentNode.insertBefore(node,_1cc);}_1cc=node;}},_stash:function(_1cf){this._parent=_1cf;return this;},end:function(){if(this._parent){return this._parent;}else{return new this._NodeListCtor();}},concat:function(item){var t=d.isArray(this)?this:aps.call(this,0),m=d.map(arguments,function(a){return a&&!d.isArray(a)&&(typeof NodeList!="undefined"&&a.constructor===NodeList||a.constructor===this._NodeListCtor)?aps.call(a,0):a;});return this._wrap(apc.apply(t,m),this);},map:function(func,obj){return this._wrap(d.map(this,func,obj),this);},forEach:function(_1d0,_1d1){d.forEach(this,_1d0,_1d1);return this;},coords:_1c0(d.coords),position:_1c0(d.position),place:function(_1d2,_1d3){var item=d.query(_1d2)[0];return this.forEach(function(node){d.place(node,item,_1d3);});},orphan:function(_1d4){return (_1d4?d._filterQueryResult(this,_1d4):this).forEach(_1c4);},adopt:function(_1d5,_1d6){return d.query(_1d5).place(this[0],_1d6)._stash(this);},query:function(_1d7){if(!_1d7){return this;}var ret=this.map(function(node){return d.query(_1d7,node).filter(function(_1d8){return _1d8!==undefined;});});return this._wrap(apc.apply([],ret),this);},filter:function(_1d9){var a=arguments,_1da=this,_1db=0;if(typeof _1d9=="string"){_1da=d._filterQueryResult(this,a[0]);if(a.length==1){return _1da._stash(this);}_1db=1;}return this._wrap(d.filter(_1da,a[_1db],a[_1db+1]),this);},addContent:function(_1dc,_1dd){_1dc=this._normalize(_1dc,this[0]);for(var i=0,node;node=this[i];i++){this._place(_1dc,node,_1dd,i>0);}return this;},instantiate:function(_1de,_1df){var c=d.isFunction(_1de)?_1de:d.getObject(_1de);_1df=_1df||{};return this.forEach(function(node){new c(_1df,node);});},at:function(){var t=new this._NodeListCtor();d.forEach(arguments,function(i){if(i<0){i=this.length+i;}if(this[i]){t.push(this[i]);}},this);return t._stash(this);}});nl.events=["blur","focus","change","click","error","keydown","keypress","keyup","load","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","submit"];d.forEach(nl.events,function(evt){var _1e0="on"+evt;nlp[_1e0]=function(a,b){return this.connect(_1e0,a,b);};});})();}if(!dojo._hasResource["dojo._base.query"]){dojo._hasResource["dojo._base.query"]=true;if(typeof dojo!="undefined"){dojo.provide("dojo._base.query");}(function(d){var trim=d.trim;var each=d.forEach;var qlc=d._NodeListCtor=d.NodeList;var _1e1=function(){return d.doc;};var _1e2=((d.isWebKit||d.isMozilla)&&((_1e1().compatMode)=="BackCompat"));var _1e3=!!_1e1().firstChild["children"]?"children":"childNodes";var _1e4=">~+";var _1e5=false;var _1e6=function(){return true;};var _1e7=function(_1e8){if(_1e4.indexOf(_1e8.slice(-1))>=0){_1e8+=" * ";}else{_1e8+=" ";}var ts=function(s,e){return trim(_1e8.slice(s,e));};var _1e9=[];var _1ea=-1,_1eb=-1,_1ec=-1,_1ed=-1,_1ee=-1,inId=-1,_1ef=-1,lc="",cc="",_1f0;var x=0,ql=_1e8.length,_1f1=null,_1f2=null;var _1f3=function(){if(_1ef>=0){var tv=(_1ef==x)?null:ts(_1ef,x);_1f1[(_1e4.indexOf(tv)<0)?"tag":"oper"]=tv;_1ef=-1;}};var _1f4=function(){if(inId>=0){_1f1.id=ts(inId,x).replace(/\\/g,"");inId=-1;}};var _1f5=function(){if(_1ee>=0){_1f1.classes.push(ts(_1ee+1,x).replace(/\\/g,""));_1ee=-1;}};var _1f6=function(){_1f4();_1f3();_1f5();};var _1f7=function(){_1f6();if(_1ed>=0){_1f1.pseudos.push({name:ts(_1ed+1,x)});}_1f1.loops=(_1f1.pseudos.length||_1f1.attrs.length||_1f1.classes.length);_1f1.oquery=_1f1.query=ts(_1f0,x);_1f1.otag=_1f1.tag=(_1f1["oper"])?null:(_1f1.tag||"*");if(_1f1.tag){_1f1.tag=_1f1.tag.toUpperCase();}if(_1e9.length&&(_1e9[_1e9.length-1].oper)){_1f1.infixOper=_1e9.pop();_1f1.query=_1f1.infixOper.query+" "+_1f1.query;}_1e9.push(_1f1);_1f1=null;};for(;lc=cc,cc=_1e8.charAt(x),x<ql;x++){if(lc=="\\"){continue;}if(!_1f1){_1f0=x;_1f1={query:null,pseudos:[],attrs:[],classes:[],tag:null,oper:null,id:null,getTag:function(){return (_1e5)?this.otag:this.tag;}};_1ef=x;}if(_1ea>=0){if(cc=="]"){if(!_1f2.attr){_1f2.attr=ts(_1ea+1,x);}else{_1f2.matchFor=ts((_1ec||_1ea+1),x);}var cmf=_1f2.matchFor;if(cmf){if((cmf.charAt(0)=="\"")||(cmf.charAt(0)=="'")){_1f2.matchFor=cmf.slice(1,-1);}}_1f1.attrs.push(_1f2);_1f2=null;_1ea=_1ec=-1;}else{if(cc=="="){var _1f8=("|~^$*".indexOf(lc)>=0)?lc:"";_1f2.type=_1f8+cc;_1f2.attr=ts(_1ea+1,x-_1f8.length);_1ec=x+1;}}}else{if(_1eb>=0){if(cc==")"){if(_1ed>=0){_1f2.value=ts(_1eb+1,x);}_1ed=_1eb=-1;}}else{if(cc=="#"){_1f6();inId=x+1;}else{if(cc=="."){_1f6();_1ee=x;}else{if(cc==":"){_1f6();_1ed=x;}else{if(cc=="["){_1f6();_1ea=x;_1f2={};}else{if(cc=="("){if(_1ed>=0){_1f2={name:ts(_1ed+1,x),value:null};_1f1.pseudos.push(_1f2);}_1eb=x;}else{if((cc==" ")&&(lc!=cc)){_1f7();}}}}}}}}}return _1e9;};var _1f9=function(_1fa,_1fb){if(!_1fa){return _1fb;}if(!_1fb){return _1fa;}return function(){return _1fa.apply(window,arguments)&&_1fb.apply(window,arguments);};};var _1fc=function(i,arr){var r=arr||[];if(i){r.push(i);}return r;};var _1fd=function(n){return (1==n.nodeType);};var _1fe="";var _1ff=function(elem,attr){if(!elem){return _1fe;}if(attr=="class"){return elem.className||_1fe;}if(attr=="for"){return elem.htmlFor||_1fe;}if(attr=="style"){return elem.style.cssText||_1fe;}return (_1e5?elem.getAttribute(attr):elem.getAttribute(attr,2))||_1fe;};var _200={"*=":function(attr,_201){return function(elem){return (_1ff(elem,attr).indexOf(_201)>=0);};},"^=":function(attr,_202){return function(elem){return (_1ff(elem,attr).indexOf(_202)==0);};},"$=":function(attr,_203){var tval=" "+_203;return function(elem){var ea=" "+_1ff(elem,attr);return (ea.lastIndexOf(_203)==(ea.length-_203.length));};},"~=":function(attr,_204){var tval=" "+_204+" ";return function(elem){var ea=" "+_1ff(elem,attr)+" ";return (ea.indexOf(tval)>=0);};},"|=":function(attr,_205){var _206=" "+_205+"-";return function(elem){var ea=" "+_1ff(elem,attr);return ((ea==_205)||(ea.indexOf(_206)==0));};},"=":function(attr,_207){return function(elem){return (_1ff(elem,attr)==_207);};}};var _208=(typeof _1e1().firstChild.nextElementSibling=="undefined");var _209=!_208?"nextElementSibling":"nextSibling";var _20a=!_208?"previousElementSibling":"previousSibling";var _20b=(_208?_1fd:_1e6);var _20c=function(node){while(node=node[_20a]){if(_20b(node)){return false;}}return true;};var _20d=function(node){while(node=node[_209]){if(_20b(node)){return false;}}return true;};var _20e=function(node){var root=node.parentNode;var i=0,tret=root[_1e3],ci=(node["_i"]||-1),cl=(root["_l"]||-1);if(!tret){return -1;}var l=tret.length;if(cl==l&&ci>=0&&cl>=0){return ci;}root["_l"]=l;ci=-1;for(var te=root["firstElementChild"]||root["firstChild"];te;te=te[_209]){if(_20b(te)){te["_i"]=++i;if(node===te){ci=i;}}}return ci;};var _20f=function(elem){return !((_20e(elem))%2);};var _210=function(elem){return ((_20e(elem))%2);};var _211={"checked":function(name,_212){return function(elem){return !!("checked" in elem?elem.checked:elem.selected);};},"first-child":function(){return _20c;},"last-child":function(){return _20d;},"only-child":function(name,_213){return function(node){if(!_20c(node)){return false;}if(!_20d(node)){return false;}return true;};},"empty":function(name,_214){return function(elem){var cn=elem.childNodes;var cnl=elem.childNodes.length;for(var x=cnl-1;x>=0;x--){var nt=cn[x].nodeType;if((nt===1)||(nt==3)){return false;}}return true;};},"contains":function(name,_215){var cz=_215.charAt(0);if(cz=="\""||cz=="'"){_215=_215.slice(1,-1);}return function(elem){return (elem.innerHTML.indexOf(_215)>=0);};},"not":function(name,_216){var p=_1e7(_216)[0];var _217={el:1};if(p.tag!="*"){_217.tag=1;}if(!p.classes.length){_217.classes=1;}var ntf=_218(p,_217);return function(elem){return (!ntf(elem));};},"nth-child":function(name,_219){var pi=parseInt;if(_219=="odd"){return _210;}else{if(_219=="even"){return _20f;}}if(_219.indexOf("n")!=-1){var _21a=_219.split("n",2);var pred=_21a[0]?((_21a[0]=="-")?-1:pi(_21a[0])):1;var idx=_21a[1]?pi(_21a[1]):0;var lb=0,ub=-1;if(pred>0){if(idx<0){idx=(idx%pred)&&(pred+(idx%pred));}else{if(idx>0){if(idx>=pred){lb=idx-idx%pred;}idx=idx%pred;}}}else{if(pred<0){pred*=-1;if(idx>0){ub=idx;idx=idx%pred;}}}if(pred>0){return function(elem){var i=_20e(elem);return (i>=lb)&&(ub<0||i<=ub)&&((i%pred)==idx);};}else{_219=idx;}}var _21b=pi(_219);return function(elem){return (_20e(elem)==_21b);};}};var _21c=(d.isIE)?function(cond){var clc=cond.toLowerCase();if(clc=="class"){cond="className";}return function(elem){return (_1e5?elem.getAttribute(cond):elem[cond]||elem[clc]);};}:function(cond){return function(elem){return (elem&&elem.getAttribute&&elem.hasAttribute(cond));};};var _218=function(_21d,_21e){if(!_21d){return _1e6;}_21e=_21e||{};var ff=null;if(!("el" in _21e)){ff=_1f9(ff,_1fd);}if(!("tag" in _21e)){if(_21d.tag!="*"){ff=_1f9(ff,function(elem){return (elem&&(elem.tagName==_21d.getTag()));});}}if(!("classes" in _21e)){each(_21d.classes,function(_21f,idx,arr){var re=new RegExp("(?:^|\\s)"+_21f+"(?:\\s|$)");ff=_1f9(ff,function(elem){return re.test(elem.className);});ff.count=idx;});}if(!("pseudos" in _21e)){each(_21d.pseudos,function(_220){var pn=_220.name;if(_211[pn]){ff=_1f9(ff,_211[pn](pn,_220.value));}});}if(!("attrs" in _21e)){each(_21d.attrs,function(attr){var _221;var a=attr.attr;if(attr.type&&_200[attr.type]){_221=_200[attr.type](a,attr.matchFor);}else{if(a.length){_221=_21c(a);}}if(_221){ff=_1f9(ff,_221);}});}if(!("id" in _21e)){if(_21d.id){ff=_1f9(ff,function(elem){return (!!elem&&(elem.id==_21d.id));});}}if(!ff){if(!("default" in _21e)){ff=_1e6;}}return ff;};var _222=function(_223){return function(node,ret,bag){while(node=node[_209]){if(_208&&(!_1fd(node))){continue;}if((!bag||_224(node,bag))&&_223(node)){ret.push(node);}break;}return ret;};};var _225=function(_226){return function(root,ret,bag){var te=root[_209];while(te){if(_20b(te)){if(bag&&!_224(te,bag)){break;}if(_226(te)){ret.push(te);}}te=te[_209];}return ret;};};var _227=function(_228){_228=_228||_1e6;return function(root,ret,bag){var te,x=0,tret=root[_1e3];while(te=tret[x++]){if(_20b(te)&&(!bag||_224(te,bag))&&(_228(te,x))){ret.push(te);}}return ret;};};var _229=function(node,root){var pn=node.parentNode;while(pn){if(pn==root){break;}pn=pn.parentNode;}return !!pn;};var _22a={};var _22b=function(_22c){var _22d=_22a[_22c.query];if(_22d){return _22d;}var io=_22c.infixOper;var oper=(io?io.oper:"");var _22e=_218(_22c,{el:1});var qt=_22c.tag;var _22f=("*"==qt);var ecs=_1e1()["getElementsByClassName"];if(!oper){if(_22c.id){_22e=(!_22c.loops&&_22f)?_1e6:_218(_22c,{el:1,id:1});_22d=function(root,arr){var te=d.byId(_22c.id,(root.ownerDocument||root));if(!te||!_22e(te)){return;}if(9==root.nodeType){return _1fc(te,arr);}else{if(_229(te,root)){return _1fc(te,arr);}}};}else{if(ecs&&/\{\s*\[native code\]\s*\}/.test(String(ecs))&&_22c.classes.length&&!_1e2){_22e=_218(_22c,{el:1,classes:1,id:1});var _230=_22c.classes.join(" ");_22d=function(root,arr,bag){var ret=_1fc(0,arr),te,x=0;var tret=root.getElementsByClassName(_230);while((te=tret[x++])){if(_22e(te,root)&&_224(te,bag)){ret.push(te);}}return ret;};}else{if(!_22f&&!_22c.loops){_22d=function(root,arr,bag){var ret=_1fc(0,arr),te,x=0;var tret=root.getElementsByTagName(_22c.getTag());while((te=tret[x++])){if(_224(te,bag)){ret.push(te);}}return ret;};}else{_22e=_218(_22c,{el:1,tag:1,id:1});_22d=function(root,arr,bag){var ret=_1fc(0,arr),te,x=0;var tret=root.getElementsByTagName(_22c.getTag());while((te=tret[x++])){if(_22e(te,root)&&_224(te,bag)){ret.push(te);}}return ret;};}}}}else{var _231={el:1};if(_22f){_231.tag=1;}_22e=_218(_22c,_231);if("+"==oper){_22d=_222(_22e);}else{if("~"==oper){_22d=_225(_22e);}else{if(">"==oper){_22d=_227(_22e);}}}}return _22a[_22c.query]=_22d;};var _232=function(root,_233){var _234=_1fc(root),qp,x,te,qpl=_233.length,bag,ret;for(var i=0;i<qpl;i++){ret=[];qp=_233[i];x=_234.length-1;if(x>0){bag={};ret.nozip=true;}var gef=_22b(qp);for(var j=0;(te=_234[j]);j++){gef(te,ret,bag);}if(!ret.length){break;}_234=ret;}return ret;};var _235={},_236={};var _237=function(_238){var _239=_1e7(trim(_238));if(_239.length==1){var tef=_22b(_239[0]);return function(root){var r=tef(root,new qlc());if(r){r.nozip=true;}return r;};}return function(root){return _232(root,_239);};};var nua=navigator.userAgent;var wk="WebKit/";var _23a=(d.isWebKit&&(nua.indexOf(wk)>0)&&(parseFloat(nua.split(wk)[1])>528));var _23b=d.isIE?"commentStrip":"nozip";var qsa="querySelectorAll";var _23c=(!!_1e1()[qsa]&&(!d.isSafari||(d.isSafari>3.1)||_23a));var _23d=/n\+\d|([^ ])?([>~+])([^ =])?/g;var _23e=function(_23f,pre,ch,post){return ch?(pre?pre+" ":"")+ch+(post?" "+post:""):_23f;};var _240=function(_241,_242){_241=_241.replace(_23d,_23e);if(_23c){var _243=_236[_241];if(_243&&!_242){return _243;}}var _244=_235[_241];if(_244){return _244;}var qcz=_241.charAt(0);var _245=(-1==_241.indexOf(" "));if((_241.indexOf("#")>=0)&&(_245)){_242=true;}var _246=(_23c&&(!_242)&&(_1e4.indexOf(qcz)==-1)&&(!d.isIE||(_241.indexOf(":")==-1))&&(!(_1e2&&(_241.indexOf(".")>=0)))&&(_241.indexOf(":contains")==-1)&&(_241.indexOf(":checked")==-1)&&(_241.indexOf("|=")==-1));if(_246){var tq=(_1e4.indexOf(_241.charAt(_241.length-1))>=0)?(_241+" *"):_241;return _236[_241]=function(root){try{if(!((9==root.nodeType)||_245)){throw "";}var r=root[qsa](tq);r[_23b]=true;return r;}catch(e){return _240(_241,true)(root);}};}else{var _247=_241.split(/\s*,\s*/);return _235[_241]=((_247.length<2)?_237(_241):function(root){var _248=0,ret=[],tp;while((tp=_247[_248++])){ret=ret.concat(_237(tp)(root));}return ret;});}};var _249=0;var _24a=d.isIE?function(node){if(_1e5){return (node.getAttribute("_uid")||node.setAttribute("_uid",++_249)||_249);}else{return node.uniqueID;}}:function(node){return (node._uid||(node._uid=++_249));};var _224=function(node,bag){if(!bag){return 1;}var id=_24a(node);if(!bag[id]){return bag[id]=1;}return 0;};var _24b="_zipIdx";var _24c=function(arr){if(arr&&arr.nozip){return (qlc._wrap)?qlc._wrap(arr):arr;}var ret=new qlc();if(!arr||!arr.length){return ret;}if(arr[0]){ret.push(arr[0]);}if(arr.length<2){return ret;}_249++;if(d.isIE&&_1e5){var _24d=_249+"";arr[0].setAttribute(_24b,_24d);for(var x=1,te;te=arr[x];x++){if(arr[x].getAttribute(_24b)!=_24d){ret.push(te);}te.setAttribute(_24b,_24d);}}else{if(d.isIE&&arr.commentStrip){try{for(var x=1,te;te=arr[x];x++){if(_1fd(te)){ret.push(te);}}}catch(e){}}else{if(arr[0]){arr[0][_24b]=_249;}for(var x=1,te;te=arr[x];x++){if(arr[x][_24b]!=_249){ret.push(te);}te[_24b]=_249;}}}return ret;};d.query=function(_24e,root){qlc=d._NodeListCtor;if(!_24e){return new qlc();}if(_24e.constructor==qlc){return _24e;}if(typeof _24e!="string"){return new qlc(_24e);}if(typeof root=="string"){root=d.byId(root);if(!root){return new qlc();}}root=root||_1e1();var od=root.ownerDocument||root.documentElement;_1e5=(root.contentType&&root.contentType=="application/xml")||(d.isOpera&&(root.doctype||od.toString()=="[object XMLDocument]"))||(!!od)&&(d.isIE?od.xml:(root.xmlVersion||od.xmlVersion));var r=_240(_24e)(root);if(r&&r.nozip&&!qlc._wrap){return r;}return _24c(r);};d.query.pseudos=_211;d._filterQueryResult=function(_24f,_250){var _251=new d._NodeListCtor();var _252=_218(_1e7(_250)[0]);for(var x=0,te;te=_24f[x];x++){if(_252(te)){_251.push(te);}}return _251;};})(this["queryPortability"]||this["acme"]||dojo);}if(!dojo._hasResource["dojo._base.xhr"]){dojo._hasResource["dojo._base.xhr"]=true;dojo.provide("dojo._base.xhr");(function(){var _253=dojo,cfg=_253.config;function _254(obj,name,_255){if(_255===null){return;}var val=obj[name];if(typeof val=="string"){obj[name]=[val,_255];}else{if(_253.isArray(val)){val.push(_255);}else{obj[name]=_255;}}};dojo.fieldToObject=function(_256){var ret=null;var item=_253.byId(_256);if(item){var _257=item.name;var type=(item.type||"").toLowerCase();if(_257&&type&&!item.disabled){if(type=="radio"||type=="checkbox"){if(item.checked){ret=item.value;}}else{if(item.multiple){ret=[];_253.query("option",item).forEach(function(opt){if(opt.selected){ret.push(opt.value);}});}else{ret=item.value;}}}}return ret;};dojo.formToObject=function(_258){var ret={};var _259="file|submit|image|reset|button|";_253.forEach(dojo.byId(_258).elements,function(item){var _25a=item.name;var type=(item.type||"").toLowerCase();if(_25a&&type&&_259.indexOf(type)==-1&&!item.disabled){_254(ret,_25a,_253.fieldToObject(item));if(type=="image"){ret[_25a+".x"]=ret[_25a+".y"]=ret[_25a].x=ret[_25a].y=0;}}});return ret;};dojo.objectToQuery=function(map){var enc=encodeURIComponent;var _25b=[];var _25c={};for(var name in map){var _25d=map[name];if(_25d!=_25c[name]){var _25e=enc(name)+"=";if(_253.isArray(_25d)){for(var i=0;i<_25d.length;i++){_25b.push(_25e+enc(_25d[i]));}}else{_25b.push(_25e+enc(_25d));}}}return _25b.join("&");};dojo.formToQuery=function(_25f){return _253.objectToQuery(_253.formToObject(_25f));};dojo.formToJson=function(_260,_261){return _253.toJson(_253.formToObject(_260),_261);};dojo.queryToObject=function(str){var ret={};var qp=str.split("&");var dec=decodeURIComponent;_253.forEach(qp,function(item){if(item.length){var _262=item.split("=");var name=dec(_262.shift());var val=dec(_262.join("="));if(typeof ret[name]=="string"){ret[name]=[ret[name]];}if(_253.isArray(ret[name])){ret[name].push(val);}else{ret[name]=val;}}});return ret;};dojo._blockAsync=false;var _263=_253._contentHandlers=dojo.contentHandlers={text:function(xhr){return xhr.responseText;},json:function(xhr){return _253.fromJson(xhr.responseText||null);},"json-comment-filtered":function(xhr){if(!dojo.config.useCommentedJson){console.warn("Consider using the standard mimetype:application/json."+" json-commenting can introduce security issues. To"+" decrease the chances of hijacking, use the standard the 'json' handler and"+" prefix your json with: {}&&\n"+"Use djConfig.useCommentedJson=true to turn off this message.");}var _264=xhr.responseText;var _265=_264.indexOf("/*");var _266=_264.lastIndexOf("*/");if(_265==-1||_266==-1){throw new Error("JSON was not comment filtered");}return _253.fromJson(_264.substring(_265+2,_266));},javascript:function(xhr){return _253.eval(xhr.responseText);},xml:function(xhr){var _267=xhr.responseXML;if(_253.isIE&&(!_267||!_267.documentElement)){var ms=function(n){return "MSXML"+n+".DOMDocument";};var dp=["Microsoft.XMLDOM",ms(6),ms(4),ms(3),ms(2)];_253.some(dp,function(p){try{var dom=new ActiveXObject(p);dom.async=false;dom.loadXML(xhr.responseText);_267=dom;}catch(e){return false;}return true;});}return _267;},"json-comment-optional":function(xhr){if(xhr.responseText&&/^[^{\[]*\/\*/.test(xhr.responseText)){return _263["json-comment-filtered"](xhr);}else{return _263["json"](xhr);}}};dojo._ioSetArgs=function(args,_268,_269,_26a){var _26b={args:args,url:args.url};var _26c=null;if(args.form){var form=_253.byId(args.form);var _26d=form.getAttributeNode("action");_26b.url=_26b.url||(_26d?_26d.value:null);_26c=_253.formToObject(form);}var _26e=[{}];if(_26c){_26e.push(_26c);}if(args.content){_26e.push(args.content);}if(args.preventCache){_26e.push({"dojo.preventCache":new Date().valueOf()});}_26b.query=_253.objectToQuery(_253.mixin.apply(null,_26e));_26b.handleAs=args.handleAs||"text";var d=new _253.Deferred(_268);d.addCallbacks(_269,function(_26f){return _26a(_26f,d);});var ld=args.load;if(ld&&_253.isFunction(ld)){d.addCallback(function(_270){return ld.call(args,_270,_26b);});}var err=args.error;if(err&&_253.isFunction(err)){d.addErrback(function(_271){return err.call(args,_271,_26b);});}var _272=args.handle;if(_272&&_253.isFunction(_272)){d.addBoth(function(_273){return _272.call(args,_273,_26b);});}if(cfg.ioPublish&&_253.publish&&_26b.args.ioPublish!==false){d.addCallbacks(function(res){_253.publish("/dojo/io/load",[d,res]);return res;},function(res){_253.publish("/dojo/io/error",[d,res]);return res;});d.addBoth(function(res){_253.publish("/dojo/io/done",[d,res]);return res;});}d.ioArgs=_26b;return d;};var _274=function(dfd){dfd.canceled=true;var xhr=dfd.ioArgs.xhr;var _275=typeof xhr.abort;if(_275=="function"||_275=="object"||_275=="unknown"){xhr.abort();}var err=dfd.ioArgs.error;if(!err){err=new Error("xhr cancelled");err.dojoType="cancel";}return err;};var _276=function(dfd){var ret=_263[dfd.ioArgs.handleAs](dfd.ioArgs.xhr);return ret===undefined?null:ret;};var _277=function(_278,dfd){if(!dfd.ioArgs.args.failOk){console.error(_278);}return _278;};var _279=null;var _27a=[];var _27b=0;var _27c=function(dfd){if(_27b<=0){_27b=0;if(cfg.ioPublish&&_253.publish&&(!dfd||dfd&&dfd.ioArgs.args.ioPublish!==false)){_253.publish("/dojo/io/stop");}}};var _27d=function(){var now=(new Date()).getTime();if(!_253._blockAsync){for(var i=0,tif;i<_27a.length&&(tif=_27a[i]);i++){var dfd=tif.dfd;var func=function(){if(!dfd||dfd.canceled||!tif.validCheck(dfd)){_27a.splice(i--,1);_27b-=1;}else{if(tif.ioCheck(dfd)){_27a.splice(i--,1);tif.resHandle(dfd);_27b-=1;}else{if(dfd.startTime){if(dfd.startTime+(dfd.ioArgs.args.timeout||0)<now){_27a.splice(i--,1);var err=new Error("timeout exceeded");err.dojoType="timeout";dfd.errback(err);dfd.cancel();_27b-=1;}}}}};if(dojo.config.debugAtAllCosts){func.call(this);}else{try{func.call(this);}catch(e){dfd.errback(e);}}}}_27c(dfd);if(!_27a.length){clearInterval(_279);_279=null;return;}};dojo._ioCancelAll=function(){try{_253.forEach(_27a,function(i){try{i.dfd.cancel();}catch(e){}});}catch(e){}};if(_253.isIE){_253.addOnWindowUnload(_253._ioCancelAll);}_253._ioNotifyStart=function(dfd){if(cfg.ioPublish&&_253.publish&&dfd.ioArgs.args.ioPublish!==false){if(!_27b){_253.publish("/dojo/io/start");}_27b+=1;_253.publish("/dojo/io/send",[dfd]);}};_253._ioWatch=function(dfd,_27e,_27f,_280){var args=dfd.ioArgs.args;if(args.timeout){dfd.startTime=(new Date()).getTime();}_27a.push({dfd:dfd,validCheck:_27e,ioCheck:_27f,resHandle:_280});if(!_279){_279=setInterval(_27d,50);}if(args.sync){_27d();}};var _281="application/x-www-form-urlencoded";var _282=function(dfd){return dfd.ioArgs.xhr.readyState;};var _283=function(dfd){return 4==dfd.ioArgs.xhr.readyState;};var _284=function(dfd){var xhr=dfd.ioArgs.xhr;if(_253._isDocumentOk(xhr)){dfd.callback(dfd);}else{var err=new Error("Unable to load "+dfd.ioArgs.url+" status:"+xhr.status);err.status=xhr.status;err.responseText=xhr.responseText;dfd.errback(err);}};dojo._ioAddQueryToUrl=function(_285){if(_285.query.length){_285.url+=(_285.url.indexOf("?")==-1?"?":"&")+_285.query;_285.query=null;}};dojo.xhr=function(_286,args,_287){var dfd=_253._ioSetArgs(args,_274,_276,_277);var _288=dfd.ioArgs;var xhr=_288.xhr=_253._xhrObj(_288.args);if(!xhr){dfd.cancel();return dfd;}if("postData" in args){_288.query=args.postData;}else{if("putData" in args){_288.query=args.putData;}else{if("rawBody" in args){_288.query=args.rawBody;}else{if((arguments.length>2&&!_287)||"POST|PUT".indexOf(_286.toUpperCase())==-1){_253._ioAddQueryToUrl(_288);}}}}xhr.open(_286,_288.url,args.sync!==true,args.user||undefined,args.password||undefined);if(args.headers){for(var hdr in args.headers){if(hdr.toLowerCase()==="content-type"&&!args.contentType){args.contentType=args.headers[hdr];}else{if(args.headers[hdr]){xhr.setRequestHeader(hdr,args.headers[hdr]);}}}}xhr.setRequestHeader("Content-Type",args.contentType||_281);if(!args.headers||!("X-Requested-With" in args.headers)){xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");}_253._ioNotifyStart(dfd);if(dojo.config.debugAtAllCosts){xhr.send(_288.query);}else{try{xhr.send(_288.query);}catch(e){_288.error=e;dfd.cancel();}}_253._ioWatch(dfd,_282,_283,_284);xhr=null;return dfd;};dojo.xhrGet=function(args){return _253.xhr("GET",args);};dojo.rawXhrPost=dojo.xhrPost=function(args){return _253.xhr("POST",args,true);};dojo.rawXhrPut=dojo.xhrPut=function(args){return _253.xhr("PUT",args,true);};dojo.xhrDelete=function(args){return _253.xhr("DELETE",args);};})();}if(!dojo._hasResource["dojo._base.fx"]){dojo._hasResource["dojo._base.fx"]=true;dojo.provide("dojo._base.fx");(function(){var d=dojo;var _289=d._mixin;dojo._Line=function(_28a,end){this.start=_28a;this.end=end;};dojo._Line.prototype.getValue=function(n){return ((this.end-this.start)*n)+this.start;};dojo.Animation=function(args){_289(this,args);if(d.isArray(this.curve)){this.curve=new d._Line(this.curve[0],this.curve[1]);}};d._Animation=d.Animation;d.extend(dojo.Animation,{duration:350,repeat:0,rate:20,_percent:0,_startRepeatCount:0,_getStep:function(){var _28b=this._percent,_28c=this.easing;return _28c?_28c(_28b):_28b;},_fire:function(evt,args){var a=args||[];if(this[evt]){if(d.config.debugAtAllCosts){this[evt].apply(this,a);}else{try{this[evt].apply(this,a);}catch(e){console.error("exception in animation handler for:",evt);console.error(e);}}}return this;},play:function(_28d,_28e){var _28f=this;if(_28f._delayTimer){_28f._clearTimer();}if(_28e){_28f._stopTimer();_28f._active=_28f._paused=false;_28f._percent=0;}else{if(_28f._active&&!_28f._paused){return _28f;}}_28f._fire("beforeBegin",[_28f.node]);var de=_28d||_28f.delay,_290=dojo.hitch(_28f,"_play",_28e);if(de>0){_28f._delayTimer=setTimeout(_290,de);return _28f;}_290();return _28f;},_play:function(_291){var _292=this;if(_292._delayTimer){_292._clearTimer();}_292._startTime=new Date().valueOf();if(_292._paused){_292._startTime-=_292.duration*_292._percent;}_292._active=true;_292._paused=false;var _293=_292.curve.getValue(_292._getStep());if(!_292._percent){if(!_292._startRepeatCount){_292._startRepeatCount=_292.repeat;}_292._fire("onBegin",[_293]);}_292._fire("onPlay",[_293]);_292._cycle();return _292;},pause:function(){var _294=this;if(_294._delayTimer){_294._clearTimer();}_294._stopTimer();if(!_294._active){return _294;}_294._paused=true;_294._fire("onPause",[_294.curve.getValue(_294._getStep())]);return _294;},gotoPercent:function(_295,_296){var _297=this;_297._stopTimer();_297._active=_297._paused=true;_297._percent=_295;if(_296){_297.play();}return _297;},stop:function(_298){var _299=this;if(_299._delayTimer){_299._clearTimer();}if(!_299._timer){return _299;}_299._stopTimer();if(_298){_299._percent=1;}_299._fire("onStop",[_299.curve.getValue(_299._getStep())]);_299._active=_299._paused=false;return _299;},status:function(){if(this._active){return this._paused?"paused":"playing";}return "stopped";},_cycle:function(){var _29a=this;if(_29a._active){var curr=new Date().valueOf();var step=(curr-_29a._startTime)/(_29a.duration);if(step>=1){step=1;}_29a._percent=step;if(_29a.easing){step=_29a.easing(step);}_29a._fire("onAnimate",[_29a.curve.getValue(step)]);if(_29a._percent<1){_29a._startTimer();}else{_29a._active=false;if(_29a.repeat>0){_29a.repeat--;_29a.play(null,true);}else{if(_29a.repeat==-1){_29a.play(null,true);}else{if(_29a._startRepeatCount){_29a.repeat=_29a._startRepeatCount;_29a._startRepeatCount=0;}}}_29a._percent=0;_29a._fire("onEnd",[_29a.node]);!_29a.repeat&&_29a._stopTimer();}}return _29a;},_clearTimer:function(){clearTimeout(this._delayTimer);delete this._delayTimer;}});var ctr=0,_29b=null,_29c={run:function(){}};d.extend(d.Animation,{_startTimer:function(){if(!this._timer){this._timer=d.connect(_29c,"run",this,"_cycle");ctr++;}if(!_29b){_29b=setInterval(d.hitch(_29c,"run"),this.rate);}},_stopTimer:function(){if(this._timer){d.disconnect(this._timer);this._timer=null;ctr--;}if(ctr<=0){clearInterval(_29b);_29b=null;ctr=0;}}});var _29d=d.isIE?function(node){var ns=node.style;if(!ns.width.length&&d.style(node,"width")=="auto"){ns.width="auto";}}:function(){};dojo._fade=function(args){args.node=d.byId(args.node);var _29e=_289({properties:{}},args),_29f=(_29e.properties.opacity={});_29f.start=!("start" in _29e)?function(){return +d.style(_29e.node,"opacity")||0;}:_29e.start;_29f.end=_29e.end;var anim=d.animateProperty(_29e);d.connect(anim,"beforeBegin",d.partial(_29d,_29e.node));return anim;};dojo.fadeIn=function(args){return d._fade(_289({end:1},args));};dojo.fadeOut=function(args){return d._fade(_289({end:0},args));};dojo._defaultEasing=function(n){return 0.5+((Math.sin((n+1.5)*Math.PI))/2);};var _2a0=function(_2a1){this._properties=_2a1;for(var p in _2a1){var prop=_2a1[p];if(prop.start instanceof d.Color){prop.tempColor=new d.Color();}}};_2a0.prototype.getValue=function(r){var ret={};for(var p in this._properties){var prop=this._properties[p],_2a2=prop.start;if(_2a2 instanceof d.Color){ret[p]=d.blendColors(_2a2,prop.end,r,prop.tempColor).toCss();}else{if(!d.isArray(_2a2)){ret[p]=((prop.end-_2a2)*r)+_2a2+(p!="opacity"?prop.units||"px":0);}}}return ret;};dojo.animateProperty=function(args){var n=args.node=d.byId(args.node);if(!args.easing){args.easing=d._defaultEasing;}var anim=new d.Animation(args);d.connect(anim,"beforeBegin",anim,function(){var pm={};for(var p in this.properties){if(p=="width"||p=="height"){this.node.display="block";}var prop=this.properties[p];if(d.isFunction(prop)){prop=prop(n);}prop=pm[p]=_289({},(d.isObject(prop)?prop:{end:prop}));if(d.isFunction(prop.start)){prop.start=prop.start(n);}if(d.isFunction(prop.end)){prop.end=prop.end(n);}var _2a3=(p.toLowerCase().indexOf("color")>=0);function _2a4(node,p){var v={height:node.offsetHeight,width:node.offsetWidth}[p];if(v!==undefined){return v;}v=d.style(node,p);return (p=="opacity")?+v:(_2a3?v:parseFloat(v));};if(!("end" in prop)){prop.end=_2a4(n,p);}else{if(!("start" in prop)){prop.start=_2a4(n,p);}}if(_2a3){prop.start=new d.Color(prop.start);prop.end=new d.Color(prop.end);}else{prop.start=(p=="opacity")?+prop.start:parseFloat(prop.start);}}this.curve=new _2a0(pm);});d.connect(anim,"onAnimate",d.hitch(d,"style",anim.node));return anim;};dojo.anim=function(node,_2a5,_2a6,_2a7,_2a8,_2a9){return d.animateProperty({node:node,duration:_2a6||d.Animation.prototype.duration,properties:_2a5,easing:_2a7,onEnd:_2a8}).play(_2a9||0);};})();}if(!dojo._hasResource["dojo._base.browser"]){dojo._hasResource["dojo._base.browser"]=true;dojo.provide("dojo._base.browser");dojo.forEach(dojo.config.require,function(i){dojo["require"](i);});}if(dojo.isBrowser&&(document.readyState==="complete"||dojo.config.afterOnLoad)){window.setTimeout(dojo._loadInit,100);}})(); diff --git a/lib/dojo/dojo.js.uncompressed.js b/lib/dojo/dojo.js.uncompressed.js new file mode 100644 index 000000000..07593d88e --- /dev/null +++ b/lib/dojo/dojo.js.uncompressed.js @@ -0,0 +1,11251 @@ +/* + 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 +*/ + +;(function(){ + + /* + dojo, dijit, and dojox must always be the first three, and in that order. + djConfig.scopeMap = [ + ["dojo", "fojo"], + ["dijit", "fijit"], + ["dojox", "fojox"] + + ] + */ + + /**Build will replace this comment with a scoped djConfig **/ + + //The null below can be relaced by a build-time value used instead of djConfig.scopeMap. + var sMap = null; + + //See if new scopes need to be defined. + if((sMap || (typeof djConfig != "undefined" && djConfig.scopeMap)) && (typeof window != "undefined")){ + var scopeDef = "", scopePrefix = "", scopeSuffix = "", scopeMap = {}, scopeMapRev = {}; + sMap = sMap || djConfig.scopeMap; + for(var i = 0; i < sMap.length; i++){ + //Make local variables, then global variables that use the locals. + var newScope = sMap[i]; + scopeDef += "var " + newScope[0] + " = {}; " + newScope[1] + " = " + newScope[0] + ";" + newScope[1] + "._scopeName = '" + newScope[1] + "';"; + scopePrefix += (i == 0 ? "" : ",") + newScope[0]; + scopeSuffix += (i == 0 ? "" : ",") + newScope[1]; + scopeMap[newScope[0]] = newScope[1]; + scopeMapRev[newScope[1]] = newScope[0]; + } + + eval(scopeDef + "dojo._scopeArgs = [" + scopeSuffix + "];"); + + dojo._scopePrefixArgs = scopePrefix; + dojo._scopePrefix = "(function(" + scopePrefix + "){"; + dojo._scopeSuffix = "})(" + scopeSuffix + ")"; + dojo._scopeMap = scopeMap; + dojo._scopeMapRev = scopeMapRev; + } + +/*===== +// note: +// 'djConfig' does not exist under 'dojo.*' so that it can be set before the +// 'dojo' variable exists. +// note: +// Setting any of these variables *after* the library has loaded does +// nothing at all. + +djConfig = { + // summary: + // Application code can set the global 'djConfig' prior to loading + // the library to override certain global settings for how dojo works. + // + // isDebug: Boolean + // Defaults to `false`. If set to `true`, ensures that Dojo provides + // extended debugging feedback via Firebug. If Firebug is not available + // on your platform, setting `isDebug` to `true` will force Dojo to + // pull in (and display) the version of Firebug Lite which is + // integrated into the Dojo distribution, thereby always providing a + // debugging/logging console when `isDebug` is enabled. Note that + // Firebug's `console.*` methods are ALWAYS defined by Dojo. If + // `isDebug` is false and you are on a platform without Firebug, these + // methods will be defined as no-ops. + isDebug: false, + // debugAtAllCosts: Boolean + // Defaults to `false`. If set to `true`, this triggers an alternate + // mode of the package system in which dependencies are detected and + // only then are resources evaluated in dependency order via + // `<script>` tag inclusion. This may double-request resources and + // cause problems with scripts which expect `dojo.require()` to + // preform synchronously. `debugAtAllCosts` can be an invaluable + // debugging aid, but when using it, ensure that all code which + // depends on Dojo modules is wrapped in `dojo.addOnLoad()` handlers. + // Due to the somewhat unpredictable side-effects of using + // `debugAtAllCosts`, it is strongly recommended that you enable this + // flag as a last resort. `debugAtAllCosts` has no effect when loading + // resources across domains. For usage information, see the + // [Dojo Book](http://dojotoolkit.org/book/book-dojo/part-4-meta-dojo-making-your-dojo-code-run-faster-and-better/debugging-facilities/deb) + debugAtAllCosts: false, + // locale: String + // The locale to assume for loading localized resources in this page, + // specified according to [RFC 3066](http://www.ietf.org/rfc/rfc3066.txt). + // Must be specified entirely in lowercase, e.g. `en-us` and `zh-cn`. + // See the documentation for `dojo.i18n` and `dojo.requireLocalization` + // for details on loading localized resources. If no locale is specified, + // Dojo assumes the locale of the user agent, according to `navigator.userLanguage` + // or `navigator.language` properties. + locale: undefined, + // extraLocale: Array + // No default value. Specifies additional locales whose + // resources should also be loaded alongside the default locale when + // calls to `dojo.requireLocalization()` are processed. + extraLocale: undefined, + // baseUrl: String + // The directory in which `dojo.js` is located. Under normal + // conditions, Dojo auto-detects the correct location from which it + // was loaded. You may need to manually configure `baseUrl` in cases + // where you have renamed `dojo.js` or in which `<base>` tags confuse + // some browsers (e.g. IE 6). The variable `dojo.baseUrl` is assigned + // either the value of `djConfig.baseUrl` if one is provided or the + // auto-detected root if not. Other modules are located relative to + // this path. The path should end in a slash. + baseUrl: undefined, + // modulePaths: Object + // A map of module names to paths relative to `dojo.baseUrl`. The + // key/value pairs correspond directly to the arguments which + // `dojo.registerModulePath` accepts. Specifiying + // `djConfig.modulePaths = { "foo": "../../bar" }` is the equivalent + // of calling `dojo.registerModulePath("foo", "../../bar");`. Multiple + // modules may be configured via `djConfig.modulePaths`. + modulePaths: {}, + // afterOnLoad: Boolean + // Indicates Dojo was added to the page after the page load. In this case + // Dojo will not wait for the page DOMContentLoad/load events and fire + // its dojo.addOnLoad callbacks after making sure all outstanding + // dojo.required modules have loaded. Only works with a built dojo.js, + // it does not work the dojo.js directly from source control. + afterOnLoad: false, + // addOnLoad: Function or Array + // Adds a callback via dojo.addOnLoad. Useful when Dojo is added after + // the page loads and djConfig.afterOnLoad is true. Supports the same + // arguments as dojo.addOnLoad. When using a function reference, use + // `djConfig.addOnLoad = function(){};`. For object with function name use + // `djConfig.addOnLoad = [myObject, "functionName"];` and for object with + // function reference use + // `djConfig.addOnLoad = [myObject, function(){}];` + addOnLoad: null, + // require: Array + // An array of module names to be loaded immediately after dojo.js has been included + // in a page. + require: [], + // defaultDuration: Array + // Default duration, in milliseconds, for wipe and fade animations within dijits. + // Assigned to dijit.defaultDuration. + defaultDuration: 200, + // dojoBlankHtmlUrl: String + // Used by some modules to configure an empty iframe. Used by dojo.io.iframe and + // dojo.back, and dijit popup support in IE where an iframe is needed to make sure native + // controls do not bleed through the popups. Normally this configuration variable + // does not need to be set, except when using cross-domain/CDN Dojo builds. + // Save dojo/resources/blank.html to your domain and set `djConfig.dojoBlankHtmlUrl` + // to the path on your domain your copy of blank.html. + dojoBlankHtmlUrl: undefined, + // ioPublish: Boolean? + // Set this to true to enable publishing of topics for the different phases of + // IO operations. Publishing is done via dojo.publish. See dojo.__IoPublish for a list + // of topics that are published. + ioPublish: false, + // useCustomLogger: Anything? + // If set to a value that evaluates to true such as a string or array and + // isDebug is true and Firebug is not available or running, then it bypasses + // the creation of Firebug Lite allowing you to define your own console object. + useCustomLogger: undefined, + // transparentColor: Array + // Array containing the r, g, b components used as transparent color in dojo.Color; + // if undefined, [255,255,255] (white) will be used. + transparentColor: undefined, + // skipIeDomLoaded: Boolean + // For IE only, skip the DOMContentLoaded hack used. Sometimes it can cause an Operation + // Aborted error if the rest of the page triggers script defers before the DOM is ready. + // If this is config value is set to true, then dojo.addOnLoad callbacks will not be + // triggered until the page load event, which is after images and iframes load. If you + // want to trigger the callbacks sooner, you can put a script block in the bottom of + // your HTML that calls dojo._loadInit();. If you are using multiversion support, change + // "dojo." to the appropriate scope name for dojo. + skipIeDomLoaded: false +} +=====*/ + +(function(){ + // firebug stubs + + if(typeof this["loadFirebugConsole"] == "function"){ + // for Firebug 1.2 + this["loadFirebugConsole"](); + }else{ + this.console = this.console || {}; + + // Be careful to leave 'log' always at the end + var cn = [ + "assert", "count", "debug", "dir", "dirxml", "error", "group", + "groupEnd", "info", "profile", "profileEnd", "time", "timeEnd", + "trace", "warn", "log" + ]; + var i=0, tn; + while((tn=cn[i++])){ + if(!console[tn]){ + (function(){ + var tcn = tn+""; + console[tcn] = ('log' in console) ? function(){ + var a = Array.apply({}, arguments); + a.unshift(tcn+":"); + console["log"](a.join(" ")); + } : function(){} + console[tcn]._fake = true; + })(); + } + } + } + + //TODOC: HOW TO DOC THIS? + // dojo is the root variable of (almost all) our public symbols -- make sure it is defined. + if(typeof dojo == "undefined"){ + dojo = { + _scopeName: "dojo", + _scopePrefix: "", + _scopePrefixArgs: "", + _scopeSuffix: "", + _scopeMap: {}, + _scopeMapRev: {} + }; + } + + var d = dojo; + + //Need placeholders for dijit and dojox for scoping code. + if(typeof dijit == "undefined"){ + dijit = {_scopeName: "dijit"}; + } + if(typeof dojox == "undefined"){ + dojox = {_scopeName: "dojox"}; + } + + if(!d._scopeArgs){ + d._scopeArgs = [dojo, dijit, dojox]; + } + +/*===== +dojo.global = { + // summary: + // Alias for the global scope + // (e.g. the window object in a browser). + // description: + // Refer to 'dojo.global' rather than referring to window to ensure your + // code runs correctly in contexts other than web browsers (e.g. Rhino on a server). +} +=====*/ + d.global = this; + + d.config =/*===== djConfig = =====*/{ + isDebug: false, + debugAtAllCosts: false + }; + + if(typeof djConfig != "undefined"){ + for(var opt in djConfig){ + d.config[opt] = djConfig[opt]; + } + } + +/*===== + // Override locale setting, if specified + dojo.locale = { + // summary: the locale as defined by Dojo (read-only) + }; +=====*/ + dojo.locale = d.config.locale; + + var rev = "$Rev: 22487 $".match(/\d+/); + +/*===== + dojo.version = function(){ + // summary: + // Version number of the Dojo Toolkit + // major: Integer + // Major version. If total version is "1.2.0beta1", will be 1 + // minor: Integer + // Minor version. If total version is "1.2.0beta1", will be 2 + // patch: Integer + // Patch version. If total version is "1.2.0beta1", will be 0 + // flag: String + // Descriptor flag. If total version is "1.2.0beta1", will be "beta1" + // revision: Number + // The SVN rev from which dojo was pulled + this.major = 0; + this.minor = 0; + this.patch = 0; + this.flag = ""; + this.revision = 0; + } +=====*/ + dojo.version = { + major: 1, minor: 5, patch: 0, flag: "", + revision: rev ? +rev[0] : NaN, + toString: function(){ + with(d.version){ + return major + "." + minor + "." + patch + flag + " (" + revision + ")"; // String + } + } + } + + // Register with the OpenAjax hub + if(typeof OpenAjax != "undefined"){ + OpenAjax.hub.registerLibrary(dojo._scopeName, "http://dojotoolkit.org", d.version.toString()); + } + + var extraNames, extraLen, empty = {}; + for(var i in {toString: 1}){ extraNames = []; break; } + dojo._extraNames = extraNames = extraNames || ["hasOwnProperty", "valueOf", "isPrototypeOf", + "propertyIsEnumerable", "toLocaleString", "toString", "constructor"]; + extraLen = extraNames.length; + + dojo._mixin = function(/*Object*/ target, /*Object*/ source){ + // summary: + // Adds all properties and methods of source to target. This addition + // is "prototype extension safe", so that instances of objects + // will not pass along prototype defaults. + var name, s, i; + for(name in source){ + // the "tobj" condition avoid copying properties in "source" + // inherited from Object.prototype. For example, if target has a custom + // toString() method, don't overwrite it with the toString() method + // that source inherited from Object.prototype + s = source[name]; + if(!(name in target) || (target[name] !== s && (!(name in empty) || empty[name] !== s))){ + target[name] = s; + } + } + // IE doesn't recognize some custom functions in for..in + if(extraLen && source){ + for(i = 0; i < extraLen; ++i){ + name = extraNames[i]; + s = source[name]; + if(!(name in target) || (target[name] !== s && (!(name in empty) || empty[name] !== s))){ + target[name] = s; + } + } + } + return target; // Object + } + + dojo.mixin = function(/*Object*/obj, /*Object...*/props){ + // summary: + // Adds all properties and methods of props to obj and returns the + // (now modified) obj. + // description: + // `dojo.mixin` can mix multiple source objects into a + // destination object which is then returned. Unlike regular + // `for...in` iteration, `dojo.mixin` is also smart about avoiding + // extensions which other toolkits may unwisely add to the root + // object prototype + // obj: + // The object to mix properties into. Also the return value. + // props: + // One or more objects whose values are successively copied into + // obj. If more than one of these objects contain the same value, + // the one specified last in the function call will "win". + // example: + // make a shallow copy of an object + // | var copy = dojo.mixin({}, source); + // example: + // many class constructors often take an object which specifies + // values to be configured on the object. In this case, it is + // often simplest to call `dojo.mixin` on the `this` object: + // | dojo.declare("acme.Base", null, { + // | constructor: function(properties){ + // | // property configuration: + // | dojo.mixin(this, properties); + // | + // | console.log(this.quip); + // | // ... + // | }, + // | quip: "I wasn't born yesterday, you know - I've seen movies.", + // | // ... + // | }); + // | + // | // create an instance of the class and configure it + // | var b = new acme.Base({quip: "That's what it does!" }); + // example: + // copy in properties from multiple objects + // | var flattened = dojo.mixin( + // | { + // | name: "Frylock", + // | braces: true + // | }, + // | { + // | name: "Carl Brutanananadilewski" + // | } + // | ); + // | + // | // will print "Carl Brutanananadilewski" + // | console.log(flattened.name); + // | // will print "true" + // | console.log(flattened.braces); + if(!obj){ obj = {}; } + for(var i=1, l=arguments.length; i<l; i++){ + d._mixin(obj, arguments[i]); + } + return obj; // Object + } + + dojo._getProp = function(/*Array*/parts, /*Boolean*/create, /*Object*/context){ + var obj=context || d.global; + for(var i=0, p; obj && (p=parts[i]); i++){ + if(i == 0 && d._scopeMap[p]){ + p = d._scopeMap[p]; + } + obj = (p in obj ? obj[p] : (create ? obj[p]={} : undefined)); + } + return obj; // mixed + } + + dojo.setObject = function(/*String*/name, /*Object*/value, /*Object?*/context){ + // summary: + // Set a property from a dot-separated string, such as "A.B.C" + // description: + // Useful for longer api chains where you have to test each object in + // the chain, or when you have an object reference in string format. + // Objects are created as needed along `path`. Returns the passed + // value if setting is successful or `undefined` if not. + // name: + // Path to a property, in the form "A.B.C". + // context: + // Optional. Object to use as root of path. Defaults to + // `dojo.global`. + // example: + // set the value of `foo.bar.baz`, regardless of whether + // intermediate objects already exist: + // | dojo.setObject("foo.bar.baz", value); + // example: + // without `dojo.setObject`, we often see code like this: + // | // ensure that intermediate objects are available + // | if(!obj["parent"]){ obj.parent = {}; } + // | if(!obj.parent["child"]){ obj.parent.child= {}; } + // | // now we can safely set the property + // | obj.parent.child.prop = "some value"; + // wheras with `dojo.setObject`, we can shorten that to: + // | dojo.setObject("parent.child.prop", "some value", obj); + var parts=name.split("."), p=parts.pop(), obj=d._getProp(parts, true, context); + return obj && p ? (obj[p]=value) : undefined; // Object + } + + dojo.getObject = function(/*String*/name, /*Boolean?*/create, /*Object?*/context){ + // summary: + // Get a property from a dot-separated string, such as "A.B.C" + // description: + // Useful for longer api chains where you have to test each object in + // the chain, or when you have an object reference in string format. + // name: + // Path to an property, in the form "A.B.C". + // create: + // Optional. Defaults to `false`. If `true`, Objects will be + // created at any point along the 'path' that is undefined. + // context: + // Optional. Object to use as root of path. Defaults to + // 'dojo.global'. Null may be passed. + return d._getProp(name.split("."), create, context); // Object + } + + dojo.exists = function(/*String*/name, /*Object?*/obj){ + // summary: + // determine if an object supports a given method + // description: + // useful for longer api chains where you have to test each object in + // the chain. Useful only for object and method detection. + // Not useful for testing generic properties on an object. + // In particular, dojo.exists("foo.bar") when foo.bar = "" + // will return false. Use ("bar" in foo) to test for those cases. + // name: + // Path to an object, in the form "A.B.C". + // obj: + // Object to use as root of path. Defaults to + // 'dojo.global'. Null may be passed. + // example: + // | // define an object + // | var foo = { + // | bar: { } + // | }; + // | + // | // search the global scope + // | dojo.exists("foo.bar"); // true + // | dojo.exists("foo.bar.baz"); // false + // | + // | // search from a particular scope + // | dojo.exists("bar", foo); // true + // | dojo.exists("bar.baz", foo); // false + return !!d.getObject(name, false, obj); // Boolean + } + + dojo["eval"] = function(/*String*/ scriptFragment){ + // summary: + // A legacy method created for use exclusively by internal Dojo methods. Do not use + // this method directly, the behavior of this eval will differ from the normal + // browser eval. + // description: + // Placed in a separate function to minimize size of trapped + // exceptions. Calling eval() directly from some other scope may + // complicate tracebacks on some platforms. + // returns: + // The result of the evaluation. Often `undefined` + return d.global.eval ? d.global.eval(scriptFragment) : eval(scriptFragment); // Object + } + + /*===== + dojo.deprecated = function(behaviour, extra, removal){ + // summary: + // Log a debug message to indicate that a behavior has been + // deprecated. + // behaviour: String + // The API or behavior being deprecated. Usually in the form + // of "myApp.someFunction()". + // extra: String? + // Text to append to the message. Often provides advice on a + // new function or facility to achieve the same goal during + // the deprecation period. + // removal: String? + // Text to indicate when in the future the behavior will be + // removed. Usually a version number. + // example: + // | dojo.deprecated("myApp.getTemp()", "use myApp.getLocaleTemp() instead", "1.0"); + } + + dojo.experimental = function(moduleName, extra){ + // summary: Marks code as experimental. + // description: + // This can be used to mark a function, file, or module as + // experimental. Experimental code is not ready to be used, and the + // APIs are subject to change without notice. Experimental code may be + // completed deleted without going through the normal deprecation + // process. + // moduleName: String + // The name of a module, or the name of a module file or a specific + // function + // extra: String? + // some additional message for the user + // example: + // | dojo.experimental("dojo.data.Result"); + // example: + // | dojo.experimental("dojo.weather.toKelvin()", "PENDING approval from NOAA"); + } + =====*/ + + //Real functions declared in dojo._firebug.firebug. + d.deprecated = d.experimental = function(){}; + +})(); +// vim:ai:ts=4:noet + +/* + * loader.js - A bootstrap module. Runs before the hostenv_*.js file. Contains + * all of the package loading methods. + */ + +(function(){ + var d = dojo; + + d.mixin(d, { + _loadedModules: {}, + _inFlightCount: 0, + _hasResource: {}, + + _modulePrefixes: { + dojo: { name: "dojo", value: "." }, + // dojox: { name: "dojox", value: "../dojox" }, + // dijit: { name: "dijit", value: "../dijit" }, + doh: { name: "doh", value: "../util/doh" }, + tests: { name: "tests", value: "tests" } + }, + + _moduleHasPrefix: function(/*String*/module){ + // summary: checks to see if module has been established + var mp = d._modulePrefixes; + return !!(mp[module] && mp[module].value); // Boolean + }, + + _getModulePrefix: function(/*String*/module){ + // summary: gets the prefix associated with module + var mp = d._modulePrefixes; + if(d._moduleHasPrefix(module)){ + return mp[module].value; // String + } + return module; // String + }, + + _loadedUrls: [], + + //WARNING: + // This variable is referenced by packages outside of bootstrap: + // FloatingPane.js and undo/browser.js + _postLoad: false, + + //Egad! Lots of test files push on this directly instead of using dojo.addOnLoad. + _loaders: [], + _unloaders: [], + _loadNotifying: false + }); + + + dojo._loadPath = function(/*String*/relpath, /*String?*/module, /*Function?*/cb){ + // summary: + // Load a Javascript module given a relative path + // + // description: + // Loads and interprets the script located at relpath, which is + // relative to the script root directory. If the script is found but + // its interpretation causes a runtime exception, that exception is + // not caught by us, so the caller will see it. We return a true + // value if and only if the script is found. + // + // relpath: + // A relative path to a script (no leading '/', and typically ending + // in '.js'). + // module: + // A module whose existance to check for after loading a path. Can be + // used to determine success or failure of the load. + // cb: + // a callback function to pass the result of evaluating the script + + var uri = ((relpath.charAt(0) == '/' || relpath.match(/^\w+:/)) ? "" : d.baseUrl) + relpath; + try{ + return !module ? d._loadUri(uri, cb) : d._loadUriAndCheck(uri, module, cb); // Boolean + }catch(e){ + console.error(e); + return false; // Boolean + } + } + + dojo._loadUri = function(/*String*/uri, /*Function?*/cb){ + // summary: + // Loads JavaScript from a URI + // description: + // Reads the contents of the URI, and evaluates the contents. This is + // used to load modules as well as resource bundles. Returns true if + // it succeeded. Returns false if the URI reading failed. Throws if + // the evaluation throws. + // uri: a uri which points at the script to be loaded + // cb: + // a callback function to process the result of evaluating the script + // as an expression, typically used by the resource bundle loader to + // load JSON-style resources + + if(d._loadedUrls[uri]){ + return true; // Boolean + } + d._inFlightCount++; // block addOnLoad calls that arrive while we're busy downloading + var contents = d._getText(uri, true); + if(contents){ // not 404, et al + d._loadedUrls[uri] = true; + d._loadedUrls.push(uri); + if(cb){ + contents = '('+contents+')'; + }else{ + //Only do the scoping if no callback. If a callback is specified, + //it is most likely the i18n bundle stuff. + contents = d._scopePrefix + contents + d._scopeSuffix; + } + if(!d.isIE){ contents += "\r\n//@ sourceURL=" + uri; } // debugging assist for Firebug + var value = d["eval"](contents); + if(cb){ cb(value); } + } + // Check to see if we need to call _callLoaded() due to an addOnLoad() that arrived while we were busy downloading + if(--d._inFlightCount == 0 && d._postLoad && d._loaders.length){ + // We shouldn't be allowed to get here but Firefox allows an event + // (mouse, keybd, async xhrGet) to interrupt a synchronous xhrGet. + // If the current script block contains multiple require() statements, then after each + // require() returns, inFlightCount == 0, but we want to hold the _callLoaded() until + // all require()s are done since the out-of-sequence addOnLoad() presumably needs them all. + // setTimeout allows the next require() to start (if needed), and then we check this again. + setTimeout(function(){ + // If inFlightCount > 0, then multiple require()s are running sequentially and + // the next require() started after setTimeout() was executed but before we got here. + if(d._inFlightCount == 0){ + d._callLoaded(); + } + }, 0); + } + return !!contents; // Boolean: contents? true : false + } + + // FIXME: probably need to add logging to this method + dojo._loadUriAndCheck = function(/*String*/uri, /*String*/moduleName, /*Function?*/cb){ + // summary: calls loadUri then findModule and returns true if both succeed + var ok = false; + try{ + ok = d._loadUri(uri, cb); + }catch(e){ + console.error("failed loading " + uri + " with error: " + e); + } + return !!(ok && d._loadedModules[moduleName]); // Boolean + } + + dojo.loaded = function(){ + // summary: + // signal fired when initial environment and package loading is + // complete. You should use dojo.addOnLoad() instead of doing a + // direct dojo.connect() to this method in order to handle + // initialization tasks that require the environment to be + // initialized. In a browser host, declarative widgets will + // be constructed when this function finishes runing. + d._loadNotifying = true; + d._postLoad = true; + var mll = d._loaders; + + //Clear listeners so new ones can be added + //For other xdomain package loads after the initial load. + d._loaders = []; + + for(var x = 0; x < mll.length; x++){ + mll[x](); + } + + d._loadNotifying = false; + + //Make sure nothing else got added to the onload queue + //after this first run. If something did, and we are not waiting for any + //more inflight resources, run again. + if(d._postLoad && d._inFlightCount == 0 && mll.length){ + d._callLoaded(); + } + } + + dojo.unloaded = function(){ + // summary: + // signal fired by impending environment destruction. You should use + // dojo.addOnUnload() instead of doing a direct dojo.connect() to this + // method to perform page/application cleanup methods. See + // dojo.addOnUnload for more info. + var mll = d._unloaders; + while(mll.length){ + (mll.pop())(); + } + } + + d._onto = function(arr, obj, fn){ + if(!fn){ + arr.push(obj); + }else if(fn){ + var func = (typeof fn == "string") ? obj[fn] : fn; + arr.push(function(){ func.call(obj); }); + } + } + + dojo.ready = dojo.addOnLoad = function(/*Object*/obj, /*String|Function?*/functionName){ + // summary: + // Registers a function to be triggered after the DOM and dojo.require() calls + // have finished loading. + // + // description: + // Registers a function to be triggered after the DOM has finished + // loading and `dojo.require` modules have loaded. Widgets declared in markup + // have been instantiated if `djConfig.parseOnLoad` is true when this fires. + // + // Images and CSS files may or may not have finished downloading when + // the specified function is called. (Note that widgets' CSS and HTML + // code is guaranteed to be downloaded before said widgets are + // instantiated, though including css resouces BEFORE any script elements + // is highly recommended). + // + // example: + // Register an anonymous function to run when everything is ready + // | dojo.addOnLoad(function(){ doStuff(); }); + // + // example: + // Register a function to run when everything is ready by pointer: + // | var init = function(){ doStuff(); } + // | dojo.addOnLoad(init); + // + // example: + // Register a function to run scoped to `object`, either by name or anonymously: + // | dojo.addOnLoad(object, "functionName"); + // | dojo.addOnLoad(object, function(){ doStuff(); }); + + d._onto(d._loaders, obj, functionName); + + //Added for xdomain loading. dojo.addOnLoad is used to + //indicate callbacks after doing some dojo.require() statements. + //In the xdomain case, if all the requires are loaded (after initial + //page load), then immediately call any listeners. + if(d._postLoad && d._inFlightCount == 0 && !d._loadNotifying){ + d._callLoaded(); + } + } + + //Support calling dojo.addOnLoad via djConfig.addOnLoad. Support all the + //call permutations of dojo.addOnLoad. Mainly useful when dojo is added + //to the page after the page has loaded. + var dca = d.config.addOnLoad; + if(dca){ + d.addOnLoad[(dca instanceof Array ? "apply" : "call")](d, dca); + } + + dojo._modulesLoaded = function(){ + if(d._postLoad){ return; } + if(d._inFlightCount > 0){ + console.warn("files still in flight!"); + return; + } + d._callLoaded(); + } + + dojo._callLoaded = function(){ + + // The "object" check is for IE, and the other opera check fixes an + // issue in Opera where it could not find the body element in some + // widget test cases. For 0.9, maybe route all browsers through the + // setTimeout (need protection still for non-browser environments + // though). This might also help the issue with FF 2.0 and freezing + // issues where we try to do sync xhr while background css images are + // being loaded (trac #2572)? Consider for 0.9. + if(typeof setTimeout == "object" || (d.config.useXDomain && d.isOpera)){ + setTimeout( + d.isAIR ? function(){ d.loaded(); } : d._scopeName + ".loaded();", + 0); + }else{ + d.loaded(); + } + } + + dojo._getModuleSymbols = function(/*String*/modulename){ + // summary: + // Converts a module name in dotted JS notation to an array + // representing the path in the source tree + var syms = modulename.split("."); + for(var i = syms.length; i>0; i--){ + var parentModule = syms.slice(0, i).join("."); + if(i == 1 && !d._moduleHasPrefix(parentModule)){ + // Support default module directory (sibling of dojo) for top-level modules + syms[0] = "../" + syms[0]; + }else{ + var parentModulePath = d._getModulePrefix(parentModule); + if(parentModulePath != parentModule){ + syms.splice(0, i, parentModulePath); + break; + } + } + } + return syms; // Array + } + + dojo._global_omit_module_check = false; + + dojo.loadInit = function(/*Function*/init){ + // summary: + // Executes a function that needs to be executed for the loader's dojo.requireIf + // resolutions to work. This is needed mostly for the xdomain loader case where + // a function needs to be executed to set up the possible values for a dojo.requireIf + // call. + // init: + // a function reference. Executed immediately. + // description: This function is mainly a marker for the xdomain loader to know parts of + // code that needs be executed outside the function wrappper that is placed around modules. + // The init function could be executed more than once, and it should make no assumptions + // on what is loaded, or what modules are available. Only the functionality in Dojo Base + // is allowed to be used. Avoid using this method. For a valid use case, + // see the source for dojox.gfx. + init(); + } + + dojo._loadModule = dojo.require = function(/*String*/moduleName, /*Boolean?*/omitModuleCheck){ + // summary: + // loads a Javascript module from the appropriate URI + // moduleName: + // module name to load, using periods for separators, + // e.g. "dojo.date.locale". Module paths are de-referenced by dojo's + // internal mapping of locations to names and are disambiguated by + // longest prefix. See `dojo.registerModulePath()` for details on + // registering new modules. + // omitModuleCheck: + // if `true`, omitModuleCheck skips the step of ensuring that the + // loaded file actually defines the symbol it is referenced by. + // For example if it called as `dojo.require("a.b.c")` and the + // file located at `a/b/c.js` does not define an object `a.b.c`, + // and exception will be throws whereas no exception is raised + // when called as `dojo.require("a.b.c", true)` + // description: + // Modules are loaded via dojo.require by using one of two loaders: the normal loader + // and the xdomain loader. The xdomain loader is used when dojo was built with a + // custom build that specified loader=xdomain and the module lives on a modulePath + // that is a whole URL, with protocol and a domain. The versions of Dojo that are on + // the Google and AOL CDNs use the xdomain loader. + // + // If the module is loaded via the xdomain loader, it is an asynchronous load, since + // the module is added via a dynamically created script tag. This + // means that dojo.require() can return before the module has loaded. However, this + // should only happen in the case where you do dojo.require calls in the top-level + // HTML page, or if you purposely avoid the loader checking for dojo.require + // dependencies in your module by using a syntax like dojo["require"] to load the module. + // + // Sometimes it is useful to not have the loader detect the dojo.require calls in the + // module so that you can dynamically load the modules as a result of an action on the + // page, instead of right at module load time. + // + // Also, for script blocks in an HTML page, the loader does not pre-process them, so + // it does not know to download the modules before the dojo.require calls occur. + // + // So, in those two cases, when you want on-the-fly module loading or for script blocks + // in the HTML page, special care must be taken if the dojo.required code is loaded + // asynchronously. To make sure you can execute code that depends on the dojo.required + // modules, be sure to add the code that depends on the modules in a dojo.addOnLoad() + // callback. dojo.addOnLoad waits for all outstanding modules to finish loading before + // executing. Example: + // + // | <script type="text/javascript"> + // | dojo.require("foo"); + // | dojo.require("bar"); + // | dojo.addOnLoad(function(){ + // | //you can now safely do something with foo and bar + // | }); + // | </script> + // + // This type of syntax works with both xdomain and normal loaders, so it is good + // practice to always use this idiom for on-the-fly code loading and in HTML script + // blocks. If at some point you change loaders and where the code is loaded from, + // it will all still work. + // + // More on how dojo.require + // `dojo.require("A.B")` first checks to see if symbol A.B is + // defined. If it is, it is simply returned (nothing to do). + // + // If it is not defined, it will look for `A/B.js` in the script root + // directory. + // + // `dojo.require` throws an excpetion if it cannot find a file + // to load, or if the symbol `A.B` is not defined after loading. + // + // It returns the object `A.B`, but note the caveats above about on-the-fly loading and + // HTML script blocks when the xdomain loader is loading a module. + // + // `dojo.require()` does nothing about importing symbols into + // the current namespace. It is presumed that the caller will + // take care of that. For example, to import all symbols into a + // local block, you might write: + // + // | with (dojo.require("A.B")) { + // | ... + // | } + // + // And to import just the leaf symbol to a local variable: + // + // | var B = dojo.require("A.B"); + // | ... + // returns: the required namespace object + omitModuleCheck = d._global_omit_module_check || omitModuleCheck; + + //Check if it is already loaded. + var module = d._loadedModules[moduleName]; + if(module){ + return module; + } + + // convert periods to slashes + var relpath = d._getModuleSymbols(moduleName).join("/") + '.js'; + + var modArg = !omitModuleCheck ? moduleName : null; + var ok = d._loadPath(relpath, modArg); + + if(!ok && !omitModuleCheck){ + throw new Error("Could not load '" + moduleName + "'; last tried '" + relpath + "'"); + } + + // check that the symbol was defined + // Don't bother if we're doing xdomain (asynchronous) loading. + if(!omitModuleCheck && !d._isXDomain){ + // pass in false so we can give better error + module = d._loadedModules[moduleName]; + if(!module){ + throw new Error("symbol '" + moduleName + "' is not defined after loading '" + relpath + "'"); + } + } + + return module; + } + + dojo.provide = function(/*String*/ resourceName){ + // summary: + // Register a resource with the package system. Works in conjunction with `dojo.require` + // + // description: + // Each javascript source file is called a resource. When a + // resource is loaded by the browser, `dojo.provide()` registers + // that it has been loaded. + // + // Each javascript source file must have at least one + // `dojo.provide()` call at the top of the file, corresponding to + // the file name. For example, `js/dojo/foo.js` must have + // `dojo.provide("dojo.foo");` before any calls to + // `dojo.require()` are made. + // + // For backwards compatibility reasons, in addition to registering + // the resource, `dojo.provide()` also ensures that the javascript + // object for the module exists. For example, + // `dojo.provide("dojox.data.FlickrStore")`, in addition to + // registering that `FlickrStore.js` is a resource for the + // `dojox.data` module, will ensure that the `dojox.data` + // javascript object exists, so that calls like + // `dojo.data.foo = function(){ ... }` don't fail. + // + // In the case of a build where multiple javascript source files + // are combined into one bigger file (similar to a .lib or .jar + // file), that file may contain multiple dojo.provide() calls, to + // note that it includes multiple resources. + // + // resourceName: String + // A dot-sperated string identifying a resource. + // + // example: + // Safely create a `my` object, and make dojo.require("my.CustomModule") work + // | dojo.provide("my.CustomModule"); + + //Make sure we have a string. + resourceName = resourceName + ""; + return (d._loadedModules[resourceName] = d.getObject(resourceName, true)); // Object + } + + //Start of old bootstrap2: + + dojo.platformRequire = function(/*Object*/modMap){ + // summary: + // require one or more modules based on which host environment + // Dojo is currently operating in + // description: + // This method takes a "map" of arrays which one can use to + // optionally load dojo modules. The map is indexed by the + // possible dojo.name_ values, with two additional values: + // "default" and "common". The items in the "default" array will + // be loaded if none of the other items have been choosen based on + // dojo.name_, set by your host environment. The items in the + // "common" array will *always* be loaded, regardless of which + // list is chosen. + // example: + // | dojo.platformRequire({ + // | browser: [ + // | "foo.sample", // simple module + // | "foo.test", + // | ["foo.bar.baz", true] // skip object check in _loadModule (dojo.require) + // | ], + // | default: [ "foo.sample._base" ], + // | common: [ "important.module.common" ] + // | }); + + var common = modMap.common || []; + var result = common.concat(modMap[d._name] || modMap["default"] || []); + + for(var x=0; x<result.length; x++){ + var curr = result[x]; + if(curr.constructor == Array){ + d._loadModule.apply(d, curr); + }else{ + d._loadModule(curr); + } + } + } + + dojo.requireIf = function(/*Boolean*/ condition, /*String*/ resourceName){ + // summary: + // If the condition is true then call `dojo.require()` for the specified + // resource + // + // example: + // | dojo.requireIf(dojo.isBrowser, "my.special.Module"); + + if(condition === true){ + // FIXME: why do we support chained require()'s here? does the build system? + var args = []; + for(var i = 1; i < arguments.length; i++){ + args.push(arguments[i]); + } + d.require.apply(d, args); + } + } + + dojo.requireAfterIf = d.requireIf; + + dojo.registerModulePath = function(/*String*/module, /*String*/prefix){ + // summary: + // Maps a module name to a path + // description: + // An unregistered module is given the default path of ../[module], + // relative to Dojo root. For example, module acme is mapped to + // ../acme. If you want to use a different module name, use + // dojo.registerModulePath. + // example: + // If your dojo.js is located at this location in the web root: + // | /myapp/js/dojo/dojo/dojo.js + // and your modules are located at: + // | /myapp/js/foo/bar.js + // | /myapp/js/foo/baz.js + // | /myapp/js/foo/thud/xyzzy.js + // Your application can tell Dojo to locate the "foo" namespace by calling: + // | dojo.registerModulePath("foo", "../../foo"); + // At which point you can then use dojo.require() to load the + // modules (assuming they provide() the same things which are + // required). The full code might be: + // | <script type="text/javascript" + // | src="/myapp/js/dojo/dojo/dojo.js"></script> + // | <script type="text/javascript"> + // | dojo.registerModulePath("foo", "../../foo"); + // | dojo.require("foo.bar"); + // | dojo.require("foo.baz"); + // | dojo.require("foo.thud.xyzzy"); + // | </script> + d._modulePrefixes[module] = { name: module, value: prefix }; + } + + dojo.requireLocalization = function(/*String*/moduleName, /*String*/bundleName, /*String?*/locale, /*String?*/availableFlatLocales){ + // summary: + // Declares translated resources and loads them if necessary, in the + // same style as dojo.require. Contents of the resource bundle are + // typically strings, but may be any name/value pair, represented in + // JSON format. See also `dojo.i18n.getLocalization`. + // + // description: + // Load translated resource bundles provided underneath the "nls" + // directory within a package. Translated resources may be located in + // different packages throughout the source tree. + // + // Each directory is named for a locale as specified by RFC 3066, + // (http://www.ietf.org/rfc/rfc3066.txt), normalized in lowercase. + // Note that the two bundles in the example do not define all the + // same variants. For a given locale, bundles will be loaded for + // that locale and all more general locales above it, including a + // fallback at the root directory. For example, a declaration for + // the "de-at" locale will first load `nls/de-at/bundleone.js`, + // then `nls/de/bundleone.js` and finally `nls/bundleone.js`. The + // data will be flattened into a single Object so that lookups + // will follow this cascading pattern. An optional build step can + // preload the bundles to avoid data redundancy and the multiple + // network hits normally required to load these resources. + // + // moduleName: + // name of the package containing the "nls" directory in which the + // bundle is found + // + // bundleName: + // bundle name, i.e. the filename without the '.js' suffix. Using "nls" as a + // a bundle name is not supported, since "nls" is the name of the folder + // that holds bundles. Using "nls" as the bundle name will cause problems + // with the custom build. + // + // locale: + // the locale to load (optional) By default, the browser's user + // locale as defined by dojo.locale + // + // availableFlatLocales: + // A comma-separated list of the available, flattened locales for this + // bundle. This argument should only be set by the build process. + // + // example: + // A particular widget may define one or more resource bundles, + // structured in a program as follows, where moduleName is + // mycode.mywidget and bundleNames available include bundleone and + // bundletwo: + // | ... + // | mycode/ + // | mywidget/ + // | nls/ + // | bundleone.js (the fallback translation, English in this example) + // | bundletwo.js (also a fallback translation) + // | de/ + // | bundleone.js + // | bundletwo.js + // | de-at/ + // | bundleone.js + // | en/ + // | (empty; use the fallback translation) + // | en-us/ + // | bundleone.js + // | en-gb/ + // | bundleone.js + // | es/ + // | bundleone.js + // | bundletwo.js + // | ...etc + // | ... + // + + d.require("dojo.i18n"); + d.i18n._requireLocalization.apply(d.hostenv, arguments); + }; + + + var ore = new RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$"), + ire = new RegExp("^((([^\\[:]+):)?([^@]+)@)?(\\[([^\\]]+)\\]|([^\\[:]*))(:([0-9]+))?$"); + + dojo._Url = function(/*dojo._Url|String...*/){ + // summary: + // Constructor to create an object representing a URL. + // It is marked as private, since we might consider removing + // or simplifying it. + // description: + // Each argument is evaluated in order relative to the next until + // a canonical uri is produced. To get an absolute Uri relative to + // the current document use: + // new dojo._Url(document.baseURI, url) + + var n = null, + _a = arguments, + uri = [_a[0]]; + // resolve uri components relative to each other + for(var i = 1; i<_a.length; i++){ + if(!_a[i]){ continue; } + + // Safari doesn't support this.constructor so we have to be explicit + // FIXME: Tracked (and fixed) in Webkit bug 3537. + // http://bugs.webkit.org/show_bug.cgi?id=3537 + var relobj = new d._Url(_a[i]+""), + uriobj = new d._Url(uri[0]+""); + + if( + relobj.path == "" && + !relobj.scheme && + !relobj.authority && + !relobj.query + ){ + if(relobj.fragment != n){ + uriobj.fragment = relobj.fragment; + } + relobj = uriobj; + }else if(!relobj.scheme){ + relobj.scheme = uriobj.scheme; + + if(!relobj.authority){ + relobj.authority = uriobj.authority; + + if(relobj.path.charAt(0) != "/"){ + var path = uriobj.path.substring(0, + uriobj.path.lastIndexOf("/") + 1) + relobj.path; + + var segs = path.split("/"); + for(var j = 0; j < segs.length; j++){ + if(segs[j] == "."){ + // flatten "./" references + if(j == segs.length - 1){ + segs[j] = ""; + }else{ + segs.splice(j, 1); + j--; + } + }else if(j > 0 && !(j == 1 && segs[0] == "") && + segs[j] == ".." && segs[j-1] != ".."){ + // flatten "../" references + if(j == (segs.length - 1)){ + segs.splice(j, 1); + segs[j - 1] = ""; + }else{ + segs.splice(j - 1, 2); + j -= 2; + } + } + } + relobj.path = segs.join("/"); + } + } + } + + uri = []; + if(relobj.scheme){ + uri.push(relobj.scheme, ":"); + } + if(relobj.authority){ + uri.push("//", relobj.authority); + } + uri.push(relobj.path); + if(relobj.query){ + uri.push("?", relobj.query); + } + if(relobj.fragment){ + uri.push("#", relobj.fragment); + } + } + + this.uri = uri.join(""); + + // break the uri into its main components + var r = this.uri.match(ore); + + this.scheme = r[2] || (r[1] ? "" : n); + this.authority = r[4] || (r[3] ? "" : n); + this.path = r[5]; // can never be undefined + this.query = r[7] || (r[6] ? "" : n); + this.fragment = r[9] || (r[8] ? "" : n); + + if(this.authority != n){ + // server based naming authority + r = this.authority.match(ire); + + this.user = r[3] || n; + this.password = r[4] || n; + this.host = r[6] || r[7]; // ipv6 || ipv4 + this.port = r[9] || n; + } + } + + dojo._Url.prototype.toString = function(){ return this.uri; }; + + dojo.moduleUrl = function(/*String*/module, /*dojo._Url||String*/url){ + // summary: + // Returns a `dojo._Url` object relative to a module. + // example: + // | var pngPath = dojo.moduleUrl("acme","images/small.png"); + // | console.dir(pngPath); // list the object properties + // | // create an image and set it's source to pngPath's value: + // | var img = document.createElement("img"); + // | // NOTE: we assign the string representation of the url object + // | img.src = pngPath.toString(); + // | // add our image to the document + // | dojo.body().appendChild(img); + // example: + // you may de-reference as far as you like down the package + // hierarchy. This is sometimes handy to avoid lenghty relative + // urls or for building portable sub-packages. In this example, + // the `acme.widget` and `acme.util` directories may be located + // under different roots (see `dojo.registerModulePath`) but the + // the modules which reference them can be unaware of their + // relative locations on the filesystem: + // | // somewhere in a configuration block + // | dojo.registerModulePath("acme.widget", "../../acme/widget"); + // | dojo.registerModulePath("acme.util", "../../util"); + // | + // | // ... + // | + // | // code in a module using acme resources + // | var tmpltPath = dojo.moduleUrl("acme.widget","templates/template.html"); + // | var dataPath = dojo.moduleUrl("acme.util","resources/data.json"); + + var loc = d._getModuleSymbols(module).join('/'); + if(!loc){ return null; } + if(loc.lastIndexOf("/") != loc.length-1){ + loc += "/"; + } + + //If the path is an absolute path (starts with a / or is on another + //domain/xdomain) then don't add the baseUrl. + var colonIndex = loc.indexOf(":"); + if(loc.charAt(0) != "/" && (colonIndex == -1 || colonIndex > loc.indexOf("/"))){ + loc = d.baseUrl + loc; + } + + return new d._Url(loc, url); // dojo._Url + } +})(); + +/*===== +dojo.isBrowser = { + // example: + // | if(dojo.isBrowser){ ... } +}; + +dojo.isFF = { + // example: + // | if(dojo.isFF > 1){ ... } +}; + +dojo.isIE = { + // example: + // | if(dojo.isIE > 6){ + // | // we are IE7 + // | } +}; + +dojo.isSafari = { + // example: + // | if(dojo.isSafari){ ... } + // example: + // Detect iPhone: + // | if(dojo.isSafari && navigator.userAgent.indexOf("iPhone") != -1){ + // | // we are iPhone. Note, iPod touch reports "iPod" above and fails this test. + // | } +}; + +dojo = { + // isBrowser: Boolean + // True if the client is a web-browser + isBrowser: true, + // isFF: Number | undefined + // Version as a Number if client is FireFox. undefined otherwise. Corresponds to + // major detected FireFox version (1.5, 2, 3, etc.) + isFF: 2, + // isIE: Number | undefined + // Version as a Number if client is MSIE(PC). undefined otherwise. Corresponds to + // major detected IE version (6, 7, 8, etc.) + isIE: 6, + // isKhtml: Number | undefined + // Version as a Number if client is a KHTML browser. undefined otherwise. Corresponds to major + // detected version. + isKhtml: 0, + // isWebKit: Number | undefined + // Version as a Number if client is a WebKit-derived browser (Konqueror, + // Safari, Chrome, etc.). undefined otherwise. + isWebKit: 0, + // isMozilla: Number | undefined + // Version as a Number if client is a Mozilla-based browser (Firefox, + // SeaMonkey). undefined otherwise. Corresponds to major detected version. + isMozilla: 0, + // isOpera: Number | undefined + // Version as a Number if client is Opera. undefined otherwise. Corresponds to + // major detected version. + isOpera: 0, + // isSafari: Number | undefined + // Version as a Number if client is Safari or iPhone. undefined otherwise. + isSafari: 0, + // isChrome: Number | undefined + // Version as a Number if client is Chrome browser. undefined otherwise. + isChrome: 0 + // isMac: Boolean + // True if the client runs on Mac +} +=====*/ + +if(typeof window != 'undefined'){ + dojo.isBrowser = true; + dojo._name = "browser"; + + + // attempt to figure out the path to dojo if it isn't set in the config + (function(){ + var d = dojo; + + // this is a scope protection closure. We set browser versions and grab + // the URL we were loaded from here. + + // grab the node we were loaded from + if(document && document.getElementsByTagName){ + var scripts = document.getElementsByTagName("script"); + var rePkg = /dojo(\.xd)?\.js(\W|$)/i; + for(var i = 0; i < scripts.length; i++){ + var src = scripts[i].getAttribute("src"); + if(!src){ continue; } + var m = src.match(rePkg); + if(m){ + // find out where we came from + if(!d.config.baseUrl){ + d.config.baseUrl = src.substring(0, m.index); + } + // and find out if we need to modify our behavior + var cfg = scripts[i].getAttribute("djConfig"); + if(cfg){ + var cfgo = eval("({ "+cfg+" })"); + for(var x in cfgo){ + dojo.config[x] = cfgo[x]; + } + } + break; // "first Dojo wins" + } + } + } + d.baseUrl = d.config.baseUrl; + + // fill in the rendering support information in dojo.render.* + var n = navigator; + var dua = n.userAgent, + dav = n.appVersion, + tv = parseFloat(dav); + + if(dua.indexOf("Opera") >= 0){ d.isOpera = tv; } + if(dua.indexOf("AdobeAIR") >= 0){ d.isAIR = 1; } + d.isKhtml = (dav.indexOf("Konqueror") >= 0) ? tv : 0; + d.isWebKit = parseFloat(dua.split("WebKit/")[1]) || undefined; + d.isChrome = parseFloat(dua.split("Chrome/")[1]) || undefined; + d.isMac = dav.indexOf("Macintosh") >= 0; + + // safari detection derived from: + // http://developer.apple.com/internet/safari/faq.html#anchor2 + // http://developer.apple.com/internet/safari/uamatrix.html + var index = Math.max(dav.indexOf("WebKit"), dav.indexOf("Safari"), 0); + if(index && !dojo.isChrome){ + // try to grab the explicit Safari version first. If we don't get + // one, look for less than 419.3 as the indication that we're on something + // "Safari 2-ish". + d.isSafari = parseFloat(dav.split("Version/")[1]); + if(!d.isSafari || parseFloat(dav.substr(index + 7)) <= 419.3){ + d.isSafari = 2; + } + } + + if(dua.indexOf("Gecko") >= 0 && !d.isKhtml && !d.isWebKit){ d.isMozilla = d.isMoz = tv; } + if(d.isMoz){ + //We really need to get away from this. Consider a sane isGecko approach for the future. + d.isFF = parseFloat(dua.split("Firefox/")[1] || dua.split("Minefield/")[1]) || undefined; + } + if(document.all && !d.isOpera){ + d.isIE = parseFloat(dav.split("MSIE ")[1]) || undefined; + //In cases where the page has an HTTP header or META tag with + //X-UA-Compatible, then it is in emulation mode. + //Make sure isIE reflects the desired version. + //document.documentMode of 5 means quirks mode. + //Only switch the value if documentMode's major version + //is different from isIE's major version. + var mode = document.documentMode; + if(mode && mode != 5 && Math.floor(d.isIE) != mode){ + d.isIE = mode; + } + } + + //Workaround to get local file loads of dojo to work on IE 7 + //by forcing to not use native xhr. + if(dojo.isIE && window.location.protocol === "file:"){ + dojo.config.ieForceActiveXXhr=true; + } + + d.isQuirks = document.compatMode == "BackCompat"; + + // TODO: is the HTML LANG attribute relevant? + d.locale = dojo.config.locale || (d.isIE ? n.userLanguage : n.language).toLowerCase(); + + // These are in order of decreasing likelihood; this will change in time. + d._XMLHTTP_PROGIDS = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0']; + + d._xhrObj = function(){ + // summary: + // does the work of portably generating a new XMLHTTPRequest object. + var http, last_e; + if(!dojo.isIE || !dojo.config.ieForceActiveXXhr){ + try{ http = new XMLHttpRequest(); }catch(e){} + } + if(!http){ + for(var i=0; i<3; ++i){ + var progid = d._XMLHTTP_PROGIDS[i]; + try{ + http = new ActiveXObject(progid); + }catch(e){ + last_e = e; + } + + if(http){ + d._XMLHTTP_PROGIDS = [progid]; // so faster next time + break; + } + } + } + + if(!http){ + throw new Error("XMLHTTP not available: "+last_e); + } + + return http; // XMLHTTPRequest instance + } + + d._isDocumentOk = function(http){ + var stat = http.status || 0, + lp = location.protocol; + return (stat >= 200 && stat < 300) || // Boolean + stat == 304 || // allow any 2XX response code + stat == 1223 || // get it out of the cache + // Internet Explorer mangled the status code OR we're Titanium/browser chrome/chrome extension requesting a local file + (!stat && (lp == "file:" || lp == "chrome:" || lp == "chrome-extension:" || lp == "app:") ); + } + + //See if base tag is in use. + //This is to fix http://trac.dojotoolkit.org/ticket/3973, + //but really, we need to find out how to get rid of the dojo._Url reference + //below and still have DOH work with the dojo.i18n test following some other + //test that uses the test frame to load a document (trac #2757). + //Opera still has problems, but perhaps a larger issue of base tag support + //with XHR requests (hasBase is true, but the request is still made to document + //path, not base path). + var owloc = window.location+""; + var base = document.getElementsByTagName("base"); + var hasBase = (base && base.length > 0); + + d._getText = function(/*URI*/ uri, /*Boolean*/ fail_ok){ + // summary: Read the contents of the specified uri and return those contents. + // uri: + // A relative or absolute uri. If absolute, it still must be in + // the same "domain" as we are. + // fail_ok: + // Default false. If fail_ok and loading fails, return null + // instead of throwing. + // returns: The response text. null is returned when there is a + // failure and failure is okay (an exception otherwise) + + // NOTE: must be declared before scope switches ie. this._xhrObj() + var http = d._xhrObj(); + + if(!hasBase && dojo._Url){ + uri = (new dojo._Url(owloc, uri)).toString(); + } + + if(d.config.cacheBust){ + //Make sure we have a string before string methods are used on uri + uri += ""; + uri += (uri.indexOf("?") == -1 ? "?" : "&") + String(d.config.cacheBust).replace(/\W+/g,""); + } + + http.open('GET', uri, false); + try{ + http.send(null); + if(!d._isDocumentOk(http)){ + var err = Error("Unable to load "+uri+" status:"+ http.status); + err.status = http.status; + err.responseText = http.responseText; + throw err; + } + }catch(e){ + if(fail_ok){ return null; } // null + // rethrow the exception + throw e; + } + return http.responseText; // String + } + + + var _w = window; + var _handleNodeEvent = function(/*String*/evtName, /*Function*/fp){ + // summary: + // non-destructively adds the specified function to the node's + // evtName handler. + // evtName: should be in the form "onclick" for "onclick" handlers. + // Make sure you pass in the "on" part. + var _a = _w.attachEvent || _w.addEventListener; + evtName = _w.attachEvent ? evtName : evtName.substring(2); + _a(evtName, function(){ + fp.apply(_w, arguments); + }, false); + }; + + + d._windowUnloaders = []; + + d.windowUnloaded = function(){ + // summary: + // signal fired by impending window destruction. You may use + // dojo.addOnWindowUnload() to register a listener for this + // event. NOTE: if you wish to dojo.connect() to this method + // to perform page/application cleanup, be aware that this + // event WILL NOT fire if no handler has been registered with + // dojo.addOnWindowUnload. This behavior started in Dojo 1.3. + // Previous versions always triggered dojo.windowUnloaded. See + // dojo.addOnWindowUnload for more info. + var mll = d._windowUnloaders; + while(mll.length){ + (mll.pop())(); + } + d = null; + }; + + var _onWindowUnloadAttached = 0; + d.addOnWindowUnload = function(/*Object?|Function?*/obj, /*String|Function?*/functionName){ + // summary: + // registers a function to be triggered when window.onunload + // fires. + // description: + // The first time that addOnWindowUnload is called Dojo + // will register a page listener to trigger your unload + // handler with. Note that registering these handlers may + // destory "fastback" page caching in browsers that support + // it. Be careful trying to modify the DOM or access + // JavaScript properties during this phase of page unloading: + // they may not always be available. Consider + // dojo.addOnUnload() if you need to modify the DOM or do + // heavy JavaScript work since it fires at the eqivalent of + // the page's "onbeforeunload" event. + // example: + // | dojo.addOnWindowUnload(functionPointer) + // | dojo.addOnWindowUnload(object, "functionName"); + // | dojo.addOnWindowUnload(object, function(){ /* ... */}); + + d._onto(d._windowUnloaders, obj, functionName); + if(!_onWindowUnloadAttached){ + _onWindowUnloadAttached = 1; + _handleNodeEvent("onunload", d.windowUnloaded); + } + }; + + var _onUnloadAttached = 0; + d.addOnUnload = function(/*Object?|Function?*/obj, /*String|Function?*/functionName){ + // summary: + // registers a function to be triggered when the page unloads. + // description: + // The first time that addOnUnload is called Dojo will + // register a page listener to trigger your unload handler + // with. + // + // In a browser enviroment, the functions will be triggered + // during the window.onbeforeunload event. Be careful of doing + // too much work in an unload handler. onbeforeunload can be + // triggered if a link to download a file is clicked, or if + // the link is a javascript: link. In these cases, the + // onbeforeunload event fires, but the document is not + // actually destroyed. So be careful about doing destructive + // operations in a dojo.addOnUnload callback. + // + // Further note that calling dojo.addOnUnload will prevent + // browsers from using a "fast back" cache to make page + // loading via back button instantaneous. + // example: + // | dojo.addOnUnload(functionPointer) + // | dojo.addOnUnload(object, "functionName") + // | dojo.addOnUnload(object, function(){ /* ... */}); + + d._onto(d._unloaders, obj, functionName); + if(!_onUnloadAttached){ + _onUnloadAttached = 1; + _handleNodeEvent("onbeforeunload", dojo.unloaded); + } + }; + + })(); + + //START DOMContentLoaded + dojo._initFired = false; + dojo._loadInit = function(e){ + if(dojo._scrollIntervalId){ + clearInterval(dojo._scrollIntervalId); + dojo._scrollIntervalId = 0; + } + + if(!dojo._initFired){ + dojo._initFired = true; + + //Help out IE to avoid memory leak. + if(!dojo.config.afterOnLoad && window.detachEvent){ + window.detachEvent("onload", dojo._loadInit); + } + + if(dojo._inFlightCount == 0){ + dojo._modulesLoaded(); + } + } + } + + if(!dojo.config.afterOnLoad){ + if(document.addEventListener){ + //Standards. Hooray! Assumption here that if standards based, + //it knows about DOMContentLoaded. It is OK if it does not, the fall through + //to window onload should be good enough. + document.addEventListener("DOMContentLoaded", dojo._loadInit, false); + window.addEventListener("load", dojo._loadInit, false); + }else if(window.attachEvent){ + window.attachEvent("onload", dojo._loadInit); + + //DOMContentLoaded approximation. Diego Perini found this MSDN article + //that indicates doScroll is available after DOM ready, so do a setTimeout + //to check when it is available. + //http://msdn.microsoft.com/en-us/library/ms531426.aspx + if(!dojo.config.skipIeDomLoaded && self === self.top){ + dojo._scrollIntervalId = setInterval(function (){ + try{ + //When dojo is loaded into an iframe in an IE HTML Application + //(HTA), such as in a selenium test, javascript in the iframe + //can't see anything outside of it, so self===self.top is true, + //but the iframe is not the top window and doScroll will be + //available before document.body is set. Test document.body + //before trying the doScroll trick + if(document.body){ + document.documentElement.doScroll("left"); + dojo._loadInit(); + } + }catch (e){} + }, 30); + } + } + } + + if(dojo.isIE){ + try{ + (function(){ + document.namespaces.add("v", "urn:schemas-microsoft-com:vml"); + var vmlElems = ["*", "group", "roundrect", "oval", "shape", "rect", "imagedata", "path", "textpath", "text"], + i = 0, l = 1, s = document.createStyleSheet(); + if(dojo.isIE >= 8){ + i = 1; + l = vmlElems.length; + } + for(; i < l; ++i){ + s.addRule("v\\:" + vmlElems[i], "behavior:url(#default#VML); display:inline-block"); + } + })(); + }catch(e){} + } + //END DOMContentLoaded + + + /* + OpenAjax.subscribe("OpenAjax", "onload", function(){ + if(dojo._inFlightCount == 0){ + dojo._modulesLoaded(); + } + }); + + OpenAjax.subscribe("OpenAjax", "onunload", function(){ + dojo.unloaded(); + }); + */ +} //if (typeof window != 'undefined') + +//Register any module paths set up in djConfig. Need to do this +//in the hostenvs since hostenv_browser can read djConfig from a +//script tag's attribute. +(function(){ + var mp = dojo.config["modulePaths"]; + if(mp){ + for(var param in mp){ + dojo.registerModulePath(param, mp[param]); + } + } +})(); + +//Load debug code if necessary. +if(dojo.config.isDebug){ + dojo.require("dojo._firebug.firebug"); +} + +if(dojo.config.debugAtAllCosts){ + dojo.config.useXDomain = true; + dojo.require("dojo._base._loader.loader_xd"); + dojo.require("dojo._base._loader.loader_debug"); + dojo.require("dojo.i18n"); +} + +if(!dojo._hasResource["dojo._base.lang"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo._base.lang"] = true; +dojo.provide("dojo._base.lang"); + +(function(){ + var d = dojo, opts = Object.prototype.toString; + + // Crockford (ish) functions + + dojo.isString = function(/*anything*/ it){ + // summary: + // Return true if it is a String + return (typeof it == "string" || it instanceof String); // Boolean + } + + dojo.isArray = function(/*anything*/ it){ + // summary: + // Return true if it is an Array. + // Does not work on Arrays created in other windows. + return it && (it instanceof Array || typeof it == "array"); // Boolean + } + + dojo.isFunction = function(/*anything*/ it){ + // summary: + // Return true if it is a Function + return opts.call(it) === "[object Function]"; + }; + + dojo.isObject = function(/*anything*/ it){ + // summary: + // Returns true if it is a JavaScript object (or an Array, a Function + // or null) + return it !== undefined && + (it === null || typeof it == "object" || d.isArray(it) || d.isFunction(it)); // Boolean + } + + dojo.isArrayLike = function(/*anything*/ it){ + // summary: + // similar to dojo.isArray() but more permissive + // description: + // Doesn't strongly test for "arrayness". Instead, settles for "isn't + // a string or number and has a length property". Arguments objects + // and DOM collections will return true when passed to + // dojo.isArrayLike(), but will return false when passed to + // dojo.isArray(). + // returns: + // If it walks like a duck and quacks like a duck, return `true` + return it && it !== undefined && // Boolean + // keep out built-in constructors (Number, String, ...) which have length + // properties + !d.isString(it) && !d.isFunction(it) && + !(it.tagName && it.tagName.toLowerCase() == 'form') && + (d.isArray(it) || isFinite(it.length)); + } + + dojo.isAlien = function(/*anything*/ it){ + // summary: + // Returns true if it is a built-in function or some other kind of + // oddball that *should* report as a function but doesn't + return it && !d.isFunction(it) && /\{\s*\[native code\]\s*\}/.test(String(it)); // Boolean + } + + dojo.extend = function(/*Object*/ constructor, /*Object...*/ props){ + // summary: + // Adds all properties and methods of props to constructor's + // prototype, making them available to all instances created with + // constructor. + for(var i=1, l=arguments.length; i<l; i++){ + d._mixin(constructor.prototype, arguments[i]); + } + return constructor; // Object + } + + dojo._hitchArgs = function(scope, method /*,...*/){ + var pre = d._toArray(arguments, 2); + var named = d.isString(method); + return function(){ + // arrayify arguments + var args = d._toArray(arguments); + // locate our method + var f = named ? (scope||d.global)[method] : method; + // invoke with collected args + return f && f.apply(scope || this, pre.concat(args)); // mixed + } // Function + } + + dojo.hitch = function(/*Object*/scope, /*Function|String*/method /*,...*/){ + // summary: + // Returns a function that will only ever execute in the a given scope. + // This allows for easy use of object member functions + // in callbacks and other places in which the "this" keyword may + // otherwise not reference the expected scope. + // Any number of default positional arguments may be passed as parameters + // beyond "method". + // Each of these values will be used to "placehold" (similar to curry) + // for the hitched function. + // scope: + // The scope to use when method executes. If method is a string, + // scope is also the object containing method. + // method: + // A function to be hitched to scope, or the name of the method in + // scope to be hitched. + // example: + // | dojo.hitch(foo, "bar")(); + // runs foo.bar() in the scope of foo + // example: + // | dojo.hitch(foo, myFunction); + // returns a function that runs myFunction in the scope of foo + // example: + // Expansion on the default positional arguments passed along from + // hitch. Passed args are mixed first, additional args after. + // | var foo = { bar: function(a, b, c){ console.log(a, b, c); } }; + // | var fn = dojo.hitch(foo, "bar", 1, 2); + // | fn(3); // logs "1, 2, 3" + // example: + // | var foo = { bar: 2 }; + // | dojo.hitch(foo, function(){ this.bar = 10; })(); + // execute an anonymous function in scope of foo + + if(arguments.length > 2){ + return d._hitchArgs.apply(d, arguments); // Function + } + if(!method){ + method = scope; + scope = null; + } + if(d.isString(method)){ + scope = scope || d.global; + if(!scope[method]){ throw(['dojo.hitch: scope["', method, '"] is null (scope="', scope, '")'].join('')); } + return function(){ return scope[method].apply(scope, arguments || []); }; // Function + } + return !scope ? method : function(){ return method.apply(scope, arguments || []); }; // Function + } + + /*===== + dojo.delegate = function(obj, props){ + // summary: + // Returns a new object which "looks" to obj for properties which it + // does not have a value for. Optionally takes a bag of properties to + // seed the returned object with initially. + // description: + // This is a small implementaton of the Boodman/Crockford delegation + // pattern in JavaScript. An intermediate object constructor mediates + // the prototype chain for the returned object, using it to delegate + // down to obj for property lookup when object-local lookup fails. + // This can be thought of similarly to ES4's "wrap", save that it does + // not act on types but rather on pure objects. + // obj: + // The object to delegate to for properties not found directly on the + // return object or in props. + // props: + // an object containing properties to assign to the returned object + // returns: + // an Object of anonymous type + // example: + // | var foo = { bar: "baz" }; + // | var thinger = dojo.delegate(foo, { thud: "xyzzy"}); + // | thinger.bar == "baz"; // delegated to foo + // | foo.thud == undefined; // by definition + // | thinger.thud == "xyzzy"; // mixed in from props + // | foo.bar = "thonk"; + // | thinger.bar == "thonk"; // still delegated to foo's bar + } + =====*/ + + dojo.delegate = dojo._delegate = (function(){ + // boodman/crockford delegation w/ cornford optimization + function TMP(){} + return function(obj, props){ + TMP.prototype = obj; + var tmp = new TMP(); + TMP.prototype = null; + if(props){ + d._mixin(tmp, props); + } + return tmp; // Object + } + })(); + + /*===== + dojo._toArray = function(obj, offset, startWith){ + // summary: + // Converts an array-like object (i.e. arguments, DOMCollection) to an + // array. Returns a new Array with the elements of obj. + // obj: Object + // the object to "arrayify". We expect the object to have, at a + // minimum, a length property which corresponds to integer-indexed + // properties. + // offset: Number? + // the location in obj to start iterating from. Defaults to 0. + // Optional. + // startWith: Array? + // An array to pack with the properties of obj. If provided, + // properties in obj are appended at the end of startWith and + // startWith is the returned array. + } + =====*/ + + var efficient = function(obj, offset, startWith){ + return (startWith||[]).concat(Array.prototype.slice.call(obj, offset||0)); + }; + + var slow = function(obj, offset, startWith){ + var arr = startWith||[]; + for(var x = offset || 0; x < obj.length; x++){ + arr.push(obj[x]); + } + return arr; + }; + + dojo._toArray = + d.isIE ? function(obj){ + return ((obj.item) ? slow : efficient).apply(this, arguments); + } : + efficient; + + dojo.partial = function(/*Function|String*/method /*, ...*/){ + // summary: + // similar to hitch() except that the scope object is left to be + // whatever the execution context eventually becomes. + // description: + // Calling dojo.partial is the functional equivalent of calling: + // | dojo.hitch(null, funcName, ...); + var arr = [ null ]; + return d.hitch.apply(d, arr.concat(d._toArray(arguments))); // Function + } + + var extraNames = d._extraNames, extraLen = extraNames.length, empty = {}; + + dojo.clone = function(/*anything*/ o){ + // summary: + // Clones objects (including DOM nodes) and all children. + // Warning: do not clone cyclic structures. + if(!o || typeof o != "object" || d.isFunction(o)){ + // null, undefined, any non-object, or function + return o; // anything + } + if(o.nodeType && "cloneNode" in o){ + // DOM Node + return o.cloneNode(true); // Node + } + if(o instanceof Date){ + // Date + return new Date(o.getTime()); // Date + } + var r, i, l, s, name; + if(d.isArray(o)){ + // array + r = []; + for(i = 0, l = o.length; i < l; ++i){ + if(i in o){ + r.push(d.clone(o[i])); + } + } +// we don't clone functions for performance reasons +// }else if(d.isFunction(o)){ +// // function +// r = function(){ return o.apply(this, arguments); }; + }else{ + // generic objects + r = o.constructor ? new o.constructor() : {}; + } + for(name in o){ + // the "tobj" condition avoid copying properties in "source" + // inherited from Object.prototype. For example, if target has a custom + // toString() method, don't overwrite it with the toString() method + // that source inherited from Object.prototype + s = o[name]; + if(!(name in r) || (r[name] !== s && (!(name in empty) || empty[name] !== s))){ + r[name] = d.clone(s); + } + } + // IE doesn't recognize some custom functions in for..in + if(extraLen){ + for(i = 0; i < extraLen; ++i){ + name = extraNames[i]; + s = o[name]; + if(!(name in r) || (r[name] !== s && (!(name in empty) || empty[name] !== s))){ + r[name] = s; // functions only, we don't clone them + } + } + } + return r; // Object + } + + /*===== + dojo.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 selected for inclusion into the base due + // to its compact size and relatively good performance + // (see [Steven Levithan's blog](http://blog.stevenlevithan.com/archives/faster-trim-javascript) + // Uses String.prototype.trim instead, if available. + // The fastest but longest version of this function is located at + // dojo.string.trim() + return ""; // String + } + =====*/ + + dojo.trim = String.prototype.trim ? + function(str){ return str.trim(); } : + function(str){ return str.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); }; + + /*===== + dojo.replace = function(tmpl, map, pattern){ + // summary: + // Performs parameterized substitutions on a string. Throws an + // exception if any parameter is unmatched. + // tmpl: String + // String to be used as a template. + // map: Object|Function + // If an object, it is used as a dictionary to look up substitutions. + // If a function, it is called for every substitution with following + // parameters: a whole match, a name, an offset, and the whole template + // string (see https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String/replace + // for more details). + // pattern: RegEx? + // Optional regular expression objects that overrides the default pattern. + // Must be global and match one item. The default is: /\{([^\}]+)\}/g, + // which matches patterns like that: "{xxx}", where "xxx" is any sequence + // of characters, which doesn't include "}". + // returns: String + // Returns the substituted string. + // example: + // | // uses a dictionary for substitutions: + // | dojo.replace("Hello, {name.first} {name.last} AKA {nick}!", + // | { + // | nick: "Bob", + // | name: { + // | first: "Robert", + // | middle: "X", + // | last: "Cringely" + // | } + // | }); + // | // returns: Hello, Robert Cringely AKA Bob! + // example: + // | // uses an array for substitutions: + // | dojo.replace("Hello, {0} {2}!", + // | ["Robert", "X", "Cringely"]); + // | // returns: Hello, Robert Cringely! + // example: + // | // uses a function for substitutions: + // | function sum(a){ + // | var t = 0; + // | dojo.forEach(a, function(x){ t += x; }); + // | return t; + // | } + // | dojo.replace( + // | "{count} payments averaging {avg} USD per payment.", + // | dojo.hitch( + // | { payments: [11, 16, 12] }, + // | function(_, key){ + // | switch(key){ + // | case "count": return this.payments.length; + // | case "min": return Math.min.apply(Math, this.payments); + // | case "max": return Math.max.apply(Math, this.payments); + // | case "sum": return sum(this.payments); + // | case "avg": return sum(this.payments) / this.payments.length; + // | } + // | } + // | ) + // | ); + // | // prints: 3 payments averaging 13 USD per payment. + // example: + // | // uses an alternative PHP-like pattern for substitutions: + // | dojo.replace("Hello, ${0} ${2}!", + // | ["Robert", "X", "Cringely"], /\$\{([^\}]+)\}/g); + // | // returns: Hello, Robert Cringely! + return ""; // String + } + =====*/ + + var _pattern = /\{([^\}]+)\}/g; + dojo.replace = function(tmpl, map, pattern){ + return tmpl.replace(pattern || _pattern, d.isFunction(map) ? + map : function(_, k){ return d.getObject(k, false, map); }); + }; +})(); + +} + +if(!dojo._hasResource["dojo._base.array"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo._base.array"] = true; + +dojo.provide("dojo._base.array"); + +(function(){ + var _getParts = function(arr, obj, cb){ + return [ + (typeof arr == "string") ? arr.split("") : arr, + obj || dojo.global, + // FIXME: cache the anonymous functions we create here? + (typeof cb == "string") ? new Function("item", "index", "array", cb) : cb + ]; + }; + + var everyOrSome = function(/*Boolean*/every, /*Array|String*/arr, /*Function|String*/callback, /*Object?*/thisObject){ + var _p = _getParts(arr, thisObject, callback); arr = _p[0]; + for(var i=0,l=arr.length; i<l; ++i){ + var result = !!_p[2].call(_p[1], arr[i], i, arr); + if(every ^ result){ + return result; // Boolean + } + } + return every; // Boolean + }; + + dojo.mixin(dojo, { + indexOf: function( /*Array*/ array, + /*Object*/ value, + /*Integer?*/ fromIndex, + /*Boolean?*/ findLast){ + // summary: + // locates the first index of the provided value in the + // passed array. If the value is not found, -1 is returned. + // description: + // This method corresponds to the JavaScript 1.6 Array.indexOf method, with one difference: when + // run over sparse arrays, the Dojo function invokes the callback for every index whereas JavaScript + // 1.6's indexOf skips the holes in the sparse array. + // For details on this method, see: + // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/indexOf + + var step = 1, end = array.length || 0, i = 0; + if(findLast){ + i = end - 1; + step = end = -1; + } + if(fromIndex != undefined){ i = fromIndex; } + if((findLast && i > end) || i < end){ + for(; i != end; i += step){ + if(array[i] == value){ return i; } + } + } + return -1; // Number + }, + + lastIndexOf: function(/*Array*/array, /*Object*/value, /*Integer?*/fromIndex){ + // summary: + // locates the last index of the provided value in the passed + // array. If the value is not found, -1 is returned. + // description: + // This method corresponds to the JavaScript 1.6 Array.lastIndexOf method, with one difference: when + // run over sparse arrays, the Dojo function invokes the callback for every index whereas JavaScript + // 1.6's lastIndexOf skips the holes in the sparse array. + // For details on this method, see: + // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/lastIndexOf + return dojo.indexOf(array, value, fromIndex, true); // Number + }, + + forEach: function(/*Array|String*/arr, /*Function|String*/callback, /*Object?*/thisObject){ + // summary: + // for every item in arr, callback is invoked. Return values are ignored. + // If you want to break out of the loop, consider using dojo.every() or dojo.some(). + // forEach does not allow breaking out of the loop over the items in arr. + // arr: + // the array to iterate over. If a string, operates on individual characters. + // callback: + // a function is invoked with three arguments: item, index, and array + // thisObject: + // may be used to scope the call to callback + // description: + // This function corresponds to the JavaScript 1.6 Array.forEach() method, with one difference: when + // run over sparse arrays, this implemenation passes the "holes" in the sparse array to + // the callback function with a value of undefined. JavaScript 1.6's forEach skips the holes in the sparse array. + // For more details, see: + // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/forEach + // example: + // | // log out all members of the array: + // | dojo.forEach( + // | [ "thinger", "blah", "howdy", 10 ], + // | function(item){ + // | console.log(item); + // | } + // | ); + // example: + // | // log out the members and their indexes + // | dojo.forEach( + // | [ "thinger", "blah", "howdy", 10 ], + // | function(item, idx, arr){ + // | console.log(item, "at index:", idx); + // | } + // | ); + // example: + // | // use a scoped object member as the callback + // | + // | var obj = { + // | prefix: "logged via obj.callback:", + // | callback: function(item){ + // | console.log(this.prefix, item); + // | } + // | }; + // | + // | // specifying the scope function executes the callback in that scope + // | dojo.forEach( + // | [ "thinger", "blah", "howdy", 10 ], + // | obj.callback, + // | obj + // | ); + // | + // | // alternately, we can accomplish the same thing with dojo.hitch() + // | dojo.forEach( + // | [ "thinger", "blah", "howdy", 10 ], + // | dojo.hitch(obj, "callback") + // | ); + + // match the behavior of the built-in forEach WRT empty arrs + if(!arr || !arr.length){ return; } + + // FIXME: there are several ways of handilng thisObject. Is + // dojo.global always the default context? + var _p = _getParts(arr, thisObject, callback); arr = _p[0]; + for(var i=0,l=arr.length; i<l; ++i){ + _p[2].call(_p[1], arr[i], i, arr); + } + }, + + every: function(/*Array|String*/arr, /*Function|String*/callback, /*Object?*/thisObject){ + // summary: + // Determines whether or not every item in arr satisfies the + // condition implemented by callback. + // arr: + // the array to iterate on. If a string, operates on individual characters. + // callback: + // a function is invoked with three arguments: item, index, + // and array and returns true if the condition is met. + // thisObject: + // may be used to scope the call to callback + // description: + // This function corresponds to the JavaScript 1.6 Array.every() method, with one difference: when + // run over sparse arrays, this implemenation passes the "holes" in the sparse array to + // the callback function with a value of undefined. JavaScript 1.6's every skips the holes in the sparse array. + // For more details, see: + // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/every + // example: + // | // returns false + // | dojo.every([1, 2, 3, 4], function(item){ return item>1; }); + // example: + // | // returns true + // | dojo.every([1, 2, 3, 4], function(item){ return item>0; }); + return everyOrSome(true, arr, callback, thisObject); // Boolean + }, + + some: function(/*Array|String*/arr, /*Function|String*/callback, /*Object?*/thisObject){ + // summary: + // Determines whether or not any item in arr satisfies the + // condition implemented by callback. + // arr: + // the array to iterate over. If a string, operates on individual characters. + // callback: + // a function is invoked with three arguments: item, index, + // and array and returns true if the condition is met. + // thisObject: + // may be used to scope the call to callback + // description: + // This function corresponds to the JavaScript 1.6 Array.some() method, with one difference: when + // run over sparse arrays, this implemenation passes the "holes" in the sparse array to + // the callback function with a value of undefined. JavaScript 1.6's some skips the holes in the sparse array. + // For more details, see: + // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/some + // example: + // | // is true + // | dojo.some([1, 2, 3, 4], function(item){ return item>1; }); + // example: + // | // is false + // | dojo.some([1, 2, 3, 4], function(item){ return item<1; }); + return everyOrSome(false, arr, callback, thisObject); // Boolean + }, + + map: function(/*Array|String*/arr, /*Function|String*/callback, /*Function?*/thisObject){ + // summary: + // applies callback to each element of arr and returns + // an Array with the results + // arr: + // the array to iterate on. If a string, operates on + // individual characters. + // callback: + // a function is invoked with three arguments, (item, index, + // array), and returns a value + // thisObject: + // may be used to scope the call to callback + // description: + // This function corresponds to the JavaScript 1.6 Array.map() method, with one difference: when + // run over sparse arrays, this implemenation passes the "holes" in the sparse array to + // the callback function with a value of undefined. JavaScript 1.6's map skips the holes in the sparse array. + // For more details, see: + // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/map + // example: + // | // returns [2, 3, 4, 5] + // | dojo.map([1, 2, 3, 4], function(item){ return item+1 }); + + var _p = _getParts(arr, thisObject, callback); arr = _p[0]; + var outArr = (arguments[3] ? (new arguments[3]()) : []); + for(var i=0,l=arr.length; i<l; ++i){ + outArr.push(_p[2].call(_p[1], arr[i], i, arr)); + } + return outArr; // Array + }, + + filter: function(/*Array*/arr, /*Function|String*/callback, /*Object?*/thisObject){ + // summary: + // Returns a new Array with those items from arr that match the + // condition implemented by callback. + // arr: + // the array to iterate over. + // callback: + // a function that is invoked with three arguments (item, + // index, array). The return of this function is expected to + // be a boolean which determines whether the passed-in item + // will be included in the returned array. + // thisObject: + // may be used to scope the call to callback + // description: + // This function corresponds to the JavaScript 1.6 Array.filter() method, with one difference: when + // run over sparse arrays, this implemenation passes the "holes" in the sparse array to + // the callback function with a value of undefined. JavaScript 1.6's filter skips the holes in the sparse array. + // For more details, see: + // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/filter + // example: + // | // returns [2, 3, 4] + // | dojo.filter([1, 2, 3, 4], function(item){ return item>1; }); + + var _p = _getParts(arr, thisObject, callback); arr = _p[0]; + var outArr = []; + for(var i=0,l=arr.length; i<l; ++i){ + if(_p[2].call(_p[1], arr[i], i, arr)){ + outArr.push(arr[i]); + } + } + return outArr; // Array + } + }); +})(); +/* +*/ + +} + +if(!dojo._hasResource["dojo._base.declare"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo._base.declare"] = true; +dojo.provide("dojo._base.declare"); + + + + +(function(){ + var d = dojo, mix = d._mixin, op = Object.prototype, opts = op.toString, + xtor = new Function, counter = 0, cname = "constructor"; + + function err(msg){ throw new Error("declare: " + msg); } + + // C3 Method Resolution Order (see http://www.python.org/download/releases/2.3/mro/) + function c3mro(bases){ + var result = [], roots = [{cls: 0, refs: []}], nameMap = {}, clsCount = 1, + l = bases.length, i = 0, j, lin, base, top, proto, rec, name, refs; + + // build a list of bases naming them if needed + for(; i < l; ++i){ + base = bases[i]; + if(!base){ + err("mixin #" + i + " is unknown. Did you use dojo.require to pull it in?"); + }else if(opts.call(base) != "[object Function]"){ + err("mixin #" + i + " is not a callable constructor."); + } + lin = base._meta ? base._meta.bases : [base]; + top = 0; + // add bases to the name map + for(j = lin.length - 1; j >= 0; --j){ + proto = lin[j].prototype; + if(!proto.hasOwnProperty("declaredClass")){ + proto.declaredClass = "uniqName_" + (counter++); + } + name = proto.declaredClass; + if(!nameMap.hasOwnProperty(name)){ + nameMap[name] = {count: 0, refs: [], cls: lin[j]}; + ++clsCount; + } + rec = nameMap[name]; + if(top && top !== rec){ + rec.refs.push(top); + ++top.count; + } + top = rec; + } + ++top.count; + roots[0].refs.push(top); + } + + // remove classes without external references recursively + while(roots.length){ + top = roots.pop(); + result.push(top.cls); + --clsCount; + // optimization: follow a single-linked chain + while(refs = top.refs, refs.length == 1){ + top = refs[0]; + if(!top || --top.count){ + // branch or end of chain => do not end to roots + top = 0; + break; + } + result.push(top.cls); + --clsCount; + } + if(top){ + // branch + for(i = 0, l = refs.length; i < l; ++i){ + top = refs[i]; + if(!--top.count){ + roots.push(top); + } + } + } + } + if(clsCount){ + err("can't build consistent linearization"); + } + + // calculate the superclass offset + base = bases[0]; + result[0] = base ? + base._meta && base === result[result.length - base._meta.bases.length] ? + base._meta.bases.length : 1 : 0; + + return result; + } + + function inherited(args, a, f){ + var name, chains, bases, caller, meta, base, proto, opf, pos, + cache = this._inherited = this._inherited || {}; + + // crack arguments + if(typeof args == "string"){ + name = args; + args = a; + a = f; + } + f = 0; + + caller = args.callee; + name = name || caller.nom; + if(!name){ + err("can't deduce a name to call inherited()"); + } + + meta = this.constructor._meta; + bases = meta.bases; + + pos = cache.p; + if(name != cname){ + // method + if(cache.c !== caller){ + // cache bust + pos = 0; + base = bases[0]; + meta = base._meta; + if(meta.hidden[name] !== caller){ + // error detection + chains = meta.chains; + if(chains && typeof chains[name] == "string"){ + err("calling chained method with inherited: " + name); + } + // find caller + do{ + meta = base._meta; + proto = base.prototype; + if(meta && (proto[name] === caller && proto.hasOwnProperty(name) || meta.hidden[name] === caller)){ + break; + } + }while(base = bases[++pos]); // intentional assignment + pos = base ? pos : -1; + } + } + // find next + base = bases[++pos]; + if(base){ + proto = base.prototype; + if(base._meta && proto.hasOwnProperty(name)){ + f = proto[name]; + }else{ + opf = op[name]; + do{ + proto = base.prototype; + f = proto[name]; + if(f && (base._meta ? proto.hasOwnProperty(name) : f !== opf)){ + break; + } + }while(base = bases[++pos]); // intentional assignment + } + } + f = base && f || op[name]; + }else{ + // constructor + if(cache.c !== caller){ + // cache bust + pos = 0; + meta = bases[0]._meta; + if(meta && meta.ctor !== caller){ + // error detection + chains = meta.chains; + if(!chains || chains.constructor !== "manual"){ + err("calling chained constructor with inherited"); + } + // find caller + while(base = bases[++pos]){ // intentional assignment + meta = base._meta; + if(meta && meta.ctor === caller){ + break; + } + } + pos = base ? pos : -1; + } + } + // find next + while(base = bases[++pos]){ // intentional assignment + meta = base._meta; + f = meta ? meta.ctor : base; + if(f){ + break; + } + } + f = base && f; + } + + // cache the found super method + cache.c = f; + cache.p = pos; + + // now we have the result + if(f){ + return a === true ? f : f.apply(this, a || args); + } + // intentionally if a super method was not found + } + + function getInherited(name, args){ + if(typeof name == "string"){ + return this.inherited(name, args, true); + } + return this.inherited(name, true); + } + + // emulation of "instanceof" + function isInstanceOf(cls){ + var bases = this.constructor._meta.bases; + for(var i = 0, l = bases.length; i < l; ++i){ + if(bases[i] === cls){ + return true; + } + } + return this instanceof cls; + } + + function mixOwn(target, source){ + var name, i = 0, l = d._extraNames.length; + // add props adding metadata for incoming functions skipping a constructor + for(name in source){ + if(name != cname && source.hasOwnProperty(name)){ + target[name] = source[name]; + } + } + // process unenumerable methods on IE + for(; i < l; ++i){ + name = d._extraNames[i]; + if(name != cname && source.hasOwnProperty(name)){ + target[name] = source[name]; + } + } + } + + // implementation of safe mixin function + function safeMixin(target, source){ + var name, t, i = 0, l = d._extraNames.length; + // add props adding metadata for incoming functions skipping a constructor + for(name in source){ + t = source[name]; + if((t !== op[name] || !(name in op)) && name != cname){ + if(opts.call(t) == "[object Function]"){ + // non-trivial function method => attach its name + t.nom = name; + } + target[name] = t; + } + } + // process unenumerable methods on IE + for(; i < l; ++i){ + name = d._extraNames[i]; + t = source[name]; + if((t !== op[name] || !(name in op)) && name != cname){ + if(opts.call(t) == "[object Function]"){ + // non-trivial function method => attach its name + t.nom = name; + } + target[name] = t; + } + } + return target; + } + + function extend(source){ + safeMixin(this.prototype, source); + return this; + } + + // chained constructor compatible with the legacy dojo.declare() + function chainedConstructor(bases, ctorSpecial){ + return function(){ + var a = arguments, args = a, a0 = a[0], f, i, m, + l = bases.length, preArgs; + + if(!(this instanceof a.callee)){ + // not called via new, so force it + return applyNew(a); + } + + //this._inherited = {}; + // perform the shaman's rituals of the original dojo.declare() + // 1) call two types of the preamble + if(ctorSpecial && (a0 && a0.preamble || this.preamble)){ + // full blown ritual + preArgs = new Array(bases.length); + // prepare parameters + preArgs[0] = a; + for(i = 0;;){ + // process the preamble of the 1st argument + a0 = a[0]; + if(a0){ + f = a0.preamble; + if(f){ + a = f.apply(this, a) || a; + } + } + // process the preamble of this class + f = bases[i].prototype; + f = f.hasOwnProperty("preamble") && f.preamble; + if(f){ + a = f.apply(this, a) || a; + } + // one peculiarity of the preamble: + // it is called if it is not needed, + // e.g., there is no constructor to call + // let's watch for the last constructor + // (see ticket #9795) + if(++i == l){ + break; + } + preArgs[i] = a; + } + } + // 2) call all non-trivial constructors using prepared arguments + for(i = l - 1; i >= 0; --i){ + f = bases[i]; + m = f._meta; + f = m ? m.ctor : f; + if(f){ + f.apply(this, preArgs ? preArgs[i] : a); + } + } + // 3) continue the original ritual: call the postscript + f = this.postscript; + if(f){ + f.apply(this, args); + } + }; + } + + + // chained constructor compatible with the legacy dojo.declare() + function singleConstructor(ctor, ctorSpecial){ + return function(){ + var a = arguments, t = a, a0 = a[0], f; + + if(!(this instanceof a.callee)){ + // not called via new, so force it + return applyNew(a); + } + + //this._inherited = {}; + // perform the shaman's rituals of the original dojo.declare() + // 1) call two types of the preamble + if(ctorSpecial){ + // full blown ritual + if(a0){ + // process the preamble of the 1st argument + f = a0.preamble; + if(f){ + t = f.apply(this, t) || t; + } + } + f = this.preamble; + if(f){ + // process the preamble of this class + f.apply(this, t); + // one peculiarity of the preamble: + // it is called even if it is not needed, + // e.g., there is no constructor to call + // let's watch for the last constructor + // (see ticket #9795) + } + } + // 2) call a constructor + if(ctor){ + ctor.apply(this, a); + } + // 3) continue the original ritual: call the postscript + f = this.postscript; + if(f){ + f.apply(this, a); + } + }; + } + + // plain vanilla constructor (can use inherited() to call its base constructor) + function simpleConstructor(bases){ + return function(){ + var a = arguments, i = 0, f, m; + + if(!(this instanceof a.callee)){ + // not called via new, so force it + return applyNew(a); + } + + //this._inherited = {}; + // perform the shaman's rituals of the original dojo.declare() + // 1) do not call the preamble + // 2) call the top constructor (it can use this.inherited()) + for(; f = bases[i]; ++i){ // intentional assignment + m = f._meta; + f = m ? m.ctor : f; + if(f){ + f.apply(this, a); + break; + } + } + // 3) call the postscript + f = this.postscript; + if(f){ + f.apply(this, a); + } + }; + } + + function chain(name, bases, reversed){ + return function(){ + var b, m, f, i = 0, step = 1; + if(reversed){ + i = bases.length - 1; + step = -1; + } + for(; b = bases[i]; i += step){ // intentional assignment + m = b._meta; + f = (m ? m.hidden : b.prototype)[name]; + if(f){ + f.apply(this, arguments); + } + } + }; + } + + // forceNew(ctor) + // return a new object that inherits from ctor.prototype but + // without actually running ctor on the object. + function forceNew(ctor){ + // create object with correct prototype using a do-nothing + // constructor + xtor.prototype = ctor.prototype; + var t = new xtor; + xtor.prototype = null; // clean up + return t; + } + + // applyNew(args) + // just like 'new ctor()' except that the constructor and its arguments come + // from args, which must be an array or an arguments object + function applyNew(args){ + // create an object with ctor's prototype but without + // calling ctor on it. + var ctor = args.callee, t = forceNew(ctor); + // execute the real constructor on the new object + ctor.apply(t, args); + return t; + } + + d.declare = function(className, superclass, props){ + // crack parameters + if(typeof className != "string"){ + props = superclass; + superclass = className; + className = ""; + } + props = props || {}; + + var proto, i, t, ctor, name, bases, chains, mixins = 1, parents = superclass; + + // build a prototype + if(opts.call(superclass) == "[object Array]"){ + // C3 MRO + bases = c3mro(superclass); + t = bases[0]; + mixins = bases.length - t; + superclass = bases[mixins]; + }else{ + bases = [0]; + if(superclass){ + if(opts.call(superclass) == "[object Function]"){ + t = superclass._meta; + bases = bases.concat(t ? t.bases : superclass); + }else{ + err("base class is not a callable constructor."); + } + }else if(superclass !== null){ + err("unknown base class. Did you use dojo.require to pull it in?") + } + } + if(superclass){ + for(i = mixins - 1;; --i){ + proto = forceNew(superclass); + if(!i){ + // stop if nothing to add (the last base) + break; + } + // mix in properties + t = bases[i]; + (t._meta ? mixOwn : mix)(proto, t.prototype); + // chain in new constructor + ctor = new Function; + ctor.superclass = superclass; + ctor.prototype = proto; + superclass = proto.constructor = ctor; + } + }else{ + proto = {}; + } + // add all properties + safeMixin(proto, props); + // add constructor + t = props.constructor; + if(t !== op.constructor){ + t.nom = cname; + proto.constructor = t; + } + + // collect chains and flags + for(i = mixins - 1; i; --i){ // intentional assignment + t = bases[i]._meta; + if(t && t.chains){ + chains = mix(chains || {}, t.chains); + } + } + if(proto["-chains-"]){ + chains = mix(chains || {}, proto["-chains-"]); + } + + // build ctor + t = !chains || !chains.hasOwnProperty(cname); + bases[0] = ctor = (chains && chains.constructor === "manual") ? simpleConstructor(bases) : + (bases.length == 1 ? singleConstructor(props.constructor, t) : chainedConstructor(bases, t)); + + // add meta information to the constructor + ctor._meta = {bases: bases, hidden: props, chains: chains, + parents: parents, ctor: props.constructor}; + ctor.superclass = superclass && superclass.prototype; + ctor.extend = extend; + ctor.prototype = proto; + proto.constructor = ctor; + + // add "standard" methods to the prototype + proto.getInherited = getInherited; + proto.inherited = inherited; + proto.isInstanceOf = isInstanceOf; + + // add name if specified + if(className){ + proto.declaredClass = className; + d.setObject(className, ctor); + } + + // build chains and add them to the prototype + if(chains){ + for(name in chains){ + if(proto[name] && typeof chains[name] == "string" && name != cname){ + t = proto[name] = chain(name, bases, chains[name] === "after"); + t.nom = name; + } + } + } + // chained methods do not return values + // no need to chain "invisible" functions + + return ctor; // Function + }; + + d.safeMixin = safeMixin; + + /*===== + dojo.declare = function(className, superclass, props){ + // summary: + // Create a feature-rich constructor from compact notation. + // className: String?: + // The optional name of the constructor (loosely, a "class") + // stored in the "declaredClass" property in the created prototype. + // It will be used as a global name for a created constructor. + // superclass: Function|Function[]: + // May be null, a Function, or an Array of Functions. This argument + // specifies a list of bases (the left-most one is the most deepest + // base). + // props: Object: + // An object whose properties are copied to the created prototype. + // Add an instance-initialization function by making it a property + // named "constructor". + // returns: + // New constructor function. + // description: + // Create a constructor using a compact notation for inheritance and + // prototype extension. + // + // Mixin ancestors provide a type of multiple inheritance. + // Prototypes of mixin ancestors are copied to the new class: + // changes to mixin prototypes will not affect classes to which + // they have been mixed in. + // + // Ancestors can be compound classes created by this version of + // dojo.declare. In complex cases all base classes are going to be + // linearized according to C3 MRO algorithm + // (see http://www.python.org/download/releases/2.3/mro/ for more + // details). + // + // "className" is cached in "declaredClass" property of the new class, + // if it was supplied. The immediate super class will be cached in + // "superclass" property of the new class. + // + // Methods in "props" will be copied and modified: "nom" property + // (the declared name of the method) will be added to all copied + // functions to help identify them for the internal machinery. Be + // very careful, while reusing methods: if you use the same + // function under different names, it can produce errors in some + // cases. + // + // It is possible to use constructors created "manually" (without + // dojo.declare) as bases. They will be called as usual during the + // creation of an instance, their methods will be chained, and even + // called by "this.inherited()". + // + // Special property "-chains-" governs how to chain methods. It is + // a dictionary, which uses method names as keys, and hint strings + // as values. If a hint string is "after", this method will be + // called after methods of its base classes. If a hint string is + // "before", this method will be called before methods of its base + // classes. + // + // If "constructor" is not mentioned in "-chains-" property, it will + // be chained using the legacy mode: using "after" chaining, + // calling preamble() method before each constructor, if available, + // and calling postscript() after all constructors were executed. + // If the hint is "after", it is chained as a regular method, but + // postscript() will be called after the chain of constructors. + // "constructor" cannot be chained "before", but it allows + // a special hint string: "manual", which means that constructors + // are not going to be chained in any way, and programmer will call + // them manually using this.inherited(). In the latter case + // postscript() will be called after the construction. + // + // All chaining hints are "inherited" from base classes and + // potentially can be overridden. Be very careful when overriding + // hints! Make sure that all chained methods can work in a proposed + // manner of chaining. + // + // Once a method was chained, it is impossible to unchain it. The + // only exception is "constructor". You don't need to define a + // method in order to supply a chaining hint. + // + // If a method is chained, it cannot use this.inherited() because + // all other methods in the hierarchy will be called automatically. + // + // Usually constructors and initializers of any kind are chained + // using "after" and destructors of any kind are chained as + // "before". Note that chaining assumes that chained methods do not + // return any value: any returned value will be discarded. + // + // example: + // | dojo.declare("my.classes.bar", my.classes.foo, { + // | // properties to be added to the class prototype + // | someValue: 2, + // | // initialization function + // | constructor: function(){ + // | this.myComplicatedObject = new ReallyComplicatedObject(); + // | }, + // | // other functions + // | someMethod: function(){ + // | doStuff(); + // | } + // | }); + // + // example: + // | var MyBase = dojo.declare(null, { + // | // constructor, properties, and methods go here + // | // ... + // | }); + // | var MyClass1 = dojo.declare(MyBase, { + // | // constructor, properties, and methods go here + // | // ... + // | }); + // | var MyClass2 = dojo.declare(MyBase, { + // | // constructor, properties, and methods go here + // | // ... + // | }); + // | var MyDiamond = dojo.declare([MyClass1, MyClass2], { + // | // constructor, properties, and methods go here + // | // ... + // | }); + // + // example: + // | var F = function(){ console.log("raw constructor"); }; + // | F.prototype.method = function(){ + // | console.log("raw method"); + // | }; + // | var A = dojo.declare(F, { + // | constructor: function(){ + // | console.log("A.constructor"); + // | }, + // | method: function(){ + // | console.log("before calling F.method..."); + // | this.inherited(arguments); + // | console.log("...back in A"); + // | } + // | }); + // | new A().method(); + // | // will print: + // | // raw constructor + // | // A.constructor + // | // before calling F.method... + // | // raw method + // | // ...back in A + // + // example: + // | var A = dojo.declare(null, { + // | "-chains-": { + // | destroy: "before" + // | } + // | }); + // | var B = dojo.declare(A, { + // | constructor: function(){ + // | console.log("B.constructor"); + // | }, + // | destroy: function(){ + // | console.log("B.destroy"); + // | } + // | }); + // | var C = dojo.declare(B, { + // | constructor: function(){ + // | console.log("C.constructor"); + // | }, + // | destroy: function(){ + // | console.log("C.destroy"); + // | } + // | }); + // | new C().destroy(); + // | // prints: + // | // B.constructor + // | // C.constructor + // | // C.destroy + // | // B.destroy + // + // example: + // | var A = dojo.declare(null, { + // | "-chains-": { + // | constructor: "manual" + // | } + // | }); + // | var B = dojo.declare(A, { + // | constructor: function(){ + // | // ... + // | // call the base constructor with new parameters + // | this.inherited(arguments, [1, 2, 3]); + // | // ... + // | } + // | }); + // + // example: + // | var A = dojo.declare(null, { + // | "-chains-": { + // | m1: "before" + // | }, + // | m1: function(){ + // | console.log("A.m1"); + // | }, + // | m2: function(){ + // | console.log("A.m2"); + // | } + // | }); + // | var B = dojo.declare(A, { + // | "-chains-": { + // | m2: "after" + // | }, + // | m1: function(){ + // | console.log("B.m1"); + // | }, + // | m2: function(){ + // | console.log("B.m2"); + // | } + // | }); + // | var x = new B(); + // | x.m1(); + // | // prints: + // | // B.m1 + // | // A.m1 + // | x.m2(); + // | // prints: + // | // A.m2 + // | // B.m2 + return new Function(); // Function + }; + =====*/ + + /*===== + dojo.safeMixin = function(target, source){ + // summary: + // Mix in properties skipping a constructor and decorating functions + // like it is done by dojo.declare. + // target: Object + // Target object to accept new properties. + // source: Object + // Source object for new properties. + // description: + // This function is used to mix in properties like dojo._mixin does, + // but it skips a constructor property and decorates functions like + // dojo.declare does. + // + // It is meant to be used with classes and objects produced with + // dojo.declare. Functions mixed in with dojo.safeMixin can use + // this.inherited() like normal methods. + // + // This function is used to implement extend() method of a constructor + // produced with dojo.declare(). + // + // example: + // | var A = dojo.declare(null, { + // | m1: function(){ + // | console.log("A.m1"); + // | }, + // | m2: function(){ + // | console.log("A.m2"); + // | } + // | }); + // | var B = dojo.declare(A, { + // | m1: function(){ + // | this.inherited(arguments); + // | console.log("B.m1"); + // | } + // | }); + // | B.extend({ + // | m2: function(){ + // | this.inherited(arguments); + // | console.log("B.m2"); + // | } + // | }); + // | var x = new B(); + // | dojo.safeMixin(x, { + // | m1: function(){ + // | this.inherited(arguments); + // | console.log("X.m1"); + // | }, + // | m2: function(){ + // | this.inherited(arguments); + // | console.log("X.m2"); + // | } + // | }); + // | x.m2(); + // | // prints: + // | // A.m1 + // | // B.m1 + // | // X.m1 + }; + =====*/ + + /*===== + Object.inherited = function(name, args, newArgs){ + // summary: + // Calls a super method. + // name: String? + // The optional method name. Should be the same as the caller's + // name. Usually "name" is specified in complex dynamic cases, when + // the calling method was dynamically added, undecorated by + // dojo.declare, and it cannot be determined. + // args: Arguments + // The caller supply this argument, which should be the original + // "arguments". + // newArgs: Object? + // If "true", the found function will be returned without + // executing it. + // If Array, it will be used to call a super method. Otherwise + // "args" will be used. + // returns: + // Whatever is returned by a super method, or a super method itself, + // if "true" was specified as newArgs. + // description: + // This method is used inside method of classes produced with + // dojo.declare to call a super method (next in the chain). It is + // used for manually controlled chaining. Consider using the regular + // chaining, because it is faster. Use "this.inherited()" only in + // complex cases. + // + // This method cannot me called from automatically chained + // constructors including the case of a special (legacy) + // constructor chaining. It cannot be called from chained methods. + // + // If "this.inherited()" cannot find the next-in-chain method, it + // does nothing and returns "undefined". The last method in chain + // can be a default method implemented in Object, which will be + // called last. + // + // If "name" is specified, it is assumed that the method that + // received "args" is the parent method for this call. It is looked + // up in the chain list and if it is found the next-in-chain method + // is called. If it is not found, the first-in-chain method is + // called. + // + // If "name" is not specified, it will be derived from the calling + // method (using a methoid property "nom"). + // + // example: + // | var B = dojo.declare(A, { + // | method1: function(a, b, c){ + // | this.inherited(arguments); + // | }, + // | method2: function(a, b){ + // | return this.inherited(arguments, [a + b]); + // | } + // | }); + // | // next method is not in the chain list because it is added + // | // manually after the class was created. + // | B.prototype.method3 = function(){ + // | console.log("This is a dynamically-added method."); + // | this.inherited("method3", arguments); + // | }; + // example: + // | var B = dojo.declare(A, { + // | method: function(a, b){ + // | var super = this.inherited(arguments, true); + // | // ... + // | if(!super){ + // | console.log("there is no super method"); + // | return 0; + // | } + // | return super.apply(this, arguments); + // | } + // | }); + return {}; // Object + } + =====*/ + + /*===== + Object.getInherited = function(name, args){ + // summary: + // Returns a super method. + // name: String? + // The optional method name. Should be the same as the caller's + // name. Usually "name" is specified in complex dynamic cases, when + // the calling method was dynamically added, undecorated by + // dojo.declare, and it cannot be determined. + // args: Arguments + // The caller supply this argument, which should be the original + // "arguments". + // returns: + // Returns a super method (Function) or "undefined". + // description: + // This method is a convenience method for "this.inherited()". + // It uses the same algorithm but instead of executing a super + // method, it returns it, or "undefined" if not found. + // + // example: + // | var B = dojo.declare(A, { + // | method: function(a, b){ + // | var super = this.getInherited(arguments); + // | // ... + // | if(!super){ + // | console.log("there is no super method"); + // | return 0; + // | } + // | return super.apply(this, arguments); + // | } + // | }); + return {}; // Object + } + =====*/ + + /*===== + Object.isInstanceOf = function(cls){ + // summary: + // Checks the inheritance chain to see if it is inherited from this + // class. + // cls: Function + // Class constructor. + // returns: + // "true", if this object is inherited from this class, "false" + // otherwise. + // description: + // This method is used with instances of classes produced with + // dojo.declare to determine of they support a certain interface or + // not. It models "instanceof" operator. + // + // example: + // | var A = dojo.declare(null, { + // | // constructor, properties, and methods go here + // | // ... + // | }); + // | var B = dojo.declare(null, { + // | // constructor, properties, and methods go here + // | // ... + // | }); + // | var C = dojo.declare([A, B], { + // | // constructor, properties, and methods go here + // | // ... + // | }); + // | var D = dojo.declare(A, { + // | // constructor, properties, and methods go here + // | // ... + // | }); + // | + // | var a = new A(), b = new B(), c = new C(), d = new D(); + // | + // | console.log(a.isInstanceOf(A)); // true + // | console.log(b.isInstanceOf(A)); // false + // | console.log(c.isInstanceOf(A)); // true + // | console.log(d.isInstanceOf(A)); // true + // | + // | console.log(a.isInstanceOf(B)); // false + // | console.log(b.isInstanceOf(B)); // true + // | console.log(c.isInstanceOf(B)); // true + // | console.log(d.isInstanceOf(B)); // false + // | + // | console.log(a.isInstanceOf(C)); // false + // | console.log(b.isInstanceOf(C)); // false + // | console.log(c.isInstanceOf(C)); // true + // | console.log(d.isInstanceOf(C)); // false + // | + // | console.log(a.isInstanceOf(D)); // false + // | console.log(b.isInstanceOf(D)); // false + // | console.log(c.isInstanceOf(D)); // false + // | console.log(d.isInstanceOf(D)); // true + return {}; // Object + } + =====*/ + + /*===== + Object.extend = function(source){ + // summary: + // Adds all properties and methods of source to constructor's + // prototype, making them available to all instances created with + // constructor. This method is specific to constructors created with + // dojo.declare. + // source: Object + // Source object which properties are going to be copied to the + // constructor's prototype. + // description: + // Adds source properties to the constructor's prototype. It can + // override existing properties. + // + // This method is similar to dojo.extend function, but it is specific + // to constructors produced by dojo.declare. It is implemented + // using dojo.safeMixin, and it skips a constructor property, + // and properly decorates copied functions. + // + // example: + // | var A = dojo.declare(null, { + // | m1: function(){}, + // | s1: "Popokatepetl" + // | }); + // | A.extend({ + // | m1: function(){}, + // | m2: function(){}, + // | f1: true, + // | d1: 42 + // | }); + }; + =====*/ +})(); + +} + +if(!dojo._hasResource["dojo._base.connect"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo._base.connect"] = true; +dojo.provide("dojo._base.connect"); + + +// this file courtesy of the TurboAjax Group, licensed under a Dojo CLA + +// low-level delegation machinery +dojo._listener = { + // create a dispatcher function + getDispatcher: function(){ + // following comments pulled out-of-line to prevent cloning them + // in the returned function. + // - indices (i) that are really in the array of listeners (ls) will + // not be in Array.prototype. This is the 'sparse array' trick + // that keeps us safe from libs that take liberties with built-in + // objects + // - listener is invoked with current scope (this) + return function(){ + var ap=Array.prototype, c=arguments.callee, ls=c._listeners, t=c.target; + // return value comes from original target function + var r = t && t.apply(this, arguments); + // make local copy of listener array so it is immutable during processing + var i, lls; + lls = [].concat(ls); + + // invoke listeners after target function + for(i in lls){ + if(!(i in ap)){ + lls[i].apply(this, arguments); + } + } + // return value comes from original target function + return r; + }; + }, + // add a listener to an object + add: function(/*Object*/ source, /*String*/ method, /*Function*/ listener){ + // Whenever 'method' is invoked, 'listener' will have the same scope. + // Trying to supporting a context object for the listener led to + // complexity. + // Non trivial to provide 'once' functionality here + // because listener could be the result of a dojo.hitch call, + // in which case two references to the same hitch target would not + // be equivalent. + source = source || dojo.global; + // The source method is either null, a dispatcher, or some other function + var f = source[method]; + // Ensure a dispatcher + if(!f || !f._listeners){ + var d = dojo._listener.getDispatcher(); + // original target function is special + d.target = f; + // dispatcher holds a list of listeners + d._listeners = []; + // redirect source to dispatcher + f = source[method] = d; + } + // The contract is that a handle is returned that can + // identify this listener for disconnect. + // + // The type of the handle is private. Here is it implemented as Integer. + // DOM event code has this same contract but handle is Function + // in non-IE browsers. + // + // We could have separate lists of before and after listeners. + return f._listeners.push(listener); /*Handle*/ + }, + // remove a listener from an object + remove: function(/*Object*/ source, /*String*/ method, /*Handle*/ handle){ + var f = (source || dojo.global)[method]; + // remember that handle is the index+1 (0 is not a valid handle) + if(f && f._listeners && handle--){ + delete f._listeners[handle]; + } + } +}; + +// Multiple delegation for arbitrary methods. + +// This unit knows nothing about DOM, but we include DOM aware documentation +// and dontFix argument here to help the autodocs. Actual DOM aware code is in +// event.js. + +dojo.connect = function(/*Object|null*/ obj, + /*String*/ event, + /*Object|null*/ context, + /*String|Function*/ method, + /*Boolean?*/ dontFix){ + // summary: + // `dojo.connect` is the core event handling and delegation method in + // Dojo. It allows one function to "listen in" on the execution of + // any other, triggering the second whenever the first is called. Many + // listeners may be attached to a function, and source functions may + // be either regular function calls or DOM events. + // + // description: + // Connects listeners to actions, so that after event fires, a + // listener is called with the same arguments passed to the original + // function. + // + // Since `dojo.connect` allows the source of events to be either a + // "regular" JavaScript function or a DOM event, it provides a uniform + // interface for listening to all the types of events that an + // application is likely to deal with though a single, unified + // interface. DOM programmers may want to think of it as + // "addEventListener for everything and anything". + // + // When setting up a connection, the `event` parameter must be a + // string that is the name of the method/event to be listened for. If + // `obj` is null, `dojo.global` is assumed, meaning that connections + // to global methods are supported but also that you may inadvertently + // connect to a global by passing an incorrect object name or invalid + // reference. + // + // `dojo.connect` generally is forgiving. If you pass the name of a + // function or method that does not yet exist on `obj`, connect will + // not fail, but will instead set up a stub method. Similarly, null + // arguments may simply be omitted such that fewer than 4 arguments + // may be required to set up a connection See the examples for details. + // + // The return value is a handle that is needed to + // remove this connection with `dojo.disconnect`. + // + // obj: + // The source object for the event function. + // Defaults to `dojo.global` if null. + // If obj is a DOM node, the connection is delegated + // to the DOM event manager (unless dontFix is true). + // + // event: + // String name of the event function in obj. + // I.e. identifies a property `obj[event]`. + // + // context: + // The object that method will receive as "this". + // + // If context is null and method is a function, then method + // inherits the context of event. + // + // If method is a string then context must be the source + // object object for method (context[method]). If context is null, + // dojo.global is used. + // + // method: + // A function reference, or name of a function in context. + // The function identified by method fires after event does. + // method receives the same arguments as the event. + // See context argument comments for information on method's scope. + // + // dontFix: + // If obj is a DOM node, set dontFix to true to prevent delegation + // of this connection to the DOM event manager. + // + // example: + // When obj.onchange(), do ui.update(): + // | dojo.connect(obj, "onchange", ui, "update"); + // | dojo.connect(obj, "onchange", ui, ui.update); // same + // + // example: + // Using return value for disconnect: + // | var link = dojo.connect(obj, "onchange", ui, "update"); + // | ... + // | dojo.disconnect(link); + // + // example: + // When onglobalevent executes, watcher.handler is invoked: + // | dojo.connect(null, "onglobalevent", watcher, "handler"); + // + // example: + // When ob.onCustomEvent executes, customEventHandler is invoked: + // | dojo.connect(ob, "onCustomEvent", null, "customEventHandler"); + // | dojo.connect(ob, "onCustomEvent", "customEventHandler"); // same + // + // example: + // When ob.onCustomEvent executes, customEventHandler is invoked + // with the same scope (this): + // | dojo.connect(ob, "onCustomEvent", null, customEventHandler); + // | dojo.connect(ob, "onCustomEvent", customEventHandler); // same + // + // example: + // When globalEvent executes, globalHandler is invoked + // with the same scope (this): + // | dojo.connect(null, "globalEvent", null, globalHandler); + // | dojo.connect("globalEvent", globalHandler); // same + + // normalize arguments + var a=arguments, args=[], i=0; + // if a[0] is a String, obj was omitted + args.push(dojo.isString(a[0]) ? null : a[i++], a[i++]); + // if the arg-after-next is a String or Function, context was NOT omitted + var a1 = a[i+1]; + args.push(dojo.isString(a1)||dojo.isFunction(a1) ? a[i++] : null, a[i++]); + // absorb any additional arguments + for(var l=a.length; i<l; i++){ args.push(a[i]); } + // do the actual work + return dojo._connect.apply(this, args); /*Handle*/ +} + +// used by non-browser hostenvs. always overriden by event.js +dojo._connect = function(obj, event, context, method){ + var l=dojo._listener, h=l.add(obj, event, dojo.hitch(context, method)); + return [obj, event, h, l]; // Handle +} + +dojo.disconnect = function(/*Handle*/ handle){ + // summary: + // Remove a link created by dojo.connect. + // description: + // Removes the connection between event and the method referenced by handle. + // handle: + // the return value of the dojo.connect call that created the connection. + if(handle && handle[0] !== undefined){ + dojo._disconnect.apply(this, handle); + // let's not keep this reference + delete handle[0]; + } +} + +dojo._disconnect = function(obj, event, handle, listener){ + listener.remove(obj, event, handle); +} + +// topic publish/subscribe + +dojo._topics = {}; + +dojo.subscribe = function(/*String*/ topic, /*Object|null*/ context, /*String|Function*/ method){ + // summary: + // Attach a listener to a named topic. The listener function is invoked whenever the + // named topic is published (see: dojo.publish). + // Returns a handle which is needed to unsubscribe this listener. + // context: + // Scope in which method will be invoked, or null for default scope. + // method: + // The name of a function in context, or a function reference. This is the function that + // is invoked when topic is published. + // example: + // | dojo.subscribe("alerts", null, function(caption, message){ alert(caption + "\n" + message); }); + // | dojo.publish("alerts", [ "read this", "hello world" ]); + + // support for 2 argument invocation (omitting context) depends on hitch + return [topic, dojo._listener.add(dojo._topics, topic, dojo.hitch(context, method))]; /*Handle*/ +} + +dojo.unsubscribe = function(/*Handle*/ handle){ + // summary: + // Remove a topic listener. + // handle: + // The handle returned from a call to subscribe. + // example: + // | var alerter = dojo.subscribe("alerts", null, function(caption, message){ alert(caption + "\n" + message); }; + // | ... + // | dojo.unsubscribe(alerter); + if(handle){ + dojo._listener.remove(dojo._topics, handle[0], handle[1]); + } +} + +dojo.publish = function(/*String*/ topic, /*Array*/ args){ + // summary: + // Invoke all listener method subscribed to topic. + // topic: + // The name of the topic to publish. + // args: + // An array of arguments. The arguments will be applied + // to each topic subscriber (as first class parameters, via apply). + // example: + // | dojo.subscribe("alerts", null, function(caption, message){ alert(caption + "\n" + message); }; + // | dojo.publish("alerts", [ "read this", "hello world" ]); + + // Note that args is an array, which is more efficient vs variable length + // argument list. Ideally, var args would be implemented via Array + // throughout the APIs. + var f = dojo._topics[topic]; + if(f){ + f.apply(this, args||[]); + } +} + +dojo.connectPublisher = function( /*String*/ topic, + /*Object|null*/ obj, + /*String*/ event){ + // summary: + // Ensure that every time obj.event() is called, a message is published + // on the topic. Returns a handle which can be passed to + // dojo.disconnect() to disable subsequent automatic publication on + // the topic. + // topic: + // The name of the topic to publish. + // obj: + // The source object for the event function. Defaults to dojo.global + // if null. + // event: + // The name of the event function in obj. + // I.e. identifies a property obj[event]. + // example: + // | dojo.connectPublisher("/ajax/start", dojo, "xhrGet"); + var pf = function(){ dojo.publish(topic, arguments); } + return event ? dojo.connect(obj, event, pf) : dojo.connect(obj, pf); //Handle +}; + +} + +if(!dojo._hasResource["dojo._base.Deferred"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo._base.Deferred"] = true; +dojo.provide("dojo._base.Deferred"); + + +(function(){ + var mutator = function(){}; + var freeze = Object.freeze || function(){}; + // A deferred provides an API for creating and resolving a promise. + dojo.Deferred = function(/*Function?*/canceller){ + // summary: + // Deferreds provide a generic means for encapsulating an asynchronous + // operation and notifying users of the completion and result of the operation. + // description: + // The dojo.Deferred API is based on the concept of promises that provide a + // generic interface into the eventual completion of an asynchronous action. + // The motivation for promises fundamentally is about creating a + // separation of concerns that allows one to achieve the same type of + // call patterns and logical data flow in asynchronous code as can be + // achieved in synchronous code. Promises allows one + // to be able to call a function purely with arguments needed for + // execution, without conflating the call with concerns of whether it is + // sync or async. One shouldn't need to alter a call's arguments if the + // implementation switches from sync to async (or vice versa). By having + // async functions return promises, the concerns of making the call are + // separated from the concerns of asynchronous interaction (which are + // handled by the promise). + // + // The dojo.Deferred is a type of promise that provides methods for fulfilling the + // promise with a successful result or an error. The most important method for + // working with Dojo's promises is the then() method, which follows the + // CommonJS proposed promise API. An example of using a Dojo promise: + // + // | var resultingPromise = someAsyncOperation.then(function(result){ + // | ... handle result ... + // | }, + // | function(error){ + // | ... handle error ... + // | }); + // + // The .then() call returns a new promise that represents the result of the + // execution of the callback. The callbacks will never affect the original promises value. + // + // The dojo.Deferred instances also provide the following functions for backwards compatibility: + // + // * addCallback(handler) + // * addErrback(handler) + // * callback(result) + // * errback(result) + // + // Callbacks are allowed to return promisesthemselves, so + // you can build complicated sequences of events with ease. + // + // The creator of the Deferred may specify a canceller. The canceller + // is a function that will be called if Deferred.cancel is called + // before the Deferred fires. You can use this to implement clean + // aborting of an XMLHttpRequest, etc. Note that cancel will fire the + // deferred with a CancelledError (unless your canceller returns + // another kind of error), so the errbacks should be prepared to + // handle that error for cancellable Deferreds. + // example: + // | var deferred = new dojo.Deferred(); + // | setTimeout(function(){ deferred.callback({success: true}); }, 1000); + // | return deferred; + // example: + // Deferred objects are often used when making code asynchronous. It + // may be easiest to write functions in a synchronous manner and then + // split code using a deferred to trigger a response to a long-lived + // operation. For example, instead of register a callback function to + // denote when a rendering operation completes, the function can + // simply return a deferred: + // + // | // callback style: + // | function renderLotsOfData(data, callback){ + // | var success = false + // | try{ + // | for(var x in data){ + // | renderDataitem(data[x]); + // | } + // | success = true; + // | }catch(e){ } + // | if(callback){ + // | callback(success); + // | } + // | } + // + // | // using callback style + // | renderLotsOfData(someDataObj, function(success){ + // | // handles success or failure + // | if(!success){ + // | promptUserToRecover(); + // | } + // | }); + // | // NOTE: no way to add another callback here!! + // example: + // Using a Deferred doesn't simplify the sending code any, but it + // provides a standard interface for callers and senders alike, + // providing both with a simple way to service multiple callbacks for + // an operation and freeing both sides from worrying about details + // such as "did this get called already?". With Deferreds, new + // callbacks can be added at any time. + // + // | // Deferred style: + // | function renderLotsOfData(data){ + // | var d = new dojo.Deferred(); + // | try{ + // | for(var x in data){ + // | renderDataitem(data[x]); + // | } + // | d.callback(true); + // | }catch(e){ + // | d.errback(new Error("rendering failed")); + // | } + // | return d; + // | } + // + // | // using Deferred style + // | renderLotsOfData(someDataObj).then(null, function(){ + // | promptUserToRecover(); + // | }); + // | // NOTE: addErrback and addCallback both return the Deferred + // | // again, so we could chain adding callbacks or save the + // | // deferred for later should we need to be notified again. + // example: + // In this example, renderLotsOfData is syncrhonous and so both + // versions are pretty artificial. Putting the data display on a + // timeout helps show why Deferreds rock: + // + // | // Deferred style and async func + // | function renderLotsOfData(data){ + // | var d = new dojo.Deferred(); + // | setTimeout(function(){ + // | try{ + // | for(var x in data){ + // | renderDataitem(data[x]); + // | } + // | d.callback(true); + // | }catch(e){ + // | d.errback(new Error("rendering failed")); + // | } + // | }, 100); + // | return d; + // | } + // + // | // using Deferred style + // | renderLotsOfData(someDataObj).then(null, function(){ + // | promptUserToRecover(); + // | }); + // + // Note that the caller doesn't have to change his code at all to + // handle the asynchronous case. + var result, finished, isError, head, nextListener; + var promise = this.promise = {}; + + function complete(value){ + if(finished){ + throw new Error("This deferred has already been resolved"); + } + result = value; + finished = true; + notify(); + } + function notify(){ + var mutated; + while(!mutated && nextListener){ + var listener = nextListener; + nextListener = nextListener.next; + if(mutated = (listener.progress == mutator)){ // assignment and check + finished = false; + } + var func = (isError ? listener.error : listener.resolved); + if (func) { + try { + var newResult = func(result); + if (newResult && typeof newResult.then === "function") { + newResult.then(dojo.hitch(listener.deferred, "resolve"), dojo.hitch(listener.deferred, "reject")); + continue; + } + var unchanged = mutated && newResult === undefined; + listener.deferred[unchanged && isError ? "reject" : "resolve"](unchanged ? result : newResult); + } + catch (e) { + listener.deferred.reject(e); + } + }else { + if(isError){ + listener.deferred.reject(result); + }else{ + listener.deferred.resolve(result); + } + } + } + } + // calling resolve will resolve the promise + this.resolve = this.callback = function(value){ + // summary: + // Fulfills the Deferred instance successfully with the provide value + this.fired = 0; + this.results = [value, null]; + complete(value); + }; + + + // calling error will indicate that the promise failed + this.reject = this.errback = function(error){ + // summary: + // Fulfills the Deferred instance as an error with the provided error + isError = true; + this.fired = 1; + complete(error); + this.results = [null, error]; + if(!error || error.log !== false){ + (dojo.config.deferredOnError || function(x){ console.error(x); })(error); + } + }; + // call progress to provide updates on the progress on the completion of the promise + this.progress = function(update){ + // summary + // Send progress events to all listeners + var listener = nextListener; + while(listener){ + var progress = listener.progress; + progress && progress(update); + listener = listener.next; + } + }; + this.addCallbacks = function(/*Function?*/callback, /*Function?*/errback){ + this.then(callback, errback, mutator); + return this; + }; + // provide the implementation of the promise + this.then = promise.then = function(/*Function?*/resolvedCallback, /*Function?*/errorCallback, /*Function?*/progressCallback){ + // summary + // Adds a fulfilledHandler, errorHandler, and progressHandler to be called for + // completion of a promise. The fulfilledHandler is called when the promise + // is fulfilled. The errorHandler is called when a promise fails. The + // progressHandler is called for progress events. All arguments are optional + // and non-function values are ignored. The progressHandler is not only an + // optional argument, but progress events are purely optional. Promise + // providers are not required to ever create progress events. + // + // This function will return a new promise that is fulfilled when the given + // fulfilledHandler or errorHandler callback is finished. This allows promise + // operations to be chained together. The value returned from the callback + // handler is the fulfillment value for the returned promise. If the callback + // throws an error, the returned promise will be moved to failed state. + // + // example: + // An example of using a CommonJS compliant promise: + // | asyncComputeTheAnswerToEverything(). + // | then(addTwo). + // | then(printResult, onError); + // | >44 + // + var returnDeferred = progressCallback == mutator ? this : new dojo.Deferred(promise.cancel); + var listener = { + resolved: resolvedCallback, + error: errorCallback, + progress: progressCallback, + deferred: returnDeferred + }; + if(nextListener){ + head = head.next = listener; + } + else{ + nextListener = head = listener; + } + if(finished){ + notify(); + } + return returnDeferred.promise; + }; + var deferred = this; + this.cancel = promise.cancel = function () { + // summary: + // Cancels the asynchronous operation + if(!finished){ + var error = canceller && canceller(deferred); + if(!finished){ + if (!(error instanceof Error)) { + error = new Error(error); + } + error.log = false; + deferred.reject(error); + } + } + } + freeze(promise); + }; + dojo.extend(dojo.Deferred, { + addCallback: function (/*Function*/callback) { + return this.addCallbacks(dojo.hitch.apply(dojo, arguments)); + }, + + addErrback: function (/*Function*/errback) { + return this.addCallbacks(null, dojo.hitch.apply(dojo, arguments)); + }, + + addBoth: function (/*Function*/callback) { + var enclosed = dojo.hitch.apply(dojo, arguments); + return this.addCallbacks(enclosed, enclosed); + }, + fired: -1 + }); +})(); +dojo.when = function(promiseOrValue, /*Function?*/callback, /*Function?*/errback, /*Function?*/progressHandler){ + // summary: + // This provides normalization between normal synchronous values and + // asynchronous promises, so you can interact with them in a common way + // example: + // | function printFirstAndList(items){ + // | dojo.when(findFirst(items), console.log); + // | dojo.when(findLast(items), console.log); + // | } + // | function findFirst(items){ + // | return dojo.when(items, function(items){ + // | return items[0]; + // | }); + // | } + // | function findLast(items){ + // | return dojo.when(items, function(items){ + // | return items[items.length]; + // | }); + // | } + // And now all three of his functions can be used sync or async. + // | printFirstAndLast([1,2,3,4]) will work just as well as + // | printFirstAndLast(dojo.xhrGet(...)); + + if(promiseOrValue && typeof promiseOrValue.then === "function"){ + return promiseOrValue.then(callback, errback, progressHandler); + } + return callback(promiseOrValue); +}; + +} + +if(!dojo._hasResource["dojo._base.json"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo._base.json"] = true; +dojo.provide("dojo._base.json"); + +dojo.fromJson = function(/*String*/ json){ + // summary: + // Parses a [JSON](http://json.org) string to return a JavaScript object. + // description: + // Throws for invalid JSON strings, but it does not use a strict JSON parser. It + // delegates to eval(). The content passed to this method must therefore come + // from a trusted source. + // json: + // a string literal of a JSON item, for instance: + // `'{ "foo": [ "bar", 1, { "baz": "thud" } ] }'` + + return eval("(" + json + ")"); // Object +} + +dojo._escapeString = function(/*String*/str){ + //summary: + // Adds escape sequences for non-visual characters, double quote and + // backslash and surrounds with double quotes to form a valid string + // literal. + return ('"' + str.replace(/(["\\])/g, '\\$1') + '"'). + replace(/[\f]/g, "\\f").replace(/[\b]/g, "\\b").replace(/[\n]/g, "\\n"). + replace(/[\t]/g, "\\t").replace(/[\r]/g, "\\r"); // string +} + +dojo.toJsonIndentStr = "\t"; +dojo.toJson = function(/*Object*/ it, /*Boolean?*/ prettyPrint, /*String?*/ _indentStr){ + // summary: + // Returns a [JSON](http://json.org) serialization of an object. + // description: + // Returns a [JSON](http://json.org) serialization of an object. + // Note that this doesn't check for infinite recursion, so don't do that! + // it: + // an object to be serialized. Objects may define their own + // serialization via a special "__json__" or "json" function + // property. If a specialized serializer has been defined, it will + // be used as a fallback. + // prettyPrint: + // if true, we indent objects and arrays to make the output prettier. + // The variable `dojo.toJsonIndentStr` is used as the indent string -- + // to use something other than the default (tab), change that variable + // before calling dojo.toJson(). + // _indentStr: + // private variable for recursive calls when pretty printing, do not use. + // example: + // simple serialization of a trivial object + // | var jsonStr = dojo.toJson({ howdy: "stranger!", isStrange: true }); + // | doh.is('{"howdy":"stranger!","isStrange":true}', jsonStr); + // example: + // a custom serializer for an objects of a particular class: + // | dojo.declare("Furby", null, { + // | furbies: "are strange", + // | furbyCount: 10, + // | __json__: function(){ + // | }, + // | }); + + if(it === undefined){ + return "undefined"; + } + var objtype = typeof it; + if(objtype == "number" || objtype == "boolean"){ + return it + ""; + } + if(it === null){ + return "null"; + } + if(dojo.isString(it)){ + return dojo._escapeString(it); + } + // recurse + var recurse = arguments.callee; + // short-circuit for objects that support "json" serialization + // if they return "self" then just pass-through... + var newObj; + _indentStr = _indentStr || ""; + var nextIndent = prettyPrint ? _indentStr + dojo.toJsonIndentStr : ""; + var tf = it.__json__||it.json; + if(dojo.isFunction(tf)){ + newObj = tf.call(it); + if(it !== newObj){ + return recurse(newObj, prettyPrint, nextIndent); + } + } + if(it.nodeType && it.cloneNode){ // isNode + // we can't seriailize DOM nodes as regular objects because they have cycles + // DOM nodes could be serialized with something like outerHTML, but + // that can be provided by users in the form of .json or .__json__ function. + throw new Error("Can't serialize DOM nodes"); + } + + var sep = prettyPrint ? " " : ""; + var newLine = prettyPrint ? "\n" : ""; + + // array + if(dojo.isArray(it)){ + var res = dojo.map(it, function(obj){ + var val = recurse(obj, prettyPrint, nextIndent); + if(typeof val != "string"){ + val = "undefined"; + } + return newLine + nextIndent + val; + }); + return "[" + res.join("," + sep) + newLine + _indentStr + "]"; + } + /* + // look in the registry + try { + window.o = it; + newObj = dojo.json.jsonRegistry.match(it); + return recurse(newObj, prettyPrint, nextIndent); + }catch(e){ + // console.log(e); + } + // it's a function with no adapter, skip it + */ + if(objtype == "function"){ + return null; // null + } + // generic object code path + var output = [], key; + for(key in it){ + var keyStr, val; + if(typeof key == "number"){ + keyStr = '"' + key + '"'; + }else if(typeof key == "string"){ + keyStr = dojo._escapeString(key); + }else{ + // skip non-string or number keys + continue; + } + val = recurse(it[key], prettyPrint, nextIndent); + if(typeof val != "string"){ + // skip non-serializable values + continue; + } + // FIXME: use += on Moz!! + // MOW NOTE: using += is a pain because you have to account for the dangling comma... + output.push(newLine + nextIndent + keyStr + ":" + sep + val); + } + return "{" + output.join("," + sep) + newLine + _indentStr + "}"; // String +} + +} + +if(!dojo._hasResource["dojo._base.Color"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo._base.Color"] = true; +dojo.provide("dojo._base.Color"); + + + +(function(){ + + var d = dojo; + + dojo.Color = function(/*Array|String|Object*/ color){ + // summary: + // Takes a named string, hex string, array of rgb or rgba values, + // an object with r, g, b, and a properties, or another `dojo.Color` object + // and creates a new Color instance to work from. + // + // example: + // Work with a Color instance: + // | var c = new dojo.Color(); + // | c.setColor([0,0,0]); // black + // | var hex = c.toHex(); // #000000 + // + // example: + // Work with a node's color: + // | var color = dojo.style("someNode", "backgroundColor"); + // | var n = new dojo.Color(color); + // | // adjust the color some + // | n.r *= .5; + // | console.log(n.toString()); // rgb(128, 255, 255); + if(color){ this.setColor(color); } + }; + + // FIXME: + // there's got to be a more space-efficient way to encode or discover + // these!! Use hex? + dojo.Color.named = { + black: [0,0,0], + silver: [192,192,192], + gray: [128,128,128], + white: [255,255,255], + maroon: [128,0,0], + red: [255,0,0], + purple: [128,0,128], + fuchsia: [255,0,255], + green: [0,128,0], + lime: [0,255,0], + olive: [128,128,0], + yellow: [255,255,0], + navy: [0,0,128], + blue: [0,0,255], + teal: [0,128,128], + aqua: [0,255,255], + transparent: d.config.transparentColor || [255,255,255] + }; + + dojo.extend(dojo.Color, { + r: 255, g: 255, b: 255, a: 1, + _set: function(r, g, b, a){ + var t = this; t.r = r; t.g = g; t.b = b; t.a = a; + }, + setColor: function(/*Array|String|Object*/ color){ + // summary: + // Takes a named string, hex string, array of rgb or rgba values, + // an object with r, g, b, and a properties, or another `dojo.Color` object + // and sets this color instance to that value. + // + // example: + // | var c = new dojo.Color(); // no color + // | c.setColor("#ededed"); // greyish + if(d.isString(color)){ + d.colorFromString(color, this); + }else if(d.isArray(color)){ + d.colorFromArray(color, this); + }else{ + this._set(color.r, color.g, color.b, color.a); + if(!(color instanceof d.Color)){ this.sanitize(); } + } + return this; // dojo.Color + }, + sanitize: function(){ + // summary: + // Ensures the object has correct attributes + // description: + // the default implementation does nothing, include dojo.colors to + // augment it with real checks + return this; // dojo.Color + }, + toRgb: function(){ + // summary: + // Returns 3 component array of rgb values + // example: + // | var c = new dojo.Color("#000000"); + // | console.log(c.toRgb()); // [0,0,0] + var t = this; + return [t.r, t.g, t.b]; // Array + }, + toRgba: function(){ + // summary: + // Returns a 4 component array of rgba values from the color + // represented by this object. + var t = this; + return [t.r, t.g, t.b, t.a]; // Array + }, + toHex: function(){ + // summary: + // Returns a CSS color string in hexadecimal representation + // example: + // | console.log(new dojo.Color([0,0,0]).toHex()); // #000000 + var arr = d.map(["r", "g", "b"], function(x){ + var s = this[x].toString(16); + return s.length < 2 ? "0" + s : s; + }, this); + return "#" + arr.join(""); // String + }, + toCss: function(/*Boolean?*/ includeAlpha){ + // summary: + // Returns a css color string in rgb(a) representation + // example: + // | var c = new dojo.Color("#FFF").toCss(); + // | console.log(c); // rgb('255','255','255') + var t = this, rgb = t.r + ", " + t.g + ", " + t.b; + return (includeAlpha ? "rgba(" + rgb + ", " + t.a : "rgb(" + rgb) + ")"; // String + }, + toString: function(){ + // summary: + // Returns a visual representation of the color + return this.toCss(true); // String + } + }); + + dojo.blendColors = function( + /*dojo.Color*/ start, + /*dojo.Color*/ end, + /*Number*/ weight, + /*dojo.Color?*/ obj + ){ + // summary: + // Blend colors end and start with weight from 0 to 1, 0.5 being a 50/50 blend, + // can reuse a previously allocated dojo.Color object for the result + var t = obj || new d.Color(); + d.forEach(["r", "g", "b", "a"], function(x){ + t[x] = start[x] + (end[x] - start[x]) * weight; + if(x != "a"){ t[x] = Math.round(t[x]); } + }); + return t.sanitize(); // dojo.Color + }; + + dojo.colorFromRgb = function(/*String*/ color, /*dojo.Color?*/ obj){ + // summary: + // Returns a `dojo.Color` instance from a string of the form + // "rgb(...)" or "rgba(...)". Optionally accepts a `dojo.Color` + // object to update with the parsed value and return instead of + // creating a new object. + // returns: + // A dojo.Color object. If obj is passed, it will be the return value. + var m = color.toLowerCase().match(/^rgba?\(([\s\.,0-9]+)\)/); + return m && dojo.colorFromArray(m[1].split(/\s*,\s*/), obj); // dojo.Color + }; + + dojo.colorFromHex = function(/*String*/ color, /*dojo.Color?*/ obj){ + // summary: + // Converts a hex string with a '#' prefix to a color object. + // Supports 12-bit #rgb shorthand. Optionally accepts a + // `dojo.Color` object to update with the parsed value. + // + // returns: + // A dojo.Color object. If obj is passed, it will be the return value. + // + // example: + // | var thing = dojo.colorFromHex("#ededed"); // grey, longhand + // + // example: + // | var thing = dojo.colorFromHex("#000"); // black, shorthand + var t = obj || new d.Color(), + bits = (color.length == 4) ? 4 : 8, + mask = (1 << bits) - 1; + color = Number("0x" + color.substr(1)); + if(isNaN(color)){ + return null; // dojo.Color + } + d.forEach(["b", "g", "r"], function(x){ + var c = color & mask; + color >>= bits; + t[x] = bits == 4 ? 17 * c : c; + }); + t.a = 1; + return t; // dojo.Color + }; + + dojo.colorFromArray = function(/*Array*/ a, /*dojo.Color?*/ obj){ + // summary: + // Builds a `dojo.Color` from a 3 or 4 element array, mapping each + // element in sequence to the rgb(a) values of the color. + // example: + // | var myColor = dojo.colorFromArray([237,237,237,0.5]); // grey, 50% alpha + // returns: + // A dojo.Color object. If obj is passed, it will be the return value. + var t = obj || new d.Color(); + t._set(Number(a[0]), Number(a[1]), Number(a[2]), Number(a[3])); + if(isNaN(t.a)){ t.a = 1; } + return t.sanitize(); // dojo.Color + }; + + dojo.colorFromString = function(/*String*/ str, /*dojo.Color?*/ obj){ + // summary: + // Parses `str` for a color value. Accepts hex, rgb, and rgba + // style color values. + // description: + // Acceptable input values for str may include arrays of any form + // accepted by dojo.colorFromArray, hex strings such as "#aaaaaa", or + // rgb or rgba strings such as "rgb(133, 200, 16)" or "rgba(10, 10, + // 10, 50)" + // returns: + // A dojo.Color object. If obj is passed, it will be the return value. + var a = d.Color.named[str]; + return a && d.colorFromArray(a, obj) || d.colorFromRgb(str, obj) || d.colorFromHex(str, obj); + }; +})(); + +} + +if(!dojo._hasResource["dojo._base"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo._base"] = true; +dojo.provide("dojo._base"); + + + + + + + + + +} + +if(!dojo._hasResource["dojo._base.window"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo._base.window"] = true; +dojo.provide("dojo._base.window"); + +/*===== +dojo.doc = { + // summary: + // Alias for the current document. 'dojo.doc' can be modified + // for temporary context shifting. Also see dojo.withDoc(). + // description: + // Refer to dojo.doc rather + // than referring to 'window.document' to ensure your code runs + // correctly in managed contexts. + // example: + // | n.appendChild(dojo.doc.createElement('div')); +} +=====*/ +dojo.doc = window["document"] || null; + +dojo.body = function(){ + // summary: + // Return the body element of the document + // return the body object associated with dojo.doc + // example: + // | dojo.body().appendChild(dojo.doc.createElement('div')); + + // Note: document.body is not defined for a strict xhtml document + // Would like to memoize this, but dojo.doc can change vi dojo.withDoc(). + return dojo.doc.body || dojo.doc.getElementsByTagName("body")[0]; // Node +} + +dojo.setContext = function(/*Object*/globalObject, /*DocumentElement*/globalDocument){ + // summary: + // changes the behavior of many core Dojo functions that deal with + // namespace and DOM lookup, changing them to work in a new global + // context (e.g., an iframe). The varibles dojo.global and dojo.doc + // are modified as a result of calling this function and the result of + // `dojo.body()` likewise differs. + dojo.global = globalObject; + dojo.doc = globalDocument; +}; + +dojo.withGlobal = function( /*Object*/globalObject, + /*Function*/callback, + /*Object?*/thisObject, + /*Array?*/cbArguments){ + // summary: + // Invoke callback with globalObject as dojo.global and + // globalObject.document as dojo.doc. + // description: + // Invoke callback with globalObject as dojo.global and + // globalObject.document as dojo.doc. If provided, globalObject + // will be executed in the context of object thisObject + // When callback() returns or throws an error, the dojo.global + // and dojo.doc will be restored to its previous state. + + var oldGlob = dojo.global; + try{ + dojo.global = globalObject; + return dojo.withDoc.call(null, globalObject.document, callback, thisObject, cbArguments); + }finally{ + dojo.global = oldGlob; + } +} + +dojo.withDoc = function( /*DocumentElement*/documentObject, + /*Function*/callback, + /*Object?*/thisObject, + /*Array?*/cbArguments){ + // summary: + // Invoke callback with documentObject as dojo.doc. + // description: + // Invoke callback with documentObject as dojo.doc. If provided, + // callback will be executed in the context of object thisObject + // When callback() returns or throws an error, the dojo.doc will + // be restored to its previous state. + + var oldDoc = dojo.doc, + oldLtr = dojo._bodyLtr, + oldQ = dojo.isQuirks; + + try{ + dojo.doc = documentObject; + delete dojo._bodyLtr; // uncache + dojo.isQuirks = dojo.doc.compatMode == "BackCompat"; // no need to check for QuirksMode which was Opera 7 only + + if(thisObject && typeof callback == "string"){ + callback = thisObject[callback]; + } + + return callback.apply(thisObject, cbArguments || []); + }finally{ + dojo.doc = oldDoc; + delete dojo._bodyLtr; // in case it was undefined originally, and set to true/false by the alternate document + if(oldLtr !== undefined){ dojo._bodyLtr = oldLtr; } + dojo.isQuirks = oldQ; + } +}; + + +} + +if(!dojo._hasResource["dojo._base.event"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo._base.event"] = true; +dojo.provide("dojo._base.event"); + + +// this file courtesy of the TurboAjax Group, licensed under a Dojo CLA + +(function(){ + // DOM event listener machinery + var del = (dojo._event_listener = { + add: function(/*DOMNode*/ node, /*String*/ name, /*Function*/ fp){ + if(!node){return;} + name = del._normalizeEventName(name); + fp = del._fixCallback(name, fp); + var oname = name; + if( + !dojo.isIE && + (name == "mouseenter" || name == "mouseleave") + ){ + var ofp = fp; + //oname = name; + name = (name == "mouseenter") ? "mouseover" : "mouseout"; + fp = function(e){ + if(!dojo.isDescendant(e.relatedTarget, node)){ + // e.type = oname; // FIXME: doesn't take? SJM: event.type is generally immutable. + return ofp.call(this, e); + } + } + } + node.addEventListener(name, fp, false); + return fp; /*Handle*/ + }, + remove: function(/*DOMNode*/ node, /*String*/ event, /*Handle*/ handle){ + // summary: + // clobbers the listener from the node + // node: + // DOM node to attach the event to + // event: + // the name of the handler to remove the function from + // handle: + // the handle returned from add + if(node){ + event = del._normalizeEventName(event); + if(!dojo.isIE && (event == "mouseenter" || event == "mouseleave")){ + event = (event == "mouseenter") ? "mouseover" : "mouseout"; + } + + node.removeEventListener(event, handle, false); + } + }, + _normalizeEventName: function(/*String*/ name){ + // Generally, name should be lower case, unless it is special + // somehow (e.g. a Mozilla DOM event). + // Remove 'on'. + return name.slice(0,2) =="on" ? name.slice(2) : name; + }, + _fixCallback: function(/*String*/ name, fp){ + // By default, we only invoke _fixEvent for 'keypress' + // If code is added to _fixEvent for other events, we have + // to revisit this optimization. + // This also applies to _fixEvent overrides for Safari and Opera + // below. + return name != "keypress" ? fp : function(e){ return fp.call(this, del._fixEvent(e, this)); }; + }, + _fixEvent: function(evt, sender){ + // _fixCallback only attaches us to keypress. + // Switch on evt.type anyway because we might + // be called directly from dojo.fixEvent. + switch(evt.type){ + case "keypress": + del._setKeyChar(evt); + break; + } + return evt; + }, + _setKeyChar: function(evt){ + evt.keyChar = evt.charCode ? String.fromCharCode(evt.charCode) : ''; + evt.charOrCode = evt.keyChar || evt.keyCode; + }, + // For IE and Safari: some ctrl-key combinations (mostly w/punctuation) do not emit a char code in IE + // we map those virtual key codes to ascii here + // not valid for all (non-US) keyboards, so maybe we shouldn't bother + _punctMap: { + 106:42, + 111:47, + 186:59, + 187:43, + 188:44, + 189:45, + 190:46, + 191:47, + 192:96, + 219:91, + 220:92, + 221:93, + 222:39 + } + }); + + // DOM events + + dojo.fixEvent = function(/*Event*/ evt, /*DOMNode*/ sender){ + // summary: + // normalizes properties on the event object including event + // bubbling methods, keystroke normalization, and x/y positions + // evt: Event + // native event object + // sender: DOMNode + // node to treat as "currentTarget" + return del._fixEvent(evt, sender); + } + + dojo.stopEvent = function(/*Event*/ evt){ + // summary: + // prevents propagation and clobbers the default action of the + // passed event + // evt: Event + // The event object. If omitted, window.event is used on IE. + evt.preventDefault(); + evt.stopPropagation(); + // NOTE: below, this method is overridden for IE + } + + // the default listener to use on dontFix nodes, overriden for IE + var node_listener = dojo._listener; + + // Unify connect and event listeners + dojo._connect = function(obj, event, context, method, dontFix){ + // FIXME: need a more strict test + var isNode = obj && (obj.nodeType||obj.attachEvent||obj.addEventListener); + // choose one of three listener options: raw (connect.js), DOM event on a Node, custom event on a Node + // we need the third option to provide leak prevention on broken browsers (IE) + var lid = isNode ? (dontFix ? 2 : 1) : 0, l = [dojo._listener, del, node_listener][lid]; + // create a listener + var h = l.add(obj, event, dojo.hitch(context, method)); + // formerly, the disconnect package contained "l" directly, but if client code + // leaks the disconnect package (by connecting it to a node), referencing "l" + // compounds the problem. + // instead we return a listener id, which requires custom _disconnect below. + // return disconnect package + return [ obj, event, h, lid ]; + } + + dojo._disconnect = function(obj, event, handle, listener){ + ([dojo._listener, del, node_listener][listener]).remove(obj, event, handle); + } + + // Constants + + // Public: client code should test + // keyCode against these named constants, as the + // actual codes can vary by browser. + dojo.keys = { + // summary: + // Definitions for common key values + BACKSPACE: 8, + TAB: 9, + CLEAR: 12, + ENTER: 13, + SHIFT: 16, + CTRL: 17, + ALT: 18, + META: dojo.isSafari ? 91 : 224, // the apple key on macs + PAUSE: 19, + CAPS_LOCK: 20, + ESCAPE: 27, + SPACE: 32, + PAGE_UP: 33, + PAGE_DOWN: 34, + END: 35, + HOME: 36, + LEFT_ARROW: 37, + UP_ARROW: 38, + RIGHT_ARROW: 39, + DOWN_ARROW: 40, + INSERT: 45, + DELETE: 46, + HELP: 47, + LEFT_WINDOW: 91, + RIGHT_WINDOW: 92, + SELECT: 93, + NUMPAD_0: 96, + NUMPAD_1: 97, + NUMPAD_2: 98, + NUMPAD_3: 99, + NUMPAD_4: 100, + NUMPAD_5: 101, + NUMPAD_6: 102, + NUMPAD_7: 103, + NUMPAD_8: 104, + NUMPAD_9: 105, + NUMPAD_MULTIPLY: 106, + NUMPAD_PLUS: 107, + NUMPAD_ENTER: 108, + NUMPAD_MINUS: 109, + NUMPAD_PERIOD: 110, + NUMPAD_DIVIDE: 111, + F1: 112, + F2: 113, + F3: 114, + F4: 115, + F5: 116, + F6: 117, + F7: 118, + F8: 119, + F9: 120, + F10: 121, + F11: 122, + F12: 123, + F13: 124, + F14: 125, + F15: 126, + NUM_LOCK: 144, + SCROLL_LOCK: 145, + // virtual key mapping + copyKey: dojo.isMac && !dojo.isAIR ? (dojo.isSafari ? 91 : 224 ) : 17 + }; + + var evtCopyKey = dojo.isMac ? "metaKey" : "ctrlKey"; + + dojo.isCopyKey = function(e){ + // summary: + // Checks an event for the copy key (meta on Mac, and ctrl anywhere else) + // e: Event + // Event object to examine + return e[evtCopyKey]; // Boolean + }; + + // Public: decoding mouse buttons from events + +/*===== + dojo.mouseButtons = { + // LEFT: Number + // Numeric value of the left mouse button for the platform. + LEFT: 0, + // MIDDLE: Number + // Numeric value of the middle mouse button for the platform. + MIDDLE: 1, + // RIGHT: Number + // Numeric value of the right mouse button for the platform. + RIGHT: 2, + + isButton: function(e, button){ + // summary: + // Checks an event object for a pressed button + // e: Event + // Event object to examine + // button: Number + // The button value (example: dojo.mouseButton.LEFT) + return e.button == button; // Boolean + }, + isLeft: function(e){ + // summary: + // Checks an event object for the pressed left button + // e: Event + // Event object to examine + return e.button == 0; // Boolean + }, + isMiddle: function(e){ + // summary: + // Checks an event object for the pressed middle button + // e: Event + // Event object to examine + return e.button == 1; // Boolean + }, + isRight: function(e){ + // summary: + // Checks an event object for the pressed right button + // e: Event + // Event object to examine + return e.button == 2; // Boolean + } + }; +=====*/ + + if(dojo.isIE){ + dojo.mouseButtons = { + LEFT: 1, + MIDDLE: 4, + RIGHT: 2, + // helper functions + isButton: function(e, button){ return e.button & button; }, + isLeft: function(e){ return e.button & 1; }, + isMiddle: function(e){ return e.button & 4; }, + isRight: function(e){ return e.button & 2; } + }; + }else{ + dojo.mouseButtons = { + LEFT: 0, + MIDDLE: 1, + RIGHT: 2, + // helper functions + isButton: function(e, button){ return e.button == button; }, + isLeft: function(e){ return e.button == 0; }, + isMiddle: function(e){ return e.button == 1; }, + isRight: function(e){ return e.button == 2; } + }; + } + + // IE event normalization + if(dojo.isIE){ + var _trySetKeyCode = function(e, code){ + try{ + // squelch errors when keyCode is read-only + // (e.g. if keyCode is ctrl or shift) + return (e.keyCode = code); + }catch(e){ + return 0; + } + } + + // by default, use the standard listener + var iel = dojo._listener; + var listenersName = (dojo._ieListenersName = "_" + dojo._scopeName + "_listeners"); + // dispatcher tracking property + if(!dojo.config._allow_leaks){ + // custom listener that handles leak protection for DOM events + node_listener = iel = dojo._ie_listener = { + // support handler indirection: event handler functions are + // referenced here. Event dispatchers hold only indices. + handlers: [], + // add a listener to an object + add: function(/*Object*/ source, /*String*/ method, /*Function*/ listener){ + source = source || dojo.global; + var f = source[method]; + if(!f||!f[listenersName]){ + var d = dojo._getIeDispatcher(); + // original target function is special + d.target = f && (ieh.push(f) - 1); + // dispatcher holds a list of indices into handlers table + d[listenersName] = []; + // redirect source to dispatcher + f = source[method] = d; + } + return f[listenersName].push(ieh.push(listener) - 1) ; /*Handle*/ + }, + // remove a listener from an object + remove: function(/*Object*/ source, /*String*/ method, /*Handle*/ handle){ + var f = (source||dojo.global)[method], l = f && f[listenersName]; + if(f && l && handle--){ + delete ieh[l[handle]]; + delete l[handle]; + } + } + }; + // alias used above + var ieh = iel.handlers; + } + + dojo.mixin(del, { + add: function(/*DOMNode*/ node, /*String*/ event, /*Function*/ fp){ + if(!node){return;} // undefined + event = del._normalizeEventName(event); + if(event=="onkeypress"){ + // we need to listen to onkeydown to synthesize + // keypress events that otherwise won't fire + // on IE + var kd = node.onkeydown; + if(!kd || !kd[listenersName] || !kd._stealthKeydownHandle){ + var h = del.add(node, "onkeydown", del._stealthKeyDown); + kd = node.onkeydown; + kd._stealthKeydownHandle = h; + kd._stealthKeydownRefs = 1; + }else{ + kd._stealthKeydownRefs++; + } + } + return iel.add(node, event, del._fixCallback(fp)); + }, + remove: function(/*DOMNode*/ node, /*String*/ event, /*Handle*/ handle){ + event = del._normalizeEventName(event); + iel.remove(node, event, handle); + if(event=="onkeypress"){ + var kd = node.onkeydown; + if(--kd._stealthKeydownRefs <= 0){ + iel.remove(node, "onkeydown", kd._stealthKeydownHandle); + delete kd._stealthKeydownHandle; + } + } + }, + _normalizeEventName: function(/*String*/ eventName){ + // Generally, eventName should be lower case, unless it is + // special somehow (e.g. a Mozilla event) + // ensure 'on' + return eventName.slice(0,2) != "on" ? "on" + eventName : eventName; + }, + _nop: function(){}, + _fixEvent: function(/*Event*/ evt, /*DOMNode*/ sender){ + // summary: + // normalizes properties on the event object including event + // bubbling methods, keystroke normalization, and x/y positions + // evt: + // native event object + // sender: + // node to treat as "currentTarget" + if(!evt){ + var w = sender && (sender.ownerDocument || sender.document || sender).parentWindow || window; + evt = w.event; + } + if(!evt){return(evt);} + evt.target = evt.srcElement; + evt.currentTarget = (sender || evt.srcElement); + evt.layerX = evt.offsetX; + evt.layerY = evt.offsetY; + // FIXME: scroll position query is duped from dojo.html to + // avoid dependency on that entire module. Now that HTML is in + // Base, we should convert back to something similar there. + var se = evt.srcElement, doc = (se && se.ownerDocument) || document; + // DO NOT replace the following to use dojo.body(), in IE, document.documentElement should be used + // here rather than document.body + var docBody = ((dojo.isIE < 6) || (doc["compatMode"] == "BackCompat")) ? doc.body : doc.documentElement; + var offset = dojo._getIeDocumentElementOffset(); + evt.pageX = evt.clientX + dojo._fixIeBiDiScrollLeft(docBody.scrollLeft || 0) - offset.x; + evt.pageY = evt.clientY + (docBody.scrollTop || 0) - offset.y; + if(evt.type == "mouseover"){ + evt.relatedTarget = evt.fromElement; + } + if(evt.type == "mouseout"){ + evt.relatedTarget = evt.toElement; + } + evt.stopPropagation = del._stopPropagation; + evt.preventDefault = del._preventDefault; + return del._fixKeys(evt); + }, + _fixKeys: function(evt){ + switch(evt.type){ + case "keypress": + var c = ("charCode" in evt ? evt.charCode : evt.keyCode); + if (c==10){ + // CTRL-ENTER is CTRL-ASCII(10) on IE, but CTRL-ENTER on Mozilla + c=0; + evt.keyCode = 13; + }else if(c==13||c==27){ + c=0; // Mozilla considers ENTER and ESC non-printable + }else if(c==3){ + c=99; // Mozilla maps CTRL-BREAK to CTRL-c + } + // Mozilla sets keyCode to 0 when there is a charCode + // but that stops the event on IE. + evt.charCode = c; + del._setKeyChar(evt); + break; + } + return evt; + }, + _stealthKeyDown: function(evt){ + // IE doesn't fire keypress for most non-printable characters. + // other browsers do, we simulate it here. + var kp = evt.currentTarget.onkeypress; + // only works if kp exists and is a dispatcher + if(!kp || !kp[listenersName]){ return; } + // munge key/charCode + var k=evt.keyCode; + // These are Windows Virtual Key Codes + // http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/UserInput/VirtualKeyCodes.asp + var unprintable = k!=13 && k!=32 && k!=27 && (k<48||k>90) && (k<96||k>111) && (k<186||k>192) && (k<219||k>222); + // synthesize keypress for most unprintables and CTRL-keys + if(unprintable||evt.ctrlKey){ + var c = unprintable ? 0 : k; + if(evt.ctrlKey){ + if(k==3 || k==13){ + return; // IE will post CTRL-BREAK, CTRL-ENTER as keypress natively + }else if(c>95 && c<106){ + c -= 48; // map CTRL-[numpad 0-9] to ASCII + }else if((!evt.shiftKey)&&(c>=65&&c<=90)){ + c += 32; // map CTRL-[A-Z] to lowercase + }else{ + c = del._punctMap[c] || c; // map other problematic CTRL combinations to ASCII + } + } + // simulate a keypress event + var faux = del._synthesizeEvent(evt, {type: 'keypress', faux: true, charCode: c}); + kp.call(evt.currentTarget, faux); + evt.cancelBubble = faux.cancelBubble; + evt.returnValue = faux.returnValue; + _trySetKeyCode(evt, faux.keyCode); + } + }, + // Called in Event scope + _stopPropagation: function(){ + this.cancelBubble = true; + }, + _preventDefault: function(){ + // Setting keyCode to 0 is the only way to prevent certain keypresses (namely + // ctrl-combinations that correspond to menu accelerator keys). + // Otoh, it prevents upstream listeners from getting this information + // Try to split the difference here by clobbering keyCode only for ctrl + // combinations. If you still need to access the key upstream, bubbledKeyCode is + // provided as a workaround. + this.bubbledKeyCode = this.keyCode; + if(this.ctrlKey){_trySetKeyCode(this, 0);} + this.returnValue = false; + } + }); + + // override stopEvent for IE + dojo.stopEvent = function(evt){ + evt = evt || window.event; + del._stopPropagation.call(evt); + del._preventDefault.call(evt); + } + } + + del._synthesizeEvent = function(evt, props){ + var faux = dojo.mixin({}, evt, props); + del._setKeyChar(faux); + // FIXME: would prefer to use dojo.hitch: dojo.hitch(evt, evt.preventDefault); + // but it throws an error when preventDefault is invoked on Safari + // does Event.preventDefault not support "apply" on Safari? + faux.preventDefault = function(){ evt.preventDefault(); }; + faux.stopPropagation = function(){ evt.stopPropagation(); }; + return faux; + } + + // Opera event normalization + if(dojo.isOpera){ + dojo.mixin(del, { + _fixEvent: function(evt, sender){ + switch(evt.type){ + case "keypress": + var c = evt.which; + if(c==3){ + c=99; // Mozilla maps CTRL-BREAK to CTRL-c + } + // can't trap some keys at all, like INSERT and DELETE + // there is no differentiating info between DELETE and ".", or INSERT and "-" + c = c<41 && !evt.shiftKey ? 0 : c; + if(evt.ctrlKey && !evt.shiftKey && c>=65 && c<=90){ + // lowercase CTRL-[A-Z] keys + c += 32; + } + return del._synthesizeEvent(evt, { charCode: c }); + } + return evt; + } + }); + } + + // Webkit event normalization + if(dojo.isWebKit){ + del._add = del.add; + del._remove = del.remove; + + dojo.mixin(del, { + add: function(/*DOMNode*/ node, /*String*/ event, /*Function*/ fp){ + if(!node){return;} // undefined + var handle = del._add(node, event, fp); + if(del._normalizeEventName(event) == "keypress"){ + // we need to listen to onkeydown to synthesize + // keypress events that otherwise won't fire + // in Safari 3.1+: https://lists.webkit.org/pipermail/webkit-dev/2007-December/002992.html + handle._stealthKeyDownHandle = del._add(node, "keydown", function(evt){ + //A variation on the IE _stealthKeydown function + //Synthesize an onkeypress event, but only for unprintable characters. + var k=evt.keyCode; + // These are Windows Virtual Key Codes + // http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/UserInput/VirtualKeyCodes.asp + var unprintable = k!=13 && k!=32 && (k<48 || k>90) && (k<96 || k>111) && (k<186 || k>192) && (k<219 || k>222); + // synthesize keypress for most unprintables and CTRL-keys + if(unprintable || evt.ctrlKey){ + var c = unprintable ? 0 : k; + if(evt.ctrlKey){ + if(k==3 || k==13){ + return; // IE will post CTRL-BREAK, CTRL-ENTER as keypress natively + }else if(c>95 && c<106){ + c -= 48; // map CTRL-[numpad 0-9] to ASCII + }else if(!evt.shiftKey && c>=65 && c<=90){ + c += 32; // map CTRL-[A-Z] to lowercase + }else{ + c = del._punctMap[c] || c; // map other problematic CTRL combinations to ASCII + } + } + // simulate a keypress event + var faux = del._synthesizeEvent(evt, {type: 'keypress', faux: true, charCode: c}); + fp.call(evt.currentTarget, faux); + } + }); + } + return handle; /*Handle*/ + }, + + remove: function(/*DOMNode*/ node, /*String*/ event, /*Handle*/ handle){ + if(node){ + if(handle._stealthKeyDownHandle){ + del._remove(node, "keydown", handle._stealthKeyDownHandle); + } + del._remove(node, event, handle); + } + }, + _fixEvent: function(evt, sender){ + switch(evt.type){ + case "keypress": + if(evt.faux){ return evt; } + var c = evt.charCode; + c = c>=32 ? c : 0; + return del._synthesizeEvent(evt, {charCode: c, faux: true}); + } + return evt; + } + }); + } + })(); + +if(dojo.isIE){ + // keep this out of the closure + // closing over 'iel' or 'ieh' b0rks leak prevention + // ls[i] is an index into the master handler array + dojo._ieDispatcher = function(args, sender){ + var ap = Array.prototype, + h = dojo._ie_listener.handlers, + c = args.callee, + ls = c[dojo._ieListenersName], + t = h[c.target]; + // return value comes from original target function + var r = t && t.apply(sender, args); + // make local copy of listener array so it's immutable during processing + var lls = [].concat(ls); + // invoke listeners after target function + for(var i in lls){ + var f = h[lls[i]]; + if(!(i in ap) && f){ + f.apply(sender, args); + } + } + return r; + } + dojo._getIeDispatcher = function(){ + // ensure the returned function closes over nothing ("new Function" apparently doesn't close) + return new Function(dojo._scopeName + "._ieDispatcher(arguments, this)"); // function + } + // keep this out of the closure to reduce RAM allocation + dojo._event_listener._fixCallback = function(fp){ + var f = dojo._event_listener._fixEvent; + return function(e){ return fp.call(this, f(e, this)); }; + } +} + +} + +if(!dojo._hasResource["dojo._base.html"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo._base.html"] = true; + +dojo.provide("dojo._base.html"); + +// FIXME: need to add unit tests for all the semi-public methods + +try{ + document.execCommand("BackgroundImageCache", false, true); +}catch(e){ + // sane browsers don't have cache "issues" +} + +// ============================= +// DOM Functions +// ============================= + +/*===== +dojo.byId = function(id, doc){ + // summary: + // Returns DOM node with matching `id` attribute or `null` + // if not found. If `id` is a DomNode, this function is a no-op. + // + // id: String|DOMNode + // A string to match an HTML id attribute or a reference to a DOM Node + // + // doc: Document? + // Document to work in. Defaults to the current value of + // dojo.doc. Can be used to retrieve + // node references from other documents. + // + // example: + // Look up a node by ID: + // | var n = dojo.byId("foo"); + // + // example: + // Check if a node exists, and use it. + // | var n = dojo.byId("bar"); + // | if(n){ doStuff() ... } + // + // example: + // Allow string or DomNode references to be passed to a custom function: + // | var foo = function(nodeOrId){ + // | nodeOrId = dojo.byId(nodeOrId); + // | // ... more stuff + // | } +=====*/ + +if(dojo.isIE || dojo.isOpera){ + dojo.byId = function(id, doc){ + if(typeof id != "string"){ + return id; + } + var _d = doc || dojo.doc, te = _d.getElementById(id); + // attributes.id.value is better than just id in case the + // user has a name=id inside a form + if(te && (te.attributes.id.value == id || te.id == id)){ + return te; + }else{ + var eles = _d.all[id]; + if(!eles || eles.nodeName){ + eles = [eles]; + } + // if more than 1, choose first with the correct id + var i=0; + while((te=eles[i++])){ + if((te.attributes && te.attributes.id && te.attributes.id.value == id) + || te.id == id){ + return te; + } + } + } + }; +}else{ + dojo.byId = function(id, doc){ + // inline'd type check + return (typeof id == "string") ? (doc || dojo.doc).getElementById(id) : id; // DomNode + }; +} +/*===== +}; +=====*/ + +(function(){ + var d = dojo; + var byId = d.byId; + + var _destroyContainer = null, + _destroyDoc; + d.addOnWindowUnload(function(){ + _destroyContainer = null; //prevent IE leak + }); + +/*===== + dojo._destroyElement = function(node){ + // summary: + // Existing alias for `dojo.destroy`. Deprecated, will be removed + // in 2.0 + } +=====*/ + dojo._destroyElement = dojo.destroy = function(/*String|DomNode*/node){ + // summary: + // Removes a node from its parent, clobbering it and all of its + // children. + // + // description: + // Removes a node from its parent, clobbering it and all of its + // children. Function only works with DomNodes, and returns nothing. + // + // node: + // A String ID or DomNode reference of the element to be destroyed + // + // example: + // Destroy a node byId: + // | dojo.destroy("someId"); + // + // example: + // Destroy all nodes in a list by reference: + // | dojo.query(".someNode").forEach(dojo.destroy); + + node = byId(node); + try{ + var doc = node.ownerDocument; + // cannot use _destroyContainer.ownerDocument since this can throw an exception on IE + if(!_destroyContainer || _destroyDoc != doc){ + _destroyContainer = doc.createElement("div"); + _destroyDoc = doc; + } + _destroyContainer.appendChild(node.parentNode ? node.parentNode.removeChild(node) : node); + // NOTE: see http://trac.dojotoolkit.org/ticket/2931. This may be a bug and not a feature + _destroyContainer.innerHTML = ""; + }catch(e){ + /* squelch */ + } + }; + + dojo.isDescendant = function(/*DomNode|String*/node, /*DomNode|String*/ancestor){ + // summary: + // Returns true if node is a descendant of ancestor + // node: string id or node reference to test + // ancestor: string id or node reference of potential parent to test against + // + // example: + // Test is node id="bar" is a descendant of node id="foo" + // | if(dojo.isDescendant("bar", "foo")){ ... } + try{ + node = byId(node); + ancestor = byId(ancestor); + while(node){ + if(node == ancestor){ + return true; // Boolean + } + node = node.parentNode; + } + }catch(e){ /* squelch, return false */ } + return false; // Boolean + }; + + dojo.setSelectable = function(/*DomNode|String*/node, /*Boolean*/selectable){ + // summary: + // Enable or disable selection on a node + // node: + // id or reference to node + // selectable: + // state to put the node in. false indicates unselectable, true + // allows selection. + // example: + // Make the node id="bar" unselectable + // | dojo.setSelectable("bar"); + // example: + // Make the node id="bar" selectable + // | dojo.setSelectable("bar", true); + node = byId(node); + if(d.isMozilla){ + node.style.MozUserSelect = selectable ? "" : "none"; + }else if(d.isKhtml || d.isWebKit){ + node.style.KhtmlUserSelect = selectable ? "auto" : "none"; + }else if(d.isIE){ + var v = (node.unselectable = selectable ? "" : "on"); + d.query("*", node).forEach("item.unselectable = '"+v+"'"); + } + //FIXME: else? Opera? + }; + + var _insertBefore = function(/*DomNode*/node, /*DomNode*/ref){ + var parent = ref.parentNode; + if(parent){ + parent.insertBefore(node, ref); + } + }; + + var _insertAfter = function(/*DomNode*/node, /*DomNode*/ref){ + // summary: + // Try to insert node after ref + var parent = ref.parentNode; + if(parent){ + if(parent.lastChild == ref){ + parent.appendChild(node); + }else{ + parent.insertBefore(node, ref.nextSibling); + } + } + }; + + dojo.place = function(node, refNode, position){ + // summary: + // Attempt to insert node into the DOM, choosing from various positioning options. + // Returns the first argument resolved to a DOM node. + // + // node: String|DomNode + // id or node reference, or HTML fragment starting with "<" to place relative to refNode + // + // refNode: String|DomNode + // id or node reference to use as basis for placement + // + // position: String|Number? + // string noting the position of node relative to refNode or a + // number indicating the location in the childNodes collection of refNode. + // Accepted string values are: + // | * before + // | * after + // | * replace + // | * only + // | * first + // | * last + // "first" and "last" indicate positions as children of refNode, "replace" replaces refNode, + // "only" replaces all children. position defaults to "last" if not specified + // + // returns: DomNode + // Returned values is the first argument resolved to a DOM node. + // + // .place() is also a method of `dojo.NodeList`, allowing `dojo.query` node lookups. + // + // example: + // Place a node by string id as the last child of another node by string id: + // | dojo.place("someNode", "anotherNode"); + // + // example: + // Place a node by string id before another node by string id + // | dojo.place("someNode", "anotherNode", "before"); + // + // example: + // Create a Node, and place it in the body element (last child): + // | dojo.place("<div></div>", dojo.body()); + // + // example: + // Put a new LI as the first child of a list by id: + // | dojo.place("<li></li>", "someUl", "first"); + + refNode = byId(refNode); + if(typeof node == "string"){ // inline'd type check + node = node.charAt(0) == "<" ? d._toDom(node, refNode.ownerDocument) : byId(node); + } + if(typeof position == "number"){ // inline'd type check + var cn = refNode.childNodes; + if(!cn.length || cn.length <= position){ + refNode.appendChild(node); + }else{ + _insertBefore(node, cn[position < 0 ? 0 : position]); + } + }else{ + switch(position){ + case "before": + _insertBefore(node, refNode); + break; + case "after": + _insertAfter(node, refNode); + break; + case "replace": + refNode.parentNode.replaceChild(node, refNode); + break; + case "only": + d.empty(refNode); + refNode.appendChild(node); + break; + case "first": + if(refNode.firstChild){ + _insertBefore(node, refNode.firstChild); + break; + } + // else fallthrough... + default: // aka: last + refNode.appendChild(node); + } + } + return node; // DomNode + } + + // Box functions will assume this model. + // On IE/Opera, BORDER_BOX will be set if the primary document is in quirks mode. + // Can be set to change behavior of box setters. + + // can be either: + // "border-box" + // "content-box" (default) + dojo.boxModel = "content-box"; + + // We punt per-node box mode testing completely. + // If anybody cares, we can provide an additional (optional) unit + // that overrides existing code to include per-node box sensitivity. + + // Opera documentation claims that Opera 9 uses border-box in BackCompat mode. + // but experiments (Opera 9.10.8679 on Windows Vista) indicate that it actually continues to use content-box. + // IIRC, earlier versions of Opera did in fact use border-box. + // Opera guys, this is really confusing. Opera being broken in quirks mode is not our fault. + + if(d.isIE /*|| dojo.isOpera*/){ + // client code may have to adjust if compatMode varies across iframes + d.boxModel = document.compatMode == "BackCompat" ? "border-box" : "content-box"; + } + + // ============================= + // Style Functions + // ============================= + + // getComputedStyle drives most of the style code. + // Wherever possible, reuse the returned object. + // + // API functions below that need to access computed styles accept an + // optional computedStyle parameter. + // If this parameter is omitted, the functions will call getComputedStyle themselves. + // This way, calling code can access computedStyle once, and then pass the reference to + // multiple API functions. + +/*===== + dojo.getComputedStyle = function(node){ + // summary: + // Returns a "computed style" object. + // + // description: + // Gets a "computed style" object which can be used to gather + // information about the current state of the rendered node. + // + // Note that this may behave differently on different browsers. + // Values may have different formats and value encodings across + // browsers. + // + // Note also that this method is expensive. Wherever possible, + // reuse the returned object. + // + // Use the dojo.style() method for more consistent (pixelized) + // return values. + // + // node: DOMNode + // A reference to a DOM node. Does NOT support taking an + // ID string for speed reasons. + // example: + // | dojo.getComputedStyle(dojo.byId('foo')).borderWidth; + // + // example: + // Reusing the returned object, avoiding multiple lookups: + // | var cs = dojo.getComputedStyle(dojo.byId("someNode")); + // | var w = cs.width, h = cs.height; + return; // CSS2Properties + } +=====*/ + + // Although we normally eschew argument validation at this + // level, here we test argument 'node' for (duck)type, + // by testing nodeType, ecause 'document' is the 'parentNode' of 'body' + // it is frequently sent to this function even + // though it is not Element. + var gcs; + if(d.isWebKit){ + gcs = function(/*DomNode*/node){ + var s; + if(node.nodeType == 1){ + var dv = node.ownerDocument.defaultView; + s = dv.getComputedStyle(node, null); + if(!s && node.style){ + node.style.display = ""; + s = dv.getComputedStyle(node, null); + } + } + return s || {}; + }; + }else if(d.isIE){ + gcs = function(node){ + // IE (as of 7) doesn't expose Element like sane browsers + return node.nodeType == 1 /* ELEMENT_NODE*/ ? node.currentStyle : {}; + }; + }else{ + gcs = function(node){ + return node.nodeType == 1 ? + node.ownerDocument.defaultView.getComputedStyle(node, null) : {}; + }; + } + dojo.getComputedStyle = gcs; + + if(!d.isIE){ + d._toPixelValue = function(element, value){ + // style values can be floats, client code may want + // to round for integer pixels. + return parseFloat(value) || 0; + }; + }else{ + d._toPixelValue = function(element, avalue){ + if(!avalue){ return 0; } + // on IE7, medium is usually 4 pixels + if(avalue == "medium"){ return 4; } + // style values can be floats, client code may + // want to round this value for integer pixels. + if(avalue.slice && avalue.slice(-2) == 'px'){ return parseFloat(avalue); } + with(element){ + var sLeft = style.left; + var rsLeft = runtimeStyle.left; + runtimeStyle.left = currentStyle.left; + try{ + // 'avalue' may be incompatible with style.left, which can cause IE to throw + // this has been observed for border widths using "thin", "medium", "thick" constants + // those particular constants could be trapped by a lookup + // but perhaps there are more + style.left = avalue; + avalue = style.pixelLeft; + }catch(e){ + avalue = 0; + } + style.left = sLeft; + runtimeStyle.left = rsLeft; + } + return avalue; + } + } + var px = d._toPixelValue; + + // FIXME: there opacity quirks on FF that we haven't ported over. Hrm. + /*===== + dojo._getOpacity = function(node){ + // summary: + // Returns the current opacity of the passed node as a + // floating-point value between 0 and 1. + // node: DomNode + // a reference to a DOM node. Does NOT support taking an + // ID string for speed reasons. + // returns: Number between 0 and 1 + return; // Number + } + =====*/ + + var astr = "DXImageTransform.Microsoft.Alpha"; + var af = function(n, f){ + try{ + return n.filters.item(astr); + }catch(e){ + return f ? {} : null; + } + }; + + dojo._getOpacity = + d.isIE ? function(node){ + try{ + return af(node).Opacity / 100; // Number + }catch(e){ + return 1; // Number + } + } : + function(node){ + return gcs(node).opacity; + }; + + /*===== + dojo._setOpacity = function(node, opacity){ + // summary: + // set the opacity of the passed node portably. Returns the + // new opacity of the node. + // node: DOMNode + // a reference to a DOM node. Does NOT support taking an + // ID string for performance reasons. + // opacity: Number + // A Number between 0 and 1. 0 specifies transparent. + // returns: Number between 0 and 1 + return; // Number + } + =====*/ + + dojo._setOpacity = + d.isIE ? function(/*DomNode*/node, /*Number*/opacity){ + var ov = opacity * 100, opaque = opacity == 1; + node.style.zoom = opaque ? "" : 1; + + if(!af(node)){ + if(opaque){ + return opacity; + } + node.style.filter += " progid:" + astr + "(Opacity=" + ov + ")"; + }else{ + af(node, 1).Opacity = ov; + } + + // on IE7 Alpha(Filter opacity=100) makes text look fuzzy so disable it altogether (bug #2661), + //but still update the opacity value so we can get a correct reading if it is read later. + af(node, 1).Enabled = !opaque; + + if(node.nodeName.toLowerCase() == "tr"){ + d.query("> td", node).forEach(function(i){ + d._setOpacity(i, opacity); + }); + } + return opacity; + } : + function(node, opacity){ + return node.style.opacity = opacity; + }; + + var _pixelNamesCache = { + left: true, top: true + }; + var _pixelRegExp = /margin|padding|width|height|max|min|offset/; // |border + var _toStyleValue = function(node, type, value){ + type = type.toLowerCase(); // FIXME: should we really be doing string case conversion here? Should we cache it? Need to profile! + if(d.isIE){ + if(value == "auto"){ + if(type == "height"){ return node.offsetHeight; } + if(type == "width"){ return node.offsetWidth; } + } + if(type == "fontweight"){ + switch(value){ + case 700: return "bold"; + case 400: + default: return "normal"; + } + } + } + if(!(type in _pixelNamesCache)){ + _pixelNamesCache[type] = _pixelRegExp.test(type); + } + return _pixelNamesCache[type] ? px(node, value) : value; + }; + + var _floatStyle = d.isIE ? "styleFloat" : "cssFloat", + _floatAliases = { "cssFloat": _floatStyle, "styleFloat": _floatStyle, "float": _floatStyle } + ; + + // public API + + dojo.style = function( /*DomNode|String*/ node, + /*String?|Object?*/ style, + /*String?*/ value){ + // summary: + // Accesses styles on a node. If 2 arguments are + // passed, acts as a getter. If 3 arguments are passed, acts + // as a setter. + // description: + // Getting the style value uses the computed style for the node, so the value + // will be a calculated value, not just the immediate node.style value. + // Also when getting values, use specific style names, + // like "borderBottomWidth" instead of "border" since compound values like + // "border" are not necessarily reflected as expected. + // If you want to get node dimensions, use `dojo.marginBox()`, + // `dojo.contentBox()` or `dojo.position()`. + // node: + // id or reference to node to get/set style for + // style: + // the style property to set in DOM-accessor format + // ("borderWidth", not "border-width") or an object with key/value + // pairs suitable for setting each property. + // value: + // If passed, sets value on the node for style, handling + // cross-browser concerns. When setting a pixel value, + // be sure to include "px" in the value. For instance, top: "200px". + // Otherwise, in some cases, some browsers will not apply the style. + // example: + // Passing only an ID or node returns the computed style object of + // the node: + // | dojo.style("thinger"); + // example: + // Passing a node and a style property returns the current + // normalized, computed value for that property: + // | dojo.style("thinger", "opacity"); // 1 by default + // + // example: + // Passing a node, a style property, and a value changes the + // current display of the node and returns the new computed value + // | dojo.style("thinger", "opacity", 0.5); // == 0.5 + // + // example: + // Passing a node, an object-style style property sets each of the values in turn and returns the computed style object of the node: + // | dojo.style("thinger", { + // | "opacity": 0.5, + // | "border": "3px solid black", + // | "height": "300px" + // | }); + // + // example: + // When the CSS style property is hyphenated, the JavaScript property is camelCased. + // font-size becomes fontSize, and so on. + // | dojo.style("thinger",{ + // | fontSize:"14pt", + // | letterSpacing:"1.2em" + // | }); + // + // example: + // dojo.NodeList implements .style() using the same syntax, omitting the "node" parameter, calling + // dojo.style() on every element of the list. See: `dojo.query()` and `dojo.NodeList()` + // | dojo.query(".someClassName").style("visibility","hidden"); + // | // or + // | dojo.query("#baz > div").style({ + // | opacity:0.75, + // | fontSize:"13pt" + // | }); + + var n = byId(node), args = arguments.length, op = (style == "opacity"); + style = _floatAliases[style] || style; + if(args == 3){ + return op ? d._setOpacity(n, value) : n.style[style] = value; /*Number*/ + } + if(args == 2 && op){ + return d._getOpacity(n); + } + var s = gcs(n); + if(args == 2 && typeof style != "string"){ // inline'd type check + for(var x in style){ + d.style(node, x, style[x]); + } + return s; + } + return (args == 1) ? s : _toStyleValue(n, style, s[style] || n.style[style]); /* CSS2Properties||String||Number */ + } + + // ============================= + // Box Functions + // ============================= + + dojo._getPadExtents = function(/*DomNode*/n, /*Object*/computedStyle){ + // summary: + // Returns object with special values specifically useful for node + // fitting. + // description: + // Returns an object with `w`, `h`, `l`, `t` properties: + // | l/t = left/top padding (respectively) + // | w = the total of the left and right padding + // | h = the total of the top and bottom padding + // If 'node' has position, l/t forms the origin for child nodes. + // The w/h are used for calculating boxes. + // Normally application code will not need to invoke this + // directly, and will use the ...box... functions instead. + var + s = computedStyle||gcs(n), + l = px(n, s.paddingLeft), + t = px(n, s.paddingTop); + return { + l: l, + t: t, + w: l+px(n, s.paddingRight), + h: t+px(n, s.paddingBottom) + }; + } + + dojo._getBorderExtents = function(/*DomNode*/n, /*Object*/computedStyle){ + // summary: + // returns an object with properties useful for noting the border + // dimensions. + // description: + // * l/t = the sum of left/top border (respectively) + // * w = the sum of the left and right border + // * h = the sum of the top and bottom border + // + // The w/h are used for calculating boxes. + // Normally application code will not need to invoke this + // directly, and will use the ...box... functions instead. + var + ne = "none", + s = computedStyle||gcs(n), + bl = (s.borderLeftStyle != ne ? px(n, s.borderLeftWidth) : 0), + bt = (s.borderTopStyle != ne ? px(n, s.borderTopWidth) : 0); + return { + l: bl, + t: bt, + w: bl + (s.borderRightStyle!=ne ? px(n, s.borderRightWidth) : 0), + h: bt + (s.borderBottomStyle!=ne ? px(n, s.borderBottomWidth) : 0) + }; + } + + dojo._getPadBorderExtents = function(/*DomNode*/n, /*Object*/computedStyle){ + // summary: + // Returns object with properties useful for box fitting with + // regards to padding. + // description: + // * l/t = the sum of left/top padding and left/top border (respectively) + // * w = the sum of the left and right padding and border + // * h = the sum of the top and bottom padding and border + // + // The w/h are used for calculating boxes. + // Normally application code will not need to invoke this + // directly, and will use the ...box... functions instead. + var + s = computedStyle||gcs(n), + p = d._getPadExtents(n, s), + b = d._getBorderExtents(n, s); + return { + l: p.l + b.l, + t: p.t + b.t, + w: p.w + b.w, + h: p.h + b.h + }; + } + + dojo._getMarginExtents = function(n, computedStyle){ + // summary: + // returns object with properties useful for box fitting with + // regards to box margins (i.e., the outer-box). + // + // * l/t = marginLeft, marginTop, respectively + // * w = total width, margin inclusive + // * h = total height, margin inclusive + // + // The w/h are used for calculating boxes. + // Normally application code will not need to invoke this + // directly, and will use the ...box... functions instead. + var + s = computedStyle||gcs(n), + l = px(n, s.marginLeft), + t = px(n, s.marginTop), + r = px(n, s.marginRight), + b = px(n, s.marginBottom); + if(d.isWebKit && (s.position != "absolute")){ + // FIXME: Safari's version of the computed right margin + // is the space between our right edge and the right edge + // of our offsetParent. + // What we are looking for is the actual margin value as + // determined by CSS. + // Hack solution is to assume left/right margins are the same. + r = l; + } + return { + l: l, + t: t, + w: l+r, + h: t+b + }; + } + + // Box getters work in any box context because offsetWidth/clientWidth + // are invariant wrt box context + // + // They do *not* work for display: inline objects that have padding styles + // because the user agent ignores padding (it's bogus styling in any case) + // + // Be careful with IMGs because they are inline or block depending on + // browser and browser mode. + + // Although it would be easier to read, there are not separate versions of + // _getMarginBox for each browser because: + // 1. the branching is not expensive + // 2. factoring the shared code wastes cycles (function call overhead) + // 3. duplicating the shared code wastes bytes + + dojo._getMarginBox = function(/*DomNode*/node, /*Object*/computedStyle){ + // summary: + // returns an object that encodes the width, height, left and top + // positions of the node's margin box. + var s = computedStyle || gcs(node), me = d._getMarginExtents(node, s); + var l = node.offsetLeft - me.l, t = node.offsetTop - me.t, p = node.parentNode; + if(d.isMoz){ + // Mozilla: + // If offsetParent has a computed overflow != visible, the offsetLeft is decreased + // by the parent's border. + // We don't want to compute the parent's style, so instead we examine node's + // computed left/top which is more stable. + var sl = parseFloat(s.left), st = parseFloat(s.top); + if(!isNaN(sl) && !isNaN(st)){ + l = sl, t = st; + }else{ + // If child's computed left/top are not parseable as a number (e.g. "auto"), we + // have no choice but to examine the parent's computed style. + if(p && p.style){ + var pcs = gcs(p); + if(pcs.overflow != "visible"){ + var be = d._getBorderExtents(p, pcs); + l += be.l, t += be.t; + } + } + } + }else if(d.isOpera || (d.isIE > 7 && !d.isQuirks)){ + // On Opera and IE 8, offsetLeft/Top includes the parent's border + if(p){ + be = d._getBorderExtents(p); + l -= be.l; + t -= be.t; + } + } + return { + l: l, + t: t, + w: node.offsetWidth + me.w, + h: node.offsetHeight + me.h + }; + } + + dojo._getContentBox = function(node, computedStyle){ + // summary: + // Returns an object that encodes the width, height, left and top + // positions of the node's content box, irrespective of the + // current box model. + + // clientWidth/Height are important since the automatically account for scrollbars + // fallback to offsetWidth/Height for special cases (see #3378) + var s = computedStyle || gcs(node), + pe = d._getPadExtents(node, s), + be = d._getBorderExtents(node, s), + w = node.clientWidth, + h + ; + if(!w){ + w = node.offsetWidth, h = node.offsetHeight; + }else{ + h = node.clientHeight, be.w = be.h = 0; + } + // On Opera, offsetLeft includes the parent's border + if(d.isOpera){ pe.l += be.l; pe.t += be.t; }; + return { + l: pe.l, + t: pe.t, + w: w - pe.w - be.w, + h: h - pe.h - be.h + }; + } + + dojo._getBorderBox = function(node, computedStyle){ + var s = computedStyle || gcs(node), + pe = d._getPadExtents(node, s), + cb = d._getContentBox(node, s) + ; + return { + l: cb.l - pe.l, + t: cb.t - pe.t, + w: cb.w + pe.w, + h: cb.h + pe.h + }; + } + + // Box setters depend on box context because interpretation of width/height styles + // vary wrt box context. + // + // The value of dojo.boxModel is used to determine box context. + // dojo.boxModel can be set directly to change behavior. + // + // Beware of display: inline objects that have padding styles + // because the user agent ignores padding (it's a bogus setup anyway) + // + // Be careful with IMGs because they are inline or block depending on + // browser and browser mode. + // + // Elements other than DIV may have special quirks, like built-in + // margins or padding, or values not detectable via computedStyle. + // In particular, margins on TABLE do not seems to appear + // at all in computedStyle on Mozilla. + + dojo._setBox = function(/*DomNode*/node, /*Number?*/l, /*Number?*/t, /*Number?*/w, /*Number?*/h, /*String?*/u){ + // summary: + // sets width/height/left/top in the current (native) box-model + // dimentions. Uses the unit passed in u. + // node: + // DOM Node reference. Id string not supported for performance + // reasons. + // l: + // left offset from parent. + // t: + // top offset from parent. + // w: + // width in current box model. + // h: + // width in current box model. + // u: + // unit measure to use for other measures. Defaults to "px". + u = u || "px"; + var s = node.style; + if(!isNaN(l)){ s.left = l + u; } + if(!isNaN(t)){ s.top = t + u; } + if(w >= 0){ s.width = w + u; } + if(h >= 0){ s.height = h + u; } + } + + dojo._isButtonTag = function(/*DomNode*/node) { + // summary: + // True if the node is BUTTON or INPUT.type="button". + return node.tagName == "BUTTON" + || node.tagName=="INPUT" && (node.getAttribute("type")||'').toUpperCase() == "BUTTON"; // boolean + } + + dojo._usesBorderBox = function(/*DomNode*/node){ + // summary: + // True if the node uses border-box layout. + + // We could test the computed style of node to see if a particular box + // has been specified, but there are details and we choose not to bother. + + // TABLE and BUTTON (and INPUT type=button) are always border-box by default. + // If you have assigned a different box to either one via CSS then + // box functions will break. + + var n = node.tagName; + return d.boxModel=="border-box" || n=="TABLE" || d._isButtonTag(node); // boolean + } + + dojo._setContentSize = function(/*DomNode*/node, /*Number*/widthPx, /*Number*/heightPx, /*Object*/computedStyle){ + // summary: + // Sets the size of the node's contents, irrespective of margins, + // padding, or borders. + if(d._usesBorderBox(node)){ + var pb = d._getPadBorderExtents(node, computedStyle); + if(widthPx >= 0){ widthPx += pb.w; } + if(heightPx >= 0){ heightPx += pb.h; } + } + d._setBox(node, NaN, NaN, widthPx, heightPx); + } + + dojo._setMarginBox = function(/*DomNode*/node, /*Number?*/leftPx, /*Number?*/topPx, + /*Number?*/widthPx, /*Number?*/heightPx, + /*Object*/computedStyle){ + // summary: + // sets the size of the node's margin box and placement + // (left/top), irrespective of box model. Think of it as a + // passthrough to dojo._setBox that handles box-model vagaries for + // you. + + var s = computedStyle || gcs(node), + // Some elements have special padding, margin, and box-model settings. + // To use box functions you may need to set padding, margin explicitly. + // Controlling box-model is harder, in a pinch you might set dojo.boxModel. + bb = d._usesBorderBox(node), + pb = bb ? _nilExtents : d._getPadBorderExtents(node, s) + ; + if(d.isWebKit){ + // on Safari (3.1.2), button nodes with no explicit size have a default margin + // setting an explicit size eliminates the margin. + // We have to swizzle the width to get correct margin reading. + if(d._isButtonTag(node)){ + var ns = node.style; + if(widthPx >= 0 && !ns.width) { ns.width = "4px"; } + if(heightPx >= 0 && !ns.height) { ns.height = "4px"; } + } + } + var mb = d._getMarginExtents(node, s); + if(widthPx >= 0){ widthPx = Math.max(widthPx - pb.w - mb.w, 0); } + if(heightPx >= 0){ heightPx = Math.max(heightPx - pb.h - mb.h, 0); } + d._setBox(node, leftPx, topPx, widthPx, heightPx); + } + + var _nilExtents = { l:0, t:0, w:0, h:0 }; + + // public API + + dojo.marginBox = function(/*DomNode|String*/node, /*Object?*/box){ + // summary: + // Getter/setter for the margin-box of node. + // description: + // Getter/setter for the margin-box of node. + // Returns an object in the expected format of box (regardless + // if box is passed). The object might look like: + // `{ l: 50, t: 200, w: 300: h: 150 }` + // for a node offset from its parent 50px to the left, 200px from + // the top with a margin width of 300px and a margin-height of + // 150px. + // node: + // id or reference to DOM Node to get/set box for + // box: + // If passed, denotes that dojo.marginBox() should + // update/set the margin box for node. Box is an object in the + // above format. All properties are optional if passed. + // example: + // Retrieve the marginbox of a passed node + // | var box = dojo.marginBox("someNodeId"); + // | console.dir(box); + // + // example: + // Set a node's marginbox to the size of another node + // | var box = dojo.marginBox("someNodeId"); + // | dojo.marginBox("someOtherNode", box); + + var n = byId(node), s = gcs(n), b = box; + return !b ? d._getMarginBox(n, s) : d._setMarginBox(n, b.l, b.t, b.w, b.h, s); // Object + } + + dojo.contentBox = function(/*DomNode|String*/node, /*Object?*/box){ + // summary: + // Getter/setter for the content-box of node. + // description: + // Returns an object in the expected format of box (regardless if box is passed). + // The object might look like: + // `{ l: 50, t: 200, w: 300: h: 150 }` + // for a node offset from its parent 50px to the left, 200px from + // the top with a content width of 300px and a content-height of + // 150px. Note that the content box may have a much larger border + // or margin box, depending on the box model currently in use and + // CSS values set/inherited for node. + // While the getter will return top and left values, the + // setter only accepts setting the width and height. + // node: + // id or reference to DOM Node to get/set box for + // box: + // If passed, denotes that dojo.contentBox() should + // update/set the content box for node. Box is an object in the + // above format, but only w (width) and h (height) are supported. + // All properties are optional if passed. + var n = byId(node), s = gcs(n), b = box; + return !b ? d._getContentBox(n, s) : d._setContentSize(n, b.w, b.h, s); // Object + } + + // ============================= + // Positioning + // ============================= + + var _sumAncestorProperties = function(node, prop){ + if(!(node = (node||0).parentNode)){return 0} + var val, retVal = 0, _b = d.body(); + while(node && node.style){ + if(gcs(node).position == "fixed"){ + return 0; + } + val = node[prop]; + if(val){ + retVal += val - 0; + // opera and khtml #body & #html has the same values, we only + // need one value + if(node == _b){ break; } + } + node = node.parentNode; + } + return retVal; // integer + } + + dojo._docScroll = function(){ + var n = d.global; + return "pageXOffset" in n? { x:n.pageXOffset, y:n.pageYOffset } : + (n=d.doc.documentElement, n.clientHeight? { x:d._fixIeBiDiScrollLeft(n.scrollLeft), y:n.scrollTop } : + (n=d.body(), { x:n.scrollLeft||0, y:n.scrollTop||0 })); + }; + + dojo._isBodyLtr = function(){ + return "_bodyLtr" in d? d._bodyLtr : + d._bodyLtr = (d.body().dir || d.doc.documentElement.dir || "ltr").toLowerCase() == "ltr"; // Boolean + } + + dojo._getIeDocumentElementOffset = function(){ + // summary: + // returns the offset in x and y from the document body to the + // visual edge of the page + // description: + // The following values in IE contain an offset: + // | event.clientX + // | event.clientY + // | node.getBoundingClientRect().left + // | node.getBoundingClientRect().top + // But other position related values do not contain this offset, + // such as node.offsetLeft, node.offsetTop, node.style.left and + // node.style.top. The offset is always (2, 2) in LTR direction. + // When the body is in RTL direction, the offset counts the width + // of left scroll bar's width. This function computes the actual + // offset. + + //NOTE: assumes we're being called in an IE browser + + var de = d.doc.documentElement; // only deal with HTML element here, _abs handles body/quirks + + if(d.isIE < 8){ + var r = de.getBoundingClientRect(); // works well for IE6+ + //console.debug('rect left,top = ' + r.left+','+r.top + ', html client left/top = ' + de.clientLeft+','+de.clientTop + ', rtl = ' + (!d._isBodyLtr()) + ', quirks = ' + d.isQuirks); + var l = r.left, + t = r.top; + if(d.isIE < 7){ + l += de.clientLeft; // scrollbar size in strict/RTL, or, + t += de.clientTop; // HTML border size in strict + } + return { + x: l < 0? 0 : l, // FRAME element border size can lead to inaccurate negative values + y: t < 0? 0 : t + }; + }else{ + return { + x: 0, + y: 0 + }; + } + + }; + + dojo._fixIeBiDiScrollLeft = function(/*Integer*/ scrollLeft){ + // In RTL direction, scrollLeft should be a negative value, but IE < 8 + // returns a positive one. All codes using documentElement.scrollLeft + // must call this function to fix this error, otherwise the position + // will offset to right when there is a horizontal scrollbar. + + var dd = d.doc; + if(d.isIE < 8 && !d._isBodyLtr()){ + var de = d.isQuirks ? dd.body : dd.documentElement; + return scrollLeft + de.clientWidth - de.scrollWidth; // Integer + } + return scrollLeft; // Integer + } + + // FIXME: need a setter for coords or a moveTo!! + dojo._abs = dojo.position = function(/*DomNode*/node, /*Boolean?*/includeScroll){ + // summary: + // Gets the position and size of the passed element relative to + // the viewport (if includeScroll==false), or relative to the + // document root (if includeScroll==true). + // + // description: + // Returns an object of the form: + // { x: 100, y: 300, w: 20, h: 15 } + // If includeScroll==true, the x and y values will include any + // document offsets that may affect the position relative to the + // viewport. + // Uses the border-box model (inclusive of border and padding but + // not margin). Does not act as a setter. + + var db = d.body(), dh = db.parentNode, ret; + node = byId(node); + if(node["getBoundingClientRect"]){ + // IE6+, FF3+, super-modern WebKit, and Opera 9.6+ all take this branch + ret = node.getBoundingClientRect(); + ret = { x: ret.left, y: ret.top, w: ret.right - ret.left, h: ret.bottom - ret.top }; + if(d.isIE){ + // On IE there's a 2px offset that we need to adjust for, see _getIeDocumentElementOffset() + var offset = d._getIeDocumentElementOffset(); + + // fixes the position in IE, quirks mode + ret.x -= offset.x + (d.isQuirks ? db.clientLeft+db.offsetLeft : 0); + ret.y -= offset.y + (d.isQuirks ? db.clientTop+db.offsetTop : 0); + }else if(d.isFF == 3){ + // In FF3 you have to subtract the document element margins. + // Fixed in FF3.5 though. + var cs = gcs(dh); + ret.x -= px(dh, cs.marginLeft) + px(dh, cs.borderLeftWidth); + ret.y -= px(dh, cs.marginTop) + px(dh, cs.borderTopWidth); + } + }else{ + // FF2 and older WebKit + ret = { + x: 0, + y: 0, + w: node.offsetWidth, + h: node.offsetHeight + }; + if(node["offsetParent"]){ + ret.x -= _sumAncestorProperties(node, "scrollLeft"); + ret.y -= _sumAncestorProperties(node, "scrollTop"); + + var curnode = node; + do{ + var n = curnode.offsetLeft, + t = curnode.offsetTop; + ret.x += isNaN(n) ? 0 : n; + ret.y += isNaN(t) ? 0 : t; + + cs = gcs(curnode); + if(curnode != node){ + if(d.isMoz){ + // tried left+right with differently sized left/right borders + // it really is 2xleft border in FF, not left+right, even in RTL! + ret.x += 2 * px(curnode,cs.borderLeftWidth); + ret.y += 2 * px(curnode,cs.borderTopWidth); + }else{ + ret.x += px(curnode, cs.borderLeftWidth); + ret.y += px(curnode, cs.borderTopWidth); + } + } + // static children in a static div in FF2 are affected by the div's border as well + // but offsetParent will skip this div! + if(d.isMoz && cs.position=="static"){ + var parent=curnode.parentNode; + while(parent!=curnode.offsetParent){ + var pcs=gcs(parent); + if(pcs.position=="static"){ + ret.x += px(curnode,pcs.borderLeftWidth); + ret.y += px(curnode,pcs.borderTopWidth); + } + parent=parent.parentNode; + } + } + curnode = curnode.offsetParent; + }while((curnode != dh) && curnode); + }else if(node.x && node.y){ + ret.x += isNaN(node.x) ? 0 : node.x; + ret.y += isNaN(node.y) ? 0 : node.y; + } + } + // account for document scrolling + // if offsetParent is used, ret value already includes scroll position + // so we may have to actually remove that value if !includeScroll + if(includeScroll){ + var scroll = d._docScroll(); + ret.x += scroll.x; + ret.y += scroll.y; + } + + return ret; // Object + } + + dojo.coords = function(/*DomNode|String*/node, /*Boolean?*/includeScroll){ + // summary: + // Deprecated: Use position() for border-box x/y/w/h + // or marginBox() for margin-box w/h/l/t. + // Returns an object representing a node's size and position. + // + // description: + // Returns an object that measures margin-box (w)idth/(h)eight + // and absolute position x/y of the border-box. Also returned + // is computed (l)eft and (t)op values in pixels from the + // node's offsetParent as returned from marginBox(). + // Return value will be in the form: + //| { l: 50, t: 200, w: 300: h: 150, x: 100, y: 300 } + // Does not act as a setter. If includeScroll is passed, the x and + // y params are affected as one would expect in dojo.position(). + var n = byId(node), s = gcs(n), mb = d._getMarginBox(n, s); + var abs = d.position(n, includeScroll); + mb.x = abs.x; + mb.y = abs.y; + return mb; + } + + // ============================= + // Element attribute Functions + // ============================= + + // dojo.attr() should conform to http://www.w3.org/TR/DOM-Level-2-Core/ + + var _propNames = { + // properties renamed to avoid clashes with reserved words + "class": "className", + "for": "htmlFor", + // properties written as camelCase + tabindex: "tabIndex", + readonly: "readOnly", + colspan: "colSpan", + frameborder: "frameBorder", + rowspan: "rowSpan", + valuetype: "valueType" + }, + _attrNames = { + // original attribute names + classname: "class", + htmlfor: "for", + // for IE + tabindex: "tabIndex", + readonly: "readOnly" + }, + _forcePropNames = { + innerHTML: 1, + className: 1, + htmlFor: d.isIE, + value: 1 + }; + + var _fixAttrName = function(/*String*/ name){ + return _attrNames[name.toLowerCase()] || name; + }; + + var _hasAttr = function(node, name){ + var attr = node.getAttributeNode && node.getAttributeNode(name); + return attr && attr.specified; // Boolean + }; + + // There is a difference in the presence of certain properties and their default values + // between browsers. For example, on IE "disabled" is present on all elements, + // but it is value is "false"; "tabIndex" of <div> returns 0 by default on IE, yet other browsers + // can return -1. + + dojo.hasAttr = function(/*DomNode|String*/node, /*String*/name){ + // summary: + // Returns true if the requested attribute is specified on the + // given element, and false otherwise. + // node: + // id or reference to the element to check + // name: + // the name of the attribute + // returns: + // true if the requested attribute is specified on the + // given element, and false otherwise + var lc = name.toLowerCase(); + return _forcePropNames[_propNames[lc] || name] || _hasAttr(byId(node), _attrNames[lc] || name); // Boolean + } + + var _evtHdlrMap = {}, _ctr = 0, + _attrId = dojo._scopeName + "attrid", + // the next dictionary lists elements with read-only innerHTML on IE + _roInnerHtml = {col: 1, colgroup: 1, + // frameset: 1, head: 1, html: 1, style: 1, + table: 1, tbody: 1, tfoot: 1, thead: 1, tr: 1, title: 1}; + + dojo.attr = function(/*DomNode|String*/node, /*String|Object*/name, /*String?*/value){ + // summary: + // Gets or sets an attribute on an HTML element. + // description: + // Handles normalized getting and setting of attributes on DOM + // Nodes. If 2 arguments are passed, and a the second argumnt is a + // string, acts as a getter. + // + // If a third argument is passed, or if the second argument is a + // map of attributes, acts as a setter. + // + // When passing functions as values, note that they will not be + // directly assigned to slots on the node, but rather the default + // behavior will be removed and the new behavior will be added + // using `dojo.connect()`, meaning that event handler properties + // will be normalized and that some caveats with regards to + // non-standard behaviors for onsubmit apply. Namely that you + // should cancel form submission using `dojo.stopEvent()` on the + // passed event object instead of returning a boolean value from + // the handler itself. + // node: + // id or reference to the element to get or set the attribute on + // name: + // the name of the attribute to get or set. + // value: + // The value to set for the attribute + // returns: + // when used as a getter, the value of the requested attribute + // or null if that attribute does not have a specified or + // default value; + // + // when used as a setter, the DOM node + // + // example: + // | // get the current value of the "foo" attribute on a node + // | dojo.attr(dojo.byId("nodeId"), "foo"); + // | // or we can just pass the id: + // | dojo.attr("nodeId", "foo"); + // + // example: + // | // use attr() to set the tab index + // | dojo.attr("nodeId", "tabIndex", 3); + // | + // + // example: + // Set multiple values at once, including event handlers: + // | dojo.attr("formId", { + // | "foo": "bar", + // | "tabIndex": -1, + // | "method": "POST", + // | "onsubmit": function(e){ + // | // stop submitting the form. Note that the IE behavior + // | // of returning true or false will have no effect here + // | // since our handler is connect()ed to the built-in + // | // onsubmit behavior and so we need to use + // | // dojo.stopEvent() to ensure that the submission + // | // doesn't proceed. + // | dojo.stopEvent(e); + // | + // | // submit the form with Ajax + // | dojo.xhrPost({ form: "formId" }); + // | } + // | }); + // + // example: + // Style is s special case: Only set with an object hash of styles + // | dojo.attr("someNode",{ + // | id:"bar", + // | style:{ + // | width:"200px", height:"100px", color:"#000" + // | } + // | }); + // + // example: + // Again, only set style as an object hash of styles: + // | var obj = { color:"#fff", backgroundColor:"#000" }; + // | dojo.attr("someNode", "style", obj); + // | + // | // though shorter to use `dojo.style()` in this case: + // | dojo.style("someNode", obj); + + node = byId(node); + var args = arguments.length, prop; + if(args == 2 && typeof name != "string"){ // inline'd type check + // the object form of setter: the 2nd argument is a dictionary + for(var x in name){ + d.attr(node, x, name[x]); + } + return node; // DomNode + } + var lc = name.toLowerCase(), + propName = _propNames[lc] || name, + forceProp = _forcePropNames[propName], + attrName = _attrNames[lc] || name; + if(args == 3){ + // setter + do{ + if(propName == "style" && typeof value != "string"){ // inline'd type check + // special case: setting a style + d.style(node, value); + break; + } + if(propName == "innerHTML"){ + // special case: assigning HTML + if(d.isIE && node.tagName.toLowerCase() in _roInnerHtml){ + d.empty(node); + node.appendChild(d._toDom(value, node.ownerDocument)); + }else{ + node[propName] = value; + } + break; + } + if(d.isFunction(value)){ + // special case: assigning an event handler + // clobber if we can + var attrId = d.attr(node, _attrId); + if(!attrId){ + attrId = _ctr++; + d.attr(node, _attrId, attrId); + } + if(!_evtHdlrMap[attrId]){ + _evtHdlrMap[attrId] = {}; + } + var h = _evtHdlrMap[attrId][propName]; + if(h){ + d.disconnect(h); + }else{ + try{ + delete node[propName]; + }catch(e){} + } + // ensure that event objects are normalized, etc. + _evtHdlrMap[attrId][propName] = d.connect(node, propName, value); + break; + } + if(forceProp || typeof value == "boolean"){ + // special case: forcing assignment to the property + // special case: setting boolean to a property instead of attribute + node[propName] = value; + break; + } + // node's attribute + node.setAttribute(attrName, value); + }while(false); + return node; // DomNode + } + // getter + // should we access this attribute via a property or + // via getAttribute()? + value = node[propName]; + if(forceProp && typeof value != "undefined"){ + // node's property + return value; // Anything + } + if(propName != "href" && (typeof value == "boolean" || d.isFunction(value))){ + // node's property + return value; // Anything + } + // node's attribute + // we need _hasAttr() here to guard against IE returning a default value + return _hasAttr(node, attrName) ? node.getAttribute(attrName) : null; // Anything + } + + dojo.removeAttr = function(/*DomNode|String*/ node, /*String*/ name){ + // summary: + // Removes an attribute from an HTML element. + // node: + // id or reference to the element to remove the attribute from + // name: + // the name of the attribute to remove + byId(node).removeAttribute(_fixAttrName(name)); + } + + dojo.getNodeProp = function(/*DomNode|String*/ node, /*String*/ name){ + // summary: + // Returns an effective value of a property or an attribute. + // node: + // id or reference to the element to remove the attribute from + // name: + // the name of the attribute + node = byId(node); + var lc = name.toLowerCase(), + propName = _propNames[lc] || name; + if((propName in node) && propName != "href"){ + // node's property + return node[propName]; // Anything + } + // node's attribute + var attrName = _attrNames[lc] || name; + return _hasAttr(node, attrName) ? node.getAttribute(attrName) : null; // Anything + } + + dojo.create = function(tag, attrs, refNode, pos){ + // summary: + // Create an element, allowing for optional attribute decoration + // and placement. + // + // description: + // A DOM Element creation function. A shorthand method for creating a node or + // a fragment, and allowing for a convenient optional attribute setting step, + // as well as an optional DOM placement reference. + //| + // Attributes are set by passing the optional object through `dojo.attr`. + // See `dojo.attr` for noted caveats and nuances, and API if applicable. + //| + // Placement is done via `dojo.place`, assuming the new node to be the action + // node, passing along the optional reference node and position. + // + // tag: String|DomNode + // A string of the element to create (eg: "div", "a", "p", "li", "script", "br"), + // or an existing DOM node to process. + // + // attrs: Object + // An object-hash of attributes to set on the newly created node. + // Can be null, if you don't want to set any attributes/styles. + // See: `dojo.attr` for a description of available attributes. + // + // refNode: String?|DomNode? + // Optional reference node. Used by `dojo.place` to place the newly created + // node somewhere in the dom relative to refNode. Can be a DomNode reference + // or String ID of a node. + // + // pos: String? + // Optional positional reference. Defaults to "last" by way of `dojo.place`, + // though can be set to "first","after","before","last", "replace" or "only" + // to further control the placement of the new node relative to the refNode. + // 'refNode' is required if a 'pos' is specified. + // + // returns: DomNode + // + // example: + // Create a DIV: + // | var n = dojo.create("div"); + // + // example: + // Create a DIV with content: + // | var n = dojo.create("div", { innerHTML:"<p>hi</p>" }); + // + // example: + // Place a new DIV in the BODY, with no attributes set + // | var n = dojo.create("div", null, dojo.body()); + // + // example: + // Create an UL, and populate it with LI's. Place the list as the first-child of a + // node with id="someId": + // | var ul = dojo.create("ul", null, "someId", "first"); + // | var items = ["one", "two", "three", "four"]; + // | dojo.forEach(items, function(data){ + // | dojo.create("li", { innerHTML: data }, ul); + // | }); + // + // example: + // Create an anchor, with an href. Place in BODY: + // | dojo.create("a", { href:"foo.html", title:"Goto FOO!" }, dojo.body()); + // + // example: + // Create a `dojo.NodeList()` from a new element (for syntatic sugar): + // | dojo.query(dojo.create('div')) + // | .addClass("newDiv") + // | .onclick(function(e){ console.log('clicked', e.target) }) + // | .place("#someNode"); // redundant, but cleaner. + + var doc = d.doc; + if(refNode){ + refNode = byId(refNode); + doc = refNode.ownerDocument; + } + if(typeof tag == "string"){ // inline'd type check + tag = doc.createElement(tag); + } + if(attrs){ d.attr(tag, attrs); } + if(refNode){ d.place(tag, refNode, pos); } + return tag; // DomNode + } + + /*===== + dojo.empty = function(node){ + // summary: + // safely removes all children of the node. + // node: DOMNode|String + // a reference to a DOM node or an id. + // example: + // Destroy node's children byId: + // | dojo.empty("someId"); + // + // example: + // Destroy all nodes' children in a list by reference: + // | dojo.query(".someNode").forEach(dojo.empty); + } + =====*/ + + d.empty = + d.isIE ? function(node){ + node = byId(node); + for(var c; c = node.lastChild;){ // intentional assignment + d.destroy(c); + } + } : + function(node){ + byId(node).innerHTML = ""; + }; + + /*===== + dojo._toDom = function(frag, doc){ + // summary: + // instantiates an HTML fragment returning the corresponding DOM. + // frag: String + // the HTML fragment + // doc: DocumentNode? + // optional document to use when creating DOM nodes, defaults to + // dojo.doc if not specified. + // returns: DocumentFragment + // + // example: + // Create a table row: + // | var tr = dojo._toDom("<tr><td>First!</td></tr>"); + } + =====*/ + + // support stuff for dojo._toDom + var tagWrap = { + option: ["select"], + tbody: ["table"], + thead: ["table"], + tfoot: ["table"], + tr: ["table", "tbody"], + td: ["table", "tbody", "tr"], + th: ["table", "thead", "tr"], + legend: ["fieldset"], + caption: ["table"], + colgroup: ["table"], + col: ["table", "colgroup"], + li: ["ul"] + }, + reTag = /<\s*([\w\:]+)/, + masterNode = {}, masterNum = 0, + masterName = "__" + d._scopeName + "ToDomId"; + + // generate start/end tag strings to use + // for the injection for each special tag wrap case. + for(var param in tagWrap){ + var tw = tagWrap[param]; + tw.pre = param == "option" ? '<select multiple="multiple">' : "<" + tw.join("><") + ">"; + tw.post = "</" + tw.reverse().join("></") + ">"; + // the last line is destructive: it reverses the array, + // but we don't care at this point + } + + d._toDom = function(frag, doc){ + // summary: + // converts HTML string into DOM nodes. + + doc = doc || d.doc; + var masterId = doc[masterName]; + if(!masterId){ + doc[masterName] = masterId = ++masterNum + ""; + masterNode[masterId] = doc.createElement("div"); + } + + // make sure the frag is a string. + frag += ""; + + // find the starting tag, and get node wrapper + var match = frag.match(reTag), + tag = match ? match[1].toLowerCase() : "", + master = masterNode[masterId], + wrap, i, fc, df; + if(match && tagWrap[tag]){ + wrap = tagWrap[tag]; + master.innerHTML = wrap.pre + frag + wrap.post; + for(i = wrap.length; i; --i){ + master = master.firstChild; + } + }else{ + master.innerHTML = frag; + } + + // one node shortcut => return the node itself + if(master.childNodes.length == 1){ + return master.removeChild(master.firstChild); // DOMNode + } + + // return multiple nodes as a document fragment + df = doc.createDocumentFragment(); + while(fc = master.firstChild){ // intentional assignment + df.appendChild(fc); + } + return df; // DOMNode + } + + // ============================= + // (CSS) Class Functions + // ============================= + var _className = "className"; + + dojo.hasClass = function(/*DomNode|String*/node, /*String*/classStr){ + // summary: + // Returns whether or not the specified classes are a portion of the + // class list currently applied to the node. + // + // node: + // String ID or DomNode reference to check the class for. + // + // classStr: + // A string class name to look for. + // + // example: + // Do something if a node with id="someNode" has class="aSillyClassName" present + // | if(dojo.hasClass("someNode","aSillyClassName")){ ... } + + return ((" "+ byId(node)[_className] +" ").indexOf(" " + classStr + " ") >= 0); // Boolean + }; + + var spaces = /\s+/, a1 = [""], + str2array = function(s){ + if(typeof s == "string" || s instanceof String){ + if(s.indexOf(" ") < 0){ + a1[0] = s; + return a1; + }else{ + return s.split(spaces); + } + } + // assumed to be an array + return s || ""; + }; + + dojo.addClass = function(/*DomNode|String*/node, /*String|Array*/classStr){ + // summary: + // Adds the specified classes to the end of the class list on the + // passed node. Will not re-apply duplicate classes. + // + // node: + // String ID or DomNode reference to add a class string too + // + // classStr: + // A String class name to add, or several space-separated class names, + // or an array of class names. + // + // example: + // Add a class to some node: + // | dojo.addClass("someNode", "anewClass"); + // + // example: + // Add two classes at once: + // | dojo.addClass("someNode", "firstClass secondClass"); + // + // example: + // Add two classes at once (using array): + // | dojo.addClass("someNode", ["firstClass", "secondClass"]); + // + // example: + // Available in `dojo.NodeList` for multiple additions + // | dojo.query("ul > li").addClass("firstLevel"); + + node = byId(node); + classStr = str2array(classStr); + var cls = node[_className], oldLen; + cls = cls ? " " + cls + " " : " "; + oldLen = cls.length; + for(var i = 0, len = classStr.length, c; i < len; ++i){ + c = classStr[i]; + if(c && cls.indexOf(" " + c + " ") < 0){ + cls += c + " "; + } + } + if(oldLen < cls.length){ + node[_className] = cls.substr(1, cls.length - 2); + } + }; + + dojo.removeClass = function(/*DomNode|String*/node, /*String|Array?*/classStr){ + // summary: + // Removes the specified classes from node. No `dojo.hasClass` + // check is required. + // + // node: + // String ID or DomNode reference to remove the class from. + // + // classStr: + // An optional String class name to remove, or several space-separated + // class names, or an array of class names. If omitted, all class names + // will be deleted. + // + // example: + // Remove a class from some node: + // | dojo.removeClass("someNode", "firstClass"); + // + // example: + // Remove two classes from some node: + // | dojo.removeClass("someNode", "firstClass secondClass"); + // + // example: + // Remove two classes from some node (using array): + // | dojo.removeClass("someNode", ["firstClass", "secondClass"]); + // + // example: + // Remove all classes from some node: + // | dojo.removeClass("someNode"); + // + // example: + // Available in `dojo.NodeList()` for multiple removal + // | dojo.query(".foo").removeClass("foo"); + + node = byId(node); + var cls; + if(classStr !== undefined){ + classStr = str2array(classStr); + cls = " " + node[_className] + " "; + for(var i = 0, len = classStr.length; i < len; ++i){ + cls = cls.replace(" " + classStr[i] + " ", " "); + } + cls = d.trim(cls); + }else{ + cls = ""; + } + if(node[_className] != cls){ node[_className] = cls; } + }; + + dojo.toggleClass = function(/*DomNode|String*/node, /*String|Array*/classStr, /*Boolean?*/condition){ + // summary: + // Adds a class to node if not present, or removes if present. + // Pass a boolean condition if you want to explicitly add or remove. + // condition: + // If passed, true means to add the class, false means to remove. + // + // example: + // | dojo.toggleClass("someNode", "hovered"); + // + // example: + // Forcefully add a class + // | dojo.toggleClass("someNode", "hovered", true); + // + // example: + // Available in `dojo.NodeList()` for multiple toggles + // | dojo.query(".toggleMe").toggleClass("toggleMe"); + + if(condition === undefined){ + condition = !d.hasClass(node, classStr); + } + d[condition ? "addClass" : "removeClass"](node, classStr); + }; + +})(); + +} + +if(!dojo._hasResource["dojo._base.NodeList"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo._base.NodeList"] = true; +dojo.provide("dojo._base.NodeList"); + + + +(function(){ + + var d = dojo; + + var ap = Array.prototype, aps = ap.slice, apc = ap.concat; + + var tnl = function(/*Array*/ a, /*dojo.NodeList?*/ parent, /*Function?*/ NodeListCtor){ + // summary: + // decorate an array to make it look like a `dojo.NodeList`. + // a: + // Array of nodes to decorate. + // parent: + // An optional parent NodeList that generated the current + // list of nodes. Used to call _stash() so the parent NodeList + // can be accessed via end() later. + // NodeListCtor: + // An optional constructor function to use for any + // new NodeList calls. This allows a certain chain of + // NodeList calls to use a different object than dojo.NodeList. + if(!a.sort){ + // make sure it's a real array before we pass it on to be wrapped + a = aps.call(a, 0); + } + var ctor = NodeListCtor || this._NodeListCtor || d._NodeListCtor; + a.constructor = ctor; + dojo._mixin(a, ctor.prototype); + a._NodeListCtor = ctor; + return parent ? a._stash(parent) : a; + }; + + var loopBody = function(f, a, o){ + a = [0].concat(aps.call(a, 0)); + o = o || d.global; + return function(node){ + a[0] = node; + return f.apply(o, a); + }; + }; + + // adapters + + var adaptAsForEach = function(f, o){ + // summary: + // adapts a single node function to be used in the forEach-type + // actions. The initial object is returned from the specialized + // function. + // f: Function + // a function to adapt + // o: Object? + // an optional context for f + return function(){ + this.forEach(loopBody(f, arguments, o)); + return this; // Object + }; + }; + + var adaptAsMap = function(f, o){ + // summary: + // adapts a single node function to be used in the map-type + // actions. The return is a new array of values, as via `dojo.map` + // f: Function + // a function to adapt + // o: Object? + // an optional context for f + return function(){ + return this.map(loopBody(f, arguments, o)); + }; + }; + + var adaptAsFilter = function(f, o){ + // summary: + // adapts a single node function to be used in the filter-type actions + // f: Function + // a function to adapt + // o: Object? + // an optional context for f + return function(){ + return this.filter(loopBody(f, arguments, o)); + }; + }; + + var adaptWithCondition = function(f, g, o){ + // summary: + // adapts a single node function to be used in the map-type + // actions, behaves like forEach() or map() depending on arguments + // f: Function + // a function to adapt + // g: Function + // a condition function, if true runs as map(), otherwise runs as forEach() + // o: Object? + // an optional context for f and g + return function(){ + var a = arguments, body = loopBody(f, a, o); + if(g.call(o || d.global, a)){ + return this.map(body); // self + } + this.forEach(body); + return this; // self + }; + }; + + var magicGuard = function(a){ + // summary: + // the guard function for dojo.attr() and dojo.style() + return a.length == 1 && (typeof a[0] == "string"); // inline'd type check + }; + + var orphan = function(node){ + // summary: + // function to orphan nodes + var p = node.parentNode; + if(p){ + p.removeChild(node); + } + }; + // FIXME: should we move orphan() to dojo.html? + + dojo.NodeList = function(){ + // summary: + // dojo.NodeList is an of Array subclass which adds syntactic + // sugar for chaining, common iteration operations, animation, and + // node manipulation. NodeLists are most often returned as the + // result of dojo.query() calls. + // description: + // dojo.NodeList instances provide many utilities that reflect + // core Dojo APIs for Array iteration and manipulation, DOM + // manipulation, and event handling. Instead of needing to dig up + // functions in the dojo.* namespace, NodeLists generally make the + // full power of Dojo available for DOM manipulation tasks in a + // simple, chainable way. + // example: + // create a node list from a node + // | new dojo.NodeList(dojo.byId("foo")); + // example: + // get a NodeList from a CSS query and iterate on it + // | var l = dojo.query(".thinger"); + // | l.forEach(function(node, index, nodeList){ + // | console.log(index, node.innerHTML); + // | }); + // example: + // use native and Dojo-provided array methods to manipulate a + // NodeList without needing to use dojo.* functions explicitly: + // | var l = dojo.query(".thinger"); + // | // since NodeLists are real arrays, they have a length + // | // property that is both readable and writable and + // | // push/pop/shift/unshift methods + // | console.log(l.length); + // | l.push(dojo.create("span")); + // | + // | // dojo's normalized array methods work too: + // | console.log( l.indexOf(dojo.byId("foo")) ); + // | // ...including the special "function as string" shorthand + // | console.log( l.every("item.nodeType == 1") ); + // | + // | // NodeLists can be [..] indexed, or you can use the at() + // | // function to get specific items wrapped in a new NodeList: + // | var node = l[3]; // the 4th element + // | var newList = l.at(1, 3); // the 2nd and 4th elements + // example: + // the style functions you expect are all there too: + // | // style() as a getter... + // | var borders = dojo.query(".thinger").style("border"); + // | // ...and as a setter: + // | dojo.query(".thinger").style("border", "1px solid black"); + // | // class manipulation + // | dojo.query("li:nth-child(even)").addClass("even"); + // | // even getting the coordinates of all the items + // | var coords = dojo.query(".thinger").coords(); + // example: + // DOM manipulation functions from the dojo.* namespace area also + // available: + // | // remove all of the elements in the list from their + // | // parents (akin to "deleting" them from the document) + // | dojo.query(".thinger").orphan(); + // | // place all elements in the list at the front of #foo + // | dojo.query(".thinger").place("foo", "first"); + // example: + // Event handling couldn't be easier. `dojo.connect` is mapped in, + // and shortcut handlers are provided for most DOM events: + // | // like dojo.connect(), but with implicit scope + // | dojo.query("li").connect("onclick", console, "log"); + // | + // | // many common event handlers are already available directly: + // | dojo.query("li").onclick(console, "log"); + // | var toggleHovered = dojo.hitch(dojo, "toggleClass", "hovered"); + // | dojo.query("p") + // | .onmouseenter(toggleHovered) + // | .onmouseleave(toggleHovered); + // example: + // chainability is a key advantage of NodeLists: + // | dojo.query(".thinger") + // | .onclick(function(e){ /* ... */ }) + // | .at(1, 3, 8) // get a subset + // | .style("padding", "5px") + // | .forEach(console.log); + + return tnl(Array.apply(null, arguments)); + }; + + //Allow things that new up a NodeList to use a delegated or alternate NodeList implementation. + d._NodeListCtor = d.NodeList; + + var nl = d.NodeList, nlp = nl.prototype; + + // expose adapters and the wrapper as private functions + + nl._wrap = nlp._wrap = tnl; + nl._adaptAsMap = adaptAsMap; + nl._adaptAsForEach = adaptAsForEach; + nl._adaptAsFilter = adaptAsFilter; + nl._adaptWithCondition = adaptWithCondition; + + // mass assignment + + // add array redirectors + d.forEach(["slice", "splice"], function(name){ + var f = ap[name]; + //Use a copy of the this array via this.slice() to allow .end() to work right in the splice case. + // CANNOT apply ._stash()/end() to splice since it currently modifies + // the existing this array -- it would break backward compatibility if we copy the array before + // the splice so that we can use .end(). So only doing the stash option to this._wrap for slice. + nlp[name] = function(){ return this._wrap(f.apply(this, arguments), name == "slice" ? this : null); }; + }); + // concat should be here but some browsers with native NodeList have problems with it + + // add array.js redirectors + d.forEach(["indexOf", "lastIndexOf", "every", "some"], function(name){ + var f = d[name]; + nlp[name] = function(){ return f.apply(d, [this].concat(aps.call(arguments, 0))); }; + }); + + // add conditional methods + d.forEach(["attr", "style"], function(name){ + nlp[name] = adaptWithCondition(d[name], magicGuard); + }); + + // add forEach actions + d.forEach(["connect", "addClass", "removeClass", "toggleClass", "empty", "removeAttr"], function(name){ + nlp[name] = adaptAsForEach(d[name]); + }); + + dojo.extend(dojo.NodeList, { + _normalize: function(/*String||Element||Object||NodeList*/content, /*DOMNode?*/refNode){ + // summary: + // normalizes data to an array of items to insert. + // description: + // If content is an object, it can have special properties "template" and + // "parse". If "template" is defined, then the template value is run through + // dojo.string.substitute (if dojo.string.substitute has been dojo.required elsewhere), + // or if templateFunc is a function on the content, that function will be used to + // transform the template into a final string to be used for for passing to dojo._toDom. + // If content.parse is true, then it is remembered for later, for when the content + // nodes are inserted into the DOM. At that point, the nodes will be parsed for widgets + // (if dojo.parser has been dojo.required elsewhere). + + //Wanted to just use a DocumentFragment, but for the array/NodeList + //case that meant using cloneNode, but we may not want that. + //Cloning should only happen if the node operations span + //multiple refNodes. Also, need a real array, not a NodeList from the + //DOM since the node movements could change those NodeLists. + + var parse = content.parse === true ? true : false; + + //Do we have an object that needs to be run through a template? + if(typeof content.template == "string"){ + var templateFunc = content.templateFunc || (dojo.string && dojo.string.substitute); + content = templateFunc ? templateFunc(content.template, content) : content; + } + + var type = (typeof content); + if(type == "string" || type == "number"){ + content = dojo._toDom(content, (refNode && refNode.ownerDocument)); + if(content.nodeType == 11){ + //DocumentFragment. It cannot handle cloneNode calls, so pull out the children. + content = dojo._toArray(content.childNodes); + }else{ + content = [content]; + } + }else if(!dojo.isArrayLike(content)){ + content = [content]; + }else if(!dojo.isArray(content)){ + //To get to this point, content is array-like, but + //not an array, which likely means a DOM NodeList. Convert it now. + content = dojo._toArray(content); + } + + //Pass around the parse info + if(parse){ + content._runParse = true; + } + return content; //Array + }, + + _cloneNode: function(/*DOMNode*/ node){ + // summary: + // private utiltity to clone a node. Not very interesting in the vanilla + // dojo.NodeList case, but delegates could do interesting things like + // clone event handlers if that is derivable from the node. + return node.cloneNode(true); + }, + + _place: function(/*Array*/ary, /*DOMNode*/refNode, /*String*/position, /*Boolean*/useClone){ + // summary: + // private utility to handle placing an array of nodes relative to another node. + // description: + // Allows for cloning the nodes in the array, and for + // optionally parsing widgets, if ary._runParse is true. + + //Avoid a disallowed operation if trying to do an innerHTML on a non-element node. + if(refNode.nodeType != 1 && position == "only"){ + return; + } + var rNode = refNode, tempNode; + + //Always cycle backwards in case the array is really a + //DOM NodeList and the DOM operations take it out of the live collection. + var length = ary.length; + for(var i = length - 1; i >= 0; i--){ + var node = (useClone ? this._cloneNode(ary[i]) : ary[i]); + + //If need widget parsing, use a temp node, instead of waiting after inserting into + //real DOM because we need to start widget parsing at one node up from current node, + //which could cause some already parsed widgets to be parsed again. + if(ary._runParse && dojo.parser && dojo.parser.parse){ + if(!tempNode){ + tempNode = rNode.ownerDocument.createElement("div"); + } + tempNode.appendChild(node); + dojo.parser.parse(tempNode); + node = tempNode.firstChild; + while(tempNode.firstChild){ + tempNode.removeChild(tempNode.firstChild); + } + } + + if(i == length - 1){ + dojo.place(node, rNode, position); + }else{ + rNode.parentNode.insertBefore(node, rNode); + } + rNode = node; + } + }, + + _stash: function(parent){ + // summary: + // private function to hold to a parent NodeList. end() to return the parent NodeList. + // + // example: + // How to make a `dojo.NodeList` method that only returns the third node in + // the dojo.NodeList but allows access to the original NodeList by using this._stash: + // | dojo.extend(dojo.NodeList, { + // | third: function(){ + // | var newNodeList = dojo.NodeList(this[2]); + // | return newNodeList._stash(this); + // | } + // | }); + // | // then see how _stash applies a sub-list, to be .end()'ed out of + // | dojo.query(".foo") + // | .third() + // | .addClass("thirdFoo") + // | .end() + // | // access to the orig .foo list + // | .removeClass("foo") + // | + // + this._parent = parent; + return this; //dojo.NodeList + }, + + end: function(){ + // summary: + // Ends use of the current `dojo.NodeList` by returning the previous dojo.NodeList + // that generated the current dojo.NodeList. + // description: + // Returns the `dojo.NodeList` that generated the current `dojo.NodeList`. If there + // is no parent dojo.NodeList, an empty dojo.NodeList is returned. + // example: + // | dojo.query("a") + // | .filter(".disabled") + // | // operate on the anchors that only have a disabled class + // | .style("color", "grey") + // | .end() + // | // jump back to the list of anchors + // | .style(...) + // + if(this._parent){ + return this._parent; + }else{ + //Just return empy list. + return new this._NodeListCtor(); + } + }, + + // http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Array#Methods + + // FIXME: handle return values for #3244 + // http://trac.dojotoolkit.org/ticket/3244 + + // FIXME: + // need to wrap or implement: + // join (perhaps w/ innerHTML/outerHTML overload for toString() of items?) + // reduce + // reduceRight + + /*===== + slice: function(begin, end){ + // summary: + // Returns a new NodeList, maintaining this one in place + // description: + // This method behaves exactly like the Array.slice method + // with the caveat that it returns a dojo.NodeList and not a + // raw Array. For more details, see Mozilla's (slice + // documentation)[http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Array:slice] + // begin: Integer + // Can be a positive or negative integer, with positive + // integers noting the offset to begin at, and negative + // integers denoting an offset from the end (i.e., to the left + // of the end) + // end: Integer? + // Optional parameter to describe what position relative to + // the NodeList's zero index to end the slice at. Like begin, + // can be positive or negative. + return this._wrap(a.slice.apply(this, arguments)); + }, + + splice: function(index, howmany, item){ + // summary: + // Returns a new NodeList, manipulating this NodeList based on + // the arguments passed, potentially splicing in new elements + // at an offset, optionally deleting elements + // description: + // This method behaves exactly like the Array.splice method + // with the caveat that it returns a dojo.NodeList and not a + // raw Array. For more details, see Mozilla's (splice + // documentation)[http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Array:splice] + // For backwards compatibility, calling .end() on the spliced NodeList + // does not return the original NodeList -- splice alters the NodeList in place. + // index: Integer + // begin can be a positive or negative integer, with positive + // integers noting the offset to begin at, and negative + // integers denoting an offset from the end (i.e., to the left + // of the end) + // howmany: Integer? + // Optional parameter to describe what position relative to + // the NodeList's zero index to end the slice at. Like begin, + // can be positive or negative. + // item: Object...? + // Any number of optional parameters may be passed in to be + // spliced into the NodeList + // returns: + // dojo.NodeList + return this._wrap(a.splice.apply(this, arguments)); + }, + + indexOf: function(value, fromIndex){ + // summary: + // see dojo.indexOf(). The primary difference is that the acted-on + // array is implicitly this NodeList + // value: Object: + // The value to search for. + // fromIndex: Integer?: + // The loction to start searching from. Optional. Defaults to 0. + // description: + // For more details on the behavior of indexOf, see Mozilla's + // (indexOf + // docs)[http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Array:indexOf] + // returns: + // Positive Integer or 0 for a match, -1 of not found. + return d.indexOf(this, value, fromIndex); // Integer + }, + + lastIndexOf: function(value, fromIndex){ + // summary: + // see dojo.lastIndexOf(). The primary difference is that the + // acted-on array is implicitly this NodeList + // description: + // For more details on the behavior of lastIndexOf, see + // Mozilla's (lastIndexOf + // docs)[http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Array:lastIndexOf] + // value: Object + // The value to search for. + // fromIndex: Integer? + // The loction to start searching from. Optional. Defaults to 0. + // returns: + // Positive Integer or 0 for a match, -1 of not found. + return d.lastIndexOf(this, value, fromIndex); // Integer + }, + + every: function(callback, thisObject){ + // summary: + // see `dojo.every()` and the (Array.every + // docs)[http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Array:every]. + // Takes the same structure of arguments and returns as + // dojo.every() with the caveat that the passed array is + // implicitly this NodeList + // callback: Function: the callback + // thisObject: Object?: the context + return d.every(this, callback, thisObject); // Boolean + }, + + some: function(callback, thisObject){ + // summary: + // Takes the same structure of arguments and returns as + // `dojo.some()` with the caveat that the passed array is + // implicitly this NodeList. See `dojo.some()` and Mozilla's + // (Array.some + // documentation)[http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Array:some]. + // callback: Function: the callback + // thisObject: Object?: the context + return d.some(this, callback, thisObject); // Boolean + }, + =====*/ + + concat: function(item){ + // summary: + // Returns a new NodeList comprised of items in this NodeList + // as well as items passed in as parameters + // description: + // This method behaves exactly like the Array.concat method + // with the caveat that it returns a `dojo.NodeList` and not a + // raw Array. For more details, see the (Array.concat + // docs)[http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Array:concat] + // item: Object? + // Any number of optional parameters may be passed in to be + // spliced into the NodeList + // returns: + // dojo.NodeList + + //return this._wrap(apc.apply(this, arguments)); + // the line above won't work for the native NodeList :-( + + // implementation notes: + // 1) Native NodeList is not an array, and cannot be used directly + // in concat() --- the latter doesn't recognize it as an array, and + // does not inline it, but append as a single entity. + // 2) On some browsers (e.g., Safari) the "constructor" property is + // read-only and cannot be changed. So we have to test for both + // native NodeList and dojo.NodeList in this property to recognize + // the node list. + + var t = d.isArray(this) ? this : aps.call(this, 0), + m = d.map(arguments, function(a){ + return a && !d.isArray(a) && + (typeof NodeList != "undefined" && a.constructor === NodeList || a.constructor === this._NodeListCtor) ? + aps.call(a, 0) : a; + }); + return this._wrap(apc.apply(t, m), this); // dojo.NodeList + }, + + map: function(/*Function*/ func, /*Function?*/ obj){ + // summary: + // see dojo.map(). The primary difference is that the acted-on + // array is implicitly this NodeList and the return is a + // dojo.NodeList (a subclass of Array) + ///return d.map(this, func, obj, d.NodeList); // dojo.NodeList + return this._wrap(d.map(this, func, obj), this); // dojo.NodeList + }, + + forEach: function(callback, thisObj){ + // summary: + // see `dojo.forEach()`. The primary difference is that the acted-on + // array is implicitly this NodeList. If you want the option to break out + // of the forEach loop, use every() or some() instead. + d.forEach(this, callback, thisObj); + // non-standard return to allow easier chaining + return this; // dojo.NodeList + }, + + /*===== + coords: function(){ + // summary: + // Returns the box objects of all elements in a node list as + // an Array (*not* a NodeList). Acts like `dojo.coords`, though assumes + // the node passed is each node in this list. + + return d.map(this, d.coords); // Array + }, + + position: function(){ + // summary: + // Returns border-box objects (x/y/w/h) of all elements in a node list + // as an Array (*not* a NodeList). Acts like `dojo.position`, though + // assumes the node passed is each node in this list. + + return d.map(this, d.position); // Array + }, + + attr: function(property, value){ + // summary: + // gets or sets the DOM attribute for every element in the + // NodeList. See also `dojo.attr` + // property: String + // the attribute to get/set + // value: String? + // optional. The value to set the property to + // returns: + // if no value is passed, the result is an array of attribute values + // If a value is passed, the return is this NodeList + // example: + // Make all nodes with a particular class focusable: + // | dojo.query(".focusable").attr("tabIndex", -1); + // example: + // Disable a group of buttons: + // | dojo.query("button.group").attr("disabled", true); + // example: + // innerHTML can be assigned or retreived as well: + // | // get the innerHTML (as an array) for each list item + // | var ih = dojo.query("li.replaceable").attr("innerHTML"); + return; // dojo.NodeList + return; // Array + }, + + style: function(property, value){ + // summary: + // gets or sets the CSS property for every element in the NodeList + // property: String + // the CSS property to get/set, in JavaScript notation + // ("lineHieght" instead of "line-height") + // value: String? + // optional. The value to set the property to + // returns: + // if no value is passed, the result is an array of strings. + // If a value is passed, the return is this NodeList + return; // dojo.NodeList + return; // Array + }, + + addClass: function(className){ + // summary: + // adds the specified class to every node in the list + // className: String|Array + // A String class name to add, or several space-separated class names, + // or an array of class names. + return; // dojo.NodeList + }, + + removeClass: function(className){ + // summary: + // removes the specified class from every node in the list + // className: String|Array? + // An optional String class name to remove, or several space-separated + // class names, or an array of class names. If omitted, all class names + // will be deleted. + // returns: + // dojo.NodeList, this list + return; // dojo.NodeList + }, + + toggleClass: function(className, condition){ + // summary: + // Adds a class to node if not present, or removes if present. + // Pass a boolean condition if you want to explicitly add or remove. + // condition: Boolean? + // If passed, true means to add the class, false means to remove. + // className: String + // the CSS class to add + return; // dojo.NodeList + }, + + connect: function(methodName, objOrFunc, funcName){ + // summary: + // attach event handlers to every item of the NodeList. Uses dojo.connect() + // so event properties are normalized + // methodName: String + // the name of the method to attach to. For DOM events, this should be + // the lower-case name of the event + // objOrFunc: Object|Function|String + // if 2 arguments are passed (methodName, objOrFunc), objOrFunc should + // reference a function or be the name of the function in the global + // namespace to attach. If 3 arguments are provided + // (methodName, objOrFunc, funcName), objOrFunc must be the scope to + // locate the bound function in + // funcName: String? + // optional. A string naming the function in objOrFunc to bind to the + // event. May also be a function reference. + // example: + // add an onclick handler to every button on the page + // | dojo.query("div:nth-child(odd)").connect("onclick", function(e){ + // | console.log("clicked!"); + // | }); + // example: + // attach foo.bar() to every odd div's onmouseover + // | dojo.query("div:nth-child(odd)").connect("onmouseover", foo, "bar"); + }, + + empty: function(){ + // summary: + // clears all content from each node in the list. Effectively + // equivalent to removing all child nodes from every item in + // the list. + return this.forEach("item.innerHTML='';"); // dojo.NodeList + // FIXME: should we be checking for and/or disposing of widgets below these nodes? + }, + =====*/ + + // useful html methods + coords: adaptAsMap(d.coords), + position: adaptAsMap(d.position), + + // FIXME: connectPublisher()? connectRunOnce()? + + /* + destroy: function(){ + // summary: + // destroys every item in the list. + this.forEach(d.destroy); + // FIXME: should we be checking for and/or disposing of widgets below these nodes? + }, + */ + + place: function(/*String||Node*/ queryOrNode, /*String*/ position){ + // summary: + // places elements of this node list relative to the first element matched + // by queryOrNode. Returns the original NodeList. See: `dojo.place` + // queryOrNode: + // may be a string representing any valid CSS3 selector or a DOM node. + // In the selector case, only the first matching element will be used + // for relative positioning. + // position: + // can be one of: + // | "last" (default) + // | "first" + // | "before" + // | "after" + // | "only" + // | "replace" + // or an offset in the childNodes property + var item = d.query(queryOrNode)[0]; + return this.forEach(function(node){ d.place(node, item, position); }); // dojo.NodeList + }, + + orphan: function(/*String?*/ simpleFilter){ + // summary: + // removes elements in this list that match the simple filter + // from their parents and returns them as a new NodeList. + // simpleFilter: + // single-expression CSS rule. For example, ".thinger" or + // "#someId[attrName='value']" but not "div > span". In short, + // anything which does not invoke a descent to evaluate but + // can instead be used to test a single node is acceptable. + // returns: + // `dojo.NodeList` containing the orpahned elements + return (simpleFilter ? d._filterQueryResult(this, simpleFilter) : this).forEach(orphan); // dojo.NodeList + }, + + adopt: function(/*String||Array||DomNode*/ queryOrListOrNode, /*String?*/ position){ + // summary: + // places any/all elements in queryOrListOrNode at a + // position relative to the first element in this list. + // Returns a dojo.NodeList of the adopted elements. + // queryOrListOrNode: + // a DOM node or a query string or a query result. + // Represents the nodes to be adopted relative to the + // first element of this NodeList. + // position: + // can be one of: + // | "last" (default) + // | "first" + // | "before" + // | "after" + // | "only" + // | "replace" + // or an offset in the childNodes property + return d.query(queryOrListOrNode).place(this[0], position)._stash(this); // dojo.NodeList + }, + + // FIXME: do we need this? + query: function(/*String*/ queryStr){ + // summary: + // Returns a new list whose memebers match the passed query, + // assuming elements of the current NodeList as the root for + // each search. + // example: + // assume a DOM created by this markup: + // | <div id="foo"> + // | <p> + // | bacon is tasty, <span>dontcha think?</span> + // | </p> + // | </div> + // | <div id="bar"> + // | <p>great commedians may not be funny <span>in person</span></p> + // | </div> + // If we are presented with the following defintion for a NodeList: + // | var l = new dojo.NodeList(dojo.byId("foo"), dojo.byId("bar")); + // it's possible to find all span elements under paragraphs + // contained by these elements with this sub-query: + // | var spans = l.query("p span"); + + // FIXME: probably slow + if(!queryStr){ return this; } + var ret = this.map(function(node){ + // FIXME: why would we ever get undefined here? + return d.query(queryStr, node).filter(function(subNode){ return subNode !== undefined; }); + }); + return this._wrap(apc.apply([], ret), this); // dojo.NodeList + }, + + filter: function(/*String|Function*/ simpleFilter){ + // summary: + // "masks" the built-in javascript filter() method (supported + // in Dojo via `dojo.filter`) to support passing a simple + // string filter in addition to supporting filtering function + // objects. + // simpleFilter: + // If a string, a single-expression CSS rule. For example, + // ".thinger" or "#someId[attrName='value']" but not "div > + // span". In short, anything which does not invoke a descent + // to evaluate but can instead be used to test a single node + // is acceptable. + // example: + // "regular" JS filter syntax as exposed in dojo.filter: + // | dojo.query("*").filter(function(item){ + // | // highlight every paragraph + // | return (item.nodeName == "p"); + // | }).style("backgroundColor", "yellow"); + // example: + // the same filtering using a CSS selector + // | dojo.query("*").filter("p").styles("backgroundColor", "yellow"); + + var a = arguments, items = this, start = 0; + if(typeof simpleFilter == "string"){ // inline'd type check + items = d._filterQueryResult(this, a[0]); + if(a.length == 1){ + // if we only got a string query, pass back the filtered results + return items._stash(this); // dojo.NodeList + } + // if we got a callback, run it over the filtered items + start = 1; + } + return this._wrap(d.filter(items, a[start], a[start + 1]), this); // dojo.NodeList + }, + + /* + // FIXME: should this be "copyTo" and include parenting info? + clone: function(){ + // summary: + // creates node clones of each element of this list + // and returns a new list containing the clones + }, + */ + + addContent: function(/*String||DomNode||Object||dojo.NodeList*/ content, /*String||Integer?*/ position){ + // summary: + // add a node, NodeList or some HTML as a string to every item in the + // list. Returns the original list. + // description: + // a copy of the HTML content is added to each item in the + // list, with an optional position argument. If no position + // argument is provided, the content is appended to the end of + // each item. + // content: + // DOM node, HTML in string format, a NodeList or an Object. If a DOM node or + // NodeList, the content will be cloned if the current NodeList has more than one + // element. Only the DOM nodes are cloned, no event handlers. If it is an Object, + // it should be an object with at "template" String property that has the HTML string + // to insert. If dojo.string has already been dojo.required, then dojo.string.substitute + // will be used on the "template" to generate the final HTML string. Other allowed + // properties on the object are: "parse" if the HTML + // string should be parsed for widgets (dojo.require("dojo.parser") to get that + // option to work), and "templateFunc" if a template function besides dojo.string.substitute + // should be used to transform the "template". + // position: + // can be one of: + // | "last"||"end" (default) + // | "first||"start" + // | "before" + // | "after" + // | "replace" (replaces nodes in this NodeList with new content) + // | "only" (removes other children of the nodes so new content is hte only child) + // or an offset in the childNodes property + // example: + // appends content to the end if the position is ommitted + // | dojo.query("h3 > p").addContent("hey there!"); + // example: + // add something to the front of each element that has a + // "thinger" property: + // | dojo.query("[thinger]").addContent("...", "first"); + // example: + // adds a header before each element of the list + // | dojo.query(".note").addContent("<h4>NOTE:</h4>", "before"); + // example: + // add a clone of a DOM node to the end of every element in + // the list, removing it from its existing parent. + // | dojo.query(".note").addContent(dojo.byId("foo")); + // example: + // Append nodes from a templatized string. + // dojo.require("dojo.string"); + // dojo.query(".note").addContent({ + // template: '<b>${id}: </b><span>${name}</span>', + // id: "user332", + // name: "Mr. Anderson" + // }); + // example: + // Append nodes from a templatized string that also has widgets parsed. + // dojo.require("dojo.string"); + // dojo.require("dojo.parser"); + // var notes = dojo.query(".note").addContent({ + // template: '<button dojoType="dijit.form.Button">${text}</button>', + // parse: true, + // text: "Send" + // }); + content = this._normalize(content, this[0]); + for(var i = 0, node; node = this[i]; i++){ + this._place(content, node, position, i > 0); + } + return this; //dojo.NodeList + }, + + instantiate: function(/*String|Object*/ declaredClass, /*Object?*/ properties){ + // summary: + // Create a new instance of a specified class, using the + // specified properties and each node in the nodeList as a + // srcNodeRef. + // example: + // Grabs all buttons in the page and converts them to diji.form.Buttons. + // | var buttons = dojo.query("button").instantiate("dijit.form.Button", {showLabel: true}); + var c = d.isFunction(declaredClass) ? declaredClass : d.getObject(declaredClass); + properties = properties || {}; + return this.forEach(function(node){ + new c(properties, node); + }); // dojo.NodeList + }, + + at: function(/*===== index =====*/){ + // summary: + // Returns a new NodeList comprised of items in this NodeList + // at the given index or indices. + // + // index: Integer... + // One or more 0-based indices of items in the current + // NodeList. A negative index will start at the end of the + // list and go backwards. + // + // example: + // Shorten the list to the first, second, and third elements + // | dojo.query("a").at(0, 1, 2).forEach(fn); + // + // example: + // Retrieve the first and last elements of a unordered list: + // | dojo.query("ul > li").at(0, -1).forEach(cb); + // + // example: + // Do something for the first element only, but end() out back to + // the original list and continue chaining: + // | dojo.query("a").at(0).onclick(fn).end().forEach(function(n){ + // | console.log(n); // all anchors on the page. + // | }) + // + // returns: + // dojo.NodeList + var t = new this._NodeListCtor(); + d.forEach(arguments, function(i){ + if(i < 0){ i = this.length + i } + if(this[i]){ t.push(this[i]); } + }, this); + return t._stash(this); // dojo.NodeList + } + + }); + + nl.events = [ + // summary: list of all DOM events used in NodeList + "blur", "focus", "change", "click", "error", "keydown", "keypress", + "keyup", "load", "mousedown", "mouseenter", "mouseleave", "mousemove", + "mouseout", "mouseover", "mouseup", "submit" + ]; + + // FIXME: pseudo-doc the above automatically generated on-event functions + + // syntactic sugar for DOM events + d.forEach(nl.events, function(evt){ + var _oe = "on" + evt; + nlp[_oe] = function(a, b){ + return this.connect(_oe, a, b); + } + // FIXME: should these events trigger publishes? + /* + return (a ? this.connect(_oe, a, b) : + this.forEach(function(n){ + // FIXME: + // listeners get buried by + // addEventListener and can't be dug back + // out to be triggered externally. + // see: + // http://developer.mozilla.org/en/docs/DOM:element + + console.log(n, evt, _oe); + + // FIXME: need synthetic event support! + var _e = { target: n, faux: true, type: evt }; + // dojo._event_listener._synthesizeEvent({}, { target: n, faux: true, type: evt }); + try{ n[evt](_e); }catch(e){ console.log(e); } + try{ n[_oe](_e); }catch(e){ console.log(e); } + }) + ); + */ + } + ); + +})(); + +} + +if(!dojo._hasResource["dojo._base.query"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo._base.query"] = true; +if(typeof dojo != "undefined"){ + dojo.provide("dojo._base.query"); + + + +} + +/* + dojo.query() architectural overview: + + dojo.query is a relatively full-featured CSS3 query library. It is + designed to take any valid CSS3 selector and return the nodes matching + the selector. To do this quickly, it processes queries in several + steps, applying caching where profitable. + + The steps (roughly in reverse order of the way they appear in the code): + 1.) check to see if we already have a "query dispatcher" + - if so, use that with the given parameterization. Skip to step 4. + 2.) attempt to determine which branch to dispatch the query to: + - JS (optimized DOM iteration) + - native (FF3.1+, Safari 3.1+, IE 8+) + 3.) tokenize and convert to executable "query dispatcher" + - this is where the lion's share of the complexity in the + system lies. In the DOM version, the query dispatcher is + assembled as a chain of "yes/no" test functions pertaining to + a section of a simple query statement (".blah:nth-child(odd)" + but not "div div", which is 2 simple statements). Individual + statement dispatchers are cached (to prevent re-definition) + as are entire dispatch chains (to make re-execution of the + same query fast) + 4.) the resulting query dispatcher is called in the passed scope + (by default the top-level document) + - for DOM queries, this results in a recursive, top-down + evaluation of nodes based on each simple query section + - for native implementations, this may mean working around spec + bugs. So be it. + 5.) matched nodes are pruned to ensure they are unique (if necessary) +*/ + +;(function(d){ + // define everything in a closure for compressability reasons. "d" is an + // alias to "dojo" (or the toolkit alias object, e.g., "acme"). + + //////////////////////////////////////////////////////////////////////// + // Toolkit aliases + //////////////////////////////////////////////////////////////////////// + + // if you are extracing dojo.query for use in your own system, you will + // need to provide these methods and properties. No other porting should be + // necessary, save for configuring the system to use a class other than + // dojo.NodeList as the return instance instantiator + var trim = d.trim; + var each = d.forEach; + // d.isIE; // float + // d.isSafari; // float + // d.isOpera; // float + // d.isWebKit; // float + // d.doc ; // document element + var qlc = d._NodeListCtor = d.NodeList; + + var getDoc = function(){ return d.doc; }; + // NOTE(alex): the spec is idiotic. CSS queries should ALWAYS be case-sensitive, but nooooooo + var cssCaseBug = ((d.isWebKit||d.isMozilla) && ((getDoc().compatMode) == "BackCompat")); + + //////////////////////////////////////////////////////////////////////// + // Global utilities + //////////////////////////////////////////////////////////////////////// + + + // on browsers that support the "children" collection we can avoid a lot of + // iteration on chaff (non-element) nodes. + // why. + var childNodesName = !!getDoc().firstChild["children"] ? "children" : "childNodes"; + + var specials = ">~+"; + + // global thunk to determine whether we should treat the current query as + // case sensitive or not. This switch is flipped by the query evaluator + // based on the document passed as the context to search. + var caseSensitive = false; + + // how high? + var yesman = function(){ return true; }; + + //////////////////////////////////////////////////////////////////////// + // Tokenizer + //////////////////////////////////////////////////////////////////////// + + var getQueryParts = function(query){ + // summary: + // state machine for query tokenization + // description: + // instead of using a brittle and slow regex-based CSS parser, + // dojo.query implements an AST-style query representation. This + // representation is only generated once per query. For example, + // the same query run multiple times or under different root nodes + // does not re-parse the selector expression but instead uses the + // cached data structure. The state machine implemented here + // terminates on the last " " (space) charachter and returns an + // ordered array of query component structures (or "parts"). Each + // part represents an operator or a simple CSS filtering + // expression. The structure for parts is documented in the code + // below. + + + // NOTE: + // this code is designed to run fast and compress well. Sacrifices + // to readibility and maintainability have been made. Your best + // bet when hacking the tokenizer is to put The Donnas on *really* + // loud (may we recommend their "Spend The Night" release?) and + // just assume you're gonna make mistakes. Keep the unit tests + // open and run them frequently. Knowing is half the battle ;-) + if(specials.indexOf(query.slice(-1)) >= 0){ + // if we end with a ">", "+", or "~", that means we're implicitly + // searching all children, so make it explicit + query += " * " + }else{ + // if you have not provided a terminator, one will be provided for + // you... + query += " "; + } + + var ts = function(/*Integer*/ s, /*Integer*/ e){ + // trim and slice. + + // take an index to start a string slice from and an end position + // and return a trimmed copy of that sub-string + return trim(query.slice(s, e)); + } + + // the overall data graph of the full query, as represented by queryPart objects + var queryParts = []; + + + // state keeping vars + var inBrackets = -1, inParens = -1, inMatchFor = -1, + inPseudo = -1, inClass = -1, inId = -1, inTag = -1, + lc = "", cc = "", pStart; + + // iteration vars + var x = 0, // index in the query + ql = query.length, + currentPart = null, // data structure representing the entire clause + _cp = null; // the current pseudo or attr matcher + + // several temporary variables are assigned to this structure durring a + // potential sub-expression match: + // attr: + // a string representing the current full attribute match in a + // bracket expression + // type: + // if there's an operator in a bracket expression, this is + // used to keep track of it + // value: + // the internals of parenthetical expression for a pseudo. for + // :nth-child(2n+1), value might be "2n+1" + + var endTag = function(){ + // called when the tokenizer hits the end of a particular tag name. + // Re-sets state variables for tag matching and sets up the matcher + // to handle the next type of token (tag or operator). + if(inTag >= 0){ + var tv = (inTag == x) ? null : ts(inTag, x); // .toLowerCase(); + currentPart[ (specials.indexOf(tv) < 0) ? "tag" : "oper" ] = tv; + inTag = -1; + } + } + + var endId = function(){ + // called when the tokenizer might be at the end of an ID portion of a match + if(inId >= 0){ + currentPart.id = ts(inId, x).replace(/\\/g, ""); + inId = -1; + } + } + + var endClass = function(){ + // called when the tokenizer might be at the end of a class name + // match. CSS allows for multiple classes, so we augment the + // current item with another class in its list + if(inClass >= 0){ + currentPart.classes.push(ts(inClass+1, x).replace(/\\/g, "")); + inClass = -1; + } + } + + var endAll = function(){ + // at the end of a simple fragment, so wall off the matches + endId(); endTag(); endClass(); + } + + var endPart = function(){ + endAll(); + if(inPseudo >= 0){ + currentPart.pseudos.push({ name: ts(inPseudo+1, x) }); + } + // hint to the selector engine to tell it whether or not it + // needs to do any iteration. Many simple selectors don't, and + // we can avoid significant construction-time work by advising + // the system to skip them + currentPart.loops = ( + currentPart.pseudos.length || + currentPart.attrs.length || + currentPart.classes.length ); + + currentPart.oquery = currentPart.query = ts(pStart, x); // save the full expression as a string + + + // otag/tag are hints to suggest to the system whether or not + // it's an operator or a tag. We save a copy of otag since the + // tag name is cast to upper-case in regular HTML matches. The + // system has a global switch to figure out if the current + // expression needs to be case sensitive or not and it will use + // otag or tag accordingly + currentPart.otag = currentPart.tag = (currentPart["oper"]) ? null : (currentPart.tag || "*"); + + if(currentPart.tag){ + // if we're in a case-insensitive HTML doc, we likely want + // the toUpperCase when matching on element.tagName. If we + // do it here, we can skip the string op per node + // comparison + currentPart.tag = currentPart.tag.toUpperCase(); + } + + // add the part to the list + if(queryParts.length && (queryParts[queryParts.length-1].oper)){ + // operators are always infix, so we remove them from the + // list and attach them to the next match. The evaluator is + // responsible for sorting out how to handle them. + currentPart.infixOper = queryParts.pop(); + currentPart.query = currentPart.infixOper.query + " " + currentPart.query; + /* + console.debug( "swapping out the infix", + currentPart.infixOper, + "and attaching it to", + currentPart); + */ + } + queryParts.push(currentPart); + + currentPart = null; + } + + // iterate over the query, charachter by charachter, building up a + // list of query part objects + for(; lc=cc, cc=query.charAt(x), x < ql; x++){ + // cc: the current character in the match + // lc: the last charachter (if any) + + // someone is trying to escape something, so don't try to match any + // fragments. We assume we're inside a literal. + if(lc == "\\"){ continue; } + if(!currentPart){ // a part was just ended or none has yet been created + // NOTE: I hate all this alloc, but it's shorter than writing tons of if's + pStart = x; + // rules describe full CSS sub-expressions, like: + // #someId + // .className:first-child + // but not: + // thinger > div.howdy[type=thinger] + // the indidual components of the previous query would be + // split into 3 parts that would be represented a structure + // like: + // [ + // { + // query: "thinger", + // tag: "thinger", + // }, + // { + // query: "div.howdy[type=thinger]", + // classes: ["howdy"], + // infixOper: { + // query: ">", + // oper: ">", + // } + // }, + // ] + currentPart = { + query: null, // the full text of the part's rule + pseudos: [], // CSS supports multiple pseud-class matches in a single rule + attrs: [], // CSS supports multi-attribute match, so we need an array + classes: [], // class matches may be additive, e.g.: .thinger.blah.howdy + tag: null, // only one tag... + oper: null, // ...or operator per component. Note that these wind up being exclusive. + id: null, // the id component of a rule + getTag: function(){ + return (caseSensitive) ? this.otag : this.tag; + } + }; + + // if we don't have a part, we assume we're going to start at + // the beginning of a match, which should be a tag name. This + // might fault a little later on, but we detect that and this + // iteration will still be fine. + inTag = x; + } + + if(inBrackets >= 0){ + // look for a the close first + if(cc == "]"){ // if we're in a [...] clause and we end, do assignment + if(!_cp.attr){ + // no attribute match was previously begun, so we + // assume this is an attribute existance match in the + // form of [someAttributeName] + _cp.attr = ts(inBrackets+1, x); + }else{ + // we had an attribute already, so we know that we're + // matching some sort of value, as in [attrName=howdy] + _cp.matchFor = ts((inMatchFor||inBrackets+1), x); + } + var cmf = _cp.matchFor; + if(cmf){ + // try to strip quotes from the matchFor value. We want + // [attrName=howdy] to match the same + // as [attrName = 'howdy' ] + if( (cmf.charAt(0) == '"') || (cmf.charAt(0) == "'") ){ + _cp.matchFor = cmf.slice(1, -1); + } + } + // end the attribute by adding it to the list of attributes. + currentPart.attrs.push(_cp); + _cp = null; // necessary? + inBrackets = inMatchFor = -1; + }else if(cc == "="){ + // if the last char was an operator prefix, make sure we + // record it along with the "=" operator. + var addToCc = ("|~^$*".indexOf(lc) >=0 ) ? lc : ""; + _cp.type = addToCc+cc; + _cp.attr = ts(inBrackets+1, x-addToCc.length); + inMatchFor = x+1; + } + // now look for other clause parts + }else if(inParens >= 0){ + // if we're in a parenthetical expression, we need to figure + // out if it's attached to a pseduo-selector rule like + // :nth-child(1) + if(cc == ")"){ + if(inPseudo >= 0){ + _cp.value = ts(inParens+1, x); + } + inPseudo = inParens = -1; + } + }else if(cc == "#"){ + // start of an ID match + endAll(); + inId = x+1; + }else if(cc == "."){ + // start of a class match + endAll(); + inClass = x; + }else if(cc == ":"){ + // start of a pseudo-selector match + endAll(); + inPseudo = x; + }else if(cc == "["){ + // start of an attribute match. + endAll(); + inBrackets = x; + // provide a new structure for the attribute match to fill-in + _cp = { + /*===== + attr: null, type: null, matchFor: null + =====*/ + }; + }else if(cc == "("){ + // we really only care if we've entered a parenthetical + // expression if we're already inside a pseudo-selector match + if(inPseudo >= 0){ + // provide a new structure for the pseudo match to fill-in + _cp = { + name: ts(inPseudo+1, x), + value: null + } + currentPart.pseudos.push(_cp); + } + inParens = x; + }else if( + (cc == " ") && + // if it's a space char and the last char is too, consume the + // current one without doing more work + (lc != cc) + ){ + endPart(); + } + } + return queryParts; + }; + + + //////////////////////////////////////////////////////////////////////// + // DOM query infrastructure + //////////////////////////////////////////////////////////////////////// + + var agree = function(first, second){ + // the basic building block of the yes/no chaining system. agree(f1, + // f2) generates a new function which returns the boolean results of + // both of the passed functions to a single logical-anded result. If + // either are not possed, the other is used exclusively. + if(!first){ return second; } + if(!second){ return first; } + + return function(){ + return first.apply(window, arguments) && second.apply(window, arguments); + } + }; + + var getArr = function(i, arr){ + // helps us avoid array alloc when we don't need it + var r = arr||[]; // FIXME: should this be 'new d._NodeListCtor()' ? + if(i){ r.push(i); } + return r; + }; + + var _isElement = function(n){ return (1 == n.nodeType); }; + + // FIXME: need to coalesce _getAttr with defaultGetter + var blank = ""; + var _getAttr = function(elem, attr){ + if(!elem){ return blank; } + if(attr == "class"){ + return elem.className || blank; + } + if(attr == "for"){ + return elem.htmlFor || blank; + } + if(attr == "style"){ + return elem.style.cssText || blank; + } + return (caseSensitive ? elem.getAttribute(attr) : elem.getAttribute(attr, 2)) || blank; + }; + + var attrs = { + "*=": function(attr, value){ + return function(elem){ + // E[foo*="bar"] + // an E element whose "foo" attribute value contains + // the substring "bar" + return (_getAttr(elem, attr).indexOf(value)>=0); + } + }, + "^=": function(attr, value){ + // E[foo^="bar"] + // an E element whose "foo" attribute value begins exactly + // with the string "bar" + return function(elem){ + return (_getAttr(elem, attr).indexOf(value)==0); + } + }, + "$=": function(attr, value){ + // E[foo$="bar"] + // an E element whose "foo" attribute value ends exactly + // with the string "bar" + var tval = " "+value; + return function(elem){ + var ea = " "+_getAttr(elem, attr); + return (ea.lastIndexOf(value)==(ea.length-value.length)); + } + }, + "~=": function(attr, value){ + // E[foo~="bar"] + // an E element whose "foo" attribute value is a list of + // space-separated values, one of which is exactly equal + // to "bar" + + // return "[contains(concat(' ',@"+attr+",' '), ' "+ value +" ')]"; + var tval = " "+value+" "; + return function(elem){ + var ea = " "+_getAttr(elem, attr)+" "; + return (ea.indexOf(tval)>=0); + } + }, + "|=": function(attr, value){ + // E[hreflang|="en"] + // an E element whose "hreflang" attribute has a + // hyphen-separated list of values beginning (from the + // left) with "en" + var valueDash = " "+value+"-"; + return function(elem){ + var ea = " "+_getAttr(elem, attr); + return ( + (ea == value) || + (ea.indexOf(valueDash)==0) + ); + } + }, + "=": function(attr, value){ + return function(elem){ + return (_getAttr(elem, attr) == value); + } + } + }; + + // avoid testing for node type if we can. Defining this in the negative + // here to avoid negation in the fast path. + var _noNES = (typeof getDoc().firstChild.nextElementSibling == "undefined"); + var _ns = !_noNES ? "nextElementSibling" : "nextSibling"; + var _ps = !_noNES ? "previousElementSibling" : "previousSibling"; + var _simpleNodeTest = (_noNES ? _isElement : yesman); + + var _lookLeft = function(node){ + // look left + while(node = node[_ps]){ + if(_simpleNodeTest(node)){ return false; } + } + return true; + }; + + var _lookRight = function(node){ + // look right + while(node = node[_ns]){ + if(_simpleNodeTest(node)){ return false; } + } + return true; + }; + + var getNodeIndex = function(node){ + var root = node.parentNode; + var i = 0, + tret = root[childNodesName], + ci = (node["_i"]||-1), + cl = (root["_l"]||-1); + + if(!tret){ return -1; } + var l = tret.length; + + // we calcuate the parent length as a cheap way to invalidate the + // cache. It's not 100% accurate, but it's much more honest than what + // other libraries do + if( cl == l && ci >= 0 && cl >= 0 ){ + // if it's legit, tag and release + return ci; + } + + // else re-key things + root["_l"] = l; + ci = -1; + for(var te = root["firstElementChild"]||root["firstChild"]; te; te = te[_ns]){ + if(_simpleNodeTest(te)){ + te["_i"] = ++i; + if(node === te){ + // NOTE: + // shortcuting the return at this step in indexing works + // very well for benchmarking but we avoid it here since + // it leads to potential O(n^2) behavior in sequential + // getNodexIndex operations on a previously un-indexed + // parent. We may revisit this at a later time, but for + // now we just want to get the right answer more often + // than not. + ci = i; + } + } + } + return ci; + }; + + var isEven = function(elem){ + return !((getNodeIndex(elem)) % 2); + }; + + var isOdd = function(elem){ + return ((getNodeIndex(elem)) % 2); + }; + + var pseudos = { + "checked": function(name, condition){ + return function(elem){ + return !!("checked" in elem ? elem.checked : elem.selected); + } + }, + "first-child": function(){ return _lookLeft; }, + "last-child": function(){ return _lookRight; }, + "only-child": function(name, condition){ + return function(node){ + if(!_lookLeft(node)){ return false; } + if(!_lookRight(node)){ return false; } + return true; + }; + }, + "empty": function(name, condition){ + return function(elem){ + // DomQuery and jQuery get this wrong, oddly enough. + // The CSS 3 selectors spec is pretty explicit about it, too. + var cn = elem.childNodes; + var cnl = elem.childNodes.length; + // if(!cnl){ return true; } + for(var x=cnl-1; x >= 0; x--){ + var nt = cn[x].nodeType; + if((nt === 1)||(nt == 3)){ return false; } + } + return true; + } + }, + "contains": function(name, condition){ + var cz = condition.charAt(0); + if( cz == '"' || cz == "'" ){ //remove quote + condition = condition.slice(1, -1); + } + return function(elem){ + return (elem.innerHTML.indexOf(condition) >= 0); + } + }, + "not": function(name, condition){ + var p = getQueryParts(condition)[0]; + var ignores = { el: 1 }; + if(p.tag != "*"){ + ignores.tag = 1; + } + if(!p.classes.length){ + ignores.classes = 1; + } + var ntf = getSimpleFilterFunc(p, ignores); + return function(elem){ + return (!ntf(elem)); + } + }, + "nth-child": function(name, condition){ + var pi = parseInt; + // avoid re-defining function objects if we can + if(condition == "odd"){ + return isOdd; + }else if(condition == "even"){ + return isEven; + } + // FIXME: can we shorten this? + if(condition.indexOf("n") != -1){ + var tparts = condition.split("n", 2); + var pred = tparts[0] ? ((tparts[0] == '-') ? -1 : pi(tparts[0])) : 1; + var idx = tparts[1] ? pi(tparts[1]) : 0; + var lb = 0, ub = -1; + if(pred > 0){ + if(idx < 0){ + idx = (idx % pred) && (pred + (idx % pred)); + }else if(idx>0){ + if(idx >= pred){ + lb = idx - idx % pred; + } + idx = idx % pred; + } + }else if(pred<0){ + pred *= -1; + // idx has to be greater than 0 when pred is negative; + // shall we throw an error here? + if(idx > 0){ + ub = idx; + idx = idx % pred; + } + } + if(pred > 0){ + return function(elem){ + var i = getNodeIndex(elem); + return (i>=lb) && (ub<0 || i<=ub) && ((i % pred) == idx); + } + }else{ + condition = idx; + } + } + var ncount = pi(condition); + return function(elem){ + return (getNodeIndex(elem) == ncount); + } + } + }; + + var defaultGetter = (d.isIE) ? function(cond){ + var clc = cond.toLowerCase(); + if(clc == "class"){ cond = "className"; } + return function(elem){ + return (caseSensitive ? elem.getAttribute(cond) : elem[cond]||elem[clc]); + } + } : function(cond){ + return function(elem){ + return (elem && elem.getAttribute && elem.hasAttribute(cond)); + } + }; + + var getSimpleFilterFunc = function(query, ignores){ + // generates a node tester function based on the passed query part. The + // query part is one of the structures generatd by the query parser + // when it creates the query AST. The "ignores" object specifies which + // (if any) tests to skip, allowing the system to avoid duplicating + // work where it may have already been taken into account by other + // factors such as how the nodes to test were fetched in the first + // place + if(!query){ return yesman; } + ignores = ignores||{}; + + var ff = null; + + if(!("el" in ignores)){ + ff = agree(ff, _isElement); + } + + if(!("tag" in ignores)){ + if(query.tag != "*"){ + ff = agree(ff, function(elem){ + return (elem && (elem.tagName == query.getTag())); + }); + } + } + + if(!("classes" in ignores)){ + each(query.classes, function(cname, idx, arr){ + // get the class name + /* + var isWildcard = cname.charAt(cname.length-1) == "*"; + if(isWildcard){ + cname = cname.substr(0, cname.length-1); + } + // I dislike the regex thing, even if memozied in a cache, but it's VERY short + var re = new RegExp("(?:^|\\s)" + cname + (isWildcard ? ".*" : "") + "(?:\\s|$)"); + */ + var re = new RegExp("(?:^|\\s)" + cname + "(?:\\s|$)"); + ff = agree(ff, function(elem){ + return re.test(elem.className); + }); + ff.count = idx; + }); + } + + if(!("pseudos" in ignores)){ + each(query.pseudos, function(pseudo){ + var pn = pseudo.name; + if(pseudos[pn]){ + ff = agree(ff, pseudos[pn](pn, pseudo.value)); + } + }); + } + + if(!("attrs" in ignores)){ + each(query.attrs, function(attr){ + var matcher; + var a = attr.attr; + // type, attr, matchFor + if(attr.type && attrs[attr.type]){ + matcher = attrs[attr.type](a, attr.matchFor); + }else if(a.length){ + matcher = defaultGetter(a); + } + if(matcher){ + ff = agree(ff, matcher); + } + }); + } + + if(!("id" in ignores)){ + if(query.id){ + ff = agree(ff, function(elem){ + return (!!elem && (elem.id == query.id)); + }); + } + } + + if(!ff){ + if(!("default" in ignores)){ + ff = yesman; + } + } + return ff; + }; + + var _nextSibling = function(filterFunc){ + return function(node, ret, bag){ + while(node = node[_ns]){ + if(_noNES && (!_isElement(node))){ continue; } + if( + (!bag || _isUnique(node, bag)) && + filterFunc(node) + ){ + ret.push(node); + } + break; + } + return ret; + } + }; + + var _nextSiblings = function(filterFunc){ + return function(root, ret, bag){ + var te = root[_ns]; + while(te){ + if(_simpleNodeTest(te)){ + if(bag && !_isUnique(te, bag)){ + break; + } + if(filterFunc(te)){ + ret.push(te); + } + } + te = te[_ns]; + } + return ret; + } + }; + + // get an array of child *elements*, skipping text and comment nodes + var _childElements = function(filterFunc){ + filterFunc = filterFunc||yesman; + return function(root, ret, bag){ + // get an array of child elements, skipping text and comment nodes + var te, x = 0, tret = root[childNodesName]; + while(te = tret[x++]){ + if( + _simpleNodeTest(te) && + (!bag || _isUnique(te, bag)) && + (filterFunc(te, x)) + ){ + ret.push(te); + } + } + return ret; + }; + }; + + /* + // thanks, Dean! + var itemIsAfterRoot = d.isIE ? function(item, root){ + return (item.sourceIndex > root.sourceIndex); + } : function(item, root){ + return (item.compareDocumentPosition(root) == 2); + }; + */ + + // test to see if node is below root + var _isDescendant = function(node, root){ + var pn = node.parentNode; + while(pn){ + if(pn == root){ + break; + } + pn = pn.parentNode; + } + return !!pn; + }; + + var _getElementsFuncCache = {}; + + var getElementsFunc = function(query){ + var retFunc = _getElementsFuncCache[query.query]; + // if we've got a cached dispatcher, just use that + if(retFunc){ return retFunc; } + // else, generate a new on + + // NOTE: + // this function returns a function that searches for nodes and + // filters them. The search may be specialized by infix operators + // (">", "~", or "+") else it will default to searching all + // descendants (the " " selector). Once a group of children is + // founde, a test function is applied to weed out the ones we + // don't want. Many common cases can be fast-pathed. We spend a + // lot of cycles to create a dispatcher that doesn't do more work + // than necessary at any point since, unlike this function, the + // dispatchers will be called every time. The logic of generating + // efficient dispatchers looks like this in pseudo code: + // + // # if it's a purely descendant query (no ">", "+", or "~" modifiers) + // if infixOperator == " ": + // if only(id): + // return def(root): + // return d.byId(id, root); + // + // elif id: + // return def(root): + // return filter(d.byId(id, root)); + // + // elif cssClass && getElementsByClassName: + // return def(root): + // return filter(root.getElementsByClassName(cssClass)); + // + // elif only(tag): + // return def(root): + // return root.getElementsByTagName(tagName); + // + // else: + // # search by tag name, then filter + // return def(root): + // return filter(root.getElementsByTagName(tagName||"*")); + // + // elif infixOperator == ">": + // # search direct children + // return def(root): + // return filter(root.children); + // + // elif infixOperator == "+": + // # search next sibling + // return def(root): + // return filter(root.nextElementSibling); + // + // elif infixOperator == "~": + // # search rightward siblings + // return def(root): + // return filter(nextSiblings(root)); + + var io = query.infixOper; + var oper = (io ? io.oper : ""); + // the default filter func which tests for all conditions in the query + // part. This is potentially inefficient, so some optimized paths may + // re-define it to test fewer things. + var filterFunc = getSimpleFilterFunc(query, { el: 1 }); + var qt = query.tag; + var wildcardTag = ("*" == qt); + var ecs = getDoc()["getElementsByClassName"]; + + if(!oper){ + // if there's no infix operator, then it's a descendant query. ID + // and "elements by class name" variants can be accelerated so we + // call them out explicitly: + if(query.id){ + // testing shows that the overhead of yesman() is acceptable + // and can save us some bytes vs. re-defining the function + // everywhere. + filterFunc = (!query.loops && wildcardTag) ? + yesman : + getSimpleFilterFunc(query, { el: 1, id: 1 }); + + retFunc = function(root, arr){ + var te = d.byId(query.id, (root.ownerDocument||root)); + if(!te || !filterFunc(te)){ return; } + if(9 == root.nodeType){ // if root's a doc, we just return directly + return getArr(te, arr); + }else{ // otherwise check ancestry + if(_isDescendant(te, root)){ + return getArr(te, arr); + } + } + } + }else if( + ecs && + // isAlien check. Workaround for Prototype.js being totally evil/dumb. + /\{\s*\[native code\]\s*\}/.test(String(ecs)) && + query.classes.length && + !cssCaseBug + ){ + // it's a class-based query and we've got a fast way to run it. + + // ignore class and ID filters since we will have handled both + filterFunc = getSimpleFilterFunc(query, { el: 1, classes: 1, id: 1 }); + var classesString = query.classes.join(" "); + retFunc = function(root, arr, bag){ + var ret = getArr(0, arr), te, x=0; + var tret = root.getElementsByClassName(classesString); + while((te = tret[x++])){ + if(filterFunc(te, root) && _isUnique(te, bag)){ + ret.push(te); + } + } + return ret; + }; + + }else if(!wildcardTag && !query.loops){ + // it's tag only. Fast-path it. + retFunc = function(root, arr, bag){ + var ret = getArr(0, arr), te, x=0; + var tret = root.getElementsByTagName(query.getTag()); + while((te = tret[x++])){ + if(_isUnique(te, bag)){ + ret.push(te); + } + } + return ret; + }; + }else{ + // the common case: + // a descendant selector without a fast path. By now it's got + // to have a tag selector, even if it's just "*" so we query + // by that and filter + filterFunc = getSimpleFilterFunc(query, { el: 1, tag: 1, id: 1 }); + retFunc = function(root, arr, bag){ + var ret = getArr(0, arr), te, x=0; + // we use getTag() to avoid case sensitivity issues + var tret = root.getElementsByTagName(query.getTag()); + while((te = tret[x++])){ + if(filterFunc(te, root) && _isUnique(te, bag)){ + ret.push(te); + } + } + return ret; + }; + } + }else{ + // the query is scoped in some way. Instead of querying by tag we + // use some other collection to find candidate nodes + var skipFilters = { el: 1 }; + if(wildcardTag){ + skipFilters.tag = 1; + } + filterFunc = getSimpleFilterFunc(query, skipFilters); + if("+" == oper){ + retFunc = _nextSibling(filterFunc); + }else if("~" == oper){ + retFunc = _nextSiblings(filterFunc); + }else if(">" == oper){ + retFunc = _childElements(filterFunc); + } + } + // cache it and return + return _getElementsFuncCache[query.query] = retFunc; + }; + + var filterDown = function(root, queryParts){ + // NOTE: + // this is the guts of the DOM query system. It takes a list of + // parsed query parts and a root and finds children which match + // the selector represented by the parts + var candidates = getArr(root), qp, x, te, qpl = queryParts.length, bag, ret; + + for(var i = 0; i < qpl; i++){ + ret = []; + qp = queryParts[i]; + x = candidates.length - 1; + if(x > 0){ + // if we have more than one root at this level, provide a new + // hash to use for checking group membership but tell the + // system not to post-filter us since we will already have been + // gauranteed to be unique + bag = {}; + ret.nozip = true; + } + var gef = getElementsFunc(qp); + for(var j = 0; (te = candidates[j]); j++){ + // for every root, get the elements that match the descendant + // selector, adding them to the "ret" array and filtering them + // via membership in this level's bag. If there are more query + // parts, then this level's return will be used as the next + // level's candidates + gef(te, ret, bag); + } + if(!ret.length){ break; } + candidates = ret; + } + return ret; + }; + + //////////////////////////////////////////////////////////////////////// + // the query runner + //////////////////////////////////////////////////////////////////////// + + // these are the primary caches for full-query results. The query + // dispatcher functions are generated then stored here for hash lookup in + // the future + var _queryFuncCacheDOM = {}, + _queryFuncCacheQSA = {}; + + // this is the second level of spliting, from full-length queries (e.g., + // "div.foo .bar") into simple query expressions (e.g., ["div.foo", + // ".bar"]) + var getStepQueryFunc = function(query){ + var qparts = getQueryParts(trim(query)); + + // if it's trivial, avoid iteration and zipping costs + if(qparts.length == 1){ + // we optimize this case here to prevent dispatch further down the + // chain, potentially slowing things down. We could more elegantly + // handle this in filterDown(), but it's slower for simple things + // that need to be fast (e.g., "#someId"). + var tef = getElementsFunc(qparts[0]); + return function(root){ + var r = tef(root, new qlc()); + if(r){ r.nozip = true; } + return r; + } + } + + // otherwise, break it up and return a runner that iterates over the parts recursively + return function(root){ + return filterDown(root, qparts); + } + }; + + // NOTES: + // * we can't trust QSA for anything but document-rooted queries, so + // caching is split into DOM query evaluators and QSA query evaluators + // * caching query results is dirty and leak-prone (or, at a minimum, + // prone to unbounded growth). Other toolkits may go this route, but + // they totally destroy their own ability to manage their memory + // footprint. If we implement it, it should only ever be with a fixed + // total element reference # limit and an LRU-style algorithm since JS + // has no weakref support. Caching compiled query evaluators is also + // potentially problematic, but even on large documents the size of the + // query evaluators is often < 100 function objects per evaluator (and + // LRU can be applied if it's ever shown to be an issue). + // * since IE's QSA support is currently only for HTML documents and even + // then only in IE 8's "standards mode", we have to detect our dispatch + // route at query time and keep 2 separate caches. Ugg. + + // we need to determine if we think we can run a given query via + // querySelectorAll or if we'll need to fall back on DOM queries to get + // there. We need a lot of information about the environment and the query + // to make the determiniation (e.g. does it support QSA, does the query in + // question work in the native QSA impl, etc.). + var nua = navigator.userAgent; + // some versions of Safari provided QSA, but it was buggy and crash-prone. + // We need te detect the right "internal" webkit version to make this work. + var wk = "WebKit/"; + var is525 = ( + d.isWebKit && + (nua.indexOf(wk) > 0) && + (parseFloat(nua.split(wk)[1]) > 528) + ); + + // IE QSA queries may incorrectly include comment nodes, so we throw the + // zipping function into "remove" comments mode instead of the normal "skip + // it" which every other QSA-clued browser enjoys + var noZip = d.isIE ? "commentStrip" : "nozip"; + + var qsa = "querySelectorAll"; + var qsaAvail = ( + !!getDoc()[qsa] && + // see #5832 + (!d.isSafari || (d.isSafari > 3.1) || is525 ) + ); + + //Don't bother with n+3 type of matches, IE complains if we modify those. + var infixSpaceRe = /n\+\d|([^ ])?([>~+])([^ =])?/g; + var infixSpaceFunc = function(match, pre, ch, post) { + return ch ? (pre ? pre + " " : "") + ch + (post ? " " + post : "") : /*n+3*/ match; + }; + + var getQueryFunc = function(query, forceDOM){ + //Normalize query. The CSS3 selectors spec allows for omitting spaces around + //infix operators, >, ~ and + + //Do the work here since detection for spaces is used as a simple "not use QSA" + //test below. + query = query.replace(infixSpaceRe, infixSpaceFunc); + + if(qsaAvail){ + // if we've got a cached variant and we think we can do it, run it! + var qsaCached = _queryFuncCacheQSA[query]; + if(qsaCached && !forceDOM){ return qsaCached; } + } + + // else if we've got a DOM cached variant, assume that we already know + // all we need to and use it + var domCached = _queryFuncCacheDOM[query]; + if(domCached){ return domCached; } + + // TODO: + // today we're caching DOM and QSA branches separately so we + // recalc useQSA every time. If we had a way to tag root+query + // efficiently, we'd be in good shape to do a global cache. + + var qcz = query.charAt(0); + var nospace = (-1 == query.indexOf(" ")); + + // byId searches are wicked fast compared to QSA, even when filtering + // is required + if( (query.indexOf("#") >= 0) && (nospace) ){ + forceDOM = true; + } + + var useQSA = ( + qsaAvail && (!forceDOM) && + // as per CSS 3, we can't currently start w/ combinator: + // http://www.w3.org/TR/css3-selectors/#w3cselgrammar + (specials.indexOf(qcz) == -1) && + // IE's QSA impl sucks on pseudos + (!d.isIE || (query.indexOf(":") == -1)) && + + (!(cssCaseBug && (query.indexOf(".") >= 0))) && + + // FIXME: + // need to tighten up browser rules on ":contains" and "|=" to + // figure out which aren't good + // Latest webkit (around 531.21.8) does not seem to do well with :checked on option + // elements, even though according to spec, selected options should + // match :checked. So go nonQSA for it: + // http://bugs.dojotoolkit.org/ticket/5179 + (query.indexOf(":contains") == -1) && (query.indexOf(":checked") == -1) && + (query.indexOf("|=") == -1) // some browsers don't grok it + ); + + // TODO: + // if we've got a descendant query (e.g., "> .thinger" instead of + // just ".thinger") in a QSA-able doc, but are passed a child as a + // root, it should be possible to give the item a synthetic ID and + // trivially rewrite the query to the form "#synid > .thinger" to + // use the QSA branch + + + if(useQSA){ + var tq = (specials.indexOf(query.charAt(query.length-1)) >= 0) ? + (query + " *") : query; + return _queryFuncCacheQSA[query] = function(root){ + try{ + // the QSA system contains an egregious spec bug which + // limits us, effectively, to only running QSA queries over + // entire documents. See: + // http://ejohn.org/blog/thoughts-on-queryselectorall/ + // despite this, we can also handle QSA runs on simple + // selectors, but we don't want detection to be expensive + // so we're just checking for the presence of a space char + // right now. Not elegant, but it's cheaper than running + // the query parser when we might not need to + if(!((9 == root.nodeType) || nospace)){ throw ""; } + var r = root[qsa](tq); + // skip expensive duplication checks and just wrap in a NodeList + r[noZip] = true; + return r; + }catch(e){ + // else run the DOM branch on this query, ensuring that we + // default that way in the future + return getQueryFunc(query, true)(root); + } + } + }else{ + // DOM branch + var parts = query.split(/\s*,\s*/); + return _queryFuncCacheDOM[query] = ((parts.length < 2) ? + // if not a compound query (e.g., ".foo, .bar"), cache and return a dispatcher + getStepQueryFunc(query) : + // if it *is* a complex query, break it up into its + // constituent parts and return a dispatcher that will + // merge the parts when run + function(root){ + var pindex = 0, // avoid array alloc for every invocation + ret = [], + tp; + while((tp = parts[pindex++])){ + ret = ret.concat(getStepQueryFunc(tp)(root)); + } + return ret; + } + ); + } + }; + + var _zipIdx = 0; + + // NOTE: + // this function is Moo inspired, but our own impl to deal correctly + // with XML in IE + var _nodeUID = d.isIE ? function(node){ + if(caseSensitive){ + // XML docs don't have uniqueID on their nodes + return (node.getAttribute("_uid") || node.setAttribute("_uid", ++_zipIdx) || _zipIdx); + + }else{ + return node.uniqueID; + } + } : + function(node){ + return (node._uid || (node._uid = ++_zipIdx)); + }; + + // determine if a node in is unique in a "bag". In this case we don't want + // to flatten a list of unique items, but rather just tell if the item in + // question is already in the bag. Normally we'd just use hash lookup to do + // this for us but IE's DOM is busted so we can't really count on that. On + // the upside, it gives us a built in unique ID function. + var _isUnique = function(node, bag){ + if(!bag){ return 1; } + var id = _nodeUID(node); + if(!bag[id]){ return bag[id] = 1; } + return 0; + }; + + // attempt to efficiently determine if an item in a list is a dupe, + // returning a list of "uniques", hopefully in doucment order + var _zipIdxName = "_zipIdx"; + var _zip = function(arr){ + if(arr && arr.nozip){ + return (qlc._wrap) ? qlc._wrap(arr) : arr; + } + // var ret = new d._NodeListCtor(); + var ret = new qlc(); + if(!arr || !arr.length){ return ret; } + if(arr[0]){ + ret.push(arr[0]); + } + if(arr.length < 2){ return ret; } + + _zipIdx++; + + // we have to fork here for IE and XML docs because we can't set + // expandos on their nodes (apparently). *sigh* + if(d.isIE && caseSensitive){ + var szidx = _zipIdx+""; + arr[0].setAttribute(_zipIdxName, szidx); + for(var x = 1, te; te = arr[x]; x++){ + if(arr[x].getAttribute(_zipIdxName) != szidx){ + ret.push(te); + } + te.setAttribute(_zipIdxName, szidx); + } + }else if(d.isIE && arr.commentStrip){ + try{ + for(var x = 1, te; te = arr[x]; x++){ + if(_isElement(te)){ + ret.push(te); + } + } + }catch(e){ /* squelch */ } + }else{ + if(arr[0]){ arr[0][_zipIdxName] = _zipIdx; } + for(var x = 1, te; te = arr[x]; x++){ + if(arr[x][_zipIdxName] != _zipIdx){ + ret.push(te); + } + te[_zipIdxName] = _zipIdx; + } + } + return ret; + }; + + // the main executor + d.query = function(/*String*/ query, /*String|DOMNode?*/ root){ + // summary: + // Returns nodes which match the given CSS3 selector, searching the + // entire document by default but optionally taking a node to scope + // the search by. Returns an instance of dojo.NodeList. + // description: + // dojo.query() is the swiss army knife of DOM node manipulation in + // Dojo. Much like Prototype's "$$" (bling-bling) function or JQuery's + // "$" function, dojo.query provides robust, high-performance + // CSS-based node selector support with the option of scoping searches + // to a particular sub-tree of a document. + // + // Supported Selectors: + // -------------------- + // + // dojo.query() supports a rich set of CSS3 selectors, including: + // + // * class selectors (e.g., `.foo`) + // * node type selectors like `span` + // * ` ` descendant selectors + // * `>` child element selectors + // * `#foo` style ID selectors + // * `*` universal selector + // * `~`, the immediately preceeded-by sibling selector + // * `+`, the preceeded-by sibling selector + // * attribute queries: + // | * `[foo]` attribute presence selector + // | * `[foo='bar']` attribute value exact match + // | * `[foo~='bar']` attribute value list item match + // | * `[foo^='bar']` attribute start match + // | * `[foo$='bar']` attribute end match + // | * `[foo*='bar']` attribute substring match + // * `:first-child`, `:last-child`, and `:only-child` positional selectors + // * `:empty` content emtpy selector + // * `:checked` pseudo selector + // * `:nth-child(n)`, `:nth-child(2n+1)` style positional calculations + // * `:nth-child(even)`, `:nth-child(odd)` positional selectors + // * `:not(...)` negation pseudo selectors + // + // Any legal combination of these selectors will work with + // `dojo.query()`, including compound selectors ("," delimited). + // Very complex and useful searches can be constructed with this + // palette of selectors and when combined with functions for + // manipulation presented by dojo.NodeList, many types of DOM + // manipulation operations become very straightforward. + // + // Unsupported Selectors: + // ---------------------- + // + // While dojo.query handles many CSS3 selectors, some fall outside of + // what's resaonable for a programmatic node querying engine to + // handle. Currently unsupported selectors include: + // + // * namespace-differentiated selectors of any form + // * all `::` pseduo-element selectors + // * certain pseduo-selectors which don't get a lot of day-to-day use: + // | * `:root`, `:lang()`, `:target`, `:focus` + // * all visual and state selectors: + // | * `:root`, `:active`, `:hover`, `:visisted`, `:link`, + // `:enabled`, `:disabled` + // * `:*-of-type` pseudo selectors + // + // dojo.query and XML Documents: + // ----------------------------- + // + // `dojo.query` (as of dojo 1.2) supports searching XML documents + // in a case-sensitive manner. If an HTML document is served with + // a doctype that forces case-sensitivity (e.g., XHTML 1.1 + // Strict), dojo.query() will detect this and "do the right + // thing". Case sensitivity is dependent upon the document being + // searched and not the query used. It is therefore possible to + // use case-sensitive queries on strict sub-documents (iframes, + // etc.) or XML documents while still assuming case-insensitivity + // for a host/root document. + // + // Non-selector Queries: + // --------------------- + // + // If something other than a String is passed for the query, + // `dojo.query` will return a new `dojo.NodeList` instance + // constructed from that parameter alone and all further + // processing will stop. This means that if you have a reference + // to a node or NodeList, you can quickly construct a new NodeList + // from the original by calling `dojo.query(node)` or + // `dojo.query(list)`. + // + // query: + // The CSS3 expression to match against. For details on the syntax of + // CSS3 selectors, see <http://www.w3.org/TR/css3-selectors/#selectors> + // root: + // A DOMNode (or node id) to scope the search from. Optional. + // returns: dojo.NodeList + // An instance of `dojo.NodeList`. Many methods are available on + // NodeLists for searching, iterating, manipulating, and handling + // events on the matched nodes in the returned list. + // example: + // search the entire document for elements with the class "foo": + // | dojo.query(".foo"); + // these elements will match: + // | <span class="foo"></span> + // | <span class="foo bar"></span> + // | <p class="thud foo"></p> + // example: + // search the entire document for elements with the classes "foo" *and* "bar": + // | dojo.query(".foo.bar"); + // these elements will match: + // | <span class="foo bar"></span> + // while these will not: + // | <span class="foo"></span> + // | <p class="thud foo"></p> + // example: + // find `<span>` elements which are descendants of paragraphs and + // which have a "highlighted" class: + // | dojo.query("p span.highlighted"); + // the innermost span in this fragment matches: + // | <p class="foo"> + // | <span>... + // | <span class="highlighted foo bar">...</span> + // | </span> + // | </p> + // example: + // set an "odd" class on all odd table rows inside of the table + // `#tabular_data`, using the `>` (direct child) selector to avoid + // affecting any nested tables: + // | dojo.query("#tabular_data > tbody > tr:nth-child(odd)").addClass("odd"); + // example: + // remove all elements with the class "error" from the document + // and store them in a list: + // | var errors = dojo.query(".error").orphan(); + // example: + // add an onclick handler to every submit button in the document + // which causes the form to be sent via Ajax instead: + // | dojo.query("input[type='submit']").onclick(function(e){ + // | dojo.stopEvent(e); // prevent sending the form + // | var btn = e.target; + // | dojo.xhrPost({ + // | form: btn.form, + // | load: function(data){ + // | // replace the form with the response + // | var div = dojo.doc.createElement("div"); + // | dojo.place(div, btn.form, "after"); + // | div.innerHTML = data; + // | dojo.style(btn.form, "display", "none"); + // | } + // | }); + // | }); + + //Set list constructor to desired value. This can change + //between calls, so always re-assign here. + qlc = d._NodeListCtor; + + if(!query){ + return new qlc(); + } + + if(query.constructor == qlc){ + return query; + } + if(typeof query != "string"){ // inline'd type check + return new qlc(query); // dojo.NodeList + } + if(typeof root == "string"){ // inline'd type check + root = d.byId(root); + if(!root){ return new qlc(); } + } + + root = root||getDoc(); + var od = root.ownerDocument||root.documentElement; + + // throw the big case sensitivity switch + + // NOTE: + // Opera in XHTML mode doesn't detect case-sensitivity correctly + // and it's not clear that there's any way to test for it + caseSensitive = (root.contentType && root.contentType=="application/xml") || + (d.isOpera && (root.doctype || od.toString() == "[object XMLDocument]")) || + (!!od) && + (d.isIE ? od.xml : (root.xmlVersion||od.xmlVersion)); + + // NOTE: + // adding "true" as the 2nd argument to getQueryFunc is useful for + // testing the DOM branch without worrying about the + // behavior/performance of the QSA branch. + var r = getQueryFunc(query)(root); + + // FIXME: + // need to investigate this branch WRT #8074 and #8075 + if(r && r.nozip && !qlc._wrap){ + return r; + } + return _zip(r); // dojo.NodeList + } + + // FIXME: need to add infrastructure for post-filtering pseudos, ala :last + d.query.pseudos = pseudos; + + // one-off function for filtering a NodeList based on a simple selector + d._filterQueryResult = function(nodeList, simpleFilter){ + var tmpNodeList = new d._NodeListCtor(); + var filterFunc = getSimpleFilterFunc(getQueryParts(simpleFilter)[0]); + for(var x = 0, te; te = nodeList[x]; x++){ + if(filterFunc(te)){ tmpNodeList.push(te); } + } + return tmpNodeList; + } +})(this["queryPortability"]||this["acme"]||dojo); + +/* +*/ + +} + +if(!dojo._hasResource["dojo._base.xhr"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo._base.xhr"] = true; +dojo.provide("dojo._base.xhr"); + + + + + +(function(){ + var _d = dojo, cfg = _d.config; + + function setValue(/*Object*/obj, /*String*/name, /*String*/value){ + //summary: + // For the named property in object, set the value. If a value + // already exists and it is a string, convert the value to be an + // array of values. + + //Skip it if there is no value + if(value === null){ + return; + } + + var val = obj[name]; + if(typeof val == "string"){ // inline'd type check + obj[name] = [val, value]; + }else if(_d.isArray(val)){ + val.push(value); + }else{ + obj[name] = value; + } + } + + dojo.fieldToObject = function(/*DOMNode||String*/ inputNode){ + // summary: + // Serialize a form field to a JavaScript object. + // + // description: + // Returns the value encoded in a form field as + // as a string or an array of strings. Disabled form elements + // and unchecked radio and checkboxes are skipped. Multi-select + // elements are returned as an array of string values. + var ret = null; + var item = _d.byId(inputNode); + if(item){ + var _in = item.name; + var type = (item.type||"").toLowerCase(); + if(_in && type && !item.disabled){ + if(type == "radio" || type == "checkbox"){ + if(item.checked){ ret = item.value } + }else if(item.multiple){ + ret = []; + _d.query("option", item).forEach(function(opt){ + if(opt.selected){ + ret.push(opt.value); + } + }); + }else{ + ret = item.value; + } + } + } + return ret; // Object + } + + dojo.formToObject = function(/*DOMNode||String*/ formNode){ + // summary: + // Serialize a form node to a JavaScript object. + // description: + // Returns the values encoded in an HTML form as + // string properties in an object which it then returns. Disabled form + // elements, buttons, and other non-value form elements are skipped. + // Multi-select elements are returned as an array of string values. + // + // example: + // This form: + // | <form id="test_form"> + // | <input type="text" name="blah" value="blah"> + // | <input type="text" name="no_value" value="blah" disabled> + // | <input type="button" name="no_value2" value="blah"> + // | <select type="select" multiple name="multi" size="5"> + // | <option value="blah">blah</option> + // | <option value="thud" selected>thud</option> + // | <option value="thonk" selected>thonk</option> + // | </select> + // | </form> + // + // yields this object structure as the result of a call to + // formToObject(): + // + // | { + // | blah: "blah", + // | multi: [ + // | "thud", + // | "thonk" + // | ] + // | }; + + var ret = {}; + var exclude = "file|submit|image|reset|button|"; + _d.forEach(dojo.byId(formNode).elements, function(item){ + var _in = item.name; + var type = (item.type||"").toLowerCase(); + if(_in && type && exclude.indexOf(type) == -1 && !item.disabled){ + setValue(ret, _in, _d.fieldToObject(item)); + if(type == "image"){ + ret[_in+".x"] = ret[_in+".y"] = ret[_in].x = ret[_in].y = 0; + } + } + }); + return ret; // Object + } + + dojo.objectToQuery = function(/*Object*/ map){ + // summary: + // takes a name/value mapping object and returns a string representing + // a URL-encoded version of that object. + // example: + // this object: + // + // | { + // | blah: "blah", + // | multi: [ + // | "thud", + // | "thonk" + // | ] + // | }; + // + // yields the following query string: + // + // | "blah=blah&multi=thud&multi=thonk" + + // FIXME: need to implement encodeAscii!! + var enc = encodeURIComponent; + var pairs = []; + var backstop = {}; + for(var name in map){ + var value = map[name]; + if(value != backstop[name]){ + var assign = enc(name) + "="; + if(_d.isArray(value)){ + for(var i=0; i < value.length; i++){ + pairs.push(assign + enc(value[i])); + } + }else{ + pairs.push(assign + enc(value)); + } + } + } + return pairs.join("&"); // String + } + + dojo.formToQuery = function(/*DOMNode||String*/ formNode){ + // summary: + // Returns a URL-encoded string representing the form passed as either a + // node or string ID identifying the form to serialize + return _d.objectToQuery(_d.formToObject(formNode)); // String + } + + dojo.formToJson = function(/*DOMNode||String*/ formNode, /*Boolean?*/prettyPrint){ + // summary: + // Create a serialized JSON string from a form node or string + // ID identifying the form to serialize + return _d.toJson(_d.formToObject(formNode), prettyPrint); // String + } + + dojo.queryToObject = function(/*String*/ str){ + // summary: + // Create an object representing a de-serialized query section of a + // URL. Query keys with multiple values are returned in an array. + // + // example: + // This string: + // + // | "foo=bar&foo=baz&thinger=%20spaces%20=blah&zonk=blarg&" + // + // results in this object structure: + // + // | { + // | foo: [ "bar", "baz" ], + // | thinger: " spaces =blah", + // | zonk: "blarg" + // | } + // + // Note that spaces and other urlencoded entities are correctly + // handled. + + // FIXME: should we grab the URL string if we're not passed one? + var ret = {}; + var qp = str.split("&"); + var dec = decodeURIComponent; + _d.forEach(qp, function(item){ + if(item.length){ + var parts = item.split("="); + var name = dec(parts.shift()); + var val = dec(parts.join("=")); + if(typeof ret[name] == "string"){ // inline'd type check + ret[name] = [ret[name]]; + } + + if(_d.isArray(ret[name])){ + ret[name].push(val); + }else{ + ret[name] = val; + } + } + }); + return ret; // Object + } + + // need to block async callbacks from snatching this thread as the result + // of an async callback might call another sync XHR, this hangs khtml forever + // must checked by watchInFlight() + + dojo._blockAsync = false; + + // MOW: remove dojo._contentHandlers alias in 2.0 + var handlers = _d._contentHandlers = dojo.contentHandlers = { + // summary: + // A map of availble XHR transport handle types. Name matches the + // `handleAs` attribute passed to XHR calls. + // + // description: + // A map of availble XHR transport handle types. Name matches the + // `handleAs` attribute passed to XHR calls. Each contentHandler is + // called, passing the xhr object for manipulation. The return value + // from the contentHandler will be passed to the `load` or `handle` + // functions defined in the original xhr call. + // + // example: + // Creating a custom content-handler: + // | dojo.contentHandlers.makeCaps = function(xhr){ + // | return xhr.responseText.toUpperCase(); + // | } + // | // and later: + // | dojo.xhrGet({ + // | url:"foo.txt", + // | handleAs:"makeCaps", + // | load: function(data){ /* data is a toUpper version of foo.txt */ } + // | }); + + text: function(xhr){ + // summary: A contentHandler which simply returns the plaintext response data + return xhr.responseText; + }, + json: function(xhr){ + // summary: A contentHandler which returns a JavaScript object created from the response data + return _d.fromJson(xhr.responseText || null); + }, + "json-comment-filtered": function(xhr){ + // summary: A contentHandler which expects comment-filtered JSON. + // description: + // A contentHandler which expects comment-filtered JSON. + // the json-comment-filtered option was implemented to prevent + // "JavaScript Hijacking", but it is less secure than standard JSON. Use + // standard JSON instead. JSON prefixing can be used to subvert hijacking. + // + // Will throw a notice suggesting to use application/json mimetype, as + // json-commenting can introduce security issues. To decrease the chances of hijacking, + // use the standard `json` contentHandler, and prefix your "JSON" with: {}&& + // + // use djConfig.useCommentedJson = true to turn off the notice + if(!dojo.config.useCommentedJson){ + console.warn("Consider using the standard mimetype:application/json." + + " json-commenting can introduce security issues. To" + + " decrease the chances of hijacking, use the standard the 'json' handler and" + + " prefix your json with: {}&&\n" + + "Use djConfig.useCommentedJson=true to turn off this message."); + } + + var value = xhr.responseText; + var cStartIdx = value.indexOf("\/*"); + var cEndIdx = value.lastIndexOf("*\/"); + if(cStartIdx == -1 || cEndIdx == -1){ + throw new Error("JSON was not comment filtered"); + } + return _d.fromJson(value.substring(cStartIdx+2, cEndIdx)); + }, + javascript: function(xhr){ + // summary: A contentHandler which evaluates the response data, expecting it to be valid JavaScript + + // FIXME: try Moz and IE specific eval variants? + return _d.eval(xhr.responseText); + }, + xml: function(xhr){ + // summary: A contentHandler returning an XML Document parsed from the response data + var result = xhr.responseXML; + if(_d.isIE && (!result || !result.documentElement)){ + //WARNING: this branch used by the xml handling in dojo.io.iframe, + //so be sure to test dojo.io.iframe if making changes below. + var ms = function(n){ return "MSXML" + n + ".DOMDocument"; } + var dp = ["Microsoft.XMLDOM", ms(6), ms(4), ms(3), ms(2)]; + _d.some(dp, function(p){ + try{ + var dom = new ActiveXObject(p); + dom.async = false; + dom.loadXML(xhr.responseText); + result = dom; + }catch(e){ return false; } + return true; + }); + } + return result; // DOMDocument + }, + "json-comment-optional": function(xhr){ + // summary: A contentHandler which checks the presence of comment-filtered JSON and + // alternates between the `json` and `json-comment-filtered` contentHandlers. + if(xhr.responseText && /^[^{\[]*\/\*/.test(xhr.responseText)){ + return handlers["json-comment-filtered"](xhr); + }else{ + return handlers["json"](xhr); + } + } + }; + + /*===== + dojo.__IoArgs = function(){ + // url: String + // URL to server endpoint. + // content: Object? + // Contains properties with string values. These + // properties will be serialized as name1=value2 and + // passed in the request. + // timeout: Integer? + // Milliseconds to wait for the response. If this time + // passes, the then error callbacks are called. + // form: DOMNode? + // DOM node for a form. Used to extract the form values + // and send to the server. + // preventCache: Boolean? + // Default is false. If true, then a + // "dojo.preventCache" parameter is sent in the request + // with a value that changes with each request + // (timestamp). Useful only with GET-type requests. + // handleAs: String? + // Acceptable values depend on the type of IO + // transport (see specific IO calls for more information). + // rawBody: String? + // Sets the raw body for an HTTP request. If this is used, then the content + // property is ignored. This is mostly useful for HTTP methods that have + // a body to their requests, like PUT or POST. This property can be used instead + // of postData and putData for dojo.rawXhrPost and dojo.rawXhrPut respectively. + // ioPublish: Boolean? + // Set this explicitly to false to prevent publishing of topics related to + // IO operations. Otherwise, if djConfig.ioPublish is set to true, topics + // will be published via dojo.publish for different phases of an IO operation. + // See dojo.__IoPublish for a list of topics that are published. + // load: Function? + // This function will be + // called on a successful HTTP response code. + // error: Function? + // This function will + // be called when the request fails due to a network or server error, the url + // is invalid, etc. It will also be called if the load or handle callback throws an + // exception, unless djConfig.debugAtAllCosts is true. This allows deployed applications + // to continue to run even when a logic error happens in the callback, while making + // it easier to troubleshoot while in debug mode. + // handle: Function? + // This function will + // be called at the end of every request, whether or not an error occurs. + this.url = url; + this.content = content; + this.timeout = timeout; + this.form = form; + this.preventCache = preventCache; + this.handleAs = handleAs; + this.ioPublish = ioPublish; + this.load = function(response, ioArgs){ + // ioArgs: dojo.__IoCallbackArgs + // Provides additional information about the request. + // response: Object + // The response in the format as defined with handleAs. + } + this.error = function(response, ioArgs){ + // ioArgs: dojo.__IoCallbackArgs + // Provides additional information about the request. + // response: Object + // The response in the format as defined with handleAs. + } + this.handle = function(loadOrError, response, ioArgs){ + // loadOrError: String + // Provides a string that tells you whether this function + // was called because of success (load) or failure (error). + // response: Object + // The response in the format as defined with handleAs. + // ioArgs: dojo.__IoCallbackArgs + // Provides additional information about the request. + } + } + =====*/ + + /*===== + dojo.__IoCallbackArgs = function(args, xhr, url, query, handleAs, id, canDelete, json){ + // args: Object + // the original object argument to the IO call. + // xhr: XMLHttpRequest + // For XMLHttpRequest calls only, the + // XMLHttpRequest object that was used for the + // request. + // url: String + // The final URL used for the call. Many times it + // will be different than the original args.url + // value. + // query: String + // For non-GET requests, the + // name1=value1&name2=value2 parameters sent up in + // the request. + // handleAs: String + // The final indicator on how the response will be + // handled. + // id: String + // For dojo.io.script calls only, the internal + // script ID used for the request. + // canDelete: Boolean + // For dojo.io.script calls only, indicates + // whether the script tag that represents the + // request can be deleted after callbacks have + // been called. Used internally to know when + // cleanup can happen on JSONP-type requests. + // json: Object + // For dojo.io.script calls only: holds the JSON + // response for JSONP-type requests. Used + // internally to hold on to the JSON responses. + // You should not need to access it directly -- + // the same object should be passed to the success + // callbacks directly. + this.args = args; + this.xhr = xhr; + this.url = url; + this.query = query; + this.handleAs = handleAs; + this.id = id; + this.canDelete = canDelete; + this.json = json; + } + =====*/ + + + /*===== + dojo.__IoPublish = function(){ + // summary: + // This is a list of IO topics that can be published + // if djConfig.ioPublish is set to true. IO topics can be + // published for any Input/Output, network operation. So, + // dojo.xhr, dojo.io.script and dojo.io.iframe can all + // trigger these topics to be published. + // start: String + // "/dojo/io/start" is sent when there are no outstanding IO + // requests, and a new IO request is started. No arguments + // are passed with this topic. + // send: String + // "/dojo/io/send" is sent whenever a new IO request is started. + // It passes the dojo.Deferred for the request with the topic. + // load: String + // "/dojo/io/load" is sent whenever an IO request has loaded + // successfully. It passes the response and the dojo.Deferred + // for the request with the topic. + // error: String + // "/dojo/io/error" is sent whenever an IO request has errored. + // It passes the error and the dojo.Deferred + // for the request with the topic. + // done: String + // "/dojo/io/done" is sent whenever an IO request has completed, + // either by loading or by erroring. It passes the error and + // the dojo.Deferred for the request with the topic. + // stop: String + // "/dojo/io/stop" is sent when all outstanding IO requests have + // finished. No arguments are passed with this topic. + this.start = "/dojo/io/start"; + this.send = "/dojo/io/send"; + this.load = "/dojo/io/load"; + this.error = "/dojo/io/error"; + this.done = "/dojo/io/done"; + this.stop = "/dojo/io/stop"; + } + =====*/ + + + dojo._ioSetArgs = function(/*dojo.__IoArgs*/args, + /*Function*/canceller, + /*Function*/okHandler, + /*Function*/errHandler){ + // summary: + // sets up the Deferred and ioArgs property on the Deferred so it + // can be used in an io call. + // args: + // The args object passed into the public io call. Recognized properties on + // the args object are: + // canceller: + // The canceller function used for the Deferred object. The function + // will receive one argument, the Deferred object that is related to the + // canceller. + // okHandler: + // The first OK callback to be registered with Deferred. It has the opportunity + // to transform the OK response. It will receive one argument -- the Deferred + // object returned from this function. + // errHandler: + // The first error callback to be registered with Deferred. It has the opportunity + // to do cleanup on an error. It will receive two arguments: error (the + // Error object) and dfd, the Deferred object returned from this function. + + var ioArgs = {args: args, url: args.url}; + + //Get values from form if requestd. + var formObject = null; + if(args.form){ + var form = _d.byId(args.form); + //IE requires going through getAttributeNode instead of just getAttribute in some form cases, + //so use it for all. See #2844 + var actnNode = form.getAttributeNode("action"); + ioArgs.url = ioArgs.url || (actnNode ? actnNode.value : null); + formObject = _d.formToObject(form); + } + + // set up the query params + var miArgs = [{}]; + + if(formObject){ + // potentially over-ride url-provided params w/ form values + miArgs.push(formObject); + } + if(args.content){ + // stuff in content over-rides what's set by form + miArgs.push(args.content); + } + if(args.preventCache){ + miArgs.push({"dojo.preventCache": new Date().valueOf()}); + } + ioArgs.query = _d.objectToQuery(_d.mixin.apply(null, miArgs)); + + // .. and the real work of getting the deferred in order, etc. + ioArgs.handleAs = args.handleAs || "text"; + var d = new _d.Deferred(canceller); + d.addCallbacks(okHandler, function(error){ + return errHandler(error, d); + }); + + //Support specifying load, error and handle callback functions from the args. + //For those callbacks, the "this" object will be the args object. + //The callbacks will get the deferred result value as the + //first argument and the ioArgs object as the second argument. + var ld = args.load; + if(ld && _d.isFunction(ld)){ + d.addCallback(function(value){ + return ld.call(args, value, ioArgs); + }); + } + var err = args.error; + if(err && _d.isFunction(err)){ + d.addErrback(function(value){ + return err.call(args, value, ioArgs); + }); + } + var handle = args.handle; + if(handle && _d.isFunction(handle)){ + d.addBoth(function(value){ + return handle.call(args, value, ioArgs); + }); + } + + //Plug in topic publishing, if dojo.publish is loaded. + if(cfg.ioPublish && _d.publish && ioArgs.args.ioPublish !== false){ + d.addCallbacks( + function(res){ + _d.publish("/dojo/io/load", [d, res]); + return res; + }, + function(res){ + _d.publish("/dojo/io/error", [d, res]); + return res; + } + ); + d.addBoth(function(res){ + _d.publish("/dojo/io/done", [d, res]); + return res; + }); + } + + d.ioArgs = ioArgs; + + // FIXME: need to wire up the xhr object's abort method to something + // analagous in the Deferred + return d; + } + + var _deferredCancel = function(/*Deferred*/dfd){ + // summary: canceller function for dojo._ioSetArgs call. + + dfd.canceled = true; + var xhr = dfd.ioArgs.xhr; + var _at = typeof xhr.abort; + if(_at == "function" || _at == "object" || _at == "unknown"){ + xhr.abort(); + } + var err = dfd.ioArgs.error; + if(!err){ + err = new Error("xhr cancelled"); + err.dojoType="cancel"; + } + return err; + } + var _deferredOk = function(/*Deferred*/dfd){ + // summary: okHandler function for dojo._ioSetArgs call. + + var ret = handlers[dfd.ioArgs.handleAs](dfd.ioArgs.xhr); + return ret === undefined ? null : ret; + } + var _deferError = function(/*Error*/error, /*Deferred*/dfd){ + // summary: errHandler function for dojo._ioSetArgs call. + + if(!dfd.ioArgs.args.failOk){ + console.error(error); + } + return error; + } + + // avoid setting a timer per request. It degrades performance on IE + // something fierece if we don't use unified loops. + var _inFlightIntvl = null; + var _inFlight = []; + + + //Use a separate count for knowing if we are starting/stopping io calls. + //Cannot use _inFlight.length since it can change at a different time than + //when we want to do this kind of test. We only want to decrement the count + //after a callback/errback has finished, since the callback/errback should be + //considered as part of finishing a request. + var _pubCount = 0; + var _checkPubCount = function(dfd){ + if(_pubCount <= 0){ + _pubCount = 0; + if(cfg.ioPublish && _d.publish && (!dfd || dfd && dfd.ioArgs.args.ioPublish !== false)){ + _d.publish("/dojo/io/stop"); + } + } + }; + + var _watchInFlight = function(){ + //summary: + // internal method that checks each inflight XMLHttpRequest to see + // if it has completed or if the timeout situation applies. + + var now = (new Date()).getTime(); + // make sure sync calls stay thread safe, if this callback is called + // during a sync call and this results in another sync call before the + // first sync call ends the browser hangs + if(!_d._blockAsync){ + // we need manual loop because we often modify _inFlight (and therefore 'i') while iterating + // note: the second clause is an assigment on purpose, lint may complain + for(var i = 0, tif; i < _inFlight.length && (tif = _inFlight[i]); i++){ + var dfd = tif.dfd; + var func = function(){ + if(!dfd || dfd.canceled || !tif.validCheck(dfd)){ + _inFlight.splice(i--, 1); + _pubCount -= 1; + }else if(tif.ioCheck(dfd)){ + _inFlight.splice(i--, 1); + tif.resHandle(dfd); + _pubCount -= 1; + }else if(dfd.startTime){ + //did we timeout? + if(dfd.startTime + (dfd.ioArgs.args.timeout || 0) < now){ + _inFlight.splice(i--, 1); + var err = new Error("timeout exceeded"); + err.dojoType = "timeout"; + dfd.errback(err); + //Cancel the request so the io module can do appropriate cleanup. + dfd.cancel(); + _pubCount -= 1; + } + } + }; + if(dojo.config.debugAtAllCosts){ + func.call(this); + }else{ + try{ + func.call(this); + }catch(e){ + dfd.errback(e); + } + } + } + } + + _checkPubCount(dfd); + + if(!_inFlight.length){ + clearInterval(_inFlightIntvl); + _inFlightIntvl = null; + return; + } + } + + dojo._ioCancelAll = function(){ + //summary: Cancels all pending IO requests, regardless of IO type + //(xhr, script, iframe). + try{ + _d.forEach(_inFlight, function(i){ + try{ + i.dfd.cancel(); + }catch(e){/*squelch*/} + }); + }catch(e){/*squelch*/} + } + + //Automatically call cancel all io calls on unload + //in IE for trac issue #2357. + if(_d.isIE){ + _d.addOnWindowUnload(_d._ioCancelAll); + } + + _d._ioNotifyStart = function(/*Deferred*/dfd){ + // summary: + // If dojo.publish is available, publish topics + // about the start of a request queue and/or the + // the beginning of request. + // description: + // Used by IO transports. An IO transport should + // call this method before making the network connection. + if(cfg.ioPublish && _d.publish && dfd.ioArgs.args.ioPublish !== false){ + if(!_pubCount){ + _d.publish("/dojo/io/start"); + } + _pubCount += 1; + _d.publish("/dojo/io/send", [dfd]); + } + } + + _d._ioWatch = function(dfd, validCheck, ioCheck, resHandle){ + // summary: + // Watches the io request represented by dfd to see if it completes. + // dfd: Deferred + // The Deferred object to watch. + // validCheck: Function + // Function used to check if the IO request is still valid. Gets the dfd + // object as its only argument. + // ioCheck: Function + // Function used to check if basic IO call worked. Gets the dfd + // object as its only argument. + // resHandle: Function + // Function used to process response. Gets the dfd + // object as its only argument. + var args = dfd.ioArgs.args; + if(args.timeout){ + dfd.startTime = (new Date()).getTime(); + } + + _inFlight.push({dfd: dfd, validCheck: validCheck, ioCheck: ioCheck, resHandle: resHandle}); + if(!_inFlightIntvl){ + _inFlightIntvl = setInterval(_watchInFlight, 50); + } + // handle sync requests + //A weakness: async calls in flight + //could have their handlers called as part of the + //_watchInFlight call, before the sync's callbacks + // are called. + if(args.sync){ + _watchInFlight(); + } + } + + var _defaultContentType = "application/x-www-form-urlencoded"; + + var _validCheck = function(/*Deferred*/dfd){ + return dfd.ioArgs.xhr.readyState; //boolean + } + var _ioCheck = function(/*Deferred*/dfd){ + return 4 == dfd.ioArgs.xhr.readyState; //boolean + } + var _resHandle = function(/*Deferred*/dfd){ + var xhr = dfd.ioArgs.xhr; + if(_d._isDocumentOk(xhr)){ + dfd.callback(dfd); + }else{ + var err = new Error("Unable to load " + dfd.ioArgs.url + " status:" + xhr.status); + err.status = xhr.status; + err.responseText = xhr.responseText; + dfd.errback(err); + } + } + + dojo._ioAddQueryToUrl = function(/*dojo.__IoCallbackArgs*/ioArgs){ + //summary: Adds query params discovered by the io deferred construction to the URL. + //Only use this for operations which are fundamentally GET-type operations. + if(ioArgs.query.length){ + ioArgs.url += (ioArgs.url.indexOf("?") == -1 ? "?" : "&") + ioArgs.query; + ioArgs.query = null; + } + } + + /*===== + dojo.declare("dojo.__XhrArgs", dojo.__IoArgs, { + constructor: function(){ + // summary: + // In addition to the properties listed for the dojo._IoArgs type, + // the following properties are allowed for dojo.xhr* methods. + // handleAs: String? + // Acceptable values are: text (default), json, json-comment-optional, + // json-comment-filtered, javascript, xml. See `dojo.contentHandlers` + // sync: Boolean? + // false is default. Indicates whether the request should + // be a synchronous (blocking) request. + // headers: Object? + // Additional HTTP headers to send in the request. + // failOk: Boolean? + // false is default. Indicates whether a request should be + // allowed to fail (and therefore no console error message in + // the event of a failure) + this.handleAs = handleAs; + this.sync = sync; + this.headers = headers; + this.failOk = failOk; + } + }); + =====*/ + + dojo.xhr = function(/*String*/ method, /*dojo.__XhrArgs*/ args, /*Boolean?*/ hasBody){ + // summary: + // Sends an HTTP request with the given method. + // description: + // Sends an HTTP request with the given method. + // See also dojo.xhrGet(), xhrPost(), xhrPut() and dojo.xhrDelete() for shortcuts + // for those HTTP methods. There are also methods for "raw" PUT and POST methods + // via dojo.rawXhrPut() and dojo.rawXhrPost() respectively. + // method: + // HTTP method to be used, such as GET, POST, PUT, DELETE. Should be uppercase. + // hasBody: + // If the request has an HTTP body, then pass true for hasBody. + + //Make the Deferred object for this xhr request. + var dfd = _d._ioSetArgs(args, _deferredCancel, _deferredOk, _deferError); + var ioArgs = dfd.ioArgs; + + //Pass the args to _xhrObj, to allow alternate XHR calls based specific calls, like + //the one used for iframe proxies. + var xhr = ioArgs.xhr = _d._xhrObj(ioArgs.args); + //If XHR factory fails, cancel the deferred. + if(!xhr){ + dfd.cancel(); + return dfd; + } + + //Allow for specifying the HTTP body completely. + if("postData" in args){ + ioArgs.query = args.postData; + }else if("putData" in args){ + ioArgs.query = args.putData; + }else if("rawBody" in args){ + ioArgs.query = args.rawBody; + }else if((arguments.length > 2 && !hasBody) || "POST|PUT".indexOf(method.toUpperCase()) == -1){ + //Check for hasBody being passed. If no hasBody, + //then only append query string if not a POST or PUT request. + _d._ioAddQueryToUrl(ioArgs); + } + + // IE 6 is a steaming pile. It won't let you call apply() on the native function (xhr.open). + // workaround for IE6's apply() "issues" + xhr.open(method, ioArgs.url, args.sync !== true, args.user || undefined, args.password || undefined); + if(args.headers){ + for(var hdr in args.headers){ + if(hdr.toLowerCase() === "content-type" && !args.contentType){ + args.contentType = args.headers[hdr]; + }else if(args.headers[hdr]){ + //Only add header if it has a value. This allows for instnace, skipping + //insertion of X-Requested-With by specifying empty value. + xhr.setRequestHeader(hdr, args.headers[hdr]); + } + } + } + // FIXME: is this appropriate for all content types? + xhr.setRequestHeader("Content-Type", args.contentType || _defaultContentType); + if(!args.headers || !("X-Requested-With" in args.headers)){ + xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest"); + } + // FIXME: set other headers here! + _d._ioNotifyStart(dfd); + if(dojo.config.debugAtAllCosts){ + xhr.send(ioArgs.query); + }else{ + try{ + xhr.send(ioArgs.query); + }catch(e){ + ioArgs.error = e; + dfd.cancel(); + } + } + _d._ioWatch(dfd, _validCheck, _ioCheck, _resHandle); + xhr = null; + return dfd; // dojo.Deferred + } + + dojo.xhrGet = function(/*dojo.__XhrArgs*/ args){ + // summary: + // Sends an HTTP GET request to the server. + return _d.xhr("GET", args); // dojo.Deferred + } + + dojo.rawXhrPost = dojo.xhrPost = function(/*dojo.__XhrArgs*/ args){ + // summary: + // Sends an HTTP POST request to the server. In addtion to the properties + // listed for the dojo.__XhrArgs type, the following property is allowed: + // postData: + // String. Send raw data in the body of the POST request. + return _d.xhr("POST", args, true); // dojo.Deferred + } + + dojo.rawXhrPut = dojo.xhrPut = function(/*dojo.__XhrArgs*/ args){ + // summary: + // Sends an HTTP PUT request to the server. In addtion to the properties + // listed for the dojo.__XhrArgs type, the following property is allowed: + // putData: + // String. Send raw data in the body of the PUT request. + return _d.xhr("PUT", args, true); // dojo.Deferred + } + + dojo.xhrDelete = function(/*dojo.__XhrArgs*/ args){ + // summary: + // Sends an HTTP DELETE request to the server. + return _d.xhr("DELETE", args); //dojo.Deferred + } + + /* + dojo.wrapForm = function(formNode){ + //summary: + // A replacement for FormBind, but not implemented yet. + + // FIXME: need to think harder about what extensions to this we might + // want. What should we allow folks to do w/ this? What events to + // set/send? + throw new Error("dojo.wrapForm not yet implemented"); + } + */ +})(); + +} + +if(!dojo._hasResource["dojo._base.fx"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo._base.fx"] = true; +dojo.provide("dojo._base.fx"); + + + + + +/* + Animation loosely package based on Dan Pupius' work, contributed under CLA: + http://pupius.co.uk/js/Toolkit.Drawing.js +*/ +(function(){ + var d = dojo; + var _mixin = d._mixin; + + dojo._Line = function(/*int*/ start, /*int*/ end){ + // summary: + // dojo._Line is the object used to generate values from a start value + // to an end value + // start: int + // Beginning value for range + // end: int + // Ending value for range + this.start = start; + this.end = end; + }; + + dojo._Line.prototype.getValue = function(/*float*/ n){ + // summary: Returns the point on the line + // n: a floating point number greater than 0 and less than 1 + return ((this.end - this.start) * n) + this.start; // Decimal + }; + + dojo.Animation = function(args){ + // summary: + // A generic animation class that fires callbacks into its handlers + // object at various states. + // description: + // A generic animation class that fires callbacks into its handlers + // object at various states. Nearly all dojo animation functions + // return an instance of this method, usually without calling the + // .play() method beforehand. Therefore, you will likely need to + // call .play() on instances of `dojo.Animation` when one is + // returned. + // args: Object + // The 'magic argument', mixing all the properties into this + // animation instance. + + _mixin(this, args); + if(d.isArray(this.curve)){ + this.curve = new d._Line(this.curve[0], this.curve[1]); + } + + }; + + // Alias to drop come 2.0: + d._Animation = d.Animation; + + d.extend(dojo.Animation, { + // duration: Integer + // The time in milliseonds the animation will take to run + duration: 350, + + /*===== + // curve: dojo._Line|Array + // A two element array of start and end values, or a `dojo._Line` instance to be + // used in the Animation. + curve: null, + + // easing: Function? + // A Function to adjust the acceleration (or deceleration) of the progress + // across a dojo._Line + easing: null, + =====*/ + + // repeat: Integer? + // The number of times to loop the animation + repeat: 0, + + // rate: Integer? + // the time in milliseconds to wait before advancing to next frame + // (used as a fps timer: 1000/rate = fps) + rate: 20 /* 50 fps */, + + /*===== + // delay: Integer? + // The time in milliseconds to wait before starting animation after it + // has been .play()'ed + delay: null, + + // beforeBegin: Event? + // Synthetic event fired before a dojo.Animation begins playing (synchronous) + beforeBegin: null, + + // onBegin: Event? + // Synthetic event fired as a dojo.Animation begins playing (useful?) + onBegin: null, + + // onAnimate: Event? + // Synthetic event fired at each interval of a `dojo.Animation` + onAnimate: null, + + // onEnd: Event? + // Synthetic event fired after the final frame of a `dojo.Animation` + onEnd: null, + + // onPlay: Event? + // Synthetic event fired any time a `dojo.Animation` is play()'ed + onPlay: null, + + // onPause: Event? + // Synthetic event fired when a `dojo.Animation` is paused + onPause: null, + + // onStop: Event + // Synthetic event fires when a `dojo.Animation` is stopped + onStop: null, + + =====*/ + + _percent: 0, + _startRepeatCount: 0, + + _getStep: function(){ + var _p = this._percent, + _e = this.easing + ; + return _e ? _e(_p) : _p; + }, + _fire: function(/*Event*/ evt, /*Array?*/ args){ + // summary: + // Convenience function. Fire event "evt" and pass it the + // arguments specified in "args". + // description: + // Convenience function. Fire event "evt" and pass it the + // arguments specified in "args". + // Fires the callback in the scope of the `dojo.Animation` + // instance. + // evt: + // The event to fire. + // args: + // The arguments to pass to the event. + var a = args||[]; + if(this[evt]){ + if(d.config.debugAtAllCosts){ + this[evt].apply(this, a); + }else{ + try{ + this[evt].apply(this, a); + }catch(e){ + // squelch and log because we shouldn't allow exceptions in + // synthetic event handlers to cause the internal timer to run + // amuck, potentially pegging the CPU. I'm not a fan of this + // squelch, but hopefully logging will make it clear what's + // going on + console.error("exception in animation handler for:", evt); + console.error(e); + } + } + } + return this; // dojo.Animation + }, + + play: function(/*int?*/ delay, /*Boolean?*/ gotoStart){ + // summary: + // Start the animation. + // delay: + // How many milliseconds to delay before starting. + // gotoStart: + // If true, starts the animation from the beginning; otherwise, + // starts it from its current position. + // returns: dojo.Animation + // The instance to allow chaining. + + var _t = this; + if(_t._delayTimer){ _t._clearTimer(); } + if(gotoStart){ + _t._stopTimer(); + _t._active = _t._paused = false; + _t._percent = 0; + }else if(_t._active && !_t._paused){ + return _t; + } + + _t._fire("beforeBegin", [_t.node]); + + var de = delay || _t.delay, + _p = dojo.hitch(_t, "_play", gotoStart); + + if(de > 0){ + _t._delayTimer = setTimeout(_p, de); + return _t; + } + _p(); + return _t; + }, + + _play: function(gotoStart){ + var _t = this; + if(_t._delayTimer){ _t._clearTimer(); } + _t._startTime = new Date().valueOf(); + if(_t._paused){ + _t._startTime -= _t.duration * _t._percent; + } + + _t._active = true; + _t._paused = false; + var value = _t.curve.getValue(_t._getStep()); + if(!_t._percent){ + if(!_t._startRepeatCount){ + _t._startRepeatCount = _t.repeat; + } + _t._fire("onBegin", [value]); + } + + _t._fire("onPlay", [value]); + + _t._cycle(); + return _t; // dojo.Animation + }, + + pause: function(){ + // summary: Pauses a running animation. + var _t = this; + if(_t._delayTimer){ _t._clearTimer(); } + _t._stopTimer(); + if(!_t._active){ return _t; /*dojo.Animation*/ } + _t._paused = true; + _t._fire("onPause", [_t.curve.getValue(_t._getStep())]); + return _t; // dojo.Animation + }, + + gotoPercent: function(/*Decimal*/ percent, /*Boolean?*/ andPlay){ + // summary: + // Sets the progress of the animation. + // percent: + // A percentage in decimal notation (between and including 0.0 and 1.0). + // andPlay: + // If true, play the animation after setting the progress. + var _t = this; + _t._stopTimer(); + _t._active = _t._paused = true; + _t._percent = percent; + if(andPlay){ _t.play(); } + return _t; // dojo.Animation + }, + + stop: function(/*boolean?*/ gotoEnd){ + // summary: Stops a running animation. + // gotoEnd: If true, the animation will end. + var _t = this; + if(_t._delayTimer){ _t._clearTimer(); } + if(!_t._timer){ return _t; /* dojo.Animation */ } + _t._stopTimer(); + if(gotoEnd){ + _t._percent = 1; + } + _t._fire("onStop", [_t.curve.getValue(_t._getStep())]); + _t._active = _t._paused = false; + return _t; // dojo.Animation + }, + + status: function(){ + // summary: + // Returns a string token representation of the status of + // the animation, one of: "paused", "playing", "stopped" + if(this._active){ + return this._paused ? "paused" : "playing"; // String + } + return "stopped"; // String + }, + + _cycle: function(){ + var _t = this; + if(_t._active){ + var curr = new Date().valueOf(); + var step = (curr - _t._startTime) / (_t.duration); + + if(step >= 1){ + step = 1; + } + _t._percent = step; + + // Perform easing + if(_t.easing){ + step = _t.easing(step); + } + + _t._fire("onAnimate", [_t.curve.getValue(step)]); + + if(_t._percent < 1){ + _t._startTimer(); + }else{ + _t._active = false; + + if(_t.repeat > 0){ + _t.repeat--; + _t.play(null, true); + }else if(_t.repeat == -1){ + _t.play(null, true); + }else{ + if(_t._startRepeatCount){ + _t.repeat = _t._startRepeatCount; + _t._startRepeatCount = 0; + } + } + _t._percent = 0; + _t._fire("onEnd", [_t.node]); + !_t.repeat && _t._stopTimer(); + } + } + return _t; // dojo.Animation + }, + + _clearTimer: function(){ + // summary: Clear the play delay timer + clearTimeout(this._delayTimer); + delete this._delayTimer; + } + + }); + + // the local timer, stubbed into all Animation instances + var ctr = 0, + timer = null, + runner = { + run: function(){} + }; + + d.extend(d.Animation, { + + _startTimer: function(){ + if(!this._timer){ + this._timer = d.connect(runner, "run", this, "_cycle"); + ctr++; + } + if(!timer){ + timer = setInterval(d.hitch(runner, "run"), this.rate); + } + }, + + _stopTimer: function(){ + if(this._timer){ + d.disconnect(this._timer); + this._timer = null; + ctr--; + } + if(ctr <= 0){ + clearInterval(timer); + timer = null; + ctr = 0; + } + } + + }); + + var _makeFadeable = + d.isIE ? function(node){ + // only set the zoom if the "tickle" value would be the same as the + // default + var ns = node.style; + // don't set the width to auto if it didn't already cascade that way. + // We don't want to f anyones designs + if(!ns.width.length && d.style(node, "width") == "auto"){ + ns.width = "auto"; + } + } : + function(){}; + + dojo._fade = function(/*Object*/ args){ + // summary: + // Returns an animation that will fade the node defined by + // args.node from the start to end values passed (args.start + // args.end) (end is mandatory, start is optional) + + args.node = d.byId(args.node); + var fArgs = _mixin({ properties: {} }, args), + props = (fArgs.properties.opacity = {}); + + props.start = !("start" in fArgs) ? + function(){ + return +d.style(fArgs.node, "opacity")||0; + } : fArgs.start; + props.end = fArgs.end; + + var anim = d.animateProperty(fArgs); + d.connect(anim, "beforeBegin", d.partial(_makeFadeable, fArgs.node)); + + return anim; // dojo.Animation + }; + + /*===== + dojo.__FadeArgs = function(node, duration, easing){ + // node: DOMNode|String + // The node referenced in the animation + // duration: Integer? + // Duration of the animation in milliseconds. + // easing: Function? + // An easing function. + this.node = node; + this.duration = duration; + this.easing = easing; + } + =====*/ + + dojo.fadeIn = function(/*dojo.__FadeArgs*/ args){ + // summary: + // Returns an animation that will fade node defined in 'args' from + // its current opacity to fully opaque. + return d._fade(_mixin({ end: 1 }, args)); // dojo.Animation + }; + + dojo.fadeOut = function(/*dojo.__FadeArgs*/ args){ + // summary: + // Returns an animation that will fade node defined in 'args' + // from its current opacity to fully transparent. + return d._fade(_mixin({ end: 0 }, args)); // dojo.Animation + }; + + dojo._defaultEasing = function(/*Decimal?*/ n){ + // summary: The default easing function for dojo.Animation(s) + return 0.5 + ((Math.sin((n + 1.5) * Math.PI)) / 2); + }; + + var PropLine = function(properties){ + // PropLine is an internal class which is used to model the values of + // an a group of CSS properties across an animation lifecycle. In + // particular, the "getValue" function handles getting interpolated + // values between start and end for a particular CSS value. + this._properties = properties; + for(var p in properties){ + var prop = properties[p]; + if(prop.start instanceof d.Color){ + // create a reusable temp color object to keep intermediate results + prop.tempColor = new d.Color(); + } + } + }; + + PropLine.prototype.getValue = function(r){ + var ret = {}; + for(var p in this._properties){ + var prop = this._properties[p], + start = prop.start; + if(start instanceof d.Color){ + ret[p] = d.blendColors(start, prop.end, r, prop.tempColor).toCss(); + }else if(!d.isArray(start)){ + ret[p] = ((prop.end - start) * r) + start + (p != "opacity" ? prop.units || "px" : 0); + } + } + return ret; + }; + + /*===== + dojo.declare("dojo.__AnimArgs", [dojo.__FadeArgs], { + // Properties: Object? + // A hash map of style properties to Objects describing the transition, + // such as the properties of dojo._Line with an additional 'units' property + properties: {} + + //TODOC: add event callbacks + }); + =====*/ + + dojo.animateProperty = function(/*dojo.__AnimArgs*/ args){ + // summary: + // Returns an animation that will transition the properties of + // node defined in `args` depending how they are defined in + // `args.properties` + // + // description: + // `dojo.animateProperty` is the foundation of most `dojo.fx` + // animations. It takes an object of "properties" corresponding to + // style properties, and animates them in parallel over a set + // duration. + // + // example: + // A simple animation that changes the width of the specified node. + // | dojo.animateProperty({ + // | node: "nodeId", + // | properties: { width: 400 }, + // | }).play(); + // Dojo figures out the start value for the width and converts the + // integer specified for the width to the more expressive but + // verbose form `{ width: { end: '400', units: 'px' } }` which you + // can also specify directly. Defaults to 'px' if ommitted. + // + // example: + // Animate width, height, and padding over 2 seconds... the + // pedantic way: + // | dojo.animateProperty({ node: node, duration:2000, + // | properties: { + // | width: { start: '200', end: '400', units:"px" }, + // | height: { start:'200', end: '400', units:"px" }, + // | paddingTop: { start:'5', end:'50', units:"px" } + // | } + // | }).play(); + // Note 'paddingTop' is used over 'padding-top'. Multi-name CSS properties + // are written using "mixed case", as the hyphen is illegal as an object key. + // + // example: + // Plug in a different easing function and register a callback for + // when the animation ends. Easing functions accept values between + // zero and one and return a value on that basis. In this case, an + // exponential-in curve. + // | dojo.animateProperty({ + // | node: "nodeId", + // | // dojo figures out the start value + // | properties: { width: { end: 400 } }, + // | easing: function(n){ + // | return (n==0) ? 0 : Math.pow(2, 10 * (n - 1)); + // | }, + // | onEnd: function(node){ + // | // called when the animation finishes. The animation + // | // target is passed to this function + // | } + // | }).play(500); // delay playing half a second + // + // example: + // Like all `dojo.Animation`s, animateProperty returns a handle to the + // Animation instance, which fires the events common to Dojo FX. Use `dojo.connect` + // to access these events outside of the Animation definiton: + // | var anim = dojo.animateProperty({ + // | node:"someId", + // | properties:{ + // | width:400, height:500 + // | } + // | }); + // | dojo.connect(anim,"onEnd", function(){ + // | console.log("animation ended"); + // | }); + // | // play the animation now: + // | anim.play(); + // + // example: + // Each property can be a function whose return value is substituted along. + // Additionally, each measurement (eg: start, end) can be a function. The node + // reference is passed direcly to callbacks. + // | dojo.animateProperty({ + // | node:"mine", + // | properties:{ + // | height:function(node){ + // | // shrink this node by 50% + // | return dojo.position(node).h / 2 + // | }, + // | width:{ + // | start:function(node){ return 100; }, + // | end:function(node){ return 200; } + // | } + // | } + // | }).play(); + // + + var n = args.node = d.byId(args.node); + if(!args.easing){ args.easing = d._defaultEasing; } + + var anim = new d.Animation(args); + d.connect(anim, "beforeBegin", anim, function(){ + var pm = {}; + for(var p in this.properties){ + // Make shallow copy of properties into pm because we overwrite + // some values below. In particular if start/end are functions + // we don't want to overwrite them or the functions won't be + // called if the animation is reused. + if(p == "width" || p == "height"){ + this.node.display = "block"; + } + var prop = this.properties[p]; + if(d.isFunction(prop)){ + prop = prop(n); + } + prop = pm[p] = _mixin({}, (d.isObject(prop) ? prop: { end: prop })); + + if(d.isFunction(prop.start)){ + prop.start = prop.start(n); + } + if(d.isFunction(prop.end)){ + prop.end = prop.end(n); + } + var isColor = (p.toLowerCase().indexOf("color") >= 0); + function getStyle(node, p){ + // dojo.style(node, "height") can return "auto" or "" on IE; this is more reliable: + var v = { height: node.offsetHeight, width: node.offsetWidth }[p]; + if(v !== undefined){ return v; } + v = d.style(node, p); + return (p == "opacity") ? +v : (isColor ? v : parseFloat(v)); + } + if(!("end" in prop)){ + prop.end = getStyle(n, p); + }else if(!("start" in prop)){ + prop.start = getStyle(n, p); + } + + if(isColor){ + prop.start = new d.Color(prop.start); + prop.end = new d.Color(prop.end); + }else{ + prop.start = (p == "opacity") ? +prop.start : parseFloat(prop.start); + } + } + this.curve = new PropLine(pm); + }); + d.connect(anim, "onAnimate", d.hitch(d, "style", anim.node)); + return anim; // dojo.Animation + }; + + dojo.anim = function( /*DOMNode|String*/ node, + /*Object*/ properties, + /*Integer?*/ duration, + /*Function?*/ easing, + /*Function?*/ onEnd, + /*Integer?*/ delay){ + // summary: + // A simpler interface to `dojo.animateProperty()`, also returns + // an instance of `dojo.Animation` but begins the animation + // immediately, unlike nearly every other Dojo animation API. + // description: + // `dojo.anim` is a simpler (but somewhat less powerful) version + // of `dojo.animateProperty`. It uses defaults for many basic properties + // and allows for positional parameters to be used in place of the + // packed "property bag" which is used for other Dojo animation + // methods. + // + // The `dojo.Animation` object returned from `dojo.anim` will be + // already playing when it is returned from this function, so + // calling play() on it again is (usually) a no-op. + // node: + // a DOM node or the id of a node to animate CSS properties on + // duration: + // The number of milliseconds over which the animation + // should run. Defaults to the global animation default duration + // (350ms). + // easing: + // An easing function over which to calculate acceleration + // and deceleration of the animation through its duration. + // A default easing algorithm is provided, but you may + // plug in any you wish. A large selection of easing algorithms + // are available in `dojo.fx.easing`. + // onEnd: + // A function to be called when the animation finishes + // running. + // delay: + // The number of milliseconds to delay beginning the + // animation by. The default is 0. + // example: + // Fade out a node + // | dojo.anim("id", { opacity: 0 }); + // example: + // Fade out a node over a full second + // | dojo.anim("id", { opacity: 0 }, 1000); + return d.animateProperty({ // dojo.Animation + node: node, + duration: duration || d.Animation.prototype.duration, + properties: properties, + easing: easing, + onEnd: onEnd + }).play(delay || 0); + }; +})(); + +} + +if(!dojo._hasResource["dojo._base.browser"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo._base.browser"] = true; +dojo.provide("dojo._base.browser"); + + + + + + + + + + +//Need this to be the last code segment in base, so do not place any +//dojo.requireIf calls in this file. Otherwise, due to how the build system +//puts all requireIf dependencies after the current file, the require calls +//could be called before all of base is defined. +dojo.forEach(dojo.config.require, function(i){ + dojo["require"](i); +}); + +} + + //INSERT dojo.i18n._preloadLocalizations HERE + + //Check if document already complete, and if so, just trigger page load + //listeners. NOTE: does not work with Firefox before 3.6. To support + //those browsers, set djConfig.afterOnLoad = true when you know Dojo is added + //after page load. Using a timeout so the rest of this + //script gets evaluated properly. This work needs to happen after the + //dojo.config.require work done in dojo._base. + if(dojo.isBrowser && (document.readyState === "complete" || dojo.config.afterOnLoad)){ + window.setTimeout(dojo._loadInit, 100); + } +})(); + diff --git a/lib/dojo/fx.js b/lib/dojo/fx.js new file mode 100644 index 000000000..39ae253fd --- /dev/null +++ b/lib/dojo/fx.js @@ -0,0 +1,252 @@ +/* + 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["dojo.fx"]){ +dojo._hasResource["dojo.fx"]=true; +dojo.provide("dojo.fx"); +dojo.require("dojo.fx.Toggler"); +(function(){ +var d=dojo,_1={_fire:function(_2,_3){ +if(this[_2]){ +this[_2].apply(this,_3||[]); +} +return this; +}}; +var _4=function(_5){ +this._index=-1; +this._animations=_5||[]; +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(_4,{_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(_6,_7){ +if(!this._current){ +this._current=this._animations[this._index=0]; +} +if(!_7&&this._current.status()=="playing"){ +return this; +} +var _8=d.connect(this._current,"beforeBegin",this,function(){ +this._fire("beforeBegin"); +}),_9=d.connect(this._current,"onBegin",this,function(_a){ +this._fire("onBegin",arguments); +}),_b=d.connect(this._current,"onPlay",this,function(_c){ +this._fire("onPlay",arguments); +d.disconnect(_8); +d.disconnect(_9); +d.disconnect(_b); +}); +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(_d){ +this._fire("onPause",arguments); +d.disconnect(e); +}); +this._current.pause(); +} +return this; +},gotoPercent:function(_e,_f){ +this.pause(); +var _10=this.duration*_e; +this._current=null; +d.some(this._animations,function(a){ +if(a.duration<=_10){ +this._current=a; +return true; +} +_10-=a.duration; +return false; +}); +if(this._current){ +this._current.gotoPercent(_10/this._current.duration,_f); +} +return this; +},stop:function(_11){ +if(this._current){ +if(_11){ +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(_4,_1); +dojo.fx.chain=function(_12){ +return new _4(_12); +}; +var _13=function(_14){ +this._animations=_14||[]; +this._connects=[]; +this._finished=0; +this.duration=0; +d.forEach(_14,function(a){ +var _15=a.duration; +if(a.delay){ +_15+=a.delay; +} +if(this.duration<_15){ +this.duration=_15; +} +this._connects.push(d.connect(a,"onEnd",this,"_onEnd")); +},this); +this._pseudoAnimation=new d.Animation({curve:[0,1],duration:this.duration}); +var _16=this; +d.forEach(["beforeBegin","onBegin","onPlay","onAnimate","onPause","onStop","onEnd"],function(evt){ +_16._connects.push(d.connect(_16._pseudoAnimation,evt,function(){ +_16._fire(evt,arguments); +})); +}); +}; +d.extend(_13,{_doAction:function(_17,_18){ +d.forEach(this._animations,function(a){ +a[_17].apply(a,_18); +}); +return this; +},_onEnd:function(){ +if(++this._finished>this._animations.length){ +this._fire("onEnd"); +} +},_call:function(_19,_1a){ +var t=this._pseudoAnimation; +t[_19].apply(t,_1a); +},play:function(_1b,_1c){ +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(_1d,_1e){ +var ms=this.duration*_1d; +d.forEach(this._animations,function(a){ +a.gotoPercent(a.duration<ms?1:(ms/a.duration),_1e); +}); +this._call("gotoPercent",arguments); +return this; +},stop:function(_1f){ +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(_13,_1); +dojo.fx.combine=function(_20){ +return new _13(_20); +}; +dojo.fx.wipeIn=function(_21){ +var _22=_21.node=d.byId(_21.node),s=_22.style,o; +var _23=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 _24=d.style(_22,"height"); +return Math.max(_24,1); +} +},end:function(){ +return _22.scrollHeight; +}}}},_21)); +d.connect(_23,"onEnd",function(){ +s.height="auto"; +s.overflow=o; +}); +return _23; +}; +dojo.fx.wipeOut=function(_25){ +var _26=_25.node=d.byId(_25.node),s=_26.style,o; +var _27=d.animateProperty(d.mixin({properties:{height:{end:1}}},_25)); +d.connect(_27,"beforeBegin",function(){ +o=s.overflow; +s.overflow="hidden"; +s.display=""; +}); +d.connect(_27,"onEnd",function(){ +s.overflow=o; +s.height="auto"; +s.display="none"; +}); +return _27; +}; +dojo.fx.slideTo=function(_28){ +var _29=_28.node=d.byId(_28.node),top=null,_2a=null; +var _2b=(function(n){ +return function(){ +var cs=d.getComputedStyle(n); +var pos=cs.position; +top=(pos=="absolute"?n.offsetTop:parseInt(cs.top)||0); +_2a=(pos=="absolute"?n.offsetLeft:parseInt(cs.left)||0); +if(pos!="absolute"&&pos!="relative"){ +var ret=d.position(n,true); +top=ret.y; +_2a=ret.x; +n.style.position="absolute"; +n.style.top=top+"px"; +n.style.left=_2a+"px"; +} +}; +})(_29); +_2b(); +var _2c=d.animateProperty(d.mixin({properties:{top:_28.top||0,left:_28.left||0}},_28)); +d.connect(_2c,"beforeBegin",_2c,_2b); +return _2c; +}; +})(); +} diff --git a/lib/dojo/fx/Toggler.js b/lib/dojo/fx/Toggler.js new file mode 100644 index 000000000..b8bc639ce --- /dev/null +++ b/lib/dojo/fx/Toggler.js @@ -0,0 +1,30 @@ +/* + 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["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(_1){ +var _2=this; +dojo.mixin(_2,_1); +_2.node=_1.node; +_2._showArgs=dojo.mixin({},_1); +_2._showArgs.node=_2.node; +_2._showArgs.duration=_2.showDuration; +_2.showAnim=_2.showFunc(_2._showArgs); +_2._hideArgs=dojo.mixin({},_1); +_2._hideArgs.node=_2.node; +_2._hideArgs.duration=_2.hideDuration; +_2.hideAnim=_2.hideFunc(_2._hideArgs); +dojo.connect(_2.showAnim,"beforeBegin",dojo.hitch(_2.hideAnim,"stop",true)); +dojo.connect(_2.hideAnim,"beforeBegin",dojo.hitch(_2.showAnim,"stop",true)); +},show:function(_3){ +return this.showAnim.play(_3||0); +},hide:function(_4){ +return this.hideAnim.play(_4||0); +}}); +} diff --git a/lib/dojo/fx/easing.js b/lib/dojo/fx/easing.js new file mode 100644 index 000000000..0de5d5e99 --- /dev/null +++ b/lib/dojo/fx/easing.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["dojo.fx.easing"]){ +dojo._hasResource["dojo.fx.easing"]=true; +dojo.provide("dojo.fx.easing"); +dojo.fx.easing={linear:function(n){ +return n; +},quadIn:function(n){ +return Math.pow(n,2); +},quadOut:function(n){ +return n*(n-2)*-1; +},quadInOut:function(n){ +n=n*2; +if(n<1){ +return Math.pow(n,2)/2; +} +return -1*((--n)*(n-2)-1)/2; +},cubicIn:function(n){ +return Math.pow(n,3); +},cubicOut:function(n){ +return Math.pow(n-1,3)+1; +},cubicInOut:function(n){ +n=n*2; +if(n<1){ +return Math.pow(n,3)/2; +} +n-=2; +return (Math.pow(n,3)+2)/2; +},quartIn:function(n){ +return Math.pow(n,4); +},quartOut:function(n){ +return -1*(Math.pow(n-1,4)-1); +},quartInOut:function(n){ +n=n*2; +if(n<1){ +return Math.pow(n,4)/2; +} +n-=2; +return -1/2*(Math.pow(n,4)-2); +},quintIn:function(n){ +return Math.pow(n,5); +},quintOut:function(n){ +return Math.pow(n-1,5)+1; +},quintInOut:function(n){ +n=n*2; +if(n<1){ +return Math.pow(n,5)/2; +} +n-=2; +return (Math.pow(n,5)+2)/2; +},sineIn:function(n){ +return -1*Math.cos(n*(Math.PI/2))+1; +},sineOut:function(n){ +return Math.sin(n*(Math.PI/2)); +},sineInOut:function(n){ +return -1*(Math.cos(Math.PI*n)-1)/2; +},expoIn:function(n){ +return (n==0)?0:Math.pow(2,10*(n-1)); +},expoOut:function(n){ +return (n==1)?1:(-1*Math.pow(2,-10*n)+1); +},expoInOut:function(n){ +if(n==0){ +return 0; +} +if(n==1){ +return 1; +} +n=n*2; +if(n<1){ +return Math.pow(2,10*(n-1))/2; +} +--n; +return (-1*Math.pow(2,-10*n)+2)/2; +},circIn:function(n){ +return -1*(Math.sqrt(1-Math.pow(n,2))-1); +},circOut:function(n){ +n=n-1; +return Math.sqrt(1-Math.pow(n,2)); +},circInOut:function(n){ +n=n*2; +if(n<1){ +return -1/2*(Math.sqrt(1-Math.pow(n,2))-1); +} +n-=2; +return 1/2*(Math.sqrt(1-Math.pow(n,2))+1); +},backIn:function(n){ +var s=1.70158; +return Math.pow(n,2)*((s+1)*n-s); +},backOut:function(n){ +n=n-1; +var s=1.70158; +return Math.pow(n,2)*((s+1)*n+s)+1; +},backInOut:function(n){ +var s=1.70158*1.525; +n=n*2; +if(n<1){ +return (Math.pow(n,2)*((s+1)*n-s))/2; +} +n-=2; +return (Math.pow(n,2)*((s+1)*n+s)+2)/2; +},elasticIn:function(n){ +if(n==0||n==1){ +return n; +} +var p=0.3; +var s=p/4; +n=n-1; +return -1*Math.pow(2,10*n)*Math.sin((n-s)*(2*Math.PI)/p); +},elasticOut:function(n){ +if(n==0||n==1){ +return n; +} +var p=0.3; +var s=p/4; +return Math.pow(2,-10*n)*Math.sin((n-s)*(2*Math.PI)/p)+1; +},elasticInOut:function(n){ +if(n==0){ +return 0; +} +n=n*2; +if(n==2){ +return 1; +} +var p=0.3*1.5; +var s=p/4; +if(n<1){ +n-=1; +return -0.5*(Math.pow(2,10*n)*Math.sin((n-s)*(2*Math.PI)/p)); +} +n-=1; +return 0.5*(Math.pow(2,-10*n)*Math.sin((n-s)*(2*Math.PI)/p))+1; +},bounceIn:function(n){ +return (1-dojo.fx.easing.bounceOut(1-n)); +},bounceOut:function(n){ +var s=7.5625; +var p=2.75; +var l; +if(n<(1/p)){ +l=s*Math.pow(n,2); +}else{ +if(n<(2/p)){ +n-=(1.5/p); +l=s*Math.pow(n,2)+0.75; +}else{ +if(n<(2.5/p)){ +n-=(2.25/p); +l=s*Math.pow(n,2)+0.9375; +}else{ +n-=(2.625/p); +l=s*Math.pow(n,2)+0.984375; +} +} +} +return l; +},bounceInOut:function(n){ +if(n<0.5){ +return dojo.fx.easing.bounceIn(n*2)/2; +} +return (dojo.fx.easing.bounceOut(n*2-1)/2)+0.5; +}}; +} diff --git a/lib/dojo/gears.js b/lib/dojo/gears.js new file mode 100644 index 000000000..4b70c14da --- /dev/null +++ b/lib/dojo/gears.js @@ -0,0 +1,45 @@ +/* + 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["dojo.gears"]){ +dojo._hasResource["dojo.gears"]=true; +dojo.provide("dojo.gears"); +dojo.gears._gearsObject=function(){ +var _1; +var _2; +var _3=dojo.getObject("google.gears"); +if(_3){ +return _3; +} +if(typeof GearsFactory!="undefined"){ +_1=new GearsFactory(); +}else{ +if(dojo.isIE){ +try{ +_1=new ActiveXObject("Gears.Factory"); +} +catch(e){ +} +}else{ +if(navigator.mimeTypes["application/x-googlegears"]){ +_1=document.createElement("object"); +_1.setAttribute("type","application/x-googlegears"); +_1.setAttribute("width",0); +_1.setAttribute("height",0); +_1.style.display="none"; +document.documentElement.appendChild(_1); +} +} +} +if(!_1){ +return null; +} +dojo.setObject("google.gears.factory",_1); +return dojo.getObject("google.gears"); +}; +dojo.gears.available=(!!dojo.gears._gearsObject())||0; +} diff --git a/lib/dojo/hash.js b/lib/dojo/hash.js new file mode 100644 index 000000000..b73d37058 --- /dev/null +++ b/lib/dojo/hash.js @@ -0,0 +1,137 @@ +/* + 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["dojo.hash"]){ +dojo._hasResource["dojo.hash"]=true; +dojo.provide("dojo.hash"); +(function(){ +dojo.hash=function(_1,_2){ +if(!arguments.length){ +return _3(); +} +if(_1.charAt(0)=="#"){ +_1=_1.substring(1); +} +if(_2){ +_4(_1); +}else{ +location.href="#"+_1; +} +return _1; +}; +var _5=null,_6=null,_7=dojo.config.hashPollFrequency||100; +function _8(_9,_a){ +var i=_9.indexOf(_a); +return (i>=0)?_9.substring(i+1):""; +}; +function _3(){ +return _8(location.href,"#"); +}; +function _b(){ +dojo.publish("/dojo/hashchange",[_3()]); +}; +function _c(){ +if(_3()===_5){ +return; +} +_5=_3(); +_b(); +}; +function _4(_d){ +if(_6){ +if(_6.isTransitioning()){ +setTimeout(dojo.hitch(null,_4,_d),_7); +return; +} +var _e=_6.iframe.location.href; +var _f=_e.indexOf("?"); +_6.iframe.location.replace(_e.substring(0,_f)+"?"+_d); +return; +} +location.replace("#"+_d); +_c(); +}; +function _10(){ +var ifr=document.createElement("iframe"),_11="dojo-hash-iframe",_12=dojo.config.dojoBlankHtmlUrl||dojo.moduleUrl("dojo","resources/blank.html"); +ifr.id=_11; +ifr.src=_12+"?"+_3(); +ifr.style.display="none"; +document.body.appendChild(ifr); +this.iframe=dojo.global[_11]; +var _13,_14,_15,_16,_17,_18=this.iframe.location; +function _19(){ +_5=_3(); +_13=_17?_5:_8(_18.href,"?"); +_14=false; +_15=null; +}; +this.isTransitioning=function(){ +return _14; +}; +this.pollLocation=function(){ +if(!_17){ +try{ +var _1a=_8(_18.href,"?"); +if(document.title!=_16){ +_16=this.iframe.document.title=document.title; +} +} +catch(e){ +_17=true; +console.error("dojo.hash: Error adding history entry. Server unreachable."); +} +} +var _1b=_3(); +if(_14&&_5===_1b){ +if(_17||_1a===_15){ +_19(); +_b(); +}else{ +setTimeout(dojo.hitch(this,this.pollLocation),0); +return; +} +}else{ +if(_5===_1b&&(_17||_13===_1a)){ +}else{ +if(_5!==_1b){ +_5=_1b; +_14=true; +_15=_1b; +ifr.src=_12+"?"+_15; +_17=false; +setTimeout(dojo.hitch(this,this.pollLocation),0); +return; +}else{ +if(!_17){ +location.href="#"+_18.search.substring(1); +_19(); +_b(); +} +} +} +} +setTimeout(dojo.hitch(this,this.pollLocation),_7); +}; +_19(); +setTimeout(dojo.hitch(this,this.pollLocation),_7); +}; +dojo.addOnLoad(function(){ +if("onhashchange" in dojo.global&&(!dojo.isIE||(dojo.isIE>=8&&document.compatMode!="BackCompat"))){ +dojo.connect(dojo.global,"onhashchange",_b); +}else{ +if(document.addEventListener){ +_5=_3(); +setInterval(_c,_7); +}else{ +if(document.attachEvent){ +_6=new _10(); +} +} +} +}); +})(); +} diff --git a/lib/dojo/html.js b/lib/dojo/html.js new file mode 100644 index 000000000..7c15e5812 --- /dev/null +++ b/lib/dojo/html.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["dojo.html"]){ +dojo._hasResource["dojo.html"]=true; +dojo.provide("dojo.html"); +dojo.require("dojo.parser"); +(function(){ +var _1=0,d=dojo; +dojo.html._secureForInnerHtml=function(_2){ +return _2.replace(/(?:\s*<!DOCTYPE\s[^>]+>|<title[^>]*>[\s\S]*?<\/title>)/ig,""); +}; +dojo.html._emptyNode=dojo.empty; +dojo.html._setNodeContent=function(_3,_4){ +d.empty(_3); +if(_4){ +if(typeof _4=="string"){ +_4=d._toDom(_4,_3.ownerDocument); +} +if(!_4.nodeType&&d.isArrayLike(_4)){ +for(var _5=_4.length,i=0;i<_4.length;i=_5==_4.length?i+1:0){ +d.place(_4[i],_3,"last"); +} +}else{ +d.place(_4,_3,"last"); +} +} +return _3; +}; +dojo.declare("dojo.html._ContentSetter",null,{node:"",content:"",id:"",cleanContent:false,extractContent:false,parseContent:false,constructor:function(_6,_7){ +dojo.mixin(this,_6||{}); +_7=this.node=dojo.byId(this.node||_7); +if(!this.id){ +this.id=["Setter",(_7)?_7.id||_7.tagName:"",_1++].join("_"); +} +},set:function(_8,_9){ +if(undefined!==_8){ +this.content=_8; +} +if(_9){ +this._mixin(_9); +} +this.onBegin(); +this.setContent(); +this.onEnd(); +return this.node; +},setContent:function(){ +var _a=this.node; +if(!_a){ +throw new Error(this.declaredClass+": setContent given no node"); +} +try{ +_a=dojo.html._setNodeContent(_a,this.content); +} +catch(e){ +var _b=this.onContentError(e); +try{ +_a.innerHTML=_b; +} +catch(e){ +console.error("Fatal "+this.declaredClass+".setContent could not change content due to "+e.message,e); +} +} +this.node=_a; +},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 _c=this.content; +if(dojo.isString(_c)){ +if(this.cleanContent){ +_c=dojo.html._secureForInnerHtml(_c); +} +if(this.extractContent){ +var _d=_c.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im); +if(_d){ +_c=_d[1]; +} +} +} +this.empty(); +this.content=_c; +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(_e){ +return "Error occured setting content: "+_e; +},_mixin:function(_f){ +var _10={},key; +for(key in _f){ +if(key in _10){ +continue; +} +this[key]=_f[key]; +} +},_parse:function(){ +var _11=this.node; +try{ +this.parseResults=dojo.parser.parse({rootNode:_11,dir:this.dir,lang:this.lang}); +} +catch(e){ +this._onError("Content",e,"Error parsing in _ContentSetter#"+this.id); +} +},_onError:function(_12,err,_13){ +var _14=this["on"+_12+"Error"].call(this,err); +if(_13){ +console.error(_13,err); +}else{ +if(_14){ +dojo.html._setNodeContent(this.node,_14,true); +} +} +}}); +dojo.html.set=function(_15,_16,_17){ +if(undefined==_16){ +console.warn("dojo.html.set: no cont argument provided, using empty string"); +_16=""; +} +if(!_17){ +return dojo.html._setNodeContent(_15,_16,true); +}else{ +var op=new dojo.html._ContentSetter(dojo.mixin(_17,{content:_16,node:_15})); +return op.set(); +} +}; +})(); +} diff --git a/lib/dojo/i18n.js b/lib/dojo/i18n.js new file mode 100644 index 000000000..e914392a1 --- /dev/null +++ b/lib/dojo/i18n.js @@ -0,0 +1,171 @@ +/* + 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["dojo.i18n"]){ +dojo._hasResource["dojo.i18n"]=true; +dojo.provide("dojo.i18n"); +dojo.i18n.getLocalization=function(_1,_2,_3){ +_3=dojo.i18n.normalizeLocale(_3); +var _4=_3.split("-"); +var _5=[_1,"nls",_2].join("."); +var _6=dojo._loadedModules[_5]; +if(_6){ +var _7; +for(var i=_4.length;i>0;i--){ +var _8=_4.slice(0,i).join("_"); +if(_6[_8]){ +_7=_6[_8]; +break; +} +} +if(!_7){ +_7=_6.ROOT; +} +if(_7){ +var _9=function(){ +}; +_9.prototype=_7; +return new _9(); +} +} +throw new Error("Bundle not found: "+_2+" in "+_1+" , locale="+_3); +}; +dojo.i18n.normalizeLocale=function(_a){ +var _b=_a?_a.toLowerCase():dojo.locale; +if(_b=="root"){ +_b="ROOT"; +} +return _b; +}; +dojo.i18n._requireLocalization=function(_c,_d,_e,_f){ +var _10=dojo.i18n.normalizeLocale(_e); +var _11=[_c,"nls",_d].join("."); +var _12=""; +if(_f){ +var _13=_f.split(","); +for(var i=0;i<_13.length;i++){ +if(_10["indexOf"](_13[i])==0){ +if(_13[i].length>_12.length){ +_12=_13[i]; +} +} +} +if(!_12){ +_12="ROOT"; +} +} +var _14=_f?_12:_10; +var _15=dojo._loadedModules[_11]; +var _16=null; +if(_15){ +if(dojo.config.localizationComplete&&_15._built){ +return; +} +var _17=_14.replace(/-/g,"_"); +var _18=_11+"."+_17; +_16=dojo._loadedModules[_18]; +} +if(!_16){ +_15=dojo["provide"](_11); +var _19=dojo._getModuleSymbols(_c); +var _1a=_19.concat("nls").join("/"); +var _1b; +dojo.i18n._searchLocalePath(_14,_f,function(loc){ +var _1c=loc.replace(/-/g,"_"); +var _1d=_11+"."+_1c; +var _1e=false; +if(!dojo._loadedModules[_1d]){ +dojo["provide"](_1d); +var _1f=[_1a]; +if(loc!="ROOT"){ +_1f.push(loc); +} +_1f.push(_d); +var _20=_1f.join("/")+".js"; +_1e=dojo._loadPath(_20,null,function(_21){ +var _22=function(){ +}; +_22.prototype=_1b; +_15[_1c]=new _22(); +for(var j in _21){ +_15[_1c][j]=_21[j]; +} +}); +}else{ +_1e=true; +} +if(_1e&&_15[_1c]){ +_1b=_15[_1c]; +}else{ +_15[_1c]=_1b; +} +if(_f){ +return true; +} +}); +} +if(_f&&_10!=_12){ +_15[_10.replace(/-/g,"_")]=_15[_12.replace(/-/g,"_")]; +} +}; +(function(){ +var _23=dojo.config.extraLocale; +if(_23){ +if(!_23 instanceof Array){ +_23=[_23]; +} +var req=dojo.i18n._requireLocalization; +dojo.i18n._requireLocalization=function(m,b,_24,_25){ +req(m,b,_24,_25); +if(_24){ +return; +} +for(var i=0;i<_23.length;i++){ +req(m,b,_23[i],_25); +} +}; +} +})(); +dojo.i18n._searchLocalePath=function(_26,_27,_28){ +_26=dojo.i18n.normalizeLocale(_26); +var _29=_26.split("-"); +var _2a=[]; +for(var i=_29.length;i>0;i--){ +_2a.push(_29.slice(0,i).join("-")); +} +_2a.push(false); +if(_27){ +_2a.reverse(); +} +for(var j=_2a.length-1;j>=0;j--){ +var loc=_2a[j]||"ROOT"; +var _2b=_28(loc); +if(_2b){ +break; +} +} +}; +dojo.i18n._preloadLocalizations=function(_2c,_2d){ +function _2e(_2f){ +_2f=dojo.i18n.normalizeLocale(_2f); +dojo.i18n._searchLocalePath(_2f,true,function(loc){ +for(var i=0;i<_2d.length;i++){ +if(_2d[i]==loc){ +dojo["require"](_2c+"_"+loc); +return true; +} +} +return false; +}); +}; +_2e(); +var _30=dojo.config.extraLocale||[]; +for(var i=0;i<_30.length;i++){ +_2e(_30[i]); +} +}; +} diff --git a/lib/dojo/io/iframe.js b/lib/dojo/io/iframe.js new file mode 100644 index 000000000..105af1697 --- /dev/null +++ b/lib/dojo/io/iframe.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["dojo.io.iframe"]){ +dojo._hasResource["dojo.io.iframe"]=true; +dojo.provide("dojo.io.iframe"); +dojo.io.iframe={create:function(_1,_2,_3){ +if(window[_1]){ +return window[_1]; +} +if(window.frames[_1]){ +return window.frames[_1]; +} +var _4=null; +var _5=_3; +if(!_5){ +if(dojo.config["useXDomain"]&&!dojo.config["dojoBlankHtmlUrl"]){ +console.warn("dojo.io.iframe.create: When using cross-domain Dojo builds,"+" please save dojo/resources/blank.html to your domain and set djConfig.dojoBlankHtmlUrl"+" to the path on your domain to blank.html"); +} +_5=(dojo.config["dojoBlankHtmlUrl"]||dojo.moduleUrl("dojo","resources/blank.html")); +} +var _6=dojo.isIE?"<iframe name=\""+_1+"\" src=\""+_5+"\" onload=\""+_2+"\">":"iframe"; +_4=dojo.doc.createElement(_6); +with(_4){ +name=_1; +setAttribute("name",_1); +id=_1; +} +dojo.body().appendChild(_4); +window[_1]=_4; +with(_4.style){ +if(!(dojo.isSafari<3)){ +position="absolute"; +} +left=top="1px"; +height=width="1px"; +visibility="hidden"; +} +if(!dojo.isIE){ +this.setSrc(_4,_5,true); +_4.onload=new Function(_2); +} +return _4; +},setSrc:function(_7,_8,_9){ +try{ +if(!_9){ +if(dojo.isWebKit){ +_7.location=_8; +}else{ +frames[_7.name].location=_8; +} +}else{ +var _a; +if(dojo.isIE||dojo.isWebKit>521){ +_a=_7.contentWindow.document; +}else{ +if(dojo.isSafari){ +_a=_7.document; +}else{ +_a=_7.contentWindow; +} +} +if(!_a){ +_7.location=_8; +return; +}else{ +_a.location.replace(_8); +} +} +} +catch(e){ +} +},doc:function(_b){ +var _c=_b.contentDocument||(((_b.name)&&(_b.document)&&(dojo.doc.getElementsByTagName("iframe")[_b.name].contentWindow)&&(dojo.doc.getElementsByTagName("iframe")[_b.name].contentWindow.document)))||((_b.name)&&(dojo.doc.frames[_b.name])&&(dojo.doc.frames[_b.name].document))||null; +return _c; +},send:function(_d){ +if(!this["_frame"]){ +this._frame=this.create(this._iframeName,dojo._scopeName+".io.iframe._iframeOnload();"); +} +var _e=dojo._ioSetArgs(_d,function(_f){ +_f.canceled=true; +_f.ioArgs._callNext(); +},function(dfd){ +var _10=null; +try{ +var _11=dfd.ioArgs; +var dii=dojo.io.iframe; +var ifd=dii.doc(dii._frame); +var _12=_11.handleAs; +_10=ifd; +if(_12!="html"){ +if(_12=="xml"){ +if(dojo.isIE){ +dojo.query("a",dii._frame.contentWindow.document.documentElement).orphan(); +var _13=(dii._frame.contentWindow.document).documentElement.innerText; +_13=_13.replace(/>\s+</g,"><"); +_13=dojo.trim(_13); +var _14={responseText:_13}; +_10=dojo._contentHandlers["xml"](_14); +} +}else{ +_10=ifd.getElementsByTagName("textarea")[0].value; +if(_12=="json"){ +_10=dojo.fromJson(_10); +}else{ +if(_12=="javascript"){ +_10=dojo.eval(_10); +} +} +} +} +} +catch(e){ +_10=e; +} +finally{ +_11._callNext(); +} +return _10; +},function(_15,dfd){ +dfd.ioArgs._hasError=true; +dfd.ioArgs._callNext(); +return _15; +}); +_e.ioArgs._callNext=function(){ +if(!this["_calledNext"]){ +this._calledNext=true; +dojo.io.iframe._currentDfd=null; +dojo.io.iframe._fireNextRequest(); +} +}; +this._dfdQueue.push(_e); +this._fireNextRequest(); +dojo._ioWatch(_e,function(dfd){ +return !dfd.ioArgs["_hasError"]; +},function(dfd){ +return (!!dfd.ioArgs["_finished"]); +},function(dfd){ +if(dfd.ioArgs._finished){ +dfd.callback(dfd); +}else{ +dfd.errback(new Error("Invalid dojo.io.iframe request state")); +} +}); +return _e; +},_currentDfd:null,_dfdQueue:[],_iframeName:dojo._scopeName+"IoIframe",_fireNextRequest:function(){ +try{ +if((this._currentDfd)||(this._dfdQueue.length==0)){ +return; +} +do{ +var dfd=this._currentDfd=this._dfdQueue.shift(); +}while(dfd&&dfd.canceled&&this._dfdQueue.length); +if(!dfd||dfd.canceled){ +this._currentDfd=null; +return; +} +var _16=dfd.ioArgs; +var _17=_16.args; +_16._contentToClean=[]; +var fn=dojo.byId(_17["form"]); +var _18=_17["content"]||{}; +if(fn){ +if(_18){ +var _19=function(_1a,_1b){ +var tn; +if(dojo.isIE){ +tn=dojo.doc.createElement("<input type='hidden' name='"+_1a+"'>"); +}else{ +tn=dojo.doc.createElement("input"); +tn.type="hidden"; +tn.name=_1a; +} +tn.value=_1b; +fn.appendChild(tn); +_16._contentToClean.push(_1a); +}; +for(var x in _18){ +var val=_18[x]; +if(dojo.isArray(val)&&val.length>1){ +var i; +for(i=0;i<val.length;i++){ +_19(x,val[i]); +} +}else{ +if(!fn[x]){ +_19(x,val); +}else{ +fn[x].value=val; +} +} +} +} +var _1c=fn.getAttributeNode("action"); +var _1d=fn.getAttributeNode("method"); +var _1e=fn.getAttributeNode("target"); +if(_17["url"]){ +_16._originalAction=_1c?_1c.value:null; +if(_1c){ +_1c.value=_17.url; +}else{ +fn.setAttribute("action",_17.url); +} +} +if(!_1d||!_1d.value){ +if(_1d){ +_1d.value=(_17["method"])?_17["method"]:"post"; +}else{ +fn.setAttribute("method",(_17["method"])?_17["method"]:"post"); +} +} +_16._originalTarget=_1e?_1e.value:null; +if(_1e){ +_1e.value=this._iframeName; +}else{ +fn.setAttribute("target",this._iframeName); +} +fn.target=this._iframeName; +dojo._ioNotifyStart(dfd); +fn.submit(); +}else{ +var _1f=_17.url+(_17.url.indexOf("?")>-1?"&":"?")+_16.query; +dojo._ioNotifyStart(dfd); +this.setSrc(this._frame,_1f,true); +} +} +catch(e){ +dfd.errback(e); +} +},_iframeOnload:function(){ +var dfd=this._currentDfd; +if(!dfd){ +this._fireNextRequest(); +return; +} +var _20=dfd.ioArgs; +var _21=_20.args; +var _22=dojo.byId(_21.form); +if(_22){ +var _23=_20._contentToClean; +for(var i=0;i<_23.length;i++){ +var key=_23[i]; +for(var j=0;j<_22.childNodes.length;j++){ +var _24=_22.childNodes[j]; +if(_24.name==key){ +dojo.destroy(_24); +break; +} +} +} +if(_20["_originalAction"]){ +_22.setAttribute("action",_20._originalAction); +} +if(_20["_originalTarget"]){ +_22.setAttribute("target",_20._originalTarget); +_22.target=_20._originalTarget; +} +} +_20._finished=true; +}}; +} diff --git a/lib/dojo/io/script.js b/lib/dojo/io/script.js new file mode 100644 index 000000000..9a940634d --- /dev/null +++ b/lib/dojo/io/script.js @@ -0,0 +1,118 @@ +/* + 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["dojo.io.script"]){ +dojo._hasResource["dojo.io.script"]=true; +dojo.provide("dojo.io.script"); +(function(){ +var _1=dojo.isIE?"onreadystatechange":"load",_2=/complete|loaded/; +dojo.io.script={get:function(_3){ +var _4=this._makeScriptDeferred(_3); +var _5=_4.ioArgs; +dojo._ioAddQueryToUrl(_5); +dojo._ioNotifyStart(_4); +if(this._canAttach(_5)){ +var _6=this.attach(_5.id,_5.url,_3.frameDoc); +if(!_5.jsonp&&!_5.args.checkString){ +var _7=dojo.connect(_6,_1,function(_8){ +if(_8.type=="load"||_2.test(_6.readyState)){ +dojo.disconnect(_7); +_5.scriptLoaded=_8; +} +}); +} +} +dojo._ioWatch(_4,this._validCheck,this._ioCheck,this._resHandle); +return _4; +},attach:function(id,_9,_a){ +var _b=(_a||dojo.doc); +var _c=_b.createElement("script"); +_c.type="text/javascript"; +_c.src=_9; +_c.id=id; +_c.charset="utf-8"; +return _b.getElementsByTagName("head")[0].appendChild(_c); +},remove:function(id,_d){ +dojo.destroy(dojo.byId(id,_d)); +if(this["jsonp_"+id]){ +delete this["jsonp_"+id]; +} +},_makeScriptDeferred:function(_e){ +var _f=dojo._ioSetArgs(_e,this._deferredCancel,this._deferredOk,this._deferredError); +var _10=_f.ioArgs; +_10.id=dojo._scopeName+"IoScript"+(this._counter++); +_10.canDelete=false; +_10.jsonp=_e.callbackParamName||_e.jsonp; +if(_10.jsonp){ +_10.query=_10.query||""; +if(_10.query.length>0){ +_10.query+="&"; +} +_10.query+=_10.jsonp+"="+(_e.frameDoc?"parent.":"")+dojo._scopeName+".io.script.jsonp_"+_10.id+"._jsonpCallback"; +_10.frameDoc=_e.frameDoc; +_10.canDelete=true; +_f._jsonpCallback=this._jsonpCallback; +this["jsonp_"+_10.id]=_f; +} +return _f; +},_deferredCancel:function(dfd){ +dfd.canceled=true; +if(dfd.ioArgs.canDelete){ +dojo.io.script._addDeadScript(dfd.ioArgs); +} +},_deferredOk:function(dfd){ +var _11=dfd.ioArgs; +if(_11.canDelete){ +dojo.io.script._addDeadScript(_11); +} +return _11.json||_11.scriptLoaded||_11; +},_deferredError:function(_12,dfd){ +if(dfd.ioArgs.canDelete){ +if(_12.dojoType=="timeout"){ +dojo.io.script.remove(dfd.ioArgs.id,dfd.ioArgs.frameDoc); +}else{ +dojo.io.script._addDeadScript(dfd.ioArgs); +} +} +return _12; +},_deadScripts:[],_counter:1,_addDeadScript:function(_13){ +dojo.io.script._deadScripts.push({id:_13.id,frameDoc:_13.frameDoc}); +_13.frameDoc=null; +},_validCheck:function(dfd){ +var _14=dojo.io.script; +var _15=_14._deadScripts; +if(_15&&_15.length>0){ +for(var i=0;i<_15.length;i++){ +_14.remove(_15[i].id,_15[i].frameDoc); +_15[i].frameDoc=null; +} +dojo.io.script._deadScripts=[]; +} +return true; +},_ioCheck:function(dfd){ +var _16=dfd.ioArgs; +if(_16.json||(_16.scriptLoaded&&!_16.args.checkString)){ +return true; +} +var _17=_16.args.checkString; +if(_17&&eval("typeof("+_17+") != 'undefined'")){ +return true; +} +return false; +},_resHandle:function(dfd){ +if(dojo.io.script._ioCheck(dfd)){ +dfd.callback(dfd); +}else{ +dfd.errback(new Error("inconceivable dojo.io.script._resHandle error")); +} +},_canAttach:function(_18){ +return true; +},_jsonpCallback:function(_19){ +this.ioArgs.json=_19; +}}; +})(); +} diff --git a/lib/dojo/jaxer.js b/lib/dojo/jaxer.js new file mode 100644 index 000000000..b9cf0dfe2 --- /dev/null +++ b/lib/dojo/jaxer.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["dojo.jaxer"]){ +dojo._hasResource["dojo.jaxer"]=true; +dojo.provide("dojo.jaxer"); +if(typeof print=="function"){ +console.debug=Jaxer.Log.debug; +console.warn=Jaxer.Log.warn; +console.error=Jaxer.Log.error; +console.info=Jaxer.Log.info; +console.log=Jaxer.Log.warn; +} +onserverload=dojo._loadInit; +} diff --git a/lib/dojo/nls/ar/colors.js b/lib/dojo/nls/ar/colors.js new file mode 100644 index 000000000..50e4a1283 --- /dev/null +++ b/lib/dojo/nls/ar/colors.js @@ -0,0 +1 @@ +({"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":"أخضر مائل للأصفر"})
\ No newline at end of file diff --git a/lib/dojo/nls/ca/colors.js b/lib/dojo/nls/ca/colors.js new file mode 100644 index 000000000..0f1461a83 --- /dev/null +++ b/lib/dojo/nls/ca/colors.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/nls/colors.js b/lib/dojo/nls/colors.js new file mode 100644 index 000000000..454e644e4 --- /dev/null +++ b/lib/dojo/nls/colors.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/nls/cs/colors.js b/lib/dojo/nls/cs/colors.js new file mode 100644 index 000000000..7ae5d3082 --- /dev/null +++ b/lib/dojo/nls/cs/colors.js @@ -0,0 +1 @@ +({"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á"})
\ No newline at end of file diff --git a/lib/dojo/nls/da/colors.js b/lib/dojo/nls/da/colors.js new file mode 100644 index 000000000..322154f41 --- /dev/null +++ b/lib/dojo/nls/da/colors.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/nls/de/colors.js b/lib/dojo/nls/de/colors.js new file mode 100644 index 000000000..7ae21bf44 --- /dev/null +++ b/lib/dojo/nls/de/colors.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/nls/el/colors.js b/lib/dojo/nls/el/colors.js new file mode 100644 index 000000000..a80df97be --- /dev/null +++ b/lib/dojo/nls/el/colors.js @@ -0,0 +1 @@ +({"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":"κιτρινοπράσινο"})
\ No newline at end of file diff --git a/lib/dojo/nls/es/colors.js b/lib/dojo/nls/es/colors.js new file mode 100644 index 000000000..95bb23e86 --- /dev/null +++ b/lib/dojo/nls/es/colors.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/nls/fi/colors.js b/lib/dojo/nls/fi/colors.js new file mode 100644 index 000000000..454e644e4 --- /dev/null +++ b/lib/dojo/nls/fi/colors.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/nls/fr/colors.js b/lib/dojo/nls/fr/colors.js new file mode 100644 index 000000000..cf1e7e90c --- /dev/null +++ b/lib/dojo/nls/fr/colors.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/nls/he/colors.js b/lib/dojo/nls/he/colors.js new file mode 100644 index 000000000..a689ec623 --- /dev/null +++ b/lib/dojo/nls/he/colors.js @@ -0,0 +1 @@ +({"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":"ירוק צהוב"})
\ No newline at end of file diff --git a/lib/dojo/nls/hu/colors.js b/lib/dojo/nls/hu/colors.js new file mode 100644 index 000000000..c0bce74c7 --- /dev/null +++ b/lib/dojo/nls/hu/colors.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/nls/it/colors.js b/lib/dojo/nls/it/colors.js new file mode 100644 index 000000000..8a5300702 --- /dev/null +++ b/lib/dojo/nls/it/colors.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/nls/ja/colors.js b/lib/dojo/nls/ja/colors.js new file mode 100644 index 000000000..46aa1f25c --- /dev/null +++ b/lib/dojo/nls/ja/colors.js @@ -0,0 +1 @@ +({"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":"黄緑"})
\ No newline at end of file diff --git a/lib/dojo/nls/ko/colors.js b/lib/dojo/nls/ko/colors.js new file mode 100644 index 000000000..0c6576b12 --- /dev/null +++ b/lib/dojo/nls/ko/colors.js @@ -0,0 +1 @@ +({"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)"})
\ No newline at end of file diff --git a/lib/dojo/nls/nb/colors.js b/lib/dojo/nls/nb/colors.js new file mode 100644 index 000000000..15770a404 --- /dev/null +++ b/lib/dojo/nls/nb/colors.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/nls/nl/colors.js b/lib/dojo/nls/nl/colors.js new file mode 100644 index 000000000..ae0ccbf3f --- /dev/null +++ b/lib/dojo/nls/nl/colors.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/nls/pl/colors.js b/lib/dojo/nls/pl/colors.js new file mode 100644 index 000000000..852268c42 --- /dev/null +++ b/lib/dojo/nls/pl/colors.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/nls/pt-pt/colors.js b/lib/dojo/nls/pt-pt/colors.js new file mode 100644 index 000000000..e01afd2c1 --- /dev/null +++ b/lib/dojo/nls/pt-pt/colors.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/nls/pt/colors.js b/lib/dojo/nls/pt/colors.js new file mode 100644 index 000000000..897efc3c1 --- /dev/null +++ b/lib/dojo/nls/pt/colors.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/nls/ro/colors.js b/lib/dojo/nls/ro/colors.js new file mode 100644 index 000000000..9652ce590 --- /dev/null +++ b/lib/dojo/nls/ro/colors.js @@ -0,0 +1 @@ +({"lightsteelblue":"light steel blue","orangered":"roşu portocaliu","midnightblue":"midnight blue","cadetblue":"cadet blue","seashell":"cochilie","slategrey":"gri ardezie","coral":"coral","darkturquoise":"dark turquoise","antiquewhite":"antique white","mediumspringgreen":"medium spring green","salmon":"somon","darkgrey":"gri închis","ivory":"ivoriu","greenyellow":"verde-galben","mistyrose":"trandafiriu obscur","lightsalmon":"somon deschis","silver":"argintiu","dimgrey":"dim gray","orange":"portocaliu","white":"alb","navajowhite":"navajo white","royalblue":"albastru regal","deeppink":"roz închis","lime":"lime","oldlace":"old lace","chartreuse":"chartreuse","darkcyan":"cyan închis","yellow":"galben","linen":"linen","olive":"oliv","gold":"auriu","lawngreen":"lawn green","lightyellow":"galben deschis","tan":"tan","darkviolet":"violet închis","lightslategrey":"light slate gray","grey":"gri","darkkhaki":"kaki închis","green":"verde","deepskyblue":"deep sky blue","aqua":"aqua","sienna":"sienna","mintcream":"mint cream","rosybrown":"maro trandafiriu","mediumslateblue":"medium slate blue","magenta":"magenta","lightseagreen":"verde marin deschis","cyan":"cyan","olivedrab":"maron-gălbui oliv","darkgoldenrod":"goldenrod închis","slateblue":"albastru ardezie","mediumaquamarine":"medium aquamarine","lavender":"levănţică","mediumseagreen":"medium sea green","maroon":"maroon","darkslategray":"dark slate gray","mediumturquoise":"medium turquoise","ghostwhite":"ghost white","darkblue":"albastru închis","mediumvioletred":"medium violet-red","brown":"maro","lightgray":"gri deschis","sandybrown":"maro nisipiu","pink":"roz","firebrick":"fire brick","indigo":"indigo","snow":"zăpadă","darkorchid":"dark orchid","turquoise":"turquoise","chocolate":"ciocolată","springgreen":"verde de primăvară","moccasin":"moccasin","navy":"navy","lemonchiffon":"lemon chiffon","teal":"lişiţă","floralwhite":"floral white","cornflowerblue":"cornflower blue","paleturquoise":"turquoise pal","purple":"purpură","gainsboro":"gainsboro","plum":"prună","red":"roşu","blue":"albastru","forestgreen":"verde pădure","darkgreen":"verde închis","honeydew":"honeydew","darkseagreen":"dark sea green","lightcoral":"coral deschis","palevioletred":"roşu violet pal","mediumpurple":"medium purple","saddlebrown":"maro de şa","darkmagenta":"magenta închis","thistle":"ciulin","whitesmoke":"fum alb","wheat":"grâu","violet":"violet","lightskyblue":"albastru cer deschis","goldenrod":"goldenrod","mediumblue":"medium blue","skyblue":"albastru de cer","crimson":"crimson","darksalmon":"dark salmon","darkred":"roşu închis","darkslategrey":"dark slate gray","peru":"peru","lightgrey":"gri deschis","lightgoldenrodyellow":"light goldenrod yellow","blanchedalmond":"blanched almond","aliceblue":"alice blue","bisque":"bisque","slategray":"gri ardezie","palegoldenrod":"solidago pal","darkorange":"portocaliu închis","aquamarine":"aquamarine","lightgreen":"verde deschis","burlywood":"burlywood","dodgerblue":"dodger blue","darkgray":"cenuşiu închis","lightcyan":"cyan deschis","powderblue":"albastru pudră","blueviolet":"albastru-violet","orchid":"orhidee","dimgray":"dim gray","beige":"bej","fuchsia":"fuchsia","lavenderblush":"lavender blush","hotpink":"roz aprins","steelblue":"albastru metalic","tomato":"roşie","lightpink":"roz deschis","limegreen":"verde lime","indianred":"roşu indian","papayawhip":"papaya whip","lightslategray":"light slate gray","gray":"cenuşiu","mediumorchid":"medium orchid","cornsilk":"cornsilk","black":"negru","seagreen":"verde marin","darkslateblue":"dark slate blue","khaki":"kaki","lightblue":"albastru deschis","palegreen":"verde pal","azure":"azuriu","peachpuff":"puf de piersică","darkolivegreen":"verde oliv închis","yellowgreen":"verde galben"})
\ No newline at end of file diff --git a/lib/dojo/nls/ru/colors.js b/lib/dojo/nls/ru/colors.js new file mode 100644 index 000000000..4b67053d9 --- /dev/null +++ b/lib/dojo/nls/ru/colors.js @@ -0,0 +1 @@ +({"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":"желто-зеленый"})
\ No newline at end of file diff --git a/lib/dojo/nls/sk/colors.js b/lib/dojo/nls/sk/colors.js new file mode 100644 index 000000000..9dbd8e602 --- /dev/null +++ b/lib/dojo/nls/sk/colors.js @@ -0,0 +1 @@ +({"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á"})
\ No newline at end of file diff --git a/lib/dojo/nls/sl/colors.js b/lib/dojo/nls/sl/colors.js new file mode 100644 index 000000000..e009ce9f7 --- /dev/null +++ b/lib/dojo/nls/sl/colors.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/nls/sv/colors.js b/lib/dojo/nls/sv/colors.js new file mode 100644 index 000000000..269e85c93 --- /dev/null +++ b/lib/dojo/nls/sv/colors.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/nls/th/colors.js b/lib/dojo/nls/th/colors.js new file mode 100644 index 000000000..706ed8a65 --- /dev/null +++ b/lib/dojo/nls/th/colors.js @@ -0,0 +1 @@ +({"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":"เหลืองแกมเขียว"})
\ No newline at end of file diff --git a/lib/dojo/nls/tr/colors.js b/lib/dojo/nls/tr/colors.js new file mode 100644 index 000000000..a75f12ff9 --- /dev/null +++ b/lib/dojo/nls/tr/colors.js @@ -0,0 +1 @@ +({"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"})
\ No newline at end of file diff --git a/lib/dojo/nls/zh-tw/colors.js b/lib/dojo/nls/zh-tw/colors.js new file mode 100644 index 000000000..6ee6c5ec3 --- /dev/null +++ b/lib/dojo/nls/zh-tw/colors.js @@ -0,0 +1 @@ +({"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":"黃綠色"})
\ No newline at end of file diff --git a/lib/dojo/nls/zh/colors.js b/lib/dojo/nls/zh/colors.js new file mode 100644 index 000000000..35368f394 --- /dev/null +++ b/lib/dojo/nls/zh/colors.js @@ -0,0 +1 @@ +({"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":"黄绿色"})
\ No newline at end of file diff --git a/lib/dojo/number.js b/lib/dojo/number.js new file mode 100644 index 000000000..95a2c5022 --- /dev/null +++ b/lib/dojo/number.js @@ -0,0 +1,311 @@ +/* + 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["dojo.number"]){ +dojo._hasResource["dojo.number"]=true; +dojo.provide("dojo.number"); +dojo.require("dojo.i18n"); +dojo.requireLocalization("dojo.cldr","number",null,"ROOT,ar,ca,cs,da,de,el,en,en-au,en-gb,es,fi,fr,he,hu,it,ja,ko,nb,nl,pl,pt,pt-pt,ru,sk,sl,sv,th,tr,zh"); +dojo.require("dojo.string"); +dojo.require("dojo.regexp"); +dojo.number.format=function(_1,_2){ +_2=dojo.mixin({},_2||{}); +var _3=dojo.i18n.normalizeLocale(_2.locale),_4=dojo.i18n.getLocalization("dojo.cldr","number",_3); +_2.customs=_4; +var _5=_2.pattern||_4[(_2.type||"decimal")+"Format"]; +if(isNaN(_1)||Math.abs(_1)==Infinity){ +return null; +} +return dojo.number._applyPattern(_1,_5,_2); +}; +dojo.number._numberPatternRE=/[#0,]*[#0](?:\.0*#*)?/; +dojo.number._applyPattern=function(_6,_7,_8){ +_8=_8||{}; +var _9=_8.customs.group,_a=_8.customs.decimal,_b=_7.split(";"),_c=_b[0]; +_7=_b[(_6<0)?1:0]||("-"+_c); +if(_7.indexOf("%")!=-1){ +_6*=100; +}else{ +if(_7.indexOf("‰")!=-1){ +_6*=1000; +}else{ +if(_7.indexOf("¤")!=-1){ +_9=_8.customs.currencyGroup||_9; +_a=_8.customs.currencyDecimal||_a; +_7=_7.replace(/\u00a4{1,3}/,function(_d){ +var _e=["symbol","currency","displayName"][_d.length-1]; +return _8[_e]||_8.currency||""; +}); +}else{ +if(_7.indexOf("E")!=-1){ +throw new Error("exponential notation not supported"); +} +} +} +} +var _f=dojo.number._numberPatternRE; +var _10=_c.match(_f); +if(!_10){ +throw new Error("unable to find a number expression in pattern: "+_7); +} +if(_8.fractional===false){ +_8.places=0; +} +return _7.replace(_f,dojo.number._formatAbsolute(_6,_10[0],{decimal:_a,group:_9,places:_8.places,round:_8.round})); +}; +dojo.number.round=function(_11,_12,_13){ +var _14=10/(_13||10); +return (_14*+_11).toFixed(_12)/_14; +}; +if((0.9).toFixed()==0){ +(function(){ +var _15=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 _15(v,p,m)+(v>0?d:-d); +}; +})(); +} +dojo.number._formatAbsolute=function(_16,_17,_18){ +_18=_18||{}; +if(_18.places===true){ +_18.places=0; +} +if(_18.places===Infinity){ +_18.places=6; +} +var _19=_17.split("."),_1a=typeof _18.places=="string"&&_18.places.indexOf(","),_1b=_18.places; +if(_1a){ +_1b=_18.places.substring(_1a+1); +}else{ +if(!(_1b>=0)){ +_1b=(_19[1]||[]).length; +} +} +if(!(_18.round<0)){ +_16=dojo.number.round(_16,_1b,_18.round); +} +var _1c=String(Math.abs(_16)).split("."),_1d=_1c[1]||""; +if(_19[1]||_18.places){ +if(_1a){ +_18.places=_18.places.substring(0,_1a); +} +var pad=_18.places!==undefined?_18.places:(_19[1]&&_19[1].lastIndexOf("0")+1); +if(pad>_1d.length){ +_1c[1]=dojo.string.pad(_1d,pad,"0",true); +} +if(_1b<_1d.length){ +_1c[1]=_1d.substr(0,_1b); +} +}else{ +if(_1c[1]){ +_1c.pop(); +} +} +var _1e=_19[0].replace(",",""); +pad=_1e.indexOf("0"); +if(pad!=-1){ +pad=_1e.length-pad; +if(pad>_1c[0].length){ +_1c[0]=dojo.string.pad(_1c[0],pad); +} +if(_1e.indexOf("#")==-1){ +_1c[0]=_1c[0].substr(_1c[0].length-pad); +} +} +var _1f=_19[0].lastIndexOf(","),_20,_21; +if(_1f!=-1){ +_20=_19[0].length-_1f-1; +var _22=_19[0].substr(0,_1f); +_1f=_22.lastIndexOf(","); +if(_1f!=-1){ +_21=_22.length-_1f-1; +} +} +var _23=[]; +for(var _24=_1c[0];_24;){ +var off=_24.length-_20; +_23.push((off>0)?_24.substr(off):_24); +_24=(off>0)?_24.slice(0,off):""; +if(_21){ +_20=_21; +delete _21; +} +} +_1c[0]=_23.reverse().join(_18.group||","); +return _1c.join(_18.decimal||"."); +}; +dojo.number.regexp=function(_25){ +return dojo.number._parseInfo(_25).regexp; +}; +dojo.number._parseInfo=function(_26){ +_26=_26||{}; +var _27=dojo.i18n.normalizeLocale(_26.locale),_28=dojo.i18n.getLocalization("dojo.cldr","number",_27),_29=_26.pattern||_28[(_26.type||"decimal")+"Format"],_2a=_28.group,_2b=_28.decimal,_2c=1; +if(_29.indexOf("%")!=-1){ +_2c/=100; +}else{ +if(_29.indexOf("‰")!=-1){ +_2c/=1000; +}else{ +var _2d=_29.indexOf("¤")!=-1; +if(_2d){ +_2a=_28.currencyGroup||_2a; +_2b=_28.currencyDecimal||_2b; +} +} +} +var _2e=_29.split(";"); +if(_2e.length==1){ +_2e.push("-"+_2e[0]); +} +var re=dojo.regexp.buildGroupRE(_2e,function(_2f){ +_2f="(?:"+dojo.regexp.escapeString(_2f,".")+")"; +return _2f.replace(dojo.number._numberPatternRE,function(_30){ +var _31={signed:false,separator:_26.strict?_2a:[_2a,""],fractional:_26.fractional,decimal:_2b,exponent:false},_32=_30.split("."),_33=_26.places; +if(_32.length==1&&_2c!=1){ +_32[1]="###"; +} +if(_32.length==1||_33===0){ +_31.fractional=false; +}else{ +if(_33===undefined){ +_33=_26.pattern?_32[1].lastIndexOf("0")+1:Infinity; +} +if(_33&&_26.fractional==undefined){ +_31.fractional=true; +} +if(!_26.places&&(_33<_32[1].length)){ +_33+=","+_32[1].length; +} +_31.places=_33; +} +var _34=_32[0].split(","); +if(_34.length>1){ +_31.groupSize=_34.pop().length; +if(_34.length>1){ +_31.groupSize2=_34.pop().length; +} +} +return "("+dojo.number._realNumberRegexp(_31)+")"; +}); +},true); +if(_2d){ +re=re.replace(/([\s\xa0]*)(\u00a4{1,3})([\s\xa0]*)/g,function(_35,_36,_37,_38){ +var _39=["symbol","currency","displayName"][_37.length-1],_3a=dojo.regexp.escapeString(_26[_39]||_26.currency||""); +_36=_36?"[\\s\\xa0]":""; +_38=_38?"[\\s\\xa0]":""; +if(!_26.strict){ +if(_36){ +_36+="*"; +} +if(_38){ +_38+="*"; +} +return "(?:"+_36+_3a+_38+")?"; +} +return _36+_3a+_38; +}); +} +return {regexp:re.replace(/[\xa0 ]/g,"[\\s\\xa0]"),group:_2a,decimal:_2b,factor:_2c}; +}; +dojo.number.parse=function(_3b,_3c){ +var _3d=dojo.number._parseInfo(_3c),_3e=(new RegExp("^"+_3d.regexp+"$")).exec(_3b); +if(!_3e){ +return NaN; +} +var _3f=_3e[1]; +if(!_3e[1]){ +if(!_3e[2]){ +return NaN; +} +_3f=_3e[2]; +_3d.factor*=-1; +} +_3f=_3f.replace(new RegExp("["+_3d.group+"\\s\\xa0"+"]","g"),"").replace(_3d.decimal,"."); +return _3f*_3d.factor; +}; +dojo.number._realNumberRegexp=function(_40){ +_40=_40||{}; +if(!("places" in _40)){ +_40.places=Infinity; +} +if(typeof _40.decimal!="string"){ +_40.decimal="."; +} +if(!("fractional" in _40)||/^0/.test(_40.places)){ +_40.fractional=[true,false]; +} +if(!("exponent" in _40)){ +_40.exponent=[true,false]; +} +if(!("eSigned" in _40)){ +_40.eSigned=[true,false]; +} +var _41=dojo.number._integerRegexp(_40),_42=dojo.regexp.buildGroupRE(_40.fractional,function(q){ +var re=""; +if(q&&(_40.places!==0)){ +re="\\"+_40.decimal; +if(_40.places==Infinity){ +re="(?:"+re+"\\d+)?"; +}else{ +re+="\\d{"+_40.places+"}"; +} +} +return re; +},true); +var _43=dojo.regexp.buildGroupRE(_40.exponent,function(q){ +if(q){ +return "([eE]"+dojo.number._integerRegexp({signed:_40.eSigned})+")"; +} +return ""; +}); +var _44=_41+_42; +if(_42){ +_44="(?:(?:"+_44+")|(?:"+_42+"))"; +} +return _44+_43; +}; +dojo.number._integerRegexp=function(_45){ +_45=_45||{}; +if(!("signed" in _45)){ +_45.signed=[true,false]; +} +if(!("separator" in _45)){ +_45.separator=""; +}else{ +if(!("groupSize" in _45)){ +_45.groupSize=3; +} +} +var _46=dojo.regexp.buildGroupRE(_45.signed,function(q){ +return q?"[-+]":""; +},true); +var _47=dojo.regexp.buildGroupRE(_45.separator,function(sep){ +if(!sep){ +return "(?:\\d+)"; +} +sep=dojo.regexp.escapeString(sep); +if(sep==" "){ +sep="\\s"; +}else{ +if(sep==" "){ +sep="\\s\\xa0"; +} +} +var grp=_45.groupSize,_48=_45.groupSize2; +if(_48){ +var _49="(?:0|[1-9]\\d{0,"+(_48-1)+"}(?:["+sep+"]\\d{"+_48+"})*["+sep+"]\\d{"+grp+"})"; +return ((grp-_48)>0)?"(?:"+_49+"|(?:0|[1-9]\\d{0,"+(grp-1)+"}))":_49; +} +return "(?:0|[1-9]\\d{0,"+(grp-1)+"}(?:["+sep+"]\\d{"+grp+"})*)"; +},true); +return _46+_47; +}; +} diff --git a/lib/dojo/parser.js b/lib/dojo/parser.js new file mode 100644 index 000000000..245528328 --- /dev/null +++ b/lib/dojo/parser.js @@ -0,0 +1,272 @@ +/* + 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["dojo.parser"]){ +dojo._hasResource["dojo.parser"]=true; +dojo.provide("dojo.parser"); +dojo.require("dojo.date.stamp"); +new Date("X"); +dojo.parser=new function(){ +var d=dojo; +this._attrName=d._scopeName+"Type"; +this._query="["+this._attrName+"]"; +function _1(_2){ +if(d.isString(_2)){ +return "string"; +} +if(typeof _2=="number"){ +return "number"; +} +if(typeof _2=="boolean"){ +return "boolean"; +} +if(d.isFunction(_2)){ +return "function"; +} +if(d.isArray(_2)){ +return "array"; +} +if(_2 instanceof Date){ +return "date"; +} +if(_2 instanceof d._Url){ +return "url"; +} +return "object"; +}; +function _3(_4,_5){ +switch(_5){ +case "string": +return _4; +case "number": +return _4.length?Number(_4):NaN; +case "boolean": +return typeof _4=="boolean"?_4:!(_4.toLowerCase()=="false"); +case "function": +if(d.isFunction(_4)){ +_4=_4.toString(); +_4=d.trim(_4.substring(_4.indexOf("{")+1,_4.length-1)); +} +try{ +if(_4===""||_4.search(/[^\w\.]+/i)!=-1){ +return new Function(_4); +}else{ +return d.getObject(_4,false)||new Function(_4); +} +} +catch(e){ +return new Function(); +} +case "array": +return _4?_4.split(/\s*,\s*/):[]; +case "date": +switch(_4){ +case "": +return new Date(""); +case "now": +return new Date(); +default: +return d.date.stamp.fromISOString(_4); +} +case "url": +return d.baseUrl+_4; +default: +return d.fromJson(_4); +} +}; +var _6={}; +dojo.connect(dojo,"extend",function(){ +_6={}; +}); +function _7(_8){ +if(!_6[_8]){ +var _9=d.getObject(_8); +if(!_9){ +return null; +} +var _a=_9.prototype; +var _b={},_c={}; +for(var _d in _a){ +if(_d.charAt(0)=="_"){ +continue; +} +if(_d in _c){ +continue; +} +var _e=_a[_d]; +_b[_d]=_1(_e); +} +_6[_8]={cls:_9,params:_b}; +} +return _6[_8]; +}; +this._functionFromScript=function(_f){ +var _10=""; +var _11=""; +var _12=_f.getAttribute("args"); +if(_12){ +d.forEach(_12.split(/\s*,\s*/),function(_13,idx){ +_10+="var "+_13+" = arguments["+idx+"]; "; +}); +} +var _14=_f.getAttribute("with"); +if(_14&&_14.length){ +d.forEach(_14.split(/\s*,\s*/),function(_15){ +_10+="with("+_15+"){"; +_11+="}"; +}); +} +return new Function(_10+_f.innerHTML+_11); +}; +this.instantiate=function(_16,_17,_18){ +var _19=[],dp=dojo.parser; +_17=_17||{}; +_18=_18||{}; +d.forEach(_16,function(obj){ +if(!obj){ +return; +} +var _1a,_1b,_1c,_1d,_1e; +if(obj.node){ +_1a=obj.node; +_1b=obj.type; +_1c=obj.clsInfo||(_1b&&_7(_1b)); +_1d=_1c&&_1c.cls; +_1e=obj.scripts; +}else{ +_1a=obj; +_1b=dp._attrName in _17?_17[dp._attrName]:_1a.getAttribute(dp._attrName); +_1c=_1b&&_7(_1b); +_1d=_1c&&_1c.cls; +_1e=(_1d&&(_1d._noScript||_1d.prototype._noScript)?[]:d.query("> script[type^='dojo/']",_1a)); +} +if(!_1c){ +throw new Error("Could not load class '"+_1b); +} +var _1f={},_20=_1a.attributes; +if(_18.defaults){ +dojo.mixin(_1f,_18.defaults); +} +if(obj.inherited){ +dojo.mixin(_1f,obj.inherited); +} +for(var _21 in _1c.params){ +var _22=_21 in _17?{value:_17[_21],specified:true}:_20.getNamedItem(_21); +if(!_22||(!_22.specified&&(!dojo.isIE||_21.toLowerCase()!="value"))){ +continue; +} +var _23=_22.value; +switch(_21){ +case "class": +_23="className" in _17?_17.className:_1a.className; +break; +case "style": +_23="style" in _17?_17.style:(_1a.style&&_1a.style.cssText); +} +var _24=_1c.params[_21]; +if(typeof _23=="string"){ +_1f[_21]=_3(_23,_24); +}else{ +_1f[_21]=_23; +} +} +var _25=[],_26=[]; +d.forEach(_1e,function(_27){ +_1a.removeChild(_27); +var _28=_27.getAttribute("event"),_1b=_27.getAttribute("type"),nf=d.parser._functionFromScript(_27); +if(_28){ +if(_1b=="dojo/connect"){ +_25.push({event:_28,func:nf}); +}else{ +_1f[_28]=nf; +} +}else{ +_26.push(nf); +} +}); +var _29=_1d.markupFactory||_1d.prototype&&_1d.prototype.markupFactory; +var _2a=_29?_29(_1f,_1a,_1d):new _1d(_1f,_1a); +_19.push(_2a); +var _2b=_1a.getAttribute("jsId"); +if(_2b){ +d.setObject(_2b,_2a); +} +d.forEach(_25,function(_2c){ +d.connect(_2a,_2c.event,null,_2c.func); +}); +d.forEach(_26,function(_2d){ +_2d.call(_2a); +}); +}); +if(!_17._started){ +d.forEach(_19,function(_2e){ +if(!_18.noStart&&_2e&&_2e.startup&&!_2e._started&&(!_2e.getParent||!_2e.getParent())){ +_2e.startup(); +} +}); +} +return _19; +}; +this.parse=function(_2f,_30){ +var _31; +if(!_30&&_2f&&_2f.rootNode){ +_30=_2f; +_31=_30.rootNode; +}else{ +_31=_2f; +} +var _32=this._attrName; +function _33(_34,_35){ +var _36=dojo.clone(_34.inherited); +dojo.forEach(["dir","lang"],function(_37){ +var val=_34.node.getAttribute(_37); +if(val){ +_36[_37]=val; +} +}); +var _38=_34.scripts; +var _39=!_34.clsInfo||!_34.clsInfo.cls.prototype.stopParser; +for(var _3a=_34.node.firstChild;_3a;_3a=_3a.nextSibling){ +if(_3a.nodeType==1){ +var _3b=_39&&_3a.getAttribute(_32); +if(_3b){ +var _3c={"type":_3b,clsInfo:_7(_3b),node:_3a,scripts:[],inherited:_36}; +_35.push(_3c); +_33(_3c,_35); +}else{ +if(_38&&_3a.nodeName.toLowerCase()=="script"){ +_3b=_3a.getAttribute("type"); +if(_3b&&/^dojo\//i.test(_3b)){ +_38.push(_3a); +} +}else{ +if(_39){ +_33({node:_3a,inherited:_36},_35); +} +} +} +} +} +}; +var _3d=[]; +_33({node:_31?dojo.byId(_31):dojo.body(),inherited:(_30&&_30.inherited)||{dir:dojo._isBodyLtr()?"ltr":"rtl"}},_3d); +return this.instantiate(_3d,null,_30); +}; +}(); +(function(){ +var _3e=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,_3e); +}else{ +dojo._loaders.unshift(_3e); +} +})(); +} diff --git a/lib/dojo/regexp.js b/lib/dojo/regexp.js new file mode 100644 index 000000000..2c63514f3 --- /dev/null +++ b/lib/dojo/regexp.js @@ -0,0 +1,32 @@ +/* + 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["dojo.regexp"]){ +dojo._hasResource["dojo.regexp"]=true; +dojo.provide("dojo.regexp"); +dojo.regexp.escapeString=function(_1,_2){ +return _1.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,function(ch){ +if(_2&&_2.indexOf(ch)!=-1){ +return ch; +} +return "\\"+ch; +}); +}; +dojo.regexp.buildGroupRE=function(_3,re,_4){ +if(!(_3 instanceof Array)){ +return re(_3); +} +var b=[]; +for(var i=0;i<_3.length;i++){ +b.push(re(_3[i])); +} +return dojo.regexp.group(b.join("|"),_4); +}; +dojo.regexp.group=function(_5,_6){ +return "("+(_6?"?:":"")+_5+")"; +}; +} diff --git a/lib/dojo/resources/LICENSE b/lib/dojo/resources/LICENSE new file mode 100644 index 000000000..eb28b7e4d --- /dev/null +++ b/lib/dojo/resources/LICENSE @@ -0,0 +1,30 @@ +License Disclaimer: + +All contents of this directory are Copyright (c) the Dojo Foundation, with the +following exceptions: +------------------------------------------------------------------------------- + +dojo.css: + * parts Copyright (c) 2007, Yahoo! Inc. All rights reserved. + Distributed under the terms of the BSD License + +The Program includes all or portions of the following software which was obtained under the terms and conditions of the BSD License. + +http://developer.yahoo.com/yui/license.html + +Copyright (c) 2007, Yahoo! Inc. + All rights reserved. + Redistribution and use of this software 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 Yahoo! Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without +specific prior written permission of Yahoo! Inc. +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. diff --git a/lib/dojo/resources/_modules.js b/lib/dojo/resources/_modules.js new file mode 100644 index 000000000..8d3fc5de7 --- /dev/null +++ b/lib/dojo/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/dojo/resources/blank.gif b/lib/dojo/resources/blank.gif Binary files differnew file mode 100644 index 000000000..e565824aa --- /dev/null +++ b/lib/dojo/resources/blank.gif diff --git a/lib/dojo/resources/blank.html b/lib/dojo/resources/blank.html new file mode 100644 index 000000000..40fe7705a --- /dev/null +++ b/lib/dojo/resources/blank.html @@ -0,0 +1 @@ +<html><head><script>isLoaded = true;</script></head><body></body></html> diff --git a/lib/dojo/resources/dnd.css b/lib/dojo/resources/dnd.css new file mode 100644 index 000000000..def28fc95 --- /dev/null +++ b/lib/dojo/resources/dnd.css @@ -0,0 +1,14 @@ + +.dojoDndAvatar {font-size: 75%; color: black;} +.dojoDndAvatarHeader td {padding-left: 20px; padding-right: 4px;} +.dojoDndAvatarHeader {background: #ccc;} +.dojoDndAvatarItem {background: #eee;} +.dojoDndMove .dojoDndAvatarHeader {background-image: url(images/dndNoMove.png); background-repeat: no-repeat;} +.dojoDndCopy .dojoDndAvatarHeader {background-image: url(images/dndNoCopy.png); background-repeat: no-repeat;} +.dojoDndMove .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-image: url(images/dndMove.png); background-repeat: no-repeat;} +.dojoDndCopy .dojoDndAvatarCanDrop .dojoDndAvatarHeader {background-image: url(images/dndCopy.png); background-repeat: no-repeat;} +.dojoDndHandle {cursor: move;} +.dojoDndIgnore {cursor: default;} +.dijit_a11y .dojoDndAvatar { font-size: 1em; font-weight:bold;} +.dijit_a11y .dojoDndAvatarHeader td {padding-left:2px !important;} +.dijit_a11y .dojoDndAvatarHeader td span {padding-right: 5px;} diff --git a/lib/dojo/resources/dojo.css b/lib/dojo/resources/dojo.css new file mode 100644 index 000000000..baf06cb7b --- /dev/null +++ b/lib/dojo/resources/dojo.css @@ -0,0 +1,98 @@ + +body, div, dl, dt, dd, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote, th, td { + margin: 0; + padding: 0; +} +fieldset, img { + border: 0 none; +} +address, caption, cite, code, dfn, th, var { + font-style: normal; + font-weight: normal; +} +caption, th { + text-align: left; +} +q:before, q:after { + content:""; +} +abbr, acronym { + border:0; +} +body { + font: 12px Myriad,Helvetica,Tahoma,Arial,clean,sans-serif; + *font-size: 75%; +} +h1 { + font-size: 1.5em; + font-weight: normal; + line-height: 1em; + margin-top: 1em; + margin-bottom:0; +} +h2 { + font-size: 1.1667em; + font-weight: bold; + line-height: 1.286em; + margin-top: 1.929em; + margin-bottom:0.643em; +} +h3, h4, h5, h6 { + font-size: 1em; + font-weight: bold; + line-height: 1.5em; + margin-top: 1.5em; + margin-bottom: 0; +} +p { + font-size: 1em; + margin-top: 1.5em; + margin-bottom: 1.5em; + line-height: 1.5em; +} +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: Courier, "Courier New"; + background-color: #efefef; + border: 1px solid #ccc; +} +pre { + border-width: 1px 0; + padding: 1.5em; +} +table { font-size:100%; } +.dojoTabular { + border-collapse: collapse; + border-spacing: 0; + border: 1px solid #ccc; + margin: 0 1.5em; +} +.dojoTabular th { + text-align: center; + font-weight: bold; +} +.dojoTabular thead, +.dojoTabular tfoot { + background-color: #efefef; + border: 1px solid #ccc; + border-width: 1px 0; +} +.dojoTabular th, +.dojoTabular td { + padding: 0.25em 0.5em; +} diff --git a/lib/dojo/resources/iframe_history.html b/lib/dojo/resources/iframe_history.html new file mode 100644 index 000000000..2c5acce2d --- /dev/null +++ b/lib/dojo/resources/iframe_history.html @@ -0,0 +1,44 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + <title></title> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <script type="text/javascript"> + // <!-- + var noInit = false; + + function init(){ + if(noInit){ return; } + var hasParentDojo = false; + try{ + hasParentDojo = window.parent != window && window.parent["dojo"]; + }catch(e){ + alert("Initializing iframe_history.html failed. If you are using a cross-domain Dojo build," + + " please save iframe_history.html to your domain and set djConfig.dojoIframeHistoryUrl" + + " to the path on your domain to iframe_history.html"); + throw e; + } + + if(hasParentDojo){ + //Set the page title so IE history shows up with a somewhat correct name. + document.title = window.parent.document.title; + + //Notify parent that we are loaded. + var pdj = window.parent.dojo; + if(pdj["back"]){ + pdj.back._iframeLoaded(null, window.location); + } + } + + } + // --> + </script> +</head> +<body onload="try{ init(); }catch(e){ alert(e); }"> + <h4>The Dojo Toolkit -- iframe_history.html</h4> + + <p>This file is used in Dojo's back/fwd button management.</p> +</body> +</html> diff --git a/lib/dojo/resources/images/dndCopy.png b/lib/dojo/resources/images/dndCopy.png Binary files differnew file mode 100644 index 000000000..660ca4fb1 --- /dev/null +++ b/lib/dojo/resources/images/dndCopy.png diff --git a/lib/dojo/resources/images/dndMove.png b/lib/dojo/resources/images/dndMove.png Binary files differnew file mode 100644 index 000000000..74af29c08 --- /dev/null +++ b/lib/dojo/resources/images/dndMove.png diff --git a/lib/dojo/resources/images/dndNoCopy.png b/lib/dojo/resources/images/dndNoCopy.png Binary files differnew file mode 100644 index 000000000..998c2f269 --- /dev/null +++ b/lib/dojo/resources/images/dndNoCopy.png diff --git a/lib/dojo/resources/images/dndNoMove.png b/lib/dojo/resources/images/dndNoMove.png Binary files differnew file mode 100644 index 000000000..e909173e0 --- /dev/null +++ b/lib/dojo/resources/images/dndNoMove.png diff --git a/lib/dojo/robot.js b/lib/dojo/robot.js new file mode 100644 index 000000000..88af37cef --- /dev/null +++ b/lib/dojo/robot.js @@ -0,0 +1,89 @@ +/* + 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["dojo.robot"]){ +dojo._hasResource["dojo.robot"]=true; +dojo.provide("dojo.robot"); +dojo.experimental("dojo.robot"); +dojo.require("doh.robot"); +dojo.require("dojo.window"); +(function(){ +dojo.mixin(doh.robot,{_resolveNode:function(n){ +if(typeof n=="function"){ +n=n(); +} +return n?dojo.byId(n):null; +},_scrollIntoView:function(n){ +var d=dojo,dr=doh.robot,p=null; +d.forEach(dr._getWindowChain(n),function(w){ +d.withGlobal(w,function(){ +var p2=d.position(n,false),b=d._getPadBorderExtents(n),_1=null; +if(!p){ +p=p2; +}else{ +_1=p; +p={x:p.x+p2.x+b.l,y:p.y+p2.y+b.t,w:p.w,h:p.h}; +} +dojo.window.scrollIntoView(n,p); +p2=d.position(n,false); +if(!_1){ +p=p2; +}else{ +p={x:_1.x+p2.x+b.l,y:_1.y+p2.y+b.t,w:p.w,h:p.h}; +} +n=w.frameElement; +}); +}); +},_position:function(n){ +var d=dojo,p=null,M=Math.max,m=Math.min; +d.forEach(doh.robot._getWindowChain(n),function(w){ +d.withGlobal(w,function(){ +var p2=d.position(n,false),b=d._getPadBorderExtents(n); +if(!p){ +p=p2; +}else{ +var _2; +d.withGlobal(n.contentWindow,function(){ +_2=dojo.window.getBox(); +}); +p2.r=p2.x+_2.w; +p2.b=p2.y+_2.h; +p={x:M(p.x+p2.x,p2.x)+b.l,y:M(p.y+p2.y,p2.y)+b.t,r:m(p.x+p2.x+p.w,p2.r)+b.l,b:m(p.y+p2.y+p.h,p2.b)+b.t}; +p.w=p.r-p.x; +p.h=p.b-p.y; +} +n=w.frameElement; +}); +}); +return p; +},_getWindowChain:function(n){ +var cW=dojo.window.get(n.ownerDocument); +var _3=[cW]; +var f=cW.frameElement; +return (cW==dojo.global||f==null)?_3:_3.concat(doh.robot._getWindowChain(f)); +},scrollIntoView:function(_4,_5){ +doh.robot.sequence(function(){ +doh.robot._scrollIntoView(doh.robot._resolveNode(_4)); +},_5); +},mouseMoveAt:function(_6,_7,_8,_9,_a){ +doh.robot._assertRobot(); +_8=_8||100; +this.sequence(function(){ +_6=doh.robot._resolveNode(_6); +doh.robot._scrollIntoView(_6); +var _b=doh.robot._position(_6); +if(_a===undefined){ +_9=_b.w/2; +_a=_b.h/2; +} +var x=_b.x+_9; +var y=_b.y+_a; +doh.robot._mouseMove(x,y,false,_8); +},_7,_8); +}}); +})(); +} diff --git a/lib/dojo/robotx.js b/lib/dojo/robotx.js new file mode 100644 index 000000000..5ed39000d --- /dev/null +++ b/lib/dojo/robotx.js @@ -0,0 +1,80 @@ +/* + 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["dojo.robotx"]){ +dojo._hasResource["dojo.robotx"]=true; +dojo.provide("dojo.robotx"); +dojo.require("dojo.robot"); +dojo.experimental("dojo.robotx"); +(function(){ +doh.robot._runsemaphore.lock.push("dojo.robotx.lock"); +var _1=document.getElementById("robotapplication"); +var _2=dojo.connect(doh,"_groupStarted",function(){ +dojo.disconnect(_2); +_1.style.visibility="visible"; +}); +var _3=function(){ +doh.robot._updateDocument(); +_3=null; +var _4=(document.compatMode=="BackCompat")?document.body:document.documentElement; +var _5=document.getElementById("robotconsole").offsetHeight; +if(_5){ +_1.style.height=(_4.clientHeight-_5)+"px"; +} +doh.run(); +}; +var _6=function(){ +if(_3){ +_3(); +} +var _7=dojo.connect(dojo.body(),"onunload",function(){ +dojo.global=window; +dojo.doc=document; +dojo.disconnect(_7); +}); +}; +dojo.config.debugContainerId="robotconsole"; +dojo.config.debugHeight=dojo.config.debugHeight||200; +document.write("<div id=\"robotconsole\" style=\"position:absolute;left:0px;bottom:0px;width:100%;\"></div>"); +_1=document.createElement("iframe"); +_1.setAttribute("ALLOWTRANSPARENCY","true"); +_1.scrolling=dojo.isIE?"yes":"auto"; +dojo.style(_1,{visibility:"hidden",border:"0px none",padding:"0px",margin:"0px",position:"absolute",left:"0px",top:"0px",width:"100%",height:"100%"}); +if(_1["attachEvent"]!==undefined){ +_1.attachEvent("onload",_6); +}else{ +dojo.connect(_1,"onload",_6); +} +dojo.mixin(doh.robot,{_updateDocument:function(){ +dojo.setContext(_1.contentWindow,_1.contentWindow.document); +var _8=dojo.global; +if(_8["dojo"]){ +dojo._topics=_8.dojo._topics; +} +},initRobot:function(_9){ +_1.src=_9; +dojo.addOnLoad(function(){ +var _a={overflow:dojo.isWebKit?"hidden":"visible",margin:"0px",borderWidth:"0px",height:"100%",width:"100%"}; +dojo.style(document.documentElement,_a); +dojo.style(document.body,_a); +document.body.appendChild(_1); +var _b=document.createElement("base"); +_b.href=_9; +document.getElementsByTagName("head")[0].appendChild(_b); +}); +},waitForPageToLoad:function(_c){ +var d=new doh.Deferred(); +_3=function(){ +_3=null; +doh.robot._updateDocument(); +d.callback(true); +}; +_c(); +return d; +}}); +})(); +} diff --git a/lib/dojo/rpc/JsonService.js b/lib/dojo/rpc/JsonService.js new file mode 100644 index 000000000..b88e5f531 --- /dev/null +++ b/lib/dojo/rpc/JsonService.js @@ -0,0 +1,37 @@ +/* + 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["dojo.rpc.JsonService"]){ +dojo._hasResource["dojo.rpc.JsonService"]=true; +dojo.provide("dojo.rpc.JsonService"); +dojo.require("dojo.rpc.RpcService"); +dojo.declare("dojo.rpc.JsonService",dojo.rpc.RpcService,{bustCache:false,contentType:"application/json-rpc",lastSubmissionId:0,callRemote:function(_1,_2){ +var _3=new dojo.Deferred(); +this.bind(_1,_2,_3); +return _3; +},bind:function(_4,_5,_6,_7){ +var _8=dojo.rawXhrPost({url:_7||this.serviceUrl,postData:this.createRequest(_4,_5),contentType:this.contentType,timeout:this.timeout,handleAs:"json-comment-optional"}); +_8.addCallbacks(this.resultCallback(_6),this.errorCallback(_6)); +},createRequest:function(_9,_a){ +var _b={"params":_a,"method":_9,"id":++this.lastSubmissionId}; +var _c=dojo.toJson(_b); +return _c; +},parseResults:function(_d){ +if(dojo.isObject(_d)){ +if("result" in _d){ +return _d.result; +} +if("Result" in _d){ +return _d.Result; +} +if("ResultSet" in _d){ +return _d.ResultSet; +} +} +return _d; +}}); +} diff --git a/lib/dojo/rpc/JsonpService.js b/lib/dojo/rpc/JsonpService.js new file mode 100644 index 000000000..68c971207 --- /dev/null +++ b/lib/dojo/rpc/JsonpService.js @@ -0,0 +1,32 @@ +/* + 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["dojo.rpc.JsonpService"]){ +dojo._hasResource["dojo.rpc.JsonpService"]=true; +dojo.provide("dojo.rpc.JsonpService"); +dojo.require("dojo.rpc.RpcService"); +dojo.require("dojo.io.script"); +dojo.declare("dojo.rpc.JsonpService",dojo.rpc.RpcService,{constructor:function(_1,_2){ +if(this.required){ +if(_2){ +dojo.mixin(this.required,_2); +} +dojo.forEach(this.required,function(_3){ +if(_3==""||_3==undefined){ +throw new Error("Required Service Argument not found: "+_3); +} +}); +} +},strictArgChecks:false,bind:function(_4,_5,_6,_7){ +var _8=dojo.io.script.get({url:_7||this.serviceUrl,callbackParamName:this.callbackParamName||"callback",content:this.createRequest(_5),timeout:this.timeout,handleAs:"json",preventCache:true}); +_8.addCallbacks(this.resultCallback(_6),this.errorCallback(_6)); +},createRequest:function(_9){ +var _a=(dojo.isArrayLike(_9)&&_9.length==1)?_9[0]:{}; +dojo.mixin(_a,this.required); +return _a; +}}); +} diff --git a/lib/dojo/rpc/RpcService.js b/lib/dojo/rpc/RpcService.js new file mode 100644 index 000000000..03c6a46b6 --- /dev/null +++ b/lib/dojo/rpc/RpcService.js @@ -0,0 +1,89 @@ +/* + 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["dojo.rpc.RpcService"]){ +dojo._hasResource["dojo.rpc.RpcService"]=true; +dojo.provide("dojo.rpc.RpcService"); +dojo.declare("dojo.rpc.RpcService",null,{constructor:function(_1){ +if(_1){ +if((dojo.isString(_1))||(_1 instanceof dojo._Url)){ +if(_1 instanceof dojo._Url){ +var _2=_1+""; +}else{ +_2=_1; +} +var _3=dojo.xhrGet({url:_2,handleAs:"json-comment-optional",sync:true}); +_3.addCallback(this,"processSmd"); +_3.addErrback(function(){ +throw new Error("Unable to load SMD from "+_1); +}); +}else{ +if(_1.smdStr){ +this.processSmd(dojo.eval("("+_1.smdStr+")")); +}else{ +if(_1.serviceUrl){ +this.serviceUrl=_1.serviceUrl; +} +this.timeout=_1.timeout||3000; +if("strictArgChecks" in _1){ +this.strictArgChecks=_1.strictArgChecks; +} +this.processSmd(_1); +} +} +} +},strictArgChecks:true,serviceUrl:"",parseResults:function(_4){ +return _4; +},errorCallback:function(_5){ +return function(_6){ +_5.errback(_6.message); +}; +},resultCallback:function(_7){ +var tf=dojo.hitch(this,function(_8){ +if(_8.error!=null){ +var _9; +if(typeof _8.error=="object"){ +_9=new Error(_8.error.message); +_9.code=_8.error.code; +_9.error=_8.error.error; +}else{ +_9=new Error(_8.error); +} +_9.id=_8.id; +_9.errorObject=_8; +_7.errback(_9); +}else{ +_7.callback(this.parseResults(_8)); +} +}); +return tf; +},generateMethod:function(_a,_b,_c){ +return dojo.hitch(this,function(){ +var _d=new dojo.Deferred(); +if((this.strictArgChecks)&&(_b!=null)&&(arguments.length!=_b.length)){ +throw new Error("Invalid number of parameters for remote method."); +}else{ +this.bind(_a,dojo._toArray(arguments),_d,_c); +} +return _d; +}); +},processSmd:function(_e){ +if(_e.methods){ +dojo.forEach(_e.methods,function(m){ +if(m&&m.name){ +this[m.name]=this.generateMethod(m.name,m.parameters,m.url||m.serviceUrl||m.serviceURL); +if(!dojo.isFunction(this[m.name])){ +throw new Error("RpcService: Failed to create"+m.name+"()"); +} +} +},this); +} +this.serviceUrl=_e.serviceUrl||_e.serviceURL; +this.required=_e.required; +this.smd=_e; +}}); +} diff --git a/lib/dojo/string.js b/lib/dojo/string.js new file mode 100644 index 000000000..076283bee --- /dev/null +++ b/lib/dojo/string.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["dojo.string"]){ +dojo._hasResource["dojo.string"]=true; +dojo.provide("dojo.string"); +dojo.string.rep=function(_1,_2){ +if(_2<=0||!_1){ +return ""; +} +var _3=[]; +for(;;){ +if(_2&1){ +_3.push(_1); +} +if(!(_2>>=1)){ +break; +} +_1+=_1; +} +return _3.join(""); +}; +dojo.string.pad=function(_4,_5,ch,_6){ +if(!ch){ +ch="0"; +} +var _7=String(_4),_8=dojo.string.rep(ch,Math.ceil((_5-_7.length)/ch.length)); +return _6?_7+_8:_8+_7; +}; +dojo.string.substitute=function(_9,_a,_b,_c){ +_c=_c||dojo.global; +_b=_b?dojo.hitch(_c,_b):function(v){ +return v; +}; +return _9.replace(/\$\{([^\s\:\}]+)(?:\:([^\s\:\}]+))?\}/g,function(_d,_e,_f){ +var _10=dojo.getObject(_e,false,_a); +if(_f){ +_10=dojo.getObject(_f,false,_c).call(_c,_10,_e); +} +return _b(_10,_e).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; +}; +} diff --git a/lib/dojo/uacss.js b/lib/dojo/uacss.js new file mode 100644 index 000000000..a7ba89e0b --- /dev/null +++ b/lib/dojo/uacss.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["dojo.uacss"]){ +dojo._hasResource["dojo.uacss"]=true; +dojo.provide("dojo.uacss"); +(function(){ +var d=dojo,_1=d.doc.documentElement,ie=d.isIE,_2=d.isOpera,_3=Math.floor,ff=d.isFF,_4=d.boxModel.replace(/-/,""),_5={dj_ie:ie,dj_ie6:_3(ie)==6,dj_ie7:_3(ie)==7,dj_ie8:_3(ie)==8,dj_quirks:d.isQuirks,dj_iequirks:ie&&d.isQuirks,dj_opera:_2,dj_khtml:d.isKhtml,dj_webkit:d.isWebKit,dj_safari:d.isSafari,dj_chrome:d.isChrome,dj_gecko:d.isMozilla,dj_ff3:_3(ff)==3}; +_5["dj_"+_4]=true; +var _6=""; +for(var _7 in _5){ +if(_5[_7]){ +_6+=_7+" "; +} +} +_1.className=d.trim(_1.className+" "+_6); +dojo._loaders.unshift(function(){ +if(!dojo._isBodyLtr()){ +var _8="dj_rtl dijitRtl "+_6.replace(/ /g,"-rtl "); +_1.className=d.trim(_1.className+" "+_8); +} +}); +})(); +} diff --git a/lib/dojo/window.js b/lib/dojo/window.js new file mode 100644 index 000000000..e6750dd70 --- /dev/null +++ b/lib/dojo/window.js @@ -0,0 +1,113 @@ +/* + 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["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); +} +}; +} |