/*! For license information please see sdk.js.LICENSE.txt */ (()=>{var e={483:(e,t,n)=>{e.exports=function e(t,n,i){function a(o,s){if(!n[o]){if(!t[o]){if(r)return r(o,!0);var l=new Error("Cannot find module '"+o+"'");throw l.code="MODULE_NOT_FOUND",l}l=n[o]={exports:{}},t[o][0].call(l.exports,(function(e){return a(t[o][1][e]||e)}),l,l.exports,e,t,n,i)}return n[o].exports}for(var r=void 0,o=0;oe.db.version;return i&&(e.version!==t&&console.warn('The database "'+e.name+"\" can't be downgraded from version "+e.db.version+" to version "+e.version+"."),e.version=e.db.version),(a||n)&&(!n||(n=e.db.version+1)>e.version&&(e.version=n),1)}function A(e){return r([function(e){for(var t=e.length,n=new ArrayBuffer(t),i=new Uint8Array(n),a=0;a>4,l[s++]=(15&n)<<4|i>>2,l[s++]=(3&i)<<6|63&a;return r}function W(e){for(var t=new Uint8Array(e),n="",i=0;i>2],n+=N[(3&t[i])<<4|t[i+1]>>4],n+=N[(15&t[i+1])<<2|t[i+2]>>6],n+=N[63&t[i+2]];return t.length%3==2?n=n.substring(0,n.length-1)+"=":t.length%3==1&&(n=n.substring(0,n.length-2)+"=="),n}var H={serialize:function(e,t){var n="";if(e&&(n=B.call(e)),e&&("[object ArrayBuffer]"===n||e.buffer&&"[object ArrayBuffer]"===B.call(e.buffer))){var i,a=L;e instanceof ArrayBuffer?(i=e,a+=M):(i=e.buffer,"[object Int8Array]"===n?a+="si08":"[object Uint8Array]"===n?a+="ui08":"[object Uint8ClampedArray]"===n?a+="uic8":"[object Int16Array]"===n?a+="si16":"[object Uint16Array]"===n?a+="ur16":"[object Int32Array]"===n?a+="si32":"[object Uint32Array]"===n?a+="ui32":"[object Float32Array]"===n?a+="fl32":"[object Float64Array]"===n?a+="fl64":t(new Error("Failed to get type for BinaryArray"))),t(a+W(i))}else if("[object Blob]"===n)(n=new FileReader).onload=function(){var n="~~local_forage_type~"+e.type+"~"+W(this.result);t(L+k+n)},n.readAsArrayBuffer(e);else try{t(JSON.stringify(e))}catch(n){console.error("Couldn't convert value into a JSON string: ",e),t(null,n)}},deserialize:function(e){if(e.substring(0,R)!==L)return JSON.parse(e);var t,n=e.substring(x),i=e.substring(R,x);i===k&&C.test(n)&&(t=(e=n.match(C))[1],n=n.substring(e[0].length));var a=U(n);switch(i){case M:return a;case k:return r([a],{type:t});case"si08":return new Int8Array(a);case"ui08":return new Uint8Array(a);case"uic8":return new Uint8ClampedArray(a);case"si16":return new Int16Array(a);case"ur16":return new Uint16Array(a);case"si32":return new Int32Array(a);case"ui32":return new Uint32Array(a);case"fl32":return new Float32Array(a);case"fl64":return new Float64Array(a);default:throw new Error("Unkown type: "+i)}},stringToBuffer:U,bufferToString:W};function F(e,t,n,i){e.executeSql("CREATE TABLE IF NOT EXISTS "+t.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],n,i)}function G(e,t,n,i,a,r){e.executeSql(n,i,a,(function(e,o){o.code===o.SYNTAX_ERR?e.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[t.storeName],(function(e,s){s.rows.length?r(e,o):F(e,t,(function(){e.executeSql(n,i,a,r)}),r)}),r):r(e,o)}),r)}function K(e,t,n,i){var a=this;e=d(e);var r=new o((function(r,o){a.ready().then((function(){var s=t=void 0===t?null:t,l=a._dbInfo;l.serializer.serialize(t,(function(t,d){d?o(d):l.db.transaction((function(n){G(n,l,"INSERT OR REPLACE INTO "+l.storeName+" (key, value) VALUES (?, ?)",[e,t],(function(){r(s)}),(function(e,t){o(t)}))}),(function(t){t.code===t.QUOTA_ERR&&(0 '__WebKitDatabaseInfoTable__'",[],(function(t,n){for(var i=[],r=0;r{let i;e.exports="function"==typeof queueMicrotask?queueMicrotask.bind("undefined"!=typeof window?window:n.g):e=>(i=i||Promise.resolve()).then(e).catch((e=>setTimeout((()=>{throw e}),0)))},967:(e,t,n)=>{e.exports=function(e,t,n){if("number"!=typeof t)throw new Error("second argument must be a Number");let a,r,o,s,l,d,c=!0;function u(e){function t(){n&&n(e,a),n=null}c?i(t):t()}function g(t,n,i){if(a[t]=i,n&&(l=!0),0==--o||n)u(n);else if(!l&&d{var i=n(570),a=n(171);(n=a).v1=i,n.v4=a,e.exports=n},327:e=>{for(var t=[],n=0;n<256;++n)t[n]=(n+256).toString(16).substr(1);e.exports=function(e,n){var i=n||0;return[(n=t)[e[i++]],n[e[i++]],n[e[i++]],n[e[i++]],"-",n[e[i++]],n[e[i++]],"-",n[e[i++]],n[e[i++]],"-",n[e[i++]],n[e[i++]],"-",n[e[i++]],n[e[i++]],n[e[i++]],n[e[i++]],n[e[i++]],n[e[+i]]].join("")}},217:e=>{var t,n,i="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);i?(t=new Uint8Array(16),e.exports=function(){return i(t),t}):(n=new Array(16),e.exports=function(){for(var e,t=0;t<16;t++)0==(3&t)&&(e=4294967296*Math.random()),n[t]=e>>>((3&t)<<3)&255;return n})},570:(e,t,n)=>{var i,a,r=n(217),o=n(327),s=0,l=0;e.exports=function(e,t,n){var d=t&&n||0,c=t||[],u=(e=e||{}).node||i,g=void 0!==e.clockseq?e.clockseq:a;null!=u&&null!=g||(m=r(),null==u&&(u=i=[1|m[0],m[1],m[2],m[3],m[4],m[5]]),null==g&&(g=a=16383&(m[6]<<8|m[7])));var h=void 0!==e.msecs?e.msecs:(new Date).getTime(),m=(n=void 0!==e.nsecs?e.nsecs:l+1,h-s+(n-l)/1e4);if(m<0&&void 0===e.clockseq&&(g=g+1&16383),1e4<=(n=(m<0||s>>24&255,c[d++]=n>>>16&255,c[d++]=n>>>8&255,c[d++]=255&n,h=h/4294967296*1e4&268435455,c[d++]=h>>>8&255,c[d++]=255&h,c[d++]=h>>>24&15|16,c[d++]=h>>>16&255,c[d++]=g>>>8|128,c[d++]=255&g;for(var p=0;p<6;++p)c[d+p]=u[p];return t||o(c)}},171:(e,t,n)=>{var i=n(217),a=n(327);e.exports=function(e,t,n){var r=t&&n||0;"string"==typeof e&&(t="binary"===e?new Array(16):null,e=null);var o=(e=e||{}).random||(e.rng||i)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,t)for(var s=0;s<16;++s)t[r+s]=o[s];return t||a(o)}}},t={};function n(i){var a=t[i];return void 0!==a||(a=t[i]={exports:{}},e[i](a,a.exports,n)),a.exports}n.d=(e,t)=>{for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};(()=>{"use strict";n.r(i),n.d(i,{exportForTesting:()=>Ga,initializeLaunchSequence:()=>Ua});var e=n(483);const t="initData",a="browserDetails",r="unifiedLogs",o="hasUserLoggedOut",s={USER_DATA:"USER_DATA",PUSH_TOKEN:"PUSH_TOKEN",SUBSCRIPTION_DETAILS:"SUBSCRIPTION_DETAILS",SETUP_TIME:"SETUP_TIME",OPT_IN_SHOWN_TIME:"OPT_IN_SHOWN_TIME",OPTED_STATUS_TRACK_TIME:"OPTED_STATUS_TRACK_TIME",SOFT_ASK_STATUS:"SOFT_ASK_STATUS",HARD_ASK_STATUS:"HARD_ASK_STATUS",WEB_SETTINGS:"WEB_SETTINGS",GRACEFUL_DATA:"GRACEFUL_DATA",Q:{PREFIX:"Q",REPORT:"REPORT",DEVICE:"DEVICE"},INIT_DATA:"INIT_DATA",OLD_SDK:{USER_DATA:"moengage_data",SUBSCRIPTION_DETAILS:"MOE_PUSH_ENDPOINT",PUSH_TOKEN:"MOE_PUSH_TOKEN"},BROWSER_DETAILS:"browserDetails",SESSION:"SESSION",DEVICE_DATA:"DEVICE_DATA",IDENTITY_MAP:"IDENTITY_MAP",SDK_VERSION:"SDK_VERSION",SDK_DISABLED:"SDK_DISABLED"},l=2,d="COOKIE_SHARING",c="MOE_WEB_UNSUBSCRIBED",u="EVENT_ACTION_WEB_SESSION_START",g="MOE_PAGE_VIEWED",h="MOE_WEB_OPTIN_BANNER_LOAD",m="MOE_WEB_OPTIN_CLOSED",p="MOE_WEB_OPTIN_ACCEPTED",v="MOE_OPT_IN_SHOWN",f="MOE_OPT_IN_ALLOWED",S="MOE_OPT_IN_DISMISSED",E="MOE_OPT_IN_BLOCKED",y="MOE_OPT_IN_ATTEMPT",b="MOE_LOGOUT",_="EVENT_ACTION_DEVICE_ATTRIBUTE",T="MOE_PUSH_PERMISSION_STATE_ALLOWED",I="MOE_PUSH_PERMISSION_STATE_BLOCKED",A="MOE_PAGE_EXIT",w="MOE_PAGE_SCROLL",D="MOE_PAGE_URL_EVENT",O="USER_ATTRIBUTE_UNIQUE_ID",P="USER_ATTRIBUTE_USER_EMAIL",N="USER_ATTRIBUTE_USER_NAME",C="USER_ATTRIBUTE_USER_FIRST_NAME",L="USER_ATTRIBUTE_USER_LAST_NAME",R="USER_ATTRIBUTE_USER_MOBILE",M="USER_ATTRIBUTE_USER_GENDER",k="USER_ATTRIBUTE_USER_BDAY",x=["id","first_name","last_name","email","mobile","name","gender","birthday"],B=[O,"USER_ID_MODIFIED_FROM",P,R],U="MOE_LIFECYCLE",W={MOE_INIT:"SDK_INITIALIZED",SETTINGS_FETCHED:"SETTINGS_FETCHED",EVENT_TRACKED:"EVENT_TRACKED",DEVICE_UUID:"DEVICE_UUID",MOE_INIT_COMPLETED:"SDK_INITIALIZATION_COMPLETED",CARDS_INIT:"CARDS_INITIALIZED",SDK_DISABLED:"SDK_DISABLED",SDK_ENABLED:"SDK_ENABLED",OSM_INIT:"OSM_INITIALIZED",WEBP_INIT:"WEBP_INITIALIZED"},H={HARD_ASK_SHOWN:"HARD_ASK_SHOWN",HARD_ASK_DISMISSED:"HARD_ASK_DISMISSED",HARD_ASK_ATTEMPTED:"HARD_ASK_ATTEMPTED",HARD_ASK_ALLOWED:"HARD_ASK_ALLOWED",HARD_ASK_DENIED:"HARD_ASK_DENIED",SOFT_ASK_SHOWN:"SOFT_ASK_SHOWN",SOFT_ASK_DISMISSED:"SOFT_ASK_DISMISSED",SOFT_ASK_ALLOWED:"SOFT_ASK_ALLOWED"},F="USER_LIFECYCLE",G={USER_IDENTITY_UPDATE:"USER_IDENTITY_UPDATE",LOGOUT:"LOGOUT"},K="SPA",j={PAGE_CHANGED:"PAGE_CHANGED"},V={code:1e3,reason:"Web push not supported in current browser environment"},z={code:1001,reason:"Registering the service worker failed"},Y={code:1002,reason:"Web push settings not configured"},q={code:1004,reason:"Hard ask was dismissed to many times"},$={code:1005,reason:"Service worker can not be registered on this page due to scope issues"},J="https://media.giphy.com/media/KDRv3QggAjyo/giphy.gif",X={DC_1:"sdk-01.moengage.com",DC_2:"sdk-02.moengage.com",DC_3:"sdk-03.moengage.com",DC_4:"sdk-04.moengage.com",DC_5:"sdk-05.moengage.com",DC_6:"sdk-06.moengage.com",DC_100:"sdk-100.moengage.com",EU:"sdk-02.moengage.com",IN:"sdk-03.moengage.com"},Q={MOE_DASHBOARD:"https://dashboard.moengage.com",WEBSDK_DOCS:"https://developers.moengage.com/hc/en-us/articles/360060713252-Web-SDK-Integration",SELF_HANDLED_DOCS:"https://developers.moengage.com/hc/en-us/articles/360061219351-Configure-Self-Handled-Opt-In"},Z="Dashboard --\x3e Settings --\x3e Channel --\x3e Push",ee="SESSION",te="moe_tracking",ne="events",ie="batched_events",ae="moe_database",re="moe_data",oe="moe_uuid",se="MoengagePageEventHistoryManager",le={HOST_1:"https://sdk-01.moengage.com/",HOST_2:"https://sdk-02.moengage.com/",HOST_3:"https://sdk-03.moengage.com/",HOST_4:"https://sdk-04.moengage.com/",HOST_5:"https://sdk-05.moengage.com/",HOST_6:"https://sdk-06.moengage.com/",HOST_100:"https://sdk-100.moengage.com/",API:{META:"v3/campaigns/inapp/live",CAMPAIGN_PAYLOAD:"v3/campaigns/inapp/live/",DRAFT_CAMPAIGN_PAYLOAD:"v3/campaigns/inapp/test/",STATS:"v3/campaigns/inapp/live/stats",CAMPAIGNS_PAYLOAD:"v3/campaigns/inapp/live/campaigns"},DRAFT_CAMPAIGN_TPYES:{WEB_PERSONALIZATON:"web_personalization",ONSITE_MESSAGING:"onsite_messaging"},META_REFRESH_TIME:9e5,DATABASE_NAME:"moe_onsite",OSM_MODULE:"moeOnsite",DELIVERY_FUNNEL:{ATTEMPTED:{CAMPAIGN_ATTEMPTED:"ATM"},PRIORITIZED:{CAMPAIGN_PRIORITY_HIGH_PRIORITY_CAMPAIGN_AVAILABLE:"PRT_HIGH_PRT_CMP_AVL",CAMPAIGN_PRIORITY_MAX_TIMES_SHOWN:"PRT_MAX_TIM_SWN",CAMPAIGN_PRIORITY_MIN_DELAY:"PRT_MIN_DEL",CAMPAIGN_PRIORITY_GLOBAL_DELAY:"PRT_GBL_DEL",CAMPAIGN_PRIORITY_EXPIRED:"PRT_EXP"},DELIVERED:{CAMPAIGN_DELIVERED_API_FAILURE:"DLV_API_FLR",CAMPAIGN_DELIVERED_MANDATORY_PARAMS_MISSING:"DLV_MAND_PARM_MIS"},IMPRESSION:{CAMPAIGN_IMPRESSION_URL_CHANGED:"IMP_URL_CHG",CAMPAIGN_IMPRESSION_GLOBAL_DELAY:"IMP_GBL_DEL",CAMPAIGN_IMPRESSION_MAX_TIMES_SHOWN:"IMP_MAX_TIM_SHW",CAMPAIGN_IMPRESSION_ANOTHER_CAMPAIGN_VISIBLE:"IMP_ANTR_CMP_VISB",CAMPAIGN_IMPRESSION_CANCEL_BEFORE_DELAY:"IMP_CNCL_BFR_DEL"},EVALUATION:{CAMPAIGN_EVALUATION_PATH_TIME_EXPIRED:"EVL_PATH_TIME_EXP",CAMPAIGN_EVALUATION_USER_NOT_ON_APP:"EVL_USER_NOT_ON_APP"}},STORES:{CAMPAIGNS_META:{NAME:"campaigns_meta"},CAMPAIGNS_TAGS:{NAME:"campaigns_tags"},CAMPAIGNS_STATS:{NAME:"campaigns_stats"},EXIT_INTENT_CAMPAIGN_STORE:{NAME:"exit_intent"},SERVICE_META:{NAME:"service_meta",KEYS:{LAST_META_CALL_TIME:"last_meta_call_time",GLOBAL_DELAY:"global_delay_between_inapps",LAST_INAPP_SHOWN_TIME:"last_inapp_shown",LAST_FETCH_SDK_VERSION:"last_fetch_sdk_version",UNIQUE_ID:"unique_id"}},PENDING_SECONDARY_EVENTS:{NAME:"pending_secondary_events"},PENDING_TIMER_CAMPAIGNS:{NAME:"pending_timer_campaigns"},TRIGGERING_PRIMARY_EVENTS:{NAME:"triggering_primary_events"}},EVENT_NAMES:{OSM:{CLICK:"MOE_ONSITE_MESSAGE_CLICKED",IMPRESSION:"MOE_ONSITE_MESSAGE_SHOWN",DISMISS:"MOE_ONSITE_MESSAGE_DISMISSED",AUTO_DISMIS:"MOE_ONSITE_MESSAGE_AUTO_DISMISS",DELIVERED:"MOE_ONSITE_MESSAGE_DELIVERED",TYPE:"onsite"},WP:{CLICK:"MOE_WEBP_MESSAGE_CLICKED",IMPRESSION:"MOE_WEBP_MESSAGE_SHOWN",DISMISS:"MOE_WEBP_MESSAGE_DISMISSED",DELIVERED:"MOE_WEBP_MESSAGE_DELIVERED",TYPE:"webp"}},WEB_HELPER_IFRAME_URL:"https://cdn.moengage.com/webpush/beta/webpushhelper.html",IFRAME_CHANNEL:"inapp_helper",IFRAME_TOPICS:{COOKIE_STORAGE:"COOKIE_STORAGE"},COOKIE_STORAGE:{TEST_DRAFT_TYPE:"moe_inapp_draft_type",TEST_DRAFT_ID:"moe_inapp_draft_id",TEST_DRAFT_TAG:"moe_inapp_draft_tag",TEST_CAMPAIGN_META:"test_campaign_meta",TEST_TEMPLATE_TYPE:"test_template_type",TEST_VARIATION:"moe_inapp_draft_variation",TEST_LOCALE:"moe_inapp_draft_locale"},CSS_SELECTORS:{CLICK_INAPP:"moe-inapp-click",DISMISS_INAPP:"moe-inapp-close"},EXIT_INTENT:{CONFIG:{SCROLL_DOWN_THRESHOLD:50,SCROLL_UP_THRESHOLD:5,SCROLL_INTERVAL:1e3}},POSITIONED_TEMPLATE:'data-editor-type="MOE_EDITOR"',SIDE_BANNER:'data-template-type="SIDE_BANNER"',PUSH_BANNER:"moe-osm-pusher",GCG_ERROR_CODE:"E001",SCROLL_CAMPAIGN_THROTTLING_TIME:1500},de={CARDS:{name:"CARDS",src:"https://cdn.moengage.com/release/dc_3/versions/2.56.0/moe_webSdk_cards.min.latest.js",windowLocation:"moeCards"}},ce="moe_database",ue={NAME:"offline_data"},ge="v2/sdk/report/",he=15e3,me="number",pe={TOPIC:"MOE_AUTOMATED_EVENTS",NAMES:[c,u,g,h,m,p,"MOE_USER_SUBSCRIBED",y,v,f,S,E,T,I,b,le.EVENT_NAMES.OSM.CLICK,le.EVENT_NAMES.OSM.IMPRESSION,le.EVENT_NAMES.OSM.DISMISS,le.EVENT_NAMES.OSM.AUTO_DISMIS]},ve=[y],fe="IOS_PERMISSION_DENIED",Se="moe_push_opted",Ee="v1/sdk_logging/",ye="v2/device/add",be="v2/device/token-check",_e="v2/report/add",Te={TV:"tv",TABLET:"tablet",MOBILE:"mobile",WEB:"web"},Ie="User is offline.",Ae=[{moeName:"uid",attributeName:"USER_ATTRIBUTE_UNIQUE_ID",programName:"id"},{moeName:"u_em",attributeName:"USER_ATTRIBUTE_USER_EMAIL",programName:"email"},{moeName:"u_gd",attributeName:"USER_ATTRIBUTE_USER_GENDER",programName:"gender"},{moeName:"u_bd",attributeName:"USER_ATTRIBUTE_USER_BDAY",programName:"birthday"},{moeName:"u_n",attributeName:"USER_ATTRIBUTE_USER_NAME",programName:"name"},{moeName:"u_fn",attributeName:"USER_ATTRIBUTE_USER_FIRST_NAME",programName:"first_name"},{moeName:"u_ln",attributeName:"USER_ATTRIBUTE_USER_LAST_NAME",programName:"last_name"},{moeName:"u_mb",attributeName:"USER_ATTRIBUTE_USER_MOBILE",programName:"mobile"}],we=["Google Chrome","Mozilla Firefox","Opera","Apple Safari","Edge"],De="identifiers",Oe=["moe-card=1"],Pe=[s.DEVICE_DATA],Ne="moe-floating-icon-iframe",Ce="moe-floating-icon";function Le(e,t,n){return null!=e&&t?(e=e[(t=Array.isArray(t)?t:t.split("."))[0]])&&1{Ue.log(e,t,n,...i)}))}static remoteLogTracking(e,t,n,i,...a){ke.log(t,n,i,...a),this.log(e,n,i,...a)}static error(e,t,n,...i){var a;null!==(a=i[i.length-1])&&void 0!==a&&a.isCached||ke.log("error",t,n,...i),e<=Ue.logLevel?console.error("%c "+Ue.logBrand+" %c %c error %c %c "+t+" ",xe,"","color: white; background: #cc0a0a; border-radius: 5px;","",Ue.tagLogStyle,n,...i.slice(0,-1)):Ue.cacheLog((()=>{Ue.error(e,t,n,...i,{isCached:!0})}))}static warn(e,t,n,...i){var a;null!==(a=i[i.length-1])&&void 0!==a&&a.isCached||ke.log("warning",t,n,...i),e<=Ue.logLevel?console.warn("%c "+Ue.logBrand+" %c %c warn %c %c "+t+" ",xe,"","color: white; background: #e8ab51; border-radius: 5px;","",Ue.tagLogStyle,n,...i.slice(0,-1)):Ue.cacheLog((()=>{Ue.warn(e,t,n,...i,{isCached:!0})}))}static customLabel(e,t,n,...i){e<=Ue.logLevel?console.log("%c "+Ue.logBrand+" %c %c "+t+" %c %c "+n+" %c ",xe,"",Ue.tagLogStyle,"","color: white; background: #a400ff; border-radius: 5px;","",...i):Ue.cacheLog((()=>{Ue.customLabel(e,t,n,...i)}))}static image(e,t){e<=Ue.logLevel?console.log("%c+","font-size: 1px; padding: 20px 80px; line-height: 45px; background: url("+t+"); background-size: 160px 90px; color: transparent;"):Ue.cacheLog((()=>{Ue.image(e,t)}))}static releaseAllLogs(){var e=Re.get(r),t=e.length;const n=e;if(Re.set(r,[]),0{let n=t.trim();"%"===n.slice(-1)&&(n+="25");try{return decodeURIComponent(n)}catch(t){return Ue.error(2,e,"Error decoding cookie:",n,t),n}}))}}Ve.baseTag="CookieStorage";const ze="MOE_DATA";class Ye{static setPrefix(e){Ye.prefix=e+"_"}static set(e,t){if(Ye.baseLogTag,e=Ye.prefix+e,localStorage){const n=Ye.getMoeData();n[e]=t,localStorage.setItem(ze,JSON.stringify(n))}var n=Ye.KEYS_SHARED_WITH_COOKIE.indexOf(e);if(Ye.isSharedWithCookie&&0<=n){const i="object"!=typeof t||Array.isArray(t)?t:Object.assign({},t);if(0===n&&Array.isArray(i.attributes)){const e=(null===(n=null===(n=Ye.get(s.WEB_SETTINGS))||void 0===n?void 0:n.configs)||void 0===n?void 0:n.subscriberBasedBillingAttributes)||[];i.attributes=i.attributes.filter((t=>!(!B.includes(t.key)&&!Ke(t.key,e))))}e===s.SUBSCRIPTION_DETAILS&&(i.domain=t.domain,i.token=t.token,i.endpoint=t.endpoint,i.keys=t.keys),Ve.set(e,i)}}static get(e){return Ye.baseLogTag,e=Ye.prefix+e,localStorage?Le(Ye.getMoeData(),e,null):null}static remove(e){var t=Ye.baseLogTag+".remove",n=Ye.prefix+e;if(localStorage&&null!=Ye.get(e)){const i=Ye.getMoeData();delete i[n],localStorage.setItem(ze,JSON.stringify(i)),Ue.log(2,t,"Key",e,"removed.")}Ye.isSharedWithCookie&&0<=Ye.KEYS_SHARED_WITH_COOKIE.indexOf(e)&&Ve.remove(e)}static logout(){const e=["INIT_DATA","Q","WEB_SETTINGS","SUBSCRIPTION_DETAILS","PUSH_TOKEN","GRACEFUL_DATA","DEVICE_DATA","SDK_VERSION","SDK_DISABLED"];for(const t in s)e.indexOf(t)<0&&Ye.remove(s[t]);for(const e in s.Q)qe.purge(e)}static getString(e){if(e=Ye.prefix+e,localStorage)return"string"==typeof(e=Ye.get(e))||e instanceof String?e:JSON.stringify(e)}static removePrefix(){Ye.prefix=""}static copyKeysFromCookie(){for(let n=0;n{var n=e.findIndex((e=>e.key===t.key));0<=n?e[n]=t:e.push(t)}));const i=(null===(t=null===(t=Ye.get(s.WEB_SETTINGS))||void 0===t?void 0:t.configs)||void 0===t?void 0:t.subscriberBasedBillingAttributes)||[];e=e.filter((e=>!((B.includes(e.key)||Ke(e.key,i))&&n.attributes.findIndex((t=>t.key===e.key))<0))),n.attributes=e}}Ye.set(e,n)}}Ye.removeStaleKeysFromLS(),Ye.copyIdentitiesFromCookiesToIDB()}static copyIdentitiesFromCookiesToIDB(){var t,n,i=this.baseLogTag+".copyIdentitiesFromCookiesToIDB",a=Ve.get(s.IDENTITY_MAP);const r=Ve.get(s.USER_DATA),o={};null!=a&&a.userIdentities&&(({userIdentities:t,previousIdentities:a,previousIdentitiesUpdatedTime:n}=a),o.userIdentities=t,o.previousIdentities=a,o.previousIdentitiesUpdatedTime=n),null!==(n=null==r?void 0:r.attributes)&&void 0!==n&&n.length&&r.attributes.find((e=>e.key===O))&&(o.moe_user_id=r.attributes.find((e=>e.key===O)).value),null!==(n=this.moeDataStore)&&void 0!==n&&n.getItem||(this.moeDataStore=e.createInstance({driver:[e.INDEXEDDB],name:"moe_database",storeName:"moe_data"}),this.moeDataStore&&(this.moeDataStore.setItem(De,o),Ue.log(2,i,"Copied identities from cookie to IndexedDB")))}static removeStaleKeysFromLS(){var e=Ye.baseLogTag+".removeStaleKeysFromLS";try{Object.keys(Ye.getMoeData()).forEach((e=>{var t=Ve.get(e);!this.KEYS_SHARED_WITH_COOKIE.includes(e)||Pe.includes(e)||t||!1===t||Ye.remove(e)}))}catch(t){Ue.error(1,e,t)}}static getMoeData(){var e=Ye.baseLogTag+".getMoeData",t=localStorage.getItem(ze);if(null==t)return{};try{return JSON.parse(t)}catch(t){return Ue.error(1,e,t),{}}}}Ye.baseLogTag="PersistentStorage",Ye.prefix="",Ye.isSharedWithCookie=!1,Ye.KEYS_SHARED_WITH_COOKIE=[s.USER_DATA,s.SUBSCRIPTION_DETAILS,s.SOFT_ASK_STATUS,s.PUSH_TOKEN,s.OPT_IN_SHOWN_TIME,s.HARD_ASK_STATUS,s.SESSION,s.DEVICE_DATA,s.IDENTITY_MAP,s.SDK_DISABLED];class qe{constructor(){this.items=[]}static enqueue(e,t){e=qe.getLocalStorageQName(e);let n=new qe;Ye.get(e)&&(n=Ye.get(e)),n.items.push(t),n.items=n.items.slice(Math.max(n.items.length-50,0)),Ye.set(e,n)}static dequeue(e){e=qe.getLocalStorageQName(e);const t=Ye.get(e);let n=null;return t&&0{if(e){var t=e.indexOf("?");if(t<0)return{};const n=(e=e.slice(t+1)).replace("?","").split("&"),i={};return n.forEach((e=>{e=(t=e.split("="))[0];var t=decodeURIComponent(t[1]||"");i[e]?"[object Array]"===Object.prototype.toString.call(i[e])?i[e].push(t):i[e]=[i[e],t]:i[e]=t})),JSON.parse(JSON.stringify(i))}return{}},Qe=(e,t)=>{if(!t)return e;"?"!==e[e.length-1]&&(e+="?");for(const n in t)t.hasOwnProperty(n)&&null!=t[n]&&(e+=n+"="+encodeURIComponent(t[n])+"&");return"&"===e[e.length-1]?e.slice(0,-1):e};class Ze{static get(e,t){return Ze.makeNetworkCall($e.METHODS.GET,e,t)}static post(e,t){return Ze.makeNetworkCall($e.METHODS.POST,e,t)}static makeNetworkCall(e,t,n={}){return new Promise(((i,a)=>{var r=JSON.stringify(Le(n,"postData",null));t=Qe(t,Le(n,"queryParams",null));const o=new XMLHttpRequest;o.open(e,t,!0),Ze.addRequestHeaders(o,Le(n,"headers",{})),o.onreadystatechange=()=>{4===o.readyState&&200===o.status||4===o.readyState&&410===o.status?i({status:o.status,responseText:o.responseText}):4===o.readyState&&200!==o.status&&a({code:o.status,reason:o.responseText})},o.send(r)}))}static addRequestHeaders(e,t){for(const n in t)t.hasOwnProperty(n)&&e.setRequestHeader(n,t[n]);return e}}function et(){const e=navigator.userAgent;return!(!/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(e)&&!/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4)))}function tt(){var e=navigator.userAgent.toLowerCase(),t=/(ipad|tablet|(android(?!.*mobile))|(windows(?!.*phone)(.*touch))|kindle|playbook|silk|(puffin(?!.*(IP|AP|WP))))/.test(e);return/nexus player|neo-x5|adt-2|tsbnettv|roku|tizen|smart-tv.+(samsung)|hbbtv.+maple;(\d+)|(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))|(apple) ?tv|crkey|droid.+aft(\w)( bui|\))|\(dtv[\);].+(aquos)|(aquos-tv[\w ]+)\)|(bravia[\w ]+)( bui|\))|(mitv-\w{5}) bui|Hbbtv.*(technisat) (.*);|\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)|hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)|\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i.test(e)?Te.TV:t?Te.TABLET:et()?Te.MOBILE:Te.WEB}function nt(e,t){const n=t&&new RegExp("^("+t.join("|")+")$");return tt()===Te.TV&&(null!=n&&n.test(e)||!t)?{moe_os_type:function(){var e=navigator.userAgent.toLowerCase();return/tizen/i.test(e)?"Tizen":/web0s/i.test(e)?"WebOS":/xbox/i.test(e)?"Xbox":/vizio/i.test(e)?"viziotv":"SmartTV"}(),os:Te.TV.toUpperCase()}:{}}(En=(En=$e=$e||{}).METHODS||(En.METHODS={})).GET="GET",En.POST="POST";class it{constructor(){this.p=null,this.res=null,this.rej=null;try{this.p=new Promise(((e,t)=>{this.res=e,this.rej=t}))}catch(e){Ue.error(1,"Utils.PromiseObject","Promises not supported")}}}var at=function(e,t,n,i){return new(n=n||Promise)((function(a,r){function o(e){try{l(i.next(e))}catch(e){r(e)}}function s(e){try{l(i.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?a(e.value):((t=e.value)instanceof n?t:new n((function(e){e(t)}))).then(o,s)}l((i=i.apply(e,t||[])).next())}))};class rt{static getIdentityMap(){var e=Ye.get(s.WEB_SETTINGS);return null!=e&&e.isDomainLevelStorage?this.getIdentitiesFromCookies():this.getIdentitiesFromLocalStorage()}static getIdentitiesFromLocalStorage(){var e=Ye.get(s.IDENTITY_MAP);return null!=e&&e.userIdentities?e:null}static getIdentitiesFromCookies(){var e=Ve.get(s.IDENTITY_MAP);if(e&&"object"==typeof e&&e.userIdentities){const t={userIdentities:e.userIdentities};return e.previousIdentities&&(t.previousIdentities=e.previousIdentities,t.previousIdentitiesUpdatedTime=e.previousIdentitiesUpdatedTime),t}return null}static getUserIdentities(){var e=this.getIdentityMap();return null!=e&&e.userIdentities?e.userIdentities:null}static updateCurrentUserIdentities(e){return at(this,void 0,void 0,(function*(){let t;var n=this.getIdentityMap();t=null!=n&&n.userIdentities?Object.assign(Object.assign({},n),{userIdentities:Object.assign(Object.assign({},n.userIdentities),e)}):(this.createIdentityMap(),Object.assign(Object.assign({},this.getIdentityMap()),{userIdentities:e})),Ye.set(s.IDENTITY_MAP,t),yield this.updateIdentifiersIDB(t)}))}static broadcastUserIdentityUpdate(){var e=this.baseLogTag+".broadcastUserIdentityUpdate";Ue.log(1,e,"User Identities Updated."),wt.broadcastToWindow({topic:F,name:G.USER_IDENTITY_UPDATE})}static broadcastLogout(){wt.broadcastToWindow({topic:F,name:G.LOGOUT})}static updatePreviousUserIdentities(e,t){return at(this,void 0,void 0,(function*(){let n;var i,a=this.getIdentityMap();n=null!=a&&a.userIdentities?(i=(null==a?void 0:a.previousIdentities)||{},Object.assign(Object.assign({},a),{previousIdentities:Object.assign(Object.assign({},i),e),previousIdentitiesUpdatedTime:t||(new Date).getTime()})):(this.createIdentityMap(),Object.assign(Object.assign({},this.getIdentityMap()),{previousIdentities:e,previousIdentitiesUpdatedTime:t||(new Date).getTime()})),Ye.set(s.IDENTITY_MAP,n),yield this.updateIdentifiersIDB(n)}))}static updateIdentifiersIDB(t){var n;return at(this,void 0,void 0,(function*(){var i;null!==(n=this.moeDataStore)&&void 0!==n&&n.getItem||(this.moeDataStore=e.createInstance({driver:[e.INDEXEDDB],name:ae,storeName:re})),this.moeDataStore&&(Object.keys(t).length?(i=(yield this.moeDataStore.getItem(De))||{},yield this.moeDataStore.setItem(De,Object.assign(Object.assign({},i),t))):yield this.moeDataStore.setItem(De,t))}))}static copyUidIntoIdentityMap(e){var t=this.baseLogTag+".copyUidIntoIdentityMap";(e=e.getAttribute("id"))&&(this.updateCurrentUserIdentities({uid:e}),Ue.log(1,t,"UID copied into IdentityMap."))}static getIdentifiersFromIdentities(){var{userIdentities:e,previousIdentities:t,previousIdentitiesUpdatedTime:n}=this.getIdentityMap()||{};const i={};return e&&Object.keys(e).length&&(i.userIdentities=e),0-1!==n.indexOf(e)))&&n.every((n=>ot(e[n],t[n])))}rt.baseLogTag="IdentityMethods";class st{constructor(e,t,n){this.os="web",this.osPlatform=e.userAgent,this.isMobile=et(),this.os=et()?"mweb":"web",this.name=st.getBrowserName(e.userAgent,t),this.isIncognito=n}static getInstance(){return function(e,t,n,i){return new(n=n||Promise)((function(t,a){function r(e){try{s(i.next(e))}catch(e){a(e)}}function o(e){try{s(i.throw(e))}catch(e){a(e)}}function s(e){var i;e.done?t(e.value):((i=e.value)instanceof n?i:new n((function(e){e(i)}))).then(r,o)}s((i=i.apply(e,[])).next())}))}(this,0,void 0,(function*(){if(null!=Re.get(a))return Re.get(a);var e=yield st.isIncognito(window),t=new st(navigator,document,e);return Re.set(a,t),(e=Ye.get(s.BROWSER_DETAILS))&&st.isBrowserUpdated(e,t)||Ye.set(a,t),t}))}static isIncognito(e){const t=e.RequestFileSystem||e.webkitRequestFileSystem;return new Promise((n=>{t?t(e.TEMPORARY,100,(()=>{n(!1)}),(()=>{n(!0)})):n(!1)}))}static getBrowserName(e,t){return-1!==e.indexOf("MSIE")||1==t.documentMode?st.BROWSER_NAMES.INTERNET_EXPLORER:-1new Promise(((e,t)=>{try{var n=JSON.parse(localStorage.getItem("MOE_DATA"));n&&n.WEB_SETTINGS&&n.WEB_SETTINGS.configs&&e(n.WEB_SETTINGS),t("Error in getting sdk settings from localstorage - no data found")}catch(e){Ue.error(1,"getSDKSettings","Error in getting sdk settings from localstorage ",e),t(e)}})),ct=()=>new Promise(((e,t)=>{try{var n=JSON.parse(localStorage.getItem("MOE_DATA"));return n&&n.INIT_DATA&&e(n.INIT_DATA),{}}catch(e){Ue.error(1,"getSDKSettings","Error in getting init data from localstorage ",e),t(e)}}));class ut{constructor(e,t){this.key=e,this.value=t,this.updated_at=(new Date).getTime()}static equal(e,t){return e.key===t.key&&JSON.stringify(e.value)===JSON.stringify(t.value)}}var gt=function(e,t,n,i){return new(n=n||Promise)((function(a,r){function o(e){try{l(i.next(e))}catch(e){r(e)}}function s(e){try{l(i.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?a(e.value):((t=e.value)instanceof n?t:new n((function(e){e(t)}))).then(o,s)}l((i=i.apply(e,t||[])).next())}))};let ht=null;class mt{constructor(e){this.attributes=[],this.subscribedToOldSdk=!1,null==e?(this.deviceUuid=(0,Je.v4)(),this.attributes=[],this.deviceAdded=!1):(this.deviceUuid=Le(e,"deviceUuid",(0,Je.v4)()),this.attributes=Le(e,"attributes",[]),this.deviceAdded=Le(e,"deviceAdded",!1))}addAttribute(e){const t=mt.baseLogTag+".addAttribute";return new Promise((n=>gt(this,void 0,void 0,(function*(){let i=!0;e.key=mt.getMorphedKey(e.key);let a=-1;for(let t=this.attributes.length-1;0<=t;t--)e.key===this.attributes[t].key&&(a=t);0<=a?(ot(this.attributes[a].value,e.value)&&(Ue.log(2,t,"Duplicate attribute found: ",e),i=yield this.isAttibuteTrackingRequired(this.attributes[a].updated_at)),i&&(this.attributes[a].value=e.value,this.attributes[a].updated_at=(new Date).getTime())):(Ue.log(2,t,"Adding attribute:",e),this.attributes.push(e)),this.save().then((()=>{n(i)}))}))))}isAttibuteTrackingRequired(e){return gt(this,void 0,void 0,(function*(){var t=yield dt();if(null===t.configs.userAttributeCacheTime)return!0;var n=(new Date).getTime()-e;return Math.round(n/1e3)>t.configs.userAttributeCacheTime}))}static getLocalUser(){const e=mt.baseLogTag+".getLocalUser";return new Promise((t=>{var n;Ye.get(s.USER_DATA)?(Ue.log(2,e,"Found user in localstorage"),n=Ye.get(s.USER_DATA),t(new mt(n))):t(null)}))}static getCookieUser(){return new Promise((e=>{var t=mt.baseLogTag+".getLocalUser";Ve.get(s.USER_DATA)?(Ue.log(2,t,"Found user in cookie"),t=Ve.get(s.USER_DATA),e(new mt(t))):e(null)}))}static getMigrationUser(){const e=mt.baseLogTag+".getLocalUser";return new Promise((t=>{var n=localStorage.getItem(s.OLD_SDK.USER_DATA);if(n)try{var i=JSON.parse(n);if(i.is_new_sdk_migrated)t(null);else{const e=new mt({deviceAdded:Le(i,"device_add",!1),deviceUuid:Le(i,"uuid",(0,Je.v4)())}),n=Le(i,"user_attrs",{});for(const t in n)n.hasOwnProperty(t)&&e.attributes.push(new ut(t,n[t]));var a=localStorage.getItem(s.OLD_SDK.PUSH_TOKEN);null!=a&&"NA"!==a&&"null"!==a&&(e.subscribedToOldSdk=!0),t(e)}}catch(n){Ue.error(1,e,"Error getting the migration user. Resolving as a new user."),Ue.error(1,e,n),t(null)}else t(null)}))}static getSync(){return mt.instance}static get(){const e=mt.baseLogTag+".get";return null!=ht||(ht=new Promise((t=>{lt.getInstance().then((n=>{dt().then((n=>{var i=mt.getLocalUser(),a=n.isDomainLevelStorage?mt.getCookieUser():"resolved",r=mt.getMigrationUser();Promise.all([i,a,r]).then((i=>{const a=i[0],r=i[1],o=i[2];i=()=>{var i;if(r&&"resolved"!==r)Ue.log(1,e,"User resolved from cookie: ",r),r.save().then((e=>{t(e)}));else{Ue.log(1,e,"Local user: ",a);const r=new mt(a);n.isPushSubBilling&&(null!==(i=Ye.get(s.SUBSCRIPTION_DETAILS))&&void 0!==i&&i.token||function(e,t){const n=[P,R,...t];return 0n.includes(e.key))).length||!!bt()}(r.attributes,null==n?void 0:n.configs.subscriberBasedBillingAttributes)?(r.deviceAdded=!0,en.trackDeviceAttributes()):r.deviceAdded=!1),r.save().then((e=>{t(e)}))}},o?o.save().then((n=>{var i=localStorage.getItem(s.OLD_SDK.USER_DATA);if(i){const e=JSON.parse(i);e.is_new_sdk_migrated=!0,localStorage.setItem(s.OLD_SDK.USER_DATA,JSON.stringify(e))}Ue.log(1,e,"User resolved from older SDK: ",n),t(n)})):i()})).catch((t=>{Ue.log(1,e,"Error in fetching/creating user",t)}))})).catch((t=>{Ue.error(1,e,"Error in getting Web SDK Settings. This might indicate that the App is blocked.",t)}))}))}))),ht}static logout(){return new Promise((e=>{ht=null,this.instance=null,window.MoeWebP&&(window.MoeWebP.deviceUuid=null),e(!0)}))}save(){var e;mt.baseLogTag,mt.isAmpEnabled()&&(this.deviceUuid=Ve.get("moe_uuid")),Ye.get("WEB_SETTINGS");var t=Ye.get(s.WEB_SETTINGS);return null!=t&&t.configs.isWebPersonalizationModuleEnabled&&null!==(e=window.MoeWebP)&&void 0!==e&&e.deviceUuid&&this.deviceUuid!==window.MoeWebP.deviceUuid&&(this.deviceUuid=window.MoeWebP.deviceUuid),mt.instance=this,new Promise((e=>{Ye.set(s.USER_DATA,this),Ve.setRaw(oe,mt.instance.deviceUuid),e(this)}))}static isAmpEnabled(){const e=Ve.get(oe);return e&&e.includes("amp")}getAttribute(e){let t=null;return e=mt.getMorphedKey(e),this.attributes.map((n=>{n.key===e&&(t=n.value)})),t}indexOfAttribute(e){let t=-1;return e=mt.getMorphedKey(e),this.attributes.map(((n,i)=>{n.key===e&&(t=i)})),t}static getMorphedKey(e){switch(e){case"id":e=O;break;case"email":e=P;break;case"name":e=N;break;case"first_name":e=C;break;case"last_name":e=L;break;case"mobile":e=R;break;case"gender":e=M;break;case"birthday":e=k}return e}}mt.baseLogTag="UserModel",mt.isResolved=!1,mt.instance=null;var pt=function(e,t,n,i){return new(n=n||Promise)((function(a,r){function o(e){try{l(i.next(e))}catch(e){r(e)}}function s(e){try{l(i.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?a(e.value):((t=e.value)instanceof n?t:new n((function(e){e(t)}))).then(o,s)}l((i=i.apply(e,t||[])).next())}))};function vt(e){e=(e+"=".repeat((4-e.length%4)%4)).replace(/\-/g,"+").replace(/_/g,"/");const t=atob(e),n=new Uint8Array(t.length);for(let e=0;e>18,s=(258048&c)>>12,l=(4032&c)>>6,d=63&c,t+=n[o]+n[s]+n[l]+n[d];return 1==e?(c=i[r],o=(252&c)>>2,s=(3&c)<<4,t+=n[o]+n[s]+"=="):2==e&&(c=i[r]<<8|i[1+r],o=(64512&c)>>10,s=(1008&c)>>4,l=(15&c)<<2,t+=n[o]+n[s]+n[l]+"="),t}function St(e){return e.replace(/[\uff0e]/g,".")}function Et(e){return new Date(Date.parse(e))}function yt(e){var t;let n=e;return e=We.get(),"string"==typeof n&&n.length&&null!==(t=null==e?void 0:e.proxyDomains)&&void 0!==t&&t.api&&(e.proxyDomains.cdnApp&&(n=n.replace(/app-cdn\.moengage\.com/gi,e.proxyDomains.cdnApp)),e.proxyDomains.cdnScript&&(n=n.replace(/cdn\.moengage\.com/gi,e.proxyDomains.cdnScript)),e.proxyDomains.cdnImage&&(n=n.replace(/image\.moengage\.com/gi,e.proxyDomains.cdnImage))),n}function bt(){if(!Re.get(o)){const e=Xe(window.location.href);return e.moe_aid&&!e.moe_aid.includes("{{")?e.moe_aid:void 0}}function _t(){var e=!!We.get().disableSdk;let t=!1;return t=(Tt()?Ve:Ye).get(s.SDK_DISABLED),!(t||e&&!1!==t)}function Tt(){var e=Ye.get(s.WEB_SETTINGS);return null!=e&&e.isDomainLevelStorage}function It(e){return null!=e&&"NA"!==e&&""!==e&&"null"!==e}class At{static getListeners(){return this.listeners}static getTopicListeners(e){return Le(At.topicListeners,e,[])}static addListener(e){At.listeners.push(e)}static addTopicListener(e,t){At.topicListeners[e]=At.getTopicListeners(e),At.topicListeners[e].push(t)}static broadcast(e){At.listeners.map((t=>{t(e)})),Le(At.topicListeners,e.topic,[]).map((t=>{t(e)}))}static broadcastToWindow(e,t=!1){window&&(t||_t())&&window.dispatchEvent(new CustomEvent(e.topic,{detail:{name:e.name,data:e.data||null}}))}static deprecatedSdkCallback(e){window.dispatchEvent(new CustomEvent("MOE_OPT_IN",{detail:e}))}static resetAllListeners(){At.listeners=[],At.topicListeners={}}static resetListeners(){At.listeners=[]}}At.listeners=[],At.topicListeners={};const wt=At,Dt=e=>e===c||e===I;function Ot(){wt.broadcastToWindow({topic:U,name:W.MOE_INIT_COMPLETED})}const Pt=e=>{let t;try{t=JSON.stringify(e)}catch(e){return!1}return new Blob([t]).size/1024>195};function Nt(e){return`Event "${e}" can't get tracked as its size is more than 195 KB. Max permissible event size is 195 KB.`}const Ct=e=>"string"==typeof e,Lt=e=>"[object Date]"===Object.prototype.toString.call(e);class Rt{initiateSessionAndSource(e){return new Promise(((t,n)=>{this.isSessionRunning()&&this.isCurrentSourceSameAsPreviousSource()||this.startNewSession(e),t(!0)}))}clearSessionAndSource(){Ye.remove(ee)}isSessionRunning(){return this.getSessionKey()&&!this.isSessionExpired()}isSessionExpired(){var e=this.getSessionExpiryTime(),t=Re.get("wasBrowserInactive");return!(!t&&null!==t)&&(this.isWindowActive()&&Re.set("wasBrowserInactive",!1),(new Date).getTime()>e)}isNonEventInteractive(e){return Rt.NON_INTERACTIVE_EVENTS.includes(e.name)||0"moe_non_interactive"===e.key&&1===e.value)).length}getCurrentSource(){const e=Xe(window.location.href);let t="";const n={};if(Object.keys(e).includes("utm_source")){t="utm_",this.geCustomIdentifiersToTrack().forEach((t=>{e[t]&&(n[t]=e[t])}));const i={source_url:window.location.href};return e[t+"source"]&&(i.source=e[t+"source"]),e[t+"medium"]&&(i.medium=e[t+"medium"]),e[t+"term"]&&(i.term=e[t+"term"]),e[t+"campaign"]&&(i.campaign_name=e[t+"campaign"]),e[t+"content"]&&(i.content=e[t+"content"]),e.utm_id&&(i.campaign_id=e.utm_id),Object.keys(n).length&&(i.extra=n),i}}getActiveSource(){return this.getSavedSource()||this.getCurrentSource()}isSourceOrganic(){const e=Xe(window.location.href),t=Object.keys(e);let n=!1;return this.geCustomIdentifiersToTrack().forEach((t=>{e[t]&&(n=!0)})),!t.includes("utm_source")&&!t.includes("source")&&!n}setCurrentSource(e){const t=this.getSession()||{};t.currentSource=e,Ye.set(ee,t)}removeCurrentSource(){const e=this.getSession();e&&(e.currentSource=void 0,Ye.set(ee,e))}getSavedSource(){var e=Le(this.getSession(),"currentSource",void 0);if(e)return e}isCurrentSourceSameAsPreviousSource(){if(this.isSourceOrganic())return!0;const e=Object.assign({},this.getCurrentSource());delete e.source_url;const t=Object.assign({},this.getSavedSource());return delete t.source_url,ot(e,t)}getSessionKey(){return Le(this.getSession(),"sessionKey",null)}getSessionStartTime(){return Le(this.getSession(),"sessionStartTime",null)}getSessionExpiryTime(){return Le(this.getSession(),"sessionExpiryTime",null)}getSessionMaxTime(){return Le(this.getSession(),"sessionMaxTime",null)}getSession(){return Ye.get(ee)}geCustomIdentifiersToTrack(){return Le(this.getSession(),"customIdentifiersToTrack",[])||[]}generateSessionKey(){return(0,Je.v4)()}startNewSession(e){this.removeCurrentSource();var t=this.getNumberOfSessions();t={sessionKey:this.generateSessionKey(),sessionStartTime:(new Date).toISOString(),sessionMaxTime:e.configs.sessionInactiveDuration,customIdentifiersToTrack:e.configs.sourceExtraParams,sessionExpiryTime:(new Date).getTime()+1e3*e.configs.sessionInactiveDuration,numberOfSessions:++t},Ye.set(ee,t)}extendSession(){const e=this.getSession();e&&(e.sessionExpiryTime=(new Date).getTime()+1e3*e.sessionMaxTime,Ye.set(ee,e))}handleBrowserInactivity(e){"hidden"===e&&Re.set("wasBrowserInactive",!0)}isWindowActive(){return!!Re.get("isWindowActive")}getNumberOfSessions(){return Le(Ye.get(ee),"numberOfSessions")||0}}function Mt(e){const t=e?new Date(e):new Date;return`${t.getDate()}:${t.getMonth()+1}:${t.getFullYear()}:${t.getHours()}:${t.getMinutes()}:`+t.getSeconds()}function kt(e){return"object"==typeof e&&!Lt(e)}Rt.NON_INTERACTIVE_EVENTS=[h,v,h,b];class xt{constructor(e){this.EVENT_ACTION=e.event.name,this.EVENT_ATTRS=e.event.attributes&&Bt(e.event.attributes),this.EVENT_G_TIME=(new Date).getTime().toString(),this.EVENT_L_TIME=Mt(e.event.timestamp),this.EVENT_ATTRS_CUST=e.postData.c,this.N_I_E=e.postData.nie}}xt.baseLogTag="ReportAddViewEvent";const Bt=e=>{const t={};return e.forEach((e=>{t[e.key]=e.value})),t};class Ut{static visibilityChange(){"hidden"===document.visibilityState&&(Ut.windowClosed||Vt.reactToTriggerEvents())}static removeEventListeners(){document.removeEventListener("visibilitychange",Ut.visibilityChange,!1)}static addListeners(){document.addEventListener("visibilitychange",Ut.visibilityChange,!1)}}Ut.windowClosed=!1;const Wt=Ut;class Ht{static initialize(){return function(e,t,n,i){return new(n=n||Promise)((function(t,a){function r(e){try{s(i.next(e))}catch(e){a(e)}}function o(e){try{s(i.throw(e))}catch(e){a(e)}}function s(e){var i;e.done?t(e.value):((i=e.value)instanceof n?i:new n((function(e){e(i)}))).then(r,o)}s((i=i.apply(e,[])).next())}))}(this,0,void 0,(function*(){if(null==Ht.ready){Ht.offlineDataStore=e.createInstance({driver:[e.INDEXEDDB],name:ce,storeName:ue.NAME});const n=e.createInstance({driver:[e.INDEXEDDB],name:ce,storeName:"moe_data"}),i=e.createInstance({driver:[e.INDEXEDDB],name:ce,storeName:"moe_backup"});var t=[Ht.offlineDataStore.ready(),n.ready(),i.ready()];Ht.ready=Promise.all(t)}return yield Ht.ready}))}}class Ft{static getRemoteLogsBatchRequestOptions(e){return new Promise((t=>{en.collectGetParams().then((n=>{n={query_params:Object.assign(Object.assign({},n),{unique_id:n.unique_id,os:"web"===n.os?"Web":"mWeb"}),logs:[...e]},t(n)}))}))}static sendBatchOfLogs(e){const t=en.baseLogTag+".sendBatchOfLogs";return new Promise(((n,i)=>{Ft.getRemoteLogsBatchRequestOptions(e).then((i=>{var a=(a=ct()).baseDomainName+Ee+i.query_params.os.toLowerCase()+"/"+a.appId;Ze.post(a,{postData:i}).then((()=>{Ue.log(1,t,"[sendBatchOfLogs] batch payload: "+JSON.stringify(e)),Ue.log(1,t,"Batch Remote Logs sent to MoEngage successfully"),Ft.batchRemoteLogsApiRetries=1,n(!0)})).catch((n=>{Ue.log(1,t,"Batch Remote Logs API failed",n),this.handleRemoteLogsFailure(e)}))}))}))}static handleRemoteLogsFailure(e){var t=en.baseLogTag+".handleRemoteLogsFailure";Ue.log(1,t,"Retry Batch Logs Failed API",Ft.batchRemoteLogsApiRetries),Ft.batchRemoteLogsApiRetries<3&&setTimeout((()=>{Ft.batchRemoteLogsApiRetries++,Ft.sendBatchOfLogs(e)}),3e3*Ft.batchRemoteLogsApiRetries)}static sendBeacon(e){Ft.getRemoteLogsBatchRequestOptions(e).then((e=>{var t=(t=ct()).baseDomainName+Ee+e.query_params.os.toLowerCase()+"/"+t.appId+"?"+(new Date).getTime();Ue.log(1,"RemoteLogsApi.sendBeacon","[sendBeacon] Remote Logs batch payload: "+JSON.stringify(e)),navigator.sendBeacon(t,JSON.stringify(e))}))}}Ft.batchRemoteLogsApiRetries=1;var Gt,Kt=function(e,t,n,i){return new(n=n||Promise)((function(a,r){function o(e){try{l(i.next(e))}catch(e){r(e)}}function s(e){try{l(i.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?a(e.value):((t=e.value)instanceof n?t:new n((function(e){e(t)}))).then(o,s)}l((i=i.apply(e,t||[])).next())}))};class jt{static updateEventStore(){tt()!==Te.TV&&e.createInstance({driver:[e.INDEXEDDB,e.WEBSQL,e.LOCALSTORAGE],name:"moe_tracking",storeName:ie}).setItem(ie,jt.reports)}static spliceReports(e=jt.reports.length){return e=jt.reports.splice(0,e),jt.updateEventStore(),e}static spliceRemoteLogs(e=jt.remoteLogs.length){return jt.remoteLogs.splice(0,e)}static suspendBatching(){var e=jt.baseLogTag+".suspendBatching";this.spliceReports(),this.spliceRemoteLogs(),jt.periodicSyncInterval&&jt.clearInterval(),Wt.removeEventListeners(),Ue.log(2,e,"Batching has stopped.")}static shouldCreateNewBatch(){return!jt.lastbatchCreatedAt||(new Date).getTime()-jt.lastbatchCreatedAt>=he}static shouldCreateNewBatchForRemoteLogs(){return!jt.lastRemoteLogsbatchCreatedAt||(new Date).getTime()-jt.lastRemoteLogsbatchCreatedAt>=he}static reactToTriggerEvents(){var e=jt.baseLogTag+".reactToTriggerEvents";0Kt(this,void 0,void 0,(function*(){(jt.isOfflineBatchingSupported(t,e)||e.configs.remoteLogTracking)&&(yield Ht.initialize(),jt.periodicSyncInterval&&jt.clearInterval(),jt.periodicSyncInterval=window.setInterval(jt.periodicSync.bind(this,e.configs.periodicFlushTime),1e3*e.configs.periodicFlushTime),Wt.addListeners())}))))}static sendBatch(e){const t=jt.baseLogTag+".sendBatch";return new Promise((n=>{try{en.sendBatchOfReports(e).then((()=>{jt.lastbatchCreatedAt=(new Date).getTime(),n(!0)}))}catch(e){Ue.error(1,t,"Error in sending batch",e),n(!1)}}))}static sendRemoteLogs(e){const t=jt.baseLogTag+".sendRemoteLogs";return new Promise((n=>{try{Ft.sendBatchOfLogs(e).then((()=>{jt.lastRemoteLogsbatchCreatedAt=(new Date).getTime(),n(!0)}))}catch(e){Ue.error(1,t,"Error in sending batch of remote logs",e),n(!1)}}))}static createBatch(e){0{const i=[];var a=e.key;switch(e.key){case"id":e.key=O;break;case"email":e.key=P;break;case"name":e.key=N;break;case"first_name":e.key=C;break;case"last_name":e.key=L;break;case"mobile":e.key=R;break;case"gender":e.key=M;break;case"birthday":e.key=k}i.push(e),e.key!==a&&Ue.log(2,"Event.createUserAttributeEvent","Key changed to MoE reserved keyname: ",e.key),t(new $t("EVENT_ACTION_USER_ATTRIBUTE",i,!1))}))}static createEvent(e,t,n){return new Promise(((i,a)=>{mt.get().then((a=>function(e,t,n,i){return new(n=n||Promise)((function(t,a){function r(e){try{s(i.next(e))}catch(e){a(e)}}function o(e){try{s(i.throw(e))}catch(e){a(e)}}function s(e){var i;e.done?t(e.value):((i=e.value)instanceof n?i:new n((function(e){e(i)}))).then(r,o)}s((i=i.apply(e,[])).next())}))}(this,0,void 0,(function*(){try{var r=new ut("moe_logged_in_status",!!a.getAttribute("id"));const s=new Rt;var o=new ut("moe_first_visit",s.getNumberOfSessions()<=1);t.push(r,o),i(new $t(e,t,n))}catch(r){Ue.error(1,"Event.createEvent","Error occurred in create events ",r)}}))))}))}}class Jt{static addEvent(e){Jt.history.push(e),Jt.listeners.forEach((t=>{t(e)}))}static getHistory(){return Jt.history}static addEventListener(e){Jt.listeners.push(e)}static clear(){Jt.history=[]}static clearAll(){Jt.history=[],Jt.listeners=[]}}Jt.history=[],Jt.listeners=[];class Xt{static track(e,t,n){const i="MoEngage.event.trackEvent";return new Promise(((a,r)=>function(e,t,n,i){return new(n=n||Promise)((function(t,a){function r(e){try{s(i.next(e))}catch(e){a(e)}}function o(e){try{s(i.throw(e))}catch(e){a(e)}}function s(e){var i;e.done?t(e.value):((i=e.value)instanceof n?i:new n((function(e){e(i)}))).then(r,o)}s((i=i.apply(e,[])).next())}))}(this,0,void 0,(function*(){var r,o;if(!_t())return Ue.warn(2,i,`Not tracking the event "${e}" as Web SDK has been disabled.`),void a(!1);let s;n=!!n;try{s=yield dt()}catch(o){return Ue.warn(1,i,"SDK not yet initialized. Caching event and will track when SDK is initialized.",o),null!==(r=window.moengage_q)&&void 0!==r&&r.push({f:"track_event",a:[e,t]}),void a(!1)}if("string"==typeof e&&e)if(s.configs.blacklistedEvents&&s.configs.blacklistedEvents.includes(e))Ue.error(1,i,`This event "${e}" is blacklisted. Please contact Moengage team to whitelist it.`),a({error:5001,message:`Event "${e}" is blacklisted.`});else if(!ve.includes(e)||s.configs.whitelistedEvents&&s.configs.whitelistedEvents.includes(e))try{const r=[];if(null==t||null!==t&&t===Object(t)&&"[object Object]"===Object.prototype.toString.call(t)){for(const e in t=null==t?{}:t)t.hasOwnProperty(e)&&r.push(new ut(e,t[e]));const i=new Rt;yield i.initiateSessionAndSource(s);const l=yield $t.createEvent(e,r);Jt.addEvent(l),null!=s&&s.configs.isWebPersonalizationModuleEnabled&&null!==(o=window.MoeWebP)&&void 0!==o&&o.handleInSessionEvent(l),en.collectGetParams().then((t=>{Dt(e)&&delete t.push_id;const r=new qt(qt.REPORT_ADD_TYPE.EVENT,t,l);var o={session_id:i.getSessionKey(),start_time:i.getSessionStartTime(),background_initiated:0};const s=[];(t=i.getActiveSource())&&(i.setCurrentSource(t),s.push(t)),r.postData.meta.session=o,s.length&&(r.postData.meta.source=s),i.isNonEventInteractive(l)&&(r.postData.nie=1),en.reportAdd(r,n).then((()=>{i.isNonEventInteractive(l)||i.extendSession(),a(!0)}))}))}else Ue.error(1,i,"Event attributes were not passed a key-value pair object for event: "+e),a({error:5002,message:"Event value needs to be a key-value pair object"})}catch(o){Ue.error(1,i,"Error occurred in tracking events ",o)}else Ue.error(1,i,`This event "${e}" has not been whitelisted. Please contact Moengage team to whitelist it.`),a({error:5001,message:`Event "${e}" is not whitelisted.`});else Ue.error(1,i,"Event name not a string or null or empty string:",e),a({error:5001,message:"Event name can not be null"})}))))}}var Qt,Zt=function(e,t,n,i){return new(n=n||Promise)((function(a,r){function o(e){try{l(i.next(e))}catch(e){r(e)}}function s(e){try{l(i.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?a(e.value):((t=e.value)instanceof n?t:new n((function(e){e(t)}))).then(o,s)}l((i=i.apply(e,t||[])).next())}))};class en{static deviceAdd(){var e=en.baseLogTag+".deviceAdd";return en.isExecutingDeviceAdd?(Ue.warn(2,e,"Device add is already in progress. Skipping this call."),Promise.resolve(!1)):(en.isExecutingDeviceAdd=!0,new Promise(((e,t)=>Zt(this,void 0,void 0,(function*(){if(_t()){const n=We.get();return en.collectGetParams(ye).then((i=>{i={queryParams:i=Object.assign(Object.assign({},i),{url:window.location.href})},Ze.post(n.baseDomainName+ye,i).then((()=>{mt.get().then((e=>{e.deviceAdded=!0,e.save().then((()=>{an.startPeriodicClear(s.Q.REPORT),en.onDeviceAdd.res()}))})).then((()=>{this.trackDeviceAttributes(),en.isExecutingDeviceAdd=!1,e(!0)}))})).catch((e=>{qe.enqueue(s.Q.DEVICE,!0),en.isExecutingDeviceAdd=!1,t(!1)}))}))}e(!1)})))))}static trackDeviceAttributes(){const e=en.baseLogTag+".trackDeviceAttributes";return new Promise(((t,n)=>Zt(this,void 0,void 0,(function*(){try{let t=tt().toUpperCase();t="WEB"===t?"DESKTOP":t,Xt.track(_,{deviceType:t});let n=!1;lt.getInstance().then((t=>{dt().then((i=>Zt(this,void 0,void 0,(function*(){if(He(i,t)){let t=Ye.get(s.PUSH_TOKEN);if(!t)try{const e=Me()||{};let n="";"function"==typeof e.getPermissionState&&(n=yield e.getPermissionState()),"granted"===n&&(t=!0)}catch(t){Ue.error(2,e,"Failed to get push notification permission state.",t)}n=t}})))).then((()=>{Xt.track(_,{[Se]:!!n,source:"deviceAdd"}),Ye.set(s.OPTED_STATUS_TRACK_TIME,Date.now())}))}))}catch(t){Ue.error(2,e,"Failed to track device attributes.",t)}t(null)}))))}static reportAdd(e,t){const n=en.baseLogTag+".reportAdd";return new Promise(((i,a)=>(t=!!t,dt().then((r=>{r.isPushSubBilling?mt.get().then((o=>{o.deviceAdded?en.reportAddInternal(e,t).then((()=>{this.sendBroadcast(e),i(!0)})).catch((()=>{a(!1)})):(qe.enqueue(s.Q.REPORT,e),Ue.log(1,n,"Report added to queue as device not added yet:",e.event.name),Ue.log(2,n,"Event Queued:",e.event.name),e.type===qt.REPORT_ADD_TYPE.USER_ATTRIBUTE&&(Ke(e.event.attributes[0].key,null===(o=null==r?void 0:r.configs)||void 0===o?void 0:o.subscriberBasedBillingAttributes)?(Ue.log(1,n,"Attribute accepted for push sub billing."),en.deviceAdd()):Ue.log(2,n,"Attribute NOT accepted for push sub billing.")),i(!0))})):en.reportAddInternal(e,t).then((()=>{this.sendBroadcast(e),i(!0)})).catch((()=>{a(!1)}))})).catch((e=>{Ue.error(1,n,"Error in getting Web SDK Settings. This might indicate that the App is blocked."),a(!1)})))))}static sendBroadcast(e){pe.NAMES.includes(e.event.name)&&wt.broadcastToWindow({topic:pe.TOPIC,name:e.event.name,data:e.event.attributes})}static getSegmentId(){const e=window.analytics;if(e&&e.user)return e.user().anonymousId()}static getBatchRequestOptions(e){return new Promise((t=>{en.collectGetParams(ge).then((n=>Zt(this,void 0,void 0,(function*(){var i=en.getSegmentId()||"";const a=mt.getSync();var r=We.get();const o=new Rt;var s={session_id:o.getSessionKey(),start_time:o.getSessionStartTime(),background_initiated:0};const l=[];(u=o.getActiveSource())&&(o.setCurrentSource(u),l.push(u));var{userIdentities:d,previousIdentities:c}=yield rt.getIdentifiersFromIdentities(),u={user_identities:d||void 0,previous_identities:c||void 0},c=yield this.getParamsFromCookie();let g=null;const h=Object.assign({},n);null!==c&&"object"==typeof c&&(g=c.moe_user_id,null!==c.push_id&&(h.push_id=c.push_id),null!==c.unique_id&&(h.unique_id=c.unique_id)),r={query_params:h,identifiers:Object.assign(Object.assign({moe_user_id:null!==g?g:a.getAttribute("id")||(null==d?void 0:d.uid)||void 0,segment_id:i||void 0},u),{moe_aid:bt()}),meta:{bid:(0,Je.v4)(),request_time:(new Date).toISOString(),session:s,source:l.length?l:void 0,initiator:null!==(r=null===(r=null==r?void 0:r.proxyDomains)||void 0===r?void 0:r.api)&&void 0!==r&&r.length?"proxy_server":void 0},viewsCount:e.length,viewsInfo:[...e]},t(r)}))))}))}static getParamsFromCookie(){const e=this.baseLogTag+".getMoeUserIdFromCookies",t={moe_user_id:null,unique_id:null,push_id:null};return new Promise((n=>{dt().then((e=>{if(null!=e&&e.isDomainLevelStorage){const n=Ve.get(s.USER_DATA);var i=Ve.get(s.PUSH_TOKEN);n&&(null!==(e=n.attributes)&&void 0!==e&&e.length&&n.attributes.find((e=>e.key===O))?t.moe_user_id=n.attributes.find((e=>e.key===O)).value:t.moe_user_id=void 0,null!==(e=n.deviceUuid)&&void 0!==e&&e.length&&(t.unique_id=n.deviceUuid)),null!=i&&i.length&&It(i)?t.push_id=i:t.push_id=void 0}n(t)})).catch((i=>{Ue.error(2,e,"Error occurred while trying to fetch SDK Settings: ",i),n(t)}))}))}static addReportsToOfflineDB(e,t){return Zt(this,void 0,void 0,(function*(){const n=en.baseLogTag+".addReportsToOfflineDB";var i=yield en.getBatchRequestOptions([]);yield Ht.offlineDataStore.setItem(t||"report_add_"+(new Date).getTime(),e),yield Ht.offlineDataStore.setItem("requestMetaData",i),yield Ht.offlineDataStore.setItem(t||"batch_"+(new Date).getTime(),Object.assign(Object.assign({},i),{viewsCount:e.length,viewsInfo:e})),navigator.serviceWorker&&navigator.serviceWorker.ready.then((e=>{e.sync?e.sync.register("moe_offline_data_sync").then((()=>{Ue.log(2,n,"offline sync event registered")})).catch((e=>{Ue.error(1,n,"Service worker sync error",e)})):Ue.log(2,n,"Service worker sync unavailable")}))}))}static sendReportBeacon(e,t,n){var i=en.baseLogTag+".sendReportBeacon";try{if(!e&&navigator.sendBeacon&&navigator.sendBeacon(t,new Blob([JSON.stringify(n)],{type:"text/plain;charset=UTF-8"})))return!0}catch(e){Ue.error(2,i,"Failed to send Report call with Beacon:",e)}return!1}static sendBatchOfReports(e){const t=en.baseLogTag+".sendBatchOfReports";return new Promise(((n,i)=>{en.getBatchRequestOptions(e).then((a=>{var r=We.get();const o=r.baseDomainName+ge+r.appId;dt().then((i=>window.navigator.onLine?en.sendReportBeacon(i.configs.isBeaconDisabled,o,a)?(Ue.log(1,t,"[sendBatchOfReports] batch payload: "+JSON.stringify(e)),Ue.log(1,t,"Batch sent to MoEngage successfully through beacon"),void n(!0)):void Ze.post(o,{postData:a}).then((()=>{Ue.log(1,t,"[sendBatchOfReports] batch payload: "+JSON.stringify(e)),Ue.log(1,t,"Batch sent to MoEngage successfully"),n(!0)})).catch((a=>{Ue.error(1,t,"Batch Report add API failed",a),n(this.sendToOfflineTracking(e,a,i))})):this.sendToOfflineTracking(e,Ie,i))).catch((e=>{e!==Ie&&Ue.error(1,t,"Error in getting Web SDK Settings. This might indicate that the App is blocked."),i(e)}))}))}))}static sendToOfflineTracking(e,t,n){const i=en.baseLogTag+".sendToOfflineTracking";return new Promise(((a,r)=>{if(!_t())return Ue.warn(2,i,"Not adding report(s) to offline db as SDK has been disabled."),void r(t);lt.getInstance().then((o=>{Vt.isOfflineBatchingSupported(o,n)?(Ue.error(1,i,"Add Report API failed, adding reports to offline db. ",t),en.addReportsToOfflineDB(e).then((()=>{Ue.log(2,i,"Network offline: Batch added to offline db")})),a(!0)):(Ue.warn(1,i,"Report not added to offline db. Offline tracking is supported only if batching is enabled. It is supported only on Chrome, Edge and Opera browsers on desktop web and Chrome and Opera browsers on Android web."),r(t))})).catch((()=>{r(t)}))}))}static reportAddInternal(e,t){const n=en.baseLogTag+".reportAddInternal";return new Promise(((i,a)=>{dt().then((a=>{lt.getInstance().then((r=>{if(t){const t=en.getUpdatedPushDetails();for(const n in t)!t.hasOwnProperty(n)||Dt(e.event.name)&&"push_id"===n||(e.getParams[n]=t[n]);var o=nt();const n={queryParams:Object.assign(Object.assign({},e.getParams),o)};if(e.postData.nie){const t=Object.assign({},e);delete t.postData.meta.source,delete t.postData.meta.session,n.postData=t.postData}else n.postData=e.postData;o=We.get().baseDomainName,o+=ye,Ze.post(o,n).then((()=>{let t=tt().toUpperCase();t="WEB"===t?"DESKTOP":t,Xt.track(_,{deviceType:t}),i(en.handleReportAddSuccess(e))})).catch((t=>{Vt.isBatchingSupported(a,r)?qe.enqueue(s.Q.DEVICE,e):en.handleReportAddFailure(e,t)}))}else Vt.isBatchingSupported(a,r)?(Vt.addReport(e,a.configs.eventBatchCount)&&(Ue.log(1,n,"Event batched successfully:",e.event),this.addEventsToIDB(e.event)),i(!0)):(o=new xt(e),Pt(o)?(Ue.error(1,n,Nt(o.EVENT_ACTION)),i(!1)):en.sendBatchOfReports([o]).then((()=>{i(en.handleReportAddSuccess(e))})).catch((t=>{en.handleReportAddFailure(e,t)})))}))})).catch((e=>{Ue.error(1,n,"Error in getting Web SDK Settings. This might indicate that the App is blocked."),a(!1)}))}))}static handleReportAddSuccess(e){var t=en.baseLogTag+".handleReportAddSuccess";return e.type===qt.REPORT_ADD_TYPE.EVENT?(Ue.log(1,t,"Event tracked successfully:",e.event),this.addEventsToIDB(e.event)):e.type===qt.REPORT_ADD_TYPE.USER_ATTRIBUTE&&Ue.log(1,t,"User attribute added successfully:",e.event.attributes),en.addReportApiRetries=1,!0}static handleReportAddFailure(e,t){var n=en.baseLogTag+".handleReportAddFailure";Ue.error(1,n,"Add Report API failed",t),e.type===qt.REPORT_ADD_TYPE.EVENT?Ue.log(1,n,"Queueing unsuccessful event tracking:",e.event):e.type===qt.REPORT_ADD_TYPE.USER_ATTRIBUTE&&Ue.log(1,n,"Queueing unsuccessful user attribute add:",e.event.attributes),en.addReportApiRetries<3&&setTimeout((()=>{en.addReportApiRetries++,qe.enqueue(s.Q.REPORT,e),an.startPeriodicClear(s.Q.REPORT)}),3e3*en.addReportApiRetries)}static checkIfTokenValid(e){const t=We.get().baseDomainName+be,n=We.get();return new Promise((i=>{e?mt.get().then((a=>{a={queryParams:{app_id:n.appId,unique_id:a.deviceUuid,push_id:e}},Ze.post(t,a).then((e=>{200===e.status?i(!0):i(!1)})).catch((e=>{i(!1)}))})):i(!1)}))}static collectGetParams(e){return new Promise(((t,n)=>{mt.get().then((n=>Zt(this,void 0,void 0,(function*(){let i=We.get();null!=i&&null!=i.appId||(i=new We(Ye.get(s.INIT_DATA)));const a=yield dt(),r=new Date,o=Date.UTC(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate(),r.getUTCHours(),r.getUTCMinutes(),r.getUTCSeconds(),r.getUTCMilliseconds());lt.getInstance().then((r=>{var l=this.getDeviceUniqueId(),d=nt(e,[_e,ye,ge]);const c=Object.assign({os:r.os,os_platform:r.osPlatform,is_incognito:r.isIncognito,app_id:i.appId,os_ver:r.name,sdk_ver:"2.56.0",model:r.name,app_ver:"1.0",device_ts:Number(o),device_tz_offset:(-6e4*(new Date).getTimezoneOffset()).toString(),unique_id:n.deviceUuid,device_tz:(new Date).getTimezoneOffset().toString(),device_unique_id:l},d);d=n.getAttribute("cart_token"),Ge()&&d&&null!=a&&a.configs.isMultiIdEnabled&&e!==ye&&(c.cart_token=d),It(d=Ye.get(s.PUSH_TOKEN))&&(c.push_id=d),r.isWebPushCompatible()&&(Fe(a.webPushPlatformData,r)?(c.subscription_type="vapid",c.vapid_public=je(a.webPushPlatformData,r)):c.subscription_type="normal"),null!=i.environment&&(c.environment=i.environment);var u=Ye.get(s.SUBSCRIPTION_DETAILS);if(null!=u&&null!=u.keys){for(const e in u.keys)c["keys_"+e]=encodeURI(u.keys[e]);null!=u.endpoint&&(c.endpoint=encodeURI(u.endpoint)),c.expirationTime=u.expirationTime}t(c)}))}))))}))}static getDeviceUniqueId(){var e;return(null===(e=Ye.get(s.DEVICE_DATA))||void 0===e?void 0:e.deviceUniqueId)||void 0}static getUpdatedPushDetails(){const e={};var t=Ye.get(s.SUBSCRIPTION_DETAILS);if(null!=t){var n=Ye.get(s.PUSH_TOKEN);if(null!=n&&"NA"!==n&&""!==n&&"null"!==n&&(e.push_id=n),t.keys){for(const n in t.keys)e["keys_"+n]=encodeURI(t.keys[n]);null!=t.endpoint&&(e.endpoint=encodeURI(t.endpoint)),e.expirationTime=t.expirationTime}}return e}static sendBeacon(e){if(!window.navigator.onLine)return this.sendToOfflineTracking(e,Ie);en.getBatchRequestOptions(e).then((e=>{var t=(t=We.get()).baseDomainName+ge+t.appId+"?"+(new Date).getTime();Ue.log(1,"MoeApi.sendBeacon","[sendBeacon] batch payload: "+JSON.stringify(e)),navigator.sendBeacon(t,JSON.stringify(e))}))}static addEventsToIDB(t){if(tt()!==Te.TV){const n=e.createInstance({driver:[e.INDEXEDDB,e.WEBSQL,e.LOCALSTORAGE],name:te,storeName:ne});null!=n&&n.setItem(t.name,t)}}}en.baseLogTag="MoeApi",en.onDeviceAdd=new it,en.webSdkApiRetries=1,en.offlineEvents=[],en.addReportApiRetries=1,en.isExecutingDeviceAdd=!1;const tn=n(967),nn=s.Q;class an{static clear(e){var t=an.baseLogTag+".clear";if(_t()){const n=[];for(;!qe.isEmpty(e);)switch(e){case nn.REPORT:const i=qe.dequeue(nn.REPORT);n.push((e=>{en.reportAdd(i).then((()=>{e()}))}));break;case nn.DEVICE:qe.dequeue(nn.DEVICE)&&n.push((e=>{en.deviceAdd().then((()=>{e()}))}));break;default:Ue.error(1,t,"Do not know how to handle queue with name:",e)}setTimeout((()=>{an.processing[e]=!0,tn(n,5,((t,n)=>{an.processing[e]=!1}))}),0)}}static startPeriodicClear(e){const t=an.baseLogTag+".startPeriodicCleanQ";an.clearInterval(e);var n=()=>{qe.isEmpty(e)?(Ue.log(1,t,"If you see multiple event tracks with same, they were captured over multiple visits or page refreshes."),Le(an.processing,e,!1)||an.clearInterval(e)):(an.clear(e),Ue.log(1,t,"Starting periodic queue clear for",e))};n(),an.intervals[e]=setInterval(n,6e3)}static clearInterval(e){null!=an.intervals[e]&&(clearInterval(an.intervals[e]),an.intervals[e]=null)}}an.baseLogTag="QManager",an.intervals={},an.processing={};const rn=class{constructor(e){this.isBeaconDisabled=this.parseSentryBooleanFlag(Le(e,"b_d",!1)),this.isCardsModuleEnabled=this.parseSentryBooleanFlag(Le(e,"c_s",!1)),this.isWebPersonalizationModuleEnabled=this.parseSentryBooleanFlag(Le(e,"c_w_p_e",!1)),this.eventBatchCount=Le(e,"e_b_c",15),this.logLevel=Le(e,"log_level"),this.periodicFlushTime=Le(e,"p_f_t",30),this.isBatchingEnabled=this.parseSentryBooleanFlag(Le(e,"s_e_b_e",!1)),this.sessionInactiveDuration=Le(e,"s_i_d",1800),this.isRemoteLoggingEnabled=this.parseSentryBooleanFlag(Le(e,"s_log",!1)),this.sourceExtraParams=Le(e,"src_ext",[]),this.whitelistedEvents=Le(e,"w_e",[]),this.blacklistedEvents=Le(e,"b_e",[]),this.isAppActive=this.parseSentryBooleanFlag(Le(e,"a_s",!0)),this.remoteLogTracking=this.isRemoteLoggingEnabled&&!!this.logLevel,this.subscriberBasedBillingAttributes=Le(e,"s_b_a",[]),this.isMultiIdEnabled=this.parseSentryBooleanFlag(Le(e,"m_i_e",!1)),this.userAttributeCacheTime=Le(e,"u_a_c_t",43200),this.identityAttributes=Le(e,"u_i_s",[])}parseSentryBooleanFlag(e="blocked"){return"allowed"===e||!0===e||"true"===e}};class on{constructor(e){this.mobile=new sn(Le(e,"mobile",{})),this.web=new sn(Le(e,"web",{}))}}class sn{constructor(e){this.nudge=e.nudge?new ln(e.nudge):void 0,this.banner=e.banner?new ln(e.banner):void 0,this.allowButton=e.allow_button?new dn(e.allow_button):void 0,this.dismissButton=e.dismiss_button?new dn(e.dismiss_button):void 0,this.logo=e.logo?new un(e.logo):void 0}}class ln{constructor(e){this.title=new cn(Le(e,"title",{})),this.body=null!=e&&e.body?new cn(Le(e,"body",{})):void 0,this.backgroundColor=null==e?void 0:e.background_color,this.icon=null==e?void 0:e.icon,this.altText=(null==e?void 0:e.alt_text)||""}}class dn{constructor(e){this.textColor=null==e?void 0:e.text_color,this.text=Le(e,"text",""),this.backgroundColor=null==e?void 0:e.background_color}}class cn{constructor(e){this.textColor=null==e?void 0:e.text_color,this.text=Le(e,"text","")}}class un{constructor(e){this.logoUrl=(null==e?void 0:e.logo_url)||"",this.logoColor=(null==e?void 0:e.logo_color)||"",this.altText=(null==e?void 0:e.alt_text)||""}}(En=Qt=Qt||{}).ONE_STEP="1-step",En.TWO_STEP="2-step",En.SELF_HANDLED="self-handled";class gn{constructor(e){this.subscriptionMode=Le(e,"subscription_mode","vapid"),this.vapidPublicKey=Le(e,"vapid_public_key",null)}}class hn{constructor(e){this.chrome=new gn(null==e?void 0:e.chrome),this.firefox=new gn(null==e?void 0:e.firefox)}}class mn{static getWebSDKSettings(){return mn.BASE_LOG_TAG,new Promise(((e,t)=>{const n=mn.getInitData();var i,a,r,o,l=n=>{mn.isAppBlocked(n)?t(!1):(Ve.set(d,(null==n?void 0:n.isDomainLevelStorage)||!1),e(n))};mn.sdkSettings?l(mn.sdkSettings):_t()?(i=(new Date).getTime(),o=()=>mn.getAndPersistWebSettings(n).then((t=>e(t))).catch((e=>t(!1))),null==(a=Ye.get(s.SETUP_TIME))||060*mn.RESET_DURATION_IN_HOURS*60*1e3||!(r=Ye.get(s.WEB_SETTINGS))?o():(mn.sdkSettings=r,l(mn.sdkSettings))):(o=Ye.get(s.WEB_SETTINGS))&&(mn.sdkSettings=o,l(mn.sdkSettings))}))}static getAndPersistWebSettings(e){const t=mn.BASE_LOG_TAG+".getAndPersistWebSettings";return new Promise(((n,i)=>function(e,t,n,i){return new(n=n||Promise)((function(t,a){function r(e){try{s(i.next(e))}catch(e){a(e)}}function o(e){try{s(i.throw(e))}catch(e){a(e)}}function s(e){var i;e.done?t(e.value):((i=e.value)instanceof n?i:new n((function(e){e(i)}))).then(r,o)}s((i=i.apply(e,[])).next())}))}(this,0,void 0,(function*(){try{Ue.log(1,t,"Fetching latest settings for",e.appId);var a={queryParams:{app_id:e.appId}},r={postData:{query_params:{unique_id:(c=Ye.get(s.USER_DATA))&&c.deviceUuid}}},o=Ze.get(mn.API_URLS.SETTINGS(e.baseDomainName),a),l=Ze.post(mn.API_URLS.CONFIG(e.baseDomainName,et()?"mweb":"web",e.appId),r);Promise.all([o,l]).then((e=>{let t=e[0].responseText;"string"==typeof t&&(t=JSON.parse(t));let a=e[1].responseText;200===e[1].status&&"string"==typeof a&&(a=JSON.parse(a));var r=new class{constructor(e){this.isDomainLevelStorage=!1,this.configs=new rn({}),this.settingsVersion="V2",this.isDomainLevelStorage=Le(e,"domain_level_storage",!1),tt()===Te.TV&&(this.isDomainLevelStorage=!1),this.toShowOverlay=Le(e,"show_overlay",!1),this.loadTime=Le(e,"load_time",0),this.promptAgain=Le(e,"prompt_again",24),this.optInType=Le(e,"opt_in_type",Qt.TWO_STEP),this.isWebPushEnabled=Le(e,"is_enabled",!1),this.optInPreview=new on(Le(e,"opt_in_preview",{})),this.overlay=Le(e,"overlay",null),this.webPushPlatformData=new hn(e.web_push_platform_data),this.isPushSubBilling=Le(e,"sub_billing",!1),this.isBrandingHidden=Le(e,"hide_moe_branding",!1),this.configs=new rn(e)}}(Object.assign(Object.assign({},t.webData),a));mn.updateLocalStorage(r),mn.isAppBlocked(r)?i(!1):(mn.sdkSettings=r,Ve.set(d,(null===(e=mn.sdkSettings)||void 0===e?void 0:e.isDomainLevelStorage)||!1),n(r))})).catch((e=>{Ue.error(1,t,"Config API failed",e)}))}catch(a){Ue.error(1,t,"Settings APi Failed: ",a),mn.webSdkApiRetries{mn.webSdkApiRetries++,n(mn.getAndPersistWebSettings(e))}),3e3*mn.webSdkApiRetries):i(!1)}var c}))))}static isAppBlocked(e){return!(!e||!e.configs||!1!==e.configs.isAppActive)}static getInitData(){let e=We.get();return null!=e&&null!=e.appId||(e=new We(Ye.get(s.INIT_DATA))),e}static updateLocalStorage(e){var t=(new Date).getTime();Ye.set(s.WEB_SETTINGS,e),Ye.set(s.SETUP_TIME,t),Ye.set(s.SDK_VERSION,Me().getSdkVersion())}}mn.BASE_LOG_TAG="CoreApi",mn.RESET_DURATION_IN_HOURS=24,mn.API_URLS={SETTINGS:e=>e+"v2/websdksettings",CONFIG:(e,t,n)=>e+`v3/sdkconfig/${t}/`+n},mn.webSdkApiRetries=1,mn.WEB_SDK_API_MAX_RETRIES=3;class pn{addURLChangeObserver(e){const t=pn.baseLogTag+".addURLChangeObserver";let n=document.location.href;(()=>{pn.isObserverRunning=!0,Ue.log(2,t,"Start listening to URL changes for SPA");var i=document.querySelector("body");pn.observer=new MutationObserver((i=>{i.forEach((i=>{n===window.location.href||Oe.some((e=>window.location.href.includes(e)))||(n=window.location.href,Ue.log(1,t,"URL Change detected",n),pn.pageChangeHandler(e))}))})),pn.observer.observe(i,{childList:!0,subtree:!0})})()}static pageChangeHandler(e){wt.broadcastToWindow({topic:K,name:j.PAGE_CHANGED}),Jt.clearAll(),Me().track_page_view(),e&&Ye.copyKeysFromCookie()}static removeURLChangeObserver(){var e,t=this.baseLogTag+".removeURLChangeObserver";this.isObserverRunning=!1,null!==(e=this.observer)&&void 0!==e&&e.disconnect(),Ue.log(2,t,"SPA URL Change Observer removed.")}}pn.baseLogTag="SPAManager";class vn{constructor(){vn.handlePublicFunctions()}trackClick(e,t){return vn.track("MOE_LANDING_PAGE_CLICKED",e,{widget_id:t})}trackImpression(e){return vn.track("MOE_LANDING_PAGE_SHOWN",e)}trackFormSubmit(e,t){return vn.track("MOE_RESPONSE_SUBMITTED",e,t)}trackEvent(e,t,n){return vn.track(e,t,n)}static track(e,t,n){const i=vn.baseLogTag+".track";if("string"==typeof t)try{t=JSON.parse(t)}catch(n){return void Ue.error(2,i,"Error parsing JSON string:",n)}if(n){if("string"==typeof n)try{n=JSON.parse(n)}catch(n){return void Ue.error(2,i,"Error parsing attributes JSON string:",n)}t=Object.assign(Object.assign({},n),t)}try{return Me()?(Ue.log(1,i,e+": Event Tracked"),Me().track_event(e,Object.assign({},t))):(window.addEventListener(U,(n=>{if(n.detail.name===W.MOE_INIT)return Ue.log(1,i,e+": Event Tracked"),Me().track_event(e,Object.assign({},t))})),Promise.resolve())}catch(n){Ue.error(2,i,"Failed Tracking expression",n)}}static handlePublicFunctions(){(Me()||{}).landingPages=vn}}vn.baseLogTag="Landing Pages Tracking";class fn{}fn.baseLogTag="MoEngage",fn.landingPages=new vn,fn.getSdkVersion=()=>"2.56.0",fn.setDebugLevel=e=>function(e,t,n,i){return new(n=n||Promise)((function(e,t){function a(e){try{o(i.next(e))}catch(e){t(e)}}function r(e){try{o(i.throw(e))}catch(e){t(e)}}function o(t){var i;t.done?e(t.value):((i=t.value)instanceof n?i:new n((function(e){e(i)}))).then(a,r)}o((i=i.apply(undefined,[])).next())}))}(0,0,void 0,(function*(){var t;const n=fn.baseLogTag+".setDebugLevel",i=Me();try{"number"==typeof e&&(Ue.setLogLevel(e,!0),!We.get().disableOnsite&&null!==(t=null==i?void 0:i.onsite)&&void 0!==t&&t.setLogLevel&&i.onsite.setLogLevel(e),mn.getWebSDKSettings().then((t=>{null!=t&&t.configs.isCardsModuleEnabled&&null!=i&&i.cards&&i.cards.setLogLevel(e),null!=t&&t.configs.isWebPersonalizationModuleEnabled&&window.MoeWebP&&window.MoeWebP.setLogLevel&&window.MoeWebP.setLogLevel(e)})).catch((e=>{Ue.error(1,n,"Error in getting Web SDK Settings. This might indicate that the App is blocked.")})))}catch(t){Ue.error(0,n,"Error changing log level:",t)}})),fn.vitals=()=>{var e=Ye.get(s.USER_DATA);return{userDetails:e,deviceUuid:null==e?void 0:e.deviceUuid,pushToken:Ye.get(s.PUSH_TOKEN),softAskStatus:Ye.get(s.SOFT_ASK_STATUS),hardAskStatus:Ye.get(s.HARD_ASK_STATUS)}},fn.help=()=>{for(const e in Q)Q.hasOwnProperty(e)&&Ue.log(0,"Moengage.help",e,"-",Q[e])},fn.getBranch=()=>"dev",fn.handle_page_change=()=>{mn.getWebSDKSettings().then((e=>{pn.pageChangeHandler(e.isDomainLevelStorage)}))};const Sn={getData:(e,t)=>{window.addEventListener(U,(n=>{var i;n.detail.name===W.OSM_INIT&&null!==(i=Me())&&void 0!==i&&i.onsite.getData(e,t)}))},registerCallback:(e,t)=>{window.addEventListener(U,(n=>{var i;n.detail.name===W.OSM_INIT&&null!==(i=Me())&&void 0!==i&&i.onsite.registerCallback(e,t)}))},getSelfHandledOSM:e=>{window.addEventListener(U,(t=>{var n;t.detail.name===W.OSM_INIT&&null!==(n=Me())&&void 0!==n&&n.onsite.getSelfHandledOSM(e)}))}};var En=()=>{};const yn={track_event:En,add_user_attribute:En,add_first_name:En,add_last_name:En,add_email:En,add_mobile:En,add_user_name:En,add_gender:En,add_birthday:En,destroy_session:En,add_unique_user_id:En,moe_events:En,location_type_attribute:En,call_web_push:En,setDebugLevel:En};var bn=function(e,t,n,i){return new(n=n||Promise)((function(a,r){function o(e){try{l(i.next(e))}catch(e){r(e)}}function s(e){try{l(i.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?a(e.value):((t=e.value)instanceof n?t:new n((function(e){e(t)}))).then(o,s)}l((i=i.apply(e,t||[])).next())}))};class _n{static initialize(){return bn(this,void 0,void 0,(function*(){var t;return null==_n.ready&&(_n.serviceMetaStore=e.createInstance({driver:[e.INDEXEDDB,e.WEBSQL,e.LOCALSTORAGE],name:le.DATABASE_NAME,storeName:le.STORES.SERVICE_META.NAME}),_n.campaingsMetaStore=e.createInstance({driver:[e.INDEXEDDB,e.WEBSQL,e.LOCALSTORAGE],name:le.DATABASE_NAME,storeName:le.STORES.CAMPAIGNS_META.NAME}),_n.pendingSecondaryEvents=e.createInstance({driver:[e.INDEXEDDB,e.WEBSQL,e.LOCALSTORAGE],name:le.DATABASE_NAME,storeName:le.STORES.PENDING_SECONDARY_EVENTS.NAME}),_n.pendingTimerCampaigns=e.createInstance({driver:[e.INDEXEDDB,e.WEBSQL,e.LOCALSTORAGE],name:le.DATABASE_NAME,storeName:le.STORES.PENDING_TIMER_CAMPAIGNS.NAME}),_n.triggeringPrimaryEvents=e.createInstance({driver:[e.INDEXEDDB,e.WEBSQL,e.LOCALSTORAGE],name:le.DATABASE_NAME,storeName:le.STORES.TRIGGERING_PRIMARY_EVENTS.NAME}),_n.campaingsTagsStore=e.createInstance({driver:[e.INDEXEDDB,e.WEBSQL,e.LOCALSTORAGE],name:le.DATABASE_NAME,storeName:le.STORES.CAMPAIGNS_TAGS.NAME}),_n.campaingsStatsStore=e.createInstance({driver:[e.INDEXEDDB,e.WEBSQL,e.LOCALSTORAGE],name:le.DATABASE_NAME,storeName:le.STORES.CAMPAIGNS_STATS.NAME}),_n.exitIntentCampaignStore=e.createInstance({driver:[e.INDEXEDDB,e.WEBSQL,e.LOCALSTORAGE],name:le.DATABASE_NAME,storeName:le.STORES.EXIT_INTENT_CAMPAIGN_STORE.NAME}),t=[_n.serviceMetaStore.ready(),_n.campaingsMetaStore.ready(),_n.pendingSecondaryEvents.ready(),_n.pendingTimerCampaigns.ready(),_n.triggeringPrimaryEvents.ready(),_n.campaingsTagsStore.ready(),_n.campaingsStatsStore.ready(),_n.exitIntentCampaignStore.ready()],_n.ready=Promise.all(t)),_n.ready}))}static clear(e=!1){return bn(this,void 0,void 0,(function*(){var t=_n.baseLogTag+".clear";try{yield _n.initialize(),yield Promise.all([_n.campaingsMetaStore.clear(),_n.campaingsTagsStore.clear(),_n.exitIntentCampaignStore.clear(),_n.triggeringPrimaryEvents.clear()]),e&&(yield Promise.all([_n.serviceMetaStore.clear(),_n.campaingsStatsStore.clear(),_n.pendingSecondaryEvents.clear(),_n.pendingTimerCampaigns.clear()]));const t=[_n.campaingsMetaStore.ready(),_n.campaingsTagsStore.ready(),_n.exitIntentCampaignStore.ready(),_n.triggeringPrimaryEvents.ready(),e?_n.campaingsStatsStore.ready():Promise.resolve()];e&&t.push(_n.serviceMetaStore.ready(),_n.campaingsStatsStore.ready(),_n.pendingSecondaryEvents.ready(),_n.pendingTimerCampaigns.ready()),_n.ready=Promise.all(t)}catch(e){Ue.error(1,t,"Error clearing onsite stores:",e)}return _n.ready}))}static sdkOptOut(){return bn(this,void 0,void 0,(function*(){yield Promise.all([_n.pendingSecondaryEvents.clear(),_n.pendingTimerCampaigns.clear(),_n.triggeringPrimaryEvents.clear()])}))}}_n.baseLogTag="MOE_ONSITE_STORES";var Tn,In,An,wn,Dn,On=function(e,t,n,i){return new(n=n||Promise)((function(a,r){function o(e){try{l(i.next(e))}catch(e){r(e)}}function s(e){try{l(i.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?a(e.value):((t=e.value)instanceof n?t:new n((function(e){e(t)}))).then(o,s)}l((i=i.apply(e,t||[])).next())}))};const Pn=(e,t,n)=>null==e.campaignId?()=>{}:()=>(_n.campaingsStatsStore.getItem(e.campaignId).then((t=>{t=null!=t?Object.assign(Object.assign({},t),{clicks:Le(t,"clicks",0)+1}):{clicks:1},_n.campaingsStatsStore.setItem(e.campaignId,t)})),null==n&&(n={}),Mn().track_event(le.EVENT_NAMES[t].CLICK,Object.assign(Object.assign({campaign_id:e.campaignId,campaign_name:e.campaignName,type:le.EVENT_NAMES[t].TYPE},n),e.campaignContext))),Nn=(e,t,n=!1)=>{return null==e.campaignId?()=>{}:((i=e).templateType!==Dn.SELF_HANDLED&&(Fn(i,A)||Fn(i,w))&&(ra.onScrollOrExitIntentCampaigns[i.campaignId]=!0),()=>{if(Cn(e.campaignId),!n)return Mn().track_event(le.EVENT_NAMES[t].IMPRESSION,Object.assign({campaign_id:e.campaignId,campaign_name:e.campaignName,type:le.EVENT_NAMES[t].TYPE,templateType:e.templateType},e.campaignContext))});var i},Cn=e=>{_n.initialize().then((()=>{_n.campaingsStatsStore.getItem(e).then((t=>{t=null!=t?Object.assign(Object.assign({},t),{impressions:Le(t,"impressions",0)+1,lastImpression:new Date}):{impressions:1,lastImpression:new Date},_n.campaingsStatsStore.setItem(e,t)}))}))},Ln=(e,t,n)=>{n=n?le.EVENT_NAMES[t].AUTO_DISMIS:le.EVENT_NAMES[t].DISMISS,Mn().track_event(n,Object.assign({campaign_id:e.campaignId,campaign_name:e.campaignName,type:le.EVENT_NAMES[t].TYPE},e.campaignContext))},Rn=(e,t)=>{Mn().track_event(le.EVENT_NAMES[t].DELIVERED,Object.assign({campaign_id:e.campaignId,campaign_name:e.campaignName,type:le.EVENT_NAMES[t].TYPE},e.campaignContext))},Mn=()=>{var e=window.moengage_object||"Moengage";return window[e]};class kn{static isValid(e,t){return!kn.isCampaignExpired(e)&&kn.isCampaignActive(e)&&kn.isUserInCampaignSegment(e)&&kn.isCampaignWithinFC(e,t)}static isCampaignExpired(e){return(new Date).getTime()>new Date(e.expiryTime).getTime()}static isValidMessagingCampaign(e,t,n,i,a){return kn.canCampaignBeRenderedOverExisting(e,a.length)&&kn.hasCampaignClearedSelfDelay(e,t)&&kn.hasCampaignClearedGlobalDelay(e,n,i)}static isCampaignActive(e){var t=kn.baseLogTag+".isValid";return e.status===An.ACTIVE||(Ue.warn(1,t,`Campaign ${e.campaignId} : Status is `+e.status),!1)}static isUserInCampaignSegment(e){var t=kn.baseLogTag+".isValid";return!!e.userInSegment||(Ue.warn(1,t,`Campaign ${e.campaignId} : User is not in segment`),!1)}static isCampaignWithinFC(e,t){var n=kn.baseLogTag+".isValid";if([Dn.SELF_HANDLED].indexOf(e.templateType)<0){var i=Le(e,"delivery.fc_meta.count",0);if(0e.delivery.priority||!(t.delivery.prioritye.updatedTime?1:-1}}kn.baseLogTag="CampaignUtils";const xn=e=>On(void 0,void 0,void 0,(function*(){var t=e.map((e=>_n.campaingsStatsStore.getItem(e.campaignId)));let n;try{n=yield Promise.all(t);const i=e.filter(((e,t)=>kn.isValid(e,n[t])));return i.sort(kn.comparator)}catch(t){return Ue.error(1,"filterAndSortCampaigns","Error filtering and sorting campaigns: ",t),[]}}));class Bn{}Bn.REMOVE_TRAIL_CHARS=/[^\w\s]+$/gi;const Un=e=>{var t;null!==(t=null===(t=e.primaryEventsHash)||void 0===t?void 0:t.MOE_PAGE_SCROLL)&&void 0!==t&&t.length&&window.removeEventListener("scroll",e.getScrollListenerCallback())},Wn=e=>{Object.keys(e.campaignRenderMap).forEach((t=>{document.getElementById("moe-onsite-campaign-"+t)&&document.getElementById("moe-onsite-campaign-"+t).remove(),e.campaignRenderMap[t].isActive()&&e.dismissInapp(t),clearTimeout(e.campaignRenderMap[t].delayTimer),delete e.campaignRenderMap[t],e.campaignRenderOrder=e.campaignRenderOrder.filter((e=>e!==t))}))},Hn=e=>{setTimeout((()=>{e&&(et()?e.windowEventManager.isPopStateEventBound&&(e.windowEventManager.setHistoryState(),e.windowEventManager.isExitIntentShown=!1,e.windowEventManager.scrollExitIntentInterval=null):document.removeEventListener("mouseout",e.windowEventManager.exitIntentListener))}),0)},Fn=(e,t)=>{const n=Le(e,"triggerData.primary_condition.included_filters",null);return(null==n?void 0:n.filter_operator)===wn.OR&&-1<(null==n?void 0:n.filters.findIndex((e=>e.action_name===t)))},Gn=e=>On(void 0,void 0,void 0,(function*(){var t=yield _n.exitIntentCampaignStore.getItem(e.campaignId);if(t)return t.error?t:(e.onsitePayload=t,Ue.log(1,"getPrefetchedCampaign","Prefetched exit intent campaign found: "+e.campaignId),e)})),Kn=e=>On(void 0,void 0,void 0,(function*(){try{return yield _n.campaingsMetaStore.getItem(e)}catch(e){return Ue.error(2,"getCampaignById","Error getting campaign from store: ",e),null}})),jn=()=>new Promise((e=>{setTimeout((()=>On(void 0,void 0,void 0,(function*(){const t=[];yield _n.campaingsMetaStore.iterate((e=>{t.push(e)})),e(t)}))),0)})),Vn=e=>null===(e=Le(e,"triggerData.secondary_condition.included_filters.filters"))||void 0===e?void 0:e.length,zn=e=>"moe-onsite-campaign-"+e;function Yn(e){var t,n;e.detail.name===j.PAGE_CHANGED&&(window.Moengage.pageChangeHandlerCallingTime=(new Date).getTime(),window.MoeFocusHandler&&window.MoeFocusHandler(),(()=>{var e;if(null!==(e=Mn())&&void 0!==e&&e.onsite){const e=Mn().onsite,{triggerManager:t,displayManager:n,sendDelayCampaignStats:i,funnelManager:a}=e;n&&(i(n,a),Wn(n)),t&&(Un(t),Hn(t)),ra.onScrollOrExitIntentCampaigns={},wt.resetListeners(),e.initializationPomise=null,e.selfHandledWebpTriggerListeners={},e.initialize&&e.initialize()}})(),window.Moengage.shouldClearPrevEvents=(new Date).getTime(),e=(null===(t=Mn())||void 0===t?void 0:t.onsite).triggerManager,0<(null===(t=null==e?void 0:e.exitIntentCampaigns)||void 0===t?void 0:t.length)&&et()&&null!==(n=null==e?void 0:e.windowEventManager)&&void 0!==n&&n.onMobileScrollAndExit(e.onExit))}class qn{constructor(e,t,n,i){this.dataType=e,this.availableOperations=t,this.event=n,this.filter=i}validate(){return!(this.availableOperations.indexOf(this.filter.operator)<0)}checkEq(){let e=!1;return this.event.attributes.forEach((t=>{let n=t.value,i=this.filter.value;this.dataType===Tn.STRING&&typeof n===Tn.STRING&&(n=this.removeSpecialChars(n),i=this.removeSpecialChars(i)),t.key===this.filter.name&&(this.dataType!==Tn.STRING||this.filter.case_sensitive?n===i&&(e=!0):n.toLowerCase()===i.toLowerCase()&&(e=!0))})),e}checkExists(){let e=!1;return this.event.attributes.forEach((t=>{t.key===this.filter.name&&(e=!0)})),e}removeSpecialChars(e){return e.replace(Bn.REMOVE_TRAIL_CHARS,"")}}(En=Tn=Tn||{}).BOOL="bool",En.STRING="string",En.DATE="datetime",En.NUMBER="double",En.LONG="long",En.ARRAY_BOOL="array_bool",En.ARRAY_NUMBER="array_double",En.ARRAY_STRING="array_string",En.ARRAY_DATETIME="array_datetime",En.OBJECT="object",(En=In=In||{}).ALLOF="all_of",En.ANYOFF="any_of";const $n=["is","exists","contains","startsWith","endsWith","in","containsInTheFollowing","startsWithInTheFollowing","endsWithInTheFollowing"];class Jn extends qn{constructor(e,t){super(Tn.STRING,$n,e,t)}evaluate(){Jn.baseLogTag;let e=!1;var t=this.event.attributes.filter((e=>e.key===this.filter.name)),n=0this.filter.case_sensitive?0<=e.value.indexOf(t):0<=e.value.toLowerCase().indexOf(t.toLowerCase());return Array.isArray(this.filter.value)?this.filter.array_filter_type===In.ALLOF?this.checkInTheFollowing(t).every((e=>!0===e)):this.checkInTheFollowing(t).includes(!0):t(this.filter.value)}checkStartsWith(e){var t=t=>{var n=(e,t)=>e.substr(0,t.length)===t;return this.filter.case_sensitive?n(e.value,t):n(e.value.toLowerCase(),t.toLowerCase())};return Array.isArray(this.filter.value)?this.filter.array_filter_type===In.ALLOF?this.checkInTheFollowing(t).every((e=>!0===e)):this.checkInTheFollowing(t).includes(!0):t(this.filter.value)}checkEndsWith(e){var t=t=>{var n=(e,t,n)=>((void 0===n||n>e.length)&&(n=e.length),e.substring(n-t.length,n)===t);if(this.filter.case_sensitive)return n(e.value,t);const i=this.removeSpecialChars(e.value),a=this.removeSpecialChars(t);return n(i.toLowerCase(),a.toLowerCase())};return Array.isArray(this.filter.value)?this.filter.array_filter_type===In.ALLOF?this.checkInTheFollowing(t).every((e=>!0===e)):this.checkInTheFollowing(t).includes(!0):t(this.filter.value)}checkIn(e){let t=!1;if(Array.isArray(this.filter.value))for(let n=this.filter.value.length-1;0<=n;n--)if(this.filter.case_sensitive){if(this.filter.value[n]===e.value){t=!0;break}}else if(this.filter.value[n].toLowerCase()===e.value.toLowerCase()){t=!0;break}return t}checkInTheFollowing(e){return this.filter.value.map((t=>e(t)))}}Jn.baseLogTag="StringDataType";const Xn=["is","exists"];class Qn extends qn{constructor(e,t){super(Tn.BOOL,Xn,e,t)}evaluate(){let e=!1;switch(this.filter.operator){case"is":e=this.checkEq();break;case"exists":e=this.checkExists()}return this.filter.negate?!e:e}}Qn.baseLogTag="BooleanDataType";const Zn=["is","exists","greaterThan","lessThan","between","in"];class ei extends qn{constructor(e,t){super(Tn.NUMBER,Zn,e,t)}evaluate(){ei.baseLogTag;let e=!1;var t=this.event.attributes.filter((e=>e.key===this.filter.name)),n=0this.filter.value}checkLessThan(e){return e.valuee.key===this.filter.name));const n=0t:e.value.setHours(0,0,0,0)t:e.value.setHours(0,0,0,0)>t.setHours(0,0,0,0)}checkLastX(e){var t=(new Date).setHours(0,0,0,0);return 0e.key===this.filter.name));return null!=(t=0Array.isArray(e))(t.value)&&(e=this.filter.array_filter_type&&this.filter.array_filter_type===In.ANYOFF?this.checkAnyOf(t):this.checkAllOf(t)),e}checkAllOf(e){return e.value.every((t=>this.getFilterResult(t,e)))}checkAnyOf(e){return e.value.some((t=>this.getFilterResult(t,e)))}getFilterResult(e,t){let n=!1;e=this.createCustomEvent(t.key,e);const i=this.getDataType(e);return i.validate()&&(n=i.evaluate()),n}createCustomEvent(e,t){return t=new ut(e,t),new $t(this.event.name,[t])}getDataType(e){let t;switch(this.filter.data_type){case Tn.ARRAY_BOOL:t=new Qn(e,this.filter);break;case Tn.ARRAY_DATETIME:t=new ni(e,this.filter);break;case Tn.ARRAY_NUMBER:t=new ei(e,this.filter);break;case Tn.ARRAY_STRING:t=new Jn(e,this.filter)}return t}}class ri{constructor(e,t){this.event=e,this.filter=t}evaluate(){let e;var t=this.event.attributes.filter((e=>e.key===this.filter.name));const n=0{if("exists"===e.operator){var t=(null==e?void 0:e.name)in(null==n?void 0:n.value);return e.negate?!t:t}return(null==e?void 0:e.name)in(null==n?void 0:n.value)&&(t=new ut(e.name,n.value[e.name]),t=new $t(e.name,[t]),oi.doesEventMatchFilters(t,e))})),a=this.filter.filter_operator;e=(null==i?void 0:i[0])||!1;for(let t=1;tt.action_name===e||t.action_name===A&&"MOE_EXIT"===e))}static areFiltersAbsent(e){return!(null==e||!e.action_name||null!==(e=null==e?void 0:e.attributes)&&void 0!==e&&e.filters)}static getFilters(e){return(null==e?void 0:e.action_name)&&(null===(e=null==e?void 0:e.attributes)||void 0===e?void 0:e.filters)||null}static getFilterOperator(e){return(null==e?void 0:e.action_name)&&(null===(e=null==e?void 0:e.attributes)||void 0===e?void 0:e.filterOperator)||wn.AND}static isTriggered(e,t,n,i){let a=!0;if(0<(null==t?void 0:t.length)){let o;o=i||si.getFilterOperator(n);var r=t.map((t=>oi.doesEventMatchFilters(e,t)));a=r[0]||!1;for(let e=1;ee.action_name===D));return e=si.getFilters(i),si.isTriggered(t,e,i)}return!0}}si.baseLogTag="OnsiteCampaignMeta";class li{constructor(e){this.cs_id=e.cs_id,this._id=e._id,this.references=e.references,this.trigger_wait_time=e.trigger_wait_time||null,ci.validate(e.primary_condition)?this.primary_condition=new ci(e.primary_condition):this.primary_condition=null,ci.validate(e.secondary_condition)?this.secondary_condition=new ci(e.secondary_condition):this.secondary_condition=null,ci.validate(e.url_condition)?this.url_condition=new ci(e.url_condition):this.url_condition=null,this.description=e.description,null!=e.trigger_delay?this.trigger_delay=new di(e.trigger_delay):this.trigger_delay=null}static validate(e){let t=!1;return["primary_condition"].forEach((n=>{null!=Le(e,n,null)&&(t=!0)})),t}}class di{constructor(e){if(this.delay=Le(e,"delay",0),this.unit=Le(e,"unit","seconds"),this.delay_type=Le(e,"delay_type",""),this.attribute=Le(e,"attribute",""),Le(e,"delay",null)&&Le(e,"unit",null)){let e=this.delay;"minutes"!==this.unit&&"hours"!==this.unit&&"days"!==this.unit||(e*=60),"hours"!==this.unit&&"days"!==this.unit||(e*=60),"days"===this.unit&&(e*=24),this.delayInSeconds=e}else this.delayInSeconds=0}}class ci{constructor(e){this.included_filters=new ui(Le(e,"included_filters",null)),this.excluded_filters=new ui(Le(e,"excluded_filters",null))}static validate(e){return!!(e&&(e=e.included_filters)&&Array.isArray(e.filters)&&e.filters.length&&null!=e.filter_operator)}}class ui{constructor(e){this.filter_operator=Le(e,"filter_operator",wn.AND),this.filters=null===(e=Le(e,"filters",[]))||void 0===e?void 0:e.map((e=>new gi(e)))}}class gi{constructor(e){const t=Le(e,"action_name",null);"string"==typeof t&&(t.includes(".")?this.action_name=St(t):this.action_name=t);var n=Le(e,"executed",null);"boolean"==typeof n&&(this.executed=n),this.filter_type=Le(e,"filter_type",null),n=Le(e,"attributes",null),hi.validateJson(n)&&(this.attributes=new hi(n)),"nested_filters"===this.filter_type&&(this.filters=new ui(e))}}class hi{constructor(e){this.filters=[],this.filterOperator=Le(e,"filter_operator",wn.AND),this.filters=Le(e,"filters",[]),this.filters.length&&this.filters.forEach((e=>{var t;null!==(t=null==e?void 0:e.name)&&void 0!==t&&t.includes(".")&&(e.name=St(e.name))}))}static validateJson(e){if(null==e)return!1;var t=["filters"];for(let n=0;n{si.isValidMetaJSON(e)&&a.push(new si(e))})),{campaignsMeta:a,globalDelayBetweenInapps:Le(i,"min_delay_btw_inapps",0)}}catch(t){throw Ue.error(1,e,"Error getting meta for inapp: ",t),new Error("Could not get meta payload")}}))}getCampaignPayload(e,t){return Ei(this,void 0,void 0,(function*(){var n=yi.baseLogTag+".getCampaignPayload";let i;try{const n={contexts:["string"],campaign_context:e.campaignContext,user_session_attributes:this.getUserSessionAttributes()};if(t){const a={};for(let e=0;e{n.push(new Si(e))})),n}catch(i){throw Ue.error(1,n,"Error geting payload",i),new Error("Could not get payload for "+e)}}))}getDraftCampaign(e){return Ei(this,void 0,void 0,(function*(){var t=yi.baseLogTag+".getDraftCampaign";try{const t=yield this.getRequestOptions();t.queryParams=Object.assign({},t.queryParams,{locale:e.locale,variation:e.variation});var n=yield Ze.post(this.host+le.API.DRAFT_CAMPAIGN_PAYLOAD+e.draftId,t);const i=JSON.parse(n.responseText);return"JSON"===i.payload_type&&(i.payload=JSON.parse(i.payload)),new Si(i)}catch(n){return Ue.error(1,t,"Error geting test campaign payload",n),null}}))}getRequestOptions(e={}){const t=Me();return dt().then((n=>Ei(this,void 0,void 0,(function*(){Ye.get(s.USER_DATA);var n=yield function(){return pt(this,void 0,void 0,(function*(){const e={};var t=rt.getIdentityMap(),n=yield function(){return pt(this,void 0,void 0,(function*(){const e=yield mt.get();var t=e.getAttribute(O)||"";return{uniqueId:e.deviceUuid,uid:t}}))}();return t&&(t.userIdentities&&(e.user_identities=t.userIdentities),t.previousIdentities&&(e.previous_identities=t.previousIdentities)),n.uid&&(e.uid=n.uid),{identifiers:e,uniqueId:n.uniqueId}}))}();if(!n.uniqueId)throw new Error("uniqueId not found in localStorage.");var i=et()?"mweb":"web",a=nt();return{headers:{"Content-Type":"application/json","MOE-APPKEY":this.appId},queryParams:Object.assign({sdk_ver:t.getSdkVersion(),unique_id:null==n?void 0:n.uniqueId,os:i},a),postData:Object.assign(Object.assign({},e),{identifiers:n.identifiers})}})))).catch((e=>{throw new Error("Error in getting Web SDK Settings. This might indicate that the App is blocked.")}))}callStatsAPI(e,t){const n=yi.baseLogTag+".callStatsAPI";this.getRequestOptions().then((t=>{var i=this.host+le.API.STATS;t.queryParams.app_id=t.headers["MOE-APPKEY"],delete t.queryParams.uid,i=Qe(i,t.queryParams),Ue.log(1,n,"[sendBeacon] payload: "+JSON.stringify(e)),t=new Blob([JSON.stringify(e)],{type:"text/plain;charset=UTF-8"}),navigator.sendBeacon(i,t)}))}}yi.baseLogTag="OnsiteApi";class bi{constructor(){this.isExitIntentShown=!1,this.isPopStateEventBound=!1}onScroll(e){const t=bi.baseLogTag+".onScroll";null==e&&(e=()=>{});var n=bi.throttle((()=>{Ue.remoteLogTracking(1,"info",t,"Scrolled percent:",bi.getScrollPercent()),e(bi.getScrollPercent())}),le.SCROLL_CAMPAIGN_THROTTLING_TIME);return e(bi.getScrollPercent()),window.addEventListener("scroll",n),n}onMobileTabChange(e){const t=bi.baseLogTag+".onMobileTabChange";document.addEventListener("visibilitychange",(()=>{this.isExitIntentShown||"hidden"!==document.visibilityState||(Ue.log(1,t,"TRIGGERED: MOBILE EXIT INTENT"),e(),this.isExitIntentShown=!0)}))}onMobileBackHit(e){const t=bi.baseLogTag+".onMobileBackHit";setTimeout((()=>{this.isPopStateEventBound=!0,window.addEventListener("popstate",(n=>{!this.isExitIntentShown&&n.state&&"exit_intent"===n.state.moeIntent&&(Ue.log(1,t,"TRIGGERED: MOBILE EXIT INTENT"),e("onBackClick"),this.isExitIntentShown=!0)}))}),1e3),this.setHistoryState()}setHistoryState(){window.history.state&&"no_intent"===window.history.state.moeIntent||(window.history.replaceState(Object.assign(Object.assign({},window.history.state),{moeIntent:"exit_intent"}),""),window.history.pushState(Object.assign(Object.assign({},window.history.state),{moeIntent:"no_intent"}),""))}onMobileScrollAndExit(e){const t=bi.baseLogTag+".onMobileScrollAndExit",n=document.documentElement.offsetHeight;let i,a=bi.getScrollY();0{let r=a-bi.getScrollY();r<0&&(r=0,a=bi.getScrollY()),i=bi.getScrollPercent()>le.EXIT_INTENT.CONFIG.SCROLL_DOWN_THRESHOLD,i&&r/n>le.EXIT_INTENT.CONFIG.SCROLL_UP_THRESHOLD/100&&(clearInterval(this.scrollExitIntentInterval),this.scrollExitIntentInterval=null,this.isExitIntentShown||(Ue.log(1,t,"TRIGGERED: MOBILE EXIT INTENT"),e(),this.isExitIntentShown=!0))}),le.EXIT_INTENT.CONFIG.SCROLL_INTERVAL))}mobileExitIntent(e){this.onMobileScrollAndExit(e),this.onMobileBackHit(e),this.onMobileTabChange(e)}onExit(e){const t=bi.baseLogTag+".onExit";et()?this.mobileExitIntent(e):(this.exitIntentListener=n=>function(e,t,n,i){return new(n=n||Promise)((function(t,a){function r(e){try{s(i.next(e))}catch(e){a(e)}}function o(e){try{s(i.throw(e))}catch(e){a(e)}}function s(e){var i;e.done?t(e.value):((i=e.value)instanceof n?i:new n((function(e){e(i)}))).then(r,o)}s((i=i.apply(e,[])).next())}))}(this,0,void 0,(function*(){var i=window.innerWidth,a=window.innerHeight;(n.clientY<0||n.clientX<0||n.clientY>=a||n.clientX>=i)&&(Ue.log(1,t,"TRIGGERED: EXIT INTENT"),e())})),document.addEventListener("mouseout",this.exitIntentListener,!1))}static getScrollPercent(){const e=window,t=document,n=t.documentElement,i=t.getElementsByTagName("body")[0],a=e.innerHeight||n.clientHeight||i.clientHeight;var r=document.body,o=document.documentElement;return a<(o=Math.max(r.scrollHeight,r.offsetHeight,o.clientHeight,o.scrollHeight,o.offsetHeight))?100*bi.getScrollY()/(o-a):100}static getScrollY(){let e=0;return"number"==typeof window.pageYOffset?e=window.pageYOffset:document.body&&document.body.scrollTop&&(e=document.body.scrollTop),e}static throttle(e,t){let n;return(...i)=>{n=n||window.setTimeout((()=>{n=null,e.apply(null,i)}),t)}}static setOnlineEventListner(e){window.addEventListener("online",e,{once:!0})}}bi.baseLogTag="WindowEventManager";var _i=function(e,t,n,i){return new(n=n||Promise)((function(a,r){function o(e){try{l(i.next(e))}catch(e){r(e)}}function s(e){try{l(i.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?a(e.value):((t=e.value)instanceof n?t:new n((function(e){e(t)}))).then(o,s)}l((i=i.apply(e,t||[])).next())}))};class Ti{static getPendingSecondaryEventCampaign(e){return _i(this,void 0,void 0,(function*(){return yield _n.pendingSecondaryEvents.getItem(e)}))}static setPendingSecondaryEventCampaign(e,t){return _i(this,void 0,void 0,(function*(){yield _n.pendingSecondaryEvents.setItem(e,t)}))}static removePendingSecondaryEventCampaign(e){return _i(this,void 0,void 0,(function*(){yield _n.pendingSecondaryEvents.removeItem(e)}))}static getPendingSecondaryEventKeys(){return _i(this,void 0,void 0,(function*(){return yield _n.pendingSecondaryEvents.keys()}))}static getPendingTimerCampaign(e){return _i(this,void 0,void 0,(function*(){return yield _n.pendingTimerCampaigns.getItem(e)}))}static setPendingTimerCampaign(e,t){return _i(this,void 0,void 0,(function*(){yield _n.pendingTimerCampaigns.setItem(e,t)}))}static removePendingTimerCampaign(e){return _i(this,void 0,void 0,(function*(){yield _n.pendingTimerCampaigns.removeItem(e)}))}static getPendingTimerKeys(){return _i(this,void 0,void 0,(function*(){return yield _n.pendingTimerCampaigns.keys()}))}static getTriggeringPrimaryEvent(e){return _i(this,void 0,void 0,(function*(){return yield _n.triggeringPrimaryEvents.getItem(e)}))}static setTriggeringPrimaryEvent(e,t){return _i(this,void 0,void 0,(function*(){yield _n.triggeringPrimaryEvents.setItem(e,t)}))}static removeTriggeringPrimaryEvent(e){return _i(this,void 0,void 0,(function*(){yield _n.triggeringPrimaryEvents.removeItem(e)}))}static getTriggeringPrimaryEventKeys(){return _i(this,void 0,void 0,(function*(){return yield _n.triggeringPrimaryEvents.keys()}))}static removeCampaignFromStores(e){return _i(this,void 0,void 0,(function*(){yield Ti.removePendingSecondaryEventCampaign(e),yield Ti.removePendingTimerCampaign(e)}))}}var Ii=function(e,t,n,i){return new(n=n||Promise)((function(a,r){function o(e){try{l(i.next(e))}catch(e){r(e)}}function s(e){try{l(i.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?a(e.value):((t=e.value)instanceof n?t:new n((function(e){e(t)}))).then(o,s)}l((i=i.apply(e,t||[])).next())}))};class Ai{static setListener(e){this.listener=e}static destroy(){this.listener=null,this.deliveryStats=null}static setDeliveryStats(e){this.deliveryStats=e}static createNewTimers(){return Ii(this,void 0,void 0,(function*(){var e=this.baseLogTag+".createNewTimers",t=yield Ti.getPendingTimerKeys();for(let a=0;aIi(this,void 0,void 0,(function*(){yield this.checkAndInvokeListener(e),yield Ti.removeCampaignFromStores(e)}))),t);n={startTime:Date.now(),timerId:n,timer:t},yield Ti.setPendingTimerCampaign(e,n)}))}static checkAndInvokeListener(e){return Ii(this,void 0,void 0,(function*(){var t=this.baseLogTag+".checkAndInvokeListener",n=yield Kn(e);null!=n&&n.campaignId&&((yield this.isSatisfyingEventsArray(e))?si.getURLFilterResult(n)&&(Ue.log(1,t,`Campaign ${e} satisfies the secondary_condition and the url_condition after timer has elapsed`),this.closeProximityTimerCampaigns.push(n),this.closeProximityCampaignsTimeout||(this.closeProximityCampaignsTimeout=setTimeout((()=>{this.listener(this.closeProximityTimerCampaigns),this.closeProximityTimerCampaigns=[],this.closeProximityCampaignsTimeout=null}),500))):(Ue.warn(1,t,`Campaign: ${e} does not satisfy secondary_condition after its timer has elapsed. Removing its entry from secondary stores`),this.deliveryStats.setStats(n,le.DELIVERY_FUNNEL.ATTEMPTED.CAMPAIGN_ATTEMPTED),this.deliveryStats.setStats(n,le.DELIVERY_FUNNEL.EVALUATION.CAMPAIGN_EVALUATION_PATH_TIME_EXPIRED),this.deliveryStats.sendDeliveryStats([n])))}))}static checkIfPendingAction(e,t){return t===wn.AND&&!e.events.some((e=>1===e.filters.length&&!e.filters[0].executed))}static isSatisfyingEventsArray(e){return Ii(this,void 0,void 0,(function*(){var t=yield Ti.getPendingSecondaryEventCampaign(e);if(null!=t&&t.events){if(!t.events.length)return!0;var n=t.operator;for(let e=0;e=r.timer&&(yield this.isSatisfyingEventsArray(a))&&null!=(r=yield Kn(a))&&r.campaignId&&(Ue.warn(1,e,`Campaign: ${a} contained 'has not executed' event(s) and had satisfied secondary_condition, but the website was closed when the timer elapsed`),i.push(r),yield this.deleteTimerAndRemoveFromStores(a))}this.sendUserNotOnAppStat(i)}))}static sendUserNotOnAppStat(e){var t;for(let t=0;t{if("nested_filters"===e.filter_type){const t={operator:e.filters.filter_operator,filters:[]};e.filters.filters.forEach((e=>{t.filters.push(e),!1===e.executed&&(i=!0)})),n.events.push(t)}else{var t={operator:n.operator===wn.AND?wn.OR:wn.AND,filters:[e]};n.events.push(t),!1===e.executed&&(i=!0)}})),n.updated_time=Date.now(),n.time_left=1e3*e.triggerData.trigger_wait_time.wait_period,{campaignEntry:n,isCampaignTimerSet:i}}static pruneRemovedCampaigns(){return wi(this,void 0,void 0,(function*(){var e=this.baseLogTag+".pruneRemovedCampaigns";const t=(yield jn()).map((e=>e.campaignId));var n=yield Ti.getPendingSecondaryEventKeys();for(let a=0;ae.toBeRemoved)))||(Ue.log(1,n,`Campaign: ${s}, triggered by event: ${e.name}, is eligible for further processing`),i.push(s))):c===wn.AND&&(o.toBeRemoved=!0,r.filters.every((e=>e.toBeRemoved))&&(r.toBeRemoved=!0,(d===wn.OR||d===wn.AND&&m.events.every((e=>e.toBeRemoved)))&&(Ue.log(1,n,`Campaign: ${s}, triggered by event: ${e.name}, is eligible for further processing`),i.push(s)))):c===wn.OR?(o.toBeRemoved=!0,r.filters.every((e=>e.toBeRemoved))&&(d===wn.AND||d===wn.OR&&1===m.events.length?(Ue.warn(1,n,`The event: ${e.name} breaks secondary conditons of the campaign: ${s}. Removing the campaign from secondary stores and clearing any setTimeout associated to it`),a.push(s)):r.toBeRemoved=!0)):c===wn.AND&&(r.toBeRemoved=!0,1===m.events.length&&m.events[0].toBeRemoved&&d===wn.OR&&(Ue.warn(1,n,`The event: ${e.name} breaks secondary conditons of the campaign: ${s}. Removing the campaign from secondary stores and clearing any setTimeout associated to it`),a.push(s))))}}a.includes(s)||i.includes(s)||(yield this.updatePendingSecondaryEvents(s,m))}}return this.sendPathTimeExpiredStat(r),yield this.clearCampaignsData(a),yield this.clearCampaignsData(i),i}))}static sendPathTimeExpiredStat(e){for(let n=0;n!e.toBeRemoved));for(let e=0;e!e.toBeRemoved))}yield Ti.setPendingSecondaryEventCampaign(e,t)}))}static clearCampaignsData(e){return wi(this,void 0,void 0,(function*(){for(let t=0;twi(this,void 0,void 0,(function*(){n.includes(t)||(Ue.warn(1,e,`Campaign: ${t} does not exist in pendingSecondaryEvents store but exists in triggeringPrimaryEvents store. Removing it from triggeringPrimaryEvents store`),yield Ti.removeTriggeringPrimaryEvent(t))}))))}))}}Di.baseLogTag="SecondaryEventsManager",Di.deliveryStats=null;var Oi=function(e,t,n,i){return new(n=n||Promise)((function(a,r){function o(e){try{l(i.next(e))}catch(e){r(e)}}function s(e){try{l(i.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?a(e.value):((t=e.value)instanceof n?t:new n((function(e){e(t)}))).then(o,s)}l((i=i.apply(e,t||[])).next())}))};class Pi{constructor(e){this.primaryEventsHash={},this.secondaryEventsHash={},this.messagingCampaigns=[],this.scrollCampaigns=[],this.scrollCampaignTriggered=!1,this.exitIntentCampaigns=[],this.exitCampaignTriggered=!1,this.listener=null,this.historyManager=window[se],this.onEvent=e=>Oi(this,void 0,void 0,(function*(){var t=Pi.baseLogTag+".onEvent";try{null!=this.primaryEventsHash[e.name]&&(yield this.handlePrimaryEvent(e)),null!=this.secondaryEventsHash[e.name]&&(yield this.handleSecondaryEvent(e))}catch(e){Ue.error(1,t,"Error occurred during check event trigger campaigns: ",e)}})),this.onScroll=e=>Oi(this,void 0,void 0,(function*(){const t=Pi.baseLogTag+".onScroll";try{if(this.scrollCampaigns&&0Oi(this,void 0,void 0,(function*(){var i,a=null===(i=null===(a=null===(i=null===(a=null===(i=null==n?void 0:n.triggerData)||void 0===i?void 0:i.primary_condition)||void 0===a?void 0:a.included_filters)||void 0===i?void 0:i.filters[0])||void 0===a?void 0:a.attributes)||void 0===i?void 0:i.filters[0];a&&(i=new ut(a.name,a.value),i=yield $t.createEvent(w,[i]),si.getFilterResult(i,n)&&e>a.value&&!this.scrollCampaignTriggered&&(this.scrollCampaignTriggered=!0,window.removeEventListener("scroll",this.scrollListenerCallback),Ue.log(1,t,"Triggered Scroll campaign"),this.trigger([n],i)))}))))}}catch(n){Ue.error(1,t,"Error occurred in triggering scroll campaigns ",n)}})),this.onExit=e=>Oi(this,void 0,void 0,(function*(){var t=Pi.baseLogTag+".onExit";try{if(0si.getFilterResult(i,e)));n.length?(Ue.log(1,t,"Triggered Exit Intent campaign: ",n),this.trigger(n,i)):("onBackClick"===e&&window.history.back(),Ue.log(1,t,"No Exit Intent campaign is eligible."))}}catch(n){Ue.error(1,t,"Error occurred in triggering exit intent campaigns ",n)}})),this.messagingCampaigns=e,this.windowEventManager=new bi}onTrigger(e){this.listener=e}handlePrimaryEvent(e){return Oi(this,void 0,void 0,(function*(){var t=Pi.baseLogTag+".handlePrimaryEvent",n=this.primaryEventsHash[e.name];const i=[],a=[];for(let e=0;esi.didPrimaryEventFilterTrigger(e,t)));o.length&&(yield Di.createPendingSecondaryEvents(o,e)),o=a.filter((t=>si.getFilterResult(e,t))),o.length&&(Ue.log(1,t,`Campaigns triggered for event ${e.name}: `+o.length),this.trigger(o,e))}))}handleSecondaryEvent(e){return Oi(this,void 0,void 0,(function*(){var t=Pi.baseLogTag+".handleSecondaryEvent",n=yield Di.updatePendingSecondaryEventsHistory(e,this.secondaryEventsHash[e.name]);let i=[];for(let e=0;esi.getURLFilterResult(e))),i.length&&(Ue.log(1,t,`Campaigns triggered by secondary event "${e.name}": `+i.length),this.trigger(i))}))}getCampaignsFromHash(e){return Oi(this,void 0,void 0,(function*(){const t=[];var n=this.primaryEventsHash[e];if(null!=n&&n.length)for(let e=0;e{this.addEntryInEventsHash(this.primaryEventsHash,t.action_name,e.campaignId)}))}createSecondaryEventsHash(e){const t=Le(e,"triggerData.secondary_condition.included_filters.filters",[]);null!=t&&t.forEach((t=>{"nested_filters"===t.filter_type?t.filters.filters.forEach((t=>{this.addEntryInEventsHash(this.secondaryEventsHash,t.action_name,e.campaignId)})):this.addEntryInEventsHash(this.secondaryEventsHash,t.action_name,e.campaignId)}))}startWatching(){return Oi(this,void 0,void 0,(function*(){Pi.baseLogTag,this.messagingCampaigns.forEach((e=>{this.createPrimaryEventsHash(e),this.createSecondaryEventsHash(e)})),this.historyManager&&(this.historyManager.getHistory().forEach(this.onEvent),this.historyManager.addEventListener(this.onEvent)),this.scrollCampaignTriggered=!1,this.scrollCampaigns=this.messagingCampaigns.filter((e=>Fn(e,w))),0Fn(e,A))),0this.active,this.campaignMeta=e,this.data=t,this.active=!1,this.campaignRendered=!1;const n=Le(e,"triggerData.trigger_delay.delayInSeconds",0)||0;this.waitForDelay=new Promise((e=>{this.delayTimer=setTimeout((()=>{this.campaignRendered=!0,e()}),1e3*n)}))}setIsActive(e){this.active=e}}const Ci={CENTER:{position:"absolute",top:"50%",left:"50%",bottom:"auto",right:"auto",transform:"translate(-50%, -50%)"},CENTER_LEFT:{position:"absolute",top:"50%",left:"10px",bottom:"auto",right:"auto",transform:"translate(0,-50%)"},CENTER_RIGHT:{position:"absolute",top:"50%",right:"10px",bottom:"auto",left:"auto",transform:"translate(0,-50%)"},TOP_LEFT:{position:"absolute",top:"10px",left:"10px",bottom:"auto",right:"auto"},TOP_CENTER:{position:"absolute",top:"0",left:"50%",bottom:"auto",right:"auto",transform:"translate(-50%, 0)"},TOP_RIGHT:{position:"absolute",top:"10px",right:"10px",bottom:"auto",left:"auto"},BOTTOM_LEFT:{position:"absolute",bottom:"10px",left:"10px",top:"auto",right:"auto"},BOTTOM_CENTER:{position:"absolute",left:"50%",bottom:"10px",top:"auto",right:"auto",transform:"translate(-50%, 0)"},BOTTOM_RIGHT:{position:"absolute",bottom:"10px",right:"10px",top:"auto",left:"auto"},TOP:{position:"absolute",top:"0",left:"50%",bottom:"auto",right:"auto",transform:"translate(-50%, 0)"},BOTTOM:{position:"absolute",bottom:"0",top:"auto",right:"auto",left:"50%",transform:"translate(-50%, 0)"},LEFT:{position:"absolute",left:"0",bottom:"auto",right:"auto",top:"auto"},RIGHT:{position:"absolute",right:"0",bottom:"auto",left:"auto",top:"auto"}},Li=e=>{try{return!Ri()&&window.Moengage.onsite.displayManager.campaignRenderMap[e].campaignMeta}catch(t){Ue.error(1,"OsmFunctions.getCampaignMeta","Campaign meta not found: "+e)}},Ri=()=>!!window.Moengage.onsite.displayManager.testCampaign&&(Ue.log(1,"OsmFunctions.isTestCampaign","Test campaign element. No data will be sent to BE right now. We'll start tracking events once the campaign is live"),!0);function Mi(){const e=Me();if(e)return e.accessibilityFocusTrap||(e.accessibilityFocusTrap={lastActiveElement:[],dismissOsmEventHandlers:{},keyboardTrapHandler:null,focusTrapStack:[],focusedElements:[]}),e.accessibilityFocusTrap}function ki(e){const t=Mi();t&&(t.keyboardTrapHandler=e)}function xi(e){const t=Mi();if(t){t.dismissOsmEventHandlers[e]&&Bi(e);var n=function(e,t){"Escape"===t.key&&(window.MoeOsm.trackDismiss(e),window.MoeOsm.dismissMessage(e))}.bind(null,e);t.dismissOsmEventHandlers[e]=n,window.addEventListener("keyup",n),e=zn(e);const i=document.getElementById(e);i&&"IFRAME"===i.tagName&&i.contentWindow&&i.contentWindow.addEventListener("keyup",n)}}function Bi(e){const t=Mi();if(t){var n=t.dismissOsmEventHandlers[e];if(n){window.removeEventListener("keyup",n);var i=zn(e);const a=document.getElementById(i);a&&"IFRAME"===a.tagName&&a.contentWindow&&a.contentWindow.removeEventListener("keyup",n),delete t.dismissOsmEventHandlers[e]}}}function Ui(){const e=Mi();if(e){const t=e.lastActiveElement.pop();((null==t?void 0:t.id)===Ne?t.contentDocument.getElementById(Ce):t&&"function"==typeof t.focus?t:document.body).focus()}}function Wi(e,t,n=!1){var i=zn(e);(i=document.getElementById(i))&&(xi(e),function(e){if(e){const t=e.querySelector(".brz-popup2__preview");let n="A pop-up has appeared on screen",i="dialog";t&&(t.hasAttribute("aria-label")&&(n=t.getAttribute("aria-label"),t.removeAttribute("aria-label")),t.hasAttribute("role")&&(i=t.getAttribute("role"))),e.setAttribute("tabindex","0"),e.setAttribute("aria-label",n),e.setAttribute("role",i),e.setAttribute("aria-modal","true")}}(i),t===Dn.POP_UP?function(e,t=document,n=!1){const i=Mi();if(i){const r=Fi(e)||e;if(r){!function(e){const t=Mi();var n;t&&e&&e.parentElement&&(-1!==(n=t.focusTrapStack.indexOf(e))&&t.focusTrapStack.splice(n,1),t.focusTrapStack.push(e),Ki())}(e);var a=r.querySelectorAll('a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])');if(0!==(null==a?void 0:a.length)){const o=a[0],s=a[a.length-1];Hi(r,!0,n);let l=null;n=n=>{if("Tab"===n.key){let i=!1,a=t.activeElement;if("IFRAME"===e.tagName){const t=e.contentDocument;t&&t.activeElement&&(a=t.activeElement,i=a===t.body||t.body.contains(a))}else i=a===e||e.contains(a);return i?(a&&"moe-focus-trap-end"!==a.id&&(l=a),a&&"moe-focus-trap-end"===a.id?(n.preventDefault(),void(n.shiftKey?l||s:o).focus()):void(n.shiftKey&&a===o?(n.preventDefault(),s.focus()):n.shiftKey||a!==s||(n.preventDefault(),o.focus()))):(n.preventDefault(),void e.focus())}},i.keyboardTrapHandler&&t.removeEventListener("keydown",i.keyboardTrapHandler),ki(i.keyboardTrapHandler=n),t.addEventListener("keydown",i.keyboardTrapHandler)}else r.hasAttribute("tabindex")&&"-1"!==r.getAttribute("tabindex")&&r.focus()}}}(i,document,n):Hi(i,!1,n))}function Hi(e,t=!1,n=!0){if(e){const a=Mi();if(a)if(n&&function(e){const t=Mi(),n=parseInt(window.getComputedStyle(e).zIndex,10)||0;t.focusedElements=t.focusedElements.filter((e=>document.body.contains(e))),t.focusedElements.forEach((e=>{var t=parseInt(window.getComputedStyle(e).zIndex,10)||0;t>=n&&(e.style.zIndex=(t-1).toString())})),t.focusedElements.push(e)}(e),0{e.focus()}))}}function Ki(){if(t=Mi()){document.querySelectorAll('[aria-hidden][data-prev-aria-hidden], [aria-hidden]:not([role="dialog"])').forEach((e=>{e instanceof HTMLElement&&("false"===e.getAttribute("data-prev-aria-hidden")?(e.removeAttribute("aria-hidden"),e.removeAttribute("data-prev-aria-hidden")):e.removeAttribute("aria-hidden"))})),document.querySelectorAll("[data-prev-tabindex]").forEach((e=>{var t;e instanceof HTMLElement&&(""===(t=e.getAttribute("data-prev-tabindex"))?e.removeAttribute("tabindex"):e.setAttribute("tabindex",t),e.removeAttribute("data-prev-tabindex"))}));const n=t.focusTrapStack[t.focusTrapStack.length-1];if(document.querySelectorAll('[role="dialog"][aria-modal="true"]').forEach((e=>{e instanceof HTMLElement&&e!==n&&(e.removeAttribute("role"),e.removeAttribute("aria-modal"))})),0!==t.focusTrapStack.length){const i=[];var e=["a[href]","button","input","select","textarea","[tabindex]",'[contenteditable="true"]'].join(","),t=n.parentElement;if(t){for(const a of Array.from(t.children))a!==n&&a instanceof HTMLElement&&(a.hasAttribute("aria-hidden")||a.setAttribute("data-prev-aria-hidden","false"),a.setAttribute("aria-hidden","true"),i.push(a),a.querySelectorAll(e).forEach((e=>{e.hasAttribute("data-prev-tabindex")||(e.hasAttribute("tabindex")?e.setAttribute("data-prev-tabindex",e.getAttribute("tabindex")):e.setAttribute("data-prev-tabindex","")),e.setAttribute("tabindex","-1")})));n._ariaHiddenSiblings=i}}}}var ji=function(e,t,n,i){return new(n=n||Promise)((function(a,r){function o(e){try{l(i.next(e))}catch(e){r(e)}}function s(e){try{l(i.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?a(e.value):((t=e.value)instanceof n?t:new n((function(e){e(t)}))).then(o,s)}l((i=i.apply(e,t||[])).next())}))};function Vi(e,t,n,i,a){return ji(this,void 0,void 0,(function*(){const r=zn(t),o=/moe-campaign-id/g;yield ji(this,void 0,void 0,(function*(){try{let c=e.root;const{styles:u,scripts:g}=e,h=document.createElement("div");h.id=r,n.parentNode.insertBefore(h,n);const m=document.querySelector("#"+r),p=new DOMParser;c=c.replace(o,t);var s=p.parseFromString(c,"text/html");yield function(e){return ji(this,void 0,void 0,(function*(){try{const t=e.getElementsByTagName("a");for(let e=t.length-1;0<=e;e--)""===t[e].getAttribute("href")&&t[e].removeAttribute("href")}catch(e){Ue.error(2,"InsertCustomHtmlJs.removeEmptyHrefTags","Error while removing Empty href attributes",e)}}))}(s),function(e){try{["trackEvent","trackClick","trackDismiss","dismissMessage","leadGenFormSubmit","fetchRatingValue"].forEach((n=>{!function(e,n){e.querySelectorAll("[onclick]").forEach((e=>{var i=e.getAttribute("onclick").replace(new RegExp(n+"\\((.*?)\\)","g"),((e,i)=>i?n+`('${t}',${i})`:n+`('${t}')`));e.setAttribute("onclick",i)}))}(e,n)}))}catch(e){Ue.error(2,"InsertCustomHtmlJs.addCampaignId","Error while adding Campaign Id",e)}}(s);const v=u.map((e=>p.parseFromString(e,"text/html").head.childNodes[0]));var l=g.map((e=>(e=e.replace(o,t),p.parseFromString(e,"text/html").head.childNodes[0]))),d=v.map((e=>new Promise(((t,n)=>{!function(e){const{node:t,onLoad:n,onError:i}=e;t instanceof HTMLMetaElement||"dns-prefetch"===t.getAttribute("rel")?n():(t.onload=()=>n(),t.onerror=()=>i()),document.querySelector("#"+r).appendChild(t)}({node:e,onLoad:t,onError:n})}))));yield Promise.all(d).catch((e=>{Ue.warn(1,"InsertCustomHtmlJs","Error loading Styles",(null==e?void 0:e.message)||"")}));const f=s.body.childNodes[0];m.appendChild(f),[...f.querySelectorAll(".brz-embed-code script")].map((e=>{!function(e){const t=document.createElement("script");t.innerHTML=e.innerHTML;for(let a=0;a{const a=document.createElement("script");for(let n=0;n{var e,n;window.Brz.emit("init.dom",window.jQuery(f)),Ue.log(1,"InsertCustomHtmlJs","Custom HTML/JS DOM Level OSM Insertion: "+r),e=t,n=i.templateType,e&&(xi(e),window.Brz.on("elements.popup.open",Wi.bind(null,e,n))),a&&a(i,"OSM")()})).catch((e=>{Ue.warn(1,"InsertCustomHtmlJs","Error loading script",(null==e?void 0:e.message)||"")}))}catch(e){Ue.error(2,"InsertCustomHtmlJs","Failed to Insert OSM into DOM: "+r)}}))}))}var zi=function(e,t,n,i){return new(n=n||Promise)((function(a,r){function o(e){try{l(i.next(e))}catch(e){r(e)}}function s(e){try{l(i.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?a(e.value):((t=e.value)instanceof n?t:new n((function(e){e(t)}))).then(o,s)}l((i=i.apply(e,t||[])).next())}))};class Yi{constructor(){this.renderListener=null,this.initializationPromiseObject=null,this.campaignRenderOrder=[],this.campaignRenderMap={},this.dismissTestInapp=e=>{Gi(),Bi(e),Ui(),this.initialInlineBodyStyle?document.body.setAttribute("style",this.initialInlineBodyStyle):document.body.removeAttribute("style"),this.removeOSMPusher(),this.pushCardsTemplate(0),setTimeout((()=>{var t;return null===(t=document.getElementById("moe-onsite-campaign-"+e))||void 0===t?void 0:t.remove()}),0)},this.dismissInapp=e=>{if(Gi(document.getElementById(zn(e))),Ui(),Bi(e),0!==this.getActiveCampaigns().length){const t=this.getActiveCampaigns();setTimeout((()=>{t.forEach((t=>{var n;t.campaignMeta.campaignId===e&&(t.iframe?null!==(n=t.iframe)&&void 0!==n&&n.remove():null!==(t=t.osmDivSelector)&&void 0!==t&&t.remove())}))}),0),this.campaignRenderMap[e].setIsActive(!1),this.campaignRenderOrder=this.campaignRenderOrder.filter((t=>t!==e)),clearInterval(this.campaignRenderMap[e].dismissInterval),this.campaignRenderMap[e].delayTimer=null,this.renderAllActiveCampaigns()}else this.dismissTestInapp(e)},this.clickTracker=Pn,this.dismissEvent=Ln,this.startInitialization(),this.initialInlineBodyStyle=document.body.getAttribute("style")}startInitialization(){return zi(this,void 0,void 0,(function*(){var e=Yi.baseLogTag+".startInitialization";try{null==this.initializationPromiseObject&&(this.initializationPromiseObject=new it),this.initializationPromiseObject.res()}catch(t){Ue.error(1,e,"Error initializing display managaer:",t)}}))}getOSMPusher(e){const t=document.createElement("div");if(t.id=le.PUSH_BANNER,t.style.setProperty("display","block","important"),t.style.height=e+"px","FRAMESET"===document.body.nodeName){const e=document.head;e.parentNode.insertBefore(t,e)}else{const e=document.body.firstChild;e.parentNode.insertBefore(t,e)}return t}removeOSMPusher(){var e;null!==(e=document.getElementById(le.PUSH_BANNER))&&void 0!==e&&e.remove()}queueDraftCampaign(e,t){return zi(this,void 0,void 0,(function*(){var n=Yi.baseLogTag+".queueDraftCampaign";try{yield this.initializationPromiseObject.p,e.position=t.position,this.testCampaign=e;var i=!("1"!==t.editorVersion||!t.htmlJsonPayload);const a=!i&&Yi.createDefaultIframe(this.testCampaign.draftId,t.payload);let r;Ue.warn(1,n,"Going to render test campaign "+e.draftId),r="FRAMESET"===document.body.nodeName?this.getOSMPusher(0):document.body.firstChild,i?(yield Vi(t.htmlJsonPayload,this.testCampaign.draftId,r,{templateType:e.templateType}),this.renderTestCampaign(e,a,t)):(r.parentNode.insertBefore(a,r),a.onload=()=>{a.contentWindow.postMessage({campaignId:e.draftId},"*"),"1"===t.editorVersion?this.handleBridgeInsertion(a.contentDocument,e.draftId):this.handleClassBasedTrackingForTestCampaign(a,t,e),this.renderTestCampaign(e,a),Wi(e.draftId,e.templateType)})}catch(e){Ue.error(1,n,"Error queueing draft campaign",e)}}))}renderTestCampaign(e,t,n){return zi(this,void 0,void 0,(function*(){if(t){var i;t.style.visibility="hidden",t.style.display="block",t.style.zIndex="2147483647",e.displaySettings.config.blocking?(t.style.height=window.innerHeight+"px",t.style.width="100%"):(t.style.height=getComputedStyle(t.contentDocument.body).height,t.style.width=getComputedStyle(t.contentDocument.body).width,e.templateType===Dn.POP_UP&&(t.style.margin="0px auto"),-1Vi(t.htmlJsonPayload,e.campaignId,n,e,Nn):(n=Yi.createDefaultIframe(e.campaignId,this.campaignRenderMap[e.campaignId].data.payload),this.campaignRenderMap[e.campaignId].iframe=n),yield this.campaignRenderMap[e.campaignId].waitForDelay,(yield this.canCampaignBeRendered(e))?(Ue.warn(1,i,"Going to render "+e.campaignId),this.campaignRenderMap[e.campaignId].setIsActive(!0),null!=this.renderListener&&this.renderListener(e),this.renderAllActiveCampaigns()):Ue.warn(1,i,"Can not render "+e.campaignId)):Ue.warn(1,i,`Can not render ${e.campaignId}, as campaign is already Active.`)}catch(n){Ue.error(1,i,"Error queuing campaign "+e.campaignId,n)}}))}renderAllActiveCampaigns(){return zi(this,void 0,void 0,(function*(){var e,t=Yi.baseLogTag+".renderAllActiveCampaigns";const n=this.getActiveCampaigns();if(this.restoreBodyStyle(),0{qi.setScrollState(n),n[i].iframe.contentWindow.postMessage({campaignId:n[i].campaignMeta.campaignId},"*"),"1"===n[i].campaignMeta.editorVersion?(this.handleBridgeInsertion(n[i].iframe.contentDocument,n[i].campaignMeta.campaignId,n[i].campaignMeta),this.changeAnchorTagReDirectionMethod(n[i].iframe)):this.handleClassBasedTracking(n[i]),n[i].onFrameLoad.res()})}yield n[i].onFrameLoad.p,n[i].isJSONPayloadApproach?(Ue.log(1,t,"zindex for "+n[i].campaignMeta.campaignId,2147483647..toString()),n[i].osmDivSelector.style.zIndex=(2147483647-(n.length-i-1)).toString(),this.liveCampaignPositionStyling(n[i].campaignMeta,n[i].osmDivSelector)):(n[i].iframe.style.visibility="hidden",n[i].iframe.style.display="block",Ue.log(1,t,"zindex for "+n[i].campaignMeta.campaignId,2147483647..toString()),n[i].iframe.style.zIndex=(2147483647-(n.length-i-1)).toString(),n[i].iframe.style.margin="0",n[i].campaignMeta.display.config.blocking?(n[i].iframe.style.height=window.innerHeight+"px",n[i].iframe.style.width="100%"):(n[i].iframe.style.height=getComputedStyle(n[i].iframe.contentDocument.body).height,n[i].iframe.style.padding.includes("10px")?n[i].iframe.style.width=parseInt(getComputedStyle(n[i].iframe.contentDocument.body).width)+20+"px":n[i].iframe.style.width=getComputedStyle(n[i].iframe.contentDocument.body).width,n[i].campaignMeta.templateType===Dn.POP_UP&&(n[i].iframe.style.margin="0px auto"),n[i].data.payload&&-1{const e=this.campaignRenderMap[n[i].campaignMeta.campaignId];e&&e.isActive()&&(this.dismissInapp(n[i].campaignMeta.campaignId),window.MoeFocusHandler&&window.MoeFocusHandler(),Ln(n[i].campaignMeta,"OSM",!0))}),e))}else n[i].iframe.style.zIndex=(2147483647-(n.length-i-1)).toString();this.bannerLiveCampaignsStyling(n)}}))}restoreBodyStyle(){this.removeOSMPusher(),this.pushCardsTemplate(0);let e=0;Object.keys(this.campaignRenderMap).forEach((t=>{this.campaignRenderMap[t].campaignMeta.templateType===Dn.POP_UP&&this.campaignRenderMap[t].isActive()&&e++})),1<=e||(this.initialInlineBodyStyle?document.body.setAttribute("style",this.initialInlineBodyStyle):document.body.removeAttribute("style"))}canCampaignBeRendered(e){return zi(this,void 0,void 0,(function*(){var t=Yi.baseLogTag+".canCampaignBeRendered";try{var n=yield _n.campaingsStatsStore.getItem(e.campaignId),i=yield _n.serviceMetaStore.getItem(le.STORES.SERVICE_META.KEYS.GLOBAL_DELAY),a=yield _n.serviceMetaStore.getItem(le.STORES.SERVICE_META.KEYS.LAST_INAPP_SHOWN_TIME);return kn.isValid(e,n)&&kn.isValidMessagingCampaign(e,n,i,a,this.getActiveCampaigns())&&si.getURLFilterResult(e)}catch(n){Ue.error(1,t,`Error checking if campaign ${e.campaignId} can be rendered:`,n)}return!1}))}static createDefaultIframe(e,t){Yi.baseLogTag,e=zn(e);const n=document.createElement("iframe");return n.setAttribute("id",e),n.style.left="0px",n.style.top="0px",n.style.bottom="0px",n.style.right="0px",n.style.border="0px none",n.style.height="100%",n.style.width=window.innerWidth.toString()+"px",n.style.padding="0",n.style.overflow="hidden",n.style.overflowY="hidden",n.style.zIndex="999999",n.style.display="none",n.style.position="fixed",n.setAttribute("srcdoc",t),n}onRender(e){this.renderListener=e}getActiveCampaigns(){return this.campaignRenderOrder.map((e=>this.campaignRenderMap[e])).filter((e=>e.isActive()))}destroy(){this.getActiveCampaigns().forEach((e=>{e.setIsActive(!1)})),this.renderAllActiveCampaigns(),this.campaignRenderOrder=[],this.campaignRenderMap={}}adjustPositionOfCampaign(e,t,n){t&&(Object.assign(e,Ci[t]),et()&&n&&this.addMarginInMweb(e,t))}addMarginInMweb(e,t){const n={paddingLeft:"10px",paddingRight:"10px",marginTop:"0",marginBottom:"0"};"TOP"===t&&(n.marginTop="10px"),"BOTTOM"===t&&(n.marginBottom="10px"),Object.assign(e,n)}handleBridgeInsertion(e,t,n){var i=Yi.baseLogTag+".handleBridgeInsertion";try{e.head.append(((e,t)=>{const n=document.createElement("script");return n.type="text/javascript",n.text=(t=t,`\n const moeSDK = window.parent.Moengage;\n let moeOsmCampaignMeta = ${JSON.stringify(e)};\n const moengage = {\n trackEvent: function (eventName, eventAttr, isNonInteractive) {\n if(moeOsmCampaignMeta) {\n return moeSDK.track_event(eventName, eventAttr);\n }\n return Promise.resolve();\n },\n trackClick: function (id) {\n if(moeOsmCampaignMeta) {\n return moeSDK.onsite.displayManager.clickTracker(OsmCampaignMeta, 'OSM', {\n widget_id: id,\n })();\n }\n return Promise.resolve();\n },\n trackDismiss: function (isAuto = false) {\n if(moeOsmCampaignMeta) {\n return moeSDK.onsite.displayManager.dismissEvent(OsmCampaignMeta, 'OSM', isAuto);\n }\n return Promise.resolve();\n },\n setAlias: function (data) {\n return moeSDK.update_unique_user_id(data);\n },\n setUniqueId: function (data) {\n return moeSDK.add_unique_user_id(data);\n },\n identifyUser: function(data) {\n return moeSDK.identifyUser(data);\n },\n destroySession: function () {\n return moeSDK.destroy_session();\n },\n setUserName: function (data) {\n return moeSDK.add_user_name(data);\n },\n setFirstName: function (data) {\n return moeSDK.add_first_name(data);\n },\n setLastName: function (data) {\n return moeSDK.add_last_name(data);\n },\n setEmailId: function (data) {\n return moeSDK.add_email(data);\n },\n setMobileNumber: function (data) {\n return moeSDK.add_mobile(data);\n },\n setGender: function (data) {\n return moeSDK.add_gender(data);\n },\n setBirthDate: function (data) {\n //iso date format only\n return moeSDK.add_birthday(data);\n },\n setUserAttribute: function (name, value) {\n return moeSDK.add_user_attribute(name, value);\n },\n dismissMessage: function () {\n setTimeout(() => {\n moeSDK.onsite.displayManager.dismissInapp('${t}');\n }, 100)\n },\n showPushOptIn: function (config) {\n return moeSDK.call_web_push(config);\n },\n copyText: function (selector) {\n return new Promise((res, rej) => {\n if(!selector) rej();\n var text = document.querySelector(selector);\n if(text.textContent) {\n navigator.clipboard.writeText(text.textContent);\n res(null);\n }\n else {\n text.select();\n text.setSelectionRange(0, 99999);\n navigator.clipboard.writeText(text.value);\n res(null);\n }\n })\n }\n }\n const MoeOsm = moengage;\n `),n.setAttribute("data-moe-script","1"),n})(n,t)),Ue.log(2,i,"JS-bridge script inserted successfully",t)}catch(e){Ue.warn(2,i,"Failed to insert OSM JS Bridge: ",t)}}handleClassBasedTrackingForTestCampaign(e,t,n){const i=Yi.baseLogTag+".handleClassBasedTrackingForTestCampaign";var a=e=>Array.prototype.slice.call(e),r=a(e.contentDocument.getElementsByClassName(le.CSS_SELECTORS.DISMISS_INAPP)),o=a(e.contentDocument.getElementsByClassName(le.CSS_SELECTORS.CLICK_INAPP));if(a=a(e.contentDocument.getElementsByTagName("a")),0===r.length&&Ue.warn(1,i,"No dismiss class items present in this template"),0===o.length&&Ue.warn(1,i,"No click class items present in this template"),-1{e.target&&e.target.classList.contains(le.CSS_SELECTORS.CLICK_INAPP)&&Ue.log(1,i,"Clicked on test campaign element. No data will be sent to BE right now. We'll start sending the click events once the campaign is live"),e.target&&e.target.classList.contains(le.CSS_SELECTORS.DISMISS_INAPP)&&this.dismissTestInapp(n.draftId)}));else{for(const e of o)e.addEventListener("click",(e=>{Ue.log(1,i,"Clicked on test campaign element. No data will be sent to BE right now. We'll start sending the click events once the campaign is live")}));for(const e of r)e.addEventListener("click",(()=>{this.dismissTestInapp(n.draftId)}))}for(const e of a)"_blank"!==e.getAttribute("target")&&e.setAttribute("target","_parent")}handleClassBasedTracking(e){var t=Yi.baseLogTag+".handleClassBasedTracking",n=e=>Array.prototype.slice.call(e);const i=e.iframe;var a=n(i.contentDocument.getElementsByClassName(le.CSS_SELECTORS.DISMISS_INAPP)),r=n(i.contentDocument.getElementsByClassName(le.CSS_SELECTORS.CLICK_INAPP));if(n=n(i.contentDocument.getElementsByTagName("a")),0===a.length&&Ue.warn(1,t,"No dismiss class items present in this template"),0===r.length&&Ue.warn(1,t,"No click class items present in this template"),e.data.payload&&(-1{var n;t.target&&t.target.classList.contains(le.CSS_SELECTORS.CLICK_INAPP)&&(n=t.target.dataset.id,Pn(e.campaignMeta,"OSM",{widget_id:n})()),t.target&&t.target.classList.contains(le.CSS_SELECTORS.DISMISS_INAPP)&&(this.dismissInapp(e.campaignMeta.campaignId),t.target.classList.contains(le.CSS_SELECTORS.CLICK_INAPP)||Ln(e.campaignMeta,"OSM"))}));else{for(const t of r)t.addEventListener("click",(t=>{t=t.target.dataset.id,Pn(e.campaignMeta,"OSM",{widget_id:t})()}));for(const t of a)t.addEventListener("click",(()=>{this.dismissInapp(e.campaignMeta.campaignId),t.classList.contains(le.CSS_SELECTORS.CLICK_INAPP)||Ln(e.campaignMeta,"OSM")}))}for(const e of n)"_blank"!==e.getAttribute("target")&&e.setAttribute("target","_parent")}changeAnchorTagReDirectionMethod(e){var t,n=Yi.baseLogTag+".changeAnchorTagReDirectionMethod";try{for(const n of(t=e.contentDocument.getElementsByTagName("a"),Array.prototype.slice.call(t))){var i=n.getAttribute("target"),a=n.getAttribute("href");a&&"_parent"===i&&(n.setAttribute("onclick",`setTimeout(()=>{window.open('${a}','_parent')})`),n.removeAttribute("href"))}Ue.log(1,n,"Anchor Tag Href Rendering Changed to onClick for Campaign Frame: "+e.id)}catch(t){Ue.error(1,n,"Failed to Change Anchor Tag Href Rendering for Campaign Frame: "+e.id)}}liveCampaignPositionStyling(e,t){var n=Yi.baseLogTag+".liveCampaignPositionStyling";try{e.templateType===Dn.BANNER?e.display.config.sticky?t.style.position="fixed":t.style.position="absolute":e.templateType===Dn.POP_UP&&(t.style.position="fixed","DIV"===t.tagName?t.style.inset="0":t.style.backgroundColor="rgba(99, 99, 99, 0.21)"),Ue.log(1,n,"Added Position Styles for CampaignId: "+e.campaignId)}catch(t){Ue.error(1,n,"Failed adding Styles for CampaignId: "+e.campaignId)}}testCampaignPositionStyling(e,t){var n=Yi.baseLogTag+".testCampaignPositionStyling";try{e.templateType===Dn.BANNER?e.displaySettings.config.sticky?t.style.position="fixed":t.style.position="absolute":e.templateType===Dn.POP_UP&&(t.style.position="fixed","DIV"===t.tagName?t.style.inset="0":t.style.backgroundColor="rgba(99, 99, 99, 0.21)"),Ue.log(1,n,"Added Position Styles for CampaignId: "+e.draftId)}catch(t){Ue.error(1,n,"Failed adding Styles for CampaignId: "+e.draftId)}}bannerTestCampaignStyling(e,t,n){var i,a=Yi.baseLogTag+".bannerTestCampaignStyling";try{let n,r,o=!0;t?(n=parseInt(getComputedStyle(t.contentDocument.body).height),o=-1e.campaignMeta.templateType===Dn.BANNER)).length-1;0<=r;r--)try{if(e[r].isJSONPayloadApproach||e[r].iframe.contentDocument){let a,o=!0;e[r].isJSONPayloadApproach?a=parseInt(getComputedStyle(e[r].osmDivSelector.querySelector(".brz-container")).height):(a=parseInt(getComputedStyle(e[r].iframe.contentDocument.body).height),o=e[r].data.payload&&-1{this.deliveryStats.setStats(e,le.DELIVERY_FUNNEL.ATTEMPTED.CAMPAIGN_ATTEMPTED)}))}getImpressionStats(e){return Ji(this,void 0,void 0,(function*(){var t=this.baseLogTag+".getImpressionStats";try{return yield _n.campaingsStatsStore.getItem(e.campaignId)}catch(n){Ue.error(1,t,"Error getting impression stats for "+e.campaignId,n)}}))}getLastGlobalInappShown(){return Ji(this,void 0,void 0,(function*(){return yield _n.serviceMetaStore.getItem(le.STORES.SERVICE_META.KEYS.LAST_INAPP_SHOWN_TIME)}))}getGlobalDelay(){return Ji(this,void 0,void 0,(function*(){return yield _n.serviceMetaStore.getItem(le.STORES.SERVICE_META.KEYS.GLOBAL_DELAY)}))}filterValidCampaigns(e){return Ji(this,void 0,void 0,(function*(){var t=this.baseLogTag+".filterValidCampaigns",n=e.map((e=>this.getImpressionStats(e)));const i=yield this.getLastGlobalInappShown(),a=yield this.getGlobalDelay();try{const t=yield Promise.all(n);return e.filter(((e,n)=>{if(e.templateType!==Dn.SELF_HANDLED){if(!kn.isCampaignWithinFC(e,t[n]))return this.deliveryStats.setStats(e,le.DELIVERY_FUNNEL.PRIORITIZED.CAMPAIGN_PRIORITY_MAX_TIMES_SHOWN),!1;if(!kn.hasCampaignClearedSelfDelay(e,t[n]))return this.deliveryStats.setStats(e,le.DELIVERY_FUNNEL.PRIORITIZED.CAMPAIGN_PRIORITY_MIN_DELAY),!1;if(!kn.hasCampaignClearedGlobalDelay(e,a,i))return this.deliveryStats.setStats(e,le.DELIVERY_FUNNEL.PRIORITIZED.CAMPAIGN_PRIORITY_GLOBAL_DELAY),!1}return!kn.isCampaignExpired(e)||(this.deliveryStats.setStats(e,le.DELIVERY_FUNNEL.PRIORITIZED.CAMPAIGN_PRIORITY_EXPIRED),!1)}))}catch(n){Ue.error(1,t,"Error filtering and sorting campaigns",n)}}))}prioritizeMessagingCampaigns(e){return Ji(this,void 0,void 0,(function*(){const t=yield this.filterValidCampaigns(e);if(0{t.campaignId!==e.campaignId&&this.deliveryStats.setStats(t,le.DELIVERY_FUNNEL.PRIORITIZED.CAMPAIGN_PRIORITY_HIGH_PRIORITY_CAMPAIGN_AVAILABLE)})),e}}))}getCampaignTagMap(e){const t={},n=[],i=[];return e.forEach((e=>{null!=e.tag&&(i.indexOf(e.tag)<0&&i.push(e.tag),null==t[e.tag]&&(t[e.tag]=[]),t[e.tag].push(e))})),i.forEach((e=>{if(null!=t[e]){var i=t[e].sort(kn.comparator);for(let e=0;ethis.getOnsitePayload(e,n)));try{const n=yield Promise.all(a);return e.filter(((e,i)=>{if(n[i]&&n[i].payload&&(e.onsitePayload=n[i],null!=e.tag&&null!=t[e.tag])){if("JSON"!==e.onsitePayload.payloadType)return!0;if((e=>{try{JSON.parse(e)}catch(e){return!1}return!0})(e.onsitePayload.payload))return!0}return!1}))}catch(a){Ue.error(1,i,"Error delivering personalization campaigns",a)}}}))}messagingCampaignImpression(e,t){return Ji(this,void 0,void 0,(function*(){var n=this.baseLogTag+".messagingCampaignImpression";if(e)try{var i=yield this.getLastGlobalInappShown(),a=yield this.getGlobalDelay(),r=this.displayManager.getActiveCampaigns();if(!kn.hasCampaignClearedGlobalDelay(e,a,i))return Ue.warn(1,n,"Can not render "+e.campaignId),void this.deliveryStats.setStats(e,le.DELIVERY_FUNNEL.IMPRESSION.CAMPAIGN_IMPRESSION_GLOBAL_DELAY);if(!kn.canCampaignBeRenderedOverExisting(e,r.length))return void this.deliveryStats.setStats(e,le.DELIVERY_FUNNEL.IMPRESSION.CAMPAIGN_IMPRESSION_ANOTHER_CAMPAIGN_VISIBLE);if(!si.getURLFilterResult(e))return Ue.warn(1,n,"Can not render "+e.campaignId),void this.deliveryStats.setStats(e,le.DELIVERY_FUNNEL.IMPRESSION.CAMPAIGN_IMPRESSION_URL_CHANGED);const o=this.displayManager.campaignRenderMap[e.campaignId];return ra.onScrollOrExitIntentCampaigns[e.campaignId]||null!=o&&("MOE_EXIT"===t||t===w)?(this.deliveryStats.setStats(e,le.DELIVERY_FUNNEL.IMPRESSION.CAMPAIGN_IMPRESSION_MAX_TIMES_SHOWN),void Ue.warn(1,n,"Can not render "+e.campaignId)):null!=o&&o.isActive()?(this.deliveryStats.setStats(e,le.DELIVERY_FUNNEL.IMPRESSION.CAMPAIGN_IMPRESSION_ANOTHER_CAMPAIGN_VISIBLE),void Ue.warn(1,n,`Can not render ${e.campaignId}, as campaign is already Active.`)):e}catch(i){return void Ue.error(1,n,"Error delivering messaging campaign",i)}}))}mostEligibleMessagingCampaign(e,t){return Ji(this,void 0,void 0,(function*(){if(0{this.deliveryStats.setStats(e,le.DELIVERY_FUNNEL.PRIORITIZED.CAMPAIGN_PRIORITY_HIGH_PRIORITY_CAMPAIGN_AVAILABLE)})),a=a.slice(0,5)),Ue.log(1,n,"Campaign in prioritised order: ",a.map((e=>e.campaignId))),n=Promise.all(a.map((e=>this.getOnsitePayload(e,t)))).then((e=>e.filter((e=>(null==e?void 0:e.templateType)===Dn.SELF_HANDLED_OSM)).map(((e,t)=>new $i(Object.assign(Object.assign({},e),a[t])))))),this.deliveryStats.sendDeliveryStats(e),n):void 0}))}delayDeliveryCampaignStats(e){this.deliveryStats.setStats(e,le.DELIVERY_FUNNEL.IMPRESSION.CAMPAIGN_IMPRESSION_CANCEL_BEFORE_DELAY),this.deliveryStats.sendDeliveryStats([e])}isGCGCampaign(e){var t,n=this.baseLogTag+".isGCGCampaign";return(null===(t=e.onsitePayload.payload)||void 0===t?void 0:t.code)===le.GCG_ERROR_CODE&&(Ue.warn(1,n,`Can not render ${e.campaignId} as it falls under Control Group.`),Nn(e,"OSM",!0)(),!0)}}class Qi{constructor(e){this.draftId=Le(e,"draft_id",null),this.draftType=Le(e,"draft_type",null),this.templateType=Le(e,"template_type",null),this.action=Le(e,"action",null);var t=Le(e,"campaign_meta",{});this.locale=Le(e,"locale",null),this.variation=Le(e,"variation",null),this.displaySettings=new fi({config:t.config},this.templateType)}static isValidRawJson(e){var{draft_id:t,draft_tag:n,draft_type:e}=e;return e===le.DRAFT_CAMPAIGN_TPYES.WEB_PERSONALIZATON?null!=t&&null!=n:null!=t}}const Zi=(e,t)=>(Ue.log(1,"selfHandledHelper.track",`Self handled OSM ${t} tracking called for campaign:`,e.campaignName),e.campaignId?(t===le.EVENT_NAMES.OSM.IMPRESSION&&Cn(e.campaignId),Me().track_event(t,Object.assign({campaign_id:e.campaignId,campaign_name:e.campaignName,type:le.EVENT_NAMES.OSM.TYPE},e.context))):new Promise(((e,t)=>{t("Moengage error: Campaign ID not found")})));class ea{handler(e,t,n,i,a,r){var o;return function(e,t,n,i){return new(n=n||Promise)((function(t,a){function r(e){try{s(i.next(e))}catch(e){a(e)}}function o(e){try{s(i.throw(e))}catch(e){a(e)}}function s(e){var i;e.done?t(e.value):((i=e.value)instanceof n?i:new n((function(e){e(i)}))).then(r,o)}s((i=i.apply(e,[])).next())}))}(this,0,void 0,(function*(){var s=ea.baseLogTag+".handler";Ue.log(1,s,(null==r?void 0:r.name)&&`Triggered for ${r.name}: `||"Campaign(s) triggered: ",a);var l=a.filter((e=>e.templateType===Dn.SELF_HANDLED)),d=a.filter((e=>e.templateType!==Dn.SELF_HANDLED&&e.templateType!==Dn.SELF_HANDLED_OSM)),c=a.filter((e=>e.templateType===Dn.SELF_HANDLED_OSM));if(0{Zi(e,le.EVENT_NAMES.OSM.DELIVERED)})),this.selfHandledOSMCallback(t))}}))}}ea.baseLogTag="EventTriggerHandler";class ta{constructor(e){this.baseLogTag="DeliveryStats",this.OnsiteApiClient=new yi(e),this.batchId=(0,Je.v4)()}sendDeliveryStats(e){return function(e,t,n,i){return new(n=n||Promise)((function(t,a){function r(e){try{s(i.next(e))}catch(e){a(e)}}function o(e){try{s(i.throw(e))}catch(e){a(e)}}function s(e){var i;e.done?t(e.value):((i=e.value)instanceof n?i:new n((function(e){e(i)}))).then(r,o)}s((i=i.apply(e,[])).next())}))}(this,0,void 0,(function*(){var t=this.baseLogTag+".sendDeliveryStats";if(!window.navigator.onLine)return Ue.error(1,t,"No internet connection. Delivery stats will not be sent"),void bi.setOnlineEventListner((()=>{this.sendDeliveryStats(e)}));if(0{t[e.campaignContext.cid]||(t[e.campaignContext.cid]=e.stats,e.stats={})}));var n={stats:t};this.OnsiteApiClient.callStatsAPI(n,this.batchId)}catch(n){Ue.error(1,t,"Error in sending delivery funnel stats",n)}}))}setStats(e,t){var n=(new Date).toISOString();e&&(e.stats[t]=e.stats[t]||[],e.stats[t].includes(n)||e.stats[t].push(n))}}var na,ia=function(e,t,n,i){return new(n=n||Promise)((function(a,r){function o(e){try{l(i.next(e))}catch(e){r(e)}}function s(e){try{l(i.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?a(e.value):((t=e.value)instanceof n?t:new n((function(e){e(t)}))).then(o,s)}l((i=i.apply(e,t||[])).next())}))};const aa=new it;class ra{constructor(e){this.initializationPomise=null,this.testDraftInfo=null,this.triggerManager=null,this.displayManager=null,this.selfHandledWebpTriggerListeners={},this.funnelManager=null,this.eventTriggerHandler=null,this.deliveryStats=null,this.initData=e,Ue.setLogLevel(e.debugLevel),this.OnsiteApiClient=new yi(this.initData),function(){ra.handleSDKEnableAndDisableLisetner||(window.addEventListener(U,(e=>On(this,void 0,void 0,(function*(){var t=null===(t=null==e?void 0:e.detail)||void 0===t?void 0:t.name;t===W.SDK_ENABLED?yield Aa.enableOSM():t===W.SDK_DISABLED&&(yield Aa.disableOSM(!1,!0))})))),ra.handleSDKEnableAndDisableLisetner=!0)}()}setLogLevel(e){Ue.setLogLevel(e,!1)}isTestCampaignAvailable(){return ia(this,void 0,void 0,(function*(){const e=ra.baseLogTag+".isTestCampaignAvailable";window.opener?(window.addEventListener("message",(t=>ia(this,void 0,void 0,(function*(){var n,i;t.data&&"inapp_test"===t.data.action&&(n=t.data,Qi.isValidRawJson(n)?(i=new Qi(n),Ue.log(1,e,"Valid test campaign data found checking TestCampaign",n),yield this.checkForTestCampaign(i)):Ue.error(1,e,"Data is not a valid test campaign",n),aa.res())}))),!1),window.opener.postMessage("moe_test_osm","*"),setTimeout((()=>ia(this,void 0,void 0,(function*(){aa.res()}))),100)):aa.res()}))}initialize(){const e=ra.baseLogTag+".initialize";return Ue.log(1,e,"Initialising onsite module"),null==this.initializationPomise&&_t()&&(this.initializationPomise=new Promise((t=>ia(this,void 0,void 0,(function*(){try{yield _n.initialize(),yield this.isTestCampaignAvailable(),aa.p.then((()=>ia(this,void 0,void 0,(function*(){yield this.syncCampaigns();const n=yield jn();var i=this.isExitIntentCampaignFound(n);if(i.length&&(yield this.prefetchExitIntentCampaigns(i)),i=n.filter((e=>null!=e.triggerData)),this.displayManager=new Yi,this.displayManager.onRender((t=>{Ue.log(1,e,"Campaign rendered: "+t.campaignId),_n.serviceMetaStore.setItem(le.STORES.SERVICE_META.KEYS.LAST_INAPP_SHOWN_TIME,new Date)})),null!=this.testDraftInfo&&this.testDraftInfo.draftType===le.DRAFT_CAMPAIGN_TPYES.ONSITE_MESSAGING){Ue.log(1,e,"Test campaigns present, will be showing only the test campaign."),Ue.log(1,e,"No live campaign will be shown till draft campaign showing");try{Ue.log(1,e,"Trying to render draft campaign with id "+this.testDraftInfo.draftId);var a=yield this.OnsiteApiClient.getDraftCampaign(this.testDraftInfo);Ue.log(1,e,"Test campaign payload: ",a),a&&this.displayManager.queueDraftCampaign(this.testDraftInfo,a),this.testDraftInfo=null}catch(n){Ue.error(1,e,`Error fetching data for test campaign ${this.testDraftInfo.draftId}: `,n)}}else null!==(a=this.initData)&&void 0!==a&&a.enableSPA&&this.handleSPA(),ra.attachIdentityUpdateHandler(),this.deliveryStats=new ta(this.initData),this.triggerManager=new Pi(i),this.funnelManager=new Xi(this.initData,this.displayManager,this.deliveryStats),this.eventTriggerHandler=new ea,i=this.eventTriggerHandler.handler.bind(this.eventTriggerHandler,this.funnelManager,this.selfHandledWebpTriggerListeners,this.handlePersonalizationCampagins.bind(this),this.handleMessagingCampaigns.bind(this)),this.triggerManager.onTrigger(i),Ai.setListener(i),Di.setDeliveryStats(this.deliveryStats),Ai.setDeliveryStats(this.deliveryStats),yield Ai.logDeliveryFunnelForExpiredTimerCampaigns(),yield Di.updateCampaignTimeInSecondaryEventsStore(),yield Ai.createNewTimers(),this.triggerManager.startWatching();wt.broadcastToWindow({topic:U,name:W.OSM_INIT}),t(!0)}))))}catch(t){Ue.error(1,e,t)}}))))),this.initializationPomise}handleMessagingCampaigns(e){return ia(this,void 0,void 0,(function*(){var t=ra.baseLogTag+".handleMessagingCampaigns";e.onsitePayload&&this.displayManager&&(Ue.log(1,t,"Campaign triggered: "+e.campaignId),Ue.log(1,t,"Payload for campaign:",e.onsitePayload),this.displayManager.queueLiveCampaign(e,e.onsitePayload))}))}handlePersonalizationCampagins(e){return ia(this,void 0,void 0,(function*(){const t=ra.baseLogTag+".handlePersonalizationCampagins";0{null!=e.tag&&(Ue.log(1,t,"Personlization Campaign triggered: "+e.campaignId),this.selfHandledWebpTriggerListeners[e.tag].forEach((t=>{this.handleSelfHandledCallback(e,e.onsitePayload,t)})))}))}))}logout(e=!1,t=!1){var n;return ia(this,void 0,void 0,(function*(){var i=ra.baseLogTag+".logout";if(Ue.log(1,i,"Starting module logout"),null!==(n=this.initData)&&void 0!==n&&n.enableSPA&&this.removeHandlePageChange(),this.initializationPomise=null,this.displayManager){Wn(this.displayManager);const e=Object.keys(this.displayManager.campaignRenderMap);null!==(n=this.displayManager.testCampaign)&&void 0!==n&&n.draftId&&e.push(null===(n=this.displayManager.testCampaign)||void 0===n?void 0:n.draftId),e.forEach((e=>{const t=document.getElementById("moe-onsite-campaign-"+e);t&&t.remove()})),this.displayManager.destroy()}this.triggerManager&&(Un(this.triggerManager),Hn(this.triggerManager),this.triggerManager.destory()),Jt.clear(),Di.destroy(),Ai.destroy(),e&&(ra.onScrollOrExitIntentCampaigns={}),this.displayManager=null,this.funnelManager=null,this.eventTriggerHandler=null,yield Ai.deleteAllPendingTimers(),t?_n.sdkOptOut():(yield _n.serviceMetaStore.removeItem(le.STORES.SERVICE_META.KEYS.LAST_META_CALL_TIME),yield _n.clear(e)),Ue.log(1,i,"Starting module logout complete")}))}checkForTestCampaign(e){return ia(this,void 0,void 0,(function*(){var t=ra.baseLogTag+".checkForTestCampaign";try{var n=e;null==n?(Ue.log(1,t,"No draft campaign found"),this.testDraftInfo=null):(Ue.log(1,t,"Found draft campaign: ",n),this.testDraftInfo=n,null==this.testDraftInfo.draftId&&(this.testDraftInfo.draftType=le.DRAFT_CAMPAIGN_TPYES.WEB_PERSONALIZATON))}catch(n){Ue.error(1,t,"Error getting test campaign",n)}}))}getData(e,t){return ia(this,void 0,void 0,(function*(){const n=ra.baseLogTag+".getData";null==t&&(Ue.warn(1,n,"Moengage.onsite.getData called without a providing a callback."),t=()=>{});try{if(yield this.initializationPomise,null!=this.testDraftInfo){var i;Ue.log(1,n,"Fetching test campaign: ",this.testDraftInfo),this.testDraftInfo.draftType===le.DRAFT_CAMPAIGN_TPYES.WEB_PERSONALIZATON&&(i=yield this.OnsiteApiClient.getDraftCampaign(this.testDraftInfo),this.testDraftInfo=null,t(null,{payload:i.payload,click:()=>{Ue.log(1,n,"This is a test campaign")},imp:()=>{Ue.log(1,n,"This is a test campaign")}}))}else{const i=yield _n.campaingsTagsStore.getItem(e);if(i){const o=yield Promise.all(i.map((e=>Kn(e))));var a=o.filter((e=>null==e.triggerData)),r=yield this.funnelManager.mostEligibleSelfHandledPersonalizationCampaigns(a,e);r&&r.onsitePayload?this.handleSelfHandledCallback(r,r.onsitePayload,t):(Ue.error(1,n,"Error fetching campaign payload"),t({message:"There was an error fetching data for this tag"},null))}else Ue.warn(1,n,"Could not find any eligible campaign for tag",e),t({message:"Could not find any eligible campaign for tag "+e},null)}}catch(i){Ue.error(1,n,"Error getting campaign",i)}}))}registerCallback(e,t){return ia(this,void 0,void 0,(function*(){var n=ra.baseLogTag+".registerCallback";try{yield this.initializationPomise,null==this.selfHandledWebpTriggerListeners[e]?this.selfHandledWebpTriggerListeners[e]=[t]:this.selfHandledWebpTriggerListeners[e].push(t)}catch(t){Ue.error(1,n,"Error setting callback for tag",e),Ue.error(1,n,"Error stack:",t)}}))}handleSelfHandledCallback(e,t,n){return ia(this,void 0,void 0,(function*(){var i=ra.baseLogTag+".handleSelfHandledCallback";if(e.campaignContext=t.campaignContext,"JSON"===t.payloadType)try{t.payload=JSON.parse(t.payload);var a=Le(e,"triggerData.trigger_delay.delayInSeconds",0)||0;setTimeout((()=>{Rn(e,"WP"),n(null,{payload:t.payload,click:t=>{Pn(e,"WP",t)()},imp:Nn(e,"WP")})}),1e3*a)}catch(r){a=`Payload for campaign_id ${e.campaignId} is not a valid JSON`,Ue.error(1,i,a),Ue.error(1,i,"Payload provided:",t.payload),n({message:a},null)}else Rn(e,"WP"),n(null,{payload:t.payload,click:t=>{Pn(e,"WP",t)()},imp:Nn(e,"WP")})}))}syncCampaigns(){return ia(this,void 0,void 0,(function*(){var e=ra.baseLogTag+".syncCampaigns";try{(yield this.shouldClearMetaStorage())&&(yield _n.campaingsMetaStore.clear(),yield this.rebuildTagStore()),(yield this.shouldSaveRemoteCampaigns())&&(yield this.saveRemoteCampaigns())}catch(t){Ue.error(1,e,"Error getting remote campaigns: ",t)}}))}shouldClearMetaStorage(){return ia(this,void 0,void 0,(function*(){return(yield _n.serviceMetaStore.getItem(le.STORES.SERVICE_META.KEYS.LAST_FETCH_SDK_VERSION))!==Me().getSdkVersion()}))}shouldSaveRemoteCampaigns(){var e;return ia(this,void 0,void 0,(function*(){var t=ra.baseLogTag+".shouldSaveRemoteCampaigns",n=yield _n.serviceMetaStore.getItem(le.STORES.SERVICE_META.KEYS.LAST_FETCH_SDK_VERSION),i=yield _n.serviceMetaStore.getItem(le.STORES.SERVICE_META.KEYS.LAST_META_CALL_TIME),a=(i=new Date(i),(new Date).getTime());return null==i||a-i>le.META_REFRESH_TIME||(Ue.remoteLogTracking(1,"info",t,"Last fetch was less than 15 mins ago at ",i),n!==Me().getSdkVersion()?(Ue.remoteLogTracking(1,"info",t,"Version change detected. Will proceed to fetch latest campaigns"),!0):!(!(n=yield _n.serviceMetaStore.getItem(le.STORES.SERVICE_META.KEYS.UNIQUE_ID))||n===(null===(e=Ye.get(s.USER_DATA))||void 0===e?void 0:e.deviceUuid)||(Ue.remoteLogTracking(1,"info",t,"Unique device id change detected. Will proceed to fetch latest campaigns"),0)))}))}saveRemoteCampaigns(){return ia(this,void 0,void 0,(function*(){var e=ra.baseLogTag+".saveRemoteCampaigns";yield _n.campaingsMetaStore.clear(),yield _n.exitIntentCampaignStore.clear();var t=yield this.OnsiteApiClient.getCampaignsMeta();null!=t&&(yield this.addCampaignsToDB(t.campaignsMeta),Ue.log(1,e,"Inapp campaigns meta saved!")),yield Di.pruneRemovedCampaigns(),yield Di.removeStaleTriggeringPrimaryEventCampaigns(),yield _n.serviceMetaStore.setItem(le.STORES.SERVICE_META.KEYS.GLOBAL_DELAY,t.globalDelayBetweenInapps),yield _n.serviceMetaStore.setItem(le.STORES.SERVICE_META.KEYS.LAST_FETCH_SDK_VERSION,Me().getSdkVersion())}))}addCampaignsToDB(e){return ia(this,void 0,void 0,(function*(){var t=ra.baseLogTag+".addCampaignsToDB";Ue.log(1,t,`Adding/Updating ${e.length} campaigns in DB`,e.map((e=>e.campaignId)));try{yield Promise.all(e.map((e=>_n.campaingsMetaStore.setItem(e.campaignId,e)))),yield this.rebuildTagStore()}catch(e){Ue.error(1,t,"Error saving remote campaigns:",e)}}))}rebuildTagStore(){return ia(this,void 0,void 0,(function*(){var e=ra.baseLogTag+".rebuildTagStore";try{yield _n.campaingsTagsStore.clear();var t=yield jn();const e={};for(const n of t)null!=n.tag&&(null==e[n.tag]&&(e[n.tag]=[]),e[n.tag].push(n.campaignId));const n=[];yield _n.campaingsTagsStore.clear();for(const t in e)e.hasOwnProperty(t)&&n.push(_n.campaingsTagsStore.setItem(t,e[t]));yield Promise.all(n)}catch(t){Ue.error(1,e,"Error updating tags store:",t)}}))}isExitIntentCampaignFound(e){return e.filter((e=>e.templateType!==Dn.SELF_HANDLED&&Fn(e,A)))}prefetchExitIntentCampaigns(e){return ia(this,void 0,void 0,(function*(){var t=ra.baseLogTag+".prefetchExitIntentCampaigns";const n=yield $t.createEvent("MOE_EXIT",[]),i=(yield xn(e)).filter((e=>si.getFilterResult(n,e)));if(!i||!i.length)return Ue.log(1,t,"Exit intent campaign not eligible to prefetch"),!1;{const e=yield Gn(i[0]);if(!e||!e.onsitePayload||e.onsitePayload.updatedTime.getTime()!==i[0].updatedTime.getTime()){var a=i[0].campaignId;const e=yield this.OnsiteApiClient.getCampaignPayload(i[0]);e.payload||e.htmlJsonPayload?(e.updatedTime=i[0].updatedTime,yield _n.exitIntentCampaignStore.setItem(a,e),Ue.log(1,t,"Exit intent campaign prefetched: "+a)):e.error&&e.reason&&(yield _n.exitIntentCampaignStore.setItem(a,e))}}}))}static handleDisableModule(e){wt.broadcastToWindow({topic:"MODULE_ACTIONS",name:"DISABLE_OSM",data:{isUserLogout:e}})}sendDelayCampaignStats(e,t){return ia(this,void 0,void 0,(function*(){var n=ra.baseLogTag+".sendDelayCampaignStats",i=Object.keys(e.campaignRenderMap).filter((t=>!e.campaignRenderMap[t].campaignRendered));0{this.eventTriggerHandler?this.eventTriggerHandler.selfHandledOSMCallback=e:Ue.warn(1,t,"OSM module not initialised properly for self handled OSM to work; or it is in test campaign mode.")})).catch((n=>{Ue.error(1,t,"Error during initialization:",n),e(n,null)}))):Ue.error(1,t,"Self handled OSM callback is not a function.")}selfHandledShown(e){return Zi(e,le.EVENT_NAMES.OSM.IMPRESSION)}selfHandledClicked(e){return Zi(e,le.EVENT_NAMES.OSM.CLICK)}selfHandledDismissed(e){return Zi(e,le.EVENT_NAMES.OSM.DISMISS)}}ra.baseLogTag="MoeOnsite",ra.identityListenerAdded=!1,ra.onScrollOrExitIntentCampaigns={},ra.handleSDKEnableAndDisableLisetner=!1,window[le.OSM_MODULE]=ra,window.MoeOsm=(Ue.log(1,"OsmFunctions","Osm Functions for tracking user behaviour"),{trackEvent:(e,t,n,i)=>(e=Li(e),{}.constructor===n.constructor&&e?(n=Object.assign(Object.assign({campaign_id:e.campaignId,campaign_name:e.campaignName},e.campaignContext),n),window.Moengage.track_event(t,n)):Promise.resolve()),trackClick:(e,t)=>(e=Li(e))?window.Moengage.onsite.displayManager.clickTracker(e,"OSM",{widget_id:t})():Promise.resolve(),trackDismiss:(e,t=!1)=>(e=Li(e))?window.Moengage.onsite.displayManager.dismissEvent(e,"OSM",t):Promise.resolve(),setAlias:e=>window.Moengage.update_unique_user_id(e),setUniqueId:e=>window.Moengage.add_unique_user_id(e),identifyUser:e=>window.Moengage.identifyUser(e),destroySession:()=>window.Moengage.destroy_session(),setUserName:e=>window.Moengage.add_user_name(e),setFirstName:e=>window.Moengage.add_first_name(e),setLastName:e=>window.Moengage.add_last_name(e),setEmailId:e=>window.Moengage.add_email(e),setMobileNumber:e=>window.Moengage.add_mobile(e),setGender:e=>window.Moengage.add_gender(e),setBirthDate:e=>window.Moengage.add_birthday(e),setUserAttribute:(e,t)=>window.Moengage.add_user_attribute(e,t),dismissMessage(e){setTimeout((()=>{window.Moengage.onsite.displayManager.dismissInapp(""+e)}),100)},showPushOptIn:e=>window.Moengage.call_web_push(e),copyText:e=>new Promise(((t,n)=>{e||n();const i=document.querySelector(e);i.textContent?navigator.clipboard.writeText(i.textContent):(i.select(),i.setSelectionRange(0,99999),navigator.clipboard.writeText(i.value)),t(null)}))}),(En=na=na||{}).PROMPT="prompt",En.GRANTED="granted",En.DENIED="denied",En.DISMISSED="dismissed";class oa{static addCallback(e,t){null!=e&&null!=t&&(null==oa.callbacks[e]&&(oa.callbacks[e]=[]),oa.callbacks[e].push(t))}static getCallbacks(e){return oa.callbacks[e]||[]}static runCallbacks(e){oa.getCallbacks(e).forEach((e=>{e()}))}}function sa(e,t){var{web:n,mobile:e}=e,n=yt(`\n
\n
\n \n ${n.banner.altText||\n
\n
\n

\n ${n.banner.title.text}\n

\n

\n ${n.banner.body.text}\n

\n
\n ${t?"":``}\n
\n \n \n ${n.allowButton.text}\n \n
\n
\n \n \n `);return{mobileUI:yt(`\n
\n
\n ${e.nudge.altText||\n

\n ${e.nudge.title.text}\n

\n
\n
\n
\n \n \n
\n
${t?"":``}\n
\n `),webUI:n}}function la(e,t){return function(e,t,n,i){return new(n=n||Promise)((function(t,a){function r(e){try{s(i.next(e))}catch(e){a(e)}}function o(e){try{s(i.throw(e))}catch(e){a(e)}}function s(e){var i;e.done?t(e.value):((i=e.value)instanceof n?i:new n((function(e){e(i)}))).then(r,o)}s((i=i.apply(e,[])).next())}))}(this,0,void 0,(function*(){let n="",i="";const a=yield lt.getInstance();return n=a.isFirefox()?(i=da(function(e){return yt(`\n \n \n `)}(e.firefox),t),ca(function(e){return yt(`\n \n \n `)}(e.firefox),t)):a.isOpera()?(i=da(function(e){return yt(`\n \n \n `)}(e.opera),t),ca(function(e){return yt(`\n \n \n `)}(e.opera),t)):(i=da(yt(`\n \n \n `),t),ca(function(e){return yt(`\n \n \n `)}(e.chrome),t)),{mobileUI:n,webUI:i}}))}function da(e,t){return`\n
\n ${e}\n ${t?"":yt('\n \n Powered by \n ')}\n
\n `}function ca(e,t){return`\n
\n ${e}\n ${t?"":yt('\n \n Powered by \n ')}\n
\n `}function ua(){const e=document.getElementById("moe-push-div");null!=e&&(e.style.visibility="none",e.style.opacity="0",e.parentNode.removeChild(e))}var ga;oa.callbacks={};class ha{constructor(e){this.swRegisterPromise=null,this.swActiveRetries=1;const t=ha.baseLogTag+".constructor";this.sdkSettings=e,this.registerServiceWorker().then((e=>{this.sendDataToServiceWorker()})).catch((e=>{Ue.error(1,t,"Error registering serviceworker:",e)}))}showHardAsk(){const e=ha.baseLogTag+".showHardAsk";return new Promise(((t,n)=>{ha.isWebPushSupported().then((i=>{i?this.getCurrentPermissionState().then((i=>{_t()&&this.registerServiceWorker().then((a=>{var r;i!==na.DENIED?(Ue.remoteLogTracking(1,"info",e,"Attempting to open hard ask"),null!==(r=Me())&&void 0!==r&&r.track_event(y),wt.broadcastToWindow({topic:U,name:H.HARD_ASK_ATTEMPTED}),this.showOverlay(),_t()&&this.askPermission().then((n=>{_t()&&(this.hideOverlay(),Ue.remoteLogTracking(2,"info",e,"Permission state after hard ask:",n),n===na.GRANTED?this.getPushTokenDetails().then((e=>{this.sendDataToServiceWorker(e.token),t({state:n,subscriptionDetails:e})})):(this.sendDataToServiceWorker(),t({state:n,subscriptionDetails:null})))})).catch((t=>{Ue.error(1,e,t),n(z)}))):(Ue.remoteLogTracking(1,"info",e,"Hard ask not shown as permission state is",i),t({state:i,subscriptionDetails:null}))})).catch((t=>{Ue.error(1,e,"Error registering serviceworker:",t),n(t)}))})).catch((t=>{Ue.error(1,e,"Registering service worker failed:",t),n(z)})):(Ue.warn(1,e,"Web push not supported in current browser environment"),n(V))}))}))}sendDataToServiceWorker(t){return new Promise((n=>{en.collectGetParams().then((n=>{var i,a=We.get();t&&(n.push_id=t||Ye.get(s.PUSH_TOKEN)||void 0),n.isWebPushEnabled=this.sdkSettings.isWebPushEnabled&&!a.disableWebPush,n.isBatchingEnabled=Ye.get(s.WEB_SETTINGS).configs.isBatchingEnabled,null!==(i=a.proxyDomains)&&void 0!==i&&i.api&&(n.proxyDomains=a.proxyDomains),Ge()||a.swScope?e.createInstance({driver:[e.INDEXEDDB],name:"moe_database",storeName:"moe_data"}).setItem("reportParams",{data:n}):navigator.serviceWorker.ready.then((()=>{this.sendDataToServiceWorkerOnControllerReady(n)}))}))}))}sendDataToServiceWorkerOnControllerReady(e){if(navigator.serviceWorker.controller){if("chrome-extension:"===window.location.protocol)return chrome.runtime.sendMessage({data:e});navigator.serviceWorker.controller.postMessage({data:e})}else this.swActiveRetries<3&&setTimeout((()=>{this.swActiveRetries++,this.sendDataToServiceWorkerOnControllerReady(e)}),500)}getCurrentPermissionState(){return lt.getInstance().then((e=>navigator.permissions&&!e.isSafari()?navigator.permissions.query({name:"notifications"}).then((e=>ha.parsePermissionState(e.state))).catch((e=>{})):new Promise((t=>{var n;let i=null===(n=window.Notification)||void 0===n?void 0:n.permission;e.isSafari()&&"default"===i&&(i="prompt",Ye.get(fe)&&(i="denied")),t(ha.parsePermissionState(i))}))))}getPushTokenDetails(){const e=ha.baseLogTag+".getPushTokenDetails";return new Promise(((t,n)=>{this.getCurrentPermissionState().then((n=>{lt.getInstance().then((i=>{n!==na.GRANTED?t({token:null,raw:null}):this.registerServiceWorker().then((n=>{let a=null;const r={userVisibleOnly:!0};Fe(this.sdkSettings.webPushPlatformData,i)&&(a=je(this.sdkSettings.webPushPlatformData,i),r.applicationServerKey=vt(a));const o=()=>{n.pushManager.subscribe(r).then((e=>{(e=>{const n=e.toJSON();var a=e.endpoint.substring(0,n.endpoint.lastIndexOf("/")+1);e=n.expirationTime;let r=n.endpoint.split("/")[n.endpoint.split("/").length-1];i.isEdge()&&(r=r.replace("?token=",""));const o={};if(n.keys)for(const e in n.keys)n.keys.hasOwnProperty(e)&&(o[e]=n.keys[e]);t({token:r,endpoint:a,keys:o,expirationTime:e,raw:n})})(e)})).catch((n=>{Ue.error(1,e,"Error in subscribtion: ",n),t({token:null,raw:null})}))};n.pushManager.getSubscription().then((e=>{if(e)if("vapid"===this.sdkSettings.webPushPlatformData.chrome.subscriptionMode&&e.options&&e.options.applicationServerKey){var t=ft(e.options.applicationServerKey);[a,a+"=",a+"==",ft(vt(a))].indexOf(t)<0?e.unsubscribe().then((()=>{o()})):o()}else o();else o()}))})).catch((n=>{Ue.error(1,e,"Error in getting push token: ",n),t({token:null,raw:null})}))}))}))}))}removeToken(){return Ye.remove(s.PUSH_TOKEN),Ye.remove(s.OPTED_STATUS_TRACK_TIME),Ye.remove(s.SUBSCRIPTION_DETAILS),Promise.resolve()}askPermission(){return new Promise(((e,t)=>{var n;null!==(n=window.Notification)&&void 0!==n&&n.requestPermission().then((t=>{var n;Ye.set(s.OPT_IN_SHOWN_TIME,Date.now()),null!==(n=Me())&&void 0!==n&&n.track_event(v),wt.broadcastToWindow({topic:U,name:H.HARD_ASK_SHOWN}),wt.deprecatedSdkCallback("opt_in_shown"),oa.runCallbacks(H.HARD_ASK_SHOWN),e(ha.parsePermissionState(t))})).catch((e=>{t(q)}))}))}registerServiceWorker(){const e=ha.baseLogTag+".registerServiceWorker";return"chrome-extension:"===window.location.protocol?navigator.serviceWorker.ready:(null!=this.swRegisterPromise||(this.swRegisterPromise=new Promise(((t,n)=>{if(ha.registeredServiceWorker)t(ha.registeredServiceWorker);else if("serviceWorker"in navigator){let i="serviceworker.js",a=!1;if(We.get()&&null!=We.get().swPath&&(i=We.get().swPath,a=!0),"/"===i[0]||i.startsWith("http")||(i="/"+i),Ge())Ue.log(1,e,"Removing scope in case of shopify."),this.registerScopedSW(i,/moengage/,t,n);else{let r="/";We.get()&&null!=We.get().swScope?(r=We.get().swScope,this.registerScopedSW(i,r,t,n)):(a&&(Ue.log(1,e,"Using user defined path to serviceworker:",i),r=i.substr(0,i.lastIndexOf("/")+1),ha.canSwBeRegisteredWithScope(r)||(Ue.error(1,e,"Service worker can only be registered from same directory or child directory."),n($))),navigator.serviceWorker.register(i,{scope:r}).then((i=>{Ue.log(2,e,"Serviceworker registered"),navigator.serviceWorker.ready.then((n=>{Ue.log(2,e,"Serviceworker ready"),ha.registeredServiceWorker=n,We.get()&&We.get().forceSwUpdate&&n.update(),t(n)})).catch((t=>{Ue.error(1,e,"Service worker register failed:",t),n(z)}))})).catch((t=>{Ue.error(1,e,"Service worker register failed:",t),n(z)}))),Ue.log(1,e,"Scope for serviceworker:",r)}}else Ue.error(1,e,"Service worker not supported"),n("Service worker not supported")}))),this.swRegisterPromise)}registerScopedSW(e,t,n,i){const a=ha.baseLogTag+".registerScopedSW";navigator.serviceWorker.register(e).then((e=>{Ue.log(2,a,"Serviceworker registered"),navigator.serviceWorker.getRegistrations().then((e=>{e.forEach((e=>{setTimeout((()=>{e.active&&e.active.scriptURL.match(t)&&(Ue.log(2,a,"Serviceworker ready"),ha.registeredServiceWorker=e,We.get()&&We.get().forceSwUpdate&&e.update(),n(e))}),100)}))})).catch((e=>{Ue.error(1,a,"Service worker register failed:",e),i(z)}))})).catch((e=>{Ue.error(1,a,"Service worker register failed:",e),i(z)}))}static canSwBeRegisteredWithScope(e){var t=window.location.pathname;return e=e,!((t=t).indexOf(e)<0)&&0<=t.substring(t.indexOf(e)).length}static isWebPushSupported(){return new Promise((e=>{lt.getInstance().then((t=>{!t.isIncognito&&"serviceWorker"in navigator&&"PushManager"in window&&"Notification"in window&&t.isWebPushCompatible()?e(!0):e(!1)}))}))}static parsePermissionState(e){return"prompt"===e?na.PROMPT:"granted"===e?na.GRANTED:"denied"===e?na.DENIED:"default"===e?na.DISMISSED:null}showNotification(e){const t=ha.baseLogTag+".showNotification";this.registerServiceWorker().then((n=>{e?e.title?e.body?(null==e.requireInteraction&&(e.requireInteraction=!0),n.showNotification(e.title,e)):Ue.error(1,t,"Notification body can not be blank"):Ue.error(1,t,"Notification title can not be blank"):Ue.error(1,t,"Notification object can not be blank")})).catch((e=>{Ue.error(1,t,"Error registering serviceworker:",e)}))}showOverlay(){if(this.sdkSettings.toShowOverlay&&this.sdkSettings.optInType===Qt.ONE_STEP){const e=document.createElement("div");e.id="moe-push-div",e.style.display="none",e.className="moe-push-class",lt.getInstance().then((t=>function(e,t,n,i){return new(n=n||Promise)((function(t,a){function r(e){try{s(i.next(e))}catch(e){a(e)}}function o(e){try{s(i.throw(e))}catch(e){a(e)}}function s(e){var i;e.done?t(e.value):((i=e.value)instanceof n?i:new n((function(e){e(i)}))).then(r,o)}s((i=i.apply(e,[])).next())}))}(this,0,void 0,(function*(){t.isMobile?e.innerHTML=(yield la(this.sdkSettings.overlay,this.sdkSettings.isBrandingHidden)).mobileUI:e.innerHTML=(yield la(this.sdkSettings.overlay,this.sdkSettings.isBrandingHidden)).webUI;const n=document.body.firstChild;n.parentNode.insertBefore(e,n);var i=t.name;let a;if(i===lt.BROWSER_NAMES.CHROME||i===lt.BROWSER_NAMES.OPERA_NEON?a=document.getElementsByClassName("moe_chrome"):i===lt.BROWSER_NAMES.FIREFOX?a=document.getElementsByClassName("moe_firefox"):i!==lt.BROWSER_NAMES.OPERA&&i!==lt.BROWSER_NAMES.SAFARI||(a=document.getElementsByClassName("moe_opera")),0===a.length)document.getElementById("moe-push-div").style.display="none";else for(let e=a.length-1;0<=e;e--)a[e].style.display="block";this.overlayTimer=window.setTimeout((()=>{""===e.style.opacity&&(e.style.display="block")}),1500),e.onclick=()=>{this.hideOverlay()}}))))}}hideOverlay(){clearTimeout(this.overlayTimer),ua()}}ha.baseLogTag="HTTPS-NotificationManager";const ma="Web push settings not configured on MoEngage dashboard: "+Z;class pa{constructor(e,t){this.currentManager=null;var n=pa.baseLogTag+".constructor";this.config=e,this.browser=t,this.browser.isWebPushCompatible()?e.webPushPlatformData.chrome&&(e.isWebPushEnabled?"https"===function(){if(window)return"localhost"===window.location.hostname?"https":"http:"===window.location.protocol?"http":"https:"===window.location.protocol||"chrome-extension:"===window.location.protocol?"https":void 0}()?this.currentManager=new ha(e):Ue.error(1,n,"Web Push does not work in http mode"):(Ge()&&new ha(e),Ue.warn(1,n,"Web push settings not configured. Please configure at ",Z))):this.browser.name===lt.BROWSER_NAMES.SAFARI&&"safari"in window&&"pushNotification"in window.safari&&(this.currentManager=null,Ue.warn(1,n,"Web push is only supported on Safari 16 and above."))}showHardAsk(){const e=pa.baseLogTag+".showHardAsk";return new Promise(((t,n)=>{this.getCurrentPermissionState().then((i=>{null!=this.currentManager?i===na.PROMPT?this.currentManager.showHardAsk().then((n=>{var i,a;n.state===na.DISMISSED?(null!==(i=Me())&&void 0!==i&&i.track_event(S),wt.broadcastToWindow({topic:U,name:H.HARD_ASK_DISMISSED}),wt.deprecatedSdkCallback("opt_in_dismissed"),oa.runCallbacks(H.HARD_ASK_DISMISSED),Ue.log(1,e,"Hard ask was dismissed")):n.state===na.GRANTED?(null!==(a=Me())&&void 0!==a&&a.track_event(f),wt.broadcastToWindow({topic:U,name:H.HARD_ASK_ALLOWED,data:n.subscriptionDetails}),wt.deprecatedSdkCallback("opt_in_allowed"),oa.runCallbacks(H.HARD_ASK_ALLOWED),Ue.log(1,e,"Push permission was granted"),Ue.customLabel(1,e,"token",n.subscriptionDetails.token)):n.state===na.DENIED&&(null!==(a=Me())&&void 0!==a&&a.track_event(E),null!==(a=Me())&&void 0!==a&&a.track_event("Web Push Opt-in Denied"),wt.broadcastToWindow({topic:U,name:H.HARD_ASK_DENIED}),wt.deprecatedSdkCallback("opt_in_blocked"),oa.runCallbacks(H.HARD_ASK_DENIED),Ue.log(1,e,"Notification permission was denied")),t(n)})).catch((n=>{Ue.error(1,e,"Error showing hard ask:",n),t({state:i,subscriptionDetails:null})})):(Ue.log(1,e,"Not showing Hard Ask as current permission state is",i),this.getPushTokenDetails().then((n=>{Ue.customLabel(1,e,"token",n.token),t({state:i,subscriptionDetails:n})})).catch((n=>{Ue.warn(1,e,"Could not get push token details"),t({state:i,subscriptionDetails:null})}))):(Ue.log(1,e,"MoEngage web push settings not configured. Please configure at",Z),n(Y))})).catch((e=>{n(e)}))}))}getCurrentPermissionState(){return null!=this.currentManager?this.currentManager.getCurrentPermissionState():Promise.reject(ma)}getPushTokenDetails(){return null!=this.currentManager?this.currentManager.getPushTokenDetails():Promise.reject(ma)}removeToken(){return null!=this.currentManager?this.currentManager.removeToken():Promise.reject(ma)}showNotification(e){var t=pa.baseLogTag+".showNotification";if(null!=this.currentManager)return this.currentManager.showNotification(e);Ue.warn(1,t,ma)}}pa.baseLogTag="NotificationManager";class va{constructor(e){this.mainDivs=[],this.config=e}showSoftAsk(){const e=va.baseLogTag+".showSoftAsk";return new Promise(((t,n)=>{let i=this.config.loadTime;lt.getInstance().then((n=>{(this.config.optInType===Qt.SELF_HANDLED||n.isSafari()&&this.config.optInType===Qt.ONE_STEP)&&(i=0),i&&Ue.log(1,e,"Delay of",i," second(s) requested before opt-in flow"),setTimeout((()=>{!n.isWebPushCompatible()||this.config.optInType!==Qt.TWO_STEP&&this.config.optInType!==Qt.SELF_HANDLED?(Ye.set(s.SOFT_ASK_STATUS,ga.NOT_SHOWN),t({showHardAsk:!0,softAskState:ga.NOT_SHOWN})):this.showOptIn((()=>{Ue.log(1,e,"Soft ask was shown"),Ye.set(s.OPT_IN_SHOWN_TIME,Date.now()),Ye.set(s.SOFT_ASK_STATUS,ga.SHOWN),wt.broadcastToWindow({topic:U,name:H.SOFT_ASK_SHOWN}),wt.deprecatedSdkCallback("soft_ask_shown"),oa.runCallbacks(H.SOFT_ASK_SHOWN)}),(()=>{var n;null!==(n=Me())&&void 0!==n&&n.track_event(p),this.hideOptIn(),Ui(),Ue.log(1,e,"Soft ask was allowed"),Ye.set(s.SOFT_ASK_STATUS,ga.ALLOWED),t({showHardAsk:!0,softAskState:ga.ALLOWED}),wt.broadcastToWindow({topic:U,name:H.SOFT_ASK_ALLOWED}),wt.deprecatedSdkCallback("soft_ask_allowed"),oa.runCallbacks(H.SOFT_ASK_ALLOWED)}),(()=>{var n;this.hideOptIn(),Ui(),null!==(n=Me())&&void 0!==n&&n.track_event(m),Ue.log(1,e,"Soft ask was dismissed"),Ye.set(s.SOFT_ASK_STATUS,ga.DISMISSED),t({showHardAsk:!1,softAskState:ga.DISMISSED}),wt.broadcastToWindow({topic:U,name:H.SOFT_ASK_DISMISSED}),wt.deprecatedSdkCallback("soft_ask_closed"),oa.runCallbacks(H.SOFT_ASK_DISMISSED)}),(e=>{e=!!e,this.hideOptIn(),t({showHardAsk:e,softAskState:ga.NOT_SHOWN})}))}),1e3*i)}))}))}showOptIn(e,t,n,i){const a=va.baseLogTag+".showOptIn";if(this.config.optInType===Qt.TWO_STEP){let r=document.getElementById("moe-push-div");null==r&&(r=document.createElement("div"),r.id="moe-push-div",r.className="moe-push-class"),lt.getInstance().then((o=>{let s=null;if(s=o.isMobile?sa(this.config.optInPreview,this.config.isBrandingHidden).mobileUI:sa(this.config.optInPreview,this.config.isBrandingHidden).webUI,null!=s){r.innerHTML=s;const l=document.body.firstChild;null!=l&&l.parentNode.insertBefore(r,l),this.moeDiv=r;const d=r.firstElementChild;d&&(d.tabIndex=0,d.setAttribute("role","alert"),d.setAttribute("aria-live","polite"),Hi(r.firstElementChild));const c=document.getElementById("optInText")||document.getElementById("optInTextConventional"),u=document.getElementById("moe-dontallow_button");null==c?(Ue.error(1,a,"Error showing soft ask. Allow button id is missing"),i()):(e(),null!==(o=Me())&&void 0!==o&&o.track_event(h),c.onclick=()=>{t()},u?u.onclick=()=>{n()}:window.moeRemoveBanner=()=>{n()})}else Ue.error(1,a,"Error displaying soft ask"),i()}))}else if(this.config.optInType===Qt.SELF_HANDLED){var r=We.get();if(r.customSoftAsk){var o=document.getElementsByClassName(r.customSoftAsk.mainClass),s=document.getElementsByClassName(r.customSoftAsk.allowClass),l=document.getElementsByClassName(r.customSoftAsk.dismissClass);if(o.length<1)Ue.error(1,a,"Could not find main class for the soft ask. Class name given:",r.customSoftAsk.mainClass),lt.getInstance().then((e=>{e.isWebPushCompatible()&&(Ue.warn(1,a,"Proceeding to hard ask directly"),i(!0))}));else{e(),s.length<1&&(Ue.warn(1,a,"Could not find any element for allow button. Class name given:",r.customSoftAsk.allowClass),Ue.warn(1,a,"Docs for self-handled opt in available here - ",Q.SELF_HANDLED_DOCS)),l.length<1&&Ue.warn(1,a,"Could not find any element for dismiss button. Class name given:",r.customSoftAsk.dismissClass);for(let e=o.length-1;0<=e;e--){const t=o[e];this.mainDivs.push(t),t.style.display="block",Hi(t)}for(let e=s.length-1;0<=e;e--)s[e].onclick=()=>{t()};for(let e=l.length-1;0<=e;e--)l[e].onclick=()=>{n()}}}else lt.getInstance().then((e=>{e.isWebPushCompatible()?(Ue.warn(1,a,"No soft ask configured. Proceeding to hard ask directly. \n\nYou can ignore this message if you do not want any soft ask."),i(!0)):(Ue.error(1,a,"Soft ask needs to be present in case of http implementation. Can not show hard ask otherwise."),i())}))}}hideOptIn(){null!=this.moeDiv&&(this.moeDiv.style.display="none"),0{e.style.display="none"}))}}va.baseLogTag="SoftAskManager",(En=ga=ga||{}).SHOWN="shown",En.NOT_SHOWN="not shown",En.ALLOWED="allowed",En.DISMISSED="dismissed";class fa{constructor(e,t){this.notificationManager=null,this.softAskManager=null,fa.baseLogTag,this.sdkSettings=e,this.browser=t,this.softAskManager=new va(this.sdkSettings),this.notificationManager=new pa(this.sdkSettings,t),function(){fa.handleSdkDisableListener||(window.addEventListener(U,(e=>function(e,t,n,i){return new(n=n||Promise)((function(t,a){function r(e){try{s(i.next(e))}catch(e){a(e)}}function o(e){try{s(i.throw(e))}catch(e){a(e)}}function s(e){var i;e.done?t(e.value):((i=e.value)instanceof n?i:new n((function(e){e(i)}))).then(r,o)}s((i=i.apply(e,[])).next())}))}(this,0,void 0,(function*(){var t;(null===(t=null==e?void 0:e.detail)||void 0===t?void 0:t.name)===W.SDK_DISABLED&&ua()})))),fa.handleSdkDisableListener=!0)}()}callWebPush(){const e=fa.baseLogTag+".callWebPush";var t,n,i;t=this.sdkSettings,n=this.browser,(null===(i=We.get())||void 0===i||!i.disableWebPush)&&t.isWebPushEnabled&&0<=we.indexOf(n.name)&&navigator.serviceWorker&&"PushManager"in window&&"Notification"in window&&this.notificationManager.getCurrentPermissionState().then((t=>function(e,t,n,i){return new(n=n||Promise)((function(t,a){function r(e){try{s(i.next(e))}catch(e){a(e)}}function o(e){try{s(i.throw(e))}catch(e){a(e)}}function s(e){var i;e.done?t(e.value):((i=e.value)instanceof n?i:new n((function(e){e(i)}))).then(r,o)}s((i=i.apply(e,[])).next())}))}(this,0,void 0,(function*(){var n=(n=t)=>{mt.get().then((t=>{var i,a,r,o,l;t.deviceAdded=(i=this.sdkSettings,a=t,r=rt.getUserIdentities(),o=a.getAttribute("email"),l=a.getAttribute("mobile"),!!(null!==o||null!==l||null!=r&&r.u_em||null!=r&&r.u_mb||null!==(l=null===(l=null==i?void 0:i.configs)||void 0===l?void 0:l.subscriberBasedBillingAttributes)&&void 0!==l&&l.some((e=>null!==a.getAttribute(e)))||r&&0{var t;return null===(t=null===(t=null==i?void 0:i.configs)||void 0===t?void 0:t.subscriberBasedBillingAttributes)||void 0===t?void 0:t.includes((null===(t=Ae.find((t=>t.moeName===e)))||void 0===t?void 0:t.attributeName)||e)}))||bt())),t.save().then((()=>{this.notificationManager.removeToken().then((()=>{var t;null!==(t=Me())&&void 0!==t&&t.track_event(_,{[Se]:!1}),null!==(t=Me())&&void 0!==t&&t.track_event(I),n===na.DENIED?Ue.log(1,e,"Not asking for permission as current state is denied."):(Ye.remove(s.OPT_IN_SHOWN_TIME),this.startPushSubscription())}))}))}))};const i=yield lt.getInstance();var a=Ye.get(s.PUSH_TOKEN),r=t===na.DENIED&&!this.sdkSettings.isDomainLevelStorage;null==a&&t!==na.DENIED?this.startPushSubscription():null!=a&&(r||i.isSafari()&&t===na.PROMPT)?(Ue.log(1,e,"User has removed the permission"),Ue.image(1,J),i.isSafari()&&t===na.PROMPT&&(Ye.set(fe,!0),t=na.DENIED),n(t)):r?Ue.warn(1,e,"Not proceeding with push subscription as current state is denied"):null!=a&&t===na.GRANTED?this.browser.name===lt.BROWSER_NAMES.CHROME?Fe(this.sdkSettings.webPushPlatformData,this.browser)?this.startPushSubscription():Ue.warn(1,e,"Subscription mode is not VAPID type. Cannot subscribe to web push."):(this.startPushSubscription(),this.notificationManager.getPushTokenDetails().then((t=>{Ue.customLabel(1,e,"token",t.token)}))):this.sdkSettings.isDomainLevelStorage?"granted"===Ve.get(s.HARD_ASK_STATUS)?(a=null===(a=Ve.get(s.SUBSCRIPTION_DETAILS))||void 0===a?void 0:a.domain)&&a===window.location.origin?(Ue.log(1,e,"It seems that the user has unsubscribed manually. Starting push subscription.."),n(t)):Ue.log(1,e,"Not showing opt-in as user subscribed to sub-domain"):this.startPushSubscription():n()})))).catch((t=>{Ue.error(1,e,"Error in getting current state:",t)}))}startPushSubscription(){const e=fa.baseLogTag+".startPushSubscription",t=()=>{Ye.set(s.HARD_ASK_STATUS,na.PROMPT);const t=Ye.get(s.PUSH_TOKEN);this.notificationManager.showHardAsk().then((n=>{Ye.set(s.HARD_ASK_STATUS,n.state),n.state===na.GRANTED?null!=n.subscriptionDetails.token?(Ye.set(s.PUSH_TOKEN,n.subscriptionDetails.token),n.subscriptionDetails.domain=window.location.origin,Ye.set(s.SUBSCRIPTION_DETAILS,n.subscriptionDetails),n.subscriptionDetails.token&&t!==n.subscriptionDetails.token&&en.deviceAdd().then((()=>{var i,a;Ue.image(1,"https://media.giphy.com/media/90F8aUepslB84/giphy.gif"),mt.getSync().subscribedToOldSdk?Ue.remoteLogTracking(1,"info",e,"User subscribed from older sdk, hence not sending subscription event"):(null!=t?null!==(i=Me())&&void 0!==i&&i.add_user_attribute("Web Migrated User","true"):null!==(a=Me())&&void 0!==a&&a.add_user_attribute("Web Subscription URL",location.href),null!==(a=Me())&&void 0!==a&&a.track_event(T,{MOE_WEB_PUSH_TOKEN:n.subscriptionDetails.token,migrated_user:!!window.location.search.includes("moe_migration=true")||void 0}))})),this.sdkSettings.isDomainLevelStorage&&(Ve.set(s.SUBSCRIPTION_DETAILS,{domain:n.subscriptionDetails.domain,token:n.subscriptionDetails.token,endpoint:n.subscriptionDetails.endpoint,keys:n.subscriptionDetails.keys}),Ve.set(s.PUSH_TOKEN,n.subscriptionDetails.token))):(Ue.error(1,e,"Push token was received as null."),Ue.error(1,e,"Please contact MoEngage support if this troubleshooting does not solve the issue.")):n.state===na.DENIED&&Ue.image(1,J)})).catch((t=>{Ue.warn(1,e,t)}))},n=()=>{this.softAskManager?this.softAskManager.showSoftAsk().then((e=>{e.showHardAsk&&t()})):Ue.log(1,e,"SoftAskManager not set.")};this.notificationManager.getCurrentPermissionState().then((i=>{if(i===na.GRANTED)this.sdkSettings.optInType!==Qt.ONE_STEP&&Ue.remoteLogTracking(1,"info",e,"Skipping soft ask as browser permission is set to allow all notifications"),t();else{var a=parseInt(Ye.get(s.OPT_IN_SHOWN_TIME));if(Ye.get(s.SOFT_ASK_STATUS),Ye.get(s.HARD_ASK_STATUS),i=(Date.now()-a)/36e5,!a||this.sdkSettings.optInType===Qt.SELF_HANDLED||i>this.sdkSettings.promptAgain)if(this.browser.name===lt.BROWSER_NAMES.SAFARI&&this.sdkSettings.optInType===Qt.ONE_STEP){Ue.log(1,e,"1 step optin configured. In Safari 16+ and macOS 13+, the web push optin will be shown after a user click. Any delay will be ignored.");const t=()=>{window.removeEventListener("click",t),n()};window.addEventListener("click",t)}else n();else{let t,n;n=i<1?(t=Math.floor(60*i),"minute(s)"):(t=Math.floor(100*i)/100,"hour(s)"),Ue.remoteLogTracking(1,"info",e,"Not showing opt in as last it was shown",t,n,"back on",new Date(a),". Reappear time is set to",this.sdkSettings.promptAgain,"hours."),Ue.log(1,e,"You can clear localstorage to get opt-in again.")}}}))}getPermissionState(){return this.notificationManager.getCurrentPermissionState()}showNotification(e){this.notificationManager&&this.notificationManager.showNotification(e)}trackPushOptedDeviceAttribute(){return new Promise((e=>{var t,n=Ye.get(s.OPTED_STATUS_TRACK_TIME);n&&864e5{const i=new fa(e,n);i&&He(e,n)?(0<=[Qt.ONE_STEP,Qt.TWO_STEP].indexOf(e.optInType)?i.callWebPush():(Ue.log(1,t,"Self handled setting. Will show opt-in on manual invocation, if required."),i.getPermissionState().then((e=>{var n=Ye.get(s.PUSH_TOKEN);(e===na.GRANTED||null!=n&&e===na.DENIED)&&(e===na.GRANTED&&Ue.log(1,t,"Notification permission already granted. Proceeding to subscribe the user"),i.callWebPush())})).catch((e=>{Ue.warn(1,t,"Cannot get permission state: ",e)}))),i.trackPushOptedDeviceAttribute()):we.indexOf(n.name)<0&&Ue.warn(1,t,"Web push not supported on this browser. Supported browsers are:\n\t\t1. Google Chrome\n\t\t2. Mozilla Firefox\n\t\t3. Opera\n\t\t4. Edge\n\t\t5. Safari 16 and above + macOS 13 and above")}))}static getPermissionState(e){return new Promise(((t,n)=>{dt().then((i=>{lt.getInstance().then((a=>{new fa(i,a).getPermissionState().then((n=>{t(n),e&&e(null,n)})).catch((t=>{n(t),e&&e(t,null)}))}))})).catch((t=>{n(t),e&&e(t,null)}))}))}static handlePublicFunctions(){const e=Me();e.callWebPush=Ea.callWebPush,e.call_web_push=Ea.callWebPush,e.showNotification=Ea.showNotification,e.getPermissionState=Ea.getPermissionState}static callWebPush(e){const t=Ea.baseLogTag+".callWebPush";_t()?dt().then((n=>{n.isWebPushEnabled?n.optInType===Qt.SELF_HANDLED?(Ue.log(1,t,"Starting web push functions"),null!=e&&Sa.setSoftAskConfig(e),lt.getInstance().then((e=>{new fa(n,e).callWebPush()}))):Ue.warn(1,t,"This feature can only be used when you have chosed self-handled approach in the dashboard. You can check dashboard here:",Z):Ue.log(1,t,"Web push settings not configured on dashboard yet. To start web push subscriptions, please configure the settings on dashboard.")})).catch((e=>{Ue.error(1,t,"Error in getting Web SDK Settings. This might indicate that the App is blocked.")})):Ue.warn(2,t,"Cannot initiate web push as Web SDK has been disabled.")}static showNotification(e){dt().then((t=>{lt.getInstance().then((n=>{new fa(t,n).showNotification(e)}))})).catch((e=>{}))}}function ya(e){return!(!e||"object"!=typeof e)&&["moe_offering_id","moe_offering_name","moe_offering_type","moe_decision_policy_id","moe_decision_policy_name"].every((t=>t in e&&"string"==typeof e[t]&&""!==e[t].trim()))}function ba(e){return!(!e||"object"!=typeof e)&&["cid","moe_locale_id","moe_variation_id"].every((t=>t in e&&"string"==typeof e[t]&&""!==e[t].trim()))}function _a(e,t){if(e&&"object"==typeof e&&!Array.isArray(e))return e;if("string"==typeof e)try{var n=JSON.parse(e);return n&&"object"==typeof n&&!Array.isArray(n)?n:(Ue.error(2,t,"Parsed JSON is not a valid object"),null)}catch(e){return Ue.error(2,t,"Error parsing JSON string:",e),null}return null}Ea.baseLogTag="PushModule";class Ta{constructor(){this.initialize=()=>{Me().personalize={trackClick:this.trackClick,trackImpression:this.trackImpression,onUpdateDeviceId:this.onUpdateDeviceId,offeringClicked:this.offeringClicked,offeringShown:this.offeringShown},Ta.setupFetchExperiencesFunction()},this.getDeviceUniqueId=e=>{window.addEventListener(U,(t=>{t.detail.name===W.DEVICE_UUID&&(t=t.detail.data,e(t))}))},this.onUpdateDeviceId=e=>{this.getDeviceUniqueId(e)},this.offeringClicked=(e,t)=>Ta.track(e,"MOE_OFFERING_CLICKED",ya,"Invalid offering context, missing required fields",t),this.offeringShown=(e,t)=>Ta.track(e,"MOE_OFFERING_SHOWN",ya,"Invalid offering context, missing required fields",t),this.trackClick=(e,t)=>Ta.track(e,"MOE_WEBP_MESSAGE_CLICKED",ba,"Invalid experience context, missing required fields",t),this.trackImpression=(e,t)=>Ta.track(e,"MOE_WEBP_MESSAGE_SHOWN",ba,"Invalid experience context, missing required fields",t)}}Ta.baseLogTag="Web Personalization Tracking",Ta.setupFetchExperiencesFunction=()=>{const e=()=>{const e=Me();e&&e.personalize&&(e.personalize.fetchExperiences=window.MoeWebP.fetchExperiences)};window.MoeWebP&&window.MoeWebP.fetchExperiences?e():window.addEventListener(U,(t=>{t.detail.name===W.WEBP_INIT&&e()}))},Ta.track=(e,t,n,i,a)=>{var r=Ta.baseLogTag+".track";if(!(e=_a(e,r)))return Ue.error(2,r,"Invalid context"),Promise.reject(new Error("Invalid context"));if(!n(e))return Ue.error(2,r,i),Promise.reject(new Error(i));a=a&&_a(a,r)||{},a=Object.assign(Object.assign({},e),a);try{const e=Me();return e?(Ue.log(2,r,t+": Event Tracked"),e.track_event(t,a)):(window.moengage_q=window.moengage_q||[]).push({f:"track_event",a:[t,a]}),Promise.resolve()}catch(e){return Ue.error(2,r,"Failed tracking expression",e),Promise.reject(e)}};var Ia=function(e,t,n,i){return new(n=n||Promise)((function(a,r){function o(e){try{l(i.next(e))}catch(e){r(e)}}function s(e){try{l(i.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?a(e.value):((t=e.value)instanceof n?t:new n((function(e){e(t)}))).then(o,s)}l((i=i.apply(e,t||[])).next())}))};class Aa{constructor(){Aa.handleEventListeners()}static loadModule(e){var t=Aa.baseLogTag+".loadModule";return null!=Aa.loadPromises[e.name]||(Ue.log(1,t,"Starting to fetch module: ",e.name),Aa.loadPromises[e.name]=new Promise(((t,n)=>{!function(e,t){if(document){const n=document.createElement("script");n.setAttribute("src",yt(e)),n.onload=t,n.async=!0,document.body.appendChild(n)}}(e.src,(()=>{var n=new(0,window[de[e.name].windowLocation])(n=We.get());t(n)}))}))),Aa.loadPromises[e.name]}static enableOSM(){return Ia(this,void 0,void 0,(function*(){var e=We.get();void 0===Me().onsite.OnsiteApiClient&&(Me().onsite=new ra(e),yield Me().onsite.initialize())}))}static disableOSM(e=!1,t=!1){return Ia(this,void 0,void 0,(function*(){const n=Me();n.onsite.OnsiteApiClient&&(Ue.log(1,Aa.baseLogTag,"logging out from OSM module"),yield Me().onsite.logout(e,t),n.onsite=null,n.onsite=Sn)}))}static enableCards(e){return Ia(this,void 0,void 0,(function*(){const t=Me();Aa.loadModule(de.CARDS).then((n=>{n.initialize(e),t.cards=n})).catch((e=>{Ue.error(1,"enableCards","Error in loading Cards Module:",e)}))}))}static disableCards(){return Ia(this,void 0,void 0,(function*(){const e=Me();e.cards&&(yield e.cards.disableCardsModule())}))}static enablePush(e){return Ia(this,void 0,void 0,(function*(){(new Ea).initialize(e)}))}static handleEventListeners(){window.addEventListener("MODULE_ACTIONS",(e=>Ia(this,void 0,void 0,(function*(){var t,n;"DISABLE_OSM"===e.detail.name&&Aa.disableOSM(null===(t=e.detail.data)||void 0===t?void 0:t.isUserLogout),"DISABLE_ENABLE_OSM"===e.detail.name&&null!==(n=null===(n=Me())||void 0===n?void 0:n.onsite.initData)&&void 0!==n&&n.appId&&(yield Aa.disableOSM(),Aa.enableOSM())}))))}static enableWebPersonalizationTracking(){return Ia(this,void 0,void 0,(function*(){(new Ta).initialize()}))}}Aa.baseLogTag="ModuleManager",Aa.loadPromises={};class wa{constructor(e){this.deviceToLogout=Le(e,"deviceToLogout",null)}static get(){return new wa(Ye.get(s.GRACEFUL_DATA))}save(){Ye.set(s.GRACEFUL_DATA,this)}}class Da{onWindowVisibilityChange(e){Da.baseLogTag,Re.set("isWindowActive",!0),document.addEventListener("focus",(()=>{t(!0)}),!1),document.addEventListener("blur",(()=>{t(!1)}),!1),window.addEventListener("focus",(()=>{t(!0)}),!1),window.addEventListener("blur",(()=>{"IFRAME"!==document.activeElement.tagName&&t(!1)}),!1);const t=e=>"boolean"==typeof e?n(e?"visible":"hidden"):document.hidden?n("hidden"):n("visible"),n=t=>{Re.set("isWindowActive","visible"===t),e(t)};window.addEventListener("visibilitychange",t,!1)}static beforeUnload(){var e;if(Da.isBatchingEnabled&&(Wt.windowClosed=!0,Vt.sendBeacon()),null!==(e=window.Moengage.onsite)&&void 0!==e&&e.displayManager){const{sendDelayCampaignStats:e,displayManager:t,funnelManager:n}=window.Moengage.onsite;e(t,n)}}static removeBeforeUnloadListeners(){window.removeEventListener("beforeunload",Da.beforeUnload,!1)}static addBeforeUnloadListeners(e){e&&(Da.isBatchingEnabled=!0),window.addEventListener("beforeunload",Da.beforeUnload,!1)}}Da.baseLogTag="WindowEventManager",Da.isBatchingEnabled=!1;var Oa=function(e,t,n,i){return new(n=n||Promise)((function(a,r){function o(e){try{l(i.next(e))}catch(e){r(e)}}function s(e){try{l(i.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?a(e.value):((t=e.value)instanceof n?t:new n((function(e){e(t)}))).then(o,s)}l((i=i.apply(e,t||[])).next())}))};const Pa="MoEngage.user";class Na{static addAttribute(e,t){const n=Pa+".addUserAttribute";return new Promise(((i,a)=>{if(!_t())return Ue.warn(2,n,`Not tracking the attribute "${e}" as Web SDK has been disabled.`),void i(!1);dt().then((a=>{if("string"!=typeof e||null==e)Ue.error(1,n,"Attribute name needs to be a string"),i({error:5e3,message:"Attribute name needs to be a string. Type provided was "+typeof e});else if(""===e)Ue.error(1,n,"Attribute name can not be an empty string"),i({error:5001,message:"Attribute name can not be an empty string"});else if(null==t)Ue.error(1,n,"Attribute value null"),i({error:5003,message:"Attribute value was empty"});else if("string"==typeof t&&""===t)Ue.error(1,n,"Attribute value needs to be non-empty string or non-empty object"),i({error:5004,message:"Attribute value needs to be non-empty string or non-empty object"});else if(kt(t)&&x.includes(e))Ue.error(1,n,`Value of '${e}' attribute cannot be an object`),i({error:5002,message:"Attribute value cannot be an object"});else if("object"==typeof t&&Array.isArray(t)&&!t.length)Ue.error(1,n,"Attribute value needs to be non-empty string or non-empty object"),i({error:5006,message:"Attribute value needs to be non-empty string or non-empty object"});else if(kt(t)&&!Object.keys(t).length)Ue.error(1,n,"Attribute value cannot be empty object"),i({error:5005,message:"Attribute value cannot be empty object"});else{const r=new ut(e,t),o=()=>{mt.get().then((e=>{e.addAttribute(r).then((e=>Oa(this,void 0,void 0,(function*(){yield this.checkAndAddAttributeInIdentityMap(r,t,a),e?(r.key===O&&(yield rt.updateIdentifiersIDB({moe_user_id:r.value}),Ue.log(1,n,"Logging in the user with id: ",r.value)),$t.createUserAttributeEvent(r).then((e=>{Ue.log(2,n,"Event to be converted to report:",e),Jt.addEvent(e),en.collectGetParams().then((t=>{t=new qt(qt.REPORT_ADD_TYPE.USER_ATTRIBUTE,t,e),en.reportAdd(t).then((()=>{i(!0)}))}))}))):(Ue.error(1,n,"Attribute already present/queued. Not adding again."),i({error:5005,message:"Attribute already present/queued. Not adding again."}))}))))}))};"id"===e?mt.get().then((e=>Oa(this,void 0,void 0,(function*(){var r=e.indexOfAttribute("id");if(-1Oa(this,void 0,void 0,(function*(){yield this.forcedLogoutUpdateInIdentityMap(t,i,a),o()}))))}else yield this.uidLoginUpdateIdentityMap(t,a),o()})))):(wt.broadcastToWindow({topic:"USER_ACTIONS",name:"LOGIN",data:{id:t}}),o())}})).catch((a=>{var r;null!==(r=window.moengage_q)&&void 0!==r&&r.push({f:"add_user_attribute",a:[e,t]}),Ue.error(1,n,"Error in getting Web SDK Settings. ",a),i({error:5007,message:"Error in getting Web SDK Settings.",err:a})}))}))}static login(e){return Na.addAttribute("id",e)}static identifyUser(e){return Oa(this,void 0,void 0,(function*(){var t=Pa+".identifyUser";if(_t())if("string"==typeof e&&e.length||function(e){if("object"==typeof e&&null!==e){let n=!0;for(const i in e){n=!1;var t=e[i];if("string"!=typeof t||!t.length)return}return!n}}(e)){let a,r={};"string"==typeof e?r.uid=e:r=Object.assign({},e);try{a=yield dt()}catch(e){Ue.warn(1,t,"Could not fetch sdk config.")}const o=yield mt.get();var n=rt.getUserIdentities()||{};let s=!1,l=!1;const d={};for(const e in r){if("string"!=typeof r[e])return void Ue.error(1,t,`Identity '${e}' has a non-string value. Rejecting the IdentityMap.`);n[e]&&n[e]===r[e]||(s=!0),n[e]&&n[e]!==r[e]&&(d[e]=n[e]),!l&&this.shouldTriggerPushSubBilling(e,o,a)&&(l=!0)}if(s){var i=Object.keys(rt.getUserIdentities()||{}).length||o.getAttribute("id");i&&(yield Vt.flushReports());let e=!1;if(l)try{yield en.deviceAdd(),e=!0}catch(e){Ue.error(1,t,"Error occurred while adding device: ",e)}r.uid&&r.uid!==n.uid&&(yield o.addAttribute(new ut("id",r.uid)),yield rt.updateIdentifiersIDB({moe_user_id:r.uid})),yield rt.updateCurrentUserIdentities(r),Object.keys(d).length&&(yield rt.updatePreviousUserIdentities(d));try{!i&&Vt.reports.length||!a||a.isPushSubBilling&&(!a.isPushSubBilling||!o.deviceAdded&&!e)||(yield en.sendBatchOfReports([]))}catch(e){Ue.error(1,t,"Error occurred while sending identities request: ",e)}rt.broadcastUserIdentityUpdate()}else Ue.warn(1,t,"Identities not updated as same values were passed again.")}else Ue.error(1,t,"type of the argument 'identities' is not supported OR empty identity received.");else Ue.warn(2,t,"Not tracking user identities as Web SDK has been disabled.")}))}static logout(e,t){const n=Pa+".logout";if(!_t())return Ue.warn(2,n,"Not tracking user logout as Web SDK has been disabled."),Promise.resolve(!1);const i=e?{type:"forced",new_uid:t}:null;return function(){const e=wa.get();null!=mt.getSync()&&(e.deviceToLogout=mt.getSync().deviceUuid,e.save())}(),new Promise((e=>{Xt.track(b,i).then((()=>Oa(this,void 0,void 0,(function*(){Ue.log(1,n,"Logging out now!"),yield Vt.flushReports(!0),Da.removeBeforeUnloadListeners(),dt().then((t=>Oa(this,void 0,void 0,(function*(){t.isDomainLevelStorage&&(Ve.remove(s.USER_DATA),Ve.remove(s.IDENTITY_MAP)),Jt.clear(),rt.broadcastLogout(),Ye.logout(),yield rt.updateIdentifiersIDB({}),yield mt.logout(),Ye.remove(s.GRACEFUL_DATA),en.onDeviceAdd=new it,setTimeout((()=>{wt.broadcastToWindow({topic:"USER_ACTIONS",name:"LOGOUT_COMPLETED"})}),100),ke.setRemoteLogging(null,!1),Re.set(o,!0),e(!0)})))).catch((t=>{Ue.error(1,n,"Error in getting Web SDK Settings. This might indicate that the App is blocked."),e(!1)}))}))))}))}static updateUniqueId(e){const t=Pa+".updateUniqueId";return _t()?new Promise((n=>{mt.get().then((i=>Oa(this,void 0,void 0,(function*(){var a=i.indexOfAttribute(O),r=i.indexOfAttribute("oldUniqueIds");if(!(-1{Na.login(e).then((()=>{n(!0)}))}))):(Ue.warn(1,t,"New id and old id are the same. Not updating the id."),n(!0))}))))})):(Ue.warn(2,t,"Not updating user ID as Web SDK has been disabled."),Promise.resolve(!1))}static getAttributes(){const e=mt.getSync().attributes,t={};return e.map((e=>{t[e.key]=e.value})),t}static setAttributes(e){mt.getSync().attributes=e,Ue.log(2,"MoEngage.user.setAttributes","User attributes have been updated")}static checkAndAddAttributeInIdentityMap(e,t,n){var i;return Oa(this,void 0,void 0,(function*(){var a;e.key!==O&&"string"==typeof t&&(a=(null===(i=Ae.find((t=>t.attributeName===e.key)))||void 0===i?void 0:i.moeName)||e.key,n.configs.identityAttributes.includes(a)&&(Ue.log(1,"MoEngage.user.checkAndAddAttributeInIdentityMap",`Attribute to be tracked: '${e.key}' is an identity.`),yield this.identifyUser({[a]:t})))}))}static forcedLogoutUpdateInIdentityMap(e,t,n){return Oa(this,void 0,void 0,(function*(){n.configs.identityAttributes.includes("uid")&&t&&t!==e&&(yield rt.updateCurrentUserIdentities({uid:e}))}))}static uidLoginUpdateIdentityMap(e,t){var n;return Oa(this,void 0,void 0,(function*(){var i;null!==(n=null===(n=t.configs)||void 0===n?void 0:n.identityAttributes)&&void 0!==n&&n.includes("uid")&&(null!=(i=rt.getUserIdentities())&&i.uid&&i.uid!==e&&(yield Vt.flushReports(),yield rt.updatePreviousUserIdentities({uid:i.uid})),yield rt.updateCurrentUserIdentities({uid:e})),rt.broadcastUserIdentityUpdate()}))}static shouldTriggerPushSubBilling(e,t,n){return(null==n?void 0:n.isPushSubBilling)&&!t.deviceAdded&&Ke((null===(t=Ae.find((t=>t.moeName===e)))||void 0===t?void 0:t.attributeName)||e,n.configs.subscriberBasedBillingAttributes)}}const Ca=()=>new Promise((e=>{"complete"!==window.document.readyState?window.addEventListener("load",(()=>{e(!0)})):e(!0)}));class La{static enableSdk(){const e=this.baseLogTag+".enableSdk";return new Promise((t=>{_t()?(Ue.warn(2,e,"SDK is already enabled."),t(!0)):(this.setDisabledFlag(!1),Ua().then((()=>{this.broadcastSdkEnabled(),Ht.initialize().then((()=>{this.setDisabledFlagIDB(!1)})),Ot(),t(!0)})))}))}static disableSdk(){const e=this.baseLogTag+".disableSdk";return new Promise((t=>{_t()?(this.broadcastSdkDisabled(),this.setDisabledFlag(!0),this.setDisabledFlagIDB(!0).then((e=>{this.disableSdkActivities(),(new Rt).clearSessionAndSource(),this.filterAndClearUserAttributesCache(),t(e)}))):(Ue.warn(2,e,"SDK is already disabled."),t(!0))}))}static setDisabledFlag(e){Ye.set(s.SDK_DISABLED,e),Ve.set(s.SDK_DISABLED,e)}static filterAndClearUserAttributesCache(){var e;const t=Ye.get(s.WEB_SETTINGS),n=null===(e=null==t?void 0:t.configs)||void 0===e?void 0:e.identityAttributes,i=null===(e=null==t?void 0:t.configs)||void 0===e?void 0:e.subscriberBasedBillingAttributes,a=Ye.get(s.USER_DATA);null!==(e=null==a?void 0:a.attributes)&&void 0!==e&&e.length&&(a.attributes=a.attributes.filter((e=>{if(null!=n&&n.length){var a=(null===(a=Ae.find((t=>t.attributeName===e.key)))||void 0===a?void 0:a.moeName)||e.key;if(n.includes(a))return!0}const r=[P,R,"Web Migrated User","Web Subscription URL"];return!(null==t||!t.isPushSubBilling||!(r.includes(e.key)||null!=i&&i.length&&i.includes(e.key)))})),Na.setAttributes(a.attributes),Ye.set(s.USER_DATA,a))}static broadcastSdkEnabled(){wt.broadcastToWindow({topic:U,name:W.SDK_ENABLED})}static broadcastSdkDisabled(){wt.broadcastToWindow({topic:U,name:W.SDK_DISABLED})}static setDisabledFlagIDB(t=!1){return function(e,t,n,i){return new(n=n||Promise)((function(t,a){function r(e){try{s(i.next(e))}catch(e){a(e)}}function o(e){try{s(i.throw(e))}catch(e){a(e)}}function s(e){var i;e.done?t(e.value):((i=e.value)instanceof n?i:new n((function(e){e(i)}))).then(r,o)}s((i=i.apply(e,[])).next())}))}(this,0,void 0,(function*(){return new Promise((n=>{var i;null!==(i=this.moeDataStore)&&void 0!==i&&i.getItem||(this.moeDataStore=e.createInstance({driver:[e.INDEXEDDB],name:ae,storeName:re})),this.moeDataStore?this.moeDataStore.setItem(s.SDK_DISABLED,t).then((()=>{n(!0)})).catch((()=>n(!1))):n(!1)}))}))}static disableSdkActivities(){var e;Vt.suspendBatching(),null!==(e=We.get())&&void 0!==e&&e.enableSPA&&pn.removeURLChangeObserver(),Da.removeBeforeUnloadListeners();for(const e in s.Q)qe.purge(e);"function"==typeof(null===(e=Ht.offlineDataStore)||void 0===e?void 0:e.clear)&&Ht.offlineDataStore.clear()}}La.baseLogTag="SdkMethods";var Ra=function(e,t,n,i){return new(n=n||Promise)((function(a,r){function o(e){try{l(i.next(e))}catch(e){r(e)}}function s(e){try{l(i.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?a(e.value):((t=e.value)instanceof n?t:new n((function(e){e(t)}))).then(o,s)}l((i=i.apply(e,t||[])).next())}))};class Ma{}Ma.track_event=(e,t)=>Xt.track(e,t),Ma.add_unique_user_id=e=>Ra(void 0,void 0,void 0,(function*(){return yield Na.login(e)})),Ma.update_unique_user_id=e=>Ra(void 0,void 0,void 0,(function*(){return yield Na.updateUniqueId(e)})),Ma.add_user_attribute=(e,t)=>Na.addAttribute(e,t),Ma.add_first_name=e=>Na.addAttribute("first_name",e),Ma.add_last_name=e=>Na.addAttribute("last_name",e),Ma.add_email=e=>Na.addAttribute("email",e),Ma.add_mobile=e=>Na.addAttribute("mobile",e),Ma.add_user_name=e=>Na.addAttribute("name",e),Ma.add_gender=e=>Na.addAttribute("gender",e),Ma.add_birthday=e=>Na.addAttribute("birthday",e),Ma.destroy_session=()=>Na.logout(),Ma.track_page_view=()=>(Xt.track(u,{timestamp:Number(Date.now())}),Xt.track(g,{timestamp:Number(Date.now())})),Ma.identifyUser=e=>Ra(void 0,void 0,void 0,(function*(){return yield Na.identifyUser(e)})),Ma.getUserIdentities=()=>rt.getUserIdentities(),Ma.enableSdk=()=>Ra(void 0,void 0,void 0,(function*(){return yield La.enableSdk()})),Ma.disableSdk=()=>Ra(void 0,void 0,void 0,(function*(){return yield La.disableSdk()})),Ma.isSdkEnabled=()=>_t(),Ma.user={getAttributes:Na.getAttributes},Ma.getUserId=()=>{var e;return(null===(e=Na.getAttributes())||void 0===e?void 0:e.USER_ATTRIBUTE_UNIQUE_ID)||""},Ma.getUserAttribute=e=>Na.getAttributes()[e]||"";class ka{static getUuid(){return Ye.get(s.USER_DATA).deviceUuid}static getPushToken(){return Ye.get(s.PUSH_TOKEN)}static getDeviceData(){return Ye.get(s.DEVICE_DATA)}static setDeviceData(e,t){Ye.set(s.DEVICE_DATA,Object.assign(Object.assign({},this.getDeviceData()),{[e]:t}))}static createNewDeviceUniqueId(){this.setDeviceData("deviceUniqueId",(0,Je.v4)())}}function xa(t){const n="Pre-Initialization";if(!(e=>{const t=["bot","spider","crawler","crawling","Applebot","PetalBot","pingbot","proximic","AdsBot-Google","Googlebot","Cincraw","SnapchatBot","Snapchat-Proxy/1.0","SnapchatAds","Snapchat-Ads/1.0","YandexRenderResourcesBot","bingbot","slurp","MicrosoftPreview","Baiduspider","HeadlessChrome",...Array.isArray(e)?e:[]];return new RegExp(t.join("|"),"i").test(navigator.userAgent)})(null==t?void 0:t.bots_list)){var i=Me();if(i&&0{var i;Ba(),new Aa,(e=>{const t="handleLogger";Ue.setLogLevel(e.debugLevel),Ue.log(1,t,"Init data: ",e),Ue.log(1,t,"Script loaded!"),Ue.customLabel(1,t,"SDK Version","2.56.0"),e.debugLevel>0&&(Ue.warn(1,t,"You are currently using MoEngage in debug environment. You'll find all the data captured in this environment in the TEST mode on the dashoard."),Ue.warn(1,t,"Please initialize with debugLevel as",0,"when using on your production environment."))})(r),i=t.disableSdk,new Promise((e=>{const t=indexedDB.open("moe_database");t.onsuccess=()=>{t.result.objectStoreNames.contains("moe_data")?e(!0):e(!1)},t.onerror=()=>{e(!1)}})).then((t=>{if(t){const n=e.createInstance({driver:[e.INDEXEDDB],name:ae,storeName:re});n&&(n.setItem("isSdkDisabledAtInit",!!i),(Tt()||Ve.get(d))&&("boolean"==typeof(t=Ve.get(s.SDK_DISABLED))?n.setItem(s.SDK_DISABLED,t):n.removeItem(s.SDK_DISABLED)))}})),_t()||(Tt()||Ve.get(d))&&!1===Ve.get(s.SDK_DISABLED)&&(Ye.set(s.SDK_DISABLED,!1),1)?(window.addEventListener("USER_ACTIONS",(e=>{"LOGOUT_COMPLETED"===e.detail.name&&Ua(!0)})),Ua().then((()=>{Ot()}))):Ue.warn(2,n,"Not initialising the SDK as it has been disabled."),wt.broadcastToWindow({topic:U,name:W.MOE_INIT,data:t},!0)})),i=window.moengage_object||"Moengage",a=Object.assign(Object.assign(Object.assign({},fn),Ma),{onsite:Sn}),window[i]=a}return Ue.error(1,n,"App Id not specified. Please check docs page to complete the integration - ",Q.WEBSDK_DOCS),yn}Ue.error(1,n,"Bot detected, Can't initialise the MoEngage Web SDK")}const Ba=()=>{tt()===Te.WEB&&e.createInstance({driver:[e.INDEXEDDB,e.WEBSQL,e.LOCALSTORAGE],name:te,storeName:ne}).clear()};window&&(window.moe=xa,window.moeBannerText="banner",window[se]=Jt);const Ua=(e=!1)=>{const t="Initialization";return new Promise((n=>mn.getWebSDKSettings().then((i=>{const{isDomainLevelStorage:a,isPushSubBilling:r,isWebPushEnabled:o,configs:{isBatchingEnabled:l,remoteLogTracking:d,logLevel:c,isCardsModuleEnabled:u}}=i;ke.setRemoteLogging(c,d),Ha(a),Fa(l,d,i);var g=ka.getDeviceData();return null!=g&&g.deviceUniqueId||ka.createNewDeviceUniqueId(),mt.get().then((l=>function(e,t,n,i){return new(n=n||Promise)((function(e,t){function a(e){try{o(i.next(e))}catch(e){t(e)}}function r(e){try{o(i.throw(e))}catch(e){t(e)}}function o(t){var i;t.done?e(t.value):((i=t.value)instanceof n?i:new n((function(e){e(i)}))).then(a,r)}o((i=i.apply(undefined,[])).next())}))}(0,0,void 0,(function*(){var d;if(null===(d=null===(d=i.configs)||void 0===d?void 0:d.identityAttributes)||void 0===d||!d.includes("uid")||null!==(c=rt.getUserIdentities())&&void 0!==c&&c.uid||rt.copyUidIntoIdentityMap(l),wa.get().deviceToLogout===l.deviceUuid)return Ue.remoteLogTracking(1,"info",t,"User was not able to logout last time. Completing the logout now and starting new session."),Na.logout();l.deviceAdded&&en.onDeviceAdd.res(),r&&Ue.warn(1,t,"You are under push subscriber based billing plan. We are only tracking users with an email, phone number or have subscribed to web push. All user attributes and events will be stored in a queue till we receive either of the properties.");var c=new Rt;(new Da).onWindowVisibilityChange(c.handleBrowserInactivity),Ue.customLabel(1,t,"Device UUID",l.deviceUuid),Ue.customLabel(1,t,"Device Added",l.deviceAdded),wt.broadcastToWindow({topic:U,name:W.SETTINGS_FETCHED,data:i}),wt.broadcastToWindow({topic:U,name:W.DEVICE_UUID,data:l.deviceUuid}),(!i.isPushSubBilling&&(!l.deviceAdded||e)||i.isPushSubBilling&&(function(e,t){const n=(null===(e=null==e?void 0:e.configs)||void 0===e?void 0:e.subscriberBasedBillingAttributes)||[];return(null===(t=t.attributes)||void 0===t?void 0:t.some((e=>Ke(e.key,n))))||!!Ye.get(s.PUSH_TOKEN)}(i,l)&&e||bt()))&&en.deviceAdd(),Ma.track_page_view(),an.clear(s.Q.DEVICE),an.clear(s.Q.REPORT),We.get().enableSPA&&!pn.isObserverRunning&&(new pn).addURLChangeObserver(a),lt.getInstance().then((e=>{var n,a,r=!(null!==(n=null===(r=window.MoeWebP)||void 0===r?void 0:r.isEditorModeEnabled)&&void 0!==n&&n.call(r));o&&!We.get().disableWebPush&&r?Aa.enablePush(i):Ue.warn(1,t,"Web push feature not enabled for current environment"),!We.get().disableOnsite&&r?en.onDeviceAdd.p.then((()=>{Aa.enableOSM()})):Ue.warn(1,t,"Onsite is disabled in this page since `disableOnsite: true` is passed during initialization."),u&&null!==(a=We.get().cards)&&void 0!==a&&a.enable&&r?Aa.enableCards(i):Aa.disableCards(),null!==(r=i.configs)&&void 0!==r&&r.isWebPersonalizationModuleEnabled&&Aa.enableWebPersonalizationTracking(),Wa()})),n(!0)}))))})).catch((e=>{Ue.error(1,t,"Error in getting Web SDK Settings. This might indicate that the App is blocked."),n(!1)}))))},Wa=()=>{var e="Moengage.clearWindowQ";try{const n=Me();let i=window.moengage_q;if(n&&i){if(window.moengage_q=[],i&&0{e&&(Ye.isSharedWithCookie=!0,Ye.copyKeysFromCookie())},Fa=(e,t,n)=>{Da.addBeforeUnloadListeners(e),(e||t)&&(Vt.init(n),Ue.log(1,"handleBatching","Enabled Batching for "+(e?"Event Tracking":"")+(t?", Remote Logs Tracking":"")))},Ga={clearWindowQ:Wa,clearEventsFromIDB:Ba,initialize:xa,isWindowLoaded:Ca}})()})();