'use strict';
(function (angular) {
'use strict';
angular.module('oc.lazyLoad').config(function ($provide) {
$provide.decorator('$ocLazyLoad', function ($delegate, $templateCache, $q, $http) {
/**
* templatesLoader function
* @type Function
* @param paths array list of css files to load
* @param callback to call when everything is loaded. We use a callback and not a promise
* @param params object config parameters for $http
* because the user can overwrite templatesLoader and it will probably not use promises :(
*/
$delegate.templatesLoader = function (paths, callback, params) {
var promises = [],
filesCache = $delegate._getFilesCache();
angular.forEach(paths, function (url) {
var deferred = $q.defer();
promises.push(deferred.promise);
$http.get(url, params).then(function (response) {
var data = response.data;
Eif (angular.isString(data) && data.length > 0) {
angular.forEach(angular.element(data), function (node) {
Eif (node.nodeName === 'SCRIPT' && node.type === 'text/ng-template') {
$templateCache.put(node.id, node.innerHTML);
}
});
}
Eif (angular.isUndefined(filesCache.get(url))) {
filesCache.put(url, true);
}
deferred.resolve();
})['catch'](function (response) {
deferred.reject(new Error('Unable to load template file "' + url + '": ' + response.data));
});
});
return $q.all(promises).then(function () {
callback();
}, function (err) {
callback(err);
});
};
$delegate.templatesLoader.ocLazyLoadLoader = true;
return $delegate;
});
});
})(angular);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkM6L3d3dy9vY0xhenlMb2FkL3NyYy9vY0xhenlMb2FkLmxvYWRlcnMudGVtcGxhdGVzTG9hZGVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsQ0FBQyxVQUFBLE9BQU8sRUFBSTtBQUNSLGdCQUFZLENBQUM7O0FBRWIsV0FBTyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBUyxRQUFRLEVBQUU7QUFDcEQsZ0JBQVEsQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLFVBQVUsU0FBUyxFQUFFLGNBQWMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFOzs7Ozs7Ozs7QUFTOUUscUJBQVMsQ0FBQyxlQUFlLEdBQUcsVUFBUyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRTtBQUMxRCxvQkFBSSxRQUFRLEdBQUcsRUFBRTtvQkFDYixVQUFVLEdBQUcsU0FBUyxDQUFDLGNBQWMsRUFBRSxDQUFDOztBQUU1Qyx1QkFBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsVUFBQSxHQUFHLEVBQUk7QUFDMUIsd0JBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUMxQiw0QkFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDaEMseUJBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFBLFFBQVEsRUFBSTtBQUNwQyw0QkFBSSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztBQUN6Qiw0QkFBRyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO0FBQzFDLG1DQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsVUFBQSxJQUFJLEVBQUk7QUFDM0Msb0NBQUcsSUFBSSxDQUFDLFFBQVEsS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxrQkFBa0IsRUFBRTtBQUMvRCxrREFBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztpQ0FDL0M7NkJBQ0osQ0FBQyxDQUFDO3lCQUNOO0FBQ0QsNEJBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7QUFDekMsc0NBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO3lCQUM3QjtBQUNELGdDQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7cUJBQ3RCLENBQUMsU0FBTSxDQUFDLFVBQUEsUUFBUSxFQUFJO0FBQ2pCLGdDQUFRLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxvQ0FBbUMsR0FBRyxXQUFRLFFBQVEsQ0FBQyxJQUFJLENBQUksQ0FBQyxDQUFDO3FCQUM3RixDQUFDLENBQUM7aUJBQ04sQ0FBQyxDQUFDO0FBQ0gsdUJBQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBTTtBQUMvQiw0QkFBUSxFQUFFLENBQUM7aUJBQ2QsRUFBRSxVQUFBLEdBQUcsRUFBSTtBQUNOLDRCQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQ2pCLENBQUMsQ0FBQzthQUNOLENBQUM7QUFDRixxQkFBUyxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7O0FBRWxELG1CQUFPLFNBQVMsQ0FBQztTQUNwQixDQUFDLENBQUE7S0FDTCxDQUFDLENBQUM7Q0FFTixDQUFBLENBQUUsT0FBTyxDQUFDLENBQUMiLCJmaWxlIjoiQzovd3d3L29jTGF6eUxvYWQvc3JjL29jTGF6eUxvYWQubG9hZGVycy50ZW1wbGF0ZXNMb2FkZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIoYW5ndWxhciA9PiB7XHJcbiAgICAndXNlIHN0cmljdCc7XHJcblxyXG4gICAgYW5ndWxhci5tb2R1bGUoJ29jLmxhenlMb2FkJykuY29uZmlnKGZ1bmN0aW9uKCRwcm92aWRlKSB7XHJcbiAgICAgICAgJHByb3ZpZGUuZGVjb3JhdG9yKCckb2NMYXp5TG9hZCcsIGZ1bmN0aW9uICgkZGVsZWdhdGUsICR0ZW1wbGF0ZUNhY2hlLCAkcSwgJGh0dHApIHtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIHRlbXBsYXRlc0xvYWRlciBmdW5jdGlvblxyXG4gICAgICAgICAgICAgKiBAdHlwZSBGdW5jdGlvblxyXG4gICAgICAgICAgICAgKiBAcGFyYW0gcGF0aHMgYXJyYXkgbGlzdCBvZiBjc3MgZmlsZXMgdG8gbG9hZFxyXG4gICAgICAgICAgICAgKiBAcGFyYW0gY2FsbGJhY2sgdG8gY2FsbCB3aGVuIGV2ZXJ5dGhpbmcgaXMgbG9hZGVkLiBXZSB1c2UgYSBjYWxsYmFjayBhbmQgbm90IGEgcHJvbWlzZVxyXG4gICAgICAgICAgICAgKiBAcGFyYW0gcGFyYW1zIG9iamVjdCBjb25maWcgcGFyYW1ldGVycyBmb3IgJGh0dHBcclxuICAgICAgICAgICAgICogYmVjYXVzZSB0aGUgdXNlciBjYW4gb3ZlcndyaXRlIHRlbXBsYXRlc0xvYWRlciBhbmQgaXQgd2lsbCBwcm9iYWJseSBub3QgdXNlIHByb21pc2VzIDooXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICAkZGVsZWdhdGUudGVtcGxhdGVzTG9hZGVyID0gZnVuY3Rpb24ocGF0aHMsIGNhbGxiYWNrLCBwYXJhbXMpIHtcclxuICAgICAgICAgICAgICAgIHZhciBwcm9taXNlcyA9IFtdLFxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGVzQ2FjaGUgPSAkZGVsZWdhdGUuX2dldEZpbGVzQ2FjaGUoKTtcclxuXHJcbiAgICAgICAgICAgICAgICBhbmd1bGFyLmZvckVhY2gocGF0aHMsIHVybCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGRlZmVycmVkID0gJHEuZGVmZXIoKTtcclxuICAgICAgICAgICAgICAgICAgICBwcm9taXNlcy5wdXNoKGRlZmVycmVkLnByb21pc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICRodHRwLmdldCh1cmwsIHBhcmFtcykudGhlbihyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkYXRhID0gcmVzcG9uc2UuZGF0YTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYoYW5ndWxhci5pc1N0cmluZyhkYXRhKSAmJiBkYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZ3VsYXIuZm9yRWFjaChhbmd1bGFyLmVsZW1lbnQoZGF0YSksIG5vZGUgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG5vZGUubm9kZU5hbWUgPT09ICdTQ1JJUFQnICYmIG5vZGUudHlwZSA9PT0gJ3RleHQvbmctdGVtcGxhdGUnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0ZW1wbGF0ZUNhY2hlLnB1dChub2RlLmlkLCBub2RlLmlubmVySFRNTCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYoYW5ndWxhci5pc1VuZGVmaW5lZChmaWxlc0NhY2hlLmdldCh1cmwpKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXNDYWNoZS5wdXQodXJsLCB0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZlcnJlZC5yZXNvbHZlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2gocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZlcnJlZC5yZWplY3QobmV3IEVycm9yKGBVbmFibGUgdG8gbG9hZCB0ZW1wbGF0ZSBmaWxlIFwiJHsgdXJsIH1cIjogJHsgcmVzcG9uc2UuZGF0YSB9YCkpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJHEuYWxsKHByb21pc2VzKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaygpO1xyXG4gICAgICAgICAgICAgICAgfSwgZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnIpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICRkZWxlZ2F0ZS50ZW1wbGF0ZXNMb2FkZXIub2NMYXp5TG9hZExvYWRlciA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gJGRlbGVnYXRlO1xyXG4gICAgICAgIH0pXHJcbiAgICB9KTtcclxuXHJcbn0pKGFuZ3VsYXIpO1xyXG4iXX0= |