1var Oe=n=>{let e=n?.trim()??"",t=e.length;for(;t>0&&e[t-1]==="/";)t-=1;return e.slice(0,t)},bt="pn-widget",g=(n,e)=>`${Oe(n)}/${bt}/${e}`,D=n=>n===void 0?"":`?preview=${n}`,Pe=(n,e)=>{let t=e!==void 0&&e!=="";return!n&&!t?"":`/${n||"default"}/${t?e:0}`},ke=(n,e)=>e===void 0||e===""?"":`/${n||"default"}/${e}`,Z=(n,e)=>g(n,`api/${e}`),T=(n,e)=>g(n,`assets/${e}`);var Me=n=>g(n,"iframe/document.html");var xe=(n,{elementId:e,variantId:t,versionNum:r,previewToken:i})=>g(n,`custom-js/${e}${Pe(t,r)}/script.js${D(i)}`),He=(n,{elementId:e,variantId:t,versionNum:r,previewToken:i})=>g(n,`custom-css/${e}${Pe(t,r)}/style.css${D(i)}`),Ke=(n,{elementId:e,screenName:t,variantId:r,versionNum:i,previewToken:s})=>g(n,`custom-js/${e}${ke(r,i)}/screen/${t}/script.js${D(s)}`),Fe=(n,{elementId:e,screenName:t,variantId:r,versionNum:i,previewToken:s})=>g(n,`custom-css/${e}${ke(r,i)}/screen/${t}/style.css${D(s)}`),Ue=(n,{template:e,previewToken:t})=>g(n,`skeleton/js/${e}/script.js${D(t)}`),Be=(n,{template:e,previewToken:t})=>g(n,`skeleton/css/${e}/style.css${D(t)}`),Ge=(n,{applicationId:e,template:t,query:r=""})=>g(n,`skeleton/graph/${e}/${t}/graph.js${r}`),$e=(n,{applicationId:e,elementId:t,versionId:r,query:i=""})=>g(n,`graph/${e}/${t}${r?`/${r}`:""}/graph.js${i}`);var N=n=>Math.floor(Math.random()*n);var Tt=(n,e)=>{let t=new URLSearchParams;n&&t.set("preview",N(1e3).toString()),e&&t.set("themeId",e);let r=t.toString();return r?`?${r}`:""},St=({applicationId:n,elementId:e,versionId:t,endpoint:r,preview:i,skeleton:s,themeId:o})=>{let a=Tt(i,s?.themeId??o);return s?Ge(r,{applicationId:n,template:s.template,query:a}):$e(r,{applicationId:n,elementId:e,versionId:t,query:a})},We=async({applicationId:n,elementId:e,versionId:t,endpoint:r,preview:i,skeleton:s,themeId:o})=>{let a=St({applicationId:n,elementId:e,versionId:t,endpoint:r,preview:i,skeleton:s,themeId:o});try{return(await import(a)).default()}catch(l){if(i)return;window.widgetSDKErrors.push({error:l,tags:{src:"pn-widget-sdk-graph",engine:"lightweight"}})}},ee=async({url:n,query:e,headers:t,endpoint:r,applicationId:i,elementId:s,preview:o,credentials:a="omit"})=>{let l=`${n}?${new URLSearchParams(e)}`;try{return await(await fetch(l,{credentials:a,headers:t})).json()}catch(c){if(o)return;window.widgetSDKErrors.push({error:c,tags:{src:"pn-widget-sdk-request",engine:"lightweight"}})}};var y=n=>{(document.head||document.getElementsByTagName("head")[0]).appendChild(n)};var h=(n,e={},t)=>{let r=document.createElement(n);return Object.keys(e).forEach(i=>{r[i]=e[i]}),t&&Object.keys(t).forEach(i=>{r.style[i]=t[i]}),r};var te=(n,e="text/javascript",t)=>new Promise(r=>{let i=h("script",{type:e,onload:()=>r(),src:n});t?t.appendChild(i):y(i)});var _=(n,e)=>new Promise(t=>{let r=h("link",{rel:"stylesheet",href:n,onload:()=>t()});e?e.appendChild(r):y(r)});var ne=()=>{let n,e;return{promise:new Promise((r,i)=>{n=r,e=i}),resolve:n,reject:e}};var At="piano_debug",Ve="piano_debug",qe=n=>n==="true"||n==="1",Lt=()=>{try{return qe(window.localStorage.getItem(At))}catch{return!1}},vt=()=>{try{return qe(new URLSearchParams(window.location.search).get(Ve))}catch{return!1}},Dt=()=>typeof window>"u"?!1:Lt()||vt(),Re=Dt(),Ye="widget",Xe=n=>Re?`${n}${n.includes("?")?"&":"?"}${Ve}=true`:n,Nt={error:{method:"error",style:"background: #fca9a9; color: #101012"},warn:{method:"warn",style:"background: #edeaa7; color: #101012"},info:{method:"info",style:"background: #a7d8ed; color: #101012"},debug:{method:"debug",style:"background: #8fe89e; color: #101012"},silly:{method:"debug",style:"background: #d8c9f0; color: #101012"}},U=(n,e,t)=>{if(!Re)return;let{method:r,style:i}=Nt[n];console[r]("%c%s",i,`pn-${Ye}: ${e}`,...t)},E={setDevMode:n=>{Re=n},setContext:n=>{Ye=n},info:(n,...e)=>U("info",n,e),warn:(n,...e)=>U("warn",n,e),error:(n,...e)=>U("error",n,e),debug:(n,...e)=>U("debug",n,e),silly:(n,...e)=>U("silly",n,e)};var yt="stylesheet",be=null,ze=!1,je=[],Je=[],Te=[],Qe=()=>{let n=i=>new RegExp(`^${T(i,"")}(?!pn-widget-fonts)([\\s\\S]+).css$`,"i"),e=i=>{if(be===null){let s={apply:function(o,a,l){try{if(l[0].rel===yt){let c=l[0];if(n(i).exec(c.href)!==null){let u=o.apply(a,l),f=null;if(je.forEach(d=>{if(f)if(d.isPlain)c.disabled=!1;else{let m=c.cloneNode();d.shadowElement.shadowRoot.appendChild(m)}else if(d.isPlain)c.disabled=!1;else{let m=c.cloneNode();f=o.apply(d.shadowElement.shadowRoot,[m])}}),Te.findIndex(d=>d.href===c.href)<0){let d=c.cloneNode();Te.push(d),Je.push(c)}return u.onload=()=>{ze||(u.disabled=!0)},u}}return o.apply(a,l)}catch(c){E.error("head appendChild proxy failed",c)}return o.apply(a,l)}};
1be=new Proxy(document.head.appendChild,s),document.head.appendChild=be}},t=!1;return{addElement:(i,s,o=!1)=>{t||(e(s.endpoint),t=!0),je.push({shadowElement:i,options:s,isPlain:o}),o?(ze=!0,Je.forEach(a=>{a.disabled=!1})):Te.forEach(a=>{let l=a.cloneNode();i.shadowRoot.appendChild(l)})}}};var Se={IOS:"ios",ANDROID:"android",OTHER:"other"},re={MOBILE:"mobile",DESKTOP:"desktop"},ie=class{userAgent=navigator.userAgent;deviceType(){let e=this.userAgent.toLowerCase(),t=/android|webos|iphone|ipad|ipod|blackberry|windows phone/.test(e),r=window.matchMedia("(max-width: 768px)").matches,i="ontouchstart"in window;return t||r||i?re.MOBILE:re.DESKTOP}devicePlatform(){let e=/iPad|iPhone|iPod/.test(this.userAgent)||navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1,t=/Android/i.test(this.userAgent);return e?Se.IOS:t?Se.ANDROID:Se.OTHER}};var Ae="piano-widget-container",w=`.${Ae}`,P={MODAL:"modal",INLINE:"inline",DRAWER:"drawer"},se={PLAIN:"plain",SHADOW:"shadow",IFRAME:"iframe"},wt=(n=>(n.CHURN_PREVENTION="ChurnPrevention",n.ACTIVE_CHURN_PREVENTION_SKELETON="ActiveChurnPreventionSkeleton",n.REGISTRATION="Registration",n.PUSH_ENROLLMENT="PushEnrollment",n.CHECKOUT="Checkout",n.NEWSLETTER="Newsletter",n.PURE="Pure",n.OFFER="Offer",n.ADBLOCKER="Adblocker",n.SITE_LICENSING="SiteLicensing",n.METERING="Metering",n.UPGRADE_OFFER="UpgradeOffer",n.AFFILIATE="Affiliate",n.PIANO_ID_AUTH="PianoIdAuth",n.PIANO_ID_CUSTOM_FORM="PianoIdCustomForm",n))(wt||{}),et="pn-widgets.default";var tt={locale:"en_US",label:"English (United States)",localized_label:"English (United States)",is_default:!0,is_enabled:!0,is_rtl:!1,flag_code:"us"},B=(n=>(n.ESCAPE="Escape",n.ENTER="Enter",n.TAB="Tab",n.SPACE=" ",n.ARROW_UP="ArrowUp",n.ARROW_DOWN="ArrowDown",n.ARROW_LEFT="ArrowLeft",n.ARROW_RIGHT="ArrowRight",n.HOME="Home",n.END="End",n))(B||{}),Pt=(n=>(n.VX_EXPERIENCE_WIDGET="vxExperienceWidget",n.OSTAP_CHECKOUT_WIDGET="ostapCheckoutWidget",n.PIANO_ID_WIDGET="pianoIdWidget",n))(Pt||{}),nt=(n=>(n.LOGIN="LoginScreen",n.REGISTER="RegisterScreen",n.INITIATE_PASSWORD_RESET="InitiatePasswordResetScreen",n.NEW_PASSWORD="NewPasswordScreen",n.PASSWORDLESS_CONFIRMATION="PasswordlessConfirmationScreen",n.DIGITAL_CODE="DigitalCodeScreen",n.EMAIL_CONFIRMATION="EmailConfirmationScreen",n.EMAIL_CONFIRMATION_REQUIRED="EmailConfirmationRequiredScreen",n.EMAIL_IS_NOT_CONFIRMED="EmailIsNotConfirmedScreen",n.TWO_FA_EMAIL_DIGITAL_CODE="TwoFaEmailDigitalCodeScreen",n.LOGIN_CONFIRM="LoginConfirmScreen",n.REGISTER_CONFIRM="RegisterConfirmScreen",n.PHONE_IS_NOT_CONFIRMED="PhoneIsNotConfirmedScreen",n.ALIAS_LOGIN="AliasLoginScreen",n.SSO_CONFIRM="SsoConfirmScreen",n.SSO_CONFIRM_BEFORE="SsoConfirmBeforeScreen",n.OPENPASS_PLACEHOLDER="OpenpassPlaceholderScreen",n))(nt||{}),un=Object.values(nt);var kt={LoginScreen:"login",RegisterScreen:"register",InitiatePasswordResetScreen:"restore",NewPasswordScreen:"new_password",PasswordlessConfirmationScreen:"passwordless_confirmation",DigitalCodeScreen:"digital_code",EmailConfirmationScreen:"email_confirmation",EmailConfirmationRequiredScreen:"email_confirmation_required",EmailIsNotConfirmedScreen:"email_is_not_confirmed",TwoFaEmailDigitalCodeScreen:"2fa_email_digital_code",LoginConfirmScreen:"login_confirm",RegisterConfirmScreen:"register_confirm",PhoneIsNotConfirmedScreen:"phone_is_not_confirmed",AliasLoginScreen:"alias_login",SsoConfirmScreen:"sso_confirm",SsoConfirmBeforeScreen:"sso_confirm_before",OpenpassPlaceholderScreen:"openpass_placeholder"},hn=Object.fromEntries(Object.entries(kt).map(([n,e])=>[e,n]));var Ze={upgradeOffer:"getUpgradeOfferData",form:"getCustomFormConfig"},rt=(n,e)=>!n||!e?{}:Object.keys(Ze).reduce((t,r)=>{let i=e[r];return i===void 0?t:{...t,[Ze[r]]:Promise.resolve(i)}},{}),Mt=(n=>(n.OFFER="offer",n.CHECKOUT="checkout",n.NEWSLETTER="newsletter",n.TEMPLATE="template",n.METERING="metering",n.AFFILIATE="affiliate",n.LICENSING="licensing",n.CHURN_PREVENTION="churn_prevention",n.ACTIVE_CHURN_PREVENTION="active_churn_prevention",n.PUSH_ENROLLMENT="push_enrollment",n.ADBLOCKER="adblocker",n.REGISTRATION="registration",n.UPGRADE_OFFER="upgrade_offer",n.PIANO_ID_AUTH="piano_id_auth",n.PIANO_ID_CUSTOM_FORM="piano_id_custom_form",n))(Mt||{});var xt=(n=>(n.TINYPASS_ACCOUNTS="tinypass_accounts",n.CONDE="conde",n.GIGYA="gigya",n.JANRAIN="janrain",n.PIANO_ID="piano_id",n.AUTH_SYNC="piano_id_lite",n))(xt||{}),Ht=(n=>(n.NA="NA",n.ACTIVE="A",n.CANCELLED="C",n.FAIL_AND_RETRY="FAR",n.EXPIRED_WITH_ERROR="EWE",n.EXPIRED="E",n.COMPLETED="END",n.DELETED="D",n.WAIT_CONFIRMED="WC",n.UPGRADED="UPGRD",n.PENDING="P",n.NOT_STARTED="NS",n))(Ht||{}),Kt=(n=>(n[n.IMMEDIATELY=0]="IMMEDIATELY",n[n.END_OF_CURRENT_BILLING_PERIOD=1]="END_OF_CURRENT_BILLING_PERIOD",n[n.NEXT_SELL_DATE=2]="NEXT_SELL_DATE",n[n.END_OF_CURRENT_SCHEDULED_PERIOD=3]="END_OF_CURRENT_SCHEDULED_PERIOD",n))(Kt||{}),Ft="user/get",it="getUser",Ut="externalAuthCookieName",st=(n,e)=>{let t={applicationId:n};return e&&(t[Ut]=e),{path:Ft,query:t}};var k=n=>{let e="pn-slot-container-",t=h("div",{slot:e+n}),r=h("div",{id:`${e}${n}-content`});return t.appendChild(r),t};var ot=(n,e)=>{let t=h("style",e?{id:e}:{});return t.textContent=n,y(t),t};var at="--pn-font-size-",lt="--pn-font-line-height-",ct="--pn-font-weight-";var M="--pn-font-family",oe="--pn-font-family-url";var Le=(n,e,t={})=>{Object.entries(t).forEach(([r,i])=>{i&&(n[`${e}${r}`]=i)})},pt=n=>{if(!n)return;let e={};return n.family&&(e[M]=n.family),Le(e,at,n.size),Le(e,lt,n.lineHeight),Le(e,ct,n.weight),Object.keys(e).length?e:void 0},mt=n=>
1!n||!n.url?[]:(Array.isArray(n.url)?n.url:[n.url]).filter(Boolean);var Bt="pn-widget-publisher-font-face",Et=new Set,ve=new Set,De=n=>{mt(n).forEach(t=>{Et.has(t)||(Et.add(t),_(t))});let e=n?.fontFace;e&&!ve.has(e)&&(ve.add(e),ot(e,`${Bt}-${ve.size}`))};var ae=class{deviceDetector=new ie;shadowElementStyleProxy=Qe();SHADOW_ROOT_ID="shadow-root";staticResourcesLoadingState={};iframe(e){return new Promise(t=>{let r=h("iframe",{className:`element-${e.elementInstanceId}-iframe`,frameBorder:"0",scrolling:"no",height:"100%",width:"100%",allow:"payment","data-testid":`piano-element-iframe-${e.elementName}`},{border:"0px !important",padding:"0px important",overflow:"hidden !important",width:"100%",minWidth:"100% !important",height:"100%",transform:"translate(0px) !important",userSelect:"none !important"});if(e.containerElement.appendChild(r),!r.contentWindow)throw new Error;r.onload=()=>t({element:r}),r.setAttribute("src",Xe(Me(e.endpoint))),e.eventEmitter.subscribe("resize",({data:i})=>{let s=i.height;if(this.deviceDetector.deviceType()===re.MOBILE){let a=i.height*.1;s=s+a}r.style.height=`${s}px`},{system:!0})})}async plain(e){let t=h("div",{id:`${this.SHADOW_ROOT_ID}-${e.elementInstanceId}`});e.containerElement.appendChild(document.createElement("div")).appendChild(t);let r=this.startPrefetch(e);this.addExternalCssList(e.externalCssList),De(e.fonts);let i=this.loadCustomJsCss(e),s=this.loadScreenJsCss(e);return await this.loadStaticResources(e),this.shadowElementStyleProxy.addElement(t,e,!0),{element:t,startedCustomStaticPrefetch:i,startedScreenStaticPrefetch:s,startedPrefetchRequests:r}}async shadow(e){let t=h("pn-widget",{style:"height: 100%;"}),r=t.attachShadow({mode:"open"}),i=h("div",{id:`${this.SHADOW_ROOT_ID}-${e.elementInstanceId}`}),s=k(`${e.elementInstanceId}`),o=k(`${e.elementInstanceId}-stripe-payment-element`),a=k(`${e.elementInstanceId}-stripe-billing-address-element`),l=k(`${e.elementInstanceId}-stripe-shipping-address-element`),c=k(`${e.elementInstanceId}-stripe-express-buttons-element`);t.appendChild(s),t.appendChild(o),t.appendChild(a),t.appendChild(l),t.appendChild(c),r.appendChild(i),e.containerElement.appendChild(t);let p=this.startPrefetch(e);this.addExternalCssList(e.externalCssList,r),De(e.fonts);let u=this.loadCustomJsCss(e,r),f=this.loadScreenJsCss(e,r);return await this.loadStaticResources(e,r),this.shadowElementStyleProxy.addElement(t,e),{element:i,shadowElement:t,startedCustomStaticPrefetch:u,startedScreenStaticPrefetch:f,startedPrefetchRequests:p}}createStaticPromise(e,t){return this.staticResourcesLoadingState[e]?this.staticResourcesLoadingState[e].promise:(this.staticResourcesLoadingState[e]=ne(),t().then(()=>this.staticResourcesLoadingState[e].resolve()))}startPrefetch({prefetch:e,predefinedData:t,preview:r,skeleton:i,locale:s,elementName:o,applicationId:a,endpoint:l,auth:c,elementId:p}){let u=r?{preview:N(1e3).toString(),locale:s}:{locale:s};return Object.entries(e).reduce((f,[d,m])=>{if(d in f)return f;let O=this.getPrefetchQueryData(t,m.query.required);if(this.isNeedForRequiredDataCheck(m,r)&&O.missedParams.length)E.warn(`can not prefetch ${d} (${m.url}). the following required data has not been passed - ${O.missedParams.join(", ")}`);else{let R=this.getPrefetchQueryData(t,m.query.optional),b=m.query.needAuthorizationHeader===!0&&c.userToken?{Authorization:c.userToken}:{};f[d]=ee({url:Z(l,m.url),query:{...u,...R.passedData,...O.passedData},headers:b,applicationId:a,endpoint:l,elementId:p,preview:r})}return f},{translationsMap:this.prefetchTranslationsMap(a,o,s,l,p,r),...this.prefetchUser(a,l,p,r,c),...rt(r,i?.payload?.preview)})}isNeedForRequiredDataCheck(e,t){let r=[...e.query.optional,...e.query.required].includes("preview");return!t||t&&!r}getPrefetchQueryData(e,t){return t.reduce((r,i)=>(e[i]===void 0||e[i]===""?r.missedParams.push(i):r.passedData[i]=e[i],r),{passedData:{},missedParams:[]})}prefetchTranslationsMap(e,t,r,i,s,o){return ee({url:Z(i,"getTranslations.js"),query:{applicationId:e,locale:r,translationContexts:JSON.stringify({Default:et,[t]:`${t.toLowerCase()}.component`})},endpoint:i,applicationId:e,elementId:s,preview:o})}prefetchUser(e,t,r,i,s){if(s.user||!s.userToken&&!s.externalAuthCookieName)return{};let o=!!s.externalAuthCookieName,{path:a,query:l}=st(e,o?s.externalAuthCookieName:void 0);
1return{[it]:ee({url:Z(t,a),query:l,headers:o?void 0:{Authorization:s.userToken},endpoint:t,applicationId:e,elementId:r,preview:i,credentials:o?"include":"omit"})}}async loadStaticResources({sourceStaticUrl:e,endpoint:t},r){let i=this.createStaticPromise(`${e.js}`,()=>te(T(t,e.js),"module"));e.css&&_(T(t,e.css),r),e.vendor&&this.createStaticPromise(`${e.vendor}`,()=>te(T(t,e.vendor),"module")),this.createStaticPromise(`${e.componentJs}`,()=>te(T(t,e.componentJs),"module"));try{await i}catch(s){E.error("Can't load static resources",s)}}loadScreenJsCss({elementId:e,activeScreen:t,variantId:r,versionNum:i,preview:s,endpoint:o},a){if(!t)return;let l={elementId:e,screenName:t,variantId:r,versionNum:i,previewToken:s?N(1e3):void 0},c=Fe(o,l);a?_(c,a):this.createStaticPromise(c,()=>_(c));let p=import(Ke(o,l));return{name:t,module:p}}loadCustomJsCss({elementId:e,variantId:t,versionNum:r,preview:i,endpoint:s,skeleton:o},a){let l=i?N(1e3):void 0;if(o){let u={template:o.template,previewToken:l},f=Be(s,u);return a?_(f,a):this.createStaticPromise(f,()=>_(f)),import(Ue(s,u))}let c={elementId:e,variantId:t,versionNum:r,previewToken:l},p=He(s,c);return a?_(p,a):this.createStaticPromise(p,()=>_(p)),import(xe(s,c))}addExternalCssList(e,t){e.forEach(r=>{t?_(r,t):this.createStaticPromise(r,()=>_(r))})}};var G=class{actions=[];_enabled=!1;get enabled(){return this._enabled}add(e,t){return this.enabled?(this.actions.push({action:e,payload:t}),this):this}extractAllActions(){let e=[...this.actions];return this.clear(),e}enable(){return this._enabled=!0,this}disable(){return this._enabled=!1,this}clear(){return this.actions=[],this}};var le=class{_id=this.generateRandomId();subscribers={};buffer=new G;subscribe(e,t,r){this.subscribers[e]||(this.subscribers[e]=[]);let i={callback:t,id:this.generateRandomId(),once:r?.once||!1};return r?.system&&(i.system=r.system),this.subscribers[e].push(i),{unsubscribe:this.unsubscribe.bind(this,e,t),id:i.id}}subscribeOnce(e,t,r){return this.subscribe(e,t,{...r,once:!0})}unsubscribe(e,t){let r=this.subscribers[e]?.findIndex(i=>{if(typeof t=="function")return i.callback===t;if(typeof t=="number")return i.id===t});r>-1&&(this.subscribers[e]=this.subscribers[e].filter((i,s)=>s!==r))}emit(e,t){let r=this.subscribers[e]&&this.subscribers[e].length;if(!r&&this.buffer.enabled){this.buffer.add(e,t);return}if(!r){E.warn(`No subscribers for action: ${e}`,`EventEmitterId: ${this.id}`,"Payload:",t);return}this.subscribers[e].forEach(i=>{i.callback(t),i.once&&this.unsubscribe(e,i.callback)})}unsubscribeAllFromAction(e){this.subscribers[e]=[]}unsubscribeAll(){this.subscribers={},this.buffer.clear()}get subscriberList(){return Object.keys(this.subscribers).reduce((e,t)=>(this.subscribers[t].filter(r=>!r.system).length&&(e[t]=this.subscribers[t].filter(r=>!r.system)),e),{})}get id(){return this._id}enableBuffer(){this.buffer.enable()}disableBuffer(){this.buffer.clear().disable()}emitDeferredActions(){this.buffer.disable().extractAllActions().forEach(({action:t,payload:r})=>{this.emit(t,r)})}generateRandomId(){return Math.floor((Math.random()+1)*1e6)}};var ut=n=>typeof structuredClone<"u"?structuredClone(n):JSON.parse(JSON.stringify(n));var x=class{CHANNEL_NAME="shadow-message";elements={};createChannelListener(){return e=>{e.stopPropagation(),e.stopImmediatePropagation();let{detail:t}=e;this.elements[t.elementInstanceId].eventEmitter.emit(t.action,t)}}createCustomEvent(e,t=this.CHANNEL_NAME){return new CustomEvent(t,{bubbles:!1,composed:!1,detail:e,cancelable:!0})}sendMessage(e){this.elements[e.elementInstanceId].receiverElement.dispatchEvent(this.createCustomEvent(e))}destroy(e){this.elements[e].receiverElement&&this.elements[e].receiverElement.removeEventListener(this.CHANNEL_NAME,this.elements[e].listener),this.elements[e].listenerElement&&this.elements[e].listenerElement.removeEventListener(this.CHANNEL_NAME,this.elements[e].listener),delete this.elements[e]}};var $=class extends x{constructor(){super()}sendPortToWidget({container:e,elementInstanceId:t,message:r,eventEmitter:i}){return new Promise((s,o)=>
1{this.elements[t]={id:t,listener:null,eventEmitter:i,receiverElement:e,listenerElement:window},window.addEventListener("handshakeFromWidget",a=>{let{detail:l}=a;l.elementInstanceId===this.elements[t].id?(this.elements[t].listener=this.createChannelListener(),this.elements[t].listenerElement.addEventListener(this.CHANNEL_NAME,this.elements[t].listener),s(l)):(E.error("Handshake came from a different widget","expected:",t,"received:",l.elementInstanceId),o(l))},{once:!0}),E.debug(`send port to container with elementInstanceId: ${t}`),window.dispatchEvent(this.createCustomEvent(r,"handshakeFromSDK"))})}};var W=class extends x{constructor(){super()}getPortFromSDK(e,t){window.addEventListener("handshakeFromSDK",r=>{let{detail:i}=r,s=i.elementInstanceId;if(this.elements[s]){E.error(`Element with elementInstanceId: ${s} is already rendered. Please make sure that you use a unique elementInstanceId for elements.`);return}let o=e();this.elements[s]={id:s,listener:this.createChannelListener(),eventEmitter:o,receiverElement:window,listenerElement:document.querySelector(i.data.container.selector||w)},this.elements[s].listenerElement.addEventListener(this.CHANNEL_NAME,this.elements[s].listener),E.debug(`port for container received, elementInstanceId: ${s}`),window.dispatchEvent(this.createCustomEvent(i,"handshakeFromWidget")),t(i,o)})}};var H=class{eventEmitter;elementInstanceId=null;constructor(e){this.eventEmitter=e}sendMessage(e){}getMessage(e){e.onmessage=t=>{!t.data||t.data.elementInstanceId!==this.elementInstanceId||this.eventEmitter.emit(t.data.action,t.data)}}destroy(){}};var V=class extends H{eventEmitter;channel=new MessageChannel;port1=null;constructor(e){super(e),this.eventEmitter=e}sendMessage(e){this.sendMessageToWidget(e)}sendPortToWidget({container:e,url:t,message:r,elementInstanceId:i}){return new Promise((s,o)=>{if(this.port1=this.channel.port1,this.elementInstanceId=i,this.port1.onmessage=a=>{s(a.data),this.getMessageFromWidget()},this.port1.onmessageerror=a=>{E.error("iframe channel message error",a),o(a)},E.debug("send port to iframe with elementInstanceId: ",this.elementInstanceId),e.contentWindow)e.contentWindow.postMessage(r,t,[this.channel.port2]);else throw new Error("There is no container for some reason")})}sendMessageToWidget(e){this.port1.postMessage(e)}getMessageFromWidget(){this.getMessage(this.port1)}destroy(){this.port1&&this.port1.close()}};var q=class extends H{eventEmitter;port2=null;constructor(e){super(e),this.eventEmitter=e}sendMessage(e){this.sendMessageToSDK(e)}getPortFromSDK(){return new Promise(e=>{let t=r=>{let{data:i,ports:s}=r;s.length&&i.action==="handshake"&&i&&(this.elementInstanceId=i.elementInstanceId,this.port2=s[0],this.getMessageFromSDK(),window.removeEventListener("message",t),E.debug("port for iframe received, elementInstanceId: ",i.elementInstanceId),this.sendMessageToSDK({...i}),e(i))};window.addEventListener("message",t)})}getMessageFromSDK(){this.getMessage(this.port2)}sendMessageToSDK(e){this.port2.postMessage(e)}destroy(){this.port2&&this.port2.close()}};var Y=class n{static containerSDK;static containerWidget;static createSDKChannel({isIframe:e,eventEmitter:t}){return e?new V(t):(n.containerSDK||(n.containerSDK=new $),n.containerSDK)}static createWidgetChannel({isIframe:e,eventEmitter:t}){return e&&t?new q(t):(n.containerWidget||(n.containerWidget=new W),n.containerWidget)}};var ce=class{eventListenersUnsubscribers={};addEventListener(e,t){this.eventListenersUnsubscribers[e]||(this.eventListenersUnsubscribers[e]=[]),this.eventListenersUnsubscribers[e].push(t)}removeEventListeners(e){this.eventListenersUnsubscribers[e]?.length&&this.eventListenersUnsubscribers[e].forEach(t=>t())}};var ht="pn-theme-font",Gt="sans-serif",$t="https:",ft=n=>{if(n)try{let e=new URL(n.trim());return e.protocol===$t?e.href:void 0}catch{return}},Wt=n=>n.split(",")[0].trim().replace(/^['"]|['"]$/g,""),Vt=(n,e)=>`@font-face { font-family: "${n}"; src: url("${e}"); font-display: swap; }`,qt=n=>{if(!(oe in n))return n;let e={...n};return delete e[oe],e},It=(n,e)=>{let t=ft(n[M]),r=t??ft(n[oe]),i=qt(n);if(!r||e?.family)return{themePreset:i,fonts:e};let s=t?"":n[M],o=s?Wt(s):ht;return{themePreset:{...i,[M]:s||`"${ht}", ${Gt}`}
1,fonts:{...e,fontFace:[e?.fontFace,Vt(o,r)].filter(Boolean).join(` 2`)}}};var Yt=["offerId","formName"],_t=n=>Yt.reduce((e,t)=>{let r=n?.payload?.[t];return typeof r=="string"&&r!==""?{...e,[t]:r}:e},{});var de=class{constructor(e,t){this.pageScrollPreventer=e;this.domRegistry=t}elements=new Map;elementsConfigs=new Map;elementsEventListeners=new ce;getElementEventListenersService(){return this.elementsEventListeners}getElements(){return this.elements}addElement(e){this.elements.set(e.elementInstanceId,e)}getElementsConfigs(){return this.elementsConfigs}addElementsConfigs(e){this.elementsConfigs.set(e.elementInstanceId,e)}createElementActions({channel:e,eventEmitter:t,elementId:r,elementInstanceId:i,elementName:s,trackingId:o}){return{listen:(d,m)=>t.subscribe(d,m),listenOnce:(d,m)=>t.subscribeOnce(d,m),listenerList:()=>t.subscriberList,removeListener:(d,m)=>t.unsubscribe(d,m),dispatchSignal:(d,m)=>t.emit("dispatchSignal",{action:d,elementId:r,elementInstanceId:i,data:m}),destroy:d=>{e.sendMessage({elementInstanceId:i,data:{},action:"destroy"}),d&&d.isLogElementDestroy&&t.emit("logConversion",{data:{logEventType:"logAutoMicroConversion",payload:{eventType:"EXTERNAL_EVENT",eventGroupId:"close",trackingId:o}}}),t.emit("destroy",{elementId:r,elementInstanceId:i,elementName:s}),t.unsubscribeAll(),e.destroy(i),this.elementsEventListeners.removeEventListeners(i),this.elements.delete(i),this.elementsConfigs.delete(i);let m=this.domRegistry.get(i);if(this.domRegistry.delete(i),m)switch(m.elementAppearanceType){case P.INLINE:m.publisherContainerElement.classList.remove(`element-${i}`),m.publisherContainerElement.innerHTML="";break;case P.MODAL:case P.DRAWER:m.backdropElement?.remove(),m.wrapperElement?.remove();break}this.pageScrollPreventer.isScrollDisabled&&!this.domRegistry.hasScrollDisablingWidgets()&&this.pageScrollPreventer.enableScroll(),document.getElementById(i)?.remove()}}}subscribeOnElementGlobalEvents(e,t){e.subscribe("dispatchSignal",r=>{t.sendMessage(r)},{system:!0}),e.subscribe("closeButtonClicked",r=>{this.deleteElement(r.elementInstanceId,{isLogElementDestroy:r.data?.trackCloseEvent??!0})},{system:!0}),e.subscribe("logout",r=>{this.getElementsConfigs().get(r.elementInstanceId)?.container.appearance.type!==P.INLINE&&this.deleteElement(r.elementInstanceId)},{system:!0})}async createElementConfig({elementId:e,variantId:t,versionId:r,activeScreen:i,skeleton:s,container:o,applicationId:a,predefinedData:l,auth:c,preview:p,endpoint:u,externalCssList:f,theme:d,themeId:m,fonts:O,layoutConfiguration:R}){if(!e&&!s)throw new Error("elementId is required unless skeleton is passed!");if(o.appearance.type==="inline"&&!o.selector)throw new Error("container.selector is empty, please add the selector property");o.appearance.type===P.MODAL&&(o.selector=w);let C=crypto.randomUUID(),b=await We({applicationId:a,elementId:e,versionId:r,endpoint:u,preview:p,skeleton:s,themeId:m}),S=b.elementId,A=b.elementName,I=ut(b),J=new le,L=d?.variables;L&&(I.themePreset=p?{...L}:{...I.themePreset,...L});let K=pt(O);K&&(I.themePreset={...I.themePreset,...K});let{themePreset:Ie,fonts:_e}=It(I.themePreset,O);I.themePreset=Ie,R&&(I.layoutConfiguration=p?{...R}:{...I.layoutConfiguration,...R}),o.elementDisplayType||(o.elementDisplayType=I.containerType);let F=o.elementDisplayType===se.IFRAME,Ce=Y.createSDKChannel({isIframe:F,eventEmitter:J}),{templateVersionId:v,version:Q}=I.template,ge={app:I.app,applicationId:a,elementId:S,elementInstanceId:C,variantId:t,versionId:v,versionNum:Q};return{applicationId:a,elementGraph:I,elementName:A,elementId:S,elementInstanceId:C,variantId:t,versionId:v,versionNum:Q,activeScreen:i,skeleton:s,container:o,predefinedData:{...l,..._t(s),...ge},eventEmitter:J,channel:Ce,auth:c,preview:p,endpoint:u,fonts:_e,externalCssList:[...f??[],...I.sourceStaticUrl.externalCssList??[]]}}getElement(e){return this.elements.get(e)}deleteElement(e,t){let r=this.elements.get(e);r?r.destroy(t):E.warn(`Element with passed elementInstanceId: ${e} is not presented or already deleted`)}};var X=class{beforeSentinel=null;afterSentinel=null;bodySentinel=null;enable(e,t){this.beforeSentinel=this.createSentinel("before"),this.afterSentinel=this.createSentinel("after"),e.insertBefore(this.beforeSentinel,t),e.appendChild(this.afterSentinel),this.beforeSentinel.addEventListener("keydown",this.handleKeydown),this.afterSentinel.addEventListener("keydown",this.handleKeydown),this.bodySentinel=this.createBodySentinel(),document.body.insertBefore(this.bodySentinel,document.body.firstChild),setTimeout(()=>this.beforeSentinel.focus(),10)}disable(){this.beforeSentinel?.removeEventListener("keydown",this.handleKeydown),this.afterSentinel?.removeEventListener("keydown",this.handleKeydown),this.beforeSentinel?.remove(),this.afterSentinel?.remove(),this.bodySentinel?.remove(),this.beforeSentinel=null,this.afterSentinel=null,this.bodySentinel=null}createSentinel(e){let t=document.createElement("div");return t.setAttribute("data-focus-sentinel",e),t.tabIndex=0,t.setAttribute("aria-hidden","true"),t.style.cssText="position: absolute; padding: 3px; top: 5px; left: -200em;",t}createBodySentinel(){let e=document.createElement("div");return e.tabIndex=0,e.setAttribute("aria-hidden","true"),e.style.cssText="position: absolute; top: 0; left: -200em;",e.addEventListener("focus",()=>{this.beforeSentinel?.focus()}),e}handleKeydown=e=>{if(e.key!==B.TAB)return;let t=e.target===this.beforeSentinel,r=e.target===this.afterSentinel;e.shiftKey&&t&&(e.preventDefault(),this.afterSentinel?.focus()),!e.shiftKey&&r&&(e.preventDefault(),this.beforeSentinel?.focus())}};var Ct=(n,e)=>{if(document.getElementById(n))return;let t=document.createElement("style");t.id=n,t.textContent=e,document.head.appendChild(t)};function Ne(n){return n!==null&&typeof n=="object"&&!Array.isArray(n)}function z(n,e){let t={...n};if(Ne(n)&&Ne(e))for(let r in e){let i=e[r];Ne(i)?r in n?t[r]=z(n[r],e[r]):Object.assign(t,{[r]:e[r]}):i!=null&&Object.assign(t,{[r]:e[r]})}return t}var pe=class{constructor(e,t){this.pageScrollPreventer=e;this.domRegistry=t}defaultModalContainerAppearanceOptions={isPageScrollDisabled:!0,isBackdropVisible:!0,isCloseOnBackdropClick:!1,zIndex:1e4,backdrop:{transparency:7,color:"#5E5E5E"},position:{mobile:{stickTo:"center"}},size:{mobile:{maxWidth:"740px",maxHeight:"80vh"}}};stickToStylesMap={left:{left:"0",top:"50%"},right:{left:"100%",top:"50%"},center:{left:"50%",top:"50%"},top:{left:"50%",top:"0",width:"100vw"},bottom:{left:"50%",top:"100%",width:"100vw"}};defaultInlineContainerAppearanceOptions={size:{mobile:{maxWidth:"unset",maxHeight:"unset"}}};defaultDrawerContainerAppearanceOptions={isPageScrollDisabled:!1,isBackdropVisible:!1,isCloseOnBackdropClick:!1,zIndex:1e4,backdrop:{transparency:7,color:"#5E5E5E"},position:{mobile:{stickTo:"center"}},size:{mobile:{maxWidth:"740px",maxHeight:"100vh"}}};prepareContainerElement(e){switch(e.container.appearance.type){case"modal":return this.modal(e);case"inline":return this.inline(e);case"drawer":return this.drawer(e);default:E.error(`Wrong container.appearance.type: ${e.container.appearance.type}`);return}}getParentHTMLElement(e){if(e.appearance.type==="modal"||e.appearance.type==="drawer")return this.emptySelectorContainer();let t=document.querySelector(e.selector);if(!t)throw new Error("There is no a container -> "+e.selector);return t.innerHTML="",t}modal({container:e,elementInstanceId:t,destroy:r,elementEventListenersService:i}){let s=this.getParentHTMLElement(e),o=e.appearance.options??{};o=z(this.defaultModalContainerAppearanceOptions,o),o.isPageScrollDisabled&&this.pageScrollPreventer.preventScroll();let a=h("div",{className:"piano-modal-body",style:"width: 100%"});this.applyContainerStyles({elementInstanceId:t,options:o});let l=h("div",{className:`piano-modal-wrapper element-${t}`,tabIndex:-1,role:"dialog",ariaModal:"true"},{position:"fixed",zIndex:o.zIndex.toString(),overflow:"hidden",
2width:"100vw",webkitOverflowScrolling:"touch",outline:"none"}),c=null;o.isBackdropVisible&&(c=this.createBackdrop(o,r),s.appendChild(c)),l.appendChild(a),s.appendChild(l);let p=new X;return p.enable(l,a),i.addEventListener(t,()=>{p.disable()}),this.domRegistry.register(t,{elementAppearanceType:e.appearance.type,wrapperElement:l,backdropElement:c,publisherContainerElement:s,isScrollDisabled:o.isPageScrollDisabled}),{containerElement:a,publisherContainerElement:s}}inline({container:e,elementInstanceId:t}){let r=this.getParentHTMLElement(e),i=e.appearance.options??{};return i=z(this.defaultInlineContainerAppearanceOptions,i),r.classList.add(`element-${t}`),r.style.overflow="auto",r.style.position="relative",this.applyContainerStyles({elementInstanceId:t,options:i,skipPosition:!0}),this.domRegistry.register(t,{elementAppearanceType:e.appearance.type,wrapperElement:null,backdropElement:null,publisherContainerElement:r,isScrollDisabled:!1}),{containerElement:r,publisherContainerElement:r}}drawer({container:e,elementInstanceId:t,destroy:r,elementEventListenersService:i}){let s=this.getParentHTMLElement(e),o=e.appearance.options??{};o=z(this.defaultDrawerContainerAppearanceOptions,o),o.isPageScrollDisabled&&this.pageScrollPreventer.preventScroll();let a=h("div",{className:"piano-modal-body",style:"width: 100%"});this.applyContainerStyles({elementInstanceId:t,options:o});let l=h("div",{className:`piano-drawer-wrapper element-${t}`,tabIndex:-1,role:"dialog",ariaModal:"true"},{position:"fixed",overflow:"auto",zIndex:o.zIndex.toString(),width:"100%",webkitOverflowScrolling:"touch",outline:"none"}),c=null;o.isBackdropVisible&&(c=this.createBackdrop(o,r),s.appendChild(c)),l.appendChild(a),s.appendChild(l);let p=new X;return p.enable(l,a),i.addEventListener(t,()=>{p.disable()}),this.domRegistry.register(t,{elementAppearanceType:e.appearance.type,wrapperElement:l,backdropElement:c,publisherContainerElement:s,isScrollDisabled:o.isPageScrollDisabled}),{containerElement:a,publisherContainerElement:s}}createBackdrop=(e,t)=>{let r=h("div",{className:"piano-modal-backdrop"},{zIndex:`${e.zIndex-1}`,overflow:"hidden",position:"fixed",top:"0",left:"0",width:"100vw",height:"100vh",background:e.backdrop.color,opacity:100-e.backdrop.transparency+"%"});if(e.isCloseOnBackdropClick){r.addEventListener("click",()=>t({isLogElementDestroy:!0}),{once:!0});let i=s=>{s.key===B.ESCAPE&&(document.removeEventListener("keydown",i),t({isLogElementDestroy:!0}))};document.addEventListener("keydown",i)}return r};emptySelectorContainer(){let e=document.querySelector(w);return e||(e=h("div",{className:Ae}),document.body.appendChild(e),e)}applyContainerStyles({elementInstanceId:e,options:t,skipPosition:r}){let i=!r&&"position"in t&&t.position?t.position:{},{mobile:s,desktop:o=s,tablet:a=s}=i,l="size"in t&&t.size?t.size:{},{mobile:c,desktop:p=c,tablet:u=c}=l;Ct(e,` 3 ${this.generateContainerMediaStyles(e,"0px",s,c)} 4 ${this.generateContainerMediaStyles(e,"768px",a,u)} 5 ${this.generateContainerMediaStyles(e,"992px",o,p)} 6 7 `)}generateContainerMediaStyles(e,t,r,{maxWidth:i,maxHeight:s}){let o=this.normalizeValue(i),a=this.normalizeValue(s);return` 8 @media (min-width:${t}) { 9 .element-${e} { 10 ${o?`max-width: ${o};`:""} 11 ${a?`max-height: ${a};`:""} 12 ${a&&a!=="unset"?`--piano-modal-max-height: ${a};`:""} 13 ${this.generatePositionCss(r)} 14 ${this.generateStickToCss(r)} 15 } 16 17 .element-${e}-iframe { 18 ${o?`max-width: ${o};`:""} 19 ${a?`max-height: ${a};`:""} 20 } 21 }`}generatePositionCss(e){if(!e)return"";let{stickTo:t,top:r,left:i}=e,s=t==="custom"?this.normalizeValue(i):this.stickToStylesMap[t].left,o=t==="custom"?this.normalizeValue(r):this.stickToStylesMap[t].top,a="",l,c;return s&&(l=s.endsWith("px")?"0":`-${s}`,a+=`left: ${s}; 22`),o&&(c=o.endsWith("px")?"0":`-${o}`,a+=`top: ${o}; 23`),l&&c?a+=`transform: translate(${l}, ${c});`:l?a+=`transform: translate(${l}, -50%);`:c&&(a+=`transform: translate(-50%, ${c});`),a}generateStickToCss(e){if(!e||e.stickTo==="custom")return"";let t=this.stickToStylesMap[e.stickTo].width;return t?`width: ${t};`:""}normalizeValue(e){return e==null||e===""?"":typeof e=="number"?`${e}px`:e?this.clampRelativeValue(this.safe(e)):""}clampRelativeValue(e){let t=e.match(/^(\d+(?:\.\d+)?)(vh|vw|dvh|dvw|%)$/i);if(!t)return e;let r=parseFloat(t[1]),i=t[2];return r>100?`100${i}`:e}safe(e){return e.replace(/[^0-9a-z.\-%]/gi,"")}};var me=class{entries=new Map;register(e,t){this.entries.set(e,t)}get(e){return this.entries.get(e)}delete(e){this.entries.delete(e)}hasScrollDisablingWidgets(){for(let e of this.entries.values())if(e.isScrollDisabled)return!0;return!1}};var Ee=class{bodyElement=document.querySelector("body");htmlElement=document.querySelector("html");bodyInitialOverflowProperty=window.getComputedStyle(this.bodyElement).overflow;htmlInitialOverflowProperty=window.getComputedStyle(this.htmlElement).overflow;_isScrollDisabled=!1;preventScroll(){this.bodyElement.style.overflow="hidden",this.htmlElement.style.overflow="hidden",this.isScrollDisabled=!0}enableScroll(){this.bodyElement.style.overflow=this.bodyInitialOverflowProperty,this.htmlElement.style.overflow=this.htmlInitialOverflowProperty,this.isScrollDisabled=!1}get isScrollDisabled(){return this._isScrollDisabled}set isScrollDisabled(e){this._isScrollDisabled=e}};var j=class{static getCookie(e){let r=`; ${document.cookie}`.split("; "+e+"=");return r.length&&r.pop()?.split(";").shift()||""}static setCookie(e,t,r){let s={...{path:"/",domain:location.hostname||document.domain},...r};s.expires instanceof Date&&(s.expires=s.expires.toUTCString());let o=encodeURIComponent(e)+"="+encodeURIComponent(t);document.cookie=Object.keys(s).reduce((a,l)=>(a+="; "+l,s[l]!==!0&&(a+="="+s[l]),a),o)}};var ue=class n{constructor(e){this.elementsConfigs=e}static LANG_COOKIE_NAME="LANG";_locale;_locales={enabled:[],default:{}};get browserLanguage(){return(window.navigator.language||window.navigator?.languages[0]||"").replace(/^\w{2}$/,t=>`${t}_${t.toUpperCase()}`)}get locale(){return this._locale}get locales(){return this._locales}set locales(e){this._locales=e.reduce((t,r)=>(r.is_enabled&&t.enabled.push(r),r.is_default&&(t.default=r),t),{enabled:[],default:{}})}setLocale(e){this._locale=e,this.setCookieLocale(e),this.sendLocaleToElements()}detectLocale(){let e=j.getCookie(n.LANG_COOKIE_NAME);if(e&&this.isLocaleEnabled(this.locales,e)){this._locale=e;return}let t=this.browserLanguage;if(t&&this.isLocaleEnabled(this.locales,t)){this.setLocale(t);return}if(this.locales.default&&this.locales.default.locale){this.setLocale(this.locales.default.locale);return}this.setLocale(tt.locale)}subscribeOnElementEvents(e){e.subscribe("pn-widgets.set-locale",({data:{locale:t}})=>{this.setLocale(t)},{system:!0})}
23sendLocaleToElements(){this.elementsConfigs.forEach(({channel:e,elementInstanceId:t})=>{e.sendMessage({action:"pn-widgets.locale-changed",data:this._locale,elementInstanceId:t})})}isLocaleEnabled(e,t){return!!e.enabled.find(({locale:r})=>r===t)}setCookieLocale(e){let r=new Date,i=new Date(r.setTime(r.getTime()+1500*864e5));j.setCookie(n.LANG_COOKIE_NAME,e,{expires:i})}};var he=class n{static VISUAL_IMPRESSION_RATIO=.5;static VISUAL_IMPRESSION_DURATION_MS=1e3;isVisualImpressionReached=!1;observedHtmlElement;eventEmitter;isWidgetRendered=!1;observer;startCheckoutSubscription;lastIntersectionTime;templateIdleInViewPortTimer=null;constructor(){}init(e,t,r,i){this.eventEmitter=i,this.observedHtmlElement=this.getObservedElement(e,t,r),this.subscribeOnElementRender(()=>this.isWidgetRendered=!0),this.runFlow()}runFlow(){this.subscribeOnVisualIntersection(),this.subscribeOnElementEvents(),this.subscribeOnDestroy()}getObservedElement(e,t,r){return r==="modal"&&t.querySelector(".piano-modal-wrapper")||e}handleIntersect([e]){if(e.isIntersecting){this.lastIntersectionTime=e.time,this.runTemplatePositionIdleInViewPortCheck();return}this.lastIntersectionTime&&e.time-this.lastIntersectionTime>=n.VISUAL_IMPRESSION_DURATION_MS?this.completeVisualImpressionCheck():this.lastIntersectionTime=null,this.isVisualImpressionReached&&this.observer.disconnect()}runTemplatePositionIdleInViewPortCheck(){this.templateIdleInViewPortTimer&&clearTimeout(this.templateIdleInViewPortTimer),this.templateIdleInViewPortTimer=setTimeout(()=>{this.lastIntersectionTime&&!this.isVisualImpressionReached&&this.completeVisualImpressionCheck()},n.VISUAL_IMPRESSION_DURATION_MS)}completeVisualImpressionCheck(){this.isVisualImpressionReached=!0,this.sendFrequencyCappingStat("visible_impression"),this.observer?.disconnect(),this.startCheckoutSubscription?.unsubscribe()}sendFrequencyCappingStat(e){this.eventEmitter.emit("pn-widgets.frequencyCap",{event_name:"piano_frequency_event",event_type:e})}subscribeOnElementEvents(){this.startCheckoutSubscription&&this.startCheckoutSubscription.unsubscribe(),this.startCheckoutSubscription=this.eventEmitter.subscribe("startCheckout",()=>{this.isVisualImpressionReached||this.completeVisualImpressionCheck()},{system:!0})}subscribeOnElementRender(e){this.eventEmitter.subscribe("pn-widgets.rendered",()=>{e()},{system:!0})}subscribeOnDestroy(){this.eventEmitter.subscribeOnce("destroy",()=>{this.sendFrequencyCappingStat("close_click"),this.cleanup()})}subscribeOnVisualIntersection(){this.isWidgetRendered?this.setupIntersectionObserver():this.subscribeOnElementRender(this.setupIntersectionObserver.bind(this))}setupIntersectionObserver(){this.observer&&this.observer.disconnect(),this.observer=new IntersectionObserver(this.handleIntersect.bind(this),{root:null,threshold:this.getIntersectionThreshold()}),this.observer.observe(this.observedHtmlElement)}getIntersectionThreshold(){let e=this.observedHtmlElement.getBoundingClientRect().height,t=document.documentElement.clientHeight,r=t/e;return e>t&&r<n.VISUAL_IMPRESSION_RATIO?r:n.VISUAL_IMPRESSION_RATIO}cleanup(){this.observer&&this.observer.disconnect(),this.startCheckoutSubscription&&this.startCheckoutSubscription.unsubscribe()}};var fe=class{widgetPresenter=new ae;pageScrollPreventer=new Ee;domRegistry=new me;widgetContainer=new pe(this.pageScrollPreventer,this.domRegistry);frequencyCapping=new he;widgetElements=new de(this.pageScrollPreventer,this.domRegistry);i18n=new ue(this.widgetElements.getElementsConfigs());constructor(){}showElement(e){return new Promise((t,r)=>{let i;this.widgetElements.createElementConfig(e).then(s=>(i=s.eventEmitter,this.initI18n(s),i.enableBuffer(),this.renderElement(e.applicationId,s).catch(o=>{throw this.cleanUpFailedRender(s.elementInstanceId),o}))).then(t).then(()=>i?.emitDeferredActions()).catch(r).finally(()=>i?.disableBuffer())})}async renderElement(e,t){let{variantId:r,versionId:i,versionNum:s,activeScreen:o,skeleton:a,predefinedData:l,externalCssList:c,elementGraph:p,eventEmitter:u,channel:f,container:d,auth:m,preview:O,endpoint:R,elementInstanceId:C,fonts:b}=t,{elementName:S,elementId:A,sourceStaticUrl:I,prefetch:J}=p,L=se.IFRAME===d.elementDisplayType,K=this.widgetElements.createElementActions({elementId:A,elementInstanceId:C,elementName:S,eventEmitter:u,channel:f,trackingId:l.trackingId}),Ie=this.widgetElements.getElementEventListenersService(),{containerElement:_e,publisherContainerElement:F}=this.widgetContainer.prepareContainerElement({destroy:K.destroy,elementInstanceId:C,container:d,elementEventListenersService:Ie}),Ce={sourceStaticUrl:I,container:d,prefetch:J,eventEmitter:u,predefinedData:l,applicationId:e,elementId:A,elementInstanceId:C,variantId:r,versionId:i,versionNum:s,activeScreen:o,skeleton:a,elementName:S,preview:O,containerElement:_e,publisherContainerElement:F,endpoint:R,locale:this.i18n.locale,externalCssList:c,fonts:b,auth:m},{element:v,shadowElement:Q,startedCustomStaticPrefetch:ge,startedScreenStaticPrefetch:gt,startedPrefetchRequests:Ot}=await this.widgetPresenter[d.elementDisplayType](Ce);this.frequencyCapping.init(v,F,d.appearance.type,u);let Rt=f.sendPortToWidget({container:L?v:F,url:R,elementInstanceId:C,eventEmitter:u,message:{elementInstanceId:C,data:{elementGraph:p,applicationId:e,elementId:A,elementInstanceId:C,variantId:r,versionId:i,versionNum:s,activeScreen:o,elementName:S,initialState:{...l,initialLocale:this.i18n.locale,preview:O,appearanceType:d.appearance.type,skeleton:a},appContainerElement:L?null:v,appShadowElement:Q,externalCssList:c,fonts:b,startedCustomStaticPrefetch:ge,startedScreenStaticPrefetch:gt,startedPrefetchRequests:Ot,container:d,auth:m,endpoint:R},action:"handshake"}});this.widgetElements.subscribeOnElementGlobalEvents(u,f),this.i18n.subscribeOnElementEvents(u),await Rt;let we={applicationId:t.applicationId,elementId:A,elementInstanceId:C,container:{selector:t.container.selector},...K};return this.widgetElements.addElement(we),this.widgetElements.addElementsConfigs(t),we}initI18n(e){this.i18n.locale||(this.i18n.locales=e.elementGraph.localeList,this.i18n.detectLocale())}cleanUpFailedRender(e){let t=this.domRegistry.get(e);this.domRegistry.delete(e),t&&(t.backdropElement?.remove(),t.wrapperElement?.remove()),this.pageScrollPreventer.isScrollDisabled&&!this.domRegistry.hasScrollDisablingWidgets()&&this.pageScrollPreventer.enableScroll()}};E.setContext("sdk");window.widgetSDKInitStatTime=performance.now();window.widgetSDKErrors=[];var ye=class{constructor(e,t){this.applicationId=e;this.endpoint=t;if(!e)throw new Error("Please provide correct applicationId");this.endpoint=Oe(this.endpoint),window.__assetsPath=i=>`${this.endpoint||this.defaultEndpoint}/${i}`,this.processor=new fe;let r=performance.now();this.SDKInitPerformancePromise.resolve({initStartTime:window.widgetSDKInitStatTime,initEndTime:r,initTime:r-window.widgetSDKInitStatTime})}processor;defaultEndpoint="https://buy.piano.io";SDKInitPerformancePromise=ne();
23showElement(e){return this.processor.showElement({...e,applicationId:this.applicationId,endpoint:this.endpoint||this.defaultEndpoint})}elements(){return this.processor.widgetElements.getElements()}element(e){return this.processor.widgetElements.getElement(e)}deleteElement(e){return this.processor.widgetElements.deleteElement(e)}getLocale(){return this.processor.i18n.locale}setLocale(e){return this.processor.i18n.setLocale(e)}getSDKInitMetrics(){return this.SDKInitPerformancePromise.promise}getSDKErrorMetrics(){if(window.widgetSDKErrors&&window.widgetSDKErrors.length){let e=[...window.widgetSDKErrors];return window.widgetSDKErrors=[],e}return[]}};window.Piano=ye;export{ye as Piano};
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.