| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 | 
							- //>>excludeStart('excludeRequireCss', pragmas.excludeRequireCss)
 
- /*
 
-  * css.normalize.js
 
-  *
 
-  * CSS Normalization
 
-  *
 
-  * CSS paths are normalized based on an optional basePath and the RequireJS config
 
-  *
 
-  * Usage:
 
-  *   normalize(css, fromBasePath, toBasePath);
 
-  *
 
-  * css: the stylesheet content to normalize
 
-  * fromBasePath: the absolute base path of the css relative to any root (but without ../ backtracking)
 
-  * toBasePath: the absolute new base path of the css relative to the same root
 
-  * 
 
-  * Absolute dependencies are left untouched.
 
-  *
 
-  * Urls in the CSS are picked up by regular expressions.
 
-  * These will catch all statements of the form:
 
-  *
 
-  * url(*)
 
-  * url('*')
 
-  * url("*")
 
-  * 
 
-  * @import '*'
 
-  * @import "*"
 
-  *
 
-  * (and so also @import url(*) variations)
 
-  *
 
-  * For urls needing normalization
 
-  *
 
-  */
 
- define(function() {
 
-   
 
-   // regular expression for removing double slashes
 
-   // eg http://www.example.com//my///url/here -> http://www.example.com/my/url/here
 
-   var slashes = /([^:])\/+/g
 
-   var removeDoubleSlashes = function(uri) {
 
-     return uri.replace(slashes, '$1/');
 
-   }
 
-   // given a relative URI, and two absolute base URIs, convert it from one base to another
 
-   var protocolRegEx = /[^\:\/]*:\/\/([^\/])*/;
 
-   var absUrlRegEx = /^(\/|data:)/;
 
-   function convertURIBase(uri, fromBase, toBase) {
 
-     if (uri.match(absUrlRegEx) || uri.match(protocolRegEx))
 
-       return uri;
 
-     uri = removeDoubleSlashes(uri);
 
-     // if toBase specifies a protocol path, ensure this is the same protocol as fromBase, if not
 
-     // use absolute path at fromBase
 
-     var toBaseProtocol = toBase.match(protocolRegEx);
 
-     var fromBaseProtocol = fromBase.match(protocolRegEx);
 
-     if (fromBaseProtocol && (!toBaseProtocol || toBaseProtocol[1] != fromBaseProtocol[1] || toBaseProtocol[2] != fromBaseProtocol[2]))
 
-       return absoluteURI(uri, fromBase);
 
-     
 
-     else {
 
-       return relativeURI(absoluteURI(uri, fromBase), toBase);
 
-     }
 
-   };
 
-   
 
-   // given a relative URI, calculate the absolute URI
 
-   function absoluteURI(uri, base) {
 
-     if (uri.substr(0, 2) == './')
 
-       uri = uri.substr(2);
 
-     // absolute urls are left in tact
 
-     if (uri.match(absUrlRegEx) || uri.match(protocolRegEx))
 
-       return uri;
 
-     
 
-     var baseParts = base.split('/');
 
-     var uriParts = uri.split('/');
 
-     
 
-     baseParts.pop();
 
-     
 
-     while (curPart = uriParts.shift())
 
-       if (curPart == '..')
 
-         baseParts.pop();
 
-       else
 
-         baseParts.push(curPart);
 
-     
 
-     return baseParts.join('/');
 
-   };
 
-   // given an absolute URI, calculate the relative URI
 
-   function relativeURI(uri, base) {
 
-     
 
-     // reduce base and uri strings to just their difference string
 
-     var baseParts = base.split('/');
 
-     baseParts.pop();
 
-     base = baseParts.join('/') + '/';
 
-     i = 0;
 
-     while (base.substr(i, 1) == uri.substr(i, 1))
 
-       i++;
 
-     while (base.substr(i, 1) != '/')
 
-       i--;
 
-     base = base.substr(i + 1);
 
-     uri = uri.substr(i + 1);
 
-     // each base folder difference is thus a backtrack
 
-     baseParts = base.split('/');
 
-     var uriParts = uri.split('/');
 
-     out = '';
 
-     while (baseParts.shift())
 
-       out += '../';
 
-     
 
-     // finally add uri parts
 
-     while (curPart = uriParts.shift())
 
-       out += curPart + '/';
 
-     
 
-     return out.substr(0, out.length - 1);
 
-   };
 
-   
 
-   var normalizeCSS = function(source, fromBase, toBase) {
 
-     fromBase = removeDoubleSlashes(fromBase);
 
-     toBase = removeDoubleSlashes(toBase);
 
-     var urlRegEx = /@import\s*("([^"]*)"|'([^']*)')|url\s*\((?!#)\s*(\s*"([^"]*)"|'([^']*)'|[^\)]*\s*)\s*\)/ig;
 
-     var result, url, source;
 
-     while (result = urlRegEx.exec(source)) {
 
-       url = result[3] || result[2] || result[5] || result[6] || result[4];
 
-       var newUrl;
 
-       newUrl = convertURIBase(url, fromBase, toBase);
 
-       var quoteLen = result[5] || result[6] ? 1 : 0;
 
-       source = source.substr(0, urlRegEx.lastIndex - url.length - quoteLen - 1) + newUrl + source.substr(urlRegEx.lastIndex - quoteLen - 1);
 
-       urlRegEx.lastIndex = urlRegEx.lastIndex + (newUrl.length - url.length);
 
-     }
 
-     
 
-     return source;
 
-   };
 
-   
 
-   normalizeCSS.convertURIBase = convertURIBase;
 
-   normalizeCSS.absoluteURI = absoluteURI;
 
-   normalizeCSS.relativeURI = relativeURI;
 
-   
 
-   return normalizeCSS;
 
- });
 
- //>>excludeEnd('excludeRequireCss')
 
 
  |