diff --git a/chrome-extension/Readme b/chrome-extension/Readme new file mode 100644 index 00000000..acd9b54c --- /dev/null +++ b/chrome-extension/Readme @@ -0,0 +1,11 @@ +WebSDK and Web Push in Chrome Exension +1. Make sure to integrate webSDK to your chrome extension + - Download the latest code from https://cdn.moengage.com/webpush/moe_webSdk.min.latest.js + - Create a new file name webSDK.min.js and save code inside it. + - Inject that script to your extension project. + - Initialize SDK after webSDK.min.js script exection as shared on popup.js +2. To use Web Push notification + - For Web Push notification manifest_version: 3 is required. + - SDK required ["notifications", "storage"] Permission which you have to add in you manifest.json file. + - Make sure to download the moengage chrome extesnion service worker code from https://cdn.moengage.com/webpush/beta/serviceworker_chrome_ext_cdn.js. + - Use that code inside your background.js file. \ No newline at end of file diff --git a/chrome-extension/background.js b/chrome-extension/background.js new file mode 100644 index 00000000..1d7de400 --- /dev/null +++ b/chrome-extension/background.js @@ -0,0 +1,2 @@ +/*! For license information please see serviceworker_chrome_ext_cdn.js.LICENSE.txt */ +(()=>{var e={483:(e,t,n)=>{e.exports=function e(t,n,r){function o(a,c){if(!n[a]){if(!t[a]){if(i)return i(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}u=n[a]={exports:{}},t[a][0].call(u.exports,(function(e){return o(t[a][1][e]||e)}),u,u.exports,e,t,n,r)}return n[a].exports}for(var i=void 0,a=0;ae.db.version;return r&&(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),(o||n)&&(!n||(n=e.db.version+1)>e.version&&(e.version=n),1)}function N(e){return i([function(e){for(var t=e.length,n=new ArrayBuffer(t),r=new Uint8Array(n),o=0;o>4,u[c++]=(15&n)<<4|r>>2,u[c++]=(3&r)<<6|63&o;return i}function F(e){for(var t=new Uint8Array(e),n="",r=0;r>2],n+=A[(3&t[r])<<4|t[r+1]>>4],n+=A[(15&t[r+1])<<2|t[r+2]>>6],n+=A[63&t[r+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 U={serialize:function(e,t){var n="";if(e&&(n=P.call(e)),e&&("[object ArrayBuffer]"===n||e.buffer&&"[object ArrayBuffer]"===P.call(e.buffer))){var r,o=R;e instanceof ArrayBuffer?(r=e,o+=B):(r=e.buffer,"[object Int8Array]"===n?o+="si08":"[object Uint8Array]"===n?o+="ui08":"[object Uint8ClampedArray]"===n?o+="uic8":"[object Int16Array]"===n?o+="si16":"[object Uint16Array]"===n?o+="ur16":"[object Int32Array]"===n?o+="si32":"[object Uint32Array]"===n?o+="ui32":"[object Float32Array]"===n?o+="fl32":"[object Float64Array]"===n?o+="fl64":t(new Error("Failed to get type for BinaryArray"))),t(o+F(r))}else if("[object Blob]"===n)(n=new FileReader).onload=function(){var n="~~local_forage_type~"+e.type+"~"+F(this.result);t(R+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,C)!==R)return JSON.parse(e);var t,n=e.substring(M),r=e.substring(C,M);r===k&&x.test(n)&&(t=(e=n.match(x))[1],n=n.substring(e[0].length));var o=L(n);switch(r){case B:return o;case k:return i([o],{type:t});case"si08":return new Int8Array(o);case"ui08":return new Uint8Array(o);case"uic8":return new Uint8ClampedArray(o);case"si16":return new Int16Array(o);case"ur16":return new Uint16Array(o);case"si32":return new Int32Array(o);case"ui32":return new Uint32Array(o);case"fl32":return new Float32Array(o);case"fl64":return new Float64Array(o);default:throw new Error("Unkown type: "+r)}},stringToBuffer:L,bufferToString:F};function W(e,t,n,r){e.executeSql("CREATE TABLE IF NOT EXISTS "+t.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],n,r)}function z(e,t,n,r,o,i){e.executeSql(n,r,o,(function(e,a){a.code===a.SYNTAX_ERR?e.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[t.storeName],(function(e,c){c.rows.length?i(e,a):W(e,t,(function(){e.executeSql(n,r,o,i)}),i)}),i):i(e,a)}),i)}function q(e,t,n,r){var o=this;e=f(e);var i=new a((function(i,a){o.ready().then((function(){var c=t=void 0===t?null:t,u=o._dbInfo;u.serializer.serialize(t,(function(t,f){f?a(f):u.db.transaction((function(n){z(n,u,"INSERT OR REPLACE INTO "+u.storeName+" (key, value) VALUES (?, ?)",[e,t],(function(){i(c)}),(function(e,t){a(t)}))}),(function(t){t.code===t.QUOTA_ERR&&(0 '__WebKitDatabaseInfoTable__'",[],(function(t,n){for(var r=[],i=0;i{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},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 r={};(()=>{"use strict";n.r(r);var e=n(483),t=n.n(e);(function(e){var n,r,o,i={env:"sdk-01.moengage.com",get:function(){return"https://"+i.env},set:function(e){i.env=e}},a=function(){return i.get()+"/v2/sdk/report/"},c="https://fcm.googleapis.com/fcm/send/",u="https://updates.push.services.mozilla.com/wpush/v2/",f="https://wns2-pn1p.notify.windows.com/w/?token=",s="https://web.push.apple.com/";function d(e){"install"===e.reason?console.log("Extension installed"):"update"===e.reason&&console.log("Extension updated")}function l(t){console.log("onActive event",t?.data),t.waitUntil(e.clients.claim())}function v(e){console.log("mesage event",e?.data),e.data&&e.data&&e.data.app_id&&(n.setItem("reportParams",e),e.data.environment&&i.set(e.data.environment))}function h(t){var o;e.Notification&&"granted"===e.Notification.permission&&(r.iterate((function(e,t){(Date.now()-e.timestamp)/864e5>28&&r.removeItem(t)})),t.waitUntil(n.getItem("reportParams").then((function(e){e&&e.data&&(e.data,e.data.environment&&i.set(e.data.environment))})).then((function(){try{var e=t.data.json();if(e)return e}catch(e){console.error("payload not received or has some errors in Moengage Push")}})).then((async function(t){var n,i,a,c=t.payload;if(c&&c.moe_cid_attr){if(t.cid){if(o=t.cid,n=o,await r.length().then((e=>{if(0===e)throw new Error("Existing campaign not present in indexedDB");return r.iterate((function(e,t){if(n===t)return!0})).then((e=>e))})).catch((()=>!1)))throw new Error(`The campaign ${o} has already been executed.`);var u={cid:o};c&&(u={cid:o,title:c.title,message:c.message,actions:c.actions,image:c.image,moe_cid_attr:c.moe_cid_attr,timestamp:Date.now()}),r.setItem(o,u)}if(!c||!c.title||!c.message)return b("MOE_NO_PAYLOAD_WEB",{cid:t.cid}),console.error("Moengage - Web Push payload error"),y("Welcome",{body:"Something unexpected happened",requireInteraction:!1});try{i=c.moe_cid_attr.moe_campaign_id,a=c.moe_cid_attr.moe_campaign_name}catch(t){throw new Error("cannot get campaign ID or campaign Name.")}return b("NOTIFICATION_RECEIVED_WEB_MOE",{cid:o,moe_campaign_id:i,moe_campaign_name:a,...c.moe_cid_attr}),t={body:c.message,icon:c.icon,tag:t.cid||"moe-id",badge:c.badge,data:{url:c.urlToOpen,actions:c.actions,cid:o},actions:c.actions,image:c.image},c=c.title,e.registration.showNotification(c,t)}})).catch((function(e){return console.error("Moengage Service Worker Error - ",e),y("Welcome",{body:"Something unexpected happened",requireInteraction:!1})}))))}function p(e){var t,o=e.notification.data;e.notification.close();var a=Promise.resolve();o&&("0"===e.action&&o.actions&&o.actions instanceof Array&&0(e^crypto.getRandomValues(new Uint8Array(1))[0]&15>>e/4).toString(16))),request_time:(new Date).toISOString()},viewsCount:1,viewsInfo:[{EVENT_ACTION:t,EVENT_ATTRS:r,EVENT_G_TIME:(new Date).getTime().toString(),EVENT_L_TIME:function(){const e=new Date;return`${e.getDate()}:${e.getMonth()+1}:${e.getFullYear()}:${e.getHours()}:${e.getMinutes()}:`+e.getSeconds()}()}],...i};fetch(a()+o.app_id,{method:"POST",body:JSON.stringify(n)}).then((function(e){return e.json()})).catch((e=>{console.error("API Fail:",e)}))}))}))}return{init:async function(){console.log("init event"),chrome.runtime.onInstalled.addListener(d),chrome.runtime.onStartup.addListener(l),chrome.runtime.onMessage.addListener(v),e.addEventListener("push",h),e.addEventListener("notificationclick",p),e.addEventListener("notificationclose",m),await new Promise((e=>{n=t().createInstance({driver:[t().INDEXEDDB],name:"moe_database",storeName:"moe_data"}),r=t().createInstance({driver:[t().INDEXEDDB],name:"moe_database",storeName:"moe_backup"}),o=t().createInstance({driver:[t().INDEXEDDB],name:"moe_database",storeName:"offline_data"}),Promise.all([n.ready(),r.ready(),o.ready()]).then(e())}))}}})(self).init(),self.addEventListener("fetch",(()=>{}))})()})(); \ No newline at end of file diff --git a/chrome-extension/manifest.json b/chrome-extension/manifest.json index 2cc1af22..b32b06de 100644 --- a/chrome-extension/manifest.json +++ b/chrome-extension/manifest.json @@ -1,7 +1,15 @@ { - "name": "Moengage SDK", + "name": "Moengage SDK WebPush", "description": "Moengage Web SDK Sample for Chrome Extension", "version": "1.0", + "background": { + "service_worker": "background.js" + }, + "permissions": ["notifications"], + "web_accessible_resources": [{ + "resources": [ "injectScripts/webSDK.min.js", "injectScripts/webSDK.cards.min.js" ], + "matches": [ "" ] + }], "manifest_version": 3, "action": { "default_popup": "hello.html", diff --git a/chrome-extension/popup.js b/chrome-extension/popup.js index a6c0b59f..4f0d7d03 100644 --- a/chrome-extension/popup.js +++ b/chrome-extension/popup.js @@ -1,5 +1,9 @@ console.log('This is a popup!'); window.Moengage = moe({ - app_id: 'XXXXXXXXXXXXXXXX', - debug_logs: 0 -}); \ No newline at end of file + app_id: 'XXXXXXXXXXXXXXXXXXXX', + environment: 'sdk-01.moengage.com', + debug_logs: 0, + disable_onsite: true, + disableCookies: true +}); + diff --git a/chrome-extension/webSDK.min.js b/chrome-extension/webSDK.min.js index 974ecaad..aa310e25 100644 --- a/chrome-extension/webSDK.min.js +++ b/chrome-extension/webSDK.min.js @@ -1,2 +1,3 @@ + /*! 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 U(e){for(var t=new Uint8Array(e),n="",i=0;i>2],n+=P[(3&t[i])<<4|t[i+1]>>4],n+=P[(15&t[i+1])<<2|t[i+2]>>6],n+=P[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 F={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+=k):(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+U(i))}else if("[object Blob]"===n)(n=new FileReader).onload=function(){var n="~~local_forage_type~"+e.type+"~"+U(this.result);t(L+M+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,N)!==L)return JSON.parse(e);var t,n=e.substring(x),i=e.substring(N,x);i===M&&R.test(n)&&(t=(e=n.match(R))[1],n=n.substring(e[0].length));var a=W(n);switch(i){case k:return a;case M: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:W,bufferToString:U};function H(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):H(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=c(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,c){c?o(c):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,c,d=!0;function g(e){function t(){n&&n(e,a),n=null}d?i(t):t()}function u(t,n,i){if(a[t]=i,n&&(l=!0),0==--o||n)g(n);else if(!l&&c{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 c=t&&n||0,d=t||[],g=(e=e||{}).node||i,u=void 0!==e.clockseq?e.clockseq:a;null!=g&&null!=u||(h=r(),null==g&&(g=i=[1|h[0],h[1],h[2],h[3],h[4],h[5]]),null==u&&(u=a=16383&(h[6]<<8|h[7])));var p=void 0!==e.msecs?e.msecs:(new Date).getTime(),h=(n=void 0!==e.nsecs?e.nsecs:l+1,p-s+(n-l)/1e4);if(h<0&&void 0===e.clockseq&&(u=u+1&16383),1e4<=(n=(h<0||s>>24&255,d[c++]=n>>>16&255,d[c++]=n>>>8&255,d[c++]=255&n,p=p/4294967296*1e4&268435455,d[c++]=p>>>8&255,d[c++]=255&p,d[c++]=p>>>24&15|16,d[c++]=p>>>16&255,d[c++]=u>>>8|128,d[c++]=255&u;for(var m=0;m<6;++m)d[c+m]=g[m];return t||o(d)}},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:()=>ea,initializeLaunchSequence:()=>Xi});const e="initData",t="browserDetails",a="unifiedLogs",r={USER_DATA:"USER_DATA",PUSH_TOKEN:"PUSH_TOKEN",SUBSCRIPTION_DETAILS:"SUBSCRIPTION_DETAILS",SETUP_TIME:"SETUP_TIME",OPT_IN_SHOWN_TIME:"OPT_IN_SHOWN_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"},o=2,s="MOE_WEB_UNSUBSCRIBED",l="EVENT_ACTION_WEB_SESSION_START",c="MOE_PAGE_VIEWED",d="MOE_WEB_OPTIN_BANNER_LOAD",g="MOE_WEB_OPTIN_CLOSED",u="MOE_WEB_OPTIN_ACCEPTED",p="MOE_USER_SUBSCRIBED",h="MOE_OPT_IN_SHOWN",m="MOE_OPT_IN_ALLOWED",f="MOE_OPT_IN_DISMISSED",v="MOE_OPT_IN_BLOCKED",S="MOE_OPT_IN_ATTEMPT",E="MOE_LOGOUT",y="EVENT_ACTION_DEVICE_ATTRIBUTE",b="MOE_PAGE_EXIT",_="MOE_PAGE_SCROLL",T="MOE_PAGE_URL_EVENT",I="USER_ATTRIBUTE_UNIQUE_ID",A="USER_ATTRIBUTE_USER_EMAIL",w="USER_ATTRIBUTE_USER_NAME",D="USER_ATTRIBUTE_USER_FIRST_NAME",C="USER_ATTRIBUTE_USER_LAST_NAME",O="USER_ATTRIBUTE_USER_MOBILE",P="USER_ATTRIBUTE_USER_GENDER",R="USER_ATTRIBUTE_USER_BDAY",L="USER_ID_MODIFIED_FROM",N=[I,L,A,O],k="MOE_LIFECYCLE",M={MOE_INIT:"SDK_INITIALIZED",SETTINGS_FETCHED:"SETTINGS_FETCHED",EVENT_TRACKED:"EVENT_TRACKED",DEVICE_UUID:"DEVICE_UUID",MOE_INIT_COMPLETED:"SDK_INITIALIZATION_COMPLETED"},x={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"},B={code:1e3,reason:"Web push not supported in current browser environment"},W={code:1001,reason:"Registering the service worker failed"},U={code:1002,reason:"Web push settings not configured"},F={code:1004,reason:"Hard ask was dismissed to many times"},H={code:1005,reason:"Service worker can not be registered on this page due to scope issues"},G="https://media.giphy.com/media/KDRv3QggAjyo/giphy.gif",K={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_100:"sdk-100.moengage.com",eu:"sdk-02.moengage.com",in:"sdk-03.moengage.com"},V={MOE_DASHBOARD:"https://app.moengage.com",MIGRATION_DOCS:"https://docs.moengage.com/docs/web-sdk-integration",WEBSDK_DOCS:"https://docs.moengage.com/docs/web-sdk-integration",SELF_HANDLED_DOCS:"https://docs.moengage.com/docs/self-handled-opt-ins"},j="Dashboard --\x3e Settings --\x3e Channel --\x3e Push",Y="SESSION",z="v3/sdkconfig/",q="moe_tracking",$="events",J="batched_events",X="moe_uuid",Q="MoengagePageEventHistoryManager",Z={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_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_PERSONALIZATION_FAILURE:"DLV_PERSN_FLR",CAMPAIGN_DELIVERED_PAUSED:"DLV_PAU",CAMPAIGN_DELIVERED_EXPIRED:"DLV_EXP",CAMPAIGN_DELIVERED_MANDATORY_PARAMS_MISSING:"DLV_MAND_PARM_MIS"},IMPRESSION:{CAMPAIGN_IMPRESSION_CONTEXT_CHANGED:"IMP_CTX_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"},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"},TEST_CAMPAIGN_STORE:{NAME:"test_campaign"},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",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},ee={CARDS:{name:"CARDS",src:"https://cdn.moengage.com/webpush/moe_webSdk_cards.min.latest.js",windowLocation:"moeCards"}},te={NAME:"offline_data"},ne="v2/sdk/report/",ie=15e3,ae="number",re={TOPIC:"MOE_AUTOMATED_EVENTS",NAMES:[s,l,c,d,g,u,p,S,h,m,f,v,E,Z.EVENT_NAMES.OSM.CLICK,Z.EVENT_NAMES.OSM.IMPRESSION,Z.EVENT_NAMES.OSM.DISMISS,Z.EVENT_NAMES.OSM.AUTO_DISMIS]},oe=[S],se="moe_cards",le={STORE_NAME:"campaigns"},ce={STORE_NAME:"meta",LAST_FETCH_SDK_VERSION:"last_fetch_sdk_version",LAST_META_CALL_TIME:"last_meta_call_time",UNIQUE_ID:"unique_id",LAST_SYNC_CARDS:"last_sync_cards",SYNC_INTERVALS:"sync_intervals",SHOW_ALL_TAB:"show_all_tab"},de="appOpen",ge="IOS_PERMISSION_DENIED",ue="v1/sdk_logging/",pe="v2/device/add",he="v2/device/token-check",me="v2/report/add",fe={TV:"tv",TABLET:"tablet",MOBILE:"mobile",WEB:"web"};var ve,Se=n(483);function Ee(e,t,n){return null!=e&&t?(e=e[(t=Array.isArray(t)?t:t.split("."))[0]])&&1{})),this.zIndex=Ee(e,"zIndex","999999"),this.fontFaces=(null===(e=e.fontFaces)||void 0===e?void 0:e.map((e=>new Oe(e))))||[]}}_e.baseLogTag="CardsConfigModel";class Te{constructor(e){this.backgroundColor=Ee(e,"backgroundColor","#00237C"),this.text=Ee(e,"text","Notification"),this.color=Ee(e,"color","#fff"),this.fontSize=Ee(e,"fontSize","16px"),this.fontFamily=Ee(e,"fontFamily","inherit")}}class Ie{constructor(e={}){this.img=Ee(e,"img","https://app-cdn.moengage.com/sdk/cards-error.svg"),this.text=Ee(e,"text",'Error something went wrong ')}}class Ae{constructor(e){this.headerFontSize=Ee(e,"headerFontSize","16px"),this.descriptionFontSize=Ee(e,"descriptionFontSize","14px"),this.ctaFontSize=Ee(e,"ctaFontSize","12px"),this.fontFamily=Ee(e,"fontFamily","inherit"),this.horizontalRowColor=Ee(e,"horizontalRowColor","#D9DFED")}}class we{constructor(e){this.mWebIcon=Ee(e,"mWebIcon","https://app-cdn.moengage.com/sdk/back-icon.svg"),this.webIcon=Ee(e,"webIcon","https://app-cdn.moengage.com/sdk/cross-icon.svg"),this.callBack=Ee(e,"callBack",(()=>{}))}}class De{constructor(e){this.inactiveTabFontColor=Ee(e,"inactiveTabFontColor","#7C7C7C"),this.fontSize=Ee(e,"fontSize","14px"),this.fontFamily=Ee(e,"fontFamily","inherit"),this.backgroundColor=Ee(e,"backgroundColor","#F6FBFC"),this.active=new Pe(Ee(e,"active",{}))}}class Ce{constructor(e){this.color=Ee(e,"color","red"),this.enable=Ee(e,"enable",!1)}}class Oe{constructor(e){this.family=Ee(e,"family",""),this.url=Ee(e,"url","")}}class Pe{constructor(e){this.color=Ee(e,"color","#06A6B7"),this.underlineColor=Ee(e,"underlineColor","#06A6B7"),this.backgroundColor=Ee(e,"backgroundColor","transparent")}}class Re{constructor(e){this.enable=Ee(e,"enable",!1),this.icon=Ee(e,"icon","https://app-cdn.moengage.com/sdk/bell-icon.svg"),this.postion=Ee(e,"postion","0px 10px 40px 0"),this.countBackgroundColor=Ee(e,"countBackgroundColor","#FF5A5F"),this.countColor=Ee(e,"countColor","#fff"),this.zIndex=Ee(e,"zIndex","999998"),this.iconBackgroundColor=Ee(e,"iconBackgroundColor","#D9DFED"),this.fontFamily=Ee(e,"fontFamily","inherit")}}class Le{constructor(e){this.img=Ee(e,"img","https://app-cdn.moengage.com/sdk/cards-no-result.svg"),this.text=Ee(e,"text","No notifications to show, check again later.")}}class Ne{constructor(e){this.debugLevel=0,this.cluster=null,this.environment=null,this.baseDomainName="https://sdk-01.moengage.com/",this.inapp=null,this.customSoftAsk=null;var t=Ne.baseLogTag+".constructor";null!=Ee(e,"app_id",null)?(this.appId=Ee(e,"app_id",null),this.integrationType=ve.OLD_SDK):null!=Ee(e,"appId",null)?(this.appId=Ee(e,"appId",null),this.integrationType=ve.NEW_SDK):(at.error(1,t,"App Id not specified. Please check docs page to complete the integration - ",V.WEBSDK_DOCS),this.integrationType=null),null!=Ee(e,"debug_logs",null)?this.debugLevel=Ee(e,"debug_logs",0):null!=Ee(e,"debugLevel",null)?this.debugLevel=Ee(e,"debugLevel",0):(at.log(2,t,"No log level config found. Using default value of",0),this.debugLevel=0),this.appId&&(this.baseDomainName="https://sdk-01.moengage.com/",this.forceSwUpdate=Ee(e,"forceSwUpdate",!1),this.cluster=Ee(e,"cluster",this.cluster),this.cluster&&null!=K[this.cluster]&&(this.environment=K[this.cluster]),Ee(e,"environment",null)&&(this.environment=e.environment),this.environment&&(this.baseDomainName="https://"+this.environment+"/"),0!!N.includes(e.key)))),e===r.SUBSCRIPTION_DETAILS&&(i.domain=t.domain,i.token=t.token,i.endpoint=t.endpoint,i.keys=t.keys),ke.set(e,i)}}static get(e){return xe.baseLogTag,e=xe.prefix+e,localStorage?Ee(xe.getMoeData(),e,null):null}static remove(e){var t=xe.baseLogTag+".remove",n=xe.prefix+e;if(localStorage&&null!=xe.get(e)){const i=xe.getMoeData();delete i[n],localStorage.setItem(Me,JSON.stringify(i)),at.log(2,t,"Key",e,"removed.")}xe.isSharedWithCookie&&0<=xe.KEYS_SHARED_WITH_COOKIE.indexOf(e)&&ke.remove(e)}static logout(){const e=["INIT_DATA","Q","WEB_SETTINGS","SUBSCRIPTION_DETAILS","PUSH_TOKEN","GRACEFUL_DATA"];for(const t in r)e.indexOf(t)<0&&xe.remove(r[t]);for(const e in r.Q)be.purge(e)}static getString(e){if(e=xe.prefix+e,localStorage)return"string"==typeof(e=xe.get(e))||e instanceof String?e:JSON.stringify(e)}static removePrefix(){xe.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)})),e=e.filter((e=>!(N.includes(e.key)&&n.attributes.findIndex((t=>t.key===e.key))<0))),n.attributes=e}xe.set(e,n)}}xe.removeStaleKeysFromLS()}static removeStaleKeysFromLS(){var e=xe.baseLogTag+".removeStaleKeysFromLS";try{Object.keys(xe.getMoeData()).forEach((e=>{this.KEYS_SHARED_WITH_COOKIE.includes(e)&&!ke.get(e)&&xe.remove(e)}))}catch(t){at.error(1,e,t)}}static getMoeData(){var e=xe.baseLogTag+".getMoeData",t=localStorage.getItem(Me);if(null==t)return{};try{return JSON.parse(t)}catch(t){return at.error(1,e,t),{}}}}function Be(e){return 0===Object.keys(e).length&&e.constructor===Object}function We(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&d)>>12,l=(4032&d)>>6,c=63&d,t+=n[o]+n[s]+n[l]+n[c];return 1==e?(d=i[r],o=(252&d)>>2,s=(3&d)<<4,t+=n[o]+n[s]+"=="):2==e&&(d=i[r]<<8|i[1+r],o=(64512&d)>>10,s=(1008&d)>>4,l=(15&d)<<2,t+=n[o]+n[s]+n[l]+"="),t}function Fe(e,t){return t.isChrome()||t.isOpera()||t.isEdge()||t.isSafari()?"vapid"===e.chrome.subscriptionMode&&e.chrome.vapidPublicKey:t.isFirefox()&&"vapid"===e.firefox.subscriptionMode&&e.firefox.vapidPublicKey}function He(e,t){return t.isChrome()||t.isOpera()||t.isEdge()||t.isSafari()?e.chrome.vapidPublicKey:t.isFirefox()?e.firefox.vapidPublicKey:""}function Ge(){const e=Ne.get().swPath;return!(!e||!e.includes("tools/moengage"))}function Ke(){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 Ve(){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)?fe.TV:t?fe.TABLET:Ke()?fe.MOBILE:fe.WEB}function je(e,t){const n=t&&new RegExp("^("+t.join("|")+")$");return Ve()===fe.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:fe.TV.toUpperCase()}:{}}function Ye(e){return new Date(Date.parse(e))}function ze(){return window[window.moengage_object||"Moengage"]}xe.baseLogTag="PersistentStorage",xe.prefix="",xe.isSharedWithCookie=!1,xe.KEYS_SHARED_WITH_COOKIE=[r.USER_DATA,r.SUBSCRIPTION_DETAILS,r.SOFT_ASK_STATUS,r.PUSH_TOKEN,r.OPT_IN_SHOWN_TIME,r.HARD_ASK_STATUS,r.SESSION];const qe=e=>"string"==typeof e,$e=e=>"[object Date]"===Object.prototype.toString.call(e);function Je(e,t){if(null==e||null==t)return e===t;if(e instanceof Function)return e===t;if(e instanceof RegExp)return e===t;if(e===t||e.valueOf()===t.valueOf())return!0;if(Array.isArray(e)&&e.length!==t.length)return!1;if(e instanceof Date)return!1;if(!(e instanceof Object))return!1;if(!(t instanceof Object))return!1;const n=Object.keys(e);return Object.keys(t).every((e=>-1!==n.indexOf(e)))&&n.every((n=>Je(e[n],t[n])))}function Xe(){const e=new Date;return`${e.getDate()}:${e.getMonth()+1}:${e.getFullYear()}:${e.getHours()}:${e.getMinutes()}:`+e.getSeconds()}const Qe=e=>{if(e){const t=e.replace("?","").split("&"),n={};return t.forEach((e=>{e=(t=e.split("="))[0];var t=decodeURIComponent(t[1]||"");n[e]?"[object Array]"===Object.prototype.toString.call(n[e])?n[e].push(t):n[e]=[n[e],t]:n[e]=t})),JSON.parse(JSON.stringify(n))}return{}},Ze=()=>window.location.search.includes("moe_migration=true"),et=e=>{var t,n,i=xe.get(r.WEB_SETTINGS);null!=i&&i.configs.isWebPersonalisationModuleEnabled&&null!==(t=window.MoeWebP)&&void 0!==t&&t.clearLastFetchedTime(),e&&null!==(n=window.MoeWebP)&&void 0!==n&&n.getLiveExperiences()},tt=(e,t)=>{e+="?";for(const n in t)t.hasOwnProperty(n)&&null!=t[n]&&(e+=n+"="+encodeURIComponent(t[n])+"&");return e};class nt{static logData(e,t){return{log_type:e,sent_time:(new Date).toISOString(),lake_fields:t}}static setRemoteLogging(e){return this.isTrackingEnabled||(this.logLevel=null==e?void 0:e.configs.logLevel,this.isTrackingEnabled=e.configs.remoteLogTracking,this.isTrackingEnabled)}static log(e,t,n,i,...a){!this.isTrackingEnabled||e!==this.logLevel&&"verbose"!==this.logLevel||ze().remoteLogs.addRemoteLogs(this.logData(e,{msg:n+[...a].toString(),file_name:t,trace:i}))}}let it="color: white; background: #41AE55; border-radius: 5px;";class at{static setLogLevel(e,t){var n=at.baseLogTag+".setLogLevel";null==ye.get(a)&&ye.set(a,[]),null==e?at.logLevel=0:e in[0,1,2]?0<(at.logLevel=e)&&t&&at.releaseAllLogs():at.warn(0,n,"Value",e,"not supported for setDebugLevel(). Current log level is",at.logLevel,". Debug level can only be [0, 1, 2]")}static setLogTabStyle(e){at.tagLogStyle=at.tagLogStyle.replace("#48beab",e)}static log(e,t,n,...i){e<=at.logLevel?console.log("%c "+at.logBrand+" %c %c info %c %c "+t+" ",it,"","color: white; background: #18a0bf; border-radius: 5px;","",at.tagLogStyle,n,...i):at.cacheLog((()=>{at.log(e,t,n,...i)}))}static remoteLogTracking(e,t,n,i,...a){nt.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||nt.log("error",t,n,...i),e<=at.logLevel?console.error("%c "+at.logBrand+" %c %c error %c %c "+t+" ",it,"","color: white; background: #cc0a0a; border-radius: 5px;","",at.tagLogStyle,n,...i.slice(0,-1)):at.cacheLog((()=>{at.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||nt.log("warning",t,n,...i),e<=at.logLevel?console.warn("%c "+at.logBrand+" %c %c warn %c %c "+t+" ",it,"","color: white; background: #e8ab51; border-radius: 5px;","",at.tagLogStyle,n,...i.slice(0,-1)):at.cacheLog((()=>{at.warn(e,t,n,...i,{isCached:!0})}))}static customLabel(e,t,n,...i){e<=at.logLevel?console.log("%c "+at.logBrand+" %c %c "+t+" %c %c "+n+" %c ",it,"",at.tagLogStyle,"","color: white; background: #a400ff; border-radius: 5px;","",...i):at.cacheLog((()=>{at.customLabel(e,t,n,...i)}))}static image(e,t){e<=at.logLevel?console.log("%c+","font-size: 1px; padding: 20px 80px; line-height: 45px; background: url("+t+"); background-size: 160px 90px; color: transparent;"):at.cacheLog((()=>{at.image(e,t)}))}static releaseAllLogs(){var e=ye.get(a),t=e.length;const n=e;if(ye.set(a,[]),0{var r=JSON.stringify(Ee(n,"postData",null));t=tt(t,Ee(n,"queryParams",null));const o=new XMLHttpRequest;o.open(e,t,!0),rt.addRequestHeaders(o,Ee(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}}(Ui=(Ui=rt=rt||{}).METHODS||(Ui.METHODS={})).GET="GET",Ui.POST="POST";const ot=rt;class st{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){at.error(1,"Utils.PromiseObject","Promises not supported")}}}var lt,ct=n(877);class dt{initiateSessionAndSource(e){return new Promise(((t,n)=>{this.isSessionRunning()&&this.isCurrentSourceSameAsPreviousSource()||this.startNewSession(e),t(!0)}))}isSessionRunning(){return this.getSessionKey()&&!this.isSessionExpired()}isSessionExpired(){var e=this.getSessionExpiryTime(),t=ye.get("wasBrowserInactive");return!(!t&&null!==t)&&(this.isWindowActive()&&ye.set("wasBrowserInactive",!1),(new Date).getTime()>e)}isNonEventInteractive(e){return dt.NON_INTERACTIVE_EVENTS.includes(e.name)||0"moe_non_interactive"===e.key&&1===e.value)).length}getCurrentSource(){const e=Qe(window.location.search);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=Qe(window.location.search),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,xe.set(Y,t)}removeCurrentSource(){const e=this.getSession();e&&(e.currentSource=void 0,xe.set(Y,e))}getSavedSource(){var e=Ee(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,Je(e,t)}getSessionKey(){return Ee(this.getSession(),"sessionKey",null)}getSessionStartTime(){return Ee(this.getSession(),"sessionStartTime",null)}getSessionExpiryTime(){return Ee(this.getSession(),"sessionExpiryTime",null)}getSessionMaxTime(){return Ee(this.getSession(),"sessionMaxTime",null)}getSession(){return xe.get(Y)}geCustomIdentifiersToTrack(){return Ee(this.getSession(),"customIdentifiersToTrack",[])||[]}generateSessionKey(){return(0,ct.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},xe.set(Y,t)}extendSession(){const e=this.getSession();e&&(e.sessionExpiryTime=(new Date).getTime()+1e3*e.sessionMaxTime,xe.set(Y,e))}handleBrowserInactivity(e){"hidden"===e&&ye.set("wasBrowserInactive",!0)}isWindowActive(){return!!ye.get("isWindowActive")}getNumberOfSessions(){return Ee(xe.get(Y),"numberOfSessions")||0}}dt.NON_INTERACTIVE_EVENTS=[d,h,d,E];class gt{constructor(e,t,n){this.os="web",this.osPlatform=e.userAgent,this.isMobile=Ke(),this.os=Ke()?"mweb":"web",this.name=gt.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!=ye.get(t))return ye.get(t);var e=yield gt.isIncognito(window),n=new gt(navigator,document,e);return ye.set(t,n),(e=xe.get(r.BROWSER_DETAILS))&>.isBrowserUpdated(e,n)||xe.set(t,n),n}))}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?gt.BROWSER_NAMES.INTERNET_EXPLORER:-1{e.key=mt.getMorphedKey(e.key);let i=-1;for(let t=this.attributes.length-1;0<=t;t--)e.key===this.attributes[t].key&&(i=t);at.log(2,t,"Adding attribute:",e),0<=i?(this.attributes[i].value,e.value,this.attributes[i].value=e.value):this.attributes.push(e),this.save().then((()=>{n(!0)}))}))}static getLocalUser(){const e=mt.baseLogTag+".getLocalUser";return new Promise((t=>{var n;xe.get(r.USER_DATA)?(at.log(2,e,"Found user in localstorage"),n=xe.get(r.USER_DATA),t(new mt(n))):t(null)}))}static getCookieUser(){return new Promise((e=>{var t=mt.baseLogTag+".getLocalUser";ke.get(r.USER_DATA)?(at.log(2,t,"Found user in cookie"),t=ke.get(r.USER_DATA),e(new mt(t))):e(null)}))}static getMigrationUser(){const e=mt.baseLogTag+".getLocalUser";return new Promise((t=>{var n=localStorage.getItem(r.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:Ee(i,"device_add",!1),deviceUuid:Ee(i,"uuid",(0,ct.v4)())}),n=Ee(i,"user_attrs",{});for(const t in n)n.hasOwnProperty(t)&&e.attributes.push(new pt(t,n[t]));var a=localStorage.getItem(r.OLD_SDK.PUSH_TOKEN);null!=a&&"NA"!==a&&"null"!==a&&(e.subscribedToOldSdk=!0),t(e)}}catch(n){at.error(1,e,"Error getting the migration user. Resolving as a new user."),at.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=>{ut.getInstance().then((n=>{zt.getWebSDKSettings().then((n=>{var i=mt.getLocalUser(),a=n.isDomainLevelStorage?mt.getCookieUser():"resolved";n=mt.getMigrationUser(),Promise.all([i,a,n]).then((n=>{const i=n[0],a=n[1],o=n[2];o?o.save().then((n=>{var i=localStorage.getItem(r.OLD_SDK.USER_DATA);if(i){const e=JSON.parse(i);e.is_new_sdk_migrated=!0,localStorage.setItem(r.OLD_SDK.USER_DATA,JSON.stringify(e))}at.log(1,e,"User resolved from older SDK: ",n),t(n)})):a&&"resolved"!==a?(at.log(1,e,"User resolved from cookie: ",a),a.save().then((e=>{t(e)}))):(at.log(1,e,"Local user: ",i),new mt(i).save().then((e=>{t(e)})))})).catch((t=>{at.log(1,e,"Error in fetching/creating user",t)}))})).catch((t=>{at.error(1,e,"Error in getting Web SDK Settings. This might indicate that the App is blocked.")}))}))}))),ht}static logout(){return new Promise((e=>{ht=null,e(!(this.instance=null))}))}save(){mt.baseLogTag,mt.isAmpEnabled()&&(this.deviceUuid=ke.get("moe_uuid")),xe.get("WEB_SETTINGS");var e=xe.get(r.WEB_SETTINGS);return null!=e&&e.configs.isWebPersonalisationModuleEnabled&&(this.deviceUuid=this.deviceUuid||window.MoeWebP.deviceUuid),mt.instance=this,new Promise((e=>{xe.set(r.USER_DATA,this),ke.setRaw(X,mt.instance.deviceUuid),e(this)}))}static isAmpEnabled(){const e=ke.get(X);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=I;break;case"email":e=A;break;case"name":e=w;break;case"first_name":e=D;break;case"last_name":e=C;break;case"mobile":e=O;break;case"gender":e=P;break;case"birthday":e=R}return e}}mt.baseLogTag="UserModel",mt.isResolved=!1,mt.instance=null;class ft{constructor(){var e=ft.baseLogTag+".constructor";const t=void 0;let n=mt.getSync().getAttribute("id");n=n?n.toString():void 0;const i=window.analytics;let a,r;if(i){r=i._VERSIONS;try{a=i.user().anonymousId()}catch(t){at.error(1,e,"Error getting anonymous id from segment api",t)}}this.c=void 0,this.h="",this.identifiers=void 0,(n||a)&&(this.identifiers={moe_user_id:n,segment_id:a}),this.meta={bid:(0,ct.v4)(),segmentSdkData:i?r:void 0}}}ft.baseLogTag="ReportPostData";class vt{constructor(e,t,n){vt.baseLogTag,this.type=e,this.getParams=t,this.event=n,this.postData=new ft;const i={},a={};for(const e of n.attributes)if(e&&null!=e.key&&(this.status=vt.STATUS.VALID,null!=e.value))if("function"==typeof e.value.getMonth){const t={};t[e.key]=Math.round(e.value.getTime()-6e4*e.value.getTimezoneOffset()),null==a.timestamp&&(a.timestamp=[]),a.timestamp.push(t)}else i[e.key]=e.value;this.postData.e=n.name,this.postData.a=i,this.postData.c=Be(a)?void 0:a,window&&window.location&&null!=window.location.href&&(this.postData.url=window.location.href)}}vt.baseLogTag="ReportClass",(lt=(Ui=vt=vt||{}).STATUS||(Ui.STATUS={}))[lt.INVALID=0]="INVALID",lt[lt.VALID=1]="VALID",(Ui=Ui.REPORT_ADD_TYPE||(Ui.REPORT_ADD_TYPE={}))[Ui.USER_ATTRIBUTE=0]="USER_ATTRIBUTE",Ui[Ui.EVENT=1]="EVENT";const St=vt;function Et(e,t){return`\n
\n ${e}\n ${!t&&'\n \n Powered by \n '}\n
\n `}function yt(e,t){return`\n
\n ${e}\n ${!t&&'\n \n Powered by \n '}\n
\n `}const bt=class{constructor(e){this.isBeaconDisabled=this.parseSentryBooleanFlag(Ee(e,"b_d",!1)),this.isCardsModuleEnabled=this.parseSentryBooleanFlag(Ee(e,"c_s",!1)),this.isWebPersonalisationModuleEnabled=this.parseSentryBooleanFlag(Ee(e,"c_w_p_e",!1)),this.eventBatchCount=Ee(e,"e_b_c",10),this.logLevel=Ee(e,"log_level"),this.shouldSendUID=this.parseSentryBooleanFlag(Ee(e,"o_u_e",!1)),this.periodicFlushTime=Ee(e,"p_f_t",30),this.isBatchingEnabled=this.parseSentryBooleanFlag(Ee(e,"s_e_b_e",!1)),this.sessionInactiveDuration=Ee(e,"s_i_d",1800),this.isRemoteLoggingEnabled=this.parseSentryBooleanFlag(Ee(e,"s_log",!1)),this.sourceExtraParams=Ee(e,"src_ext",[]),this.whitelistedEvents=Ee(e,"w_e",[]),this.blacklistedEvents=Ee(e,"b_e",[]),this.isAppActive=this.parseSentryBooleanFlag(Ee(e,"a_s",!0)),this.remoteLogTracking=this.isRemoteLoggingEnabled&&!!this.logLevel}parseSentryBooleanFlag(e="blocked"){return"allowed"===e||!0===e||"true"===e}};class _t{constructor(){this.settingsVersion="V1",this.isDomainLevelStorage=!1,this.isConfigured=!1,this.isPushSubBilling=!1,this.platformSettings=new Dt,this.optInConfig=new Tt,this.configs=new bt({})}static parseOldSettings(e){const t=_t.baseLogTag+".parseOldSettings",n=new _t;if((n.oldWebData=e).webData&&!Be(e.webData))if(n.isConfigured=!0,e=e.webData,n.configs=new bt(e),n.settingsVersion=Ee(e,"wp_settings_version","V1"),"V2"===n.settingsVersion)n.isDomainLevelStorage=Ee(e,"domain_level_storage",!1),n.isPushSubBilling=Ee(e,"sub_billing",!1),n.platformSettings.chrome.domainType=Ee(e,"is_enabled",!1)?"https":"na",n.platformSettings.chrome.subscriptionMode=Ee(e,"web_push_platform_data.chrome.subscription_mode","vapid"),n.platformSettings.chrome.vapidPublicKey=Ee(e,"web_push_platform_data.chrome.vapid_public_key",null),n.platformSettings.firefox.subscriptionMode=Ee(e,"web_push_platform_data.firefox.subscription_mode","vapid"),n.platformSettings.firefox.vapidPublicKey=Ee(e,"web_push_platform_data.firefox.vapid_public_key",null),n.optInConfig.reappearTime=Ee(e,"prompt_again",24),n.optInConfig.type={"1-step":"ONE_CLICK","2-step":"TWO_STEP","self-handled":"SELF_HANDLED"}[Ee(e,"opt_in_type","2-step")],n.optInConfig.showOverlay=Ee(e,"show_overlay",!1),n.optInConfig.loadTime=Ee(e,"load_time",0),n.optInConfig.type!==Tt.TYPE.SELF_HANDLED&&function(e,t,n){return t===Tt.TYPE.ONE_CLICK&&n?function(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 ut.getInstance();return n=a.isFirefox()?(i=Et(`\n \n \n `,t),yt(`\n \n \n `,t)):a.isOpera()?(i=Et(`\n \n \n `,t),yt(`\n \n \n `,t)):(i=Et(`\n \n \n `,t),yt(`\n \n \n `,t)),{mobileUI:n,webUI:i}}))}(Ee(e,"overlay",null),Ee(e,"hide_moe_branding",!1)).then((e=>e)):t===Tt.TYPE.TWO_STEP?new Promise((t=>{t(function(e,t){var{web:n,mobile:e}=e,n=`\n
\n
\n \n \n
\n
\n \n ${n.banner.title.text}\n \n

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

\n
\n ${t?"":``}\n
\n \n \n ${n.allow_button.text}\n \n
\n
\n \n \n `;return{mobileUI:`\n
\n
\n \n \n ${e.nudge.title.text}\n \n
\n
\n
\n \n \n
\n
${t?"":``}\n
\n `,webUI:n}}(Ee(e,"opt_in_preview",null),Ee(e,"hide_moe_branding",!1)))})):void 0}(e,n.optInConfig.type,n.optInConfig.showOverlay).then((e=>{n.optInConfig.softAskConfig.desktop.customHTML=e.webUI,n.optInConfig.softAskConfig.mobile.customHTML=e.mobileUI})).catch((e=>{at.error(2,t,"Failed to construct overlay for hard ask",e)}));else{"false"===Ee(e,"domain_level_storage",!1)?n.isDomainLevelStorage=!1:n.isDomainLevelStorage=!(!Ee(e,"domain_level_storage",!1)&&"true"!==Ee(e,"domain_level_storage",!1));let i=Ee(e,"PushSubBilling",!1);"false"===i?i=!1:"true"===i&&(i=!0),(e=>"boolean"==typeof e)(i)||(i=!1),n.isPushSubBilling=i,n.platformSettings.chrome.domainType=Ee(e,"webPushPlatformData.chrome.domain_type",""),n.platformSettings.chrome.subscriptionMode=Ee(e,"webPushPlatformData.chrome.subscriptionMode","normal"),n.platformSettings.chrome.vapidPublicKey=Ee(e,"webPushPlatformData.chrome.vapidPublicKey",null),n.platformSettings.firefox.enabled=!0,n.platformSettings.firefox.subscriptionMode=Ee(e,"webPushPlatformData.firefox.subscriptionMode","normal"),n.platformSettings.firefox.vapidPublicKey=Ee(e,"webPushPlatformData.firefox.vapidPublicKey",null),n.platformSettings.safari.websitePushId=Ee(e,"webPushPlatformData.safari.websitePushId",null),null==n.platformSettings.safari.websitePushId?n.platformSettings.safari.enabled=!1:n.platformSettings.safari.enabled=!0,n.optInConfig.reappearTime=parseInt(Ee(e,"promptAgain",24)),Ee(e,"call_push_moengage",!0)?Ee(e,"banner.banner_flag",null)?n.optInConfig.type=Tt.TYPE.TWO_STEP:n.optInConfig.type=Tt.TYPE.ONE_CLICK:(n.optInConfig.type=Tt.TYPE.SELF_HANDLED,n.optInConfig.reappearTime=0),n.optInConfig.showOverlay=Ee(e,"show_overlay",!1),n.optInConfig.loadTime=Ee(e,"load_time",0),n.optInConfig.softAskConfig.desktop.customHTML=Ee(e,"bannerHtml.web",null),n.optInConfig.softAskConfig.mobile.customHTML=Ee(e,"bannerHtml.mweb",null),Ne.get().disableCookies&&(n.isDomainLevelStorage=!1,at.warn(2,t,"Cookies Storage Been Disabled"))}else n.isConfigured=!1;return n}}_t.baseLogTag="SdkSettings";class Tt{constructor(){this.type=Tt.TYPE.NA,this.reappearTime=24,this.softAskConfig={desktop:new It,mobile:new It}}}class It{constructor(){this.customHTML=null}}(Ui=(Ui=Tt=Tt||{}).TYPE||(Ui.TYPE={})).NA="NA",Ui.ONE_CLICK="ONE_CLICK",Ui.TWO_STEP="TWO_STEP",Ui.SELF_HANDLED="SELF_HANDLED";class At{constructor(){this.enabled=!1,this.websitePushId=null}}class wt{constructor(){this.enabled=!1,this.isServiceWorkerRoot=!0,this.serviceWorkerFilename="serviceworker.js",this.subscriptionMode="normal",this.vapidPublicKey=null,this.domainType=""}}(Ui=(Ui=wt=wt||{}).DOMAIN_TYPE||(Ui.DOMAIN_TYPE={})).NA="NA",Ui.HTTPS="https",Ui.MUTLI="multi";class Dt{constructor(){this.safari=new At,this.chrome=new wt,this.firefox=new wt}}const Ct=_t;var Ot=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 Pt{static initStore(){return Ot(this,void 0,void 0,(function*(){return null==Pt.ready&&(Pt.offlineDataStore=Se.createInstance({driver:[Se.INDEXEDDB,Se.WEBSQL,Se.LOCALSTORAGE],name:"moe_database",storeName:te.NAME}),Pt.ready=Promise.resolve(Pt.offlineDataStore.ready())),yield Pt.ready}))}static initialize(){return Ot(this,void 0,void 0,(function*(){yield Pt.initStore()}))}}class Rt{constructor(e){this.EVENT_ACTION=e.event.name,this.EVENT_ATTRS=Lt(e.event.attributes),this.EVENT_G_TIME=(new Date).getTime().toString(),this.EVENT_L_TIME=Xe(),this.EVENT_ATTRS_CUST=e.postData.c,this.N_I_E=e.postData.nie}}Rt.baseLogTag="ReportAddViewEvent";const Lt=e=>{const t={};return e.forEach((e=>{t[e.key]=e.value})),t};class Nt{static visibilityChange(){"hidden"===document.visibilityState&&(Nt.windowClosed||Wt.reactToTriggerEvents())}static beforeUnload(){Nt.windowClosed=!0,Wt.sendBeacon()}static removeEventListeners(){document.removeEventListener("visibilitychange",Nt.visibilityChange,!1),window.removeEventListener("beforeunload",Nt.beforeUnload,!1)}static addListeners(){document.addEventListener("visibilitychange",Nt.visibilityChange,!1),window.addEventListener("beforeunload",Nt.beforeUnload,!1)}}Nt.windowClosed=!1;const kt=Nt;function Mt(e,t){try{var n=Ve();return!(null==e||!e.configs.isBatchingEnabled||("web"!==n||t.name!==ut.BROWSER_NAMES.CHROME&&t.name!==ut.BROWSER_NAMES.EDGE&&t.name!==ut.BROWSER_NAMES.OPERA)&&("mobile"!==n||ut.isIOS()||t.name!==ut.BROWSER_NAMES.CHROME&&t.name!==ut.BROWSER_NAMES.OPERA)||!navigator.sendBeacon)}catch(e){at.error(1,"Utils.batching.isBatchingSupported",e)}}class xt{static getRemoteLogsBatchRequestOptions(e){return new Promise((t=>{zt.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=zt.baseLogTag+".sendBatchOfLogs";return new Promise(((n,i)=>{xt.getRemoteLogsBatchRequestOptions(e).then((i=>{var a=(a=Ne.get()).baseDomainName+ue+i.query_params.os.toLowerCase()+"/"+a.appId;ot.post(a,{postData:i}).then((()=>{at.log(1,t,"[sendBatchOfLogs] batch payload: "+JSON.stringify(e)),at.log(1,t,"Batch Remote Logs sent to MoEngage successfully"),xt.batchRemoteLogsApiRetries=1,n(!0)})).catch((n=>{at.log(1,t,"Batch Remote Logs API failed",n),this.handleRemoteLogsFailure(e)}))}))}))}static handleRemoteLogsFailure(e){var t=zt.baseLogTag+".handleRemoteLogsFailure";at.log(1,t,"Retry Batch Logs Failed API",xt.batchRemoteLogsApiRetries),xt.batchRemoteLogsApiRetries<3&&setTimeout((()=>{xt.batchRemoteLogsApiRetries++,xt.sendBatchOfLogs(e)}),3e3*xt.batchRemoteLogsApiRetries)}static sendBeacon(e){xt.getRemoteLogsBatchRequestOptions(e).then((e=>{var t=(t=Ne.get()).baseDomainName+ue+e.query_params.os.toLowerCase()+"/"+t.appId+"?"+(new Date).getTime();at.log(1,"RemoteLogsApi.sendBeacon","[sendBeacon] Remote Logs batch payload: "+JSON.stringify(e)),navigator.sendBeacon(t,JSON.stringify(e))}))}}xt.batchRemoteLogsApiRetries=1;class Bt{static updateEventStore(){Ve()!==fe.TV&&Se.createInstance({driver:[Se.INDEXEDDB,Se.WEBSQL,Se.LOCALSTORAGE],name:"moe_tracking",storeName:J}).setItem(J,Bt.reports)}static spliceReports(e=Bt.reports.length){return e=Bt.reports.splice(0,e),Bt.updateEventStore(),e}static spliceRemoteLogs(e=Bt.remoteLogs.length){return Bt.remoteLogs.splice(0,e)}static shouldCreateNewBatch(){return!Bt.lastbatchCreatedAt||(new Date).getTime()-Bt.lastbatchCreatedAt>=ie}static shouldCreateNewBatchForRemoteLogs(){return!Bt.lastRemoteLogsbatchCreatedAt||(new Date).getTime()-Bt.lastRemoteLogsbatchCreatedAt>=ie}static reactToTriggerEvents(){var e=Bt.baseLogTag+".reactToTriggerEvents";0{(Bt.isOfflineBatchingSupported(t,e)||e.configs.remoteLogTracking)&&(Bt.periodicSyncInterval&&Bt.clearInterval(),Bt.periodicSyncInterval=window.setInterval(Bt.periodicSync.bind(this,e.configs.periodicFlushTime),1e3*e.configs.periodicFlushTime),kt.addListeners())}))}static sendBatch(e){var t=Bt.baseLogTag+".sendBatch";try{zt.sendBatchOfReports(e).then((()=>{Bt.lastbatchCreatedAt=(new Date).getTime()}))}catch(e){at.error(1,t,"Error in sending batch",e)}}static sendRemoteLogs(e){var t=Bt.baseLogTag+".sendRemoteLogs";try{xt.sendBatchOfLogs(e).then((()=>{Bt.lastRemoteLogsbatchCreatedAt=(new Date).getTime()}))}catch(e){at.error(1,t,"Error in sending batch of remote logs",e)}}static createBatch(e){0{t(e)})),Ee(Ut.topicListeners,e.topic,[]).map((t=>{t(e)}))}static broadcastToWindow(e){window&&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(){Ut.listeners=[],Ut.topicListeners={}}}Ut.listeners=[],Ut.topicListeners={};const Ft=Ut;class Ht{constructor(e,t,n=!0){this.name=e,this.attributes=t,this.timestamp=(new Date).getTime(),n&&this.attributes.push(new pt("URL",location.href))}static createUserAttributeEvent(e){return new Promise(((t,n)=>{const i=[],a=e.key;switch(e.key){case"id":e.key=I;break;case"email":e.key=A;break;case"name":e.key=w;break;case"first_name":e.key=D;break;case"last_name":e.key=C;break;case"mobile":e.key=O;break;case"gender":e.key=P;break;case"birthday":e.key=R}i.push(e),mt.get().then((n=>{var r=n.indexOfAttribute("oldUniqueIds");e.key===I&&-1{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 pt("moe_logged_in_status",!!a.getAttribute("id"));const s=new dt;var o=new pt("moe_first_visit",s.getNumberOfSessions()<=1);t.push(r,o),i(new Ht(e,t,n))}catch(r){at.error(1,"Event.createEvent","Error occurred in create events ",r)}}))))}))}}class Gt{static addEvent(e){Gt.history.push(e),Gt.listeners.forEach((t=>{t(e)}))}static getHistory(){return Gt.history}static addEventListener(e){Gt.listeners.push(e)}static clear(){Gt.history=[]}static clearListeners(){Gt.listeners=[]}}Gt.history=[],Gt.listeners=[];class Kt{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;let o;n=!!n;try{o=yield zt.getWebSDKSettings()}catch(r){return void at.error(1,i,"Error in getting Web SDK Settings. This might indicate that the App is blocked.")}if("string"==typeof e&&e)if(o.configs.blacklistedEvents&&o.configs.blacklistedEvents.includes(e))at.log(1,i,`This event "${e}" is blacklisted. Please contact Moengage team to whitelist it.`),a({error:5001,message:`Event "${e}" is blacklisted.`});else if(!oe.includes(e)||o.configs.whitelistedEvents&&o.configs.whitelistedEvents.includes(e))try{const l=[];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)&&l.push(new pt(e,t[e]));const i=new dt;yield i.initiateSessionAndSource(o);const c=yield Ht.createEvent(e,l);Gt.addEvent(c),null!=o&&o.configs.isWebPersonalisationModuleEnabled&&null!==(r=window.MoeWebP)&&void 0!==r&&r.handleInSessionEvent(c),zt.collectGetParams().then((t=>{e===s&&delete t.push_id;const r=new St(St.REPORT_ADD_TYPE.EVENT,t,c);var o={session_id:i.getSessionKey(),start_time:i.getSessionStartTime(),background_initiated:0};const l=[];(t=i.getActiveSource())&&(i.setCurrentSource(t),l.push(t)),r.postData.meta.session=o,l.length&&(r.postData.meta.source=l),i.isNonEventInteractive(c)&&(r.postData.nie=1),zt.reportAdd(r,n).then((()=>{i.isNonEventInteractive(c)||i.extendSession(),a(!0)}))}))}else at.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(r){at.error(1,i,"Error occurred in tracking events ",r)}else at.log(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 at.log(1,i,"Event name not a string or null or empty string:",e),a({error:5001,message:"Event name can not be null"})}))))}}var Vt,jt,Yt=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 zt{static deviceAdd(){return new Promise(((e,t)=>{const n=Ne.get();return zt.collectGetParams(pe).then((i=>{i={queryParams:i=Object.assign(Object.assign({},i),{url:window.location.href})},ot.post(n.baseDomainName+pe,i).then((()=>{let t=Ve().toUpperCase();t="WEB"===t?"DESKTOP":t,Kt.track(y,{deviceType:t}),mt.get().then((t=>{t.deviceAdded=!0,t.save().then((()=>{Jt.startPeriodicClear(r.Q.REPORT),zt.onDeviceAdd.res(),e(!0)}))}))})).catch((e=>{be.enqueue(r.Q.DEVICE,!0),t(!1)}))}))}))}static reportAdd(e,t){const n=zt.baseLogTag+".reportAdd";return new Promise(((i,a)=>(t=!!t,zt.getWebSDKSettings().then((o=>{o.isPushSubBilling?mt.get().then((o=>{o.deviceAdded?zt.reportAddInternal(e,t).then((()=>{this.sendBroadcast(e),i(!0)})).catch((()=>{a(!1)})):(be.enqueue(r.Q.REPORT,e),at.log(1,n,"Report added to queue as device not added yet:",e.event.name),at.log(2,n,"Event Queued:",e.event.name),e.type===St.REPORT_ADD_TYPE.USER_ATTRIBUTE&&(zt.isPushSubAttributeAccepted(e.event.attributes[0].key)?(at.log(1,n,"Attribute accepted for push sub billing."),zt.deviceAdd()):at.log(2,n,"Attribute NOT accepted for push sub billing.")),i(!0))})):zt.reportAddInternal(e,t).then((()=>{this.sendBroadcast(e),i(!0)})).catch((()=>{a(!1)}))})).catch((e=>{at.error(1,n,"Error in getting Web SDK Settings. This might indicate that the App is blocked."),a(!1)})))))}static sendBroadcast(e){re.NAMES.includes(e.event.name)&&Ft.broadcastToWindow({topic:re.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=>{zt.collectGetParams(ne).then((n=>{var i=zt.getSegmentId()||"";const a=mt.getSync(),r=new dt;var o={session_id:r.getSessionKey(),start_time:r.getSessionStartTime(),background_initiated:0};const s=[];var l=r.getActiveSource();l&&(r.setCurrentSource(l),s.push(l)),o={query_params:n,identifiers:{moe_user_id:a.getAttribute("id")||void 0,segment_id:i||void 0},meta:{bid:(0,ct.v4)(),request_time:(new Date).toISOString(),session:o,source:s.length?s:void 0},viewsCount:e.length,viewsInfo:[...e]},t(o)}))}))}static addReportsToOfflineDB(e,t){return Yt(this,void 0,void 0,(function*(){const n=zt.baseLogTag+".addReportsToOfflineDB";var i=yield zt.getBatchRequestOptions([]);yield Pt.offlineDataStore.setItem(t||"report_add_"+(new Date).getTime(),e),yield Pt.offlineDataStore.setItem("requestMetaData",i),navigator.serviceWorker&&navigator.serviceWorker.ready.then((e=>{e.sync?e.sync.register("moe_offline_data_sync").then((()=>{at.log(2,n,"offline sync event registered")})).catch((e=>{at.error(1,n,"Service worker sync error",e)})):at.log(2,n,"Service worker sync unavailable")}))}))}static sendReportBeacon(e,t,n){var i=zt.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){at.error(2,i,"Failed to send Report call with Beacon:",e)}return!1}static sendBatchOfReports(e){const t=zt.baseLogTag+".sendBatchOfReports";return new Promise(((n,i)=>{zt.getBatchRequestOptions(e).then((a=>{var r=Ne.get();const o=r.baseDomainName+ne+r.appId;zt.getWebSDKSettings().then((r=>zt.sendReportBeacon(r.configs.isBeaconDisabled,o,a)?(at.log(1,t,"[sendBatchOfReports] batch payload: "+JSON.stringify(e)),at.log(1,t,"Batch sent to MoEngage successfully through beacon"),void n(!0)):void ot.post(o,{postData:a}).then((()=>{at.log(1,t,"[sendBatchOfReports] batch payload: "+JSON.stringify(e)),at.log(1,t,"Batch sent to MoEngage successfully"),n(!0)})).catch((a=>{at.error(1,t,"Batch Report add API failed",a),ut.getInstance().then((o=>{Wt.isOfflineBatchingSupported(o,r)?(zt.addReportsToOfflineDB(e).then((()=>{at.log(2,t,"Network offline: Batch added to offline db")})),n(!0)):i(a)})).catch((()=>{i(a)}))})))).catch((e=>{at.error(1,t,"Error in getting Web SDK Settings. This might indicate that the App is blocked."),i(e)}))}))}))}static reportAddInternal(e,t){const n=zt.baseLogTag+".reportAddInternal";return new Promise(((i,a)=>{zt.getWebSDKSettings().then((a=>{ut.getInstance().then((o=>{var l;if(null!==(l=a.configs)&&void 0!==l&&l.isBatchingEnabled&&!t)Mt(a,o)?(Wt.addReport(e,a.configs.eventBatchCount),at.log(1,n,"Event batched successfully:",e.event),this.addEventsToIDB(e.event),i(!0)):(c=new Rt(e),zt.sendBatchOfReports([c]).then((()=>{i(zt.handleReportAddSuccess(e))})).catch((t=>{zt.handleReportAddFailure(e,t)})));else{const l=zt.getUpdatedPushDetails();for(const t in l)!l.hasOwnProperty(t)||e.event.name===s&&"push_id"===t||(e.getParams[t]=l[t]);var c=je();const d={queryParams:Object.assign(Object.assign({},e.getParams),c)};if(e.postData.nie){const t=Object.assign({},e);delete t.postData.meta.source,delete t.postData.meta.session,d.postData=t.postData}else d.postData=e.postData;let g=Ne.get().baseDomainName;if(g+=t?pe:me,!g.includes(pe)&&zt.sendReportBeacon(null===(c=a.configs)||void 0===c?void 0:c.isBeaconDisabled,tt(g,Ee(d,"queryParams",null)),d.postData))return at.log(1,n,"Event tracked through beacon:",e.event),void i(zt.handleReportAddSuccess(e));ot.post(g,d).then((()=>{if(g.includes(pe)){let e=Ve().toUpperCase();e="WEB"===e?"DESKTOP":e,Kt.track(y,{deviceType:e})}i(zt.handleReportAddSuccess(e))})).catch((i=>{var s;Mt(a,o)?(at.error(1,n,"Add Report API failed, adding reports to offline db",i),t?be.enqueue(r.Q.DEVICE,e):(s=new Rt(e),zt.offlineEvents.push(s),zt.addReportsToOfflineDB(zt.offlineEvents,"report_add").then((()=>{at.log(2,n,"Network offline: Batch added to offline db")})))):zt.handleReportAddFailure(e,i)}))}}))})).catch((e=>{at.error(1,n,"Error in getting Web SDK Settings. This might indicate that the App is blocked."),a(!1)}))}))}static handleReportAddSuccess(e){var t=zt.baseLogTag+".handleReportAddSuccess";return e.type===St.REPORT_ADD_TYPE.EVENT?(at.log(1,t,"Event tracked successfully:",e.event),this.addEventsToIDB(e.event)):e.type===St.REPORT_ADD_TYPE.USER_ATTRIBUTE&&at.log(1,t,"User attribute added successfully:",e.event.attributes),zt.addReportApiRetries=1,!0}static handleReportAddFailure(e,t){var n=zt.baseLogTag+".handleReportAddFailure";at.error(1,n,"Add Report API failed",t),e.type===St.REPORT_ADD_TYPE.EVENT?at.log(1,n,"Queueing unsuccessful event tracking:",e.event):e.type===St.REPORT_ADD_TYPE.USER_ATTRIBUTE&&at.log(1,n,"Queueing unsuccessful user attribute add:",e.event.attributes),zt.addReportApiRetries<3&&setTimeout((()=>{zt.addReportApiRetries++,be.enqueue(r.Q.REPORT,e),Jt.startPeriodicClear(r.Q.REPORT)}),3e3*zt.addReportApiRetries)}static checkIfTokenValid(e){const t=Ne.get().baseDomainName+he,n=Ne.get();return new Promise((i=>{e?mt.get().then((a=>{a={queryParams:{app_id:n.appId,unique_id:a.deviceUuid,push_id:e}},ot.post(t,a).then((e=>{200===e.status?i(!0):i(!1)})).catch((e=>{i(!1)}))})):i(!1)}))}static isAppBlocked(e){return!(!e||!1!==e.configs.isAppActive)}static getWebSDKSettings(){return new Promise(((e,t)=>{let n=Ne.get();var i,a;null!=n&&null!=n.appId||(n=new Ne(xe.get(r.INIT_DATA))),zt.sdkSettings?zt.isAppBlocked(zt.sdkSettings)?t(!1):e(zt.sdkSettings):(i=(new Date).getTime(),null==(a=xe.get(r.SETUP_TIME))||0{e(t)})).catch((e=>{t(!1)})):xe.get(r.WEB_SETTINGS)?(zt.sdkSettings=xe.get(r.WEB_SETTINGS),zt.isAppBlocked(zt.sdkSettings)?t(!1):e(zt.sdkSettings)):zt.getAndPersistWebSettings(n).then((t=>{e(t)})).catch((e=>{t(!1)})))}))}static getAndPersistWebSettings(e){const t=zt.baseLogTag+".getAndPersistWebSettings";return new Promise(((n,i)=>Yt(this,void 0,void 0,(function*(){try{var a={queryParams:{app_id:(e=null==e.appId?new Ne(xe.get(r.INIT_DATA)):e).appId}};at.log(1,t,"Fetching latest web sdk settings for",e.appId);var o=yield ot.get(e.baseDomainName+"v2/websdksettings",a);at.log(1,t,"Fetching config settings for",e.appId);let h=o.responseText;"string"==typeof h&&(h=JSON.parse(h));var s=Ke()?"mweb":"web",l=e.baseDomainName+z+s+"/"+e.appId;try{var c,d=xe.get(r.USER_DATA),g={postData:{query_params:{unique_id:d&&d.deviceUuid}}},u=yield ot.post(l,g);at.log(1,t,"Fetched latest web and config settings"),200===u.status&&(c=u.responseText,c=JSON.parse(c),h.webData=Object.assign(Object.assign({},h.webData),c))}catch(e){at.error(1,t,"Config API failed")}var p=(new Date).getTime();if(h=Ct.parseOldSettings(h),xe.set(r.WEB_SETTINGS,h),xe.set(r.SETUP_TIME,p),zt.isAppBlocked(h))return void i(!1);zt.sdkSettings=h,n(h)}catch(a){at.error(1,t,"Settings APi Failed: ",a),zt.webSdkApiRetries<3?setTimeout((()=>{zt.webSdkApiRetries++,n(zt.getAndPersistWebSettings(e))}),3e3*zt.webSdkApiRetries):i(!1)}}))))}static collectGetParams(e){return new Promise(((t,n)=>{mt.get().then((n=>{let i=Ne.get();null!=i&&null!=i.appId||(i=new Ne(xe.get(r.INIT_DATA)));const a=new Date,o=Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate(),a.getUTCHours(),a.getUTCMinutes(),a.getUTCSeconds(),a.getUTCMilliseconds());ut.getInstance().then((a=>{var s=je(e,[me,pe,ne]);const l=Object.assign({os:a.os,os_platform:a.osPlatform,is_incognito:a.isIncognito,app_id:i.appId,os_ver:a.name,sdk_ver:"2.30.19",model:a.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()},s);null!=(s=xe.get(r.PUSH_TOKEN))&&"NA"!==s&&""!==s&&"null"!==s&&(l.push_id=s),a.isWebPushCompatible()&&(Fe(this.sdkSettings.platformSettings,a)?(l.subscription_type="vapid",l.vapid_public=He(this.sdkSettings.platformSettings,a)):l.subscription_type="normal"),null!=i.environment&&(l.environment=i.environment),a.name===ut.BROWSER_NAMES.SAFARI&&(l.websitePushId=this.sdkSettings.platformSettings.safari.websitePushId);var c=xe.get(r.SUBSCRIPTION_DETAILS);if(null!=c&&null!=c.keys){for(const e in c.keys)l["keys_"+e]=encodeURI(c.keys[e]);null!=c.endpoint&&(l.endpoint=encodeURI(c.endpoint)),l.expirationTime=c.expirationTime}t(l)}))}))}))}static getUpdatedPushDetails(){const e={};var t=xe.get(r.SUBSCRIPTION_DETAILS);if(null!=t){var n=xe.get(r.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 isPushSubAttributeAccepted(e){return e===A||e===O}static sendBeacon(e){zt.getBatchRequestOptions(e).then((e=>{var t=(t=Ne.get()).baseDomainName+ne+t.appId+"?"+(new Date).getTime();at.log(1,"MoeApi.sendBeacon","[sendBeacon] batch payload: "+JSON.stringify(e)),navigator.sendBeacon(t,JSON.stringify(e))}))}static addEventsToIDB(e){if(Ve()!==fe.TV){const t=Se.createInstance({driver:[Se.INDEXEDDB,Se.WEBSQL,Se.LOCALSTORAGE],name:q,storeName:$});null!=t&&t.setItem(e.name,e)}}}zt.baseLogTag="MoeApi",zt.onDeviceAdd=new st,zt.webSdkApiRetries=1,zt.offlineEvents=[],zt.addReportApiRetries=1;const qt=n(967),$t=r.Q;class Jt{static clear(e){var t=Jt.baseLogTag+".clear";const n=[];for(;!be.isEmpty(e);)switch(e){case $t.REPORT:const i=be.dequeue($t.REPORT);n.push((e=>{zt.reportAdd(i).then((()=>{e()}))}));break;case $t.DEVICE:be.dequeue($t.DEVICE)&&n.push((e=>{zt.deviceAdd().then((()=>{e()}))}));break;default:at.error(1,t,"Do not know how to handle queue with name:",e)}setTimeout((()=>{Jt.processing[e]=!0,qt(n,5,((t,n)=>{Jt.processing[e]=!1}))}),0)}static startPeriodicClear(e){const t=Jt.baseLogTag+".startPeriodicCleanQ";Jt.clearInterval(e);var n=()=>{be.isEmpty(e)?(at.log(1,t,"If you see multiple event tracks with same, they were captured over multiple visits or page refreshes."),Ee(Jt.processing,e,!1)||Jt.clearInterval(e)):(Jt.clear(e),at.log(1,t,"Starting periodic queue clear for",e))};n(),Jt.intervals[e]=setInterval(n,6e3)}static clearInterval(e){null!=Jt.intervals[e]&&(clearInterval(Jt.intervals[e]),Jt.intervals[e]=null)}}Jt.baseLogTag="QManager",Jt.intervals={},Jt.processing={},(Ui=Vt=Vt||{}).PROMPT="prompt",Ui.GRANTED="granted",Ui.DENIED="denied",Ui.DISMISSED="dismissed";class Xt{static addCallback(e,t){null!=e&&null!=t&&(null==Xt.callbacks[e]&&(Xt.callbacks[e]=[]),Xt.callbacks[e].push(t))}static getCallbacks(e){return Xt.callbacks[e]||[]}static runCallbacks(e){Xt.getCallbacks(e).forEach((e=>{e()}))}}Xt.callbacks={};class Qt{constructor(e){this.swRegisterPromise=null,this.swActiveRetries=1;const t=Qt.baseLogTag+".constructor";this.sdkSettings=e,this.registerServiceWorker().then((e=>{this.sendDataToServiceWorker()})).catch((e=>{at.error(1,t,"Error registering serviceworker:",e)}))}showHardAsk(){const e=Qt.baseLogTag+".showHardAsk";return new Promise(((t,n)=>{Qt.isWebPushSupported().then((i=>{i?this.getCurrentPermissionState().then((i=>{this.registerServiceWorker().then((a=>{i!==Vt.DENIED?(at.remoteLogTracking(1,"info",e,"Attempting to open hard ask"),Kt.track(S),Ft.broadcastToWindow({topic:k,name:x.HARD_ASK_ATTEMPTED}),this.showOverlay(),this.askPermission().then((n=>{this.hideOverlay(),at.remoteLogTracking(2,"info",e,"Permission state after hard ask:",n),n===Vt.GRANTED?this.getPushTokenDetails().then((e=>{this.sendDataToServiceWorker(e.token),t({state:n,subscriptionDetails:e})})):(this.sendDataToServiceWorker(),t({state:n,subscriptionDetails:null}))})).catch((t=>{at.error(1,e,t),n(W)}))):(at.remoteLogTracking(1,"info",e,"Hard ask not shown as permission state is",i),t({state:i,subscriptionDetails:null}))})).catch((t=>{at.error(1,e,"Error registering serviceworker:",t),n(t)}))})).catch((t=>{at.error(1,e,"Registering service worker failed:",t),n(W)})):(at.warn(1,e,"Web push not supported in current browser environment"),n(B))}))}))}sendDataToServiceWorker(e){return new Promise((t=>{zt.collectGetParams().then((t=>{var n;e&&(t.push_id=e||xe.get(r.PUSH_TOKEN)||void 0),t.isBatchingEnabled=xe.get(r.WEB_SETTINGS).configs.isBatchingEnabled,Ge()||null!==(n=Ne.get())&&void 0!==n&&n.swScope?Se.createInstance({driver:[Se.INDEXEDDB,Se.WEBSQL,Se.LOCALSTORAGE],name:"moe_database",storeName:"moe_data"}).setItem("reportParams",{data:t}):navigator.serviceWorker.ready.then((()=>{this.sendDataToServiceWorkerOnControllerReady(t)}))}))}))}sendDataToServiceWorkerOnControllerReady(e){navigator.serviceWorker.controller?navigator.serviceWorker.controller.postMessage({data:e}):this.swActiveRetries<3&&setTimeout((()=>{this.swActiveRetries++,this.sendDataToServiceWorkerOnControllerReady(e)}),500)}getCurrentPermissionState(){return ut.getInstance().then((e=>navigator.permissions&&!e.isSafari()?navigator.permissions.query({name:"notifications"}).then((e=>Qt.parsePermissionState(e.state))).catch((e=>{})):new Promise((t=>{let n=Notification.permission;e.isSafari()&&"default"===n&&(n="prompt",xe.get(ge)&&(n="denied")),t(Qt.parsePermissionState(n))}))))}getPushTokenDetails(){const e=Qt.baseLogTag+".getPushTokenDetails";return new Promise(((t,n)=>{this.getCurrentPermissionState().then((n=>{ut.getInstance().then((i=>{n!==Vt.GRANTED?t({token:null,raw:null}):this.registerServiceWorker().then((n=>{let a=null;const r={userVisibleOnly:!0};Fe(this.sdkSettings.platformSettings,i)&&(a=He(this.sdkSettings.platformSettings,i),r.applicationServerKey=We(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=>{at.error(1,e,"Error in subscribtion: ",n),t({token:null,raw:null})}))};n.pushManager.getSubscription().then((e=>{if(e)if("vapid"===this.sdkSettings.platformSettings.chrome.subscriptionMode&&e.options&&e.options.applicationServerKey){var t=Ue(e.options.applicationServerKey);[a,a+"=",a+"==",Ue(We(a))].indexOf(t)<0?e.unsubscribe().then((()=>{o()})):o()}else o();else o()}))})).catch((n=>{at.error(1,e,"Error in getting push token: ",n),t({token:null,raw:null})}))}))}))}))}removeToken(){return xe.remove(r.PUSH_TOKEN),xe.remove(r.SUBSCRIPTION_DETAILS),Promise.resolve()}askPermission(){return new Promise(((e,t)=>{Notification.requestPermission().then((t=>{xe.set(r.OPT_IN_SHOWN_TIME,Date.now()),Kt.track(h),Ft.broadcastToWindow({topic:k,name:x.HARD_ASK_SHOWN}),Ft.deprecatedSdkCallback("opt_in_shown"),Xt.runCallbacks(x.HARD_ASK_SHOWN),e(Qt.parsePermissionState(t))})).catch((e=>{t(F)}))}))}registerServiceWorker(){const e=Qt.baseLogTag+".registerServiceWorker";return null!=this.swRegisterPromise||(this.swRegisterPromise=new Promise(((t,n)=>{if(Qt.registeredServiceWorker)t(Qt.registeredServiceWorker);else if("serviceWorker"in navigator){let i="serviceworker.js",a=!1;if(Ne.get()&&null!=Ne.get().swPath&&(i=Ne.get().swPath,a=!0),"/"===i[0]||i.startsWith("http")||(i="/"+i),Ge())at.log(1,e,"Removing scope in case of shopify."),this.registerScopedSW(i,/moengage/,t,n);else{let r="/";Ne.get()&&null!=Ne.get().swScope?(r=Ne.get().swScope,this.registerScopedSW(i,r,t,n)):(a&&(at.log(1,e,"Using user defined path to serviceworker:",i),r=i.substr(0,i.lastIndexOf("/")+1),Qt.canSwBeRegisteredWithScope(r)||(at.error(1,e,"Service worker can only be registered from same directory or child directory."),n(H))),navigator.serviceWorker.register(i,{scope:r}).then((i=>{at.log(2,e,"Serviceworker registered"),navigator.serviceWorker.ready.then((n=>{at.log(2,e,"Serviceworker ready"),Qt.registeredServiceWorker=n,Ne.get()&&Ne.get().forceSwUpdate&&n.update(),t(n)})).catch((t=>{at.error(1,e,"Service worker register failed:",t),n(W)}))})).catch((t=>{at.error(1,e,"Service worker register failed:",t),n(W)}))),at.log(1,e,"Scope for serviceworker:",r)}}else at.error(1,e,"Service worker not supported"),n("Service worker not supported")}))),this.swRegisterPromise}registerScopedSW(e,t,n,i){const a=Qt.baseLogTag+".registerScopedSW";navigator.serviceWorker.register(e).then((e=>{at.log(2,a,"Serviceworker registered"),navigator.serviceWorker.getRegistrations().then((e=>{e.forEach((e=>{setTimeout((()=>{e.active&&e.active.scriptURL.match(t)&&(at.log(2,a,"Serviceworker ready"),Qt.registeredServiceWorker=e,Ne.get()&&Ne.get().forceSwUpdate&&e.update(),n(e))}),100)}))})).catch((e=>{at.error(1,a,"Service worker register failed:",e),i(W)}))})).catch((e=>{at.error(1,a,"Service worker register failed:",e),i(W)}))}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=>{ut.getInstance().then((t=>{!t.isIncognito&&"serviceWorker"in navigator&&"PushManager"in window&&t.isWebPushCompatible()?e(!0):e(!1)}))}))}static parsePermissionState(e){return"prompt"===e?Vt.PROMPT:"granted"===e?Vt.GRANTED:"denied"===e?Vt.DENIED:"default"===e?Vt.DISMISSED:null}showNotification(e){const t=Qt.baseLogTag+".showNotification";this.registerServiceWorker().then((n=>{e?e.title?e.body?(null==e.requireInteraction&&(e.requireInteraction=!0),n.showNotification(e.title,e)):at.error(1,t,"Notification body can not be blank"):at.error(1,t,"Notification title can not be blank"):at.error(1,t,"Notification object can not be blank")})).catch((e=>{at.error(1,t,"Error registering serviceworker:",e)}))}showOverlay(){if(this.sdkSettings.optInConfig.showOverlay&&this.sdkSettings.optInConfig.type===Tt.TYPE.ONE_CLICK){const e=document.createElement("div");e.id="moe-push-div",e.style.display="none",e.className="moe-push-class",ut.getInstance().then((t=>{t.isMobile?e.innerHTML=this.sdkSettings.optInConfig.softAskConfig.mobile.customHTML:e.innerHTML=this.sdkSettings.optInConfig.softAskConfig.desktop.customHTML;const n=document.body.firstChild;let i;if(n.parentNode.insertBefore(e,n),(t=t.name)===ut.BROWSER_NAMES.CHROME||t===ut.BROWSER_NAMES.OPERA_NEON?i=document.getElementsByClassName("moe_chrome"):t===ut.BROWSER_NAMES.FIREFOX?i=document.getElementsByClassName("moe_firefox"):t!==ut.BROWSER_NAMES.OPERA&&t!==ut.BROWSER_NAMES.SAFARI||(i=document.getElementsByClassName("moe_opera")),0===i.length)document.getElementById("moe-push-div").style.display="none";else for(let e=i.length-1;0<=e;e--)i[e].style.display="block";this.overlayTimer=window.setTimeout((()=>{""===e.style.opacity&&(e.style.display="block")}),1500),e.onclick=()=>{this.hideOverlay()}}))}}hideOverlay(){clearTimeout(this.overlayTimer);const e=document.getElementById("moe-push-div");null!=e&&(e.style.visibility="none",e.style.opacity="0",e.parentNode.removeChild(e))}}Qt.baseLogTag="HTTPS-NotificationManager";const Zt="Web push settings not configured on MoEngage dashboard: "+j;class en{constructor(e,t){this.currentManager=null;var n=en.baseLogTag+".constructor";this.config=e,this.browser=t,this.browser.isWebPushCompatible()?e.platformSettings.chrome&&("https"===e.platformSettings.chrome.domainType?"https"===function(){if(window)return"localhost"===window.location.hostname?"https":"http:"===window.location.protocol?"http":"https:"===window.location.protocol?"https":void 0}()?this.currentManager=new Qt(e):at.error(1,n,"Web Push does not work in http mode"):(Ge()&&new Qt(e),at.warn(1,n,"Web push settings not configured. Please configure at ",j))):this.browser.name===ut.BROWSER_NAMES.SAFARI&&e.platformSettings.safari&&"safari"in window&&"pushNotification"in window.safari&&(this.currentManager=null,at.warn(1,n,"Web push is only supported on Safari 16 and above."))}showHardAsk(){const e=en.baseLogTag+".showHardAsk";return new Promise(((t,n)=>{this.getCurrentPermissionState().then((i=>{null!=this.currentManager?i===Vt.PROMPT?this.currentManager.showHardAsk().then((n=>{n.state===Vt.DISMISSED?(Kt.track(f),Ft.broadcastToWindow({topic:k,name:x.HARD_ASK_DISMISSED}),Ft.deprecatedSdkCallback("opt_in_dismissed"),Xt.runCallbacks(x.HARD_ASK_DISMISSED),at.log(1,e,"Hard ask was dismissed")):n.state===Vt.GRANTED?(Kt.track(m),Ft.broadcastToWindow({topic:k,name:x.HARD_ASK_ALLOWED,data:n.subscriptionDetails}),Ft.deprecatedSdkCallback("opt_in_allowed"),Xt.runCallbacks(x.HARD_ASK_ALLOWED),at.log(1,e,"Push permission was granted"),at.customLabel(1,e,"token",n.subscriptionDetails.token)):n.state===Vt.DENIED&&(Kt.track(v),Kt.track("Web Push Opt-in Denied"),Ft.broadcastToWindow({topic:k,name:x.HARD_ASK_DENIED}),Ft.deprecatedSdkCallback("opt_in_blocked"),Xt.runCallbacks(x.HARD_ASK_DENIED),at.log(1,e,"Notification permission was denied")),t(n)})).catch((n=>{at.error(1,e,"Error showing hard ask:",n),t({state:i,subscriptionDetails:null})})):(at.log(1,e,"Not showing Hard Ask as current permission state is",i),this.getPushTokenDetails().then((n=>{at.customLabel(1,e,"token",n.token),t({state:i,subscriptionDetails:n})})).catch((n=>{at.warn(1,e,"Could not get push token details"),t({state:i,subscriptionDetails:null})}))):(at.log(1,e,"MoEngage web push settings not configured. Please configure at",j),n(U))})).catch((e=>{n(e)}))}))}getCurrentPermissionState(){return null!=this.currentManager?this.currentManager.getCurrentPermissionState():Promise.reject(Zt)}getPushTokenDetails(){return null!=this.currentManager?this.currentManager.getPushTokenDetails():Promise.reject(Zt)}removeToken(){return null!=this.currentManager?this.currentManager.removeToken():Promise.reject(Zt)}showNotification(e){var t=en.baseLogTag+".showNotification";if(null!=this.currentManager)return this.currentManager.showNotification(e);at.warn(1,t,Zt)}}en.baseLogTag="NotificationManager";class tn{constructor(e){this.mainDivs=[],this.config=e}showSoftAsk(){const e=tn.baseLogTag+".showSoftAsk";return new Promise(((t,n)=>{let i=this.config.optInConfig.loadTime;ut.getInstance().then((n=>{(this.config.optInConfig.type===Tt.TYPE.SELF_HANDLED||n.isSafari()&&this.config.optInConfig.type===Tt.TYPE.ONE_CLICK)&&(i=0),i&&at.log(1,e,"Delay of",i," second(s) requested before opt-in flow"),setTimeout((()=>{!n.isWebPushCompatible()||this.config.optInConfig.type!==Tt.TYPE.TWO_STEP&&this.config.optInConfig.type!==Tt.TYPE.SELF_HANDLED?(xe.set(r.SOFT_ASK_STATUS,jt.NOT_SHOWN),t({showHardAsk:!0,softAskState:jt.NOT_SHOWN})):this.showOptIn((()=>{at.log(1,e,"Soft ask was shown"),xe.set(r.OPT_IN_SHOWN_TIME,Date.now()),xe.set(r.SOFT_ASK_STATUS,jt.SHOWN),Ft.broadcastToWindow({topic:k,name:x.SOFT_ASK_SHOWN}),Ft.deprecatedSdkCallback("soft_ask_shown"),Xt.runCallbacks(x.SOFT_ASK_SHOWN)}),(()=>{Kt.track(u),this.hideOptIn(),at.log(1,e,"Soft ask was allowed"),xe.set(r.SOFT_ASK_STATUS,jt.ALLOWED),t({showHardAsk:!0,softAskState:jt.ALLOWED}),Ft.broadcastToWindow({topic:k,name:x.SOFT_ASK_ALLOWED}),Ft.deprecatedSdkCallback("soft_ask_allowed"),Xt.runCallbacks(x.SOFT_ASK_ALLOWED)}),(()=>{this.hideOptIn(),Kt.track(g),at.log(1,e,"Soft ask was dismissed"),xe.set(r.SOFT_ASK_STATUS,jt.DISMISSED),t({showHardAsk:!1,softAskState:jt.DISMISSED}),Ft.broadcastToWindow({topic:k,name:x.SOFT_ASK_DISMISSED}),Ft.deprecatedSdkCallback("soft_ask_closed"),Xt.runCallbacks(x.SOFT_ASK_DISMISSED)}),(e=>{e=!!e,this.hideOptIn(),t({showHardAsk:e,softAskState:jt.NOT_SHOWN})}))}),1e3*i)}))}))}showOptIn(e,t,n,i){const a=tn.baseLogTag+".showOptIn";if(this.config.optInConfig.type===Tt.TYPE.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"),ut.getInstance().then((o=>{let s=null;if(s=(o.isMobile?this.config.optInConfig.softAskConfig.mobile:this.config.optInConfig.softAskConfig.desktop).customHTML,null!=s){r.innerHTML=s;const o=document.body.firstChild;o.parentNode.insertBefore(r,o),this.moeDiv=r;const l=document.getElementById("optInText")||document.getElementById("optInTextConventional"),c=document.getElementById("moe-dontallow_button");null==l?(at.error(1,a,"Error showing soft ask. Allow button id is missing"),i()):(e(),Kt.track(d),l.onclick=()=>{t()},c?c.onclick=()=>{n()}:window.moeRemoveBanner=()=>{n()})}else at.error(1,a,"Error displaying soft ask"),i()}))}else if(this.config.optInConfig.type===Tt.TYPE.SELF_HANDLED){var r=Ne.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)at.error(1,a,"Could not find main class for the soft ask. Class name given:",r.customSoftAsk.mainClass),ut.getInstance().then((e=>{e.isWebPushCompatible()&&(at.warn(1,a,"Proceeding to hard ask directly"),i(!0))}));else{e(),s.length<1&&(at.warn(1,a,"Could not find any element for allow button. Class name given:",r.customSoftAsk.allowClass),at.warn(1,a,"Docs for self-handled opt in available here - ",V.SELF_HANDLED_DOCS)),l.length<1&&at.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"}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 ut.getInstance().then((e=>{e.isWebPushCompatible()?(at.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)):(at.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"}))}}tn.baseLogTag="SoftAskManager",(Ui=jt=jt||{}).SHOWN="shown",Ui.NOT_SHOWN="not shown",Ui.ALLOWED="allowed",Ui.DISMISSED="dismissed";class nn{constructor(e){this.deviceToLogout=Ee(e,"deviceToLogout",null)}static get(){return new nn(xe.get(r.GRACEFUL_DATA))}save(){xe.set(r.GRACEFUL_DATA,this)}}var an=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 rn="MoEngage.user";class on{static addAttribute(e,t){const n=rn+".addUserAttribute";return new Promise(((i,a)=>{let r=!1;if("string"!=typeof e||null==e)at.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)at.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)at.error(1,n,"Attribute value null"),i({error:5003,message:"Attribute value was empty"});else if("string"==typeof t&&""===t)i({error:5004,message:"Attribute value needs to be non-empty string, non-empty array or date object"});else if("object"!=typeof t||Array.isArray(t)||"function"==typeof t.getMonth)if("object"==typeof t&&Array.isArray(t)&&0===t.length)at.error(1,n,"Value cannot be empty, non-string, non-array or non-date object"),i({error:5006,message:"Attribute value needs to be non-empty string, non-empty array or date object"});else if("object"==typeof t&&Array.isArray(t)&&void 0!==t.find((e=>"object"==typeof e&&"function"!=typeof e.getMonth)))at.error(1,n,"Elements of the attribute value-array cannot be non-Date objects"),i({error:5007,message:"Attribute value-array cannot have non-Date objects as its elements"});else{const a=new pt(e,t),o=()=>{mt.get().then((e=>{e.addAttribute(a).then((e=>{e?("id"===a.key&&at.log(1,n,"Logging in the user with id: ",a.value),Ht.createUserAttributeEvent(a).then((e=>{at.log(2,n,"Event to be converted to report:",e),Gt.addEvent(e),zt.collectGetParams().then((t=>{t=new St(St.REPORT_ADD_TYPE.USER_ATTRIBUTE,t,e),zt.reportAdd(t).then((()=>{r&&Wi.onsite.refresh&&Wi.onsite.refresh(),i(!0)}))}))}))):(at.log(1,n,"Attribute already present/queued. Not adding again."),i({error:5005,message:"Attribute already present/queued. Not adding again."}))}))}))};"id"===e?(r=!0,mt.get().then((e=>{var a=e.indexOfAttribute("id");-1{o()})))):(et(!0),o())}))):o()}else at.error(1,n,"Value cannot be empty, non-string, non-array or non-date object"),i({error:5005,message:"Attribute value needs to be non-empty string, non-empty array or date object"})}))}static login(e){return on.addAttribute("id",e)}static logout(e,t){const n=rn+".logout",i=e?{type:"forced",new_uid:t}:null;return function(){const e=nn.get();null!=mt.getSync()&&(e.deviceToLogout=mt.getSync().deviceUuid,e.save())}(),new Promise((e=>{Kt.track(E,i).then((()=>an(this,void 0,void 0,(function*(){at.log(1,n,"Logging out now!"),yield Wt.flushReports(),zt.getWebSDKSettings().then((t=>an(this,void 0,void 0,(function*(){var n;t.isDomainLevelStorage&&ke.remove(r.USER_DATA),Gt.clear(),yield Gi(),yield function(){return Ni(this,void 0,void 0,(function*(){const e="Moengage.disableCards",t=Ne.get();try{zt.getWebSDKSettings().then((e=>Ni(this,void 0,void 0,(function*(){var n;if(null!=e&&e.configs.isCardsModuleEnabled&&null!==(n=t.cards)&&void 0!==n&&n.enable){const e=yield ln.loadModule(ee.CARDS);yield e.logout(),xi=new st}})))).catch((t=>{at.error(1,e,"Error in getting Web SDK Settings. This might indicate that the App is blocked.")}))}catch(t){at.error(1,e,"Error logging out from cards module:",t)}}))}(),et(),xe.logout(),yield mt.logout(),xe.remove(r.GRACEFUL_DATA),zt.onDeviceAdd=new st,yield Xi(),t.configs.remoteLogTracking&&(n=Ne.get(),yield zt.getAndPersistWebSettings(n)),e(!0)})))).catch((t=>{at.error(1,n,"Error in getting Web SDK Settings. This might indicate that the App is blocked."),e(!1)}))}))))}))}static updateUniqueId(e){const t=rn+".updateUniqueId";return new Promise((n=>{mt.get().then((i=>{var a=i.indexOfAttribute(I),r=i.indexOfAttribute("oldUniqueIds");if(!(-1{on.login(e).then((()=>{n(!0)}))}))):(at.warn(1,t,"New id and old id are the same. Not updating the id."),n(!0))}))}))}static getAttributes(){const e=mt.getSync().attributes,t={};return e.map((e=>{t[e.key]=e.value})),t}}class sn{constructor(e,t){this.notificationManager=null,this.softAskManager=null,sn.baseLogTag,this.sdkSettings=e,this.browser=t,this.softAskManager=new tn(this.sdkSettings),this.notificationManager=new en(this.sdkSettings,t)}callWebPush(){const e=sn.baseLogTag+".callWebPush";this.isWebPushEnabled()&&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*(){const n=(n=t)=>{mt.get().then((t=>{let i=!1;var a=t.getAttribute("email"),o=t.getAttribute("mobile");null===a&&null===o||(i=!0),t.deviceAdded=i,t.save().then((()=>{this.notificationManager.removeToken().then((()=>{n===Vt.DENIED?at.log(1,e,"Not asking for permission as current state is denied."):(xe.remove(r.OPT_IN_SHOWN_TIME),this.startPushSubscription())}))}))}))},i=yield ut.getInstance();var a=xe.get(r.PUSH_TOKEN),o=t===Vt.DENIED&&!this.sdkSettings.isDomainLevelStorage;null==a&&t!==Vt.DENIED?this.startPushSubscription():null!=a&&(o||i.isSafari()&&t===Vt.PROMPT)?(at.log(1,e,"User has removed the permission"),at.image(1,G),i.isSafari()&&t===Vt.PROMPT&&(xe.set(ge,!0),t=Vt.DENIED),Kt.track(s,{Source:"Website"}).then((()=>{n(t)}))):o?at.warn(1,e,"Not proceeding with push subscription as current state is denied"):null!=a&&t===Vt.GRANTED?this.browser.name===ut.BROWSER_NAMES.CHROME?Fe(this.sdkSettings.platformSettings,this.browser)?this.startPushSubscription():at.warn(1,e,"Subscription mode is not VAPID type. Cannot subscribe to web push."):(this.startPushSubscription(),this.notificationManager.getPushTokenDetails().then((t=>{at.customLabel(1,e,"token",t.token)}))):this.sdkSettings.isDomainLevelStorage?"granted"===ke.get(r.HARD_ASK_STATUS)?(a=null===(a=ke.get(r.SUBSCRIPTION_DETAILS))||void 0===a?void 0:a.domain)&&a===window.location.origin?(at.log(1,e,"It seems that the user has unsubscribed manually. Starting push subscription.."),Kt.track(s,{Source:"Website"}).then((()=>{n(t)}))):at.log(1,e,"Not showing opt-in as user subscribed to sub-domain"):this.startPushSubscription():n()})))).catch((t=>{at.error(1,e,"Error in getting current state:",t)}))}startPushSubscription(){const e=sn.baseLogTag+".startPushSubscription",t=()=>{xe.set(r.HARD_ASK_STATUS,Vt.PROMPT);const t=xe.get(r.PUSH_TOKEN);this.notificationManager.showHardAsk().then((n=>{xe.set(r.HARD_ASK_STATUS,n.state),n.state===Vt.GRANTED?null!=n.subscriptionDetails.token?(xe.set(r.PUSH_TOKEN,n.subscriptionDetails.token),n.subscriptionDetails.domain=window.location.origin,xe.set(r.SUBSCRIPTION_DETAILS,n.subscriptionDetails),n.subscriptionDetails.token&&t!==n.subscriptionDetails.token&&zt.deviceAdd().then((()=>{at.image(1,"https://media.giphy.com/media/90F8aUepslB84/giphy.gif"),mt.getSync().subscribedToOldSdk?at.remoteLogTracking(1,"info",e,"User subscribed from older sdk, hence not sending subscription event"):(null!=t?on.addAttribute("Web Migrated User","true"):(on.addAttribute("Web Push Preference","granted"),on.addAttribute("Web Subscription URL",location.href)),Ze(),Kt.track(p,{MOE_WEB_PUSH_TOKEN:n.subscriptionDetails.token,migrated_user:!!Ze()||void 0}))})),this.sdkSettings.isDomainLevelStorage&&(ke.set(r.SUBSCRIPTION_DETAILS,{domain:n.subscriptionDetails.domain,token:n.subscriptionDetails.token,endpoint:n.subscriptionDetails.endpoint,keys:n.subscriptionDetails.keys}),ke.set(r.PUSH_TOKEN,n.subscriptionDetails.token))):(at.error(1,e,"Push token was received as null."),at.error(1,e,"Please contact MoEngage support if this troubleshooting does not solve the issue.")):n.state===Vt.DENIED&&at.image(1,G)})).catch((t=>{at.warn(1,e,t)}))},n=()=>{this.softAskManager?this.softAskManager.showSoftAsk().then((e=>{e.showHardAsk&&t()})):at.log(1,e,"SoftAskManager not set.")};this.notificationManager.getCurrentPermissionState().then((i=>{if(i===Vt.GRANTED)this.sdkSettings.optInConfig.type!==Tt.TYPE.ONE_CLICK&&at.remoteLogTracking(1,"info",e,"Skipping soft ask as browser permission is set to allow all notifications"),t();else{var a=parseInt(xe.get(r.OPT_IN_SHOWN_TIME));if(xe.get(r.SOFT_ASK_STATUS),xe.get(r.HARD_ASK_STATUS),i=(Date.now()-a)/36e5,!a||i>this.sdkSettings.optInConfig.reappearTime)if(this.browser.name===ut.BROWSER_NAMES.SAFARI&&this.sdkSettings.optInConfig.type===Tt.TYPE.ONE_CLICK){at.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)"),at.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.optInConfig.reappearTime,"hours."),at.log(1,e,"You can clear localstorage to get opt-in again.")}}}))}isWebPushEnabled(){return!this.browser.isIncognito&&0<=sn.SUPPORTED_BROWSERS.indexOf(this.browser.name)&&navigator.serviceWorker&&"PushManager"in window}getPermissionState(){return this.notificationManager.getCurrentPermissionState()}showNotification(e){this.notificationManager&&this.notificationManager.showNotification(e)}}sn.baseLogTag="WebPushManager",sn.SUPPORTED_BROWSERS=[ut.BROWSER_NAMES.CHROME,ut.BROWSER_NAMES.FIREFOX,ut.BROWSER_NAMES.OPERA,ut.BROWSER_NAMES.SAFARI,ut.BROWSER_NAMES.EDGE];class ln{static loadModule(e){var t=ln.baseLogTag+".loadModule";return null!=ln.loadPromises[e.name]||(at.log(1,t,"Starting to fetch module: ",e.name),ln.loadPromises[e.name]=new Promise(((t,n)=>{ln.addScript(e.src,(()=>{var n=new(0,window[ee[e.name].windowLocation])(n=Ne.get());t(n)}))}))),ln.loadPromises[e.name]}static addScript(e,t){const n=document.createElement("script");n.setAttribute("src",e),n.onload=t,n.async=!0,document.body.appendChild(n)}}ln.baseLogTag="ModuleManager",ln.loadPromises={};var cn=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 dn{static initialize(){return cn(this,void 0,void 0,(function*(){var e;return null==dn.ready&&(dn.serviceMetaStore=Se.createInstance({driver:[Se.INDEXEDDB,Se.WEBSQL,Se.LOCALSTORAGE],name:Z.DATABASE_NAME,storeName:Z.STORES.SERVICE_META.NAME}),dn.campaingsMetaStore=Se.createInstance({driver:[Se.INDEXEDDB,Se.WEBSQL,Se.LOCALSTORAGE],name:Z.DATABASE_NAME,storeName:Z.STORES.CAMPAIGNS_META.NAME}),dn.pendingSecondaryEvents=Se.createInstance({driver:[Se.INDEXEDDB,Se.WEBSQL,Se.LOCALSTORAGE],name:Z.DATABASE_NAME,storeName:Z.STORES.PENDING_SECONDARY_EVENTS.NAME}),dn.pendingTimerCampaigns=Se.createInstance({driver:[Se.INDEXEDDB,Se.WEBSQL,Se.LOCALSTORAGE],name:Z.DATABASE_NAME,storeName:Z.STORES.PENDING_TIMER_CAMPAIGNS.NAME}),dn.triggeringPrimaryEvents=Se.createInstance({driver:[Se.INDEXEDDB,Se.WEBSQL,Se.LOCALSTORAGE],name:Z.DATABASE_NAME,storeName:Z.STORES.TRIGGERING_PRIMARY_EVENTS.NAME}),dn.campaingsTagsStore=Se.createInstance({driver:[Se.INDEXEDDB,Se.WEBSQL,Se.LOCALSTORAGE],name:Z.DATABASE_NAME,storeName:Z.STORES.CAMPAIGNS_TAGS.NAME}),dn.campaingsStatsStore=Se.createInstance({driver:[Se.INDEXEDDB,Se.WEBSQL,Se.LOCALSTORAGE],name:Z.DATABASE_NAME,storeName:Z.STORES.CAMPAIGNS_STATS.NAME}),dn.testCampaignStore=Se.createInstance({driver:[Se.INDEXEDDB,Se.WEBSQL,Se.LOCALSTORAGE],name:Z.DATABASE_NAME,storeName:Z.STORES.CAMPAIGNS_STATS.NAME}),dn.exitIntentCampaignStore=Se.createInstance({driver:[Se.INDEXEDDB,Se.WEBSQL,Se.LOCALSTORAGE],name:Z.DATABASE_NAME,storeName:Z.STORES.EXIT_INTENT_CAMPAIGN_STORE.NAME}),e=[dn.serviceMetaStore.ready(),dn.campaingsMetaStore.ready(),dn.pendingSecondaryEvents.ready(),dn.pendingTimerCampaigns.ready(),dn.triggeringPrimaryEvents.ready(),dn.campaingsTagsStore.ready(),dn.campaingsStatsStore.ready(),dn.testCampaignStore.ready(),dn.exitIntentCampaignStore.ready()],dn.ready=Promise.all(e)),dn.ready}))}static clear(){return cn(this,void 0,void 0,(function*(){var e=dn.baseLogTag+".clear";try{yield dn.initialize(),yield Promise.all([dn.serviceMetaStore.clear(),dn.campaingsMetaStore.clear(),dn.campaingsTagsStore.clear(),dn.campaingsStatsStore.clear(),dn.testCampaignStore.clear(),dn.exitIntentCampaignStore.clear(),dn.pendingSecondaryEvents.clear(),dn.pendingTimerCampaigns.clear(),dn.triggeringPrimaryEvents.clear()]);var t=[dn.serviceMetaStore.ready(),dn.campaingsMetaStore.ready(),dn.campaingsTagsStore.ready(),dn.campaingsStatsStore.ready(),dn.testCampaignStore.ready(),dn.exitIntentCampaignStore.ready(),dn.pendingSecondaryEvents.clear(),dn.pendingTimerCampaigns.clear(),dn.triggeringPrimaryEvents.clear()];dn.ready=Promise.all(t)}catch(t){at.error(1,e,"Error clearing onsite stores:",t)}return dn.ready}))}}dn.baseLogTag="MOE_ONSITE_STORES";var gn,un,pn,hn,mn,fn=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 vn=(e,t,n)=>null==e.campaignId?()=>{}:()=>(dn.campaingsStatsStore.getItem(e.campaignId).then((t=>{t=null!=t?Object.assign(Object.assign({},t),{clicks:Ee(t,"clicks",0)+1}):{clicks:1},dn.campaingsStatsStore.setItem(e.campaignId,t)})),null==n&&(n={}),bn().track_event(Z.EVENT_NAMES[t].CLICK,Object.assign(Object.assign({campaign_id:e.campaignId,campaign_name:e.campaignName,type:Z.EVENT_NAMES[t].TYPE},n),e.campaignContext))),Sn=(e,t,n=!1)=>null==e.campaignId?()=>{}:()=>{if(dn.initialize().then((()=>{dn.campaingsStatsStore.getItem(e.campaignId).then((t=>{t=null!=t?Object.assign(Object.assign({},t),{impressions:Ee(t,"impressions",0)+1,lastImpression:new Date}):{impressions:1,lastImpression:new Date},dn.campaingsStatsStore.setItem(e.campaignId,t)}))})),!n)return bn().track_event(Z.EVENT_NAMES[t].IMPRESSION,Object.assign({campaign_id:e.campaignId,campaign_name:e.campaignName,type:Z.EVENT_NAMES[t].TYPE,templateType:e.templateType},e.campaignContext))},En=(e,t,n)=>{n=n?Z.EVENT_NAMES[t].AUTO_DISMIS:Z.EVENT_NAMES[t].DISMISS,bn().track_event(n,Object.assign({campaign_id:e.campaignId,campaign_name:e.campaignName,type:Z.EVENT_NAMES[t].TYPE},e.campaignContext))},yn=(e,t)=>{bn().track_event(Z.EVENT_NAMES[t].DELIVERED,Object.assign({campaign_id:e.campaignId,campaign_name:e.campaignName,type:Z.EVENT_NAMES[t].TYPE},e.campaignContext))},bn=()=>{var e=window.moengage_object||"Moengage";return window[e]};class _n{static isValid(e,t){return!_n.isCampaignExpired(e)&&_n.isCampaignActive(e)&&_n.isUserInCampaignSegment(e)&&_n.isCampaignWithinFC(e,t)}static isCampaignExpired(e){return(new Date).getTime()>new Date(e.expiryTime).getTime()}static isValidMessagingCampaign(e,t,n,i,a){return _n.canCampaignBeRenderedOverExisting(e,a.length)&&_n.hasCampaignClearedSelfDelay(e,t)&&_n.hasCampaignClearedGlobalDelay(e,n,i)}static isCampaignActive(e){var t=_n.baseLogTag+".isValid";return e.status===pn.ACTIVE||(at.warn(1,t,`Campaign ${e.campaignId} : Status is `+e.status),!1)}static isUserInCampaignSegment(e){var t=_n.baseLogTag+".isValid";return!!e.userInSegment||(at.warn(1,t,`Campaign ${e.campaignId} : User is not in segment`),!1)}static isCampaignWithinFC(e,t){var n=_n.baseLogTag+".isValid";if([mn.SELF_HANDLED].indexOf(e.templateType)<0){var i=Ee(e,"delivery.fc_meta.count",0);if(0e.delivery.priority||!(t.delivery.prioritye.updatedTime?1:-1}}_n.baseLogTag="CampaignUtils";const Tn=e=>fn(void 0,void 0,void 0,(function*(){var t=e.map((e=>dn.campaingsStatsStore.getItem(e.campaignId)));let n;try{n=yield Promise.all(t);const i=e.filter(((e,t)=>_n.isValid(e,n[t])));return i.sort(_n.comparator)}catch(t){return at.error(1,"filterAndSortCampaigns","Error filtering and sorting campaigns: ",t),[]}}));class In{}In.REMOVE_TRAIL_CHARS=/[^\w\s]+$/gi;const An=(e,t)=>{const n=Ee(e,"triggerData.primary_condition.included_filters",null);return(null==n?void 0:n.filter_operator)===hn.OR&&-1<(null==n?void 0:n.filters.findIndex((e=>e.action_name===t)))},wn=e=>fn(void 0,void 0,void 0,(function*(){var t=yield dn.exitIntentCampaignStore.getItem(e.campaignId);return e.onsitePayload=t,at.log(1,"getPrefetchedCampaign","Prefetched exit intent campaign found: "+e.campaignId),e})),Dn=e=>fn(void 0,void 0,void 0,(function*(){try{return yield dn.campaingsMetaStore.getItem(e)}catch(e){return at.error(2,"getCampaignById","Error getting campaign from store: ",e),null}})),Cn=()=>new Promise((e=>{setTimeout((()=>fn(void 0,void 0,void 0,(function*(){const t=[];yield dn.campaingsMetaStore.iterate((e=>{t.push(e)})),e(t)}))),0)})),On=e=>null===(e=Ee(e,"triggerData.secondary_condition.included_filters.filters"))||void 0===e?void 0:e.length,Pn=e=>"moe-onsite-campaign-"+e;class Rn{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===gn.STRING&&typeof n===gn.STRING&&(n=this.removeSpecialChars(n),i=this.removeSpecialChars(i)),t.key===this.filter.name&&(this.dataType!==gn.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(In.REMOVE_TRAIL_CHARS,"")}}(Ui=gn=gn||{}).BOOL="bool",Ui.STRING="string",Ui.DATE="datetime",Ui.NUMBER="double",Ui.LONG="long",Ui.ARRAY_BOOL="array_bool",Ui.ARRAY_NUMBER="array_double",Ui.ARRAY_STRING="array_string",Ui.ARRAY_DATETIME="array_datetime",(Ui=un=un||{}).ALLOF="all_of",Ui.ANYOFF="any_of";const Ln=["is","exists","contains","startsWith","endsWith","in"];class Nn extends Rn{constructor(e,t){super(gn.STRING,Ln,e,t)}evaluate(){Nn.baseLogTag;let e=!1;var t=this.event.attributes.filter((e=>e.key===this.filter.name)),n=0e.substr(0,t.length)===t;return this.filter.case_sensitive?t(e.value,this.filter.value):t(e.value.toLowerCase(),this.filter.value.toLowerCase())}checkEndsWith(e){var t=(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 t(e.value,this.filter.value);const n=this.removeSpecialChars(e.value),i=this.removeSpecialChars(this.filter.value);return t(n.toLowerCase(),i.toLowerCase())}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}}Nn.baseLogTag="StringDataType";const kn=["is","exists"];class Mn extends Rn{constructor(e,t){super(gn.BOOL,kn,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}}Mn.baseLogTag="BooleanDataType";const xn=["is","exists","greaterThan","lessThan","between","in"];class Bn extends Rn{constructor(e,t){super(gn.NUMBER,xn,e,t)}evaluate(){Bn.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===un.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 pt(e,t),new Ht(this.event.name,[t])}getDataType(e){let t;switch(this.filter.data_type){case gn.ARRAY_BOOL:t=new Mn(e,this.filter);break;case gn.ARRAY_DATETIME:t=new Un(e,this.filter);break;case gn.ARRAY_NUMBER:t=new Bn(e,this.filter);break;case gn.ARRAY_STRING:t=new Nn(e,this.filter)}return t}}class Gn{static doesEventMatchFilters(e,t){Gn.baseLogTag;let n=!1,i=null;switch(t.data_type){case gn.BOOL:i=new Mn(e,t),i.validate()&&(n=i.evaluate());break;case gn.STRING:i=new Nn(e,t),i.validate()&&(n=i.evaluate());break;case gn.NUMBER:case gn.LONG:i=new Bn(e,t),i.validate()&&(n=i.evaluate());break;case gn.DATE:i=new Un(e,t),i.validate()&&(n=i.evaluate());break;case gn.ARRAY_STRING:case gn.ARRAY_DATETIME:case gn.ARRAY_BOOL:case gn.ARRAY_NUMBER:i=new Hn(e,t),i.validate()&&(n=i.evaluate())}return n}static doesValueMatchFilter(e,t){return e=new pt(t.name,e),e=new Ht("sample event",[e]),Gn.doesEventMatchFilters(e,t)}}Gn.baseLogTag="TriggerEvaluator";class Kn{constructor(e){var t=Kn.baseLogTag+".constructor";this.campaignId=Ee(e,"campaign_id",null),this.campaignName=Ee(e,"campaign_name",null),this.templateType=Ee(e,"template_type",null),this.campaignContext=Ee(e,"campaign_context",null);var n=Ee(e,"status",null);const i=[pn.ACTIVE,pn.EXPIRED,pn.PAUSED];i.indexOf(n)<0?this.status=pn.ACTIVE:this.status=i[i.indexOf(n)],this.tag=Ee(e,"tag",null),this.triggerData=null,Vn.validate(Ee(e,"trigger"))?this.triggerData=new Vn(Ee(e,"trigger")):at.log(2,t,"Rejecting trigger data for :",e),this.expiryTime=Ye(Ee(e,"expiry_time")+"Z"),this.updatedTime=Ye(Ee(e,"updated_time")+"Z"),this.delivery=new Jn(Ee(e,"delivery")),this.userInSegment=Ee(e,"user_in_segment",!0),n=Ee(e,"display",this.display=null),t=Ee(e,"display_filter",null),this.templateType!==mn.SELF_HANDLED&&(null!=t?this.display=new Zn({rules:{uri_filters:t}},this.templateType):null!=n&&(this.display=new Zn(n,this.templateType))),this.stats={},this.onsitePayload=null,this.editorVersion=Ee(e,"editor_version",null)}static isValidMetaJSON(e){Kn.baseLogTag;let t=!0;var n=["campaign_id","campaign_name","template_type","status","expiry_time","updated_time","delivery","user_in_segment"];for(let i=0;it.action_name===e||t.action_name===b&&"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)||hn.AND}static isTriggered(e,t,n,i){let a=!0;if(0<(null==t?void 0:t.length)){let o;o=i||Kn.getFilterOperator(n);var r=t.map((t=>Gn.doesEventMatchFilters(e,t)));a=r[0]||!1;for(let e=1;ee.action_name===T));return e=Kn.getFilters(i),Kn.isTriggered(t,e,i)}return!0}}Kn.baseLogTag="OnsiteCampaignMeta";class Vn{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,Yn.validate(e.primary_condition)?this.primary_condition=new Yn(e.primary_condition):this.primary_condition=null,Yn.validate(e.secondary_condition)?this.secondary_condition=new Yn(e.secondary_condition):this.secondary_condition=null,Yn.validate(e.url_condition)?this.url_condition=new Yn(e.url_condition):this.url_condition=null,this.description=e.description,null!=e.trigger_delay?this.trigger_delay=new jn(e.trigger_delay):this.trigger_delay=null}static validate(e){let t=!1;return["primary_condition"].forEach((n=>{null!=Ee(e,n,null)&&(t=!0)})),t}}class jn{constructor(e){if(this.delay=Ee(e,"delay",0),this.unit=Ee(e,"unit","seconds"),this.delay_type=Ee(e,"delay_type",""),this.attribute=Ee(e,"attribute",""),Ee(e,"delay",null)&&Ee(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 Yn{constructor(e){this.included_filters=new zn(Ee(e,"included_filters",null)),this.excluded_filters=new zn(Ee(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 zn{constructor(e){this.filter_operator=Ee(e,"filter_operator",hn.AND),this.filters=null===(e=Ee(e,"filters",[]))||void 0===e?void 0:e.map((e=>new qn(e)))}}class qn{constructor(e){var t=Ee(e,"action_name",null);"string"==typeof t&&(this.action_name=t),"boolean"==typeof(t=Ee(e,"executed",null))&&(this.executed=t),this.filter_type=Ee(e,"filter_type",null),t=Ee(e,"attributes",null),$n.validateJson(t)&&(this.attributes=new $n(t)),"nested_filters"===this.filter_type&&(this.filters=new zn(e))}}class $n{constructor(e){this.filters=[],this.filterOperator=Ee(e,"filter_operator",hn.AND),this.filters=Ee(e,"filters",[])}static validateJson(e){if(null==e)return!1;var t=["filters"];for(let n=0;n{var a={id:(0,ct.v4)(),channel:this.channel,topic:e,message:t};this.addToListener(a,n,i),this.target instanceof HTMLIFrameElement?this.target.contentWindow.postMessage(a,this.target.src):this.target.postMessage(a,"*")}))}static listenToChannel(e,t,n){window.addEventListener("message",(i=>{i.data&&i.data.channel&&i.data.topic&&i.data.channel===e&&i.data.topic===t&&n(i.data,(n=>{n={id:i.data.id,channel:e,topic:t,message:n},i.source.postMessage(n,i.origin)}))}))}addToListener(e,t,n){ei.pendingPromises[e.id]={resolve:t,reject:n},window.addEventListener("message",(e=>{e.data&&Ee(e.data,"channel",null)===this.channel&&null!=ei.pendingPromises[e.data.id]&&(ei.pendingPromises[e.data.id].resolve(e.data),delete ei.pendingPromises[e.data.id])}))}}ei.pendingPromises={};class ti{constructor(e){this.draftId=Ee(e,"draft_id",null),this.draftType=Ee(e,"draft_type",null),this.templateType=Ee(e,"template_type",null),this.action=Ee(e,"action",null);var t=Ee(e,"campaign_meta",{});this.locale=Ee(e,"locale",null),this.variation=Ee(e,"variation",null),this.displaySettings=new Zn({config:t.config},this.templateType)}static isValidRawJson(e){var{draft_id:t,draft_tag:n,draft_type:e}=e;return e===Z.DRAFT_CAMPAIGN_TPYES.WEB_PERSONALIZATON?null!=t&&null!=n:null!=t}}class ni{getIframe(){return null==this.iFramePromise&&(this.iFramePromise=new Promise((e=>{const t=document.createElement("iframe");t.id="moengage-web-helper-frame",t.style.display="none",t.src=Z.WEB_HELPER_IFRAME_URL,document.body.appendChild(t),t.addEventListener("load",(()=>{this.helper=new ei(Z.IFRAME_CHANNEL,t),e(t)}))}))),this.iFramePromise}getDraftCampaignInfo(){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 e="IframeHelper.getDraftCampaignInfo";try{at.log(1,e,"Loading helper frame"),yield this.getIframe(),at.log(1,e,"Helper frame loaded");var t=yield this.helper.sendMessage(Z.IFRAME_TOPICS.COOKIE_STORAGE,{TYPE:"GET",KEY:Z.COOKIE_STORAGE.TEST_DRAFT_ID});at.log(1,e,"Data from iframe: ",t);var n=t.message;at.log(1,e,"Raw test campaign",n);let i=null;return null!=n&&(ti.isValidRawJson(n)?i=new ti(n):at.error(1,e,"Data is not a valid test campaign")),i}catch(e){return null}}))}}class ii{constructor(e){this.templateType=Ee(e,"template_type",null),this.payloadType=Ee(e,"payload_type",null),this.payload=Ee(e,"payload",null),this.position=Ee(e,"position",null),this.campaignContext=Ee(e,"campaign_context",null),this.editorVersion=Ee(e,"editor_version",null),this.htmlJsonPayload=JSON.parse(Ee(e,"html_json_payload",null)),this.updatedTime=Ye(Ee(e,"updated_time")+"Z")}}var ai=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 ri{constructor(e){this.appId=e.appId,this.store=Se.createInstance({driver:[Se.INDEXEDDB,Se.WEBSQL,Se.LOCALSTORAGE],name:Z.DATABASE_NAME,storeName:Z.STORES.SERVICE_META.NAME}),this.host=e.baseDomainName}getUserSessionAttributes(){var e=function(){const e=new Date;return{day:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"][e.getDay()],hours:String(e.getHours()).padStart(2,"0")}}();const t=new dt;var n=Qe(window.location.search);return Object.assign(Object.assign({},n),{USER_TYPE:1{Kn.isValidMetaJSON(e)&&a.push(new Kn(e))})),{campaignsMeta:a,globalDelayBetweenInapps:Ee(i,"min_delay_btw_inapps",0)}}catch(t){throw at.error(1,e,"Error getting meta for inapp: ",t),new Error("Could not get meta payload")}}))}getCampaignPayload(e,t){return ai(this,void 0,void 0,(function*(){var n=ri.baseLogTag+".getCampaignPayload";let i;try{if(t){const n={};for(let e=0;e{n.push(new ii(e))})),n}catch(i){throw at.error(1,n,"Error geting payload",i),new Error("Could not get payload for "+e)}}))}getDraftCampaign(e){return ai(this,void 0,void 0,(function*(){var t=ri.baseLogTag+".getDraftCampaign";try{const t=yield this.getRequestOptions();t.queryParams=Object.assign({},t.queryParams,{locale:e.locale,variation:e.variation});var n=yield ot.get(this.host+Z.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 ii(i)}catch(n){return at.error(1,t,"Error geting test campaign payload",n),null}}))}getRequestOptions(e){const t=ze();return zt.getWebSDKSettings().then((n=>{var i=xe.get(r.USER_DATA);let a;const{deviceUuid:o,attributes:s}=i;if(s.map((e=>{e.key===I&&(a=e.value)})),!o)throw new Error("device_unique_id not found in localStorage.");var l=Ke()?"mweb":"web";return i=je(),{headers:{"Content-Type":"application/json","MOE-APPKEY":this.appId},queryParams:Object.assign({sdk_ver:t.getSdkVersion(),unique_id:o,uid:n.configs.shouldSendUID?a:void 0,os:l},i),postData:e||{}}})).catch((e=>{throw new Error("Error in getting Web SDK Settings. This might indicate that the App is blocked.")}))}sendDeliveryFunnelStats(e,t){return ai(this,void 0,void 0,(function*(){const n=ri.baseLogTag+".sendDeliveryFunnelStats";try{var i=yield this.getRequestOptions(null);return ot.post(this.host+Z.API.STATS,Object.assign(Object.assign({},i),{headers:Object.assign(Object.assign({},i.headers),{"MOE-INAPP-BATCH-ID":t}),postData:e})).then((()=>{at.log(1,n,"Delivery Funnel stats sent to Moengage: ",e)})).catch((e=>{at.warn(1,n,"Error sending campaign stats: ",e)}))}catch(i){at.warn(1,n,"Error sending campaign stats: ",i)}}))}}ri.baseLogTag="OnsiteApi";class oi{constructor(){this.isExitIntentShown=!1,this.isPopStateEventBound=!1}onScroll(e){const t=oi.baseLogTag+".onScroll";null==e&&(e=()=>{});var n=oi.throttle((()=>{at.remoteLogTracking(1,"info",t,"Scrolled percent:",oi.getScrollPercent()),e(oi.getScrollPercent())}),Z.SCROLL_CAMPAIGN_THROTTLING_TIME);return e(oi.getScrollPercent()),window.addEventListener("scroll",n),n}onMobileTabChange(e){const t=oi.baseLogTag+".onMobileTabChange";document.addEventListener("visibilitychange",(()=>{this.isExitIntentShown||"hidden"!==document.visibilityState||(at.log(1,t,"TRIGGERED: MOBILE EXIT INTENT"),e(),this.isExitIntentShown=!0)}))}onMobileBackHit(e){const t=oi.baseLogTag+".onMobileBackHit";setTimeout((()=>{this.isPopStateEventBound=!0,window.addEventListener("popstate",(n=>{!this.isExitIntentShown&&n.state&&"exit_intent"===n.state.moeIntent&&(at.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=oi.baseLogTag+".onMobileScrollAndExit",n=document.documentElement.offsetHeight;let i,a=oi.getScrollY();0{let r=a-oi.getScrollY();r<0&&(r=0,a=oi.getScrollY()),i=oi.getScrollPercent()>Z.EXIT_INTENT.CONFIG.SCROLL_DOWN_THRESHOLD,i&&r/n>Z.EXIT_INTENT.CONFIG.SCROLL_UP_THRESHOLD/100&&(clearInterval(this.scrollExitIntentInterval),this.scrollExitIntentInterval=null,this.isExitIntentShown||(at.log(1,t,"TRIGGERED: MOBILE EXIT INTENT"),e(),this.isExitIntentShown=!0))}),Z.EXIT_INTENT.CONFIG.SCROLL_INTERVAL))}mobileExitIntent(e){this.onMobileScrollAndExit(e),this.onMobileBackHit(e),this.onMobileTabChange(e)}onExit(e){const t=oi.baseLogTag+".onExit";Ke()?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)&&(at.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*oi.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)}}}oi.baseLogTag="WindowEventManager";var si=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 li{static getPendingSecondaryEventCampaign(e){return si(this,void 0,void 0,(function*(){return yield dn.pendingSecondaryEvents.getItem(e)}))}static setPendingSecondaryEventCampaign(e,t){return si(this,void 0,void 0,(function*(){yield dn.pendingSecondaryEvents.setItem(e,t)}))}static removePendingSecondaryEventCampaign(e){return si(this,void 0,void 0,(function*(){yield dn.pendingSecondaryEvents.removeItem(e)}))}static getPendingSecondaryEventKeys(){return si(this,void 0,void 0,(function*(){return yield dn.pendingSecondaryEvents.keys()}))}static getPendingTimerCampaign(e){return si(this,void 0,void 0,(function*(){return yield dn.pendingTimerCampaigns.getItem(e)}))}static setPendingTimerCampaign(e,t){return si(this,void 0,void 0,(function*(){yield dn.pendingTimerCampaigns.setItem(e,t)}))}static removePendingTimerCampaign(e){return si(this,void 0,void 0,(function*(){yield dn.pendingTimerCampaigns.removeItem(e)}))}static getPendingTimerKeys(){return si(this,void 0,void 0,(function*(){return yield dn.pendingTimerCampaigns.keys()}))}static getTriggeringPrimaryEvent(e){return si(this,void 0,void 0,(function*(){return yield dn.triggeringPrimaryEvents.getItem(e)}))}static setTriggeringPrimaryEvent(e,t){return si(this,void 0,void 0,(function*(){yield dn.triggeringPrimaryEvents.setItem(e,t)}))}static removeTriggeringPrimaryEvent(e){return si(this,void 0,void 0,(function*(){yield dn.triggeringPrimaryEvents.removeItem(e)}))}static getTriggeringPrimaryEventKeys(){return si(this,void 0,void 0,(function*(){return yield dn.triggeringPrimaryEvents.keys()}))}static removeCampaignFromStores(e){return si(this,void 0,void 0,(function*(){yield li.removePendingSecondaryEventCampaign(e),yield li.removePendingTimerCampaign(e)}))}}var ci=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 di{static setListener(e){this.listener=e}static destroy(){this.listener=null,this.deliveryStats=null}static setDeliveryStats(e){this.deliveryStats=e}static createNewTimers(){return ci(this,void 0,void 0,(function*(){var e=this.baseLogTag+".createNewTimers",t=yield li.getPendingTimerKeys();for(let a=0;aci(this,void 0,void 0,(function*(){yield this.checkAndInvokeListener(e),yield li.removeCampaignFromStores(e)}))),t);n={startTime:Date.now(),timerId:n,timer:t},yield li.setPendingTimerCampaign(e,n)}))}static checkAndInvokeListener(e){return ci(this,void 0,void 0,(function*(){var t=this.baseLogTag+".checkAndInvokeListener",n=yield Dn(e);null!=n&&n.campaignId&&((yield this.isSatisfyingEventsArray(e))?Kn.getURLFilterResult(n)&&(at.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))):(at.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,Z.DELIVERY_FUNNEL.ATTEMPTED.CAMPAIGN_ATTEMPTED),this.deliveryStats.setStats(n,Z.DELIVERY_FUNNEL.EVALUATION.CAMPAIGN_EVALUATION_PATH_TIME_EXPIRED),this.deliveryStats.sendDeliveryStats([n])))}))}static checkIfPendingAction(e,t){return t===hn.AND&&!e.events.some((e=>1===e.filters.length&&!e.filters[0].executed))}static isSatisfyingEventsArray(e){return ci(this,void 0,void 0,(function*(){var t=yield li.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 Dn(a))&&r.campaignId&&(at.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){for(let n=0;n{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===hn.AND?hn.OR:hn.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 gi(this,void 0,void 0,(function*(){var e=this.baseLogTag+".pruneRemovedCampaigns";const t=(yield Cn()).map((e=>e.campaignId));var n=yield li.getPendingSecondaryEventKeys();for(let a=0;ae.toBeRemoved)))||(at.log(1,n,`Campaign: ${s}, triggered by event: ${e.name}, is eligible for further processing`),i.push(s))):d===hn.AND&&(o.toBeRemoved=!0,r.filters.every((e=>e.toBeRemoved))&&(r.toBeRemoved=!0,(c===hn.OR||c===hn.AND&&h.events.every((e=>e.toBeRemoved)))&&(at.log(1,n,`Campaign: ${s}, triggered by event: ${e.name}, is eligible for further processing`),i.push(s)))):d===hn.OR?(o.toBeRemoved=!0,r.filters.every((e=>e.toBeRemoved))&&(c===hn.AND||c===hn.OR&&1===h.events.length?(at.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)):d===hn.AND&&(r.toBeRemoved=!0,1===h.events.length&&h.events[0].toBeRemoved&&c===hn.OR&&(at.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,h))}}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 li.setPendingSecondaryEventCampaign(e,t)}))}static clearCampaignsData(e){return gi(this,void 0,void 0,(function*(){for(let t=0;tgi(this,void 0,void 0,(function*(){n.includes(t)||(at.warn(1,e,`Campaign: ${t} does not exist in pendingSecondaryEvents store but exists in triggeringPrimaryEvents store. Removing it from triggeringPrimaryEvents store`),yield li.removeTriggeringPrimaryEvent(t))}))))}))}}ui.baseLogTag="SecondaryEventsManager",ui.deliveryStats=null;var pi=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 hi{constructor(e){this.primaryEventsHash={},this.secondaryEventsHash={},this.messagingCampaigns=[],this.scrollCampaigns=[],this.scrollCampaignTriggered=!1,this.exitIntentCampaigns=[],this.exitCampaignTriggered=!1,this.listener=null,this.historyManager=window[Q],this.onEvent=e=>pi(this,void 0,void 0,(function*(){var t=hi.baseLogTag+".onEvent";try{null!=this.primaryEventsHash[e.name]&&(yield this.handlePrimaryEvent(e)),null!=this.secondaryEventsHash[e.name]&&(yield this.handleSecondaryEvent(e))}catch(e){at.error(1,t,"Error occurred during check event trigger campaigns: ",e)}})),this.onScroll=e=>pi(this,void 0,void 0,(function*(){const t=hi.baseLogTag+".onScroll";try{if(this.scrollCampaigns&&0pi(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 pt(a.name,a.value),i=yield Ht.createEvent(_,[i]),Kn.getFilterResult(i,n)&&e>a.value&&!this.scrollCampaignTriggered&&(this.scrollCampaignTriggered=!0,window.removeEventListener("scroll",this.scrollListenerCallback),at.log(1,t,"Triggered Scroll campaign"),this.trigger([n],i)))}))))}}catch(n){at.error(1,t,"Error occurred in triggering scroll campaigns ",n)}})),this.onExit=e=>pi(this,void 0,void 0,(function*(){var t=hi.baseLogTag+".onExit";try{if(0Kn.getFilterResult(i,e)));n.length?(at.log(1,t,"Triggered Exit Intent campaign: ",n),this.trigger(n,i)):("onBackClick"===e&&window.history.back(),at.log(1,t,"No Exit Intent campaign is eligible."))}}catch(n){at.error(1,t,"Error occurred in triggering exit intent campaigns ",n)}})),this.messagingCampaigns=e,this.windowEventManager=new oi}onTrigger(e){this.listener=e}handlePrimaryEvent(e){return pi(this,void 0,void 0,(function*(){var t=hi.baseLogTag+".handlePrimaryEvent",n=this.primaryEventsHash[e.name];const i=[],a=[];for(let e=0;eKn.didPrimaryEventFilterTrigger(e,t)));o.length&&(yield ui.createPendingSecondaryEvents(o,e)),o=a.filter((t=>Kn.getFilterResult(e,t))),o.length&&(at.log(1,t,`Campaigns triggered for event ${e.name}: `+o.length),this.trigger(o,e))}))}handleSecondaryEvent(e){return pi(this,void 0,void 0,(function*(){var t=hi.baseLogTag+".handleSecondaryEvent",n=yield ui.updatePendingSecondaryEventsHistory(e,this.secondaryEventsHash[e.name]);let i=[];for(let e=0;eKn.getURLFilterResult(e))),i.length&&(at.log(1,t,`Campaigns triggered by secondary event "${e.name}": `+i.length),this.trigger(i))}))}getCampaignsFromHash(e){return pi(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=Ee(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 pi(this,void 0,void 0,(function*(){hi.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=>An(e,_))),0An(e,b))),0this.active,this.campaignMeta=e,this.data=t,this.active=!1;const n=Ee(e,"triggerData.trigger_delay.delayInSeconds",0)||0;this.waitForDelay=new Promise((e=>{this.delayTimer=setTimeout((()=>{e()}),1e3*n)}))}setIsActive(e){this.active=e}}const fi={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"}},vi=e=>{try{return!Si()&&window.Moengage.onsite.displayManager.campaignRenderMap[e].campaignMeta}catch(t){at.error(1,"OsmFunctions.getCampaignMeta","Campaign meta not found: "+e)}},Si=()=>!!window.Moengage.onsite.displayManager.testCampaign&&(at.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);var Ei=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 yi(e,t,n){return Ei(this,void 0,void 0,(function*(){const i=Pn(t),a=/moe-campaign-id/g;yield Ei(this,void 0,void 0,(function*(){try{let l=e.root;const{styles:c,scripts:d}=e,g=document.createElement("div");g.id=i,n.parentNode.insertBefore(g,n);const u=document.querySelector("#"+i),p=new DOMParser;l=l.replace(a,t);var r=p.parseFromString(l,"text/html");yield function(e){return Ei(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){at.error(2,"InsertCustomHtmlJs.removeEmptyHrefTags","Error while removing Empty href attributes",e)}}))}(r),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){at.error(2,"InsertCustomHtmlJs.addCampaignId","Error while adding Campaign Id",e)}}(r);const h=c.map((e=>p.parseFromString(e,"text/html").head.childNodes[0]));var o=d.map((e=>(e=e.replace(a,t),p.parseFromString(e,"text/html").head.childNodes[0]))),s=h.map((e=>new Promise(((t,n)=>{!function(e){const{node:t,onLoad:n,onError:a}=e;t instanceof HTMLMetaElement||"dns-prefetch"===t.getAttribute("rel")?n():(t.onload=()=>n(),t.onerror=()=>a()),document.querySelector("#"+i).appendChild(t)}({node:e,onLoad:t,onError:n})}))));yield Promise.all(s).catch((e=>{at.warn(1,"InsertCustomHtmlJs","Error loading Styles",(null==e?void 0:e.message)||"")}));const m=r.body.childNodes[0];u.appendChild(m),[...m.querySelectorAll(".brz-embed-code script")].map((e=>{!function(e){const t=document.createElement("script");t.innerHTML=e.innerHTML;for(let a=0;a{const r=document.createElement("script");for(let n=0;n{window.Brz.emit("init.dom",window.jQuery(m)),at.log(1,"InsertCustomHtmlJs","Custom HTML/JS DOM Level OSM Insertion: "+i)})).catch((e=>{at.warn(1,"InsertCustomHtmlJs","Error loading script",(null==e?void 0:e.message)||"")}))}catch(e){at.error(2,"InsertCustomHtmlJs","Failed to Insert OSM into DOM: "+i)}}))}))}var bi=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 _i{constructor(){this.renderListener=null,this.initializationPromiseObject=null,this.campaignRenderOrder=[],this.campaignRenderMap={},this.dismissTestInapp=e=>{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(0!==this.getActiveCampaigns().length){const t=this.getActiveCampaigns();setTimeout((()=>{t.forEach((t=>{t.campaignMeta.campaignId===e&&(t.iframe||t.osmDivSelector).remove()}))}),0),this.campaignRenderMap[e].setIsActive(!1),clearInterval(this.campaignRenderMap[e].dismissInterval),this.renderAllActiveCampaigns()}else this.dismissTestInapp(e)},this.clickTracker=vn,this.dismissEvent=En,this.startInitialization(),this.initialInlineBodyStyle=document.body.getAttribute("style")}startInitialization(){return bi(this,void 0,void 0,(function*(){var e=_i.baseLogTag+".startInitialization";try{null==this.initializationPromiseObject&&(this.initializationPromiseObject=new st),this.initializationPromiseObject.res()}catch(t){at.error(1,e,"Error initializing display managaer:",t)}}))}getOSMPusher(e){const t=document.createElement("div");if(t.id=Z.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(Z.PUSH_BANNER))&&void 0!==e&&e.remove()}queueDraftCampaign(e,t){return bi(this,void 0,void 0,(function*(){var n=_i.baseLogTag+".queueDraftCampaign";try{yield this.initializationPromiseObject.p,e.position=t.position,this.testCampaign=e;var i=!("1"!==t.editorVersion||!t.htmlJsonPayload);const a=!i&&_i.createDefaultIframe(this.testCampaign.draftId,t.payload);let r;at.warn(1,n,"Going to render test campaign "+e.draftId),r="FRAMESET"===document.body.nodeName?this.getOSMPusher(0):document.body.firstChild,i?(yield yi(t.htmlJsonPayload,this.testCampaign.draftId,r),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)})}catch(e){at.error(1,n,"Error queueing draft campaign",e)}}))}renderTestCampaign(e,t,n){return bi(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===mn.POP_UP&&(t.style.margin="0px auto"),-1bi(this,void 0,void 0,(function*(){yield yi(t.htmlJsonPayload,e.campaignId,n)})):(i=_i.createDefaultIframe(e.campaignId,this.campaignRenderMap[e.campaignId].data.payload),this.campaignRenderMap[e.campaignId].iframe=i),yield this.campaignRenderMap[e.campaignId].waitForDelay,yield this.canCampaignBeRendered(e)){if(at.warn(1,a,"Going to render "+e.campaignId),(null===(n=t.payload)||void 0===n?void 0:n.code)===Z.GCG_ERROR_CODE)return at.warn(1,a,`Can not render ${e.campaignId} as it falls under Control Group.`),void Sn(e,"OSM",!0)();this.campaignRenderMap[e.campaignId].setIsActive(!0),Sn(e,"OSM")(),null!=this.renderListener&&this.renderListener(e),this.renderAllActiveCampaigns()}else at.warn(1,a,"Can not render "+e.campaignId)}catch(i){at.error(1,a,"Error queuing campaign "+e.campaignId,i)}}))}renderAllActiveCampaigns(){return bi(this,void 0,void 0,(function*(){var e,t=_i.baseLogTag+".renderAllActiveCampaigns";const n=this.getActiveCampaigns();if(this.restoreBodyStyle(),0{Ti.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?(at.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",at.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===mn.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(),En(n[i].campaignMeta,"OSM",!0))}),e))}this.bannerLiveCampaignsStyling(n)}}))}restoreBodyStyle(){this.removeOSMPusher(),this.pushCardsTemplate(0);let e=0;Object.keys(this.campaignRenderMap).forEach((t=>{this.campaignRenderMap[t].campaignMeta.templateType===mn.POP_UP&&this.campaignRenderMap[t].isActive()&&e++})),1<=e||(this.initialInlineBodyStyle?document.body.setAttribute("style",this.initialInlineBodyStyle):document.body.removeAttribute("style"))}canCampaignBeRendered(e){return bi(this,void 0,void 0,(function*(){var t=_i.baseLogTag+".queueLiveCampaign";try{var n=yield dn.campaingsStatsStore.getItem(e.campaignId),i=yield dn.serviceMetaStore.getItem(Z.STORES.SERVICE_META.KEYS.GLOBAL_DELAY),a=yield dn.serviceMetaStore.getItem(Z.STORES.SERVICE_META.KEYS.LAST_INAPP_SHOWN_TIME);return _n.isValid(e,n)&&_n.isValidMessagingCampaign(e,n,i,a,this.getActiveCampaigns())&&Kn.getURLFilterResult(e)}catch(n){at.error(1,t,`Error checking if campaign ${e.campaignId} can be rendered:`,n)}return!1}))}static createDefaultIframe(e,t){_i.baseLogTag,e=Pn(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,fi[t]),Ke()&&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=_i.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 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)),at.log(2,i,"JS-bridge script inserted successfully",t)}catch(e){at.warn(2,i,"Failed to insert OSM JS Bridge: ",t)}}handleClassBasedTrackingForTestCampaign(e,t,n){const i=_i.baseLogTag+".handleClassBasedTrackingForTestCampaign";var a=e=>Array.prototype.slice.call(e),r=a(e.contentDocument.getElementsByClassName(Z.CSS_SELECTORS.DISMISS_INAPP)),o=a(e.contentDocument.getElementsByClassName(Z.CSS_SELECTORS.CLICK_INAPP));if(a=a(e.contentDocument.getElementsByTagName("a")),0===r.length&&at.warn(1,i,"No dismiss class items present in this template"),0===o.length&&at.warn(1,i,"No click class items present in this template"),-1{e.target&&e.target.classList.contains(Z.CSS_SELECTORS.CLICK_INAPP)&&at.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(Z.CSS_SELECTORS.DISMISS_INAPP)&&this.dismissTestInapp(n.draftId)}));else{for(const e of o)e.addEventListener("click",(e=>{at.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=_i.baseLogTag+".handleClassBasedTracking",n=e=>Array.prototype.slice.call(e);const i=e.iframe;var a=n(i.contentDocument.getElementsByClassName(Z.CSS_SELECTORS.DISMISS_INAPP)),r=n(i.contentDocument.getElementsByClassName(Z.CSS_SELECTORS.CLICK_INAPP));if(n=n(i.contentDocument.getElementsByTagName("a")),0===a.length&&at.warn(1,t,"No dismiss class items present in this template"),0===r.length&&at.warn(1,t,"No click class items present in this template"),e.data.payload&&(-1{var n;t.target&&t.target.classList.contains(Z.CSS_SELECTORS.CLICK_INAPP)&&(n=t.target.dataset.id,vn(e.campaignMeta,"OSM",{widget_id:n})()),t.target&&t.target.classList.contains(Z.CSS_SELECTORS.DISMISS_INAPP)&&(this.dismissInapp(e.campaignMeta.campaignId),t.target.classList.contains(Z.CSS_SELECTORS.CLICK_INAPP)||En(e.campaignMeta,"OSM"))}));else{for(const t of r)t.addEventListener("click",(t=>{t=t.target.dataset.id,vn(e.campaignMeta,"OSM",{widget_id:t})()}));for(const t of a)t.addEventListener("click",(()=>{this.dismissInapp(e.campaignMeta.campaignId),t.classList.contains(Z.CSS_SELECTORS.CLICK_INAPP)||En(e.campaignMeta,"OSM")}))}for(const e of n)"_blank"!==e.getAttribute("target")&&e.setAttribute("target","_parent")}changeAnchorTagReDirectionMethod(e){var t,n=_i.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"))}at.log(1,n,"Anchor Tag Href Rendering Changed to onClick for Campaign Frame: "+e.id)}catch(t){at.error(1,n,"Failed to Change Anchor Tag Href Rendering for Campaign Frame: "+e.id)}}liveCampaignPositionStyling(e,t){var n=_i.baseLogTag+".liveCampaignPositionStyling";try{e.templateType===mn.BANNER?e.display.config.sticky?t.style.position="fixed":t.style.position="absolute":e.templateType===mn.POP_UP&&(t.style.position="fixed","DIV"===t.tagName?t.style.inset="0":t.style.backgroundColor="rgba(99, 99, 99, 0.21)"),at.log(1,n,"Added Position Styles for CampaignId: "+e.campaignId)}catch(t){at.error(1,n,"Failed adding Styles for CampaignId: "+e.campaignId)}}testCampaignPositionStyling(e,t){var n=_i.baseLogTag+".testCampaignPositionStyling";try{e.templateType===mn.BANNER?e.displaySettings.config.sticky?t.style.position="fixed":t.style.position="absolute":e.templateType===mn.POP_UP&&(t.style.position="fixed","DIV"===t.tagName?t.style.inset="0":t.style.backgroundColor="rgba(99, 99, 99, 0.21)"),at.log(1,n,"Added Position Styles for CampaignId: "+e.draftId)}catch(t){at.error(1,n,"Failed adding Styles for CampaignId: "+e.draftId)}}bannerTestCampaignStyling(e,t,n){var i,a=_i.baseLogTag+".bannerTestCampaignStyling";try{let n,r,o=!0;t?(n=parseInt(getComputedStyle(t.contentDocument.body).height),o=-1e.campaignMeta.templateType===mn.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,Z.DELIVERY_FUNNEL.ATTEMPTED.CAMPAIGN_ATTEMPTED)}))}getImpressionStats(e){return Ii(this,void 0,void 0,(function*(){var t=this.baseLogTag+".getImpressionStats";try{return yield dn.campaingsStatsStore.getItem(e.campaignId)}catch(n){at.error(1,t,"Error getting impression stats for "+e.campaignId,n)}}))}getLastGlobalInappShown(){return Ii(this,void 0,void 0,(function*(){return yield dn.serviceMetaStore.getItem(Z.STORES.SERVICE_META.KEYS.LAST_INAPP_SHOWN_TIME)}))}getGlobalDelay(){return Ii(this,void 0,void 0,(function*(){return yield dn.serviceMetaStore.getItem(Z.STORES.SERVICE_META.KEYS.GLOBAL_DELAY)}))}filterValidCampaigns(e){return Ii(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!==mn.SELF_HANDLED){if(!_n.isCampaignWithinFC(e,t[n]))return this.deliveryStats.setStats(e,Z.DELIVERY_FUNNEL.PRIORITIZED.CAMPAIGN_PRIORITY_MAX_TIMES_SHOWN),!1;if(!_n.hasCampaignClearedSelfDelay(e,t[n]))return this.deliveryStats.setStats(e,Z.DELIVERY_FUNNEL.PRIORITIZED.CAMPAIGN_PRIORITY_MIN_DELAY),!1;if(!_n.hasCampaignClearedGlobalDelay(e,a,i))return this.deliveryStats.setStats(e,Z.DELIVERY_FUNNEL.PRIORITIZED.CAMPAIGN_PRIORITY_GLOBAL_DELAY),!1}return!_n.isCampaignExpired(e)||(this.deliveryStats.setStats(e,Z.DELIVERY_FUNNEL.PRIORITIZED.CAMPAIGN_PRIORITY_EXPIRED),!1)}))}catch(n){at.error(1,t,"Error filtering and sorting campaigns",n)}}))}prioritizeMessagingCampaigns(e){return Ii(this,void 0,void 0,(function*(){const t=yield this.filterValidCampaigns(e);if(0{t.campaignId!==e.campaignId&&this.deliveryStats.setStats(t,Z.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(_n.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){at.error(1,i,"Error delivering personalization campaigns",a)}}}))}messagingCampaignImpression(e,t){return Ii(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();return _n.hasCampaignClearedGlobalDelay(e,a,i)?_n.canCampaignBeRenderedOverExisting(e,r.length)?Kn.getURLFilterResult(e)?null==this.displayManager.campaignRenderMap[e.campaignId]||"MOE_EXIT"!==t&&t!==_?e:(at.warn(1,n,`Can not render ${e.campaignId} `+(this.displayManager.campaignRenderMap[e.campaignId].isActive()?", as campaign is already Active.":"")),void this.deliveryStats.setStats(e,Z.DELIVERY_FUNNEL.IMPRESSION.CAMPAIGN_IMPRESSION_MAX_TIMES_SHOWN)):(at.warn(1,n,"Can not render "+e.campaignId),void this.deliveryStats.setStats(e,Z.DELIVERY_FUNNEL.IMPRESSION.CAMPAIGN_IMPRESSION_CONTEXT_CHANGED)):void this.deliveryStats.setStats(e,Z.DELIVERY_FUNNEL.IMPRESSION.CAMPAIGN_IMPRESSION_ANOTHER_CAMPAIGN_VISIBLE):(at.warn(1,n,"Can not render "+e.campaignId),void this.deliveryStats.setStats(e,Z.DELIVERY_FUNNEL.IMPRESSION.CAMPAIGN_IMPRESSION_GLOBAL_DELAY))}catch(i){return void at.error(1,n,"Error delivering messaging campaign",i)}}))}mostEligibleMessagingCampaign(e,t){return Ii(this,void 0,void 0,(function*(){if(0e.templateType===mn.SELF_HANDLED)),c=a.filter((e=>e.templateType!==mn.SELF_HANDLED));0{t[e.campaignContext.cid]||(t[e.campaignContext.cid]=e.stats,e.stats={})}));var n={stats:t};this.OnsiteApiClient.sendDeliveryFunnelStats(n,this.batchId)}catch(n){at.error(1,t,"Error in sending delivery funnel stats",n)}}))}setStats(e,t){var n=(new Date).toISOString();e.stats[t]=e.stats[t]||[],e.stats[t].includes(n)||e.stats[t].push(n)}}var Ci=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 Oi=new st;class Pi{constructor(e){this.initializationPomise=null,this.testDraftInfo=null,this.triggerManager=null,this.displayManager=null,this.onsiteSelfHandledTriggerListeners={},this.funnelManager=null,this.eventTriggerHandler=null,this.deliveryStats=null,this.initData=e,at.setLogLevel(e.debugLevel),this.OnsiteApiClient=new ri(this.initData),this.iframeHelper=new ni}setLogLevel(e){at.setLogLevel(e,!1)}isTestCampaignAvailable(){return Ci(this,void 0,void 0,(function*(){const e=Pi.baseLogTag+".isTestCampaignAvailable";if(window.opener){let t;window.addEventListener("message",(n=>Ci(this,void 0,void 0,(function*(){var i,a;n.data&&"inapp_test"===n.data.action&&(i=n.data,(yield ti.isValidRawJson(i))?(t=!0,a=new ti(i),at.log(1,e,"Valid test campaign data found checking TestCampaign",i),yield this.checkForTestCampaign(a)):at.error(1,e,"Data is not a valid test campaign",i),Oi.res())}))),!1),window.opener.postMessage("moe_test_osm","*"),window.opener=null,setTimeout((()=>Ci(this,void 0,void 0,(function*(){t||(yield this.checkForTestCampaign()),Oi.res()}))),100)}else Oi.res()}))}initialize(){const e=Pi.baseLogTag+".initialize";return at.log(1,e,"Initialising onsite module"),null==this.initializationPomise&&(this.initializationPomise=new Promise((t=>Ci(this,void 0,void 0,(function*(){try{yield dn.initialize(),yield this.isTestCampaignAvailable(),Oi.p.then((()=>Ci(this,void 0,void 0,(function*(){yield this.syncCampaigns();const n=yield Cn();var i=this.isExitIntentCampaignFound(n);if(i.length&&(yield this.prefetchExitIntentCampaigns(i)),i=n.filter((e=>null!=e.triggerData)),this.displayManager=new _i,this.displayManager.onRender((t=>{at.log(1,e,"Campaign rendered: "+t.campaignId),dn.serviceMetaStore.setItem(Z.STORES.SERVICE_META.KEYS.LAST_INAPP_SHOWN_TIME,new Date)})),null!=this.testDraftInfo&&this.testDraftInfo.draftType===Z.DRAFT_CAMPAIGN_TPYES.ONSITE_MESSAGING){at.log(1,e,"Test campaigns present, will be showing only the test campaign."),at.log(1,e,"No live campaign will be shown till draft campaign showing");try{at.log(1,e,"Trying to render draft campaign with id "+this.testDraftInfo.draftId);var a=yield this.OnsiteApiClient.getDraftCampaign(this.testDraftInfo);at.log(1,e,"Test campaign payload: ",a),a&&this.displayManager.queueDraftCampaign(this.testDraftInfo,a)}catch(n){at.error(1,e,`Error fetching data for test campaign ${this.testDraftInfo.draftId}: `,n)}}else this.deliveryStats=new Di(this.initData),this.triggerManager=new hi(i),this.funnelManager=new Ai(this.initData,this.displayManager,this.deliveryStats),this.eventTriggerHandler=new wi,i=this.eventTriggerHandler.handler.bind(null,this.funnelManager,this.onsiteSelfHandledTriggerListeners,this.handlePersonalizationCampagins.bind(this),this.handleMessagingCampaigns.bind(this)),this.triggerManager.onTrigger(i),di.setListener(i),ui.setDeliveryStats(this.deliveryStats),di.setDeliveryStats(this.deliveryStats),yield di.logDeliveryFunnelForExpiredTimerCampaigns(),yield ui.updateCampaignTimeInSecondaryEventsStore(),yield di.createNewTimers(),this.triggerManager.startWatching();t(!0)}))))}catch(t){at.error(1,e,t)}}))))),this.initializationPomise}handleMessagingCampaigns(e){return Ci(this,void 0,void 0,(function*(){var t=Pi.baseLogTag+".handleMessagingCampaigns";e.onsitePayload&&(at.log(1,t,"Campaign triggered: "+e.campaignId),at.log(1,t,"Payload for campaign:",e.onsitePayload),this.displayManager.queueLiveCampaign(e,e.onsitePayload))}))}handlePersonalizationCampagins(e){return Ci(this,void 0,void 0,(function*(){const t=Pi.baseLogTag+".handlePersonalizationCampagins";0{null!=e.tag&&(at.log(1,t,"Personlization Campaign triggered: "+e.campaignId),this.onsiteSelfHandledTriggerListeners[e.tag].forEach((t=>{this.handleSelfHandledCallback(e,e.onsitePayload,t)})))}))}))}logout(){var e;return Ci(this,void 0,void 0,(function*(){var t=Pi.baseLogTag+".logout";if(at.log(1,t,"Starting module logout"),this.initializationPomise=null,this.displayManager){const t=Object.keys(this.displayManager.campaignRenderMap);null!==(e=this.displayManager.testCampaign)&&void 0!==e&&e.draftId&&t.push(null===(e=this.displayManager.testCampaign)||void 0===e?void 0:e.draftId),t.forEach((e=>{const t=document.getElementById("moe-onsite-campaign-"+e);t&&t.remove()})),this.displayManager.destroy()}this.triggerManager&&this.triggerManager.destory(),ui.destroy(),di.destroy(),this.displayManager=null,this.funnelManager=null,this.eventTriggerHandler=null,yield di.deleteAllPendingTimers(),yield dn.clear(),at.log(1,t,"Starting module logout complete")}))}checkForTestCampaign(e){return Ci(this,void 0,void 0,(function*(){var t=Pi.baseLogTag+".checkForTestCampaign";try{var n=e||(yield this.iframeHelper.getDraftCampaignInfo());null==n?(at.log(1,t,"No draft campaign found"),this.testDraftInfo=null):(at.log(1,t,"Found draft campaign: ",n),this.testDraftInfo=n,null==this.testDraftInfo.draftId&&(this.testDraftInfo.draftType=Z.DRAFT_CAMPAIGN_TPYES.WEB_PERSONALIZATON))}catch(n){at.error(1,t,"Error getting test campaign",n)}}))}getData(e,t){return Ci(this,void 0,void 0,(function*(){const n=Pi.baseLogTag+".getData";null==t&&(at.warn(1,n,"Moengage.onsite.getData called without a providing a callback."),t=()=>{});try{if(yield this.initializationPomise,null!=this.testDraftInfo){var i;at.log(1,n,"Fetching test campaign: ",this.testDraftInfo),this.testDraftInfo.draftType===Z.DRAFT_CAMPAIGN_TPYES.WEB_PERSONALIZATON&&(i=yield this.OnsiteApiClient.getDraftCampaign(this.testDraftInfo),t(null,{payload:i.payload,click:()=>{at.log(1,n,"This is a test campaign")},imp:()=>{at.log(1,n,"This is a test campaign")}}))}else{const i=yield dn.campaingsTagsStore.getItem(e);if(i){const o=yield Promise.all(i.map((e=>Dn(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):(at.error(1,n,"Error fetching campaign payload"),t({message:"There was an error fetching data for this tag"},null))}else at.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){at.error(1,n,"Error getting campaign",i)}}))}registerCallback(e,t){return Ci(this,void 0,void 0,(function*(){var n=Pi.baseLogTag+".registerCallback";try{yield this.initializationPomise,null==this.onsiteSelfHandledTriggerListeners[e]?this.onsiteSelfHandledTriggerListeners[e]=[t]:this.onsiteSelfHandledTriggerListeners[e].push(t)}catch(t){at.error(1,n,"Error setting callback for tag",e),at.error(1,n,"Error stack:",t)}}))}handleSelfHandledCallback(e,t,n){return Ci(this,void 0,void 0,(function*(){var i=Pi.baseLogTag+".handleSelfHandledCallback";if(e.campaignContext=t.campaignContext,"JSON"===t.payloadType)try{t.payload=JSON.parse(t.payload);var a=Ee(e,"triggerData.trigger_delay.delayInSeconds",0)||0;setTimeout((()=>{yn(e,"WP"),n(null,{payload:t.payload,click:t=>{vn(e,"WP",t)()},imp:Sn(e,"WP")})}),1e3*a)}catch(r){a=`Payload for campaign_id ${e.campaignId} is not a valid JSON`,at.error(1,i,a),at.error(1,i,"Payload provided:",t.payload),n({message:a},null)}else yn(e,"WP"),n(null,{payload:t.payload,click:t=>{vn(e,"WP",t)()},imp:Sn(e,"WP")})}))}syncCampaigns(){return Ci(this,void 0,void 0,(function*(){var e=Pi.baseLogTag+".syncCampaigns";try{(yield this.shouldClearMetaStorage())&&(yield dn.campaingsMetaStore.clear(),yield this.rebuildTagStore()),(yield this.shouldSaveRemoteCampaigns())&&(yield this.saveRemoteCampaigns())}catch(t){at.error(1,e,"Error getting remote campaigns: ",t)}}))}shouldClearMetaStorage(){return Ci(this,void 0,void 0,(function*(){return(yield dn.serviceMetaStore.getItem(Z.STORES.SERVICE_META.KEYS.LAST_FETCH_SDK_VERSION))!==ze().getSdkVersion()}))}shouldSaveRemoteCampaigns(){var e;return Ci(this,void 0,void 0,(function*(){var t=Pi.baseLogTag+".shouldSaveRemoteCampaigns",n=yield dn.serviceMetaStore.getItem(Z.STORES.SERVICE_META.KEYS.LAST_FETCH_SDK_VERSION),i=yield dn.serviceMetaStore.getItem(Z.STORES.SERVICE_META.KEYS.LAST_META_CALL_TIME),a=(i=new Date(i),(new Date).getTime());return null==i||a-i>Z.META_REFRESH_TIME||(at.remoteLogTracking(1,"info",t,"Last fetch was less than 15 mins ago at ",i),n!==ze().getSdkVersion()?(at.remoteLogTracking(1,"info",t,"Version change detected. Will proceed to fetch latest campaigns"),!0):!(!(n=yield dn.serviceMetaStore.getItem(Z.STORES.SERVICE_META.KEYS.UNIQUE_ID))||n===(null===(e=xe.get(r.USER_DATA))||void 0===e?void 0:e.deviceUuid)||(at.remoteLogTracking(1,"info",t,"Unique device id change detected. Will proceed to fetch latest campaigns"),0)))}))}saveRemoteCampaigns(){return Ci(this,void 0,void 0,(function*(){var e=Pi.baseLogTag+".saveRemoteCampaigns";yield dn.campaingsMetaStore.clear(),yield dn.exitIntentCampaignStore.clear();var t=yield this.OnsiteApiClient.getCampaignsMeta();null!=t&&(yield this.addCampaignsToDB(t.campaignsMeta),at.log(1,e,"Inapp campaigns meta saved!")),yield ui.pruneRemovedCampaigns(),yield ui.removeStaleTriggeringPrimaryEventCampaigns(),yield dn.serviceMetaStore.setItem(Z.STORES.SERVICE_META.KEYS.GLOBAL_DELAY,t.globalDelayBetweenInapps),yield dn.serviceMetaStore.setItem(Z.STORES.SERVICE_META.KEYS.LAST_FETCH_SDK_VERSION,ze().getSdkVersion())}))}addCampaignsToDB(e){return Ci(this,void 0,void 0,(function*(){var t=Pi.baseLogTag+".addCampaignsToDB";at.log(1,t,`Adding/Updating ${e.length} campaigns in DB`,e.map((e=>e.campaignId)));try{yield Promise.all(e.map((e=>dn.campaingsMetaStore.setItem(e.campaignId,e)))),yield this.rebuildTagStore()}catch(e){at.error(1,t,"Error saving remote campaigns:",e)}}))}rebuildTagStore(){return Ci(this,void 0,void 0,(function*(){var e=Pi.baseLogTag+".rebuildTagStore";try{yield dn.campaingsTagsStore.clear();var t=yield Cn();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 dn.campaingsTagsStore.clear();for(const t in e)e.hasOwnProperty(t)&&n.push(dn.campaingsTagsStore.setItem(t,e[t]));yield Promise.all(n)}catch(t){at.error(1,e,"Error updating tags store:",t)}}))}isExitIntentCampaignFound(e){return e.filter((e=>e.templateType!==mn.SELF_HANDLED&&An(e,b)))}prefetchExitIntentCampaigns(e){return Ci(this,void 0,void 0,(function*(){var t=Pi.baseLogTag+".prefetchExitIntentCampaigns";const n=yield Ht.createEvent("MOE_EXIT",[]),i=(yield Tn(e)).filter((e=>Kn.getFilterResult(n,e)));if(!i||!i.length)return at.log(1,t,"Exit intent campaign not eligible to prefetch"),!1;{const e=yield wn(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 dn.exitIntentCampaignStore.setItem(a,e),at.log(1,t,"Exit intent campaign prefetched: "+a))}}}))}refresh(){return Ci(this,void 0,void 0,(function*(){Wi.onsite.appId&&(yield Gi(),Hi())}))}}function Ri(){var e,t;const n="pageChangeHandler";window.Moengage.pageChangeHandlerCallingTime=(new Date).getTime(),(()=>{var e;const t=window.Moengage;if(t.onsite&&t.onsite.displayManager){t.onsite.triggerManager&&null!==(e=null===(e=t.onsite.triggerManager.primaryEventsHash)||void 0===e?void 0:e.MOE_PAGE_SCROLL)&&void 0!==e&&e.length&&window.removeEventListener("scroll",t.onsite.triggerManager.getScrollListenerCallback());const n=t.onsite.displayManager;Object.keys(n.campaignRenderMap).forEach((e=>{document.getElementById("moe-onsite-campaign-"+e)&&document.getElementById("moe-onsite-campaign-"+e).remove(),n.campaignRenderMap[e].isActive()&&n.dismissInapp(e),clearTimeout(n.campaignRenderMap[e].delayTimer),delete n.campaignRenderMap[e],n.campaignRenderOrder=n.campaignRenderOrder.filter((t=>t!==e))})),setTimeout((()=>{Ke()?t.onsite.triggerManager.windowEventManager.isPopStateEventBound&&(t.onsite.triggerManager.windowEventManager.setHistoryState(),t.onsite.triggerManager.windowEventManager.isExitIntentShown=!1,t.onsite.triggerManager.windowEventManager.scrollExitIntentInterval=null):document.removeEventListener("mouseout",t.onsite.triggerManager.windowEventManager.exitIntentListener)}),0)}t.onsite.initializationPomise=null,t.onsite.initialize()})(),window.MoeFocusHandler&&window.MoeFocusHandler(),window.Moengage.shouldClearPrevEvents=(new Date).getTime(),Gt.clear(),Gt.clearListeners(),Wi.track_page_view();var i=Wi.onsite.triggerManager;0<(null===(e=null==i?void 0:i.exitIntentCampaigns)||void 0===e?void 0:e.length)&&Ke()&&null!==(t=null==i?void 0:i.windowEventManager)&&void 0!==t&&t.onMobileScrollAndExit(i.onExit),zt.getWebSDKSettings().then((e=>{e.isDomainLevelStorage&&xe.copyKeysFromCookie(),null!=e&&e.configs.isCardsModuleEnabled&&Wi.cards&&(Wi.cards.checkCacheAndSaveRemote(de),Wi.cards.displayManager.closeIframe()),null!=e&&e.configs.isWebPersonalisationModuleEnabled&&(null!==(e=window.MoeWebP)&&void 0!==e&&e.getLiveExperiences(),at.log(1,n,"webP sync function called"))})).catch((e=>{at.error(1,n,"Error in getting Web SDK Settings. This might indicate that the App is blocked.")}))}Pi.baseLogTag="MoeOnsite",window[Z.OSM_MODULE]=Pi,window.MoeOsm=(at.log(1,"OsmFunctions","Osm Functions for tracking user behaviour"),{trackEvent:(e,t,n,i)=>(e=vi(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=vi(e))?window.Moengage.onsite.displayManager.clickTracker(e,"OSM",{widget_id:t})():Promise.resolve(),trackDismiss:(e,t=!1)=>(e=vi(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),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)}))});class Li{constructor(){this.getDeviceUniqueId=e=>{window.addEventListener(k,(t=>{t.detail.name===M.DEVICE_UUID&&(t=t.detail.data,e(t))}))}}onUpdateDeviceId(e){this.getDeviceUniqueId(e)}trackClick(e,t){return Li.track("MOE_WEBP_MESSAGE_CLICKED",e,t)}trackImpression(e){return Li.track("MOE_WEBP_MESSAGE_SHOWN",e)}static track(e,t,n){var i=Li.baseLogTag+".track";if("string"==typeof t)try{t=JSON.parse(t)}catch(e){return void at.error(2,i,"Error parsing JSON string:",e)}var a=t&&t.cid.split("_")[0];if(!a)return Promise.reject();try{return ze()?(at.log(1,i,e+": Event Tracked"),ze().track_event(e,Object.assign({campaign_id:a},t))):(window.moengage_q=window.moengage_q||[]).push({f:"track_event",a:[e,Object.assign(Object.assign({campaign_id:a},t),n)]}),Promise.resolve()}catch(e){at.error(2,i,"Failed Tracking expression",e)}}}Li.baseLogTag="Web Personalisation Tracking";var Ni=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 ki="MoEngage";let Mi=new st,xi=new st;const Bi={getData:(e,t)=>{zt.getWebSDKSettings().then((n=>{Mi.p.then((n=>{n.getData(e,t)}))})).catch((e=>{}))},registerCallback:(e,t)=>{zt.getWebSDKSettings().then((n=>{Mi.p.then((n=>{n.registerCallback(e,t)}))})).catch((e=>{}))}};class Wi{static callWebPush(e){const t=ki+".callWebPush";zt.getWebSDKSettings().then((n=>{var i,a,r,o,s,l,c;n.isConfigured?n.optInConfig.type===Tt.TYPE.SELF_HANDLED?(at.log(1,t,"Starting web push functions"),null!=e&&(Ne.setSoftAskConfig(e),i=Ee(e,"soft_ask_display_callback",null),a=Ee(e,"soft_ask_allow_callback",null),r=Ee(e,"soft_ask_block_callback",null),o=Ee(e,"hard_ask_allow_callback",null),s=Ee(e,"hard_ask_dismiss_callback",null),l=Ee(e,"hard_ask_block_callback",null),c=x,Xt.addCallback(c.SOFT_ASK_SHOWN,i),Xt.addCallback(c.SOFT_ASK_ALLOWED,a),Xt.addCallback(c.SOFT_ASK_DISMISSED,r),Xt.addCallback(c.HARD_ASK_ALLOWED,o),Xt.addCallback(c.HARD_ASK_DISMISSED,s),Xt.addCallback(c.HARD_ASK_DENIED,l)),ut.getInstance().then((e=>{new sn(n,e).callWebPush()}))):at.warn(1,t,"This feature can only be used when you have chosed self-handled approach in the dashboard. You can check dashboard here:",j):at.log(1,t,"Web push settings not configured on dashboard yet. To start web push subscriptions, please configure the settings on dashboard.")})).catch((e=>{at.error(1,t,"Error in getting Web SDK Settings. This might indicate that the App is blocked.")}))}static showNotification(e){zt.getWebSDKSettings().then((t=>{ut.getInstance().then((n=>{new sn(t,n).showNotification(e)}))})).catch((e=>{}))}static getSdkVersion(){return"2.30.19"}static setDebugLevel(e){return Ni(this,void 0,void 0,(function*(){const t=ki+".setDebugLevel";try{"number"==typeof e&&(!Ne.get().disableOnsite&&Wi.onsite.setLogLevel&&Wi.onsite.setLogLevel(e),zt.getWebSDKSettings().then((t=>{null!=t&&t.configs.isCardsModuleEnabled&&Wi.cards&&Wi.cards.setLogLevel(e),null!=t&&t.configs.isWebPersonalisationModuleEnabled&&window.MoeWebP&&window.MoeWebP.setLogLevel&&window.MoeWebP.setLogLevel(e),at.setLogLevel(e,!0)})).catch((n=>{at.setLogLevel(e,!0),at.error(1,t,"Error in getting Web SDK Settings. This might indicate that the App is blocked.")})))}catch(e){at.error(0,t,"Error changing log level:",e)}}))}static vitals(){var e=mt.getSync();return{deviceUuid:e.deviceUuid,userDetails:e,pushToken:xe.get(r.PUSH_TOKEN),softAskStatus:xe.get(r.SOFT_ASK_STATUS),hardAskStatus:xe.get(r.HARD_ASK_STATUS)}}static help(){var e=ki+".help";at.log(0,e,"Moengage Dashboard - ",V.MOE_DASHBOARD);for(const t in V)V.hasOwnProperty(t)&&at.log(0,e,t,"-",V[t])}static track_event(e,t){return Kt.track(e,t)}static add_unique_user_id(e){return Ni(this,void 0,void 0,(function*(){var t=yield on.login(e);return Ne.get(),zt.getWebSDKSettings().then((e=>{null!=e&&e.configs.isCardsModuleEnabled&&Wi.cards&&(at.log(1,"Moengage.add_unique_user_id","Fetching new Cards after login"),Wi.cards.refreshCards())})).catch((e=>{})),t}))}static update_unique_user_id(e){return on.updateUniqueId(e)}static add_user_attribute(e,t){return on.addAttribute(e,t)}static add_first_name(e){return on.addAttribute("first_name",e)}static add_last_name(e){return on.addAttribute("last_name",e)}static add_email(e){return on.addAttribute("email",e)}static add_mobile(e){return on.addAttribute("mobile",e)}static add_user_name(e){return on.addAttribute("name",e)}static add_gender(e){return on.addAttribute("gender",e)}static add_birthday(e){return on.addAttribute("birthday",e)}static destroy_session(){return Wi.user.logout()}static call_web_push(e){Wi.callWebPush(e)}static getBranch(){return"master"}static track_page_view(){return Kt.track(l,{timestamp:Number(Date.now())}),Kt.track(c,{timestamp:Number(Date.now())})}static handle_page_change(){Ri()}}Wi.user=on,Wi.event=Kt,Wi.device=class{static getUuid(){return xe.get(r.USER_DATA).deviceUuid}static getPushToken(){return xe.get(r.PUSH_TOKEN)}static getPermissionState(e){return new Promise(((t,n)=>{zt.getWebSDKSettings().then((i=>{ut.getInstance().then((a=>{new sn(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)}))}))}},Wi.onsite=Bi,Wi.reports=Wt.reports,Wi.remoteLogs=Wt,Wi.web_p=new Li;var Ui=()=>{};const Fi={track_event:Ui,add_user_attribute:Ui,add_first_name:Ui,add_last_name:Ui,add_email:Ui,add_mobile:Ui,add_user_name:Ui,add_gender:Ui,add_birthday:Ui,destroy_session:Ui,add_unique_user_id:Ui,moe_events:Ui,location_type_attribute:Ui,call_web_push:Ui,setDebugLevel:Ui};function Hi(){var e;null!==(e=null===(e=Wi.onsite)||void 0===e?void 0:e.initData)&&void 0!==e&&e.appId||(e=Ne.get(),Wi.onsite=new Pi(e),Mi.res(Wi.onsite),Wi.onsite.initialize())}function Gi(){var e;return Ni(this,void 0,void 0,(function*(){null!==(e=null===(e=Wi.onsite)||void 0===e?void 0:e.initData)&&void 0!==e&&e.appId&&(at.log(1,"Moengage.disableOnsiteApi","logging out from inapp module"),yield Wi.onsite.logout(),Mi=new st,Wi.onsite=Bi)}))}class Ki{onWindowVisibilityChange(e){ye.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=>{ye.set("isWindowActive","visible"===t),e(t)};window.addEventListener("visibilitychange",t,!1)}}Ki.baseLogTag="WindowEventManager";var Vi=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 ji{static initialize(){return Vi(this,void 0,void 0,(function*(){var e;return null==ji.ready&&(ji.campaignStore=Se.createInstance({driver:[Se.INDEXEDDB,Se.WEBSQL,Se.LOCALSTORAGE],name:se,storeName:le.STORE_NAME}),ji.metaStore=Se.createInstance({driver:[Se.INDEXEDDB,Se.WEBSQL,Se.LOCALSTORAGE],name:se,storeName:ce.STORE_NAME}),e=[ji.campaignStore.ready(),ji.metaStore.ready()],ji.ready=Promise.all(e)),ji.ready}))}static clear(){return Vi(this,void 0,void 0,(function*(){var e=ji.baseLogTag+".clear";try{yield ji.initialize(),yield Promise.all([ji.campaignStore.clear(),ji.metaStore.clear()]);var t=[ji.campaignStore.ready(),ji.metaStore.ready()];ji.ready=Promise.all(t)}catch(t){at.error(1,e,"Error clearing cards stores:",t)}return ji.ready}))}}let Yi;function zi(e){const t="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==e?void 0:e.bots_list)){var n=ze();return n&&0{Ft.broadcastToWindow({topic:k,name:M.MOE_INIT,data:Ne.get()}),Ve()===fe.WEB&&qi(),at.setLogLevel(Ne.get().debugLevel),at.log(1,t,"Script loaded!"),at.customLabel(1,t,"SDK Version","2.30.19"),0{Ft.broadcastToWindow({topic:k,name:M.MOE_INIT_COMPLETED})}))})),e=window.moengage_object||"Moengage",window[e]=Wi,Wi):(at.error(1,t,"App Id not specified. Please check docs page to complete the integration - ",V.WEBSDK_DOCS),Fi))}at.error(1,t,"Bot detected, Can't initialise the MoEngage Web SDK")}ji.baseLogTag="MOE_CARDS_STORES";const qi=()=>{Se.createInstance({driver:[Se.INDEXEDDB,Se.WEBSQL,Se.LOCALSTORAGE],name:q,storeName:$}).clear()},$i=()=>new Promise((e=>{"complete"!==window.document.readyState?window.addEventListener("load",(()=>{e(!0)})):e(!0)}));window&&(window.moe=zi,window.moeBannerText="banner",window[Q]=Gt);const Ji=()=>{try{var e=localStorage.getItem("moe_segment_cluster"),t=localStorage.getItem("moe_segment_sw_path"),n=localStorage.getItem("moe_segment_sw_scope");const i={};return e&&(i.cluster=e),t&&(i.swPath=t),n&&(i.swScope=n),!!(e||t||n)&&(at.log(1,".isSegmentDataFound","Data found for segment initialisation",i),i)}catch(e){return!1}},Xi=()=>{const e="Initialization";return new Promise((t=>zt.getWebSDKSettings().then((n=>(nt.setRemoteLogging(n),n.isDomainLevelStorage&&(xe.isSharedWithCookie=!0,xe.copyKeysFromCookie()),(n.configs.isBatchingEnabled||n.configs.remoteLogTracking)&&(Wt.init(n),at.log(1,e,"Enabled Batching for "+(n.configs.isBatchingEnabled?"Event Tracking":"")+(n.configs.remoteLogTracking?", Remote Logs Tracking":""))),mt.get().then((i=>{if(nn.get().deviceToLogout===i.deviceUuid)return at.remoteLogTracking(1,"info",e,"User was not able to logout last time. Completing the logout now and starting new session."),Wi.user.logout();i.deviceAdded&&zt.onDeviceAdd.res(),n.isPushSubBilling&&at.warn(1,e,"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 a=new dt;(new Ki).onWindowVisibilityChange(a.handleBrowserInactivity),at.customLabel(1,e,"Device UUID",i.deviceUuid),at.customLabel(1,e,"Device Added",i.deviceAdded),Ft.broadcastToWindow({topic:k,name:M.SETTINGS_FETCHED,data:n}),Ft.broadcastToWindow({topic:k,name:M.DEVICE_UUID,data:i.deviceUuid}),n.isPushSubBilling||i.deviceAdded||zt.deviceAdd(),Wi.track_page_view(),Jt.clear(r.Q.DEVICE),Jt.clear(r.Q.REPORT),Ne.get().enableSPA&&!Yi&&Zi(),ut.getInstance().then((t=>{var i;const a=!Ne.get().disableWebPush&&new sn(n,t);var o,s=!(null!==(s=window.MoeWebP)&&void 0!==s&&s.isEditorModeEnabled());a&&a.isWebPushEnabled()&&s?0<=[Tt.TYPE.ONE_CLICK,Tt.TYPE.TWO_STEP].indexOf(n.optInConfig.type)?a.callWebPush():(at.log(1,e,"Self handled setting. Will show opt-in on manual invocation, if required."),a.getPermissionState().then((t=>{var n=xe.get(r.PUSH_TOKEN);(t===Vt.GRANTED||null!=n&&t===Vt.DENIED)&&(t===Vt.GRANTED&&at.log(1,e,"Notification permission already granted. Proceeding to subscribe the user"),a.callWebPush())})).catch((t=>{at.warn(1,e,"Cannot get permission state: ",t)}))):sn.SUPPORTED_BROWSERS.indexOf(t.name)<0?at.warn(1,e,"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"):at.warn(1,e,"Web push feature not enabled for current environment"),!Ne.get().disableOnsite&&s?zt.onDeviceAdd.p.then((()=>{Hi()})):at.warn(1,e,"Onsite is disabled in this page since `disableOnsite: true` is passed during initialization."),null!=n&&n.configs.isCardsModuleEnabled&&null!==(i=Ne.get().cards)&&void 0!==i&&i.enable&&s?(o=n,ln.loadModule(ee.CARDS).then((e=>{xi.res(e),e.initialize(o),Wi.cards=e})).catch((e=>{xi.rej(e)}))):ji.clear(),Qi()})),t(!0)}))))).catch((n=>{at.error(1,e,"Error in getting Web SDK Settings. This might indicate that the App is blocked."),t(!1)}))))},Qi=()=>{const e="Moengage.clearWindowQ";$i().then((()=>{try{var t=window.moengage_object||"Moengage";if(window[t]&&window.moengage_q){let i=window.moengage_q;if(window.moengage_q=[],i&&0{const e="startSpaUrlHandler";let t=document.location.href;(()=>{Yi=!0,at.log(1,e,"Start listening to URL changes");const n=document.querySelector("body"),i=new MutationObserver((n=>{n.forEach((n=>{t===document.location.href||document.location.href.includes("moe-card=1")||(t=document.location.href,at.log(1,e,"URL Change detected",t),Ri())}))}));i.observe(n,{childList:!0,subtree:!0})})()},ea={clearWindowQ:Qi,startSpaUrlHandler:Zi,isSegmentDataFound:Ji,clearEventsFromIDB:qi,moeInit:zi,windowLoaded:$i}})()})(); \ No newline at end of file +(()=>{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 w(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 F(e){for(var t=new Uint8Array(e),n="",i=0;i>2],n+=P[(3&t[i])<<4|t[i+1]>>4],n+=P[(15&t[i+1])<<2|t[i+2]>>6],n+=P[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 W={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=N;e instanceof ArrayBuffer?(i=e,a+=k):(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+F(i))}else if("[object Blob]"===n)(n=new FileReader).onload=function(){var n="~~local_forage_type~"+e.type+"~"+F(this.result);t(N+M+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,L)!==N)return JSON.parse(e);var t,n=e.substring(x),i=e.substring(L,x);i===M&&R.test(n)&&(t=(e=n.match(R))[1],n=n.substring(e[0].length));var a=U(n);switch(i){case k:return a;case M: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:F};function H(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):H(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=c(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,c){c?o(c):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,c,d=!0;function g(e){function t(){n&&n(e,a),n=null}d?i(t):t()}function u(t,n,i){if(a[t]=i,n&&(l=!0),0==--o||n)g(n);else if(!l&&c{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 c=t&&n||0,d=t||[],g=(e=e||{}).node||i,u=void 0!==e.clockseq?e.clockseq:a;null!=g&&null!=u||(h=r(),null==g&&(g=i=[1|h[0],h[1],h[2],h[3],h[4],h[5]]),null==u&&(u=a=16383&(h[6]<<8|h[7])));var p=void 0!==e.msecs?e.msecs:(new Date).getTime(),h=(n=void 0!==e.nsecs?e.nsecs:l+1,p-s+(n-l)/1e4);if(h<0&&void 0===e.clockseq&&(u=u+1&16383),1e4<=(n=(h<0||s>>24&255,d[c++]=n>>>16&255,d[c++]=n>>>8&255,d[c++]=255&n,p=p/4294967296*1e4&268435455,d[c++]=p>>>8&255,d[c++]=255&p,d[c++]=p>>>24&15|16,d[c++]=p>>>16&255,d[c++]=u>>>8|128,d[c++]=255&u;for(var m=0;m<6;++m)d[c+m]=g[m];return t||o(d)}},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:()=>ua,initializeLaunchSequence:()=>ca});const e="initData",t="browserDetails",a="unifiedLogs",r={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"},o=2,s="MOE_WEB_UNSUBSCRIBED",l="EVENT_ACTION_WEB_SESSION_START",c="MOE_PAGE_VIEWED",d="MOE_WEB_OPTIN_BANNER_LOAD",g="MOE_WEB_OPTIN_CLOSED",u="MOE_WEB_OPTIN_ACCEPTED",p="MOE_OPT_IN_SHOWN",h="MOE_OPT_IN_ALLOWED",m="MOE_OPT_IN_DISMISSED",f="MOE_OPT_IN_BLOCKED",v="MOE_OPT_IN_ATTEMPT",S="MOE_LOGOUT",E="EVENT_ACTION_DEVICE_ATTRIBUTE",y="MOE_PUSH_PERMISSION_STATE_ALLOWED",b="MOE_PUSH_PERMISSION_STATE_BLOCKED",_="MOE_PAGE_EXIT",T="MOE_PAGE_SCROLL",I="MOE_PAGE_URL_EVENT",w="USER_ATTRIBUTE_UNIQUE_ID",A="USER_ATTRIBUTE_USER_EMAIL",C="USER_ATTRIBUTE_USER_NAME",O="USER_ATTRIBUTE_USER_FIRST_NAME",D="USER_ATTRIBUTE_USER_LAST_NAME",P="USER_ATTRIBUTE_USER_MOBILE",R="USER_ATTRIBUTE_USER_GENDER",N="USER_ATTRIBUTE_USER_BDAY",L="USER_ID_MODIFIED_FROM",k=["id","first_name","last_name","email","mobile","name","gender","birthday"],M=[w,L,A,P],x="MOE_LIFECYCLE",B={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"},U={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={code:1e3,reason:"Web push not supported in current browser environment"},W={code:1001,reason:"Registering the service worker failed"},H={code:1002,reason:"Web push settings not configured"},G={code:1004,reason:"Hard ask was dismissed to many times"},K={code:1005,reason:"Service worker can not be registered on this page due to scope issues"},V="https://media.giphy.com/media/KDRv3QggAjyo/giphy.gif",j={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"},Y={MOE_DASHBOARD:"https://app.moengage.com",MIGRATION_DOCS:"https://docs.moengage.com/docs/web-sdk-integration",WEBSDK_DOCS:"https://docs.moengage.com/docs/web-sdk-integration",SELF_HANDLED_DOCS:"https://docs.moengage.com/docs/self-handled-opt-ins"},z="Dashboard --\x3e Settings --\x3e Channel --\x3e Push",q="SESSION",$="v3/sdkconfig/",J="moe_tracking",X="events",Q="batched_events",Z="moe_uuid",ee="MoengagePageEventHistoryManager",te={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"},TEST_CAMPAIGN_STORE:{NAME:"test_campaign"},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",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},ne={CARDS:{name:"CARDS",src:"https://cdn.moengage.com/release/dc_3/versions/2.50.0/moe_webSdk_cards.min.latest.js",windowLocation:"moeCards"}},ie="moe_database",ae={NAME:"offline_data"},re="v2/sdk/report/",oe=15e3,se="number",le={TOPIC:"MOE_AUTOMATED_EVENTS",NAMES:[s,l,c,d,g,u,"MOE_USER_SUBSCRIBED",v,p,h,m,f,y,b,S,te.EVENT_NAMES.OSM.CLICK,te.EVENT_NAMES.OSM.IMPRESSION,te.EVENT_NAMES.OSM.DISMISS,te.EVENT_NAMES.OSM.AUTO_DISMIS]},ce=[v],de="IOS_PERMISSION_DENIED",ge="moe_push_opted",ue="v1/sdk_logging/",pe="v2/device/add",he="v2/device/token-check",me="v2/report/add",fe={TV:"tv",TABLET:"tablet",MOBILE:"mobile",WEB:"web"},ve="appOpen",Se="User is offline.",Ee=["Google Chrome","Mozilla Firefox","Opera","Apple Safari","Edge"];var ye,be=n(483);function _e(e,t,n){return null!=e&&t?(e=e[(t=Array.isArray(t)?t:t.split("."))[0]])&&1{})),this.zIndex=_e(e,"zIndex","999999"),this.fontFaces=(null===(e=e.fontFaces)||void 0===e?void 0:e.map((e=>new Ne(e))))||[]}}we.baseLogTag="CardsConfigModel";class Ae{constructor(e){this.backgroundColor=_e(e,"backgroundColor","#00237C"),this.text=_e(e,"text","Notification"),this.color=_e(e,"color","#fff"),this.fontSize=_e(e,"fontSize","16px"),this.fontFamily=_e(e,"fontFamily","inherit")}}class Ce{constructor(e={}){this.img=_e(e,"img","https://app-cdn.moengage.com/sdk/cards-error.svg"),this.text=_e(e,"text",'Error something went wrong ')}}class Oe{constructor(e){this.headerFontSize=_e(e,"headerFontSize","16px"),this.descriptionFontSize=_e(e,"descriptionFontSize","14px"),this.ctaFontSize=_e(e,"ctaFontSize","12px"),this.fontFamily=_e(e,"fontFamily","inherit"),this.horizontalRowColor=_e(e,"horizontalRowColor","#D9DFED")}}class De{constructor(e){this.mWebIcon=_e(e,"mWebIcon","https://app-cdn.moengage.com/sdk/back-icon.svg"),this.webIcon=_e(e,"webIcon","https://app-cdn.moengage.com/sdk/cross-icon.svg"),this.callBack=_e(e,"callBack",(()=>{}))}}class Pe{constructor(e){this.inactiveTabFontColor=_e(e,"inactiveTabFontColor","#7C7C7C"),this.fontSize=_e(e,"fontSize","14px"),this.fontFamily=_e(e,"fontFamily","inherit"),this.backgroundColor=_e(e,"backgroundColor","#F6FBFC"),this.active=new Le(_e(e,"active",{}))}}class Re{constructor(e){this.color=_e(e,"color","red"),this.enable=_e(e,"enable",!1)}}class Ne{constructor(e){this.family=_e(e,"family",""),this.url=_e(e,"url","")}}class Le{constructor(e){this.color=_e(e,"color","#06A6B7"),this.underlineColor=_e(e,"underlineColor","#06A6B7"),this.backgroundColor=_e(e,"backgroundColor","transparent")}}class ke{constructor(e){this.enable=_e(e,"enable",!1),this.icon=_e(e,"icon","https://app-cdn.moengage.com/sdk/bell-icon.svg"),this.postion=_e(e,"postion","0px 10px 40px 0"),this.countBackgroundColor=_e(e,"countBackgroundColor","#FF5A5F"),this.countColor=_e(e,"countColor","#fff"),this.zIndex=_e(e,"zIndex","999998"),this.iconBackgroundColor=_e(e,"iconBackgroundColor","#D9DFED"),this.fontFamily=_e(e,"fontFamily","inherit")}}class Me{constructor(e){this.img=_e(e,"img","https://app-cdn.moengage.com/sdk/cards-no-result.svg"),this.text=_e(e,"text","No notifications to show, check again later.")}}class xe{constructor(e){this.debugLevel=0,this.cluster=null,this.environment=null,this.baseDomainName="https://sdk-01.moengage.com/",this.inapp=null,this.customSoftAsk=null;var t=xe.baseLogTag+".constructor";null!=_e(e,"app_id",null)?(this.appId=_e(e,"app_id",null),this.integrationType=ye.OLD_SDK):null!=_e(e,"appId",null)?(this.appId=_e(e,"appId",null),this.integrationType=ye.NEW_SDK):(gt.error(1,t,"App Id not specified. Please check docs page to complete the integration - ",Y.WEBSDK_DOCS),this.integrationType=null),null!=_e(e,"debug_logs",null)?this.debugLevel=_e(e,"debug_logs",0):null!=_e(e,"debugLevel",null)?this.debugLevel=_e(e,"debugLevel",0):(gt.log(2,t,"No log level config found. Using default value of",0),this.debugLevel=0),this.appId&&(this.baseDomainName="https://sdk-01.moengage.com/",this.forceSwUpdate=_e(e,"forceSwUpdate",!1),this.cluster="DC_3",this.cluster=_e(e,"cluster",this.cluster),this.cluster&&null!=j[this.cluster]&&(this.environment=j[this.cluster]),_e(e,"environment",null)&&(this.environment=e.environment),this.environment&&(this.baseDomainName="https://"+this.environment+"/"),0{let n=t.trim();"%"===n.slice(-1)&&(n+="25");try{return decodeURIComponent(n)}catch(t){return gt.error(2,e,"Error decoding cookie:",n,t),n}}))}}Be.baseTag="CookieStorage";const Ue="MOE_DATA";class Fe{static setPrefix(e){Fe.prefix=e+"_"}static set(e,t){if(Fe.baseLogTag,e=Fe.prefix+e,localStorage){const n=Fe.getMoeData();n[e]=t,localStorage.setItem(Ue,JSON.stringify(n))}var n=Fe.KEYS_SHARED_WITH_COOKIE.indexOf(e);if(Fe.isSharedWithCookie&&0<=n){const i="object"!=typeof t||Array.isArray(t)?t:Object.assign({},t);0===n&&Array.isArray(i.attributes)&&(i.attributes=i.attributes.filter((e=>!!M.includes(e.key)))),e===r.SUBSCRIPTION_DETAILS&&(i.domain=t.domain,i.token=t.token,i.endpoint=t.endpoint,i.keys=t.keys),Be.set(e,i)}}static get(e){return Fe.baseLogTag,e=Fe.prefix+e,localStorage?_e(Fe.getMoeData(),e,null):null}static remove(e){var t=Fe.baseLogTag+".remove",n=Fe.prefix+e;if(localStorage&&null!=Fe.get(e)){const i=Fe.getMoeData();delete i[n],localStorage.setItem(Ue,JSON.stringify(i)),gt.log(2,t,"Key",e,"removed.")}Fe.isSharedWithCookie&&0<=Fe.KEYS_SHARED_WITH_COOKIE.indexOf(e)&&Be.remove(e)}static logout(){const e=["INIT_DATA","Q","WEB_SETTINGS","SUBSCRIPTION_DETAILS","PUSH_TOKEN","GRACEFUL_DATA"];for(const t in r)e.indexOf(t)<0&&Fe.remove(r[t]);for(const e in r.Q)Ie.purge(e)}static getString(e){if(e=Fe.prefix+e,localStorage)return"string"==typeof(e=Fe.get(e))||e instanceof String?e:JSON.stringify(e)}static removePrefix(){Fe.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)})),e=e.filter((e=>!(M.includes(e.key)&&n.attributes.findIndex((t=>t.key===e.key))<0))),n.attributes=e}Fe.set(e,n)}}Fe.removeStaleKeysFromLS()}static removeStaleKeysFromLS(){var e=Fe.baseLogTag+".removeStaleKeysFromLS";try{Object.keys(Fe.getMoeData()).forEach((e=>{this.KEYS_SHARED_WITH_COOKIE.includes(e)&&!Be.get(e)&&Fe.remove(e)}))}catch(t){gt.error(1,e,t)}}static getMoeData(){var e=Fe.baseLogTag+".getMoeData",t=localStorage.getItem(Ue);if(null==t)return{};try{return JSON.parse(t)}catch(t){return gt.error(1,e,t),{}}}}function We(e){return 0===Object.keys(e).length&&e.constructor===Object}function He(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&d)>>12,l=(4032&d)>>6,c=63&d,t+=n[o]+n[s]+n[l]+n[c];return 1==e?(d=i[r],o=(252&d)>>2,s=(3&d)<<4,t+=n[o]+n[s]+"=="):2==e&&(d=i[r]<<8|i[1+r],o=(64512&d)>>10,s=(1008&d)>>4,l=(15&d)<<2,t+=n[o]+n[s]+n[l]+"="),t}function Ke(e,t){return t.isChrome()||t.isOpera()||t.isEdge()||t.isSafari()?"vapid"===e.chrome.subscriptionMode&&e.chrome.vapidPublicKey:t.isFirefox()&&"vapid"===e.firefox.subscriptionMode&&e.firefox.vapidPublicKey}function Ve(e,t){return t.isChrome()||t.isOpera()||t.isEdge()||t.isSafari()?e.chrome.vapidPublicKey:t.isFirefox()?e.firefox.vapidPublicKey:""}function je(){const e=xe.get().swPath;return!(!e||!e.includes("tools/moengage"))}function Ye(e){return e.replace(/[\uff0e]/g,".")}function ze(){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 qe(){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)?fe.TV:t?fe.TABLET:ze()?fe.MOBILE:fe.WEB}function $e(e,t){const n=t&&new RegExp("^("+t.join("|")+")$");return qe()===fe.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:fe.TV.toUpperCase()}:{}}function Je(e){return new Date(Date.parse(e))}function Xe(){return window[window.moengage_object||"Moengage"]}Fe.baseLogTag="PersistentStorage",Fe.prefix="",Fe.isSharedWithCookie=!1,Fe.KEYS_SHARED_WITH_COOKIE=[r.USER_DATA,r.SUBSCRIPTION_DETAILS,r.SOFT_ASK_STATUS,r.PUSH_TOKEN,r.OPT_IN_SHOWN_TIME,r.HARD_ASK_STATUS,r.SESSION];const Qe=e=>"string"==typeof e,Ze=e=>"[object Date]"===Object.prototype.toString.call(e);function et(e){return"object"==typeof e&&!Ze(e)}function tt(e,t){if(null==e||null==t)return e===t;if(e instanceof Function)return e===t;if(e instanceof RegExp)return e===t;if(e===t||e.valueOf()===t.valueOf())return!0;if(Array.isArray(e)&&e.length!==t.length)return!1;if(e instanceof Date)return!1;if(!(e instanceof Object))return!1;if(!(t instanceof Object))return!1;const n=Object.keys(e);return Object.keys(t).every((e=>-1!==n.indexOf(e)))&&n.every((n=>tt(e[n],t[n])))}function nt(e){const t=e?new Date(e):new Date;return`${t.getDate()}:${t.getMonth()+1}:${t.getFullYear()}:${t.getHours()}:${t.getMinutes()}:`+t.getSeconds()}const it=e=>{if(e){const t=e.replace("?","").split("&"),n={};return t.forEach((e=>{e=(t=e.split("="))[0];var t=decodeURIComponent(t[1]||"");n[e]?"[object Array]"===Object.prototype.toString.call(n[e])?n[e].push(t):n[e]=[n[e],t]:n[e]=t})),JSON.parse(JSON.stringify(n))}return{}},at=e=>{var t,n,i=Fe.get(r.WEB_SETTINGS);null!=i&&i.configs.isWebPersonalisationModuleEnabled&&null!==(t=window.MoeWebP)&&void 0!==t&&t.clearLastFetchedTime(!0),e&&null!==(n=window.MoeWebP)&&void 0!==n&&n.getLiveExperiences()},rt=(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},ot=e=>{let t;try{t=JSON.stringify(e)}catch(e){return!1}return new Blob([t]).size/1024>195},st=e=>e===s||e===b;function lt(e){return`Event "${e}" can't get tracked as its size is more than 195 KB. Max permissible event size is 195 KB.`}class ct{static logData(e,t){return{log_type:e,sent_time:(new Date).toISOString(),lake_fields:t}}static setRemoteLogging(e){return this.isTrackingEnabled||(this.logLevel=null==e?void 0:e.configs.logLevel,this.isTrackingEnabled=e.configs.remoteLogTracking,this.isTrackingEnabled)}static log(e,t,n,i,...a){!this.isTrackingEnabled||e!==this.logLevel&&"verbose"!==this.logLevel||Xe().remoteLogs.addRemoteLogs(this.logData(e,{msg:n+[...a].toString(),file_name:t,trace:i}))}}let dt="color: white; background: #41AE55; border-radius: 5px;";class gt{static setLogLevel(e,t){var n=gt.baseLogTag+".setLogLevel";null==Te.get(a)&&Te.set(a,[]),null==e?gt.logLevel=0:e in[0,1,2]?0<(gt.logLevel=e)&&t&>.releaseAllLogs():gt.warn(0,n,"Value",e,"not supported for setDebugLevel(). Current log level is",gt.logLevel,". Debug level can only be [0, 1, 2]")}static setLogTabStyle(e){gt.tagLogStyle=gt.tagLogStyle.replace("#48beab",e)}static log(e,t,n,...i){e<=gt.logLevel?console.log("%c "+gt.logBrand+" %c %c info %c %c "+t+" ",dt,"","color: white; background: #18a0bf; border-radius: 5px;","",gt.tagLogStyle,n,...i):gt.cacheLog((()=>{gt.log(e,t,n,...i)}))}static remoteLogTracking(e,t,n,i,...a){ct.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||ct.log("error",t,n,...i),e<=gt.logLevel?console.error("%c "+gt.logBrand+" %c %c error %c %c "+t+" ",dt,"","color: white; background: #cc0a0a; border-radius: 5px;","",gt.tagLogStyle,n,...i.slice(0,-1)):gt.cacheLog((()=>{gt.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||ct.log("warning",t,n,...i),e<=gt.logLevel?console.warn("%c "+gt.logBrand+" %c %c warn %c %c "+t+" ",dt,"","color: white; background: #e8ab51; border-radius: 5px;","",gt.tagLogStyle,n,...i.slice(0,-1)):gt.cacheLog((()=>{gt.warn(e,t,n,...i,{isCached:!0})}))}static customLabel(e,t,n,...i){e<=gt.logLevel?console.log("%c "+gt.logBrand+" %c %c "+t+" %c %c "+n+" %c ",dt,"",gt.tagLogStyle,"","color: white; background: #a400ff; border-radius: 5px;","",...i):gt.cacheLog((()=>{gt.customLabel(e,t,n,...i)}))}static image(e,t){e<=gt.logLevel?console.log("%c+","font-size: 1px; padding: 20px 80px; line-height: 45px; background: url("+t+"); background-size: 160px 90px; color: transparent;"):gt.cacheLog((()=>{gt.image(e,t)}))}static releaseAllLogs(){var e=Te.get(a),t=e.length;const n=e;if(Te.set(a,[]),0{var r=JSON.stringify(_e(n,"postData",null));t=rt(t,_e(n,"queryParams",null));const o=new XMLHttpRequest;o.open(e,t,!0),ut.addRequestHeaders(o,_e(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}}($i=($i=ut=ut||{}).METHODS||($i.METHODS={})).GET="GET",$i.POST="POST";const pt=ut;class ht{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){gt.error(1,"Utils.PromiseObject","Promises not supported")}}}var mt=n(877);class ft{initiateSessionAndSource(e){return new Promise(((t,n)=>{this.isSessionRunning()&&this.isCurrentSourceSameAsPreviousSource()||this.startNewSession(e),t(!0)}))}isSessionRunning(){return this.getSessionKey()&&!this.isSessionExpired()}isSessionExpired(){var e=this.getSessionExpiryTime(),t=Te.get("wasBrowserInactive");return!(!t&&null!==t)&&(this.isWindowActive()&&Te.set("wasBrowserInactive",!1),(new Date).getTime()>e)}isNonEventInteractive(e){return ft.NON_INTERACTIVE_EVENTS.includes(e.name)||0"moe_non_interactive"===e.key&&1===e.value)).length}getCurrentSource(){const e=it(window.location.search);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=it(window.location.search),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,Fe.set(q,t)}removeCurrentSource(){const e=this.getSession();e&&(e.currentSource=void 0,Fe.set(q,e))}getSavedSource(){var e=_e(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,tt(e,t)}getSessionKey(){return _e(this.getSession(),"sessionKey",null)}getSessionStartTime(){return _e(this.getSession(),"sessionStartTime",null)}getSessionExpiryTime(){return _e(this.getSession(),"sessionExpiryTime",null)}getSessionMaxTime(){return _e(this.getSession(),"sessionMaxTime",null)}getSession(){return Fe.get(q)}geCustomIdentifiersToTrack(){return _e(this.getSession(),"customIdentifiersToTrack",[])||[]}generateSessionKey(){return(0,mt.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},Fe.set(q,t)}extendSession(){const e=this.getSession();e&&(e.sessionExpiryTime=(new Date).getTime()+1e3*e.sessionMaxTime,Fe.set(q,e))}handleBrowserInactivity(e){"hidden"===e&&Te.set("wasBrowserInactive",!0)}isWindowActive(){return!!Te.get("isWindowActive")}getNumberOfSessions(){return _e(Fe.get(q),"numberOfSessions")||0}}ft.NON_INTERACTIVE_EVENTS=[d,p,d,S];class vt{constructor(e,t,n){this.os="web",this.osPlatform=e.userAgent,this.isMobile=ze(),this.os=ze()?"mweb":"web",this.name=vt.getBrowserName(e.userAgent,t),this.isIncognito=n}static getInstance(){return e=this,i=function*(){if(null!=Te.get(t))return Te.get(t);var e=yield vt.isIncognito(window),n=new vt(navigator,document,e);return Te.set(t,n),(e=Fe.get(r.BROWSER_DETAILS))&&vt.isBrowserUpdated(e,n)||Fe.set(t,n),n},new(n=(n=void 0)||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())}));var e,n,i}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?vt.BROWSER_NAMES.INTERNET_EXPLORER:-1bt(this,void 0,void 0,(function*(){let i=!0;e.key=Tt.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?(tt(this.attributes[a].value,e.value)&&(gt.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())):(gt.log(2,t,"Adding attribute:",e),this.attributes.push(e)),this.save().then((()=>{n(i)}))}))))}isAttibuteTrackingRequired(e){return bt(this,void 0,void 0,(function*(){var t=yield nn.getWebSDKSettings();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=Tt.baseLogTag+".getLocalUser";return new Promise((t=>{var n;Fe.get(r.USER_DATA)?(gt.log(2,e,"Found user in localstorage"),n=Fe.get(r.USER_DATA),t(new Tt(n))):t(null)}))}static getCookieUser(){return new Promise((e=>{var t=Tt.baseLogTag+".getLocalUser";Be.get(r.USER_DATA)?(gt.log(2,t,"Found user in cookie"),t=Be.get(r.USER_DATA),e(new Tt(t))):e(null)}))}static getMigrationUser(){const e=Tt.baseLogTag+".getLocalUser";return new Promise((t=>{var n=localStorage.getItem(r.OLD_SDK.USER_DATA);if(n)try{var i=JSON.parse(n);if(i.is_new_sdk_migrated)t(null);else{const e=new Tt({deviceAdded:_e(i,"device_add",!1),deviceUuid:_e(i,"uuid",(0,mt.v4)())}),n=_e(i,"user_attrs",{});for(const t in n)n.hasOwnProperty(t)&&e.attributes.push(new Et(t,n[t]));var a=localStorage.getItem(r.OLD_SDK.PUSH_TOKEN);null!=a&&"NA"!==a&&"null"!==a&&(e.subscribedToOldSdk=!0),t(e)}}catch(n){gt.error(1,e,"Error getting the migration user. Resolving as a new user."),gt.error(1,e,n),t(null)}else t(null)}))}static getSync(){return Tt.instance}static get(){const e=Tt.baseLogTag+".get";return null!=_t||(_t=new Promise((t=>{St.getInstance().then((n=>{nn.getWebSDKSettings().then((n=>{var i=Tt.getLocalUser(),a=n.isDomainLevelStorage?Tt.getCookieUser():"resolved",o=Tt.getMigrationUser();Promise.all([i,a,o]).then((i=>{const a=i[0],o=i[1],s=i[2];i=()=>{var i;if(o&&"resolved"!==o)gt.log(1,e,"User resolved from cookie: ",o),o.save().then((e=>{t(e)}));else{gt.log(1,e,"Local user: ",a);const o=new Tt(a);n.isPushSubBilling&&(null!==(i=Fe.get(r.SUBSCRIPTION_DETAILS))&&void 0!==i&&i.token||function(e,t){const n=[A,P,...t];return 0n.includes(e.key))).length}(o.attributes,null==n?void 0:n.configs.subscriberBasedBillingAttributes)?(o.deviceAdded=!0,nn.trackDeviceAttributes()):o.deviceAdded=!1),o.save().then((e=>{t(e)}))}},s?s.save().then((n=>{var i=localStorage.getItem(r.OLD_SDK.USER_DATA);if(i){const e=JSON.parse(i);e.is_new_sdk_migrated=!0,localStorage.setItem(r.OLD_SDK.USER_DATA,JSON.stringify(e))}gt.log(1,e,"User resolved from older SDK: ",n),t(n)})):i()})).catch((t=>{gt.log(1,e,"Error in fetching/creating user",t)}))})).catch((t=>{gt.error(1,e,"Error in getting Web SDK Settings. This might indicate that the App is blocked.")}))}))}))),_t}static logout(){return new Promise((e=>{_t=null,this.instance=null,window.MoeWebP&&(window.MoeWebP.deviceUuid=null),e(!0)}))}save(){var e;Tt.baseLogTag,Tt.isAmpEnabled()&&(this.deviceUuid=Be.get("moe_uuid")),Fe.get("WEB_SETTINGS");var t=Fe.get(r.WEB_SETTINGS);return null!=t&&t.configs.isWebPersonalisationModuleEnabled&&null!==(e=window.MoeWebP)&&void 0!==e&&e.deviceUuid&&this.deviceUuid!==window.MoeWebP.deviceUuid&&(this.deviceUuid=window.MoeWebP.deviceUuid),Tt.instance=this,new Promise((e=>{Fe.set(r.USER_DATA,this),Be.setRaw(Z,Tt.instance.deviceUuid),e(this)}))}static isAmpEnabled(){const e=Be.get(Z);return e&&e.includes("amp")}getAttribute(e){let t=null;return e=Tt.getMorphedKey(e),this.attributes.map((n=>{n.key===e&&(t=n.value)})),t}indexOfAttribute(e){let t=-1;return e=Tt.getMorphedKey(e),this.attributes.map(((n,i)=>{n.key===e&&(t=i)})),t}static getMorphedKey(e){switch(e){case"id":e=w;break;case"email":e=A;break;case"name":e=C;break;case"first_name":e=O;break;case"last_name":e=D;break;case"mobile":e=P;break;case"gender":e=R;break;case"birthday":e=N}return e}}Tt.baseLogTag="UserModel",Tt.isResolved=!1,Tt.instance=null;class It{constructor(){var e=It.baseLogTag+".constructor";const t=void 0;let n=Tt.getSync().getAttribute("id");n=n?n.toString():void 0;const i=window.analytics;let a,r;if(i){r=i._VERSIONS;try{a=i.user().anonymousId()}catch(t){gt.error(1,e,"Error getting anonymous id from segment api",t)}}this.c=void 0,this.h="",this.identifiers=void 0,(n||a)&&(this.identifiers={moe_user_id:n,segment_id:a}),this.meta={bid:(0,mt.v4)(),segmentSdkData:i?r:void 0}}}It.baseLogTag="ReportPostData";class wt{constructor(e,t,n){wt.baseLogTag,this.type=e,this.getParams=t,this.event=n,this.postData=new It;const i={},a={};for(const e of n.attributes)if(e&&null!=e.key&&(this.status=wt.STATUS.VALID,null!=e.value))if("function"==typeof e.value.getMonth){const t={};t[e.key]=Math.round(e.value.getTime()-6e4*e.value.getTimezoneOffset()),null==a.timestamp&&(a.timestamp=[]),a.timestamp.push(t)}else i[e.key]=e.value;this.postData.e=n.name,this.postData.a=i,this.postData.c=We(a)?void 0:a,window&&window.location&&null!=window.location.href&&(this.postData.url=window.location.href)}}wt.baseLogTag="ReportClass",(yt=($i=wt=wt||{}).STATUS||($i.STATUS={}))[yt.INVALID=0]="INVALID",yt[yt.VALID=1]="VALID",($i=$i.REPORT_ADD_TYPE||($i.REPORT_ADD_TYPE={}))[$i.USER_ATTRIBUTE=0]="USER_ATTRIBUTE",$i[$i.EVENT=1]="EVENT";const At=wt;function Ct(e,t){return!xe.get().disableWebPush&&"https"===e.platformSettings.chrome.domainType&&0<=Ee.indexOf(t.name)&&navigator.serviceWorker&&"PushManager"in window&&"Notification"in window}function Ot(e,t){return`\n
\n ${e}\n ${!t&&'\n \n Powered by \n '}\n
\n `}function Dt(e,t){return`\n
\n ${e}\n ${!t&&'\n \n Powered by \n '}\n
\n `}const Pt=class{constructor(e){this.isBeaconDisabled=this.parseSentryBooleanFlag(_e(e,"b_d",!1)),this.isCardsModuleEnabled=this.parseSentryBooleanFlag(_e(e,"c_s",!1)),this.isWebPersonalisationModuleEnabled=this.parseSentryBooleanFlag(_e(e,"c_w_p_e",!1)),this.eventBatchCount=_e(e,"e_b_c",15),this.logLevel=_e(e,"log_level"),this.periodicFlushTime=_e(e,"p_f_t",30),this.isBatchingEnabled=this.parseSentryBooleanFlag(_e(e,"s_e_b_e",!1)),this.sessionInactiveDuration=_e(e,"s_i_d",1800),this.isRemoteLoggingEnabled=this.parseSentryBooleanFlag(_e(e,"s_log",!1)),this.sourceExtraParams=_e(e,"src_ext",[]),this.whitelistedEvents=_e(e,"w_e",[]),this.blacklistedEvents=_e(e,"b_e",[]),this.isAppActive=this.parseSentryBooleanFlag(_e(e,"a_s",!0)),this.remoteLogTracking=this.isRemoteLoggingEnabled&&!!this.logLevel,this.subscriberBasedBillingAttributes=_e(e,"s_b_a",[]),this.isMultiIdEnabled=this.parseSentryBooleanFlag(_e(e,"m_i_e",!1)),this.userAttributeCacheTime=_e(e,"u_a_c_t",43200)}parseSentryBooleanFlag(e="blocked"){return"allowed"===e||!0===e||"true"===e}};class Rt{constructor(){this.settingsVersion="V1",this.isDomainLevelStorage=!1,this.isConfigured=!1,this.isPushSubBilling=!1,this.isWebPushEnabled=!1,this.platformSettings=new xt,this.optInConfig=new Nt,this.configs=new Pt({})}static parseOldSettings(e){const t=Rt.baseLogTag+".parseOldSettings",n=new Rt;if((n.oldWebData=e).webData&&!We(e.webData))if(n.isConfigured=!0,e=e.webData,n.configs=new Pt(e),n.settingsVersion=_e(e,"wp_settings_version","V1"),"V2"===n.settingsVersion)n.isDomainLevelStorage=_e(e,"domain_level_storage",!1),n.isPushSubBilling=_e(e,"sub_billing",!1),_e(e,"is_enabled",!1)?(n.isWebPushEnabled=!0,n.platformSettings.chrome.domainType="https"):(n.isWebPushEnabled=!1,n.platformSettings.chrome.domainType="na"),n.platformSettings.chrome.subscriptionMode=_e(e,"web_push_platform_data.chrome.subscription_mode","vapid"),n.platformSettings.chrome.vapidPublicKey=_e(e,"web_push_platform_data.chrome.vapid_public_key",null),n.platformSettings.firefox.subscriptionMode=_e(e,"web_push_platform_data.firefox.subscription_mode","vapid"),n.platformSettings.firefox.vapidPublicKey=_e(e,"web_push_platform_data.firefox.vapid_public_key",null),n.optInConfig.reappearTime=_e(e,"prompt_again",24),n.optInConfig.type={"1-step":"ONE_CLICK","2-step":"TWO_STEP","self-handled":"SELF_HANDLED"}[_e(e,"opt_in_type","2-step")],n.optInConfig.showOverlay=_e(e,"show_overlay",!1),n.optInConfig.loadTime=_e(e,"load_time",0),n.optInConfig.type!==Nt.TYPE.SELF_HANDLED&&(i=e,a=n.optInConfig.type,r=n.optInConfig.showOverlay,new Promise(((e,t)=>{a===Nt.TYPE.ONE_CLICK&&r?e(function(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 St.getInstance();return n=a.isFirefox()?(i=Ot(`\n \n \n `,t),Dt(`\n \n \n `,t)):a.isOpera()?(i=Ot(`\n \n \n `,t),Dt(`\n \n \n `,t)):(i=Ot(`\n \n \n `,t),Dt(`\n \n \n `,t)),{mobileUI:n,webUI:i}}))}(_e(i,"overlay",null),_e(i,"hide_moe_branding",!1)).then((e=>e))):a===Nt.TYPE.TWO_STEP&&e(function(e,t){var{web:n,mobile:e}=e,n=`\n
\n
\n \n \n
\n
\n \n ${n.banner.title.text}\n \n

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

\n
\n ${t?"":``}\n
\n \n \n ${n.allow_button.text}\n \n
\n
\n \n \n `;return{mobileUI:`\n
\n
\n \n \n ${e.nudge.title.text}\n \n
\n
\n
\n \n \n
\n
${t?"":``}\n
\n `,webUI:n}}(_e(i,"opt_in_preview",null),_e(i,"hide_moe_branding",!1))),t("Its 1-step without overlay, so not constructing it.")})).then((e=>{n.optInConfig.softAskConfig.desktop.customHTML=e.webUI,n.optInConfig.softAskConfig.mobile.customHTML=e.mobileUI})).catch((e=>{gt.error(2,t,"Failed to construct overlay for hard ask: ",e)})));else{"false"===_e(e,"domain_level_storage",!1)?n.isDomainLevelStorage=!1:n.isDomainLevelStorage=!(!_e(e,"domain_level_storage",!1)&&"true"!==_e(e,"domain_level_storage",!1));let i=_e(e,"PushSubBilling",!1);"false"===i?i=!1:"true"===i&&(i=!0),(e=>"boolean"==typeof e)(i)||(i=!1),n.isPushSubBilling=i,n.platformSettings.chrome.domainType=_e(e,"webPushPlatformData.chrome.domain_type",""),n.platformSettings.chrome.subscriptionMode=_e(e,"webPushPlatformData.chrome.subscriptionMode","normal"),n.platformSettings.chrome.vapidPublicKey=_e(e,"webPushPlatformData.chrome.vapidPublicKey",null),n.platformSettings.firefox.enabled=!0,n.platformSettings.firefox.subscriptionMode=_e(e,"webPushPlatformData.firefox.subscriptionMode","normal"),n.platformSettings.firefox.vapidPublicKey=_e(e,"webPushPlatformData.firefox.vapidPublicKey",null),n.platformSettings.safari.websitePushId=_e(e,"webPushPlatformData.safari.websitePushId",null),null==n.platformSettings.safari.websitePushId?n.platformSettings.safari.enabled=!1:n.platformSettings.safari.enabled=!0,n.optInConfig.reappearTime=parseInt(_e(e,"promptAgain",24)),_e(e,"call_push_moengage",!0)?_e(e,"banner.banner_flag",null)?n.optInConfig.type=Nt.TYPE.TWO_STEP:n.optInConfig.type=Nt.TYPE.ONE_CLICK:(n.optInConfig.type=Nt.TYPE.SELF_HANDLED,n.optInConfig.reappearTime=0),n.optInConfig.showOverlay=_e(e,"show_overlay",!1),n.optInConfig.loadTime=_e(e,"load_time",0),n.optInConfig.softAskConfig.desktop.customHTML=_e(e,"bannerHtml.web",null),n.optInConfig.softAskConfig.mobile.customHTML=_e(e,"bannerHtml.mweb",null),xe.get().disableCookies&&(n.isDomainLevelStorage=!1,gt.warn(2,t,"Cookies Storage Been Disabled"))}else n.isConfigured=!1;var i,a,r;return n}}Rt.baseLogTag="SdkSettings";class Nt{constructor(){this.type=Nt.TYPE.NA,this.reappearTime=24,this.softAskConfig={desktop:new Lt,mobile:new Lt}}}class Lt{constructor(){this.customHTML=null}}($i=($i=Nt=Nt||{}).TYPE||($i.TYPE={})).NA="NA",$i.ONE_CLICK="ONE_CLICK",$i.TWO_STEP="TWO_STEP",$i.SELF_HANDLED="SELF_HANDLED";class kt{constructor(){this.enabled=!1,this.websitePushId=null}}class Mt{constructor(){this.enabled=!1,this.isServiceWorkerRoot=!0,this.serviceWorkerFilename="serviceworker.js",this.subscriptionMode="normal",this.vapidPublicKey=null,this.domainType=""}}($i=($i=Mt=Mt||{}).DOMAIN_TYPE||($i.DOMAIN_TYPE={})).NA="NA",$i.HTTPS="https",$i.MUTLI="multi";class xt{constructor(){this.safari=new kt,this.chrome=new Mt,this.firefox=new Mt}}const Bt=Rt;class Ut{static initialize(){return e=this,n=function*(){if(null==Ut.ready){Ut.offlineDataStore=be.createInstance({driver:[be.INDEXEDDB],name:ie,storeName:ae.NAME});const t=be.createInstance({driver:[be.INDEXEDDB],name:ie,storeName:"moe_data"}),n=be.createInstance({driver:[be.INDEXEDDB],name:ie,storeName:"moe_backup"});var e=[Ut.offlineDataStore.ready(),t.ready(),n.ready()];Ut.ready=Promise.all(e)}return yield Ut.ready},new(t=(t=void 0)||Promise)((function(i,a){function r(e){try{s(n.next(e))}catch(e){a(e)}}function o(e){try{s(n.throw(e))}catch(e){a(e)}}function s(e){var n;e.done?i(e.value):((n=e.value)instanceof t?n:new t((function(e){e(n)}))).then(r,o)}s((n=n.apply(e,[])).next())}));var e,t,n}}class Ft{constructor(e){this.EVENT_ACTION=e.event.name,this.EVENT_ATTRS=e.event.attributes&&Wt(e.event.attributes),this.EVENT_G_TIME=(new Date).getTime().toString(),this.EVENT_L_TIME=nt(e.event.timestamp),this.EVENT_ATTRS_CUST=e.postData.c,this.N_I_E=e.postData.nie}}Ft.baseLogTag="ReportAddViewEvent";const Wt=e=>{const t={};return e.forEach((e=>{t[e.key]=e.value})),t};class Ht{static visibilityChange(){"hidden"===document.visibilityState&&(Ht.windowClosed||zt.reactToTriggerEvents())}static removeEventListeners(){document.removeEventListener("visibilitychange",Ht.visibilityChange,!1)}static addListeners(){document.addEventListener("visibilitychange",Ht.visibilityChange,!1)}}Ht.windowClosed=!1;const Gt=Ht;function Kt(e,t){try{var n=qe();return!(null==e||!e.configs.isBatchingEnabled||("web"!==n||t.name!==St.BROWSER_NAMES.CHROME&&t.name!==St.BROWSER_NAMES.EDGE&&t.name!==St.BROWSER_NAMES.OPERA)&&("mobile"!==n||St.isIOS()||t.name!==St.BROWSER_NAMES.CHROME&&t.name!==St.BROWSER_NAMES.OPERA)||!navigator.sendBeacon)}catch(e){gt.error(1,"Utils.batching.isBatchingSupported",e)}}class Vt{static getRemoteLogsBatchRequestOptions(e){return new Promise((t=>{nn.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=nn.baseLogTag+".sendBatchOfLogs";return new Promise(((n,i)=>{Vt.getRemoteLogsBatchRequestOptions(e).then((i=>{var a=(a=xe.get()).baseDomainName+ue+i.query_params.os.toLowerCase()+"/"+a.appId;pt.post(a,{postData:i}).then((()=>{gt.log(1,t,"[sendBatchOfLogs] batch payload: "+JSON.stringify(e)),gt.log(1,t,"Batch Remote Logs sent to MoEngage successfully"),Vt.batchRemoteLogsApiRetries=1,n(!0)})).catch((n=>{gt.log(1,t,"Batch Remote Logs API failed",n),this.handleRemoteLogsFailure(e)}))}))}))}static handleRemoteLogsFailure(e){var t=nn.baseLogTag+".handleRemoteLogsFailure";gt.log(1,t,"Retry Batch Logs Failed API",Vt.batchRemoteLogsApiRetries),Vt.batchRemoteLogsApiRetries<3&&setTimeout((()=>{Vt.batchRemoteLogsApiRetries++,Vt.sendBatchOfLogs(e)}),3e3*Vt.batchRemoteLogsApiRetries)}static sendBeacon(e){Vt.getRemoteLogsBatchRequestOptions(e).then((e=>{var t=(t=xe.get()).baseDomainName+ue+e.query_params.os.toLowerCase()+"/"+t.appId+"?"+(new Date).getTime();gt.log(1,"RemoteLogsApi.sendBeacon","[sendBeacon] Remote Logs batch payload: "+JSON.stringify(e)),navigator.sendBeacon(t,JSON.stringify(e))}))}}Vt.batchRemoteLogsApiRetries=1;var jt=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 Yt{static updateEventStore(){qe()!==fe.TV&&be.createInstance({driver:[be.INDEXEDDB,be.WEBSQL,be.LOCALSTORAGE],name:"moe_tracking",storeName:Q}).setItem(Q,Yt.reports)}static spliceReports(e=Yt.reports.length){return e=Yt.reports.splice(0,e),Yt.updateEventStore(),e}static spliceRemoteLogs(e=Yt.remoteLogs.length){return Yt.remoteLogs.splice(0,e)}static shouldCreateNewBatch(){return!Yt.lastbatchCreatedAt||(new Date).getTime()-Yt.lastbatchCreatedAt>=oe}static shouldCreateNewBatchForRemoteLogs(){return!Yt.lastRemoteLogsbatchCreatedAt||(new Date).getTime()-Yt.lastRemoteLogsbatchCreatedAt>=oe}static reactToTriggerEvents(){var e=Yt.baseLogTag+".reactToTriggerEvents";0jt(this,void 0,void 0,(function*(){(Yt.isOfflineBatchingSupported(t,e)||e.configs.remoteLogTracking)&&(yield Ut.initialize(),Yt.periodicSyncInterval&&Yt.clearInterval(),Yt.periodicSyncInterval=window.setInterval(Yt.periodicSync.bind(this,e.configs.periodicFlushTime),1e3*e.configs.periodicFlushTime),Gt.addListeners())}))))}static sendBatch(e){var t=Yt.baseLogTag+".sendBatch";try{nn.sendBatchOfReports(e).then((()=>{Yt.lastbatchCreatedAt=(new Date).getTime()}))}catch(e){gt.error(1,t,"Error in sending batch",e)}}static sendRemoteLogs(e){var t=Yt.baseLogTag+".sendRemoteLogs";try{Vt.sendBatchOfLogs(e).then((()=>{Yt.lastRemoteLogsbatchCreatedAt=(new Date).getTime()}))}catch(e){gt.error(1,t,"Error in sending batch of remote logs",e)}}static createBatch(e){0{t(e)})),_e(qt.topicListeners,e.topic,[]).map((t=>{t(e)}))}static broadcastToWindow(e){window&&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(){qt.listeners=[],qt.topicListeners={}}static resetListeners(){qt.listeners=[]}}qt.listeners=[],qt.topicListeners={};const $t=qt;class Jt{constructor(e,t,n=!0){this.name=e,this.attributes=t,this.timestamp=(new Date).getTime(),n&&this.attributes.push(new Et("URL",location.href))}static createUserAttributeEvent(e){return new Promise(((t,n)=>{const i=[],a=e.key;switch(e.key){case"id":e.key=w;break;case"email":e.key=A;break;case"name":e.key=C;break;case"first_name":e.key=O;break;case"last_name":e.key=D;break;case"mobile":e.key=P;break;case"gender":e.key=R;break;case"birthday":e.key=N}i.push(e),Tt.get().then((n=>{var r=n.indexOfAttribute("oldUniqueIds");e.key===w&&-1{Tt.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 Et("moe_logged_in_status",!!a.getAttribute("id"));const s=new ft;var o=new Et("moe_first_visit",s.getNumberOfSessions()<=1);t.push(r,o),i(new Jt(e,t,n))}catch(r){gt.error(1,"Event.createEvent","Error occurred in create events ",r)}}))))}))}}class Xt{static addEvent(e){Xt.history.push(e),Xt.listeners.forEach((t=>{t(e)}))}static getHistory(){return Xt.history}static addEventListener(e){Xt.listeners.push(e)}static clear(){Xt.history=[]}static clearListeners(){Xt.listeners=[]}}Xt.history=[],Xt.listeners=[];class Qt{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;let o;n=!!n;try{o=yield nn.getWebSDKSettings()}catch(r){return gt.error(1,i,"Error in getting Web SDK Settings. This might indicate that the App is blocked."),void a(!1)}if("string"==typeof e&&e)if(o.configs.blacklistedEvents&&o.configs.blacklistedEvents.includes(e))gt.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(!ce.includes(e)||o.configs.whitelistedEvents&&o.configs.whitelistedEvents.includes(e))try{const s=[];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)&&s.push(new Et(e,t[e]));const i=new ft;yield i.initiateSessionAndSource(o);const l=yield Jt.createEvent(e,s);Xt.addEvent(l),null!=o&&o.configs.isWebPersonalisationModuleEnabled&&null!==(r=window.MoeWebP)&&void 0!==r&&r.handleInSessionEvent(l),nn.collectGetParams().then((t=>{st(e)&&delete t.push_id;const r=new At(At.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),nn.reportAdd(r,n).then((()=>{i.isNonEventInteractive(l)||i.extendSession(),a(!0)}))}))}else gt.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(r){gt.error(1,i,"Error occurred in tracking events ",r)}else gt.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 gt.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 Zt,en,tn=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 nn{static deviceAdd(){return new Promise(((e,t)=>tn(this,void 0,void 0,(function*(){const n=xe.get();return nn.collectGetParams(pe).then((i=>{i={queryParams:i=Object.assign(Object.assign({},i),{url:window.location.href})},pt.post(n.baseDomainName+pe,i).then((()=>{Tt.get().then((e=>{e.deviceAdded=!0,e.save().then((()=>{on.startPeriodicClear(r.Q.REPORT),nn.onDeviceAdd.res()}))})).then((()=>{this.trackDeviceAttributes(),e(!0)}))})).catch((e=>{Ie.enqueue(r.Q.DEVICE,!0),t(!1)}))}))}))))}static trackDeviceAttributes(){const e=nn.baseLogTag+".trackDeviceAttributes";return new Promise(((t,n)=>tn(this,void 0,void 0,(function*(){try{let t=qe().toUpperCase();t="WEB"===t?"DESKTOP":t,Qt.track(E,{deviceType:t});let n=!1;St.getInstance().then((t=>{nn.getWebSDKSettings().then((i=>tn(this,void 0,void 0,(function*(){if(Ct(i,t)){let t=Fe.get(r.PUSH_TOKEN);if(!t)try{"granted"===(yield window.Moengage.device.getPermissionState())&&(t=!0)}catch(t){gt.error(2,e,"Failed to get push notification permission state.",t)}n=t}})))).then((()=>{Qt.track(E,{[ge]:!!n,source:"deviceAdd"}),Fe.set(r.OPTED_STATUS_TRACK_TIME,Date.now())}))}))}catch(t){gt.error(2,e,"Failed to track device attributes.",t)}t(null)}))))}static reportAdd(e,t){const n=nn.baseLogTag+".reportAdd";return new Promise(((i,a)=>(t=!!t,nn.getWebSDKSettings().then((o=>{o.isPushSubBilling?Tt.get().then((o=>{var s;o.deviceAdded?nn.reportAddInternal(e,t).then((()=>{this.sendBroadcast(e),i(!0)})).catch((()=>{a(!1)})):(Ie.enqueue(r.Q.REPORT,e),gt.log(1,n,"Report added to queue as device not added yet:",e.event.name),gt.log(2,n,"Event Queued:",e.event.name),e.type===At.REPORT_ADD_TYPE.USER_ATTRIBUTE&&(s=e.event.attributes[0].key,o=null===(o=null===(o=this.sdkSettings)||void 0===o?void 0:o.configs)||void 0===o?void 0:o.subscriberBasedBillingAttributes,s===A||s===P||o.includes(s)?(gt.log(1,n,"Attribute accepted for push sub billing."),nn.deviceAdd()):gt.log(2,n,"Attribute NOT accepted for push sub billing.")),i(!0))})):nn.reportAddInternal(e,t).then((()=>{this.sendBroadcast(e),i(!0)})).catch((()=>{a(!1)}))})).catch((e=>{gt.error(1,n,"Error in getting Web SDK Settings. This might indicate that the App is blocked."),a(!1)})))))}static sendBroadcast(e){le.NAMES.includes(e.event.name)&&$t.broadcastToWindow({topic:le.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=>{nn.collectGetParams(re).then((n=>{var i=nn.getSegmentId()||"";const a=Tt.getSync(),r=new ft;var o={session_id:r.getSessionKey(),start_time:r.getSessionStartTime(),background_initiated:0};const s=[];var l=r.getActiveSource();l&&(r.setCurrentSource(l),s.push(l)),o={query_params:n,identifiers:{moe_user_id:a.getAttribute("id")||void 0,segment_id:i||void 0},meta:{bid:(0,mt.v4)(),request_time:(new Date).toISOString(),session:o,source:s.length?s:void 0},viewsCount:e.length,viewsInfo:[...e]},t(o)}))}))}static addReportsToOfflineDB(e,t){return tn(this,void 0,void 0,(function*(){const n=nn.baseLogTag+".addReportsToOfflineDB";var i=yield nn.getBatchRequestOptions([]);yield Ut.offlineDataStore.setItem(t||"report_add_"+(new Date).getTime(),e),yield Ut.offlineDataStore.setItem("requestMetaData",i),yield Ut.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((()=>{gt.log(2,n,"offline sync event registered")})).catch((e=>{gt.error(1,n,"Service worker sync error",e)})):gt.log(2,n,"Service worker sync unavailable")}))}))}static sendReportBeacon(e,t,n){var i=nn.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){gt.error(2,i,"Failed to send Report call with Beacon:",e)}return!1}static sendBatchOfReports(e){const t=nn.baseLogTag+".sendBatchOfReports";return new Promise(((n,i)=>{nn.getBatchRequestOptions(e).then((a=>{var r=xe.get();const o=r.baseDomainName+re+r.appId;nn.getWebSDKSettings().then((i=>window.navigator.onLine?nn.sendReportBeacon(i.configs.isBeaconDisabled,o,a)?(gt.log(1,t,"[sendBatchOfReports] batch payload: "+JSON.stringify(e)),gt.log(1,t,"Batch sent to MoEngage successfully through beacon"),void n(!0)):void pt.post(o,{postData:a}).then((()=>{gt.log(1,t,"[sendBatchOfReports] batch payload: "+JSON.stringify(e)),gt.log(1,t,"Batch sent to MoEngage successfully"),n(!0)})).catch((a=>{gt.error(1,t,"Batch Report add API failed",a),n(this.sendToOfflineTracking(e,a,i))})):this.sendToOfflineTracking(e,Se,i))).catch((e=>{e!==Se&>.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=nn.baseLogTag+".sendToOfflineTracking";return new Promise(((a,r)=>{St.getInstance().then((o=>{zt.isOfflineBatchingSupported(o,n)?(gt.error(1,i,"Add Report API failed, adding reports to offline db. ",t),nn.addReportsToOfflineDB(e).then((()=>{gt.log(2,i,"Network offline: Batch added to offline db")})),a(!0)):(gt.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=nn.baseLogTag+".reportAddInternal";return new Promise(((i,a)=>{nn.getWebSDKSettings().then((a=>{St.getInstance().then((o=>{if(t){const t=nn.getUpdatedPushDetails();for(const n in t)!t.hasOwnProperty(n)||st(e.event.name)&&"push_id"===n||(e.getParams[n]=t[n]);var s=$e();const n={queryParams:Object.assign(Object.assign({},e.getParams),s)};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;s=xe.get().baseDomainName,s+=pe,pt.post(s,n).then((()=>{let t=qe().toUpperCase();t="WEB"===t?"DESKTOP":t,Qt.track(E,{deviceType:t}),i(nn.handleReportAddSuccess(e))})).catch((t=>{Kt(a,o)?Ie.enqueue(r.Q.DEVICE,e):nn.handleReportAddFailure(e,t)}))}else Kt(a,o)?(zt.addReport(e,a.configs.eventBatchCount)&&(gt.log(1,n,"Event batched successfully:",e.event),this.addEventsToIDB(e.event)),i(!0)):(s=new Ft(e),ot(s)?(gt.error(1,n,lt(s.EVENT_ACTION)),i(!1)):nn.sendBatchOfReports([s]).then((()=>{i(nn.handleReportAddSuccess(e))})).catch((t=>{nn.handleReportAddFailure(e,t)})))}))})).catch((e=>{gt.error(1,n,"Error in getting Web SDK Settings. This might indicate that the App is blocked."),a(!1)}))}))}static handleReportAddSuccess(e){var t=nn.baseLogTag+".handleReportAddSuccess";return e.type===At.REPORT_ADD_TYPE.EVENT?(gt.log(1,t,"Event tracked successfully:",e.event),this.addEventsToIDB(e.event)):e.type===At.REPORT_ADD_TYPE.USER_ATTRIBUTE&>.log(1,t,"User attribute added successfully:",e.event.attributes),nn.addReportApiRetries=1,!0}static handleReportAddFailure(e,t){var n=nn.baseLogTag+".handleReportAddFailure";gt.error(1,n,"Add Report API failed",t),e.type===At.REPORT_ADD_TYPE.EVENT?gt.log(1,n,"Queueing unsuccessful event tracking:",e.event):e.type===At.REPORT_ADD_TYPE.USER_ATTRIBUTE&>.log(1,n,"Queueing unsuccessful user attribute add:",e.event.attributes),nn.addReportApiRetries<3&&setTimeout((()=>{nn.addReportApiRetries++,Ie.enqueue(r.Q.REPORT,e),on.startPeriodicClear(r.Q.REPORT)}),3e3*nn.addReportApiRetries)}static checkIfTokenValid(e){const t=xe.get().baseDomainName+he,n=xe.get();return new Promise((i=>{e?Tt.get().then((a=>{a={queryParams:{app_id:n.appId,unique_id:a.deviceUuid,push_id:e}},pt.post(t,a).then((e=>{200===e.status?i(!0):i(!1)})).catch((e=>{i(!1)}))})):i(!1)}))}static isAppBlocked(e){return!(!e||!1!==e.configs.isAppActive)}static getWebSDKSettings(){return new Promise(((e,t)=>{let n=xe.get();var i,a;null!=n&&null!=n.appId||(n=new xe(Fe.get(r.INIT_DATA))),nn.sdkSettings?nn.isAppBlocked(nn.sdkSettings)?t(!1):e(nn.sdkSettings):(i=(new Date).getTime(),null==(a=Fe.get(r.SETUP_TIME))||0{e(t)})).catch((e=>{t(!1)})):Fe.get(r.WEB_SETTINGS)?(nn.sdkSettings=Fe.get(r.WEB_SETTINGS),nn.isAppBlocked(nn.sdkSettings)?t(!1):e(nn.sdkSettings)):nn.getAndPersistWebSettings(n).then((t=>{e(t)})).catch((e=>{t(!1)})))}))}static getAndPersistWebSettings(e){const t=nn.baseLogTag+".getAndPersistWebSettings";return new Promise(((n,i)=>tn(this,void 0,void 0,(function*(){try{var a={queryParams:{app_id:(e=null==e.appId?new xe(Fe.get(r.INIT_DATA)):e).appId}};gt.log(1,t,"Fetching latest web sdk settings for",e.appId);var o=yield pt.get(e.baseDomainName+"v2/websdksettings",a);gt.log(1,t,"Fetching config settings for",e.appId);let h=o.responseText;"string"==typeof h&&(h=JSON.parse(h));var s=ze()?"mweb":"web",l=e.baseDomainName+$+s+"/"+e.appId;try{var c,d=Fe.get(r.USER_DATA),g={postData:{query_params:{unique_id:d&&d.deviceUuid}}},u=yield pt.post(l,g);gt.log(1,t,"Fetched latest web and config settings"),200===u.status&&(c=u.responseText,c=JSON.parse(c),h.webData=Object.assign(Object.assign({},h.webData),c))}catch(e){gt.error(1,t,"Config API failed")}var p=(new Date).getTime();if(h=Bt.parseOldSettings(h),Fe.set(r.WEB_SETTINGS,h),Fe.set(r.SETUP_TIME,p),nn.isAppBlocked(h))return void i(!1);nn.sdkSettings=h,n(h)}catch(a){gt.error(1,t,"Settings APi Failed: ",a),nn.webSdkApiRetries<3?setTimeout((()=>{nn.webSdkApiRetries++,n(nn.getAndPersistWebSettings(e))}),3e3*nn.webSdkApiRetries):i(!1)}}))))}static collectGetParams(e){return new Promise(((t,n)=>{Tt.get().then((n=>{let i=xe.get();null!=i&&null!=i.appId||(i=new xe(Fe.get(r.INIT_DATA)));const a=new Date,o=Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate(),a.getUTCHours(),a.getUTCMinutes(),a.getUTCSeconds(),a.getUTCMilliseconds());St.getInstance().then((a=>{var s,l=$e(e,[me,pe,re]);const c=Object.assign({os:a.os,os_platform:a.osPlatform,is_incognito:a.isIncognito,app_id:i.appId,os_ver:a.name,sdk_ver:"2.50.0",model:a.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()},l);l=n.getAttribute("cart_token"),je()&&l&&null!==(s=this.sdkSettings)&&void 0!==s&&s.configs.isMultiIdEnabled&&e!==pe&&(c.cart_token=l),null!=(l=Fe.get(r.PUSH_TOKEN))&&"NA"!==l&&""!==l&&"null"!==l&&(c.push_id=l),a.isWebPushCompatible()&&(Ke(this.sdkSettings.platformSettings,a)?(c.subscription_type="vapid",c.vapid_public=Ve(this.sdkSettings.platformSettings,a)):c.subscription_type="normal"),null!=i.environment&&(c.environment=i.environment),a.name===St.BROWSER_NAMES.SAFARI&&(c.websitePushId=this.sdkSettings.platformSettings.safari.websitePushId);var d=Fe.get(r.SUBSCRIPTION_DETAILS);if(null!=d&&null!=d.keys){for(const e in d.keys)c["keys_"+e]=encodeURI(d.keys[e]);null!=d.endpoint&&(c.endpoint=encodeURI(d.endpoint)),c.expirationTime=d.expirationTime}t(c)}))}))}))}static getUpdatedPushDetails(){const e={};var t=Fe.get(r.SUBSCRIPTION_DETAILS);if(null!=t){var n=Fe.get(r.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,Se);nn.getBatchRequestOptions(e).then((e=>{var t=(t=xe.get()).baseDomainName+re+t.appId+"?"+(new Date).getTime();gt.log(1,"MoeApi.sendBeacon","[sendBeacon] batch payload: "+JSON.stringify(e)),navigator.sendBeacon(t,JSON.stringify(e))}))}static addEventsToIDB(e){if(qe()!==fe.TV){const t=be.createInstance({driver:[be.INDEXEDDB,be.WEBSQL,be.LOCALSTORAGE],name:J,storeName:X});null!=t&&t.setItem(e.name,e)}}}nn.baseLogTag="MoeApi",nn.onDeviceAdd=new ht,nn.webSdkApiRetries=1,nn.offlineEvents=[],nn.addReportApiRetries=1;const an=n(967),rn=r.Q;class on{static clear(e){var t=on.baseLogTag+".clear";const n=[];for(;!Ie.isEmpty(e);)switch(e){case rn.REPORT:const i=Ie.dequeue(rn.REPORT);n.push((e=>{nn.reportAdd(i).then((()=>{e()}))}));break;case rn.DEVICE:Ie.dequeue(rn.DEVICE)&&n.push((e=>{nn.deviceAdd().then((()=>{e()}))}));break;default:gt.error(1,t,"Do not know how to handle queue with name:",e)}setTimeout((()=>{on.processing[e]=!0,an(n,5,((t,n)=>{on.processing[e]=!1}))}),0)}static startPeriodicClear(e){const t=on.baseLogTag+".startPeriodicCleanQ";on.clearInterval(e);var n=()=>{Ie.isEmpty(e)?(gt.log(1,t,"If you see multiple event tracks with same, they were captured over multiple visits or page refreshes."),_e(on.processing,e,!1)||on.clearInterval(e)):(on.clear(e),gt.log(1,t,"Starting periodic queue clear for",e))};n(),on.intervals[e]=setInterval(n,6e3)}static clearInterval(e){null!=on.intervals[e]&&(clearInterval(on.intervals[e]),on.intervals[e]=null)}}on.baseLogTag="QManager",on.intervals={},on.processing={},($i=Zt=Zt||{}).PROMPT="prompt",$i.GRANTED="granted",$i.DENIED="denied",$i.DISMISSED="dismissed";class sn{static addCallback(e,t){null!=e&&null!=t&&(null==sn.callbacks[e]&&(sn.callbacks[e]=[]),sn.callbacks[e].push(t))}static getCallbacks(e){return sn.callbacks[e]||[]}static runCallbacks(e){sn.getCallbacks(e).forEach((e=>{e()}))}}sn.callbacks={};class ln{constructor(e){this.swRegisterPromise=null,this.swActiveRetries=1;const t=ln.baseLogTag+".constructor";this.sdkSettings=e,this.registerServiceWorker().then((e=>{this.sendDataToServiceWorker()})).catch((e=>{gt.error(1,t,"Error registering serviceworker:",e)}))}showHardAsk(){const e=ln.baseLogTag+".showHardAsk";return new Promise(((t,n)=>{ln.isWebPushSupported().then((i=>{i?this.getCurrentPermissionState().then((i=>{this.registerServiceWorker().then((a=>{i!==Zt.DENIED?(gt.remoteLogTracking(1,"info",e,"Attempting to open hard ask"),Qt.track(v),$t.broadcastToWindow({topic:x,name:U.HARD_ASK_ATTEMPTED}),this.showOverlay(),this.askPermission().then((n=>{this.hideOverlay(),gt.remoteLogTracking(2,"info",e,"Permission state after hard ask:",n),n===Zt.GRANTED?this.getPushTokenDetails().then((e=>{this.sendDataToServiceWorker(e.token),t({state:n,subscriptionDetails:e})})):(this.sendDataToServiceWorker(),t({state:n,subscriptionDetails:null}))})).catch((t=>{gt.error(1,e,t),n(W)}))):(gt.remoteLogTracking(1,"info",e,"Hard ask not shown as permission state is",i),t({state:i,subscriptionDetails:null}))})).catch((t=>{gt.error(1,e,"Error registering serviceworker:",t),n(t)}))})).catch((t=>{gt.error(1,e,"Registering service worker failed:",t),n(W)})):(gt.warn(1,e,"Web push not supported in current browser environment"),n(F))}))}))}sendDataToServiceWorker(e){return new Promise((t=>{nn.collectGetParams().then((t=>{var n;e&&(t.push_id=e||Fe.get(r.PUSH_TOKEN)||void 0),t.isBatchingEnabled=Fe.get(r.WEB_SETTINGS).configs.isBatchingEnabled,je()||null!==(n=xe.get())&&void 0!==n&&n.swScope?be.createInstance({driver:[be.INDEXEDDB],name:"moe_database",storeName:"moe_data"}).setItem("reportParams",{data:t}):navigator.serviceWorker.ready.then((()=>{this.sendDataToServiceWorkerOnControllerReady(t)}))}))}))}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 St.getInstance().then((e=>navigator.permissions&&!e.isSafari()?navigator.permissions.query({name:"notifications"}).then((e=>ln.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",Fe.get(de)&&(i="denied")),t(ln.parsePermissionState(i))}))))}getPushTokenDetails(){const e=ln.baseLogTag+".getPushTokenDetails";return new Promise(((t,n)=>{this.getCurrentPermissionState().then((n=>{St.getInstance().then((i=>{n!==Zt.GRANTED?t({token:null,raw:null}):this.registerServiceWorker().then((n=>{let a=null;const r={userVisibleOnly:!0};Ke(this.sdkSettings.platformSettings,i)&&(a=Ve(this.sdkSettings.platformSettings,i),r.applicationServerKey=He(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=>{gt.error(1,e,"Error in subscribtion: ",n),t({token:null,raw:null})}))};n.pushManager.getSubscription().then((e=>{if(e)if("vapid"===this.sdkSettings.platformSettings.chrome.subscriptionMode&&e.options&&e.options.applicationServerKey){var t=Ge(e.options.applicationServerKey);[a,a+"=",a+"==",Ge(He(a))].indexOf(t)<0?e.unsubscribe().then((()=>{o()})):o()}else o();else o()}))})).catch((n=>{gt.error(1,e,"Error in getting push token: ",n),t({token:null,raw:null})}))}))}))}))}removeToken(){return Fe.remove(r.PUSH_TOKEN),Fe.remove(r.OPTED_STATUS_TRACK_TIME),Fe.remove(r.SUBSCRIPTION_DETAILS),Promise.resolve()}askPermission(){return new Promise(((e,t)=>{var n;null!==(n=window.Notification)&&void 0!==n&&n.requestPermission().then((t=>{Fe.set(r.OPT_IN_SHOWN_TIME,Date.now()),Qt.track(p),$t.broadcastToWindow({topic:x,name:U.HARD_ASK_SHOWN}),$t.deprecatedSdkCallback("opt_in_shown"),sn.runCallbacks(U.HARD_ASK_SHOWN),e(ln.parsePermissionState(t))})).catch((e=>{t(G)}))}))}registerServiceWorker(){const e=ln.baseLogTag+".registerServiceWorker";return"chrome-extension:"===window.location.protocol?navigator.serviceWorker.ready:(null!=this.swRegisterPromise||(this.swRegisterPromise=new Promise(((t,n)=>{if(ln.registeredServiceWorker)t(ln.registeredServiceWorker);else if("serviceWorker"in navigator){let i="serviceworker.js",a=!1;if(xe.get()&&null!=xe.get().swPath&&(i=xe.get().swPath,a=!0),"/"===i[0]||i.startsWith("http")||(i="/"+i),je())gt.log(1,e,"Removing scope in case of shopify."),this.registerScopedSW(i,/moengage/,t,n);else{let r="/";xe.get()&&null!=xe.get().swScope?(r=xe.get().swScope,this.registerScopedSW(i,r,t,n)):(a&&(gt.log(1,e,"Using user defined path to serviceworker:",i),r=i.substr(0,i.lastIndexOf("/")+1),ln.canSwBeRegisteredWithScope(r)||(gt.error(1,e,"Service worker can only be registered from same directory or child directory."),n(K))),navigator.serviceWorker.register(i,{scope:r}).then((i=>{gt.log(2,e,"Serviceworker registered"),navigator.serviceWorker.ready.then((n=>{gt.log(2,e,"Serviceworker ready"),ln.registeredServiceWorker=n,xe.get()&&xe.get().forceSwUpdate&&n.update(),t(n)})).catch((t=>{gt.error(1,e,"Service worker register failed:",t),n(W)}))})).catch((t=>{gt.error(1,e,"Service worker register failed:",t),n(W)}))),gt.log(1,e,"Scope for serviceworker:",r)}}else gt.error(1,e,"Service worker not supported"),n("Service worker not supported")}))),this.swRegisterPromise)}registerScopedSW(e,t,n,i){const a=ln.baseLogTag+".registerScopedSW";navigator.serviceWorker.register(e).then((e=>{gt.log(2,a,"Serviceworker registered"),navigator.serviceWorker.getRegistrations().then((e=>{e.forEach((e=>{setTimeout((()=>{e.active&&e.active.scriptURL.match(t)&&(gt.log(2,a,"Serviceworker ready"),ln.registeredServiceWorker=e,xe.get()&&xe.get().forceSwUpdate&&e.update(),n(e))}),100)}))})).catch((e=>{gt.error(1,a,"Service worker register failed:",e),i(W)}))})).catch((e=>{gt.error(1,a,"Service worker register failed:",e),i(W)}))}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=>{St.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?Zt.PROMPT:"granted"===e?Zt.GRANTED:"denied"===e?Zt.DENIED:"default"===e?Zt.DISMISSED:null}showNotification(e){const t=ln.baseLogTag+".showNotification";this.registerServiceWorker().then((n=>{e?e.title?e.body?(null==e.requireInteraction&&(e.requireInteraction=!0),n.showNotification(e.title,e)):gt.error(1,t,"Notification body can not be blank"):gt.error(1,t,"Notification title can not be blank"):gt.error(1,t,"Notification object can not be blank")})).catch((e=>{gt.error(1,t,"Error registering serviceworker:",e)}))}showOverlay(){if(this.sdkSettings.optInConfig.showOverlay&&this.sdkSettings.optInConfig.type===Nt.TYPE.ONE_CLICK){const e=document.createElement("div");e.id="moe-push-div",e.style.display="none",e.className="moe-push-class",St.getInstance().then((t=>{t.isMobile?e.innerHTML=this.sdkSettings.optInConfig.softAskConfig.mobile.customHTML:e.innerHTML=this.sdkSettings.optInConfig.softAskConfig.desktop.customHTML;const n=document.body.firstChild;let i;if(n.parentNode.insertBefore(e,n),(t=t.name)===St.BROWSER_NAMES.CHROME||t===St.BROWSER_NAMES.OPERA_NEON?i=document.getElementsByClassName("moe_chrome"):t===St.BROWSER_NAMES.FIREFOX?i=document.getElementsByClassName("moe_firefox"):t!==St.BROWSER_NAMES.OPERA&&t!==St.BROWSER_NAMES.SAFARI||(i=document.getElementsByClassName("moe_opera")),0===i.length)document.getElementById("moe-push-div").style.display="none";else for(let e=i.length-1;0<=e;e--)i[e].style.display="block";this.overlayTimer=window.setTimeout((()=>{""===e.style.opacity&&(e.style.display="block")}),1500),e.onclick=()=>{this.hideOverlay()}}))}}hideOverlay(){clearTimeout(this.overlayTimer);const e=document.getElementById("moe-push-div");null!=e&&(e.style.visibility="none",e.style.opacity="0",e.parentNode.removeChild(e))}}ln.baseLogTag="HTTPS-NotificationManager";const cn="Web push settings not configured on MoEngage dashboard: "+z;class dn{constructor(e,t){this.currentManager=null;var n=dn.baseLogTag+".constructor";this.config=e,this.browser=t,this.browser.isWebPushCompatible()?e.platformSettings.chrome&&("https"===e.platformSettings.chrome.domainType?"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 ln(e):gt.error(1,n,"Web Push does not work in http mode"):(je()&&new ln(e),gt.warn(1,n,"Web push settings not configured. Please configure at ",z))):this.browser.name===St.BROWSER_NAMES.SAFARI&&e.platformSettings.safari&&"safari"in window&&"pushNotification"in window.safari&&(this.currentManager=null,gt.warn(1,n,"Web push is only supported on Safari 16 and above."))}showHardAsk(){const e=dn.baseLogTag+".showHardAsk";return new Promise(((t,n)=>{this.getCurrentPermissionState().then((i=>{null!=this.currentManager?i===Zt.PROMPT?this.currentManager.showHardAsk().then((n=>{n.state===Zt.DISMISSED?(Qt.track(m),$t.broadcastToWindow({topic:x,name:U.HARD_ASK_DISMISSED}),$t.deprecatedSdkCallback("opt_in_dismissed"),sn.runCallbacks(U.HARD_ASK_DISMISSED),gt.log(1,e,"Hard ask was dismissed")):n.state===Zt.GRANTED?(Qt.track(h),$t.broadcastToWindow({topic:x,name:U.HARD_ASK_ALLOWED,data:n.subscriptionDetails}),$t.deprecatedSdkCallback("opt_in_allowed"),sn.runCallbacks(U.HARD_ASK_ALLOWED),gt.log(1,e,"Push permission was granted"),gt.customLabel(1,e,"token",n.subscriptionDetails.token)):n.state===Zt.DENIED&&(Qt.track(f),Qt.track("Web Push Opt-in Denied"),$t.broadcastToWindow({topic:x,name:U.HARD_ASK_DENIED}),$t.deprecatedSdkCallback("opt_in_blocked"),sn.runCallbacks(U.HARD_ASK_DENIED),gt.log(1,e,"Notification permission was denied")),t(n)})).catch((n=>{gt.error(1,e,"Error showing hard ask:",n),t({state:i,subscriptionDetails:null})})):(gt.log(1,e,"Not showing Hard Ask as current permission state is",i),this.getPushTokenDetails().then((n=>{gt.customLabel(1,e,"token",n.token),t({state:i,subscriptionDetails:n})})).catch((n=>{gt.warn(1,e,"Could not get push token details"),t({state:i,subscriptionDetails:null})}))):(gt.log(1,e,"MoEngage web push settings not configured. Please configure at",z),n(H))})).catch((e=>{n(e)}))}))}getCurrentPermissionState(){return null!=this.currentManager?this.currentManager.getCurrentPermissionState():Promise.reject(cn)}getPushTokenDetails(){return null!=this.currentManager?this.currentManager.getPushTokenDetails():Promise.reject(cn)}removeToken(){return null!=this.currentManager?this.currentManager.removeToken():Promise.reject(cn)}showNotification(e){var t=dn.baseLogTag+".showNotification";if(null!=this.currentManager)return this.currentManager.showNotification(e);gt.warn(1,t,cn)}}dn.baseLogTag="NotificationManager";class gn{constructor(e){this.mainDivs=[],this.config=e}showSoftAsk(){const e=gn.baseLogTag+".showSoftAsk";return new Promise(((t,n)=>{let i=this.config.optInConfig.loadTime;St.getInstance().then((n=>{(this.config.optInConfig.type===Nt.TYPE.SELF_HANDLED||n.isSafari()&&this.config.optInConfig.type===Nt.TYPE.ONE_CLICK)&&(i=0),i&>.log(1,e,"Delay of",i," second(s) requested before opt-in flow"),setTimeout((()=>{!n.isWebPushCompatible()||this.config.optInConfig.type!==Nt.TYPE.TWO_STEP&&this.config.optInConfig.type!==Nt.TYPE.SELF_HANDLED?(Fe.set(r.SOFT_ASK_STATUS,en.NOT_SHOWN),t({showHardAsk:!0,softAskState:en.NOT_SHOWN})):this.showOptIn((()=>{gt.log(1,e,"Soft ask was shown"),Fe.set(r.OPT_IN_SHOWN_TIME,Date.now()),Fe.set(r.SOFT_ASK_STATUS,en.SHOWN),$t.broadcastToWindow({topic:x,name:U.SOFT_ASK_SHOWN}),$t.deprecatedSdkCallback("soft_ask_shown"),sn.runCallbacks(U.SOFT_ASK_SHOWN)}),(()=>{Qt.track(u),this.hideOptIn(),gt.log(1,e,"Soft ask was allowed"),Fe.set(r.SOFT_ASK_STATUS,en.ALLOWED),t({showHardAsk:!0,softAskState:en.ALLOWED}),$t.broadcastToWindow({topic:x,name:U.SOFT_ASK_ALLOWED}),$t.deprecatedSdkCallback("soft_ask_allowed"),sn.runCallbacks(U.SOFT_ASK_ALLOWED)}),(()=>{this.hideOptIn(),Qt.track(g),gt.log(1,e,"Soft ask was dismissed"),Fe.set(r.SOFT_ASK_STATUS,en.DISMISSED),t({showHardAsk:!1,softAskState:en.DISMISSED}),$t.broadcastToWindow({topic:x,name:U.SOFT_ASK_DISMISSED}),$t.deprecatedSdkCallback("soft_ask_closed"),sn.runCallbacks(U.SOFT_ASK_DISMISSED)}),(e=>{e=!!e,this.hideOptIn(),t({showHardAsk:e,softAskState:en.NOT_SHOWN})}))}),1e3*i)}))}))}showOptIn(e,t,n,i){const a=gn.baseLogTag+".showOptIn";if(this.config.optInConfig.type===Nt.TYPE.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"),St.getInstance().then((o=>{let s=null;if(s=(o.isMobile?this.config.optInConfig.softAskConfig.mobile:this.config.optInConfig.softAskConfig.desktop).customHTML,null!=s){r.innerHTML=s;const o=document.body.firstChild;o.parentNode.insertBefore(r,o),this.moeDiv=r;const l=document.getElementById("optInText")||document.getElementById("optInTextConventional"),c=document.getElementById("moe-dontallow_button");null==l?(gt.error(1,a,"Error showing soft ask. Allow button id is missing"),i()):(e(),Qt.track(d),l.onclick=()=>{t()},c?c.onclick=()=>{n()}:window.moeRemoveBanner=()=>{n()})}else gt.error(1,a,"Error displaying soft ask"),i()}))}else if(this.config.optInConfig.type===Nt.TYPE.SELF_HANDLED){var r=xe.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)gt.error(1,a,"Could not find main class for the soft ask. Class name given:",r.customSoftAsk.mainClass),St.getInstance().then((e=>{e.isWebPushCompatible()&&(gt.warn(1,a,"Proceeding to hard ask directly"),i(!0))}));else{e(),s.length<1&&(gt.warn(1,a,"Could not find any element for allow button. Class name given:",r.customSoftAsk.allowClass),gt.warn(1,a,"Docs for self-handled opt in available here - ",Y.SELF_HANDLED_DOCS)),l.length<1&>.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"}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 St.getInstance().then((e=>{e.isWebPushCompatible()?(gt.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)):(gt.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"}))}}gn.baseLogTag="SoftAskManager",($i=en=en||{}).SHOWN="shown",$i.NOT_SHOWN="not shown",$i.ALLOWED="allowed",$i.DISMISSED="dismissed";class un{constructor(e){this.deviceToLogout=_e(e,"deviceToLogout",null)}static get(){return new un(Fe.get(r.GRACEFUL_DATA))}save(){Fe.set(r.GRACEFUL_DATA,this)}}class pn{onWindowVisibilityChange(e){pn.baseLogTag,Te.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=>{Te.set("isWindowActive","visible"===t),e(t)};window.addEventListener("visibilitychange",t,!1)}static beforeUnload(){pn.isBatchingEnabled&&(Gt.windowClosed=!0,zt.sendBeacon()),window.Moengage.onsite&&window.Moengage.onsite.sendDelayCampaignStats&&window.Moengage.onsite.sendDelayCampaignStats()}static removeBeforeUnloadListeners(){window.removeEventListener("beforeunload",pn.beforeUnload,!1)}static addBeforeUnloadListeners(e){e.configs.isBatchingEnabled&&(pn.isBatchingEnabled=!0),window.addEventListener("beforeunload",pn.beforeUnload,!1)}}pn.baseLogTag="WindowEventManager",pn.isBatchingEnabled=!1;var hn=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 mn="MoEngage.user";class fn{static addAttribute(e,t){const n=mn+".addUserAttribute";return new Promise(((i,a)=>{let r=!1;if("string"!=typeof e||null==e)gt.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)gt.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)gt.error(1,n,"Attribute value null"),i({error:5003,message:"Attribute value was empty"});else if("string"==typeof t&&""===t)gt.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(et(t)&&k.includes(e))gt.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)gt.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(et(t)&&!Object.keys(t).length)gt.error(1,n,"Attribute value cannot be empty object"),i({error:5005,message:"Attribute value cannot be empty object"});else{const a=new Et(e,t),o=()=>{Tt.get().then((e=>{e.addAttribute(a).then((e=>{e?("id"===a.key&>.log(1,n,"Logging in the user with id: ",a.value),Jt.createUserAttributeEvent(a).then((e=>{gt.log(2,n,"Event to be converted to report:",e),Xt.addEvent(e),nn.collectGetParams().then((t=>{t=new At(At.REPORT_ADD_TYPE.USER_ATTRIBUTE,t,e),nn.reportAdd(t).then((()=>{r&&qi.onsite.refresh&&qi.onsite.refresh(),i(!0)}))}))}))):(gt.error(1,n,"Attribute already present/queued. Not adding again."),i({error:5005,message:"Attribute already present/queued. Not adding again."}))}))}))};"id"===e?(r=!0,Tt.get().then((e=>{var a=e.indexOfAttribute("id");-1{o()})))):(function(){const e=mn+".refreshCards";nn.getWebSDKSettings().then((t=>{null!=t&&t.configs.isCardsModuleEnabled&&qi.cards&&(gt.log(1,e,"Fetching new Cards after login"),qi.cards.refreshCards())})).catch((t=>{gt.error(2,e,"Error Refreshing Cards:",t)}))}(),at(!0),o())}))):o()}}))}static login(e){return fn.addAttribute("id",e)}static logout(e,t){const n=mn+".logout",i=e?{type:"forced",new_uid:t}:null;return function(){const e=un.get();null!=Tt.getSync()&&(e.deviceToLogout=Tt.getSync().deviceUuid,e.save())}(),new Promise((e=>{Qt.track(S,i).then((()=>hn(this,void 0,void 0,(function*(){gt.log(1,n,"Logging out now!"),yield zt.flushReports(),pn.removeBeforeUnloadListeners(),nn.getWebSDKSettings().then((t=>hn(this,void 0,void 0,(function*(){var n;t.isDomainLevelStorage&&Be.remove(r.USER_DATA),Xt.clear(),yield Qi(),yield function(){return Ki(this,void 0,void 0,(function*(){const e="Moengage.disableCards",t=xe.get();try{nn.getWebSDKSettings().then((e=>Ki(this,void 0,void 0,(function*(){var n;if(null!=e&&e.configs.isCardsModuleEnabled&&null!==(n=t.cards)&&void 0!==n&&n.enable){const e=yield Sn.loadModule(ne.CARDS);yield e.logout(),Yi=new ht}})))).catch((t=>{gt.error(1,e,"Error in getting Web SDK Settings. This might indicate that the App is blocked.")}))}catch(t){gt.error(1,e,"Error logging out from cards module:",t)}}))}(),at(),Fe.logout(),yield Tt.logout(),Fe.remove(r.GRACEFUL_DATA),nn.onDeviceAdd=new ht,yield ca(),t.configs.remoteLogTracking&&(n=xe.get(),yield nn.getAndPersistWebSettings(n)),e(!0)})))).catch((t=>{gt.error(1,n,"Error in getting Web SDK Settings. This might indicate that the App is blocked."),e(!1)}))}))))}))}static updateUniqueId(e){const t=mn+".updateUniqueId";return new Promise((n=>{Tt.get().then((i=>{var a=i.indexOfAttribute(w),r=i.indexOfAttribute("oldUniqueIds");if(!(-1{fn.login(e).then((()=>{n(!0)}))}))):(gt.warn(1,t,"New id and old id are the same. Not updating the id."),n(!0))}))}))}static getAttributes(){const e=Tt.getSync().attributes,t={};return e.map((e=>{t[e.key]=e.value})),t}}class vn{constructor(e,t){this.notificationManager=null,this.softAskManager=null,vn.baseLogTag,this.sdkSettings=e,this.browser=t,this.softAskManager=new gn(this.sdkSettings),this.notificationManager=new dn(this.sdkSettings,t)}callWebPush(){const e=vn.baseLogTag+".callWebPush";Ct(this.sdkSettings,this.browser)&&this.notificationManager.getCurrentPermissionState().then((t=>{return n=this,a=function*(){var n=(n=t)=>{Tt.get().then((t=>{let i=!1;var a=t.getAttribute("email"),o=t.getAttribute("mobile");null===a&&null===o||(i=!0),t.deviceAdded=i,t.save().then((()=>{this.notificationManager.removeToken().then((()=>{Qt.track(E,{[ge]:!1}),Qt.track(b),n===Zt.DENIED?gt.log(1,e,"Not asking for permission as current state is denied."):(Fe.remove(r.OPT_IN_SHOWN_TIME),this.startPushSubscription())}))}))}))};const i=yield St.getInstance();var a=Fe.get(r.PUSH_TOKEN),o=t===Zt.DENIED&&!this.sdkSettings.isDomainLevelStorage;null==a&&t!==Zt.DENIED?this.startPushSubscription():null!=a&&(o||i.isSafari()&&t===Zt.PROMPT)?(gt.log(1,e,"User has removed the permission"),gt.image(1,V),i.isSafari()&&t===Zt.PROMPT&&(Fe.set(de,!0),t=Zt.DENIED),n(t)):o?gt.warn(1,e,"Not proceeding with push subscription as current state is denied"):null!=a&&t===Zt.GRANTED?this.browser.name===St.BROWSER_NAMES.CHROME?Ke(this.sdkSettings.platformSettings,this.browser)?this.startPushSubscription():gt.warn(1,e,"Subscription mode is not VAPID type. Cannot subscribe to web push."):(this.startPushSubscription(),this.notificationManager.getPushTokenDetails().then((t=>{gt.customLabel(1,e,"token",t.token)}))):this.sdkSettings.isDomainLevelStorage?"granted"===Be.get(r.HARD_ASK_STATUS)?(a=null===(a=Be.get(r.SUBSCRIPTION_DETAILS))||void 0===a?void 0:a.domain)&&a===window.location.origin?(gt.log(1,e,"It seems that the user has unsubscribed manually. Starting push subscription.."),n(t)):gt.log(1,e,"Not showing opt-in as user subscribed to sub-domain"):this.startPushSubscription():n()},new(i=(i=void 0)||Promise)((function(e,t){function r(e){try{s(a.next(e))}catch(e){t(e)}}function o(e){try{s(a.throw(e))}catch(e){t(e)}}function s(t){var n;t.done?e(t.value):((n=t.value)instanceof i?n:new i((function(e){e(n)}))).then(r,o)}s((a=a.apply(n,[])).next())}));var n,i,a})).catch((t=>{gt.error(1,e,"Error in getting current state:",t)}))}startPushSubscription(){const e=vn.baseLogTag+".startPushSubscription",t=()=>{Fe.set(r.HARD_ASK_STATUS,Zt.PROMPT);const t=Fe.get(r.PUSH_TOKEN);this.notificationManager.showHardAsk().then((n=>{Fe.set(r.HARD_ASK_STATUS,n.state),n.state===Zt.GRANTED?null!=n.subscriptionDetails.token?(Fe.set(r.PUSH_TOKEN,n.subscriptionDetails.token),n.subscriptionDetails.domain=window.location.origin,Fe.set(r.SUBSCRIPTION_DETAILS,n.subscriptionDetails),n.subscriptionDetails.token&&t!==n.subscriptionDetails.token&&nn.deviceAdd().then((()=>{gt.image(1,"https://media.giphy.com/media/90F8aUepslB84/giphy.gif"),Tt.getSync().subscribedToOldSdk?gt.remoteLogTracking(1,"info",e,"User subscribed from older sdk, hence not sending subscription event"):(null!=t?fn.addAttribute("Web Migrated User","true"):fn.addAttribute("Web Subscription URL",location.href),Qt.track(y,{MOE_WEB_PUSH_TOKEN:n.subscriptionDetails.token,migrated_user:!!window.location.search.includes("moe_migration=true")||void 0}))})),this.sdkSettings.isDomainLevelStorage&&(Be.set(r.SUBSCRIPTION_DETAILS,{domain:n.subscriptionDetails.domain,token:n.subscriptionDetails.token,endpoint:n.subscriptionDetails.endpoint,keys:n.subscriptionDetails.keys}),Be.set(r.PUSH_TOKEN,n.subscriptionDetails.token))):(gt.error(1,e,"Push token was received as null."),gt.error(1,e,"Please contact MoEngage support if this troubleshooting does not solve the issue.")):n.state===Zt.DENIED&>.image(1,V)})).catch((t=>{gt.warn(1,e,t)}))},n=()=>{this.softAskManager?this.softAskManager.showSoftAsk().then((e=>{e.showHardAsk&&t()})):gt.log(1,e,"SoftAskManager not set.")};this.notificationManager.getCurrentPermissionState().then((i=>{if(i===Zt.GRANTED)this.sdkSettings.optInConfig.type!==Nt.TYPE.ONE_CLICK&>.remoteLogTracking(1,"info",e,"Skipping soft ask as browser permission is set to allow all notifications"),t();else{var a=parseInt(Fe.get(r.OPT_IN_SHOWN_TIME));if(Fe.get(r.SOFT_ASK_STATUS),Fe.get(r.HARD_ASK_STATUS),i=(Date.now()-a)/36e5,!a||i>this.sdkSettings.optInConfig.reappearTime)if(this.browser.name===St.BROWSER_NAMES.SAFARI&&this.sdkSettings.optInConfig.type===Nt.TYPE.ONE_CLICK){gt.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)"),gt.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.optInConfig.reappearTime,"hours."),gt.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=Fe.get(r.OPTED_STATUS_TRACK_TIME);t&&864e5{Sn.addScript(e.src,(()=>{var n=new(0,window[ne[e.name].windowLocation])(n=xe.get());t(n)}))}))),Sn.loadPromises[e.name]}static addScript(e,t){const n=document.createElement("script");n.setAttribute("src",e),n.onload=t,n.async=!0,document.body.appendChild(n)}}Sn.baseLogTag="ModuleManager",Sn.loadPromises={};var En=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 yn{static initialize(){return En(this,void 0,void 0,(function*(){var e;return null==yn.ready&&(yn.serviceMetaStore=be.createInstance({driver:[be.INDEXEDDB,be.WEBSQL,be.LOCALSTORAGE],name:te.DATABASE_NAME,storeName:te.STORES.SERVICE_META.NAME}),yn.campaingsMetaStore=be.createInstance({driver:[be.INDEXEDDB,be.WEBSQL,be.LOCALSTORAGE],name:te.DATABASE_NAME,storeName:te.STORES.CAMPAIGNS_META.NAME}),yn.pendingSecondaryEvents=be.createInstance({driver:[be.INDEXEDDB,be.WEBSQL,be.LOCALSTORAGE],name:te.DATABASE_NAME,storeName:te.STORES.PENDING_SECONDARY_EVENTS.NAME}),yn.pendingTimerCampaigns=be.createInstance({driver:[be.INDEXEDDB,be.WEBSQL,be.LOCALSTORAGE],name:te.DATABASE_NAME,storeName:te.STORES.PENDING_TIMER_CAMPAIGNS.NAME}),yn.triggeringPrimaryEvents=be.createInstance({driver:[be.INDEXEDDB,be.WEBSQL,be.LOCALSTORAGE],name:te.DATABASE_NAME,storeName:te.STORES.TRIGGERING_PRIMARY_EVENTS.NAME}),yn.campaingsTagsStore=be.createInstance({driver:[be.INDEXEDDB,be.WEBSQL,be.LOCALSTORAGE],name:te.DATABASE_NAME,storeName:te.STORES.CAMPAIGNS_TAGS.NAME}),yn.campaingsStatsStore=be.createInstance({driver:[be.INDEXEDDB,be.WEBSQL,be.LOCALSTORAGE],name:te.DATABASE_NAME,storeName:te.STORES.CAMPAIGNS_STATS.NAME}),yn.testCampaignStore=be.createInstance({driver:[be.INDEXEDDB,be.WEBSQL,be.LOCALSTORAGE],name:te.DATABASE_NAME,storeName:te.STORES.CAMPAIGNS_STATS.NAME}),yn.exitIntentCampaignStore=be.createInstance({driver:[be.INDEXEDDB,be.WEBSQL,be.LOCALSTORAGE],name:te.DATABASE_NAME,storeName:te.STORES.EXIT_INTENT_CAMPAIGN_STORE.NAME}),e=[yn.serviceMetaStore.ready(),yn.campaingsMetaStore.ready(),yn.pendingSecondaryEvents.ready(),yn.pendingTimerCampaigns.ready(),yn.triggeringPrimaryEvents.ready(),yn.campaingsTagsStore.ready(),yn.campaingsStatsStore.ready(),yn.testCampaignStore.ready(),yn.exitIntentCampaignStore.ready()],yn.ready=Promise.all(e)),yn.ready}))}static clear(){return En(this,void 0,void 0,(function*(){var e=yn.baseLogTag+".clear";try{yield yn.initialize(),yield Promise.all([yn.serviceMetaStore.clear(),yn.campaingsMetaStore.clear(),yn.campaingsTagsStore.clear(),yn.campaingsStatsStore.clear(),yn.testCampaignStore.clear(),yn.exitIntentCampaignStore.clear(),yn.pendingSecondaryEvents.clear(),yn.pendingTimerCampaigns.clear(),yn.triggeringPrimaryEvents.clear()]);var t=[yn.serviceMetaStore.ready(),yn.campaingsMetaStore.ready(),yn.campaingsTagsStore.ready(),yn.campaingsStatsStore.ready(),yn.testCampaignStore.ready(),yn.exitIntentCampaignStore.ready(),yn.pendingSecondaryEvents.clear(),yn.pendingTimerCampaigns.clear(),yn.triggeringPrimaryEvents.clear()];yn.ready=Promise.all(t)}catch(t){gt.error(1,e,"Error clearing onsite stores:",t)}return yn.ready}))}}yn.baseLogTag="MOE_ONSITE_STORES";var bn,_n,Tn,In,wn,An=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 Cn=(e,t,n)=>null==e.campaignId?()=>{}:()=>(yn.campaingsStatsStore.getItem(e.campaignId).then((t=>{t=null!=t?Object.assign(Object.assign({},t),{clicks:_e(t,"clicks",0)+1}):{clicks:1},yn.campaingsStatsStore.setItem(e.campaignId,t)})),null==n&&(n={}),Rn().track_event(te.EVENT_NAMES[t].CLICK,Object.assign(Object.assign({campaign_id:e.campaignId,campaign_name:e.campaignName,type:te.EVENT_NAMES[t].TYPE},n),e.campaignContext))),On=(e,t,n=!1)=>null==e.campaignId?()=>{}:()=>{if(yn.initialize().then((()=>{yn.campaingsStatsStore.getItem(e.campaignId).then((t=>{t=null!=t?Object.assign(Object.assign({},t),{impressions:_e(t,"impressions",0)+1,lastImpression:new Date}):{impressions:1,lastImpression:new Date},yn.campaingsStatsStore.setItem(e.campaignId,t)}))})),!n)return Rn().track_event(te.EVENT_NAMES[t].IMPRESSION,Object.assign({campaign_id:e.campaignId,campaign_name:e.campaignName,type:te.EVENT_NAMES[t].TYPE,templateType:e.templateType},e.campaignContext))},Dn=(e,t,n)=>{n=n?te.EVENT_NAMES[t].AUTO_DISMIS:te.EVENT_NAMES[t].DISMISS,Rn().track_event(n,Object.assign({campaign_id:e.campaignId,campaign_name:e.campaignName,type:te.EVENT_NAMES[t].TYPE},e.campaignContext))},Pn=(e,t)=>{Rn().track_event(te.EVENT_NAMES[t].DELIVERED,Object.assign({campaign_id:e.campaignId,campaign_name:e.campaignName,type:te.EVENT_NAMES[t].TYPE},e.campaignContext))},Rn=()=>{var e=window.moengage_object||"Moengage";return window[e]};class Nn{static isValid(e,t){return!Nn.isCampaignExpired(e)&&Nn.isCampaignActive(e)&&Nn.isUserInCampaignSegment(e)&&Nn.isCampaignWithinFC(e,t)}static isCampaignExpired(e){return(new Date).getTime()>new Date(e.expiryTime).getTime()}static isValidMessagingCampaign(e,t,n,i,a){return Nn.canCampaignBeRenderedOverExisting(e,a.length)&&Nn.hasCampaignClearedSelfDelay(e,t)&&Nn.hasCampaignClearedGlobalDelay(e,n,i)}static isCampaignActive(e){var t=Nn.baseLogTag+".isValid";return e.status===Tn.ACTIVE||(gt.warn(1,t,`Campaign ${e.campaignId} : Status is `+e.status),!1)}static isUserInCampaignSegment(e){var t=Nn.baseLogTag+".isValid";return!!e.userInSegment||(gt.warn(1,t,`Campaign ${e.campaignId} : User is not in segment`),!1)}static isCampaignWithinFC(e,t){var n=Nn.baseLogTag+".isValid";if([wn.SELF_HANDLED].indexOf(e.templateType)<0){var i=_e(e,"delivery.fc_meta.count",0);if(0e.delivery.priority||!(t.delivery.prioritye.updatedTime?1:-1}}Nn.baseLogTag="CampaignUtils";const Ln=e=>An(void 0,void 0,void 0,(function*(){var t=e.map((e=>yn.campaingsStatsStore.getItem(e.campaignId)));let n;try{n=yield Promise.all(t);const i=e.filter(((e,t)=>Nn.isValid(e,n[t])));return i.sort(Nn.comparator)}catch(t){return gt.error(1,"filterAndSortCampaigns","Error filtering and sorting campaigns: ",t),[]}}));class kn{}kn.REMOVE_TRAIL_CHARS=/[^\w\s]+$/gi;const Mn=(e,t)=>{const n=_e(e,"triggerData.primary_condition.included_filters",null);return(null==n?void 0:n.filter_operator)===In.OR&&-1<(null==n?void 0:n.filters.findIndex((e=>e.action_name===t)))},xn=e=>An(void 0,void 0,void 0,(function*(){var t=yield yn.exitIntentCampaignStore.getItem(e.campaignId);if(t)return t.error?t:(e.onsitePayload=t,gt.log(1,"getPrefetchedCampaign","Prefetched exit intent campaign found: "+e.campaignId),e)})),Bn=e=>An(void 0,void 0,void 0,(function*(){try{return yield yn.campaingsMetaStore.getItem(e)}catch(e){return gt.error(2,"getCampaignById","Error getting campaign from store: ",e),null}})),Un=()=>new Promise((e=>{setTimeout((()=>An(void 0,void 0,void 0,(function*(){const t=[];yield yn.campaingsMetaStore.iterate((e=>{t.push(e)})),e(t)}))),0)})),Fn=e=>null===(e=_e(e,"triggerData.secondary_condition.included_filters.filters"))||void 0===e?void 0:e.length,Wn=e=>"moe-onsite-campaign-"+e;class Hn{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===bn.STRING&&typeof n===bn.STRING&&(n=this.removeSpecialChars(n),i=this.removeSpecialChars(i)),t.key===this.filter.name&&(this.dataType!==bn.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(kn.REMOVE_TRAIL_CHARS,"")}}($i=bn=bn||{}).BOOL="bool",$i.STRING="string",$i.DATE="datetime",$i.NUMBER="double",$i.LONG="long",$i.ARRAY_BOOL="array_bool",$i.ARRAY_NUMBER="array_double",$i.ARRAY_STRING="array_string",$i.ARRAY_DATETIME="array_datetime",$i.OBJECT="object",($i=_n=_n||{}).ALLOF="all_of",$i.ANYOFF="any_of";const Gn=["is","exists","contains","startsWith","endsWith","in","containsInTheFollowing","startsWithInTheFollowing","endsWithInTheFollowing"];class Kn extends Hn{constructor(e,t){super(bn.STRING,Gn,e,t)}evaluate(){Kn.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===_n.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===_n.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===_n.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)))}}Kn.baseLogTag="StringDataType";const Vn=["is","exists"];class jn extends Hn{constructor(e,t){super(bn.BOOL,Vn,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}}jn.baseLogTag="BooleanDataType";const Yn=["is","exists","greaterThan","lessThan","between","in"];class zn extends Hn{constructor(e,t){super(bn.NUMBER,Yn,e,t)}evaluate(){zn.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===_n.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 Et(e,t),new Jt(this.event.name,[t])}getDataType(e){let t;switch(this.filter.data_type){case bn.ARRAY_BOOL:t=new jn(e,this.filter);break;case bn.ARRAY_DATETIME:t=new $n(e,this.filter);break;case bn.ARRAY_NUMBER:t=new zn(e,this.filter);break;case bn.ARRAY_STRING:t=new Kn(e,this.filter)}return t}}class Qn{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 Et(e.name,n.value[e.name]),t=new Jt(e.name,[t]),Zn.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===_&&"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)||In.AND}static isTriggered(e,t,n,i){let a=!0;if(0<(null==t?void 0:t.length)){let o;o=i||ei.getFilterOperator(n);var r=t.map((t=>Zn.doesEventMatchFilters(e,t)));a=r[0]||!1;for(let e=1;ee.action_name===I));return e=ei.getFilters(i),ei.isTriggered(t,e,i)}return!0}}ei.baseLogTag="OnsiteCampaignMeta";class ti{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,ii.validate(e.primary_condition)?this.primary_condition=new ii(e.primary_condition):this.primary_condition=null,ii.validate(e.secondary_condition)?this.secondary_condition=new ii(e.secondary_condition):this.secondary_condition=null,ii.validate(e.url_condition)?this.url_condition=new ii(e.url_condition):this.url_condition=null,this.description=e.description,null!=e.trigger_delay?this.trigger_delay=new ni(e.trigger_delay):this.trigger_delay=null}static validate(e){let t=!1;return["primary_condition"].forEach((n=>{null!=_e(e,n,null)&&(t=!0)})),t}}class ni{constructor(e){if(this.delay=_e(e,"delay",0),this.unit=_e(e,"unit","seconds"),this.delay_type=_e(e,"delay_type",""),this.attribute=_e(e,"attribute",""),_e(e,"delay",null)&&_e(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 ii{constructor(e){this.included_filters=new ai(_e(e,"included_filters",null)),this.excluded_filters=new ai(_e(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 ai{constructor(e){this.filter_operator=_e(e,"filter_operator",In.AND),this.filters=null===(e=_e(e,"filters",[]))||void 0===e?void 0:e.map((e=>new ri(e)))}}class ri{constructor(e){const t=_e(e,"action_name",null);"string"==typeof t&&(t.includes(".")?this.action_name=Ye(t):this.action_name=t);var n=_e(e,"executed",null);"boolean"==typeof n&&(this.executed=n),this.filter_type=_e(e,"filter_type",null),n=_e(e,"attributes",null),oi.validateJson(n)&&(this.attributes=new oi(n)),"nested_filters"===this.filter_type&&(this.filters=new ai(e))}}class oi{constructor(e){this.filters=[],this.filterOperator=_e(e,"filter_operator",In.AND),this.filters=_e(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=Ye(e.name))}))}static validateJson(e){if(null==e)return!1;var t=["filters"];for(let n=0;n{ei.isValidMetaJSON(e)&&a.push(new ei(e))})),{campaignsMeta:a,globalDelayBetweenInapps:_e(i,"min_delay_btw_inapps",0)}}catch(t){throw gt.error(1,e,"Error getting meta for inapp: ",t),new Error("Could not get meta payload")}}))}getCampaignPayload(e,t){return ui(this,void 0,void 0,(function*(){var n=pi.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 gi(e))})),n}catch(i){throw gt.error(1,n,"Error geting payload",i),new Error("Could not get payload for "+e)}}))}getDraftCampaign(e){return ui(this,void 0,void 0,(function*(){var t=pi.baseLogTag+".getDraftCampaign";try{const t=yield this.getRequestOptions();t.queryParams=Object.assign({},t.queryParams,{locale:e.locale,variation:e.variation});var n=yield pt.post(this.host+te.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 gi(i)}catch(n){return gt.error(1,t,"Error geting test campaign payload",n),null}}))}getRequestOptions(e={}){const t=Xe();return nn.getWebSDKSettings().then((n=>{var i=Fe.get(r.USER_DATA);let a;const{deviceUuid:o,attributes:s}=i;if(s.map((e=>{e.key===w&&(a=null===(e=null==e?void 0:e.value)||void 0===e?void 0:e.toString())})),!o)throw new Error("device_unique_id not found in localStorage.");var l=ze()?"mweb":"web";return i=$e(),{headers:{"Content-Type":"application/json","MOE-APPKEY":this.appId},queryParams:Object.assign({sdk_ver:t.getSdkVersion(),unique_id:o,os:l},i),postData:Object.assign(Object.assign({},e),{uid:a})}})).catch((e=>{throw new Error("Error in getting Web SDK Settings. This might indicate that the App is blocked.")}))}callStatsAPI(e,t){const n=pi.baseLogTag+".callStatsAPI";this.getRequestOptions().then((t=>{var i=this.host+te.API.STATS;t.queryParams.app_id=t.headers["MOE-APPKEY"],delete t.queryParams.uid,i=rt(i,t.queryParams),gt.log(1,n,"[sendBeacon] payload: "+JSON.stringify(e)),t=new Blob([JSON.stringify(e)],{type:"text/plain;charset=UTF-8"}),navigator.sendBeacon(i,t)}))}}pi.baseLogTag="OnsiteApi";class hi{constructor(){this.isExitIntentShown=!1,this.isPopStateEventBound=!1}onScroll(e){const t=hi.baseLogTag+".onScroll";null==e&&(e=()=>{});var n=hi.throttle((()=>{gt.remoteLogTracking(1,"info",t,"Scrolled percent:",hi.getScrollPercent()),e(hi.getScrollPercent())}),te.SCROLL_CAMPAIGN_THROTTLING_TIME);return e(hi.getScrollPercent()),window.addEventListener("scroll",n),n}onMobileTabChange(e){const t=hi.baseLogTag+".onMobileTabChange";document.addEventListener("visibilitychange",(()=>{this.isExitIntentShown||"hidden"!==document.visibilityState||(gt.log(1,t,"TRIGGERED: MOBILE EXIT INTENT"),e(),this.isExitIntentShown=!0)}))}onMobileBackHit(e){const t=hi.baseLogTag+".onMobileBackHit";setTimeout((()=>{this.isPopStateEventBound=!0,window.addEventListener("popstate",(n=>{!this.isExitIntentShown&&n.state&&"exit_intent"===n.state.moeIntent&&(gt.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=hi.baseLogTag+".onMobileScrollAndExit",n=document.documentElement.offsetHeight;let i,a=hi.getScrollY();0{let r=a-hi.getScrollY();r<0&&(r=0,a=hi.getScrollY()),i=hi.getScrollPercent()>te.EXIT_INTENT.CONFIG.SCROLL_DOWN_THRESHOLD,i&&r/n>te.EXIT_INTENT.CONFIG.SCROLL_UP_THRESHOLD/100&&(clearInterval(this.scrollExitIntentInterval),this.scrollExitIntentInterval=null,this.isExitIntentShown||(gt.log(1,t,"TRIGGERED: MOBILE EXIT INTENT"),e(),this.isExitIntentShown=!0))}),te.EXIT_INTENT.CONFIG.SCROLL_INTERVAL))}mobileExitIntent(e){this.onMobileScrollAndExit(e),this.onMobileBackHit(e),this.onMobileTabChange(e)}onExit(e){const t=hi.baseLogTag+".onExit";ze()?this.mobileExitIntent(e):(this.exitIntentListener=n=>{return i=this,r=function*(){var i=window.innerWidth,a=window.innerHeight;(n.clientY<0||n.clientX<0||n.clientY>=a||n.clientX>=i)&&(gt.log(1,t,"TRIGGERED: EXIT INTENT"),e())},new(a=(a=void 0)||Promise)((function(e,t){function n(e){try{s(r.next(e))}catch(e){t(e)}}function o(e){try{s(r.throw(e))}catch(e){t(e)}}function s(t){var i;t.done?e(t.value):((i=t.value)instanceof a?i:new a((function(e){e(i)}))).then(n,o)}s((r=r.apply(i,[])).next())}));var i,a,r},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*hi.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})}}hi.baseLogTag="WindowEventManager";var mi=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 fi{static getPendingSecondaryEventCampaign(e){return mi(this,void 0,void 0,(function*(){return yield yn.pendingSecondaryEvents.getItem(e)}))}static setPendingSecondaryEventCampaign(e,t){return mi(this,void 0,void 0,(function*(){yield yn.pendingSecondaryEvents.setItem(e,t)}))}static removePendingSecondaryEventCampaign(e){return mi(this,void 0,void 0,(function*(){yield yn.pendingSecondaryEvents.removeItem(e)}))}static getPendingSecondaryEventKeys(){return mi(this,void 0,void 0,(function*(){return yield yn.pendingSecondaryEvents.keys()}))}static getPendingTimerCampaign(e){return mi(this,void 0,void 0,(function*(){return yield yn.pendingTimerCampaigns.getItem(e)}))}static setPendingTimerCampaign(e,t){return mi(this,void 0,void 0,(function*(){yield yn.pendingTimerCampaigns.setItem(e,t)}))}static removePendingTimerCampaign(e){return mi(this,void 0,void 0,(function*(){yield yn.pendingTimerCampaigns.removeItem(e)}))}static getPendingTimerKeys(){return mi(this,void 0,void 0,(function*(){return yield yn.pendingTimerCampaigns.keys()}))}static getTriggeringPrimaryEvent(e){return mi(this,void 0,void 0,(function*(){return yield yn.triggeringPrimaryEvents.getItem(e)}))}static setTriggeringPrimaryEvent(e,t){return mi(this,void 0,void 0,(function*(){yield yn.triggeringPrimaryEvents.setItem(e,t)}))}static removeTriggeringPrimaryEvent(e){return mi(this,void 0,void 0,(function*(){yield yn.triggeringPrimaryEvents.removeItem(e)}))}static getTriggeringPrimaryEventKeys(){return mi(this,void 0,void 0,(function*(){return yield yn.triggeringPrimaryEvents.keys()}))}static removeCampaignFromStores(e){return mi(this,void 0,void 0,(function*(){yield fi.removePendingSecondaryEventCampaign(e),yield fi.removePendingTimerCampaign(e)}))}}var vi=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 Si{static setListener(e){this.listener=e}static destroy(){this.listener=null,this.deliveryStats=null}static setDeliveryStats(e){this.deliveryStats=e}static createNewTimers(){return vi(this,void 0,void 0,(function*(){var e=this.baseLogTag+".createNewTimers",t=yield fi.getPendingTimerKeys();for(let a=0;avi(this,void 0,void 0,(function*(){yield this.checkAndInvokeListener(e),yield fi.removeCampaignFromStores(e)}))),t);n={startTime:Date.now(),timerId:n,timer:t},yield fi.setPendingTimerCampaign(e,n)}))}static checkAndInvokeListener(e){return vi(this,void 0,void 0,(function*(){var t=this.baseLogTag+".checkAndInvokeListener",n=yield Bn(e);null!=n&&n.campaignId&&((yield this.isSatisfyingEventsArray(e))?ei.getURLFilterResult(n)&&(gt.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))):(gt.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,te.DELIVERY_FUNNEL.ATTEMPTED.CAMPAIGN_ATTEMPTED),this.deliveryStats.setStats(n,te.DELIVERY_FUNNEL.EVALUATION.CAMPAIGN_EVALUATION_PATH_TIME_EXPIRED),this.deliveryStats.sendDeliveryStats([n])))}))}static checkIfPendingAction(e,t){return t===In.AND&&!e.events.some((e=>1===e.filters.length&&!e.filters[0].executed))}static isSatisfyingEventsArray(e){return vi(this,void 0,void 0,(function*(){var t=yield fi.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 Bn(a))&&r.campaignId&&(gt.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){for(let n=0;n{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===In.AND?In.OR:In.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 Ei(this,void 0,void 0,(function*(){var e=this.baseLogTag+".pruneRemovedCampaigns";const t=(yield Un()).map((e=>e.campaignId));var n=yield fi.getPendingSecondaryEventKeys();for(let a=0;ae.toBeRemoved)))||(gt.log(1,n,`Campaign: ${s}, triggered by event: ${e.name}, is eligible for further processing`),i.push(s))):d===In.AND&&(o.toBeRemoved=!0,r.filters.every((e=>e.toBeRemoved))&&(r.toBeRemoved=!0,(c===In.OR||c===In.AND&&h.events.every((e=>e.toBeRemoved)))&&(gt.log(1,n,`Campaign: ${s}, triggered by event: ${e.name}, is eligible for further processing`),i.push(s)))):d===In.OR?(o.toBeRemoved=!0,r.filters.every((e=>e.toBeRemoved))&&(c===In.AND||c===In.OR&&1===h.events.length?(gt.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)):d===In.AND&&(r.toBeRemoved=!0,1===h.events.length&&h.events[0].toBeRemoved&&c===In.OR&&(gt.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,h))}}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 fi.setPendingSecondaryEventCampaign(e,t)}))}static clearCampaignsData(e){return Ei(this,void 0,void 0,(function*(){for(let t=0;tEi(this,void 0,void 0,(function*(){n.includes(t)||(gt.warn(1,e,`Campaign: ${t} does not exist in pendingSecondaryEvents store but exists in triggeringPrimaryEvents store. Removing it from triggeringPrimaryEvents store`),yield fi.removeTriggeringPrimaryEvent(t))}))))}))}}yi.baseLogTag="SecondaryEventsManager",yi.deliveryStats=null;var bi=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 _i{constructor(e){this.primaryEventsHash={},this.secondaryEventsHash={},this.messagingCampaigns=[],this.scrollCampaigns=[],this.scrollCampaignTriggered=!1,this.exitIntentCampaigns=[],this.exitCampaignTriggered=!1,this.listener=null,this.historyManager=window[ee],this.onEvent=e=>bi(this,void 0,void 0,(function*(){var t=_i.baseLogTag+".onEvent";try{null!=this.primaryEventsHash[e.name]&&(yield this.handlePrimaryEvent(e)),null!=this.secondaryEventsHash[e.name]&&(yield this.handleSecondaryEvent(e))}catch(e){gt.error(1,t,"Error occurred during check event trigger campaigns: ",e)}})),this.onScroll=e=>bi(this,void 0,void 0,(function*(){const t=_i.baseLogTag+".onScroll";try{if(this.scrollCampaigns&&0bi(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 Et(a.name,a.value),i=yield Jt.createEvent(T,[i]),ei.getFilterResult(i,n)&&e>a.value&&!this.scrollCampaignTriggered&&(this.scrollCampaignTriggered=!0,window.removeEventListener("scroll",this.scrollListenerCallback),gt.log(1,t,"Triggered Scroll campaign"),this.trigger([n],i)))}))))}}catch(n){gt.error(1,t,"Error occurred in triggering scroll campaigns ",n)}})),this.onExit=e=>bi(this,void 0,void 0,(function*(){var t=_i.baseLogTag+".onExit";try{if(0ei.getFilterResult(i,e)));n.length?(gt.log(1,t,"Triggered Exit Intent campaign: ",n),this.trigger(n,i)):("onBackClick"===e&&window.history.back(),gt.log(1,t,"No Exit Intent campaign is eligible."))}}catch(n){gt.error(1,t,"Error occurred in triggering exit intent campaigns ",n)}})),this.messagingCampaigns=e,this.windowEventManager=new hi}onTrigger(e){this.listener=e}handlePrimaryEvent(e){return bi(this,void 0,void 0,(function*(){var t=_i.baseLogTag+".handlePrimaryEvent",n=this.primaryEventsHash[e.name];const i=[],a=[];for(let e=0;eei.didPrimaryEventFilterTrigger(e,t)));o.length&&(yield yi.createPendingSecondaryEvents(o,e)),o=a.filter((t=>ei.getFilterResult(e,t))),o.length&&(gt.log(1,t,`Campaigns triggered for event ${e.name}: `+o.length),this.trigger(o,e))}))}handleSecondaryEvent(e){return bi(this,void 0,void 0,(function*(){var t=_i.baseLogTag+".handleSecondaryEvent",n=yield yi.updatePendingSecondaryEventsHistory(e,this.secondaryEventsHash[e.name]);let i=[];for(let e=0;eei.getURLFilterResult(e))),i.length&&(gt.log(1,t,`Campaigns triggered by secondary event "${e.name}": `+i.length),this.trigger(i))}))}getCampaignsFromHash(e){return bi(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=_e(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 bi(this,void 0,void 0,(function*(){_i.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=>Mn(e,T))),0Mn(e,_))),0this.active,this.campaignMeta=e,this.data=t,this.active=!1,this.campaignRendered=!1;const n=_e(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 Ii={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"}},wi=e=>{try{return!Ai()&&window.Moengage.onsite.displayManager.campaignRenderMap[e].campaignMeta}catch(t){gt.error(1,"OsmFunctions.getCampaignMeta","Campaign meta not found: "+e)}},Ai=()=>!!window.Moengage.onsite.displayManager.testCampaign&&(gt.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);var Ci=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 Oi(e,t,n,i,a){return Ci(this,void 0,void 0,(function*(){const r=Wn(t),o=/moe-campaign-id/g;yield Ci(this,void 0,void 0,(function*(){try{let d=e.root;const{styles:g,scripts:u}=e,p=document.createElement("div");p.id=r,n.parentNode.insertBefore(p,n);const h=document.querySelector("#"+r),m=new DOMParser;d=d.replace(o,t);var s=m.parseFromString(d,"text/html");yield function(e){return Ci(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){gt.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){gt.error(2,"InsertCustomHtmlJs.addCampaignId","Error while adding Campaign Id",e)}}(s);const f=g.map((e=>m.parseFromString(e,"text/html").head.childNodes[0]));var l=u.map((e=>(e=e.replace(o,t),m.parseFromString(e,"text/html").head.childNodes[0]))),c=f.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(c).catch((e=>{gt.warn(1,"InsertCustomHtmlJs","Error loading Styles",(null==e?void 0:e.message)||"")}));const v=s.body.childNodes[0];h.appendChild(v),[...v.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{window.Brz.emit("init.dom",window.jQuery(v)),gt.log(1,"InsertCustomHtmlJs","Custom HTML/JS DOM Level OSM Insertion: "+r),a&&a(i,"OSM")()})).catch((e=>{gt.warn(1,"InsertCustomHtmlJs","Error loading script",(null==e?void 0:e.message)||"")}))}catch(e){gt.error(2,"InsertCustomHtmlJs","Failed to Insert OSM into DOM: "+r)}}))}))}var Di=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(){this.renderListener=null,this.initializationPromiseObject=null,this.campaignRenderOrder=[],this.campaignRenderMap={},this.dismissTestInapp=e=>{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(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=Cn,this.dismissEvent=Dn,this.startInitialization(),this.initialInlineBodyStyle=document.body.getAttribute("style")}startInitialization(){return Di(this,void 0,void 0,(function*(){var e=Pi.baseLogTag+".startInitialization";try{null==this.initializationPromiseObject&&(this.initializationPromiseObject=new ht),this.initializationPromiseObject.res()}catch(t){gt.error(1,e,"Error initializing display managaer:",t)}}))}getOSMPusher(e){const t=document.createElement("div");if(t.id=te.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(te.PUSH_BANNER))&&void 0!==e&&e.remove()}queueDraftCampaign(e,t){return Di(this,void 0,void 0,(function*(){var n=Pi.baseLogTag+".queueDraftCampaign";try{yield this.initializationPromiseObject.p,e.position=t.position,this.testCampaign=e;var i=!("1"!==t.editorVersion||!t.htmlJsonPayload);const a=!i&&Pi.createDefaultIframe(this.testCampaign.draftId,t.payload);let r;gt.warn(1,n,"Going to render test campaign "+e.draftId),r="FRAMESET"===document.body.nodeName?this.getOSMPusher(0):document.body.firstChild,i?(yield Oi(t.htmlJsonPayload,this.testCampaign.draftId,r),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)})}catch(e){gt.error(1,n,"Error queueing draft campaign",e)}}))}renderTestCampaign(e,t,n){return Di(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===wn.POP_UP&&(t.style.margin="0px auto"),-1Di(this,void 0,void 0,(function*(){yield Oi(t.htmlJsonPayload,e.campaignId,n,e,On)})):(n=Pi.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))?(gt.warn(1,i,"Going to render "+e.campaignId),this.campaignRenderMap[e.campaignId].setIsActive(!0),null!=this.renderListener&&this.renderListener(e),this.renderAllActiveCampaigns()):gt.warn(1,i,"Can not render "+e.campaignId)):gt.warn(1,i,`Can not render ${e.campaignId}, as campaign is already Active.`)}catch(n){gt.error(1,i,"Error queuing campaign "+e.campaignId,n)}}))}renderAllActiveCampaigns(){return Di(this,void 0,void 0,(function*(){var e,t=Pi.baseLogTag+".renderAllActiveCampaigns";const n=this.getActiveCampaigns();if(this.restoreBodyStyle(),0{Ri.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?(gt.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",gt.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===wn.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(),Dn(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===wn.POP_UP&&this.campaignRenderMap[t].isActive()&&e++})),1<=e||(this.initialInlineBodyStyle?document.body.setAttribute("style",this.initialInlineBodyStyle):document.body.removeAttribute("style"))}canCampaignBeRendered(e){return Di(this,void 0,void 0,(function*(){var t=Pi.baseLogTag+".canCampaignBeRendered";try{var n=yield yn.campaingsStatsStore.getItem(e.campaignId),i=yield yn.serviceMetaStore.getItem(te.STORES.SERVICE_META.KEYS.GLOBAL_DELAY),a=yield yn.serviceMetaStore.getItem(te.STORES.SERVICE_META.KEYS.LAST_INAPP_SHOWN_TIME);return Nn.isValid(e,n)&&Nn.isValidMessagingCampaign(e,n,i,a,this.getActiveCampaigns())&&ei.getURLFilterResult(e)}catch(n){gt.error(1,t,`Error checking if campaign ${e.campaignId} can be rendered:`,n)}return!1}))}static createDefaultIframe(e,t){Pi.baseLogTag,e=Wn(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,Ii[t]),ze()&&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=Pi.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 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)),gt.log(2,i,"JS-bridge script inserted successfully",t)}catch(e){gt.warn(2,i,"Failed to insert OSM JS Bridge: ",t)}}handleClassBasedTrackingForTestCampaign(e,t,n){const i=Pi.baseLogTag+".handleClassBasedTrackingForTestCampaign";var a=e=>Array.prototype.slice.call(e),r=a(e.contentDocument.getElementsByClassName(te.CSS_SELECTORS.DISMISS_INAPP)),o=a(e.contentDocument.getElementsByClassName(te.CSS_SELECTORS.CLICK_INAPP));if(a=a(e.contentDocument.getElementsByTagName("a")),0===r.length&>.warn(1,i,"No dismiss class items present in this template"),0===o.length&>.warn(1,i,"No click class items present in this template"),-1{e.target&&e.target.classList.contains(te.CSS_SELECTORS.CLICK_INAPP)&>.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(te.CSS_SELECTORS.DISMISS_INAPP)&&this.dismissTestInapp(n.draftId)}));else{for(const e of o)e.addEventListener("click",(e=>{gt.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=Pi.baseLogTag+".handleClassBasedTracking",n=e=>Array.prototype.slice.call(e);const i=e.iframe;var a=n(i.contentDocument.getElementsByClassName(te.CSS_SELECTORS.DISMISS_INAPP)),r=n(i.contentDocument.getElementsByClassName(te.CSS_SELECTORS.CLICK_INAPP));if(n=n(i.contentDocument.getElementsByTagName("a")),0===a.length&>.warn(1,t,"No dismiss class items present in this template"),0===r.length&>.warn(1,t,"No click class items present in this template"),e.data.payload&&(-1{var n;t.target&&t.target.classList.contains(te.CSS_SELECTORS.CLICK_INAPP)&&(n=t.target.dataset.id,Cn(e.campaignMeta,"OSM",{widget_id:n})()),t.target&&t.target.classList.contains(te.CSS_SELECTORS.DISMISS_INAPP)&&(this.dismissInapp(e.campaignMeta.campaignId),t.target.classList.contains(te.CSS_SELECTORS.CLICK_INAPP)||Dn(e.campaignMeta,"OSM"))}));else{for(const t of r)t.addEventListener("click",(t=>{t=t.target.dataset.id,Cn(e.campaignMeta,"OSM",{widget_id:t})()}));for(const t of a)t.addEventListener("click",(()=>{this.dismissInapp(e.campaignMeta.campaignId),t.classList.contains(te.CSS_SELECTORS.CLICK_INAPP)||Dn(e.campaignMeta,"OSM")}))}for(const e of n)"_blank"!==e.getAttribute("target")&&e.setAttribute("target","_parent")}changeAnchorTagReDirectionMethod(e){var t,n=Pi.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"))}gt.log(1,n,"Anchor Tag Href Rendering Changed to onClick for Campaign Frame: "+e.id)}catch(t){gt.error(1,n,"Failed to Change Anchor Tag Href Rendering for Campaign Frame: "+e.id)}}liveCampaignPositionStyling(e,t){var n=Pi.baseLogTag+".liveCampaignPositionStyling";try{e.templateType===wn.BANNER?e.display.config.sticky?t.style.position="fixed":t.style.position="absolute":e.templateType===wn.POP_UP&&(t.style.position="fixed","DIV"===t.tagName?t.style.inset="0":t.style.backgroundColor="rgba(99, 99, 99, 0.21)"),gt.log(1,n,"Added Position Styles for CampaignId: "+e.campaignId)}catch(t){gt.error(1,n,"Failed adding Styles for CampaignId: "+e.campaignId)}}testCampaignPositionStyling(e,t){var n=Pi.baseLogTag+".testCampaignPositionStyling";try{e.templateType===wn.BANNER?e.displaySettings.config.sticky?t.style.position="fixed":t.style.position="absolute":e.templateType===wn.POP_UP&&(t.style.position="fixed","DIV"===t.tagName?t.style.inset="0":t.style.backgroundColor="rgba(99, 99, 99, 0.21)"),gt.log(1,n,"Added Position Styles for CampaignId: "+e.draftId)}catch(t){gt.error(1,n,"Failed adding Styles for CampaignId: "+e.draftId)}}bannerTestCampaignStyling(e,t,n){var i,a=Pi.baseLogTag+".bannerTestCampaignStyling";try{let n,r,o=!0;t?(n=parseInt(getComputedStyle(t.contentDocument.body).height),o=-1e.campaignMeta.templateType===wn.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,te.DELIVERY_FUNNEL.ATTEMPTED.CAMPAIGN_ATTEMPTED)}))}getImpressionStats(e){return Ni(this,void 0,void 0,(function*(){var t=this.baseLogTag+".getImpressionStats";try{return yield yn.campaingsStatsStore.getItem(e.campaignId)}catch(n){gt.error(1,t,"Error getting impression stats for "+e.campaignId,n)}}))}getLastGlobalInappShown(){return Ni(this,void 0,void 0,(function*(){return yield yn.serviceMetaStore.getItem(te.STORES.SERVICE_META.KEYS.LAST_INAPP_SHOWN_TIME)}))}getGlobalDelay(){return Ni(this,void 0,void 0,(function*(){return yield yn.serviceMetaStore.getItem(te.STORES.SERVICE_META.KEYS.GLOBAL_DELAY)}))}filterValidCampaigns(e){return Ni(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!==wn.SELF_HANDLED){if(!Nn.isCampaignWithinFC(e,t[n]))return this.deliveryStats.setStats(e,te.DELIVERY_FUNNEL.PRIORITIZED.CAMPAIGN_PRIORITY_MAX_TIMES_SHOWN),!1;if(!Nn.hasCampaignClearedSelfDelay(e,t[n]))return this.deliveryStats.setStats(e,te.DELIVERY_FUNNEL.PRIORITIZED.CAMPAIGN_PRIORITY_MIN_DELAY),!1;if(!Nn.hasCampaignClearedGlobalDelay(e,a,i))return this.deliveryStats.setStats(e,te.DELIVERY_FUNNEL.PRIORITIZED.CAMPAIGN_PRIORITY_GLOBAL_DELAY),!1}return!Nn.isCampaignExpired(e)||(this.deliveryStats.setStats(e,te.DELIVERY_FUNNEL.PRIORITIZED.CAMPAIGN_PRIORITY_EXPIRED),!1)}))}catch(n){gt.error(1,t,"Error filtering and sorting campaigns",n)}}))}prioritizeMessagingCampaigns(e){return Ni(this,void 0,void 0,(function*(){const t=yield this.filterValidCampaigns(e);if(0{t.campaignId!==e.campaignId&&this.deliveryStats.setStats(t,te.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(Nn.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){gt.error(1,i,"Error delivering personalization campaigns",a)}}}))}messagingCampaignImpression(e,t){return Ni(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(!Nn.hasCampaignClearedGlobalDelay(e,a,i))return gt.warn(1,n,"Can not render "+e.campaignId),void this.deliveryStats.setStats(e,te.DELIVERY_FUNNEL.IMPRESSION.CAMPAIGN_IMPRESSION_GLOBAL_DELAY);if(!Nn.canCampaignBeRenderedOverExisting(e,r.length))return void this.deliveryStats.setStats(e,te.DELIVERY_FUNNEL.IMPRESSION.CAMPAIGN_IMPRESSION_ANOTHER_CAMPAIGN_VISIBLE);if(!ei.getURLFilterResult(e))return gt.warn(1,n,"Can not render "+e.campaignId),void this.deliveryStats.setStats(e,te.DELIVERY_FUNNEL.IMPRESSION.CAMPAIGN_IMPRESSION_URL_CHANGED);const o=this.displayManager.campaignRenderMap[e.campaignId];return null==o||"MOE_EXIT"!==t&&t!==T?null!=o&&o.isActive()?(this.deliveryStats.setStats(e,te.DELIVERY_FUNNEL.IMPRESSION.CAMPAIGN_IMPRESSION_ANOTHER_CAMPAIGN_VISIBLE),void gt.warn(1,n,`Can not render ${e.campaignId}, as campaign is already Active.`)):e:(this.deliveryStats.setStats(e,te.DELIVERY_FUNNEL.IMPRESSION.CAMPAIGN_IMPRESSION_MAX_TIMES_SHOWN),void gt.warn(1,n,"Can not render "+e.campaignId))}catch(i){return void gt.error(1,n,"Error delivering messaging campaign",i)}}))}mostEligibleMessagingCampaign(e,t){return Ni(this,void 0,void 0,(function*(){if(0e.templateType===wn.SELF_HANDLED)),c=a.filter((e=>e.templateType!==wn.SELF_HANDLED));0{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){gt.error(1,t,"Error in sending delivery funnel stats",n)}},new(n=(n=void 0)||Promise)((function(e,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(t){var i;t.done?e(t.value):((i=t.value)instanceof n?i:new n((function(e){e(i)}))).then(r,o)}s((i=i.apply(t,[])).next())}));var t,n,i}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 Bi=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 Ui=new ht;class Fi{constructor(e){this.initializationPomise=null,this.testDraftInfo=null,this.triggerManager=null,this.displayManager=null,this.onsiteSelfHandledTriggerListeners={},this.funnelManager=null,this.eventTriggerHandler=null,this.deliveryStats=null,this.initData=e,gt.setLogLevel(e.debugLevel),this.OnsiteApiClient=new pi(this.initData)}setLogLevel(e){gt.setLogLevel(e,!1)}isTestCampaignAvailable(){return Bi(this,void 0,void 0,(function*(){const e=Fi.baseLogTag+".isTestCampaignAvailable";window.opener?(window.addEventListener("message",(t=>Bi(this,void 0,void 0,(function*(){var n,i;t.data&&"inapp_test"===t.data.action&&(n=t.data,ki.isValidRawJson(n)?(i=new ki(n),gt.log(1,e,"Valid test campaign data found checking TestCampaign",n),yield this.checkForTestCampaign(i)):gt.error(1,e,"Data is not a valid test campaign",n),Ui.res())}))),!1),window.opener.postMessage("moe_test_osm","*"),setTimeout((()=>Bi(this,void 0,void 0,(function*(){Ui.res()}))),100)):Ui.res()}))}initialize(){const e=Fi.baseLogTag+".initialize";return gt.log(1,e,"Initialising onsite module"),null==this.initializationPomise&&(this.initializationPomise=new Promise((t=>Bi(this,void 0,void 0,(function*(){try{yield yn.initialize(),yield this.isTestCampaignAvailable(),Ui.p.then((()=>Bi(this,void 0,void 0,(function*(){yield this.syncCampaigns();const n=yield Un();var i=this.isExitIntentCampaignFound(n);if(i.length&&(yield this.prefetchExitIntentCampaigns(i)),i=n.filter((e=>null!=e.triggerData)),this.displayManager=new Pi,this.displayManager.onRender((t=>{gt.log(1,e,"Campaign rendered: "+t.campaignId),yn.serviceMetaStore.setItem(te.STORES.SERVICE_META.KEYS.LAST_INAPP_SHOWN_TIME,new Date)})),null!=this.testDraftInfo&&this.testDraftInfo.draftType===te.DRAFT_CAMPAIGN_TPYES.ONSITE_MESSAGING){gt.log(1,e,"Test campaigns present, will be showing only the test campaign."),gt.log(1,e,"No live campaign will be shown till draft campaign showing");try{gt.log(1,e,"Trying to render draft campaign with id "+this.testDraftInfo.draftId);var a=yield this.OnsiteApiClient.getDraftCampaign(this.testDraftInfo);gt.log(1,e,"Test campaign payload: ",a),a&&this.displayManager.queueDraftCampaign(this.testDraftInfo,a),this.testDraftInfo=null}catch(n){gt.error(1,e,`Error fetching data for test campaign ${this.testDraftInfo.draftId}: `,n)}}else this.deliveryStats=new xi(this.initData),this.triggerManager=new _i(i),this.funnelManager=new Li(this.initData,this.displayManager,this.deliveryStats),this.eventTriggerHandler=new Mi,i=this.eventTriggerHandler.handler.bind(null,this.funnelManager,this.onsiteSelfHandledTriggerListeners,this.handlePersonalizationCampagins.bind(this),this.handleMessagingCampaigns.bind(this)),this.triggerManager.onTrigger(i),Si.setListener(i),yi.setDeliveryStats(this.deliveryStats),Si.setDeliveryStats(this.deliveryStats),yield Si.logDeliveryFunnelForExpiredTimerCampaigns(),yield yi.updateCampaignTimeInSecondaryEventsStore(),yield Si.createNewTimers(),this.triggerManager.startWatching();t(!0)}))))}catch(t){gt.error(1,e,t)}}))))),this.initializationPomise}handleMessagingCampaigns(e){return Bi(this,void 0,void 0,(function*(){var t=Fi.baseLogTag+".handleMessagingCampaigns";e.onsitePayload&&(gt.log(1,t,"Campaign triggered: "+e.campaignId),gt.log(1,t,"Payload for campaign:",e.onsitePayload),this.displayManager.queueLiveCampaign(e,e.onsitePayload))}))}handlePersonalizationCampagins(e){return Bi(this,void 0,void 0,(function*(){const t=Fi.baseLogTag+".handlePersonalizationCampagins";0{null!=e.tag&&(gt.log(1,t,"Personlization Campaign triggered: "+e.campaignId),this.onsiteSelfHandledTriggerListeners[e.tag].forEach((t=>{this.handleSelfHandledCallback(e,e.onsitePayload,t)})))}))}))}logout(){var e;return Bi(this,void 0,void 0,(function*(){var t=Fi.baseLogTag+".logout";if(gt.log(1,t,"Starting module logout"),this.initializationPomise=null,this.displayManager){const t=Object.keys(this.displayManager.campaignRenderMap);null!==(e=this.displayManager.testCampaign)&&void 0!==e&&e.draftId&&t.push(null===(e=this.displayManager.testCampaign)||void 0===e?void 0:e.draftId),t.forEach((e=>{const t=document.getElementById("moe-onsite-campaign-"+e);t&&t.remove()})),this.displayManager.destroy()}this.triggerManager&&this.triggerManager.destory(),yi.destroy(),Si.destroy(),this.displayManager=null,this.funnelManager=null,this.eventTriggerHandler=null,yield Si.deleteAllPendingTimers(),yield yn.clear(),gt.log(1,t,"Starting module logout complete")}))}checkForTestCampaign(e){return Bi(this,void 0,void 0,(function*(){var t=Fi.baseLogTag+".checkForTestCampaign";try{var n=e;null==n?(gt.log(1,t,"No draft campaign found"),this.testDraftInfo=null):(gt.log(1,t,"Found draft campaign: ",n),this.testDraftInfo=n,null==this.testDraftInfo.draftId&&(this.testDraftInfo.draftType=te.DRAFT_CAMPAIGN_TPYES.WEB_PERSONALIZATON))}catch(n){gt.error(1,t,"Error getting test campaign",n)}}))}getData(e,t){return Bi(this,void 0,void 0,(function*(){const n=Fi.baseLogTag+".getData";null==t&&(gt.warn(1,n,"Moengage.onsite.getData called without a providing a callback."),t=()=>{});try{if(yield this.initializationPomise,null!=this.testDraftInfo){var i;gt.log(1,n,"Fetching test campaign: ",this.testDraftInfo),this.testDraftInfo.draftType===te.DRAFT_CAMPAIGN_TPYES.WEB_PERSONALIZATON&&(i=yield this.OnsiteApiClient.getDraftCampaign(this.testDraftInfo),this.testDraftInfo=null,t(null,{payload:i.payload,click:()=>{gt.log(1,n,"This is a test campaign")},imp:()=>{gt.log(1,n,"This is a test campaign")}}))}else{const i=yield yn.campaingsTagsStore.getItem(e);if(i){const o=yield Promise.all(i.map((e=>Bn(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):(gt.error(1,n,"Error fetching campaign payload"),t({message:"There was an error fetching data for this tag"},null))}else gt.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){gt.error(1,n,"Error getting campaign",i)}}))}registerCallback(e,t){return Bi(this,void 0,void 0,(function*(){var n=Fi.baseLogTag+".registerCallback";try{yield this.initializationPomise,null==this.onsiteSelfHandledTriggerListeners[e]?this.onsiteSelfHandledTriggerListeners[e]=[t]:this.onsiteSelfHandledTriggerListeners[e].push(t)}catch(t){gt.error(1,n,"Error setting callback for tag",e),gt.error(1,n,"Error stack:",t)}}))}handleSelfHandledCallback(e,t,n){return Bi(this,void 0,void 0,(function*(){var i=Fi.baseLogTag+".handleSelfHandledCallback";if(e.campaignContext=t.campaignContext,"JSON"===t.payloadType)try{t.payload=JSON.parse(t.payload);var a=_e(e,"triggerData.trigger_delay.delayInSeconds",0)||0;setTimeout((()=>{Pn(e,"WP"),n(null,{payload:t.payload,click:t=>{Cn(e,"WP",t)()},imp:On(e,"WP")})}),1e3*a)}catch(r){a=`Payload for campaign_id ${e.campaignId} is not a valid JSON`,gt.error(1,i,a),gt.error(1,i,"Payload provided:",t.payload),n({message:a},null)}else Pn(e,"WP"),n(null,{payload:t.payload,click:t=>{Cn(e,"WP",t)()},imp:On(e,"WP")})}))}syncCampaigns(){return Bi(this,void 0,void 0,(function*(){var e=Fi.baseLogTag+".syncCampaigns";try{(yield this.shouldClearMetaStorage())&&(yield yn.campaingsMetaStore.clear(),yield this.rebuildTagStore()),(yield this.shouldSaveRemoteCampaigns())&&(yield this.saveRemoteCampaigns())}catch(t){gt.error(1,e,"Error getting remote campaigns: ",t)}}))}shouldClearMetaStorage(){return Bi(this,void 0,void 0,(function*(){return(yield yn.serviceMetaStore.getItem(te.STORES.SERVICE_META.KEYS.LAST_FETCH_SDK_VERSION))!==Xe().getSdkVersion()}))}shouldSaveRemoteCampaigns(){var e;return Bi(this,void 0,void 0,(function*(){var t=Fi.baseLogTag+".shouldSaveRemoteCampaigns",n=yield yn.serviceMetaStore.getItem(te.STORES.SERVICE_META.KEYS.LAST_FETCH_SDK_VERSION),i=yield yn.serviceMetaStore.getItem(te.STORES.SERVICE_META.KEYS.LAST_META_CALL_TIME),a=(i=new Date(i),(new Date).getTime());return null==i||a-i>te.META_REFRESH_TIME||(gt.remoteLogTracking(1,"info",t,"Last fetch was less than 15 mins ago at ",i),n!==Xe().getSdkVersion()?(gt.remoteLogTracking(1,"info",t,"Version change detected. Will proceed to fetch latest campaigns"),!0):!(!(n=yield yn.serviceMetaStore.getItem(te.STORES.SERVICE_META.KEYS.UNIQUE_ID))||n===(null===(e=Fe.get(r.USER_DATA))||void 0===e?void 0:e.deviceUuid)||(gt.remoteLogTracking(1,"info",t,"Unique device id change detected. Will proceed to fetch latest campaigns"),0)))}))}saveRemoteCampaigns(){return Bi(this,void 0,void 0,(function*(){var e=Fi.baseLogTag+".saveRemoteCampaigns";yield yn.campaingsMetaStore.clear(),yield yn.exitIntentCampaignStore.clear();var t=yield this.OnsiteApiClient.getCampaignsMeta();null!=t&&(yield this.addCampaignsToDB(t.campaignsMeta),gt.log(1,e,"Inapp campaigns meta saved!")),yield yi.pruneRemovedCampaigns(),yield yi.removeStaleTriggeringPrimaryEventCampaigns(),yield yn.serviceMetaStore.setItem(te.STORES.SERVICE_META.KEYS.GLOBAL_DELAY,t.globalDelayBetweenInapps),yield yn.serviceMetaStore.setItem(te.STORES.SERVICE_META.KEYS.LAST_FETCH_SDK_VERSION,Xe().getSdkVersion())}))}addCampaignsToDB(e){return Bi(this,void 0,void 0,(function*(){var t=Fi.baseLogTag+".addCampaignsToDB";gt.log(1,t,`Adding/Updating ${e.length} campaigns in DB`,e.map((e=>e.campaignId)));try{yield Promise.all(e.map((e=>yn.campaingsMetaStore.setItem(e.campaignId,e)))),yield this.rebuildTagStore()}catch(e){gt.error(1,t,"Error saving remote campaigns:",e)}}))}rebuildTagStore(){return Bi(this,void 0,void 0,(function*(){var e=Fi.baseLogTag+".rebuildTagStore";try{yield yn.campaingsTagsStore.clear();var t=yield Un();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 yn.campaingsTagsStore.clear();for(const t in e)e.hasOwnProperty(t)&&n.push(yn.campaingsTagsStore.setItem(t,e[t]));yield Promise.all(n)}catch(t){gt.error(1,e,"Error updating tags store:",t)}}))}isExitIntentCampaignFound(e){return e.filter((e=>e.templateType!==wn.SELF_HANDLED&&Mn(e,_)))}prefetchExitIntentCampaigns(e){return Bi(this,void 0,void 0,(function*(){var t=Fi.baseLogTag+".prefetchExitIntentCampaigns";const n=yield Jt.createEvent("MOE_EXIT",[]),i=(yield Ln(e)).filter((e=>ei.getFilterResult(n,e)));if(!i||!i.length)return gt.log(1,t,"Exit intent campaign not eligible to prefetch"),!1;{const e=yield xn(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 yn.exitIntentCampaignStore.setItem(a,e),gt.log(1,t,"Exit intent campaign prefetched: "+a)):e.error&&e.reason&&(yield yn.exitIntentCampaignStore.setItem(a,e))}}}))}refresh(){var e;return Bi(this,void 0,void 0,(function*(){null!==(e=qi.onsite.initData)&&void 0!==e&&e.appId&&(yield Qi(),Xi())}))}sendDelayCampaignStats(){return Bi(this,void 0,void 0,(function*(){var e=Fi.baseLogTag+".sendDelayCampaignStats",t=Object.keys(this.displayManager.campaignRenderMap).filter((e=>!this.displayManager.campaignRenderMap[e].campaignRendered));0{var e;const t=window.Moengage;if(t.onsite){if(t.onsite.displayManager){t.onsite.triggerManager&&null!==(e=null===(e=t.onsite.triggerManager.primaryEventsHash)||void 0===e?void 0:e.MOE_PAGE_SCROLL)&&void 0!==e&&e.length&&window.removeEventListener("scroll",t.onsite.triggerManager.getScrollListenerCallback());const n=t.onsite.displayManager,i=Object.keys(n.campaignRenderMap);t.onsite.sendDelayCampaignStats&&t.onsite.sendDelayCampaignStats(),i.forEach((e=>{document.getElementById("moe-onsite-campaign-"+e)&&document.getElementById("moe-onsite-campaign-"+e).remove(),n.campaignRenderMap[e].isActive()&&n.dismissInapp(e),clearTimeout(n.campaignRenderMap[e].delayTimer),delete n.campaignRenderMap[e],n.campaignRenderOrder=n.campaignRenderOrder.filter((t=>t!==e))})),setTimeout((()=>{t.onsite.triggerManager&&(ze()?t.onsite.triggerManager.windowEventManager.isPopStateEventBound&&(t.onsite.triggerManager.windowEventManager.setHistoryState(),t.onsite.triggerManager.windowEventManager.isExitIntentShown=!1,t.onsite.triggerManager.windowEventManager.scrollExitIntentInterval=null):document.removeEventListener("mouseout",t.onsite.triggerManager.windowEventManager.exitIntentListener))}),0)}$t.resetListeners(),t.onsite.initializationPomise=null,t.onsite.initialize&&t.onsite.initialize()}})(),window.MoeFocusHandler&&window.MoeFocusHandler(),window.Moengage.shouldClearPrevEvents=(new Date).getTime(),Xt.clear(),Xt.clearListeners(),qi.track_page_view();var i=qi.onsite.triggerManager;0<(null===(e=null==i?void 0:i.exitIntentCampaigns)||void 0===e?void 0:e.length)&&ze()&&null!==(t=null==i?void 0:i.windowEventManager)&&void 0!==t&&t.onMobileScrollAndExit(i.onExit),nn.getWebSDKSettings().then((e=>{e.isDomainLevelStorage&&Fe.copyKeysFromCookie(),null!=e&&e.configs.isCardsModuleEnabled&&qi.cards&&(qi.cards.resetCards(ve),qi.cards.displayManager.closeIframe(),qi.cards.displayManager.addCardsInboxListener()),null!=e&&e.configs.isWebPersonalisationModuleEnabled&&(null!==(e=window.MoeWebP)&&void 0!==e&&e.getLiveExperiences(),gt.log(1,n,"webP sync function called"))})).catch((e=>{gt.error(1,n,"Error in getting Web SDK Settings. This might indicate that the App is blocked.")}))}Fi.baseLogTag="MoeOnsite",window[te.OSM_MODULE]=Fi,window.MoeOsm=(gt.log(1,"OsmFunctions","Osm Functions for tracking user behaviour"),{trackEvent:(e,t,n,i)=>(e=wi(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=wi(e))?window.Moengage.onsite.displayManager.clickTracker(e,"OSM",{widget_id:t})():Promise.resolve(),trackDismiss:(e,t=!1)=>(e=wi(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),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)}))});class Hi{constructor(){this.getDeviceUniqueId=e=>{window.addEventListener(x,(t=>{t.detail.name===B.DEVICE_UUID&&(t=t.detail.data,e(t))}))}}onUpdateDeviceId(e){this.getDeviceUniqueId(e)}trackClick(e,t){return Hi.track("MOE_WEBP_MESSAGE_CLICKED",e,t)}trackImpression(e){return Hi.track("MOE_WEBP_MESSAGE_SHOWN",e)}static track(e,t,n){var i=Hi.baseLogTag+".track";if("string"==typeof t)try{t=JSON.parse(t)}catch(e){return void gt.error(2,i,"Error parsing JSON string:",e)}var a=null===(a=null==t?void 0:t.cid)||void 0===a?void 0:a.split("_")[0];if(!a)return Promise.reject();try{return Xe()?(gt.log(1,i,e+": Event Tracked"),Xe().track_event(e,Object.assign({campaign_id:a},t))):(window.moengage_q=window.moengage_q||[]).push({f:"track_event",a:[e,Object.assign(Object.assign({campaign_id:a},t),n)]}),Promise.resolve()}catch(e){gt.error(2,i,"Failed Tracking expression",e)}}}Hi.baseLogTag="Web Personalisation Tracking";class Gi{trackClick(e){return Gi.track("MOE_LANDING_PAGE_CLICKED",e)}trackImpression(e){return Gi.track("MOE_LANDING_PAGE_SHOWN",e)}trackFormSubmit(e,t){return Gi.track("MOE_RESPONSE_SUBMITTED",e,t)}trackEvent(e,t,n){return Gi.track(t,e,n)}static track(e,t,n){const i=Gi.baseLogTag+".track";if("string"==typeof t)try{t=JSON.parse(t)}catch(n){return void gt.error(2,i,"Error parsing JSON string:",n)}if(n){if("string"==typeof n)try{n=JSON.parse(n)}catch(n){return void gt.error(2,i,"Error parsing attributes JSON string:",n)}t=Object.assign(Object.assign({},n),t)}try{return Xe()?(gt.log(1,i,e+": Event Tracked"),Xe().track_event(e,Object.assign({},t))):(window.addEventListener(x,(n=>{if(n.detail.name===B.MOE_INIT)return gt.log(1,i,e+": Event Tracked"),Xe().track_event(e,Object.assign({},t))})),Promise.resolve())}catch(n){gt.error(2,i,"Failed Tracking expression",n)}}}Gi.baseLogTag="Landing Pages Tracking";var Ki=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 Vi="MoEngage";let ji=new ht,Yi=new ht;const zi={getData:(e,t)=>{nn.getWebSDKSettings().then((n=>{ji.p.then((n=>{n.getData(e,t)}))})).catch((e=>{}))},registerCallback:(e,t)=>{nn.getWebSDKSettings().then((n=>{ji.p.then((n=>{n.registerCallback(e,t)}))})).catch((e=>{}))}};class qi{static callWebPush(e){const t=Vi+".callWebPush";nn.getWebSDKSettings().then((n=>{var i,a,r,o,s,l,c;n.isConfigured?n.optInConfig.type===Nt.TYPE.SELF_HANDLED?(gt.log(1,t,"Starting web push functions"),null!=e&&(xe.setSoftAskConfig(e),i=_e(e,"soft_ask_display_callback",null),a=_e(e,"soft_ask_allow_callback",null),r=_e(e,"soft_ask_block_callback",null),o=_e(e,"hard_ask_allow_callback",null),s=_e(e,"hard_ask_dismiss_callback",null),l=_e(e,"hard_ask_block_callback",null),c=U,sn.addCallback(c.SOFT_ASK_SHOWN,i),sn.addCallback(c.SOFT_ASK_ALLOWED,a),sn.addCallback(c.SOFT_ASK_DISMISSED,r),sn.addCallback(c.HARD_ASK_ALLOWED,o),sn.addCallback(c.HARD_ASK_DISMISSED,s),sn.addCallback(c.HARD_ASK_DENIED,l)),St.getInstance().then((e=>{new vn(n,e).callWebPush()}))):gt.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):gt.log(1,t,"Web push settings not configured on dashboard yet. To start web push subscriptions, please configure the settings on dashboard.")})).catch((e=>{gt.error(1,t,"Error in getting Web SDK Settings. This might indicate that the App is blocked.")}))}static showNotification(e){nn.getWebSDKSettings().then((t=>{St.getInstance().then((n=>{new vn(t,n).showNotification(e)}))})).catch((e=>{}))}static getSdkVersion(){return"2.50.0"}static setDebugLevel(e){return Ki(this,void 0,void 0,(function*(){const t=Vi+".setDebugLevel";try{"number"==typeof e&&(!xe.get().disableOnsite&&qi.onsite.setLogLevel&&qi.onsite.setLogLevel(e),nn.getWebSDKSettings().then((t=>{null!=t&&t.configs.isCardsModuleEnabled&&qi.cards&&qi.cards.setLogLevel(e),null!=t&&t.configs.isWebPersonalisationModuleEnabled&&window.MoeWebP&&window.MoeWebP.setLogLevel&&window.MoeWebP.setLogLevel(e),gt.setLogLevel(e,!0)})).catch((n=>{gt.setLogLevel(e,!0),gt.error(1,t,"Error in getting Web SDK Settings. This might indicate that the App is blocked.")})))}catch(e){gt.error(0,t,"Error changing log level:",e)}}))}static vitals(){var e=Tt.getSync();return{deviceUuid:e.deviceUuid,userDetails:e,pushToken:Fe.get(r.PUSH_TOKEN),softAskStatus:Fe.get(r.SOFT_ASK_STATUS),hardAskStatus:Fe.get(r.HARD_ASK_STATUS)}}static help(){var e=Vi+".help";gt.log(0,e,"Moengage Dashboard - ",Y.MOE_DASHBOARD);for(const t in Y)Y.hasOwnProperty(t)&>.log(0,e,t,"-",Y[t])}static track_event(e,t){return Qt.track(e,t)}static add_unique_user_id(e){return Ki(this,void 0,void 0,(function*(){return yield fn.login(e)}))}static update_unique_user_id(e){return fn.updateUniqueId(e)}static add_user_attribute(e,t){return fn.addAttribute(e,t)}static add_first_name(e){return fn.addAttribute("first_name",e)}static add_last_name(e){return fn.addAttribute("last_name",e)}static add_email(e){return fn.addAttribute("email",e)}static add_mobile(e){return fn.addAttribute("mobile",e)}static add_user_name(e){return fn.addAttribute("name",e)}static add_gender(e){return fn.addAttribute("gender",e)}static add_birthday(e){return fn.addAttribute("birthday",e)}static destroy_session(){return qi.user.logout()}static call_web_push(e){qi.callWebPush(e)}static getBranch(){return"dev"}static track_page_view(){return Qt.track(l,{timestamp:Number(Date.now())}),Qt.track(c,{timestamp:Number(Date.now())})}static handle_page_change(){Wi()}}qi.user=fn,qi.event=Qt,qi.device=class{static getUuid(){return Fe.get(r.USER_DATA).deviceUuid}static getPushToken(){return Fe.get(r.PUSH_TOKEN)}static getPermissionState(e){return new Promise(((t,n)=>{nn.getWebSDKSettings().then((i=>{St.getInstance().then((a=>{new vn(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)}))}))}},qi.onsite=zi,qi.reports=zt.reports,qi.remoteLogs=zt,qi.web_p=new Hi,qi.landingPages=new Gi;var $i=()=>{};const Ji={track_event:$i,add_user_attribute:$i,add_first_name:$i,add_last_name:$i,add_email:$i,add_mobile:$i,add_user_name:$i,add_gender:$i,add_birthday:$i,destroy_session:$i,add_unique_user_id:$i,moe_events:$i,location_type_attribute:$i,call_web_push:$i,setDebugLevel:$i};function Xi(){var e;null!==(e=null===(e=qi.onsite)||void 0===e?void 0:e.initData)&&void 0!==e&&e.appId||(e=xe.get(),qi.onsite=new Fi(e),ji.res(qi.onsite),null!==(e=qi.onsite)&&void 0!==e&&e.initialize())}function Qi(){var e;return Ki(this,void 0,void 0,(function*(){null!==(e=null===(e=qi.onsite)||void 0===e?void 0:e.initData)&&void 0!==e&&e.appId&&(gt.log(1,"Moengage.disableOnsiteApi","logging out from inapp module"),yield qi.onsite.logout(),ji=new ht,qi.onsite=zi)}))}const Zi="moe_cards",ea={STORE_NAME:"campaigns"},ta={STORE_NAME:"meta",LAST_FETCH_SDK_VERSION:"last_fetch_sdk_version",LAST_META_CALL_TIME:"last_meta_call_time",UNIQUE_ID:"unique_id",LAST_SYNC_CARDS:"last_sync_cards",SYNC_INTERVALS:"sync_intervals",SHOW_ALL_TAB:"show_all_tab"};var na=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 ia{static initialize(){return na(this,void 0,void 0,(function*(){var e;return null==ia.ready&&(ia.campaignStore=be.createInstance({driver:[be.INDEXEDDB,be.WEBSQL,be.LOCALSTORAGE],name:Zi,storeName:ea.STORE_NAME}),ia.metaStore=be.createInstance({driver:[be.INDEXEDDB,be.WEBSQL,be.LOCALSTORAGE],name:Zi,storeName:ta.STORE_NAME}),e=[ia.campaignStore.ready(),ia.metaStore.ready()],ia.ready=Promise.all(e)),ia.ready}))}static clear(){return na(this,void 0,void 0,(function*(){var e=ia.baseLogTag+".clear";try{yield ia.initialize(),yield Promise.all([ia.campaignStore.clear(),ia.metaStore.clear()]);var t=[ia.campaignStore.ready(),ia.metaStore.ready()];ia.ready=Promise.all(t)}catch(t){gt.error(1,e,"Error clearing cards stores:",t)}return ia.ready}))}}let aa;function ra(e){const t="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==e?void 0:e.bots_list)){var n=Xe();return n&&0{$t.broadcastToWindow({topic:x,name:B.MOE_INIT,data:xe.get()}),qe()===fe.WEB&&oa(),gt.setLogLevel(xe.get().debugLevel),gt.log(1,t,"Script loaded!"),gt.customLabel(1,t,"SDK Version","2.50.0"),0{$t.broadcastToWindow({topic:x,name:B.MOE_INIT_COMPLETED})}))})),e=window.moengage_object||"Moengage",window[e]=qi,qi):(gt.error(1,t,"App Id not specified. Please check docs page to complete the integration - ",Y.WEBSDK_DOCS),Ji))}gt.error(1,t,"Bot detected, Can't initialise the MoEngage Web SDK")}ia.baseLogTag="MOE_CARDS_STORES";const oa=()=>{be.createInstance({driver:[be.INDEXEDDB,be.WEBSQL,be.LOCALSTORAGE],name:J,storeName:X}).clear()},sa=()=>new Promise((e=>{"complete"!==window.document.readyState?window.addEventListener("load",(()=>{e(!0)})):e(!0)}));window&&(window.moe=ra,window.moeBannerText="banner",window[ee]=Xt);const la=()=>{try{var e=localStorage.getItem("moe_segment_cluster"),t=localStorage.getItem("moe_segment_sw_path"),n=localStorage.getItem("moe_segment_sw_scope"),i=localStorage.getItem("moe_segment_enable_spa"),a=localStorage.getItem("moe_segment_disable_onsite"),r=localStorage.getItem("moe_segment_disable_cookies"),o=localStorage.getItem("moe_segment_cards");const l={};e&&(l.cluster=e),t&&(l.swPath=t),n&&(l.swScope=n),i&&(l.enableSPA="true"===i),r&&(l.disableCookies="true"===r),a&&(l.disable_onsite="true"===r),o&&(l.cards=JSON.parse(o));var s=e||t||n||i||r||a||o;return s&>.log(1,".isSegmentDataFound","Data found for segment initialisation",l),!!s&&l}catch(e){return!1}},ca=()=>{const e="Initialization";return new Promise((t=>nn.getWebSDKSettings().then((n=>(ct.setRemoteLogging(n),n.isDomainLevelStorage&&(Fe.isSharedWithCookie=!0,Fe.copyKeysFromCookie()),pn.addBeforeUnloadListeners(n),(n.configs.isBatchingEnabled||n.configs.remoteLogTracking)&&(zt.init(n),gt.log(1,e,"Enabled Batching for "+(n.configs.isBatchingEnabled?"Event Tracking":"")+(n.configs.remoteLogTracking?", Remote Logs Tracking":""))),Tt.get().then((i=>{if(un.get().deviceToLogout===i.deviceUuid)return gt.remoteLogTracking(1,"info",e,"User was not able to logout last time. Completing the logout now and starting new session."),qi.user.logout();i.deviceAdded&&nn.onDeviceAdd.res(),n.isPushSubBilling&>.warn(1,e,"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 a=new ft;(new pn).onWindowVisibilityChange(a.handleBrowserInactivity),gt.customLabel(1,e,"Device UUID",i.deviceUuid),gt.customLabel(1,e,"Device Added",i.deviceAdded),$t.broadcastToWindow({topic:x,name:B.SETTINGS_FETCHED,data:n}),$t.broadcastToWindow({topic:x,name:B.DEVICE_UUID,data:i.deviceUuid}),n.isPushSubBilling||i.deviceAdded||nn.deviceAdd(),qi.track_page_view(),on.clear(r.Q.DEVICE),on.clear(r.Q.REPORT),xe.get().enableSPA&&!aa&&ga(),St.getInstance().then((t=>{var i,a;let o;n.isWebPushEnabled&&!xe.get().disableWebPush&&(o=new vn(n,t));var s,l=!(null!==(i=null===(l=window.MoeWebP)||void 0===l?void 0:l.isEditorModeEnabled)&&void 0!==i&&i.call(l));o&&Ct(n,t)&&l?(0<=[Nt.TYPE.ONE_CLICK,Nt.TYPE.TWO_STEP].indexOf(n.optInConfig.type)?o.callWebPush():(gt.log(1,e,"Self handled setting. Will show opt-in on manual invocation, if required."),o.getPermissionState().then((t=>{var n=Fe.get(r.PUSH_TOKEN);(t===Zt.GRANTED||null!=n&&t===Zt.DENIED)&&(t===Zt.GRANTED&>.log(1,e,"Notification permission already granted. Proceeding to subscribe the user"),o.callWebPush())})).catch((t=>{gt.warn(1,e,"Cannot get permission state: ",t)}))),o.trackPushOptedDeviceAttribute()):Ee.indexOf(t.name)<0?gt.warn(1,e,"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"):gt.warn(1,e,"Web push feature not enabled for current environment"),!xe.get().disableOnsite&&l?nn.onDeviceAdd.p.then((()=>{Xi()})):gt.warn(1,e,"Onsite is disabled in this page since `disableOnsite: true` is passed during initialization."),null!=n&&n.configs.isCardsModuleEnabled&&null!==(a=xe.get().cards)&&void 0!==a&&a.enable&&l?(s=n,Sn.loadModule(ne.CARDS).then((e=>{Yi.res(e),e.initialize(s),qi.cards=e})).catch((e=>{Yi.rej(e)}))):ia.clear(),da()})),t(!0)}))))).catch((n=>{gt.error(1,e,"Error in getting Web SDK Settings. This might indicate that the App is blocked."),t(!1)}))))},da=()=>{const e="Moengage.clearWindowQ";sa().then((()=>{try{var t=window.moengage_object||"Moengage";if(window[t]&&window.moengage_q){let i=window.moengage_q;if(window.moengage_q=[],i&&0{const e="startSpaUrlHandler";let t=document.location.href;(()=>{aa=!0,gt.log(1,e,"Start listening to URL changes");const n=document.querySelector("body"),i=new MutationObserver((n=>{n.forEach((n=>{t===document.location.href||document.location.href.includes("moe-card=1")||(t=document.location.href,gt.log(1,e,"URL Change detected",t),Wi())}))}));i.observe(n,{childList:!0,subtree:!0})})()},ua={clearWindowQ:da,startSpaUrlHandler:ga,isSegmentDataFound:la,clearEventsFromIDB:oa,moeInit:ra,windowLoaded:sa}})()})(); \ No newline at end of file