1; (function (ng) { 2 'use strict'; 3 4 var isTouchDevice = 'ontouchstart' in document.documentElement; 5 6 var TransformerCtrl = function ($window, $element, $scope) { 7 8 var ctrl = this, 9 container, 10 containerStartRect, 11 containerRect, 12 elementRect; 13 14 ctrl.isTouchDevice = isTouchDevice; 15 16 17 ctrl.addContainer = function (containerElement) { 18 var temp; 19 container = containerElement; 20 temp = container.getBoundingClientRect(); 21 22 containerStartRect = { 23 top: temp.top + $window.pageYOffset 24 }; 25 }; 26 27 ctrl.calc = function () { 28 var scrollOverOld = ctrl.scrollOver, 29 reezeOld = ctrl.freeze, 30 freezeNew, 31 containerRect = container.getBoundingClientRect(), 32 elementRect = $element[0].getBoundingClientRect(), 33 scrollOverNew = $window.pageYOffset > containerStartRect.top; 34 35 if (ctrl.elementSizes == null || ctrl.elementSizes.width === 0) { 36 37 if (elementRect.width === 0) { 38 return; 39 } 40 41 ctrl.elementSizes = { 42 left: elementRect.left, 43 height: elementRect.height, 44 width: elementRect.width 45 }; 46 } 47 48 if (ctrl.limitPos === true) { 49 if (scrollOverNew === false) { 50 freezeNew = false; 51 ctrl.elementSizes.transform = 'translate3d(0, 0, 0)'; 52 } else if (containerRect.height + containerStartRect.top < elementRect.height + $window.pageYOffset) { 53 freezeNew = true; 54 ctrl.elementSizes.transform = 'translate3d(0, ' + (containerRect.height - elementRect.height) + 'px, 0)'; 55 } else { 56 freezeNew = false; 57 ctrl.elementSizes.transform = scrollOverNew === true ? 'translate3d(0, ' + ($window.pageYOffset - containerStartRect.top) + 'px, 0)' : 'translate3d(0, 0, 0)'; 58 } 59 } 60 61 if (freezeNew === true) { 62 ctrl.scrollOver = false 63 } else { 64 ctrl.scrollOver = scrollOverNew; 65 } 66 67 ctrl.freeze = freezeNew; 68 69 }; 70 71 ctrl.windowScroll = function () { 72 73 if (ctrl.initialize !== true) { 74 ctrl.wait === true; 75 return; 76 } 77 78 ctrl.calc(); 79 80 $scope.$digest(); 81 }; 82 }; 83 84 ng.module('transformer') 85 .controller('TransformerCtrl', TransformerCtrl); 86 87 TransformerCtrl.$inject = ['$window', '$element', '$scope']; 88 89})(window.angular);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.