forked from Coded/SIPRP
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							69 lines
						
					
					
						
							2.6 KiB
						
					
					
				
			
		
		
	
	
							69 lines
						
					
					
						
							2.6 KiB
						
					
					
				| /**
 | |
|  * angular-ui-utils - Swiss-Army-Knife of AngularJS tools (with no external dependencies!)
 | |
|  * @version v0.1.0 - 2013-12-30
 | |
|  * @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 <code>window.myCustomTags</code>
 | |
| 
 | |
| // <!--[if lte IE 8]>
 | |
| //    <script>
 | |
| //    window.myCustomTags = [ 'yourCustomDirective', 'somebodyElsesDirective' ]; // optional
 | |
| //    </script>
 | |
| //    <script src="build/angular-ui-ieshiv.js"></script>
 | |
| // <![endif]-->
 | |
| 
 | |
| (function (window, document) {
 | |
|   "use strict";
 | |
| 
 | |
|   var 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 toCustomElements = function (str) {
 | |
|     var result = [];
 | |
|     var dashed = str.replace(/([A-Z])/g, function ($1) {
 | |
|       return " " + $1.toLowerCase();
 | |
|     });
 | |
|     var tokens = dashed.split(" ");
 | |
| 
 | |
|     // If a token is just a single name (i.e. no namespace) then we juse define the elements the name given
 | |
|     if (tokens.length === 1) {
 | |
|       var name = tokens[0];
 | |
| 
 | |
|       result.push(name);
 | |
|       result.push("x-" + name);
 | |
|       result.push("data-" + name);
 | |
|     } else {
 | |
|       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;
 | |
|   };
 | |
| 
 | |
|   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);
 | |
|     }
 | |
|   }
 | |
| 
 | |
| })(window, document);
 |