1(async function(){function debounce(delay=500,callback){let timer;return function(){clearTimeout(timer),timer=null,timer=setTimeout(()=>{callback()},delay)}}let isProPage=!1,isCollPage=!1,productId=0,insertEls=[],collVariants=[],observer=null,oldCollElsCount=0,proPosition=[],locale,customStyle="";typeof ShopifyAnalytics>"u"&&await new Promise((res,rej)=>{setTimeout(()=>{res()},1500)}),ShopifyAnalytics.meta.product&&(productId=ShopifyAnalytics.meta.product.id);let shopId=0;qa("#shopify-features")?shopId=JSON.parse(qa("#shopify-features")[0].outerText).shopId:window.ShopifyAnalytics&&ShopifyAnalytics.lib&&ShopifyAnalytics.lib.config&&(shopId=ShopifyAnalytics.lib.config.Trekkie.defaultAttributes.shopId),userNeed(),locale=Shopify.locale;let requests={getProsVariantsData(p){const url=baseUrl+"api/v1/customer/getVariantBtStatus";let params={shopId};return Object.assign(params,p),request(url,params)},getCollBtnStyle(){const url=baseUrl+"api/v1/getCollectionButtonStyle";return request(url,{shopId,shop_language:locale})}};const domain=Shopify.shop,debug=isDebug,baseUrl=apiBaseUrl;let customerInfo={},showVariants=[];getCustomerInfo();const initRes=await init();importStyles(),typeof initRes=="string"?console.log("Init info: ",initRes):console.log("App is on!");const{MAX_SEARCH_TIMES}=initRes;let{times}=initRes;const btnAndPopupData=initBtnAndPopupData(),{buttonStyleUrl,collButtonStyleUrl,popupStyleUrl,integrationUrl,floatBtnPosition,buttonData,generalData,formAction}=btnAndPopupData;let{iti,popupData,inlineBtnHeight,inlineBtnWidth,btnRadius,btnFontSize,btnFontWeight,insertEl,insertType,selectedType,selBtnStatus,btnStyleSwitch,popupStyleSwitch,inteStatus}=btnAndPopupData;const elements=initElement();let{inlineBtnElement,floatBtnElement,emailFrameElement,inlineEmailDiv,floatEmailDiv,invalidTip,successFrame,variantSelector,closeBox,submitBtn,emailInput,nameInput,smsInput,mailingCheckbox,soldOutBtn,exactForm}=elements;const{trueForms}=elements,productInfo=initProductInfo();let{currentVariant,available,selectVariantId,productTitle,currentVariantOption,addOptionsStatus,initUrl,listenVariantFlag}=productInfo,{variantData,unVariantOptions}=productInfo;const payment_button_class=".shopify-payment-button";debug&&console.log("Init data finished"),execute(),getUserConfig();async function init(){const{ShopifyAnalytics:ShopifyAnalytics2}=window,pageType=ShopifyAnalytics2&&ShopifyAnalytics2.meta&&ShopifyAnalytics2.meta.page&&ShopifyAnalytics2.meta.page.pageType;let proParams={},prosEle=[];if(pageType==="product")isProPage=!0,productId&&(proParams.productIds=[productId],proParams.type=2);else if(pageType==="collection"&&(isCollPage=!0,prosEle=await getProsEle(),debug&&console.log(prosEle),prosEle!==null)){oldCollElsCount=prosEle.length;const lists=getProductsANodes(prosEle);prosEle=lists.prosEle,proParams.handles=getProsHandles(lists.aNodeList),proParams.type=1}if(!isCollPage&&!isProPage)return"not collectionPage or productPage";if(changeStatus({baseUrl}),Object.keys(proParams).length!==0){const res=await requests.getProsVariantsData(proParams);if(debug&&console.log("res",res),res.btStatus!==1)return"collectionPage btn disable";const{apiCode,products}=res;isProPage?apiCode===200&&products&&(showVariants=products[0].variants.map(variant=>variant.variantRid)):isCollPage&&products.forEach((i,inx)=>{i.productStatus===1&&(insertEls.push(prosEle[inx]),proPosition.push(inx),collVariants.push({proId:i.productId,productName:i.productName,variants:i.variants}))}),debug&&console.log("Get Product Status Success")}return(showVariants.length||collVariants.length)==0?(isCollPage&&checkVariantChange(),"All btn of variants are hidden."):q("#product-restore-email-flag")||q("#product-restore-email-float")||q(".product-restore-email")?"Already enabled":(document.body.insertAdjacentHTML("beforeend",` 2 <div id="product-restore-email-flag" style="display: none;"></div> 3 `),{debug,baseUrl,MAX_SEARCH_TIMES:50,times:0})}async function execute(){isProPage?searchParentEl().then(res=>{debug&&console.log("SearchParentEl finished");const{code}=res;if(code===501){console.log("Search Node Failed"),handleSearchNodeFailed().then(searchRes=>{searchRes.code===200&&(handleBasicData(),getAllStyle())});return}code===200&&(debug&&console.log("SearchParentEl success"),handleBasicData(),getAllStyle())}):isCollPage&&getAllStyle()}async function getProsEle(){const themeStoreId=Shopify.theme.theme_store_id;let selector="";switch(themeStoreId){case 887:case 1567:case 1356:case 1363:case 1368:case 1431:case 1434:case 1500:case 1499:{selector=".card-information .price";break}case 829:{selector=".card__info>.card__price";break}case 775:{selector=".product-card__info>.product-card__price";break}case 796:{selector=".product-card>.price";break}case 730:{selector=".grid__item .grid-product__price-wrap";break}case 679:{selector=".grid-item .product-item--price";break}case 380:{selector=".grid__item .grid-link__meta";break}case 578:{selector=".grid__item .product__prices";break}case 857:{selector=".grid__item .grid-product__price";break}case 765:{selector=".product--details";break}case 849:{selector=".product-block__info";break}case null:{switch(Shopify.theme.id){case 129555497130:selector=".collection-grid-item__meta";break;case 139843010841:selector=".product-item-meta";break;case 117705834682:selector=".grid-view-item";break}break}default:q("body.warehouse--v1")&&(selector=".product-item .product-item__price-list")}if(selector){const nodes=Array.from(qa(selector));return nodes.length==0&&await new Promise((res,rej)=>{setTimeout(()=>{res()},1500)}),nodes.filter(i=>i.offsetParent!==null)}else return null}function getProsHandles(nodes){let productHandleStrings="",handleArr=[];if(nodes.length){let tarEle="A";for(let i=0;i<nodes.length;i++)if(nodes[i]&&nodes[i].tagName===tarEle&&nodes[i].getAttribute("href")){let href=nodes[i].getAttribute("href"),start=href.lastIndexOf("/products/")+10,end=href.indexOf("?"),handle="";end!=-1?handle=href.substring(start,end):handle=href.substring(start),handle.indexOf(".jpg")===-1&&(handle=decodeURI(handle),handleArr.push(handle))}else handleArr.push("undefined")}return handleArr}
3function getProductsANodes(nodes){let lists={aNodeList:[],prosEle:[]},aNodeList=[],index=0,hs='a[href*="/products/"]',tarEle="A",curNode=nodes[0],aNode;for(let i=0;i<nodes.length;i++){curNode=nodes[i],aNode=null;for(let j=0;j<5;j++){if(curNode=curNode.parentNode,curNode.tagName===tarEle&&curNode.href&&curNode.href.indexOf("/products/")!==-1){aNode=curNode;break}let childA=q(hs,curNode);if(childA){aNode=childA;break}}aNode?(index++,lists.prosEle.push(nodes[i]),lists.aNodeList.push(aNode)):nodes[i]=null}return lists}function initProductInfo(){let info={selectVariantId:"",unVariantOptions:[],currentVariantOption:null,addOptionsStatus:0,productTitle:"",initUrl:document.URL};if(isProPage){const variantData2=JSON.parse(q("#em_product_variants").textContent),hasAvailableV=variantData2.some(v=>v.available===!1),currentVariant2=JSON.parse(q("#em_product_selected_or_first_available_variant").textContent);Object.assign(info,{variantData:variantData2,currentVariant:currentVariant2,available:currentVariant2.available,selectVariantId:currentVariant2.id,hasAvailableV,listenVariantFlag:!0})}return info}function initBtnAndPopupData(){return{btnRadius:"",btnFontSize:"",inlineBtnWidth:"",inlineBtnHeight:"",btnFontWeight:"initial",popupStyleUrl:"getPopupStyle",buttonStyleUrl:"getButtonStyle",collButtonStyleUrl:"getCollectionButtonStyle",integrationUrl:"integrate/getIntegration",floatBtnPosition:"float-btn-right",buttonData:{btn_value:"",btn_color:"",font_color:"",btn_margin_top:"",btn_margin_bottom:"",collection_btn_value:"",collection_is_show:0,inline_status:0,float_btn_value:"",float_btn_color:"",float_font_color:"",btn_insert_customized:0,btn_insert_el:"",btn_insert_type:"",offset:0,float_status:0,is_branding_removed:0},generalData:{btn_display_all:0,btn_font_family:"inherit",btn_font_size:"14",btn_font_weight:"inherit",btn_hover_animation:0,btn_hover_color:"#333333",btn_hover_font_color:"#ffffff",btn_margin_top:"0",btn_margin_bottom:"0",btn_border_radius:"0",btn_border_color:"transparent",btn_customize_css:""},popupData:null,frameBtnColor:"#333333",frameBtnFontColor:"#ffffff",insertType:"afterend",insertEl:null,selectedType:{},iti:null,selBtnStatus:0,btnStyleSwitch:0,popupStyleSwitch:0,inteStatus:0,formAction:"https://"+document.domain+"/cart/add"}}function initElement(){return{inlineBtnElement:null,floatBtnElement:null,emailFrameElement:null,inlineEmailDiv:null,floatEmailDiv:null,invalidTip:null,successFrame:null,variantSelector:null,closeBox:null,submitBtn:null,soldOutBtn:null,emailInput:null,nameInput:null,smsInput:null,mailingCheckbox:null,trueForms:[],exactForm:null}}function getBtnStyle(btn){if(btn.tagName=="DIV"&&(btn=btn.querySelector("button")),!btn)return;const btnStyle=window.getComputedStyle(btn,null);btnStyle.width=="auto"||!btnStyle.width?inlineBtnWidth="":btnStyle.width.indexOf("px")!==-1&&parseFloat(btnStyle.width)>120&&(inlineBtnWidth=btnStyle.width),btnStyle.height=="auto"||!btnStyle.height?inlineBtnHeight="":inlineBtnHeight=btnStyle.height,btnRadius=btnStyle.borderRadius,btnFontSize=btnStyle.fontSize,btnFontWeight=btnStyle.fontWeight}function getSoldOutBtn(trueForm){const btnArr=trueForm.querySelectorAll("button"),iptArr=[...trueForm.querySelectorAll("input[type='submit']"),...trueForm.querySelectorAll("input[type='button']")],allArr=[...btnArr,...iptArr];if(allArr.length){for(let i=0;i<allArr.length;i++)if(allArr[i].type=="submit"&&allArr[i].name=="add"||allArr[i].type=="submit"&&allArr[i].name=="button"){soldOutBtn=allArr[i];break}if(!soldOutBtn){for(let i=0;i<allArr.length;i++)if(allArr[i].type=="submit"){soldOutBtn=allArr[i];break}}if(!soldOutBtn){for(let i=0;i<allArr.length;i++)if(allArr[i].disabled){soldOutBtn=allArr[i];break}}soldOutBtn||(soldOutBtn=allArr[0]),soldOutBtn&&getBtnStyle(soldOutBtn)}}function searchParentEl(){return new Promise(resolve=>{const forms=qa("form");for(let i=0;i<forms.length;i++)forms[i].action.indexOf("/cart/add")!==-1&&trueForms.push(forms[i]);if(trueForms.length||resolve({code:501,msg:"Search el failed"}),trueForms.length==1)exactForm=trueForms[0],getSoldOutBtn(trueForms[0]);else for(let i=0;i<trueForms.length&&!soldOutBtn;i++){const formStyle=window.getComputedStyle(trueForms[i],null);if(!(formStyle.visibility!="visible"||formStyle.display=="none"||formStyle.height=="0px"||formStyle.height=="0"||formStyle.width=="0px"||formStyle.width=="0"||formStyle.height=="auto")){if(exactForm=trueForms[i],getSoldOutBtn(trueForms[i]),soldOutBtn){const parent=soldOutBtn.parentElement,parentStyle=window.getComputedStyle(parent,null);if(parentStyle.visibility=="visible"&&parentStyle.display!="none"&&parentStyle.height!=0&&parentStyle.width!=0)break}if(soldOutBtn=trueForms[i].querySelector(payment_button_class),soldOutBtn)break;{const iptSubArr=trueForms[i].querySelectorAll("input[type='submit']");if(iptSubArr.length!=0){soldOutBtn=iptSubArr[0];break}const btnArr=trueForms[i].querySelectorAll("button");for(let j=0;j<btnArr.length;j++)if(btnArr[j].type=="submit"){soldOutBtn=btnArr[j];break}}}}if(soldOutBtn||exactForm){const params={code:200,msg:"success"};soldOutBtn?(insertType="afterend",insertEl=soldOutBtn):(insertType="beforeend",insertEl=exactForm),resolve(params)}else times>=MAX_SEARCH_TIMES?resolve({code:501,msg:"Search el failed"}):(times++,setTimeout(()=>{searchParentEl().then(res=>resolve(res))},50))})}function getParentWithoutForm(){const btnElements=qa(".action-button, [class*=add-to-cart], [class*=add_to_cart], [id*=add_to_card], [id*=add-to-card], [data-add-to-cart], .sold-out, #out-of-stock-gl");if(btnElements.length)for(let i=0;i<btnElements.length;i++){const width=Number(window.getComputedStyle(btnElements[i],null).width.split("px")[0]);if(!isNaN(width)&&width>64)return{type:"afterend",ele:btnElements[i]}}const parents=qa(".action-button, .tt-swatches-container.tt-swatches-container-js");if(parents.length)for(let i=0;i<parents.length;i++){const style=window.getComputedStyle(parents[i],null);if(!(style.visibility!="visible"||style.display=="none"||style.height=="0px"||style.height=="0"||style.width=="0px"||style.width=="0"||style.height=="auto"))return{type:"beforeend",ele:parents[i]}}return{type:""}}function setInlineBtnWhenErr(el){const res=getParentWithoutForm();res.type&&res.ele.insertAdjacentHTML(res.type,el),getBISEle()}function handleSearchNodeFailed(){return new Promise(resolve=>{getButtonStyle(shopId,buttonStyleUrl).then(()=>{buttonData.btn_insert_el?resolve({code:200}):getParentWithoutForm().type?resolve({code:200}):resolve({code:404})})})}function changeButtonPos(){debug&&console.log("changeButtonPos");const{btn_insert_customized,btn_insert_el,btn_insert_type}=buttonData;if(btn_insert_customized&&btn_insert_el){if(isProPage)insertEl=q(btn_insert_el)||soldOutBtn;else if(isCollPage){insertEls=qa(btn_insert_el),insertEls=Array.from(insertEls);let insertElsCopy=insertEls;insertEls=[];for(let inx=0;inx<insertElsCopy.length;inx++)proPosition.includes(inx)&&insertEls.push(insertElsCopy[inx])}insertType=btn_insert_type||"afterend"}if(isProPage){const isBlcok=q("#sealapps-bis-widget");isBlcok&&(insertEl=isBlcok,insertType="beforeend")}}function handleBasicData(){if(debug&&console.log("Handle Basic Data"),soldOutBtn){const parentStyle=window.getComputedStyle(soldOutBtn.parentElement,null);parentStyle.display=="flex"&&parentStyle.flexDirection=="row"&&parentStyle.flexWrap=="nowrap"&&(soldOutBtn.parentElement.style.flexWrap="wrap")}const v1=variantData[0];try{productTitle=v1.name.split(" - ")[0].trim()}catch{v1.public_title&&v1.public_title.length-3>0?productTitle=v1.name.substr(0,v1.name.length-v1.public_title.length-3):productTitle=v1.name}}function getAllStyle(){debug&&console.log("Get All Style");let btnPromise,styUrl="";isProPage?styUrl=buttonStyleUrl:isCollPage&&(styUrl=collButtonStyleUrl),debug&&console.log("isProPage",isProPage),debug&&console.log("collButtonStyleUrl",collButtonStyleUrl),btnPromise=getButtonStyle(shopId,styUrl),debug&&console.log("btnPromise",btnPromise);const popupPromise=getPopupStyle(shopId,popupStyleUrl),intePromise=getIntegration(shopId,integrationUrl);Promise.all([btnPromise,popupPromise,intePromise]).then(()=>{renderBtnAndPopup()})}function getButtonStyle(shopId2,btnurl){if(btnStyleSwitch)return new Promise(resolve=>{resolve({code:200})});debug&&console.log("Get Button Style");const url=baseUrl+"api/v1/"+btnurl;return request(url,{shopId:shopId2,shop_language:locale}).then(res=>{debug&&console.log("Get Button Style Success");const{code,data}=res;code===200&&data&&(btnStyleSwitch=1,Object.keys(buttonData).forEac
3h(key=>{buttonData[key]=data[key]}),Object.keys(generalData).forEach(key=>{generalData[key]=data[key]}),isCollPage&&(generalData.btn_font_family=generalData.btn_font_weight="inherit"),renderSettingStyles(),changeButtonPos())})}function getPopupStyle(shopId2,popupUrl){debug&&console.log("Get Popup Style");const url=baseUrl+"api/v1/"+popupUrl;return request(url,{shopId:shopId2,shop_language:locale}).then(res=>{debug&&console.log("Get Popup Style Success");const{code,data}=res;if(code===200&&data)switch(popupStyleSwitch=1,popupData=JSON.parse(JSON.stringify(data)),popupData.popup_option){case 1:selectedType.type="email";break;case 2:selectedType.type="sms";break;case 3:selectedType.type="email";break}})}function getIntegration(shopId2,inteUrl){debug&&console.log("Get Integration");const url=baseUrl+"api/v1/"+inteUrl;return request(url,{shopId:shopId2}).then(res=>{debug&&console.log("Get Integration Success");const{code,data}=res;code===200&&data&&(debug&&console.log("inte",data),inteStatus=data.find(o=>o.is_enable))})}
3function renderSettingStyles(){debug&&console.log("renderSettingStyles");const{btn_font_size,btn_hover_animation,btn_border_radius,btn_border_color,btn_font_weight,btn_font_family,btn_margin_top,btn_margin_bottom,btn_hover_font_color,btn_hover_color,btn_customize_css}=generalData;let generalStyles=` 4 .email-me-button { 5 font-size: ${btn_font_size}px !important; 6 font-weight: ${btn_font_weight} !important; 7 font-family: ${btn_font_family} !important; 8 border-color: ${btn_border_color} !important; 9 border-radius: ${btn_border_radius}px !important; 10 border-width: 2px; 11 border-style: solid; 12 } 13 .email-me-inlineButton { 14 margin-top: ${btn_margin_top}px !important; 15 margin-bottom: ${btn_margin_bottom}px !important; 16 } 17 .email-me-button:hover { 18 color: ${btn_hover_font_color} !important; 19 background-color: ${btn_hover_color} !important; 20 } 21 ${btn_customize_css} 22 `;btn_hover_animation&&(generalStyles+=` 23 .email-me-inlineButton::after, 24 .email-me-inlineButton::before, 25 .email-me-submitButton::after, 26 .email-me-submitButton::before { 27 content:''; 28 color: ${buttonData.btn_color}; 29 font-size: ${btn_font_size}px; 30 text-align: center; 31 border-radius: ${btn_border_radius}px; 32 width: 0; 33 height: 100%; 34 background-color: ${btn_hover_color}; 35 position: absolute; 36 left:0; 37 transition: all ease-in-out .35s; 38 top:0; 39 z-index: -2; 40 } 41 .email-me-inlineButton::before, 42 .email-me-submitButton::before { 43 z-index: -1; 44 background-color: ${btn_hover_color}; 45 } 46 .email-me-inlineButton:hover, 47 .email-me-submitButton:hover { 48 z-index: 1; 49 color: ${btn_hover_font_color} !important; 50 background-color: ${btn_hover_color} !important; 51 } 52 .email-me-button:hover::before, 53 .email-me-button:hover::after 54 { 55 width: 100%; 56 } 57 `);const styles=` 58 <style> 59 ${generalStyles} 60 </style> 61 `;document.head.insertAdjacentHTML("beforeend",styles)}function renderBtnAndPopup(){debug&&console.log("renderBtnAndPopup");const{toggler,ipt,mailingList}=renderSpecificPopup(),mountWindowElement=` 62 <div class="successSub"> 63 <div class="successSub_header"> 64 <img src="https://cdn.shopify.com/s/files/1/0576/6063/7389/t/1/assets/success.png?v=1629367773"/> 65 <div class="successSub_header_text">${popupData.success_frame_title}</div> 66 <div class="successSub_close-box"> 67 <div class="successSub_frame-close"></div> 68 </div> 69 </div> 70 <div class="successSub_text"> 71 ${popupData.success_frame_content} 72 </div> 73 </div> 74 <div id="email-me-frame"> 75 <div class="email-frame-content"> 76 <div class="close-box"> 77 <div class="frame-close"></div> 78 </div> 79 <div class="email-frame-header"> 80 <div class="frame-email-logo"> 81 <svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"> 82 <path d="M0 5.324V15.5A1.5 1.5 0 001.5 17h17a1.5 1.5 0 001.5-1.5V5.324l-9.496 5.54a1 1 0 01-1.008 0L0 5.324z" 83 fill="#5C5F62"/> 84 <path d="M19.443 3.334A1.494 1.494 0 0018.5 3h-17c-.357 0-.686.125-.943.334L10 8.842l9.443-5.508z" 85 fill="#5C5F62"/> 86 </svg> 87 </div> 88 <div class="frame-title">${popupData.popup_header_text}</div> 89 </div> 90 <div class="split-line" style="border: 1px solid #d9d9d9;"></div> 91 <div class="email-frame-body"> 92 <div class="frame-body-content"> 93 <span>${productTitle}</span> 94 </div> 95 <div> 96 <select class="selected-unavailable-variant"></select> 97 </div> 98 ${toggler||""} 99 <div> 100 <input class="buyer-name" type="text" placeholder="${popupData.popup_name_placeholder_text}"> 101 </div> 102 ${ipt} 103 ${mailingList||""} 104 <div class="frame-submit"> 105 <div class="email-me-button email-me-submitButton" style=" text-align:center; color: ${popupData.popup_btn_font_color}; background-color: ${popupData.popup_btn_color}; border-radius: ${btnRadius}; font-size: ${btnFontSize}; "> 106 ${popupData.popup_btn_value} 107 </div> 108 </div> 109 </div> 110 <div class="email-frame-footer"> 111 <div class="email-footer-tips">
112 <span>${popupData.popup_footer_text}</span> 113 </div> 114 </div> 115 <div class="email-provider" style="display: ${buttonData.is_branding_removed?"none":""};"> 116 Powered by <span><a class="email-app-link" target="_blank" href="https://apps.shopify.com/email-1?surface_detail=back+in+stock&surface_inter_position=1&surface_intra_position=10&surface_type=search">Sealapps</a></span> 117 </div> 118 </div> 119 </div>`;document.body.insertAdjacentHTML("beforeend",mountWindowElement),renderButton().then(res=>{debug&&console.log("renderButton success"),res.code===200?(createEmailButton(),listenVariantChange(),getBISEle(),popupData.popup_option!==1&&initSms()):debug&&console.log("Insert failed")})}function renderButton(){return new Promise(resolve=>{const{inline_status,float_status}=buttonData;let flag=0;if(inline_status||isCollPage){const{font_color,btn_color,btn_value,collection_btn_value,btn_margin_top,btn_margin_bottom}=buttonData;let btnText="";isProPage?btnText=btn_value:isCollPage&&(btnText=collection_btn_value);const mountInlineBtn=` 120 <div class="product-restore-email" style="margin-top: ${btn_margin_top}px; margin-bottom: ${btn_margin_bottom}px; max-width: ${inlineBtnWidth||"initial"}"> 121 <div class="email-me-button email-me-inlineButton" style="text-align:center; margin-top:0; color: ${font_color} ; background-color: ${btn_color} ; height:${inlineBtnHeight} ; border-radius: ${btnRadius||"2px"} ; font-size: ${btnFontSize||"14px"} ; font-weight: ${btnFontWeight||"inherit"};"> 122 ${btnText} 123 </div> 124 </div>`;if(isProPage)try{debug&&console.log("insert",insertEl,insertType),insertEl.insertAdjacentHTML(insertType,mountInlineBtn),flag++}catch{setInlineBtnWhenErr(mountInlineBtn),flag++}else isCollPage&&(insertEls.forEach((i,inx)=>{if(iparentNode=i.parentNode,qa(".product-restore-email",iparentNode).length==0){const wrapper=document.createElement("div");wrapper.setAttribute("proId",collVariants[inx].proId),wrapper.innerHTML=mountInlineBtn,wrapper.style.position="relative",wrapper.style.zIndex="1",i.after(wrapper)}}),flag++)}if(float_status){const{offset,float_font_color,float_btn_color,float_btn_value}=buttonData,mountFloatBtn=` 125 <div id="product-restore-email-float" style="top:${offset+"px"}" class="${floatBtnPosition}"> 126 <div class="email-me-button email-me-floatButton" style="text-align:center; display:none; color: ${float_font_color} ; background-color: ${float_btn_color} ; border-radius: ${btnRadius} ; font-size: ${btnFontSize}; font-weight: ${btnFontWeight}; "> 127 ${float_btn_value} 128 </div> 129 </div>`;document.body.insertAdjacentHTML("afterbegin",mountFloatBtn),flag++}flag>0?resolve({code:200,msg:"Success!"}):resolve({code:404,msg:"Insert failed"})})}
129function renderSpecificPopup(type){let ipt,toggler,mailingList;return type=popupData.popup_option||type,type===1?ipt=` 130 <div> 131 <input class="buyer-email" type="text" placeholder="${popupData.popup_placeholder_text}"> 132 <div class="invalid-email-tips">${popupData.popup_validation_text}</div> 133 </div> 134 `:type===2?ipt=` 135 <div> 136 <div class="buyer-phone-container"> 137 <input type="text" class="buyer-phone"> 138 </div> 139 <div class="invalid-email-tips">${popupData.popup_validation_text}</div> 140 </div> 141 `:type===3&&(ipt=` 142 <div> 143 <input class="buyer-email" type="text" placeholder="${popupData.popup_placeholder_text}"> 144 <div class="buyer-phone-container"> 145 <input type="text" class="buyer-phone"> 146 </div> 147 <div class="invalid-email-tips">${popupData.popup_validation_text}</div> 148 </div> 149 `,toggler=` 150 <div class="notify-type-toggler"> 151 <div class="email-type"> 152 ${popupData.popup_tab_email} 153 </div> 154 <div class="sms-type"> 155 ${popupData.popup_tab_sms} 156 </div> 157 </div> 158 `),renderSpecificStyle(type),inteStatus&&(mailingList=` 159 <div class="join-mailing-container"> 160 <input id="join-mailing-list" type="checkbox" checked/> 161 <label for="join-mailing-list" class="join-mailing-listLabel"> 162 ${popupData.popup_opt_in_text} 163 </label> 164 </div> 165 `),{ipt,toggler,mailingList}}
165function renderSpecificStyle(type){switch(type){case 1:case 2:addStyle(`<style> 166 #email-me-frame .email-frame-content { 167 max-height: 412px !important; 168 } 169 </style>`);break;case 3:addStyle(`<style> 170 #email-me-frame .email-frame-content { 171 max-height: 459px !important; 172 } 173 </style>`);break;default:break}}function getBISEle(){switch(popupData.popup_option){case 1:emailInput=q(".buyer-email");break;case 2:smsInput=q(".buyer-phone");break;case 3:emailInput=q(".buyer-email"),smsInput=q(".buyer-phone");break}nameInput=q(".email-frame-body .buyer-name"),successFrame=q(".successSub"),invalidTip=q(".invalid-email-tips"),emailFrameElement=q("#email-me-frame"),closeBox=q("#email-me-frame .close-box"),submitBtn=q(".frame-submit .email-me-button"),variantSelector=q(".selected-unavailable-variant"),inlineEmailDiv=qa(".product-restore-email"),floatEmailDiv=q("#product-restore-email-float"),inlineBtnElement=qa(".email-me-inlineButton"),floatBtnElement=q(".email-me-floatButton"),mailingCheckbox=q("#join-mailing-list")||{},handleEleEvent()}function handleEleEvent(){switch(popupData.popup_option){case 1:emailInput.addEventListener("blur",verifyEmail);break;case 2:break;case 3:emailInput.addEventListener("blur",verifyEmail);break}submitBtn.addEventListener("click",subEmail),closeBox.addEventListener("click",function(){emailFrameElement.style.display="none",variantSelector.style.display!=="none"&¤tVariantOption&¤tVariantOption.removeAttribute("selected")}),successFrame.addEventListener("click",function(){successFrame.classList.remove("successSub_active")}),isProPage&&mountedUnVariantOptions(),initInlineAndFloatBtn()}function initInlineAndFloatBtn(){inlineBtnElement.length&&inlineBtnElement.forEach((i,inx)=>{i.addEventListener("click",function(e){e.preventDefault(),autoInput();let curProId=0;emailFrameElement.style.display="block";const selected_unavailable_variant=emailFrameElement.querySelector(".selected-unavailable-variant");if(isCollPage){curProId=this.parentNode.parentNode.getAttribute("proId");let oldProId=selected_unavailable_variant.getAttribute("proId");oldProId?oldProId!==curProId&&(addOptionsStatus=0,variantData=collVariants.find(i2=>i2.proId==curProId).variants,unVariantOptions=[],mountedUnVariantOptions(),selected_unavailable_variant.innerHTML="",selected_unavailable_variant.setAttribute("proId",curProId)):(unVariantOptions=[],variantData=collVariants.find(i2=>i2.proId==curProId).variants,mountedUnVariantOptions(),selected_unavailable_variant.setAttribute("proId",curProId))}for(let i2=0;i2<unVariantOptions.length;i2++)addOptionsStatus===0&&selected_unavailable_variant.add(unVariantOptions[i2]),unVariantOptions[i2].getAttribute("value")===selectVariantId.toString()&&(currentVariantOption=selected_unavailable_variant.querySelectorAll("option")[i2],currentVariantOption.setAttribute("selected","selected"));addOptionsStatus=1})}),floatBtnElement&&floatBtnElement.addEventListener("click",function(){autoInput(),emailFrameElement.style.display="block";for(let i=0;i<unVariantOptions.length;i++)addOptionsStatus===0&&variantSelector.add(unVariantOptions[i]),unVariantOptions[i].getAttribute("value")===selectVariantId.toString()&&(currentVariantOption=variantSelector.querySelectorAll("option")[i],currentVariantOption.setAttribute("selected","selected"));addOptionsStatus=1})}function autoInput(){JSON.stringify(customerInfo)!="{}"&&(nameInput.value=customerInfo.name,emailInput&&(emailInput.value=customerInfo.email),smsInput&&(smsInput.value=customerInfo.phone.replace(/[^0-9]/g,"")))}function mountedUnVariantOptions(){let optionIndex=0,title,id="id";isProPage?title="title":isCollPage&&(title="variantTitle",id="variantRid");for(let i=0;i<variantData.length;i++)(showVariants.includes(String(variantData[i].id))&&isProPage||isCollPage)&&(isCollPage&&collRednerProName(variantData[i].productRid),variantData[i][title]==="Default Title"&&(variantSelector.style.display="none"),unVariantOptions[optionIndex]=create({tag:"option",attributes:{value:variantData[i][id],textContent:variantData[i][title]}}),optionIndex++)}const observeDebounce=debounce(600,async()=>{observer.disconnect();const curEls=await getProsEle(),bns=qa(".product-restore-email").length;curEls.length!==oldCollElsCount||!bns?(debug&&console.log("\u76D1\u542C\u6210\u529F\uFF0C\u5F00\u59CB\u8FD0\u884C"),collVariants=[],insertEls=[],selBtnStatus=0,await init(),execute()):checkVariantChange()});function listenVariantChange(){if(isProPage){const url=document.URL;
173listenUrlStatus(),(url.indexOf("variant=")===-1||shopId==1742274613)&&checkVariantChange()}else isCollPage&&checkVariantChange()}function checkVariantChange(){let targetNode;if(isProPage?shopId==55013703857?targetNode=q(".select-selected, select[name=id]"):shopId==1742274613?targetNode=q(".option-1"):targetNode=q("input[name=id], select[name=id]"):isCollPage&&(targetNode=q("main")),targetNode){const config={attributes:!0,childList:!0,subtree:!0};observer=new MutationObserver(observerCallback),observer.observe(targetNode,config),debug&&console.log("\u76D1\u542C\u5668\u542F\u52A8\u4E2D")}}function observerCallback(){if(isProPage){debug&&console.log("\u76D1\u542C\u5230\u5143\u7D20\u53D8\u5316\uFF0C\u68C0\u67E5variant\u53D8\u5316");let curVariantId;if(shopId==55013703857){const selectedTitle=q(".select-selected").innerText;curVariantId=variantData.find(o=>o.title==selectedTitle).id}else if(shopId==1742274613){const option1Node=q(".option-0"),option2Node=q(".option-1"),option1Title=option1Node.querySelector(".selected_val").innerText,option2Title=option2Node.querySelector(".selected_val").innerText;curVariantId=variantData.find(o=>o.option1==option1Title&&o.option2==option2Title).id}else curVariantId=q("input[name=id], select[name=id]").value;handleVariantChange(curVariantId)}else isCollPage&&observeDebounce()}function listenUrlStatus(){overwritePushstate(),window.addEventListener("locationchange",()=>{if(document.URL!==initUrl){const currentUrl2=document.URL,vid=new URL(currentUrl2).searchParams.get("variant");debug&&console.log("vid",vid),initUrl=currentUrl2,vid&&handleVariantChange(vid),listenVariantFlag=!1,debug&&console.log("\u6E05\u9664\u5B9A\u65F6\u5668")}})}function handleVariantChange(vid){vid&&String(selectVariantId)!==String(vid)&&(selectVariantId=vid,currentVariant=variantData.find(o=>o.id==vid),available=currentVariant.available,(showVariants.includes(String(selectVariantId))&&!btnStyleSwitch||!popupStyleSwitch)&&getAllStyle(),showVariants.includes(String(selectVariantId))&&!selBtnStatus&&createEmailButton(),selBtnStatus===1&&(debug&&console.log("initEmailToMeEle"),debug&&console.log(currentVariant),initEmailToMeElement()))}function createEmailButton(){if(debug&&console.log("createEmailButton"),selBtnStatus===0){const url=baseUrl+"api/v1/email/selBtnStatus";request(url,{shopId}).then(res=>{const{code,data}=res;code===200&&(data.status==1||data.status==2||data.status==0||data.snsStatus?(selBtnStatus=1,initEmailToMeElement()):selBtnStatus=data.status)})}}function initEmailToMeElement(){selBtnStatus===1&&(showVariants.includes(String(selectVariantId))&&isProPage||isCollPage)?(inlineBtnElement&&(inlineBtnElement.forEach(i=>i.style.display="flex"),inlineEmailDiv.forEach(i=>i.style.display="flex")),floatBtnElement&&(floatBtnElement.style.display="flex",floatEmailDiv.style.display="flex")):(inlineBtnElement&&inlineEmailDiv.forEach(i=>i.style.display="none"),floatBtnElement&&(floatEmailDiv.style.display="none"))}function verifyEmail(){const email=emailInput.value;new RegExp(/^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,}$/).test(email)?invalidTip.style.visibility="hidden":toggleInvalidTip(!0,{type:"email",info:popupData.popup_validation_text})}function create({tag,appendTo,children=[],attributes={},events={}}){const element=document.createElement(tag);return Object.entries(attributes).forEach(([key,value])=>{element[key]=value}),Object.entries(events).forEach(([key,value])=>{element.addEventListener(key,value)}),appendTo&&appendTo.appendChild(element),children.forEach(child=>element.appendChild(child)),element}function subEmail(){const{popup_validation_text}=popupData;let buyerName;switch(nameInput&&(buyerName=nameInput.value),selectedType.type){case"sms":smsInput&&smsInput.value||""?iti.isValidNumber()?(toggleInvalidTip(!1),subscribeSms({buyerName})):toggleInvalidTip(!0,{type:"sms",info:popup_validation_text}):toggleInvalidTip(!0,{type:"sms",info:popup_validation_text});break;case"email":const email=emailInput.value;email?new RegExp(/^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,}$/).test(email)?(toggleInvalidTip(!1),subscribeEmail({buyerName})):toggleInvalidTip(!0,{type:"email",info:popup_validation_text}):toggleInvalidTip(!0,{type:"email",info:popup_validation_text});break;default:return}}function toggleInvalidTip(show,data){const style=getComputedStyle(invalidTip),{type,info}=data||{type:selectedType.type,info:popupData.popup_validation_text};switch(type){case"sms":style.visibility==="hidden"?(invalidTip.style.visibility="visible",invalidTip.innerHTML=info):invalidTip.style.visibility="hidden";break;case"email":style.visibility==="hidden"?(invalidTip.style.visibility="visible",invalidTip.innerHTML=info):invalidTip.style.visibility="hidden";break;default:invalidTip.style.visibility="hidden";break}
173debug&&console.log(invalidTip),show?invalidTip.style.visibility="visible":show===!1&&(invalidTip.style.visibility="hidden")}function subscribeSms(data){const params={shopId,variant_rid:variantSelector.value,receiver_number:formatPhoneNumber(smsInput.value.trim()),region:iti.getSelectedCountryData().iso2.toUpperCase(),is_integration:Number(mailingCheckbox.checked||!1),receiver_name:data.buyerName||"customer",customer_rid:0,shop_language:locale},url=baseUrl+"api/v1/sns/insCustomerSnsInfo";submitBtn.parentElement.className="frame-submit loading",request(url,params).then(res=>{const{code,message}=res;code===200?(emailFrameElement.style.display="none",successFrame.classList.add("successSub_active"),setTimeout(function(){successFrame.classList.remove("successSub_active")},4e3)):code===108||code===107?(invalidTip.style.visibility="visible",invalidTip.innerHTML=popupData.popup_subscribed_text):code===109?(invalidTip.style.visibility="visible",invalidTip.innerHTML=popupData.popup_validation_text):(invalidTip.style.visibility="visible",invalidTip.innerHTML=message)}).finally(()=>{submitBtn.parentElement.className="frame-submit"})}function subscribeEmail(data){const params={shopId,variant_rid:variantSelector.value,receiver_email:document.getElementsByClassName("buyer-email")[0].value,receiver_name:data.buyerName||"customer",is_integration:Number(mailingCheckbox.checked||!1),customer_rid:0,shop_language:locale},url=baseUrl+"api/v1/email/insCustomerEmailInfo";submitBtn.parentElement.className="frame-submit loading",request(url,params).then(res=>{const{code,message}=res;code===200?(emailFrameElement.style.display="none",successFrame.classList.add("successSub_active"),setTimeout(function(){successFrame.classList.remove("successSub_active")},4e3)):code===108||code===107?(invalidTip.style.visibility="visible",invalidTip.innerHTML="* You are already subscribed to this product."):code===109?(invalidTip.style.visibility="visible",invalidTip.innerHTML=popupData.popup_validation_text):(invalidTip.style.visibility="visible",invalidTip.innerHTML=message)}).finally(()=>{submitBtn.parentElement.className="frame-submit"})}function formatPhoneNumber(num){const code=iti.getSelectedCountryData().dialCode;return num=num.replace(/\b(0+)/gi,""),num.startsWith(code)?num:code+num}function initSms(){const emailInput2=q(".buyer-email"),phoneInput=q(".buyer-phone"),phoneContainer=q(".buyer-phone-container"),emailTypeBtn=q(".email-type"),smsTypeBtn=q(".sms-type");q(".iti--allow-dropdown")||initPhoneInput().then(res=>{res.code===200&&popupData.popup_option===3&&(selectedType=new Proxy({type:"email"},{set(target,key,newVal){return debug&&console.log(target,key,newVal),target[key]=newVal,toggleInput(newVal),!0}}),toggleInput(selectedType.type),emailTypeBtn.addEventListener("click",()=>{selectedType.type="email"}),smsTypeBtn.addEventListener("click",()=>{selectedType.type="sms"}))});function initPhoneInput(){return new Promise(resolve=>{addScript("https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.16/css/intlTelInput.css").then(cssRes=>{cssRes.code===200&&(document.head.insertAdjacentHTML("beforeend",` 174 <style> 175 .iti__flag {background-image: url("https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.16/img/flags.png");} 176 @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { 177 .iti__flag {background-image: url("https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.16/img/[email protected]");} 178 } 179 .iti.iti--allow-dropdown { 180 width: 100%; 181 display: flex; 182 height: var(--sa-button-height-normal); 183 margin-top: 10px; 184 } 185 .iti__country { 186 color: #777777; 187 } 188 .iti--container { 189 z-index: 999999999 !important; 190 } 191 </style> 192 `),addScript("https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.16/js/intlTelInput.min.js",!0).then(script=>{script.onload=function(){iti=window.intlTelInput(phoneInput,{utilsScript:"https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.16/js/utils.min.js",autoPlaceholder:"aggressive",initialCountry:popupData.sms_default_region||""}),debug&&console.log("Script Loaded"),debug&&console.log(phoneInput),phoneInput.addEventListener("input",e=>{debug&&console.log("getNumber",iti.getNumber()),debug&&console.log("getSelectedCountryData",iti.getSelectedCountryData()),iti.isValidNumber()?toggleInvalidTip(!1):toggleInvalidTip(!0)}),phoneInput.addEventListener("blur",e=>{debug&&console.log("isValidNumber",iti.isValidNumber()),iti.isValidNumber()?toggleInvalidTip(!1):toggleInvalidTip(!0)})},document.body.appendChild(script),resolve({code:200})}))})})}function toggleInput(type){switch(invalidTip.style.visibility="hidden",type){case"sms":emailInput2.style.display="none",phoneContainer.style.display="flex",emailTypeBtn.className="email-type",smsTypeBtn.className="sms-type type-selected";break;case"email":smsTypeBtn.className="sms-type",emailInput2.style.display="block",phoneContainer.style.display="none",emailTypeBtn.className="email-type t
192ype-selected";break;default:invalidTip.style.visibility="hidden";break}}}function addScript(url,returnWithScript=!1){return new Promise((resolve,reject)=>{try{const type=url.endsWith(".js")&&"js"||"css";if(type==="js"){const script=document.createElement("script");script.setAttribute("type","text/javascript"),script.setAttribute("src",url),returnWithScript&&resolve(script),document.head.appendChild(script),resolve({code:200,data:script,type:"script"})}else if(type==="css"){const link=document.createElement("link");link.setAttribute("rel","stylesheet"),link.setAttribute("href",url),returnWithScript&&resolve(link),document.head.appendChild(link),resolve({code:200,data:link,type:"style"})}}catch(err){reject({code:600,err})}})}function createRequestId(length){length=length&&length<64?length:63;let result="";const chars="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_";for(let i=0;i<length;++i)result+=chars[Math.floor(Math.random()*chars.length)];const timestamp=+new Date;return result+timestamp}function request(url,params,callback,method="POST"){return new Promise((resolve,reject)=>{url||resolve({code:999,data:"\u6CA1\u6709\u4F20api\u5730\u5740"});try{const finalParams=params||{};(params&&!Object.keys(params).includes("shopId")||!params)&&(finalParams.shopId=shopId);const xmlHttp=new XMLHttpRequest;xmlHttp.open(method,url,!0),xmlHttp.setRequestHeader("Content-Type","application/json"),xmlHttp.setRequestHeader("authorization",domain),xmlHttp.setRequestHeader("Org-Request-ID",createRequestId(37)),xmlHttp.setRequestHeader("Org-Request-URL",window.location.href),xmlHttp.send(JSON.stringify(finalParams)),xmlHttp.onreadystatechange=function(){if(xmlHttp.readyState==4&&xmlHttp.status==200||xmlHttp.status==304){const json=JSON.parse(this.responseText),{code,data}=json;code===200?(callback&&callback(data),resolve(json)):code!==500&&resolve(json)}}}catch(err){reject(err)}})}function getUserConfig(){const params={type:"user_config"},url=baseUrl+"api/v1/collect/config";request(url,params)}async function getProductStatus(baseApiUrl){debug&&console.log("getProductStatus");let productIds=[];if(ShopifyAnalytics.meta.product){const productId2=ShopifyAnalytics.meta.product.id;productIds.push(productId2)}else return;const params={shopId,productIds,type:2},url=baseApiUrl+"api/v1/customer/getVariantBtStatus";await request(url,params).then(res=>{debug&&console.log("Get Prodcut Status Success");const{apiCode,products}=res;apiCode===200&&products&&(showVariants=products[0].variants.map(variant=>variant.variantRid))})}function getCustomerInfo(){let id="";if(ShopifyAnalytics.meta.page.customerId)id=ShopifyAnalytics.meta.page.customerId;else return;const params={shopId,customerId:id},url=baseUrl+"api/v1/customer/getCustomerInfo";request(url,params).then(res=>{const{apiCode,customer}=res;apiCode===200&&customer&&(debug&&console.log("Get Customer Info Success"),customerInfo=JSON.parse(JSON.stringify(customer)))})}function importStyles(){const styles=`<style> 193 body { 194 --sa-border-normal: 1px solid #d9d9d9; 195 --sa-border-hover: 2px solid skyblue; 196 --sa-button-height-normal: 44px; 197 --sa-border-radius-input: 4px; 198 --sa-border-radius-button: 4px; 199 --sa-border-color: #d9d9d9; 200 --sa-disabled-bgc: #f2f2f2; 201 --sa-btn-hover-bgc: #f6f6f7; 202 --sa-input-padding: 8px; 203 } 204 ${customStyle} 205 #email-me-frame * { 206 box-sizing: border-box; 207 } 208 #email-me-frame *:empty { 209 display: inherit; 210 } 211 .email-me-button{ 212 width: 100%; 213 height: var(--sa-button-height-normal); 214 /*background-color: rgb(51, 51, 51);*/ 215 /*border-radius: 7px;*/ 216 /*color: white;*/ 217 border-width: 0px; 218 font-size: 15px; 219 cursor: pointer; 220 letter-spacing: 1px; 221 border-radius: var(--sa-border-radius-button); 222 align-items:center; 223 display: flex; 224 justify-content: center; 225 box-sizing: border-box; 226 transition: all linear .15s; 227 position: relative; 228 } 229 .email-me-inlineButton { 230 display: none; 231 } 232 #email-me-frame { 233 position: fixed; 234 top: 0; 235 left: 0; 236 width: 100%; 237 height: 100%; 238 background-color: rgba(0,0,0,0.2); 239 z-index: 9999999; 240 display: none; 241 } 242 243 #email-me-frame input { 244 background-color: #ffffff; 245 border: 1px solid var(--sa-border-color); 246 border-radius: var(--sa-border-radius-input); 247 } 248 249 #email-me-frame .email-frame-content{ 250 width: 65%; 251 /*height: 358px;*/ 252 max-width: 398px; 253 min-width: 300px; 254 background: white; 255 border-radius: 7px; 256 padding-bottom:16px; 257 border: 1px solid var(--sa-border-color); 258 box-shadow: 0 0 18px #00000030; 259 animation: fadeIn .15s linear; 260 position: fixed; 261 top: 50%; left: 50%; 262 bottom: 0; 263 height: 100%; 264 max-height: 508px; 265 transform: translate(-50%, -50%);
266 overflow-y: scroll; 267 } 268 .email-frame-content::-webkit-scrollbar { 269 /*\u6EDA\u52A8\u6761\u6574\u4F53\u6837\u5F0F*/ 270 width: 4px; /*\u9AD8\u5BBD\u5206\u522B\u5BF9\u5E94\u6A2A\u7AD6\u6EDA\u52A8\u6761\u7684\u5C3A\u5BF8*/ 271 height: 1px; 272 } 273 .email-frame-content::-webkit-scrollbar-thumb { 274 /*\u6EDA\u52A8\u6761\u91CC\u9762\u5C0F\u65B9\u5757*/ 275 border-radius: 10px; 276 background: #a9a9a9; 277 } 278 .email-frame-content::-webkit-scrollbar-track { 279 /*\u6EDA\u52A8\u6761\u91CC\u9762\u8F68\u9053*/ 280 box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2); 281 background: #ededed; 282 border-radius: 10px; 283 } 284 285 #email-me-frame .frame-close { 286 margin-top: 10px; 287 margin-bottom: 10px; 288 margin-right: 5px; 289 cursor: pointer; 290 display: inline-block; 291 width: 100%; 292 height: 2px; 293 background: #333; 294 transform: rotate( 295 45deg 296 ); 297 } 298 #email-me-frame .frame-close::after{ 299 content: ""; 300 display: block; 301 height: 2px; 302 background: #333; 303 transform: rotate( 304 -90deg 305 ); 306 } 307 308 #email-me-frame .email-frame-header{ 309 display: flex; 310 justify-content: center; 311 clear: both; 312 padding-top: 2px; 313 padding-left: 30px; 314 margin-bottom: 7px; 315 font-family: "Arial",sans-serif; 316 317 } 318 319 #email-me-frame .close-box{ 320 width: 20px; 321 height: 19px; 322 float: right; 323 margin-right: 5px; 324 margin-top: 5px; 325 cursor: pointer; 326 } 327 328 #email-me-frame .frame-email-logo svg{ 329 background-size: 25px 25px; 330 width: 24px; 331 margin-top: 3px; 332 } 333 334 #email-me-frame .frame-title{ 335 padding-left: 13px; 336 flex: 1; 337 color:#1A1B18; 338 font-size: 16px; 339 font-weight: 600; 340 padding-top: 3px; 341 } 342 343 #email-me-frame .split-line { 344 border: 1px solid var(--sa-border-color); 345 } 346 347 #email-me-frame .email-frame-body{ 348 padding-left: 30px; 349 padding-right: 30px; 350 } 351 352 #email-me-frame .frame-body-content{ 353 letter-spacing: 0.01rem; 354 line-height: 1.6rem; 355 font-weight: 500; 356 font-size: 15px; 357 margin-top:16px; 358 margin-bottom: 5px; 359 color:#1A1B18; 360 } 361 362 #email-me-frame .buyer-email, 363 #email-me-frame .buyer-phone-input, 364 #email-me-frame .buyer-name{ 365 border-radius: var(--sa-border-radius-input); 366 border: 1px solid var(--sa-border-color); 367 margin: 10px 0 0 0; 368 width: 100%; 369 font-size: 15px ; 370 outline: none !important; 371 height: var(--sa-button-height-normal) !important; 372 color: #000 !important; 373 background: #fff !important; 374 padding: var(--sa-input-padding) !important; 375 } 376 .buyer-phone-input { 377 border-left: none; 378 } 379 380 #email-me-frame .notify-type-toggler { 381 display: flex; 382 align-items: center; 383 justify-content: space-between; 384 width: 100%; 385 font-size: 15px ; 386 height: var(--sa-button-height-normal) !important; 387 color: #000 !important; 388 background: #fff !important; 389 margin-top: 10px; 390 } 391 .notify-type-toggler > div { 392 flex: 1; 393 display: flex; 394 justify-content: center; 395 align-items: center; 396 border: 1px solid var(--sa-border-color); 397 height: 100%; 398 cursor: pointer; 399 transition: all linear .14s; 400 } 401 .notify-type-toggler > div:hover { 402 background: var(--sa-btn-hover-bgc) 403 } 404 .notify-type-toggler > div:nth-child(1) { 405 border-radius: var(--sa-border-radius-button) 0 0 5px; 406 } 407 .notify-type-toggler > div:nth-child(2) { 408 border-left: 0; 409 border-radius: 0 5px 5px 0; 410 } 411 .join-mailing-container { 412 display: flex; 413 align-items: center; 414 font-size: 12px; 415 line-height: 12px; 416 margin-top: 4px; 417 } 418 .join-mailing-listLabel { 419 margin: 0 0 0 8px; 420 color: #333333 !important; 421 } 422 #email-me-frame .buyer-phone-block { 423 display: flex; 424 align-items: center; 425 justify-content: space-between; 426 position: relative; 427 height: var(--sa-button-height-normal); 428 padding: var(--sa-input-padding); 429 } 430 #email-me-frame .country-selector { 431 width: 54px; 432 display: flex; 433 align-items: center; 434 justify-content: center; 435 height: 100%; 436 border: 1px solid var(--sa-border-color); 437 cursor: pointer; 438 } 439 #email-me-frame .country-selector:hover { 440 background: var(--sa-disabled-bgc); 441 } 442 #email-me-frame .country-selector-list { 443 max-width: 120px; 444 position: absolute; 445 border: 1px solid var(--sa-border-color); 446 border-radius: 8px; 447 background-color: #fff; 448 list-style: none; 449 padding: 0px; 450 max-height: 120px;
451 overflow-y: scroll; 452 margin-bottom: 50%; 453 } 454 #email-me-frame .country-selector-list li { 455 display: flex; 456 flex-wrap: nowrap; 457 justify-content: space-between; 458 align-items: center; 459 padding: var(--sa-input-padding); 460 cursor: pointer; 461 transition: all linear .14s; 462 bottom: 0; 463 } 464 #email-me-frame .country-selector-list li:hover { 465 background-color: #eeeeee; 466 } 467 .buyer-phone { 468 outline: none; 469 flex: 1; 470 transition: all linear .14s; 471 border: var(--sa-border-normal); 472 border-radius: var(--sa-border-radius-button); 473 } 474 input::-webkit-input-placeholder{ 475 color:gray; 476 font-size:15px; 477 } 478 479 input::-moz-placeholder{ /* Mozilla Firefox 19+ */ 480 color:gray; 481 font-size:15px; 482 } 483 input:-moz-placeholder{ /* Mozilla Firefox 4 to 18 */ 484 color:gray; 485 font-size:15px; 486 } 487 input:-ms-input-placeholder{ /* Internet Explorer 10-11 */ 488 color:gray; 489 font-size:15px; 490 } 491 492 493 #email-me-frame .frame-submit{ 494 position: relative; 495 } 496 497 /* loading\u7684\u4EE3\u7801 */ 498 .frame-submit.loading { 499 pointer-events: none; 500 cursor: not-allowed; 501 } 502 .frame-submit.loading::after { 503 content: ''; 504 width: 20px; 505 height: 20px; 506 border-radius: 50%; 507 border-bottom: 2px solid #ddd; 508 border-right: 2px solid #ddd; 509 animation: spin ease-in-out 0.8s infinite; 510 position: absolute; 511 top: 11px; 512 left: 50%; 513 transform: translate(-50%, -50%); 514 } 515 .frame-submit.loading .email-me-submitButton { 516 opacity: 0; 517 } 518 @keyframes spin { 519 0% { 520 transform: rotate(0deg); 521 } 522 100% { 523 transform: rotate(360deg); 524 } 525 } 526 527 #email-me-frame .selected-unavailable-variant{ 528 border-radius: var(--sa-border-radius-button); 529 border: 1px solid var(--sa-border-color); 530 margin: 10px 0 0 0; 531 width: 100%; 532 height: var(--sa-button-height-normal); 533 font-size: 15px; 534 outline: none; 535 color: #000; 536 padding: var(--sa-input-padding) !important; 537 background: #fff; 538 } 539 540 #email-me-frame .invalid-email-tips{ 541 color: rgb(219, 17, 42); 542 font-weight: 500; 543 letter-spacing: 0; 544 visibility: hidden; 545 line-height: 24px; 546 font-size: 12px; 547 } 548 549 #email-me-frame .email-frame-footer{ 550 padding: 0 30px; 551 margin-top: 20px; 552 } 553 554 #email-me-frame .email-frame-footer .email-footer-tips{ 555 font-size: 14px; 556 font-family: "Arial",sans-serif; 557 line-height: 1.1em; 558 color: #ccc; 559 } 560 #email-me-frame .email-app-link{ 561 color: #008ddd; 562 } 563 #email-me-frame .email-app-link:hover{ 564 color: #0089d6; 565 } 566 #email-me-frame .email-app-link:visited{ 567 color: #008ddd; 568 } 569 #email-me-frame .email-app-link:active{ 570 color: #008ddd; 571 } 572 #email-me-frame .email-provider { 573 margin-top: 8px; 574 text-align: center !important; 575 font-family: "Arial",sans-serif; 576 color: black; 577 font-size: 12px; 578 } 579 .successSub_header img { 580 width: 32px; 581 margin: 0; 582} 583 .successSub { 584 transition: width 0.5s ease-out, opacity 0.5s ease-in, visibility 0.5s ease-in; 585 max-width: 350px; 586 background: rgb(255, 255, 255); 587 padding: 20px; 588 border-radius: 7px; 589 border:1px solid #445958 ; 590 display: block; 591 z-index: -1; 592 position: fixed; 593 top: 50%; left: 50%; 594 transform: translate(-50%, -50%); 595 visibility: hidden; 596 opacity: 0; 597 color: #464646; 598} 599.successSub_active { 600 width: 100%; 601 visibility: visible; 602 opacity: 1; 603 z-index: 999999999; 604} 605.product-restore-email img { 606 width: 44px; 607 margin: 0; 608} 609#email-me-frame img { 610 /* width: 100%; */ 611 width: 50px; 612 margin-right: 8px; 613} 614.successSub_header { 615 width: 100%; 616 align-items: center; 617 justify-content: space-between; 618 display: flex; 619} 620.successSub_header_text { 621 font-weight: 700; 622 flex: 1; 623 padding-left: 8px; 624} 625.successSub_close-box { 626 width: 20px; 627 height: 20px; 628 padding: 4px; 629 cursor: pointer; 630 display: flex; 631 align-items: center; 632 transform: translate(8px, -16px); 633} 634.successSub_frame-close { 635 margin-bottom: 10px; 636 cursor: pointer; 637 display: inline-block !important; 638 width: 100%; 639 height: 1px; 640 background: #333; 641 transform: rotate( 642 45deg 643 ); 644} 645.successSub_frame-close::after { 646 content: ''; 647 display: block; 648 height: 1px; 649 background: #333; 650 transform: rotate( 651 -90deg 652 ); 653} 654.successSub_text { 655 margin-top: 8px; 656 font-size: 20px; 657 font-weight: 500; 658 line-height: 1.5; 659} 660 .product-restore-email{ 661 justify-content: flex-start; 662 width: 100%; 663 flex:1; 664 } 665 .product-restore-email input { 666 background: #ffffff; 667 } 668 #product-restore-email-float{ 669 display: flex; 670 z-index:99999999999; 671 justify-content: center; 672 position:fixed; 673 674 } 675 .float-btn-left{ 676 transform: rotate(90deg) translateY(-100%); 677 transform-origin: 0% 0%; 678 left:0; 679 } 680 .float-btn-right{ 681 transform: rotate(-90deg) translateY(-100%); 682 transform-origin: 100% 0%; 683 right:0; 684 } 685 #product-restore-email-float .email-me-button{ 686 padding: 0.8rem 1.2rem; 687 } 688 #email-me-frame .email-provider span{ 689 color: blue; 690 } 691 @keyframes fadeIn { 692 0% { 693 opacity: .6; 694 } 695 100% { 696 opacity: 1; 697 } 698 } 699 /* \u6EDA\u52A8\u6761\u8BBE\u7F6E\u6CA1\u6709\u751F\u6548 */ 700 /* \u6EDA\u52A8\u6761\u6574\u4F53\u90E8\u5206\uFF0C\u53EF\u4EE5\u8BBE\u7F6E\u5BBD\u5EA6\u5565\u7684 */ 701 #email-me-frame .country-selector-list ::-webkit-scrollbar {
702 width: 2px; 703 height: 2px; 704 } 705 /* \u6EDA\u52A8\u6761\u4E24\u7AEF\u7684\u6309\u94AE */ 706 #email-me-frame .country-selector-list ::-webkit-scrollbar-button { 707 display: none !important; 708 } 709 /* \u5916\u5C42\u8F68\u9053 */ 710 #email-me-frame .country-selector-list ::-webkit-scrollbar-track { 711 display: none !important; 712 } 713 /* \u5185\u5C42\u6EDA\u52A8\u69FD */ 714 #email-me-frame .country-selector-list ::-webkit-scrollbar-track-piece{ 715 display: none !important; 716 } 717 /* \u6EDA\u52A8\u7684\u6ED1\u5757 */ 718 #email-me-frame .country-selector-list ::-webkit-scrollbar-thumb { 719 background-color:#ff9900; 720 background-color:rgba(255,153,0, 0.6); 721 border-radius: 10px; 722 } 723 .type-selected { 724 pointer-events: none; 725 background-color: var(--sa-disabled-bgc); 726 } 727 728 </style>`;document.head.insertAdjacentHTML("beforeend",styles)}function addStyle(style){typeof style=="string"?document.head.insertAdjacentHTML("beforeend",style):document.head.appendChild(style)}function getQueryString(name){const reg=new RegExp("(^|&)"+name+"=([^&]*)(&|$)","i"),r=window.location.search.substr(1).match(reg);return r!=null?unescape(r[2]):null}function changeStatus(data){const emailCustomerId=getQueryString("emailCustomerId");if(!emailCustomerId)return;const variantId=getQueryString("variant");if(!variantId)return;const{baseUrl:baseUrl2}=data,params={id:emailCustomerId,shopId,variantId},url=baseUrl2+"api/v1/email/changeEmailStatus";request(url,params)}function overwritePushstate(){const oldPushState=history.pushState;history.pushState=function(){const ret=oldPushState.apply(this,arguments);return window.dispatchEvent(new Event("pushstate")),window.dispatchEvent(new Event("locationchange")),ret};const oldReplaceState=history.replaceState;history.replaceState=function(){const ret=oldReplaceState.apply(this,arguments);return window.dispatchEvent(new Event("replacestate")),window.dispatchEvent(new Event("locationchange")),ret},window.addEventListener("popstate",()=>{window.dispatchEvent(new Event("locationchange"))})}function q(selector,context){let node;return context?node=context.querySelector(selector):node=document.querySelector(selector),node}function qa(selector,context){let nodes;return context?nodes=context.querySelectorAll(selector):nodes=document.querySelectorAll(selector),nodes}function shopLanguageCallback(){locale=q(".notranslate").querySelector(".selected img[alt]").alt}function collRednerProName(curProId){productTitle=collVariants.find(i=>i.proId==curProId).productName;const productTitleEl=q(".frame-body-content");productTitleEl.innerText=productTitle}function userNeed(){shopId===55605198922&&(customStyle+=`#email-me-frame .frame-title, #email-me-frame input { 729 font-family: 'Sabon Next'; 730 }`)}})(); 731//# sourceMappingURL=/cdn/shop/t/101/assets/product_restore_email.js.map?v=59454373189028101461790146489
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.