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.