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';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}));
							 |