(window.OLAPIC_WIDGETS_DATA['9efab97f5d284af8e9f8db7755d349bc'].chunks).push([[4],{8:function(t,s,i){"use strict";i.r(s);class e{create(t,s=30){Object.assign(t,{expires:this.t(s)});const i=Object.keys(t).map((s=>`${s}=${t[s]}`)).join("; ");globalThis.document.cookie=i}read(t){return globalThis.document.cookie.split(";").reduce(((t,s)=>{const[i,e]=s.trim().split("=");return Object.assign({[i]:e},t)}),{})[t]||null}t(t=30){return new Date((new Date).getTime()+1e3*t*60*60*24)}}const h=()=>new e;class n{constructor(t,s,i){this.i=t,this.currentAnalyticsCookieId=null,this.h="https://data.photorank.me",this.o=s,this.u={},this.l={analytics_tracking:!0,cookie_type:"client_side",name:"__olapicU",path:"/",daysExpirationTime:30},this.g={WIDGET:`/track/widget/${i}/{source}/{tag}/{action}.gif`,MEDIA:`/track/widget/${i}/{source}/{tag}/media/{media_ids}/{action}.gif`,SHOP:`/track/widget/${i}/{source}/{tag}/media/{media_ids}/shop.gif`},this._=i,this.p=["analytics_id","auth_token","pics","redirect_url","segments"],this.$={},this.k={best:/^best_photos$/,stream:/^by_(gallery|tag)$/i,category:/^by_(tag_)?category$/i},this.m=null,this.O={}}enableAnalyticsCookie(){return this.currentAnalyticsCookieId=this.o.read(this.u.name),this.currentAnalyticsCookieId||"client_side"!==this.u.cookie_type||this.o.create(this.j(),this.u.daysExpirationTime),this}refreshSource(){const t=this.i(),s=t.sources[t.active];if(this.m=s.id,!this.O[s.id]){const t=s.type||s.entity_type;this.O[s.id]={requiresTagId:!!t.match(/^by_tag(_category)?$/i),tag:s.entity_id||null,hasTagId:!(!s.entity_id||Number.isNaN(s.entity_id)),apiType:this.T(t)}}const i=this.O[s.id];i.requiresTagId&&!i.hasTagId&&s.content.tagId&&!Number.isNaN(s.content.tagId)&&this.setTagId(s.content.tagId)}setCustomerAnalyticsConfig(t){return this.refreshSource(),this.$=this.I(this.p,t),this.u=Object.assign({},this.l,this.I(Object.keys(this.l),t)),this}setTagId(t){const s=this.O[this.m];s&&s.requiresTagId&&(s.tag=t,s.hasTagId=!0)}track(t,s,i={}){const e=this.D(t,s,i);return this.C(e)}get hasTagId(){const t=this.O[this.m];return!(!t||!t.hasTagId)}get requiresTagId(){const t=this.O[this.m];return!(!t||!t.requiresTagId)}I(t,s){return Object.keys(s).filter((s=>t.includes(s))).reduce(((t,i)=>Object.assign({[i]:s[i]},t)),{})}T(t){const s=Object.entries(this.k).find((([,s])=>t.match(s)));return s?s[0]:t}A(){return(new Date).getTime()+Math.floor(999*Math.random()+1)}j(){this.currentAnalyticsCookieId=this.A();const t={[this.u.name]:this.currentAnalyticsCookieId};return this.u.domain&&(t.domain=this.u.domain),this.u.path&&(t.path=this.u.path),t}D(t,s,i){const e=this.g[t],h=this.O[this.m],n={hash:this._,source:h.apiType};h.hasTagId&&(n.tag=h.tag);const r=Object.assign({},n,i,{action:s}),a=Object.keys(r).reduce(((t,s)=>t.replace(`{${s}}`,r[s])),e).replace(/\/\{[\w_]+\}\//g,"/"),c=Object.assign({},this.$,this.I(this.p,i),{analytics_id:this.currentAnalyticsCookieId,trand:(new Date).getTime()}),o=Object.keys(c).filter((t=>null!==c[t])).reduce(((t,s,i)=>`${t}${i?"&":"?"}${s}=${c[s]}`),"");return`${this.h}${a}${o}`}C(t){return new Promise(((s,i)=>{const e=document.createElement("img");e.onload=s,e.onerror=i,e.onabort=i,e.src=t}))}}const r=t=>new n(t.getSourcesInfo,t.cookieUtils,t.hash);class a{constructor(t,s){this.eventsMap={},this.M=t,this.q=s,this.v=null,this.S=this.S.bind(this)}processCollection(t){!this.M.requiresTagId||this.M.hasTagId?(t().forEach((t=>this.U(...t))),this.v=null):this.v=t}refreshSource(){this.M.refreshSource(),this.v&&this.processCollection(this.v)}setAnalyticsContext(t,s){return this.M.setCustomerAnalyticsConfig(t,s).enableAnalyticsCookie(),this}setConfigurations(...t){return t.forEach((t=>Object.keys(t).forEach((s=>{this.eventsMap[s]||(this.eventsMap[s]=[]),this.eventsMap[s].push(t[s])})))),this}startTrackingEvents(){return Object.keys(this.eventsMap).forEach(this.S),this}U(t,s){s&&s.preventAnalytics||this.M.requiresTagId&&!this.M.hasTagId||this.eventsMap[t]&&this.eventsMap[t].forEach((t=>{const{action:i,type:e,ctx:h,options:n}=t(s);this.M.track(e,i,h,n)}))}S(t){this.q.on(t,(s=>{this.U(t,s)}))}}const c=t=>new a(t.analyticsAPI,t.eventEmitter);s.default=t=>t.set("cookieUtils",h).set("analyticsAPI",r).set("analyticsEventsManager",c)}}]);