1<!DOCTYPE html> 2<html> 3 4<head> 5 <base href="/" /> 6 <title></title> 7 <meta name="viewport" content="width=device-width, initial-scale=1"> 8 <meta charset="utf-8" /> 9 10
10<script>
vendor: 454 bytes, lines 10-22
10(function (w, d, s, l, i) { 11 w[l] = w[l] || []; 12 w[l].push({ 13 'gtm.start': 14 new Date().getTime(), event: 'gtm.js' 15 }); 16 var f = d.getElementsByTagName(s)[0], 17 j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; 18 j.async = true; 19 j.src = 20 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; 21 f.parentNode.insertBefore(j, f); 22 })(window, document, 'script', 'dataLayer', '
22GTM-TW8VRTW3
vendor: 3 bytes, line 22
22');
22</script>
22 23 24 <!-- bootstrap css --> 25 <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn" crossorigin="anonymous"> 26 <link href="../src/app/style.css" rel="stylesheet" type="text/html" /> 27 28 <!-- icons --> 29 <link href="//fonts.googleapis.com/icon?family=Material+Icons|Material+Icons+Outlined|" rel="stylesheet"> 30 <link rel="stylesheet" type="text/css" 31 href="//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" /> 32 <link id="favicon" rel="icon" type="image/x-icon" href="favicon.ico" /> 33 34 <style type="text/css"> 35 body, 36 html { 37 height: 100%; 38 } 39 40 a { 41 cursor: pointer 42 } 43 44 .app-loading { 45 position: relative; 46 display: flex; 47 flex-direction: column; 48 align-items: center; 49 justify-content: center; 50 height: 100%; 51 } 52 53 .app-loading .spinner { 54 height: 200px; 55 width: 200px; 56 animation: rotate 2s linear infinite; 57 transform-origin: center center; 58 position: absolute; 59 top: 0; 60 bottom: 0; 61 left: 0; 62 right: 0; 63 margin: auto; 64 } 65 66 .app-loading .spinner .path { 67 stroke-dasharray: 1, 200; 68 stroke-dashoffset: 0; 69 animation: dash 1.5s ease-in-out infinite; 70 stroke-linecap: round; 71 stroke: #ddd; 72 } 73 74 @keyframes rotate { 75 100% { 76 transform: rotate(360deg); 77 } 78 } 79 80 @keyframes dash { 81 0% { 82 stroke-dasharray: 1, 200; 83 stroke-dashoffset: 0; 84 } 85 86 50% { 87 stroke-dasharray: 89, 200; 88 stroke-dashoffset: -35px; 89 } 90 91 100% { 92 stroke-dasharray: 89, 200; 93 stroke-dashoffset: -124px; 94 } 95 } 96 </style> 97<link rel="stylesheet" href="styles.4fa8c7fcd4cfdc42440a.css"></head> 98 99<body>
vendor: 79 bytes, lines 99-101
99 100 <noscript> 101 <iframe src="https://www.googletagmanager.com/ns.html?id=
101GTM-TW8VRTW3
vendor: 107 bytes, lines 101-105
101" 102 height="0" width="0" style="display:none;visibility:hidden"></iframe> 103 </noscript> 104 105
105<app-travia> 106 <div class="app-loading"> 107 <div id="loading-logo" class="app-loading-logo"> 108 </div> 109 <svg class="spinner" viewBox="25 25 50 50"> 110 <circle class="path" cx="50" cy="50" r="20" fill="none" stroke-width="2" stroke-miterlimit="10" /> 111 </svg> 112 </div> 113 </app-travia> 114 115
115<script src="https://accounts.google.com/gsi/client" async defer></script>
115 116
116<script>
vendor: 460 bytes, lines 116-124
116 117 (function (i, s, o, g, r, a, m) { 118 i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () { 119 (i[r].q = i[r].q || []).push(arguments) 120 }, i[r].l = 1 * new Date(); a = s.createElement(o), 121 m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m) 122 })(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga'); 123 124 ga('create', '
124UA-128896720-1
vendor: 16 bytes, lines 124-125
124', 'auto'); 125
125</script>
125 126
126<script> 127 128 var xmlHttp = new XMLHttpRequest(); 129 var url = ""; 130 var tenant = {code: "TRAVIA", applicationName: "Travia"}; 131 var key = window.location.hostname; 132 133 let urlMap = new Map([ 134 ['localhost', 'http://localhost:8085/'], 135 ['cloudfront.net', 'https://microservices-api.travia.is/'], 136 ['stage-app.travia.is', 'https://stage-api.travia.is/'], 137 ['ta.iborn.io', 'https://stage-api.travia.is/'], 138 ['hi-ib-stage-app.travia.is', 'https://stage-api.travia.is/'], 139 ['heysales-app.travia.is', 'https://heysales-api.travia.is/'], 140 ['performance-pa-app-tenant1.travia.is', 'https://performance-pa-api.travia.is/'], 141 ['agegroups-app.travia.is', 'https://agegroups-api.travia.is/'], 142 ['demo-app.travia.is', 'https://stage-api.travia.is/'] 143 ]); 144 145 url = urlMap.get(key) !== undefined ? urlMap.get(key) : 'https://api.travia.is/'; 146 function loadScript(i, t) { 147 if(!i.getElementById(t)) { 148 var e = i.createElement("script"); 149 e.id = t; 150 e.async = true; 151 e.src = "https://godo-5c6693a8767a79216455996.freshchat.com/js/widget.js"; 152 i.head.appendChild(e); 153 } 154 } 155 function addFreshChatListeners(){ 156 window.fcWidget.on("widget:loaded", function() { 157 getUser(); 158 }); 159 window.fcWidget.on("user:created", function(resp) { 160 var status = resp && resp.status, 161 data = resp && resp.data; 162 if (status === 200) { 163 let currentUser = JSON.parse(localStorage.getItem('currentUser')); 164 if (data != null && data.restoreId != null && currentUser != null && (currentUser.freshchatRestoreId === null || currentUser.freshchatRestoreId === "")) { 165 var eventData = { restoreId: data.restoreId }; 166 var event = new CustomEvent('saveFreschatRestoreId', { detail: eventData }); 167 window.dispatchEvent(event); 168 } 169 } 170 }); 171 } 172 function initChat(currentUser){ 173 window.fcWidget.init({ 174 config: { 175 headerProperty: {
176 hideChatButton: false 177 } 178 }, 179 widgetUuid: "95aa007b-aefd-4988-a00f-2b5e360d1966", 180 token: "3547e8ac-250c-46a2-9e38-e1233dc4281a", 181 host: "https://godo-5c6693a8767a79216455996.freshchat.com", 182 externalId: currentUser.username, 183 restoreId: currentUser.freshchatRestoreId ? currentUser.freshchatRestoreId: null, 184 }); 185 } 186 function removeChat() { 187 window.fcWidget.destroy(); 188 } 189 function clearUser(callback) { 190 window.fcWidget.user.clear() 191 .then(() => {}) 192 .catch(error => { 193 console.error('Error clearing user information:', error); 194 }) 195 .finally(() => { 196 window.fcWidget.user.setProperties({ 197 firstName: null, 198 lastName: null, 199 email: null, 200 cf_travia: null 201 }); 202 if (typeof callback === 'function') { 203 callback(); 204 } 205 }); 206 } 207 function initializeFreshChat() { 208 let currentUser = JSON.parse(localStorage.getItem('currentUser')); 209 addFreshChatListeners(); 210 initChat(currentUser); 211 } 212 function setUserProperties(){ 213 let currentUser = JSON.parse(localStorage.getItem('currentUser')); 214 const email = currentUser.username; 215 const [firstName, ...lastName] = currentUser.fullName.split(" "); 216 window.fcWidget.user.setProperties({ 217 firstName: firstName, 218 lastName: lastName.join(" "), 219 email: email, 220 cf_travia: true 221 }); 222 } 223 function getUser(){ 224 window.fcWidget.user.get(function(resp) { 225 var status = resp && resp.status,data = resp && resp.data; 226 if (status !== 200) { 227 clearUser(setUserProperties); 228 } 229 }); 230 } 231 document.addEventListener("hideFreshChat", function () { 232 clearUser(removeChat); 233 }); 234 document.addEventListener("showFreshChat", function () { 235 if(window.fcWidget && window.fcWidget.isInitialized() === true){ 236 console.log("fcWidget already initialized"); 237 } else { 238 initializeFreshChat(); 239 } 240 }); 241 if (window.location.host === 'app.travia.is' && window.location === window.parent.location) { 242 loadScript(document,"godo-fc-script"); 243 } 244 245 xmlHttp.open("GET", url + 'api/v1/tenants/current', false); 246 xmlHttp.send(null); 247 248 if (xmlHttp.response) { 249 tenant = JSON.parse(xmlHttp.response); 250 console.log(tenant); 251 } 252 window.localStorage.setItem('theme', tenant.code + '-theme'); 253 window.localStorage.setItem('tenant-name', tenant.applicationName); 254 window.localStorage.setItem('tenant-code', tenant.code); 255 256 if (tenant.code === "TRAVIA") { 257 document.getElementsByTagName('title')[0].innerText = "Travia"; 258 document.getElementById('favicon').setAttribute('href', 'favicon.ico'); 259 document.getElementById('loading-logo').classList.remove('app-loading-logo'); 260 document.getElementById('loading-logo').classList.add('app-loading-logo-travia-theme'); 261 } 262 263 if (tenant.code === "KEAHOTELS") { 264 document.getElementsByTagName('title')[0].innerText = "Keahotels TA Portal"; 265 document.getElementById('favicon').setAttribute('href', 'kea-favicon.ico'); 266 document.getElementById('loading-logo').classList.remove('app-loading-logo'); 267 document.getElementById('loading-logo').classList.add('app-loading-logo-kea-theme'); 268 } 269 270 if (tenant.code === "STRENGTHEN_ICELAND") { 271 document.getElementsByTagName('title')[0].innerText = "Styrkjum Ãsland"; 272 document.getElementById('favicon').setAttribute('href', 'STRENGTHEN_ICELAND-theme.ico'); 273 document.getElementById('loading-logo').classList.remove('app-loading-logo'); 274 document.getElementById('loading-logo').classList.add('app-loading-logo-strengthen-iceland-theme'); 275 } 276 277 if (tenant.code === 'HEY_SALES_IB') { 278 document.getElementsByTagName('title')[0].innerText = "Hey Sales"; 279 document.getElementById('favicon').setAttribute('href', 'hey-iceland-favicon.ico'); 280 document.getElementById('loading-logo').classList.remove('app-loading-logo'); 281 document.getElementById('loading-logo').classList.add('app-loading-logo-hey-sales-ib-theme'); 282 } 283 284 if (tenant.code === 'HEY_SALES_OB') { 285 document.getElementsByTagName('title')[0].innerText = "Hey Sales OB"; 286 document.getElementById('favicon').setAttribute('href', 'hey-iceland-favicon.ico'); 287 document.getElementById('loading-logo').classList.remove('app-loading-logo'); 288 document.getElementById('loading-logo').classList.add('app-loading-logo-hey-sales-ob-theme'); 289 } 290 if (tenant.code === "TRV_DEMO") { 291 document.getElementsByTagName('title')[0].innerText = "Travia"; 292 document.getElementById('favicon').setAttribute('href', 'favicon.ico'); 293 document.getElementById('loading-logo').classList.remove('app-loading-logo'); 294 document.getElementById('loading-logo').classList.add('app-loading-logo-travia-theme'); 295 window.localStorage.setItem('theme', "TRAVIA" + '-theme'); 296 } 297 298 </script>
298 299
299<script src="https://www.youtube.com/iframe_api"></script>
vendor: 1 bytes, line 299
299
300<script src="runtime-es2015.9d4ffee40c0853f10632.js" type="module"></script>
300<script src="runtime-es5.9d4ffee40c0853f10632.js" nomodule defer></script>
300<script src="polyfills-es5.4585d350ea4e8b510d54.js" nomodule defer></script>
300<script src="polyfills-es2015.3b9bd5f9592733e0541b.js" type="module"></script>
300<script src="scripts.2440f282982e23955be6.js" defer></script>
300<script src="main-es2015.b9401d9130c6241b1a7e.js" type="module"></script>
300<script src="main-es5.b9401d9130c6241b1a7e.js" nomodule defer></script>
300</body> 301 302</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.