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.
		
		
		
		
			
				
					113 lines
				
				3.0 KiB
			
		
		
			
		
	
	
					113 lines
				
				3.0 KiB
			| 
											1 year ago
										 | /*! | ||
|  |  * 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'; | ||
|  | 
 | ||
|  | })); |