@swrve/smarttv-sdk
Version:
Swrve marketing engagement platform SDK for SmartTV OTT devices
1 lines • 113 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.SwrveSDK=t():e.SwrveSDK=t()}(self,(()=>{return e={359:function(e,t){var s;e.exports=(s=s||function(e,t){var s=Object.create||function(){function e(){}return function(t){var s;return e.prototype=t,s=new e,e.prototype=null,s}}(),n={},i=n.lib={},r=i.Base={extend:function(e){var t=s(this);return e&&t.mixIn(e),t.hasOwnProperty("init")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},a=i.WordArray=r.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||u).stringify(this)},concat:function(e){var t=this.words,s=e.words,n=this.sigBytes,i=e.sigBytes;if(this.clamp(),n%4)for(var r=0;r<i;r++){var a=s[r>>>2]>>>24-r%4*8&255;t[n+r>>>2]|=a<<24-(n+r)%4*8}else for(r=0;r<i;r+=4)t[n+r>>>2]=s[r>>>2];return this.sigBytes+=i,this},clamp:function(){var t=this.words,s=this.sigBytes;t[s>>>2]&=4294967295<<32-s%4*8,t.length=e.ceil(s/4)},clone:function(){var e=r.clone.call(this);return e.words=this.words.slice(0),e},random:function(t){for(var s,n=[],i=function(t){var s=987654321,n=4294967295;return function(){var i=((s=36969*(65535&s)+(s>>16)&n)<<16)+(t=18e3*(65535&t)+(t>>16)&n)&n;return i/=4294967296,(i+=.5)*(e.random()>.5?1:-1)}},r=0;r<t;r+=4){var o=i(4294967296*(s||e.random()));s=987654071*o(),n.push(4294967296*o()|0)}return new a.init(n,t)}}),o=n.enc={},u=o.Hex={stringify:function(e){for(var t=e.words,s=e.sigBytes,n=[],i=0;i<s;i++){var r=t[i>>>2]>>>24-i%4*8&255;n.push((r>>>4).toString(16)),n.push((15&r).toString(16))}return n.join("")},parse:function(e){for(var t=e.length,s=[],n=0;n<t;n+=2)s[n>>>3]|=parseInt(e.substr(n,2),16)<<24-n%8*4;return new a.init(s,t/2)}},c=o.Latin1={stringify:function(e){for(var t=e.words,s=e.sigBytes,n=[],i=0;i<s;i++){var r=t[i>>>2]>>>24-i%4*8&255;n.push(String.fromCharCode(r))}return n.join("")},parse:function(e){for(var t=e.length,s=[],n=0;n<t;n++)s[n>>>2]|=(255&e.charCodeAt(n))<<24-n%4*8;return new a.init(s,t)}},l=o.Utf8={stringify:function(e){try{return decodeURIComponent(escape(c.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return c.parse(unescape(encodeURIComponent(e)))}},h=i.BufferedBlockAlgorithm=r.extend({reset:function(){this._data=new a.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=l.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var s=this._data,n=s.words,i=s.sigBytes,r=this.blockSize,o=i/(4*r),u=(o=t?e.ceil(o):e.max((0|o)-this._minBufferSize,0))*r,c=e.min(4*u,i);if(u){for(var l=0;l<u;l+=r)this._doProcessBlock(n,l);var h=n.splice(0,u);s.sigBytes-=c}return new a.init(h,c)},clone:function(){var e=r.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0}),g=(i.Hasher=h.extend({cfg:r.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){h.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(e){return function(t,s){return new e.init(s).finalize(t)}},_createHmacHelper:function(e){return function(t,s){return new g.HMAC.init(e,s).finalize(t)}}}),n.algo={});return n}(Math),s)},174:function(e,t,s){var n;e.exports=(n=s(359),function(e){var t=n,s=t.lib,i=s.WordArray,r=s.Hasher,a=t.algo,o=[];!function(){for(var t=0;t<64;t++)o[t]=4294967296*e.abs(e.sin(t+1))|0}();var u=a.MD5=r.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,t){for(var s=0;s<16;s++){var n=t+s,i=e[n];e[n]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var r=this._hash.words,a=e[t+0],u=e[t+1],d=e[t+2],p=e[t+3],m=e[t+4],_=e[t+5],f=e[t+6],v=e[t+7],S=e[t+8],E=e[t+9],C=e[t+10],y=e[t+11],M=e[t+12],I=e[t+13],w=e[t+14],A=e[t+15],D=r[0],T=r[1],N=r[2],P=r[3];D=c(D,T,N,P,a,7,o[0]),P=c(P,D,T,N,u,12,o[1]),N=c(N,P,D,T,d,17,o[2]),T=c(T,N,P,D,p,22,o[3]),D=c(D,T,N,P,m,7,o[4]),P=c(P,D,T,N,_,12,o[5]),N=c(N,P,D,T,f,17,o[6]),T=c(T,N,P,D,v,22,o[7]),D=c(D,T,N,P,S,7,o[8]),P=c(P,D,T,N,E,12,o[9]),N=c(N,P,D,T,C,17,o[10]),T=c(T,N,P,D,y,22,o[11]),D=c(D,T,N,P,M,7,o[12]),P=c(P,D,T,N,I,12,o[13]),N=c(N,P,D,T,w,17,o[14]),D=l(D,T=c(T,N,P,D,A,22,o[15]),N,P,u,5,o[16]),P=l(P,D,T,N,f,9,o[17]),N=l(N,P,D,T,y,14,o[18]),T=l(T,N,P,D,a,20,o[19]),D=l(D,T,N,P,_,5,o[20]),P=l(P,D,T,N,C,9,o[21]),N=l(N,P,D,T,A,14,o[22]),T=l(T,N,P,D,m,20,o[23]),D=l(D,T,N,P,E,5,o[24]),P=l(P,D,T,N,w,9,o[25]),N=l(N,P,D,T,p,14,o[26]),T=l(T,N,P,D,S,20,o[27]),D=l(D,T,N,P,I,5,o[28]),P=l(P,D,T,N,d,9,o[29]),N=l(N,P,D,T,v,14,o[30]),D=h(D,T=l(T,N,P,D,M,20,o[31]),N,P,_,4,o[32]),P=h(P,D,T,N,S,11,o[33]),N=h(N,P,D,T,y,16,o[34]),T=h(T,N,P,D,w,23,o[35]),D=h(D,T,N,P,u,4,o[36]),P=h(P,D,T,N,m,11,o[37]),N=h(N,P,D,T,v,16,o[38]),T=h(T,N,P,D,C,23,o[39]),D=h(D,T,N,P,I,4,o[40]),P=h(P,D,T,N,a,11,o[41]),N=h(N,P,D,T,p,16,o[42]),T=h(T,N,P,D,f,23,o[43]),D=h(D,T,N,P,E,4,o[44]),P=h(P,D,T,N,M,11,o[45]),N=h(N,P,D,T,A,16,o[46]),D=g(D,T=h(T,N,P,D,d,23,o[47]),N,P,a,6,o[48]),P=g(P,D,T,N,v,10,o[49]),N=g(N,P,D,T,w,15,o[50]),T=g(T,N,P,D,_,21,o[51]),D=g(D,T,N,P,M,6,o[52]),P=g(P,D,T,N,p,10,o[53]),N=g(N,P,D,T,C,15,o[54]),T=g(T,N,P,D,u,21,o[55]),D=g(D,T,N,P,S,6,o[56]),P=g(P,D,T,N,A,10,o[57]),N=g(N,P,D,T,f,15,o[58]),T=g(T,N,P,D,I,21,o[59]),D=g(D,T,N,P,m,6,o[60]),P=g(P,D,T,N,y,10,o[61]),N=g(N,P,D,T,d,15,o[62]),T=g(T,N,P,D,E,21,o[63]),r[0]=r[0]+D|0,r[1]=r[1]+T|0,r[2]=r[2]+N|0,r[3]=r[3]+P|0},_doFinalize:function(){var t=this._data,s=t.words,n=8*this._nDataBytes,i=8*t.sigBytes;s[i>>>5]|=128<<24-i%32;var r=e.floor(n/4294967296),a=n;s[15+(i+64>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),s[14+(i+64>>>9<<4)]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),t.sigBytes=4*(s.length+1),this._process();for(var o=this._hash,u=o.words,c=0;c<4;c++){var l=u[c];u[c]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}return o},clone:function(){var e=r.clone.call(this);return e._hash=this._hash.clone(),e}});function c(e,t,s,n,i,r,a){var o=e+(t&s|~t&n)+i+a;return(o<<r|o>>>32-r)+t}function l(e,t,s,n,i,r,a){var o=e+(t&n|s&~n)+i+a;return(o<<r|o>>>32-r)+t}function h(e,t,s,n,i,r,a){var o=e+(t^s^n)+i+a;return(o<<r|o>>>32-r)+t}function g(e,t,s,n,i,r,a){var o=e+(s^(t|~n))+i+a;return(o<<r|o>>>32-r)+t}t.MD5=r._createHelper(u),t.HmacMD5=r._createHmacHelper(u)}(Math),n.MD5)},463:function(e,t,s){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.AssetManager=void 0;const i=n(s(943));t.AssetManager=class{constructor(){this.assets={},this._imagesCDN="",this._fontsCDN=""}manageAssets(e){for(const t of e){const e=t.getAssetID();void 0===this.assets[e]&&(this.assets[e]={id:e,path:t.getAssetPath().toString()})}return this.downloadAssets()}set ImagesCDN(e){this._imagesCDN=e}get ImagesCDN(){return this._imagesCDN}set FontsCDN(e){this._fontsCDN=e}get FontsCDN(){return this._fontsCDN}clearCDN(){this._imagesCDN="",this._fontsCDN=""}checkAssetsForCampaign(e){let t=!0;for(const s of e)if(!this.checkCache(s)){t=!1;break}return t}checkCache(e){const t=document.createElement("img");t.src=e.getAssetPath().toString();const s=document.getElementById("PALImageCache");return s&&s.appendChild(t),t.complete||t.width+t.height>0}downloadAssets(){const e=Object.keys(this.assets).map((e=>this.assets[e]));return i.default.getPlatform().downloadAssets(e)}}},893:function(e,t,s){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.CampaignManager=void 0;const i=s(567),r=s(163),a=s(908),o=s(463),u=n(s(146)),c=s(697),l=s(298),h=n(s(17));class g{constructor(e,t,s,n,i){this.profileManager=e,this.campaigns=[],this.campaignState={},this.onMessageListener=null,this.onEmbeddedListener=null,this._maxMessagesPerSession=99999,this._minDelay=55,this._delayFirstMessage=150,this.MAX_MESSAGES_PER_SESSION=99999,this.MIN_DELAY=55,this.DELAY_FIRST_MESSAGE=150,this.messagesShownCount=0,this.lastShownMessageTime=0,this.assetManager=new o.AssetManager,this.loadStoredCampaigns(this.profileManager.currentUser.userId),this.messageDisplayManager=new a.SwrveMessageDisplayManager(t,s,n),this.platform=t}storeCampaigns(e,t,s){void 0!==e&&e.campaigns&&(this.handleCDN(e),e.campaigns.campaigns?this.campaigns=this.filterUnsupportedCampaigns(e):this.campaigns=[],this.parseGlobalRules(e.campaigns),this.synchronizeCampaignState(),this.handleAssets(t,s),i.StorageManager.saveData(r.CAMPAIGNS+this.profileManager.currentUser.userId,JSON.stringify(e)))}refreshAssets(e,t){this.handleAssets(e,t)}resetCampaignState(e=!0){e&&(this.campaigns=[]),this.campaignState={},this.messagesShownCount=0,this.lastShownMessageTime=0}loadStoredCampaigns(e){this.resetCampaignState(!1);const t=i.StorageManager.getData(r.CAMPAIGNS+e);if(t){const e=JSON.parse(t);e&&e.campaigns&&void 0!==e.campaigns.campaigns&&(this.handleCDN(e),e.campaigns.campaigns?this.campaigns=this.filterUnsupportedCampaigns(e):this.campaigns=[],this.campaigns&&this.parseGlobalRules(e.campaigns))}const s=i.StorageManager.getData(r.CAMPAIGN_STATE+e);s&&(this.campaignState=JSON.parse(s))}synchronizeCampaignState(){const e=this.campaignState;this.campaignState={},this.campaigns.forEach((({id:t})=>{this.campaignState[t]=e[t]||{status:r.SWRVE_CAMPAIGN_STATUS_UNSEEN,impressions:0,next:0,lastShownTime:0}})),i.StorageManager.saveData(r.CAMPAIGN_STATE+this.profileManager.currentUser.userId,JSON.stringify(this.campaignState))}getCampaignIDs(){return this.campaigns.map((e=>({id:e.id,type:e.messages?"iam":"unknown",variant_id:this.getCampaignVariantID(e)})))}getCampaignVariantID(e){return e.messages&&e.messages[0]?e.messages[0].id:0}getSentPageViewEvents(){return this.messageDisplayManager.getSentPageViewEvents()}getSentNavigationEvents(){return this.messageDisplayManager.getSentNavigationEvents()}getCampaignState(e){return this.campaignState[e]}onEmbeddedMessage(e){this.onEmbeddedListener=e}onMessage(e){this.onMessageListener=e}onPageViewed(e){this.messageDisplayManager.onPageViewed(e)}onButtonClicked(e){this.messageDisplayManager.onButtonClicked(e)}onBackButtonClicked(e){this.messageDisplayManager.onBackButtonClicked(e)}showCampaign(e,t,s){if(e.messages&&e.messages.length>0){const n=e.messages[0];return n.parentCampaign=e.id,this.messageDisplayManager.showMessage(e.messages[0],e,this.assetManager.ImagesCDN,this.platform,t),s&&s(n),this.updateCampaignState(n),!0}return!(!e.embedded_message||!e.embedded_message.data||(e.embedded_message.parentCampaign=e.id,this.onEmbeddedListener&&this.onEmbeddedListener(e.embedded_message,t),0))}checkTriggers(e,t,s,n=!1,i){const a=[];let o,u=this.applyGlobalRules(e);const c=[];function l(e,t,s,n){o={status:n,message:s},c.push({id:e,displayed:t,type:"iam",reason:s})}if(u.status===r.CAMPAIGN_MATCH)if(this.campaigns.forEach((s=>{if(s.triggers&&s.triggers.length>0)for(const i of s.triggers){const o=i.event_name===e&&this.canTriggerWithPayload(i,t);if(!o&&n){const n="Campaign ["+s.id+"], Trigger ["+i.event_name+"], does not match eventName["+e+"] & payload["+JSON.stringify(t)+"]. Skipping this trigger.";l(s.id,"false",n,r.CAMPAIGN_NO_MATCH)}if(o){s.messages?s.messages.forEach((e=>a.push(Object.assign({parentCampaign:s.id},e)))):s.embedded_message&&a.push(Object.assign({parentCampaign:s.id},s.embedded_message));break}}else if(n){const e="Campaign ["+s.id+"], no triggers (could be message centre). Skipping this campaign";l(s.id,"false",e,r.CAMPAIGN_ERROR_INVALID_TRIGGERS)}})),a.length>0){a.sort(((e,t)=>e.priority-t.priority));let o=a.filter((t=>{for(const s of this.campaigns)if(s.id===t.parentCampaign){const{status:t,message:a}=this.applyCampaignRules(e,s,i),o=t===r.CAMPAIGN_MATCH;return n&&!o&&l(s.id,"false",a,t),o}return!1}));if(o.length>1){const e=o.reduce(((e,t)=>t.priority<e?t.priority:e),o[0].priority);o=o.filter((t=>t.priority<=e))}if(o.length>0){const a=o.length>1?Math.floor(Math.random()*o.length):0,u=o[a];if(n){const s=o[a];o.filter(((e,t)=>t!==a)).forEach((e=>{const t="Campaign "+s.id+" was selected for display ahead of this campaign.";l(e.parentCampaign,"false",t,r.CAMPAIGN_ELIGIBLE_BUT_OTHER_CHOSEN)}));const n="Campaign ["+s.id+"], Trigger ["+e+"], matches "+e+" & payload "+JSON.stringify(t)+".";l(s.parentCampaign,"true",n,r.CAMPAIGN_MATCH)}if(this.lastShownMessageTime=this.getNow(),!this.messageDisplayManager.isIAMShowing())if(this.onMessageListener)this.onMessageListener(u);else for(const e of this.campaigns)if(e.id===u.parentCampaign){if(e.messages&&e.messages.length>0){this.showMessage(u,e,i),this.updateCampaignState(u),s&&s(u);break}if(e.embedded_message&&e.embedded_message.data){this.onEmbeddedListener&&this.onEmbeddedListener(u,i);break}}}}else n&&(u={status:r.CAMPAIGN_NO_MATCH,message:"No matching campaigns."});const h=u.status===r.CAMPAIGN_MATCH&&o?o.status:u.status;return{globalStatus:u,campaignStatus:o,campaignFailCode:h,campaigns:c}}showMessage(e,t,s){this.messageDisplayManager.showMessage(e,t,this.assetManager.ImagesCDN,this.platform,s)}closeMessage(){this.messageDisplayManager.closeMessage()}canTriggerWithPayload(e,t){return!("object"!=typeof e||!e)&&this.hasFulfilledCondition(e.conditions||{},t||{})}hasFulfilledCondition(e,t){var s,n,i,r,a,o,u,c,l;switch(e.op){case"eq":return(null===(n=null===(s=t[e.key])||void 0===s?void 0:s.toString())||void 0===n?void 0:n.toLowerCase())===(null===(r=null===(i=e.value)||void 0===i?void 0:i.toString())||void 0===r?void 0:r.toLowerCase());case"contains":const h=null!==(u=null===(o=null===(a=t[e.key])||void 0===a?void 0:a.toString())||void 0===o?void 0:o.toLowerCase())&&void 0!==u?u:"",g=null===(l=null===(c=e.value)||void 0===c?void 0:c.toString())||void 0===l?void 0:l.toLowerCase();return h.includes(g);case"and":for(const s of e.args)if(!this.hasFulfilledCondition(s,t))return!1;return!0;case"or":for(const s of e.args)if(this.hasFulfilledCondition(s,t))return!0;return!1;default:return 0===Object.keys(e).length}}handleCDN(e){if(this.assetManager.clearCDN(),e.campaigns&&e.campaigns.cdn_root)this.assetManager.ImagesCDN=e.campaigns.cdn_root;else if(e.campaigns&&e.campaigns.cdn_paths){const t=e.campaigns.cdn_paths;this.assetManager.ImagesCDN=t.message_images,this.assetManager.FontsCDN=t.message_fonts}}getAssetManager(){return this.assetManager}getMessageCenterCampaigns(e){return this.campaigns.filter((t=>{var s;return t.message_center&&t.messages&&t.messages.length>0||t.message_center&&t.embedded_message&&t.embedded_message.data.length>0||t.message_center&&(null===(s=this.campaignState[t.id])||void 0===s?void 0:s.status)!==r.SWRVE_CAMPAIGN_STATUS_DELETED&&this.canCampaignRender(t,e)})).map((e=>Object.assign({},e)))}updateCampaignState(e){for(const t of this.campaigns)if(t.id===e.parentCampaign){const e=this.campaignState[t.id];e?(e.impressions++,e.status="seen",e.lastShownTime=this.getNow(),this.campaignState[t.id]=e,i.StorageManager.saveData(r.CAMPAIGN_STATE+this.profileManager.currentUser.userId,JSON.stringify(this.campaignState))):u.default.error("Campaign state not found for campaign "+t.id),this.messagesShownCount++}}markCampaignAsSeen(e){this.setCampaignStatus(e,r.SWRVE_CAMPAIGN_STATUS_SEEN)}removeMessageCenterCampaign(e){this.setCampaignStatus(e,r.SWRVE_CAMPAIGN_STATUS_DELETED)}isMessageShowing(){var e,t;return null!==(t=null===(e=this.messageDisplayManager)||void 0===e?void 0:e.isIAMShowing())&&void 0!==t&&t}setCampaignStatus(e,t){if(e){const s=this.campaignState[e.id];s?(s.status=t,this.campaignState[e.id]=s,i.StorageManager.saveData(r.CAMPAIGN_STATE+this.profileManager.currentUser.userId,JSON.stringify(this.campaignState))):u.default.error("Campaign state not found for campaign "+e.id)}}applyGlobalRules(e){if(this.messagesShownCount>=this._maxMessagesPerSession)return{status:r.GLOBAL_CAMPAIGN_THROTTLE_MAX_IMPRESSIONS,message:"{App Throttle limit} Too many messages shown."};const t=this.profileManager.currentUser.sessionStart+1e3*this._delayFirstMessage;if(e!==r.SWRVE_AUTOSHOW_AT_SESSION_START_TRIGGER&&t>this.getNow())return{status:r.GLOBAL_CAMPAIGN_THROTTLE_LAUNCH_TIME,message:"{App Throttle limit} Too soon after launch. Wait until "+t};const s=this.lastShownMessageTime+1e3*this._minDelay;return 0!==this.lastShownMessageTime&&s>this.getNow()?{status:r.GLOBAL_CAMPAIGN_THROTTLE_RECENT,message:"{App Throttle limit} Too soon after last message. Wait until "+s}:{status:r.CAMPAIGN_MATCH,message:"Global display rules passing."}}applyCampaignRules(e,t,s){const n=t.rules,i=this.campaignState[t.id];if(t.start_date>this.getNow()||t.end_date<this.getNow())return{status:r.CAMPAIGN_NOT_ACTIVE,message:"Campaign "+t.id+"not active."};const a=this.profileManager.currentUser.sessionStart+1e3*n.delay_first_message;if(e!==r.SWRVE_AUTOSHOW_AT_SESSION_START_TRIGGER&&a>this.getNow())return{status:r.CAMPAIGN_THROTTLE_LAUNCH_TIME,message:"{Campaign throttle limit} Too soon after launch. Wait until "+a};if(n.hasOwnProperty("dismiss_after_views")&&(null==i?void 0:i.impressions)>=n.dismiss_after_views){const e="{Campaign throttle limit} Campaign "+t.id+" has been shown "+t.rules.dismiss_after_views+" times already";return{status:r.CAMPAIGN_THROTTLE_MAX_IMPRESSIONS,message:e}}const o=(null==i?void 0:i.lastShownTime)+1e3*n.min_delay_between_messages;if(0!==(null==i?void 0:i.lastShownTime)&&o>this.getNow()){const e="{Campaign throttle limit} Too soon after last campaign. Wait until "+(o+n.min_delay_between_messages);return{status:r.CAMPAIGN_THROTTLE_RECENT,message:e}}const u=g.getAllAssets([t],this.assetManager.ImagesCDN,s);return u.every((e=>e.canRender()))?this.assetManager.checkAssetsForCampaign(u)?{status:r.CAMPAIGN_MATCH,message:"Campaign "+t.id+"passes display rules"}:{status:r.CAMPAIGN_NOT_DOWNLOADED,message:"Assets not loaded for Campaign "+t}:{status:r.CAMPAIGN_COULD_NOT_PERSONALIZE,message:"Personalization failed for campaign "+t}}parseGlobalRules(e){if(e&&e.rules){const t=e.rules;this._maxMessagesPerSession=t.hasOwnProperty("max_messages_per_session")?t.max_messages_per_session:this.MAX_MESSAGES_PER_SESSION,this._minDelay=t.hasOwnProperty("min_delay_between_messages")?t.min_delay_between_messages:this.MIN_DELAY,this._delayFirstMessage=t.hasOwnProperty("delay_first_message")?t.delay_first_message:this.DELAY_FIRST_MESSAGE}}handleAssets(e,t){const s=g.getAllAssets(this.campaigns,this.assetManager.ImagesCDN,e);this.assetManager.manageAssets(s).then((()=>{t()})).catch((e=>{t(e)}))}static getAllAssets(e,t,s){const n=[];for(const i of e)for(const e of i.messages||[]){const i=e.template&&e.template.formats||[];for(const e of i){for(const i of e.buttons||[])n.push(new c.SwrveButton(i,t,s));for(const i of e.images||[])n.push(new l.SwrveImage(i,t,s));for(const i of e.pages||[]){for(const e of i.buttons||[])n.push(new c.SwrveButton(e,t,s));for(const e of i.images||[])n.push(new l.SwrveImage(e,t,s))}}}return n}canCampaignRender(e,t){return g.getAllAssets([e],this.assetManager.ImagesCDN,t).every((e=>e.canRender()))}getNow(){return h.default.nowInUtcTime()}filterUnsupportedCampaigns(e){return e.campaigns.campaigns.filter((e=>{var t;return!(null===(t=e.messages)||void 0===t?void 0:t.some((e=>{var t;return null===(t=e.template.formats)||void 0===t?void 0:t.some((e=>this.hasMultilineTextFeature(e)||this.hasPlainTextButtonFeature(e)||this.hasCopyToClipboardFeature(e)))})))}))}hasMultilineTextFeature(e){var t,s;const n=e=>"multiline_text"in e;return(null===(t=e.images)||void 0===t?void 0:t.some(n))||(null===(s=e.pages)||void 0===s?void 0:s.some((e=>{var t;return null===(t=e.images)||void 0===t?void 0:t.some(n)})))}hasPlainTextButtonFeature(e){var t,s;const n=e=>"text"in e;return(null===(t=e.buttons)||void 0===t?void 0:t.some(n))||(null===(s=e.pages)||void 0===s?void 0:s.some((e=>{var t;return null===(t=e.buttons)||void 0===t?void 0:t.some(n)})))}hasCopyToClipboardFeature(e){var t,s;const n=e=>{var t;return(null===(t=e.type)||void 0===t?void 0:t.value)===r.COPY_TO_CLIPBOARD};return(null===(t=e.buttons)||void 0===t?void 0:t.some(n))||(null===(s=e.pages)||void 0===s?void 0:s.some((e=>{var t;return null===(t=e.buttons)||void 0===t?void 0:t.some(n)})))}}t.CampaignManager=g},908:function(e,t,s){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,s,n){void 0===n&&(n=s),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[s]}})}:function(e,t,s,n){void 0===n&&(n=s),e[n]=t[s]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var s in e)"default"!==s&&Object.hasOwnProperty.call(e,s)&&n(t,e,s);return i(t,e),t},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SwrveMessageDisplayManager=void 0;const o=r(s(163)),u=s(163),c=a(s(773)),l=a(s(146)),h=s(125),g=["position","width","height","top","left","uid","name","description","thumbnail","item_class"].reduce(((e,t)=>(e[t]=!0,e)),{}),d={opacity:"0.5",transition:"opacity 150ms ease-out"},p={opacity:"1",transition:"opacity 150ms ease-out"};t.SwrveMessageDisplayManager=class{constructor(e,t,s){this.screenCenterWidth=0,this.screenCenterHeight=0,this.onBackButtonClickedCallback=null,this.onButtonClickedCallback=null,this.onPageViewedCallback=null,this.isOpen=!1,this.justClosed=!1,this.currentPageIndex=0,this.currentMessagePages=[],this.sentPageViewEvents=[],this.sentNavigationEvents=[],this.imagesCDN="",this.scale=1,this.onKeydown=e=>{if(!this.isOpen)return;e.preventDefault(),e.stopImmediatePropagation();const t=this.keymap[e.keyCode];"Back"===t?(this.closeMessage(),this.onBackButtonClickedCallback&&this.onBackButtonClickedCallback()):t&&this.focusManager&&this.focusManager.onKeyPress(t)},this.onKeyup=e=>{if(this.justClosed)return e.preventDefault(),e.stopImmediatePropagation(),void(this.justClosed=!1)},this.normalStyle=t&&t.inAppMessageButtonStyle,this.focusStyle=t&&t.inAppMessageButtonFocusStyle,this.overrideIAMStyle=t&&t.inAppMessageStyleOverride,this.keymap=e.getKeymapping(),this.resourceManager=s,this.initListener()}showMessage(e,t,s,n,i){var r,a;this.currentPageIndex=0,this.currentMessagePages=[],this.sentPageViewEvents=[],this.sentNavigationEvents=[],this.screenCenterWidth=n.screenWidth/2,this.screenCenterHeight=n.screenHeight/2,this.personalizationProperties=i;const o=this.getLandscapeFormat(e);o&&(this.isOpen=!0,this.imagesCDN=s||"",this.scale=null!==(r=o.scale)&&void 0!==r?r:1,this.createContainer(e.name,o.color||void 0),o.pages&&(null===(a=o.pages)||void 0===a?void 0:a.length)>0?(this.currentMessagePages=o.pages,this.renderPage(this.currentPageIndex,t)):this.renderContent(o.images,o.buttons,t))}onPageViewed(e){this.onPageViewedCallback=e}onButtonClicked(e){this.onButtonClickedCallback=e}onBackButtonClicked(e){this.onBackButtonClickedCallback=e}isIAMShowing(){return this.isOpen}getSentPageViewEvents(){return this.sentPageViewEvents}getSentNavigationEvents(){return this.sentNavigationEvents}closeMessage(){const e=document.getElementById(u.SWRVE_IAM_CONTAINER);e&&document.body.removeChild(e),this.isOpen=!1,this.justClosed=!0,delete this.focusManager}initListener(){window.addEventListener("keydown",this.onKeydown,!0),window.addEventListener("keyup",this.onKeyup,!0)}getLandscapeFormat(e){const t=e.template.formats||null;if(t){let e=null;return t.forEach((t=>{"landscape"===t.orientation&&(e=t)})),e}return null}createFocusManager(e){return new c.default(e,{direction:"bidirectional",onFocus:e=>this.applyElementStyle(e.element,this.getFocusStyle(this.focusStyle,p)),onBlur:e=>this.applyElementStyle(e.element,this.getFocusStyle(this.normalStyle,d)),onKeyPress:({button:e,campaign:t},s)=>"Enter"===s&&(this.handleButton(e,t),!0)})}applyElementStyle(e,t){for(const s in t)t.hasOwnProperty(s)&&(e.style[s]=t[s])}getFocusStyle(e,t){let s=t;if("string"==typeof e){if(this.resourceManager){const t=this.resourceManager.getResource(e).toJSON();0!==Object.keys(t).length&&(s=this.sanitizeFocusStyle(t))}}else e&&(s=this.sanitizeFocusStyle(e));return s}sanitizeFocusStyle(e){const t={};for(const s in e)e.hasOwnProperty(s)&&!g[s]&&(t[s]=e[s]);return t}appendImages(e){e.forEach(((e,t)=>{var s;const n=document.createElement("img");n.id="SwrveImage"+t,e.dynamic_image_url&&e.dynamic_image_url.length>0?this.personalizationProperties?n.src=null!==(s=this.personalizeText(e.dynamic_image_url,this.personalizationProperties))&&void 0!==s?s:"":n.src=e.dynamic_image_url:n.src=this.imagesCDN+e.image.value,this.addElement(e,n)}))}appendButtons(e,t){return e.map(((e,s)=>{const n=document.createElement("img"),i=this.getFocusStyle(this.normalStyle,d),r=this.personalizeButton(e);return n.id="SwrveButton"+s,r.dynamic_image_url&&r.dynamic_image_url.length>0?n.src=r.dynamic_image_url:n.src=this.imagesCDN+r.image_up.value,n.style.border="0px",n.onclick=()=>this.handleButton(r,t),this.applyElementStyle(n,i),this.addElement(e,n),{button:e,campaign:t,element:n}}))}addElement(e,t){if("number"==typeof e.x.value&&"number"==typeof e.y.value){const s=document.getElementById(u.SWRVE_IAM_CONTAINER);let n=t.naturalWidth*this.scale,i=t.naturalHeight*this.scale;if(e.dynamic_image_url){n=e.w.value*this.scale,i=e.h.value*this.scale;const s=t.naturalWidth/t.naturalHeight;n/i>s?n=i*s:i=n/s}const r=e.y.value,a=e.x.value;if(n>i?t.style.width=n.toString()+"px":t.style.height=i.toString()+"px",t.style.position="absolute",t.style.top=(r+(this.screenCenterHeight-i/2)).toString()+"px",t.style.left=(a+(this.screenCenterWidth-n/2)).toString()+"px",e.accessibility_text)if(this.personalizationProperties){const s=this.personalizeText(e.accessibility_text,this.personalizationProperties);s&&(t.alt=s)}else t.alt=e.accessibility_text;s.appendChild(t)}}handleButton(e,t){const s=String(e.type.value),n=String(e.action.value),i=this.getCurrentPageId(),r=this.getCurrentPageName();if(s===o.PAGE_LINK){const e=Number(n);this.changePage(e,t)}else this.closeMessage();this.onButtonClickedCallback&&this.onButtonClickedCallback(e,t,i,r)}createContainer(e,t){const s=document.createElement("div");s.id=u.SWRVE_IAM_CONTAINER,s.className=u.IAM_CSS_CLASS_NAME,s.innerHTML=this.overrideIAMStyle||u.DEFAULT_IAM_STYLE,s.style.backgroundColor=t||"",document.body.appendChild(s)}changePage(e,t){const s=this.currentMessagePages.findIndex((t=>t.page_id===e));-1!==s&&(this.currentPageIndex=s,this.renderPage(s,t))}renderPage(e,t){var s;const n=document.getElementById(u.SWRVE_IAM_CONTAINER);if(!n)return;const i=(null===(s=n.querySelector("style"))||void 0===s?void 0:s.outerHTML)||"";n.innerHTML=i;const r=this.currentMessagePages[e];r&&this.renderContent(r.images,r.buttons,t)}renderContent(e,t,s){if(e&&e.length>0&&this.appendImages(e),t&&t.length>0){const e=this.appendButtons(t,s);this.focusManager=this.createFocusManager(e),this.focusManager.setActiveFirst()}if(this.onPageViewedCallback){const e=s.messages&&s.messages[0]?s.messages[0].id:0,t=this.currentMessagePages[this.currentPageIndex];t?this.onPageViewedCallback(e,t.page_id,t.page_name):this.onPageViewedCallback(e,0,"")}}getCurrentPageId(){return this.currentMessagePages&&0!==this.currentMessagePages.length?this.currentPageIndex<0||this.currentPageIndex>=this.currentMessagePages.length?"":this.currentMessagePages[this.currentPageIndex].page_id.toString():""}getCurrentPageName(){return this.currentMessagePages&&0!==this.currentMessagePages.length?this.currentPageIndex<0||this.currentPageIndex>=this.currentMessagePages.length?"":this.currentMessagePages[this.currentPageIndex].page_name:""}personalizeButton(e){var t;if(null==this.personalizationProperties)return e;let s=e;if(e.type.value===o.CUSTOM&&(null===(t=e.action)||void 0===t?void 0:t.value)&&"string"==typeof e.action.value){const t=this.personalizeText(e.action.value,this.personalizationProperties);t&&(s=JSON.parse(JSON.stringify(e)),s.action.value=t)}if(e.dynamic_image_url){const t=this.personalizeText(e.dynamic_image_url,this.personalizationProperties);t&&(s||(s=JSON.parse(JSON.stringify(e))),s.dynamic_image_url=t)}return s}personalizeText(e,t){if(null!=e)try{return h.TextTemplating.applyTextTemplatingToString(e,t)}catch(e){l.default.error("Could not resolve, error with personalization",e)}return null}}},572:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.configWithDefaults=void 0,t.configWithDefaults=function(e,t){return Object.freeze(Object.assign(Object.assign({},e),{stack:e.stack||"us",httpsTimeoutSeconds:null==e.httpsTimeoutSeconds?60:e.httpsTimeoutSeconds,userId:t,language:e.language||"English",autoShowMessagesMaxDelay:null==e.autoShowMessagesMaxDelay?5e3:e.autoShowMessagesMaxDelay,newSessionInterval:null==e.newSessionInterval?1800:e.newSessionInterval}))}},214:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateConfig=void 0;const n=s(163);t.validateConfig=function(e){if(e.appId<=0)throw new Error(n.APP_ID_ERROR)}},392:function(e,t,s){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.EventFactory=void 0;const i=s(169),r=n(s(17)),a=s(163);t.EventFactory=class{getNamedEvent(e,t,s,n){return{type:"event",time:n,seqnum:s,name:e,payload:t}}getWrappedNamedEvent(e){return{log_source:"sdk",log_details:{type:"event",parameters:{name:e.name},payload:JSON.stringify(e.payload),seqnum:e.seqnum,client_time:e.time},type:"qa_log_event",time:e.time,log_type:"event"}}getGenericCampaignEvent(e,t,s,n,i,a){return{type:"generic_campaign_event",time:r.default.nowInUtcTime(),seqnum:e,campaignType:t,actionType:s,id:n,contextId:i,payload:a}}getWrappedGenericCampaignEvent(e){return{time:r.default.nowInUtcTime(),type:"qa_log_event",log_source:"sdk",log_type:"event",log_details:{type:"generic_campaign_event",seqnum:e.seqnum,client_time:e.time,payload:JSON.stringify(e.payload),parameters:{campaignType:e.campaignType,actionType:e.actionType,id:e.id,contextId:e.contextId}}}}getUserUpdateWithDate(e,t,s,n){return{type:"user",time:n,seqnum:s,attributes:{[e]:r.default.dateToSwrveISOString(t)}}}getWrappedUserUpdateWithDate(e){return{log_source:"sdk",log_details:{type:"user",parameters:{attributes:e.attributes},seqnum:e.seqnum,client_time:e.time},type:"qa_log_event",time:e.time,log_type:"event"}}getUserUpdate(e,t,s){return{type:"user",time:s,seqnum:t,attributes:e}}getWrappedUserUpdate(e){return{log_source:"sdk",log_details:{type:"user",parameters:{attributes:e.attributes},seqnum:e.seqnum,client_time:e.time},type:"qa_log_event",time:e.time,log_type:"event"}}getDeviceUpdate(e,t,s){return{type:"device_update",time:s,seqnum:t,attributes:e}}getWrappedDeviceUpdate(e){return{log_source:"sdk",log_details:{type:"device_update",parameters:{attributes:e.attributes},seqnum:e.seqnum,client_time:e.time},type:"qa_log_event",time:e.time,log_type:"event"}}getPurchaseEvent(e,t,s,n,i,r){return{type:"purchase",time:r,seqnum:i,quantity:n,item:e,cost:s,currency:t}}getWrappedPurchaseEvent(e){return{log_source:"sdk",log_details:{type:"purchase",parameters:{quantity:e.quantity,item:e.item,cost:e.cost,currency:e.currency},seqnum:e.seqnum,client_time:e.time},type:"qa_log_event",time:e.time,log_type:"event"}}getInAppPurchaseEventWithoutReceipt(e,t,s,n,r,a,o){return null!=o&&i.validateRewards(o),{type:"iap",time:a,seqnum:r,quantity:e,product_id:t,app_store:"unknown_store",cost:s,local_currency:n,rewards:o}}getWrappedInAppPurchaseEventWithoutReceipt(e){return{log_source:"sdk",log_details:{type:"purchase",parameters:{product_id:e.product_id,app_store:e.app_store,rewards:e.rewards,cost:e.cost,local_currency:e.local_currency},seqnum:e.seqnum,client_time:e.time},type:"qa_log_event",time:e.time,log_type:"event"}}getStartSessionEvent(e,t){return{type:"session_start",time:t,seqnum:e}}getWrappedSessionStart(e){return{log_source:"sdk",log_details:{type:"session_start",parameters:{},seqnum:e.seqnum,client_time:e.time},type:"qa_log_event",time:e.time,log_type:"event"}}getCurrencyGivenEvent(e,t,s,n){return{type:"currency_given",time:n,seqnum:s,given_amount:t,given_currency:e}}getWrappedCurrencyGivenEvent(e){return{log_source:"sdk",log_details:{type:"currency_given",parameters:{given_amount:e.given_amount,given_currency:e.given_currency},seqnum:e.seqnum,client_time:e.time},type:"qa_log_event",time:e.time,log_type:"event"}}getFirstInstallEvent(e,t){return{type:"event",time:e,seqnum:t,name:"Swrve.first_session"}}getWrappedFirstInstallEvent(e){return{log_source:"sdk",log_details:{type:"event",parameters:{name:e.name},seqnum:e.seqnum,client_time:e.time},type:"qa_log_event",time:e.time,log_type:"event"}}getButtonClickEvent(e,t,s,n,i,o,u,c){const l={type:"event",time:r.default.nowInUtcTime(),seqnum:e,name:`Swrve.Messages.Message-${t}.click`,payload:{name:s,embedded:n,platform:i,deviceType:a.SWRVE_PAYLOAD_DEVICE_TYPE_TV}};return null!=o&&o&&(l.payload.buttonId=o),u&&u.length>0&&(l.payload.contextId=u),c&&c.length>0&&(l.payload.pageName=c),l}getQAButtonClickEvent(e,t,s,n,i,a){return{type:"qa_log_event",log_type:"campaign-button-clicked",seqnum:a,time:r.default.nowInUtcTime(),log_source:"sdk",log_details:{campaign_id:e,variant_id:t,button_name:s,action_type:n,action_value:i}}}getImpressionEvent(e,t,s){return{type:"event",time:r.default.nowInUtcTime(),seqnum:t,name:"Swrve.Messages.Message-"+e+".impression",payload:s}}getPageViewEvent(e,t,s,n){return this.getGenericCampaignEvent(e,"iam","page_view",t,s,n)}getNavigationEvent(e,t,s,n){return this.getGenericCampaignEvent(e,"iam","navigation",t,s,n)}getDismissEvent(e,t,s,n){return this.getGenericCampaignEvent(e,"iam","dismiss",t,s,n)}getCampaignsDownloadedEvent(e,t){return{log_source:"sdk",log_details:{campaigns:t},seqnum:e,type:"qa_log_event",time:r.default.nowInUtcTime(),log_type:"campaigns-downloaded"}}getCampaignTriggeredEvent(e,t,s,n,i=[]){return{event_name:e,event_payload:t,displayed:n,reason:s,campaigns:i}}getWrappedCampaignTriggeredEvent(e,t){return{type:"qa_log_event",log_type:"campaign-triggered",seqnum:e,time:r.default.nowInUtcTime(),log_source:"sdk",log_details:t}}}},807:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EventManager=void 0;const n=s(469),i=s(567);t.EventManager=class{constructor(e){this.restClient=e,this.MAX_QUEUE_SIZE=1e5,this._queueSize=0,this.queue=[]}queueEvent(e){this.queue.push(e),this.calculateQueueSize(e)}getQueue(){return this.queue}clearQueue(){this.queue=[],this._queueSize=0}clearQueueAndStorage(e){this.clearQueue(),i.StorageManager.clearData("events"+e)}get queueSize(){return this._queueSize}sendQueue(e){const t=this.getAllQueuedEvents(e);return this.clearStoredEvents(e),this.clearQueue(),t.length>0?this.restClient.postEvents(t).then((e=>{if(null==e||e instanceof Error)return!1;if(e.ok)return!0;if(500===e.status)throw new Error("Internal Server Error: "+e.statusText);return!1})).catch((s=>(this.storeEvents([...t,...this.getAllQueuedEvents(e)],e),!1))):Promise.resolve(!1)}getAllQueuedEvents(e){return[...this.queue,...this.getStoredEvents(e)]}getStoredEvents(e){const t=i.StorageManager.getData(this.getStorageKey(e));try{return t?JSON.parse(t):[]}catch(e){return[]}}saveEventsToStorage(e){if(this.queue.length>0){const t=this.getAllQueuedEvents(e);this.clearQueue(),this.storeEvents(t,e)}}storeEvents(e,t){const s=JSON.stringify(e);i.StorageManager.saveData(this.getStorageKey(t),s),this._queueSize+=n.getStringSize(s)-Math.max(e.length-1,0)-2}calculateQueueSize(e){const t=JSON.stringify(e);this._queueSize+=n.getStringSize(t)}clearStoredEvents(e){i.StorageManager.clearData(this.getStorageKey(e))}getStorageKey(e){return"events"+e}}},169:(e,t)=>{"use strict";function s(e){if(!isFinite(e.amount)||e.amount<=0)throw new Error("Reward amount must be a positive number.")}Object.defineProperty(t,"__esModule",{value:!0}),t.validateReward=t.validateRewards=void 0,t.validateRewards=function(e){for(const t of Object.keys(e)){if(null==t||""===t)throw new Error("Reward resource name cannot be empty.");s(e[t])}},t.validateReward=s},46:function(e,t,s){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ProfileManager=void 0;const i=s(373),r=s(567),a=s(33),o=s(163),u=n(s(17));t.ProfileManager=class{constructor(e,t,s,n){this.userId=e,this.appId=t,this.apiKey=s,this.newSessionInterval=n;const a=i.getSessionToken(this.userId,this.appId,this.apiKey,new Date),o=r.StorageManager.getData(e);o?(this._currentUser=JSON.parse(o),this.resolveCurrentUser(a)):this._currentUser={userId:e,sessionToken:a,sessionStart:u.default.nowInUtcTime(),isQAUser:!1,nextSeqNum:0,firstUse:0,lastSessionEnd:0,isAnonymous:!0},r.StorageManager.saveData(e,JSON.stringify(this._currentUser))}hasSessionRestored(){if(0!==this.currentUser.lastSessionEnd){const e=this.currentUser.lastSessionEnd,t=Number(u.default.nowInUtcTime()),s=1e3*this.newSessionInterval;return!(e&&t-e>s)}return!1}getNextSequenceNumber(){const e=++this._currentUser.nextSeqNum;return r.StorageManager.saveData(this._currentUser.userId,JSON.stringify(this._currentUser)),e}getSessionToken(){return this._currentUser.sessionToken}getSwrveIdByThirdPartyId(e){const t=r.StorageManager.getData("ext-"+e);return null!==t?t:null}cacheThirdPartyId(e,t){r.StorageManager.saveData("ext-"+e,t)}static storeUserId(e){r.StorageManager.saveData(o.SWRVE_USER_ID,e)}static getStoredUserId(){return r.StorageManager.getData(o.SWRVE_USER_ID)}static isUserIdVerified(e){return!!r.StorageManager.getData("verified-"+e)}static setUserIdAsVerified(e){this.isUserIdVerified(e)||r.StorageManager.saveData("verified-"+e,"VERIFIED")}setCurrentUserAsNewAnonymousUser(){const e=a.generateUuid().toString();this.setCurrentUser(e,!0)}setCurrentUser(e,t=!1){const s=i.getSessionToken(e,this.appId,this.apiKey,new Date),n=r.StorageManager.getData(e);n?(this._currentUser=JSON.parse(n),this.resolveCurrentUser(s)):this._currentUser={userId:e,sessionToken:s,sessionStart:u.default.nowInUtcTime(),isQAUser:!1,nextSeqNum:1,firstUse:0,lastSessionEnd:0,isAnonymous:t},r.StorageManager.saveData(e,JSON.stringify(this._currentUser)),r.StorageManager.saveData(o.SWRVE_USER_ID,this.currentUser.userId)}set firstUse(e){this.currentUser.firstUse=e,r.StorageManager.saveData(this._currentUser.userId,JSON.stringify(this._currentUser))}get currentUser(){return this._currentUser}setAsQAUser(e){this.currentUser.isQAUser=!0,this.currentUser.qaUser=e,r.StorageManager.saveData(this.currentUser.userId,JSON.stringify(this._currentUser))}clearQAUser(){this.currentUser.isQAUser=!1,r.StorageManager.saveData(this._currentUser.userId,JSON.stringify(this._currentUser))}isQAUser(){return this._currentUser.isQAUser}get QAUser(){return this.isQAUser()?this._currentUser.qaUser:void 0}storeEtagHeader(e){this._currentUser.etag=e,r.StorageManager.saveData(this.currentUser.userId,JSON.stringify(this._currentUser))}clearEtagHeader(){this.currentUser.etag=void 0,r.StorageManager.saveData(this._currentUser.userId,JSON.stringify(this._currentUser))}saveCurrentUserBeforeSessionEnd(){this._currentUser.lastSessionEnd=u.default.nowInUtcTime(),r.StorageManager.saveData(this._currentUser.userId,JSON.stringify(this._currentUser)),r.StorageManager.saveData(o.SWRVE_USER_ID,this.currentUser.userId)}restoreCurrentUser(e,t,s){this._currentUser.sessionToken=e,this._currentUser.sessionStart=s,this._currentUser.userId=t}resolveCurrentUser(e){const t=this._currentUser.userId;if(this.hasSessionRestored()){if(!this._currentUser.sessionStart){const s=new Date(this._currentUser.sessionStart);e=i.getSessionToken(t,this.appId,this.apiKey,s)}this.restoreCurrentUser(e,t,this._currentUser.sessionStart)}else this.restoreCurrentUser(e,t,u.default.nowInUtcTime())}}},172:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ResourceManager=void 0,t.ResourceManager=class{constructor(e,t){this.getResources=e,this.getResource=t}getAttributeAsString(e,t,s){return this.getResource(e).getAttributeAsString(t,s)}getAttributeAsNumber(e,t,s){return this.getResource(e).getAttributeAsNumber(t,s)}getAttributeAsBoolean(e,t,s){return this.getResource(e).getAttributeAsBoolean(t,s)}}},261:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ResourceManagerInternal=void 0;const n=s(567),i=s(172),r=s(674);t.ResourceManagerInternal=class{constructor(){this.resourceManager=new i.ResourceManager((()=>this.resources?this.resources.map((e=>Object.assign({},e))):null),(e=>this.resourcesIndex&&this.resourcesIndex[e]||new r.SwrveResource({})))}storeResources(e,t){this.setResources(e),n.StorageManager.saveDataWithMD5Hash("resources"+t,JSON.stringify(e))}getResources(e){return n.StorageManager.getDataWithMD5Hash("resources"+e).then((e=>{let t=null;return e&&(t=JSON.parse(e)),this.setResources(t),t}))}getResourceManager(){return this.resourceManager}setResources(e){this.resources=e,this.resourcesIndex=(e||[]).reduce(((e,t)=>(e[t.uid]=new r.SwrveResource(t),e)),{})}}},674:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SwrveResource=void 0,t.SwrveResource=class{constructor(e){e="object"==typeof e?e:{},this.getAttributeAsString=(t,s)=>t in e?String(e[t]):s,this.getAttributeAsNumber=(t,s)=>{if(t in e){const s=Number(e[t]);if(!isNaN(s))return s}return s},this.getAttributeAsBoolean=(t,s)=>{if(t in e){const s=e[t];return!!String(s).match(/^true|yes$/i)}return s},this.toJSON=()=>Object.assign({},e)}}},695:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SwrveRestClient=void 0,t.SwrveRestClient=class{constructor(e,t,s){this.config=e,this.profileManager=t,this.platform=s,this.version=3,this.apiVersion="8",this.inAppVersion="10",this.embeddedVersion="1"}postEvents(e){const t=this.config.appId,s="us"===this.config.stack?"api":"eu-api",n=null==this.config.contentUrl?`https://${t}.${s}.swrve.com/1/batch`:this.config.contentUrl,i={user:this.profileManager.currentUser.userId,app_version:this.config.appVersion,session_token:this.profileManager.getSessionToken(),version:this.version,unique_device_id:this.platform.deviceID,data:e};return this.fetch(n,{body:JSON.stringify(i),cache:"no-cache",method:"POST",headers:{"content-type":"application/json"}})}getCampaignsAndResources(){const e=this.config.appId,t="us"===this.config.stack?"content":"eu-content",s=null==this.config.apiUrl?`https://${e}.${t}.swrve.com/api/1/user_content?`:this.config.apiUrl,n=this.getQueryString(this.profileManager.currentUser.etag);return this.fetch(s+n).then((e=>e.json().then((t=>({json:t,etag:e.headers.get("ETag")}))))).catch((e=>{throw e}))}identify(e,t){const s=this.config.appId,n="us"===this.config.stack?"identity":"eu-identity",i=null==this.config.identityUrl?`https://${s}.${n}.swrve.com/identify`:this.config.identityUrl,r={api_key:this.config.apiKey,swrve_id:t,external_user_id:e,unique_device_id:this.platform.deviceID};return this.fetch(i,{body:JSON.stringify(r),cache:"no-cache",method:"POST",headers:{"Content-Type":"application/json"}}).then((e=>{if(e&&e.ok)return e.json();throw new Error("Error "+e+" statusText:"+(e&&e.statusText))})).catch((e=>{throw e}))}getUserResourcesDiff(){const e=this.config.appId,t="us"===this.config.stack?"content":"eu-content",s=null==this.config.apiUrl?`https://${e}.${t}.swrve.com/api/1/user_resources_diff?`:this.config.apiUrl,n=this.getQueryString();return this.fetch(s+n).then((e=>e.json().then((t=>({json:t,etag:e.headers.get("ETag")})))))}getQueryString(e){const t=encodeURIComponent,s=this.getContentRequestParams(),n=Object.keys(s).filter((e=>null!=s[e])).map((e=>t(e)+"="+t(s[e]))).join("&"),i=e?"&etag="+e:"",r=this.profileManager.getSessionToken();return n+i+(r?"&session_token="+r:"")}getContentRequestParams(){return{api_key:this.config.apiKey,user:this.profileManager.currentUser.userId,app_version:this.config.appVersion,joined:this.profileManager.currentUser.firstUse.toString(),version:this.apiVersion,in_app_version:this.inAppVersion,embedded_campaign_version:this.embeddedVersion,language:this.platform.language,app_store:this.platform.appStore,device_width:this.platform.screenWidth.toString(),device_height:this.platform.screenHeight.toString(),device_dpi:this.platform.screenDPI.toString(),device_name:this.platform.deviceID,device_type:"tv",os:this.platform.os,os_version:this.platform.osVersion,orientation:"landscape"}}fetch(e,t){const s=this.config.httpsTimeoutSeconds;let n,i;return"AbortController"in window&&(n=new AbortController,i=n.signal),Promise.race([fetch(e,Object.assign(Object.assign({},t),{signal:i})),new Promise(((e,t)=>{setTimeout((()=>{t(new Error("Request timeout after "+s+" seconds")),n&&n.abort()}),1e3*s)}))])}}},567:function(e,t,s){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.StorageManager=void 0;const i=n(s(943)),r=s(399),a=s(163);t.StorageManager=class{static saveData(e,t){this.getStorage().setItem(this.getKey(e),t)}static getData(e){return this.getStorage().getItem(this.getKey(e))}static clearData(e){this.getStorage().removeItem(this.getKey(e))}static saveDataWithMD5Hash(e,t){const s=this.getStorage();return r.md5Async(e+t).then((n=>{s.setItem(this.getKey(e),t),s.setItem(this.getHashKey(e),n)}))}static getDataWithMD5Hash(e){const t=this.getStorage(),s=t.getItem(this.getKey(e)),n=t.getItem(this.getHashKey(e));return r.md5Async(e+s).then((e=>n===e?s:null))}static getKey(e){return"swrve."+e}static getHashKey(e){return"swrve."+e+".hash"}static getStorage(){const e=i.default.getPlatform().synchronousStorage;if(!e)throw new Error(a.NO_SYNCHRONOUS_STORAGE);return e}}},327:function(e,t,s){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,s,n){void 0===n&&(n=s),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[s]}})}:function(e,t,s,n){void 0===n&&(n=s),e[n]=t[s]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var s in e)"default"!==s&&Object.hasOwnProperty.call(e,s)&&n(t,e,s);return i(t,e),t},a=this&&this.__awaiter||function(e,t,s,n){return new(s||(s=Promise))((function(i,r){function a(e){try{u(n.next(e))}catch(e){r(e)}}function o(e){try{u(n.throw(e))}catch(e){r(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof s?t:new s((function(e){e(t)}))).then(a,o)}u((n=n.apply(e,t||[])).next())}))},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.SwrveInternal=void 0;const u=s(392),c=s(46),l=o(s(943)),h=s(893),g=s(801),d=s(261),p=r(s(163)),m=s(567),_=s(214),f=o(s(146)),v=s(807),S=s(695),E=s(572),C=s(964),y=o(s(17)),M=s(265),I=s(163),w=s(125),A=s(778),D=s(784),T=s(33);t.SwrveInternal=class{constructor(e,t){this.onResourcesLoadedCallback=null,this.onCampaignLoadedCallback=null,this.onCustomButtonClickedCallback=null,this.onIAMDismissedCallback=null,this.onIAMShownCallback=null,this.eventLoopTimer=0,this.flushFrequency=0,this._shutdown=!1,this.autoShowEnabled=!0,this.pauseSDK=!1,this.installDate="",this.identifiedOnAnotherDevice=!1,this.refreshAssets=!0,t=t||{},this.platform=e.customPlatform||t.platform||l.default.getPlatform(e),void 0!==l.default.platform&&(l.default.platform=this.platform),this.loadInstallDate();let s=m.StorageManager.getData(p.SWRVE_USER_ID);null===s&&(s=T.generateUuid().toString()),this.config=E.configWithDefaults(e,s),_.validateConfig(this.config),this.resourceManager=new d.ResourceManagerInternal,this.profileManager=t.profileManager||new c.ProfileManager(this.config.userId,this.config.appId,this.config.apiKey,this.config.newSessionInterval),this.realTimeUserPropertiesManager=new A.RealTimeUserPropertiesManager(this.profileManager),this.campaignManager=t.campaignManager||new h.CampaignManager(this.profileManager,this.platform,this.config,this.getResourceManager()),this.campaignManager.onPageViewed(((e,t,s)=>{this.handlePageViewed(e,t,s)})),this.campaignManager.onButtonClicked(((e,t,s,n)=>{this.handleButtonClicked(e,t,s,n)})),this.campaignManager.onBackButtonClicked((()=>{this.onIAMDismissedCallback&&this.onIAMDismissedCallback()})),this.restClient=t.restClient||new S.SwrveRestClient(this.config,this.profileManager,this.platform),this.evtManager=t.eventManager||new v.EventManager(this.restClient),this.eventFactory=new u.EventFactory,this.config.embeddedMessageConfig&&this.config.embeddedMessageConfig.embeddedCallback&&("function"!=typeof this.config.embeddedMessageConfig.embeddedCallback&&f.default.error(p.INVALID_FUNCTION.replace("$","onEmbeddedMessage")),this.campaignManager.onEmbeddedMessage(this.config.embeddedMessageConfig.embeddedCallback))}init(){if(c.ProfileManager.storeUserId(this.config.userId),window.onbeforeunload=()=>{this.pageStateHandler(),this.shutdown()},window.onblur=()=>{this.pageStateHandler()},this.platform.init(["language","countryCode","timezone","firmware","deviceHeight","deviceWidth"]).then((()=>{this._shutdown||this.queueDeviceProperties()})),this.isIdentifyCallPending()){const e=m.StorageManager.getData(p.IDENTIFY_CALL_PENDING_EXTERNAL_ID),t=m.StorageManager.getData(p.IDENTIFY_CALL_PENDING);this.makeIdentityCall(e,this.profileManager.currentUser.userId,t,(()=>{}),(()=>this.initSDK()))}else this.config.managedMode?this.stop():this.initSDK()}getConfig(){return this.config}getUserInfo(){const{userId:e,firstUse:t,sessionStart:s,isQAUser:n}=this.profileManager.currentUser;return{userId:e,firstUse:t,sessionStart:s,isQAUser:n}}getMessageCenterCampaigns(e){return e?this.camp