'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.contents();
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($compile(content)($scope), $element);
});
}
}, true);
};
}
};
});
})(angular);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkM6L3dhbXAvd3d3L29jTGF6eUxvYWQvc3JjL29jTGF6eUxvYWQuZGlyZWN0aXZlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsQ0FBQyxVQUFBLE9BQU8sRUFBSTtBQUNSLGdCQUFZLENBQUM7O0FBRWIsV0FBTyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLFVBQVMsV0FBVyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFO0FBQ3BHLGVBQU87QUFDSCxvQkFBUSxFQUFFLEdBQUc7QUFDYixvQkFBUSxFQUFFLElBQUk7QUFDZCxvQkFBUSxFQUFFLElBQUk7QUFDZCxtQkFBTyxFQUFFLGlCQUFTLE9BQU8sRUFBRSxLQUFLLEVBQUU7O0FBRTlCLG9CQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDakMsdUJBQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7O0FBRWpCLHVCQUFPLFVBQVMsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7QUFDckMsd0JBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDckMsMEJBQU0sQ0FBQyxNQUFNLENBQUMsWUFBTTtBQUNoQiwrQkFBTyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQztxQkFDNUMsRUFBRSxVQUFBLFVBQVUsRUFBSTtBQUNiLDRCQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUU7QUFDOUIsdUNBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQU07QUFDcEMsd0NBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDOzZCQUN2RCxDQUFDLENBQUM7eUJBQ047cUJBQ0osRUFBRSxJQUFJLENBQUMsQ0FBQztpQkFDWixDQUFDO2FBQ0w7U0FDSixDQUFDO0tBQ0wsQ0FBQyxDQUFDO0NBRU4sQ0FBQSxDQUFFLE9BQU8sQ0FBQyxDQUFDIiwiZmlsZSI6IkM6L3dhbXAvd3d3L29jTGF6eUxvYWQvc3JjL29jTGF6eUxvYWQuZGlyZWN0aXZlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiKGFuZ3VsYXIgPT4ge1xyXG4gICAgJ3VzZSBzdHJpY3QnO1xyXG5cclxuICAgIGFuZ3VsYXIubW9kdWxlKCdvYy5sYXp5TG9hZCcpLmRpcmVjdGl2ZSgnb2NMYXp5TG9hZCcsIGZ1bmN0aW9uKCRvY0xhenlMb2FkLCAkY29tcGlsZSwgJGFuaW1hdGUsICRwYXJzZSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHJlc3RyaWN0OiAnQScsXHJcbiAgICAgICAgICAgIHRlcm1pbmFsOiB0cnVlLFxyXG4gICAgICAgICAgICBwcmlvcml0eTogMTAwMCxcclxuICAgICAgICAgICAgY29tcGlsZTogZnVuY3Rpb24oZWxlbWVudCwgYXR0cnMpIHtcclxuICAgICAgICAgICAgICAgIC8vIHdlIHN0b3JlIHRoZSBjb250ZW50IGFuZCByZW1vdmUgaXQgYmVmb3JlIGNvbXBpbGF0aW9uXHJcbiAgICAgICAgICAgICAgICB2YXIgY29udGVudCA9IGVsZW1lbnQuY29udGVudHMoKTtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQuaHRtbCgnJyk7XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCRzY29wZSwgJGVsZW1lbnQsICRhdHRyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIG1vZGVsID0gJHBhcnNlKCRhdHRyLm9jTGF6eUxvYWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICRzY29wZS4kd2F0Y2goKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbW9kZWwoJHNjb3BlKSB8fCAkYXR0ci5vY0xhenlMb2FkOyAvLyBpdCBjYW4gYmUgYSBtb2R1bGUgbmFtZSAoc3RyaW5nKSwgYW4gb2JqZWN0LCBhbiBhcnJheSwgb3IgYSBzY29wZSByZWZlcmVuY2UgdG8gYW55IG9mIHRoaXNcclxuICAgICAgICAgICAgICAgICAgICB9LCBtb2R1bGVOYW1lID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYoYW5ndWxhci5pc0RlZmluZWQobW9kdWxlTmFtZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRvY0xhenlMb2FkLmxvYWQobW9kdWxlTmFtZSkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGFuaW1hdGUuZW50ZXIoJGNvbXBpbGUoY29udGVudCkoJHNjb3BlKSwgJGVsZW1lbnQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9LCB0cnVlKTtcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgfSk7XHJcblxyXG59KShhbmd1bGFyKTtcclxuIl19 |