PageSourceSearch

https://s-textile.ru/scripts/_common/transformer/controllers/transformerController.js

js s-textile.ru collected 2026-10-08 11:38:39 UTC 2,773 bytes, 89 lines download raw bytes

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.