From 2f01fe57a8d37767827d6db42850aef86a767c53 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Mon, 15 Nov 2010 10:39:52 +0300 Subject: add dijit/dojo stuff; initial ui mockup --- lib/dojo/date/locale.js | 464 ++++++++++++++++++++++++++++++++++++++++++++++++ lib/dojo/date/stamp.js | 82 +++++++++ 2 files changed, 546 insertions(+) create mode 100644 lib/dojo/date/locale.js create mode 100644 lib/dojo/date/stamp.js (limited to 'lib/dojo/date') 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"); +}; +} -- cgit v1.2.3