stone-analytics 0.0.92 → 0.0.94

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -106,7 +106,6 @@ type TEventPageView = {
106
106
  type TEventSubmit = {
107
107
  store: StoneDataLayerStore;
108
108
  block_name?: string;
109
- user_id?: string | null;
110
109
  auth?: boolean;
111
110
  lead_id?: string;
112
111
  submitted_lot?: string;
@@ -129,7 +128,6 @@ type TEventClick = {
129
128
  store: StoneDataLayerStore;
130
129
  pathname?: string;
131
130
  block_name?: string;
132
- user_id?: string | null;
133
131
  auth?: boolean;
134
132
  clicked_url?: string;
135
133
  action_element?: string | null;
@@ -144,7 +142,6 @@ type TEventCheck = {
144
142
  store: StoneDataLayerStore;
145
143
  pathname?: string;
146
144
  block_name?: string;
147
- user_id?: string | null;
148
145
  auth?: boolean;
149
146
  action_element: string;
150
147
  action_element_text: string;
@@ -153,7 +150,6 @@ type TEventCheck = {
153
150
  type TEventBlur = {
154
151
  store: StoneDataLayerStore;
155
152
  pathname?: string;
156
- user_id?: string | null;
157
153
  auth?: boolean;
158
154
  block_name?: string;
159
155
  action_element: string;
@@ -164,7 +160,6 @@ type TEventBannerShow = {
164
160
  store: StoneDataLayerStore;
165
161
  pathname?: string;
166
162
  block_name?: string;
167
- user_id?: string | null;
168
163
  auth?: boolean;
169
164
  banner_text: string;
170
165
  banner_link: string;
@@ -174,7 +169,6 @@ type TEventBannerClick = {
174
169
  store: StoneDataLayerStore;
175
170
  pathname?: string;
176
171
  block_name?: string;
177
- user_id?: string | null;
178
172
  auth?: boolean;
179
173
  clicked_url?: string;
180
174
  banner_text: string;
@@ -201,9 +195,8 @@ declare class StoneDataLayerStore {
201
195
  page_lot?: string | null;
202
196
  ab_test_name?: string | null;
203
197
  ab_test_group?: string | null;
204
- user_id: string | null;
205
198
  constructor();
206
- initializeUserId(): void;
199
+ initializeUserId(): string;
207
200
  pushLayer(tagManagerArgs: any): void;
208
201
  setPageParams({ pathname, source, href }: {
209
202
  pathname: string;
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var _e=Object.create;var f=Object.defineProperty;var fe=Object.getOwnPropertyDescriptor;var ye=Object.getOwnPropertyNames;var ve=Object.getPrototypeOf,he=Object.prototype.hasOwnProperty;var Se=(e,t)=>{for(var o in t)f(e,o,{get:t[o],enumerable:!0})},O=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of ye(t))!he.call(e,r)&&r!==o&&f(e,r,{get:()=>t[r],enumerable:!(n=fe(t,r))||n.enumerable});return e};var U=(e,t,o)=>(o=e!=null?_e(ve(e)):{},O(t||!e||!e.__esModule?f(o,"default",{value:e,enumerable:!0}):o,e)),Te=e=>O(f({},"__esModule",{value:!0}),e);var Pe={};Se(Pe,{StoneDataLayerStore:()=>S,checkTimeStamp:()=>w,getABCookie:()=>ke,getGoogleAnalyticsClientId:()=>x,getLotName:()=>F,getPageDirection:()=>A,getPageType:()=>B,getProjectName:()=>j,getStoneClientId:()=>C,getStoneHashClientId:()=>I,getStoneSessionId:()=>D,getYandexMetrikaClientId:()=>P,sendAnalytics:()=>u,setClientId:()=>k,setSessionId:()=>E,sokolnikiPageViewType:()=>K,staticPageViewType:()=>V,stoneDataLayerStore:()=>xe,stoneHodPageViewType:()=>Q,useComagicStatus:()=>Ee,useInitializeMetrics:()=>we});module.exports=Te(Pe);var d=()=>String(Date.now())+String(Math.floor(Math.random()*9e8)+1e8);var M=typeof localStorage<"u",w=e=>{if(!e)return!1;let t=Number(e.slice(0,10)),o=new Date(t*1e3),n=new Date(new Date().toISOString());return n.getFullYear()>o.getFullYear()&&n.getMonth()>=o.getMonth()&&n.getDate()>=o.getDate()},E=()=>{let e=d();M&&localStorage.setItem("st_session_id",e)},k=()=>{let e=d();M&&localStorage.setItem("st_client_id",e)};var Y=e=>{var t;if(typeof window<"u"){let o=process.env.NEXT_PUBLIC_IS_TEST==="true",n=window.location.pathname,r=window.location.href,i={event:e.event,st_event_id:(t=e.params)==null?void 0:t.st_event_id,page_path:n,page_url:r};e.params.st_session_id&&(i.st_session_id=e.params.st_session_id),e.params.st_client_id&&(i.st_client_id=e.params.st_client_id),e.params.project&&(i.project=e.params.project),e.params.lot_id&&(i.lot_id=e.params.lot_id),o||(window.dataLayer=window.dataLayer||[],window.dataLayer.push(i))}};var z=e=>{if(typeof ym<"u"&&typeof window<"u"){let t=process.env.NEXT_PUBLIC_IS_TEST==="true";(typeof process.env.NEXT_PUBLIC_YM_COUNTER>"u"||!process.env.NEXT_PUBLIC_YM_COUNTER)&&console.log("Yandex counter \u043D\u0435 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D \u0432 \u043A\u043E\u043D\u0444\u0438\u0433\u0435 .env.local"),t||(ym(process.env.NEXT_PUBLIC_YM_COUNTER,"reachGoal",e.target,e.params),console.log("Yandex Metrika "+process.env.NEXT_PUBLIC_YM_COUNTER+" reachGoal: "+e.target,e.params))}else console.log("Yandex Metrika \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u0430")};var $=async e=>{if(typeof window<"u"){let t=process.env.NEXT_PUBLIC_IS_TEST==="true",o="https://stone.ru/api/analytics/send-event",n=window.location.pathname,r=window.location.href,i={event:e.event,name:e.name,payload:{...e.params,page_path:n,page_url:r}};try{t||await fetch(o,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)})}catch{console.log("can't sendAnalyticsToAPI")}}else return};var X=U(require("@fingerprintjs/fingerprintjs"));var R=U(require("@fingerprintjs/fingerprintjs")),b=require("cookies-next"),I=async()=>{let e;try{return await R.default.load().then(o=>o.get()).then(o=>{e=o.visitorId}),e}catch(t){console.log("error fingerprintJS"+t)}},D=()=>{let e=localStorage.getItem("st_session_id");if(e&&e!="")return e},C=()=>{let e=localStorage.getItem("st_client_id");if(e&&e!="")return e},x=()=>{let e=String((0,b.getCookie)("_ga"));if(e&&e!="")return e;{let t=localStorage.getItem("_ga");if(t&&t!="")return t}},P=()=>{let e=String((0,b.getCookie)("_ym_uid"));if(e&&e!="")return e;{let t=localStorage.getItem("_ym_uid");if(t&&t!="")return t}};var u=async e=>{var t;if(typeof window<"u"){let o=X.default.load(),n=process.env.NEXT_PUBLIC_IS_TEST==="true";e.params=e.params||{},e.params.st_event_id=d(),e.params.date=(t=new Date().toISOString().slice(0,19))==null?void 0:t.replace("T"," ");try{await o.then(r=>r.get()).then(r=>{e.params&&(e.params.st_client_hash_id=r.visitorId)})}catch(r){console.log("error fingerprintJS"+r)}e.params.ym_client_id=P(),e.params.ga_client_id=x(),e.params.st_client_id=C(),e.params.st_session_id=D(),n||(Y({event:e.event,params:e.params}),z({target:e.event,params:e.params}),$({event:e.event,name:e.name,params:e.params}))}};var L=require("react"),we=()=>{let e=typeof localStorage<"u",t=!!(e&&localStorage.getItem("st_client_id")),o=!!(e&&localStorage.getItem("st_session_id")),n=w(e?localStorage.getItem("st_client_id"):null);return(!t||n)&&k(),o||(E(),u({event:"session_start",name:"\u041D\u0430\u0447\u0430\u043B\u043E \u0441\u0435\u0441\u0441\u0438\u0438"})),(0,L.useEffect)(()=>{let r=localStorage.getItem("tabCount"),i=r?parseInt(r):0;i<0&&(localStorage.setItem("tabCount",String(0)),i=0),i++,i&&localStorage.setItem("tabCount",String(i));let s=()=>{let a=localStorage.getItem("tabCount");if(a&&typeof window<"u"){let p=String(Number(a)-1),T=window.scrollY,_=document.documentElement.scrollHeight-document.documentElement.clientHeight,g=T/_*100;u({event:"scroll",name:"\u041F\u0435\u0440\u0435\u0445\u043E\u0434 \u0438\u043B\u0438 \u0443\u0445\u043E\u0434 \u0441\u043E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B",params:{scroll_percent:g.toFixed(0)+"%"}}),p==="0"&&(u({event:"session_end",name:"\u041A\u043E\u043D\u0435\u0446 \u0441\u0435\u0441\u0441\u0438\u0438"}),localStorage.setItem("st_session_id","")),localStorage.setItem("tabCount",p)}};return window.addEventListener("beforeunload",s),()=>{window.removeEventListener("beforeunload",s)}},[]),(0,L.useEffect)(()=>{let r,i=()=>{clearTimeout(r),r=setTimeout(()=>{localStorage.setItem("st_session_id",""),u({event:"timeout_30min",name:"\u041A\u043E\u043D\u0435\u0446 \u0441\u0435\u0441\u0441\u0438\u0438"})},18e5)},s=["mousemove","click","touchstart","scroll","keydown"];return s.forEach(a=>{window.addEventListener(a,i)}),i(),()=>{s.forEach(a=>{window.removeEventListener(a,i)}),clearTimeout(r)}},[]),{}};var y=require("react"),Ee=()=>{let[e,t]=(0,y.useState)({loadedComagic:!1,errorComagic:!1});return(0,y.useEffect)(()=>{if(window.Comagic){t({loadedComagic:!0,errorComagic:!1});return}let o=setInterval(()=>{window.Comagic&&(t({loadedComagic:!0,errorComagic:!1}),clearInterval(o))},300);return()=>clearInterval(o)},[]),e};var ke=e=>{if(typeof document>"u")return null;let t=e==null?void 0:e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),o=new RegExp(`(^|;\\s*)${t}=([^;]*)`),n=document.cookie.match(o);return n?decodeURIComponent(n[2]):null};var de=require("mobx");var H={commercial:"offices",residential:"apartments",retail:"retail",investments:"investments"},G={"stone.moscow":"apartments","stone-sokolniki":"apartments","sokolniki-stone":"apartments","stone-rise":"apartments","stone-hod":"offices"},A=(e,t)=>{let o=null;if(t&&(Object.keys(G).forEach(i=>{t.includes(i)&&(o=G[i])}),o))return o;switch(e){case"/commercial/sokolniki-retail":return"retail";case"/commercial/mnevniki-retail":return"retail"}let n=Object.keys(H).filter(i=>e.includes(i))[0],r=H[n];return r||null};var J=/^\/commercial\/[^/]+$/,W=/^\/residential\/[^/]+$/,v=/^\/catalog\/commercial\/([a-z0-9_#-]+)(?:\/[a-z0-9_#-]+)*$/i,h=/^\/catalog\/residential\/([a-z0-9_#-]+)(?:\/[a-z0-9_#-]+)*$/i;var V={"/":"main","/loyalty":"loyalty","/residential":"category_page","/commercial":"category_page","/retail":"category_page","/rent":"rent","/service":"services","/presscenter":"press_center","/purchaseterms":"terms_of_purchase","/purchaseterms/residential":"terms_of_purchase","/contacts":"contacts","/documents":"documents","/documents/docs":"documents","/documents/soglasie-na-rassylki":"documents","/documents/politika-konfidenczialnosti":"documents","/documents/usloviya-loyalty":"documents","/investments":"investments","/about":"about_company","/catalog/commercial":"lot_catalog","/catalog/residential":"lot_catalog"},K={"/":"project_card","/policy":"project_card"},Q={"/":"stoneHod_main","/policy":"stoneHod_policy"},q={"stone.moscow":"category_page","stone-sokolniki":"project_card","sokolniki-stone":"project_card","stone-rise":"project_card","stone-hod":"category_page"},B=(e,t="stone",o)=>{let n=null;if(o&&(Object.keys(q).forEach(r=>{o.includes(r)&&(n=q[r])}),n))return n;if(e)switch(t){case"stone":return Object.keys(V).includes(e)?V[e]:J.test(e)||W.test(e)?"project_card":v.test(e)||h.test(e)?"lot_card":null;case"sokolniki":return K[e];case"stone-hod":return Q[e];default:return null}return"other"};var be=/^\/commercial\/([^/]+)$/,Ie=/^\/residential\/([^/]+)$/,Z={"stone-sokolniki":"sokolniki","sokolniki-stone":"sokolniki","stone-rise":"rise","stone-hod":"hodinka"},j=(e,t)=>{let o=null,n=e.match(be),r=e.match(Ie),i=e.match(v),s=e.match(h);return t&&Object.keys(Z).forEach(a=>{t.includes(a)&&(o=Z[a])}),o||(i?i[1]:s?s[1]:n?n[1]:r?r[1]:null)};var De=/^\/catalog\/commercial\/(?:[a-z0-9_#-]+\/)*([a-z0-9_#-]+)$/i,Ce=/^\/catalog\/residential\/(?:[a-z0-9_#-]+\/)*([a-z0-9_#-]+)$/i,F=e=>{let t=e.match(De),o=e.match(Ce);return t?t[1]:o?o[1]:null};var c=e=>({ym_uid:e.ym_uid??null,cm_visitor_id:e.cm_visitor_id??null,cm_session_id:e.cm_session_id??null,fingerprint_id:(e==null?void 0:e.fingerprint_id)??null,visible_virtual_pn:(e==null?void 0:e.visible_virtual_pn)??null,page_type:e.page_type,page_direction:e.page_direction,page_project:e.page_project,page_lot:e.page_lot,ab_test_name:e.ab_test_name,ab_test_group:e.ab_test_group,user_id:e.user_id??null});var ee=async({store:e})=>{try{let t=c(e),o={event:"pageview"},n={...t};delete n.ym_uid,e.pushLayer({...n,...o})}catch(t){console.log("error",t)}};var te=async({store:e})=>{try{let t=c(e),o={event:"pageview_force"};e.pushLayer({...t,...o})}catch(t){console.log("error",t)}};var oe=require("js-md5"),m=()=>{var t,o;let e=(o=(t=document.getElementById("header_phone"))==null?void 0:t.getAttribute("href"))==null?void 0:o.replace(/\D/g,"");return typeof e=="string"?(0,oe.md5)(e):void 0};var ne=e=>{if(typeof window<"u"&&typeof ym<"u"){let t;return ym(e,"getClientID",function(o){t=o}),t??null}};var re=()=>typeof Comagic<"u"?Comagic&&Comagic.getVisitorId():null,ie=()=>typeof Comagic<"u"?Comagic&&Comagic.getSessionId():null;var l=e=>{e.ym_uid=ne(95057596),e.cm_visitor_id=re(),e.cm_session_id=ie()};var se=async({store:e,lead_id:t,block_name:o,user_id:n,auth:r,submitted_lot:i,submitted_lot_project:s})=>{try{let a=c(e),p={event:"submit",lead_id:String(t),block_name:o,user_id:n,auth:r,submitted_lot:i??null,submitted_lot_project:s??null};a.visible_virtual_pn=m(),l(a),e.pushLayer({...a,...p})}catch(a){console.log("error",a)}};var ae=async({store:e,block_name:t,list_of_lots:o})=>{try{let n=c(e),r={event:"lot_feed_show",block_name:t,list_of_lots:o},i={...n};l(n),delete i.ym_uid,delete i.cm_visitor_id,delete i.cm_session_id,n.visible_virtual_pn=m(),e.pushLayer({...n,...r})}catch(n){console.log("error",n)}};var ce=async({store:e,action_element:t,action_element_text:o,block_name:n,clicked_url:r,user_id:i,auth:s,clicked_lot:a,clicked_lot_project:p,clicked_lot_position:T,action_element_status:_})=>{try{let g=c(e),N={event:"click",action_element:t,action_element_text:o,block_name:n,user_id:i,auth:s,clicked_url:r,clicked_lot:a??null,clicked_lot_project:p??null,clicked_lot_position:T??null};_&&(N.action_element_status=_),g.visible_virtual_pn=m(),l(g),e.pushLayer({...g,...N})}catch(g){console.log("error",g)}};var le=async({store:e,action_element:t,user_id:o,auth:n,action_element_text:r,block_name:i})=>{try{let s=c(e),a={event:"check",action_element:t,user_id:o,auth:n,action_element_text:r,block_name:i};s.visible_virtual_pn=m(),l(s),e.pushLayer({...s,...a})}catch(s){console.log("error",s)}};var me=async({store:e,action_element:t,block_name:o,user_id:n,auth:r,action_element_status:i})=>{try{let s=c(e),a={event:"blur",action_element:t,action_element_status:i,block_name:o,user_id:n,auth:r};s.visible_virtual_pn=m(),l(s),e.pushLayer({...s,...a})}catch(s){console.log("error",s)}};var pe=async({store:e})=>{try{let t=c(e),o={event:"fullscreenview"};t.visible_virtual_pn=m(),l(t),e.pushLayer({...t,...o})}catch(t){console.log("error",t)}};var ge=async({store:e,banner_text:t,banner_link:o,user_id:n,auth:r,block_name:i})=>{try{let s=c(e),a={event:"banner_show",banner_text:t,banner_link:o,user_id:n,auth:r,block_name:i};l(s),e.pushLayer({...s,...a})}catch(s){console.log("error",s)}};var ue=async({store:e,banner_text:t,banner_link:o,user_id:n,auth:r,clicked_url:i,block_name:s})=>{try{let a=c(e),p={event:"banner_click",banner_text:t,banner_link:o,user_id:n,auth:r,clicked_url:i,block_name:s};l(a),e.pushLayer({...a,...p})}catch(a){console.log("error",a)}};var S=class{pageParamsIsLoading;pageParamsWasSet;ym_uid;cm_visitor_id;cm_session_id;fingerprint_id;visible_virtual_pn;page_type;page_direction;page_project;page_lot;ab_test_name;ab_test_group;user_id;constructor(){this.pageParamsIsLoading=!1,this.pageParamsWasSet=!1,this.user_id=null,this.page_type=void 0,this.page_direction=void 0,this.page_project=void 0,this.page_lot=void 0,(0,de.makeAutoObservable)(this),this.initializeUserId()}initializeUserId(){if(typeof window>"u")return;let t=localStorage.getItem("user_id");this.user_id=t??null}pushLayer(t){typeof window<"u"&&(window.StoneDataLayer||[]).push(t)}setPageParams({pathname:t,source:o,href:n}){this.pageParamsIsLoading=!0,this.page_direction=A(t,n),this.page_type=B(t,o,n),this.page_project=j(t,n),this.page_lot=F(t),this.ab_test_name="abgroup",this.ab_test_group=process.env.NEXT_PUBLIC_AB_TEST_GROUP,this.pageParamsIsLoading=!1,this.pageParamsWasSet=!0}async setFingerPrint(){this.fingerprint_id=await I()??null}async setEventPageView(t){await ee({store:this,...t})}async setEventPageViewForce(){await te({store:this})}async setEventSubmit(t){await se({store:this,...t})}async setEventLotFeedShow(t){await ae({store:this,...t})}async setEventClick(t){await ce({store:this,...t})}async setEventCheck(t){await le({store:this,...t})}async setEventBlur(t){await me({store:this,...t})}async setEventFullScreen(){await pe({store:this})}async setEventBannerShow(t){await ge({store:this,...t})}async setEventBannerClick(t){await ue({store:this,...t})}},xe=new S;0&&(module.exports={StoneDataLayerStore,checkTimeStamp,getABCookie,getGoogleAnalyticsClientId,getLotName,getPageDirection,getPageType,getProjectName,getStoneClientId,getStoneHashClientId,getStoneSessionId,getYandexMetrikaClientId,sendAnalytics,setClientId,setSessionId,sokolnikiPageViewType,staticPageViewType,stoneDataLayerStore,stoneHodPageViewType,useComagicStatus,useInitializeMetrics});
1
+ var ue=Object.create;var y=Object.defineProperty;var _e=Object.getOwnPropertyDescriptor;var fe=Object.getOwnPropertyNames;var ye=Object.getPrototypeOf,ve=Object.prototype.hasOwnProperty;var he=(e,t)=>{for(var o in t)y(e,o,{get:t[o],enumerable:!0})},N=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of fe(t))!ve.call(e,i)&&i!==o&&y(e,i,{get:()=>t[i],enumerable:!(n=_e(t,i))||n.enumerable});return e};var O=(e,t,o)=>(o=e!=null?ue(ye(e)):{},N(t||!e||!e.__esModule?y(o,"default",{value:e,enumerable:!0}):o,e)),Se=e=>N(y({},"__esModule",{value:!0}),e);var xe={};he(xe,{StoneDataLayerStore:()=>T,checkTimeStamp:()=>w,getABCookie:()=>Ee,getGoogleAnalyticsClientId:()=>x,getLotName:()=>F,getPageDirection:()=>A,getPageType:()=>B,getProjectName:()=>j,getStoneClientId:()=>C,getStoneHashClientId:()=>I,getStoneSessionId:()=>D,getYandexMetrikaClientId:()=>P,sendAnalytics:()=>g,setClientId:()=>k,setSessionId:()=>E,sokolnikiPageViewType:()=>q,staticPageViewType:()=>V,stoneDataLayerStore:()=>Ce,stoneHodPageViewType:()=>K,useComagicStatus:()=>we,useInitializeMetrics:()=>Te});module.exports=Se(xe);var d=()=>String(Date.now())+String(Math.floor(Math.random()*9e8)+1e8);var U=typeof localStorage<"u",w=e=>{if(!e)return!1;let t=Number(e.slice(0,10)),o=new Date(t*1e3),n=new Date(new Date().toISOString());return n.getFullYear()>o.getFullYear()&&n.getMonth()>=o.getMonth()&&n.getDate()>=o.getDate()},E=()=>{let e=d();U&&localStorage.setItem("st_session_id",e)},k=()=>{let e=d();U&&localStorage.setItem("st_client_id",e)};var M=e=>{var t;if(typeof window<"u"){let o=process.env.NEXT_PUBLIC_IS_TEST==="true",n=window.location.pathname,i=window.location.href,r={event:e.event,st_event_id:(t=e.params)==null?void 0:t.st_event_id,page_path:n,page_url:i};e.params.st_session_id&&(r.st_session_id=e.params.st_session_id),e.params.st_client_id&&(r.st_client_id=e.params.st_client_id),e.params.project&&(r.project=e.params.project),e.params.lot_id&&(r.lot_id=e.params.lot_id),o||(window.dataLayer=window.dataLayer||[],window.dataLayer.push(r))}};var Y=e=>{if(typeof ym<"u"&&typeof window<"u"){let t=process.env.NEXT_PUBLIC_IS_TEST==="true";(typeof process.env.NEXT_PUBLIC_YM_COUNTER>"u"||!process.env.NEXT_PUBLIC_YM_COUNTER)&&console.log("Yandex counter \u043D\u0435 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D \u0432 \u043A\u043E\u043D\u0444\u0438\u0433\u0435 .env.local"),t||(ym(process.env.NEXT_PUBLIC_YM_COUNTER,"reachGoal",e.target,e.params),console.log("Yandex Metrika "+process.env.NEXT_PUBLIC_YM_COUNTER+" reachGoal: "+e.target,e.params))}else console.log("Yandex Metrika \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u0430")};var z=async e=>{if(typeof window<"u"){let t=process.env.NEXT_PUBLIC_IS_TEST==="true",o="https://stone.ru/api/analytics/send-event",n=window.location.pathname,i=window.location.href,r={event:e.event,name:e.name,payload:{...e.params,page_path:n,page_url:i}};try{t||await fetch(o,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)})}catch{console.log("can't sendAnalyticsToAPI")}}else return};var R=O(require("@fingerprintjs/fingerprintjs"));var $=O(require("@fingerprintjs/fingerprintjs")),b=require("cookies-next"),I=async()=>{let e;try{return await $.default.load().then(o=>o.get()).then(o=>{e=o.visitorId}),e}catch(t){console.log("error fingerprintJS"+t)}},D=()=>{let e=localStorage.getItem("st_session_id");if(e&&e!="")return e},C=()=>{let e=localStorage.getItem("st_client_id");if(e&&e!="")return e},x=()=>{let e=String((0,b.getCookie)("_ga"));if(e&&e!="")return e;{let t=localStorage.getItem("_ga");if(t&&t!="")return t}},P=()=>{let e=String((0,b.getCookie)("_ym_uid"));if(e&&e!="")return e;{let t=localStorage.getItem("_ym_uid");if(t&&t!="")return t}};var g=async e=>{var t;if(typeof window<"u"){let o=R.default.load(),n=process.env.NEXT_PUBLIC_IS_TEST==="true";e.params=e.params||{},e.params.st_event_id=d(),e.params.date=(t=new Date().toISOString().slice(0,19))==null?void 0:t.replace("T"," ");try{await o.then(i=>i.get()).then(i=>{e.params&&(e.params.st_client_hash_id=i.visitorId)})}catch(i){console.log("error fingerprintJS"+i)}e.params.ym_client_id=P(),e.params.ga_client_id=x(),e.params.st_client_id=C(),e.params.st_session_id=D(),n||(M({event:e.event,params:e.params}),Y({target:e.event,params:e.params}),z({event:e.event,name:e.name,params:e.params}))}};var L=require("react"),Te=()=>{let e=typeof localStorage<"u",t=!!(e&&localStorage.getItem("st_client_id")),o=!!(e&&localStorage.getItem("st_session_id")),n=w(e?localStorage.getItem("st_client_id"):null);return(!t||n)&&k(),o||(E(),g({event:"session_start",name:"\u041D\u0430\u0447\u0430\u043B\u043E \u0441\u0435\u0441\u0441\u0438\u0438"})),(0,L.useEffect)(()=>{let i=localStorage.getItem("tabCount"),r=i?parseInt(i):0;r<0&&(localStorage.setItem("tabCount",String(0)),r=0),r++,r&&localStorage.setItem("tabCount",String(r));let s=()=>{let l=localStorage.getItem("tabCount");if(l&&typeof window<"u"){let u=String(Number(l)-1),_=window.scrollY,p=document.documentElement.scrollHeight-document.documentElement.clientHeight,f=_/p*100;g({event:"scroll",name:"\u041F\u0435\u0440\u0435\u0445\u043E\u0434 \u0438\u043B\u0438 \u0443\u0445\u043E\u0434 \u0441\u043E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B",params:{scroll_percent:f.toFixed(0)+"%"}}),u==="0"&&(g({event:"session_end",name:"\u041A\u043E\u043D\u0435\u0446 \u0441\u0435\u0441\u0441\u0438\u0438"}),localStorage.setItem("st_session_id","")),localStorage.setItem("tabCount",u)}};return window.addEventListener("beforeunload",s),()=>{window.removeEventListener("beforeunload",s)}},[]),(0,L.useEffect)(()=>{let i,r=()=>{clearTimeout(i),i=setTimeout(()=>{localStorage.setItem("st_session_id",""),g({event:"timeout_30min",name:"\u041A\u043E\u043D\u0435\u0446 \u0441\u0435\u0441\u0441\u0438\u0438"})},18e5)},s=["mousemove","click","touchstart","scroll","keydown"];return s.forEach(l=>{window.addEventListener(l,r)}),r(),()=>{s.forEach(l=>{window.removeEventListener(l,r)}),clearTimeout(i)}},[]),{}};var v=require("react"),we=()=>{let[e,t]=(0,v.useState)({loadedComagic:!1,errorComagic:!1});return(0,v.useEffect)(()=>{if(window.Comagic){t({loadedComagic:!0,errorComagic:!1});return}let o=setInterval(()=>{window.Comagic&&(t({loadedComagic:!0,errorComagic:!1}),clearInterval(o))},300);return()=>clearInterval(o)},[]),e};var Ee=e=>{if(typeof document>"u")return null;let t=e==null?void 0:e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),o=new RegExp(`(^|;\\s*)${t}=([^;]*)`),n=document.cookie.match(o);return n?decodeURIComponent(n[2]):null};var de=require("mobx");var X={commercial:"offices",residential:"apartments",retail:"retail",investments:"investments"},H={"stone.moscow":"apartments","stone-sokolniki":"apartments","sokolniki-stone":"apartments","stone-rise":"apartments","stone-hod":"offices"},A=(e,t)=>{let o=null;if(t&&(Object.keys(H).forEach(r=>{t.includes(r)&&(o=H[r])}),o))return o;switch(e){case"/commercial/sokolniki-retail":return"retail";case"/commercial/mnevniki-retail":return"retail"}let n=Object.keys(X).filter(r=>e.includes(r))[0],i=X[n];return i||null};var G=/^\/commercial\/[^/]+$/,J=/^\/residential\/[^/]+$/,h=/^\/catalog\/commercial\/([a-z0-9_#-]+)(?:\/[a-z0-9_#-]+)*$/i,S=/^\/catalog\/residential\/([a-z0-9_#-]+)(?:\/[a-z0-9_#-]+)*$/i;var V={"/":"main","/loyalty":"loyalty","/residential":"category_page","/commercial":"category_page","/retail":"category_page","/rent":"rent","/service":"services","/presscenter":"press_center","/purchaseterms":"terms_of_purchase","/purchaseterms/residential":"terms_of_purchase","/contacts":"contacts","/documents":"documents","/documents/docs":"documents","/documents/soglasie-na-rassylki":"documents","/documents/politika-konfidenczialnosti":"documents","/documents/usloviya-loyalty":"documents","/investments":"investments","/about":"about_company","/catalog/commercial":"lot_catalog","/catalog/residential":"lot_catalog"},q={"/":"project_card","/policy":"project_card"},K={"/":"stoneHod_main","/policy":"stoneHod_policy"},W={"stone.moscow":"category_page","stone-sokolniki":"project_card","sokolniki-stone":"project_card","stone-rise":"project_card","stone-hod":"category_page"},B=(e,t="stone",o)=>{let n=null;if(o&&(Object.keys(W).forEach(i=>{o.includes(i)&&(n=W[i])}),n))return n;if(e)switch(t){case"stone":return Object.keys(V).includes(e)?V[e]:G.test(e)||J.test(e)?"project_card":h.test(e)||S.test(e)?"lot_card":null;case"sokolniki":return q[e];case"stone-hod":return K[e];default:return null}return"other"};var ke=/^\/commercial\/([^/]+)$/,be=/^\/residential\/([^/]+)$/,Q={"stone-sokolniki":"sokolniki","sokolniki-stone":"sokolniki","stone-rise":"rise","stone-hod":"hodinka"},j=(e,t)=>{let o=null,n=e.match(ke),i=e.match(be),r=e.match(h),s=e.match(S);return t&&Object.keys(Q).forEach(l=>{t.includes(l)&&(o=Q[l])}),o||(r?r[1]:s?s[1]:n?n[1]:i?i[1]:null)};var Ie=/^\/catalog\/commercial\/(?:[a-z0-9_#-]+\/)*([a-z0-9_#-]+)$/i,De=/^\/catalog\/residential\/(?:[a-z0-9_#-]+\/)*([a-z0-9_#-]+)$/i,F=e=>{let t=e.match(Ie),o=e.match(De);return t?t[1]:o?o[1]:null};var a=e=>({ym_uid:e.ym_uid??null,cm_visitor_id:e.cm_visitor_id??null,cm_session_id:e.cm_session_id??null,fingerprint_id:(e==null?void 0:e.fingerprint_id)??null,visible_virtual_pn:(e==null?void 0:e.visible_virtual_pn)??null,page_type:e.page_type,page_direction:e.page_direction,page_project:e.page_project,page_lot:e.page_lot,ab_test_name:e.ab_test_name,ab_test_group:e.ab_test_group,user_id:e.initializeUserId()??null});var Z=async({store:e})=>{try{let t=a(e),o={event:"pageview"},n={...t};delete n.ym_uid,e.pushLayer({...n,...o})}catch(t){console.log("error",t)}};var ee=async({store:e})=>{try{let t=a(e),o={event:"pageview_force"};e.pushLayer({...t,...o})}catch(t){console.log("error",t)}};var te=require("js-md5"),m=()=>{var t,o;let e=(o=(t=document.getElementById("header_phone"))==null?void 0:t.getAttribute("href"))==null?void 0:o.replace(/\D/g,"");return typeof e=="string"?(0,te.md5)(e):void 0};var oe=e=>{if(typeof window<"u"&&typeof ym<"u"){let t;return ym(e,"getClientID",function(o){t=o}),t??null}};var ne=()=>typeof Comagic<"u"?Comagic&&Comagic.getVisitorId():null,re=()=>typeof Comagic<"u"?Comagic&&Comagic.getSessionId():null;var c=e=>{e.ym_uid=oe(95057596),e.cm_visitor_id=ne(),e.cm_session_id=re()};var ie=async({store:e,lead_id:t,block_name:o,auth:n,submitted_lot:i,submitted_lot_project:r})=>{try{let s=a(e),l={event:"submit",lead_id:String(t),block_name:o,auth:n,submitted_lot:i??null,submitted_lot_project:r??null};s.visible_virtual_pn=m(),c(s),e.pushLayer({...s,...l})}catch(s){console.log("error",s)}};var se=async({store:e,block_name:t,list_of_lots:o})=>{try{let n=a(e),i={event:"lot_feed_show",block_name:t,list_of_lots:o},r={...n};c(n),delete r.ym_uid,delete r.cm_visitor_id,delete r.cm_session_id,n.visible_virtual_pn=m(),e.pushLayer({...n,...i})}catch(n){console.log("error",n)}};var ae=async({store:e,action_element:t,action_element_text:o,block_name:n,clicked_url:i,auth:r,clicked_lot:s,clicked_lot_project:l,clicked_lot_position:u,action_element_status:_})=>{try{let p=a(e),f={event:"click",action_element:t,action_element_text:o,block_name:n,auth:r,clicked_url:i,clicked_lot:s??null,clicked_lot_project:l??null,clicked_lot_position:u??null};_&&(f.action_element_status=_),p.visible_virtual_pn=m(),c(p),e.pushLayer({...p,...f})}catch(p){console.log("error",p)}};var ce=async({store:e,action_element:t,auth:o,action_element_text:n,block_name:i})=>{try{let r=a(e),s={event:"check",action_element:t,auth:o,action_element_text:n,block_name:i};r.visible_virtual_pn=m(),c(r),e.pushLayer({...r,...s})}catch(r){console.log("error",r)}};var le=async({store:e,action_element:t,block_name:o,auth:n,action_element_status:i})=>{try{let r=a(e),s={event:"blur",action_element:t,action_element_status:i,block_name:o,auth:n};r.visible_virtual_pn=m(),c(r),e.pushLayer({...r,...s})}catch(r){console.log("error",r)}};var me=async({store:e})=>{try{let t=a(e),o={event:"fullscreenview"};t.visible_virtual_pn=m(),c(t),e.pushLayer({...t,...o})}catch(t){console.log("error",t)}};var pe=async({store:e,banner_text:t,banner_link:o,auth:n,block_name:i})=>{try{let r=a(e),s={event:"banner_show",banner_text:t,banner_link:o,auth:n,block_name:i};c(r),e.pushLayer({...r,...s})}catch(r){console.log("error",r)}};var ge=async({store:e,banner_text:t,banner_link:o,auth:n,clicked_url:i,block_name:r})=>{try{let s=a(e),l={event:"banner_click",banner_text:t,banner_link:o,auth:n,clicked_url:i,block_name:r};c(s),e.pushLayer({...s,...l})}catch(s){console.log("error",s)}};var T=class{pageParamsIsLoading;pageParamsWasSet;ym_uid;cm_visitor_id;cm_session_id;fingerprint_id;visible_virtual_pn;page_type;page_direction;page_project;page_lot;ab_test_name;ab_test_group;constructor(){this.pageParamsIsLoading=!1,this.pageParamsWasSet=!1,this.page_type=void 0,this.page_direction=void 0,this.page_project=void 0,this.page_lot=void 0,(0,de.makeAutoObservable)(this)}initializeUserId(){return typeof window>"u"?null:localStorage.getItem("user_reg_id")}pushLayer(t){typeof window<"u"&&(window.StoneDataLayer||[]).push(t)}setPageParams({pathname:t,source:o,href:n}){this.pageParamsIsLoading=!0,this.page_direction=A(t,n),this.page_type=B(t,o,n),this.page_project=j(t,n),this.page_lot=F(t),this.ab_test_name="abgroup",this.ab_test_group=process.env.NEXT_PUBLIC_AB_TEST_GROUP,this.pageParamsIsLoading=!1,this.pageParamsWasSet=!0}async setFingerPrint(){this.fingerprint_id=await I()??null}async setEventPageView(t){await Z({store:this,...t})}async setEventPageViewForce(){await ee({store:this})}async setEventSubmit(t){await ie({store:this,...t})}async setEventLotFeedShow(t){await se({store:this,...t})}async setEventClick(t){await ae({store:this,...t})}async setEventCheck(t){await ce({store:this,...t})}async setEventBlur(t){await le({store:this,...t})}async setEventFullScreen(){await me({store:this})}async setEventBannerShow(t){await pe({store:this,...t})}async setEventBannerClick(t){await ge({store:this,...t})}},Ce=new T;0&&(module.exports={StoneDataLayerStore,checkTimeStamp,getABCookie,getGoogleAnalyticsClientId,getLotName,getPageDirection,getPageType,getProjectName,getStoneClientId,getStoneHashClientId,getStoneSessionId,getYandexMetrikaClientId,sendAnalytics,setClientId,setSessionId,sokolnikiPageViewType,staticPageViewType,stoneDataLayerStore,stoneHodPageViewType,useComagicStatus,useInitializeMetrics});
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/utils/makeUID.ts","../src/utils/sessionClientId.ts","../src/dataLayerPush/dataLayerPush.ts","../src/ymTarget/ymaTarget.ts","../src/sendAnalyticsToAPI/sendAnalyticsToAPI.ts","../src/sendAnalytics/sendAnalytics.ts","../src/utils/utils.ts","../src/hooks/useInitializeMetrics.ts","../src/utils/useComagicStatus.ts","../src/utils/getABCookie.ts","../src/store/StoneDataLayerStore/StoneDataLayerStore.ts","../src/store/StoneDataLayerStore/utils/pageDirection.ts","../src/store/StoneDataLayerStore/utils/regs.ts","../src/store/StoneDataLayerStore/utils/pageType.ts","../src/store/StoneDataLayerStore/utils/getProjectName.ts","../src/store/StoneDataLayerStore/utils/getLotName.ts","../src/store/StoneDataLayerStore/utils/getDefaultAnalyticsData.ts","../src/store/StoneDataLayerStore/events/eventPageView.ts","../src/store/StoneDataLayerStore/events/eventPageViewForce.ts","../src/utils/getVisibleVirtualPn.ts","../src/store/StoneDataLayerStore/utils/getYmUid.ts","../src/store/StoneDataLayerStore/utils/getComagicId.ts","../src/store/StoneDataLayerStore/utils/setAnalyticId.ts","../src/store/StoneDataLayerStore/events/eventSubmit.ts","../src/store/StoneDataLayerStore/events/eventLotFeedShow.ts","../src/store/StoneDataLayerStore/events/eventClick.ts","../src/store/StoneDataLayerStore/events/eventCheck.ts","../src/store/StoneDataLayerStore/events/eventBlur.ts","../src/store/StoneDataLayerStore/events/eventFullScreenView.ts","../src/store/StoneDataLayerStore/events/eventBannerShow.ts","../src/store/StoneDataLayerStore/events/eventBannerClick.ts"],"sourcesContent":["export * from './utils/sessionClientId'\r\nexport * from './sendAnalytics/sendAnalytics'\r\nexport * from './hooks/useInitializeMetrics'\r\nexport * from './utils/utils'\r\nexport * from './utils/useComagicStatus'\r\nexport * from './utils/getABCookie'\r\n\r\nexport * from './store/StoneDataLayerStore/stoneDataLayer'\r\nexport * from './store/StoneDataLayerStore/StoneDataLayerStore'\r\nexport * from './store/StoneDataLayerStore/utils/pageDirection'\r\nexport * from './store/StoneDataLayerStore/utils/pageType'\r\nexport * from './store/StoneDataLayerStore/utils/getProjectName'\r\nexport * from './store/StoneDataLayerStore/utils/getLotName'\r\n","export const makeTimeBasedUID = (): string => {\r\n\treturn (\r\n\t\tString(Date.now()) + String(Math.floor(Math.random() * (999999999 - 100000000 + 1)) + 100000000)\r\n\t)\r\n}","import {makeTimeBasedUID} from './makeUID'\r\n\r\nconst isLocalStorage = typeof localStorage !== 'undefined'\r\n\r\nconst checkTimeStamp = (clientId: string | null) => {\r\n if (!clientId) return false\r\n\r\n const unixTimestamp = Number(clientId.slice(0, 10))\r\n const ISOSDate = new Date(unixTimestamp * 1000)\r\n const ISOSDateNow = new Date(new Date().toISOString())\r\n\r\n return (\r\n ISOSDateNow.getFullYear() > ISOSDate.getFullYear() &&\r\n ISOSDateNow.getMonth() >= ISOSDate.getMonth() &&\r\n ISOSDateNow.getDate() >= ISOSDate.getDate()\r\n )\r\n}\r\n\r\nconst setSessionId = () => {\r\n const newId = makeTimeBasedUID()\r\n if (isLocalStorage) localStorage.setItem('st_session_id', newId)\r\n}\r\n\r\nconst setClientId = () => {\r\n const newId = makeTimeBasedUID()\r\n if (isLocalStorage) localStorage.setItem('st_client_id', newId)\r\n}\r\n\r\nexport {setClientId, setSessionId, checkTimeStamp}","import { TAnalyticsVisitParams } from '../types/analytics'\r\n\r\nexport type TGADataLayer = {\r\n\tevent: string\r\n\tparams: TAnalyticsVisitParams\r\n}\r\n\r\nexport type DataLayerPush = {\r\n\tevent: string\r\n\tpage_path: string\r\n\tpage_url: string\r\n\tst_event_id?: string\r\n\tst_client_id?: string\r\n\tst_session_id?: string\r\n\tabTestGroup?: string\r\n\tproject?: string\r\n\tlot_id?: string | number\r\n}\r\n\r\ndeclare global {\r\n\tinterface Window {\r\n\t\tdataLayer: DataLayerPush[]\r\n\t}\r\n}\r\n\r\nexport const dataLayerPush = (data: TGADataLayer) => {\r\n\tif (typeof window !== 'undefined') {\r\n\t\tconst isTest = process.env.NEXT_PUBLIC_IS_TEST === 'true'\r\n\t\tconst pathname = window.location.pathname\r\n\t\tconst href = window.location.href\r\n\t\tconst layerEvent: DataLayerPush = {\r\n\t\t\tevent: data.event,\r\n\t\t\tst_event_id: data.params?.st_event_id,\r\n\t\t\tpage_path: pathname,\r\n\t\t\tpage_url: href,\r\n\t\t}\r\n\t\tif (data.params.st_session_id) {\r\n\t\t\tlayerEvent.st_session_id = data.params.st_session_id\r\n\t\t}\r\n\t\tif (data.params.st_client_id) {\r\n\t\t\tlayerEvent.st_client_id = data.params.st_client_id\r\n\t\t}\r\n\t\tif (data.params.project) {\r\n\t\t\tlayerEvent.project = data.params.project\r\n\t\t}\r\n\t\tif (data.params.lot_id) {\r\n\t\t\tlayerEvent.lot_id = data.params.lot_id\r\n\t\t}\r\n\r\n\t\tif (!isTest) {\r\n\t\t\twindow.dataLayer = window.dataLayer || []\r\n\t\t\twindow.dataLayer.push(layerEvent)\r\n\t\t}\r\n\t}\r\n}\r\n\r\n","import { TAnalyticsVisitParams } from '../types/analytics'\r\n\r\nexport type TYMTarget = {\r\n\ttarget: string\r\n\tparams: TAnalyticsVisitParams\r\n}\r\n\r\ndeclare let ym: any\r\n/**\r\n * Отправка события в Яндек метрику\r\n * @param data\r\n */\r\nexport const ymTarget = (data: TYMTarget) => {\r\n\tif (typeof ym !== 'undefined' && typeof window !== 'undefined') {\r\n\t\tconst isTest = process.env.NEXT_PUBLIC_IS_TEST === 'true'\r\n\t\tif (\r\n\t\t\ttypeof process.env.NEXT_PUBLIC_YM_COUNTER == 'undefined' ||\r\n\t\t\t!process.env.NEXT_PUBLIC_YM_COUNTER\r\n\t\t) {\r\n\t\t\tconsole.log('Yandex counter не определен в конфиге .env.local')\r\n\t\t}\r\n\t\tif (!isTest) {\r\n\t\t\tym(process.env.NEXT_PUBLIC_YM_COUNTER, 'reachGoal', data.target, data.params)\r\n\r\n\t\t\tconsole.log(\r\n\t\t\t\t'Yandex Metrika ' + process.env.NEXT_PUBLIC_YM_COUNTER + ' reachGoal: ' + data.target,\r\n\t\t\t\tdata.params\r\n\t\t\t)\r\n\t\t}\r\n\t} else {\r\n\t\tconsole.log('Yandex Metrika не найдена')\r\n\t}\r\n}\r\n\r\n","import { TAnalyticsVisitParams } from '../types/analytics'\r\n\r\nexport type TAnalyticsApiData = {\r\n\tevent: string\r\n\tname: string\r\n\tmouse_X?: string\r\n\tmouse_Y?: string\r\n\tparams: TAnalyticsVisitParams\r\n}\r\n\r\nexport const sendAnalyticsToAPI = async (data: TAnalyticsApiData) => {\r\n\tif (typeof window !== 'undefined') {\r\n\t\tconst isTest = process.env.NEXT_PUBLIC_IS_TEST === 'true'\r\n\t\tconst url = `https://stone.ru/api/analytics/send-event`\r\n\t\tconst pathname = window.location.pathname\r\n\t\tconst href = window.location.href\r\n\r\n\t\tconst formData = {\r\n\t\t\tevent: data.event,\r\n\t\t\tname: data.name,\r\n\t\t\tpayload: { ...data.params, ...{ page_path: pathname, page_url: href } },\r\n\t\t}\r\n\t\ttry {\r\n\t\t\tif (!isTest) {\r\n\t\t\t\tawait fetch(url, {\r\n\t\t\t\t\tmethod: 'POST',\r\n\t\t\t\t\theaders: {\r\n\t\t\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tbody: JSON.stringify(formData),\r\n\t\t\t\t})\r\n\t\t\t\t// console.log('sendAnalyticsToAPI:', formData)\r\n\t\t\t}\r\n\t\t} catch (e) {\r\n\t\t\tconsole.log(\"can't sendAnalyticsToAPI\")\r\n\t\t}\r\n\t} else return\r\n}\r\n\r\n","import {TAnalyticsData} from '../types/analytics'\r\nimport {dataLayerPush} from '../dataLayerPush/dataLayerPush'\r\nimport {ymTarget} from '../ymTarget/ymaTarget'\r\nimport {sendAnalyticsToAPI} from '../sendAnalyticsToAPI/sendAnalyticsToAPI'\r\nimport {makeTimeBasedUID} from '../utils/makeUID'\r\nimport FingerprintJS from '@fingerprintjs/fingerprintjs'\r\nimport {\r\n getGoogleAnalyticsClientId,\r\n getStoneClientId,\r\n getStoneSessionId,\r\n getYandexMetrikaClientId\r\n} from \"../utils/utils\";\r\n\r\nexport const sendAnalytics = async (data: TAnalyticsData) => {\r\n if (typeof window !== 'undefined') {\r\n const fpPromise = FingerprintJS.load()\r\n const isTest = process.env.NEXT_PUBLIC_IS_TEST === 'true'\r\n\r\n data.params = data.params || {}\r\n data.params.st_event_id = makeTimeBasedUID()\r\n data.params.date = new Date().toISOString().slice(0, 19)?.replace('T', ' ');\r\n\r\n try {\r\n await fpPromise\r\n .then((fp) => fp.get())\r\n .then((result) => {\r\n if (data.params) {\r\n data.params.st_client_hash_id = result.visitorId\r\n }\r\n })\r\n } catch (e) {\r\n console.log('error fingerprintJS' + e)\r\n }\r\n\r\n data.params.ym_client_id = getYandexMetrikaClientId()\r\n data.params.ga_client_id = getGoogleAnalyticsClientId()\r\n data.params.st_client_id = getStoneClientId()\r\n data.params.st_session_id = getStoneSessionId()\r\n\r\n if (!isTest) {\r\n dataLayerPush({event: data.event, params: data.params})\r\n ymTarget({target: data.event, params: data.params})\r\n sendAnalyticsToAPI({event: data.event, name: data.name, params: data.params})\r\n }\r\n }\r\n}\r\n","import FingerprintJS from '@fingerprintjs/fingerprintjs'\r\nimport {getCookie} from \"cookies-next\";\r\n\r\nexport const getStoneHashClientId = async () => {\r\n let st_client_hash_id\r\n try {\r\n const fpPromise = FingerprintJS.load()\r\n await fpPromise\r\n .then((fp) => fp.get())\r\n .then((result) => {\r\n st_client_hash_id = result.visitorId\r\n })\r\n return st_client_hash_id\r\n } catch (e) {\r\n console.log('error fingerprintJS' + e)\r\n }\r\n return undefined\r\n}\r\nexport const getStoneSessionId = () => {\r\n const st_session_id = localStorage.getItem('st_session_id')\r\n if (st_session_id && st_session_id != '') {\r\n return st_session_id\r\n }\r\n return undefined\r\n}\r\nexport const getStoneClientId = () => {\r\n const st_client_id = localStorage.getItem('st_client_id')\r\n if (st_client_id && st_client_id != '') {\r\n return st_client_id\r\n }\r\n return undefined\r\n}\r\nexport const getGoogleAnalyticsClientId = () => {\r\n const _ga = String(getCookie('_ga'))\r\n if (_ga && _ga != '') {\r\n return _ga\r\n } else {\r\n const _ga_local = localStorage.getItem('_ga')\r\n if (_ga_local && _ga_local != '') {\r\n return _ga_local\r\n }\r\n }\r\n return undefined\r\n}\r\nexport const getYandexMetrikaClientId = () => {\r\n const _ym_uid = String(getCookie('_ym_uid'))\r\n if (_ym_uid && _ym_uid != '') {\r\n return _ym_uid\r\n } else {\r\n const _ym_uid_local = localStorage.getItem('_ym_uid')\r\n if (_ym_uid_local && _ym_uid_local != '') {\r\n return _ym_uid_local\r\n }\r\n }\r\n return undefined\r\n}","import { checkTimeStamp, setClientId, setSessionId } from '../utils/sessionClientId'\r\nimport { sendAnalytics } from '../sendAnalytics/sendAnalytics'\r\nimport { useEffect } from 'react'\r\n\r\nexport const useInitializeMetrics = () => {\r\n\tconst isLocalStorage = typeof localStorage !== 'undefined'\r\n\r\n\tconst isClientId = Boolean(isLocalStorage ? localStorage.getItem('st_client_id') : null)\r\n\tconst isSessionId = Boolean(isLocalStorage ? localStorage.getItem('st_session_id') : null)\r\n\tconst isYearPast = checkTimeStamp(isLocalStorage ? localStorage.getItem('st_client_id') : null)\r\n\r\n\tif (!isClientId || isYearPast) setClientId()\r\n\r\n\tif (!isSessionId) {\r\n\t\tsetSessionId()\r\n\t\tsendAnalytics({\r\n\t\t\tevent: 'session_start',\r\n\t\t\tname: 'Начало сессии',\r\n\t\t})\r\n\t}\r\n\r\n\tuseEffect(() => {\r\n\t\tconst tabCountStorage = localStorage.getItem('tabCount')\r\n\r\n\t\t// При открытии вкладки\r\n\t\tlet tabCount = tabCountStorage ? parseInt(tabCountStorage) : 0\r\n\t\tif (tabCount < 0) {\r\n\t\t\tlocalStorage.setItem('tabCount', String(0))\r\n\t\t\ttabCount = 0\r\n\t\t}\r\n\r\n\t\ttabCount++\r\n\t\tif (tabCount) localStorage.setItem('tabCount', String(tabCount))\r\n\r\n\t\t// Обработчик для закрытия вкладки\r\n\t\tconst handleBeforeUnload = () => {\r\n\t\t\tconst tabCountStorage = localStorage.getItem('tabCount')\r\n\t\t\tif (tabCountStorage && typeof window !== 'undefined') {\r\n\t\t\t\tconst tabCount = String(Number(tabCountStorage) - 1)\r\n\t\t\t\tconst scrollTop = window.scrollY\r\n\t\t\t\tconst scrollHeight =\r\n\t\t\t\t\tdocument.documentElement.scrollHeight - document.documentElement.clientHeight\r\n\t\t\t\tconst scrollPercent = (scrollTop / scrollHeight) * 100\r\n\r\n\t\t\t\tsendAnalytics({\r\n\t\t\t\t\tevent: 'scroll',\r\n\t\t\t\t\tname: 'Переход или уход со страницы',\r\n\t\t\t\t\tparams: { scroll_percent: scrollPercent.toFixed(0) + '%' },\r\n\t\t\t\t})\r\n\r\n\t\t\t\tif (tabCount === '0') {\r\n\t\t\t\t\tsendAnalytics({\r\n\t\t\t\t\t\tevent: 'session_end',\r\n\t\t\t\t\t\tname: 'Конец сессии',\r\n\t\t\t\t\t})\r\n\r\n\t\t\t\t\tlocalStorage.setItem('st_session_id', '')\r\n\t\t\t\t}\r\n\t\t\t\tlocalStorage.setItem('tabCount', tabCount)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\twindow.addEventListener('beforeunload', handleBeforeUnload)\r\n\t\treturn () => {\r\n\t\t\twindow.removeEventListener('beforeunload', handleBeforeUnload)\r\n\t\t}\r\n\t}, [])\r\n\r\n\tuseEffect(() => {\r\n\t\tlet inactivityTimer: NodeJS.Timeout\r\n\r\n\t\tconst resetInactivityTimer = () => {\r\n\t\t\tclearTimeout(inactivityTimer)\r\n\t\t\t// 30 минут\r\n\t\t\tinactivityTimer = setTimeout(() => {\r\n\t\t\t\tlocalStorage.setItem('st_session_id', '')\r\n\r\n\t\t\t\tsendAnalytics({\r\n\t\t\t\t\tevent: 'timeout_30min',\r\n\t\t\t\t\tname: 'Конец сессии',\r\n\t\t\t\t})\r\n\t\t\t}, 30 * 60 * 1000)\r\n\t\t}\r\n\r\n\t\tconst events = ['mousemove', 'click', 'touchstart', 'scroll', 'keydown']\r\n\t\tevents.forEach((event) => {\r\n\t\t\twindow.addEventListener(event, resetInactivityTimer)\r\n\t\t})\r\n\r\n\t\t// Запускаем таймер при монтировании компонента\r\n\t\tresetInactivityTimer()\r\n\t\treturn () => {\r\n\t\t\tevents.forEach((event) => {\r\n\t\t\t\twindow.removeEventListener(event, resetInactivityTimer)\r\n\t\t\t})\r\n\t\t\tclearTimeout(inactivityTimer)\r\n\t\t}\r\n\t}, [])\r\n\r\n\treturn {}\r\n}\r\n","import { useEffect, useState } from 'react'\r\n\r\nexport const useComagicStatus = () => {\r\n const [status, setStatus] = useState({\r\n loadedComagic: false,\r\n errorComagic: false,\r\n })\r\n\r\n useEffect(() => {\r\n if (window.Comagic) {\r\n setStatus({ loadedComagic: true, errorComagic: false })\r\n return\r\n }\r\n\r\n const timer = setInterval(() => {\r\n if (window.Comagic) {\r\n setStatus({ loadedComagic: true, errorComagic: false })\r\n clearInterval(timer)\r\n }\r\n }, 300)\r\n\r\n return () => clearInterval(timer)\r\n }, [])\r\n\r\n return status\r\n}\r\n","/**\r\n * Получает значение cookie по имени\r\n * @param name - Имя cookie\r\n * @returns Значение cookie или null, если не найдено\r\n */\r\nexport const getABCookie = (name: string): string | null => {\r\n // Проверяем доступность document (для SSR/SSG)\r\n if (typeof document === 'undefined') return null;\r\n\r\n // Более читаемый вариант регулярного выражения\r\n const escapedName = name?.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\r\n const regex = new RegExp(`(^|;\\\\s*)${escapedName}=([^;]*)`);\r\n const match = document.cookie.match(regex);\r\n\r\n return match ? decodeURIComponent(match[2]) : null;\r\n};","import { makeAutoObservable } from 'mobx'\r\nimport { getStoneHashClientId } from '../../utils/utils'\r\nimport { getPageDirection } from './utils/pageDirection'\r\nimport { getPageType, TSource } from './utils/pageType'\r\nimport { getProjectName } from './utils/getProjectName'\r\nimport { getLotName } from './utils/getLotName'\r\nimport { setEventPageView, TEventPageView } from './events/eventPageView'\r\nimport { setEventPageViewForce } from './events/eventPageViewForce'\r\nimport { setEventSubmit, TEventSubmit } from './events/eventSubmit'\r\nimport { setEventLotFeedShow, TEventLotFeedShow } from './events/eventLotFeedShow'\r\nimport { setEventClick, TEventClick } from './events/eventClick'\r\nimport { setEventCheck, TEventCheck } from './events/eventCheck'\r\nimport { setEventBlur, TEventBlur } from './events/eventBlur'\r\nimport { setEventFullScreen } from './events/eventFullScreenView'\r\nimport { setEventBannerShow, TEventBannerShow } from './events/eventBannerShow'\r\nimport { setEventBannerClick, TEventBannerClick } from './events/eventBannerClick'\r\n\r\ndeclare global {\r\n\tinterface Window {\r\n\t\tComagic?: any\r\n\t\tStoneDataLayer: any\r\n\t}\r\n}\r\n\r\nexport class StoneDataLayerStore {\r\n\tpageParamsIsLoading: boolean\r\n\tpageParamsWasSet: boolean\r\n\r\n\tym_uid?: string\r\n\tcm_visitor_id?: string\r\n\tcm_session_id?: string\r\n\tfingerprint_id?: string\r\n\tvisible_virtual_pn?: string\r\n\tpage_type?: string\r\n\tpage_direction?: string | null\r\n\tpage_project?: string | null\r\n\tpage_lot?: string | null\r\n\tab_test_name?: string | null\r\n\tab_test_group?: string | null\r\n\tuser_id: string | null\r\n\r\n\tconstructor() {\r\n\t\tthis.pageParamsIsLoading = false\r\n\t\tthis.pageParamsWasSet = false\r\n\t\tthis.user_id = null\r\n\t\tthis.page_type = undefined\r\n\t\tthis.page_direction = undefined\r\n\t\tthis.page_project = undefined\r\n\t\tthis.page_lot = undefined\r\n\r\n\t\tmakeAutoObservable(this)\r\n\t\tthis.initializeUserId()\r\n\t}\r\n\r\n\tinitializeUserId() {\r\n\t\tif (typeof window === 'undefined') return\r\n\t\tconst user_id = localStorage.getItem('user_id')\r\n\t\tthis.user_id = user_id ?? null\r\n\t}\r\n\r\n\tpushLayer(tagManagerArgs: any) {\r\n\t\tif (typeof window !== 'undefined') {\r\n\t\t\tconst StoneDataLayer = window.StoneDataLayer || []\r\n\t\t\tStoneDataLayer.push(tagManagerArgs)\r\n\t\t}\r\n\t}\r\n\r\n\tsetPageParams({ pathname, source, href }: { pathname: string; source: TSource; href?: string }) {\r\n\t\tthis.pageParamsIsLoading = true\r\n\t\tthis.page_direction = getPageDirection(pathname, href)\r\n\t\tthis.page_type = getPageType(pathname, source, href)\r\n\t\tthis.page_project = getProjectName(pathname, href)\r\n\t\tthis.page_lot = getLotName(pathname)\r\n\t\tthis.ab_test_name = 'abgroup'\r\n\t\tthis.ab_test_group = process.env.NEXT_PUBLIC_AB_TEST_GROUP\r\n\r\n\t\tthis.pageParamsIsLoading = false\r\n\t\tthis.pageParamsWasSet = true\r\n\t}\r\n\r\n\tasync setFingerPrint() {\r\n\t\tthis.fingerprint_id = (await getStoneHashClientId()) ?? null\r\n\t}\r\n\r\n\tasync setEventPageView(props?: Omit<TEventPageView, 'store'>) {\r\n\t\tawait setEventPageView({ store: this, ...props })\r\n\t}\r\n\r\n\tasync setEventPageViewForce() {\r\n\t\t//тестовая отправка, метод дергал без ожиданий вообще чисто для теста Антона\r\n\t\tawait setEventPageViewForce({ store: this })\r\n\t}\r\n\r\n\tasync setEventSubmit(props: Omit<TEventSubmit, 'store'>) {\r\n\t\tawait setEventSubmit({ store: this, ...props })\r\n\t}\r\n\r\n\tasync setEventLotFeedShow(props: Omit<TEventLotFeedShow, 'store'>) {\r\n\t\tawait setEventLotFeedShow({ store: this, ...props })\r\n\t}\r\n\r\n\tasync setEventClick(props: Omit<TEventClick, 'store'>) {\r\n\t\tawait setEventClick({ store: this, ...props })\r\n\t}\r\n\r\n\tasync setEventCheck(props: Omit<TEventCheck, 'store'>) {\r\n\t\tawait setEventCheck({ store: this, ...props })\r\n\t}\r\n\r\n\tasync setEventBlur(props: Omit<TEventBlur, 'store'>) {\r\n\t\tawait setEventBlur({ store: this, ...props })\r\n\t}\r\n\r\n\tasync setEventFullScreen() {\r\n\t\tawait setEventFullScreen({ store: this })\r\n\t}\r\n\r\n\tasync setEventBannerShow(props: Omit<TEventBannerShow, 'store'>) {\r\n\t\tawait setEventBannerShow({ store: this, ...props })\r\n\t}\r\n\r\n\tasync setEventBannerClick(props: Omit<TEventBannerClick, 'store'>) {\r\n\t\tawait setEventBannerClick({ store: this, ...props })\r\n\t}\r\n}\r\n\r\nexport const stoneDataLayerStore = new StoneDataLayerStore()\r\n","export type TPageDirection = 'apartments' | 'offices' | 'retail' | 'investments' | null\r\n\r\nconst pathDirection = {\r\n commercial: 'offices',\r\n residential: 'apartments',\r\n retail: 'retail',\r\n investments: 'investments',\r\n} as const\r\n\r\nconst specialCondition = {\r\n 'stone.moscow': 'apartments',\r\n 'stone-sokolniki': 'apartments',\r\n 'sokolniki-stone': 'apartments',\r\n 'stone-rise': 'apartments',\r\n 'stone-hod': 'offices'\r\n}\r\n\r\nexport const getPageDirection = (pathname: string, href?: string): TPageDirection => {\r\n let specialResult = null\r\n\r\n if (href) {\r\n Object.keys(specialCondition).forEach((el) => {\r\n if (href.includes(el)) {\r\n specialResult = specialCondition[el]\r\n }\r\n })\r\n if (specialResult) return specialResult\r\n }\r\n\r\n\r\n //хардкод ритейла т.к по сути он офисный проект\r\n switch (pathname) {\r\n case '/commercial/sokolniki-retail':\r\n return 'retail'\r\n case '/commercial/mnevniki-retail':\r\n return 'retail'\r\n }\r\n\r\n const key = Object.keys(pathDirection).filter((el) => pathname.includes(el))[0]\r\n const value = pathDirection[key as keyof typeof pathDirection]\r\n if (value) return value\r\n else return null\r\n}\r\n","//регулярка для проектов по pathname\r\nconst reg_com_project = /^\\/commercial\\/[^/]+$/\r\nconst reg_res_project = /^\\/residential\\/[^/]+$/\r\n\r\n//регулярка для лотов по pathname\r\nconst reg_com_lot = /^\\/catalog\\/commercial\\/([a-z0-9_#-]+)(?:\\/[a-z0-9_#-]+)*$/i;\r\nconst reg_res_lot = /^\\/catalog\\/residential\\/([a-z0-9_#-]+)(?:\\/[a-z0-9_#-]+)*$/i;\r\n\r\nexport { reg_com_lot, reg_res_lot, reg_res_project, reg_com_project }\r\n","import {reg_com_lot, reg_com_project, reg_res_lot, reg_res_project} from \"./regs\";\r\n\r\nexport type TSource = 'stone' | 'sokolniki' | 'stone-hod' | 'stonehod'\r\n\r\nexport const staticPageViewType = {\r\n '/': 'main',\r\n '/loyalty': 'loyalty',\r\n '/residential': 'category_page',\r\n '/commercial': 'category_page',\r\n '/retail': 'category_page',\r\n '/rent': 'rent',\r\n '/service': 'services',\r\n '/presscenter': 'press_center',\r\n '/purchaseterms': 'terms_of_purchase',\r\n '/purchaseterms/residential': 'terms_of_purchase',\r\n '/contacts': 'contacts',\r\n '/documents': 'documents',\r\n '/documents/docs': 'documents',\r\n '/documents/soglasie-na-rassylki': 'documents',\r\n '/documents/politika-konfidenczialnosti': 'documents',\r\n '/documents/usloviya-loyalty': 'documents',\r\n '/investments': 'investments',\r\n '/about': 'about_company',\r\n '/catalog/commercial': 'lot_catalog',\r\n '/catalog/residential': 'lot_catalog',\r\n} as const\r\n\r\nexport const sokolnikiPageViewType = {\r\n '/': 'project_card',\r\n '/policy': 'project_card'\r\n}\r\n\r\nexport const stoneHodPageViewType = {\r\n '/': 'stoneHod_main',\r\n '/policy': 'stoneHod_policy'\r\n}\r\n\r\nconst specialCondition = {\r\n 'stone.moscow': 'category_page',\r\n 'stone-sokolniki': 'project_card',\r\n 'sokolniki-stone': 'project_card',\r\n 'stone-rise': 'project_card',\r\n 'stone-hod': 'category_page'\r\n}\r\n\r\nexport type TPageType = keyof typeof staticPageViewType\r\n\r\nexport const getPageType = (pathname: string, source = 'stone' as TSource, href?: string) => {\r\n let specialResult = null\r\n\r\n if (href) {\r\n Object.keys(specialCondition).forEach((el) => {\r\n if (href.includes(el)) {\r\n specialResult = specialCondition[el]\r\n }\r\n })\r\n if (specialResult) return specialResult\r\n }\r\n\r\n if (pathname) {\r\n switch (source) {\r\n case \"stone\": {\r\n const isOnStaticPage = Object.keys(staticPageViewType).includes(pathname)\r\n //для статических страниц\r\n if (isOnStaticPage) return staticPageViewType[pathname as keyof typeof staticPageViewType]\r\n //для динамической страницы проекта\r\n else if (reg_com_project.test(pathname) || reg_res_project.test(pathname)) {\r\n return 'project_card'\r\n }\r\n //для динамической страницы лота\r\n else if (reg_com_lot.test(pathname) || reg_res_lot.test(pathname)) {\r\n return 'lot_card'\r\n }\r\n return null\r\n }\r\n\r\n case \"sokolniki\" : {\r\n return sokolnikiPageViewType[pathname as keyof typeof sokolnikiPageViewType]\r\n }\r\n\r\n case \"stone-hod\": {\r\n return stoneHodPageViewType[pathname as keyof typeof stoneHodPageViewType]\r\n }\r\n\r\n default:\r\n return null\r\n }\r\n }\r\n\r\n return 'other'\r\n}\r\n","import {reg_com_lot, reg_res_lot} from \"./regs\";\r\n\r\nconst reg_com_project = /^\\/commercial\\/([^/]+)$/\r\nconst reg_res_project = /^\\/residential\\/([^/]+)$/\r\n\r\nconst specialCondition = {\r\n 'stone-sokolniki': 'sokolniki',\r\n 'sokolniki-stone': 'sokolniki',\r\n 'stone-rise': 'rise',\r\n 'stone-hod': 'hodinka'\r\n}\r\n\r\nexport const getProjectName = (pathname: string, href?: string) => {\r\n let specialResult = null\r\n\r\n const comMatch = pathname.match(reg_com_project)\r\n const resMatch = pathname.match(reg_res_project)\r\n\r\n const comLotMatch = pathname.match(reg_com_lot)\r\n const resLotMatch = pathname.match(reg_res_lot)\r\n\r\n if (href) {\r\n Object.keys(specialCondition).forEach((el) => {\r\n if (href.includes(el)) {\r\n specialResult = specialCondition[el]\r\n }\r\n })\r\n }\r\n\r\n if (specialResult) return specialResult\r\n\r\n if (comLotMatch) return comLotMatch[1]\r\n if (resLotMatch) return resLotMatch[1]\r\n if (comMatch) return comMatch[1]\r\n if (resMatch) return resMatch[1]\r\n return null\r\n}\r\n","const reg_com_lot = /^\\/catalog\\/commercial\\/(?:[a-z0-9_#-]+\\/)*([a-z0-9_#-]+)$/i\r\nconst reg_res_lot = /^\\/catalog\\/residential\\/(?:[a-z0-9_#-]+\\/)*([a-z0-9_#-]+)$/i\r\n\r\nexport const getLotName = (pathname: string) => {\r\n const comMatch = pathname.match(reg_com_lot)\r\n const resMatch = pathname.match(reg_res_lot)\r\n\r\n if (comMatch) return comMatch[1]\r\n if (resMatch) return resMatch[1]\r\n return null\r\n}\r\n","import {StoneDataLayerStore} from \"../StoneDataLayerStore\";\r\n\r\nexport const getDefaultAnalyticsData = (store: StoneDataLayerStore) => ({\r\n ym_uid: store.ym_uid ?? null,\r\n cm_visitor_id: store.cm_visitor_id ?? null,\r\n cm_session_id: store.cm_session_id ?? null,\r\n fingerprint_id: store?.fingerprint_id ?? null,\r\n visible_virtual_pn: store?.visible_virtual_pn ?? null,\r\n page_type: store.page_type,\r\n page_direction: store.page_direction,\r\n page_project: store.page_project,\r\n page_lot: store.page_lot,\r\n ab_test_name: store.ab_test_name,\r\n ab_test_group: store.ab_test_group,\r\n user_id: store.user_id ?? null,\r\n})\r\n","import {StoneDataLayerStore} from \"../StoneDataLayerStore\";\r\nimport {getDefaultAnalyticsData} from \"../utils/getDefaultAnalyticsData\";\r\n\r\nexport type TEventPageView = {\r\n store: StoneDataLayerStore\r\n user_id?: string | null\r\n auth?: boolean\r\n projectName?: string\r\n lotName?: string\r\n}\r\n\r\nexport const setEventPageView = async ({store}: TEventPageView) => {\r\n try {\r\n const defaultData = getDefaultAnalyticsData(store)\r\n\r\n const additionalFields = {\r\n event: 'pageview',\r\n }\r\n\r\n const dataForPush = {...defaultData}\r\n delete dataForPush.ym_uid\r\n\r\n store.pushLayer({...dataForPush, ...additionalFields})\r\n } catch (e) {\r\n console.log('error', e)\r\n }\r\n}\r\n","import {StoneDataLayerStore} from \"../StoneDataLayerStore\";\r\nimport {getDefaultAnalyticsData} from \"../utils/getDefaultAnalyticsData\";\r\n\r\nexport type TEventPageView = {\r\n store: StoneDataLayerStore\r\n projectName?: string\r\n lotName?: string\r\n}\r\n\r\nexport const setEventPageViewForce = async ({ store }: TEventPageView) => {\r\n try {\r\n const defaultData = getDefaultAnalyticsData(store)\r\n\r\n const additionalFields = {\r\n event: 'pageview_force',\r\n }\r\n\r\n store.pushLayer({ ...defaultData, ...additionalFields })\r\n } catch (e) {\r\n console.log('error',e)\r\n }\r\n}\r\n","import {md5} from \"js-md5\";\r\n\r\nexport const getVisibleVirtualPn = () => {\r\n const virtual_pn = document.getElementById('header_phone')?.getAttribute(\"href\")?.replace(/\\D/g, \"\");\r\n return typeof virtual_pn === 'string' ? md5(virtual_pn) : undefined\r\n}","export const getYmUid = (id: number) => {\r\n if (typeof window !== 'undefined' && typeof ym !== 'undefined') {\r\n let ymUid\r\n ym(id, 'getClientID', function (clientID) {\r\n ymUid = clientID\r\n })\r\n return ymUid ?? null\r\n }\r\n}\r\n","declare const Comagic: any\r\n\r\nconst getComagicVisitorId = () => {\r\n if (typeof Comagic !== 'undefined') {\r\n return Comagic && Comagic.getVisitorId()\r\n }\r\n else return null\r\n}\r\n\r\nconst getComagicSessionId = () => {\r\n if (typeof Comagic !== 'undefined') {\r\n return Comagic && Comagic.getSessionId()\r\n }\r\n else return null\r\n}\r\n\r\nexport { getComagicSessionId, getComagicVisitorId }\r\n","import {getYmUid} from \"./getYmUid\";\r\nimport {getComagicSessionId, getComagicVisitorId} from \"./getComagicId\";\r\n\r\nexport const setAnalyticId = (defaultData: any)=> {\r\n defaultData.ym_uid = getYmUid(95057596)\r\n defaultData.cm_visitor_id = getComagicVisitorId()\r\n defaultData.cm_session_id = getComagicSessionId()\r\n}","import { getDefaultAnalyticsData } from '../utils/getDefaultAnalyticsData'\r\nimport { StoneDataLayerStore } from '../StoneDataLayerStore'\r\nimport { getVisibleVirtualPn } from '../../../utils/getVisibleVirtualPn'\r\nimport { setAnalyticId } from '../utils/setAnalyticId'\r\n\r\nexport type TEventSubmit = {\r\n\tstore: StoneDataLayerStore\r\n\tblock_name?: string\r\n\tuser_id?: string | null\r\n\tauth?: boolean\r\n\tlead_id?: string\r\n\tsubmitted_lot?: string\r\n\tsubmitted_lot_project?: string\r\n}\r\n\r\nexport const setEventSubmit = async ({\r\n\tstore,\r\n\tlead_id,\r\n\tblock_name,\r\n\tuser_id,\r\n\tauth,\r\n\tsubmitted_lot,\r\n\tsubmitted_lot_project,\r\n}: TEventSubmit) => {\r\n\ttry {\r\n\t\tconst defaultData = getDefaultAnalyticsData(store)\r\n\r\n\t\tconst additionalFields = {\r\n\t\t\tevent: 'submit',\r\n\t\t\tlead_id: String(lead_id),\r\n\t\t\tblock_name,\r\n\t\t\tuser_id,\r\n\t\t\tauth,\r\n\t\t\tsubmitted_lot: submitted_lot ?? null,\r\n\t\t\tsubmitted_lot_project: submitted_lot_project ?? null,\r\n\t\t}\r\n\r\n\t\tdefaultData.visible_virtual_pn = getVisibleVirtualPn()\r\n\t\tsetAnalyticId(defaultData)\r\n\r\n\t\tstore.pushLayer({ ...defaultData, ...additionalFields })\r\n\t} catch (e) {\r\n\t\tconsole.log('error', e)\r\n\t}\r\n}\r\n","import {StoneDataLayerStore} from \"../StoneDataLayerStore\";\r\nimport {getDefaultAnalyticsData} from \"../utils/getDefaultAnalyticsData\";\r\nimport {getVisibleVirtualPn} from \"../../../utils/getVisibleVirtualPn\";\r\nimport {setAnalyticId} from \"../utils/setAnalyticId\";\r\n\r\nexport type TEventLotFeedShow = {\r\n store: StoneDataLayerStore\r\n pathname?: string\r\n block_name?: string\r\n list_of_lots: TAnalyticFeedLot[]\r\n}\r\n\r\nexport type TAnalyticFeedLot = {\r\n position: number | null\r\n lot: string | null\r\n lot_project: string | null\r\n}\r\n\r\nexport const setEventLotFeedShow = async ({\r\n store,\r\n block_name,\r\n list_of_lots,\r\n }: TEventLotFeedShow) => {\r\n try {\r\n const defaultData = getDefaultAnalyticsData(store)\r\n\r\n const additionalFields = {\r\n event: 'lot_feed_show',\r\n block_name,\r\n list_of_lots,\r\n }\r\n\r\n const dataForPush = {...defaultData}\r\n setAnalyticId(defaultData)\r\n\r\n delete dataForPush.ym_uid\r\n delete dataForPush.cm_visitor_id\r\n delete dataForPush.cm_session_id\r\n\r\n defaultData.visible_virtual_pn = getVisibleVirtualPn()\r\n\r\n store.pushLayer({...defaultData, ...additionalFields})\r\n } catch (e) {\r\n console.log('error', e)\r\n }\r\n}\r\n","import { StoneDataLayerStore } from '../StoneDataLayerStore'\r\nimport { getDefaultAnalyticsData } from '../utils/getDefaultAnalyticsData'\r\nimport { getVisibleVirtualPn } from '../../../utils/getVisibleVirtualPn'\r\nimport { setAnalyticId } from '../utils/setAnalyticId'\r\n\r\nexport type TEventClick = {\r\n\tstore: StoneDataLayerStore\r\n\tpathname?: string\r\n\tblock_name?: string\r\n\tuser_id?: string | null\r\n\tauth?: boolean\r\n\tclicked_url?: string\r\n\taction_element?: string | null\r\n\taction_element_text?: string | null\r\n\taction_element_status?: 'error' | 'success'\r\n\tclicked_lot?: string\r\n\tclicked_lot_project?: string\r\n\tclicked_lot_position?: string\r\n}\r\n\r\nexport const setEventClick = async ({\r\n\tstore,\r\n\taction_element,\r\n\taction_element_text,\r\n\tblock_name,\r\n\tclicked_url,\r\n\tuser_id,\r\n\tauth,\r\n\tclicked_lot,\r\n\tclicked_lot_project,\r\n\tclicked_lot_position,\r\n\taction_element_status,\r\n}: TEventClick) => {\r\n\ttry {\r\n\t\tconst defaultData = getDefaultAnalyticsData(store)\r\n\r\n\t\tconst additionalFields: Omit<TEventClick, 'store'> & { event: string } = {\r\n\t\t\tevent: 'click',\r\n\t\t\taction_element,\r\n\t\t\taction_element_text,\r\n\t\t\tblock_name,\r\n\t\t\tuser_id,\r\n\t\t\tauth,\r\n\t\t\tclicked_url,\r\n\t\t\tclicked_lot: clicked_lot ?? null,\r\n\t\t\tclicked_lot_project: clicked_lot_project ?? null,\r\n\t\t\tclicked_lot_position: clicked_lot_position ?? null,\r\n\t\t}\r\n\r\n\t\tif (action_element_status) additionalFields.action_element_status = action_element_status\r\n\r\n\t\tdefaultData.visible_virtual_pn = getVisibleVirtualPn()\r\n\r\n\t\tsetAnalyticId(defaultData)\r\n\r\n\t\tstore.pushLayer({ ...defaultData, ...additionalFields })\r\n\t} catch (e) {\r\n\t\tconsole.log('error', e)\r\n\t}\r\n}\r\n","import { getDefaultAnalyticsData } from '../utils/getDefaultAnalyticsData'\r\nimport { StoneDataLayerStore } from '../StoneDataLayerStore'\r\nimport { getVisibleVirtualPn } from '../../../utils/getVisibleVirtualPn'\r\nimport { setAnalyticId } from '../utils/setAnalyticId'\r\n\r\nexport type TEventCheck = {\r\n\tstore: StoneDataLayerStore\r\n\tpathname?: string\r\n\tblock_name?: string\r\n\tuser_id?: string | null\r\n\tauth?: boolean\r\n\taction_element: string\r\n\taction_element_text: string\r\n}\r\n\r\nexport const setEventCheck = async ({\r\n\tstore,\r\n\taction_element,\r\n\tuser_id,\r\n\tauth,\r\n\taction_element_text,\r\n\tblock_name,\r\n}: TEventCheck) => {\r\n\ttry {\r\n\t\tconst defaultData = getDefaultAnalyticsData(store)\r\n\r\n\t\tconst additionalFields = {\r\n\t\t\tevent: 'check',\r\n\t\t\taction_element,\r\n\t\t\tuser_id,\r\n\t\t\tauth,\r\n\t\t\taction_element_text,\r\n\t\t\tblock_name,\r\n\t\t}\r\n\r\n\t\tdefaultData.visible_virtual_pn = getVisibleVirtualPn()\r\n\r\n\t\tsetAnalyticId(defaultData)\r\n\r\n\t\tstore.pushLayer({ ...defaultData, ...additionalFields })\r\n\t} catch (e) {\r\n\t\tconsole.log('error', e)\r\n\t}\r\n}\r\n","import { StoneDataLayerStore } from '../StoneDataLayerStore'\r\nimport { getDefaultAnalyticsData } from '../utils/getDefaultAnalyticsData'\r\nimport { getVisibleVirtualPn } from '../../../utils/getVisibleVirtualPn'\r\nimport { setAnalyticId } from '../utils/setAnalyticId'\r\n\r\nexport type TEventBlur = {\r\n\tstore: StoneDataLayerStore\r\n\tpathname?: string\r\n\tuser_id?: string | null\r\n\tauth?: boolean\r\n\tblock_name?: string\r\n\taction_element: string\r\n\taction_element_status: 'error' | 'success'\r\n}\r\n\r\nexport const setEventBlur = async ({\r\n\tstore,\r\n\taction_element,\r\n\tblock_name,\r\n\tuser_id,\r\n\tauth,\r\n\taction_element_status,\r\n}: TEventBlur) => {\r\n\ttry {\r\n\t\tconst defaultData = getDefaultAnalyticsData(store)\r\n\r\n\t\tconst additionalFields = {\r\n\t\t\tevent: 'blur',\r\n\t\t\taction_element,\r\n\t\t\taction_element_status,\r\n\t\t\tblock_name,\r\n\t\t\tuser_id,\r\n\t\t\tauth,\r\n\t\t}\r\n\r\n\t\tdefaultData.visible_virtual_pn = getVisibleVirtualPn()\r\n\r\n\t\tsetAnalyticId(defaultData)\r\n\r\n\t\tstore.pushLayer({ ...defaultData, ...additionalFields })\r\n\t} catch (e) {\r\n\t\tconsole.log('error', e)\r\n\t}\r\n}\r\n","import { StoneDataLayerStore } from '../StoneDataLayerStore'\r\nimport { getDefaultAnalyticsData } from '../utils/getDefaultAnalyticsData'\r\nimport { getVisibleVirtualPn } from '../../../utils/getVisibleVirtualPn'\r\nimport { setAnalyticId } from '../utils/setAnalyticId'\r\n\r\nexport type TEventPageView = {\r\n\tstore: StoneDataLayerStore\r\n\tprojectName?: string\r\n\tuser_id?: string | null\r\n\tauth?: boolean\r\n\tlotName?: string\r\n}\r\n\r\nexport const setEventFullScreen = async ({ store }: TEventPageView) => {\r\n\ttry {\r\n\t\tconst defaultData = getDefaultAnalyticsData(store)\r\n\r\n\t\tconst additionalFields = {\r\n\t\t\tevent: 'fullscreenview',\r\n\t\t}\r\n\r\n\t\tdefaultData.visible_virtual_pn = getVisibleVirtualPn()\r\n\r\n\t\tsetAnalyticId(defaultData)\r\n\r\n\t\tstore.pushLayer({ ...defaultData, ...additionalFields })\r\n\t} catch (e) {\r\n\t\tconsole.log('error', e)\r\n\t}\r\n}\r\n","import { StoneDataLayerStore } from '../StoneDataLayerStore'\r\nimport { getDefaultAnalyticsData } from '../utils/getDefaultAnalyticsData'\r\nimport { setAnalyticId } from '../utils/setAnalyticId'\r\n\r\nexport type TEventBannerShow = {\r\n\tstore: StoneDataLayerStore\r\n\tpathname?: string\r\n\tblock_name?: string\r\n\tuser_id?: string | null\r\n\tauth?: boolean\r\n\tbanner_text: string\r\n\tbanner_link: string\r\n}\r\n\r\nexport const setEventBannerShow = async ({\r\n\tstore,\r\n\tbanner_text,\r\n\tbanner_link,\r\n\tuser_id,\r\n\tauth,\r\n\tblock_name,\r\n}: TEventBannerShow) => {\r\n\ttry {\r\n\t\tconst defaultData = getDefaultAnalyticsData(store)\r\n\r\n\t\tconst additionalFields = {\r\n\t\t\tevent: 'banner_show',\r\n\t\t\tbanner_text,\r\n\t\t\tbanner_link,\r\n\t\t\tuser_id,\r\n\t\t\tauth,\r\n\t\t\tblock_name,\r\n\t\t}\r\n\r\n\t\tsetAnalyticId(defaultData)\r\n\r\n\t\tstore.pushLayer({ ...defaultData, ...additionalFields })\r\n\t} catch (e) {\r\n\t\tconsole.log('error', e)\r\n\t}\r\n}\r\n","import { StoneDataLayerStore } from '../StoneDataLayerStore'\r\nimport { getDefaultAnalyticsData } from '../utils/getDefaultAnalyticsData'\r\nimport { setAnalyticId } from '../utils/setAnalyticId'\r\n\r\nexport type TEventBannerClick = {\r\n\tstore: StoneDataLayerStore\r\n\tpathname?: string\r\n\tblock_name?: string\r\n\tuser_id?: string | null\r\n\tauth?: boolean\r\n\tclicked_url?: string\r\n\tbanner_text: string\r\n\tbanner_link: string\r\n}\r\n\r\nexport const setEventBannerClick = async ({\r\n\tstore,\r\n\tbanner_text,\r\n\tbanner_link,\r\n\tuser_id,\r\n\tauth,\r\n\tclicked_url,\r\n\tblock_name,\r\n}: TEventBannerClick) => {\r\n\ttry {\r\n\t\tconst defaultData = getDefaultAnalyticsData(store)\r\n\r\n\t\tconst additionalFields = {\r\n\t\t\tevent: 'banner_click',\r\n\t\t\tbanner_text,\r\n\t\t\tbanner_link,\r\n\t\t\tuser_id,\r\n\t\t\tauth,\r\n\t\t\tclicked_url,\r\n\t\t\tblock_name,\r\n\t\t}\r\n\r\n\t\tsetAnalyticId(defaultData)\r\n\r\n\t\tstore.pushLayer({ ...defaultData, ...additionalFields })\r\n\t} catch (e) {\r\n\t\tconsole.log('error', e)\r\n\t}\r\n}\r\n"],"mappings":"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","names":["index_exports","__export","StoneDataLayerStore","checkTimeStamp","getABCookie","getGoogleAnalyticsClientId","getLotName","getPageDirection","getPageType","getProjectName","getStoneClientId","getStoneHashClientId","getStoneSessionId","getYandexMetrikaClientId","sendAnalytics","setClientId","setSessionId","sokolnikiPageViewType","staticPageViewType","stoneDataLayerStore","stoneHodPageViewType","useComagicStatus","useInitializeMetrics","__toCommonJS","makeTimeBasedUID","isLocalStorage","checkTimeStamp","clientId","unixTimestamp","ISOSDate","ISOSDateNow","setSessionId","newId","makeTimeBasedUID","setClientId","dataLayerPush","data","_a","isTest","pathname","href","layerEvent","ymTarget","data","isTest","sendAnalyticsToAPI","data","isTest","url","pathname","href","formData","import_fingerprintjs","import_fingerprintjs","import_cookies_next","getStoneHashClientId","st_client_hash_id","FingerprintJS","fp","result","e","getStoneSessionId","st_session_id","getStoneClientId","st_client_id","getGoogleAnalyticsClientId","_ga","_ga_local","getYandexMetrikaClientId","_ym_uid","_ym_uid_local","sendAnalytics","data","_a","fpPromise","FingerprintJS","isTest","makeTimeBasedUID","fp","result","e","getYandexMetrikaClientId","getGoogleAnalyticsClientId","getStoneClientId","getStoneSessionId","dataLayerPush","ymTarget","sendAnalyticsToAPI","import_react","useInitializeMetrics","isLocalStorage","isClientId","isSessionId","isYearPast","checkTimeStamp","setClientId","setSessionId","sendAnalytics","tabCountStorage","tabCount","handleBeforeUnload","scrollTop","scrollHeight","scrollPercent","inactivityTimer","resetInactivityTimer","events","event","import_react","useComagicStatus","status","setStatus","timer","getABCookie","name","escapedName","regex","match","import_mobx","pathDirection","specialCondition","getPageDirection","pathname","href","specialResult","el","key","value","reg_com_project","reg_res_project","reg_com_lot","reg_res_lot","staticPageViewType","sokolnikiPageViewType","stoneHodPageViewType","specialCondition","getPageType","pathname","source","href","specialResult","el","reg_com_project","reg_res_project","reg_com_lot","reg_res_lot","reg_com_project","reg_res_project","specialCondition","getProjectName","pathname","href","specialResult","comMatch","resMatch","comLotMatch","reg_com_lot","resLotMatch","reg_res_lot","el","reg_com_lot","reg_res_lot","getLotName","pathname","comMatch","resMatch","getDefaultAnalyticsData","store","setEventPageView","store","defaultData","getDefaultAnalyticsData","additionalFields","dataForPush","e","setEventPageViewForce","store","defaultData","getDefaultAnalyticsData","additionalFields","e","import_js_md5","getVisibleVirtualPn","_a","_b","virtual_pn","getYmUid","id","ymUid","clientID","getComagicVisitorId","getComagicSessionId","setAnalyticId","defaultData","getYmUid","getComagicVisitorId","getComagicSessionId","setEventSubmit","store","lead_id","block_name","user_id","auth","submitted_lot","submitted_lot_project","defaultData","getDefaultAnalyticsData","additionalFields","getVisibleVirtualPn","setAnalyticId","e","setEventLotFeedShow","store","block_name","list_of_lots","defaultData","getDefaultAnalyticsData","additionalFields","dataForPush","setAnalyticId","getVisibleVirtualPn","e","setEventClick","store","action_element","action_element_text","block_name","clicked_url","user_id","auth","clicked_lot","clicked_lot_project","clicked_lot_position","action_element_status","defaultData","getDefaultAnalyticsData","additionalFields","getVisibleVirtualPn","setAnalyticId","e","setEventCheck","store","action_element","user_id","auth","action_element_text","block_name","defaultData","getDefaultAnalyticsData","additionalFields","getVisibleVirtualPn","setAnalyticId","e","setEventBlur","store","action_element","block_name","user_id","auth","action_element_status","defaultData","getDefaultAnalyticsData","additionalFields","getVisibleVirtualPn","setAnalyticId","e","setEventFullScreen","store","defaultData","getDefaultAnalyticsData","additionalFields","getVisibleVirtualPn","setAnalyticId","e","setEventBannerShow","store","banner_text","banner_link","user_id","auth","block_name","defaultData","getDefaultAnalyticsData","additionalFields","setAnalyticId","e","setEventBannerClick","store","banner_text","banner_link","user_id","auth","clicked_url","block_name","defaultData","getDefaultAnalyticsData","additionalFields","setAnalyticId","e","StoneDataLayerStore","user_id","tagManagerArgs","pathname","source","href","getPageDirection","getPageType","getProjectName","getLotName","getStoneHashClientId","props","setEventPageView","setEventPageViewForce","setEventSubmit","setEventLotFeedShow","setEventClick","setEventCheck","setEventBlur","setEventFullScreen","setEventBannerShow","setEventBannerClick","stoneDataLayerStore"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/utils/makeUID.ts","../src/utils/sessionClientId.ts","../src/dataLayerPush/dataLayerPush.ts","../src/ymTarget/ymaTarget.ts","../src/sendAnalyticsToAPI/sendAnalyticsToAPI.ts","../src/sendAnalytics/sendAnalytics.ts","../src/utils/utils.ts","../src/hooks/useInitializeMetrics.ts","../src/utils/useComagicStatus.ts","../src/utils/getABCookie.ts","../src/store/StoneDataLayerStore/StoneDataLayerStore.ts","../src/store/StoneDataLayerStore/utils/pageDirection.ts","../src/store/StoneDataLayerStore/utils/regs.ts","../src/store/StoneDataLayerStore/utils/pageType.ts","../src/store/StoneDataLayerStore/utils/getProjectName.ts","../src/store/StoneDataLayerStore/utils/getLotName.ts","../src/store/StoneDataLayerStore/utils/getDefaultAnalyticsData.ts","../src/store/StoneDataLayerStore/events/eventPageView.ts","../src/store/StoneDataLayerStore/events/eventPageViewForce.ts","../src/utils/getVisibleVirtualPn.ts","../src/store/StoneDataLayerStore/utils/getYmUid.ts","../src/store/StoneDataLayerStore/utils/getComagicId.ts","../src/store/StoneDataLayerStore/utils/setAnalyticId.ts","../src/store/StoneDataLayerStore/events/eventSubmit.ts","../src/store/StoneDataLayerStore/events/eventLotFeedShow.ts","../src/store/StoneDataLayerStore/events/eventClick.ts","../src/store/StoneDataLayerStore/events/eventCheck.ts","../src/store/StoneDataLayerStore/events/eventBlur.ts","../src/store/StoneDataLayerStore/events/eventFullScreenView.ts","../src/store/StoneDataLayerStore/events/eventBannerShow.ts","../src/store/StoneDataLayerStore/events/eventBannerClick.ts"],"sourcesContent":["export * from './utils/sessionClientId'\r\nexport * from './sendAnalytics/sendAnalytics'\r\nexport * from './hooks/useInitializeMetrics'\r\nexport * from './utils/utils'\r\nexport * from './utils/useComagicStatus'\r\nexport * from './utils/getABCookie'\r\n\r\nexport * from './store/StoneDataLayerStore/stoneDataLayer'\r\nexport * from './store/StoneDataLayerStore/StoneDataLayerStore'\r\nexport * from './store/StoneDataLayerStore/utils/pageDirection'\r\nexport * from './store/StoneDataLayerStore/utils/pageType'\r\nexport * from './store/StoneDataLayerStore/utils/getProjectName'\r\nexport * from './store/StoneDataLayerStore/utils/getLotName'\r\n","export const makeTimeBasedUID = (): string => {\r\n\treturn (\r\n\t\tString(Date.now()) + String(Math.floor(Math.random() * (999999999 - 100000000 + 1)) + 100000000)\r\n\t)\r\n}","import {makeTimeBasedUID} from './makeUID'\r\n\r\nconst isLocalStorage = typeof localStorage !== 'undefined'\r\n\r\nconst checkTimeStamp = (clientId: string | null) => {\r\n if (!clientId) return false\r\n\r\n const unixTimestamp = Number(clientId.slice(0, 10))\r\n const ISOSDate = new Date(unixTimestamp * 1000)\r\n const ISOSDateNow = new Date(new Date().toISOString())\r\n\r\n return (\r\n ISOSDateNow.getFullYear() > ISOSDate.getFullYear() &&\r\n ISOSDateNow.getMonth() >= ISOSDate.getMonth() &&\r\n ISOSDateNow.getDate() >= ISOSDate.getDate()\r\n )\r\n}\r\n\r\nconst setSessionId = () => {\r\n const newId = makeTimeBasedUID()\r\n if (isLocalStorage) localStorage.setItem('st_session_id', newId)\r\n}\r\n\r\nconst setClientId = () => {\r\n const newId = makeTimeBasedUID()\r\n if (isLocalStorage) localStorage.setItem('st_client_id', newId)\r\n}\r\n\r\nexport {setClientId, setSessionId, checkTimeStamp}","import { TAnalyticsVisitParams } from '../types/analytics'\r\n\r\nexport type TGADataLayer = {\r\n\tevent: string\r\n\tparams: TAnalyticsVisitParams\r\n}\r\n\r\nexport type DataLayerPush = {\r\n\tevent: string\r\n\tpage_path: string\r\n\tpage_url: string\r\n\tst_event_id?: string\r\n\tst_client_id?: string\r\n\tst_session_id?: string\r\n\tabTestGroup?: string\r\n\tproject?: string\r\n\tlot_id?: string | number\r\n}\r\n\r\ndeclare global {\r\n\tinterface Window {\r\n\t\tdataLayer: DataLayerPush[]\r\n\t}\r\n}\r\n\r\nexport const dataLayerPush = (data: TGADataLayer) => {\r\n\tif (typeof window !== 'undefined') {\r\n\t\tconst isTest = process.env.NEXT_PUBLIC_IS_TEST === 'true'\r\n\t\tconst pathname = window.location.pathname\r\n\t\tconst href = window.location.href\r\n\t\tconst layerEvent: DataLayerPush = {\r\n\t\t\tevent: data.event,\r\n\t\t\tst_event_id: data.params?.st_event_id,\r\n\t\t\tpage_path: pathname,\r\n\t\t\tpage_url: href,\r\n\t\t}\r\n\t\tif (data.params.st_session_id) {\r\n\t\t\tlayerEvent.st_session_id = data.params.st_session_id\r\n\t\t}\r\n\t\tif (data.params.st_client_id) {\r\n\t\t\tlayerEvent.st_client_id = data.params.st_client_id\r\n\t\t}\r\n\t\tif (data.params.project) {\r\n\t\t\tlayerEvent.project = data.params.project\r\n\t\t}\r\n\t\tif (data.params.lot_id) {\r\n\t\t\tlayerEvent.lot_id = data.params.lot_id\r\n\t\t}\r\n\r\n\t\tif (!isTest) {\r\n\t\t\twindow.dataLayer = window.dataLayer || []\r\n\t\t\twindow.dataLayer.push(layerEvent)\r\n\t\t}\r\n\t}\r\n}\r\n\r\n","import { TAnalyticsVisitParams } from '../types/analytics'\r\n\r\nexport type TYMTarget = {\r\n\ttarget: string\r\n\tparams: TAnalyticsVisitParams\r\n}\r\n\r\ndeclare let ym: any\r\n/**\r\n * Отправка события в Яндек метрику\r\n * @param data\r\n */\r\nexport const ymTarget = (data: TYMTarget) => {\r\n\tif (typeof ym !== 'undefined' && typeof window !== 'undefined') {\r\n\t\tconst isTest = process.env.NEXT_PUBLIC_IS_TEST === 'true'\r\n\t\tif (\r\n\t\t\ttypeof process.env.NEXT_PUBLIC_YM_COUNTER == 'undefined' ||\r\n\t\t\t!process.env.NEXT_PUBLIC_YM_COUNTER\r\n\t\t) {\r\n\t\t\tconsole.log('Yandex counter не определен в конфиге .env.local')\r\n\t\t}\r\n\t\tif (!isTest) {\r\n\t\t\tym(process.env.NEXT_PUBLIC_YM_COUNTER, 'reachGoal', data.target, data.params)\r\n\r\n\t\t\tconsole.log(\r\n\t\t\t\t'Yandex Metrika ' + process.env.NEXT_PUBLIC_YM_COUNTER + ' reachGoal: ' + data.target,\r\n\t\t\t\tdata.params\r\n\t\t\t)\r\n\t\t}\r\n\t} else {\r\n\t\tconsole.log('Yandex Metrika не найдена')\r\n\t}\r\n}\r\n\r\n","import { TAnalyticsVisitParams } from '../types/analytics'\r\n\r\nexport type TAnalyticsApiData = {\r\n\tevent: string\r\n\tname: string\r\n\tmouse_X?: string\r\n\tmouse_Y?: string\r\n\tparams: TAnalyticsVisitParams\r\n}\r\n\r\nexport const sendAnalyticsToAPI = async (data: TAnalyticsApiData) => {\r\n\tif (typeof window !== 'undefined') {\r\n\t\tconst isTest = process.env.NEXT_PUBLIC_IS_TEST === 'true'\r\n\t\tconst url = `https://stone.ru/api/analytics/send-event`\r\n\t\tconst pathname = window.location.pathname\r\n\t\tconst href = window.location.href\r\n\r\n\t\tconst formData = {\r\n\t\t\tevent: data.event,\r\n\t\t\tname: data.name,\r\n\t\t\tpayload: { ...data.params, ...{ page_path: pathname, page_url: href } },\r\n\t\t}\r\n\t\ttry {\r\n\t\t\tif (!isTest) {\r\n\t\t\t\tawait fetch(url, {\r\n\t\t\t\t\tmethod: 'POST',\r\n\t\t\t\t\theaders: {\r\n\t\t\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tbody: JSON.stringify(formData),\r\n\t\t\t\t})\r\n\t\t\t\t// console.log('sendAnalyticsToAPI:', formData)\r\n\t\t\t}\r\n\t\t} catch (e) {\r\n\t\t\tconsole.log(\"can't sendAnalyticsToAPI\")\r\n\t\t}\r\n\t} else return\r\n}\r\n\r\n","import {TAnalyticsData} from '../types/analytics'\r\nimport {dataLayerPush} from '../dataLayerPush/dataLayerPush'\r\nimport {ymTarget} from '../ymTarget/ymaTarget'\r\nimport {sendAnalyticsToAPI} from '../sendAnalyticsToAPI/sendAnalyticsToAPI'\r\nimport {makeTimeBasedUID} from '../utils/makeUID'\r\nimport FingerprintJS from '@fingerprintjs/fingerprintjs'\r\nimport {\r\n getGoogleAnalyticsClientId,\r\n getStoneClientId,\r\n getStoneSessionId,\r\n getYandexMetrikaClientId\r\n} from \"../utils/utils\";\r\n\r\nexport const sendAnalytics = async (data: TAnalyticsData) => {\r\n if (typeof window !== 'undefined') {\r\n const fpPromise = FingerprintJS.load()\r\n const isTest = process.env.NEXT_PUBLIC_IS_TEST === 'true'\r\n\r\n data.params = data.params || {}\r\n data.params.st_event_id = makeTimeBasedUID()\r\n data.params.date = new Date().toISOString().slice(0, 19)?.replace('T', ' ');\r\n\r\n try {\r\n await fpPromise\r\n .then((fp) => fp.get())\r\n .then((result) => {\r\n if (data.params) {\r\n data.params.st_client_hash_id = result.visitorId\r\n }\r\n })\r\n } catch (e) {\r\n console.log('error fingerprintJS' + e)\r\n }\r\n\r\n data.params.ym_client_id = getYandexMetrikaClientId()\r\n data.params.ga_client_id = getGoogleAnalyticsClientId()\r\n data.params.st_client_id = getStoneClientId()\r\n data.params.st_session_id = getStoneSessionId()\r\n\r\n if (!isTest) {\r\n dataLayerPush({event: data.event, params: data.params})\r\n ymTarget({target: data.event, params: data.params})\r\n sendAnalyticsToAPI({event: data.event, name: data.name, params: data.params})\r\n }\r\n }\r\n}\r\n","import FingerprintJS from '@fingerprintjs/fingerprintjs'\r\nimport {getCookie} from \"cookies-next\";\r\n\r\nexport const getStoneHashClientId = async () => {\r\n let st_client_hash_id\r\n try {\r\n const fpPromise = FingerprintJS.load()\r\n await fpPromise\r\n .then((fp) => fp.get())\r\n .then((result) => {\r\n st_client_hash_id = result.visitorId\r\n })\r\n return st_client_hash_id\r\n } catch (e) {\r\n console.log('error fingerprintJS' + e)\r\n }\r\n return undefined\r\n}\r\nexport const getStoneSessionId = () => {\r\n const st_session_id = localStorage.getItem('st_session_id')\r\n if (st_session_id && st_session_id != '') {\r\n return st_session_id\r\n }\r\n return undefined\r\n}\r\nexport const getStoneClientId = () => {\r\n const st_client_id = localStorage.getItem('st_client_id')\r\n if (st_client_id && st_client_id != '') {\r\n return st_client_id\r\n }\r\n return undefined\r\n}\r\nexport const getGoogleAnalyticsClientId = () => {\r\n const _ga = String(getCookie('_ga'))\r\n if (_ga && _ga != '') {\r\n return _ga\r\n } else {\r\n const _ga_local = localStorage.getItem('_ga')\r\n if (_ga_local && _ga_local != '') {\r\n return _ga_local\r\n }\r\n }\r\n return undefined\r\n}\r\nexport const getYandexMetrikaClientId = () => {\r\n const _ym_uid = String(getCookie('_ym_uid'))\r\n if (_ym_uid && _ym_uid != '') {\r\n return _ym_uid\r\n } else {\r\n const _ym_uid_local = localStorage.getItem('_ym_uid')\r\n if (_ym_uid_local && _ym_uid_local != '') {\r\n return _ym_uid_local\r\n }\r\n }\r\n return undefined\r\n}","import { checkTimeStamp, setClientId, setSessionId } from '../utils/sessionClientId'\r\nimport { sendAnalytics } from '../sendAnalytics/sendAnalytics'\r\nimport { useEffect } from 'react'\r\n\r\nexport const useInitializeMetrics = () => {\r\n\tconst isLocalStorage = typeof localStorage !== 'undefined'\r\n\r\n\tconst isClientId = Boolean(isLocalStorage ? localStorage.getItem('st_client_id') : null)\r\n\tconst isSessionId = Boolean(isLocalStorage ? localStorage.getItem('st_session_id') : null)\r\n\tconst isYearPast = checkTimeStamp(isLocalStorage ? localStorage.getItem('st_client_id') : null)\r\n\r\n\tif (!isClientId || isYearPast) setClientId()\r\n\r\n\tif (!isSessionId) {\r\n\t\tsetSessionId()\r\n\t\tsendAnalytics({\r\n\t\t\tevent: 'session_start',\r\n\t\t\tname: 'Начало сессии',\r\n\t\t})\r\n\t}\r\n\r\n\tuseEffect(() => {\r\n\t\tconst tabCountStorage = localStorage.getItem('tabCount')\r\n\r\n\t\t// При открытии вкладки\r\n\t\tlet tabCount = tabCountStorage ? parseInt(tabCountStorage) : 0\r\n\t\tif (tabCount < 0) {\r\n\t\t\tlocalStorage.setItem('tabCount', String(0))\r\n\t\t\ttabCount = 0\r\n\t\t}\r\n\r\n\t\ttabCount++\r\n\t\tif (tabCount) localStorage.setItem('tabCount', String(tabCount))\r\n\r\n\t\t// Обработчик для закрытия вкладки\r\n\t\tconst handleBeforeUnload = () => {\r\n\t\t\tconst tabCountStorage = localStorage.getItem('tabCount')\r\n\t\t\tif (tabCountStorage && typeof window !== 'undefined') {\r\n\t\t\t\tconst tabCount = String(Number(tabCountStorage) - 1)\r\n\t\t\t\tconst scrollTop = window.scrollY\r\n\t\t\t\tconst scrollHeight =\r\n\t\t\t\t\tdocument.documentElement.scrollHeight - document.documentElement.clientHeight\r\n\t\t\t\tconst scrollPercent = (scrollTop / scrollHeight) * 100\r\n\r\n\t\t\t\tsendAnalytics({\r\n\t\t\t\t\tevent: 'scroll',\r\n\t\t\t\t\tname: 'Переход или уход со страницы',\r\n\t\t\t\t\tparams: { scroll_percent: scrollPercent.toFixed(0) + '%' },\r\n\t\t\t\t})\r\n\r\n\t\t\t\tif (tabCount === '0') {\r\n\t\t\t\t\tsendAnalytics({\r\n\t\t\t\t\t\tevent: 'session_end',\r\n\t\t\t\t\t\tname: 'Конец сессии',\r\n\t\t\t\t\t})\r\n\r\n\t\t\t\t\tlocalStorage.setItem('st_session_id', '')\r\n\t\t\t\t}\r\n\t\t\t\tlocalStorage.setItem('tabCount', tabCount)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\twindow.addEventListener('beforeunload', handleBeforeUnload)\r\n\t\treturn () => {\r\n\t\t\twindow.removeEventListener('beforeunload', handleBeforeUnload)\r\n\t\t}\r\n\t}, [])\r\n\r\n\tuseEffect(() => {\r\n\t\tlet inactivityTimer: NodeJS.Timeout\r\n\r\n\t\tconst resetInactivityTimer = () => {\r\n\t\t\tclearTimeout(inactivityTimer)\r\n\t\t\t// 30 минут\r\n\t\t\tinactivityTimer = setTimeout(() => {\r\n\t\t\t\tlocalStorage.setItem('st_session_id', '')\r\n\r\n\t\t\t\tsendAnalytics({\r\n\t\t\t\t\tevent: 'timeout_30min',\r\n\t\t\t\t\tname: 'Конец сессии',\r\n\t\t\t\t})\r\n\t\t\t}, 30 * 60 * 1000)\r\n\t\t}\r\n\r\n\t\tconst events = ['mousemove', 'click', 'touchstart', 'scroll', 'keydown']\r\n\t\tevents.forEach((event) => {\r\n\t\t\twindow.addEventListener(event, resetInactivityTimer)\r\n\t\t})\r\n\r\n\t\t// Запускаем таймер при монтировании компонента\r\n\t\tresetInactivityTimer()\r\n\t\treturn () => {\r\n\t\t\tevents.forEach((event) => {\r\n\t\t\t\twindow.removeEventListener(event, resetInactivityTimer)\r\n\t\t\t})\r\n\t\t\tclearTimeout(inactivityTimer)\r\n\t\t}\r\n\t}, [])\r\n\r\n\treturn {}\r\n}\r\n","import { useEffect, useState } from 'react'\r\n\r\nexport const useComagicStatus = () => {\r\n const [status, setStatus] = useState({\r\n loadedComagic: false,\r\n errorComagic: false,\r\n })\r\n\r\n useEffect(() => {\r\n if (window.Comagic) {\r\n setStatus({ loadedComagic: true, errorComagic: false })\r\n return\r\n }\r\n\r\n const timer = setInterval(() => {\r\n if (window.Comagic) {\r\n setStatus({ loadedComagic: true, errorComagic: false })\r\n clearInterval(timer)\r\n }\r\n }, 300)\r\n\r\n return () => clearInterval(timer)\r\n }, [])\r\n\r\n return status\r\n}\r\n","/**\r\n * Получает значение cookie по имени\r\n * @param name - Имя cookie\r\n * @returns Значение cookie или null, если не найдено\r\n */\r\nexport const getABCookie = (name: string): string | null => {\r\n // Проверяем доступность document (для SSR/SSG)\r\n if (typeof document === 'undefined') return null;\r\n\r\n // Более читаемый вариант регулярного выражения\r\n const escapedName = name?.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\r\n const regex = new RegExp(`(^|;\\\\s*)${escapedName}=([^;]*)`);\r\n const match = document.cookie.match(regex);\r\n\r\n return match ? decodeURIComponent(match[2]) : null;\r\n};","import { makeAutoObservable } from 'mobx'\r\nimport { getStoneHashClientId } from '../../utils/utils'\r\nimport { getPageDirection } from './utils/pageDirection'\r\nimport { getPageType, TSource } from './utils/pageType'\r\nimport { getProjectName } from './utils/getProjectName'\r\nimport { getLotName } from './utils/getLotName'\r\nimport { setEventPageView, TEventPageView } from './events/eventPageView'\r\nimport { setEventPageViewForce } from './events/eventPageViewForce'\r\nimport { setEventSubmit, TEventSubmit } from './events/eventSubmit'\r\nimport { setEventLotFeedShow, TEventLotFeedShow } from './events/eventLotFeedShow'\r\nimport { setEventClick, TEventClick } from './events/eventClick'\r\nimport { setEventCheck, TEventCheck } from './events/eventCheck'\r\nimport { setEventBlur, TEventBlur } from './events/eventBlur'\r\nimport { setEventFullScreen } from './events/eventFullScreenView'\r\nimport { setEventBannerShow, TEventBannerShow } from './events/eventBannerShow'\r\nimport { setEventBannerClick, TEventBannerClick } from './events/eventBannerClick'\r\n\r\ndeclare global {\r\n\tinterface Window {\r\n\t\tComagic?: any\r\n\t\tStoneDataLayer: any\r\n\t}\r\n}\r\n\r\nexport class StoneDataLayerStore {\r\n\tpageParamsIsLoading: boolean\r\n\tpageParamsWasSet: boolean\r\n\r\n\tym_uid?: string\r\n\tcm_visitor_id?: string\r\n\tcm_session_id?: string\r\n\tfingerprint_id?: string\r\n\tvisible_virtual_pn?: string\r\n\tpage_type?: string\r\n\tpage_direction?: string | null\r\n\tpage_project?: string | null\r\n\tpage_lot?: string | null\r\n\tab_test_name?: string | null\r\n\tab_test_group?: string | null\r\n\r\n\tconstructor() {\r\n\t\tthis.pageParamsIsLoading = false\r\n\t\tthis.pageParamsWasSet = false\r\n\t\tthis.page_type = undefined\r\n\t\tthis.page_direction = undefined\r\n\t\tthis.page_project = undefined\r\n\t\tthis.page_lot = undefined\r\n\r\n\t\tmakeAutoObservable(this)\r\n\t}\r\n\r\n\tinitializeUserId() {\r\n\t\tif (typeof window === 'undefined') return null\r\n\t\treturn localStorage.getItem('user_reg_id')\r\n\t}\r\n\r\n\tpushLayer(tagManagerArgs: any) {\r\n\t\tif (typeof window !== 'undefined') {\r\n\t\t\tconst StoneDataLayer = window.StoneDataLayer || []\r\n\t\t\tStoneDataLayer.push(tagManagerArgs)\r\n\t\t}\r\n\t}\r\n\r\n\tsetPageParams({ pathname, source, href }: { pathname: string; source: TSource; href?: string }) {\r\n\t\tthis.pageParamsIsLoading = true\r\n\t\tthis.page_direction = getPageDirection(pathname, href)\r\n\t\tthis.page_type = getPageType(pathname, source, href)\r\n\t\tthis.page_project = getProjectName(pathname, href)\r\n\t\tthis.page_lot = getLotName(pathname)\r\n\t\tthis.ab_test_name = 'abgroup'\r\n\t\tthis.ab_test_group = process.env.NEXT_PUBLIC_AB_TEST_GROUP\r\n\r\n\t\tthis.pageParamsIsLoading = false\r\n\t\tthis.pageParamsWasSet = true\r\n\t}\r\n\r\n\tasync setFingerPrint() {\r\n\t\tthis.fingerprint_id = (await getStoneHashClientId()) ?? null\r\n\t}\r\n\r\n\tasync setEventPageView(props?: Omit<TEventPageView, 'store'>) {\r\n\t\tawait setEventPageView({ store: this, ...props })\r\n\t}\r\n\r\n\tasync setEventPageViewForce() {\r\n\t\t//тестовая отправка, метод дергал без ожиданий вообще чисто для теста Антона\r\n\t\tawait setEventPageViewForce({ store: this })\r\n\t}\r\n\r\n\tasync setEventSubmit(props: Omit<TEventSubmit, 'store'>) {\r\n\t\tawait setEventSubmit({ store: this, ...props })\r\n\t}\r\n\r\n\tasync setEventLotFeedShow(props: Omit<TEventLotFeedShow, 'store'>) {\r\n\t\tawait setEventLotFeedShow({ store: this, ...props })\r\n\t}\r\n\r\n\tasync setEventClick(props: Omit<TEventClick, 'store'>) {\r\n\t\tawait setEventClick({ store: this, ...props })\r\n\t}\r\n\r\n\tasync setEventCheck(props: Omit<TEventCheck, 'store'>) {\r\n\t\tawait setEventCheck({ store: this, ...props })\r\n\t}\r\n\r\n\tasync setEventBlur(props: Omit<TEventBlur, 'store'>) {\r\n\t\tawait setEventBlur({ store: this, ...props })\r\n\t}\r\n\r\n\tasync setEventFullScreen() {\r\n\t\tawait setEventFullScreen({ store: this })\r\n\t}\r\n\r\n\tasync setEventBannerShow(props: Omit<TEventBannerShow, 'store'>) {\r\n\t\tawait setEventBannerShow({ store: this, ...props })\r\n\t}\r\n\r\n\tasync setEventBannerClick(props: Omit<TEventBannerClick, 'store'>) {\r\n\t\tawait setEventBannerClick({ store: this, ...props })\r\n\t}\r\n}\r\n\r\nexport const stoneDataLayerStore = new StoneDataLayerStore()\r\n","export type TPageDirection = 'apartments' | 'offices' | 'retail' | 'investments' | null\r\n\r\nconst pathDirection = {\r\n commercial: 'offices',\r\n residential: 'apartments',\r\n retail: 'retail',\r\n investments: 'investments',\r\n} as const\r\n\r\nconst specialCondition = {\r\n 'stone.moscow': 'apartments',\r\n 'stone-sokolniki': 'apartments',\r\n 'sokolniki-stone': 'apartments',\r\n 'stone-rise': 'apartments',\r\n 'stone-hod': 'offices'\r\n}\r\n\r\nexport const getPageDirection = (pathname: string, href?: string): TPageDirection => {\r\n let specialResult = null\r\n\r\n if (href) {\r\n Object.keys(specialCondition).forEach((el) => {\r\n if (href.includes(el)) {\r\n specialResult = specialCondition[el]\r\n }\r\n })\r\n if (specialResult) return specialResult\r\n }\r\n\r\n\r\n //хардкод ритейла т.к по сути он офисный проект\r\n switch (pathname) {\r\n case '/commercial/sokolniki-retail':\r\n return 'retail'\r\n case '/commercial/mnevniki-retail':\r\n return 'retail'\r\n }\r\n\r\n const key = Object.keys(pathDirection).filter((el) => pathname.includes(el))[0]\r\n const value = pathDirection[key as keyof typeof pathDirection]\r\n if (value) return value\r\n else return null\r\n}\r\n","//регулярка для проектов по pathname\r\nconst reg_com_project = /^\\/commercial\\/[^/]+$/\r\nconst reg_res_project = /^\\/residential\\/[^/]+$/\r\n\r\n//регулярка для лотов по pathname\r\nconst reg_com_lot = /^\\/catalog\\/commercial\\/([a-z0-9_#-]+)(?:\\/[a-z0-9_#-]+)*$/i;\r\nconst reg_res_lot = /^\\/catalog\\/residential\\/([a-z0-9_#-]+)(?:\\/[a-z0-9_#-]+)*$/i;\r\n\r\nexport { reg_com_lot, reg_res_lot, reg_res_project, reg_com_project }\r\n","import {reg_com_lot, reg_com_project, reg_res_lot, reg_res_project} from \"./regs\";\r\n\r\nexport type TSource = 'stone' | 'sokolniki' | 'stone-hod' | 'stonehod'\r\n\r\nexport const staticPageViewType = {\r\n '/': 'main',\r\n '/loyalty': 'loyalty',\r\n '/residential': 'category_page',\r\n '/commercial': 'category_page',\r\n '/retail': 'category_page',\r\n '/rent': 'rent',\r\n '/service': 'services',\r\n '/presscenter': 'press_center',\r\n '/purchaseterms': 'terms_of_purchase',\r\n '/purchaseterms/residential': 'terms_of_purchase',\r\n '/contacts': 'contacts',\r\n '/documents': 'documents',\r\n '/documents/docs': 'documents',\r\n '/documents/soglasie-na-rassylki': 'documents',\r\n '/documents/politika-konfidenczialnosti': 'documents',\r\n '/documents/usloviya-loyalty': 'documents',\r\n '/investments': 'investments',\r\n '/about': 'about_company',\r\n '/catalog/commercial': 'lot_catalog',\r\n '/catalog/residential': 'lot_catalog',\r\n} as const\r\n\r\nexport const sokolnikiPageViewType = {\r\n '/': 'project_card',\r\n '/policy': 'project_card'\r\n}\r\n\r\nexport const stoneHodPageViewType = {\r\n '/': 'stoneHod_main',\r\n '/policy': 'stoneHod_policy'\r\n}\r\n\r\nconst specialCondition = {\r\n 'stone.moscow': 'category_page',\r\n 'stone-sokolniki': 'project_card',\r\n 'sokolniki-stone': 'project_card',\r\n 'stone-rise': 'project_card',\r\n 'stone-hod': 'category_page'\r\n}\r\n\r\nexport type TPageType = keyof typeof staticPageViewType\r\n\r\nexport const getPageType = (pathname: string, source = 'stone' as TSource, href?: string) => {\r\n let specialResult = null\r\n\r\n if (href) {\r\n Object.keys(specialCondition).forEach((el) => {\r\n if (href.includes(el)) {\r\n specialResult = specialCondition[el]\r\n }\r\n })\r\n if (specialResult) return specialResult\r\n }\r\n\r\n if (pathname) {\r\n switch (source) {\r\n case \"stone\": {\r\n const isOnStaticPage = Object.keys(staticPageViewType).includes(pathname)\r\n //для статических страниц\r\n if (isOnStaticPage) return staticPageViewType[pathname as keyof typeof staticPageViewType]\r\n //для динамической страницы проекта\r\n else if (reg_com_project.test(pathname) || reg_res_project.test(pathname)) {\r\n return 'project_card'\r\n }\r\n //для динамической страницы лота\r\n else if (reg_com_lot.test(pathname) || reg_res_lot.test(pathname)) {\r\n return 'lot_card'\r\n }\r\n return null\r\n }\r\n\r\n case \"sokolniki\" : {\r\n return sokolnikiPageViewType[pathname as keyof typeof sokolnikiPageViewType]\r\n }\r\n\r\n case \"stone-hod\": {\r\n return stoneHodPageViewType[pathname as keyof typeof stoneHodPageViewType]\r\n }\r\n\r\n default:\r\n return null\r\n }\r\n }\r\n\r\n return 'other'\r\n}\r\n","import {reg_com_lot, reg_res_lot} from \"./regs\";\r\n\r\nconst reg_com_project = /^\\/commercial\\/([^/]+)$/\r\nconst reg_res_project = /^\\/residential\\/([^/]+)$/\r\n\r\nconst specialCondition = {\r\n 'stone-sokolniki': 'sokolniki',\r\n 'sokolniki-stone': 'sokolniki',\r\n 'stone-rise': 'rise',\r\n 'stone-hod': 'hodinka'\r\n}\r\n\r\nexport const getProjectName = (pathname: string, href?: string) => {\r\n let specialResult = null\r\n\r\n const comMatch = pathname.match(reg_com_project)\r\n const resMatch = pathname.match(reg_res_project)\r\n\r\n const comLotMatch = pathname.match(reg_com_lot)\r\n const resLotMatch = pathname.match(reg_res_lot)\r\n\r\n if (href) {\r\n Object.keys(specialCondition).forEach((el) => {\r\n if (href.includes(el)) {\r\n specialResult = specialCondition[el]\r\n }\r\n })\r\n }\r\n\r\n if (specialResult) return specialResult\r\n\r\n if (comLotMatch) return comLotMatch[1]\r\n if (resLotMatch) return resLotMatch[1]\r\n if (comMatch) return comMatch[1]\r\n if (resMatch) return resMatch[1]\r\n return null\r\n}\r\n","const reg_com_lot = /^\\/catalog\\/commercial\\/(?:[a-z0-9_#-]+\\/)*([a-z0-9_#-]+)$/i\r\nconst reg_res_lot = /^\\/catalog\\/residential\\/(?:[a-z0-9_#-]+\\/)*([a-z0-9_#-]+)$/i\r\n\r\nexport const getLotName = (pathname: string) => {\r\n const comMatch = pathname.match(reg_com_lot)\r\n const resMatch = pathname.match(reg_res_lot)\r\n\r\n if (comMatch) return comMatch[1]\r\n if (resMatch) return resMatch[1]\r\n return null\r\n}\r\n","import {StoneDataLayerStore} from \"../StoneDataLayerStore\";\r\n\r\nexport const getDefaultAnalyticsData = (store: StoneDataLayerStore) => ({\r\n ym_uid: store.ym_uid ?? null,\r\n cm_visitor_id: store.cm_visitor_id ?? null,\r\n cm_session_id: store.cm_session_id ?? null,\r\n fingerprint_id: store?.fingerprint_id ?? null,\r\n visible_virtual_pn: store?.visible_virtual_pn ?? null,\r\n page_type: store.page_type,\r\n page_direction: store.page_direction,\r\n page_project: store.page_project,\r\n page_lot: store.page_lot,\r\n ab_test_name: store.ab_test_name,\r\n ab_test_group: store.ab_test_group,\r\n user_id: store.initializeUserId() ?? null,\r\n})\r\n","import {StoneDataLayerStore} from \"../StoneDataLayerStore\";\r\nimport {getDefaultAnalyticsData} from \"../utils/getDefaultAnalyticsData\";\r\n\r\nexport type TEventPageView = {\r\n store: StoneDataLayerStore\r\n user_id?: string | null\r\n auth?: boolean\r\n projectName?: string\r\n lotName?: string\r\n}\r\n\r\nexport const setEventPageView = async ({store}: TEventPageView) => {\r\n try {\r\n const defaultData = getDefaultAnalyticsData(store)\r\n\r\n const additionalFields = {\r\n event: 'pageview',\r\n }\r\n\r\n const dataForPush = {...defaultData}\r\n delete dataForPush.ym_uid\r\n\r\n store.pushLayer({...dataForPush, ...additionalFields})\r\n } catch (e) {\r\n console.log('error', e)\r\n }\r\n}\r\n","import {StoneDataLayerStore} from \"../StoneDataLayerStore\";\r\nimport {getDefaultAnalyticsData} from \"../utils/getDefaultAnalyticsData\";\r\n\r\nexport type TEventPageView = {\r\n store: StoneDataLayerStore\r\n projectName?: string\r\n lotName?: string\r\n}\r\n\r\nexport const setEventPageViewForce = async ({ store }: TEventPageView) => {\r\n try {\r\n const defaultData = getDefaultAnalyticsData(store)\r\n\r\n const additionalFields = {\r\n event: 'pageview_force',\r\n }\r\n\r\n store.pushLayer({ ...defaultData, ...additionalFields })\r\n } catch (e) {\r\n console.log('error',e)\r\n }\r\n}\r\n","import {md5} from \"js-md5\";\r\n\r\nexport const getVisibleVirtualPn = () => {\r\n const virtual_pn = document.getElementById('header_phone')?.getAttribute(\"href\")?.replace(/\\D/g, \"\");\r\n return typeof virtual_pn === 'string' ? md5(virtual_pn) : undefined\r\n}","export const getYmUid = (id: number) => {\r\n if (typeof window !== 'undefined' && typeof ym !== 'undefined') {\r\n let ymUid\r\n ym(id, 'getClientID', function (clientID) {\r\n ymUid = clientID\r\n })\r\n return ymUid ?? null\r\n }\r\n}\r\n","declare const Comagic: any\r\n\r\nconst getComagicVisitorId = () => {\r\n if (typeof Comagic !== 'undefined') {\r\n return Comagic && Comagic.getVisitorId()\r\n }\r\n else return null\r\n}\r\n\r\nconst getComagicSessionId = () => {\r\n if (typeof Comagic !== 'undefined') {\r\n return Comagic && Comagic.getSessionId()\r\n }\r\n else return null\r\n}\r\n\r\nexport { getComagicSessionId, getComagicVisitorId }\r\n","import {getYmUid} from \"./getYmUid\";\r\nimport {getComagicSessionId, getComagicVisitorId} from \"./getComagicId\";\r\n\r\nexport const setAnalyticId = (defaultData: any)=> {\r\n defaultData.ym_uid = getYmUid(95057596)\r\n defaultData.cm_visitor_id = getComagicVisitorId()\r\n defaultData.cm_session_id = getComagicSessionId()\r\n}","import { getDefaultAnalyticsData } from '../utils/getDefaultAnalyticsData'\r\nimport { StoneDataLayerStore } from '../StoneDataLayerStore'\r\nimport { getVisibleVirtualPn } from '../../../utils/getVisibleVirtualPn'\r\nimport { setAnalyticId } from '../utils/setAnalyticId'\r\n\r\nexport type TEventSubmit = {\r\n\tstore: StoneDataLayerStore\r\n\tblock_name?: string\r\n\tauth?: boolean\r\n\tlead_id?: string\r\n\tsubmitted_lot?: string\r\n\tsubmitted_lot_project?: string\r\n}\r\n\r\nexport const setEventSubmit = async ({\r\n\tstore,\r\n\tlead_id,\r\n\tblock_name,\r\n\tauth,\r\n\tsubmitted_lot,\r\n\tsubmitted_lot_project,\r\n}: TEventSubmit) => {\r\n\ttry {\r\n\t\tconst defaultData = getDefaultAnalyticsData(store)\r\n\r\n\t\tconst additionalFields = {\r\n\t\t\tevent: 'submit',\r\n\t\t\tlead_id: String(lead_id),\r\n\t\t\tblock_name,\r\n\t\t\tauth,\r\n\t\t\tsubmitted_lot: submitted_lot ?? null,\r\n\t\t\tsubmitted_lot_project: submitted_lot_project ?? null,\r\n\t\t}\r\n\r\n\t\tdefaultData.visible_virtual_pn = getVisibleVirtualPn()\r\n\t\tsetAnalyticId(defaultData)\r\n\r\n\t\tstore.pushLayer({ ...defaultData, ...additionalFields })\r\n\t} catch (e) {\r\n\t\tconsole.log('error', e)\r\n\t}\r\n}\r\n","import {StoneDataLayerStore} from \"../StoneDataLayerStore\";\r\nimport {getDefaultAnalyticsData} from \"../utils/getDefaultAnalyticsData\";\r\nimport {getVisibleVirtualPn} from \"../../../utils/getVisibleVirtualPn\";\r\nimport {setAnalyticId} from \"../utils/setAnalyticId\";\r\n\r\nexport type TEventLotFeedShow = {\r\n store: StoneDataLayerStore\r\n pathname?: string\r\n block_name?: string\r\n list_of_lots: TAnalyticFeedLot[]\r\n}\r\n\r\nexport type TAnalyticFeedLot = {\r\n position: number | null\r\n lot: string | null\r\n lot_project: string | null\r\n}\r\n\r\nexport const setEventLotFeedShow = async ({\r\n store,\r\n block_name,\r\n list_of_lots,\r\n }: TEventLotFeedShow) => {\r\n try {\r\n const defaultData = getDefaultAnalyticsData(store)\r\n\r\n const additionalFields = {\r\n event: 'lot_feed_show',\r\n block_name,\r\n list_of_lots,\r\n }\r\n\r\n const dataForPush = {...defaultData}\r\n setAnalyticId(defaultData)\r\n\r\n delete dataForPush.ym_uid\r\n delete dataForPush.cm_visitor_id\r\n delete dataForPush.cm_session_id\r\n\r\n defaultData.visible_virtual_pn = getVisibleVirtualPn()\r\n\r\n store.pushLayer({...defaultData, ...additionalFields})\r\n } catch (e) {\r\n console.log('error', e)\r\n }\r\n}\r\n","import { StoneDataLayerStore } from '../StoneDataLayerStore'\r\nimport { getDefaultAnalyticsData } from '../utils/getDefaultAnalyticsData'\r\nimport { getVisibleVirtualPn } from '../../../utils/getVisibleVirtualPn'\r\nimport { setAnalyticId } from '../utils/setAnalyticId'\r\n\r\nexport type TEventClick = {\r\n\tstore: StoneDataLayerStore\r\n\tpathname?: string\r\n\tblock_name?: string\r\n\tauth?: boolean\r\n\tclicked_url?: string\r\n\taction_element?: string | null\r\n\taction_element_text?: string | null\r\n\taction_element_status?: 'error' | 'success'\r\n\tclicked_lot?: string\r\n\tclicked_lot_project?: string\r\n\tclicked_lot_position?: string\r\n}\r\n\r\nexport const setEventClick = async ({\r\n\tstore,\r\n\taction_element,\r\n\taction_element_text,\r\n\tblock_name,\r\n\tclicked_url,\r\n\tauth,\r\n\tclicked_lot,\r\n\tclicked_lot_project,\r\n\tclicked_lot_position,\r\n\taction_element_status,\r\n}: TEventClick) => {\r\n\ttry {\r\n\t\tconst defaultData = getDefaultAnalyticsData(store)\r\n\r\n\t\tconst additionalFields: Omit<TEventClick, 'store'> & { event: string } = {\r\n\t\t\tevent: 'click',\r\n\t\t\taction_element,\r\n\t\t\taction_element_text,\r\n\t\t\tblock_name,\r\n\t\t\tauth,\r\n\t\t\tclicked_url,\r\n\t\t\tclicked_lot: clicked_lot ?? null,\r\n\t\t\tclicked_lot_project: clicked_lot_project ?? null,\r\n\t\t\tclicked_lot_position: clicked_lot_position ?? null,\r\n\t\t}\r\n\r\n\t\tif (action_element_status) additionalFields.action_element_status = action_element_status\r\n\r\n\t\tdefaultData.visible_virtual_pn = getVisibleVirtualPn()\r\n\r\n\t\tsetAnalyticId(defaultData)\r\n\r\n\t\tstore.pushLayer({ ...defaultData, ...additionalFields })\r\n\t} catch (e) {\r\n\t\tconsole.log('error', e)\r\n\t}\r\n}\r\n","import { getDefaultAnalyticsData } from '../utils/getDefaultAnalyticsData'\r\nimport { StoneDataLayerStore } from '../StoneDataLayerStore'\r\nimport { getVisibleVirtualPn } from '../../../utils/getVisibleVirtualPn'\r\nimport { setAnalyticId } from '../utils/setAnalyticId'\r\n\r\nexport type TEventCheck = {\r\n\tstore: StoneDataLayerStore\r\n\tpathname?: string\r\n\tblock_name?: string\r\n\tauth?: boolean\r\n\taction_element: string\r\n\taction_element_text: string\r\n}\r\n\r\nexport const setEventCheck = async ({\r\n\tstore,\r\n\taction_element,\r\n\tauth,\r\n\taction_element_text,\r\n\tblock_name,\r\n}: TEventCheck) => {\r\n\ttry {\r\n\t\tconst defaultData = getDefaultAnalyticsData(store)\r\n\r\n\t\tconst additionalFields = {\r\n\t\t\tevent: 'check',\r\n\t\t\taction_element,\r\n\t\t\tauth,\r\n\t\t\taction_element_text,\r\n\t\t\tblock_name,\r\n\t\t}\r\n\r\n\t\tdefaultData.visible_virtual_pn = getVisibleVirtualPn()\r\n\r\n\t\tsetAnalyticId(defaultData)\r\n\r\n\t\tstore.pushLayer({ ...defaultData, ...additionalFields })\r\n\t} catch (e) {\r\n\t\tconsole.log('error', e)\r\n\t}\r\n}\r\n","import { StoneDataLayerStore } from '../StoneDataLayerStore'\r\nimport { getDefaultAnalyticsData } from '../utils/getDefaultAnalyticsData'\r\nimport { getVisibleVirtualPn } from '../../../utils/getVisibleVirtualPn'\r\nimport { setAnalyticId } from '../utils/setAnalyticId'\r\n\r\nexport type TEventBlur = {\r\n\tstore: StoneDataLayerStore\r\n\tpathname?: string\r\n\tauth?: boolean\r\n\tblock_name?: string\r\n\taction_element: string\r\n\taction_element_status: 'error' | 'success'\r\n}\r\n\r\nexport const setEventBlur = async ({\r\n\tstore,\r\n\taction_element,\r\n\tblock_name,\r\n\tauth,\r\n\taction_element_status,\r\n}: TEventBlur) => {\r\n\ttry {\r\n\t\tconst defaultData = getDefaultAnalyticsData(store)\r\n\r\n\t\tconst additionalFields = {\r\n\t\t\tevent: 'blur',\r\n\t\t\taction_element,\r\n\t\t\taction_element_status,\r\n\t\t\tblock_name,\r\n\t\t\tauth,\r\n\t\t}\r\n\r\n\t\tdefaultData.visible_virtual_pn = getVisibleVirtualPn()\r\n\r\n\t\tsetAnalyticId(defaultData)\r\n\r\n\t\tstore.pushLayer({ ...defaultData, ...additionalFields })\r\n\t} catch (e) {\r\n\t\tconsole.log('error', e)\r\n\t}\r\n}\r\n","import { StoneDataLayerStore } from '../StoneDataLayerStore'\r\nimport { getDefaultAnalyticsData } from '../utils/getDefaultAnalyticsData'\r\nimport { getVisibleVirtualPn } from '../../../utils/getVisibleVirtualPn'\r\nimport { setAnalyticId } from '../utils/setAnalyticId'\r\n\r\nexport type TEventPageView = {\r\n\tstore: StoneDataLayerStore\r\n\tprojectName?: string\r\n\tauth?: boolean\r\n\tlotName?: string\r\n}\r\n\r\nexport const setEventFullScreen = async ({ store }: TEventPageView) => {\r\n\ttry {\r\n\t\tconst defaultData = getDefaultAnalyticsData(store)\r\n\r\n\t\tconst additionalFields = {\r\n\t\t\tevent: 'fullscreenview',\r\n\t\t}\r\n\r\n\t\tdefaultData.visible_virtual_pn = getVisibleVirtualPn()\r\n\r\n\t\tsetAnalyticId(defaultData)\r\n\r\n\t\tstore.pushLayer({ ...defaultData, ...additionalFields })\r\n\t} catch (e) {\r\n\t\tconsole.log('error', e)\r\n\t}\r\n}\r\n","import { StoneDataLayerStore } from '../StoneDataLayerStore'\r\nimport { getDefaultAnalyticsData } from '../utils/getDefaultAnalyticsData'\r\nimport { setAnalyticId } from '../utils/setAnalyticId'\r\n\r\nexport type TEventBannerShow = {\r\n\tstore: StoneDataLayerStore\r\n\tpathname?: string\r\n\tblock_name?: string\r\n\tauth?: boolean\r\n\tbanner_text: string\r\n\tbanner_link: string\r\n}\r\n\r\nexport const setEventBannerShow = async ({\r\n\tstore,\r\n\tbanner_text,\r\n\tbanner_link,\r\n\tauth,\r\n\tblock_name,\r\n}: TEventBannerShow) => {\r\n\ttry {\r\n\t\tconst defaultData = getDefaultAnalyticsData(store)\r\n\r\n\t\tconst additionalFields = {\r\n\t\t\tevent: 'banner_show',\r\n\t\t\tbanner_text,\r\n\t\t\tbanner_link,\r\n\t\t\tauth,\r\n\t\t\tblock_name,\r\n\t\t}\r\n\r\n\t\tsetAnalyticId(defaultData)\r\n\r\n\t\tstore.pushLayer({ ...defaultData, ...additionalFields })\r\n\t} catch (e) {\r\n\t\tconsole.log('error', e)\r\n\t}\r\n}\r\n","import { StoneDataLayerStore } from '../StoneDataLayerStore'\r\nimport { getDefaultAnalyticsData } from '../utils/getDefaultAnalyticsData'\r\nimport { setAnalyticId } from '../utils/setAnalyticId'\r\n\r\nexport type TEventBannerClick = {\r\n\tstore: StoneDataLayerStore\r\n\tpathname?: string\r\n\tblock_name?: string\r\n\tauth?: boolean\r\n\tclicked_url?: string\r\n\tbanner_text: string\r\n\tbanner_link: string\r\n}\r\n\r\nexport const setEventBannerClick = async ({\r\n\tstore,\r\n\tbanner_text,\r\n\tbanner_link,\r\n\tauth,\r\n\tclicked_url,\r\n\tblock_name,\r\n}: TEventBannerClick) => {\r\n\ttry {\r\n\t\tconst defaultData = getDefaultAnalyticsData(store)\r\n\r\n\t\tconst additionalFields = {\r\n\t\t\tevent: 'banner_click',\r\n\t\t\tbanner_text,\r\n\t\t\tbanner_link,\r\n\t\t\tauth,\r\n\t\t\tclicked_url,\r\n\t\t\tblock_name,\r\n\t\t}\r\n\r\n\t\tsetAnalyticId(defaultData)\r\n\r\n\t\tstore.pushLayer({ ...defaultData, ...additionalFields })\r\n\t} catch (e) {\r\n\t\tconsole.log('error', e)\r\n\t}\r\n}\r\n"],"mappings":"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","names":["index_exports","__export","StoneDataLayerStore","checkTimeStamp","getABCookie","getGoogleAnalyticsClientId","getLotName","getPageDirection","getPageType","getProjectName","getStoneClientId","getStoneHashClientId","getStoneSessionId","getYandexMetrikaClientId","sendAnalytics","setClientId","setSessionId","sokolnikiPageViewType","staticPageViewType","stoneDataLayerStore","stoneHodPageViewType","useComagicStatus","useInitializeMetrics","__toCommonJS","makeTimeBasedUID","isLocalStorage","checkTimeStamp","clientId","unixTimestamp","ISOSDate","ISOSDateNow","setSessionId","newId","makeTimeBasedUID","setClientId","dataLayerPush","data","_a","isTest","pathname","href","layerEvent","ymTarget","data","isTest","sendAnalyticsToAPI","data","isTest","url","pathname","href","formData","import_fingerprintjs","import_fingerprintjs","import_cookies_next","getStoneHashClientId","st_client_hash_id","FingerprintJS","fp","result","e","getStoneSessionId","st_session_id","getStoneClientId","st_client_id","getGoogleAnalyticsClientId","_ga","_ga_local","getYandexMetrikaClientId","_ym_uid","_ym_uid_local","sendAnalytics","data","_a","fpPromise","FingerprintJS","isTest","makeTimeBasedUID","fp","result","e","getYandexMetrikaClientId","getGoogleAnalyticsClientId","getStoneClientId","getStoneSessionId","dataLayerPush","ymTarget","sendAnalyticsToAPI","import_react","useInitializeMetrics","isLocalStorage","isClientId","isSessionId","isYearPast","checkTimeStamp","setClientId","setSessionId","sendAnalytics","tabCountStorage","tabCount","handleBeforeUnload","scrollTop","scrollHeight","scrollPercent","inactivityTimer","resetInactivityTimer","events","event","import_react","useComagicStatus","status","setStatus","timer","getABCookie","name","escapedName","regex","match","import_mobx","pathDirection","specialCondition","getPageDirection","pathname","href","specialResult","el","key","value","reg_com_project","reg_res_project","reg_com_lot","reg_res_lot","staticPageViewType","sokolnikiPageViewType","stoneHodPageViewType","specialCondition","getPageType","pathname","source","href","specialResult","el","reg_com_project","reg_res_project","reg_com_lot","reg_res_lot","reg_com_project","reg_res_project","specialCondition","getProjectName","pathname","href","specialResult","comMatch","resMatch","comLotMatch","reg_com_lot","resLotMatch","reg_res_lot","el","reg_com_lot","reg_res_lot","getLotName","pathname","comMatch","resMatch","getDefaultAnalyticsData","store","setEventPageView","store","defaultData","getDefaultAnalyticsData","additionalFields","dataForPush","e","setEventPageViewForce","store","defaultData","getDefaultAnalyticsData","additionalFields","e","import_js_md5","getVisibleVirtualPn","_a","_b","virtual_pn","getYmUid","id","ymUid","clientID","getComagicVisitorId","getComagicSessionId","setAnalyticId","defaultData","getYmUid","getComagicVisitorId","getComagicSessionId","setEventSubmit","store","lead_id","block_name","auth","submitted_lot","submitted_lot_project","defaultData","getDefaultAnalyticsData","additionalFields","getVisibleVirtualPn","setAnalyticId","e","setEventLotFeedShow","store","block_name","list_of_lots","defaultData","getDefaultAnalyticsData","additionalFields","dataForPush","setAnalyticId","getVisibleVirtualPn","e","setEventClick","store","action_element","action_element_text","block_name","clicked_url","auth","clicked_lot","clicked_lot_project","clicked_lot_position","action_element_status","defaultData","getDefaultAnalyticsData","additionalFields","getVisibleVirtualPn","setAnalyticId","e","setEventCheck","store","action_element","auth","action_element_text","block_name","defaultData","getDefaultAnalyticsData","additionalFields","getVisibleVirtualPn","setAnalyticId","e","setEventBlur","store","action_element","block_name","auth","action_element_status","defaultData","getDefaultAnalyticsData","additionalFields","getVisibleVirtualPn","setAnalyticId","e","setEventFullScreen","store","defaultData","getDefaultAnalyticsData","additionalFields","getVisibleVirtualPn","setAnalyticId","e","setEventBannerShow","store","banner_text","banner_link","auth","block_name","defaultData","getDefaultAnalyticsData","additionalFields","setAnalyticId","e","setEventBannerClick","store","banner_text","banner_link","auth","clicked_url","block_name","defaultData","getDefaultAnalyticsData","additionalFields","setAnalyticId","e","StoneDataLayerStore","tagManagerArgs","pathname","source","href","getPageDirection","getPageType","getProjectName","getLotName","getStoneHashClientId","props","setEventPageView","setEventPageViewForce","setEventSubmit","setEventLotFeedShow","setEventClick","setEventCheck","setEventBlur","setEventFullScreen","setEventBannerShow","setEventBannerClick","stoneDataLayerStore"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "stone-analytics",
3
- "version": "0.0.92",
3
+ "version": "0.0.94",
4
4
  "description": "analytic package STONE",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.js",