Code coverage report for ./src/loaders/ocLazyLoad.loaders.templatesLoader.js

Statements: 100% (22 / 22)      Branches: 70% (7 / 10)      Functions: 100% (10 / 10)      Lines: 100% (22 / 22)      Ignored: none     

All files » ./src/loaders\ » ocLazyLoad.loaders.templatesLoader.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51    1     1 18                 18 4     4 4 4 4 3 3 3 3       3 3   3   1     4 3   1     18   18        
"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).success(function (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();
                    }).error(function (err) {
                        deferred.reject(new Error("Unable to load template file \"" + url + "\": " + err));
                    });
                });
                return $q.all(promises).then(function success() {
                    callback();
                }, function error(err) {
                    callback(err);
                });
            };
            $delegate.templatesLoader.ocLazyLoadLoader = true;
 
            return $delegate;
        });
    });
})(angular);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkM6L3dhbXAvd3d3L29jTGF6eUxvYWQvc3JjL2xvYWRlcnMvb2NMYXp5TG9hZC5sb2FkZXJzLnRlbXBsYXRlc0xvYWRlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLENBQUMsVUFBUyxPQUFPLEVBQUU7QUFDZixnQkFBWSxDQUFDOztBQUViLFdBQU8sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVMsUUFBUSxFQUFFO0FBQ3BELGdCQUFRLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxVQUFVLFNBQVMsRUFBRSxjQUFjLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRTs7Ozs7Ozs7O0FBUzlFLHFCQUFTLENBQUMsZUFBZSxHQUFHLFVBQVMsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7QUFDMUQsb0JBQUksUUFBUSxHQUFHLEVBQUU7b0JBQ2IsVUFBVSxHQUFHLFNBQVMsQ0FBQyxhQUFhLEVBQUUsQ0FBQzs7QUFFM0MsdUJBQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFVBQVMsR0FBRyxFQUFFO0FBQ2pDLHdCQUFJLFFBQVEsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDMUIsNEJBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ2hDLHlCQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBUyxJQUFJLEVBQUU7QUFDMUMsNEJBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtBQUMxQyxtQ0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLFVBQVMsSUFBSSxFQUFFO0FBQ2xELG9DQUFHLElBQUksQ0FBQyxRQUFRLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssa0JBQWtCLEVBQUU7QUFDL0Qsa0RBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7aUNBQy9DOzZCQUNKLENBQUMsQ0FBQzt5QkFDTjtBQUNELDRCQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO0FBQ3pDLHNDQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQzt5QkFDN0I7QUFDRCxnQ0FBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO3FCQUN0QixDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVMsR0FBRyxFQUFFO0FBQ25CLGdDQUFRLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLGlDQUFnQyxHQUFHLEdBQUcsR0FBRyxNQUFLLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztxQkFDcEYsQ0FBQyxDQUFDO2lCQUNOLENBQUMsQ0FBQztBQUNILHVCQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsT0FBTyxHQUFHO0FBQzVDLDRCQUFRLEVBQUUsQ0FBQztpQkFDZCxFQUFFLFNBQVMsS0FBSyxDQUFDLEdBQUcsRUFBRTtBQUNuQiw0QkFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNqQixDQUFDLENBQUM7YUFDTixDQUFDO0FBQ0YscUJBQVMsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDOztBQUVsRCxtQkFBTyxTQUFTLENBQUM7U0FDcEIsQ0FBQyxDQUFBO0tBQ0wsQ0FBQyxDQUFBO0NBRUwsQ0FBQSxDQUFFLE9BQU8sQ0FBQyxDQUFDIiwiZmlsZSI6IkM6L3dhbXAvd3d3L29jTGF6eUxvYWQvc3JjL2xvYWRlcnMvb2NMYXp5TG9hZC5sb2FkZXJzLnRlbXBsYXRlc0xvYWRlci5qcyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbihhbmd1bGFyKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgYW5ndWxhci5tb2R1bGUoJ29jLmxhenlMb2FkJykuY29uZmlnKGZ1bmN0aW9uKCRwcm92aWRlKSB7XG4gICAgICAgICRwcm92aWRlLmRlY29yYXRvcignJG9jTGF6eUxvYWQnLCBmdW5jdGlvbiAoJGRlbGVnYXRlLCAkdGVtcGxhdGVDYWNoZSwgJHEsICRodHRwKSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIHRlbXBsYXRlc0xvYWRlciBmdW5jdGlvblxuICAgICAgICAgICAgICogQHR5cGUgRnVuY3Rpb25cbiAgICAgICAgICAgICAqIEBwYXJhbSBwYXRocyBhcnJheSBsaXN0IG9mIGNzcyBmaWxlcyB0byBsb2FkXG4gICAgICAgICAgICAgKiBAcGFyYW0gY2FsbGJhY2sgdG8gY2FsbCB3aGVuIGV2ZXJ5dGhpbmcgaXMgbG9hZGVkLiBXZSB1c2UgYSBjYWxsYmFjayBhbmQgbm90IGEgcHJvbWlzZVxuICAgICAgICAgICAgICogQHBhcmFtIHBhcmFtcyBvYmplY3QgY29uZmlnIHBhcmFtZXRlcnMgZm9yICRodHRwXG4gICAgICAgICAgICAgKiBiZWNhdXNlIHRoZSB1c2VyIGNhbiBvdmVyd3JpdGUgdGVtcGxhdGVzTG9hZGVyIGFuZCBpdCB3aWxsIHByb2JhYmx5IG5vdCB1c2UgcHJvbWlzZXMgOihcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgJGRlbGVnYXRlLnRlbXBsYXRlc0xvYWRlciA9IGZ1bmN0aW9uKHBhdGhzLCBjYWxsYmFjaywgcGFyYW1zKSB7XG4gICAgICAgICAgICAgICAgdmFyIHByb21pc2VzID0gW10sXG4gICAgICAgICAgICAgICAgICAgIGZpbGVzQ2FjaGUgPSAkZGVsZWdhdGUuZ2V0RmlsZXNDYWNoZSgpO1xuXG4gICAgICAgICAgICAgICAgYW5ndWxhci5mb3JFYWNoKHBhdGhzLCBmdW5jdGlvbih1cmwpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGRlZmVycmVkID0gJHEuZGVmZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgcHJvbWlzZXMucHVzaChkZWZlcnJlZC5wcm9taXNlKTtcbiAgICAgICAgICAgICAgICAgICAgJGh0dHAuZ2V0KHVybCwgcGFyYW1zKS5zdWNjZXNzKGZ1bmN0aW9uKGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGFuZ3VsYXIuaXNTdHJpbmcoZGF0YSkgJiYgZGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5ndWxhci5mb3JFYWNoKGFuZ3VsYXIuZWxlbWVudChkYXRhKSwgZnVuY3Rpb24obm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihub2RlLm5vZGVOYW1lID09PSAnU0NSSVBUJyAmJiBub2RlLnR5cGUgPT09ICd0ZXh0L25nLXRlbXBsYXRlJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRlbXBsYXRlQ2FjaGUucHV0KG5vZGUuaWQsIG5vZGUuaW5uZXJIVE1MKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYoYW5ndWxhci5pc1VuZGVmaW5lZChmaWxlc0NhY2hlLmdldCh1cmwpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVzQ2FjaGUucHV0KHVybCwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZlcnJlZC5yZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pLmVycm9yKGZ1bmN0aW9uKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmZXJyZWQucmVqZWN0KG5ldyBFcnJvcignVW5hYmxlIHRvIGxvYWQgdGVtcGxhdGUgZmlsZSBcIicgKyB1cmwgKyAnXCI6ICcgKyBlcnIpKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuICRxLmFsbChwcm9taXNlcykudGhlbihmdW5jdGlvbiBzdWNjZXNzKCkge1xuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgICAgICAgICAgIH0sIGZ1bmN0aW9uIGVycm9yKGVycikge1xuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnIpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICRkZWxlZ2F0ZS50ZW1wbGF0ZXNMb2FkZXIub2NMYXp5TG9hZExvYWRlciA9IHRydWU7XG5cbiAgICAgICAgICAgIHJldHVybiAkZGVsZWdhdGU7XG4gICAgICAgIH0pXG4gICAgfSlcblxufSkoYW5ndWxhcik7XG4iXX0=