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.
		
		
		
		
		
			
		
			
				
					
					
						
							112 lines
						
					
					
						
							3.0 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							112 lines
						
					
					
						
							3.0 KiB
						
					
					
				| /*! | |
|  * angular-translate - v2.15.1 - 2017-03-04 | |
|  *  | |
|  * Copyright (c) 2017 The angular-translate team, Pascal Precht; Licensed MIT | |
|  */ | |
| (function (root, factory) { | |
|   if (typeof define === 'function' && define.amd) { | |
|     // AMD. Register as an anonymous module unless amdModuleId is set | |
|     define([], function () { | |
|       return (factory()); | |
|     }); | |
|   } else if (typeof exports === 'object') { | |
|     // Node. Does not work with strict CommonJS, but | |
|     // only CommonJS-like environments that support module.exports, | |
|     // like Node. | |
|     module.exports = factory(); | |
|   } else { | |
|     factory(); | |
|   } | |
| }(this, function () { | |
| 
 | |
| $translateStaticFilesLoader.$inject = ['$q', '$http']; | |
| angular.module('pascalprecht.translate') | |
| /** | |
|  * @ngdoc object | |
|  * @name pascalprecht.translate.$translateStaticFilesLoader | |
|  * @requires $q | |
|  * @requires $http | |
|  * | |
|  * @description | |
|  * Creates a loading function for a typical static file url pattern: | |
|  * "lang-en_US.json", "lang-de_DE.json", etc. Using this builder, | |
|  * the response of these urls must be an object of key-value pairs. | |
|  * | |
|  * @param {object} options Options object, which gets prefix, suffix, key, and fileMap | |
|  */ | |
| .factory('$translateStaticFilesLoader', $translateStaticFilesLoader); | |
| 
 | |
| function $translateStaticFilesLoader($q, $http) { | |
| 
 | |
|   'use strict'; | |
| 
 | |
|   return function (options) { | |
| 
 | |
|     if (!options || (!angular.isArray(options.files) && (!angular.isString(options.prefix) || !angular.isString(options.suffix)))) { | |
|       throw new Error('Couldn\'t load static files, no files and prefix or suffix specified!'); | |
|     } | |
| 
 | |
|     if (!options.files) { | |
|       options.files = [{ | |
|         prefix: options.prefix, | |
|         suffix: options.suffix | |
|       }]; | |
|     } | |
| 
 | |
|     var load = function (file) { | |
|       if (!file || (!angular.isString(file.prefix) || !angular.isString(file.suffix))) { | |
|         throw new Error('Couldn\'t load static file, no prefix or suffix specified!'); | |
|       } | |
| 
 | |
|       var fileUrl = [ | |
|         file.prefix, | |
|         options.key, | |
|         file.suffix | |
|       ].join(''); | |
| 
 | |
|       if (angular.isObject(options.fileMap) && options.fileMap[fileUrl]) { | |
|         fileUrl = options.fileMap[fileUrl]; | |
|       } | |
| 
 | |
|       return $http(angular.extend({ | |
|         url: fileUrl, | |
|         method: 'GET' | |
|       }, options.$http)) | |
|         .then(function(result) { | |
|           return result.data; | |
|         }, function () { | |
|           return $q.reject(options.key); | |
|         }); | |
|     }; | |
| 
 | |
|     var promises = [], | |
|         length = options.files.length; | |
| 
 | |
|     for (var i = 0; i < length; i++) { | |
|       promises.push(load({ | |
|         prefix: options.files[i].prefix, | |
|         key: options.key, | |
|         suffix: options.files[i].suffix | |
|       })); | |
|     } | |
| 
 | |
|     return $q.all(promises) | |
|       .then(function (data) { | |
|         var length = data.length, | |
|             mergedData = {}; | |
| 
 | |
|         for (var i = 0; i < length; i++) { | |
|           for (var key in data[i]) { | |
|             mergedData[key] = data[i][key]; | |
|           } | |
|         } | |
| 
 | |
|         return mergedData; | |
|       }); | |
|   }; | |
| } | |
| 
 | |
| $translateStaticFilesLoader.displayName = '$translateStaticFilesLoader'; | |
| return 'pascalprecht.translate'; | |
| 
 | |
| }));
 | |
| 
 |