PageSourceSearch

https://virtual-tour-feb.web.app/

html virtual-tour-feb.web.app collected 2026-10-03 12:39:19 UTC 14,776 bytes, 346 lines download raw bytes

1<!DOCTYPE html>
2<html>
3<head>
4    <title>Gedung Baru</title>
5    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6    <meta name="viewport" content="user-scalable=no, initial-scale=0.5, width=device-width, viewport-fit=cover" />
7    <link rel="preload" href="script.js?v=1730989114937" as="script"/>
8<link rel="preload" href="media/panorama_F0301EB1_FB47_1ED4_41ED_DC3A56E24778_0/l/4/0_0.jpg?v=1730989114937" as="image"/>
9<link rel="preload" href="media/panorama_F0301EB1_FB47_1ED4_41ED_DC3A56E24778_0/r/4/0_0.jpg?v=1730989114937" as="image"/>
10<link rel="preload" href="media/panorama_F0301EB1_FB47_1ED4_41ED_DC3A56E24778_0/u/4/0_0.jpg?v=1730989114937" as="image"/>
11<link rel="preload" href="media/panorama_F0301EB1_FB47_1ED4_41ED_DC3A56E24778_0/d/4/0_0.jpg?v=1730989114937" as="image"/>
12<link rel="preload" href="media/panorama_F0301EB1_FB47_1ED4_41ED_DC3A56E24778_0/f/4/0_0.jpg?v=1730989114937" as="image"/>
13<link rel="preload" href="media/panorama_F0301EB1_FB47_1ED4_41ED_DC3A56E24778_0/b/4/0_0.jpg?v=1730989114937" as="image"/>
14<script>
vendor: 323 bytes, line 14
14(function(i,s,o,g,r,a,m){i["GoogleAnalyticsObject"]=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,"script","//www.google-analytics.com/analytics.js","ga");ga("create", "
14UA-116087-3
vendor: 35 bytes, line 14
14", "auto"); ga("send", "pageview");
14</script>
14
15<meta name="description" content="Virtual Tour"/>
16<meta name="theme-color" content="#FFFFFF"/>
17    
17<script src="lib/tdvplayer.js?v=1730989114937"></script>
17
18    
18<script type="text/javascript">
19        var player;
20        var playersPlayingTmp = [];
21        var isInitialized = false;
22        var isPaused = false;
23
24        function loadTour()
25        {
26            if(player)
27                return;
28
29            var beginFunc = function(event){
30                if(event.name == 'begin')
31                {
32                    var camera = event.data.source.get('camera');
33                    if(camera && camera.get('initialSequence') && camera.get('initialSequence').get('movements').length > 0)
34                        return;
35                }
36
37                if(event.sourceClassName == "MediaAudio")
38                    return;
39
40                isInitialized = true;
41
42                player.unbind('preloadMediaShow', beginFunc, player, true);
43                player.unbindOnObjectsOf('PanoramaPlayListItem', 'begin', beginFunc, player, true);
44                player.unbind('stateChange', beginFunc, player, true);
45                window.parent.postMessage("tourLoaded", '*');
46
47                disposePreloader();
48
49                onVirtualTourLoaded();
50            };
51
52            var settings = new TDV.PlayerSettings();
53            
54            settings.set(TDV.PlayerSettings.CONTAINER, document.getElementById('viewer'));
55            settings.set(TDV.PlayerSettings.SCRIPT_URL, 'script.js?v=1730989114937');
56            settings.set(TDV.PlayerSettings.WEBVR_POLYFILL_URL, 'lib/WebVRPolyfill.js?v=1730989114937');
57            settings.set(TDV.PlayerSettings.HLS_URL, 'lib/Hls.js?v=1730989114937');
58            settings.set(TDV.PlayerSettings.QUERY_STRING_PARAMETERS, 'v=1730989114937');
59            window.tdvplayer = player = TDV.PlayerAPI.create(settings);
60            player.bind('preloadMediaShow', beginFunc, player, true);
61            player.bind('stateChange', beginFunc, player, true);
62            player.bindOnObjectsOf('PanoramaPlayListItem', 'begin', beginFunc, player, true);
63            player.bindOnObject('rootPlayer', 'start', function(e){
64                var queryDict = {}; location.search.substr(1).split("&").forEach(function(item) {var k = item.split("=")[0], v = decodeURIComponent(item.split("=")[1]);queryDict[k] = v});
65                var item = undefined;
66                if("media-index" in queryDict){
67                    item = setMediaByIndex(parseInt(queryDict["media-index"]) - 1);
68                }
69                else if("media-name" in queryDict){
70                    item = setMediaByName(queryDict["media-name"]);
71                }
72                else{
73                    item = setMediaByIndex(0);
74                }
75                if(item != undefined && "trigger-overlay-name" in queryDict){
76                    triggerOverlayByName(item, queryDict["trigger-overlay-name"], "trigger-overlay-event" in queryDict ? queryDict["trigger-overlay-event"] : "click");
77                }
78
79                player.getById('rootPlayer').bind('tourEnded', function(){
80                    onVirtualTourEnded();
81                }, player, true);
82            }, player, false);
83
84            /* Listen messages */
85            window.addEventListener('message', function (e) {
86                //Listen to messages for make actions to player in the format function:param1,param2
87                var action = e.data;
88                if (action == 'pauseTour' || action == 'resumeTour') {
89                    this[action].apply(this);
90                }
91            });
92        }
93
94        function pauseTour()
95        {
96            isPaused = true;
97            if(!isInitialized)
98                return;
99
100            var playLists = player.getByClassName('PlayList');
101            for(var i = 0, count = playLists.length; i<count; i++)
102            {
103                var playList = playLists[i];
104                var index = playList.get('selectedIndex');
105                if(index != -1)
106                {
107                    var item = playList.get('items')[index];
108                    var itemPlayer = item.get('player');
109                    if(itemPlayer && itemPlayer.pause)
110                    {
111                        playersPlayingTmp.push(itemPlayer);
112                        itemPlayer.pause();
113                    }
114                }
115            }
116
117            player.getById('pauseGlobalAudios')();
118        }
119
120        function resumeTour()
121        {
122            isPaused = false;
123            if(!isInitialized)
124                return;
125
126            while(playersPlayingTmp.length)
127            {
128                var viewer = playersPlayingTmp.pop();
129                viewer.play();
130            }
131
132            player.getById('resumeGlobalAudios')();
133        }
134
135        function onVirtualTourLoaded()
136        {
137            if(isPaused)
138                pauseTour();
139        }
140
141        function onVirtualTourEnded()
142        {
143
144        }
145
146        function getRootPlayer()
147        {
148            return window.tdvplayer !== undefined ? window.tdvplayer.getById('rootPlayer') : undefined;
149        }
150
151        function setMediaByIndex(index)
152        {
153            var rootPlayer = getRootPlayer();
154            if(rootPlayer !== undefined) {
155                return rootPlayer.setMainMediaByIndex(index);
156            }
157        }
158
159        function setMediaByName(name)
160        {
161            var rootPlayer = getRootPlayer();
162            if(rootPlayer !== undefined) {
163                return rootPlayer.setMainMediaByName(name);
164            }
165        }
166
167        function triggerOverlayByName(item, name, eventName)
168        {
169            var rootPlayer = getRootPlayer();
170            if(rootPlayer !== undefined) {
171                item.bind('begin', function(e){
172                    item.unbind('begin', arguments.callee, this);
173                    var overlay = rootPlayer.getPanoramaOverlayByName(item.get('media'), name);
174                    if(overlay)
175                        rootPlayer.triggerOverlay(overlay, eventName);
176                }, rootPlayer);
177            }
178        }
179
180        function showPreloader()
181        {
182            var preloadContainer = document.getElementById('preloadContainer');
183            if(preloadContainer != undefined)
184                preloadContainer.style.opacity = 1;
185        }
186
187        function disposePreloader()
188        {
189            var preloadContainer = document.getElementById('preloadContainer');
190            if(preloadContainer == undefined)
191                return;
192
193            var transitionEndName = transitionEndEventName();
194            if(transitionEndName)
195            {
196                preloadContainer.addEventListener(transitionEndName, hide, false);
197                preloadContainer.style.opacity = 0;
198                setTimeout(hide, 500); //Force hide. Some cases the transitionend event isn't dispatched with an iFrame.
199            }
200            else
201            {
202                hide();
203            }
204
205            function hide()
206            {
207                
208                preloadContainer.style.visibility = 'hidden';
209                preloadContainer.style.display = 'none';
210            }
211
212            function transitionEndEventName () {
213                var el = document.createElement('div');
214                var transitions = {
215                        'transition':'transitionend',
216                        'OTransition':'otransitionend',
217                        'MozTransition':'transitionend',
218                        'WebkitTransition':'webkitTransitionEnd'
219                    };
220
221                var t;
222                for (t in transitions) {
223                    if (el.style[t] !== undefined) {
224                        return transitions[t];
225                    }
226                }
227
228                return undefined;
229            }
230        }
231
232        function onBodyClick(){
233            document.body.removeEventListener("click", onBodyClick);
234            document.body.removeEventListener("touchend", onBodyClick);
235            loadTour();
236        }
237
238        function onLoad() {
239            if (/AppleWebKit/.test(navigator.userAgent) && /Mobile\/\w+/.test(navigator.userAgent))
240            {
241                var inIFrame = false;
242                try
243                {
244                    inIFrame = (window.self !== window.top);
245                }
246                catch (e)
247                {
248                    inIFrame = true;
249                }
250                if (!inIFrame)
251                {
252                    var onResize = function(async)
253                    {
254                        [0, 250, 1000, 2000].forEach(function(delay)
255                        {
256                            setTimeout(function()
257                            {
258                                var viewer = document.querySelector('#viewer');
259                                var scale = window.innerWidth / document.documentElement.clientWidth;
260                                var width = document.documentElement.clientWidth;
261                                var height = Math.round(window.innerHeight / scale);
262                                viewer.style.width = width + 'px';
263                                viewer.style.height = height + 'px';
264                                viewer.style.left = Math.round((window.innerWidth - width) * 0.5) + 'px';
265                                viewer.style.top = Math.round((window.innerHeight - height) * 0.5) + 'px';
266                                viewer.style.transform = 'scale(' + scale + ', ' + scale + ')';
267                                window.scrollTo(0,0);
268                            }, delay);
269                        });
270                    };
271                    window.addEventListener('resize', onResize);
272                    onResize();
273                }
274            }
275
276
277            if (isOVRWeb()){
278                showPreloader();
279                loadTour();
280                return;
281            }
282
283            showPreloader();
284loadTour()
285        }
286
287        function playVideo(video) {
288            function isSafariDesktopV11orGreater() {
289                return /^((?!chrome|android|crios|ipad|iphone).)*safari/i.test(navigator.userAgent) && parseFloat(/Version\/([0-9]+\.[0-9]+)/i.exec(navigator.userAgent)[1]) >= 11;
290            }
291
292            function detectUserAction() {
293                var onVideoClick = function(e) {
294                    if(video.paused) {
295                        video.play();
296                    }
297                    video.muted = false;
298                    e.stopPropagation();
299                    e.stopImmediatePropagation();
300                    e.preventDefault();
301                    video.removeEventListener('click', onVideoClick);
302                    video.removeEventListener('touchend', onVideoClick);
303                };
304                video.addEventListener("click", onVideoClick);
305                video.addEventListener("touchend", onVideoClick);
306            }
307
308            if (isSafariDesktopV11orGreater()) {
309                video.muted = true;
310                video.play();
311            } else {
312                var canPlay = true;
313                var promise = video.play();
314                if (promise) {
315                    promise.catch(function() {
316                        video.muted = true;
317                        video.play();
318                        detectUserAction();
319                    });
320                } else {
321                    canPlay = false;
322                }
323
324                if (!canPlay || video.muted) {
325                    detectUserAction();
326                }
327            }
328        }
329
330        function isOVRWeb(){
331            return window.location.hash.substring(1).split('&').indexOf('ovrweb') > -1;
332        }
333    </script>
333
334    <style type="text/css">
335        html, body { width: 100%; height: 100%; margin: 0; padding: 0; padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left); }
336
337        #viewer { background-color: #FFFFFF; z-index:1; position:absolute; width: 100%; height: 100%; top: 0; }
338        #preloadContainer { z-index:2; position:relative; width:100%; height:100%; transition: opacity 0.5s; -webkit-transition: opacity 0.5s; -moz-transition: opacity 0.5s; -o-transition: opacity 0.5s;}
339    </style>
340    <link rel="stylesheet" href="fonts.css?v=1730989114937">
341</head>
342<body onload="onLoad()">
343    <div id="preloadContainer" style="background-color:rgba(255,255,255,1)"><div style="z-index: 4; position: absolute; left: 0%; top: 50%; width: 100.00%; height: 10.00%"><div style="text-align:left; color:#000; "><DIV STYLE="text-align:center;"><SPAN STYLE="letter-spacing:0vmin;color:#777777;font-size:1.39vmin;font-family:Arial, Helvetica, sans-serif;">Loading virtual tour. Please wait...</SPAN></DIV><p STYLE="margin:0; line-height:1.02vmin;"><BR STYLE="letter-spacing:0vmin;color:#000000;font-size:1.02vmin;font-family:Arial, Helvetica, sans-serif;"/></p></div></div></div>
344    <div id="viewer"></div>
345</body>
346</html>

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.