@letscooee/web-sdk 9.3.28 → 9.3.30

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.
@@ -1,4 +1,4 @@
1
- "use strict";(()=>{var ig=Object.create,Ac=Object.defineProperty,og=Object.defineProperties,sg=Object.getOwnPropertyDescriptor,ag=Object.getOwnPropertyDescriptors,cg=Object.getOwnPropertyNames,ap=Object.getOwnPropertySymbols,lg=Object.getPrototypeOf,lp=Object.prototype.hasOwnProperty,ug=Object.prototype.propertyIsEnumerable,cp=(e,t,r)=>t in e?Ac(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,w=(e,t)=>{for(var r in t||={})lp.call(t,r)&&cp(e,r,t[r]);if(ap)for(var r of ap(t))ug.call(t,r)&&cp(e,r,t[r]);return e},ee=(e,t)=>og(e,ag(t)),zi=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')}),ur=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),pg=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of cg(t))!lp.call(e,i)&&i!==r&&Ac(e,i,{get:()=>t[i],enumerable:!(n=sg(t,i))||n.enumerable});return e},Ce=(e,t,r)=>(r=e!=null?ig(lg(e)):{},pg(t||!e||!e.__esModule?Ac(r,"default",{value:e,enumerable:!0}):r,e)),nn=ur((e,t)=>{"use strict";(function(r){"use strict";var n={};n.VERSION="1.6.1";var i,s={},o=function(h,y){return function(){return y.apply(h,arguments)}},c=function(){var h=arguments,y=h[0],E,v;for(v=1;v<h.length;v++)for(E in h[v])!(E in y)&&h[v].hasOwnProperty(E)&&(y[E]=h[v][E]);return y},u=function(h,y){return{value:h,name:y}};n.TRACE=u(1,"TRACE"),n.DEBUG=u(2,"DEBUG"),n.INFO=u(3,"INFO"),n.TIME=u(4,"TIME"),n.WARN=u(5,"WARN"),n.ERROR=u(8,"ERROR"),n.OFF=u(99,"OFF");var p=function(h){this.context=h,this.setLevel(h.filterLevel),this.log=this.info};p.prototype={setLevel:function(h){h&&"value"in h&&(this.context.filterLevel=h)},getLevel:function(){return this.context.filterLevel},enabledFor:function(h){var y=this.context.filterLevel;return h.value>=y.value},trace:function(){this.invoke(n.TRACE,arguments)},debug:function(){this.invoke(n.DEBUG,arguments)},info:function(){this.invoke(n.INFO,arguments)},warn:function(){this.invoke(n.WARN,arguments)},error:function(){this.invoke(n.ERROR,arguments)},time:function(h){typeof h=="string"&&h.length>0&&this.invoke(n.TIME,[h,"start"])},timeEnd:function(h){typeof h=="string"&&h.length>0&&this.invoke(n.TIME,[h,"end"])},invoke:function(h,y){i&&this.enabledFor(h)&&i(y,c({level:h},this.context))}};var m=new p({filterLevel:n.OFF});(function(){var h=n;h.enabledFor=o(m,m.enabledFor),h.trace=o(m,m.trace),h.debug=o(m,m.debug),h.time=o(m,m.time),h.timeEnd=o(m,m.timeEnd),h.info=o(m,m.info),h.warn=o(m,m.warn),h.error=o(m,m.error),h.log=h.info})(),n.setHandler=function(h){i=h},n.setLevel=function(h){m.setLevel(h);for(var y in s)s.hasOwnProperty(y)&&s[y].setLevel(h)},n.getLevel=function(){return m.getLevel()},n.get=function(h){return s[h]||(s[h]=new p(c({name:h},m.context)))},n.createDefaultHandler=function(h){h=h||{},h.formatter=h.formatter||function(v,_){_.name&&v.unshift("["+_.name+"]")};var y={},E=function(v,_){Function.prototype.apply.call(v,console,_)};return typeof console>"u"?function(){}:function(v,_){v=Array.prototype.slice.call(v);var x=console.log,P;_.level===n.TIME?(P=(_.name?"["+_.name+"] ":"")+v[0],v[1]==="start"?console.time?console.time(P):y[P]=new Date().getTime():console.timeEnd?console.timeEnd(P):E(x,[P+": "+(new Date().getTime()-y[P])+"ms"])):(_.level===n.WARN&&console.warn?x=console.warn:_.level===n.ERROR&&console.error?x=console.error:_.level===n.INFO&&console.info?x=console.info:_.level===n.DEBUG&&console.debug?x=console.debug:_.level===n.TRACE&&console.trace&&(x=console.trace),h.formatter(v,_),E(x,v))}},n.useDefaults=function(h){n.setLevel(h&&h.defaultLevel||n.DEBUG),n.setHandler(n.createDefaultHandler(h))},n.setDefaults=n.useDefaults,typeof define=="function"&&define.amd?define(n):typeof t<"u"&&t.exports?t.exports=n:(n._prevLogger=r.Logger,n.noConflict=function(){return r.Logger=n._prevLogger,n},r.Logger=n)})(e)}),Nc=ur(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MustacheUtils=void 0;var t=class Ih{static escapeHtml(n){return String(n).replace(/"/g,i=>Ih.entityMap[i])}};e.MustacheUtils=t,t.entityMap={'"':"&quot;"}}),Gr=ur(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MilestoneRewardType=e.ProgressBarLayout=e.EngagementContentSource=e.EngagementObjective=e.OnsiteDeliveryType=e.ClickActionType=e.FrequencyGapUnit=e.FrequencyType=e.RedirectBehaviour=e.EngagementPlacementPosition=e.EngagementCollectionSource=e.PromotionType=e.CartFilterEnum=e.CartCurrencyOperator=e.CartCriteria=e.URLCriteria=e.UTMCriteria=e.CartItemSource=e.EngagementItemSource=e.PurchasedVisitor=e.LoggedInVisitor=e.VisitorType=e.SessionType=e.EngagementContentType=e.TriggerType=e.EngagementType=e.EngagementStatus=e.TimePreference=e.ScheduleFrequency=e.CriteriaFrequency=void 0;var t=function(d){return d[d.ONCE_PER_USER=1]="ONCE_PER_USER",d[d.ONCE_PER_SESSION=2]="ONCE_PER_SESSION",d[d.EVERY_TIME=3]="EVERY_TIME",d}(t||(e.CriteriaFrequency=t={})),r=function(d){return d[d.ONE_TIME=1]="ONE_TIME",d[d.MULTIPLE=2]="MULTIPLE",d[d.RECURRING=3]="RECURRING",d}(r||(e.ScheduleFrequency=r={})),n=function(d){return d[d.NOW=1]="NOW",d[d.LATER=2]="LATER",d[d.NEVER=3]="NEVER",d}(n||(e.TimePreference=n={})),i=function(d){return d[d.PUBLISHED=1]="PUBLISHED",d[d.DRAFT=2]="DRAFT",d[d.PAUSED=3]="PAUSED",d[d.FAILED=4]="FAILED",d[d.STOPPED=5]="STOPPED",d[d.COMPLETED=6]="COMPLETED",d[d.ARCHIVED=7]="ARCHIVED",d[d.UNINSTALLED=8]="UNINSTALLED",d}(i||(e.EngagementStatus=i={})),s=function(d){return d[d.POPUP=1]="POPUP",d[d.LEAD_GENERATION=2]="LEAD_GENERATION",d[d.PRODUCT_WIDGET=3]="PRODUCT_WIDGET",d[d.PRODUCT_BUNDLE=4]="PRODUCT_BUNDLE",d[d.ANNOUNCEMENT_BAR=5]="ANNOUNCEMENT_BAR",d[d.CART_REMINDER=6]="CART_REMINDER",d[d.CRO_COPILOT=10]="CRO_COPILOT",d[d.OTHER=11]="OTHER",d}(s||(e.EngagementType=s={})),o=function(d){return d[d.NONE=0]="NONE",d[d.RULE_BASED=1]="RULE_BASED",d[d.INTENT_BASED=2]="INTENT_BASED",d}(o||(e.TriggerType=o={})),c=function(d){return d[d.SINGLE=1]="SINGLE",d[d.EXCLUSION=2]="EXCLUSION",d[d.ABTESTING=3]="ABTESTING",d}(c||(e.EngagementContentType=c={})),u=function(d){return d[d.ALL=0]="ALL",d[d.NEW_ONLY=1]="NEW_ONLY",d[d.RETURNING_ONLY=2]="RETURNING_ONLY",d}(u||(e.SessionType=u={})),p=function(d){return d[d.ALL=0]="ALL",d[d.LOGGED_IN_ONLY=3]="LOGGED_IN_ONLY",d[d.NON_LOGGED_IN_ONLY=4]="NON_LOGGED_IN_ONLY",d[d.PURCHASED=5]="PURCHASED",d[d.NON_PURCHASED=6]="NON_PURCHASED",d[d.ABANDON_CART=7]="ABANDON_CART",d[d.RETURNING_AND_NON_PURCHASED=8]="RETURNING_AND_NON_PURCHASED",d}(p||(e.VisitorType=p={})),m=function(d){return d.ALL="ALL",d.LOGGED_IN="LOGGED_IN",d.NON_LOGGED_IN="NON_LOGGED_IN",d}(m||(e.LoggedInVisitor=m={})),h=function(d){return d.ALL="ALL",d.PURCHASED="PURCHASED",d.NON_PURCHASED="NON_PURCHASED",d}(h||(e.PurchasedVisitor=h={})),y=function(d){return d[d.NONE=0]="NONE",d[d.ITEM_RECOMMENDATION=1]="ITEM_RECOMMENDATION",d[d.MULTIPLE_ITEMS=2]="MULTIPLE_ITEMS",d[d.SINGLE_ITEM=3]="SINGLE_ITEM",d[d.TOP_SELLING=4]="TOP_SELLING",d[d.STOCK_CLEARANCE=5]="STOCK_CLEARANCE",d[d.NEW_ARRIVALS=6]="NEW_ARRIVALS",d[d.RECENTLY_VIEWED=7]="RECENTLY_VIEWED",d[d.EVENT_ITEM=8]="EVENT_ITEM",d[d.CART_ITEM=9]="CART_ITEM",d[d.BUNDLE=10]="BUNDLE",d[d.CURRENT_ITEM=11]="CURRENT_ITEM",d[d.PURCHASED_PREVIOUSLY=12]="PURCHASED_PREVIOUSLY",d[d.COLLECTION_ITEMS=13]="COLLECTION_ITEMS",d[d.TRENDING_ITEMS=14]="TRENDING_ITEMS",d}(y||(e.EngagementItemSource=y={})),E=function(d){return d[d.LAST_ADDED=1]="LAST_ADDED",d[d.FIRST_ADDED=2]="FIRST_ADDED",d[d.HIGHEST_PRICE=3]="HIGHEST_PRICE",d[d.LOWEST_PRICE=4]="LOWEST_PRICE",d[d.FIRST_MATCHING_TAG=5]="FIRST_MATCHING_TAG",d[d.ALL=6]="ALL",d}(E||(e.CartItemSource=E={})),v=function(d){return d[d.ALL=0]="ALL",d[d.ONLY_ORGANIC=1]="ONLY_ORGANIC",d[d.ONLY_NON_ORGANIC=2]="ONLY_NON_ORGANIC",d[d.INCLUDES=3]="INCLUDES",d[d.EXCLUDES=4]="EXCLUDES",d}(v||(e.UTMCriteria=v={})),_=function(d){return d[d.NONE=0]="NONE",d[d.LIKE=1]="LIKE",d[d.NOT_LIKE=2]="NOT_LIKE",d[d.EQUALS=3]="EQUALS",d[d.NOT_EQUALS=4]="NOT_EQUALS",d}(_||(e.URLCriteria=_={})),x=function(d){return d[d.NONE=0]="NONE",d[d.LESS_THAN=1]="LESS_THAN",d[d.GREATER_THAN=2]="GREATER_THAN",d[d.BETWEEN=3]="BETWEEN",d[d.EQUALS=4]="EQUALS",d}(x||(e.CartCriteria=x={})),P=function(d){return d[d.ALL=0]="ALL",d[d.INCLUDES=1]="INCLUDES",d[d.EXCLUDES=2]="EXCLUDES",d}(P||(e.CartCurrencyOperator=P={})),B=function(d){return d[d.NONE=0]="NONE",d[d.AMOUNT=1]="AMOUNT",d[d.TOTAL_PRODUCT=2]="TOTAL_PRODUCT",d[d.UNIQUE_PRODUCT=3]="UNIQUE_PRODUCT",d}(B||(e.CartFilterEnum=B={})),U=function(d){return d[d.NONE=0]="NONE",d[d.ITEM=1]="ITEM",d[d.COLLECTION=2]="COLLECTION",d}(U||(e.PromotionType=U={})),R=function(d){return d[d.NONE=0]="NONE",d[d.SINGLE=1]="SINGLE",d[d.MULTIPLE=2]="MULTIPLE",d}(R||(e.EngagementCollectionSource=R={})),G=function(d){return d.BEFORE="before",d.AFTER="after",d.INSIDE_FIRST="insideFirst",d.INSIDE_LAST="insideLast",d}(G||(e.EngagementPlacementPosition=G={})),ue=function(d){return d.SHOPIFY_CHECKOUT="shopify_checkout",d.THIRD_PARTY_CHECKOUT="third_party_checkout",d.CART_PAGE="cart_page",d.CART_DRAWER="cart_drawer",d}(ue||(e.RedirectBehaviour=ue={})),Me=function(d){return d.ONCE_IN_SESSION="ONCE_IN_SESSION",d.ACROSS_SESSIONS="ACROSS_SESSIONS",d}(Me||(e.FrequencyType=Me={})),j=function(d){return d.DAYS="DAYS",d.HOURS="HOURS",d.MINUTES="MINUTES",d.SECONDS="SECONDS",d}(j||(e.FrequencyGapUnit=j={})),Q=function(d){return d[d.NONE=0]="NONE",d[d.REJECT_POPUP=1]="REJECT_POPUP",d[d.ACCEPT_POPUP=2]="ACCEPT_POPUP",d[d.GO_TO_URL=4]="GO_TO_URL",d[d.SHARE=5]="SHARE",d[d.KEY_VALUE=100]="KEY_VALUE",d[d.GO_TO_PRODUCT=101]="GO_TO_PRODUCT",d[d.ADD_TO_CART=102]="ADD_TO_CART",d[d.COPY_COUPON_CODE=103]="COPY_COUPON_CODE",d[d.GO_TO_COLLECTION=104]="GO_TO_COLLECTION",d[d.OPEN_CART=105]="OPEN_CART",d[d.SUBMIT_FORM=106]="SUBMIT_FORM",d[d.INITIATE_CHECKOUT=107]="INITIATE_CHECKOUT",d[d.ADD_BUNDLE=108]="ADD_BUNDLE",d[d.UPGRADE_TO_SUBSCRIPTION=109]="UPGRADE_TO_SUBSCRIPTION",d}(Q||(e.ClickActionType=Q={})),z=function(d){return d.POPUP="POPUP",d.PAGE_EMBED="PAGE_EMBED",d.CART_EMBED="CART_EMBED",d.ANNOUNCEMENT_BAR="ANNOUNCEMENT_BAR",d}(z||(e.OnsiteDeliveryType=z={})),J=function(d){return d.PRODUCT_PROMOTION="PRODUCT_PROMOTION",d.BUNDLE_AND_UPSELL="BUNDLE_AND_UPSELL",d.CART_RECOVERY="CART_RECOVERY",d.ANNOUNCEMENT="ANNOUNCEMENT",d.LEAD_GENERATION="LEAD_GENERATION",d.DATA_COLLECTION="DATA_COLLECTION",d.SALE_PROMOTION="SALE_PROMOTION",d.SUBSCRIPTION_UPSELL="SUBSCRIPTION_UPSELL",d.SHOPPABLE_VIDEO="SHOPPABLE_VIDEO",d.BYOB="BYOB",d.PROGRESS_BAR="PROGRESS_BAR",d.BUY_NOW="BUY_NOW",d}(J||(e.EngagementObjective=J={})),ge=function(d){return d.COOEE="COOEE",d.KLAVIYO="KLAVIYO",d}(ge||(e.EngagementContentSource=ge={})),je=function(d){return d.ICONS="ICONS",d.TILES="TILES",d}(je||(e.ProgressBarLayout=je={})),De=function(d){return d.FREE_SHIPPING="FREE_SHIPPING",d.DISCOUNT="DISCOUNT",d.FREE_AUTO_GIFT="FREE_AUTO_GIFT",d.FREE_GIFT_SELECT="FREE_GIFT_SELECT",d}(De||(e.MilestoneRewardType=De={}))}),Jo=ur(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PriceRuleType=e.DiscountType=void 0;var t=function(n){return n[n.NONE=0]="NONE",n[n.STATIC=1]="STATIC",n[n.UNIQUE_FLAT=2]="UNIQUE_FLAT",n[n.UNIQUE_FLAT_ITEMS=3]="UNIQUE_FLAT_ITEMS",n[n.UNIQUE_FIXED_ITEMS=4]="UNIQUE_FIXED_ITEMS",n[n.UNIQUE_CHEAPEST_ITEM_FREE=5]="UNIQUE_CHEAPEST_ITEM_FREE",n[n.BXGY=6]="BXGY",n}(t||(e.DiscountType=t={})),r=function(n){return n.FIXED_AMOUNT="fixed_amount",n.PERCENTAGE="percentage",n}(r||(e.PriceRuleType=r={}))}),Pc=ur(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ArrayUtils=void 0;var t=class Th{static of(n,i){return i!==void 0?new Array(n).fill(i):Array.from({length:n},(s,o)=>o)}static remove(n,i){let s=n.indexOf(i);return s===-1?!1:(n.splice(s,1),!0)}static swap(n,i,s){[n[i],n[s]]=[n[s],n[i]]}static sum(n,i){return n.reduce((s,o)=>s+Math.max(i?i(o):+o,0),0)}static unique(n,i){return n.filter((s,o,c)=>c.findIndex(u=>u[i]===s[i])===o)}static shuffle(n){let i=n.length;for(;i!=0;){let s=Math.floor(Math.random()*i);i--,Th.swap(n,i,s)}}};e.ArrayUtils=t}),wf=ur((e,t)=>{"use strict";(function(r,n){"use strict";var i="1.0.40",s="",o="?",c="function",u="undefined",p="object",m="string",h="major",y="model",E="name",v="type",_="vendor",x="version",P="architecture",B="console",U="mobile",R="tablet",G="smarttv",ue="wearable",Me="embedded",j=500,Q="Amazon",z="Apple",J="ASUS",ge="BlackBerry",je="Browser",De="Chrome",d="Edge",qe="Firefox",ve="Google",gt="Huawei",se="LG",ie="Microsoft",lt="Motorola",er="Opera",lr="Samsung",yt="Sharp",Wr="Sony",Fn="Xiaomi",rn="Zebra",Qn="Facebook",Vi="Chromium OS",Hn="Mac OS",kn=" Browser",vt=function(q,ae){var Z={};for(var Te in q)ae[Te]&&ae[Te].length%2===0?Z[Te]=ae[Te].concat(q[Te]):Z[Te]=q[Te];return Z},jr=function(q){for(var ae={},Z=0;Z<q.length;Z++)ae[q[Z].toUpperCase()]=q[Z];return ae},Gi=function(q,ae){return typeof q===m?a(ae).indexOf(a(q))!==-1:!1},a=function(q){return q.toLowerCase()},l=function(q){return typeof q===m?q.replace(/[^\d\.]/g,s).split(".")[0]:n},f=function(q,ae){if(typeof q===m)return q=q.replace(/^\s\s*/,s),typeof ae===u?q:q.substring(0,j)},T=function(q,ae){for(var Z=0,Te,Dt,Nt,Ie,ne,Ft;Z<ae.length&&!ne;){var Wi=ae[Z],ls=ae[Z+1];for(Te=Dt=0;Te<Wi.length&&!ne&&Wi[Te];)if(ne=Wi[Te++].exec(q),ne)for(Nt=0;Nt<ls.length;Nt++)Ft=ne[++Dt],Ie=ls[Nt],typeof Ie===p&&Ie.length>0?Ie.length===2?typeof Ie[1]==c?this[Ie[0]]=Ie[1].call(this,Ft):this[Ie[0]]=Ie[1]:Ie.length===3?typeof Ie[1]===c&&!(Ie[1].exec&&Ie[1].test)?this[Ie[0]]=Ft?Ie[1].call(this,Ft,Ie[2]):n:this[Ie[0]]=Ft?Ft.replace(Ie[1],Ie[2]):n:Ie.length===4&&(this[Ie[0]]=Ft?Ie[3].call(this,Ft.replace(Ie[1],Ie[2])):n):this[Ie]=Ft||n;Z+=2}},A=function(q,ae){for(var Z in ae)if(typeof ae[Z]===p&&ae[Z].length>0){for(var Te=0;Te<ae[Z].length;Te++)if(Gi(ae[Z][Te],q))return Z===o?n:Z}else if(Gi(ae[Z],q))return Z===o?n:Z;return ae.hasOwnProperty("*")?ae["*"]:q},M={"1.0":"/8","1.2":"/1","1.3":"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"},W={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2","8.1":"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"},be={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[x,[E,"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[x,[E,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[E,x],[/opios[\/ ]+([\w\.]+)/i],[x,[E,er+" Mini"]],[/\bop(?:rg)?x\/([\w\.]+)/i],[x,[E,er+" GX"]],[/\bopr\/([\w\.]+)/i],[x,[E,er]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i],[x,[E,"Baidu"]],[/\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i],[x,[E,"Maxthon"]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,/(avant|iemobile|slim(?:browser|boat|jet))[\/ ]?([\d\.]*)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon)\/([-\w\.]+)/i,/(heytap|ovi|115)browser\/([\d\.]+)/i,/(weibo)__([\d\.]+)/i],[E,x],[/quark(?:pc)?\/([-\w\.]+)/i],[x,[E,"Quark"]],[/\bddg\/([\w\.]+)/i],[x,[E,"DuckDuckGo"]],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[x,[E,"UC"+je]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i,/micromessenger\/([\w\.]+)/i],[x,[E,"WeChat"]],[/konqueror\/([\w\.]+)/i],[x,[E,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[x,[E,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[x,[E,"Yandex"]],[/slbrowser\/([\w\.]+)/i],[x,[E,"Smart Lenovo "+je]],[/(avast|avg)\/([\w\.]+)/i],[[E,/(.+)/,"$1 Secure "+je],x],[/\bfocus\/([\w\.]+)/i],[x,[E,qe+" Focus"]],[/\bopt\/([\w\.]+)/i],[x,[E,er+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[x,[E,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[x,[E,"Dolphin"]],[/coast\/([\w\.]+)/i],[x,[E,er+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[x,[E,"MIUI"+kn]],[/fxios\/([\w\.-]+)/i],[x,[E,qe]],[/\bqihoobrowser\/?([\w\.]*)/i],[x,[E,"360"]],[/\b(qq)\/([\w\.]+)/i],[[E,/(.+)/,"$1Browser"],x],[/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i],[[E,/(.+)/,"$1"+kn],x],[/samsungbrowser\/([\w\.]+)/i],[x,[E,lr+" Internet"]],[/metasr[\/ ]?([\d\.]+)/i],[x,[E,"Sogou Explorer"]],[/(sogou)mo\w+\/([\d\.]+)/i],[[E,"Sogou Mobile"],x],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i],[E,x],[/(lbbrowser|rekonq)/i,/\[(linkedin)app\]/i],[E],[/ome\/([\w\.]+) \w* ?(iron) saf/i,/ome\/([\w\.]+).+qihu (360)[es]e/i],[x,E],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[E,Qn],x],[/(Klarna)\/([\w\.]+)/i,/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(alipay)client\/([\w\.]+)/i,/(twitter)(?:and| f.+e\/([\w\.]+))/i,/(chromium|instagram|snapchat)[\/ ]([-\w\.]+)/i],[E,x],[/\bgsa\/([\w\.]+) .*safari\//i],[x,[E,"GSA"]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[x,[E,"TikTok"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[x,[E,De+" Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[E,De+" WebView"],x],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[x,[E,"Android "+je]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[E,x],[/version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i],[x,[E,"Mobile Safari"]],[/version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i],[x,E],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[E,[x,A,M]],[/(webkit|khtml)\/([\w\.]+)/i],[E,x],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[E,"Netscape"],x],[/(wolvic|librewolf)\/([\w\.]+)/i],[E,x],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[x,[E,qe+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/(links) \(([\w\.]+)/i],[E,[x,/_/g,"."]],[/(cobalt)\/([\w\.]+)/i],[E,[x,/master.|lts./,""]]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i],[[P,"amd64"]],[/(ia32(?=;))/i],[[P,a]],[/((?:i[346]|x)86)[;\)]/i],[[P,"ia32"]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[P,"arm64"]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[P,"armhf"]],[/windows (ce|mobile); ppc;/i],[[P,"arm"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[P,/ower/,s,a]],[/(sun4\w)[;\)]/i],[[P,"sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[P,a]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[y,[_,lr],[v,R]],[/\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]((?!sm-[lr])[-\w]+)/i,/sec-(sgh\w+)/i],[y,[_,lr],[v,U]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],[y,[_,z],[v,U]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[y,[_,z],[v,R]],[/(macintosh);/i],[y,[_,z]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[y,[_,yt],[v,U]],[/(?:honor)([-\w ]+)[;\)]/i],[y,[_,"Honor"],[v,U]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[y,[_,gt],[v,R]],[/(?:huawei)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[y,[_,gt],[v,U]],[/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\))/i],[[y,/_/g," "],[_,Fn],[v,U]],[/oid[^\)]+; (2\d{4}(283|rpbf)[cgl])( bui|\))/i,/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],[[y,/_/g," "],[_,Fn],[v,R]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[y,[_,"OPPO"],[v,U]],[/\b(opd2\d{3}a?) bui/i],[y,[_,"OPPO"],[v,R]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[y,[_,"Vivo"],[v,U]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[y,[_,"Realme"],[v,U]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[y,[_,lt],[v,U]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[y,[_,lt],[v,R]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[y,[_,se],[v,R]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?([\d\w]+) bui/i],[y,[_,se],[v,U]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],[y,[_,"Lenovo"],[v,R]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w\.]*)/i],[[y,/_/g," "],[_,"Nokia"],[v,U]],[/(pixel c)\b/i],[y,[_,ve],[v,R]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[y,[_,ve],[v,U]],[/droid.+; (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[y,[_,Wr],[v,U]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[y,"Xperia Tablet"],[_,Wr],[v,R]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[y,[_,"OnePlus"],[v,U]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[y,[_,Q],[v,R]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[y,/(.+)/g,"Fire Phone $1"],[_,Q],[v,U]],[/(playbook);[-\w\),; ]+(rim)/i],[y,_,[v,R]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[y,[_,ge],[v,U]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[y,[_,J],[v,R]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[y,[_,J],[v,U]],[/(nexus 9)/i],[y,[_,"HTC"],[v,R]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[_,[y,/_/g," "],[v,U]],[/droid [\w\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])\w*(\)| bui)/i],[y,[_,"TCL"],[v,R]],[/(itel) ((\w+))/i],[[_,a],y,[v,A,{tablet:["p10001l","w7001"],"*":"mobile"}]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[y,[_,"Acer"],[v,R]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[y,[_,"Meizu"],[v,U]],[/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i],[y,[_,"Ulefone"],[v,U]],[/; (energy ?\w+)(?: bui|\))/i,/; energizer ([\w ]+)(?: bui|\))/i],[y,[_,"Energizer"],[v,U]],[/; cat (b35);/i,/; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i],[y,[_,"Cat"],[v,U]],[/((?:new )?andromax[\w- ]+)(?: bui|\))/i],[y,[_,"Smartfren"],[v,U]],[/droid.+; (a(?:015|06[35]|142p?))/i],[y,[_,"Nothing"],[v,U]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno|micromax|advan)[-_ ]?([-\w]*)/i,/; (imo) ((?!tab)[\w ]+?)(?: bui|\))/i,/(hp) ([\w ]+\w)/i,/(asus)-?(\w+)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w]+)/i,/(jolla)/i,/(oppo) ?([\w ]+) bui/i],[_,y,[v,U]],[/(imo) (tab \w+)/i,/(kobo)\s(ereader|touch)/i,/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i,/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[_,y,[v,R]],[/(surface duo)/i],[y,[_,ie],[v,R]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[y,[_,"Fairphone"],[v,U]],[/(u304aa)/i],[y,[_,"AT&T"],[v,U]],[/\bsie-(\w*)/i],[y,[_,"Siemens"],[v,U]],[/\b(rct\w+) b/i],[y,[_,"RCA"],[v,R]],[/\b(venue[\d ]{2,7}) b/i],[y,[_,"Dell"],[v,R]],[/\b(q(?:mv|ta)\w+) b/i],[y,[_,"Verizon"],[v,R]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[y,[_,"Barnes & Noble"],[v,R]],[/\b(tm\d{3}\w+) b/i],[y,[_,"NuVision"],[v,R]],[/\b(k88) b/i],[y,[_,"ZTE"],[v,R]],[/\b(nx\d{3}j) b/i],[y,[_,"ZTE"],[v,U]],[/\b(gen\d{3}) b.+49h/i],[y,[_,"Swiss"],[v,U]],[/\b(zur\d{3}) b/i],[y,[_,"Swiss"],[v,R]],[/\b((zeki)?tb.*\b) b/i],[y,[_,"Zeki"],[v,R]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[_,"Dragon Touch"],y,[v,R]],[/\b(ns-?\w{0,9}) b/i],[y,[_,"Insignia"],[v,R]],[/\b((nxa|next)-?\w{0,9}) b/i],[y,[_,"NextBook"],[v,R]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[_,"Voice"],y,[v,U]],[/\b(lvtel\-)?(v1[12]) b/i],[[_,"LvTel"],y,[v,U]],[/\b(ph-1) /i],[y,[_,"Essential"],[v,U]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[y,[_,"Envizen"],[v,R]],[/\b(trio[-\w\. ]+) b/i],[y,[_,"MachSpeed"],[v,R]],[/\btu_(1491) b/i],[y,[_,"Rotor"],[v,R]],[/(shield[\w ]+) b/i],[y,[_,"Nvidia"],[v,R]],[/(sprint) (\w+)/i],[_,y,[v,U]],[/(kin\.[onetw]{3})/i],[[y,/\./g," "],[_,ie],[v,U]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[y,[_,rn],[v,R]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[y,[_,rn],[v,U]],[/smart-tv.+(samsung)/i],[_,[v,G]],[/hbbtv.+maple;(\d+)/i],[[y,/^/,"SmartTV"],[_,lr],[v,G]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[_,se],[v,G]],[/(apple) ?tv/i],[_,[y,z+" TV"],[v,G]],[/crkey/i],[[y,De+"cast"],[_,ve],[v,G]],[/droid.+aft(\w+)( bui|\))/i],[y,[_,Q],[v,G]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[y,[_,yt],[v,G]],[/(bravia[\w ]+)( bui|\))/i],[y,[_,Wr],[v,G]],[/(mitv-\w{5}) bui/i],[y,[_,Fn],[v,G]],[/Hbbtv.*(technisat) (.*);/i],[_,y,[v,G]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[_,f],[y,f],[v,G]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[v,G]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[_,y,[v,B]],[/droid.+; (shield) bui/i],[y,[_,"Nvidia"],[v,B]],[/(playstation [345portablevi]+)/i],[y,[_,Wr],[v,B]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[y,[_,ie],[v,B]],[/\b(sm-[lr]\d\d[05][fnuw]?s?)\b/i],[y,[_,lr],[v,ue]],[/((pebble))app/i],[_,y,[v,ue]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[y,[_,z],[v,ue]],[/droid.+; (glass) \d/i],[y,[_,ve],[v,ue]],[/droid.+; (wt63?0{2,3})\)/i],[y,[_,rn],[v,ue]],[/droid.+; (glass) \d/i],[y,[_,ve],[v,ue]],[/(pico) (4|neo3(?: link|pro)?)/i],[_,y,[v,ue]],[/; (quest( \d| pro)?)/i],[y,[_,Qn],[v,ue]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[_,[v,Me]],[/(aeobc)\b/i],[y,[_,Q],[v,Me]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+? mobile safari/i],[y,[v,U]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[y,[v,R]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[v,R]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[v,U]],[/(android[-\w\. ]{0,9});.+buil/i],[y,[_,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[x,[E,d+"HTML"]],[/(arkweb)\/([\w\.]+)/i],[E,x],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[x,[E,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[E,x],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[x,E]],os:[[/microsoft (windows) (vista|xp)/i],[E,x],[/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i],[E,[x,A,W]],[/windows nt 6\.2; (arm)/i,/windows[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i,/(?:win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[x,A,W],[E,"Windows"]],[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,/cfnetwork\/.+darwin/i],[[x,/_/g,"."],[E,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[E,Hn],[x,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i],[x,E],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish|openharmony)[-\/ ]?([\w\.]*)/i,/(blackberry)\w*\/([\w\.]*)/i,/(tizen|kaios)[\/ ]([\w\.]+)/i,/\((series40);/i],[E,x],[/\(bb(10);/i],[x,[E,ge]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],[x,[E,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[x,[E,qe+" OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[x,[E,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[x,[E,"watchOS"]],[/crkey\/([\d\.]+)/i],[x,[E,De+"cast"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[E,Vi],x],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\/(\d+\.[\w\.]+)/i,/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux) ?([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[E,x],[/(sunos) ?([\w\.\d]*)/i],[[E,"Solaris"],x],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[E,x]]},me=function(q,ae){if(typeof q===p&&(ae=q,q=n),!(this instanceof me))return new me(q,ae).getResult();var Z=typeof r!==u&&r.navigator?r.navigator:n,Te=q||(Z&&Z.userAgent?Z.userAgent:s),Dt=Z&&Z.userAgentData?Z.userAgentData:n,Nt=ae?vt(be,ae):be,Ie=Z&&Z.userAgent==Te;return this.getBrowser=function(){var ne={};return ne[E]=n,ne[x]=n,T.call(ne,Te,Nt.browser),ne[h]=l(ne[x]),Ie&&Z&&Z.brave&&typeof Z.brave.isBrave==c&&(ne[E]="Brave"),ne},this.getCPU=function(){var ne={};return ne[P]=n,T.call(ne,Te,Nt.cpu),ne},this.getDevice=function(){var ne={};return ne[_]=n,ne[y]=n,ne[v]=n,T.call(ne,Te,Nt.device),Ie&&!ne[v]&&Dt&&Dt.mobile&&(ne[v]=U),Ie&&ne[y]=="Macintosh"&&Z&&typeof Z.standalone!==u&&Z.maxTouchPoints&&Z.maxTouchPoints>2&&(ne[y]="iPad",ne[v]=R),ne},this.getEngine=function(){var ne={};return ne[E]=n,ne[x]=n,T.call(ne,Te,Nt.engine),ne},this.getOS=function(){var ne={};return ne[E]=n,ne[x]=n,T.call(ne,Te,Nt.os),Ie&&!ne[E]&&Dt&&Dt.platform&&Dt.platform!="Unknown"&&(ne[E]=Dt.platform.replace(/chrome os/i,Vi).replace(/macos/i,Hn)),ne},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return Te},this.setUA=function(ne){return Te=typeof ne===m&&ne.length>j?f(ne,j):ne,this},this.setUA(Te),this};me.VERSION=i,me.BROWSER=jr([E,x,h]),me.CPU=jr([P]),me.DEVICE=jr([y,_,v,B,U,G,R,ue,Me]),me.ENGINE=me.OS=jr([E,x]),typeof e!==u?(typeof t!==u&&t.exports&&(e=t.exports=me),e.UAParser=me):typeof define===c&&define.amd?define(function(){return me}):typeof r!==u&&(r.UAParser=me);var ye=typeof r!==u&&(r.jQuery||r.Zepto);if(ye&&!ye.ua){var $e=new me;ye.ua=$e.getResult(),ye.ua.get=function(){return $e.getUA()},ye.ua.set=function(q){$e.setUA(q);var ae=$e.getResult();for(var Z in ae)ye.ua[Z]=ae[Z]}}})(typeof window=="object"?window:e)}),Tf=ur((e,t)=>{"use strict";(function(r){if(typeof e=="object"&&typeof t<"u")t.exports=r();else if(typeof define=="function"&&define.amd)define([],r);else{var n;typeof window<"u"?n=window:typeof global<"u"?n=global:typeof self<"u"?n=self:n=this,n.localforage=r()}})(function(){var r,n,i;return function s(o,c,u){function p(y,E){if(!c[y]){if(!o[y]){var v=typeof zi=="function"&&zi;if(!E&&v)return v(y,!0);if(m)return m(y,!0);var _=new Error("Cannot find module '"+y+"'");throw _.code="MODULE_NOT_FOUND",_}var x=c[y]={exports:{}};o[y][0].call(x.exports,function(P){var B=o[y][1][P];return p(B||P)},x,x.exports,s,o,c,u)}return c[y].exports}for(var m=typeof zi=="function"&&zi,h=0;h<u.length;h++)p(u[h]);return p}({1:[function(s,o,c){(function(u){"use strict";var p=u.MutationObserver||u.WebKitMutationObserver,m;if(p){var h=0,y=new p(P),E=u.document.createTextNode("");y.observe(E,{characterData:!0}),m=function(){E.data=h=++h%2}}else if(!u.setImmediate&&typeof u.MessageChannel<"u"){var v=new u.MessageChannel;v.port1.onmessage=P,m=function(){v.port2.postMessage(0)}}else"document"in u&&"onreadystatechange"in u.document.createElement("script")?m=function(){var U=u.document.createElement("script");U.onreadystatechange=function(){P(),U.onreadystatechange=null,U.parentNode.removeChild(U),U=null},u.document.documentElement.appendChild(U)}:m=function(){setTimeout(P,0)};var _,x=[];function P(){_=!0;for(var U,R,G=x.length;G;){for(R=x,x=[],U=-1;++U<G;)R[U]();G=x.length}_=!1}o.exports=B;function B(U){x.push(U)===1&&!_&&m()}}).call(this,typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{})},{}],2:[function(s,o,c){"use strict";var u=s(1);function p(){}var m={},h=["REJECTED"],y=["FULFILLED"],E=["PENDING"];o.exports=v;function v(j){if(typeof j!="function")throw new TypeError("resolver must be a function");this.state=E,this.queue=[],this.outcome=void 0,j!==p&&B(this,j)}v.prototype.catch=function(j){return this.then(null,j)},v.prototype.then=function(j,Q){if(typeof j!="function"&&this.state===y||typeof Q!="function"&&this.state===h)return this;var z=new this.constructor(p);if(this.state!==E){var J=this.state===y?j:Q;x(z,J,this.outcome)}else this.queue.push(new _(z,j,Q));return z};function _(j,Q,z){this.promise=j,typeof Q=="function"&&(this.onFulfilled=Q,this.callFulfilled=this.otherCallFulfilled),typeof z=="function"&&(this.onRejected=z,this.callRejected=this.otherCallRejected)}_.prototype.callFulfilled=function(j){m.resolve(this.promise,j)},_.prototype.otherCallFulfilled=function(j){x(this.promise,this.onFulfilled,j)},_.prototype.callRejected=function(j){m.reject(this.promise,j)},_.prototype.otherCallRejected=function(j){x(this.promise,this.onRejected,j)};function x(j,Q,z){u(function(){var J;try{J=Q(z)}catch(ge){return m.reject(j,ge)}J===j?m.reject(j,new TypeError("Cannot resolve promise with itself")):m.resolve(j,J)})}m.resolve=function(j,Q){var z=U(P,Q);if(z.status==="error")return m.reject(j,z.value);var J=z.value;if(J)B(j,J);else{j.state=y,j.outcome=Q;for(var ge=-1,je=j.queue.length;++ge<je;)j.queue[ge].callFulfilled(Q)}return j},m.reject=function(j,Q){j.state=h,j.outcome=Q;for(var z=-1,J=j.queue.length;++z<J;)j.queue[z].callRejected(Q);return j};function P(j){var Q=j&&j.then;if(j&&(typeof j=="object"||typeof j=="function")&&typeof Q=="function")return function(){Q.apply(j,arguments)}}function B(j,Q){var z=!1;function J(d){z||(z=!0,m.reject(j,d))}function ge(d){z||(z=!0,m.resolve(j,d))}function je(){Q(ge,J)}var De=U(je);De.status==="error"&&J(De.value)}function U(j,Q){var z={};try{z.value=j(Q),z.status="success"}catch(J){z.status="error",z.value=J}return z}v.resolve=R;function R(j){return j instanceof this?j:m.resolve(new this(p),j)}v.reject=G;function G(j){var Q=new this(p);return m.reject(Q,j)}v.all=ue;function ue(j){var Q=this;if(Object.prototype.toString.call(j)!=="[object Array]")return this.reject(new TypeError("must be an array"));var z=j.length,J=!1;if(!z)return this.resolve([]);for(var ge=new Array(z),je=0,De=-1,d=new this(p);++De<z;)qe(j[De],De);return d;function qe(ve,gt){Q.resolve(ve).then(se,function(ie){J||(J=!0,m.reject(d,ie))});function se(ie){ge[gt]=ie,++je===z&&!J&&(J=!0,m.resolve(d,ge))}}}v.race=Me;function Me(j){var Q=this;if(Object.prototype.toString.call(j)!=="[object Array]")return this.reject(new TypeError("must be an array"));var z=j.length,J=!1;if(!z)return this.resolve([]);for(var ge=-1,je=new this(p);++ge<z;)De(j[ge]);return je;function De(d){Q.resolve(d).then(function(qe){J||(J=!0,m.resolve(je,qe))},function(qe){J||(J=!0,m.reject(je,qe))})}}},{1:1}],3:[function(s,o,c){(function(u){"use strict";typeof u.Promise!="function"&&(u.Promise=s(2))}).call(this,typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{})},{2:2}],4:[function(s,o,c){"use strict";var u=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(g){return typeof g}:function(g){return g&&typeof Symbol=="function"&&g.constructor===Symbol&&g!==Symbol.prototype?"symbol":typeof g};function p(g,S){if(!(g instanceof S))throw new TypeError("Cannot call a class as a function")}function m(){try{if(typeof indexedDB<"u")return indexedDB;if(typeof webkitIndexedDB<"u")return webkitIndexedDB;if(typeof mozIndexedDB<"u")return mozIndexedDB;if(typeof OIndexedDB<"u")return OIndexedDB;if(typeof msIndexedDB<"u")return msIndexedDB}catch{return}}var h=m();function y(){try{if(!h||!h.open)return!1;var g=typeof openDatabase<"u"&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),S=typeof fetch=="function"&&fetch.toString().indexOf("[native code")!==-1;return(!g||S)&&typeof indexedDB<"u"&&typeof IDBKeyRange<"u"}catch{return!1}}function E(g,S){g=g||[],S=S||{};try{return new Blob(g,S)}catch(O){if(O.name!=="TypeError")throw O;for(var I=typeof BlobBuilder<"u"?BlobBuilder:typeof MSBlobBuilder<"u"?MSBlobBuilder:typeof MozBlobBuilder<"u"?MozBlobBuilder:WebKitBlobBuilder,D=new I,C=0;C<g.length;C+=1)D.append(g[C]);return D.getBlob(S.type)}}typeof Promise>"u"&&s(3);var v=Promise;function _(g,S){S&&g.then(function(I){S(null,I)},function(I){S(I)})}function x(g,S,I){typeof S=="function"&&g.then(S),typeof I=="function"&&g.catch(I)}function P(g){return typeof g!="string"&&(console.warn(g+" used as a key, but it is not a string."),g=String(g)),g}function B(){if(arguments.length&&typeof arguments[arguments.length-1]=="function")return arguments[arguments.length-1]}var U="local-forage-detect-blob-support",R=void 0,G={},ue=Object.prototype.toString,Me="readonly",j="readwrite";function Q(g){for(var S=g.length,I=new ArrayBuffer(S),D=new Uint8Array(I),C=0;C<S;C++)D[C]=g.charCodeAt(C);return I}function z(g){return new v(function(S){var I=g.transaction(U,j),D=E([""]);I.objectStore(U).put(D,"key"),I.onabort=function(C){C.preventDefault(),C.stopPropagation(),S(!1)},I.oncomplete=function(){var C=navigator.userAgent.match(/Chrome\/(\d+)/),O=navigator.userAgent.match(/Edge\//);S(O||!C||parseInt(C[1],10)>=43)}}).catch(function(){return!1})}function J(g){return typeof R=="boolean"?v.resolve(R):z(g).then(function(S){return R=S,R})}function ge(g){var S=G[g.name],I={};I.promise=new v(function(D,C){I.resolve=D,I.reject=C}),S.deferredOperations.push(I),S.dbReady?S.dbReady=S.dbReady.then(function(){return I.promise}):S.dbReady=I.promise}function je(g){var S=G[g.name],I=S.deferredOperations.pop();if(I)return I.resolve(),I.promise}function De(g,S){var I=G[g.name],D=I.deferredOperations.pop();if(D)return D.reject(S),D.promise}function d(g,S){return new v(function(I,D){if(G[g.name]=G[g.name]||Wr(),g.db)if(S)ge(g),g.db.close();else return I(g.db);var C=[g.name];S&&C.push(g.version);var O=h.open.apply(h,C);S&&(O.onupgradeneeded=function(L){var $=O.result;try{$.createObjectStore(g.storeName),L.oldVersion<=1&&$.createObjectStore(U)}catch(V){if(V.name==="ConstraintError")console.warn('The database "'+g.name+'" has been upgraded from version '+L.oldVersion+" to version "+L.newVersion+', but the storage "'+g.storeName+'" already exists.');else throw V}}),O.onerror=function(L){L.preventDefault(),D(O.error)},O.onsuccess=function(){var L=O.result;L.onversionchange=function($){$.target.close()},I(L),je(g)}})}function qe(g){return d(g,!1)}function ve(g){return d(g,!0)}function gt(g,S){if(!g.db)return!0;var I=!g.db.objectStoreNames.contains(g.storeName),D=g.version<g.db.version,C=g.version>g.db.version;if(D&&(g.version!==S&&console.warn('The database "'+g.name+`" can't be downgraded from version `+g.db.version+" to version "+g.version+"."),g.version=g.db.version),C||I){if(I){var O=g.db.version+1;O>g.version&&(g.version=O)}return!0}return!1}function se(g){return new v(function(S,I){var D=new FileReader;D.onerror=I,D.onloadend=function(C){var O=btoa(C.target.result||"");S({__local_forage_encoded_blob:!0,data:O,type:g.type})},D.readAsBinaryString(g)})}function ie(g){var S=Q(atob(g.data));return E([S],{type:g.type})}function lt(g){return g&&g.__local_forage_encoded_blob}function er(g){var S=this,I=S._initReady().then(function(){var D=G[S._dbInfo.name];if(D&&D.dbReady)return D.dbReady});return x(I,g,g),I}function lr(g){ge(g);for(var S=G[g.name],I=S.forages,D=0;D<I.length;D++){var C=I[D];C._dbInfo.db&&(C._dbInfo.db.close(),C._dbInfo.db=null)}return g.db=null,qe(g).then(function(O){return g.db=O,gt(g)?ve(g):O}).then(function(O){g.db=S.db=O;for(var L=0;L<I.length;L++)I[L]._dbInfo.db=O}).catch(function(O){throw De(g,O),O})}function yt(g,S,I,D){D===void 0&&(D=1);try{var C=g.db.transaction(g.storeName,S);I(null,C)}catch(O){if(D>0&&(!g.db||O.name==="InvalidStateError"||O.name==="NotFoundError"))return v.resolve().then(function(){if(!g.db||O.name==="NotFoundError"&&!g.db.objectStoreNames.contains(g.storeName)&&g.version<=g.db.version)return g.db&&(g.version=g.db.version+1),ve(g)}).then(function(){return lr(g).then(function(){yt(g,S,I,D-1)})}).catch(I);I(O)}}function Wr(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function Fn(g){var S=this,I={db:null};if(g)for(var D in g)I[D]=g[D];var C=G[I.name];C||(C=Wr(),G[I.name]=C),C.forages.push(S),S._initReady||(S._initReady=S.ready,S.ready=er);var O=[];function L(){return v.resolve()}for(var $=0;$<C.forages.length;$++){var V=C.forages[$];V!==S&&O.push(V._initReady().catch(L))}var H=C.forages.slice(0);return v.all(O).then(function(){return I.db=C.db,qe(I)}).then(function(F){return I.db=F,gt(I,S._defaultConfig.version)?ve(I):F}).then(function(F){I.db=C.db=F,S._dbInfo=I;for(var Y=0;Y<H.length;Y++){var he=H[Y];he!==S&&(he._dbInfo.db=I.db,he._dbInfo.version=I.version)}})}function rn(g,S){var I=this;g=P(g);var D=new v(function(C,O){I.ready().then(function(){yt(I._dbInfo,Me,function(L,$){if(L)return O(L);try{var V=$.objectStore(I._dbInfo.storeName),H=V.get(g);H.onsuccess=function(){var F=H.result;F===void 0&&(F=null),lt(F)&&(F=ie(F)),C(F)},H.onerror=function(){O(H.error)}}catch(F){O(F)}})}).catch(O)});return _(D,S),D}function Qn(g,S){var I=this,D=new v(function(C,O){I.ready().then(function(){yt(I._dbInfo,Me,function(L,$){if(L)return O(L);try{var V=$.objectStore(I._dbInfo.storeName),H=V.openCursor(),F=1;H.onsuccess=function(){var Y=H.result;if(Y){var he=Y.value;lt(he)&&(he=ie(he));var Ve=g(he,Y.key,F++);Ve!==void 0?C(Ve):Y.continue()}else C()},H.onerror=function(){O(H.error)}}catch(Y){O(Y)}})}).catch(O)});return _(D,S),D}function Vi(g,S,I){var D=this;g=P(g);var C=new v(function(O,L){var $;D.ready().then(function(){return $=D._dbInfo,ue.call(S)==="[object Blob]"?J($.db).then(function(V){return V?S:se(S)}):S}).then(function(V){yt(D._dbInfo,j,function(H,F){if(H)return L(H);try{var Y=F.objectStore(D._dbInfo.storeName);V===null&&(V=void 0);var he=Y.put(V,g);F.oncomplete=function(){V===void 0&&(V=null),O(V)},F.onabort=F.onerror=function(){var Ve=he.error?he.error:he.transaction.error;L(Ve)}}catch(Ve){L(Ve)}})}).catch(L)});return _(C,I),C}function Hn(g,S){var I=this;g=P(g);var D=new v(function(C,O){I.ready().then(function(){yt(I._dbInfo,j,function(L,$){if(L)return O(L);try{var V=$.objectStore(I._dbInfo.storeName),H=V.delete(g);$.oncomplete=function(){C()},$.onerror=function(){O(H.error)},$.onabort=function(){var F=H.error?H.error:H.transaction.error;O(F)}}catch(F){O(F)}})}).catch(O)});return _(D,S),D}function kn(g){var S=this,I=new v(function(D,C){S.ready().then(function(){yt(S._dbInfo,j,function(O,L){if(O)return C(O);try{var $=L.objectStore(S._dbInfo.storeName),V=$.clear();L.oncomplete=function(){D()},L.onabort=L.onerror=function(){var H=V.error?V.error:V.transaction.error;C(H)}}catch(H){C(H)}})}).catch(C)});return _(I,g),I}function vt(g){var S=this,I=new v(function(D,C){S.ready().then(function(){yt(S._dbInfo,Me,function(O,L){if(O)return C(O);try{var $=L.objectStore(S._dbInfo.storeName),V=$.count();V.onsuccess=function(){D(V.result)},V.onerror=function(){C(V.error)}}catch(H){C(H)}})}).catch(C)});return _(I,g),I}function jr(g,S){var I=this,D=new v(function(C,O){if(g<0){C(null);return}I.ready().then(function(){yt(I._dbInfo,Me,function(L,$){if(L)return O(L);try{var V=$.objectStore(I._dbInfo.storeName),H=!1,F=V.openKeyCursor();F.onsuccess=function(){var Y=F.result;if(!Y){C(null);return}g===0||H?C(Y.key):(H=!0,Y.advance(g))},F.onerror=function(){O(F.error)}}catch(Y){O(Y)}})}).catch(O)});return _(D,S),D}function Gi(g){var S=this,I=new v(function(D,C){S.ready().then(function(){yt(S._dbInfo,Me,function(O,L){if(O)return C(O);try{var $=L.objectStore(S._dbInfo.storeName),V=$.openKeyCursor(),H=[];V.onsuccess=function(){var F=V.result;if(!F){D(H);return}H.push(F.key),F.continue()},V.onerror=function(){C(V.error)}}catch(F){C(F)}})}).catch(C)});return _(I,g),I}function a(g,S){S=B.apply(this,arguments);var I=this.config();g=typeof g!="function"&&g||{},g.name||(g.name=g.name||I.name,g.storeName=g.storeName||I.storeName);var D=this,C;if(!g.name)C=v.reject("Invalid arguments");else{var O=g.name===I.name&&D._dbInfo.db,L=O?v.resolve(D._dbInfo.db):qe(g).then(function($){var V=G[g.name],H=V.forages;V.db=$;for(var F=0;F<H.length;F++)H[F]._dbInfo.db=$;return $});g.storeName?C=L.then(function($){if($.objectStoreNames.contains(g.storeName)){var V=$.version+1;ge(g);var H=G[g.name],F=H.forages;$.close();for(var Y=0;Y<F.length;Y++){var he=F[Y];he._dbInfo.db=null,he._dbInfo.version=V}var Ve=new v(function(Ae,ut){var Ge=h.open(g.name,V);Ge.onerror=function(Ht){var Tc=Ge.result;Tc.close(),ut(Ht)},Ge.onupgradeneeded=function(){var Ht=Ge.result;Ht.deleteObjectStore(g.storeName)},Ge.onsuccess=function(){var Ht=Ge.result;Ht.close(),Ae(Ht)}});return Ve.then(function(Ae){H.db=Ae;for(var ut=0;ut<F.length;ut++){var Ge=F[ut];Ge._dbInfo.db=Ae,je(Ge._dbInfo)}}).catch(function(Ae){throw(De(g,Ae)||v.resolve()).catch(function(){}),Ae})}}):C=L.then(function($){ge(g);var V=G[g.name],H=V.forages;$.close();for(var F=0;F<H.length;F++){var Y=H[F];Y._dbInfo.db=null}var he=new v(function(Ve,Ae){var ut=h.deleteDatabase(g.name);ut.onerror=function(){var Ge=ut.result;Ge&&Ge.close(),Ae(ut.error)},ut.onblocked=function(){console.warn('dropInstance blocked for database "'+g.name+'" until all open connections are closed')},ut.onsuccess=function(){var Ge=ut.result;Ge&&Ge.close(),Ve(Ge)}});return he.then(function(Ve){V.db=Ve;for(var Ae=0;Ae<H.length;Ae++){var ut=H[Ae];je(ut._dbInfo)}}).catch(function(Ve){throw(De(g,Ve)||v.resolve()).catch(function(){}),Ve})})}return _(C,S),C}var l={_driver:"asyncStorage",_initStorage:Fn,_support:y(),iterate:Qn,getItem:rn,setItem:Vi,removeItem:Hn,clear:kn,length:vt,key:jr,keys:Gi,dropInstance:a};function f(){return typeof openDatabase=="function"}var T="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",A="~~local_forage_type~",M=/^~~local_forage_type~([^~]+)~/,W="__lfsc__:",be=W.length,me="arbf",ye="blob",$e="si08",q="ui08",ae="uic8",Z="si16",Te="si32",Dt="ur16",Nt="ui32",Ie="fl32",ne="fl64",Ft=be+me.length,Wi=Object.prototype.toString;function ls(g){var S=g.length*.75,I=g.length,D,C=0,O,L,$,V;g[g.length-1]==="="&&(S--,g[g.length-2]==="="&&S--);var H=new ArrayBuffer(S),F=new Uint8Array(H);for(D=0;D<I;D+=4)O=T.indexOf(g[D]),L=T.indexOf(g[D+1]),$=T.indexOf(g[D+2]),V=T.indexOf(g[D+3]),F[C++]=O<<2|L>>4,F[C++]=(L&15)<<4|$>>2,F[C++]=($&3)<<6|V&63;return H}function Qo(g){var S=new Uint8Array(g),I="",D;for(D=0;D<S.length;D+=3)I+=T[S[D]>>2],I+=T[(S[D]&3)<<4|S[D+1]>>4],I+=T[(S[D+1]&15)<<2|S[D+2]>>6],I+=T[S[D+2]&63];return S.length%3===2?I=I.substring(0,I.length-1)+"=":S.length%3===1&&(I=I.substring(0,I.length-2)+"=="),I}function Kh(g,S){var I="";if(g&&(I=Wi.call(g)),g&&(I==="[object ArrayBuffer]"||g.buffer&&Wi.call(g.buffer)==="[object ArrayBuffer]")){var D,C=W;g instanceof ArrayBuffer?(D=g,C+=me):(D=g.buffer,I==="[object Int8Array]"?C+=$e:I==="[object Uint8Array]"?C+=q:I==="[object Uint8ClampedArray]"?C+=ae:I==="[object Int16Array]"?C+=Z:I==="[object Uint16Array]"?C+=Dt:I==="[object Int32Array]"?C+=Te:I==="[object Uint32Array]"?C+=Nt:I==="[object Float32Array]"?C+=Ie:I==="[object Float64Array]"?C+=ne:S(new Error("Failed to get type for BinaryArray"))),S(C+Qo(D))}else if(I==="[object Blob]"){var O=new FileReader;O.onload=function(){var L=A+g.type+"~"+Qo(this.result);S(W+ye+L)},O.readAsArrayBuffer(g)}else try{S(JSON.stringify(g))}catch(L){console.error("Couldn't convert value into a JSON string: ",g),S(null,L)}}function Yh(g){if(g.substring(0,be)!==W)return JSON.parse(g);var S=g.substring(Ft),I=g.substring(be,Ft),D;if(I===ye&&M.test(S)){var C=S.match(M);D=C[1],S=S.substring(C[0].length)}var O=ls(S);switch(I){case me:return O;case ye:return E([O],{type:D});case $e:return new Int8Array(O);case q:return new Uint8Array(O);case ae:return new Uint8ClampedArray(O);case Z:return new Int16Array(O);case Dt:return new Uint16Array(O);case Te:return new Int32Array(O);case Nt:return new Uint32Array(O);case Ie:return new Float32Array(O);case ne:return new Float64Array(O);default:throw new Error("Unkown type: "+I)}}var Sa={serialize:Kh,deserialize:Yh,stringToBuffer:ls,bufferToString:Qo};function Qu(g,S,I,D){g.executeSql("CREATE TABLE IF NOT EXISTS "+S.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],I,D)}function zh(g){var S=this,I={db:null};if(g)for(var D in g)I[D]=typeof g[D]!="string"?g[D].toString():g[D];var C=new v(function(O,L){try{I.db=openDatabase(I.name,String(I.version),I.description,I.size)}catch($){return L($)}I.db.transaction(function($){Qu($,I,function(){S._dbInfo=I,O()},function(V,H){L(H)})},L)});return I.serializer=Sa,C}function $n(g,S,I,D,C,O){g.executeSql(I,D,C,function(L,$){$.code===$.SYNTAX_ERR?L.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[S.storeName],function(V,H){H.rows.length?O(V,$):Qu(V,S,function(){V.executeSql(I,D,C,O)},O)},O):O(L,$)},O)}function Xh(g,S){var I=this;g=P(g);var D=new v(function(C,O){I.ready().then(function(){var L=I._dbInfo;L.db.transaction(function($){$n($,L,"SELECT * FROM "+L.storeName+" WHERE key = ? LIMIT 1",[g],function(V,H){var F=H.rows.length?H.rows.item(0).value:null;F&&(F=L.serializer.deserialize(F)),C(F)},function(V,H){O(H)})})}).catch(O)});return _(D,S),D}function Jh(g,S){var I=this,D=new v(function(C,O){I.ready().then(function(){var L=I._dbInfo;L.db.transaction(function($){$n($,L,"SELECT * FROM "+L.storeName,[],function(V,H){for(var F=H.rows,Y=F.length,he=0;he<Y;he++){var Ve=F.item(he),Ae=Ve.value;if(Ae&&(Ae=L.serializer.deserialize(Ae)),Ae=g(Ae,Ve.key,he+1),Ae!==void 0){C(Ae);return}}C()},function(V,H){O(H)})})}).catch(O)});return _(D,S),D}function Zu(g,S,I,D){var C=this;g=P(g);var O=new v(function(L,$){C.ready().then(function(){S===void 0&&(S=null);var V=S,H=C._dbInfo;H.serializer.serialize(S,function(F,Y){Y?$(Y):H.db.transaction(function(he){$n(he,H,"INSERT OR REPLACE INTO "+H.storeName+" (key, value) VALUES (?, ?)",[g,F],function(){L(V)},function(Ve,Ae){$(Ae)})},function(he){if(he.code===he.QUOTA_ERR){if(D>0){L(Zu.apply(C,[g,V,I,D-1]));return}$(he)}})})}).catch($)});return _(O,I),O}function Qh(g,S,I){return Zu.apply(this,[g,S,I,1])}function Zh(g,S){var I=this;g=P(g);var D=new v(function(C,O){I.ready().then(function(){var L=I._dbInfo;L.db.transaction(function($){$n($,L,"DELETE FROM "+L.storeName+" WHERE key = ?",[g],function(){C()},function(V,H){O(H)})})}).catch(O)});return _(D,S),D}function tp(g){var S=this,I=new v(function(D,C){S.ready().then(function(){var O=S._dbInfo;O.db.transaction(function(L){$n(L,O,"DELETE FROM "+O.storeName,[],function(){D()},function($,V){C(V)})})}).catch(C)});return _(I,g),I}function rp(g){var S=this,I=new v(function(D,C){S.ready().then(function(){var O=S._dbInfo;O.db.transaction(function(L){$n(L,O,"SELECT COUNT(key) as c FROM "+O.storeName,[],function($,V){var H=V.rows.item(0).c;D(H)},function($,V){C(V)})})}).catch(C)});return _(I,g),I}function np(g,S){var I=this,D=new v(function(C,O){I.ready().then(function(){var L=I._dbInfo;L.db.transaction(function($){$n($,L,"SELECT key FROM "+L.storeName+" WHERE id = ? LIMIT 1",[g+1],function(V,H){var F=H.rows.length?H.rows.item(0).key:null;C(F)},function(V,H){O(H)})})}).catch(O)});return _(D,S),D}function ip(g){var S=this,I=new v(function(D,C){S.ready().then(function(){var O=S._dbInfo;O.db.transaction(function(L){$n(L,O,"SELECT key FROM "+O.storeName,[],function($,V){for(var H=[],F=0;F<V.rows.length;F++)H.push(V.rows.item(F).key);D(H)},function($,V){C(V)})})}).catch(C)});return _(I,g),I}function sp(g){return new v(function(S,I){g.transaction(function(D){D.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'",[],function(C,O){for(var L=[],$=0;$<O.rows.length;$++)L.push(O.rows.item($).name);S({db:g,storeNames:L})},function(C,O){I(O)})},function(D){I(D)})})}function op(g,S){S=B.apply(this,arguments);var I=this.config();g=typeof g!="function"&&g||{},g.name||(g.name=g.name||I.name,g.storeName=g.storeName||I.storeName);var D=this,C;return g.name?C=new v(function(O){var L;g.name===I.name?L=D._dbInfo.db:L=openDatabase(g.name,"","",0),g.storeName?O({db:L,storeNames:[g.storeName]}):O(sp(L))}).then(function(O){return new v(function(L,$){O.db.transaction(function(V){function H(Ve){return new v(function(Ae,ut){V.executeSql("DROP TABLE IF EXISTS "+Ve,[],function(){Ae()},function(Ge,Ht){ut(Ht)})})}for(var F=[],Y=0,he=O.storeNames.length;Y<he;Y++)F.push(H(O.storeNames[Y]));v.all(F).then(function(){L()}).catch(function(Ve){$(Ve)})},function(V){$(V)})})}):C=v.reject("Invalid arguments"),_(C,S),C}var hp={_driver:"webSQLStorage",_initStorage:zh,_support:f(),iterate:Jh,getItem:Xh,setItem:Qh,removeItem:Zh,clear:tp,length:rp,key:np,keys:ip,dropInstance:op};function pp(){try{return typeof localStorage<"u"&&"setItem"in localStorage&&!!localStorage.setItem}catch{return!1}}function wh(g,S){var I=g.name+"/";return g.storeName!==S.storeName&&(I+=g.storeName+"/"),I}function dp(){var g="_localforage_support_test";try{return localStorage.setItem(g,!0),localStorage.removeItem(g),!1}catch{return!0}}function fp(){return!dp()||localStorage.length>0}function gp(g){var S=this,I={};if(g)for(var D in g)I[D]=g[D];return I.keyPrefix=wh(g,S._defaultConfig),fp()?(S._dbInfo=I,I.serializer=Sa,v.resolve()):v.reject()}function mp(g){var S=this,I=S.ready().then(function(){for(var D=S._dbInfo.keyPrefix,C=localStorage.length-1;C>=0;C--){var O=localStorage.key(C);O.indexOf(D)===0&&localStorage.removeItem(O)}});return _(I,g),I}function yp(g,S){var I=this;g=P(g);var D=I.ready().then(function(){var C=I._dbInfo,O=localStorage.getItem(C.keyPrefix+g);return O&&(O=C.serializer.deserialize(O)),O});return _(D,S),D}function vp(g,S){var I=this,D=I.ready().then(function(){for(var C=I._dbInfo,O=C.keyPrefix,L=O.length,$=localStorage.length,V=1,H=0;H<$;H++){var F=localStorage.key(H);if(F.indexOf(O)===0){var Y=localStorage.getItem(F);if(Y&&(Y=C.serializer.deserialize(Y)),Y=g(Y,F.substring(L),V++),Y!==void 0)return Y}}});return _(D,S),D}function wp(g,S){var I=this,D=I.ready().then(function(){var C=I._dbInfo,O;try{O=localStorage.key(g)}catch{O=null}return O&&(O=O.substring(C.keyPrefix.length)),O});return _(D,S),D}function bp(g){var S=this,I=S.ready().then(function(){for(var D=S._dbInfo,C=localStorage.length,O=[],L=0;L<C;L++){var $=localStorage.key(L);$.indexOf(D.keyPrefix)===0&&O.push($.substring(D.keyPrefix.length))}return O});return _(I,g),I}function _p(g){var S=this,I=S.keys().then(function(D){return D.length});return _(I,g),I}function Ep(g,S){var I=this;g=P(g);var D=I.ready().then(function(){var C=I._dbInfo;localStorage.removeItem(C.keyPrefix+g)});return _(D,S),D}function Sp(g,S,I){var D=this;g=P(g);var C=D.ready().then(function(){S===void 0&&(S=null);var O=S;return new v(function(L,$){var V=D._dbInfo;V.serializer.serialize(S,function(H,F){if(F)$(F);else try{localStorage.setItem(V.keyPrefix+g,H),L(O)}catch(Y){(Y.name==="QuotaExceededError"||Y.name==="NS_ERROR_DOM_QUOTA_REACHED")&&$(Y),$(Y)}})})});return _(C,I),C}function Ip(g,S){if(S=B.apply(this,arguments),g=typeof g!="function"&&g||{},!g.name){var I=this.config();g.name=g.name||I.name,g.storeName=g.storeName||I.storeName}var D=this,C;return g.name?C=new v(function(O){g.storeName?O(wh(g,D._defaultConfig)):O(g.name+"/")}).then(function(O){for(var L=localStorage.length-1;L>=0;L--){var $=localStorage.key(L);$.indexOf(O)===0&&localStorage.removeItem($)}}):C=v.reject("Invalid arguments"),_(C,S),C}var Tp={_driver:"localStorageWrapper",_initStorage:gp,_support:pp(),iterate:vp,getItem:yp,setItem:Sp,removeItem:Ep,clear:mp,length:_p,key:wp,keys:bp,dropInstance:Ip},Cp=function(g,S){return g===S||typeof g=="number"&&typeof S=="number"&&isNaN(g)&&isNaN(S)},Np=function(g,S){for(var I=g.length,D=0;D<I;){if(Cp(g[D],S))return!0;D++}return!1},bh=Array.isArray||function(g){return Object.prototype.toString.call(g)==="[object Array]"},eo={},Eh={},Yi={INDEXEDDB:l,WEBSQL:hp,LOCALSTORAGE:Tp},xp=[Yi.INDEXEDDB._driver,Yi.WEBSQL._driver,Yi.LOCALSTORAGE._driver],zo=["dropInstance"],qa=["clear","getItem","iterate","key","keys","length","removeItem","setItem"].concat(zo),Dp={description:"",driver:xp.slice(),name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1};function Op(g,S){g[S]=function(){var I=arguments;return g.ready().then(function(){return g[S].apply(g,I)})}}function Ic(){for(var g=1;g<arguments.length;g++){var S=arguments[g];if(S)for(var I in S)S.hasOwnProperty(I)&&(bh(S[I])?arguments[0][I]=S[I].slice():arguments[0][I]=S[I])}return arguments[0]}var Ap=function(){function g(S){p(this,g);for(var I in Yi)if(Yi.hasOwnProperty(I)){var D=Yi[I],C=D._driver;this[I]=C,eo[C]||this.defineDriver(D)}this._defaultConfig=Ic({},Dp),this._config=Ic({},this._defaultConfig,S),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch(function(){})}return g.prototype.config=function(S){if((typeof S>"u"?"undefined":u(S))==="object"){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(var I in S){if(I==="storeName"&&(S[I]=S[I].replace(/\W/g,"_")),I==="version"&&typeof S[I]!="number")return new Error("Database version must be a number.");this._config[I]=S[I]}return"driver"in S&&S.driver?this.setDriver(this._config.driver):!0}else return typeof S=="string"?this._config[S]:this._config},g.prototype.defineDriver=function(S,I,D){var C=new v(function(O,L){try{var $=S._driver,V=new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");if(!S._driver){L(V);return}for(var H=qa.concat("_initStorage"),F=0,Y=H.length;F<Y;F++){var he=H[F],Ve=!Np(zo,he);if((Ve||S[he])&&typeof S[he]!="function"){L(V);return}}var Ae=function(){for(var Ge=function(Pp){return function(){var Rp=new Error("Method "+Pp+" is not implemented by the current driver"),Sh=v.reject(Rp);return _(Sh,arguments[arguments.length-1]),Sh}},Ht=0,Tc=zo.length;Ht<Tc;Ht++){var Cc=zo[Ht];S[Cc]||(S[Cc]=Ge(Cc))}};Ae();var ut=function(Ge){eo[$]&&console.info("Redefining LocalForage driver: "+$),eo[$]=S,Eh[$]=Ge,O()};"_support"in S?S._support&&typeof S._support=="function"?S._support().then(ut,L):ut(!!S._support):ut(!0)}catch(Ge){L(Ge)}});return x(C,I,D),C},g.prototype.driver=function(){return this._driver||null},g.prototype.getDriver=function(S,I,D){var C=eo[S]?v.resolve(eo[S]):v.reject(new Error("Driver not found."));return x(C,I,D),C},g.prototype.getSerializer=function(S){var I=v.resolve(Sa);return x(I,S),I},g.prototype.ready=function(S){var I=this,D=I._driverSet.then(function(){return I._ready===null&&(I._ready=I._initDriver()),I._ready});return x(D,S,S),D},g.prototype.setDriver=function(S,I,D){var C=this;bh(S)||(S=[S]);var O=this._getSupportedDrivers(S);function L(){C._config.driver=C.driver()}function $(F){return C._extend(F),L(),C._ready=C._initStorage(C._config),C._ready}function V(F){return function(){var Y=0;function he(){for(;Y<F.length;){var Ve=F[Y];return Y++,C._dbInfo=null,C._ready=null,C.getDriver(Ve).then($).catch(he)}L();var Ae=new Error("No available storage method found.");return C._driverSet=v.reject(Ae),C._driverSet}return he()}}var H=this._driverSet!==null?this._driverSet.catch(function(){return v.resolve()}):v.resolve();return this._driverSet=H.then(function(){var F=O[0];return C._dbInfo=null,C._ready=null,C.getDriver(F).then(function(Y){C._driver=Y._driver,L(),C._wrapLibraryMethodsWithReady(),C._initDriver=V(O)})}).catch(function(){L();var F=new Error("No available storage method found.");return C._driverSet=v.reject(F),C._driverSet}),x(this._driverSet,I,D),this._driverSet},g.prototype.supports=function(S){return!!Eh[S]},g.prototype._extend=function(S){Ic(this,S)},g.prototype._getSupportedDrivers=function(S){for(var I=[],D=0,C=S.length;D<C;D++){var O=S[D];this.supports(O)&&I.push(O)}return I},g.prototype._wrapLibraryMethodsWithReady=function(){for(var S=0,I=qa.length;S<I;S++)Op(this,qa[S])},g.prototype.createInstance=function(S){return new g(S)},g}(),kp=new Ap;o.exports=kp},{3:3}]},{},[4])(4)})}),Zn=ur(e=>{"use strict";var t=e&&e.__awaiter||function(n,i,s,o){function c(u){return u instanceof s?u:new s(function(p){p(u)})}return new(s||(s=Promise))(function(u,p){function m(E){try{y(o.next(E))}catch(v){p(v)}}function h(E){try{y(o.throw(E))}catch(v){p(v)}}function y(E){E.done?u(E.value):c(E.value).then(m,h)}y((o=o.apply(n,i||[])).next())})};Object.defineProperty(e,"__esModule",{value:!0}),e.JSUtils=void 0;var r=class{static isObject(n){return typeof n=="object"&&!Array.isArray(n)&&n!==null}static parseToAny(n){try{return JSON.parse(n.toString())}catch{}return n.toString().match(this.ISO_WITHOUT_MS_REGEX)?new Date(n.toString()):n}static sleep(n){return t(this,void 0,void 0,function*(){return new Promise(i=>setTimeout(i,n))})}static hasKeys(n){return n?Object.keys(n).length>=1:!1}static convertObjectToArray(n,i){return i.reduce((s,o)=>(n.hasOwnProperty(o)&&n[o]!=null&&s.push({[o]:n[o]}),s),[])}static removeNullUndefinedKeys(n){return Object.keys(n).reduce((i,s)=>(n[s]!==null&&n[s]!==void 0&&(i[s]=n[s]),i),{})}static stringify(n){return JSON.stringify(n,function(i,s){return s===void 0?null:s})}};e.JSUtils=r,r.ISO_WITHOUT_MS_REGEX=new RegExp(/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)/)}),Fu=ur(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.URLBuilder=void 0;var t=function(){function r(n){try{this.base=new URL(n),this.params=new URLSearchParams(this.base.search.slice(1))}catch(i){console.error("Un-parsable URL",i)}}return r.prototype.appendQueryParam=function(n,i){this.params.append(n,i?i.toString():"")},r.prototype.clearQueryParams=function(){return this.params=new URLSearchParams,this},r.prototype.deleteQueryParam=function(n){this.params.delete(n)},r.prototype.getBase=function(){return this.base},r.prototype.getPath=function(){return this.base.pathname},r.prototype.getHostname=function(){return this.base.hostname},r.prototype.getParams=function(){return this.params},r.prototype.getQueryParam=function(n){if(!this.params)return"";var i=this.params.get(n);return!i||i==="undefined"||i==="null"?void 0:i},r.prototype.getQueryString=function(){return this.params.toString()},r.prototype.setPath=function(n){return this.base.pathname=n,this},r.prototype.setQueryParam=function(n,i){return this.params.set(n,i?i.toString():""),this},r.prototype.setQueryString=function(n){if(n)return n[0]==="?"&&(n=n.slice(1)),this.params=new URLSearchParams(n),this},r.prototype.toString=function(){var n=this.params.toString();return n===""?this.base.search="":this.base.search="?"+n,this.base.toString()},r}();e.URLBuilder=t}),rh=ur((e,t)=>{"use strict";(function(r,n){typeof e=="object"&&typeof t<"u"?t.exports=n():typeof define=="function"&&define.amd?define(n):(r=typeof globalThis<"u"?globalThis:r||self,r.fetchRetry=n())})(e,function(){"use strict";var r=function(s,o){if(o=o||{},typeof s!="function")throw new i("fetch must be a function");if(typeof o!="object")throw new i("defaults must be an object");if(o.retries!==void 0&&!n(o.retries))throw new i("retries must be a positive integer");if(o.retryDelay!==void 0&&!n(o.retryDelay)&&typeof o.retryDelay!="function")throw new i("retryDelay must be a positive integer or a function returning a positive integer");if(o.retryOn!==void 0&&!Array.isArray(o.retryOn)&&typeof o.retryOn!="function")throw new i("retryOn property expects an array or function");var c={retries:3,retryDelay:1e3,retryOn:[]};return o=Object.assign(c,o),function(u,p){var m=o.retries,h=o.retryDelay,y=o.retryOn;if(p&&p.retries!==void 0)if(n(p.retries))m=p.retries;else throw new i("retries must be a positive integer");if(p&&p.retryDelay!==void 0)if(n(p.retryDelay)||typeof p.retryDelay=="function")h=p.retryDelay;else throw new i("retryDelay must be a positive integer or a function returning a positive integer");if(p&&p.retryOn)if(Array.isArray(p.retryOn)||typeof p.retryOn=="function")y=p.retryOn;else throw new i("retryOn property expects an array or function");return new Promise(function(E,v){var _=function(P){var B=typeof Request<"u"&&u instanceof Request?u.clone():u;s(B,p).then(function(U){if(Array.isArray(y)&&y.indexOf(U.status)===-1)E(U);else if(typeof y=="function")try{return Promise.resolve(y(P,null,U)).then(function(R){R?x(P,null,U):E(U)}).catch(v)}catch(R){v(R)}else P<m?x(P,null,U):E(U)}).catch(function(U){if(typeof y=="function")try{Promise.resolve(y(P,U,null)).then(function(R){R?x(P,U,null):v(U)}).catch(function(R){v(R)})}catch(R){v(R)}else P<m?x(P,U,null):v(U)})};function x(P,B,U){var R=typeof h=="function"?h(P,B,U):h;setTimeout(function(){_(++P)},R)}_(0)})}};function n(s){return Number.isInteger(s)&&s>=0}function i(s){this.name="ArgumentError",this.message=s}return r})}),up="9.3.28",N=class xc{static SDK_VERSION=up;static SDK_VERSION_CODE;static SDK="WEB";static LOG_PREFIX="CooeeSDK";static COOEE="cooee";static SESSION_STORAGE_SCROLL_ID="sleid";static IDLE_TIME_IN_SECONDS=30*60;static IN_APP_WRAPPER_NAME="cooee-wrapper";static IN_APP_CONTAINER_NAME="cooee-container";static IN_APP_DEFAULT_PADDING=15;static EVENT_SCREEN_VIEW="CE Screen View";static EVENT_APP_BACKGROUND="CE App Background";static EVENT_TRIGGER_DISPLAYED="CE Trigger Displayed";static EVENT_CAMPAIGN_HOLDOUT="CE Campaign Holdout";static EVENT_CAMPAIGN_REJECTED="CE Campaign Rejected";static EVENT_CAMPAIGN_FAILED="CE Campaign Failed";static EVENT_TRIGGER_CLOSED="CE Trigger Closed";static EVENT_SCROLL="CE Scroll";static EVENT_TRIGGER_CLICKED="CE Trigger Clicked";static EVENT_FORM_SUBMITTED="CE Form Submitted";static EVENT_ADD_TO_CART="Add To Cart";static EVENT_REMOVE_FROM_CART="Remove From Cart";static EVENT_VIEW_ITEM="View Item";static EVENT_VIEW_CART="View Cart";static EVENT_VIEW_COLLECTION="View Collection";static EVENT_BUY_NOW_CLICKED="Buy Now Clicked";static EVENT_CHECKOUT_STARTED="Checkout Started";static EVENT_REVIEW_CLICKED="Review Clicked";static EVENT_ITEM_THUMBNAIL_CLICKED="Item Thumbnail Clicked";static JS_LOAD_WHITELIST_EVENTS=[this.EVENT_VIEW_ITEM,this.EVENT_VIEW_CART,this.EVENT_VIEW_COLLECTION];static HASH_INITIATE_CHECKOUT="initiate-checkout";static HASH_OPEN_CART_DRAWER="open-cart-drawer";static CTA_EVENT="letscooee:outbound:cta";static ADD_BUNDLE_CTA_INBOUND_EVENT="letscooee:inbound:cta:add-bundle";static CTA_OPEN_CART_EVENT="letscooee:outbound:open-cart";static CTA_AFTER_REFRESH_UI="letscooee:outbound:refresh-ui";static POPUP_ACTIVITY_EVENT="letscooee:outbound:popup-activities";static THIRD_PARTY_CHECKOUT_EVENT="letscooee:outbound:third-party-initiate-checkout";static CAMPAIGN_DISPLAYED_ACTIVITY="DISPLAYED";static CAMPAIGN_CLICKED_ACTIVITY="CLICKED";static CAMPAIGN_CLOSED_ACTIVITY="CLOSED";static BLACKLISTED_PAGE_NAMES=["collection","product","cart"];static API_CALL_MAX_ATTEMPTS=3;static API_CALL_RETRY_DELAY=1e3;static PLACEHOLDER_IMAGE="https://cdn.global.letscooee.com/images/placeholders/product.png";static CART_UPDATE_BROADCAST="CART_UPDATE";static GRAPHQL_VERSION="2024-10";static GRAPHQL_API_PATH=`/api/${this.GRAPHQL_VERSION}/graphql.json`;static SHADOW_SPLITTER=":shadow";static CAMPAIGN_ATTRIBUTE="_letscooee_campaign";static CONTENT_ATTRIBUTE="_letscooee_content";static VIA="_via";static PAYMENT_MODAL_DETAILS=[{identifier:"#flo-checkout-wrapper",gateway:"Shopflow"},{identifier:"#fastrr-main-container",gateway:"Shiprocket"},{identifier:"#gokwik-modal-wrapper",gateway:"Gokwik"},{identifier:"#zecpe",gateway:"Ecom 360"}];static{let t=xc.SDK_VERSION.split(".").map(r=>r.padStart(2,"0")).join("");xc.SDK_VERSION_CODE=parseInt(t,10)}},tr={apiURL:"https://api.sdk.letscooee.com",debug:!1,mode:"production",styleURL:`https://cdn.jsdelivr.net/npm/@letscooee/web-sdk@${N.SDK_VERSION}/dist/widget-sdk.min.css`},Ot=Ce(nn()),b=class{static log(...e){Ot.default.info(...e)}static debug(...e){Ot.default.debug(...e)}static error(...e){Ot.default.error(...e)}static warn(...e){Ot.default.warn(...e)}static info(...e){Ot.default.info(...e)}static trace(...e){Ot.default.trace(...e)}static configure(e=N.LOG_PREFIX){Ot.default.useDefaults({formatter:function(r){r.unshift(`${e} (v${N.SDK_VERSION}):`)}});let t=this.getDebugParam();(t==="1"||t==="on")&&(localStorage.cooeeLogLevel="TRACE"),localStorage.cooeeLogLevel?Ot.default.setLevel(Ot.default[localStorage.cooeeLogLevel]):Ot.default.setLevel(tr.debug?Ot.default.TRACE:Ot.default.OFF)}static getDebugParam(){return new URL(location.href).searchParams?.get("cooee-debug")}static logBrand(){let e=`
1
+ "use strict";(()=>{var ig=Object.create,Ac=Object.defineProperty,og=Object.defineProperties,sg=Object.getOwnPropertyDescriptor,ag=Object.getOwnPropertyDescriptors,cg=Object.getOwnPropertyNames,ap=Object.getOwnPropertySymbols,lg=Object.getPrototypeOf,lp=Object.prototype.hasOwnProperty,ug=Object.prototype.propertyIsEnumerable,cp=(e,t,r)=>t in e?Ac(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,w=(e,t)=>{for(var r in t||={})lp.call(t,r)&&cp(e,r,t[r]);if(ap)for(var r of ap(t))ug.call(t,r)&&cp(e,r,t[r]);return e},ee=(e,t)=>og(e,ag(t)),zi=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')}),ur=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),pg=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of cg(t))!lp.call(e,i)&&i!==r&&Ac(e,i,{get:()=>t[i],enumerable:!(n=sg(t,i))||n.enumerable});return e},Ce=(e,t,r)=>(r=e!=null?ig(lg(e)):{},pg(t||!e||!e.__esModule?Ac(r,"default",{value:e,enumerable:!0}):r,e)),nn=ur((e,t)=>{"use strict";(function(r){"use strict";var n={};n.VERSION="1.6.1";var i,s={},o=function(h,y){return function(){return y.apply(h,arguments)}},c=function(){var h=arguments,y=h[0],E,v;for(v=1;v<h.length;v++)for(E in h[v])!(E in y)&&h[v].hasOwnProperty(E)&&(y[E]=h[v][E]);return y},u=function(h,y){return{value:h,name:y}};n.TRACE=u(1,"TRACE"),n.DEBUG=u(2,"DEBUG"),n.INFO=u(3,"INFO"),n.TIME=u(4,"TIME"),n.WARN=u(5,"WARN"),n.ERROR=u(8,"ERROR"),n.OFF=u(99,"OFF");var p=function(h){this.context=h,this.setLevel(h.filterLevel),this.log=this.info};p.prototype={setLevel:function(h){h&&"value"in h&&(this.context.filterLevel=h)},getLevel:function(){return this.context.filterLevel},enabledFor:function(h){var y=this.context.filterLevel;return h.value>=y.value},trace:function(){this.invoke(n.TRACE,arguments)},debug:function(){this.invoke(n.DEBUG,arguments)},info:function(){this.invoke(n.INFO,arguments)},warn:function(){this.invoke(n.WARN,arguments)},error:function(){this.invoke(n.ERROR,arguments)},time:function(h){typeof h=="string"&&h.length>0&&this.invoke(n.TIME,[h,"start"])},timeEnd:function(h){typeof h=="string"&&h.length>0&&this.invoke(n.TIME,[h,"end"])},invoke:function(h,y){i&&this.enabledFor(h)&&i(y,c({level:h},this.context))}};var m=new p({filterLevel:n.OFF});(function(){var h=n;h.enabledFor=o(m,m.enabledFor),h.trace=o(m,m.trace),h.debug=o(m,m.debug),h.time=o(m,m.time),h.timeEnd=o(m,m.timeEnd),h.info=o(m,m.info),h.warn=o(m,m.warn),h.error=o(m,m.error),h.log=h.info})(),n.setHandler=function(h){i=h},n.setLevel=function(h){m.setLevel(h);for(var y in s)s.hasOwnProperty(y)&&s[y].setLevel(h)},n.getLevel=function(){return m.getLevel()},n.get=function(h){return s[h]||(s[h]=new p(c({name:h},m.context)))},n.createDefaultHandler=function(h){h=h||{},h.formatter=h.formatter||function(v,_){_.name&&v.unshift("["+_.name+"]")};var y={},E=function(v,_){Function.prototype.apply.call(v,console,_)};return typeof console>"u"?function(){}:function(v,_){v=Array.prototype.slice.call(v);var x=console.log,P;_.level===n.TIME?(P=(_.name?"["+_.name+"] ":"")+v[0],v[1]==="start"?console.time?console.time(P):y[P]=new Date().getTime():console.timeEnd?console.timeEnd(P):E(x,[P+": "+(new Date().getTime()-y[P])+"ms"])):(_.level===n.WARN&&console.warn?x=console.warn:_.level===n.ERROR&&console.error?x=console.error:_.level===n.INFO&&console.info?x=console.info:_.level===n.DEBUG&&console.debug?x=console.debug:_.level===n.TRACE&&console.trace&&(x=console.trace),h.formatter(v,_),E(x,v))}},n.useDefaults=function(h){n.setLevel(h&&h.defaultLevel||n.DEBUG),n.setHandler(n.createDefaultHandler(h))},n.setDefaults=n.useDefaults,typeof define=="function"&&define.amd?define(n):typeof t<"u"&&t.exports?t.exports=n:(n._prevLogger=r.Logger,n.noConflict=function(){return r.Logger=n._prevLogger,n},r.Logger=n)})(e)}),Nc=ur(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MustacheUtils=void 0;var t=class Ih{static escapeHtml(n){return String(n).replace(/"/g,i=>Ih.entityMap[i])}};e.MustacheUtils=t,t.entityMap={'"':"&quot;"}}),Gr=ur(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MilestoneRewardType=e.ProgressBarLayout=e.EngagementContentSource=e.EngagementObjective=e.OnsiteDeliveryType=e.ClickActionType=e.FrequencyGapUnit=e.FrequencyType=e.RedirectBehaviour=e.EngagementPlacementPosition=e.EngagementCollectionSource=e.PromotionType=e.CartFilterEnum=e.CartCurrencyOperator=e.CartCriteria=e.URLCriteria=e.UTMCriteria=e.CartItemSource=e.EngagementItemSource=e.PurchasedVisitor=e.LoggedInVisitor=e.VisitorType=e.SessionType=e.EngagementContentType=e.TriggerType=e.EngagementType=e.EngagementStatus=e.TimePreference=e.ScheduleFrequency=e.CriteriaFrequency=void 0;var t=function(d){return d[d.ONCE_PER_USER=1]="ONCE_PER_USER",d[d.ONCE_PER_SESSION=2]="ONCE_PER_SESSION",d[d.EVERY_TIME=3]="EVERY_TIME",d}(t||(e.CriteriaFrequency=t={})),r=function(d){return d[d.ONE_TIME=1]="ONE_TIME",d[d.MULTIPLE=2]="MULTIPLE",d[d.RECURRING=3]="RECURRING",d}(r||(e.ScheduleFrequency=r={})),n=function(d){return d[d.NOW=1]="NOW",d[d.LATER=2]="LATER",d[d.NEVER=3]="NEVER",d}(n||(e.TimePreference=n={})),i=function(d){return d[d.PUBLISHED=1]="PUBLISHED",d[d.DRAFT=2]="DRAFT",d[d.PAUSED=3]="PAUSED",d[d.FAILED=4]="FAILED",d[d.STOPPED=5]="STOPPED",d[d.COMPLETED=6]="COMPLETED",d[d.ARCHIVED=7]="ARCHIVED",d[d.UNINSTALLED=8]="UNINSTALLED",d}(i||(e.EngagementStatus=i={})),s=function(d){return d[d.POPUP=1]="POPUP",d[d.LEAD_GENERATION=2]="LEAD_GENERATION",d[d.PRODUCT_WIDGET=3]="PRODUCT_WIDGET",d[d.PRODUCT_BUNDLE=4]="PRODUCT_BUNDLE",d[d.ANNOUNCEMENT_BAR=5]="ANNOUNCEMENT_BAR",d[d.CART_REMINDER=6]="CART_REMINDER",d[d.CRO_COPILOT=10]="CRO_COPILOT",d[d.OTHER=11]="OTHER",d}(s||(e.EngagementType=s={})),o=function(d){return d[d.NONE=0]="NONE",d[d.RULE_BASED=1]="RULE_BASED",d[d.INTENT_BASED=2]="INTENT_BASED",d}(o||(e.TriggerType=o={})),c=function(d){return d[d.SINGLE=1]="SINGLE",d[d.EXCLUSION=2]="EXCLUSION",d[d.ABTESTING=3]="ABTESTING",d}(c||(e.EngagementContentType=c={})),u=function(d){return d[d.ALL=0]="ALL",d[d.NEW_ONLY=1]="NEW_ONLY",d[d.RETURNING_ONLY=2]="RETURNING_ONLY",d}(u||(e.SessionType=u={})),p=function(d){return d[d.ALL=0]="ALL",d[d.LOGGED_IN_ONLY=3]="LOGGED_IN_ONLY",d[d.NON_LOGGED_IN_ONLY=4]="NON_LOGGED_IN_ONLY",d[d.PURCHASED=5]="PURCHASED",d[d.NON_PURCHASED=6]="NON_PURCHASED",d[d.ABANDON_CART=7]="ABANDON_CART",d[d.RETURNING_AND_NON_PURCHASED=8]="RETURNING_AND_NON_PURCHASED",d}(p||(e.VisitorType=p={})),m=function(d){return d.ALL="ALL",d.LOGGED_IN="LOGGED_IN",d.NON_LOGGED_IN="NON_LOGGED_IN",d}(m||(e.LoggedInVisitor=m={})),h=function(d){return d.ALL="ALL",d.PURCHASED="PURCHASED",d.NON_PURCHASED="NON_PURCHASED",d}(h||(e.PurchasedVisitor=h={})),y=function(d){return d[d.NONE=0]="NONE",d[d.ITEM_RECOMMENDATION=1]="ITEM_RECOMMENDATION",d[d.MULTIPLE_ITEMS=2]="MULTIPLE_ITEMS",d[d.SINGLE_ITEM=3]="SINGLE_ITEM",d[d.TOP_SELLING=4]="TOP_SELLING",d[d.STOCK_CLEARANCE=5]="STOCK_CLEARANCE",d[d.NEW_ARRIVALS=6]="NEW_ARRIVALS",d[d.RECENTLY_VIEWED=7]="RECENTLY_VIEWED",d[d.EVENT_ITEM=8]="EVENT_ITEM",d[d.CART_ITEM=9]="CART_ITEM",d[d.BUNDLE=10]="BUNDLE",d[d.CURRENT_ITEM=11]="CURRENT_ITEM",d[d.PURCHASED_PREVIOUSLY=12]="PURCHASED_PREVIOUSLY",d[d.COLLECTION_ITEMS=13]="COLLECTION_ITEMS",d[d.TRENDING_ITEMS=14]="TRENDING_ITEMS",d}(y||(e.EngagementItemSource=y={})),E=function(d){return d[d.LAST_ADDED=1]="LAST_ADDED",d[d.FIRST_ADDED=2]="FIRST_ADDED",d[d.HIGHEST_PRICE=3]="HIGHEST_PRICE",d[d.LOWEST_PRICE=4]="LOWEST_PRICE",d[d.FIRST_MATCHING_TAG=5]="FIRST_MATCHING_TAG",d[d.ALL=6]="ALL",d}(E||(e.CartItemSource=E={})),v=function(d){return d[d.ALL=0]="ALL",d[d.ONLY_ORGANIC=1]="ONLY_ORGANIC",d[d.ONLY_NON_ORGANIC=2]="ONLY_NON_ORGANIC",d[d.INCLUDES=3]="INCLUDES",d[d.EXCLUDES=4]="EXCLUDES",d}(v||(e.UTMCriteria=v={})),_=function(d){return d[d.NONE=0]="NONE",d[d.LIKE=1]="LIKE",d[d.NOT_LIKE=2]="NOT_LIKE",d[d.EQUALS=3]="EQUALS",d[d.NOT_EQUALS=4]="NOT_EQUALS",d}(_||(e.URLCriteria=_={})),x=function(d){return d[d.NONE=0]="NONE",d[d.LESS_THAN=1]="LESS_THAN",d[d.GREATER_THAN=2]="GREATER_THAN",d[d.BETWEEN=3]="BETWEEN",d[d.EQUALS=4]="EQUALS",d}(x||(e.CartCriteria=x={})),P=function(d){return d[d.ALL=0]="ALL",d[d.INCLUDES=1]="INCLUDES",d[d.EXCLUDES=2]="EXCLUDES",d}(P||(e.CartCurrencyOperator=P={})),B=function(d){return d[d.NONE=0]="NONE",d[d.AMOUNT=1]="AMOUNT",d[d.TOTAL_PRODUCT=2]="TOTAL_PRODUCT",d[d.UNIQUE_PRODUCT=3]="UNIQUE_PRODUCT",d}(B||(e.CartFilterEnum=B={})),U=function(d){return d[d.NONE=0]="NONE",d[d.ITEM=1]="ITEM",d[d.COLLECTION=2]="COLLECTION",d}(U||(e.PromotionType=U={})),R=function(d){return d[d.NONE=0]="NONE",d[d.SINGLE=1]="SINGLE",d[d.MULTIPLE=2]="MULTIPLE",d}(R||(e.EngagementCollectionSource=R={})),G=function(d){return d.BEFORE="before",d.AFTER="after",d.INSIDE_FIRST="insideFirst",d.INSIDE_LAST="insideLast",d}(G||(e.EngagementPlacementPosition=G={})),ue=function(d){return d.SHOPIFY_CHECKOUT="shopify_checkout",d.THIRD_PARTY_CHECKOUT="third_party_checkout",d.CART_PAGE="cart_page",d.CART_DRAWER="cart_drawer",d}(ue||(e.RedirectBehaviour=ue={})),Me=function(d){return d.ONCE_IN_SESSION="ONCE_IN_SESSION",d.ACROSS_SESSIONS="ACROSS_SESSIONS",d}(Me||(e.FrequencyType=Me={})),j=function(d){return d.DAYS="DAYS",d.HOURS="HOURS",d.MINUTES="MINUTES",d.SECONDS="SECONDS",d}(j||(e.FrequencyGapUnit=j={})),Q=function(d){return d[d.NONE=0]="NONE",d[d.REJECT_POPUP=1]="REJECT_POPUP",d[d.ACCEPT_POPUP=2]="ACCEPT_POPUP",d[d.GO_TO_URL=4]="GO_TO_URL",d[d.SHARE=5]="SHARE",d[d.KEY_VALUE=100]="KEY_VALUE",d[d.GO_TO_PRODUCT=101]="GO_TO_PRODUCT",d[d.ADD_TO_CART=102]="ADD_TO_CART",d[d.COPY_COUPON_CODE=103]="COPY_COUPON_CODE",d[d.GO_TO_COLLECTION=104]="GO_TO_COLLECTION",d[d.OPEN_CART=105]="OPEN_CART",d[d.SUBMIT_FORM=106]="SUBMIT_FORM",d[d.INITIATE_CHECKOUT=107]="INITIATE_CHECKOUT",d[d.ADD_BUNDLE=108]="ADD_BUNDLE",d[d.UPGRADE_TO_SUBSCRIPTION=109]="UPGRADE_TO_SUBSCRIPTION",d}(Q||(e.ClickActionType=Q={})),z=function(d){return d.POPUP="POPUP",d.PAGE_EMBED="PAGE_EMBED",d.CART_EMBED="CART_EMBED",d.ANNOUNCEMENT_BAR="ANNOUNCEMENT_BAR",d}(z||(e.OnsiteDeliveryType=z={})),J=function(d){return d.PRODUCT_PROMOTION="PRODUCT_PROMOTION",d.BUNDLE_AND_UPSELL="BUNDLE_AND_UPSELL",d.CART_RECOVERY="CART_RECOVERY",d.ANNOUNCEMENT="ANNOUNCEMENT",d.LEAD_GENERATION="LEAD_GENERATION",d.DATA_COLLECTION="DATA_COLLECTION",d.SALE_PROMOTION="SALE_PROMOTION",d.SUBSCRIPTION_UPSELL="SUBSCRIPTION_UPSELL",d.SHOPPABLE_VIDEO="SHOPPABLE_VIDEO",d.BYOB="BYOB",d.PROGRESS_BAR="PROGRESS_BAR",d.BUY_NOW="BUY_NOW",d}(J||(e.EngagementObjective=J={})),ge=function(d){return d.COOEE="COOEE",d.KLAVIYO="KLAVIYO",d}(ge||(e.EngagementContentSource=ge={})),je=function(d){return d.ICONS="ICONS",d.TILES="TILES",d}(je||(e.ProgressBarLayout=je={})),De=function(d){return d.FREE_SHIPPING="FREE_SHIPPING",d.DISCOUNT="DISCOUNT",d.FREE_AUTO_GIFT="FREE_AUTO_GIFT",d.FREE_GIFT_SELECT="FREE_GIFT_SELECT",d}(De||(e.MilestoneRewardType=De={}))}),Jo=ur(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PriceRuleType=e.DiscountType=void 0;var t=function(n){return n[n.NONE=0]="NONE",n[n.STATIC=1]="STATIC",n[n.UNIQUE_FLAT=2]="UNIQUE_FLAT",n[n.UNIQUE_FLAT_ITEMS=3]="UNIQUE_FLAT_ITEMS",n[n.UNIQUE_FIXED_ITEMS=4]="UNIQUE_FIXED_ITEMS",n[n.UNIQUE_CHEAPEST_ITEM_FREE=5]="UNIQUE_CHEAPEST_ITEM_FREE",n[n.BXGY=6]="BXGY",n}(t||(e.DiscountType=t={})),r=function(n){return n.FIXED_AMOUNT="fixed_amount",n.PERCENTAGE="percentage",n}(r||(e.PriceRuleType=r={}))}),Pc=ur(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ArrayUtils=void 0;var t=class Th{static of(n,i){return i!==void 0?new Array(n).fill(i):Array.from({length:n},(s,o)=>o)}static remove(n,i){let s=n.indexOf(i);return s===-1?!1:(n.splice(s,1),!0)}static swap(n,i,s){[n[i],n[s]]=[n[s],n[i]]}static sum(n,i){return n.reduce((s,o)=>s+Math.max(i?i(o):+o,0),0)}static unique(n,i){return n.filter((s,o,c)=>c.findIndex(u=>u[i]===s[i])===o)}static shuffle(n){let i=n.length;for(;i!=0;){let s=Math.floor(Math.random()*i);i--,Th.swap(n,i,s)}}};e.ArrayUtils=t}),wf=ur((e,t)=>{"use strict";(function(r,n){"use strict";var i="1.0.40",s="",o="?",c="function",u="undefined",p="object",m="string",h="major",y="model",E="name",v="type",_="vendor",x="version",P="architecture",B="console",U="mobile",R="tablet",G="smarttv",ue="wearable",Me="embedded",j=500,Q="Amazon",z="Apple",J="ASUS",ge="BlackBerry",je="Browser",De="Chrome",d="Edge",qe="Firefox",ve="Google",gt="Huawei",se="LG",ie="Microsoft",lt="Motorola",er="Opera",lr="Samsung",yt="Sharp",Wr="Sony",Fn="Xiaomi",rn="Zebra",Qn="Facebook",Vi="Chromium OS",Hn="Mac OS",kn=" Browser",vt=function(q,ae){var Z={};for(var Te in q)ae[Te]&&ae[Te].length%2===0?Z[Te]=ae[Te].concat(q[Te]):Z[Te]=q[Te];return Z},jr=function(q){for(var ae={},Z=0;Z<q.length;Z++)ae[q[Z].toUpperCase()]=q[Z];return ae},Gi=function(q,ae){return typeof q===m?a(ae).indexOf(a(q))!==-1:!1},a=function(q){return q.toLowerCase()},l=function(q){return typeof q===m?q.replace(/[^\d\.]/g,s).split(".")[0]:n},f=function(q,ae){if(typeof q===m)return q=q.replace(/^\s\s*/,s),typeof ae===u?q:q.substring(0,j)},T=function(q,ae){for(var Z=0,Te,Dt,Nt,Ie,ne,Ft;Z<ae.length&&!ne;){var Wi=ae[Z],ls=ae[Z+1];for(Te=Dt=0;Te<Wi.length&&!ne&&Wi[Te];)if(ne=Wi[Te++].exec(q),ne)for(Nt=0;Nt<ls.length;Nt++)Ft=ne[++Dt],Ie=ls[Nt],typeof Ie===p&&Ie.length>0?Ie.length===2?typeof Ie[1]==c?this[Ie[0]]=Ie[1].call(this,Ft):this[Ie[0]]=Ie[1]:Ie.length===3?typeof Ie[1]===c&&!(Ie[1].exec&&Ie[1].test)?this[Ie[0]]=Ft?Ie[1].call(this,Ft,Ie[2]):n:this[Ie[0]]=Ft?Ft.replace(Ie[1],Ie[2]):n:Ie.length===4&&(this[Ie[0]]=Ft?Ie[3].call(this,Ft.replace(Ie[1],Ie[2])):n):this[Ie]=Ft||n;Z+=2}},A=function(q,ae){for(var Z in ae)if(typeof ae[Z]===p&&ae[Z].length>0){for(var Te=0;Te<ae[Z].length;Te++)if(Gi(ae[Z][Te],q))return Z===o?n:Z}else if(Gi(ae[Z],q))return Z===o?n:Z;return ae.hasOwnProperty("*")?ae["*"]:q},M={"1.0":"/8","1.2":"/1","1.3":"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"},W={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2","8.1":"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"},be={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[x,[E,"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[x,[E,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[E,x],[/opios[\/ ]+([\w\.]+)/i],[x,[E,er+" Mini"]],[/\bop(?:rg)?x\/([\w\.]+)/i],[x,[E,er+" GX"]],[/\bopr\/([\w\.]+)/i],[x,[E,er]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i],[x,[E,"Baidu"]],[/\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i],[x,[E,"Maxthon"]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,/(avant|iemobile|slim(?:browser|boat|jet))[\/ ]?([\d\.]*)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon)\/([-\w\.]+)/i,/(heytap|ovi|115)browser\/([\d\.]+)/i,/(weibo)__([\d\.]+)/i],[E,x],[/quark(?:pc)?\/([-\w\.]+)/i],[x,[E,"Quark"]],[/\bddg\/([\w\.]+)/i],[x,[E,"DuckDuckGo"]],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[x,[E,"UC"+je]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i,/micromessenger\/([\w\.]+)/i],[x,[E,"WeChat"]],[/konqueror\/([\w\.]+)/i],[x,[E,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[x,[E,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[x,[E,"Yandex"]],[/slbrowser\/([\w\.]+)/i],[x,[E,"Smart Lenovo "+je]],[/(avast|avg)\/([\w\.]+)/i],[[E,/(.+)/,"$1 Secure "+je],x],[/\bfocus\/([\w\.]+)/i],[x,[E,qe+" Focus"]],[/\bopt\/([\w\.]+)/i],[x,[E,er+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[x,[E,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[x,[E,"Dolphin"]],[/coast\/([\w\.]+)/i],[x,[E,er+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[x,[E,"MIUI"+kn]],[/fxios\/([\w\.-]+)/i],[x,[E,qe]],[/\bqihoobrowser\/?([\w\.]*)/i],[x,[E,"360"]],[/\b(qq)\/([\w\.]+)/i],[[E,/(.+)/,"$1Browser"],x],[/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i],[[E,/(.+)/,"$1"+kn],x],[/samsungbrowser\/([\w\.]+)/i],[x,[E,lr+" Internet"]],[/metasr[\/ ]?([\d\.]+)/i],[x,[E,"Sogou Explorer"]],[/(sogou)mo\w+\/([\d\.]+)/i],[[E,"Sogou Mobile"],x],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i],[E,x],[/(lbbrowser|rekonq)/i,/\[(linkedin)app\]/i],[E],[/ome\/([\w\.]+) \w* ?(iron) saf/i,/ome\/([\w\.]+).+qihu (360)[es]e/i],[x,E],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[E,Qn],x],[/(Klarna)\/([\w\.]+)/i,/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(alipay)client\/([\w\.]+)/i,/(twitter)(?:and| f.+e\/([\w\.]+))/i,/(chromium|instagram|snapchat)[\/ ]([-\w\.]+)/i],[E,x],[/\bgsa\/([\w\.]+) .*safari\//i],[x,[E,"GSA"]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[x,[E,"TikTok"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[x,[E,De+" Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[E,De+" WebView"],x],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[x,[E,"Android "+je]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[E,x],[/version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i],[x,[E,"Mobile Safari"]],[/version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i],[x,E],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[E,[x,A,M]],[/(webkit|khtml)\/([\w\.]+)/i],[E,x],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[E,"Netscape"],x],[/(wolvic|librewolf)\/([\w\.]+)/i],[E,x],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[x,[E,qe+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/(links) \(([\w\.]+)/i],[E,[x,/_/g,"."]],[/(cobalt)\/([\w\.]+)/i],[E,[x,/master.|lts./,""]]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i],[[P,"amd64"]],[/(ia32(?=;))/i],[[P,a]],[/((?:i[346]|x)86)[;\)]/i],[[P,"ia32"]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[P,"arm64"]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[P,"armhf"]],[/windows (ce|mobile); ppc;/i],[[P,"arm"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[P,/ower/,s,a]],[/(sun4\w)[;\)]/i],[[P,"sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[P,a]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[y,[_,lr],[v,R]],[/\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]((?!sm-[lr])[-\w]+)/i,/sec-(sgh\w+)/i],[y,[_,lr],[v,U]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],[y,[_,z],[v,U]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[y,[_,z],[v,R]],[/(macintosh);/i],[y,[_,z]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[y,[_,yt],[v,U]],[/(?:honor)([-\w ]+)[;\)]/i],[y,[_,"Honor"],[v,U]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[y,[_,gt],[v,R]],[/(?:huawei)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[y,[_,gt],[v,U]],[/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\))/i],[[y,/_/g," "],[_,Fn],[v,U]],[/oid[^\)]+; (2\d{4}(283|rpbf)[cgl])( bui|\))/i,/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],[[y,/_/g," "],[_,Fn],[v,R]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[y,[_,"OPPO"],[v,U]],[/\b(opd2\d{3}a?) bui/i],[y,[_,"OPPO"],[v,R]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[y,[_,"Vivo"],[v,U]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[y,[_,"Realme"],[v,U]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[y,[_,lt],[v,U]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[y,[_,lt],[v,R]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[y,[_,se],[v,R]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?([\d\w]+) bui/i],[y,[_,se],[v,U]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],[y,[_,"Lenovo"],[v,R]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w\.]*)/i],[[y,/_/g," "],[_,"Nokia"],[v,U]],[/(pixel c)\b/i],[y,[_,ve],[v,R]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[y,[_,ve],[v,U]],[/droid.+; (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[y,[_,Wr],[v,U]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[y,"Xperia Tablet"],[_,Wr],[v,R]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[y,[_,"OnePlus"],[v,U]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[y,[_,Q],[v,R]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[y,/(.+)/g,"Fire Phone $1"],[_,Q],[v,U]],[/(playbook);[-\w\),; ]+(rim)/i],[y,_,[v,R]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[y,[_,ge],[v,U]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[y,[_,J],[v,R]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[y,[_,J],[v,U]],[/(nexus 9)/i],[y,[_,"HTC"],[v,R]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[_,[y,/_/g," "],[v,U]],[/droid [\w\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])\w*(\)| bui)/i],[y,[_,"TCL"],[v,R]],[/(itel) ((\w+))/i],[[_,a],y,[v,A,{tablet:["p10001l","w7001"],"*":"mobile"}]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[y,[_,"Acer"],[v,R]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[y,[_,"Meizu"],[v,U]],[/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i],[y,[_,"Ulefone"],[v,U]],[/; (energy ?\w+)(?: bui|\))/i,/; energizer ([\w ]+)(?: bui|\))/i],[y,[_,"Energizer"],[v,U]],[/; cat (b35);/i,/; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i],[y,[_,"Cat"],[v,U]],[/((?:new )?andromax[\w- ]+)(?: bui|\))/i],[y,[_,"Smartfren"],[v,U]],[/droid.+; (a(?:015|06[35]|142p?))/i],[y,[_,"Nothing"],[v,U]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno|micromax|advan)[-_ ]?([-\w]*)/i,/; (imo) ((?!tab)[\w ]+?)(?: bui|\))/i,/(hp) ([\w ]+\w)/i,/(asus)-?(\w+)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w]+)/i,/(jolla)/i,/(oppo) ?([\w ]+) bui/i],[_,y,[v,U]],[/(imo) (tab \w+)/i,/(kobo)\s(ereader|touch)/i,/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i,/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[_,y,[v,R]],[/(surface duo)/i],[y,[_,ie],[v,R]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[y,[_,"Fairphone"],[v,U]],[/(u304aa)/i],[y,[_,"AT&T"],[v,U]],[/\bsie-(\w*)/i],[y,[_,"Siemens"],[v,U]],[/\b(rct\w+) b/i],[y,[_,"RCA"],[v,R]],[/\b(venue[\d ]{2,7}) b/i],[y,[_,"Dell"],[v,R]],[/\b(q(?:mv|ta)\w+) b/i],[y,[_,"Verizon"],[v,R]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[y,[_,"Barnes & Noble"],[v,R]],[/\b(tm\d{3}\w+) b/i],[y,[_,"NuVision"],[v,R]],[/\b(k88) b/i],[y,[_,"ZTE"],[v,R]],[/\b(nx\d{3}j) b/i],[y,[_,"ZTE"],[v,U]],[/\b(gen\d{3}) b.+49h/i],[y,[_,"Swiss"],[v,U]],[/\b(zur\d{3}) b/i],[y,[_,"Swiss"],[v,R]],[/\b((zeki)?tb.*\b) b/i],[y,[_,"Zeki"],[v,R]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[_,"Dragon Touch"],y,[v,R]],[/\b(ns-?\w{0,9}) b/i],[y,[_,"Insignia"],[v,R]],[/\b((nxa|next)-?\w{0,9}) b/i],[y,[_,"NextBook"],[v,R]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[_,"Voice"],y,[v,U]],[/\b(lvtel\-)?(v1[12]) b/i],[[_,"LvTel"],y,[v,U]],[/\b(ph-1) /i],[y,[_,"Essential"],[v,U]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[y,[_,"Envizen"],[v,R]],[/\b(trio[-\w\. ]+) b/i],[y,[_,"MachSpeed"],[v,R]],[/\btu_(1491) b/i],[y,[_,"Rotor"],[v,R]],[/(shield[\w ]+) b/i],[y,[_,"Nvidia"],[v,R]],[/(sprint) (\w+)/i],[_,y,[v,U]],[/(kin\.[onetw]{3})/i],[[y,/\./g," "],[_,ie],[v,U]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[y,[_,rn],[v,R]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[y,[_,rn],[v,U]],[/smart-tv.+(samsung)/i],[_,[v,G]],[/hbbtv.+maple;(\d+)/i],[[y,/^/,"SmartTV"],[_,lr],[v,G]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[_,se],[v,G]],[/(apple) ?tv/i],[_,[y,z+" TV"],[v,G]],[/crkey/i],[[y,De+"cast"],[_,ve],[v,G]],[/droid.+aft(\w+)( bui|\))/i],[y,[_,Q],[v,G]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[y,[_,yt],[v,G]],[/(bravia[\w ]+)( bui|\))/i],[y,[_,Wr],[v,G]],[/(mitv-\w{5}) bui/i],[y,[_,Fn],[v,G]],[/Hbbtv.*(technisat) (.*);/i],[_,y,[v,G]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[_,f],[y,f],[v,G]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[v,G]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[_,y,[v,B]],[/droid.+; (shield) bui/i],[y,[_,"Nvidia"],[v,B]],[/(playstation [345portablevi]+)/i],[y,[_,Wr],[v,B]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[y,[_,ie],[v,B]],[/\b(sm-[lr]\d\d[05][fnuw]?s?)\b/i],[y,[_,lr],[v,ue]],[/((pebble))app/i],[_,y,[v,ue]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[y,[_,z],[v,ue]],[/droid.+; (glass) \d/i],[y,[_,ve],[v,ue]],[/droid.+; (wt63?0{2,3})\)/i],[y,[_,rn],[v,ue]],[/droid.+; (glass) \d/i],[y,[_,ve],[v,ue]],[/(pico) (4|neo3(?: link|pro)?)/i],[_,y,[v,ue]],[/; (quest( \d| pro)?)/i],[y,[_,Qn],[v,ue]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[_,[v,Me]],[/(aeobc)\b/i],[y,[_,Q],[v,Me]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+? mobile safari/i],[y,[v,U]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[y,[v,R]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[v,R]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[v,U]],[/(android[-\w\. ]{0,9});.+buil/i],[y,[_,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[x,[E,d+"HTML"]],[/(arkweb)\/([\w\.]+)/i],[E,x],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[x,[E,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[E,x],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[x,E]],os:[[/microsoft (windows) (vista|xp)/i],[E,x],[/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i],[E,[x,A,W]],[/windows nt 6\.2; (arm)/i,/windows[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i,/(?:win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[x,A,W],[E,"Windows"]],[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,/cfnetwork\/.+darwin/i],[[x,/_/g,"."],[E,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[E,Hn],[x,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i],[x,E],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish|openharmony)[-\/ ]?([\w\.]*)/i,/(blackberry)\w*\/([\w\.]*)/i,/(tizen|kaios)[\/ ]([\w\.]+)/i,/\((series40);/i],[E,x],[/\(bb(10);/i],[x,[E,ge]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],[x,[E,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[x,[E,qe+" OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[x,[E,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[x,[E,"watchOS"]],[/crkey\/([\d\.]+)/i],[x,[E,De+"cast"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[E,Vi],x],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\/(\d+\.[\w\.]+)/i,/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux) ?([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[E,x],[/(sunos) ?([\w\.\d]*)/i],[[E,"Solaris"],x],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[E,x]]},me=function(q,ae){if(typeof q===p&&(ae=q,q=n),!(this instanceof me))return new me(q,ae).getResult();var Z=typeof r!==u&&r.navigator?r.navigator:n,Te=q||(Z&&Z.userAgent?Z.userAgent:s),Dt=Z&&Z.userAgentData?Z.userAgentData:n,Nt=ae?vt(be,ae):be,Ie=Z&&Z.userAgent==Te;return this.getBrowser=function(){var ne={};return ne[E]=n,ne[x]=n,T.call(ne,Te,Nt.browser),ne[h]=l(ne[x]),Ie&&Z&&Z.brave&&typeof Z.brave.isBrave==c&&(ne[E]="Brave"),ne},this.getCPU=function(){var ne={};return ne[P]=n,T.call(ne,Te,Nt.cpu),ne},this.getDevice=function(){var ne={};return ne[_]=n,ne[y]=n,ne[v]=n,T.call(ne,Te,Nt.device),Ie&&!ne[v]&&Dt&&Dt.mobile&&(ne[v]=U),Ie&&ne[y]=="Macintosh"&&Z&&typeof Z.standalone!==u&&Z.maxTouchPoints&&Z.maxTouchPoints>2&&(ne[y]="iPad",ne[v]=R),ne},this.getEngine=function(){var ne={};return ne[E]=n,ne[x]=n,T.call(ne,Te,Nt.engine),ne},this.getOS=function(){var ne={};return ne[E]=n,ne[x]=n,T.call(ne,Te,Nt.os),Ie&&!ne[E]&&Dt&&Dt.platform&&Dt.platform!="Unknown"&&(ne[E]=Dt.platform.replace(/chrome os/i,Vi).replace(/macos/i,Hn)),ne},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return Te},this.setUA=function(ne){return Te=typeof ne===m&&ne.length>j?f(ne,j):ne,this},this.setUA(Te),this};me.VERSION=i,me.BROWSER=jr([E,x,h]),me.CPU=jr([P]),me.DEVICE=jr([y,_,v,B,U,G,R,ue,Me]),me.ENGINE=me.OS=jr([E,x]),typeof e!==u?(typeof t!==u&&t.exports&&(e=t.exports=me),e.UAParser=me):typeof define===c&&define.amd?define(function(){return me}):typeof r!==u&&(r.UAParser=me);var ye=typeof r!==u&&(r.jQuery||r.Zepto);if(ye&&!ye.ua){var $e=new me;ye.ua=$e.getResult(),ye.ua.get=function(){return $e.getUA()},ye.ua.set=function(q){$e.setUA(q);var ae=$e.getResult();for(var Z in ae)ye.ua[Z]=ae[Z]}}})(typeof window=="object"?window:e)}),Tf=ur((e,t)=>{"use strict";(function(r){if(typeof e=="object"&&typeof t<"u")t.exports=r();else if(typeof define=="function"&&define.amd)define([],r);else{var n;typeof window<"u"?n=window:typeof global<"u"?n=global:typeof self<"u"?n=self:n=this,n.localforage=r()}})(function(){var r,n,i;return function s(o,c,u){function p(y,E){if(!c[y]){if(!o[y]){var v=typeof zi=="function"&&zi;if(!E&&v)return v(y,!0);if(m)return m(y,!0);var _=new Error("Cannot find module '"+y+"'");throw _.code="MODULE_NOT_FOUND",_}var x=c[y]={exports:{}};o[y][0].call(x.exports,function(P){var B=o[y][1][P];return p(B||P)},x,x.exports,s,o,c,u)}return c[y].exports}for(var m=typeof zi=="function"&&zi,h=0;h<u.length;h++)p(u[h]);return p}({1:[function(s,o,c){(function(u){"use strict";var p=u.MutationObserver||u.WebKitMutationObserver,m;if(p){var h=0,y=new p(P),E=u.document.createTextNode("");y.observe(E,{characterData:!0}),m=function(){E.data=h=++h%2}}else if(!u.setImmediate&&typeof u.MessageChannel<"u"){var v=new u.MessageChannel;v.port1.onmessage=P,m=function(){v.port2.postMessage(0)}}else"document"in u&&"onreadystatechange"in u.document.createElement("script")?m=function(){var U=u.document.createElement("script");U.onreadystatechange=function(){P(),U.onreadystatechange=null,U.parentNode.removeChild(U),U=null},u.document.documentElement.appendChild(U)}:m=function(){setTimeout(P,0)};var _,x=[];function P(){_=!0;for(var U,R,G=x.length;G;){for(R=x,x=[],U=-1;++U<G;)R[U]();G=x.length}_=!1}o.exports=B;function B(U){x.push(U)===1&&!_&&m()}}).call(this,typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{})},{}],2:[function(s,o,c){"use strict";var u=s(1);function p(){}var m={},h=["REJECTED"],y=["FULFILLED"],E=["PENDING"];o.exports=v;function v(j){if(typeof j!="function")throw new TypeError("resolver must be a function");this.state=E,this.queue=[],this.outcome=void 0,j!==p&&B(this,j)}v.prototype.catch=function(j){return this.then(null,j)},v.prototype.then=function(j,Q){if(typeof j!="function"&&this.state===y||typeof Q!="function"&&this.state===h)return this;var z=new this.constructor(p);if(this.state!==E){var J=this.state===y?j:Q;x(z,J,this.outcome)}else this.queue.push(new _(z,j,Q));return z};function _(j,Q,z){this.promise=j,typeof Q=="function"&&(this.onFulfilled=Q,this.callFulfilled=this.otherCallFulfilled),typeof z=="function"&&(this.onRejected=z,this.callRejected=this.otherCallRejected)}_.prototype.callFulfilled=function(j){m.resolve(this.promise,j)},_.prototype.otherCallFulfilled=function(j){x(this.promise,this.onFulfilled,j)},_.prototype.callRejected=function(j){m.reject(this.promise,j)},_.prototype.otherCallRejected=function(j){x(this.promise,this.onRejected,j)};function x(j,Q,z){u(function(){var J;try{J=Q(z)}catch(ge){return m.reject(j,ge)}J===j?m.reject(j,new TypeError("Cannot resolve promise with itself")):m.resolve(j,J)})}m.resolve=function(j,Q){var z=U(P,Q);if(z.status==="error")return m.reject(j,z.value);var J=z.value;if(J)B(j,J);else{j.state=y,j.outcome=Q;for(var ge=-1,je=j.queue.length;++ge<je;)j.queue[ge].callFulfilled(Q)}return j},m.reject=function(j,Q){j.state=h,j.outcome=Q;for(var z=-1,J=j.queue.length;++z<J;)j.queue[z].callRejected(Q);return j};function P(j){var Q=j&&j.then;if(j&&(typeof j=="object"||typeof j=="function")&&typeof Q=="function")return function(){Q.apply(j,arguments)}}function B(j,Q){var z=!1;function J(d){z||(z=!0,m.reject(j,d))}function ge(d){z||(z=!0,m.resolve(j,d))}function je(){Q(ge,J)}var De=U(je);De.status==="error"&&J(De.value)}function U(j,Q){var z={};try{z.value=j(Q),z.status="success"}catch(J){z.status="error",z.value=J}return z}v.resolve=R;function R(j){return j instanceof this?j:m.resolve(new this(p),j)}v.reject=G;function G(j){var Q=new this(p);return m.reject(Q,j)}v.all=ue;function ue(j){var Q=this;if(Object.prototype.toString.call(j)!=="[object Array]")return this.reject(new TypeError("must be an array"));var z=j.length,J=!1;if(!z)return this.resolve([]);for(var ge=new Array(z),je=0,De=-1,d=new this(p);++De<z;)qe(j[De],De);return d;function qe(ve,gt){Q.resolve(ve).then(se,function(ie){J||(J=!0,m.reject(d,ie))});function se(ie){ge[gt]=ie,++je===z&&!J&&(J=!0,m.resolve(d,ge))}}}v.race=Me;function Me(j){var Q=this;if(Object.prototype.toString.call(j)!=="[object Array]")return this.reject(new TypeError("must be an array"));var z=j.length,J=!1;if(!z)return this.resolve([]);for(var ge=-1,je=new this(p);++ge<z;)De(j[ge]);return je;function De(d){Q.resolve(d).then(function(qe){J||(J=!0,m.resolve(je,qe))},function(qe){J||(J=!0,m.reject(je,qe))})}}},{1:1}],3:[function(s,o,c){(function(u){"use strict";typeof u.Promise!="function"&&(u.Promise=s(2))}).call(this,typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{})},{2:2}],4:[function(s,o,c){"use strict";var u=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(g){return typeof g}:function(g){return g&&typeof Symbol=="function"&&g.constructor===Symbol&&g!==Symbol.prototype?"symbol":typeof g};function p(g,S){if(!(g instanceof S))throw new TypeError("Cannot call a class as a function")}function m(){try{if(typeof indexedDB<"u")return indexedDB;if(typeof webkitIndexedDB<"u")return webkitIndexedDB;if(typeof mozIndexedDB<"u")return mozIndexedDB;if(typeof OIndexedDB<"u")return OIndexedDB;if(typeof msIndexedDB<"u")return msIndexedDB}catch{return}}var h=m();function y(){try{if(!h||!h.open)return!1;var g=typeof openDatabase<"u"&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),S=typeof fetch=="function"&&fetch.toString().indexOf("[native code")!==-1;return(!g||S)&&typeof indexedDB<"u"&&typeof IDBKeyRange<"u"}catch{return!1}}function E(g,S){g=g||[],S=S||{};try{return new Blob(g,S)}catch(O){if(O.name!=="TypeError")throw O;for(var I=typeof BlobBuilder<"u"?BlobBuilder:typeof MSBlobBuilder<"u"?MSBlobBuilder:typeof MozBlobBuilder<"u"?MozBlobBuilder:WebKitBlobBuilder,D=new I,C=0;C<g.length;C+=1)D.append(g[C]);return D.getBlob(S.type)}}typeof Promise>"u"&&s(3);var v=Promise;function _(g,S){S&&g.then(function(I){S(null,I)},function(I){S(I)})}function x(g,S,I){typeof S=="function"&&g.then(S),typeof I=="function"&&g.catch(I)}function P(g){return typeof g!="string"&&(console.warn(g+" used as a key, but it is not a string."),g=String(g)),g}function B(){if(arguments.length&&typeof arguments[arguments.length-1]=="function")return arguments[arguments.length-1]}var U="local-forage-detect-blob-support",R=void 0,G={},ue=Object.prototype.toString,Me="readonly",j="readwrite";function Q(g){for(var S=g.length,I=new ArrayBuffer(S),D=new Uint8Array(I),C=0;C<S;C++)D[C]=g.charCodeAt(C);return I}function z(g){return new v(function(S){var I=g.transaction(U,j),D=E([""]);I.objectStore(U).put(D,"key"),I.onabort=function(C){C.preventDefault(),C.stopPropagation(),S(!1)},I.oncomplete=function(){var C=navigator.userAgent.match(/Chrome\/(\d+)/),O=navigator.userAgent.match(/Edge\//);S(O||!C||parseInt(C[1],10)>=43)}}).catch(function(){return!1})}function J(g){return typeof R=="boolean"?v.resolve(R):z(g).then(function(S){return R=S,R})}function ge(g){var S=G[g.name],I={};I.promise=new v(function(D,C){I.resolve=D,I.reject=C}),S.deferredOperations.push(I),S.dbReady?S.dbReady=S.dbReady.then(function(){return I.promise}):S.dbReady=I.promise}function je(g){var S=G[g.name],I=S.deferredOperations.pop();if(I)return I.resolve(),I.promise}function De(g,S){var I=G[g.name],D=I.deferredOperations.pop();if(D)return D.reject(S),D.promise}function d(g,S){return new v(function(I,D){if(G[g.name]=G[g.name]||Wr(),g.db)if(S)ge(g),g.db.close();else return I(g.db);var C=[g.name];S&&C.push(g.version);var O=h.open.apply(h,C);S&&(O.onupgradeneeded=function(L){var $=O.result;try{$.createObjectStore(g.storeName),L.oldVersion<=1&&$.createObjectStore(U)}catch(V){if(V.name==="ConstraintError")console.warn('The database "'+g.name+'" has been upgraded from version '+L.oldVersion+" to version "+L.newVersion+', but the storage "'+g.storeName+'" already exists.');else throw V}}),O.onerror=function(L){L.preventDefault(),D(O.error)},O.onsuccess=function(){var L=O.result;L.onversionchange=function($){$.target.close()},I(L),je(g)}})}function qe(g){return d(g,!1)}function ve(g){return d(g,!0)}function gt(g,S){if(!g.db)return!0;var I=!g.db.objectStoreNames.contains(g.storeName),D=g.version<g.db.version,C=g.version>g.db.version;if(D&&(g.version!==S&&console.warn('The database "'+g.name+`" can't be downgraded from version `+g.db.version+" to version "+g.version+"."),g.version=g.db.version),C||I){if(I){var O=g.db.version+1;O>g.version&&(g.version=O)}return!0}return!1}function se(g){return new v(function(S,I){var D=new FileReader;D.onerror=I,D.onloadend=function(C){var O=btoa(C.target.result||"");S({__local_forage_encoded_blob:!0,data:O,type:g.type})},D.readAsBinaryString(g)})}function ie(g){var S=Q(atob(g.data));return E([S],{type:g.type})}function lt(g){return g&&g.__local_forage_encoded_blob}function er(g){var S=this,I=S._initReady().then(function(){var D=G[S._dbInfo.name];if(D&&D.dbReady)return D.dbReady});return x(I,g,g),I}function lr(g){ge(g);for(var S=G[g.name],I=S.forages,D=0;D<I.length;D++){var C=I[D];C._dbInfo.db&&(C._dbInfo.db.close(),C._dbInfo.db=null)}return g.db=null,qe(g).then(function(O){return g.db=O,gt(g)?ve(g):O}).then(function(O){g.db=S.db=O;for(var L=0;L<I.length;L++)I[L]._dbInfo.db=O}).catch(function(O){throw De(g,O),O})}function yt(g,S,I,D){D===void 0&&(D=1);try{var C=g.db.transaction(g.storeName,S);I(null,C)}catch(O){if(D>0&&(!g.db||O.name==="InvalidStateError"||O.name==="NotFoundError"))return v.resolve().then(function(){if(!g.db||O.name==="NotFoundError"&&!g.db.objectStoreNames.contains(g.storeName)&&g.version<=g.db.version)return g.db&&(g.version=g.db.version+1),ve(g)}).then(function(){return lr(g).then(function(){yt(g,S,I,D-1)})}).catch(I);I(O)}}function Wr(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function Fn(g){var S=this,I={db:null};if(g)for(var D in g)I[D]=g[D];var C=G[I.name];C||(C=Wr(),G[I.name]=C),C.forages.push(S),S._initReady||(S._initReady=S.ready,S.ready=er);var O=[];function L(){return v.resolve()}for(var $=0;$<C.forages.length;$++){var V=C.forages[$];V!==S&&O.push(V._initReady().catch(L))}var H=C.forages.slice(0);return v.all(O).then(function(){return I.db=C.db,qe(I)}).then(function(F){return I.db=F,gt(I,S._defaultConfig.version)?ve(I):F}).then(function(F){I.db=C.db=F,S._dbInfo=I;for(var Y=0;Y<H.length;Y++){var he=H[Y];he!==S&&(he._dbInfo.db=I.db,he._dbInfo.version=I.version)}})}function rn(g,S){var I=this;g=P(g);var D=new v(function(C,O){I.ready().then(function(){yt(I._dbInfo,Me,function(L,$){if(L)return O(L);try{var V=$.objectStore(I._dbInfo.storeName),H=V.get(g);H.onsuccess=function(){var F=H.result;F===void 0&&(F=null),lt(F)&&(F=ie(F)),C(F)},H.onerror=function(){O(H.error)}}catch(F){O(F)}})}).catch(O)});return _(D,S),D}function Qn(g,S){var I=this,D=new v(function(C,O){I.ready().then(function(){yt(I._dbInfo,Me,function(L,$){if(L)return O(L);try{var V=$.objectStore(I._dbInfo.storeName),H=V.openCursor(),F=1;H.onsuccess=function(){var Y=H.result;if(Y){var he=Y.value;lt(he)&&(he=ie(he));var Ve=g(he,Y.key,F++);Ve!==void 0?C(Ve):Y.continue()}else C()},H.onerror=function(){O(H.error)}}catch(Y){O(Y)}})}).catch(O)});return _(D,S),D}function Vi(g,S,I){var D=this;g=P(g);var C=new v(function(O,L){var $;D.ready().then(function(){return $=D._dbInfo,ue.call(S)==="[object Blob]"?J($.db).then(function(V){return V?S:se(S)}):S}).then(function(V){yt(D._dbInfo,j,function(H,F){if(H)return L(H);try{var Y=F.objectStore(D._dbInfo.storeName);V===null&&(V=void 0);var he=Y.put(V,g);F.oncomplete=function(){V===void 0&&(V=null),O(V)},F.onabort=F.onerror=function(){var Ve=he.error?he.error:he.transaction.error;L(Ve)}}catch(Ve){L(Ve)}})}).catch(L)});return _(C,I),C}function Hn(g,S){var I=this;g=P(g);var D=new v(function(C,O){I.ready().then(function(){yt(I._dbInfo,j,function(L,$){if(L)return O(L);try{var V=$.objectStore(I._dbInfo.storeName),H=V.delete(g);$.oncomplete=function(){C()},$.onerror=function(){O(H.error)},$.onabort=function(){var F=H.error?H.error:H.transaction.error;O(F)}}catch(F){O(F)}})}).catch(O)});return _(D,S),D}function kn(g){var S=this,I=new v(function(D,C){S.ready().then(function(){yt(S._dbInfo,j,function(O,L){if(O)return C(O);try{var $=L.objectStore(S._dbInfo.storeName),V=$.clear();L.oncomplete=function(){D()},L.onabort=L.onerror=function(){var H=V.error?V.error:V.transaction.error;C(H)}}catch(H){C(H)}})}).catch(C)});return _(I,g),I}function vt(g){var S=this,I=new v(function(D,C){S.ready().then(function(){yt(S._dbInfo,Me,function(O,L){if(O)return C(O);try{var $=L.objectStore(S._dbInfo.storeName),V=$.count();V.onsuccess=function(){D(V.result)},V.onerror=function(){C(V.error)}}catch(H){C(H)}})}).catch(C)});return _(I,g),I}function jr(g,S){var I=this,D=new v(function(C,O){if(g<0){C(null);return}I.ready().then(function(){yt(I._dbInfo,Me,function(L,$){if(L)return O(L);try{var V=$.objectStore(I._dbInfo.storeName),H=!1,F=V.openKeyCursor();F.onsuccess=function(){var Y=F.result;if(!Y){C(null);return}g===0||H?C(Y.key):(H=!0,Y.advance(g))},F.onerror=function(){O(F.error)}}catch(Y){O(Y)}})}).catch(O)});return _(D,S),D}function Gi(g){var S=this,I=new v(function(D,C){S.ready().then(function(){yt(S._dbInfo,Me,function(O,L){if(O)return C(O);try{var $=L.objectStore(S._dbInfo.storeName),V=$.openKeyCursor(),H=[];V.onsuccess=function(){var F=V.result;if(!F){D(H);return}H.push(F.key),F.continue()},V.onerror=function(){C(V.error)}}catch(F){C(F)}})}).catch(C)});return _(I,g),I}function a(g,S){S=B.apply(this,arguments);var I=this.config();g=typeof g!="function"&&g||{},g.name||(g.name=g.name||I.name,g.storeName=g.storeName||I.storeName);var D=this,C;if(!g.name)C=v.reject("Invalid arguments");else{var O=g.name===I.name&&D._dbInfo.db,L=O?v.resolve(D._dbInfo.db):qe(g).then(function($){var V=G[g.name],H=V.forages;V.db=$;for(var F=0;F<H.length;F++)H[F]._dbInfo.db=$;return $});g.storeName?C=L.then(function($){if($.objectStoreNames.contains(g.storeName)){var V=$.version+1;ge(g);var H=G[g.name],F=H.forages;$.close();for(var Y=0;Y<F.length;Y++){var he=F[Y];he._dbInfo.db=null,he._dbInfo.version=V}var Ve=new v(function(Ae,ut){var Ge=h.open(g.name,V);Ge.onerror=function(Ht){var Tc=Ge.result;Tc.close(),ut(Ht)},Ge.onupgradeneeded=function(){var Ht=Ge.result;Ht.deleteObjectStore(g.storeName)},Ge.onsuccess=function(){var Ht=Ge.result;Ht.close(),Ae(Ht)}});return Ve.then(function(Ae){H.db=Ae;for(var ut=0;ut<F.length;ut++){var Ge=F[ut];Ge._dbInfo.db=Ae,je(Ge._dbInfo)}}).catch(function(Ae){throw(De(g,Ae)||v.resolve()).catch(function(){}),Ae})}}):C=L.then(function($){ge(g);var V=G[g.name],H=V.forages;$.close();for(var F=0;F<H.length;F++){var Y=H[F];Y._dbInfo.db=null}var he=new v(function(Ve,Ae){var ut=h.deleteDatabase(g.name);ut.onerror=function(){var Ge=ut.result;Ge&&Ge.close(),Ae(ut.error)},ut.onblocked=function(){console.warn('dropInstance blocked for database "'+g.name+'" until all open connections are closed')},ut.onsuccess=function(){var Ge=ut.result;Ge&&Ge.close(),Ve(Ge)}});return he.then(function(Ve){V.db=Ve;for(var Ae=0;Ae<H.length;Ae++){var ut=H[Ae];je(ut._dbInfo)}}).catch(function(Ve){throw(De(g,Ve)||v.resolve()).catch(function(){}),Ve})})}return _(C,S),C}var l={_driver:"asyncStorage",_initStorage:Fn,_support:y(),iterate:Qn,getItem:rn,setItem:Vi,removeItem:Hn,clear:kn,length:vt,key:jr,keys:Gi,dropInstance:a};function f(){return typeof openDatabase=="function"}var T="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",A="~~local_forage_type~",M=/^~~local_forage_type~([^~]+)~/,W="__lfsc__:",be=W.length,me="arbf",ye="blob",$e="si08",q="ui08",ae="uic8",Z="si16",Te="si32",Dt="ur16",Nt="ui32",Ie="fl32",ne="fl64",Ft=be+me.length,Wi=Object.prototype.toString;function ls(g){var S=g.length*.75,I=g.length,D,C=0,O,L,$,V;g[g.length-1]==="="&&(S--,g[g.length-2]==="="&&S--);var H=new ArrayBuffer(S),F=new Uint8Array(H);for(D=0;D<I;D+=4)O=T.indexOf(g[D]),L=T.indexOf(g[D+1]),$=T.indexOf(g[D+2]),V=T.indexOf(g[D+3]),F[C++]=O<<2|L>>4,F[C++]=(L&15)<<4|$>>2,F[C++]=($&3)<<6|V&63;return H}function Qo(g){var S=new Uint8Array(g),I="",D;for(D=0;D<S.length;D+=3)I+=T[S[D]>>2],I+=T[(S[D]&3)<<4|S[D+1]>>4],I+=T[(S[D+1]&15)<<2|S[D+2]>>6],I+=T[S[D+2]&63];return S.length%3===2?I=I.substring(0,I.length-1)+"=":S.length%3===1&&(I=I.substring(0,I.length-2)+"=="),I}function Kh(g,S){var I="";if(g&&(I=Wi.call(g)),g&&(I==="[object ArrayBuffer]"||g.buffer&&Wi.call(g.buffer)==="[object ArrayBuffer]")){var D,C=W;g instanceof ArrayBuffer?(D=g,C+=me):(D=g.buffer,I==="[object Int8Array]"?C+=$e:I==="[object Uint8Array]"?C+=q:I==="[object Uint8ClampedArray]"?C+=ae:I==="[object Int16Array]"?C+=Z:I==="[object Uint16Array]"?C+=Dt:I==="[object Int32Array]"?C+=Te:I==="[object Uint32Array]"?C+=Nt:I==="[object Float32Array]"?C+=Ie:I==="[object Float64Array]"?C+=ne:S(new Error("Failed to get type for BinaryArray"))),S(C+Qo(D))}else if(I==="[object Blob]"){var O=new FileReader;O.onload=function(){var L=A+g.type+"~"+Qo(this.result);S(W+ye+L)},O.readAsArrayBuffer(g)}else try{S(JSON.stringify(g))}catch(L){console.error("Couldn't convert value into a JSON string: ",g),S(null,L)}}function Yh(g){if(g.substring(0,be)!==W)return JSON.parse(g);var S=g.substring(Ft),I=g.substring(be,Ft),D;if(I===ye&&M.test(S)){var C=S.match(M);D=C[1],S=S.substring(C[0].length)}var O=ls(S);switch(I){case me:return O;case ye:return E([O],{type:D});case $e:return new Int8Array(O);case q:return new Uint8Array(O);case ae:return new Uint8ClampedArray(O);case Z:return new Int16Array(O);case Dt:return new Uint16Array(O);case Te:return new Int32Array(O);case Nt:return new Uint32Array(O);case Ie:return new Float32Array(O);case ne:return new Float64Array(O);default:throw new Error("Unkown type: "+I)}}var Sa={serialize:Kh,deserialize:Yh,stringToBuffer:ls,bufferToString:Qo};function Qu(g,S,I,D){g.executeSql("CREATE TABLE IF NOT EXISTS "+S.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],I,D)}function zh(g){var S=this,I={db:null};if(g)for(var D in g)I[D]=typeof g[D]!="string"?g[D].toString():g[D];var C=new v(function(O,L){try{I.db=openDatabase(I.name,String(I.version),I.description,I.size)}catch($){return L($)}I.db.transaction(function($){Qu($,I,function(){S._dbInfo=I,O()},function(V,H){L(H)})},L)});return I.serializer=Sa,C}function $n(g,S,I,D,C,O){g.executeSql(I,D,C,function(L,$){$.code===$.SYNTAX_ERR?L.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[S.storeName],function(V,H){H.rows.length?O(V,$):Qu(V,S,function(){V.executeSql(I,D,C,O)},O)},O):O(L,$)},O)}function Xh(g,S){var I=this;g=P(g);var D=new v(function(C,O){I.ready().then(function(){var L=I._dbInfo;L.db.transaction(function($){$n($,L,"SELECT * FROM "+L.storeName+" WHERE key = ? LIMIT 1",[g],function(V,H){var F=H.rows.length?H.rows.item(0).value:null;F&&(F=L.serializer.deserialize(F)),C(F)},function(V,H){O(H)})})}).catch(O)});return _(D,S),D}function Jh(g,S){var I=this,D=new v(function(C,O){I.ready().then(function(){var L=I._dbInfo;L.db.transaction(function($){$n($,L,"SELECT * FROM "+L.storeName,[],function(V,H){for(var F=H.rows,Y=F.length,he=0;he<Y;he++){var Ve=F.item(he),Ae=Ve.value;if(Ae&&(Ae=L.serializer.deserialize(Ae)),Ae=g(Ae,Ve.key,he+1),Ae!==void 0){C(Ae);return}}C()},function(V,H){O(H)})})}).catch(O)});return _(D,S),D}function Zu(g,S,I,D){var C=this;g=P(g);var O=new v(function(L,$){C.ready().then(function(){S===void 0&&(S=null);var V=S,H=C._dbInfo;H.serializer.serialize(S,function(F,Y){Y?$(Y):H.db.transaction(function(he){$n(he,H,"INSERT OR REPLACE INTO "+H.storeName+" (key, value) VALUES (?, ?)",[g,F],function(){L(V)},function(Ve,Ae){$(Ae)})},function(he){if(he.code===he.QUOTA_ERR){if(D>0){L(Zu.apply(C,[g,V,I,D-1]));return}$(he)}})})}).catch($)});return _(O,I),O}function Qh(g,S,I){return Zu.apply(this,[g,S,I,1])}function Zh(g,S){var I=this;g=P(g);var D=new v(function(C,O){I.ready().then(function(){var L=I._dbInfo;L.db.transaction(function($){$n($,L,"DELETE FROM "+L.storeName+" WHERE key = ?",[g],function(){C()},function(V,H){O(H)})})}).catch(O)});return _(D,S),D}function tp(g){var S=this,I=new v(function(D,C){S.ready().then(function(){var O=S._dbInfo;O.db.transaction(function(L){$n(L,O,"DELETE FROM "+O.storeName,[],function(){D()},function($,V){C(V)})})}).catch(C)});return _(I,g),I}function rp(g){var S=this,I=new v(function(D,C){S.ready().then(function(){var O=S._dbInfo;O.db.transaction(function(L){$n(L,O,"SELECT COUNT(key) as c FROM "+O.storeName,[],function($,V){var H=V.rows.item(0).c;D(H)},function($,V){C(V)})})}).catch(C)});return _(I,g),I}function np(g,S){var I=this,D=new v(function(C,O){I.ready().then(function(){var L=I._dbInfo;L.db.transaction(function($){$n($,L,"SELECT key FROM "+L.storeName+" WHERE id = ? LIMIT 1",[g+1],function(V,H){var F=H.rows.length?H.rows.item(0).key:null;C(F)},function(V,H){O(H)})})}).catch(O)});return _(D,S),D}function ip(g){var S=this,I=new v(function(D,C){S.ready().then(function(){var O=S._dbInfo;O.db.transaction(function(L){$n(L,O,"SELECT key FROM "+O.storeName,[],function($,V){for(var H=[],F=0;F<V.rows.length;F++)H.push(V.rows.item(F).key);D(H)},function($,V){C(V)})})}).catch(C)});return _(I,g),I}function sp(g){return new v(function(S,I){g.transaction(function(D){D.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'",[],function(C,O){for(var L=[],$=0;$<O.rows.length;$++)L.push(O.rows.item($).name);S({db:g,storeNames:L})},function(C,O){I(O)})},function(D){I(D)})})}function op(g,S){S=B.apply(this,arguments);var I=this.config();g=typeof g!="function"&&g||{},g.name||(g.name=g.name||I.name,g.storeName=g.storeName||I.storeName);var D=this,C;return g.name?C=new v(function(O){var L;g.name===I.name?L=D._dbInfo.db:L=openDatabase(g.name,"","",0),g.storeName?O({db:L,storeNames:[g.storeName]}):O(sp(L))}).then(function(O){return new v(function(L,$){O.db.transaction(function(V){function H(Ve){return new v(function(Ae,ut){V.executeSql("DROP TABLE IF EXISTS "+Ve,[],function(){Ae()},function(Ge,Ht){ut(Ht)})})}for(var F=[],Y=0,he=O.storeNames.length;Y<he;Y++)F.push(H(O.storeNames[Y]));v.all(F).then(function(){L()}).catch(function(Ve){$(Ve)})},function(V){$(V)})})}):C=v.reject("Invalid arguments"),_(C,S),C}var hp={_driver:"webSQLStorage",_initStorage:zh,_support:f(),iterate:Jh,getItem:Xh,setItem:Qh,removeItem:Zh,clear:tp,length:rp,key:np,keys:ip,dropInstance:op};function pp(){try{return typeof localStorage<"u"&&"setItem"in localStorage&&!!localStorage.setItem}catch{return!1}}function wh(g,S){var I=g.name+"/";return g.storeName!==S.storeName&&(I+=g.storeName+"/"),I}function dp(){var g="_localforage_support_test";try{return localStorage.setItem(g,!0),localStorage.removeItem(g),!1}catch{return!0}}function fp(){return!dp()||localStorage.length>0}function gp(g){var S=this,I={};if(g)for(var D in g)I[D]=g[D];return I.keyPrefix=wh(g,S._defaultConfig),fp()?(S._dbInfo=I,I.serializer=Sa,v.resolve()):v.reject()}function mp(g){var S=this,I=S.ready().then(function(){for(var D=S._dbInfo.keyPrefix,C=localStorage.length-1;C>=0;C--){var O=localStorage.key(C);O.indexOf(D)===0&&localStorage.removeItem(O)}});return _(I,g),I}function yp(g,S){var I=this;g=P(g);var D=I.ready().then(function(){var C=I._dbInfo,O=localStorage.getItem(C.keyPrefix+g);return O&&(O=C.serializer.deserialize(O)),O});return _(D,S),D}function vp(g,S){var I=this,D=I.ready().then(function(){for(var C=I._dbInfo,O=C.keyPrefix,L=O.length,$=localStorage.length,V=1,H=0;H<$;H++){var F=localStorage.key(H);if(F.indexOf(O)===0){var Y=localStorage.getItem(F);if(Y&&(Y=C.serializer.deserialize(Y)),Y=g(Y,F.substring(L),V++),Y!==void 0)return Y}}});return _(D,S),D}function wp(g,S){var I=this,D=I.ready().then(function(){var C=I._dbInfo,O;try{O=localStorage.key(g)}catch{O=null}return O&&(O=O.substring(C.keyPrefix.length)),O});return _(D,S),D}function bp(g){var S=this,I=S.ready().then(function(){for(var D=S._dbInfo,C=localStorage.length,O=[],L=0;L<C;L++){var $=localStorage.key(L);$.indexOf(D.keyPrefix)===0&&O.push($.substring(D.keyPrefix.length))}return O});return _(I,g),I}function _p(g){var S=this,I=S.keys().then(function(D){return D.length});return _(I,g),I}function Ep(g,S){var I=this;g=P(g);var D=I.ready().then(function(){var C=I._dbInfo;localStorage.removeItem(C.keyPrefix+g)});return _(D,S),D}function Sp(g,S,I){var D=this;g=P(g);var C=D.ready().then(function(){S===void 0&&(S=null);var O=S;return new v(function(L,$){var V=D._dbInfo;V.serializer.serialize(S,function(H,F){if(F)$(F);else try{localStorage.setItem(V.keyPrefix+g,H),L(O)}catch(Y){(Y.name==="QuotaExceededError"||Y.name==="NS_ERROR_DOM_QUOTA_REACHED")&&$(Y),$(Y)}})})});return _(C,I),C}function Ip(g,S){if(S=B.apply(this,arguments),g=typeof g!="function"&&g||{},!g.name){var I=this.config();g.name=g.name||I.name,g.storeName=g.storeName||I.storeName}var D=this,C;return g.name?C=new v(function(O){g.storeName?O(wh(g,D._defaultConfig)):O(g.name+"/")}).then(function(O){for(var L=localStorage.length-1;L>=0;L--){var $=localStorage.key(L);$.indexOf(O)===0&&localStorage.removeItem($)}}):C=v.reject("Invalid arguments"),_(C,S),C}var Tp={_driver:"localStorageWrapper",_initStorage:gp,_support:pp(),iterate:vp,getItem:yp,setItem:Sp,removeItem:Ep,clear:mp,length:_p,key:wp,keys:bp,dropInstance:Ip},Cp=function(g,S){return g===S||typeof g=="number"&&typeof S=="number"&&isNaN(g)&&isNaN(S)},Np=function(g,S){for(var I=g.length,D=0;D<I;){if(Cp(g[D],S))return!0;D++}return!1},bh=Array.isArray||function(g){return Object.prototype.toString.call(g)==="[object Array]"},eo={},Eh={},Yi={INDEXEDDB:l,WEBSQL:hp,LOCALSTORAGE:Tp},xp=[Yi.INDEXEDDB._driver,Yi.WEBSQL._driver,Yi.LOCALSTORAGE._driver],zo=["dropInstance"],qa=["clear","getItem","iterate","key","keys","length","removeItem","setItem"].concat(zo),Dp={description:"",driver:xp.slice(),name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1};function Op(g,S){g[S]=function(){var I=arguments;return g.ready().then(function(){return g[S].apply(g,I)})}}function Ic(){for(var g=1;g<arguments.length;g++){var S=arguments[g];if(S)for(var I in S)S.hasOwnProperty(I)&&(bh(S[I])?arguments[0][I]=S[I].slice():arguments[0][I]=S[I])}return arguments[0]}var Ap=function(){function g(S){p(this,g);for(var I in Yi)if(Yi.hasOwnProperty(I)){var D=Yi[I],C=D._driver;this[I]=C,eo[C]||this.defineDriver(D)}this._defaultConfig=Ic({},Dp),this._config=Ic({},this._defaultConfig,S),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch(function(){})}return g.prototype.config=function(S){if((typeof S>"u"?"undefined":u(S))==="object"){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(var I in S){if(I==="storeName"&&(S[I]=S[I].replace(/\W/g,"_")),I==="version"&&typeof S[I]!="number")return new Error("Database version must be a number.");this._config[I]=S[I]}return"driver"in S&&S.driver?this.setDriver(this._config.driver):!0}else return typeof S=="string"?this._config[S]:this._config},g.prototype.defineDriver=function(S,I,D){var C=new v(function(O,L){try{var $=S._driver,V=new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");if(!S._driver){L(V);return}for(var H=qa.concat("_initStorage"),F=0,Y=H.length;F<Y;F++){var he=H[F],Ve=!Np(zo,he);if((Ve||S[he])&&typeof S[he]!="function"){L(V);return}}var Ae=function(){for(var Ge=function(Pp){return function(){var Rp=new Error("Method "+Pp+" is not implemented by the current driver"),Sh=v.reject(Rp);return _(Sh,arguments[arguments.length-1]),Sh}},Ht=0,Tc=zo.length;Ht<Tc;Ht++){var Cc=zo[Ht];S[Cc]||(S[Cc]=Ge(Cc))}};Ae();var ut=function(Ge){eo[$]&&console.info("Redefining LocalForage driver: "+$),eo[$]=S,Eh[$]=Ge,O()};"_support"in S?S._support&&typeof S._support=="function"?S._support().then(ut,L):ut(!!S._support):ut(!0)}catch(Ge){L(Ge)}});return x(C,I,D),C},g.prototype.driver=function(){return this._driver||null},g.prototype.getDriver=function(S,I,D){var C=eo[S]?v.resolve(eo[S]):v.reject(new Error("Driver not found."));return x(C,I,D),C},g.prototype.getSerializer=function(S){var I=v.resolve(Sa);return x(I,S),I},g.prototype.ready=function(S){var I=this,D=I._driverSet.then(function(){return I._ready===null&&(I._ready=I._initDriver()),I._ready});return x(D,S,S),D},g.prototype.setDriver=function(S,I,D){var C=this;bh(S)||(S=[S]);var O=this._getSupportedDrivers(S);function L(){C._config.driver=C.driver()}function $(F){return C._extend(F),L(),C._ready=C._initStorage(C._config),C._ready}function V(F){return function(){var Y=0;function he(){for(;Y<F.length;){var Ve=F[Y];return Y++,C._dbInfo=null,C._ready=null,C.getDriver(Ve).then($).catch(he)}L();var Ae=new Error("No available storage method found.");return C._driverSet=v.reject(Ae),C._driverSet}return he()}}var H=this._driverSet!==null?this._driverSet.catch(function(){return v.resolve()}):v.resolve();return this._driverSet=H.then(function(){var F=O[0];return C._dbInfo=null,C._ready=null,C.getDriver(F).then(function(Y){C._driver=Y._driver,L(),C._wrapLibraryMethodsWithReady(),C._initDriver=V(O)})}).catch(function(){L();var F=new Error("No available storage method found.");return C._driverSet=v.reject(F),C._driverSet}),x(this._driverSet,I,D),this._driverSet},g.prototype.supports=function(S){return!!Eh[S]},g.prototype._extend=function(S){Ic(this,S)},g.prototype._getSupportedDrivers=function(S){for(var I=[],D=0,C=S.length;D<C;D++){var O=S[D];this.supports(O)&&I.push(O)}return I},g.prototype._wrapLibraryMethodsWithReady=function(){for(var S=0,I=qa.length;S<I;S++)Op(this,qa[S])},g.prototype.createInstance=function(S){return new g(S)},g}(),kp=new Ap;o.exports=kp},{3:3}]},{},[4])(4)})}),Zn=ur(e=>{"use strict";var t=e&&e.__awaiter||function(n,i,s,o){function c(u){return u instanceof s?u:new s(function(p){p(u)})}return new(s||(s=Promise))(function(u,p){function m(E){try{y(o.next(E))}catch(v){p(v)}}function h(E){try{y(o.throw(E))}catch(v){p(v)}}function y(E){E.done?u(E.value):c(E.value).then(m,h)}y((o=o.apply(n,i||[])).next())})};Object.defineProperty(e,"__esModule",{value:!0}),e.JSUtils=void 0;var r=class{static isObject(n){return typeof n=="object"&&!Array.isArray(n)&&n!==null}static parseToAny(n){try{return JSON.parse(n.toString())}catch{}return n.toString().match(this.ISO_WITHOUT_MS_REGEX)?new Date(n.toString()):n}static sleep(n){return t(this,void 0,void 0,function*(){return new Promise(i=>setTimeout(i,n))})}static hasKeys(n){return n?Object.keys(n).length>=1:!1}static convertObjectToArray(n,i){return i.reduce((s,o)=>(n.hasOwnProperty(o)&&n[o]!=null&&s.push({[o]:n[o]}),s),[])}static removeNullUndefinedKeys(n){return Object.keys(n).reduce((i,s)=>(n[s]!==null&&n[s]!==void 0&&(i[s]=n[s]),i),{})}static stringify(n){return JSON.stringify(n,function(i,s){return s===void 0?null:s})}};e.JSUtils=r,r.ISO_WITHOUT_MS_REGEX=new RegExp(/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)/)}),Fu=ur(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.URLBuilder=void 0;var t=function(){function r(n){try{this.base=new URL(n),this.params=new URLSearchParams(this.base.search.slice(1))}catch(i){console.error("Un-parsable URL",i)}}return r.prototype.appendQueryParam=function(n,i){this.params.append(n,i?i.toString():"")},r.prototype.clearQueryParams=function(){return this.params=new URLSearchParams,this},r.prototype.deleteQueryParam=function(n){this.params.delete(n)},r.prototype.getBase=function(){return this.base},r.prototype.getPath=function(){return this.base.pathname},r.prototype.getHostname=function(){return this.base.hostname},r.prototype.getParams=function(){return this.params},r.prototype.getQueryParam=function(n){if(!this.params)return"";var i=this.params.get(n);return!i||i==="undefined"||i==="null"?void 0:i},r.prototype.getQueryString=function(){return this.params.toString()},r.prototype.setPath=function(n){return this.base.pathname=n,this},r.prototype.setQueryParam=function(n,i){return this.params.set(n,i?i.toString():""),this},r.prototype.setQueryString=function(n){if(n)return n[0]==="?"&&(n=n.slice(1)),this.params=new URLSearchParams(n),this},r.prototype.toString=function(){var n=this.params.toString();return n===""?this.base.search="":this.base.search="?"+n,this.base.toString()},r}();e.URLBuilder=t}),rh=ur((e,t)=>{"use strict";(function(r,n){typeof e=="object"&&typeof t<"u"?t.exports=n():typeof define=="function"&&define.amd?define(n):(r=typeof globalThis<"u"?globalThis:r||self,r.fetchRetry=n())})(e,function(){"use strict";var r=function(s,o){if(o=o||{},typeof s!="function")throw new i("fetch must be a function");if(typeof o!="object")throw new i("defaults must be an object");if(o.retries!==void 0&&!n(o.retries))throw new i("retries must be a positive integer");if(o.retryDelay!==void 0&&!n(o.retryDelay)&&typeof o.retryDelay!="function")throw new i("retryDelay must be a positive integer or a function returning a positive integer");if(o.retryOn!==void 0&&!Array.isArray(o.retryOn)&&typeof o.retryOn!="function")throw new i("retryOn property expects an array or function");var c={retries:3,retryDelay:1e3,retryOn:[]};return o=Object.assign(c,o),function(u,p){var m=o.retries,h=o.retryDelay,y=o.retryOn;if(p&&p.retries!==void 0)if(n(p.retries))m=p.retries;else throw new i("retries must be a positive integer");if(p&&p.retryDelay!==void 0)if(n(p.retryDelay)||typeof p.retryDelay=="function")h=p.retryDelay;else throw new i("retryDelay must be a positive integer or a function returning a positive integer");if(p&&p.retryOn)if(Array.isArray(p.retryOn)||typeof p.retryOn=="function")y=p.retryOn;else throw new i("retryOn property expects an array or function");return new Promise(function(E,v){var _=function(P){var B=typeof Request<"u"&&u instanceof Request?u.clone():u;s(B,p).then(function(U){if(Array.isArray(y)&&y.indexOf(U.status)===-1)E(U);else if(typeof y=="function")try{return Promise.resolve(y(P,null,U)).then(function(R){R?x(P,null,U):E(U)}).catch(v)}catch(R){v(R)}else P<m?x(P,null,U):E(U)}).catch(function(U){if(typeof y=="function")try{Promise.resolve(y(P,U,null)).then(function(R){R?x(P,U,null):v(U)}).catch(function(R){v(R)})}catch(R){v(R)}else P<m?x(P,U,null):v(U)})};function x(P,B,U){var R=typeof h=="function"?h(P,B,U):h;setTimeout(function(){_(++P)},R)}_(0)})}};function n(s){return Number.isInteger(s)&&s>=0}function i(s){this.name="ArgumentError",this.message=s}return r})}),up="9.3.30",N=class xc{static SDK_VERSION=up;static SDK_VERSION_CODE;static SDK="WEB";static LOG_PREFIX="CooeeSDK";static COOEE="cooee";static SESSION_STORAGE_SCROLL_ID="sleid";static IDLE_TIME_IN_SECONDS=30*60;static IN_APP_WRAPPER_NAME="cooee-wrapper";static IN_APP_CONTAINER_NAME="cooee-container";static IN_APP_DEFAULT_PADDING=15;static EVENT_SCREEN_VIEW="CE Screen View";static EVENT_APP_BACKGROUND="CE App Background";static EVENT_TRIGGER_DISPLAYED="CE Trigger Displayed";static EVENT_CAMPAIGN_HOLDOUT="CE Campaign Holdout";static EVENT_CAMPAIGN_REJECTED="CE Campaign Rejected";static EVENT_CAMPAIGN_FAILED="CE Campaign Failed";static EVENT_TRIGGER_CLOSED="CE Trigger Closed";static EVENT_SCROLL="CE Scroll";static EVENT_TRIGGER_CLICKED="CE Trigger Clicked";static EVENT_FORM_SUBMITTED="CE Form Submitted";static EVENT_ADD_TO_CART="Add To Cart";static EVENT_REMOVE_FROM_CART="Remove From Cart";static EVENT_VIEW_ITEM="View Item";static EVENT_VIEW_CART="View Cart";static EVENT_VIEW_COLLECTION="View Collection";static EVENT_BUY_NOW_CLICKED="Buy Now Clicked";static EVENT_CHECKOUT_STARTED="Checkout Started";static EVENT_REVIEW_CLICKED="Review Clicked";static EVENT_ITEM_THUMBNAIL_CLICKED="Item Thumbnail Clicked";static JS_LOAD_WHITELIST_EVENTS=[this.EVENT_VIEW_ITEM,this.EVENT_VIEW_CART,this.EVENT_VIEW_COLLECTION];static HASH_INITIATE_CHECKOUT="initiate-checkout";static HASH_OPEN_CART_DRAWER="open-cart-drawer";static CTA_EVENT="letscooee:outbound:cta";static ADD_BUNDLE_CTA_INBOUND_EVENT="letscooee:inbound:cta:add-bundle";static CTA_OPEN_CART_EVENT="letscooee:outbound:open-cart";static CTA_AFTER_REFRESH_UI="letscooee:outbound:refresh-ui";static POPUP_ACTIVITY_EVENT="letscooee:outbound:popup-activities";static THIRD_PARTY_CHECKOUT_EVENT="letscooee:outbound:third-party-initiate-checkout";static CAMPAIGN_DISPLAYED_ACTIVITY="DISPLAYED";static CAMPAIGN_CLICKED_ACTIVITY="CLICKED";static CAMPAIGN_CLOSED_ACTIVITY="CLOSED";static BLACKLISTED_PAGE_NAMES=["collection","product","cart"];static API_CALL_MAX_ATTEMPTS=3;static API_CALL_RETRY_DELAY=1e3;static PLACEHOLDER_IMAGE="https://cdn.global.letscooee.com/images/placeholders/product.png";static CART_UPDATE_BROADCAST="CART_UPDATE";static GRAPHQL_VERSION="2024-10";static GRAPHQL_API_PATH=`/api/${this.GRAPHQL_VERSION}/graphql.json`;static SHADOW_SPLITTER=":shadow";static CAMPAIGN_ATTRIBUTE="_letscooee_campaign";static CONTENT_ATTRIBUTE="_letscooee_content";static VIA="_via";static PAYMENT_MODAL_DETAILS=[{identifier:"#flo-checkout-wrapper",gateway:"Shopflow"},{identifier:"#fastrr-main-container",gateway:"Shiprocket"},{identifier:"#gokwik-modal-wrapper",gateway:"Gokwik"},{identifier:"#zecpe",gateway:"Ecom 360"}];static{let t=xc.SDK_VERSION.split(".").map(r=>r.padStart(2,"0")).join("");xc.SDK_VERSION_CODE=parseInt(t,10)}},tr={apiURL:"https://api.sdk.letscooee.com",debug:!1,mode:"production",styleURL:`https://cdn.jsdelivr.net/npm/@letscooee/web-sdk@${N.SDK_VERSION}/dist/widget-sdk.min.css`},Ot=Ce(nn()),b=class{static log(...e){Ot.default.info(...e)}static debug(...e){Ot.default.debug(...e)}static error(...e){Ot.default.error(...e)}static warn(...e){Ot.default.warn(...e)}static info(...e){Ot.default.info(...e)}static trace(...e){Ot.default.trace(...e)}static configure(e=N.LOG_PREFIX){Ot.default.useDefaults({formatter:function(r){r.unshift(`${e} (v${N.SDK_VERSION}):`)}});let t=this.getDebugParam();(t==="1"||t==="on")&&(localStorage.cooeeLogLevel="TRACE"),localStorage.cooeeLogLevel?Ot.default.setLevel(Ot.default[localStorage.cooeeLogLevel]):Ot.default.setLevel(tr.debug?Ot.default.TRACE:Ot.default.OFF)}static getDebugParam(){return new URL(location.href).searchParams?.get("cooee-debug")}static logBrand(){let e=`
2
2
  display: inline-block;
3
3
  font-size: 14px;
4
4
  background: linear-gradient(90deg, #d52dc8 25%, #2179e2 82%);
@@ -67,4 +67,4 @@ mutation cartDiscountCodesUpdate($cartId: ID!, $discountCodes: [String!]) {
67
67
  <span class="${n}"
68
68
  style="background-color: ${t.pagination.color?.rgba};">
69
69
  </span>
70
- `},navigation:{nextEl:e.querySelector(".swiper-button-next"),prevEl:e.querySelector(".swiper-button-prev")},autoplay:t.autoplay?.enabled?{delay:t.autoplay?.delay,disableOnInteraction:!1}:!1,autoHeight:!0});return e.style.setProperty("--swiper-navigation-size",`${t.navigation.size}px`),r}function uc(e,t,r){let n={color:e.navigation.color?.rgba};return e.pagination.enabled&&(n.transform="translateY(-25%)"),k("div",{class:"swiper-container",ref:t,children:[k("div",{class:"swiper-wrapper",children:r()}),e.navigation.enabled&&k("div",{class:"swiper-button-next",style:n,children:k("span",{})}),e.navigation.enabled&&k("div",{class:"swiper-button-prev",style:n,children:k("span",{})}),e.pagination.enabled&&k("div",{className:"swiper-pagination",style:{bottom:0,top:"unset",position:"relative",color:e.pagination.color?.rgba}})]})}var $o=class extends xe{swiperRef=null;swiperInstance=null;configuration;gap;constructor(e,t){super(e,t),this.configuration=this.renderer.isMobile()?this.props.element.conf.sm:this.props.element.conf.lg,this.gap=(this.configuration.gap??15)+"px"}componentDidMount(){this.props.element.conf[this.deviceTypeKey].disp===2&&cc().then(()=>{this.swiperInstance=lc(this.swiperRef,this.props.element.conf[this.deviceTypeKey])})}componentWillUnmount(){this.swiperInstance&&this.swiperInstance.destroy()}render(){let e=this.props.triggerContext.triggerData.items;e.splice(this.configuration.maxItems??10);let t;if(this.configuration.disp===2){let r=i=>{this.swiperRef=i},n=()=>e?.map(i=>k("div",{class:"swiper-slide",children:this.getProductFragment(i)}));t=k("div",{style:ee(w({},this.getCompiledStyles()),{display:"block"}),class:"lc-product-swiper-list",children:uc(this.configuration,r,n)})}else t=k("div",{style:this.getCompiledStyles(),class:"lc-product-list",children:e?.map((r,n)=>this.getProductFragment(r,n!==e.length-1))});return t}getComponentStyles(){let e=[0,2].includes(this.configuration.disp),t={display:e?"flex":"grid",justifyContent:"safe "+(this.mediaStyle.flex?.jc??"center"),gap:this.gap,flexDirection:this.mediaStyle.flex?.dir??"row"};if(t.flexDirection==="row"){if(e)t.maxWidth="100%",t.overflowY="auto";else if(this.configuration.disp===1){let r=this.props.triggerContext.triggerData,n=r.items.length,i;r.isBundle()?i=this.props.element.prod.symbol?.hide!==!0?n*2-1:n:i=this.props.element.conf[this.deviceTypeKey].maxInRow,t.gridTemplateColumns=`repeat(${i}, auto)`}}return t}getProductFragment(e,t=!1){return k(fr,{children:[k(Hr,{element:this.props.element.prod,item:e,triggerContext:this.props.triggerContext}),this.props.triggerContext.triggerData.isBundle()&&t&&this.props.element.prod.symbol&&!this.props.element.prod.symbol.hide&&k("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:k(xt,{element:this.props.element.prod.symbol,triggerContext:this.props.triggerContext})})]},e.mID)}},jo=class extends xe{swiperRef=null;swiperInstance=null;constructor(e,t){super(e,t)}componentDidMount(){cc().then(()=>{this.swiperInstance=lc(this.swiperRef,this.props.element.conf)})}componentWillUnmount(){this.swiperInstance&&this.swiperInstance.destroy()}render(){let e=this.props.element,t=n=>{this.swiperRef=n},r=()=>e.values?.map(n=>k("div",{class:"swiper-slide",onClick:()=>this.onClick({clickAction:this.getClickAction(n)}),children:this.renderElement(n)}));return uc(e.conf,t,r)}getComponentStyles(){return{}}renderElement(e){let t=this.valueAddedSlide(this.props.element.slide,e);switch(t?.t){case 1:return k(Mr,{element:t,triggerContext:this.props.triggerContext});case 4:return k(Fr,{elements:t.elems,element:t,triggerContext:this.props.triggerContext});default:b.warn("Unknown slide type for carousal")}}valueAddedSlide(e,t){let r=JSON.stringify(e),n=Et.render(r,{form:t});return kt.getParsedElement(JSON.parse(n))}getClickAction(e){let t=w({},this.props.element.clc),r=JSON.stringify(t),n=Et.render(r,{form:e});return JSON.parse(n)}},tn=class extends xe{constructor(e,t){super(e,t),this.setState(()=>({decoration:"unset"})),at(()=>{this.setState(()=>({showButton:!this.props.triggerContext.triggerData.isBundle()||!!this.props.triggerContext.selectedItems.length}))})}renderElement(e){if(!e.hide){if(e.t===4){let t=e;return k(Fr,{element:t,triggerContext:this.props.triggerContext,elements:t.elems})}if(e.t===61)return k(Bo,{element:e,triggerContext:this.props.triggerContext});if(e.t===3)return this.state.showButton?k(Un,{element:e,triggerContext:this.props.triggerContext}):void 0;if(e.t===2)return k(xt,{element:e,triggerContext:this.props.triggerContext});if(e.t===1)return k(Mr,{element:e,triggerContext:this.props.triggerContext});if(e.t===11)return k($o,{element:e,triggerContext:this.props.triggerContext});if(e.t===12)return k(Hr,{element:e,item:this.props.triggerContext.triggerData.items[0],triggerContext:this.props.triggerContext});if(e.t===62)return k(jo,{element:e,triggerContext:this.props.triggerContext})}}render(){return this.props.elements.map(e=>this.renderElement(e))}getComponentStyles(){return{}}},Wo=class extends xe{clickAction;isClickable;constructor(e,t){super(e,t),this.clickAction=this.props.element.clc,this.isClickable=this.clickAction?.at===4&&this.clickAction.gu?.u}componentDidMount(){at(()=>{let e=this.props.triggerContext.triggerData,t=this.props.triggerContext.selectedItems;e.calculateDiscountData(t,this.props.triggerContext.shouldGiveFBTDiscount)})}render(){return k(fr,{children:[k("div",{style:this.getCompiledStyles(),class:"lc-container",onClick:()=>{this.onClick({clickAction:this.clickAction})},children:k(tn,{elements:this.props.elements,element:this.props.element,triggerContext:this.props.triggerContext})}),this.props.triggerContext.triggerData.id==="preview"&&k("div",{class:"letscooee-preview-badge",children:["#",this.props.triggerContext.triggerData.shortID," preview"]})]})}getComponentStyles(){let e={position:"relative",overflow:"hidden",display:"block"};return this.isClickable&&(e.cursor="pointer"),e}async onClick(e){if(this.isClickable)return super.onClick(e)}},At=class as{constructor(t){this.engagementTrigger=t,this.triggerContext=new Oi(new Date,this.engagementTrigger)}static renderedEngagements=[];static engagementIDsWithTrackedDisplay=new Set;static DEBOUNCE_TIME=1e3;rootContainer;widgetElement;widget;triggerContext;observers=[];runtimeData=le.get();widgetAPIService=pe.get(cr);safeHTTPService=pe.get(fe);scrollSubscription;variation;isExclusionWithBVariation;renderSilently(){this.render().catch(t=>Be.getInstance().captureException(t,w({},this.engagementTrigger.sentryContext())))}destroy(){b.log(`${this.engagementTrigger} will be destroyed`),this.scrollSubscription?.unsubscribe(),this.observers.forEach(t=>{t?.disconnect&&t.disconnect()}),this.rootContainer?.remove(),as.engagementIDsWithTrackedDisplay.delete(this.engagementTrigger.shortID)}async render(){if(this.engagementTrigger.hasMultiplePlacement){let t=await this.getVariation();this.handleVariationResponse(t)}if(this.rootContainer=await this.getWidgetContainer(!0),!this.rootContainer){b.warn(`${this.engagementTrigger} no section found to render the widget`);return}this.widget=this.engagementTrigger.widget,await this.getVariationIfRequired(),!this.shouldStopRendering()&&(await this.startRendering(),this.attachScroll(),await this.checkAndSendEvent(),this.triggerContext.renderer=this)}isSameTrigger(t){return this.engagementTrigger.shortID===t.shortID}update(t){dh.default.log(`${this.engagementTrigger} will be updated`),this.updateItems(t.items,this.engagementTrigger.items)}shouldStopRendering(){return!this.widget&&!this.isExclusionWithBVariation}async getVariationIfRequired(){if(this.engagementTrigger.isSingleContent()||this.engagementTrigger.widget){b.log(`${this.engagementTrigger} already has required data to render widget`);return}let t=await this.observeWidgetContainerInViewport();this.handleVariationResponse(t)}handleVariationResponse(t){t&&(b.log(`${this.engagementTrigger} visitor has been assigned to variation ${t.variation}`),t.items?.length&&(this.engagementTrigger.items=t.items.map(r=>new Rt(r)),this.engagementTrigger.nonMutableItems=t.items.map(r=>new Rt(r))),t.bundleFrom&&(this.engagementTrigger.bundleFrom=new Rt(t.bundleFrom)),t.discount&&(this.engagementTrigger.discount=t.discount),t.placement&&(this.triggerContext.triggerData.placement=t.placement),t.props&&mh.JSUtils.hasKeys(t.props)&&(this.engagementTrigger.props=w(w({},this.engagementTrigger.props),t.props)),this.triggerContext.triggerData.widget=this.widget=new Ei(t.widget),this.triggerContext.triggerData.contentID=t.contentID,this.triggerContext.triggerData.variation=this.variation=t.variation,this.triggerContext.triggerData.placement=t.placement,this.isExclusionWithBVariation=this.engagementTrigger.isExclusionTesting()&&this.variation==="b",this.isExclusionWithBVariation&&(this.rootContainer.style.height="0.5px"))}addToRendered(){as.renderedEngagements.push(this)}async getVariation(){b.log(`${this.engagementTrigger} get variation`);let t={engagementID:this.engagementTrigger.engagementID,isPreview:this.engagementTrigger.id==="preview"};try{return await this.widgetAPIService.getVariation(t)}catch(r){b.error(`${this.engagementTrigger} unable to get the variation`,r);return}}async observeWidgetContainerInViewport(){if(!this.rootContainer){b.warn(`${this.engagementTrigger} No root container found to watch for viewport`);return}let t=window.innerHeight*.3,r={root:null,rootMargin:`-${t}px 0px ${t}px 0px`,threshold:0};return await this.isInViewport()?this.getVariation():new Promise(n=>{let i=new IntersectionObserver((s,o)=>{s.forEach(async c=>{if(c.isIntersecting){b.log(`${this.engagementTrigger} root container is near the viewport. Fetching variation`);let u=await this.getVariation();n(u),o.unobserve(this.rootContainer)}})},r);i.observe(this.rootContainer),this.observers.push(i)})}attachScroll(){this.scrollSubscription=On(window,"scroll").pipe(ar(as.DEBOUNCE_TIME)).subscribe(()=>{this.checkAndSendEvent()})}async checkAndSendEvent(){let t=this.engagementTrigger.shortID;if(as.engagementIDsWithTrackedDisplay.has(t)||!await this.isInViewport())return;let r={};this.triggerContext.triggerData.items?.length&&(r.promotedMIDs=this.engagementTrigger.items?.map(s=>s.mID));let n=this.isExclusionWithBVariation?N.EVENT_CAMPAIGN_HOLDOUT:N.EVENT_TRIGGER_DISPLAYED,i=new _e(n,r,this.engagementTrigger);i.name===N.EVENT_CAMPAIGN_HOLDOUT&&(i.trigger.holdout=!0),this.safeHTTPService.sendEvent(i),as.engagementIDsWithTrackedDisplay.add(t),this.scrollSubscription.unsubscribe()}generateParentElementID(){return`letscooee-${this.engagementTrigger.shortID}`}async isInViewport(){let t=(await this.getWidgetContainer())?.getBoundingClientRect();if(!t)return!1;let r=window.innerHeight||document.documentElement.clientHeight,n=(Math.min(t.bottom,r)-Math.max(t.top,0))*t.width,i=t.width*t.height,s=n/i*100;return this.engagementTrigger.isAnySplit()?s>0:s>=30}async getWidgetContainer(t){if(this.rootContainer?.isConnected)return this.rootContainer;let r=await this.createParentElementWithPlacement(t);if(r)return r;let n=`.letscooee[data-engagement-id="${this.triggerContext.triggerData.shortID}"]`;return document.querySelector(n)}async createParentElementWithPlacement(t){let r=this.engagementTrigger.placement;if(!r?.selector)return b.warn(`${this.engagementTrigger} does not have a selector`),null;let n=r.selector,i;if(n.includes(N.SHADOW_SPLITTER)){let u=n.split(N.SHADOW_SPLITTER);i=(await re.retrySelector(u[0].trim()))?.shadowRoot,n=u[1].trim(),i&&dt.injectStylesheet(tr.styleURL,i);let p=Le.get().website.commonCSS;i&&p&&dt.injectRawCSS(p,i)}b.debug(`${this.engagementTrigger} attempt to render ${r.position}-${n}`);let s=await re.retrySelector(n,10,i??document);if(!s)return b.warn(`${this.engagementTrigger} no placement found with ${n}`),null;let o=this.generateParentElementID(),c=this.getParentElement(o);if(!t)return c;switch(r.position){case Go.EngagementPlacementPosition.BEFORE:{s.parentElement?.insertBefore(c,s);break}case Go.EngagementPlacementPosition.INSIDE_FIRST:{s.insertBefore(c,s.firstChild);break}case Go.EngagementPlacementPosition.INSIDE_LAST:{s.appendChild(c);break}case Go.EngagementPlacementPosition.AFTER:default:s.parentElement?.insertBefore(c,s.nextSibling)}return c}async startRendering(){let t;try{t=await Ui.refreshItems(this.engagementTrigger)}catch(r){b.error(`${this.engagementTrigger} error refreshing the items`,r);return}if(!t?.length&&this.engagementTrigger.isProductPromoted()){b.warn(`${this.engagementTrigger} is of ${this.engagementTrigger.objective} but no product found`);return}this.engagementTrigger.items=t,this.renderContainer()}getParentElement(t,r=document){let n=r.getElementById(t);if(n)return n;let i=this.engagementTrigger.shortID;return n=document.createElement("div"),n.id=t,n.className=`letscooee letscooee-engagement engagement-${i}`,n.dataset.engagementId=i,this.engagementTrigger.id==="preview"&&(n.className+=" letscooee-preview"),n.style.display="block",n.style.minHeight="0.5px",n.style.minWidth="0.5px",n}renderContainer(){if(!this.widget)return;let t=this.rootContainer;if(this.triggerContext.triggerData.hasSwiperElement()){let r=this.rootContainer?.shadowRoot||this.rootContainer?.attachShadow({mode:"open"}),n=Le.get().website.commonCSS;n&&dt.injectRawCSS(n,r),dt.injectStylesheet(tr.styleURL,r),dt.injectStylesheet("https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css",r),t=r}ns(Ki(Wo,{element:this.widget.cont,triggerContext:this.triggerContext,elements:this.widget.elems}),t),this.addToRendered()}updateItems(t,r){let n=this.getItemDiff(t,r),i=this.getItemDiff(r,t);r.push(...n);for(let s of i)fh.ArrayUtils.remove(r,s)}getItemDiff(t,r){return t.filter(n=>!r.some(i=>i.selectedOrFirstVariant.value.mID===n.selectedOrFirstVariant.value.mID))}},Rr=class Vh extends At{static renderedEngagements=[];constructor(t){super(t)}addToRendered(){Vh.renderedEngagements.push(this)}observeWidgetContainerInViewport(){return this.getVariation()}generateParentElementID(){let t=super.generateParentElementID();return this.engagementTrigger.isSubscriptionUpsell()&&(t+=`-${this.engagementTrigger.items[0].selectedOrFirstVariant.value.mID}`),t}async checkAndSendEvent(){if(!ze.get().isOpen()&&this.runtimeData.pageName!=="cart"){b.log("Do not send display event as neither the cart drawer nor the cart page is open.");return}return super.checkAndSendEvent()}},pc=class Gh{constructor(t,r){this.engagementTrigger=t,this.element=r,this.cartItems=de.getCurrent().items}cartItems;static renderCartUpsell(t){let r=t.placement;if(!r?.selector){b.warn(`No placement available for ${t.objective}`,t.shortID);return}let n=Array.from(document.querySelectorAll(r.selector));if(!n?.length){b.warn(`No placement found for ${t.objective}`,t.shortID);return}for(let i of n)new Gh(t,i).render()}render(){let t=this.findCartItemFromHTMLElement();if(!t||this.engagementTrigger.skipSubscribedItems&&t.selling_plan_allocation)return;let r=this.engagementTrigger.items.find(m=>m.mID===t.product_id.toString());if(!r)return;let n=r.vars.find(m=>m.mID===t.id.toString());if(!n)return;let i=new Sr(n),s=t.selling_plan_allocation?.selling_plan;if(s)for(let m of i.sellingPlans??[])m.mID===s.id.toString()&&(m.isSelected=!0,i.changeSellingPlan(m));let o=new Rt(r);o.vars=[i],o.selectedOrFirstVariant.value=i;let c=`lc-cart-item-${this.engagementTrigger.shortID}-${r.mID}`;this.element.classList.add(c);let u=new Mt(this.engagementTrigger);u.placement.selector=`.${c}`,u.items=[o];let p=new Rr(u);p.renderSilently(),this.watchForCartItemDeletion(p,c)}watchForCartItemDeletion(t,r){let n=new MutationObserver(i=>{i.forEach(s=>{s.removedNodes.forEach(o=>{o===this.element&&(b.debug(`${r} has been removed`),t.destroy(),n.disconnect())})})});n.observe(this.element.parentElement,{childList:!0,subtree:!0})}findCartItemFromHTMLElement(){let t=this.element.innerHTML;return this.cartItems.find(r=>{if(!(t.includes(r.url)||t.includes(r.variant_id))&&(!t.includes(r.product_title)||r.variant_title&&!t.includes(r.variant_title)))return!1;let n=r.selling_plan_allocation?.selling_plan?.name;return!(n&&!t.includes(n))})}},hh=Ce(Gr()),fc=class extends Rr{ctaListener=new en;constructor(e){super(e),Dr.get().subscriber(N.CART_UPDATE_BROADCAST).pipe(qu(null)).subscribe(this.checkMilestone.bind(this))}update(e){super.update(e),this.widgetElement.update()}shouldStopRendering(){return!1}renderContainer(){if(this.widgetElement?.isConnected){this.addToRendered();return}let e=this.widgetElement=document.createElement("cooee-progressbar");e.className="cooee-root",e.cart=de.getCurrent(),e.engagementTrigger=this.engagementTrigger,e.setAttribute("engagement",this.engagementTrigger.shortID),this.rootContainer.appendChild(e),this.addToRendered()}async checkMilestone(){let e=await de.getCurrent().getNormalisedCart(),t=[...this.engagementTrigger.progressBarConfig.milestones].reverse().find(r=>r.minValue<e.amount);if(!t){b.log("No milestone achieved yet");return}if(b.log("Current milestone",t),t.rewardType===hh.MilestoneRewardType.FREE_AUTO_GIFT){let r=t.items[0];if(e.items.find(n=>n.vID===r.vID||n.mID===r.mID)){b.log(`Item(vID:${r.vID}) already present in the cart. Updating item's properties`),await this.ctaListener.performUpdate(r,{properties:this.engagementTrigger.getPrivateAttributesForLineItem()});return}else{let n=await this.ctaListener.performAddToCart([r],this.engagementTrigger);ze.get().refreshUI(n,!1),await this.removeOtherFreeGifts(r)}}}async removeOtherFreeGifts(e){let t=(await de.getCurrent().getNormalisedCart()).items.filter(r=>r.vID!==e?.vID&&r.properties[N.CAMPAIGN_ATTRIBUTE]===this.engagementTrigger.shortID);if(t.length)for(let r of t)await this.ctaListener.performUpdate(r,{quantity:0})}},gh=new br({t:12,style:{lg:{spc:{p:5,pl:5,pr:5,pt:5,pb:5},size:{w:"100%",h:"auto"},br:{r:4,w:0,s:1,c:{h:"#94a3b8",a:100}}},sm:{spc:{p:5,pl:5,pr:5,pt:5,pb:5},size:{w:"240px",h:"auto"},br:{r:0,w:0,s:1,c:{h:"#94a3b8",a:100}}}},elems:[{t:4,style:{lg:{spc:{},lout:{of:"cover",disp:"flex"},flex:{gap:10,dir:"row",wrap:"nowrap",jc:"center",ai:"center"}},sm:{spc:{},lout:{of:"cover",disp:"flex"},flex:{gap:10,dir:"row",wrap:"nowrap",jc:"center",ai:"center"}}},clc:{},elems:[{t:13,style:{lg:{spc:{mb:5},size:{w:"70px",h:"auto"},lout:{of:"cover"}},sm:{spc:{mb:5},size:{w:"80px",h:"auto"},lout:{of:"cover"}}},src:"{{{ product.image_url }}}"},{t:4,style:{lg:{spc:{mb:10},lout:{of:"cover",disp:"flex"},flex:{gap:5,dir:"column",wrap:"nowrap",jc:"start",ai:"start"}},sm:{spc:{mb:10},lout:{of:"cover",disp:"flex"},flex:{gap:7,dir:"column",wrap:"nowrap",jc:"start",ai:"start"}}},clc:{},elems:[{t:14,style:{lg:{spc:{},size:{w:"auto",h:"auto"},typo:{italic:!1,bold:!1,lh:1.2,fs:13,tc:{h:"#313131",a:100},ta:0,fw:600,ls:0,fam:{name:"Arial",g:!0}}},sm:{spc:{},size:{w:"auto",h:"auto"},typo:{italic:!1,bold:!1,lh:1.2,fs:12,tc:{h:"#575757",a:100},ta:0,fw:500,ls:0,fam:{name:"Arial",g:!0}}}},text:"{{ product.name }}"},{t:4,style:{lg:{spc:{},lout:{of:"cover",disp:"flex"},flex:{gap:10,dir:"row",wrap:"nowrap",jc:"start",ai:"start"}},sm:{spc:{},lout:{of:"cover",disp:"flex"},flex:{gap:10,dir:"row",wrap:"nowrap",jc:"start",ai:"center"}}},clc:{},elems:[{t:2,style:{lg:{spc:{},typo:{italic:!1,bold:!1,lh:1.2,td:"line-through",fs:14,tc:{h:"#64748b",a:100},ta:1,fw:400,ls:0,fam:{name:"Arial",g:!0}}},sm:{spc:{},typo:{italic:!1,bold:!1,lh:1.2,td:"line-through",fs:12,tc:{h:"#64748b",a:100},ta:1,fw:400,ls:0,fam:{name:"Arial",g:!0}}}},text:"{{ product.compare_price }}"},{t:2,style:{lg:{spc:{},typo:{italic:!1,bold:!1,lh:1.2,fs:14,tc:{h:"#000000",a:100},ta:1,fw:500,ls:0,fam:{name:"Arial",g:!0}}},sm:{spc:{},typo:{italic:!1,bold:!1,lh:1.2,fs:13,tc:{h:"#000000",a:100},ta:1,fw:500,ls:0,fam:{name:"Arial",g:!0}}}},text:"{{ product.price }}"},{t:2,style:{lg:{spc:{p:0,pl:0,pr:0,pt:0,pb:0,m:0,ml:0,mr:10,mt:0,mb:0},typo:{italic:!1,bold:!1,lh:1.2,fs:18,tc:{h:"#64748b",a:100},ta:1,fw:600,ls:0}},sm:{spc:{p:0,m:0,mr:10},typo:{italic:!1,bold:!1,lh:1.2,fs:18,tc:{h:"#64748b",a:100},ta:1,fw:600,ls:0}}},hide:!0,text:"Save {{ product.discount_price }}",when:{lhs:"{{ product.discount_price }}",op:"gt",rhs:0}},{t:2,style:{lg:{spc:{p:0,pl:0,pr:0,pt:0,pb:0,m:0,ml:0,mr:10,mt:0,mb:0},typo:{italic:!1,bold:!1,lh:1.2,fs:12,tc:{h:"#0d8d00",a:100},ta:1,fw:400,ls:0,fam:{name:"DINNextRoundedLTPro-Medium"}}},sm:{spc:{p:0,m:0,mr:10},typo:{italic:!1,bold:!1,lh:1.2,fs:18,tc:{h:"#64748b",a:100},ta:1,fw:600,ls:0}}},hide:!0,text:"({{ product.discount_percent }}% off)",when:{lhs:"{{ product.discount_percent }}",op:"gt",rhs:0}}]},{t:4,style:{lg:{spc:{},lout:{of:"cover",disp:"flex"},flex:{gap:5,dir:"row",wrap:"nowrap",jc:"start",ai:"center"}},sm:{spc:{},lout:{of:"cover",disp:"flex"},flex:{gap:5,dir:"row",wrap:"nowrap",jc:"start",ai:"center"}}},clc:{},elems:[{t:3,style:{lg:{spc:{p:7,pl:7,pr:7,pt:7,pb:7},size:{w:"100%",h:"auto"},bg:{s:{h:"#000000",a:100}},br:{r:0,w:0,s:1,c:{a:100}},typo:{italic:!1,bold:!1,lh:1.2,fs:12,tc:{h:"#ffffff",a:100},ta:1,fw:400,ls:0,fam:{name:"Arial",g:!0}}},sm:{spc:{p:7,pl:7,pr:7,pt:8,pb:8},size:{w:"70%",h:"auto"},bg:{s:{h:"#000000",a:100}},br:{r:0,w:0,s:1,c:{a:100}},typo:{italic:!1,bold:!1,lh:1.2,fs:12,tc:{h:"#ffffff",a:100},ta:1,fw:400,ls:0,fam:{name:"Arial",g:!0}}}},text:"Add",clc:{at:102},allowedTypes:[102]}]}]}]}]}),yh=new Xe({t:2,style:{lg:{spc:{mb:15},typo:{italic:!1,bold:!1,lh:1.2,fs:16,tc:{h:"#333333",a:100},ta:1,fw:700,ls:.5,fam:{name:"Arial",g:!0}}},sm:{spc:{mb:15},typo:{italic:!1,bold:!1,lh:1.2,fs:16,tc:{h:"#333333",a:100},ta:1,fw:700,ls:.5,fam:{name:"Arial",g:!0}}}},text:"WATCH & SHOP - NEW LAUNCHES"}),Vo=class extends xe{render(){return k("div",{style:{marginTop:30},class:"lc-container",children:[k(xt,{element:yh,triggerContext:this.props.triggerContext}),k("div",{style:this.getComponentStyles(),children:this.props.triggerContext.triggerData.items.map(e=>{if(e.portraitVideos?.length)return k("div",{class:"lc-shoppable-video",style:{flex:"1 1 0",width:"260px"},children:[k("a",{href:e.link,onClick:()=>{this.sendTriggerClicked([new pt(e)],{from:"video"})},children:k("video",{width:"100%",autoplay:!0,muted:!0,loop:!0,children:this.getSources(e.portraitVideos[0].sources)})}),k(Hr,{element:gh,item:e,triggerContext:this.props.triggerContext})]})})})]})}getSources(e){let t=e.map(i=>k("source",{src:i.url,type:i.mimeType,media:`(max-width:${i.width}px)`})),r=e.filter(i=>i.format==="mp4").sort((i,s)=>s.width-i.width)[0];r&&t.push(k("source",{src:r.url,type:r.mimeType}));let n=e.filter(i=>i.format==="m3u8").sort((i,s)=>s.width-i.width)[0];return n&&t.push(k("source",{src:n.url,type:n.mimeType})),t}getComponentStyles(){return{display:"flex",gap:10,overflowX:"auto",margin:10}}},mc=class extends At{constructor(e){super(e)}shouldStopRendering(){return!1}renderContainer(){ns(Ki(Vo,{element:this.widget?.cont,triggerContext:this.triggerContext}),this.rootContainer)}},vh=Ce(Zn()),dc=class extends At{constructor(e){super(e)}shouldStopRendering(){return!1}renderContainer(){let e=this.getParentElement(`inner-letscooee-${this.engagementTrigger.shortID}`);this.rootContainer.appendChild(e),document.addEventListener(N.ADD_BUNDLE_CTA_INBOUND_EVENT,this.inboundCTAListener.bind(this),!1)}async inboundCTAListener(e){let t=this.engagementTrigger,r=`Engagement(id: ${t.engagementID}, shortID: ${t.shortID})`,n=e.detail;if(!vh.JSUtils.hasKeys(n)){b.error(`No detail received for ${r}`);return}b.log("Detail received for BYOB",n);let i=n.campaignID??n.campaignId??n.campaign_id;if(i!==t.shortID&&i!==t.engagementID){b.warn(`Current ${r} is not BYOB. Received: ${i}`);return}let s=n.items;if(!s?.length)return;let o=s.map(c=>new pt({mID:c.product_id,vID:c.variant_id,quantity:c.quantity||1}));await new ki(this.triggerContext).execute({embeddedItems:o,clickAction:{at:108,applyDiscount:!0}})}},Fi=class{runtimeData=le.get();processCartWidgetResponse(e){this.runtimeData.isCartDirty=!1,this.runtimeData.cartEngagements=e;let t=[...Rr.renderedEngagements];Rr.renderedEngagements.length=0;for(let r of e)b.log(`\u{1F4E3} ${r} received as cart embed`),!this.findAndUpdateCurrent(r,t)&&(b.log(`${r} is new`),r.isProgressBar()?new fc(r).renderSilently():r.isSubscriptionUpsell()?pc.renderCartUpsell(r):new Rr(r).renderSilently());this.removeOldWidgets(t)}processPageWidgetResponse(e){let t=[...At.renderedEngagements];At.renderedEngagements.length=0;for(let r of e)b.log(`\u{1F4E3} ${r} received as page embed`),!this.findAndUpdateCurrent(r,t)&&(b.log(`${r} is new`),r.isShoppableVideo()?new mc(r).renderSilently():r.isBYOB()?new dc(r).renderSilently():new At(r).renderSilently());this.removeOldWidgets(t)}findAndUpdateCurrent(e,t){let r=t.findIndex(n=>n.isSameTrigger(e));return r<0||e.isSubscriptionUpsell()?!1:(t[r].update(e),t[r].renderSilently(),t.splice(r,1),!0)}removeOldWidgets(e){for(let t of e)t.destroy()}},cr=class Wh{static INSTANCE;httpService=pe.get(ht);sessionManager=pe.get(st);runtimeData=le.get();loadWidgetsSubject=new Ct;constructor(){this.loadWidgetsSubject.pipe(ar(300)).subscribe(()=>{this.loadCartWidgets().catch(t=>b.error("Unable to initiate cart widgets",t)),this.loadPageWidgets().catch(t=>b.error("Unable to initiate page widgets",t))}),Dr.get().subscriber(N.CART_UPDATE_BROADCAST).subscribe(()=>this.loadWidgetsSubject.next())}static getInstance(){return this.INSTANCE||(this.INSTANCE=new Wh),this.INSTANCE}loadOrRenderWidgetsAfterCartChange(){this.runtimeData.isCartDirty?this.loadWidgetsSilently():this.renderCachedCartWidgets()}loadPageWidgetsSilently(){st.replaySubject.subscribe(async()=>{this.loadPageWidgets().catch(t=>b.error("Unable to initiate load page widgets",t))})}loadCartWidgetsSilently(){st.replaySubject.subscribe(async()=>{this.loadCartWidgets().catch(t=>b.error("Unable to initiate cart widgets",t))})}loadWidgetsSilently(){st.replaySubject.subscribe(async()=>{this.loadWidgetsSubject.next()})}async loadPageWidgets(){let t=await this.getWidgetProps();b.log("Load widgets",t),this.httpService.post("/v1/engagement/page-widgets",t).then(async r=>{let n=r.widgets.map(i=>new Mt(i));new Fi().processPageWidgetResponse(n)}).catch(r=>{b.error("Error sending widget getter",r)})}async loadCartWidgets(){let t=await this.getWidgetProps();b.log("Load cart widgets",t),this.httpService.post("/v1/engagement/cart-widgets",t).then(async r=>{let n=r.widgets.map(i=>new Mt(i));new Fi().processCartWidgetResponse(n)}).catch(r=>{b.error("Error sending widget getter",r)})}async getVariation(t){let r=await this.getWidgetProps();return this.httpService.post("/v1/engagement/get-variant",w(w({},t),r))}renderCachedCartWidgets(){new Fi().processCartWidgetResponse(this.runtimeData.cartEngagements)}async addSessionContext(t){let r=await this.sessionManager.checkSessionAndGetContext();t.sessionID=r[0],t.sessionNumber=r[1],t.landingPage=r[2],t.page=Cr.parseFromCurrent()}addAvailableEngagementShortIDs(){let t=document.querySelectorAll(".letscooee-engagement"),r=[];return t.forEach(n=>{let i=n.dataset.engagementId;i&&+i&&r.push(i)}),r}async getWidgetProps(){let t={};t.engagementIDs=this.addAvailableEngagementShortIDs(),await this.addSessionContext(t),t.currentItem=this.runtimeData.getCurrentItem();try{t.cart=await de.getCurrent().getNormalisedCart()}catch(s){b.error("Error fetching Shopify cart before sending widget call",s)}let r=new URLSearchParams(location.search),n=r.get("cooee-preview");n?t.previewIDs=n.trim().split(",").filter(s=>Number.isInteger(+s)):this.runtimeData.previewIDs?.length&&(t.previewIDs=this.runtimeData.previewIDs);let i=r.get("cooee-variant");return i?t.previewVariant=i:this.runtimeData.previewVariant&&(t.previewVariant=this.runtimeData.previewVariant),t}},hc=class{runtimeData=le.get();widgetAPIService=pe.get(cr);meddle(){let e=we.globalRef;e.account=e.account??[],e.profile=e.profile??[],e.events=e.events??[],e.screen=e.screen??[],e.page=e.page??[],this.meddlePage(),this.meddleAccount(),this.meddleEvents(),this.meddleProfile(),this.meddleScreen(),this.exposeMethods()}exposeMethods(){let e=we.globalRef;e.loadPageWidgets=()=>{this.widgetAPIService.loadPageWidgetsSilently()},e.loadCartWidgets=()=>{this.widgetAPIService.loadCartWidgetsSilently()},e.previewWidget=we.previewWidget.bind(we),e.previewPopup=we.previewPopup.bind(we)}overwritePush(e,t){ci(e,"push",t)}meddleAccount(){this.overwritePush(we.globalRef.account,(...e)=>{this.processAccount(e[0])}),we.globalRef.account.forEach(this.processAccount.bind(this))}meddleEvents(){this.overwritePush(we.globalRef.events,(...e)=>{this.processEvent(e[0])}),we.globalRef.events.forEach(this.processEvent.bind(this))}meddleProfile(){this.overwritePush(we.globalRef.profile,(...e)=>{this.processProfile(e[0])}),we.globalRef.profile.forEach(this.processProfile.bind(this))}meddleScreen(){this.overwritePush(we.globalRef.screen,(...e)=>{this.processPageName(e[0])}),we.globalRef.screen.forEach(this.processPageName.bind(this))}processAccount(e){e&&(e.appID&&we.authenticate(e),e.flags&&Ln.setFlags(e.flags))}processEvent(e){e&&(N.JS_LOAD_WHITELIST_EVENTS.includes(e[0])?we.sendEvent(e[0],e[1],this.runtimeData.jsLoadTime):we.sendEvent(e[0],e[1]))}processProfile(e){e&&we.updateProfile(e)}processPageName(e){e&&we.setPageName(e)}meddlePage(){this.overwritePush(we.globalRef.page,(...e)=>{this.processPage(e[0])}),we.globalRef.page.forEach(this.processPage.bind(this))}processPage(e){e.currentItem&&this.runtimeData.setCurrentItem(e.currentItem),e.currency&&(this.runtimeData.currencyCode=e.currency),e.shopCurrency&&(this.runtimeData.shopCurrencyCode=e.shopCurrency),e.moneyFormat&&(this.runtimeData.moneyFormat=e.moneyFormat),e.jsLoad&&(this.runtimeData.jsLoadTime=e.jsLoad),e.pageName&&we.setPageName(e.pageName)}},Hi=class{static SESSION_STORAGE=window.sessionStorage;static SESSION_STORAGE_KEY_PREFIX=N.COOEE.concat("-");static getString(e,t){return this.getItem(e)||t}static setString(e,t){this.setItem(e,t)}static remove(e){this.removeItem(e)}static getItem(e){return this.SESSION_STORAGE.getItem(this.SESSION_STORAGE_KEY_PREFIX.concat(e))}static setItem(e,t){this.SESSION_STORAGE.setItem(this.SESSION_STORAGE_KEY_PREFIX.concat(e),t)}static removeItem(e){this.SESSION_STORAGE.removeItem(this.SESSION_STORAGE_KEY_PREFIX.concat(e))}},$i=class Xo{static INSTANCE;static DEBOUNCE_TIME=1e3;static THRESHOLD=10;safeHttpService=pe.get(fe);_lastScreenOrScroll=new Date;lastPercent=0;constructor(){}set lastScreenOrScroll(t){this._lastScreenOrScroll=t}static getInstance(){return this.INSTANCE||(this.INSTANCE=new Xo),this.INSTANCE}resetScrollID(t){Hi.remove(N.SESSION_STORAGE_SCROLL_ID),this.lastScreenOrScroll=t??new Date}listen(){if(window.scrollY){let t=this.getPercentScrolledY();this.shouldSendScroll(t)&&this.sendScroll(t)}re.onDocumentLoaded(()=>{this.observeWindowScroll()})}observeWindowScroll(){On(window,"scroll").pipe(ar(Xo.DEBOUNCE_TIME),Nn(()=>{let t=this.getPercentScrolledY();if(t>100){b.warn("Received scroll percent is more than 100",t);return}if(this.shouldSendScroll(t))return t})).subscribe(t=>{this.sendScroll(t)})}shouldSendScroll(t){return Math.abs(this.lastPercent-t)>=Xo.THRESHOLD||this.lastPercent!==t&&t===100}sendScroll(t){if(t==null)return;let r={percent:t,timeMS:new Date().getTime()-this._lastScreenOrScroll.getTime()};this.lastPercent=t;let n=Hi.getString(N.SESSION_STORAGE_SCROLL_ID,""),i=new _e(N.EVENT_SCROLL,r,null,n);this.safeHttpService.sendEvent(i),Hi.setString(N.SESSION_STORAGE_SCROLL_ID,i.id.toHexString()),this._lastScreenOrScroll=new Date(i.occurred)}getPercentScrolledY(){let t=window.document.body.scrollHeight,r=window.innerHeight;return Math.ceil((window.scrollY+r)/t*100)}},gc=class qh{static ACTIVE_DURATION="aDur";static INACTIVE_DURATION="iaDur";apiService=pe.get(fe);runtimeData=le.get();listen(){document.onvisibilitychange=()=>{document.visibilityState==="visible"?this.onVisible():document.visibilityState==="hidden"&&this.onHidden()}}async onVisible(){}async onHidden(){let t=await this.runtimeData.setInactive();if(t===0){b.info("Not sending background event as user was inactive on website");return}b.info(`Sending background event with ${t} seconds`);let r={};r[qh.ACTIVE_DURATION]=t,this.apiService.sendEvent(new _e(N.EVENT_APP_BACKGROUND,r))}},yc=class{compareCartItemSubject=new Ct;constructor(){this.compareCartItemSubject.pipe(ar(100)).subscribe(this.compareCartItems.bind(this))}listen(){this.compareCartItemSubject.next(),this.overwriteXMLHttpRequest(),this.overwriteFetchMethod()}overwriteXMLHttpRequest(){let e=this,t=window.XMLHttpRequest.prototype.send;window.XMLHttpRequest.prototype.send=function(){return this.addEventListener("load",function(){e.performEvent(this._url).catch(r=>b.error("Unable to process cart change in XMLHttpRequest",r))}),t.apply(this,arguments)},b.debug("Securely overwritten window.XMLHttpRequest.send method")}overwriteFetchMethod(){let e=this,t=window.fetch;window.fetch=function(r){return t.apply(window,arguments).then(n=>(e.performEvent(r.toString()).catch(i=>b.error("Unable to process cart change in fetch",i)),n))},b.debug("Securely overwritten window.fetch method")}async performEvent(e){this.isCartManipulationURL(e)&&(le.get().isCartDirty=!0,this.compareCartItemSubject.next())}isCartManipulationURL(e){return/\/cart\/(add|change|update|clear)/.test(e)}sendChangesAsEvents(e,t){let r=e?.items,n=t.items,i=[],s=[];if(b.debug(`Comparing cart change with old count ${r?.length} to new count ${n.length}`),n?.forEach(o=>{let c=r?.find(u=>u.vID===o.vID);if(c){if(c.quantity!==o.quantity){let u=c.quantity<o.quantity,p=Math.abs(c.quantity-o.quantity),m=ee(w({},o),{quantity:p});u?i.push(m):s.push(m)}r&&re.removeFromArray(r,c)}else i.push(o)}),r)for(let o of r)s.push(o);b.debug(`Cart delta: added: ${i.length}, removed: ${s.length}`),i.length&&this.sendEvent(N.EVENT_ADD_TO_CART,{items:i}),s.length&&e.token===t.token&&this.sendEvent(N.EVENT_REMOVE_FROM_CART,{items:s}),(s.length||i.length)&&Dr.get().broadcast(N.CART_UPDATE_BROADCAST,{itemsAdded:i,itemsRemoved:s})}sendEvent(e,t){let r=new _e(e,t);pe.get(fe).sendEvent(r)}async compareCartItems(){let e=await Oe.get(oe.CURRENT_CART,{}),t=await de.getCurrent().getNormalisedCart(!0);this.sendChangesAsEvents(e,t)}},vc=class{listen(){return this.overwriteFetchMethod(),this}overwriteFetchMethod(){let e=this,t=window.fetch;window.fetch=async function(r,n){try{await e.modifyRequest(r,n)}catch(i){Be.getInstance().captureError("Failed to modify graphql request",i,{body:JSON.stringify(n?.body)})}return t(r,n)},b.debug("Securely overwritten window.fetch method for graphql query")}async modifyRequest(e,t){let r=typeof e=="string"?e:e instanceof Request?e.url:"";if(!(r.includes("graphql.json")&&t?.method==="POST")||!t.body)return;let n;if(typeof t.body=="string")try{n=JSON.parse(t.body)}catch{return}else n=t.body;b.debug("Intercepted fetch request of:",r),n?.query.includes("cartCreate")&&(t.body=await this.updatedBody(n),this.sendBuyNowEvent())}async updatedBody(e){let t=e.variables.input.attributes??[],r=await re.getCartAttributes();return e.variables.input.attributes=[...t,...r],JSON.stringify(e)}sendBuyNowEvent(){let e=le.get().getCurrentItem();if(!e)return;let t=new _e(N.EVENT_BUY_NOW_CLICKED,{items:[e]});fe.getInstance().sendEvent(t)}},ji=class{constructor(e,t){this.selectors=e,this.eventName=t,this.selectorString=e.join(",")}static INSTANCE;elements;selectorString;clickListenerCallback=e=>{let t=e.currentTarget,r=new _e(this.eventName,{class:t.className||void 0,tagName:t.tagName||void 0,id:t.id||void 0});fe.getInstance().sendEvent(r),this.removeClickListener(this.clickListenerCallback)};listenSilently(){this.listen().catch(e=>b.error(e))}async listen(){this.elements=await re.retrySelectorForElements(this.selectorString),this.elements.forEach(e=>{e.addEventListener("click",this.clickListenerCallback)})}removeClickListener(e){this.elements?.forEach(t=>{t.removeEventListener("click",e)})}},_c=class Rc extends ji{static selectors=[".product__thumbnail-list-inner > button","product-gallery-navigation > button",".product-media--thumb-container",".product-images-inner > img",".m-product-media",".swiper-button-control",".media__thumb",".slick-arrow",".productView-img-container.product-single__media",".product-gallery__thumbnail_item_inner"];constructor(){super(Rc.selectors,N.EVENT_ITEM_THUMBNAIL_CLICKED)}static getInstance(){return this.INSTANCE||(this.INSTANCE=new Rc),this.INSTANCE}},Ec=class tl extends ji{static selectors=[".jdgm-widget.jdgm-preview-badge.jdgm-preview-badge--with-link.jdgm--done-setup","reviewsio-product-ratings",".ruk_rating_snippet.tracked:not(.hidden)","a > .loox-rating",".yotpo-reviews-star-ratings-widget",".yotpo.lp-hero__reviews",".pr-rating > a",".rivyoReviewWidget"];constructor(){super(tl.selectors,N.EVENT_REVIEW_CLICKED)}static getInstance(){return this.INSTANCE||(this.INSTANCE=new tl),this.INSTANCE}},Sc=class{selector=[".gokwik-checkout button","button.cart__checkout-button","button.cart__checkout","button#checkout","button#checkout2",'button[id*="checkout" i]','button[name*="checkout" i]','button[class*="checkout" i]'].join(",");listen(){re.onDocumentLoaded(()=>{b.debug("Execution order:","document ready"),this.useLocationHash()})}useLocationHash(){let e=window.location.hash?.substring(1);if(e)if(e.includes(N.HASH_INITIATE_CHECKOUT)){document.dispatchEvent(new Event(N.THIRD_PARTY_CHECKOUT_EVENT));let t=document.querySelector(this.selector);if(!t){b.debug("No clickable cart checkout button found");return}b.debug("Clickable cart checkout button found",t),t.click()}else e.includes(N.HASH_OPEN_CART_DRAWER)&&ze.get().open()}},wc=class{trackSilently(){this.track().catch(e=>Be.getInstance().captureException(e))}async track(){let e=window.Shopify?.checkout,t=window.Shopify?.Checkout;if(!e&&!t)return;let r={};this.processSmallCheckout(e,r),this.processBigCheckout(t,r);let n=this.getTokenFromCurrentURLPath();if(n&&(r.urlToken=n),!Object.keys(r).length){b.warn("No processable data found in",e,t);return}r.referrer=document.referrer,r.url=location.href;let i=await pe.get(st).checkSessionAndGetContext();r.sessionID=i[0],this.trackOrder(r)}processSmallCheckout(e,t){e&&(e.order_id&&(t.orderID=e.order_id.toString()),e.token&&(t.checkoutToken=e.token.toString()),e.customer_id&&(t.customerID=e.customer_id.toString()))}processBigCheckout(e,t){e&&(e.token&&!t.checkoutToken&&(t.checkoutToken=e.token.toString()),e.cartToken&&(t.cartToken=e.cartToken.toString()))}trackOrder(e){b.info("Found order to be send",e),fe.getInstance().trackOrder(e)}getTokenFromCurrentURLPath(){let e=new RegExp("[A-Fa-f0-9]{28,32}");return location.pathname?.split("/").find(t=>t.length&&e.test(t))}},Yo=class{static attachCheckoutListener(){window.gokwikSdk&&window.gokwikSdk.on("checkout_initiated",async()=>{let e=await de.getCurrent().getNormalisedCart(),t={via:"GoKwik",items:e.items,cartToken:e.token,amount:{value:e.amount,currency:e.currency}},r=new _e(N.EVENT_CHECKOUT_STARTED,t);fe.getInstance().sendEvent(r)})}},bc=class{async migrate(){}};Et.escape=_h.MustacheUtils.escapeHtml;var we=class{static globalRef;static authenticated;static async initForMerchantWebsiteOnly(){window.cooeeSDKPreview||(this.initGlobalReference(),await new bc().migrate(),this.autoAuthenticate(),new hc().meddle(),new gc().listen(),new wc().trackSilently(),new en().listen(),new yc().listen(),new vc().listen(),new Sc().listen(),pe.get($i).listen(),pe.get(Ec).listenSilently(),pe.get(_c).listenSilently(),pe.get(cr).loadPageWidgetsSilently(),this.attachGoKwikListeners(),this.storePreviewParams(),this.setupPreviewListeners(),Zt.watch())}static async initForAll(){this.injectWidgetAssets()}static initGlobalReference(){window.CooeeSDK||ci(window,"CooeeSDK",{}),this.globalRef=window.CooeeSDK,ci(this.globalRef,"config",new Le),ci(this.globalRef,"runtimeData",new le),b.debug("Global reference initialised")}static injectWidgetAssets(){if(document.currentScript.src.includes("localhost")){let e="http://localhost:8002";dt.injectScriptURL(`${e}/main.js`),dt.injectStylesheet(`${e}/styles.css`)}else{let e=`https://cdn.jsdelivr.net/npm/@letscooee/web-sdk@${N.SDK_VERSION}`;dt.injectScriptURL(`${e}/dist/widget-sdk.min.js`,"cooee-widget-sdk"),dt.injectStylesheet(`${e}/dist/widget-sdk.min.css`)}}static autoAuthenticate(){let e=Pe.getShopName();e&&this.authenticate({shopifyShop:e})}static authenticate(e){if(this.authenticated)return;let t=e.appID?.trim(),r=e.shopifyShop;if((re.isNull(t)||t.length!==24)&&re.isNull(r)){b.warn("Cooee App ID or Shop name is not configured");return}this.authenticated=!0,pe.get(st).init(e)}static sendEvent(e,t,r){for(let i in t)if(i.length>3&&i.toLowerCase().startsWith("ce "))throw new Error("Event property name cannot start with 'CE '");let n=new _e(e,t);n.occurred=r??new Date,pe.get(fe).sendEvent(n)}static updateProfile(e){for(let t in e)if(t.toLowerCase().startsWith("ce "))throw new Error("User property name cannot start with 'CE '");pe.get(fe).updateProfile(e)}static setPageName(e){if(!e)return;let t=le.get(),r=t.pageName;if(e===r)return;if(t.pageName=e,e==="cart"&&pe.get(cr).loadOrRenderWidgetsAfterCartChange(),N.BLACKLISTED_PAGE_NAMES.some(s=>e.includes(s))){pe.get($i).resetScrollID();return}let n={};r&&(n.ps=r);let i=new _e(N.EVENT_SCREEN_VIEW,n);i.occurred=t.jsLoadTime,pe.get(fe).sendEvent(i),pe.get($i).resetScrollID(i.occurred)}static previewPopup(e,t){new Bi(t).render(e)}static previewWidget(e){new At(new Mt(e)).render()}static setupPreviewListeners(){if(window.opener){try{window.opener.postMessage({action:"COOEE_READY_FOR_PREVIEW"},"*")}catch(e){b.error(e)}window.addEventListener("message",e=>{if(b.debug("Received event",e),!e.origin.includes("letscooee.com")&&!e.origin.includes("localhost"))return;let t=e.data;typeof t=="object"&&(t.action==="POPUP_PREVIEW"?(this.previewPopup(t.engagementTrigger),e.source?.postMessage({action:"PREVIEW_SUCCESSFUL"},e.origin)):t.action==="WIDGET_PREVIEW"&&(this.previewWidget(t.engagementTrigger),e.source?.postMessage({action:"PREVIEW_SUCCESSFUL"},e.origin)))})}}static attachGoKwikListeners(){let e=le.get();window.addEventListener("kp-modal:opened",()=>{e.isGoKwikPopupOpen=!0}),window.addEventListener("user-loggedin",t=>{let{token:r}=t.detail;r&&this.updateProfile({goKwikToken:r})}),window.gokwikSdk?Yo.attachCheckoutListener():window.addEventListener("gokwikLoaded",Yo.attachCheckoutListener)}static storePreviewParams(){let e=le.get(),t=new URLSearchParams(location.search),r=t.get("cooee-preview");r&&(e.previewIDs=r.trim().split(",").filter(i=>Number.isInteger(+i)));let n=t.get("cooee-variant");n&&(e.previewVariant=n)}};b.configure();b.logBrand();b.debug("Execution order:","top");window.cooeeShopifyScriptLoaded||(window.cooeeShopifyScriptLoaded=!0,(async()=>(b.debug("Execution order:","IIFE start"),await we.initForMerchantWebsiteOnly(),await we.initForAll(),b.debug("Execution order:","IIFE end")))());b.debug("Execution order:","bottom");})();
70
+ `},navigation:{nextEl:e.querySelector(".swiper-button-next"),prevEl:e.querySelector(".swiper-button-prev")},autoplay:t.autoplay?.enabled?{delay:t.autoplay?.delay,disableOnInteraction:!1}:!1,autoHeight:!0});return e.style.setProperty("--swiper-navigation-size",`${t.navigation.size}px`),r}function uc(e,t,r){let n={color:e.navigation.color?.rgba};return e.pagination.enabled&&(n.transform="translateY(-25%)"),k("div",{class:"swiper-container",ref:t,children:[k("div",{class:"swiper-wrapper",children:r()}),e.navigation.enabled&&k("div",{class:"swiper-button-next",style:n,children:k("span",{})}),e.navigation.enabled&&k("div",{class:"swiper-button-prev",style:n,children:k("span",{})}),e.pagination.enabled&&k("div",{className:"swiper-pagination",style:{bottom:0,top:"unset",position:"relative",color:e.pagination.color?.rgba}})]})}var $o=class extends xe{swiperRef=null;swiperInstance=null;configuration;gap;constructor(e,t){super(e,t),this.configuration=this.renderer.isMobile()?this.props.element.conf.sm:this.props.element.conf.lg,this.gap=(this.configuration.gap??15)+"px"}componentDidMount(){this.props.element.conf[this.deviceTypeKey].disp===2&&cc().then(()=>{this.swiperInstance=lc(this.swiperRef,this.props.element.conf[this.deviceTypeKey])})}componentWillUnmount(){this.swiperInstance&&this.swiperInstance.destroy()}render(){let e=this.props.triggerContext.triggerData.items;e.splice(this.configuration.maxItems??10);let t;if(this.configuration.disp===2){let r=i=>{this.swiperRef=i},n=()=>e?.map(i=>k("div",{class:"swiper-slide",children:this.getProductFragment(i)}));t=k("div",{style:ee(w({},this.getCompiledStyles()),{display:"block"}),class:"lc-product-swiper-list",children:uc(this.configuration,r,n)})}else t=k("div",{style:this.getCompiledStyles(),class:"lc-product-list",children:e?.map((r,n)=>this.getProductFragment(r,n!==e.length-1))});return t}getComponentStyles(){let e=[0,2].includes(this.configuration.disp),t={display:e?"flex":"grid",justifyContent:"safe "+(this.mediaStyle.flex?.jc??"center"),gap:this.gap,flexDirection:this.mediaStyle.flex?.dir??"row"};if(t.flexDirection==="row"){if(e)t.maxWidth="100%",t.overflowY="auto";else if(this.configuration.disp===1){let r=this.props.triggerContext.triggerData,n=r.items.length,i;r.isBundle()?i=this.props.element.prod.symbol?.hide!==!0?n*2-1:n:i=this.props.element.conf[this.deviceTypeKey].maxInRow,t.gridTemplateColumns=`repeat(${i}, auto)`}}return t}getProductFragment(e,t=!1){return k(fr,{children:[k(Hr,{element:this.props.element.prod,item:e,triggerContext:this.props.triggerContext}),this.props.triggerContext.triggerData.isBundle()&&t&&this.props.element.prod.symbol&&!this.props.element.prod.symbol.hide&&k("div",{style:{display:"flex",alignItems:"center",justifyContent:"center"},children:k(xt,{element:this.props.element.prod.symbol,triggerContext:this.props.triggerContext})})]},e.mID)}},jo=class extends xe{swiperRef=null;swiperInstance=null;constructor(e,t){super(e,t)}componentDidMount(){cc().then(()=>{this.swiperInstance=lc(this.swiperRef,this.props.element.conf)})}componentWillUnmount(){this.swiperInstance&&this.swiperInstance.destroy()}render(){let e=this.props.element,t=n=>{this.swiperRef=n},r=()=>e.values?.map(n=>k("div",{class:"swiper-slide",onClick:()=>this.onClick({clickAction:this.getClickAction(n)}),children:this.renderElement(n)}));return uc(e.conf,t,r)}getComponentStyles(){return{}}renderElement(e){let t=this.valueAddedSlide(this.props.element.slide,e);switch(t?.t){case 1:return k(Mr,{element:t,triggerContext:this.props.triggerContext});case 4:return k(Fr,{elements:t.elems,element:t,triggerContext:this.props.triggerContext});default:b.warn("Unknown slide type for carousal")}}valueAddedSlide(e,t){let r=JSON.stringify(e),n=Et.render(r,{form:t});return kt.getParsedElement(JSON.parse(n))}getClickAction(e){let t=w({},this.props.element.clc),r=JSON.stringify(t),n=Et.render(r,{form:e});return JSON.parse(n)}},tn=class extends xe{constructor(e,t){super(e,t),this.setState(()=>({decoration:"unset"})),at(()=>{this.setState(()=>({showButton:!this.props.triggerContext.triggerData.isBundle()||!!this.props.triggerContext.selectedItems.length}))})}renderElement(e){if(!e.hide){if(e.t===4){let t=e;return k(Fr,{element:t,triggerContext:this.props.triggerContext,elements:t.elems})}if(e.t===61)return k(Bo,{element:e,triggerContext:this.props.triggerContext});if(e.t===3)return this.state.showButton?k(Un,{element:e,triggerContext:this.props.triggerContext}):void 0;if(e.t===2)return k(xt,{element:e,triggerContext:this.props.triggerContext});if(e.t===1)return k(Mr,{element:e,triggerContext:this.props.triggerContext});if(e.t===11)return k($o,{element:e,triggerContext:this.props.triggerContext});if(e.t===12)return k(Hr,{element:e,item:this.props.triggerContext.triggerData.items[0],triggerContext:this.props.triggerContext});if(e.t===62)return k(jo,{element:e,triggerContext:this.props.triggerContext})}}render(){return this.props.elements.map(e=>this.renderElement(e))}getComponentStyles(){return{}}},Wo=class extends xe{clickAction;isClickable;constructor(e,t){super(e,t),this.clickAction=this.props.element.clc,this.isClickable=this.clickAction?.at===4&&this.clickAction.gu?.u}componentDidMount(){at(()=>{let e=this.props.triggerContext.triggerData,t=this.props.triggerContext.selectedItems;e.calculateDiscountData(t,this.props.triggerContext.shouldGiveFBTDiscount)})}render(){return k(fr,{children:[k("div",{style:this.getCompiledStyles(),class:"lc-container",onClick:()=>{this.onClick({clickAction:this.clickAction})},children:k(tn,{elements:this.props.elements,element:this.props.element,triggerContext:this.props.triggerContext})}),this.props.triggerContext.triggerData.id==="preview"&&k("div",{class:"letscooee-preview-badge",children:["#",this.props.triggerContext.triggerData.shortID," preview"]})]})}getComponentStyles(){let e={position:"relative",overflow:"hidden",display:"block"};return this.isClickable&&(e.cursor="pointer"),e}async onClick(e){if(this.isClickable)return super.onClick(e)}},At=class as{constructor(t){this.engagementTrigger=t,this.triggerContext=new Oi(new Date,this.engagementTrigger)}static renderedEngagements=[];static engagementIDsWithTrackedDisplay=new Set;static DEBOUNCE_TIME=1e3;rootContainer;widgetElement;widget;triggerContext;observers=[];runtimeData=le.get();widgetAPIService=pe.get(cr);safeHTTPService=pe.get(fe);scrollSubscription;variation;isExclusionWithBVariation;renderSilently(){this.render().catch(t=>Be.getInstance().captureException(t,w({},this.engagementTrigger.sentryContext())))}destroy(){b.log(`${this.engagementTrigger} will be destroyed`),this.scrollSubscription?.unsubscribe(),this.observers.forEach(t=>{t?.disconnect&&t.disconnect()}),this.rootContainer?.remove(),as.engagementIDsWithTrackedDisplay.delete(this.engagementTrigger.shortID)}async render(){if(this.engagementTrigger.hasMultiplePlacement){let t=await this.getVariation();this.handleVariationResponse(t)}if(this.rootContainer=await this.getWidgetContainer(!0),!this.rootContainer){b.warn(`${this.engagementTrigger} no section found to render the widget`);return}this.widget=this.engagementTrigger.widget,await this.getVariationIfRequired(),!this.shouldStopRendering()&&(await this.startRendering(),this.attachScroll(),await this.checkAndSendEvent(),this.triggerContext.renderer=this)}isSameTrigger(t){return this.engagementTrigger.shortID===t.shortID}update(t){dh.default.log(`${this.engagementTrigger} will be updated`),this.updateItems(t.items,this.engagementTrigger.items)}shouldStopRendering(){return!this.widget&&!this.isExclusionWithBVariation}async getVariationIfRequired(){if(this.engagementTrigger.isSingleContent()||this.engagementTrigger.widget){b.log(`${this.engagementTrigger} already has required data to render widget`);return}let t=await this.observeWidgetContainerInViewport();this.handleVariationResponse(t)}handleVariationResponse(t){t&&(b.log(`${this.engagementTrigger} visitor has been assigned to variation ${t.variation}`),t.items?.length&&(this.engagementTrigger.items=t.items.map(r=>new Rt(r)),this.engagementTrigger.nonMutableItems=t.items.map(r=>new Rt(r))),t.bundleFrom&&(this.engagementTrigger.bundleFrom=new Rt(t.bundleFrom)),t.discount&&(this.engagementTrigger.discount=t.discount),t.placement&&(this.triggerContext.triggerData.placement=t.placement),t.props&&mh.JSUtils.hasKeys(t.props)&&(this.engagementTrigger.props=w(w({},this.engagementTrigger.props),t.props)),this.triggerContext.triggerData.widget=this.widget=new Ei(t.widget),this.triggerContext.triggerData.contentID=t.contentID,this.triggerContext.triggerData.variation=this.variation=t.variation,this.triggerContext.triggerData.placement=t.placement,this.isExclusionWithBVariation=this.engagementTrigger.isExclusionTesting()&&this.variation==="b",this.isExclusionWithBVariation&&(this.rootContainer.style.height="0.5px"))}addToRendered(){as.renderedEngagements.push(this)}async getVariation(){b.log(`${this.engagementTrigger} get variation`);let t={engagementID:this.engagementTrigger.engagementID,isPreview:this.engagementTrigger.id==="preview"};try{return await this.widgetAPIService.getVariation(t)}catch(r){b.error(`${this.engagementTrigger} unable to get the variation`,r);return}}async observeWidgetContainerInViewport(){if(!this.rootContainer){b.warn(`${this.engagementTrigger} No root container found to watch for viewport`);return}let t=window.innerHeight*.3,r={root:null,rootMargin:`-${t}px 0px ${t}px 0px`,threshold:0};return await this.isInViewport()?this.getVariation():new Promise(n=>{let i=new IntersectionObserver((s,o)=>{s.forEach(async c=>{if(c.isIntersecting){b.log(`${this.engagementTrigger} root container is near the viewport. Fetching variation`);let u=await this.getVariation();n(u),o.unobserve(this.rootContainer)}})},r);i.observe(this.rootContainer),this.observers.push(i)})}attachScroll(){this.scrollSubscription=On(window,"scroll").pipe(ar(as.DEBOUNCE_TIME)).subscribe(()=>{this.checkAndSendEvent()})}async checkAndSendEvent(){let t=this.engagementTrigger.shortID;if(as.engagementIDsWithTrackedDisplay.has(t)||!await this.isInViewport())return;let r={};this.triggerContext.triggerData.items?.length&&(r.promotedMIDs=this.engagementTrigger.items?.map(s=>s.mID));let n=this.isExclusionWithBVariation?N.EVENT_CAMPAIGN_HOLDOUT:N.EVENT_TRIGGER_DISPLAYED,i=new _e(n,r,this.engagementTrigger);i.name===N.EVENT_CAMPAIGN_HOLDOUT&&(i.trigger.holdout=!0),this.safeHTTPService.sendEvent(i),as.engagementIDsWithTrackedDisplay.add(t),this.scrollSubscription.unsubscribe()}generateParentElementID(){return`letscooee-${this.engagementTrigger.shortID}`}async isInViewport(){let t=(await this.getWidgetContainer())?.getBoundingClientRect();if(!t)return!1;let r=window.innerHeight||document.documentElement.clientHeight,n=(Math.min(t.bottom,r)-Math.max(t.top,0))*t.width,i=t.width*t.height,s=n/i*100;return this.engagementTrigger.isAnySplit()?s>0:s>=30}async getWidgetContainer(t){if(this.rootContainer?.isConnected)return this.rootContainer;let r=await this.createParentElementWithPlacement(t);if(r)return r;let n=`.letscooee[data-engagement-id="${this.triggerContext.triggerData.shortID}"]`;return document.querySelector(n)}async createParentElementWithPlacement(t){let r=this.engagementTrigger.placement;if(!r?.selector)return b.warn(`${this.engagementTrigger} does not have a selector`),null;let n=r.selector,i;if(n.includes(N.SHADOW_SPLITTER)){let u=n.split(N.SHADOW_SPLITTER);i=(await re.retrySelector(u[0].trim()))?.shadowRoot,n=u[1].trim(),i&&dt.injectStylesheet(tr.styleURL,i);let p=Le.get().website.commonCSS;i&&p&&dt.injectRawCSS(p,i)}b.debug(`${this.engagementTrigger} attempt to render ${r.position}-${n}`);let s=await re.retrySelector(n,10,i??document);if(!s)return b.warn(`${this.engagementTrigger} no placement found with ${n}`),null;let o=this.generateParentElementID(),c=this.getParentElement(o);if(!t)return c;switch(r.position){case Go.EngagementPlacementPosition.BEFORE:{s.parentElement?.insertBefore(c,s);break}case Go.EngagementPlacementPosition.INSIDE_FIRST:{s.insertBefore(c,s.firstChild);break}case Go.EngagementPlacementPosition.INSIDE_LAST:{s.appendChild(c);break}case Go.EngagementPlacementPosition.AFTER:default:s.parentElement?.insertBefore(c,s.nextSibling)}return c}async startRendering(){let t;try{t=await Ui.refreshItems(this.engagementTrigger)}catch(r){b.error(`${this.engagementTrigger} error refreshing the items`,r);return}if(!t?.length&&this.engagementTrigger.isProductPromoted()){b.warn(`${this.engagementTrigger} is of ${this.engagementTrigger.objective} but no product found`);return}this.engagementTrigger.items=t,this.renderContainer()}getParentElement(t,r=document){let n=r.getElementById(t);if(n)return n;let i=this.engagementTrigger.shortID;return n=document.createElement("div"),n.id=t,n.className=`letscooee letscooee-engagement engagement-${i}`,n.dataset.engagementId=i,this.engagementTrigger.id==="preview"&&(n.className+=" letscooee-preview"),n.style.display="block",n.style.minHeight="0.5px",n.style.minWidth="0.5px",n}renderContainer(){if(!this.widget)return;let t=this.rootContainer;if(this.triggerContext.triggerData.hasSwiperElement()){let r=this.rootContainer?.shadowRoot||this.rootContainer?.attachShadow({mode:"open"}),n=Le.get().website.commonCSS;n&&dt.injectRawCSS(n,r),dt.injectStylesheet(tr.styleURL,r),dt.injectStylesheet("https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css",r),t=r}ns(Ki(Wo,{element:this.widget.cont,triggerContext:this.triggerContext,elements:this.widget.elems}),t),this.addToRendered()}updateItems(t,r){let n=this.getItemDiff(t,r),i=this.getItemDiff(r,t);r.push(...n);for(let s of i)fh.ArrayUtils.remove(r,s)}getItemDiff(t,r){return t.filter(n=>!r.some(i=>i.selectedOrFirstVariant.value.mID===n.selectedOrFirstVariant.value.mID))}},Rr=class Vh extends At{static renderedEngagements=[];constructor(t){super(t)}addToRendered(){Vh.renderedEngagements.push(this)}observeWidgetContainerInViewport(){return this.getVariation()}generateParentElementID(){let t=super.generateParentElementID();return this.engagementTrigger.isSubscriptionUpsell()&&(t+=`-${this.engagementTrigger.items[0].selectedOrFirstVariant.value.mID}`),t}async checkAndSendEvent(){if(!ze.get().isOpen()&&this.runtimeData.pageName!=="cart"){b.log("Do not send display event as neither the cart drawer nor the cart page is open.");return}return super.checkAndSendEvent()}},pc=class Gh{constructor(t,r){this.engagementTrigger=t,this.element=r,this.cartItems=de.getCurrent().items}cartItems;static renderCartUpsell(t){let r=t.placement;if(!r?.selector){b.warn(`No placement available for ${t.objective}`,t.shortID);return}let n=Array.from(document.querySelectorAll(r.selector));if(!n?.length){b.warn(`No placement found for ${t.objective}`,t.shortID);return}for(let i of n)new Gh(t,i).render()}render(){let t=this.findCartItemFromHTMLElement();if(!t||this.engagementTrigger.skipSubscribedItems&&t.selling_plan_allocation)return;let r=this.engagementTrigger.items.find(m=>m.mID===t.product_id.toString());if(!r)return;let n=r.vars.find(m=>m.mID===t.id.toString());if(!n)return;let i=new Sr(n),s=t.selling_plan_allocation?.selling_plan;if(s)for(let m of i.sellingPlans??[])m.mID===s.id.toString()&&(m.isSelected=!0,i.changeSellingPlan(m));let o=new Rt(r);o.vars=[i],o.selectedOrFirstVariant.value=i;let c=`lc-cart-item-${this.engagementTrigger.shortID}-${r.mID}`;this.element.classList.add(c);let u=new Mt(this.engagementTrigger);u.placement.selector=`.${c}`,u.items=[o];let p=new Rr(u);p.renderSilently(),this.watchForCartItemDeletion(p,c)}watchForCartItemDeletion(t,r){let n=new MutationObserver(i=>{i.forEach(s=>{s.removedNodes.forEach(o=>{o===this.element&&(b.debug(`${r} has been removed`),t.destroy(),n.disconnect())})})});n.observe(this.element.parentElement,{childList:!0,subtree:!0})}findCartItemFromHTMLElement(){let t=this.element.innerHTML;return this.cartItems.find(r=>{if(!(t.includes(r.url)||t.includes(r.variant_id))&&(!t.includes(r.product_title)||r.variant_title&&!t.includes(r.variant_title)))return!1;let n=r.selling_plan_allocation?.selling_plan?.name;return!(n&&!t.includes(n))})}},hh=Ce(Gr()),fc=class extends Rr{ctaListener=new en;constructor(e){super(e),Dr.get().subscriber(N.CART_UPDATE_BROADCAST).pipe(qu(null)).subscribe(this.checkMilestone.bind(this))}update(e){super.update(e),this.widgetElement.update()}shouldStopRendering(){return!1}renderContainer(){if(this.widgetElement?.isConnected){this.addToRendered();return}let e=this.widgetElement=document.createElement("cooee-progressbar");e.className="cooee-root",e.cart=de.getCurrent(),e.engagementTrigger=this.engagementTrigger,e.setAttribute("engagement",this.engagementTrigger.shortID),this.rootContainer.appendChild(e),this.addToRendered()}async checkMilestone(){let e=await de.getCurrent().getNormalisedCart(),t=[...this.engagementTrigger.progressBarConfig.milestones].reverse().find(r=>r.minValue<e.amount);if(!t){b.log("No milestone achieved yet");return}if(b.log("Current milestone",t),t.rewardType===hh.MilestoneRewardType.FREE_AUTO_GIFT){let r=t.items[0];if(e.items.find(n=>n.vID===r.vID||n.mID===r.mID)){b.log(`Item(vID:${r.vID}) already present in the cart. Updating item's properties`),await this.ctaListener.performUpdate(r,{properties:this.engagementTrigger.getPrivateAttributesForLineItem()});return}else{let n=await this.ctaListener.performAddToCart([r],this.engagementTrigger);ze.get().refreshUI(n,!1),await this.removeOtherFreeGifts(r)}}}async removeOtherFreeGifts(e){let t=(await de.getCurrent().getNormalisedCart()).items.filter(r=>r.vID!==e?.vID&&r.properties[N.CAMPAIGN_ATTRIBUTE]===this.engagementTrigger.shortID);if(t.length)for(let r of t)await this.ctaListener.performUpdate(r,{quantity:0})}},gh=new br({t:12,style:{lg:{spc:{p:5,pl:5,pr:5,pt:5,pb:5},size:{w:"100%",h:"auto"},br:{r:4,w:0,s:1,c:{h:"#94a3b8",a:100}}},sm:{spc:{p:5,pl:5,pr:5,pt:5,pb:5},size:{w:"240px",h:"auto"},br:{r:0,w:0,s:1,c:{h:"#94a3b8",a:100}}}},elems:[{t:4,style:{lg:{spc:{},lout:{of:"cover",disp:"flex"},flex:{gap:10,dir:"row",wrap:"nowrap",jc:"center",ai:"center"}},sm:{spc:{},lout:{of:"cover",disp:"flex"},flex:{gap:10,dir:"row",wrap:"nowrap",jc:"center",ai:"center"}}},clc:{},elems:[{t:13,style:{lg:{spc:{mb:5},size:{w:"70px",h:"auto"},lout:{of:"cover"}},sm:{spc:{mb:5},size:{w:"80px",h:"auto"},lout:{of:"cover"}}},src:"{{{ product.image_url }}}"},{t:4,style:{lg:{spc:{mb:10},lout:{of:"cover",disp:"flex"},flex:{gap:5,dir:"column",wrap:"nowrap",jc:"start",ai:"start"}},sm:{spc:{mb:10},lout:{of:"cover",disp:"flex"},flex:{gap:7,dir:"column",wrap:"nowrap",jc:"start",ai:"start"}}},clc:{},elems:[{t:14,style:{lg:{spc:{},size:{w:"auto",h:"auto"},typo:{italic:!1,bold:!1,lh:1.2,fs:13,tc:{h:"#313131",a:100},ta:0,fw:600,ls:0,fam:{name:"Arial",g:!0}}},sm:{spc:{},size:{w:"auto",h:"auto"},typo:{italic:!1,bold:!1,lh:1.2,fs:12,tc:{h:"#575757",a:100},ta:0,fw:500,ls:0,fam:{name:"Arial",g:!0}}}},text:"{{ product.name }}"},{t:4,style:{lg:{spc:{},lout:{of:"cover",disp:"flex"},flex:{gap:10,dir:"row",wrap:"nowrap",jc:"start",ai:"start"}},sm:{spc:{},lout:{of:"cover",disp:"flex"},flex:{gap:10,dir:"row",wrap:"nowrap",jc:"start",ai:"center"}}},clc:{},elems:[{t:2,style:{lg:{spc:{},typo:{italic:!1,bold:!1,lh:1.2,td:"line-through",fs:14,tc:{h:"#64748b",a:100},ta:1,fw:400,ls:0,fam:{name:"Arial",g:!0}}},sm:{spc:{},typo:{italic:!1,bold:!1,lh:1.2,td:"line-through",fs:12,tc:{h:"#64748b",a:100},ta:1,fw:400,ls:0,fam:{name:"Arial",g:!0}}}},text:"{{ product.compare_price }}"},{t:2,style:{lg:{spc:{},typo:{italic:!1,bold:!1,lh:1.2,fs:14,tc:{h:"#000000",a:100},ta:1,fw:500,ls:0,fam:{name:"Arial",g:!0}}},sm:{spc:{},typo:{italic:!1,bold:!1,lh:1.2,fs:13,tc:{h:"#000000",a:100},ta:1,fw:500,ls:0,fam:{name:"Arial",g:!0}}}},text:"{{ product.price }}"},{t:2,style:{lg:{spc:{p:0,pl:0,pr:0,pt:0,pb:0,m:0,ml:0,mr:10,mt:0,mb:0},typo:{italic:!1,bold:!1,lh:1.2,fs:18,tc:{h:"#64748b",a:100},ta:1,fw:600,ls:0}},sm:{spc:{p:0,m:0,mr:10},typo:{italic:!1,bold:!1,lh:1.2,fs:18,tc:{h:"#64748b",a:100},ta:1,fw:600,ls:0}}},hide:!0,text:"Save {{ product.discount_price }}",when:{lhs:"{{ product.discount_price }}",op:"gt",rhs:0}},{t:2,style:{lg:{spc:{p:0,pl:0,pr:0,pt:0,pb:0,m:0,ml:0,mr:10,mt:0,mb:0},typo:{italic:!1,bold:!1,lh:1.2,fs:12,tc:{h:"#0d8d00",a:100},ta:1,fw:400,ls:0,fam:{name:"DINNextRoundedLTPro-Medium"}}},sm:{spc:{p:0,m:0,mr:10},typo:{italic:!1,bold:!1,lh:1.2,fs:18,tc:{h:"#64748b",a:100},ta:1,fw:600,ls:0}}},hide:!0,text:"({{ product.discount_percent }}% off)",when:{lhs:"{{ product.discount_percent }}",op:"gt",rhs:0}}]},{t:4,style:{lg:{spc:{},lout:{of:"cover",disp:"flex"},flex:{gap:5,dir:"row",wrap:"nowrap",jc:"start",ai:"center"}},sm:{spc:{},lout:{of:"cover",disp:"flex"},flex:{gap:5,dir:"row",wrap:"nowrap",jc:"start",ai:"center"}}},clc:{},elems:[{t:3,style:{lg:{spc:{p:7,pl:7,pr:7,pt:7,pb:7},size:{w:"100%",h:"auto"},bg:{s:{h:"#000000",a:100}},br:{r:0,w:0,s:1,c:{a:100}},typo:{italic:!1,bold:!1,lh:1.2,fs:12,tc:{h:"#ffffff",a:100},ta:1,fw:400,ls:0,fam:{name:"Arial",g:!0}}},sm:{spc:{p:7,pl:7,pr:7,pt:8,pb:8},size:{w:"70%",h:"auto"},bg:{s:{h:"#000000",a:100}},br:{r:0,w:0,s:1,c:{a:100}},typo:{italic:!1,bold:!1,lh:1.2,fs:12,tc:{h:"#ffffff",a:100},ta:1,fw:400,ls:0,fam:{name:"Arial",g:!0}}}},text:"Add",clc:{at:102},allowedTypes:[102]}]}]}]}]}),yh=new Xe({t:2,style:{lg:{spc:{mb:15},typo:{italic:!1,bold:!1,lh:1.2,fs:16,tc:{h:"#333333",a:100},ta:1,fw:700,ls:.5,fam:{name:"Arial",g:!0}}},sm:{spc:{mb:15},typo:{italic:!1,bold:!1,lh:1.2,fs:16,tc:{h:"#333333",a:100},ta:1,fw:700,ls:.5,fam:{name:"Arial",g:!0}}}},text:"WATCH & SHOP - NEW LAUNCHES"}),Vo=class extends xe{render(){return k("div",{style:{marginTop:30},class:"lc-container",children:[k(xt,{element:yh,triggerContext:this.props.triggerContext}),k("div",{style:this.getComponentStyles(),children:this.props.triggerContext.triggerData.items.map(e=>{if(e.portraitVideos?.length)return e.portraitVideos.map(t=>k("div",{className:"lc-shoppable-video",style:{flex:"1 1 0",width:"260px"},children:[k("a",{href:e.link,onClick:()=>{this.sendTriggerClicked([new pt(e)],{from:"video"})},children:k("video",{width:"100%",autoplay:!0,muted:!0,loop:!0,children:this.getSources(t.sources)})}),k(Hr,{element:gh,item:e,triggerContext:this.props.triggerContext})]}))})})]})}getSources(e){let t=e.map(i=>k("source",{src:i.url,type:i.mimeType,media:`(max-width:${i.width}px)`})),r=e.filter(i=>i.format==="mp4").sort((i,s)=>s.width-i.width)[0];r&&t.push(k("source",{src:r.url,type:r.mimeType}));let n=e.filter(i=>i.format==="m3u8").sort((i,s)=>s.width-i.width)[0];return n&&t.push(k("source",{src:n.url,type:n.mimeType})),t}getComponentStyles(){return{display:"flex",gap:10,overflowX:"auto",margin:10}}},mc=class extends At{constructor(e){super(e)}shouldStopRendering(){return!1}renderContainer(){ns(Ki(Vo,{element:this.widget?.cont,triggerContext:this.triggerContext}),this.rootContainer)}},vh=Ce(Zn()),dc=class extends At{constructor(e){super(e)}shouldStopRendering(){return!1}renderContainer(){let e=this.getParentElement(`inner-letscooee-${this.engagementTrigger.shortID}`);this.rootContainer.appendChild(e),document.addEventListener(N.ADD_BUNDLE_CTA_INBOUND_EVENT,this.inboundCTAListener.bind(this),!1)}async inboundCTAListener(e){let t=this.engagementTrigger,r=`Engagement(id: ${t.engagementID}, shortID: ${t.shortID})`,n=e.detail;if(!vh.JSUtils.hasKeys(n)){b.error(`No detail received for ${r}`);return}b.log("Detail received for BYOB",n);let i=n.campaignID??n.campaignId??n.campaign_id;if(i!==t.shortID&&i!==t.engagementID){b.warn(`Current ${r} is not BYOB. Received: ${i}`);return}let s=n.items;if(!s?.length)return;let o=s.map(c=>new pt({mID:c.product_id,vID:c.variant_id,quantity:c.quantity||1}));await new ki(this.triggerContext).execute({embeddedItems:o,clickAction:{at:108,applyDiscount:!0}})}},Fi=class{runtimeData=le.get();processCartWidgetResponse(e){this.runtimeData.isCartDirty=!1,this.runtimeData.cartEngagements=e;let t=[...Rr.renderedEngagements];Rr.renderedEngagements.length=0;for(let r of e)b.log(`\u{1F4E3} ${r} received as cart embed`),!this.findAndUpdateCurrent(r,t)&&(b.log(`${r} is new`),r.isProgressBar()?new fc(r).renderSilently():r.isSubscriptionUpsell()?pc.renderCartUpsell(r):new Rr(r).renderSilently());this.removeOldWidgets(t)}processPageWidgetResponse(e){let t=[...At.renderedEngagements];At.renderedEngagements.length=0;for(let r of e)b.log(`\u{1F4E3} ${r} received as page embed`),!this.findAndUpdateCurrent(r,t)&&(b.log(`${r} is new`),r.isShoppableVideo()?new mc(r).renderSilently():r.isBYOB()?new dc(r).renderSilently():new At(r).renderSilently());this.removeOldWidgets(t)}findAndUpdateCurrent(e,t){let r=t.findIndex(n=>n.isSameTrigger(e));return r<0||e.isSubscriptionUpsell()?!1:(t[r].update(e),t[r].renderSilently(),t.splice(r,1),!0)}removeOldWidgets(e){for(let t of e)t.destroy()}},cr=class Wh{static INSTANCE;httpService=pe.get(ht);sessionManager=pe.get(st);runtimeData=le.get();loadWidgetsSubject=new Ct;constructor(){this.loadWidgetsSubject.pipe(ar(300)).subscribe(()=>{this.loadCartWidgets().catch(t=>b.error("Unable to initiate cart widgets",t)),this.loadPageWidgets().catch(t=>b.error("Unable to initiate page widgets",t))}),Dr.get().subscriber(N.CART_UPDATE_BROADCAST).subscribe(()=>this.loadWidgetsSubject.next())}static getInstance(){return this.INSTANCE||(this.INSTANCE=new Wh),this.INSTANCE}loadOrRenderWidgetsAfterCartChange(){this.runtimeData.isCartDirty?this.loadWidgetsSilently():this.renderCachedCartWidgets()}loadPageWidgetsSilently(){st.replaySubject.subscribe(async()=>{this.loadPageWidgets().catch(t=>b.error("Unable to initiate load page widgets",t))})}loadCartWidgetsSilently(){st.replaySubject.subscribe(async()=>{this.loadCartWidgets().catch(t=>b.error("Unable to initiate cart widgets",t))})}loadWidgetsSilently(){st.replaySubject.subscribe(async()=>{this.loadWidgetsSubject.next()})}async loadPageWidgets(){let t=await this.getWidgetProps();b.log("Load widgets",t),this.httpService.post("/v1/engagement/page-widgets",t).then(async r=>{let n=r.widgets.map(i=>new Mt(i));new Fi().processPageWidgetResponse(n)}).catch(r=>{b.error("Error sending widget getter",r)})}async loadCartWidgets(){let t=await this.getWidgetProps();b.log("Load cart widgets",t),this.httpService.post("/v1/engagement/cart-widgets",t).then(async r=>{let n=r.widgets.map(i=>new Mt(i));new Fi().processCartWidgetResponse(n)}).catch(r=>{b.error("Error sending widget getter",r)})}async getVariation(t){let r=await this.getWidgetProps();return this.httpService.post("/v1/engagement/get-variant",w(w({},t),r))}renderCachedCartWidgets(){new Fi().processCartWidgetResponse(this.runtimeData.cartEngagements)}async addSessionContext(t){let r=await this.sessionManager.checkSessionAndGetContext();t.sessionID=r[0],t.sessionNumber=r[1],t.landingPage=r[2],t.page=Cr.parseFromCurrent()}addAvailableEngagementShortIDs(){let t=document.querySelectorAll(".letscooee-engagement"),r=[];return t.forEach(n=>{let i=n.dataset.engagementId;i&&+i&&r.push(i)}),r}async getWidgetProps(){let t={};t.engagementIDs=this.addAvailableEngagementShortIDs(),await this.addSessionContext(t),t.currentItem=this.runtimeData.getCurrentItem();try{t.cart=await de.getCurrent().getNormalisedCart()}catch(s){b.error("Error fetching Shopify cart before sending widget call",s)}let r=new URLSearchParams(location.search),n=r.get("cooee-preview");n?t.previewIDs=n.trim().split(",").filter(s=>Number.isInteger(+s)):this.runtimeData.previewIDs?.length&&(t.previewIDs=this.runtimeData.previewIDs);let i=r.get("cooee-variant");return i?t.previewVariant=i:this.runtimeData.previewVariant&&(t.previewVariant=this.runtimeData.previewVariant),t}},hc=class{runtimeData=le.get();widgetAPIService=pe.get(cr);meddle(){let e=we.globalRef;e.account=e.account??[],e.profile=e.profile??[],e.events=e.events??[],e.screen=e.screen??[],e.page=e.page??[],this.meddlePage(),this.meddleAccount(),this.meddleEvents(),this.meddleProfile(),this.meddleScreen(),this.exposeMethods()}exposeMethods(){let e=we.globalRef;e.loadPageWidgets=()=>{this.widgetAPIService.loadPageWidgetsSilently()},e.loadCartWidgets=()=>{this.widgetAPIService.loadCartWidgetsSilently()},e.previewWidget=we.previewWidget.bind(we),e.previewPopup=we.previewPopup.bind(we)}overwritePush(e,t){ci(e,"push",t)}meddleAccount(){this.overwritePush(we.globalRef.account,(...e)=>{this.processAccount(e[0])}),we.globalRef.account.forEach(this.processAccount.bind(this))}meddleEvents(){this.overwritePush(we.globalRef.events,(...e)=>{this.processEvent(e[0])}),we.globalRef.events.forEach(this.processEvent.bind(this))}meddleProfile(){this.overwritePush(we.globalRef.profile,(...e)=>{this.processProfile(e[0])}),we.globalRef.profile.forEach(this.processProfile.bind(this))}meddleScreen(){this.overwritePush(we.globalRef.screen,(...e)=>{this.processPageName(e[0])}),we.globalRef.screen.forEach(this.processPageName.bind(this))}processAccount(e){e&&(e.appID&&we.authenticate(e),e.flags&&Ln.setFlags(e.flags))}processEvent(e){e&&(N.JS_LOAD_WHITELIST_EVENTS.includes(e[0])?we.sendEvent(e[0],e[1],this.runtimeData.jsLoadTime):we.sendEvent(e[0],e[1]))}processProfile(e){e&&we.updateProfile(e)}processPageName(e){e&&we.setPageName(e)}meddlePage(){this.overwritePush(we.globalRef.page,(...e)=>{this.processPage(e[0])}),we.globalRef.page.forEach(this.processPage.bind(this))}processPage(e){e.currentItem&&this.runtimeData.setCurrentItem(e.currentItem),e.currency&&(this.runtimeData.currencyCode=e.currency),e.shopCurrency&&(this.runtimeData.shopCurrencyCode=e.shopCurrency),e.moneyFormat&&(this.runtimeData.moneyFormat=e.moneyFormat),e.jsLoad&&(this.runtimeData.jsLoadTime=e.jsLoad),e.pageName&&we.setPageName(e.pageName)}},Hi=class{static SESSION_STORAGE=window.sessionStorage;static SESSION_STORAGE_KEY_PREFIX=N.COOEE.concat("-");static getString(e,t){return this.getItem(e)||t}static setString(e,t){this.setItem(e,t)}static remove(e){this.removeItem(e)}static getItem(e){return this.SESSION_STORAGE.getItem(this.SESSION_STORAGE_KEY_PREFIX.concat(e))}static setItem(e,t){this.SESSION_STORAGE.setItem(this.SESSION_STORAGE_KEY_PREFIX.concat(e),t)}static removeItem(e){this.SESSION_STORAGE.removeItem(this.SESSION_STORAGE_KEY_PREFIX.concat(e))}},$i=class Xo{static INSTANCE;static DEBOUNCE_TIME=1e3;static THRESHOLD=10;safeHttpService=pe.get(fe);_lastScreenOrScroll=new Date;lastPercent=0;constructor(){}set lastScreenOrScroll(t){this._lastScreenOrScroll=t}static getInstance(){return this.INSTANCE||(this.INSTANCE=new Xo),this.INSTANCE}resetScrollID(t){Hi.remove(N.SESSION_STORAGE_SCROLL_ID),this.lastScreenOrScroll=t??new Date}listen(){if(window.scrollY){let t=this.getPercentScrolledY();this.shouldSendScroll(t)&&this.sendScroll(t)}re.onDocumentLoaded(()=>{this.observeWindowScroll()})}observeWindowScroll(){On(window,"scroll").pipe(ar(Xo.DEBOUNCE_TIME),Nn(()=>{let t=this.getPercentScrolledY();if(t>100){b.warn("Received scroll percent is more than 100",t);return}if(this.shouldSendScroll(t))return t})).subscribe(t=>{this.sendScroll(t)})}shouldSendScroll(t){return Math.abs(this.lastPercent-t)>=Xo.THRESHOLD||this.lastPercent!==t&&t===100}sendScroll(t){if(t==null)return;let r={percent:t,timeMS:new Date().getTime()-this._lastScreenOrScroll.getTime()};this.lastPercent=t;let n=Hi.getString(N.SESSION_STORAGE_SCROLL_ID,""),i=new _e(N.EVENT_SCROLL,r,null,n);this.safeHttpService.sendEvent(i),Hi.setString(N.SESSION_STORAGE_SCROLL_ID,i.id.toHexString()),this._lastScreenOrScroll=new Date(i.occurred)}getPercentScrolledY(){let t=window.document.body.scrollHeight,r=window.innerHeight;return Math.ceil((window.scrollY+r)/t*100)}},gc=class qh{static ACTIVE_DURATION="aDur";static INACTIVE_DURATION="iaDur";apiService=pe.get(fe);runtimeData=le.get();listen(){document.onvisibilitychange=()=>{document.visibilityState==="visible"?this.onVisible():document.visibilityState==="hidden"&&this.onHidden()}}async onVisible(){}async onHidden(){let t=await this.runtimeData.setInactive();if(t===0){b.info("Not sending background event as user was inactive on website");return}b.info(`Sending background event with ${t} seconds`);let r={};r[qh.ACTIVE_DURATION]=t,this.apiService.sendEvent(new _e(N.EVENT_APP_BACKGROUND,r))}},yc=class{compareCartItemSubject=new Ct;constructor(){this.compareCartItemSubject.pipe(ar(100)).subscribe(this.compareCartItems.bind(this))}listen(){this.compareCartItemSubject.next(),this.overwriteXMLHttpRequest(),this.overwriteFetchMethod()}overwriteXMLHttpRequest(){let e=this,t=window.XMLHttpRequest.prototype.send;window.XMLHttpRequest.prototype.send=function(){return this.addEventListener("load",function(){e.performEvent(this._url).catch(r=>b.error("Unable to process cart change in XMLHttpRequest",r))}),t.apply(this,arguments)},b.debug("Securely overwritten window.XMLHttpRequest.send method")}overwriteFetchMethod(){let e=this,t=window.fetch;window.fetch=function(r){return t.apply(window,arguments).then(n=>(e.performEvent(r.toString()).catch(i=>b.error("Unable to process cart change in fetch",i)),n))},b.debug("Securely overwritten window.fetch method")}async performEvent(e){this.isCartManipulationURL(e)&&(le.get().isCartDirty=!0,this.compareCartItemSubject.next())}isCartManipulationURL(e){return/\/cart\/(add|change|update|clear)/.test(e)}sendChangesAsEvents(e,t){let r=e?.items,n=t.items,i=[],s=[];if(b.debug(`Comparing cart change with old count ${r?.length} to new count ${n.length}`),n?.forEach(o=>{let c=r?.find(u=>u.vID===o.vID);if(c){if(c.quantity!==o.quantity){let u=c.quantity<o.quantity,p=Math.abs(c.quantity-o.quantity),m=ee(w({},o),{quantity:p});u?i.push(m):s.push(m)}r&&re.removeFromArray(r,c)}else i.push(o)}),r)for(let o of r)s.push(o);b.debug(`Cart delta: added: ${i.length}, removed: ${s.length}`),i.length&&this.sendEvent(N.EVENT_ADD_TO_CART,{items:i}),s.length&&e.token===t.token&&this.sendEvent(N.EVENT_REMOVE_FROM_CART,{items:s}),(s.length||i.length)&&Dr.get().broadcast(N.CART_UPDATE_BROADCAST,{itemsAdded:i,itemsRemoved:s})}sendEvent(e,t){let r=new _e(e,t);pe.get(fe).sendEvent(r)}async compareCartItems(){let e=await Oe.get(oe.CURRENT_CART,{}),t=await de.getCurrent().getNormalisedCart(!0);this.sendChangesAsEvents(e,t)}},vc=class{listen(){return this.overwriteFetchMethod(),this}overwriteFetchMethod(){let e=this,t=window.fetch;window.fetch=async function(r,n){try{await e.modifyRequest(r,n)}catch(i){Be.getInstance().captureError("Failed to modify graphql request",i,{body:JSON.stringify(n?.body)})}return t(r,n)},b.debug("Securely overwritten window.fetch method for graphql query")}async modifyRequest(e,t){let r=typeof e=="string"?e:e instanceof Request?e.url:"";if(!(r.includes("graphql.json")&&t?.method==="POST")||!t.body)return;let n;if(typeof t.body=="string")try{n=JSON.parse(t.body)}catch{return}else n=t.body;b.debug("Intercepted fetch request of:",r),n?.query.includes("cartCreate")&&(t.body=await this.updatedBody(n),this.sendBuyNowEvent())}async updatedBody(e){let t=e.variables.input.attributes??[],r=await re.getCartAttributes();return e.variables.input.attributes=[...t,...r],JSON.stringify(e)}sendBuyNowEvent(){let e=le.get().getCurrentItem();if(!e)return;let t=new _e(N.EVENT_BUY_NOW_CLICKED,{items:[e]});fe.getInstance().sendEvent(t)}},ji=class{constructor(e,t){this.selectors=e,this.eventName=t,this.selectorString=e.join(",")}static INSTANCE;elements;selectorString;clickListenerCallback=e=>{let t=e.currentTarget,r=new _e(this.eventName,{class:t.className||void 0,tagName:t.tagName||void 0,id:t.id||void 0});fe.getInstance().sendEvent(r),this.removeClickListener(this.clickListenerCallback)};listenSilently(){this.listen().catch(e=>b.error(e))}async listen(){this.elements=await re.retrySelectorForElements(this.selectorString),this.elements.forEach(e=>{e.addEventListener("click",this.clickListenerCallback)})}removeClickListener(e){this.elements?.forEach(t=>{t.removeEventListener("click",e)})}},_c=class Rc extends ji{static selectors=[".product__thumbnail-list-inner > button","product-gallery-navigation > button",".product-media--thumb-container",".product-images-inner > img",".m-product-media",".swiper-button-control",".media__thumb",".slick-arrow",".productView-img-container.product-single__media",".product-gallery__thumbnail_item_inner"];constructor(){super(Rc.selectors,N.EVENT_ITEM_THUMBNAIL_CLICKED)}static getInstance(){return this.INSTANCE||(this.INSTANCE=new Rc),this.INSTANCE}},Ec=class tl extends ji{static selectors=[".jdgm-widget.jdgm-preview-badge.jdgm-preview-badge--with-link.jdgm--done-setup","reviewsio-product-ratings",".ruk_rating_snippet.tracked:not(.hidden)","a > .loox-rating",".yotpo-reviews-star-ratings-widget",".yotpo.lp-hero__reviews",".pr-rating > a",".rivyoReviewWidget"];constructor(){super(tl.selectors,N.EVENT_REVIEW_CLICKED)}static getInstance(){return this.INSTANCE||(this.INSTANCE=new tl),this.INSTANCE}},Sc=class{selector=[".gokwik-checkout button","button.cart__checkout-button","button.cart__checkout","button#checkout","button#checkout2",'button[id*="checkout" i]','button[name*="checkout" i]','button[class*="checkout" i]'].join(",");listen(){re.onDocumentLoaded(()=>{b.debug("Execution order:","document ready"),this.useLocationHash()})}useLocationHash(){let e=window.location.hash?.substring(1);if(e)if(e.includes(N.HASH_INITIATE_CHECKOUT)){document.dispatchEvent(new Event(N.THIRD_PARTY_CHECKOUT_EVENT));let t=document.querySelector(this.selector);if(!t){b.debug("No clickable cart checkout button found");return}b.debug("Clickable cart checkout button found",t),t.click()}else e.includes(N.HASH_OPEN_CART_DRAWER)&&ze.get().open()}},wc=class{trackSilently(){this.track().catch(e=>Be.getInstance().captureException(e))}async track(){let e=window.Shopify?.checkout,t=window.Shopify?.Checkout;if(!e&&!t)return;let r={};this.processSmallCheckout(e,r),this.processBigCheckout(t,r);let n=this.getTokenFromCurrentURLPath();if(n&&(r.urlToken=n),!Object.keys(r).length){b.warn("No processable data found in",e,t);return}r.referrer=document.referrer,r.url=location.href;let i=await pe.get(st).checkSessionAndGetContext();r.sessionID=i[0],this.trackOrder(r)}processSmallCheckout(e,t){e&&(e.order_id&&(t.orderID=e.order_id.toString()),e.token&&(t.checkoutToken=e.token.toString()),e.customer_id&&(t.customerID=e.customer_id.toString()))}processBigCheckout(e,t){e&&(e.token&&!t.checkoutToken&&(t.checkoutToken=e.token.toString()),e.cartToken&&(t.cartToken=e.cartToken.toString()))}trackOrder(e){b.info("Found order to be send",e),fe.getInstance().trackOrder(e)}getTokenFromCurrentURLPath(){let e=new RegExp("[A-Fa-f0-9]{28,32}");return location.pathname?.split("/").find(t=>t.length&&e.test(t))}},Yo=class{static attachCheckoutListener(){window.gokwikSdk&&window.gokwikSdk.on("checkout_initiated",async()=>{let e=await de.getCurrent().getNormalisedCart(),t={via:"GoKwik",items:e.items,cartToken:e.token,amount:{value:e.amount,currency:e.currency}},r=new _e(N.EVENT_CHECKOUT_STARTED,t);fe.getInstance().sendEvent(r)})}},bc=class{async migrate(){}};Et.escape=_h.MustacheUtils.escapeHtml;var we=class{static globalRef;static authenticated;static async initForMerchantWebsiteOnly(){window.cooeeSDKPreview||(this.initGlobalReference(),await new bc().migrate(),this.autoAuthenticate(),new hc().meddle(),new gc().listen(),new wc().trackSilently(),new en().listen(),new yc().listen(),new vc().listen(),new Sc().listen(),pe.get($i).listen(),pe.get(Ec).listenSilently(),pe.get(_c).listenSilently(),pe.get(cr).loadPageWidgetsSilently(),this.attachGoKwikListeners(),this.storePreviewParams(),this.setupPreviewListeners(),Zt.watch())}static async initForAll(){this.injectWidgetAssets()}static initGlobalReference(){window.CooeeSDK||ci(window,"CooeeSDK",{}),this.globalRef=window.CooeeSDK,ci(this.globalRef,"config",new Le),ci(this.globalRef,"runtimeData",new le),b.debug("Global reference initialised")}static injectWidgetAssets(){if(document.currentScript.src.includes("localhost")){let e="http://localhost:8002";dt.injectScriptURL(`${e}/main.js`),dt.injectStylesheet(`${e}/styles.css`)}else{let e=`https://cdn.jsdelivr.net/npm/@letscooee/web-sdk@${N.SDK_VERSION}`;dt.injectScriptURL(`${e}/dist/widget-sdk.min.js`,"cooee-widget-sdk"),dt.injectStylesheet(`${e}/dist/widget-sdk.min.css`)}}static autoAuthenticate(){let e=Pe.getShopName();e&&this.authenticate({shopifyShop:e})}static authenticate(e){if(this.authenticated)return;let t=e.appID?.trim(),r=e.shopifyShop;if((re.isNull(t)||t.length!==24)&&re.isNull(r)){b.warn("Cooee App ID or Shop name is not configured");return}this.authenticated=!0,pe.get(st).init(e)}static sendEvent(e,t,r){for(let i in t)if(i.length>3&&i.toLowerCase().startsWith("ce "))throw new Error("Event property name cannot start with 'CE '");let n=new _e(e,t);n.occurred=r??new Date,pe.get(fe).sendEvent(n)}static updateProfile(e){for(let t in e)if(t.toLowerCase().startsWith("ce "))throw new Error("User property name cannot start with 'CE '");pe.get(fe).updateProfile(e)}static setPageName(e){if(!e)return;let t=le.get(),r=t.pageName;if(e===r)return;if(t.pageName=e,e==="cart"&&pe.get(cr).loadOrRenderWidgetsAfterCartChange(),N.BLACKLISTED_PAGE_NAMES.some(s=>e.includes(s))){pe.get($i).resetScrollID();return}let n={};r&&(n.ps=r);let i=new _e(N.EVENT_SCREEN_VIEW,n);i.occurred=t.jsLoadTime,pe.get(fe).sendEvent(i),pe.get($i).resetScrollID(i.occurred)}static previewPopup(e,t){new Bi(t).render(e)}static previewWidget(e){new At(new Mt(e)).render()}static setupPreviewListeners(){if(window.opener){try{window.opener.postMessage({action:"COOEE_READY_FOR_PREVIEW"},"*")}catch(e){b.error(e)}window.addEventListener("message",e=>{if(b.debug("Received event",e),!e.origin.includes("letscooee.com")&&!e.origin.includes("localhost"))return;let t=e.data;typeof t=="object"&&(t.action==="POPUP_PREVIEW"?(this.previewPopup(t.engagementTrigger),e.source?.postMessage({action:"PREVIEW_SUCCESSFUL"},e.origin)):t.action==="WIDGET_PREVIEW"&&(this.previewWidget(t.engagementTrigger),e.source?.postMessage({action:"PREVIEW_SUCCESSFUL"},e.origin)))})}}static attachGoKwikListeners(){let e=le.get();window.addEventListener("kp-modal:opened",()=>{e.isGoKwikPopupOpen=!0}),window.addEventListener("user-loggedin",t=>{let{token:r}=t.detail;r&&this.updateProfile({goKwikToken:r})}),window.gokwikSdk?Yo.attachCheckoutListener():window.addEventListener("gokwikLoaded",Yo.attachCheckoutListener)}static storePreviewParams(){let e=le.get(),t=new URLSearchParams(location.search),r=t.get("cooee-preview");r&&(e.previewIDs=r.trim().split(",").filter(i=>Number.isInteger(+i)));let n=t.get("cooee-variant");n&&(e.previewVariant=n)}};b.configure();b.logBrand();b.debug("Execution order:","top");window.cooeeShopifyScriptLoaded||(window.cooeeShopifyScriptLoaded=!0,(async()=>(b.debug("Execution order:","IIFE start"),await we.initForMerchantWebsiteOnly(),await we.initForAll(),b.debug("Execution order:","IIFE end")))());b.debug("Execution order:","bottom");})();