PageSourceSearch

https://pt-banten.go.id//assets/vendors/circleType/jquery.circleType.js

js pt-banten.go.id collected 2026-10-04 13:25:05 UTC 5,097 bytes, 153 lines download raw bytes

1/*
2 * CircleType 0.34
3 * Peter Hrynkow
4 * Copyright 2013, Licensed GPL & MIT
5 *
6*/
7
8$.fn.circleType = function(options) {
9
10    var settings = {
11        dir: 1,
12        position: 'relative'
13    };
14    if (typeof($.fn.lettering) !== 'function') {
15        console.log('Lettering.js is required');
16        return;
17    }
18    return this.each(function () {
19    
20        if (options) { 
21            $.extend(settings, options);
22        }
23        var elem = this, 
24            delta = (180 / Math.PI),
25            ch = parseInt($(elem).css('line-height'), 10),
26            fs = parseInt($(elem).css('font-size'), 10),
27            txt = elem.innerHTML.replace(/^\s+|\s+$/g, '').replace(/\s/g, ' '),
28            letters, 
29            center;
30        
31        elem.innerHTML = txt
32        $(elem).lettering();
33
34        elem.style.position =  settings.position;
35
36        letters = elem.getElementsByTagName('span');
37        center = Math.floor(letters.length / 2)
38                
39        var layout = function () {
40            var tw = 0, 
41                i,
42                offset = 0,
43                minRadius, 
44                origin, 
45                innerRadius,
46                l, style, r, transform;
47                                                
48            for (i = 0; i < letters.length; i++) {
49                tw += letters[i].offsetWidth;
50            }
51            minRadius = (tw / Math.PI) / 2 + ch;
52            
53            if (settings.fluid && !settings.fitText) {
54                settings.radius = Math.max(elem.offsetWidth / 2, minRadius);
55            }    
56            else if (!settings.radius) {
57                settings.radius = minRadius;
58            }   
59            
60            if (settings.dir === -1) {
61                origin = 'center ' + (-settings.radius + ch) / fs + 'em';
62            } else {
63                origin = 'center ' + settings.radius / fs + 'em';
64            }
65
66            innerRadius = settings.radius - ch;
67                
68            for (i = 0; i < letters.length; i++) {
69                l = letters[i];
70                offset += l.offsetWidth / 2 / innerRadius * delta;
71                l.rot = offset;                      
72                offset += l.offsetWidth / 2 / innerRadius * delta;
73            }   
74            for (i = 0; i < letters.length; i++) {
75                l = letters[i]
76                style = l.style
77                r = (-offset * settings.dir / 2) + l.rot * settings.dir            
78                transform = 'rotate(' + r + 'deg)';
79                    
80                style.position = 'absolute';
81                style.left = '50%';
82                style.marginLeft = -(l.offsetWidth / 2) / fs + 'em';
83
84                style.webkitTransform = transform;
85                style.MozTransform = transform;
86                style.OTransform = transform;
87                style.msTransform = transform;
88                style.transform = transform;
89
90                style.webkitTransformOrigin = origin;
91                style.MozTransformOrigin = origin;
92                style.OTransformOrigin = origin;
93                style.msTransformOrigin = origin;
94                style.transformOrigin = origin;
95                if(settings.dir === -1) {
96                    style.bottom = 0;
97                }
98            }
99            
100            if (settings.fitText) {
101                if (typeof($.fn.fitText) !== 'function') {
102                    console.log('FitText.js is required when using the fitText option');
103                } else {
104                    $(elem).fitText();
105                    $(window).resize(function () {
106                        updateHeight();
107                    });
108                }
109            }    
110            updateHeight();
111        };
112        
113        var getBounds = function (elem) {
114        	var docElem = document.documentElement,
115        	    box = elem.getBoundingClientRect();
116	        return {
117		        top: box.top + window.pageYOffset - docElem.clientTop,
118		        left: box.left + window.pageXOffset - docElem.clientLeft,
119		        height: box.height
120	        };
121        };        
122        
123        var updateHeight = function () {
124            var mid = getBounds(letters[center]),
125                first = getBounds(letters[0]),
126                h;
127            if (mid.top < first.top) {
128                h = first.top - mid.top + first.height;
129            } else {
130                h = mid.top - first.top + first.height;
131            }
132            elem.style.height = h + 'px';  
133        }
134
135        if (settings.fluid && !settings.fitText) {
136            $(window).resize(function () {
137                layout();
138            });
139        }    
140
141        if (document.readyState !== "complete") {
142            elem.style.visibility = 'hidden';
143            $(window).load(function () {
144                elem.style.visibility = 'visible';
145                layout();
146            });
147        } else {
148            layout();
149        }
150    });
151};
152
153

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.