/** * AngularUI - The companion suite for AngularJS * @version v0.3.2 - 2012-12-04 * @link http://angular-ui.github.com * @license MIT License, http://www.opensource.org/licenses/MIT */ // READ: http://docs-next.angularjs.org/guide/ie // element tags are statically defined in order to accommodate lazy-loading whereby directives are also unknown // The ieshiv takes care of our ui.directives and AngularJS's ng-view, ng-include, ng-pluralize, ng-switch. // However, IF you have custom directives that can be used as html tags (yours or someone else's) then // add list of directives into window.myCustomTags // (function (exports) { var debug = window.ieShivDebug || false, tags = [ "ngInclude", "ngPluralize", "ngView", "ngSwitch", "uiCurrency", "uiCodemirror", "uiDate", "uiEvent", "uiKeypress", "uiKeyup", "uiKeydown", "uiMask", "uiMapInfoWindow", "uiMapMarker", "uiMapPolyline", "uiMapPolygon", "uiMapRectangle", "uiMapCircle", "uiMapGroundOverlay", "uiModal", "uiReset", "uiScrollfix", "uiSelect2", "uiShow", "uiHide", "uiToggle", "uiSortable", "uiTinymce" ]; window.myCustomTags = window.myCustomTags || []; // externally defined by developer using angular-ui directives tags.push.apply(tags, window.myCustomTags); 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 shiv = function () { for (var i = 0, tlen = tags.length; i < tlen; i++) { var customElements = toCustomElements(tags[i], ':'); for (var j = 0, clen = customElements.length; j < clen; j++) { var customElement = customElements[j]; document.createElement(customElement); } } }; var ieVersion = getIE(); if ((ieVersion > -1 && ieVersion < 9) || debug) { shiv(); } })(window);