@letscooee/web-sdk 14.2.7 → 14.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@letscooee/web-sdk",
3
3
  "description": "Engage uniquely and boost conversions with AI-powered customer journeys driven by real-time intent",
4
- "version": "14.2.7",
4
+ "version": "14.2.8",
5
5
  "scripts": {
6
6
  "postinstall": "bash .dev/setup.sh",
7
7
  "lint": "ng lint",
@@ -77,7 +77,7 @@
77
77
  "@angular/forms": "^21.2.0",
78
78
  "@angular/platform-browser": "^21.2.0",
79
79
  "@angular/platform-browser-dynamic": "^21.2.0",
80
- "@letscooee/ts-common": "1.2.11",
80
+ "@letscooee/ts-common": "1.2.12",
81
81
  "@letscooee/url-builder": "^0.0.5",
82
82
  "@preact/signals": "^1.2.3",
83
83
  "@sentry/browser": "9.42.0",
@@ -1,5 +0,0 @@
1
- import { q, b as H, d as Ne, M, P as P$1, e as ke, m as mt$1, f as Be, j as jr, Y, X, I as Ir, g as Ot, L as Lt, U as Ue, h as kt, y as ye, z as ze, R as Rt, A as At, i as A, n as Oe, r, o as s, x, p as In, u as On, S as Sn, Q as Qt, v as S, w as dt, C as me, D as j, E as Xt, F as pe, G as Sn$1, N as Nn, $ as $e } from './main.min.js';
2
-
3
- var w=class{loadedFonts=[];async loadAllFonts(t){t.elems?.forEach(e=>{e instanceof me&&this.loadFamily(e.typography?.fam);});}async loadFamily(t){if(!t?.fonts||this.loadedFonts.indexOf(t.name)>-1)return;let e=[];t.fonts.forEach(n=>{if(n.url){let c=new FontFace(`cooee`+t.name,n.getURL(),n.getFontDescriptor());e.push(c.load());}}),this.loadedFonts.push(t.name),(await Promise.all(e)).forEach(n=>{document.fonts.add(n);});}};var b=class{static updateIdentity(t){if(!this.isInstalled())return;let e={};t.email&&(e.email=t.email),t.mobile&&(e.phone_number=t.mobile),Y.verbose(`Sending email/mobile to Klaviyo`),window.klaviyo.push([`identify`,e]);}static isInstalled(){return window.klaviyo&&typeof window.klaviyo==`object`}};var R=class{action;triggerContext;constructor(t,e){this.action=t,this.triggerContext=e;}async execute(){let t=this.containsCTA()?`CE Trigger Clicked`:`CE Trigger Closed`;switch(this.action.at!==pe.SUBMIT_FORM&&await this.closeTriggerAndSendEvent(t),this.action.at){case pe.ACCEPT_POPUP:break;case pe.GO_TO_URL:this.gotoURLAction();break;case pe.SHARE:this.shareAction();break;case pe.SUBMIT_FORM:await this.collectFormData();break;case void 0:case pe.OPEN_CART:break;default:Y.error(`Received an invalid ClickActionType: `,this.action.at);return}}externalAction(){this.action.ext?.u&&window.open(this.action.ext.u,`_blank`)?.focus();}gotoURLAction(){if(this.action.gu?.u){let t=this.action.gu.u;Sn$1(t)||(t=`//${t}`),window.open(t,`_self`);}}async closeTriggerAndSendEvent(t,e){this.triggerContext.closeInApp(t,e),await this.dispatchEvent();}shareAction(){if(!this.action.share)return;if(!navigator.share){Y.warn(`Navigator.share is not compatible with this browser`);return}navigator.share({text:this.action.share.text,title:`Share`}).then(e=>console.log(e)).catch(e=>console.error(e));}containsCTA(){return this.action.at&&this.action.at!==pe.REJECT_POPUP?true:!(this.isEmpty(this.action.custKV)&&this.isEmpty(this.action.up))}isEmpty(t){return t?Object.keys(t).length===0:true}async collectFormData(){let t={};for(let e of this.triggerContext.inputs){if(!e.isValid)return;let n=document.getElementById(e.id).value;e.type===51?t.email=n:e.type===52&&(t.mobile=n);}await this.closeTriggerAndSendEvent(`CE Form Submitted`,{form:t}),this.action.applyDiscount&&Nn(`Coupon applied on cart`),b.updateIdentity(t);}async dispatchEvent(){let t=this.triggerContext.triggerData,e={clickAction:this.action,items:this.triggerContext.selectedEmbeddedItems??t.embeddedItems??t.items,collections:t.collections,triggerData:t};await new $e().process(e);let r={action:this.containsCTA()?`CLICKED`:`CLOSED`};document.dispatchEvent(new CustomEvent(`letscooee:outbound:popup-activities`,{detail:r}));}};var a=class{renderer=D.get();parentHTMLEl;inappElement;inappHTMLEl;triggerContext;scalingFactor;constructor(t,e,r){this.parentHTMLEl=t,this.inappElement=e,this.triggerContext=r,this.scalingFactor=this.renderer.getScalingFactor();}getHTMLElement(){return this.inappHTMLEl}insertElement(){this.parentHTMLEl.appendChild(this.inappHTMLEl);}processCommonBlocks(){this.processWidthAndHeight(),this.processPositionBlock(),this.processTransformBlock(),this.processTransparency(),this.processShadow(),this.registerAction();let t=s(r(r(r(r({},this.getDisplayStyles()),this.getSpaceStyles()),this.getBorderStyles()),this.getBackgroundStyles()),{boxSizing:`border-box`,outline:`none`});S(this.inappHTMLEl,t);}getDisplayStyles(){return {display:`block`}}processWidthAndHeight(){this.inappElement.w&&H(this.inappHTMLEl,`width`,x(this.inappElement.w,this.scalingFactor)),this.inappElement.h&&H(this.inappHTMLEl,`height`,x(this.inappElement.h,this.scalingFactor));}processPositionBlock(){let t={position:`absolute`,left:x(this.inappElement.x,this.scalingFactor),top:x(this.inappElement.y,this.scalingFactor)};S(this.inappHTMLEl,t);}getBorderStyles(){return Sn(this.inappElement.br,this.scalingFactor)}getSpaceStyles(){return In(this.inappElement.spc,this.scalingFactor)}processTransparency(){let t=this.inappElement.alpha;if(!isNaN(t)){let e=(t/100).toFixed(2);H(this.inappHTMLEl,`opacity`,e);}}processShadow(){let t=this.inappElement.shd;t?H(this.inappHTMLEl,`box-shadow`,t.getStyle(this.scalingFactor)):H(this.inappHTMLEl,`box-shadow`,`unset`);}processTransformBlock(){let t=new j(this.inappElement.trf);t&&t.rotate&&H(this.inappHTMLEl,`transform`,`rotate(${t.rotate}deg)`);}registerAction(){let t=this.inappElement.clc;!t||Object.keys(t).length===0||(this.inappHTMLEl.addEventListener(`click`,e=>{e.stopPropagation(),new R(t,this.triggerContext).execute();}),H(this.inappHTMLEl,`cursor`,`pointer`));}getBackgroundStyles(){return On(this.inappElement.bg)}};var l=class extends a{constructor(t,e,r){super(t,e,r);}processCommonBlocks(){super.processCommonBlocks(),this.processFontBlock(),this.processAlignment();}processFontBlock(){let t={},e=this.inappElement.typography;return e&&(t.fontSize=x(e.fs,this.scalingFactor),t.fontFamily=`cooee`+e.fam?.name,t.lineHeight=`${e.lh}`,t.letterSpacing=e.letterSpacing),Qt(this.inappElement.color,`color`,t),S(this.inappHTMLEl,t),t}processPart(t,e){let r=[];e.u&&r.push(`underline`),e.st&&r.push(`line-through`),r.length||r.push(`normal`),H(t,`font-weight`,e.b?`bold`:`normal`),H(t,`font-style`,e.i?`italic`:`normal`),H(t,`text-decoration`,r.join(` `)),H(t,`color`,e.c??`inherit`),H(t,`font-family`,`inherit`);}processAlignment(){let t=this.inappElement.typography.ta,e=t?Xt[t]?.toLowerCase():this.inappElement.typography.alignment;e||(e=`start`),H(this.inappHTMLEl,`text-align`,e);}};var f=class extends l{constructor(t,e,r){super(t,e,r),this.inappHTMLEl=document.createElement(`div`),this.insertElement();}render(){this.inappElement.parts?.forEach(t=>{let e=document.createElement(`span`);e.innerHTML=t.txt?.toString()?.replace(/\n/g,`<br />`),this.processPart(e,t),this.inappHTMLEl.appendChild(e);}),this.processCommonBlocks();}};var v=class extends a{constructor(t,e,r){super(t,e,r),this.inappHTMLEl=document.createElement(`div`),this.insertElement();}render(){this.processCommonBlocks();}};var T=class extends a{constructor(t,e,r){super(t,e,r),this.inappHTMLEl=document.createElement(`img`),this.insertElement();}render(){this.inappHTMLEl.setAttribute(`src`,this.inappElement.src),H(this.inappHTMLEl,`max-width`,`none`),H(this.inappHTMLEl,`max-height`,`none`),H(this.inappHTMLEl,`margin`,`0 auto`),this.processCommonBlocks();}};var y=class o extends a{constructor(e,r,n){super(e,r,n);this.parent=e;this.inappHTMLEl=document.createElement(`div`);}static MAX_Z_INDEX=`2147483647`;render(){return this.parent||this.renderer.removeInApp(),this.insertElement(),this.processCommonBlocks(),this.inappHTMLEl.classList.add(`cooee-wrapper`),this.inappHTMLEl.classList.add(this.triggerContext.rootClassName),H(this.inappHTMLEl,`z-index`,o.MAX_Z_INDEX),this.inappHTMLEl}getBackgroundStyles(){return this.inappElement.cover?super.getBackgroundStyles():{}}processWidthAndHeight(){let e=this.inappElement.cont;if(this.inappElement.cover)this.renderer.isParentNotBody()?(H(this.inappHTMLEl,`width`,`100%`),H(this.inappHTMLEl,`height`,`100%`)):(H(this.inappHTMLEl,`width`,`100vw`),H(this.inappHTMLEl,`height`,`100vh`)),H(this.inappHTMLEl,`top`,`0`),H(this.inappHTMLEl,`left`,`0`);else {let r=this.inappElement.spc,n=Oe(e.w,this.scalingFactor)+r.getHorizontal(),c=Oe(e.h,this.scalingFactor)+r.getVertical();H(this.inappHTMLEl,`width`,n+`px`),H(this.inappHTMLEl,`height`,c+`px`);}}getSpaceStyles(){return {padding:this.inappElement.spc.getPaddingCSS()}}getDisplayStyles(){return r(r({display:`flex`},this.inappElement.getStylesForWrapper()),this.inappElement.getFlexStylesForContainer())}processPositionBlock(){this.renderer.isParentNotBody()?H(this.inappHTMLEl,`position`,`absolute`):H(this.inappHTMLEl,`position`,`fixed`);}getBorderStyles(){return {}}processTransparency(){}processTransformBlock(){}processShadow(){}};var mt=`cooee-container`,P=class extends a{constructor(t,e,r){super(t,e,r),this.inappHTMLEl=document.createElement(`div`),this.insertElement();}render(){return this.processCommonBlocks(),H(this.inappHTMLEl,`position`,`relative`),H(this.inappHTMLEl,`overflow`,`hidden`),this.inappHTMLEl.classList.add(mt),this}};var k=class o extends l{static DAYS=`Days`;static HOURS=`Hours`;static MINUTES=`Minutes`;static SECONDS=`Seconds`;elements;spans=[];constructor(t,e,r){super(t,e,r),this.inappHTMLEl=document.createElement(`div`),this.insertElement();}render(){this.addTimerChildren(),this.processAndStartTimer(),this.processCommonBlocks();let t=s(r(r(r({flex:`1 1 0`},On(this.inappElement.bg)),Sn(this.inappElement.br,this.scalingFactor)),In(this.inappElement.spc,this.scalingFactor)),{marginLeft:x(this.inappElement.gap,this.scalingFactor),marginRight:x(this.inappElement.gap,this.scalingFactor)});this.addStylesToTimer(t);}getBackgroundStyles(){return {}}processFontBlock(){let t=super.processFontBlock();return Qt(this.inappElement.color,`color`,t),this.addStylesToTimer(t),t}getSpaceStyles(){return {}}getBorderStyles(){return {}}getDisplayStyles(){return {display:`flex`,flexWrap:`nowrap`,justifyContent:`center`}}addStylesToTimer(t){this.elements.forEach(e=>S(e,t));}addTimerChildren(){let t=this.inappElement.show;this.elements=[],t.day&&this.elements.push(this.getChild(o.DAYS)),t.hour&&this.elements.push(this.getChild(o.HOURS)),t.minute&&this.elements.push(this.getChild(o.MINUTES)),t.second&&this.elements.push(this.getChild(o.SECONDS)),this.elements.forEach(e=>this.inappHTMLEl.appendChild(e));}getChild(t){let e=document.createElement(`div`),r=document.createElement(`span`),n=document.createElement(`span`);return n.innerText=t,r.innerText=`00`,r.id=`lc-${t}`,H(n,`font-size`,`0.5em`),H(n,`text-align`,`center`),H(n,`font-family`,`inherit`),H(r,`text-align`,`center`),H(r,`font-family`,`inherit`),this.inappElement.lblPos===`start`?(e.appendChild(n),e.appendChild(r)):(e.appendChild(r),e.appendChild(n)),H(e,`display`,`flex`),H(e,`flex-direction`,this.inappElement.horizontal?``:`column`),H(e,`justify-content`,`center`),H(e,`align-items`,`center`),H(e,`gap`,`5px`),this.spans.push(r),e}processAndStartTimer(){let t=this.inappElement.timer.start(this.inappElement.timerType,e=>{this.spans.forEach(r=>{r.id===`lc-${o.DAYS}`?r.innerText=String(e.days).padStart(2,`0`):r.id===`lc-${o.HOURS}`?r.innerText=String(e.hours).padStart(2,`0`):r.id===`lc-${o.MINUTES}`?r.innerText=String(e.minutes).padStart(2,`0`):r.id===`lc-${o.SECONDS}`&&(r.innerText=String(e.seconds).padStart(2,`0`));});});this.triggerContext.intervals.push(t);}};var B=class extends l{constructor(t,e,r){super(t,e,r),this.inappHTMLEl=document.createElement(`select`),this.insertElement();}render(){H(this.inappHTMLEl,`background`,`#ffffff00`),H(this.inappHTMLEl,`outline`,`none`),this.processCommonBlocks(),this.addListener(this.inappHTMLEl),this.addOptions();}addListener(t){this.triggerContext.selectedEmbeddedItems?.length||this.updateItems(this.triggerContext.triggerData.items[0].vars[0]),t.addEventListener(`click`,e=>{e.stopPropagation();}),t.addEventListener(`change`,()=>{let e=new dt(JSON.parse(t.value));this.updateItems(e);});}updateItems(t){let e=this.triggerContext.triggerData.items[0];this.triggerContext.selectedEmbeddedItems=[e.toEmbed(t)];let r=this.parentHTMLEl.querySelector(`#coo-13`);if(!r)return;let n=t.imgs[0]??e.imgs?.at(0);n?.url&&r.setAttribute(`src`,n.url);}addOptions(){let t=this.triggerContext.triggerData.items,e=this.inappHTMLEl;if(!t?.length){e.add(this.createOption(this.inappElement.placeholderText));return}let r=this.triggerContext.selectedEmbeddedItems?.at(0);t[0].vars.forEach(n=>{e.add(this.createOption(n.name??`Default`,n,n.mID===r?.vID));});}createOption(t,e,r){let n=document.createElement(`option`);return n.text=t,n.value=JSON.stringify(e),r&&(n.selected=true),e||(n.disabled=true),n}};var u=class extends l{borderColor=``;constructor(t,e,r){super(t,e,r),this.inappHTMLEl=document.createElement(`input`),this.insertElement();}render(){let t=this.setInputType();this.inappHTMLEl.setAttribute(`placeholder`,this.inappElement.placeholderText),H(this.inappHTMLEl,`background`,`#ffffff00`),H(this.inappHTMLEl,`outline`,`none`),this.inappHTMLEl.addEventListener(`click`,e=>{e.stopPropagation();}),this.processCommonBlocks(),this.addListener(this.inappHTMLEl,t),this.triggerContext.addInputField(t,this.inappElement.t);}};var F=class o extends u{static EMAIL_REGEX=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;constructor(t,e,r){super(t,e,r);}setInputType(){let t=`coo-${this.inappElement.t}`;return this.inappHTMLEl.setAttribute(`type`,`email`),this.inappHTMLEl.setAttribute(`id`,t),t}addListener(t,e){t.addEventListener(`keydown`,r=>{this.borderColor||(this.borderColor=this.inappHTMLEl.style.borderColor),t.value.match(o.EMAIL_REGEX)?(H(this.inappHTMLEl,`border-color`,this.borderColor),this.triggerContext.updateValidation(e,true)):(H(this.inappHTMLEl,`border-color`,`red`),this.triggerContext.updateValidation(e,false)),r.stopPropagation();});}};var O=class o extends u{static MOBILE_REGEX=/^\d+$/;constructor(t,e,r){super(t,e,r);}setInputType(){let t=`coo-${this.inappElement.t}`;return this.inappHTMLEl.setAttribute(`type`,`tel`),this.inappHTMLEl.setAttribute(`id`,t),t}addListener(t,e){t.addEventListener(`keydown`,r=>{this.borderColor||(this.borderColor=this.inappHTMLEl.style.borderColor),t.value.match(o.MOBILE_REGEX)?(H(this.inappHTMLEl,`border-color`,this.borderColor),this.triggerContext.updateValidation(e,true)):(H(this.inappHTMLEl,`border-color`,`red`),this.triggerContext.updateValidation(e,false)),r.stopPropagation();});}};var N=class extends T{constructor(t,e,r){super(t,e,r);}render(){super.render(),this.inappHTMLEl.setAttribute(`id`,`coo-${this.inappElement.type}`);}};var D=class o{static DOCUMENT_STANDARD_MODE=`CSS1Compat`;static ACTIVE_TRIGGER_DATA;static _instance;parent;rootContainer;containerHTMLElement;ian;scalingFactor=1;triggerContext;resizeListener;cartDrawerToggleSubscription;constructor(t){this.resizeListener=()=>this.screenResized(),this.setParentContainer(t);}static get(){return o._instance}render(t){this.renderEngagement(new q(t));}getScalingFactor(){return this.scalingFactor}calculateScalingFactor(t){let e=t.max,r=t.cont.w,n=t.cont.h,c=t.spc,m=this.getWidth(),h=this.getHeight();e&&(m=m?Math.min(m,e):e,h=h?Math.min(h,e):e),h&&(m-=c.getHorizontal(),h-=c.getVertical(),m/h<r/n?this.scalingFactor=m/r:this.scalingFactor=h/n,this.scalingFactor=Math.min(this.scalingFactor,1));}setParentContainer(t){this.parent=t||document.body,this.isParentNotBody()&&H(this.parent,`position`,`relative`);}isParentNotBody(){return this.parent&&this.parent!==document.body}getWidth(){return this.isParentNotBody()?this.parent.clientWidth:document.compatMode===o.DOCUMENT_STANDARD_MODE?document.documentElement.clientWidth:window.innerWidth}getHeight(){return this.isParentNotBody()?this.parent.clientHeight:document.compatMode===o.DOCUMENT_STANDARD_MODE?document.documentElement.clientHeight:window.innerHeight}async renderEngagement(t){this.triggerContext=new Ne(new Date,t),this.triggerContext.onClose(e=>{this.closeInApp(e);}),this.ian=t.ian,(M()||t.previewType===`mobile`)&&this.ian.overrideForMobileView(),await this.preloadImages(t),t.shouldDelay()?window.setTimeout(()=>{this.withCartDrawerClosed();},t.getDelaySeconds()):this.withCartDrawerClosed();}withCartDrawerClosed(){if(!P$1.get().isOpen()){this.startRenderingOnce();return}this.cartDrawerToggleSubscription=window.CooeeSDK.cartDrawerToggle$.subscribe(({open:e})=>{!e&&this.startRenderingOnce();});}startRenderingOnce(){if(!this.shouldSkipCampaign()){o.ACTIVE_TRIGGER_DATA=this.triggerContext.triggerData,o._instance=this;try{this.startRendering();}catch(t){ke(t,`render-popup`,{triggerContext:this.triggerContext});return}this.sendTriggerDisplayed(),M()||window.addEventListener(`resize`,this.resizeListener),this.cartDrawerToggleSubscription?.unsubscribe();}}shouldSkipCampaign(){let t=this.triggerContext.triggerData;if(!t.previewType&&o.ACTIVE_TRIGGER_DATA){let r={triggerShown:new mt$1(o.ACTIVE_TRIGGER_DATA??{})};return this.skipTrigger(t,r),true}if(Be().isGoKwikPopupOpen)return this.skipTrigger(t,{reason:`GoKwik popup is open`}),true;let e=jr.find(r=>!!document.querySelector(r.identifier));return e?(this.skipTrigger(t,{reason:`${e.gateway} modal is open`}),true):false}startRendering(){this.calculateScalingFactor(this.ian),this.rootContainer=new y(this.parent,this.ian,this.triggerContext).render();try{this.renderContainer(this.triggerContext);}catch(t){throw Y.error(t),t}}sendTriggerDisplayed(){let t={};this.triggerContext.triggerData.items?.length&&(t.promotedMIDs=this.triggerContext.triggerData.items?.map(n=>n.mID));X(new Ir(`CE Trigger Displayed`,t,this.triggerContext.triggerData));document.dispatchEvent(new CustomEvent(`letscooee:outbound:popup-activities`,{detail:{action:`DISPLAYED`}}));}sendTriggerClosed(t){let e=t.eventName;delete t.eventName;let r=new Ir(e,t,this.triggerContext.triggerData);r.name===`CE Trigger Clicked`&&(r.items=this.triggerContext.selectedEmbeddedItems??this.triggerContext.triggerData.items?.map(n=>n.toEmbed())),X(r);}addEnterAnimation(t){this.containerHTMLElement.animate(t.getEnterAnimation(),{duration:500});}renderElement(t,e,r){e instanceof Ot?new F(t,e,r).render():e instanceof Lt?new O(t,e,r).render():e instanceof Ue?new f(t,e,r).render():e instanceof kt?new N(t,e,r).render():e instanceof ye?new T(t,e,r).render():e instanceof ze?new v(t,e,r).render():e instanceof Rt?new k(t,e,r).render():e instanceof At?new B(t,e,r).render():Y.error(`Unsupported element type- `+e.type);}renderContainer(t){let e=this.ian?.cont;e&&(this.containerHTMLElement=new P(this.rootContainer,e,t).render().getHTMLElement(),new w().loadAllFonts(this.ian),this.ian.elems?.forEach(async r=>{await this.renderElement(this.containerHTMLElement,r,t);}),this.addEnterAnimation(this.ian.anim));}closeInApp(t){let e=this.ian.anim.getExitAnimation();this.sendTriggerClosed(t),o.ACTIVE_TRIGGER_DATA=void 0;let r=this.containerHTMLElement.animate(e,{duration:500,easing:`ease-in-out`});r.onfinish=()=>{this.removeInApp(),window.removeEventListener(`resize`,this.resizeListener);};}screenResized(){this.removeInApp(),this.startRendering();}removeInApp(){let t=document.querySelector(`.${this.triggerContext.rootClassName}`);t&&t.parentElement.removeChild(t);}skipTrigger(t,e){X(new Ir(`CE Campaign Rejected`,e,t));}async preloadImages(t){let e=t.ian;if(!e)return;let r=[];e.elems.forEach(n=>{let c=n.bg?.img?.src;if(c&&r.push(c),n.t===1){let m=n.src;if(!m)return;r.push(m);}}),e.bg?.img?.src&&r.push(e.bg.img.src),e.cont.bg?.img?.src&&r.push(e.cont.bg.img.src),await Promise.all(r.map(n=>A(n)));}};
4
-
5
- export { D as FreeformRenderer };