!function(){try{var t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},e=(new t.Error).stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="a7b6dc52-d7bb-4054-b891-e66379c553cd",t._sentryDebugIdIdentifier="sentry-dbid-a7b6dc52-d7bb-4054-b891-e66379c553cd")}catch(t){}}(),(()=>{"use strict";const t=(t,e)=>{const i=(t=>Object.keys(t).filter((e=>t[e])).map((e=>`${encodeURIComponent(e)}=${encodeURIComponent(t[e])}`)).join("&"))(e);return t+(i?"?":"")+i},e=t=>t.split("&").map((t=>{const[e,i]=t.split("=");try{return[decodeURIComponent(e),decodeURIComponent(i)]}catch(n){return console.warn("Invalid URI component:",t,n),[e,i]}})).reduce(((t,[e,i])=>({...t,[e]:i})),{}),i=(t,e)=>{let i=null;return function(...n){i&&clearTimeout(i),i=setTimeout((()=>{t.apply(this,n),i=null}),e)}},n=function(t,e){return t?{log:(t,i=null,n=null)=>{console.log(`${e} > ${t}${i||n?":":""}`,i||"",n||"")},timeStart:(t,i=null)=>{console.time(`${e} > ${t}${i?":":""}`,i||"")},timeEnd:(t,i=null)=>{console.log(`----FINISHED ${(new Date).toISOString()}----`),console.timeEnd(`${e} > ${t}${i?":":""}`,i||"")}}:{log:()=>{},timeStart:()=>{},timeEnd:()=>{}}};class r{constructor(t,e,i){Object.assign(this,{fn:t,startTimeout:e,maxTimeout:i,timer:null})}start(t=!0){this._tick(this.startTimeout,this.maxTimeout,t)}stop(){clearTimeout(this.timer),this.timer=null}_tick(t,e,i=!0){if(i&&this.fn(),t<=e){const i=()=>this._tick(2*t,e);this.timer=setTimeout(i,t)}else this.timer=null}}const s=(t,e,n,r={})=>{let s=n;r.debounce&&(s=i(s,r.debounce)),t.addEventListener(e,s,r)},o=(t,e)=>{Object.entries(e).forEach((([e,i])=>{t.setAttribute(e,i)}))},a=t=>t.innerText||t.textContent||"",m="tripster-iframe",p=["country","city","iata","geonames_id","guide","experiences","tag","citytag","region"],l=[...p,"widget_template","template","mobile","partner","subpartner","redirect","widgetbar","q","order","num","label","styles","bg_color","button_text","font_size","features","debug","script_id","iframe_id","version","experiment","view","type","licensed","replace_missing_ids"];class d{constructor(t,e=null,i=m){this.iframeId=t,this.messagePrefix=i,this.listeners={},this.sender=e||window}startListening(){s(this.sender,"message",(t=>this.onIFrameMessage(t)))}listen(t,e){this.listeners[t]=e}onIFrameMessage(t){const{data:e}=t;if(e?.event&&e.event.startsWith(this.messagePrefix)&&e.iframe_id===this.iframeId){const t=e.event.slice(this.messagePrefix.length),i=this.listeners[t];i&&i(e)}}}class c{constructor(t,e=null,i="*",n=m){this.iframeId=t,this.messagePrefix=n,this.recipient=e||window.parent,this.url=i}send(t,e={}){this.recipient.postMessage({event:`${this.messagePrefix}${t}`,iframe_id:this.iframeId,...e},this.url)}}class h{constructor({attrs:t,html:e,urls:i,classes:n}){this.attrs=t,this.html=e,this.urls=i,this.classes=n,this.builders={default:this.buildDefaultWidgetBar,city:this.buildCityWidgetBar}}createElement(t="default",e={}){return this.builders[t].call(this,e)}buildDefaultWidgetBar({utmContent:t}){const e=document.createElement("a");return o(e,this.attrs),e.innerHTML=this.html.defaultHTML,e.href=this.makeLink(this.urls.defaultURL,t),e}buildCityWidgetBar({city:t,utmContent:e}){const i=document.createElement("a");o(i,this.attrs),i.innerHTML=this.html.defaultHTML,i.href=this.makeLink(t.url,e);const n=i.getElementsByClassName(this.classes.classLink);return n.length&&(n[0].innerHTML=t.widgetbar_text),i}makeLink(t,e=""){return this.urls.href.replace("url_replace",t).replace("utm_content_replace",e)}}class u{constructor(t){this.settings=t,this.el=null,this.city=null,this.utmContent="",this.onShow=null,this.onHide=null,this.onClick=null,this.bodyClass=[`${this.settings.classes.bodyClassPrefix}visible`],["mobile","desktop"].includes(this.settings.show)&&this.bodyClass.push(`${this.settings.classes.bodyClassPrefix}${this.settings.show}`),"bottom"===this.settings.position&&this.bodyClass.push(`${this.settings.classes.bodyClassPrefix}bottom`)}setCity(t){this.city=t}setUtmContent(t){this.utmContent=t}show(){if(!this.isInserted()&&!this.isSuppressed()){(t=>{const e=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.setAttribute("type","text/css"),i.appendChild(document.createTextNode(t)),e.appendChild(i)})(this.settings.css);const t=new h(this.settings);this.el=t.createElement(this.city?"city":"default",{city:this.city,utmContent:this.utmContent}),this.bodyClass.forEach((t=>document.body.classList.add(t))),document.body.appendChild(this.el),this.el.classList.add(this.settings.classes.classVisible),"bottom"===this.settings.position&&this.el.classList.add(this.settings.classes.classBottom),s(this.el,"click",(()=>{this.onClick&&this.onClick()})),this.closeBtn=this.el.getElementsByClassName(this.settings.classes.classCloseBtn)[0],s(this.closeBtn,"click",this.onCloseClick.bind(this)),this.onShow&&this.onShow()}}hide(){this.el.classList.remove(this.settings.classes.classVisible),this.bodyClass.forEach((t=>document.body.classList.remove(t))),(t=>{const e=new Date;e.setDate(e.getDate()+1),document.cookie=`${t}=${encodeURIComponent("true")}; expires=${e.toUTCString()}; path=/`})(this.settings.suppressCookieName),this.onHide&&this.onHide()}onCloseClick(t){t.preventDefault(),t.stopPropagation(),this.hide()}isInserted(){return document.getElementsByClassName(this.settings.attrs.class)[0]}isSuppressed(){return(t=>{const e=document.cookie.match(new RegExp(`(?:^|; )${t.replace(/([.$?*|{}()[\]\\/+^])/g,"\\$1")}=([^;]*)`));return e?decodeURIComponent(e[1]):void 0})(this.settings.suppressCookieName)}}class g{constructor(t,e,i){this.el=t,this.settings=e,this.logger=i,this.city=null,this.iframeWasVisible=!1,this.settings.id=this.settings.id||`id-${Date.now()}-${Math.floor(1e4*Math.random())}`,this.widgetMessageListener=new d(this.settings.id),this.widgetMessageSender=null,this.initWidgetBar(e.widgetbar),this.initIFrame(),this.widgetMessageListener.startListening()}initIFrame(){const e=this.el.dataset.experienceData?.replaceAll("&quot;",'"'),i={...this.settings.params};e&&(i.experienceData=e);const n=t(`${this.settings.serverUrl}/partner/v3/`,i);this.iframe=document.createElement("iframe"),this.iframe.title=this.settings.params.script_id,"no"===this.settings.iframe.attrs.scrolling&&(this.iframe.style.overflow="hidden"),o(this.iframe,{...this.settings.iframe.attrs,src:n}),this.el.parentNode.insertBefore(this.iframe,this.el),this.widgetMessageSender=new c(this.settings.id,this.iframe.contentWindow),this.widgetMessageListener.listen("NewHeight",this.resizeIFrameHeight.bind(this));const a=this.getIFrameHeight.bind(this);s(this.iframe,"load",a),s(window,"resize",a,{passive:!0,debounce:200}),new r(a,64,5e3).start(!1),s(window,"scroll",this.iframeViewedDetector.bind(this),{passive:!0,debounce:200}),window.setTimeout(this.iframeViewedDetector.bind(this),500),window.addEventListener("message",(t=>{t.data.height&&t.data.iframe_id===this.settings.id&&(this.iframe.height=t.data.height,this.iframe.style.height=t.data.height)}))}resizeIFrameHeight(t){this.iframe.height!==t.height&&(this.iframe.height=t.height,this.iframe.style.height=`${t.height}px`,this.iframe.style.maxHeight=`${t.height}px`)}getIFrameHeight(){this.widgetMessageSender.send("GetHeight")}isIframeInViewport(){return((t,e=250)=>{const i=this.iframe.getBoundingClientRect(),n=i.top+e;return i.top>=0&&i.left>=0&&n<=(window.innerHeight||document.documentElement.clientHeight)&&i.right<=(window.innerWidth||document.documentElement.clientWidth)})()}iframeViewedDetector(){this.iframeWasVisible||this.isIframeInViewport()&&(this.iframeWasVisible=!0,this.trackAction("impression"))}initWidgetBar(t){t.show&&(this.widgetBar=new u(t),this.widgetBar.onShow=()=>this.trackAction("widgetbar-impression"),this.widgetBar.onHide=()=>this.trackAction("widgetbar-hiding"),this.widgetBar.onClick=()=>this.trackAction("widgetbar-click"),this.widgetMessageListener.listen("Load",(({city:e,widgetInfoString:i})=>{this.widgetBar.setCity(e),this.widgetBar.setUtmContent(i?`${i}|widgetbar:${t.position}`:""),setTimeout(this.showWidgetbar.bind(this),1e3*t.delay)})))}showWidgetbar(){this.iframeWasVisible||this.widgetBar.show()}trackAction(t){this.widgetMessageSender.send("trackWidget",{action:t})}}const b=(t,e,i)=>new Promise(((n,r)=>{const s=new XMLHttpRequest;s.onreadystatechange=function(){if(4===this.readyState)try{const t=JSON.parse(this.responseText||"{}");200===this.status?n(t):r(t)}catch(t){r(t)}},s.open(t,e),s.setRequestHeader("Content-Type","application/json; charset=utf-8"),s.send("POST"===t?JSON.stringify(i):null)}));(()=>{const t="currentScript";t in document||Object.defineProperty(document,t,{get(){try{throw new Error}catch(t){const e=/.*at [^(]*\((.*):(.+):(.+)\)$/gi.exec(t.stack),i=e&&e[1]||!1,n=document.location.href.replace(document.location.hash,""),r=e&&e[2]||!1;if(i===n){const t=document.documentElement.outerHTML,e=new RegExp(`(?:[^\\n]+?\\n){0,${r-2}}[^<]*<script>([\\d\\D]*?)<\\/script>[\\d\\D]*`,"i"),i=t.replace(e,"$1").trim();return[...document.getElementsByTagName("script")].find((t=>t.innerHTML.trim()===i))}return[...document.getElementsByTagName("script")].find((t=>t.src===i))}}})})();const w=document.currentScript,f=w.id,y=(t=>{const i=t.match(/(https?:)\/\/([^/]+)([/]{0,1}[^?#]*)(#.*|)/),[n,r,s,o]=i?[i[1],i[2],i[3],i[4]]:[null,null,null,null],a=(t=>{const e=t.match(/\?(.+?)($|#)/);return e?e[1]:""})(t);return{schema:n,host:r,path:s,queryString:a,params:e(a),hash:o}})(w.src.replace("%&","%25&")),x=`${y.schema}//${y.host}`,_=`${x}/partner/geo_detect/`,k="true"===y.params.debug,C=new n(k,`${f} [Loader]`),v=new n(!0,`${f} [Time]`),$=async(e,i,n,r=!1)=>{const s="vertical"===(n.template||"").substring(0,8)?"270":"100%",o=void 0!==n.widgetbar&&""!==n.widgetbar,m=void 0!==n.redirect&&""!==n.redirect,d=(t=>{const e={};for(const i of l){const n=t[i];void 0!==n&&""!==n&&(e[i]=n)}return e.widget_template&&(e.template=e.widget_template,delete e.widget_template),"button_order"===e.template&&(e.num="1"),e.version=e.version||"1",e})(n),c={debug:r,serverUrl:i,id:e,scriptId:e,params:{...d,siteUrl:window.location.href.split("#")[0]||""},iframe:{autoResize:void 0===n.height||""===n.height,attrs:{width:n.width||s,scrolling:n.scrolling||"no",frameBorder:0,allowTransparency:!0}},experiments:[]};if(n.height&&(c.iframe.attrs.height=n.height),o?(c.widgetbar={show:!0,position:n.widgetbar_position||"default",suppressCookieName:"tripster_widgetbar_suppress",classes:{classVisible:"tripster-w_a",classCloseBtn:"tripster-w__close",classLink:"tripster-w__green",classBottom:"tripster-w--bottom",bodyClassPrefix:"tripster-widgetbar-"},delay:parseInt(n.widgetbar_delay,10)||10,urls:{defaultURL:`${i}/`,href:""},css:'html, body { transition: margin-top .5s cubic-bezier(0.250, 0.460, 0.450, 0.940); } .tripster-w { position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; display: block !important; width: 100% !important; height: 28px !important; padding: 6px 0 6px 41px !important; font-family: Arial !important; line-height: 29px !important; font-size: 14px !important; color: #4D462C !important; text-decoration: none !important; white-space: nowrap !important; background: #FADF76 !important; text-align: left !important; border: 0 !important; border-bottom: 1px solid #C7B15E !important; z-index: 2147483647 !important; transform: scaleY(0) !important; transform-origin: 100% 0% !important; transition: transform .5s cubic-bezier(0.250, 0.460, 0.450, 0.940) !important; backface-visibility: visible !important; border-collapse: separate !important; -o-border-image: none !important; border-image: none !important; border-radius: 0 !important; border-spacing: 0 !important; bottom: auto !important; box-shadow: none !important; box-sizing: content-box !important; caption-side: top !important; clear: none !important; clip: auto !important; -webkit-columns: auto !important; -moz-columns: auto !important; columns: auto !important; -webkit-column-count: auto !important; -moz-column-count: auto !important; column-count: auto !important; -webkit-column-fill: balance !important; -moz-column-fill: balance !important; column-fill: balance !important; -webkit-column-gap: normal !important; -moz-column-gap: normal !important; column-gap: normal !important; -webkit-column-rule: medium none currentColor !important; -moz-column-rule: medium none currentColor !important; column-rule: medium none currentColor !important; -webkit-column-span: 1 !important; -moz-column-span: 1 !important; column-span: 1 !important; -webkit-column-width: auto !important; -moz-column-width: auto !important; column-width: auto !important; content: normal !important; counter-increment: none !important; counter-reset: none !important; direction: ltr !important; empty-cells: show !important; float: none !important; font-style: normal !important; font-variant: normal !important; font-weight: normal !important; font-stretch: normal !important; -webkit-hyphens: none !important; -ms-hyphens: none !important; hyphens: none !important; letter-spacing: normal !important; list-style: disc outside none !important; margin: 0 !important; max-height: none !important; max-width: none !important; min-height: 0 !important; min-width: 0 !important; opacity: 1 !important; orphans: 2 !important; outline: medium none invert !important; overflow: visible !important; overflow-x: visible !important; overflow-y: visible !important; page-break-after: auto !important; page-break-before: auto !important; page-break-inside: auto !important; -webkit-perspective: none !important; perspective: none !important; -webkit-perspective-origin: 50% 50% !important; perspective-origin: 50% 50% !important; -moz-tab-size: 8 !important; -o-tab-size: 8 !important; tab-size: 8 !important; table-layout: auto !important; -moz-text-align-last: auto !important; text-align-last: auto !important; text-decoration: none !important; text-indent: 0 !important; text-shadow: none !important; text-transform: none !important; unicode-bidi: normal !important; vertical-align: baseline !important; visibility: visible !important; widows: 2 !important; width: auto !important; word-spacing: normal !important; } .tripster-w:before { content: \'\' !important; position: absolute !important; right: 0 !important; top: 0 !important; bottom: 0 !important; width: 15px !important; z-index: 500 !important; background: linear-gradient(to right, rgba(250, 223, 118, 0) 0%, rgba(250, 223, 118, 1) 43%, rgba(250, 223, 118, 1) 100%); } .tripster-w_a { transform: scaleY(1) !important; transform-origin: 100% 0 !important; transition: transform .5s cubic-bezier(0.250, 0.460, 0.450, 0.940) !important; } .tripster-w__btn { position: absolute !important; top: 7px !important; right: 10px !important; display: inline-block !important; vertical-align: middle !important; padding: 0 25px !important; height: 28px !important; margin: 0 0 0 20px !important; line-height: 26px !important; background: #00BE8B !important; border-radius: 6px !important; font-family: Arial !important; font-size: 14px !important; text-align: center !important; color: #FFFFFF !important; z-index: 1000 !important; } .tripster-w__bold { font-weight: 700 !important; } .tripster-w__close { position: absolute !important; top: 0 !important; bottom: 0 !important; left: 0 !important; display: block !important; width: 38px !important; background: url(https://554a875a-71dc-4f5f-b6bf-ae8967f137d5.selcdn.net/photos/0bd1c7a1-4713-43df-b78b-d37a4c552bfb.png) no-repeat 50% 50% !important; cursor: pointer !important; } .tripster-w__green { color: #2e78c1 !important; } .tripster-w__dh { display: none !important; } @media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi) { .tripster-w__close { background: url(https://experience.tripster.ru/static/i/close.svg) no-repeat 50% 50%; } } /* Условия на размер эксрана определяющие где показывать: вверху или внизу */ /* Широкий экран: показ вверху */ @media only screen and (min-width: 768px) { /* body в оторый вставлен виджет, добавляем отступ сверху */ body.tripster-widgetbar-visible { margin-top: 41px !important; } } /* Если параметр виджетбара "widgetbar_position" имеет значение "bottom" */ body.tripster-widgetbar-bottom { margin-top: 0 !important; } .tripster-w--bottom { top: auto !important; bottom: 0 !important; border-top: 1px solid #C7B15E !important; border-bottom: 0 !important; transform-origin: 0 100% !important; } /* Узкий экран: показ внизу */ @media only screen and (max-width: 767px) { .tripster-w { height: 48px !important; line-height: 48px !important; top: auto !important; bottom: 0 !important; padding: 0 0 0 38px !important; border-top: 1px solid #C7B15E !important; transform-origin: 0 100% !important; } .tripster_mobile > .tripster-w__close { right: auto !important; left: 0 !important; } .tripster-w > .tripster-w__btn { position: absolute !important; top: 10px !important; line-height: 28px !important; padding: 0 10px !important; } .tripster-w > .tripster-w__mh { display: none !important; } .tripster-w > .tripster-w__dh { display: inline !important; } /* body в который вставлен виджет, отступ не нужен */ body.tripster-widgetbar-visible { margin-top: 0 !important; } } /* Условия на тип устройств: мобильный */ @media only screen and (max-device-width: 767px) { body.tripster-widgetbar-desktop .tripster-w { display: none !important } body.tripster-widgetbar-desktop { margin-top: 0 !important; } } /* Условия на тип устройств: десктоп */ @media only screen and (min-device-width: 768px) { body.tripster-widgetbar-mobile .tripster-w{ display: none !important } body.tripster-widgetbar-mobile { margin-top: 0 !important; } } @media only screen and (max-width: 450px) { .tripster-w > .tripster-w__btn { display: none !important; } } ',html:{defaultHTML:'<span class="tripster-w__mh">Необычные экскурсии от местных жителей</span> <span class="tripster-w__dh">Необычные экскурсии</span> <span class="tripster-w__green">в 500 городах мира!</span> <span class="tripster-w__btn">Посмотреть</span> <span class="tripster-w__close"></span>'},attrs:{class:"tripster-w",target:"_blank"}},m?c.widgetbar.urls.href+=`${m}?ulp=url_replace`:c.widgetbar.urls.href=t("url_replace",{utm_source:d.partner,exp_partner:d.partner,exp_subpartner:d.subpartner,term:d.label,utm_content:"utm_content_replace",utm_medium:"widgetbar",utm_campaign:"affiliates"})):c.widgetbar={show:!1},(t=>!p.some((e=>!!t[e]&&"undefined"!==t[e]))&&"tour"!==t.type)(d))try{const{city:t,country:e}=await(async t=>{C.log("detectPageGeo");const e=window.location.href.split("#")[0],i=async i=>await(async t=>{v.timeStart("detectPageGeo");try{return await b("POST",_,t)}finally{v.timeEnd("detectPageGeo")}})({url:e,partner:t,...i});let n=await i({});if("pending_text"===n.status){const{main_text:t,page_text:e}=(()=>{let t=document.title;const e=document.querySelector("meta[name=description]");return e&&(t+=` ${e.content}`),document.querySelectorAll("h1, h2").forEach((e=>{t+=` ${a(e)}`})),{main_text:t,page_text:a(document.body).substring(0,51200)}})();n=await i({main_text:t,page_text:e})}return n})(d.partner);c.params={...c.params,city:t,country:e,is_context:!0}}catch(t){C.log("onGeoFail","data",t)}return c};var I;I=async()=>{const t=await $(f,x,y.params,k);new g(w,t,C)},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",I):I()})();
//# sourceMappingURL=widget_loader.js.map