Code coverage report for ./src/ocLazyLoad.directive.js

Statements: 12.5% (2 / 16)      Branches: 0% (0 / 6)      Functions: 12.5% (1 / 8)      Lines: 12.5% (2 / 16)      Ignored: none     

All files » ./src/ » ocLazyLoad.directive.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    1     1                                                                  
'use strict';
 
(function (angular) {
    'use strict';
 
    angular.module('oc.lazyLoad').directive('ocLazyLoad', function ($ocLazyLoad, $compile, $animate, $parse) {
        return {
            restrict: 'A',
            terminal: true,
            priority: 1000,
            compile: function compile(element, attrs) {
                // we store the content and remove it before compilation
                var content = element[0].innerHTML;
                element.html('');
 
                return function ($scope, $element, $attr) {
                    var model = $parse($attr.ocLazyLoad);
                    $scope.$watch(function () {
                        return model($scope) || $attr.ocLazyLoad; // it can be a module name (string), an object, an array, or a scope reference to any of this
                    }, function (moduleName) {
                        if (angular.isDefined(moduleName)) {
                            $ocLazyLoad.load(moduleName).then(function () {
                                $animate.enter(content, $element);
                                var contents = element.contents();
                                angular.forEach(contents, function (content) {
                                    if (content.nodeType !== 3) {
                                        // 3 is a text node
                                        $compile(content)($scope);
                                    }
                                });
                            });
                        }
                    }, true);
                };
            }
        };
    });
})(angular);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkM6L3dhbXAvd3d3L29jTGF6eUxvYWQvc3JjL29jTGF6eUxvYWQuZGlyZWN0aXZlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsQ0FBQyxVQUFBLE9BQU8sRUFBSTtBQUNSLGdCQUFZLENBQUM7O0FBRWIsV0FBTyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLFVBQVMsV0FBVyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFO0FBQ3BHLGVBQU87QUFDSCxvQkFBUSxFQUFFLEdBQUc7QUFDYixvQkFBUSxFQUFFLElBQUk7QUFDZCxvQkFBUSxFQUFFLElBQUk7QUFDZCxtQkFBTyxFQUFFLGlCQUFTLE9BQU8sRUFBRSxLQUFLLEVBQUU7O0FBRTlCLG9CQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ25DLHVCQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDOztBQUVqQix1QkFBTyxVQUFTLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO0FBQ3JDLHdCQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ3JDLDBCQUFNLENBQUMsTUFBTSxDQUFDLFlBQU07QUFDaEIsK0JBQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUM7cUJBQzVDLEVBQUUsVUFBQSxVQUFVLEVBQUk7QUFDYiw0QkFBRyxPQUFPLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFO0FBQzlCLHVDQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFNO0FBQ3BDLHdDQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNsQyxvQ0FBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQ2xDLHVDQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxVQUFBLE9BQU8sRUFBSTtBQUNqQyx3Q0FBRyxPQUFPLENBQUMsUUFBUSxLQUFLLENBQUMsRUFBRTs7QUFDdkIsZ0RBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztxQ0FDN0I7aUNBQ0osQ0FBQyxDQUFDOzZCQUNOLENBQUMsQ0FBQzt5QkFDTjtxQkFDSixFQUFFLElBQUksQ0FBQyxDQUFDO2lCQUNaLENBQUM7YUFDTDtTQUNKLENBQUM7S0FDTCxDQUFDLENBQUM7Q0FFTixDQUFBLENBQUUsT0FBTyxDQUFDLENBQUMiLCJmaWxlIjoiQzovd2FtcC93d3cvb2NMYXp5TG9hZC9zcmMvb2NMYXp5TG9hZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIoYW5ndWxhciA9PiB7XHJcbiAgICAndXNlIHN0cmljdCc7XHJcblxyXG4gICAgYW5ndWxhci5tb2R1bGUoJ29jLmxhenlMb2FkJykuZGlyZWN0aXZlKCdvY0xhenlMb2FkJywgZnVuY3Rpb24oJG9jTGF6eUxvYWQsICRjb21waWxlLCAkYW5pbWF0ZSwgJHBhcnNlKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgcmVzdHJpY3Q6ICdBJyxcclxuICAgICAgICAgICAgdGVybWluYWw6IHRydWUsXHJcbiAgICAgICAgICAgIHByaW9yaXR5OiAxMDAwLFxyXG4gICAgICAgICAgICBjb21waWxlOiBmdW5jdGlvbihlbGVtZW50LCBhdHRycykge1xyXG4gICAgICAgICAgICAgICAgLy8gd2Ugc3RvcmUgdGhlIGNvbnRlbnQgYW5kIHJlbW92ZSBpdCBiZWZvcmUgY29tcGlsYXRpb25cclxuICAgICAgICAgICAgICAgIHZhciBjb250ZW50ID0gZWxlbWVudFswXS5pbm5lckhUTUw7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50Lmh0bWwoJycpO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbigkc2NvcGUsICRlbGVtZW50LCAkYXR0cikge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBtb2RlbCA9ICRwYXJzZSgkYXR0ci5vY0xhenlMb2FkKTtcclxuICAgICAgICAgICAgICAgICAgICAkc2NvcGUuJHdhdGNoKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1vZGVsKCRzY29wZSkgfHwgJGF0dHIub2NMYXp5TG9hZDsgLy8gaXQgY2FuIGJlIGEgbW9kdWxlIG5hbWUgKHN0cmluZyksIGFuIG9iamVjdCwgYW4gYXJyYXksIG9yIGEgc2NvcGUgcmVmZXJlbmNlIHRvIGFueSBvZiB0aGlzXHJcbiAgICAgICAgICAgICAgICAgICAgfSwgbW9kdWxlTmFtZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGFuZ3VsYXIuaXNEZWZpbmVkKG1vZHVsZU5hbWUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkb2NMYXp5TG9hZC5sb2FkKG1vZHVsZU5hbWUpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhbmltYXRlLmVudGVyKGNvbnRlbnQsICRlbGVtZW50KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29udGVudHMgPSBlbGVtZW50LmNvbnRlbnRzKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5ndWxhci5mb3JFYWNoKGNvbnRlbnRzLCBjb250ZW50ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoY29udGVudC5ub2RlVHlwZSAhPT0gMykgeyAvLyAzIGlzIGEgdGV4dCBub2RlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY29tcGlsZShjb250ZW50KSgkc2NvcGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0sIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICB9KTtcclxuXHJcbn0pKGFuZ3VsYXIpO1xyXG4iXX0=