diff options
author | Andrew Dolgov <[email protected]> | 2011-03-04 19:02:28 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2011-03-04 19:02:59 +0300 |
commit | a089699c8915636ba4f158d77dba9b012bc93208 (patch) | |
tree | b2d7d051f1f55d44a6be07d3ee137e5a7ccfcefb /lib/dojo/uacss.js | |
parent | cfad9259a6feacfa8194b1312770ae6db1ecce50 (diff) |
build custom layer of Dojo to speed up loading of tt-rss (refs #293)
Diffstat (limited to 'lib/dojo/uacss.js')
-rw-r--r-- | lib/dojo/uacss.js | 80 |
1 files changed, 63 insertions, 17 deletions
diff --git a/lib/dojo/uacss.js b/lib/dojo/uacss.js index a7ba89e0b..781ab9c36 100644 --- a/lib/dojo/uacss.js +++ b/lib/dojo/uacss.js @@ -5,24 +5,70 @@ */ -if(!dojo._hasResource["dojo.uacss"]){ -dojo._hasResource["dojo.uacss"]=true; +if(!dojo._hasResource["dojo.uacss"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojo.uacss"] = true; dojo.provide("dojo.uacss"); + (function(){ -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); -} -}); + // summary: + // Applies pre-set CSS classes to the top-level HTML node, based on: + // - browser (ex: dj_ie) + // - browser version (ex: dj_ie6) + // - box model (ex: dj_contentBox) + // - text direction (ex: dijitRtl) + // + // In addition, browser, browser version, and box model are + // combined with an RTL flag when browser text is RTL. ex: dj_ie-rtl. + + var d = dojo, + html = d.doc.documentElement, + ie = d.isIE, + opera = d.isOpera, + maj = Math.floor, + ff = d.isFF, + boxModel = d.boxModel.replace(/-/,''), + + classes = { + dj_ie: ie, + dj_ie6: maj(ie) == 6, + dj_ie7: maj(ie) == 7, + dj_ie8: maj(ie) == 8, + dj_quirks: d.isQuirks, + dj_iequirks: ie && d.isQuirks, + + // NOTE: Opera not supported by dijit + dj_opera: opera, + + dj_khtml: d.isKhtml, + + dj_webkit: d.isWebKit, + dj_safari: d.isSafari, + dj_chrome: d.isChrome, + + dj_gecko: d.isMozilla, + dj_ff3: maj(ff) == 3 + }; // no dojo unsupported browsers + + classes["dj_" + boxModel] = true; + + // apply browser, browser version, and box model class names + var classStr = ""; + for(var clz in classes){ + if(classes[clz]){ + classStr += clz + " "; + } + } + html.className = d.trim(html.className + " " + classStr); + + // If RTL mode, then add dj_rtl flag plus repeat existing classes with -rtl extension. + // We can't run the code below until the <body> tag has loaded (so we can check for dir=rtl). + // Unshift() is to run sniff code before the parser. + dojo._loaders.unshift(function(){ + if(!dojo._isBodyLtr()){ + var rtlClassStr = "dj_rtl dijitRtl " + classStr.replace(/ /g, "-rtl ") + html.className = d.trim(html.className + " " + rtlClassStr); + } + }); })(); + } |