vendor/assets/javascripts/angular-ui-ieshiv.js in angular-ui-rails-0.0.1 vs vendor/assets/javascripts/angular-ui-ieshiv.js in angular-ui-rails-0.2.1
- old
+ new
@@ -1,84 +1,88 @@
/**
* AngularUI - The companion suite for AngularJS
- * @version v0.2.0 - 2012-08-06
+ * @version v0.2.1 - 2012-09-19
* @link http://angular-ui.github.com
* @license MIT License, http://www.opensource.org/licenses/MIT
*/
// READ: http://docs-next.angularjs.org/guide/ie
-(function(exports){
-
+(function (exports) {
+
var debug = window.ieShivDebug || false;
-
- var getIE = function() {
- // Returns the version of Internet Explorer or a -1
- // (indicating the use of another browser).
- var rv = -1; // Return value assumes failure.
- if (navigator.appName == 'Microsoft Internet Explorer') {
- var ua = navigator.userAgent;
- var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
- if (re.exec(ua) != null) {
- rv = parseFloat( RegExp.$1 );
- }
- }
- return rv;
+
+ var getIE = function () {
+ // Returns the version of Internet Explorer or a -1
+ // (indicating the use of another browser).
+ var rv = -1; // Return value assumes failure.
+ if (navigator.appName === 'Microsoft Internet Explorer') {
+ var ua = navigator.userAgent;
+ var re = new RegExp("MSIE ([0-9]{1,}[\\.0-9]{0,})");
+ if (re.exec(ua) !== null) {
+ rv = parseFloat(RegExp.$1);
+ }
+ }
+ return rv;
};
- var toCustomElements = function(str,delim) {
- var result = [];
- var dashed = str.replace(/([A-Z])/g, function($1) { return " "+$1.toLowerCase();} );
- var tokens = dashed.split(' ');
- var ns = tokens[0];
- var dirname = tokens.slice(1).join('-');
-
- // this is finite list and it seemed senseless to create a custom method
- result.push(ns + ":" + dirname);
- result.push(ns + "-" + dirname);
- result.push("x-" + ns + "-" + dirname);
- result.push("data-" + ns + "-" + dirname);
- return result;
+ var toCustomElements = function (str, delim) {
+ var result = [];
+ var dashed = str.replace(/([A-Z])/g, function ($1) {
+ return " " + $1.toLowerCase();
+ });
+ var tokens = dashed.split(' ');
+ var ns = tokens[0];
+ var dirname = tokens.slice(1).join('-');
+
+ // this is finite list and it seemed senseless to create a custom method
+ result.push(ns + ":" + dirname);
+ result.push(ns + "-" + dirname);
+ result.push("x-" + ns + "-" + dirname);
+ result.push("data-" + ns + "-" + dirname);
+ return result;
};
- var shiv = function() {
- // TODO: unfortunately, angular is not exposing these in 'ng' module
- var tags = [ 'ngInclude', 'ngPluralize', 'ngView' ]; // angular specific,
-
- // TODO: unfortunately, angular does not expose module names, it is a simple change to angular's loader.js
- // however, not sure if something happens when referencing them, so maybe an OK thing.
-
- var moduleNames = window.myAngularModules || []; // allow user to inject their own directives
- moduleNames.push('ui.directives');
-
- if(debug) console.log('moduleNames', moduleNames);
- for(var k = 0, mlen = moduleNames.length; k < mlen; k++) {
- var modules = angular.module(moduleNames[k]); // will throw runtime exception
- angular.forEach(modules._invokeQueue, function(item) {
- // only allow directives
- if(item[1] === "directive") {
- var dirname = item[2][0];
- tags.push(dirname);
- } else {
- if(debug) console.log("skipping",item[1], item[2][0]);
- }
- });
- }
-
- if(debug) console.log("tags found", tags);
- for(var i = 0, tlen = tags.length; i < tlen; i++) {
- if(debug) console.log("tag",tags[i]);
- var customElements = toCustomElements(tags[i],':');
- for(var j = 0, clen = customElements.length; j < clen; j++) {
- var customElement = customElements[j];
- if(debug) console.log("shivving",customElement);
- document.createElement(customElement);
- }
+ var shiv = function () {
+ // TODO: unfortunately, angular is not exposing these in 'ng' module
+ var tags = [ 'ngInclude', 'ngPluralize', 'ngView', 'ngSwitch' ]; // angular specific,
+
+ // TODO: unfortunately, angular does not expose module names, it is a simple change to angular's loader.js
+ // however, not sure if something happens when referencing them, so maybe an OK thing.
+
+ var moduleNames = window.myAngularModules || []; // allow user to inject their own directives
+ moduleNames.push('ui.directives');
+
+ if (debug) console.log('moduleNames', moduleNames);
+ function pushDirectives(item) {
+ // only allow directives
+ if (item[1] === "directive") {
+ var dirname = item[2][0];
+ tags.push(dirname);
+ } else {
+ if (debug) console.log("skipping", item[1], item[2][0]);
+ }
}
+
+ for (var k = 0, mlen = moduleNames.length; k < mlen; k++) {
+ var modules = angular.module(moduleNames[k]); // will throw runtime exception
+ angular.forEach(modules._invokeQueue, pushDirectives);
+ }
+
+ if (debug) console.log("tags found", tags);
+ for (var i = 0, tlen = tags.length; i < tlen; i++) {
+ if (debug) console.log("tag", tags[i]);
+ var customElements = toCustomElements(tags[i], ':');
+ for (var j = 0, clen = customElements.length; j < clen; j++) {
+ var customElement = customElements[j];
+ if (debug) console.log("shivving", customElement);
+ document.createElement(customElement);
+ }
+ }
};
-
+
var ieVersion = getIE();
-
+
if ((ieVersion > -1 && ieVersion < 9) || debug) {
shiv();
}
-
+
})(window);
\ No newline at end of file