/*! For license information please see referral.js.LICENSE.txt */ (()=>{var e={2207:(e,t,n)=>{e.exports=n(7452)},7452:e=>{var t=function(e){"use strict";var t,n=Object.prototype,o=n.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},i=r.iterator||"@@iterator",a=r.asyncIterator||"@@asyncIterator",s=r.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,n){return e[t]=n}}function c(e,t,n,o){var r=t&&t.prototype instanceof g?t:g,i=Object.create(r.prototype),a=new E(o||[]);return i._invoke=function(e,t,n){var o=d;return function(r,i){if(o===f)throw new Error("Generator is already running");if(o===h){if("throw"===r)throw i;return L()}for(n.method=r,n.arg=i;;){var a=n.delegate;if(a){var s=S(a,n);if(s){if(s===y)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===d)throw o=h,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=f;var l=u(e,t,n);if("normal"===l.type){if(o=n.done?h:p,l.arg===y)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(o=h,n.method="throw",n.arg=l.arg)}}}(e,n,a),i}function u(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=c;var d="suspendedStart",p="suspendedYield",f="executing",h="completed",y={};function g(){}function m(){}function v(){}var b={};l(b,i,(function(){return this}));var w=Object.getPrototypeOf,x=w&&w(w(j([])));x&&x!==n&&o.call(x,i)&&(b=x);var k=v.prototype=g.prototype=Object.create(b);function _(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function C(e,t){function n(r,i,a,s){var l=u(e[r],e,i);if("throw"!==l.type){var c=l.arg,d=c.value;return d&&"object"==typeof d&&o.call(d,"__await")?t.resolve(d.__await).then((function(e){n("next",e,a,s)}),(function(e){n("throw",e,a,s)})):t.resolve(d).then((function(e){c.value=e,a(c)}),(function(e){return n("throw",e,a,s)}))}s(l.arg)}var r;this._invoke=function(e,o){function i(){return new t((function(t,r){n(e,o,t,r)}))}return r=r?r.then(i,i):i()}}function S(e,n){var o=e.iterator[n.method];if(o===t){if(n.delegate=null,"throw"===n.method){if(e.iterator.return&&(n.method="return",n.arg=t,S(e,n),"throw"===n.method))return y;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return y}var r=u(o,e.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,y;var i=r.arg;return i?i.done?(n[e.resultName]=i.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,y):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,y)}function O(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function B(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function E(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function j(e){if(e){var n=e[i];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,a=function n(){for(;++r=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var l=o.call(a,"catchLoc"),c=o.call(a,"finallyLoc");if(l&&c){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&o.call(r,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),B(n),y}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var o=n.completion;if("throw"===o.type){var r=o.arg;B(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,o){return this.delegate={iterator:j(e),resultName:n,nextLoc:o},"next"===this.method&&(this.arg=t),y}},e}(e.exports);try{regeneratorRuntime=t}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=t:Function("r","regeneratorRuntime = r")(t)}}},t={};function n(o){var r=t[o];if(void 0!==r)return r.exports;var i=t[o]={exports:{}};return e[o](i,i.exports,n),i.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";var e=n(2207),t=n.n(e);function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function p(e,t){for(var n=0;n'),this.modalInner.append(this.renderHelperText())}},{key:"renderSafelinkModal",value:function(){var e=this.renderModalOverlay(),t=this.renderModalContent(),n=this.renderModalInner(),o=this.renderModalCloseButton(),r=this.renderModalActionButton();return n.append(o),n.append(r),t.append(n),e.append(t),this.modalOverlay}},{key:"renderModalOverlay",value:function(){var e=this;return this.modalOverlay=document.createElement("div"),this.modalOverlay.id="__ss-modal-overlay",this.modalOverlay.style.cssText="\n display: none;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0,0,0,.5);\n z-index: 9998;",this.modalOverlay.addEventListener("click",(function(t){"__ss-modal-overlay"===t.target.id&&e.hideSafelinkModal()})),this.modalOverlay}},{key:"renderModalContent",value:function(){return this.modalContent=document.createElement("div"),this.modalContent.id="__ss-modal-content",this.modalContent.style.cssText="\n display: block;\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: ".concat(this.options.background_color,";\n z-index: 9999;\n border-top: 10px solid #2C2C2C;\n border-radius: 10px;\n text-align: center;\n margin: auto;"),this.modalContent}},{key:"renderModalInner",value:function(){return this.modalInner=document.createElement("div"),this.modalInner.id="__ss-modal-inner",this.modalInner.style.cssText="\n box-sizing: border-box;\n display: block;\n position: relative;\n width: 100%;\n height: 100%;\n padding: 40px 30px",this.modalInner.innerHTML='\n

\n \n

\n

\n ').concat(this.replaceVariables(this.options.heading_text),'\n

\n

\n ').concat(this.replaceVariables(this.options.body_text),"\n

"),this.modalInner}},{key:"renderModalCloseButton",value:function(){var e=this;return this.modalCloseButton=document.createElement("button"),this.modalCloseButton.style.cssText="\n position: absolute;\n top: 10px;\n right: 10px;\n background-color: transparent;\n border: none;\n cursor: pointer;\n width: auto;\n text-align: center;",this.modalCloseButton.innerHTML='\n \n \n '),this.modalCloseButton.addEventListener("click",(function(){return e.hideSafelinkModal()})),this.modalCloseButton}},{key:"renderModalActionButton",value:function(){var e=this;return this.modalActionButton=document.createElement("button"),this.modalActionButton.style.cssText="\n display: block;\n margin: 0 auto;\n padding: 12px 20px;\n width: 230px;\n background-color: ".concat(this.options.button_color,";\n color: ").concat(this.options.button_text_color,";\n border: 1px solid ").concat(this.options.button_border_color,";\n border-radius: 5px;\n font-size: 1.2em;\n cursor: pointer;\n font-family: -apple-system, Inter, BlinkMacSystemFont,\n Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji,\n Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji; text-align: center;"),this.modalActionButton.innerHTML=this.replaceVariables(this.options.button_text),this.modalActionButton.addEventListener("click",(function(){return e.fetchDiscountCode()})),this.modalActionButton}},{key:"renderModalCodeBox",value:function(){var e=this;return this.modalCodeBox=document.createElement("div"),this.modalCodeBox.style.cssText="\n background-color: #ECF0FF;\n display: block;\n width: 90%;\n margin: auto;\n text-align: center;\n color: #3860FB;\n font-size: 25px;\n padding: 8px;\n cursor: pointer;",this.modalCodeBox.addEventListener("click",(function(){e.safelinkCode&&(navigator.clipboard.writeText(e.safelinkCode),alert("Copied to clipboard"))})),this.modalCodeBox}},{key:"renderHelperText",value:function(){return this.modalHelperText=document.createElement("div"),this.modalHelperText.style.cssText="\n font-size: 0.8em;\n color: ".concat(this.options.helper_text_color,";\n margin-top: 8px;"),this.modalHelperText.innerHTML="".concat(this.replaceVariables(this.options.helper_text),""),this.modalHelperText}},{key:"renderLoadingSpinner",value:function(){return this.loadingSpinnerStyle=document.getElementById("__ss-loader-spinner-style"),this.loadingSpinnerStyle||(this.loadingSpinnerStyle=document.createElement("style"),this.loadingSpinnerStyle.id="__ss-loader-spinner-style",this.loadingSpinnerStyle.innerHTML="\n .__ss-loader-spinner {\n width: 24px;\n height: 24px;\n border: 4px solid #3860FB;\n border-bottom-color: transparent;\n border-radius: 50%;\n display: inline-block;\n box-sizing: border-box;\n animation: __ss-rotation 1s linear infinite;\n }\n\n @keyframes __ss-rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }",document.head.append(this.loadingSpinnerStyle)),this.loadingSpinner=document.createElement("span"),this.loadingSpinner.className="__ss-loader-spinner",this.loadingSpinner}},{key:"renderWidgetButton",value:function(){var e,t=this;return this.widgetButton=document.createElement("div"),this.widgetButton.id="__ss-widget-button",this.widgetButton.style.cssText="\n display: none;\n position: fixed;\n bottom: 20px; ".concat("bottom_right"===this.options.widget_button_position?"right: 20px;":"left: 20px;","\n padding: 10px 15px;\n background-color: ").concat(this.options.widget_button_color,";\n border-color: ").concat(this.options.widget_button_color,";\n border-radius: 25px;\n border-style: solid;\n color: ").concat(this.options.widget_button_text_color,";\n cursor: pointer;\n z-index: 9999;\n font-size: 16px;\n width: auto;\n text-align: center;\n align-items: center;\n "),this.widgetButtonContent=document.createElement("div"),this.widgetButtonContent.id="__ss-widget-button-content",this.widgetButtonContent.style.cssText="\n display: inline-block;\n align-items: center;",this.widgetButtonContent.innerHTML=this.replaceVariables(this.options.widget_button_text),this.widgetButton.append(this.widgetButtonContent),null!==(e=this.features)&&void 0!==e&&e.is_safelink_popup_close_widget_button_enabled&&this.widgetButton.append(this.renderWidgetCloseButton()),this.widgetButton.addEventListener("click",(function(){t.modalOverlay.style.display="block",t.widgetButton.style.display="none"})),this.widgetButton}},{key:"renderWidgetCloseButton",value:function(){var e=this;return this.widgetCloseButton=document.createElement("button"),this.widgetCloseButton.style.cssText="\n background-color: transparent;\n border: none;\n cursor: pointer;\n color: ".concat(this.options.widget_button_text_color,";\n margin-left: 8px;\n margin-top: 2px;\n padding: 0px;\n font-size: 20px;\n opacity: 0.6;\n "),this.widgetCloseButton.innerHTML="×",this.widgetCloseButton.addEventListener("click",(function(t){t.stopPropagation(),e.hideWidgetButton()})),this.widgetCloseButton.addEventListener("mouseenter",(function(){e.widgetCloseButton.style.opacity=1})),this.widgetCloseButton.addEventListener("mouseleave",(function(){e.widgetCloseButton.style.opacity=.6})),this.widgetCloseButton}},{key:"replaceVariables",value:function(e){var t=this;return e?e.replace(/{([^}]+)}/g,(function(e,n){return t.variables[n]||n})):e}},{key:"updateSafeLinkModalSize",value:function(){window.outerWidth<768?(this.modalContent&&(this.modalContent.style.cssText+="width: 90%;"),this.modalInner&&(this.modalInner.style.cssText+="padding: 40px 10px;")):(this.modalContent&&(this.modalContent.style.cssText+="width: 40%;"),this.modalInner&&(this.modalInner.style.cssText+="padding: 40px 30px 60px 30px;"))}},{key:"removeURLParams",value:function(){var e=new URLSearchParams(window.location.search);e.delete("snowball"),window.history.replaceState({},document.title,window.location.pathname+(e.size>0?"?":"")+e.toString())}},{key:"fetchDiscountCode",value:(l=t().mark((function e(){var n;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i.set(this.props.safelinkGeneratedCookie,"true",{secure:!0}),this.showLoadingSpinner(),e.next=4,this.props.sendData();case 4:if(!(n=e.sent).error){e.next=11;break}return console.error("Failed to create safelink"),alert("Failed to create safelink"),this.modalCodeBox.remove(),this.modalActionButton.style.display="block",e.abrupt("return");case 11:this.safelinkCode=n.safelink.code.code,this.props.applyCoupon(this.safelinkCode),this.showSafelinkCode();case 14:case"end":return e.stop()}}),e,this)})),u=function(){var e=this,t=arguments;return new Promise((function(n,o){var r=l.apply(e,t);function i(e){s(r,n,o,i,a,"next",e)}function a(e){s(r,n,o,i,a,"throw",e)}i(void 0)}))},function(){return u.apply(this,arguments)})},{key:"wasModalClosed",value:function(){return localStorage.getItem("snowball_safelink_modal_closed")}},{key:"wasWidgetClosed",value:function(){return localStorage.getItem("snowball_widget_button_closed")}}],o&&p(n.prototype,o),r&&p(n,r),Object.defineProperty(n,"prototype",{writable:!1}),e}();function h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function y(e){for(var t=1;t>e/4).toString(16)}))}},{key:"getVisitorId",value:function(){return i.get(k)}},{key:"getCookieSafelink",value:function(){return i.get(S)}},{key:"getCookieSafelinkGenerated",value:function(){return i.get(O)}},{key:"getCookieReferrer",value:function(){return i.get(B)}},{key:"isReferrerBlocked",value:function(){return!!i.get(E)}},{key:"clearCookies",value:function(){i.remove(x),i.remove(k),i.remove(_),i.remove(C),i.remove(S),i.remove(O),i.remove(B),i.remove(E)}},{key:"getCookieAffiliateReferralCode",value:function(){return i.get(x)}},{key:"trigger",value:(s=v(t().mark((function e(){var n,o,r,a,s,l,c,u,d,p,f=arguments;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=f.length>0&&void 0!==f[0]?f[0]:"click",r=f.length>1&&void 0!==f[1]?f[1]:{},this.referral_code&&""!==this.referral_code){e.next=4;break}return e.abrupt("return");case 4:if(!this.isReferrerBlocked()){e.next=7;break}return console.debug("Referrer blocked"),e.abrupt("return");case 7:if(a=this.getCookieAffiliateReferralCode(),s=this.getVisitorId(),l=i.get(C),this.payload={affiliate_referral:this.referral_code,destination_url:window.location.href,event_type:o,visitor_id:s||this.generateUid(),shop_url:null===(n=Shopify)||void 0===n?void 0:n.shop,referrer:this.referrer},c=y(y({},this.payload),r),!((new Date).getTime()