stone-analytics 0.0.128 → 0.0.131

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/README.md CHANGED
@@ -1,37 +1,37 @@
1
- # Пакет с функцией отправки аналитики stone
2
-
3
- Npm-пакет для отправки аналитики по api/send-event
4
-
5
- ## Установка
6
-
7
- ```sh
8
- npm i stone-analytics@latest
9
- ```
10
-
11
- ### Инициализация сессии
12
-
13
- Хук для инициализации id сессии и id клиента
14
-
15
- ```sh
16
- import { useInitializeMetrics } from 'stone-analytics'
17
-
18
- export const AppProvider = ({ children }: { children: React.ReactNode }) => {
19
- useInitializeMetrics()
20
-
21
- return <>{children}</>
22
- }
23
- ```
24
-
25
- | Поле | Описание |
26
- | ---------- | --------- |
27
- | session_id | На сессию |
28
- | client_id | На год |
29
-
30
- ### Локальная разработка
31
-
32
- Для того , чтобы локально ничего не отправлялось добавить в env.local
33
-
34
- ```sh
35
- process.env.NEXT_PUBLIC_IS_TEST === 'true'
36
- ```
37
-
1
+ # Пакет с функцией отправки аналитики stone
2
+
3
+ Npm-пакет для отправки аналитики по api/send-event
4
+
5
+ ## Установка
6
+
7
+ ```sh
8
+ npm i stone-analytics@latest
9
+ ```
10
+
11
+ ### Инициализация сессии
12
+
13
+ Хук для инициализации id сессии и id клиента
14
+
15
+ ```sh
16
+ import { useInitializeMetrics } from 'stone-analytics'
17
+
18
+ export const AppProvider = ({ children }: { children: React.ReactNode }) => {
19
+ useInitializeMetrics()
20
+
21
+ return <>{children}</>
22
+ }
23
+ ```
24
+
25
+ | Поле | Описание |
26
+ | ---------- | --------- |
27
+ | session_id | На сессию |
28
+ | client_id | На год |
29
+
30
+ ### Локальная разработка
31
+
32
+ Для того , чтобы локально ничего не отправлялось добавить в env.local
33
+
34
+ ```sh
35
+ process.env.NEXT_PUBLIC_IS_TEST === 'true'
36
+ ```
37
+
package/dist/index.d.ts CHANGED
@@ -92,6 +92,11 @@ type TEventPageView = {
92
92
  auth?: boolean;
93
93
  projectName?: string;
94
94
  lotName?: string;
95
+ widget?: {
96
+ widget_agent_id?: string;
97
+ widget_session_id?: string;
98
+ response_time_ms?: string;
99
+ };
95
100
  };
96
101
 
97
102
  type TEventSubmit = {
@@ -101,6 +106,11 @@ type TEventSubmit = {
101
106
  lead_id?: string;
102
107
  submitted_lot?: string;
103
108
  submitted_lot_project?: string;
109
+ widget?: {
110
+ widget_agent_id?: string;
111
+ widget_session_id?: string;
112
+ response_time_ms?: string;
113
+ };
104
114
  };
105
115
 
106
116
  type TEventLotFeedShow = {
@@ -108,6 +118,11 @@ type TEventLotFeedShow = {
108
118
  pathname?: string;
109
119
  block_name?: string;
110
120
  list_of_lots: TAnalyticFeedLot[];
121
+ widget?: {
122
+ widget_agent_id?: string;
123
+ widget_session_id?: string;
124
+ response_time_ms?: string;
125
+ };
111
126
  };
112
127
  type TAnalyticFeedLot = {
113
128
  position: number | null;
@@ -129,6 +144,11 @@ type TEventClick = {
129
144
  clicked_lot_position?: string;
130
145
  banner_position?: number;
131
146
  banner_text?: string;
147
+ widget?: {
148
+ widget_agent_id?: string;
149
+ widget_session_id?: string;
150
+ response_time_ms?: string;
151
+ };
132
152
  };
133
153
 
134
154
  type TEventCheck = {
@@ -138,6 +158,11 @@ type TEventCheck = {
138
158
  auth?: boolean;
139
159
  action_element: string;
140
160
  action_element_text: string;
161
+ widget?: {
162
+ widget_agent_id?: string;
163
+ widget_session_id?: string;
164
+ response_time_ms?: string;
165
+ };
141
166
  };
142
167
 
143
168
  type TEventBlur = {
@@ -147,6 +172,11 @@ type TEventBlur = {
147
172
  block_name?: string;
148
173
  action_element: string;
149
174
  action_element_status: 'error' | 'success';
175
+ widget?: {
176
+ widget_agent_id?: string;
177
+ widget_session_id?: string;
178
+ response_time_ms?: string;
179
+ };
150
180
  };
151
181
 
152
182
  type TEventBannerShow = {
@@ -157,6 +187,11 @@ type TEventBannerShow = {
157
187
  banner_text: string;
158
188
  banner_link: string;
159
189
  banner_position?: number;
190
+ widget?: {
191
+ widget_agent_id?: string;
192
+ widget_session_id?: string;
193
+ response_time_ms?: string;
194
+ };
160
195
  };
161
196
 
162
197
  type TEventBannerClick = {
@@ -167,6 +202,11 @@ type TEventBannerClick = {
167
202
  clicked_url?: string;
168
203
  banner_text: string;
169
204
  banner_link: string;
205
+ widget?: {
206
+ widget_agent_id?: string;
207
+ widget_session_id?: string;
208
+ response_time_ms?: string;
209
+ };
170
210
  };
171
211
 
172
212
  type TEventOnboardingShow = {
@@ -177,6 +217,11 @@ type TEventOnboardingShow = {
177
217
  banner_text: string;
178
218
  banner_link: string;
179
219
  banner_position?: number;
220
+ widget?: {
221
+ widget_agent_id?: string;
222
+ widget_session_id?: string;
223
+ response_time_ms?: string;
224
+ };
180
225
  };
181
226
 
182
227
  type TEventOnboardingClose = {
@@ -187,6 +232,26 @@ type TEventOnboardingClose = {
187
232
  banner_text: string;
188
233
  banner_link: string;
189
234
  banner_position?: number;
235
+ widget?: {
236
+ widget_agent_id?: string;
237
+ widget_session_id?: string;
238
+ response_time_ms?: string;
239
+ };
240
+ };
241
+
242
+ type TEventChat = {
243
+ store: StoneDataLayerStore;
244
+ pathname?: string;
245
+ block_name?: string;
246
+ auth?: boolean;
247
+ action_element: string;
248
+ action_element_text: string;
249
+ message?: string;
250
+ widget?: {
251
+ widget_agent_id?: string;
252
+ widget_session_id?: string;
253
+ response_time_ms?: string;
254
+ };
190
255
  };
191
256
 
192
257
  declare global {
@@ -230,6 +295,7 @@ declare class StoneDataLayerStore {
230
295
  setEventBannerClick(props: Omit<TEventBannerClick, 'store'>): Promise<void>;
231
296
  setEventOnboardingShow(props: Omit<TEventOnboardingShow, 'store'>): Promise<void>;
232
297
  setEventOnboardingClose(props: Omit<TEventOnboardingClose, 'store'>): Promise<void>;
298
+ setEventChat(props: Omit<TEventChat, 'store'>): Promise<void>;
233
299
  }
234
300
  declare const stoneDataLayerStore: StoneDataLayerStore;
235
301
 
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var ft=Object.create;var S=Object.defineProperty;var yt=Object.getOwnPropertyDescriptor;var St=Object.getOwnPropertyNames;var ht=Object.getPrototypeOf,vt=Object.prototype.hasOwnProperty;var bt=(t,e)=>{for(var o in e)S(t,o,{get:e[o],enumerable:!0})},R=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of St(e))!vt.call(t,a)&&a!==o&&S(t,a,{get:()=>e[a],enumerable:!(n=yt(e,a))||n.enumerable});return t};var wt=(t,e,o)=>(o=t!=null?ft(ht(t)):{},R(e||!t||!t.__esModule?S(o,"default",{value:t,enumerable:!0}):o,t)),kt=t=>R(S({},"__esModule",{value:!0}),t);var Bt={};bt(Bt,{StoneDataLayerStore:()=>I,checkTimeStamp:()=>O,getABCookie:()=>It,getGoogleAnalyticsClientId:()=>Tt,getLotName:()=>H,getPageDirection:()=>B,getPageType:()=>N,getProjectName:()=>U,getStoneClientId:()=>xt,getStoneHashClientId:()=>z,getStoneSessionId:()=>Dt,getYandexMetrikaClientId:()=>Ct,setClientId:()=>j,setSessionId:()=>V,sokolnikiPageViewType:()=>K,staticPageViewType:()=>M,staticRealtyPageViewType:()=>$,stoneDataLayerStore:()=>zt,stoneHodPageViewType:()=>Q,useComagicStatus:()=>Lt,useInitializeMetrics:()=>Et});module.exports=kt(Bt);var P=()=>String(Date.now())+String(Math.floor(Math.random()*9e8)+1e8);var Y=typeof localStorage<"u",O=t=>{if(!t)return!1;let e=Number(t.slice(0,10)),o=new Date(e*1e3),n=new Date(new Date().toISOString());return n.getFullYear()>o.getFullYear()&&n.getMonth()>=o.getMonth()&&n.getDate()>=o.getDate()},V=()=>{let t=P();Y&&localStorage.setItem("st_session_id",t)},j=()=>{let t=P();Y&&localStorage.setItem("st_client_id",t)};var A=require("react"),Et=()=>{let t=typeof localStorage<"u",e=!!(t&&localStorage.getItem("st_client_id")),o=!!(t&&localStorage.getItem("st_session_id")),n=O(t?localStorage.getItem("st_client_id"):null);return(!e||n)&&j(),o||V(),(0,A.useEffect)(()=>{let a=localStorage.getItem("tabCount"),r=a?parseInt(a):0;r<0&&(localStorage.setItem("tabCount",String(0)),r=0),r++,r&&localStorage.setItem("tabCount",String(r));let i=()=>{let l=localStorage.getItem("tabCount");if(l&&typeof window<"u"){let p=String(Number(l)-1),d=window.scrollY,f=document.documentElement.scrollHeight-document.documentElement.clientHeight,y=d/f*100;p==="0"&&localStorage.setItem("st_session_id",""),localStorage.setItem("tabCount",p)}};return window.addEventListener("beforeunload",i),()=>{window.removeEventListener("beforeunload",i)}},[]),(0,A.useEffect)(()=>{let a,r=()=>{clearTimeout(a),a=setTimeout(()=>{localStorage.setItem("st_session_id","")},18e5)},i=["mousemove","click","touchstart","scroll","keydown"];return i.forEach(l=>{window.addEventListener(l,r)}),r(),()=>{i.forEach(l=>{window.removeEventListener(l,r)}),clearTimeout(a)}},[]),{}};var J=wt(require("@fingerprintjs/fingerprintjs")),F=require("cookies-next"),z=async()=>{let t;try{return await J.default.load().then(o=>o.get()).then(o=>{t=o.visitorId}),t}catch(e){console.log("error fingerprintJS"+e)}},Dt=()=>{let t=localStorage.getItem("st_session_id");if(t&&t!="")return t},xt=()=>{let t=localStorage.getItem("st_client_id");if(t&&t!="")return t},Tt=()=>{let t=String((0,F.getCookie)("_ga"));if(t&&t!="")return t;{let e=localStorage.getItem("_ga");if(e&&e!="")return e}},Ct=()=>{let t=String((0,F.getCookie)("_ym_uid"));if(t&&t!="")return t;{let e=localStorage.getItem("_ym_uid");if(e&&e!="")return e}};var h=require("react"),Lt=()=>{let[t,e]=(0,h.useState)({loadedComagic:!1,errorComagic:!1});return(0,h.useEffect)(()=>{if(window.Comagic){e({loadedComagic:!0,errorComagic:!1});return}let o=setInterval(()=>{window.Comagic&&(e({loadedComagic:!0,errorComagic:!1}),clearInterval(o))},300);return()=>clearInterval(o)},[]),t};var It=t=>{if(typeof document>"u")return null;let e=t==null?void 0:t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),o=new RegExp(`(^|;\\s*)${e}=([^;]*)`),n=document.cookie.match(o);return n?decodeURIComponent(n[2]):null};var dt=require("mobx");var W={commercial:"offices",residential:"apartments",retail:"retail",offices:"offices",investments:"investments",rent:"rent",buy:"offices"},G={"stone.moscow":"apartments","stone-sokolniki":"apartments","sokolniki-stone":"apartments","stone-rise":"apartments","stone-hod":"offices"},B=(t,e)=>{let o=null;if(e&&(Object.keys(G).forEach(r=>{e.includes(r)&&(o=G[r])}),o))return o;switch(t){case"/commercial/sokolniki-retail":return"retail";case"/commercial/mnevniki-retail":return"retail"}let n=Object.keys(W).filter(r=>t.includes(r))[0],a=W[n];return a||null};var v=/^\/commercial\/([^/]+)$/,b=/^\/residential\/([^/]+)$/,w=/^\/retail\/([^/]+)$/,k=/^\/offices\/([^/]+)$/,E=/^\/catalog\/commercial\/([a-z0-9_#-]+)(?:\/[a-z0-9_#-]+)*$/i,D=/^\/catalog\/residential\/([a-z0-9_#-]+)(?:\/[a-z0-9_#-]+)*$/i,x=/^\/catalog\/retail\/([a-z0-9_#-]+)(?:\/[a-z0-9_#-]+)*$/i,T=/^\/catalog\/offices\/([a-z0-9_#-]+)(?:\/[a-z0-9_#-]+)*$/i,C=/^\/lot\/buy\/([a-z0-9_#-]+)(?:\/[a-z0-9_#-]+)*$/i,L=/^\/lot\/rent\/([a-z0-9_#-]+)(?:\/[a-z0-9_#-]+)*$/i,X=/^\/catalog\/([a-z0-9_#-]+)(?:\/[a-z0-9_#-]+)*$/i;var M={"/":"main","/loyalty":"loyalty","/residential":"category_page","/residential/standards":"standards","/commercial":"category_page","/commercial/standards":"standards","/retail":"category_page","/rent":"rent","/service":"services","/favorites":"favorites","/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","/catalog/retail":"lot_catalog","/catalog/offices":"lot_catalog"},$={"/":"rent","/rent":"category_page","/owners":"owners","/about":"about_company","/news":"press_center","/buy":"category_page"},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"},N=(t,e="stone",o)=>{let n=null;if(o&&(Object.keys(q).forEach(a=>{o.includes(a)&&(n=q[a])}),n))return n;if(t)switch(e){case"stone":return Object.keys(M).includes(t)?M[t]:v.test(t)||b.test(t)||w.test(t)||k.test(t)?"project_card":E.test(t)||D.test(t)||x.test(t)||T.test(t)?"lot_card":null;case"sokolniki":return K[t];case"stone-hod":return Q[t];case"realty":{if(Object.keys($).includes(t))return $[t];if(X)return"lot_catalog";if(L.test(t)||C.test(t))return"lot_card"}default:return null}return"other"};var Z={"stone-sokolniki":"sokolniki","sokolniki-stone":"sokolniki","stone-rise":"rise","stone-hod":"hodinka"},U=(t,e)=>{let o=null,n=t.match(v),a=t.match(b),r=t.match(w),i=t.match(k),l=t.match(E),p=t.match(D),d=t.match(x),f=t.match(T),y=t.match(C),_=t.match(L);return e&&Object.keys(Z).forEach(u=>{e.includes(u)&&(o=Z[u])}),o||(l?l[1]:p?p[1]:d?d[1]:f?f[1]:n?n[1]:a?a[1]:r?r[1]:i?i[1]:y?y[1]:_?_[1]:null)};var Pt=/^\/catalog\/commercial\/(?:[a-z0-9_#-]+\/)*([a-z0-9_#-]+)$/i,Ot=/^\/catalog\/residential\/(?:[a-z0-9_#-]+\/)*([a-z0-9_#-]+)$/i,Vt=/^\/catalog\/retail\/(?:[a-z0-9_#-]+\/)*([a-z0-9_#-]+)$/i,jt=/^\/catalog\/offices\/(?:[a-z0-9_#-]+\/)*([a-z0-9_#-]+)$/i,At=/^\/lot\/buy\/(?:[a-z0-9_#-]+\/)*([a-z0-9_#-]+)$/i,Ft=/^\/lot\/rent\/(?:[a-z0-9_#-]+\/)*([a-z0-9_#-]+)$/i,H=t=>{let e=t.match(Pt),o=t.match(Ot),n=t.match(Vt),a=t.match(jt),r=t.match(At),i=t.match(Ft);return e?e[1]:o?o[1]:n?n[1]:a?a[1]:r?r[1]:i?i[1]:null};var s=t=>({ym_uid:t.ym_uid??null,cm_visitor_id:t.cm_visitor_id??null,fingerprint_id:(t==null?void 0:t.fingerprint_id)??null,visible_virtual_pn:(t==null?void 0:t.visible_virtual_pn)??null,page_type:t.page_type,page_direction:t.page_direction,page_project:t.page_project,page_lot:t.page_lot,ab_test_name:t.ab_test_name,ab_test_group:t.ab_test_group,user_id:t.initializeUserId()??null,auth:t.initializeUserAuth()??!1});var tt=async({store:t})=>{try{let e=s(t),o={event:"pageview"},n={...e};delete n.ym_uid,t.pushLayer({...n,...o})}catch(e){console.log("error",e)}};var et=async({store:t})=>{try{let e=s(t),o={event:"pageview_force"};t.pushLayer({...e,...o})}catch(e){console.log("error",e)}};var ot=require("js-md5"),g=()=>{var e,o;let t=(o=(e=document.getElementById("header_phone"))==null?void 0:e.getAttribute("href"))==null?void 0:o.replace(/\D/g,"");return typeof t=="string"?(0,ot.md5)(t):void 0};var nt=t=>{if(typeof window<"u"&&typeof ym<"u"){let e;return ym(t,"getClientID",function(o){e=o}),e??null}};var rt=()=>typeof Comagic<"u"?Comagic&&Comagic.getVisitorId():null;var c=t=>{t.ym_uid=nt(95057596),t.cm_visitor_id=rt()};var at=async({store:t,lead_id:e,block_name:o,auth:n,submitted_lot:a,submitted_lot_project:r})=>{try{let i=s(t),l={event:"submit",lead_id:String(e),block_name:o,auth:n??null,submitted_lot:a??null,submitted_lot_project:r??null};i.visible_virtual_pn=g(),c(i),t.pushLayer({...i,...l})}catch(i){console.log("error",i)}};var it=async({store:t,block_name:e,list_of_lots:o})=>{try{let n=s(t),a={event:"lot_feed_show",block_name:e,list_of_lots:o},r={...n};c(n),delete r.ym_uid,delete r.cm_visitor_id,n.visible_virtual_pn=g(),t.pushLayer({...n,...a})}catch(n){console.log("error",n)}};var m=t=>t.replace(/&nbsp;|nbsp|\u00A0/g," ").replace(/<br\s*\/?>|br/gi," ").replace(/\s+/g," ").trim();var st=async({store:t,action_element:e,action_element_text:o,block_name:n,clicked_url:a,auth:r,clicked_lot:i,clicked_lot_project:l,clicked_lot_position:p,action_element_status:d,banner_position:f,banner_text:y})=>{try{let _=s(t),u={event:"click",action_element:e,block_name:n,auth:r??null,clicked_url:a??null,clicked_lot:i??null,clicked_lot_position:p??null};f&&(u.banner_position=f),l&&(u.clicked_lot_project=l),o&&(u.action_element_text=m(o)),y&&(u.banner_text=m(y)),d&&(u.action_element_status=d),_.visible_virtual_pn=g(),c(_),t.pushLayer({..._,...u})}catch(_){console.log("error",_)}};var lt=async({store:t,action_element:e,auth:o,action_element_text:n,block_name:a})=>{try{let r=s(t),i={event:"check",action_element:e,auth:o??null,action_element_text:n??null,block_name:a};r.visible_virtual_pn=g(),c(r),t.pushLayer({...r,...i})}catch(r){console.log("error",r)}};var ct=async({store:t,action_element:e,block_name:o,auth:n,action_element_status:a})=>{try{let r=s(t),i={event:"blur",action_element:e,action_element_status:a,block_name:o,auth:n??null};r.visible_virtual_pn=g(),c(r),t.pushLayer({...r,...i})}catch(r){console.log("error",r)}};var gt=async({store:t})=>{try{let e=s(t),o={event:"fullscreenview"};e.visible_virtual_pn=g(),c(e),t.pushLayer({...e,...o})}catch(e){console.log("error",e)}};var ut=async({store:t,banner_text:e,banner_link:o,banner_position:n,auth:a,block_name:r})=>{try{let i=s(t),l={event:"banner_show",banner_text:m(e)??null,banner_link:o??null,banner_position:n??null,auth:a??null,block_name:r};c(i),t.pushLayer({...i,...l})}catch(i){console.log("error",i)}};var mt=async({store:t,banner_text:e,banner_link:o,auth:n,clicked_url:a,block_name:r})=>{try{let i=s(t),l={event:"banner_click",banner_text:e,banner_link:o,auth:n??null,clicked_url:a,block_name:r};c(i),t.pushLayer({...i,...l})}catch(i){console.log("error",i)}};var _t=async({store:t,banner_text:e,banner_link:o,banner_position:n,auth:a,block_name:r})=>{try{let i=s(t),l={event:"onboarding_show",banner_text:m(e)??null,banner_link:o??null,banner_position:n??null,auth:a??null,block_name:r};c(i),t.pushLayer({...i,...l})}catch(i){console.log("error",i)}};var pt=async({store:t,banner_text:e,banner_link:o,banner_position:n,auth:a,block_name:r})=>{try{let i=s(t),l={event:"onboarding_close",banner_text:m(e)??null,banner_link:o??null,banner_position:n??null,auth:a??null,block_name:r};c(i),t.pushLayer({...i,...l})}catch(i){console.log("error",i)}};var I=class{pageParamsIsLoading;pageParamsWasSet;ym_uid;cm_visitor_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,dt.makeAutoObservable)(this)}initializeUserId(){return typeof window>"u"?null:localStorage.getItem("user_reg_id")}initializeUserAuth(){if(typeof window>"u")return!1;try{let e=localStorage.getItem("auth_store");if(!e)return!1;let o=JSON.parse(e);return(o==null?void 0:o.isLoggedIn)??!1}catch(e){return console.error("Failed to parse auth_store from localStorage:",e),!1}}pushLayer(e){typeof window<"u"&&(window.StoneDataLayer||[]).push(e)}setPageParams({pathname:e,source:o,href:n}){this.pageParamsIsLoading=!0,this.page_direction=B(e,n),this.page_type=N(e,o,n),this.page_project=U(e,n),this.page_lot=H(e),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 z()??null}async setEventPageView(e){await tt({store:this,...e})}async setEventPageViewForce(){await et({store:this})}async setEventSubmit(e){await at({store:this,...e})}async setEventLotFeedShow(e){await it({store:this,...e})}async setEventClick(e){await st({store:this,...e})}async setEventCheck(e){await lt({store:this,...e})}async setEventBlur(e){await ct({store:this,...e})}async setEventFullScreen(){await gt({store:this})}async setEventBannerShow(e){await ut({store:this,...e})}async setEventBannerClick(e){await mt({store:this,...e})}async setEventOnboardingShow(e){await _t({store:this,...e})}async setEventOnboardingClose(e){await pt({store:this,...e})}},zt=new I;0&&(module.exports={StoneDataLayerStore,checkTimeStamp,getABCookie,getGoogleAnalyticsClientId,getLotName,getPageDirection,getPageType,getProjectName,getStoneClientId,getStoneHashClientId,getStoneSessionId,getYandexMetrikaClientId,setClientId,setSessionId,sokolnikiPageViewType,staticPageViewType,staticRealtyPageViewType,stoneDataLayerStore,stoneHodPageViewType,useComagicStatus,useInitializeMetrics});
1
+ var wt=Object.create;var S=Object.defineProperty;var kt=Object.getOwnPropertyDescriptor;var Et=Object.getOwnPropertyNames;var Dt=Object.getPrototypeOf,xt=Object.prototype.hasOwnProperty;var Tt=(t,e)=>{for(var o in e)S(t,o,{get:e[o],enumerable:!0})},Y=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Et(e))!xt.call(t,r)&&r!==o&&S(t,r,{get:()=>e[r],enumerable:!(n=kt(e,r))||n.enumerable});return t};var Ct=(t,e,o)=>(o=t!=null?wt(Dt(t)):{},Y(e||!t||!t.__esModule?S(o,"default",{value:t,enumerable:!0}):o,t)),Lt=t=>Y(S({},"__esModule",{value:!0}),t);var Rt={};Tt(Rt,{StoneDataLayerStore:()=>P,checkTimeStamp:()=>V,getABCookie:()=>At,getGoogleAnalyticsClientId:()=>Vt,getLotName:()=>R,getPageDirection:()=>$,getPageType:()=>U,getProjectName:()=>H,getStoneClientId:()=>Ot,getStoneHashClientId:()=>B,getStoneSessionId:()=>Pt,getYandexMetrikaClientId:()=>jt,setClientId:()=>z,setSessionId:()=>j,sokolnikiPageViewType:()=>ot,staticPageViewType:()=>M,staticRealtyPageViewType:()=>N,stoneDataLayerStore:()=>Ht,stoneHodPageViewType:()=>nt,useComagicStatus:()=>zt,useInitializeMetrics:()=>It});module.exports=Lt(Rt);var O=()=>String(Date.now())+String(Math.floor(Math.random()*9e8)+1e8);var J=typeof localStorage<"u",V=t=>{if(!t)return!1;let e=Number(t.slice(0,10)),o=new Date(e*1e3),n=new Date(new Date().toISOString());return n.getFullYear()>o.getFullYear()&&n.getMonth()>=o.getMonth()&&n.getDate()>=o.getDate()},j=()=>{let t=O();J&&localStorage.setItem("st_session_id",t)},z=()=>{let t=O();J&&localStorage.setItem("st_client_id",t)};var A=require("react"),It=()=>{let t=typeof localStorage<"u",e=!!(t&&localStorage.getItem("st_client_id")),o=!!(t&&localStorage.getItem("st_session_id")),n=V(t?localStorage.getItem("st_client_id"):null);return(!e||n)&&z(),o||j(),(0,A.useEffect)(()=>{let r=localStorage.getItem("tabCount"),a=r?parseInt(r):0;a<0&&(localStorage.setItem("tabCount",String(0)),a=0),a++,a&&localStorage.setItem("tabCount",String(a));let s=()=>{let i=localStorage.getItem("tabCount");if(i&&typeof window<"u"){let g=String(Number(i)-1),u=window.scrollY,p=document.documentElement.scrollHeight-document.documentElement.clientHeight,f=u/p*100;g==="0"&&localStorage.setItem("st_session_id",""),localStorage.setItem("tabCount",g)}};return window.addEventListener("beforeunload",s),()=>{window.removeEventListener("beforeunload",s)}},[]),(0,A.useEffect)(()=>{let r,a=()=>{clearTimeout(r),r=setTimeout(()=>{localStorage.setItem("st_session_id","")},18e5)},s=["mousemove","click","touchstart","scroll","keydown"];return s.forEach(i=>{window.addEventListener(i,a)}),a(),()=>{s.forEach(i=>{window.removeEventListener(i,a)}),clearTimeout(r)}},[]),{}};var W=Ct(require("@fingerprintjs/fingerprintjs")),F=require("cookies-next"),B=async()=>{let t;try{return await W.default.load().then(o=>o.get()).then(o=>{t=o.visitorId}),t}catch(e){console.log("error fingerprintJS"+e)}},Pt=()=>{let t=localStorage.getItem("st_session_id");if(t&&t!="")return t},Ot=()=>{let t=localStorage.getItem("st_client_id");if(t&&t!="")return t},Vt=()=>{let t=String((0,F.getCookie)("_ga"));if(t&&t!="")return t;{let e=localStorage.getItem("_ga");if(e&&e!="")return e}},jt=()=>{let t=String((0,F.getCookie)("_ym_uid"));if(t&&t!="")return t;{let e=localStorage.getItem("_ym_uid");if(e&&e!="")return e}};var v=require("react"),zt=()=>{let[t,e]=(0,v.useState)({loadedComagic:!1,errorComagic:!1});return(0,v.useEffect)(()=>{if(window.Comagic){e({loadedComagic:!0,errorComagic:!1});return}let o=setInterval(()=>{window.Comagic&&(e({loadedComagic:!0,errorComagic:!1}),clearInterval(o))},300);return()=>clearInterval(o)},[]),t};var At=t=>{if(typeof document>"u")return null;let e=t==null?void 0:t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),o=new RegExp(`(^|;\\s*)${e}=([^;]*)`),n=document.cookie.match(o);return n?decodeURIComponent(n[2]):null};var bt=require("mobx");var G={commercial:"offices",residential:"apartments",retail:"retail",offices:"offices",investments:"investments",rent:"rent",buy:"offices"},X={"stone.moscow":"apartments","stone-sokolniki":"apartments","sokolniki-stone":"apartments","stone-rise":"apartments","stone-hod":"offices"},$=(t,e)=>{let o=null;if(e&&(Object.keys(X).forEach(a=>{e.includes(a)&&(o=X[a])}),o))return o;switch(t){case"/commercial/sokolniki-retail":return"retail";case"/commercial/mnevniki-retail":return"retail"}let n=Object.keys(G).filter(a=>t.includes(a))[0],r=G[n];return r||null};var b=/^\/commercial\/([^/]+)$/,w=/^\/residential\/([^/]+)$/,k=/^\/retail\/([^/]+)$/,E=/^\/offices\/([^/]+)$/,q=/^\/catalog\/commercial\/([a-z0-9_#-]+)$/i,K=/^\/catalog\/residential\/([a-z0-9_#-]+)$/i,Q=/^\/catalog\/retail\/([a-z0-9_#-]+)$/i,Z=/^\/catalog\/offices\/([a-z0-9_#-]+)$/i,D=/^\/catalog\/commercial\/([a-z0-9_#-]+)\/([a-z0-9_#-]+)$/i,x=/^\/catalog\/residential\/([a-z0-9_#-]+)\/([a-z0-9_#-]+)$/i,T=/^\/catalog\/retail\/([a-z0-9_#-]+)\/([a-z0-9_#-]+)$/i,C=/^\/catalog\/offices\/([a-z0-9_#-]+)\/([a-z0-9_#-]+)$/i,L=/^\/lot\/buy\/([a-z0-9_#-]+)(?:\/[a-z0-9_#-]+)*$/i,I=/^\/lot\/rent\/([a-z0-9_#-]+)(?:\/[a-z0-9_#-]+)*$/i,tt=/^\/catalog\/([a-z0-9_#-]+)(?:\/[a-z0-9_#-]+)*$/i;var M={"/":"main","/loyalty":"loyalty","/residential":"category_page","/residential/standards":"standards","/commercial":"category_page","/commercial/standards":"standards","/retail":"category_page","/rent":"rent","/service":"services","/favorites":"favorites","/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","/catalog/retail":"lot_catalog","/catalog/offices":"lot_catalog"},N={"/":"rent","/rent":"category_page","/owners":"owners","/about":"about_company","/news":"press_center","/buy":"category_page"},ot={"/":"project_card","/policy":"project_card"},nt={"/":"stoneHod_main","/policy":"stoneHod_policy"},et={"stone.moscow":"category_page","stone-sokolniki":"project_card","sokolniki-stone":"project_card","stone-rise":"project_card","stone-hod":"category_page"},U=(t,e="stone",o)=>{let n=null;if(o&&(Object.keys(et).forEach(r=>{o.includes(r)&&(n=et[r])}),n))return n;if(t)switch(e){case"stone":return Object.keys(M).includes(t)?M[t]:D.test(t)||x.test(t)||T.test(t)||C.test(t)?"lot_card":q.test(t)||K.test(t)||Q.test(t)||Z.test(t)?"lot_collection":b.test(t)||w.test(t)||k.test(t)||E.test(t)?"project_card":null;case"sokolniki":return ot[t];case"stone-hod":return nt[t];case"realty":{if(Object.keys(N).includes(t))return N[t];if(tt)return"lot_catalog";if(I.test(t)||L.test(t))return"lot_card"}default:return null}return"other"};var rt={"stone-sokolniki":"sokolniki","sokolniki-stone":"sokolniki","stone-rise":"rise","stone-hod":"hodinka"},H=(t,e)=>{let o=null,n=t.match(b),r=t.match(w),a=t.match(k),s=t.match(E),i=t.match(D),g=t.match(x),u=t.match(T),p=t.match(C),f=t.match(L),h=t.match(I);return e&&Object.keys(rt).forEach(d=>{e.includes(d)&&(o=rt[d])}),o||(i?i[1]:g?g[1]:u?u[1]:p?p[1]:n?n[1]:r?r[1]:a?a[1]:s?s[1]:f?f[1]:h?h[1]:null)};var Ft=/^\/catalog\/commercial\/(?:[a-z0-9_#-]+\/)*([a-z0-9_#-]+)$/i,Bt=/^\/catalog\/residential\/(?:[a-z0-9_#-]+\/)*([a-z0-9_#-]+)$/i,$t=/^\/catalog\/retail\/(?:[a-z0-9_#-]+\/)*([a-z0-9_#-]+)$/i,Mt=/^\/catalog\/offices\/(?:[a-z0-9_#-]+\/)*([a-z0-9_#-]+)$/i,Nt=/^\/lot\/buy\/(?:[a-z0-9_#-]+\/)*([a-z0-9_#-]+)$/i,Ut=/^\/lot\/rent\/(?:[a-z0-9_#-]+\/)*([a-z0-9_#-]+)$/i,R=t=>{let e=t.match(Ft),o=t.match(Bt),n=t.match($t),r=t.match(Mt),a=t.match(Nt),s=t.match(Ut);return e?e[1]:o?o[1]:n?n[1]:r?r[1]:a?a[1]:s?s[1]:null};var l=t=>({ym_uid:t.ym_uid??null,cm_visitor_id:t.cm_visitor_id??null,fingerprint_id:(t==null?void 0:t.fingerprint_id)??null,visible_virtual_pn:(t==null?void 0:t.visible_virtual_pn)??null,page_type:t.page_type,page_direction:t.page_direction,page_project:t.page_project,page_lot:t.page_lot,ab_test_name:t.ab_test_name,ab_test_group:t.ab_test_group,user_id:t.initializeUserId()??null,auth:t.initializeUserAuth()??!1});var it=async({store:t,auth:e,widget:o})=>{try{let n=l(t),r={event:"pageview",auth:e,widget:o},a={...n};delete a.ym_uid,t.pushLayer({...a,...r})}catch(n){console.log("error",n)}};var at=async({store:t,auth:e,widget:o})=>{try{let n=l(t),r={event:"pageview_force",auth:e,widget:o};t.pushLayer({...n,...r})}catch(n){console.log("error",n)}};var st=require("js-md5"),_=()=>{var e,o;let t=(o=(e=document.getElementById("header_phone"))==null?void 0:e.getAttribute("href"))==null?void 0:o.replace(/\D/g,"");return typeof t=="string"?(0,st.md5)(t):void 0};var lt=t=>{if(typeof window<"u"&&typeof ym<"u"){let e;return ym(t,"getClientID",function(o){e=o}),e??null}};var ct=()=>typeof Comagic<"u"?Comagic&&Comagic.getVisitorId():null;var c=t=>{t.ym_uid=lt(95057596),t.cm_visitor_id=ct()};var gt=async({store:t,lead_id:e,block_name:o,auth:n,submitted_lot:r,submitted_lot_project:a,widget:s})=>{try{let i=l(t),g={event:"submit",lead_id:String(e),block_name:o,auth:n??null,submitted_lot:r??null,submitted_lot_project:a??null,widget:s};i.visible_virtual_pn=_(),c(i),t.pushLayer({...i,...g})}catch(i){console.log("error",i)}};var _t=async({store:t,block_name:e,list_of_lots:o,widget:n})=>{try{let r=l(t),a={event:"lot_feed_show",block_name:e,list_of_lots:o,widget:n},s={...r};c(r),delete s.ym_uid,delete s.cm_visitor_id,r.visible_virtual_pn=_(),t.pushLayer({...r,...a})}catch(r){console.log("error",r)}};var m=t=>t.replace(/&nbsp;|nbsp|\u00A0/g," ").replace(/<br\s*\/?>|br/gi," ").replace(/\s+/g," ").trim();var mt=async({store:t,action_element:e,action_element_text:o,block_name:n,clicked_url:r,auth:a,clicked_lot:s,clicked_lot_project:i,clicked_lot_position:g,action_element_status:u,banner_position:p,banner_text:f,widget:h})=>{try{let d=l(t),y={event:"click",action_element:e,block_name:n,auth:a??null,clicked_url:r??null,clicked_lot:s??null,clicked_lot_position:g??null,widget:h};p&&(y.banner_position=p),i&&(y.clicked_lot_project=i),o&&(y.action_element_text=m(o)),f&&(y.banner_text=m(f)),u&&(y.action_element_status=u),d.visible_virtual_pn=_(),c(d),t.pushLayer({...d,...y})}catch(d){console.log("error",d)}};var dt=async({store:t,action_element:e,auth:o,action_element_text:n,block_name:r,widget:a})=>{try{let s=l(t),i={event:"check",action_element:e,auth:o??null,action_element_text:n??null,block_name:r,widget:a};s.visible_virtual_pn=_(),c(s),t.pushLayer({...s,...i})}catch(s){console.log("error",s)}};var ut=async({store:t,action_element:e,block_name:o,auth:n,action_element_status:r,widget:a})=>{try{let s=l(t),i={event:"blur",action_element:e,action_element_status:r,block_name:o,auth:n??null,widget:a};s.visible_virtual_pn=_(),c(s),t.pushLayer({...s,...i})}catch(s){console.log("error",s)}};var pt=async({store:t,auth:e,widget:o})=>{try{let n=l(t),r={event:"fullscreenview",auth:e,widget:o};n.visible_virtual_pn=_(),c(n),t.pushLayer({...n,...r})}catch(n){console.log("error",n)}};var ft=async({store:t,banner_text:e,banner_link:o,banner_position:n,auth:r,block_name:a,widget:s})=>{try{let i=l(t),g={event:"banner_show",banner_text:m(e)??null,banner_link:o??null,banner_position:n??null,auth:r??null,block_name:a,widget:s};c(i),t.pushLayer({...i,...g})}catch(i){console.log("error",i)}};var yt=async({store:t,banner_text:e,banner_link:o,auth:n,clicked_url:r,block_name:a,widget:s})=>{try{let i=l(t),g={event:"banner_click",banner_text:e,banner_link:o,auth:n??null,clicked_url:r,block_name:a,widget:s};c(i),t.pushLayer({...i,...g})}catch(i){console.log("error",i)}};var ht=async({store:t,banner_text:e,banner_link:o,banner_position:n,auth:r,block_name:a,widget:s})=>{try{let i=l(t),g={event:"onboarding_show",banner_text:m(e)??null,banner_link:o??null,banner_position:n??null,auth:r??null,block_name:a,widget:s};c(i),t.pushLayer({...i,...g})}catch(i){console.log("error",i)}};var St=async({store:t,banner_text:e,banner_link:o,banner_position:n,auth:r,block_name:a,widget:s})=>{try{let i=l(t),g={event:"onboarding_close",banner_text:m(e)??null,banner_link:o??null,banner_position:n??null,auth:r??null,block_name:a,widget:s};c(i),t.pushLayer({...i,...g})}catch(i){console.log("error",i)}};var vt=async({store:t,action_element:e,auth:o,action_element_text:n,block_name:r,message:a,widget:s})=>{try{let i=l(t),g={event:"chat",action_element:e,auth:o??null,action_element_text:n??null,block_name:r,message:a,widget:s};c(i),t.pushLayer({...i,...g})}catch(i){console.log("error",i)}};var P=class{pageParamsIsLoading;pageParamsWasSet;ym_uid;cm_visitor_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,bt.makeAutoObservable)(this)}initializeUserId(){return typeof window>"u"?null:localStorage.getItem("user_reg_id")}initializeUserAuth(){if(typeof window>"u")return!1;try{let e=localStorage.getItem("auth_store");if(!e)return!1;let o=JSON.parse(e);return(o==null?void 0:o.isLoggedIn)??!1}catch(e){return console.error("Failed to parse auth_store from localStorage:",e),!1}}pushLayer(e){typeof window<"u"&&(window.StoneDataLayer||[]).push(e)}setPageParams({pathname:e,source:o,href:n}){this.pageParamsIsLoading=!0,this.page_direction=$(e,n),this.page_type=U(e,o,n),this.page_project=H(e,n),this.page_lot=R(e),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 B()??null}async setEventPageView(e){await it({store:this,...e})}async setEventPageViewForce(){await at({store:this})}async setEventSubmit(e){await gt({store:this,...e})}async setEventLotFeedShow(e){await _t({store:this,...e})}async setEventClick(e){await mt({store:this,...e})}async setEventCheck(e){await dt({store:this,...e})}async setEventBlur(e){await ut({store:this,...e})}async setEventFullScreen(){await pt({store:this})}async setEventBannerShow(e){await ft({store:this,...e})}async setEventBannerClick(e){await yt({store:this,...e})}async setEventOnboardingShow(e){await ht({store:this,...e})}async setEventOnboardingClose(e){await St({store:this,...e})}async setEventChat(e){await vt({store:this,...e})}},Ht=new P;0&&(module.exports={StoneDataLayerStore,checkTimeStamp,getABCookie,getGoogleAnalyticsClientId,getLotName,getPageDirection,getPageType,getProjectName,getStoneClientId,getStoneHashClientId,getStoneSessionId,getYandexMetrikaClientId,setClientId,setSessionId,sokolnikiPageViewType,staticPageViewType,staticRealtyPageViewType,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/hooks/useInitializeMetrics.ts","../src/utils/utils.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/utils/cleanString.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","../src/store/StoneDataLayerStore/events/eventOnboardingShow.ts","../src/store/StoneDataLayerStore/events/eventOnboardingClose.ts"],"sourcesContent":["export * from './utils/sessionClientId'\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 { checkTimeStamp, setClientId, setSessionId } from '../utils/sessionClientId'\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}\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\tif (tabCount === '0') {\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\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 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 { 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\nimport { setEventOnboardingShow, TEventOnboardingShow } from './events/eventOnboardingShow'\r\nimport { setEventOnboardingClose, TEventOnboardingClose } from './events/eventOnboardingClose'\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\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\tinitializeUserAuth() {\r\n\t\tif (typeof window === 'undefined') return false\r\n\r\n\t\ttry {\r\n\t\t\tconst authStore = localStorage.getItem('auth_store')\r\n\t\t\tif (!authStore) return false\r\n\r\n\t\t\tconst parsed = JSON.parse(authStore)\r\n\t\t\treturn parsed?.isLoggedIn ?? false\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error('Failed to parse auth_store from localStorage:', error)\r\n\t\t\treturn false\r\n\t\t}\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\tasync setEventOnboardingShow(props: Omit<TEventOnboardingShow, 'store'>) {\r\n\t\tawait setEventOnboardingShow({ store: this, ...props })\r\n\t}\r\n\r\n\tasync setEventOnboardingClose(props: Omit<TEventOnboardingClose, 'store'>) {\r\n\t\tawait setEventOnboardingClose({ 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' | 'rent' | null\r\n\r\nconst pathDirection = {\r\n commercial: 'offices',\r\n residential: 'apartments',\r\n retail: 'retail',\r\n offices: 'offices',\r\n investments: 'investments',\r\n rent: 'rent',\r\n buy: 'offices',\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\nconst reg_retail_project = /^\\/retail\\/([^/]+)$/\r\nconst reg_offices_project = /^\\/offices\\/([^/]+)$/\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\nconst reg_retail_lot = /^\\/catalog\\/retail\\/([a-z0-9_#-]+)(?:\\/[a-z0-9_#-]+)*$/i\r\nconst reg_offices_lot = /^\\/catalog\\/offices\\/([a-z0-9_#-]+)(?:\\/[a-z0-9_#-]+)*$/i\r\nconst reg_realty_buy_lot = /^\\/lot\\/buy\\/([a-z0-9_#-]+)(?:\\/[a-z0-9_#-]+)*$/i\r\nconst reg_realty_rent_lot = /^\\/lot\\/rent\\/([a-z0-9_#-]+)(?:\\/[a-z0-9_#-]+)*$/i\r\n\r\nconst reg_realty_catalog = /^\\/catalog\\/([a-z0-9_#-]+)(?:\\/[a-z0-9_#-]+)*$/i\r\n\r\nexport {\r\n reg_com_lot,\r\n reg_res_lot,\r\n reg_retail_lot,\r\n reg_offices_lot,\r\n reg_com_project,\r\n reg_res_project,\r\n reg_retail_project,\r\n reg_offices_project,\r\n reg_realty_buy_lot,\r\n reg_realty_rent_lot,\r\n reg_realty_catalog\r\n}\r\n","import {\r\n reg_com_lot,\r\n reg_com_project,\r\n reg_offices_lot,\r\n reg_offices_project,\r\n reg_realty_buy_lot,\r\n reg_realty_catalog,\r\n reg_realty_rent_lot,\r\n reg_res_lot,\r\n reg_res_project,\r\n reg_retail_lot,\r\n reg_retail_project,\r\n} from './regs'\r\n\r\nexport type TSource = 'stone' | 'sokolniki' | 'stone-hod' | 'stonehod' | 'realty'\r\n\r\nexport const staticPageViewType = {\r\n '/': 'main',\r\n '/loyalty': 'loyalty',\r\n '/residential': 'category_page',\r\n '/residential/standards': 'standards',\r\n '/commercial': 'category_page',\r\n '/commercial/standards': 'standards',\r\n '/retail': 'category_page',\r\n '/rent': 'rent',\r\n '/service': 'services',\r\n '/favorites': 'favorites',\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 '/catalog/retail': 'lot_catalog',\r\n '/catalog/offices': 'lot_catalog',\r\n} as const\r\n\r\nexport const staticRealtyPageViewType = {\r\n '/': 'rent',\r\n '/rent': 'category_page',\r\n '/owners': 'owners',\r\n '/about': 'about_company',\r\n '/news': 'press_center',\r\n '/buy': 'category_page',\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 (\r\n reg_com_project.test(pathname) ||\r\n reg_res_project.test(pathname) ||\r\n reg_retail_project.test(pathname) ||\r\n reg_offices_project.test(pathname)\r\n ) {\r\n return 'project_card'\r\n } else if (\r\n reg_com_lot.test(pathname) ||\r\n reg_res_lot.test(pathname) ||\r\n reg_retail_lot.test(pathname) ||\r\n reg_offices_lot.test(pathname)\r\n ) {\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 case \"realty\": {\r\n const isOnStaticPage = Object.keys(staticRealtyPageViewType).includes(pathname)\r\n //для статических страниц\r\n if (isOnStaticPage) return staticRealtyPageViewType[pathname as keyof typeof staticRealtyPageViewType]\r\n //для динамической страницы проекта\r\n else if (reg_realty_catalog) {\r\n return 'lot_catalog'\r\n } else if (\r\n reg_realty_rent_lot.test(pathname) ||\r\n reg_realty_buy_lot.test(pathname)\r\n ) {\r\n return 'lot_card'\r\n }\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 {\r\n reg_com_lot,\r\n reg_com_project,\r\n reg_offices_lot,\r\n reg_offices_project,\r\n reg_realty_buy_lot,\r\n reg_realty_rent_lot,\r\n reg_res_lot,\r\n reg_res_project,\r\n reg_retail_lot,\r\n reg_retail_project,\r\n} from './regs'\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 const retailMatch = pathname.match(reg_retail_project)\r\n const officesMatch = pathname.match(reg_offices_project)\r\n\r\n const comLotMatch = pathname.match(reg_com_lot)\r\n const resLotMatch = pathname.match(reg_res_lot)\r\n const retailLotMatch = pathname.match(reg_retail_lot)\r\n const officesLotMatch = pathname.match(reg_offices_lot)\r\n const buyLotMatch = pathname.match(reg_realty_buy_lot)\r\n const rentLotMatch = pathname.match(reg_realty_rent_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 (retailLotMatch) return retailLotMatch[1]\r\n if (officesLotMatch) return officesLotMatch[1]\r\n if (comMatch) return comMatch[1]\r\n if (resMatch) return resMatch[1]\r\n if (retailMatch) return retailMatch[1]\r\n if (officesMatch) return officesMatch[1]\r\n if (buyLotMatch) return buyLotMatch[1]\r\n if (rentLotMatch) return rentLotMatch[1]\r\n return null\r\n}\r\n","const reg_com_lot_last = /^\\/catalog\\/commercial\\/(?:[a-z0-9_#-]+\\/)*([a-z0-9_#-]+)$/i\r\nconst reg_res_lot_last = /^\\/catalog\\/residential\\/(?:[a-z0-9_#-]+\\/)*([a-z0-9_#-]+)$/i\r\nconst reg_retail_lot_last = /^\\/catalog\\/retail\\/(?:[a-z0-9_#-]+\\/)*([a-z0-9_#-]+)$/i\r\nconst reg_offices_lot_last = /^\\/catalog\\/offices\\/(?:[a-z0-9_#-]+\\/)*([a-z0-9_#-]+)$/i\r\nconst re_realty_buy_lot_last = /^\\/lot\\/buy\\/(?:[a-z0-9_#-]+\\/)*([a-z0-9_#-]+)$/i\r\nconst re_realty_rent_lot_last = /^\\/lot\\/rent\\/(?:[a-z0-9_#-]+\\/)*([a-z0-9_#-]+)$/i\r\n\r\nexport const getLotName = (pathname: string) => {\r\n const comMatch = pathname.match(reg_com_lot_last)\r\n const resMatch = pathname.match(reg_res_lot_last)\r\n const retailMatch = pathname.match(reg_retail_lot_last)\r\n const officesMatch = pathname.match(reg_offices_lot_last)\r\n const buyMatch = pathname.match(re_realty_buy_lot_last)\r\n const rentMatch = pathname.match(re_realty_rent_lot_last)\r\n\r\n if (comMatch) return comMatch[1]\r\n if (resMatch) return resMatch[1]\r\n if (retailMatch) return retailMatch[1]\r\n if (officesMatch) return officesMatch[1]\r\n if (buyMatch) return buyMatch[1]\r\n if (rentMatch) return rentMatch[1]\r\n return null\r\n}\r\n","import { StoneDataLayerStore } from '../StoneDataLayerStore'\r\n\r\nexport const getDefaultAnalyticsData = (store: StoneDataLayerStore) => ({\r\n\tym_uid: store.ym_uid ?? null,\r\n\tcm_visitor_id: store.cm_visitor_id ?? null,\r\n\tfingerprint_id: store?.fingerprint_id ?? null,\r\n\tvisible_virtual_pn: store?.visible_virtual_pn ?? null,\r\n\tpage_type: store.page_type,\r\n\tpage_direction: store.page_direction,\r\n\tpage_project: store.page_project,\r\n\tpage_lot: store.page_lot,\r\n\tab_test_name: store.ab_test_name,\r\n\tab_test_group: store.ab_test_group,\r\n\tuser_id: store.initializeUserId() ?? null,\r\n\tauth: store.initializeUserAuth() ?? false,\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 {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}","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: auth ?? null,\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\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","export const cleanString = (string : string) => {\r\n return string\r\n .replace(/&nbsp;|nbsp|\\u00A0/g, ' ')\r\n .replace(/<br\\s*\\/?>|br/gi, ' ').replace(/\\s+/g, ' ').trim()\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\nimport {cleanString} from \"../../../utils/cleanString\";\r\n\r\nexport type TEventClick = {\r\n store: StoneDataLayerStore\r\n pathname?: string\r\n block_name?: string\r\n auth?: boolean\r\n clicked_url?: string\r\n action_element?: string | null\r\n action_element_text?: string | null\r\n action_element_status?: 'error' | 'success'\r\n clicked_lot?: string\r\n clicked_lot_project?: string\r\n clicked_lot_position?: string\r\n banner_position?: number\r\n banner_text?: string\r\n}\r\n\r\nexport const setEventClick = async ({\r\n store,\r\n action_element,\r\n action_element_text,\r\n block_name,\r\n clicked_url,\r\n auth,\r\n clicked_lot,\r\n clicked_lot_project,\r\n clicked_lot_position,\r\n action_element_status,\r\n banner_position,\r\n banner_text,\r\n }: TEventClick) => {\r\n try {\r\n const defaultData = getDefaultAnalyticsData(store)\r\n\r\n const additionalFields: Omit<TEventClick, 'store'> & { event: string } = {\r\n event: 'click',\r\n action_element,\r\n block_name,\r\n auth: auth ?? null,\r\n clicked_url: clicked_url ?? null,\r\n clicked_lot: clicked_lot ?? null,\r\n clicked_lot_position: clicked_lot_position ?? null,\r\n }\r\n if (banner_position) additionalFields.banner_position = banner_position\r\n if (clicked_lot_project) additionalFields.clicked_lot_project = clicked_lot_project\r\n if (action_element_text) additionalFields.action_element_text = cleanString(action_element_text)\r\n if (banner_text) additionalFields.banner_text = cleanString(banner_text)\r\n if (action_element_status) additionalFields.action_element_status = action_element_status\r\n\r\n defaultData.visible_virtual_pn = getVisibleVirtualPn()\r\n\r\n setAnalyticId(defaultData)\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 { 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: auth ?? null,\r\n\t\t\taction_element_text: action_element_text ?? null,\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: auth ?? null,\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\nimport {cleanString} from \"../../../utils/cleanString\";\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\tbanner_position?: number\r\n}\r\n\r\nexport const setEventBannerShow = async ({\r\n\t\t\t\t\t\t\t\t\t\t\t store,\r\n\t\t\t\t\t\t\t\t\t\t\t banner_text,\r\n\t\t\t\t\t\t\t\t\t\t\t banner_link,\r\n\t\t\t\t\t\t\t\t\t\t\t banner_position,\r\n\t\t\t\t\t\t\t\t\t\t\t auth,\r\n\t\t\t\t\t\t\t\t\t\t\t block_name,\r\n\t\t\t\t\t\t\t\t\t\t }: 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 : cleanString(banner_text) ?? null,\r\n\t\t\tbanner_link : banner_link ?? null,\r\n\t\t\tbanner_position : banner_position ?? null,\r\n\t\t\tauth : auth ?? null,\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: auth ?? null,\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","import { StoneDataLayerStore } from '../StoneDataLayerStore'\nimport { getDefaultAnalyticsData } from '../utils/getDefaultAnalyticsData'\nimport { setAnalyticId } from '../utils/setAnalyticId'\nimport {cleanString} from \"../../../utils/cleanString\";\n\nexport type TEventOnboardingShow = {\n\tstore: StoneDataLayerStore\n\tpathname?: string\n\tblock_name?: string\n\tauth?: boolean\n\tbanner_text: string\n\tbanner_link: string\n\tbanner_position?: number\n}\n\nexport const setEventOnboardingShow = async ({\n\t\t\t\t\t\t\t\t\t\t\t store,\n\t\t\t\t\t\t\t\t\t\t\t banner_text,\n\t\t\t\t\t\t\t\t\t\t\t banner_link,\n\t\t\t\t\t\t\t\t\t\t\t banner_position,\n\t\t\t\t\t\t\t\t\t\t\t auth,\n\t\t\t\t\t\t\t\t\t\t\t block_name,\n\t\t\t\t\t\t\t\t\t\t }: TEventOnboardingShow) => {\n\ttry {\n\t\tconst defaultData = getDefaultAnalyticsData(store)\n\n\t\tconst additionalFields = {\n\t\t\tevent: 'onboarding_show',\n\t\t\tbanner_text : cleanString(banner_text) ?? null,\n\t\t\tbanner_link : banner_link ?? null,\n\t\t\tbanner_position : banner_position ?? null,\n\t\t\tauth : auth ?? null,\n\t\t\tblock_name,\n\t\t}\n\n\t\tsetAnalyticId(defaultData)\n\n\t\tstore.pushLayer({ ...defaultData, ...additionalFields })\n\t} catch (e) {\n\t\tconsole.log('error', e)\n\t}\n}\n","import { StoneDataLayerStore } from '../StoneDataLayerStore'\nimport { getDefaultAnalyticsData } from '../utils/getDefaultAnalyticsData'\nimport { setAnalyticId } from '../utils/setAnalyticId'\nimport { cleanString } from '../../../utils/cleanString'\n\nexport type TEventOnboardingClose = {\n\tstore: StoneDataLayerStore\n\tpathname?: string\n\tblock_name?: string\n\tauth?: boolean\n\tbanner_text: string\n\tbanner_link: string\n\tbanner_position?: number\n}\n\nexport const setEventOnboardingClose = async ({\n\tstore,\n\tbanner_text,\n\tbanner_link,\n\tbanner_position,\n\tauth,\n\tblock_name,\n}: TEventOnboardingClose) => {\n\ttry {\n\t\tconst defaultData = getDefaultAnalyticsData(store)\n\n\t\tconst additionalFields = {\n\t\t\tevent: 'onboarding_close',\n\t\t\tbanner_text: cleanString(banner_text) ?? null,\n\t\t\tbanner_link: banner_link ?? null,\n\t\t\tbanner_position: banner_position ?? null,\n\t\t\tauth: auth ?? null,\n\t\t\tblock_name,\n\t\t}\n\n\t\tsetAnalyticId(defaultData)\n\n\t\tstore.pushLayer({ ...defaultData, ...additionalFields })\n\t} catch (e) {\n\t\tconsole.log('error', e)\n\t}\n}\n\n"],"mappings":"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","names":["index_exports","__export","StoneDataLayerStore","checkTimeStamp","getABCookie","getGoogleAnalyticsClientId","getLotName","getPageDirection","getPageType","getProjectName","getStoneClientId","getStoneHashClientId","getStoneSessionId","getYandexMetrikaClientId","setClientId","setSessionId","sokolnikiPageViewType","staticPageViewType","staticRealtyPageViewType","stoneDataLayerStore","stoneHodPageViewType","useComagicStatus","useInitializeMetrics","__toCommonJS","makeTimeBasedUID","isLocalStorage","checkTimeStamp","clientId","unixTimestamp","ISOSDate","ISOSDateNow","setSessionId","newId","makeTimeBasedUID","setClientId","import_react","useInitializeMetrics","isLocalStorage","isClientId","isSessionId","isYearPast","checkTimeStamp","setClientId","setSessionId","tabCountStorage","tabCount","handleBeforeUnload","scrollTop","scrollHeight","scrollPercent","inactivityTimer","resetInactivityTimer","events","event","import_fingerprintjs","import_cookies_next","getStoneHashClientId","st_client_hash_id","FingerprintJS","fp","result","getStoneSessionId","st_session_id","getStoneClientId","st_client_id","getGoogleAnalyticsClientId","_ga","_ga_local","getYandexMetrikaClientId","_ym_uid","_ym_uid_local","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_retail_project","reg_offices_project","reg_com_lot","reg_res_lot","reg_retail_lot","reg_offices_lot","reg_realty_buy_lot","reg_realty_rent_lot","reg_realty_catalog","staticPageViewType","staticRealtyPageViewType","sokolnikiPageViewType","stoneHodPageViewType","specialCondition","getPageType","pathname","source","href","specialResult","el","reg_com_project","reg_res_project","reg_retail_project","reg_offices_project","reg_com_lot","reg_res_lot","reg_retail_lot","reg_offices_lot","reg_realty_catalog","reg_realty_rent_lot","reg_realty_buy_lot","specialCondition","getProjectName","pathname","href","specialResult","comMatch","reg_com_project","resMatch","reg_res_project","retailMatch","reg_retail_project","officesMatch","reg_offices_project","comLotMatch","reg_com_lot","resLotMatch","reg_res_lot","retailLotMatch","reg_retail_lot","officesLotMatch","reg_offices_lot","buyLotMatch","reg_realty_buy_lot","rentLotMatch","reg_realty_rent_lot","el","reg_com_lot_last","reg_res_lot_last","reg_retail_lot_last","reg_offices_lot_last","re_realty_buy_lot_last","re_realty_rent_lot_last","getLotName","pathname","comMatch","resMatch","retailMatch","officesMatch","buyMatch","rentMatch","getDefaultAnalyticsData","store","setEventPageView","store","defaultData","getDefaultAnalyticsData","additionalFields","dataForPush","setEventPageViewForce","store","defaultData","getDefaultAnalyticsData","additionalFields","import_js_md5","getVisibleVirtualPn","_a","_b","virtual_pn","getYmUid","id","ymUid","clientID","getComagicVisitorId","setAnalyticId","defaultData","getYmUid","getComagicVisitorId","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","cleanString","string","setEventClick","store","action_element","action_element_text","block_name","clicked_url","auth","clicked_lot","clicked_lot_project","clicked_lot_position","action_element_status","banner_position","banner_text","defaultData","getDefaultAnalyticsData","additionalFields","cleanString","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","setEventBannerShow","store","banner_text","banner_link","banner_position","auth","block_name","defaultData","getDefaultAnalyticsData","additionalFields","cleanString","setAnalyticId","e","setEventBannerClick","store","banner_text","banner_link","auth","clicked_url","block_name","defaultData","getDefaultAnalyticsData","additionalFields","setAnalyticId","e","setEventOnboardingShow","store","banner_text","banner_link","banner_position","auth","block_name","defaultData","getDefaultAnalyticsData","additionalFields","cleanString","setAnalyticId","e","setEventOnboardingClose","store","banner_text","banner_link","banner_position","auth","block_name","defaultData","getDefaultAnalyticsData","additionalFields","cleanString","setAnalyticId","e","StoneDataLayerStore","authStore","parsed","error","tagManagerArgs","pathname","source","href","getPageDirection","getPageType","getProjectName","getLotName","getStoneHashClientId","props","setEventPageView","setEventPageViewForce","setEventSubmit","setEventLotFeedShow","setEventClick","setEventCheck","setEventBlur","setEventFullScreen","setEventBannerShow","setEventBannerClick","setEventOnboardingShow","setEventOnboardingClose","stoneDataLayerStore"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/utils/makeUID.ts","../src/utils/sessionClientId.ts","../src/hooks/useInitializeMetrics.ts","../src/utils/utils.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/utils/cleanString.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","../src/store/StoneDataLayerStore/events/eventOnboardingShow.ts","../src/store/StoneDataLayerStore/events/eventOnboardingClose.ts","../src/store/StoneDataLayerStore/events/eventChat.ts"],"sourcesContent":["export * from './utils/sessionClientId'\nexport * from './hooks/useInitializeMetrics'\nexport * from './utils/utils'\nexport * from './utils/useComagicStatus'\nexport * from './utils/getABCookie'\n\nexport * from './store/StoneDataLayerStore/stoneDataLayer'\nexport * from './store/StoneDataLayerStore/StoneDataLayerStore'\nexport * from './store/StoneDataLayerStore/utils/pageDirection'\nexport * from './store/StoneDataLayerStore/utils/pageType'\nexport * from './store/StoneDataLayerStore/utils/getProjectName'\nexport * from './store/StoneDataLayerStore/utils/getLotName'\n","export const makeTimeBasedUID = (): string => {\n\treturn (\n\t\tString(Date.now()) + String(Math.floor(Math.random() * (999999999 - 100000000 + 1)) + 100000000)\n\t)\n}","import {makeTimeBasedUID} from './makeUID'\n\nconst isLocalStorage = typeof localStorage !== 'undefined'\n\nconst checkTimeStamp = (clientId: string | null) => {\n if (!clientId) return false\n\n const unixTimestamp = Number(clientId.slice(0, 10))\n const ISOSDate = new Date(unixTimestamp * 1000)\n const ISOSDateNow = new Date(new Date().toISOString())\n\n return (\n ISOSDateNow.getFullYear() > ISOSDate.getFullYear() &&\n ISOSDateNow.getMonth() >= ISOSDate.getMonth() &&\n ISOSDateNow.getDate() >= ISOSDate.getDate()\n )\n}\n\nconst setSessionId = () => {\n const newId = makeTimeBasedUID()\n if (isLocalStorage) localStorage.setItem('st_session_id', newId)\n}\n\nconst setClientId = () => {\n const newId = makeTimeBasedUID()\n if (isLocalStorage) localStorage.setItem('st_client_id', newId)\n}\n\nexport {setClientId, setSessionId, checkTimeStamp}","import { checkTimeStamp, setClientId, setSessionId } from '../utils/sessionClientId'\nimport { useEffect } from 'react'\n\nexport const useInitializeMetrics = () => {\n\tconst isLocalStorage = typeof localStorage !== 'undefined'\n\n\tconst isClientId = Boolean(isLocalStorage ? localStorage.getItem('st_client_id') : null)\n\tconst isSessionId = Boolean(isLocalStorage ? localStorage.getItem('st_session_id') : null)\n\tconst isYearPast = checkTimeStamp(isLocalStorage ? localStorage.getItem('st_client_id') : null)\n\n\tif (!isClientId || isYearPast) setClientId()\n\n\tif (!isSessionId) {\n\t\tsetSessionId()\n\t}\n\n\tuseEffect(() => {\n\t\tconst tabCountStorage = localStorage.getItem('tabCount')\n\n\t\t// При открытии вкладки\n\t\tlet tabCount = tabCountStorage ? parseInt(tabCountStorage) : 0\n\t\tif (tabCount < 0) {\n\t\t\tlocalStorage.setItem('tabCount', String(0))\n\t\t\ttabCount = 0\n\t\t}\n\n\t\ttabCount++\n\t\tif (tabCount) localStorage.setItem('tabCount', String(tabCount))\n\n\t\t// Обработчик для закрытия вкладки\n\t\tconst handleBeforeUnload = () => {\n\t\t\tconst tabCountStorage = localStorage.getItem('tabCount')\n\t\t\tif (tabCountStorage && typeof window !== 'undefined') {\n\t\t\t\tconst tabCount = String(Number(tabCountStorage) - 1)\n\t\t\t\tconst scrollTop = window.scrollY\n\t\t\t\tconst scrollHeight =\n\t\t\t\t\tdocument.documentElement.scrollHeight - document.documentElement.clientHeight\n\t\t\t\tconst scrollPercent = (scrollTop / scrollHeight) * 100\n\n\t\t\t\tif (tabCount === '0') {\n\t\t\t\t\tlocalStorage.setItem('st_session_id', '')\n\t\t\t\t}\n\t\t\t\tlocalStorage.setItem('tabCount', tabCount)\n\t\t\t}\n\t\t}\n\n\t\twindow.addEventListener('beforeunload', handleBeforeUnload)\n\t\treturn () => {\n\t\t\twindow.removeEventListener('beforeunload', handleBeforeUnload)\n\t\t}\n\t}, [])\n\n\tuseEffect(() => {\n\t\tlet inactivityTimer: NodeJS.Timeout\n\n\t\tconst resetInactivityTimer = () => {\n\t\t\tclearTimeout(inactivityTimer)\n\t\t\t// 30 минут\n\t\t\tinactivityTimer = setTimeout(() => {\n\t\t\t\tlocalStorage.setItem('st_session_id', '')\n\t\t\t}, 30 * 60 * 1000)\n\t\t}\n\n\t\tconst events = ['mousemove', 'click', 'touchstart', 'scroll', 'keydown']\n\t\tevents.forEach((event) => {\n\t\t\twindow.addEventListener(event, resetInactivityTimer)\n\t\t})\n\n\t\t// Запускаем таймер при монтировании компонента\n\t\tresetInactivityTimer()\n\t\treturn () => {\n\t\t\tevents.forEach((event) => {\n\t\t\t\twindow.removeEventListener(event, resetInactivityTimer)\n\t\t\t})\n\t\t\tclearTimeout(inactivityTimer)\n\t\t}\n\t}, [])\n\n\treturn {}\n}\n","import FingerprintJS from '@fingerprintjs/fingerprintjs'\nimport {getCookie} from \"cookies-next\";\n\nexport const getStoneHashClientId = async () => {\n let st_client_hash_id\n try {\n const fpPromise = FingerprintJS.load()\n await fpPromise\n .then((fp) => fp.get())\n .then((result) => {\n st_client_hash_id = result.visitorId\n })\n return st_client_hash_id\n } catch (e) {\n console.log('error fingerprintJS' + e)\n }\n return undefined\n}\nexport const getStoneSessionId = () => {\n const st_session_id = localStorage.getItem('st_session_id')\n if (st_session_id && st_session_id != '') {\n return st_session_id\n }\n return undefined\n}\nexport const getStoneClientId = () => {\n const st_client_id = localStorage.getItem('st_client_id')\n if (st_client_id && st_client_id != '') {\n return st_client_id\n }\n return undefined\n}\nexport const getGoogleAnalyticsClientId = () => {\n const _ga = String(getCookie('_ga'))\n if (_ga && _ga != '') {\n return _ga\n } else {\n const _ga_local = localStorage.getItem('_ga')\n if (_ga_local && _ga_local != '') {\n return _ga_local\n }\n }\n return undefined\n}\nexport const getYandexMetrikaClientId = () => {\n const _ym_uid = String(getCookie('_ym_uid'))\n if (_ym_uid && _ym_uid != '') {\n return _ym_uid\n } else {\n const _ym_uid_local = localStorage.getItem('_ym_uid')\n if (_ym_uid_local && _ym_uid_local != '') {\n return _ym_uid_local\n }\n }\n return undefined\n}","import { useEffect, useState } from 'react'\n\nexport const useComagicStatus = () => {\n const [status, setStatus] = useState({\n loadedComagic: false,\n errorComagic: false,\n })\n\n useEffect(() => {\n if (window.Comagic) {\n setStatus({ loadedComagic: true, errorComagic: false })\n return\n }\n\n const timer = setInterval(() => {\n if (window.Comagic) {\n setStatus({ loadedComagic: true, errorComagic: false })\n clearInterval(timer)\n }\n }, 300)\n\n return () => clearInterval(timer)\n }, [])\n\n return status\n}\n","/**\n * Получает значение cookie по имени\n * @param name - Имя cookie\n * @returns Значение cookie или null, если не найдено\n */\nexport const getABCookie = (name: string): string | null => {\n // Проверяем доступность document (для SSR/SSG)\n if (typeof document === 'undefined') return null;\n\n // Более читаемый вариант регулярного выражения\n const escapedName = name?.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n const regex = new RegExp(`(^|;\\\\s*)${escapedName}=([^;]*)`);\n const match = document.cookie.match(regex);\n\n return match ? decodeURIComponent(match[2]) : null;\n};","import { makeAutoObservable } from 'mobx'\nimport { getStoneHashClientId } from '../../utils/utils'\nimport { getPageDirection } from './utils/pageDirection'\nimport { getPageType, TSource } from './utils/pageType'\nimport { getProjectName } from './utils/getProjectName'\nimport { getLotName } from './utils/getLotName'\nimport { setEventPageView, TEventPageView } from './events/eventPageView'\nimport { setEventPageViewForce } from './events/eventPageViewForce'\nimport { setEventSubmit, TEventSubmit } from './events/eventSubmit'\nimport { setEventLotFeedShow, TEventLotFeedShow } from './events/eventLotFeedShow'\nimport { setEventClick, TEventClick } from './events/eventClick'\nimport { setEventCheck, TEventCheck } from './events/eventCheck'\nimport { setEventBlur, TEventBlur } from './events/eventBlur'\nimport { setEventFullScreen } from './events/eventFullScreenView'\nimport { setEventBannerShow, TEventBannerShow } from './events/eventBannerShow'\nimport { setEventBannerClick, TEventBannerClick } from './events/eventBannerClick'\nimport { setEventOnboardingShow, TEventOnboardingShow } from './events/eventOnboardingShow'\nimport { setEventOnboardingClose, TEventOnboardingClose } from './events/eventOnboardingClose'\nimport { setEventChat, TEventChat } from './events/eventChat'\n\ndeclare global {\n\tinterface Window {\n\t\tComagic?: any\n\t\tStoneDataLayer: any\n\t}\n}\n\nexport class StoneDataLayerStore {\n\tpageParamsIsLoading: boolean\n\tpageParamsWasSet: boolean\n\n\tym_uid?: string\n\tcm_visitor_id?: string\n\tfingerprint_id?: string\n\tvisible_virtual_pn?: string\n\tpage_type?: string\n\tpage_direction?: string | null\n\tpage_project?: string | null\n\tpage_lot?: string | null\n\tab_test_name?: string | null\n\tab_test_group?: string | null\n\n\tconstructor() {\n\t\tthis.pageParamsIsLoading = false\n\t\tthis.pageParamsWasSet = false\n\t\tthis.page_type = undefined\n\t\tthis.page_direction = undefined\n\t\tthis.page_project = undefined\n\t\tthis.page_lot = undefined\n\n\t\tmakeAutoObservable(this)\n\t}\n\n\tinitializeUserId() {\n\t\tif (typeof window === 'undefined') return null\n\t\treturn localStorage.getItem('user_reg_id')\n\t}\n\n\tinitializeUserAuth() {\n\t\tif (typeof window === 'undefined') return false\n\n\t\ttry {\n\t\t\tconst authStore = localStorage.getItem('auth_store')\n\t\t\tif (!authStore) return false\n\n\t\t\tconst parsed = JSON.parse(authStore)\n\t\t\treturn parsed?.isLoggedIn ?? false\n\t\t} catch (error) {\n\t\t\tconsole.error('Failed to parse auth_store from localStorage:', error)\n\t\t\treturn false\n\t\t}\n\t}\n\n\tpushLayer(tagManagerArgs: any) {\n\t\tif (typeof window !== 'undefined') {\n\t\t\tconst StoneDataLayer = window.StoneDataLayer || []\n\t\t\tStoneDataLayer.push(tagManagerArgs)\n\t\t}\n\t}\n\n\tsetPageParams({ pathname, source, href }: { pathname: string; source: TSource; href?: string }) {\n\t\tthis.pageParamsIsLoading = true\n\t\tthis.page_direction = getPageDirection(pathname, href)\n\t\tthis.page_type = getPageType(pathname, source, href)\n\t\tthis.page_project = getProjectName(pathname, href)\n\t\tthis.page_lot = getLotName(pathname)\n\t\tthis.ab_test_name = 'abgroup'\n\t\tthis.ab_test_group = process.env.NEXT_PUBLIC_AB_TEST_GROUP\n\n\t\tthis.pageParamsIsLoading = false\n\t\tthis.pageParamsWasSet = true\n\t}\n\n\tasync setFingerPrint() {\n\t\tthis.fingerprint_id = (await getStoneHashClientId()) ?? null\n\t}\n\n\tasync setEventPageView(props?: Omit<TEventPageView, 'store'>) {\n\t\tawait setEventPageView({ store: this, ...props })\n\t}\n\n\tasync setEventPageViewForce() {\n\t\t//тестовая отправка, метод дергал без ожиданий вообще чисто для теста Антона\n\t\tawait setEventPageViewForce({ store: this })\n\t}\n\n\tasync setEventSubmit(props: Omit<TEventSubmit, 'store'>) {\n\t\tawait setEventSubmit({ store: this, ...props })\n\t}\n\n\tasync setEventLotFeedShow(props: Omit<TEventLotFeedShow, 'store'>) {\n\t\tawait setEventLotFeedShow({ store: this, ...props })\n\t}\n\n\tasync setEventClick(props: Omit<TEventClick, 'store'>) {\n\t\tawait setEventClick({ store: this, ...props })\n\t}\n\n\tasync setEventCheck(props: Omit<TEventCheck, 'store'>) {\n\t\tawait setEventCheck({ store: this, ...props })\n\t}\n\n\tasync setEventBlur(props: Omit<TEventBlur, 'store'>) {\n\t\tawait setEventBlur({ store: this, ...props })\n\t}\n\n\tasync setEventFullScreen() {\n\t\tawait setEventFullScreen({ store: this })\n\t}\n\n\tasync setEventBannerShow(props: Omit<TEventBannerShow, 'store'>) {\n\t\tawait setEventBannerShow({ store: this, ...props })\n\t}\n\n\tasync setEventBannerClick(props: Omit<TEventBannerClick, 'store'>) {\n\t\tawait setEventBannerClick({ store: this, ...props })\n\t}\n\n\tasync setEventOnboardingShow(props: Omit<TEventOnboardingShow, 'store'>) {\n\t\tawait setEventOnboardingShow({ store: this, ...props })\n\t}\n\n\tasync setEventOnboardingClose(props: Omit<TEventOnboardingClose, 'store'>) {\n\t\tawait setEventOnboardingClose({ store: this, ...props })\n\t}\n\n\tasync setEventChat(props: Omit<TEventChat, 'store'>) {\n\t\tawait setEventChat({ store: this, ...props })\n\t}\n}\n\nexport const stoneDataLayerStore = new StoneDataLayerStore()\n","export type TPageDirection = 'apartments' | 'offices' | 'retail' | 'investments' | 'rent' | null\n\nconst pathDirection = {\n commercial: 'offices',\n residential: 'apartments',\n retail: 'retail',\n offices: 'offices',\n investments: 'investments',\n rent: 'rent',\n buy: 'offices',\n} as const\n\nconst specialCondition = {\n 'stone.moscow': 'apartments',\n 'stone-sokolniki': 'apartments',\n 'sokolniki-stone': 'apartments',\n 'stone-rise': 'apartments',\n 'stone-hod': 'offices'\n}\n\nexport const getPageDirection = (pathname: string, href?: string): TPageDirection => {\n let specialResult = null\n\n if (href) {\n Object.keys(specialCondition).forEach((el) => {\n if (href.includes(el)) {\n specialResult = specialCondition[el]\n }\n })\n if (specialResult) return specialResult\n }\n\n\n //хардкод ритейла т.к по сути он офисный проект\n switch (pathname) {\n case '/commercial/sokolniki-retail':\n return 'retail'\n case '/commercial/mnevniki-retail':\n return 'retail'\n }\n\n const key = Object.keys(pathDirection).filter((el) => pathname.includes(el))[0]\n const value = pathDirection[key as keyof typeof pathDirection]\n if (value) return value\n else return null\n}\n","//регулярка для проектов по pathname\nconst reg_com_project = /^\\/commercial\\/([^/]+)$/\nconst reg_res_project = /^\\/residential\\/([^/]+)$/\nconst reg_retail_project = /^\\/retail\\/([^/]+)$/\nconst reg_offices_project = /^\\/offices\\/([^/]+)$/\n\n// Коллекции (один уровень после catalog)\nconst reg_com_collection = /^\\/catalog\\/commercial\\/([a-z0-9_#-]+)$/i\nconst reg_res_collection = /^\\/catalog\\/residential\\/([a-z0-9_#-]+)$/i\nconst reg_retail_collection = /^\\/catalog\\/retail\\/([a-z0-9_#-]+)$/i\nconst reg_offices_collection = /^\\/catalog\\/offices\\/([a-z0-9_#-]+)$/i\n\n// Лоты\nconst reg_com_lot = /^\\/catalog\\/commercial\\/([a-z0-9_#-]+)\\/([a-z0-9_#-]+)$/i\nconst reg_res_lot = /^\\/catalog\\/residential\\/([a-z0-9_#-]+)\\/([a-z0-9_#-]+)$/i\nconst reg_retail_lot = /^\\/catalog\\/retail\\/([a-z0-9_#-]+)\\/([a-z0-9_#-]+)$/i\nconst reg_offices_lot = /^\\/catalog\\/offices\\/([a-z0-9_#-]+)\\/([a-z0-9_#-]+)$/i\n\nconst reg_realty_buy_lot = /^\\/lot\\/buy\\/([a-z0-9_#-]+)(?:\\/[a-z0-9_#-]+)*$/i\nconst reg_realty_rent_lot = /^\\/lot\\/rent\\/([a-z0-9_#-]+)(?:\\/[a-z0-9_#-]+)*$/i\n\nconst reg_realty_catalog = /^\\/catalog\\/([a-z0-9_#-]+)(?:\\/[a-z0-9_#-]+)*$/i\n\nexport {\n\treg_com_lot,\n\treg_res_lot,\n\treg_retail_lot,\n\treg_offices_lot,\n\treg_com_project,\n\treg_res_project,\n\treg_retail_project,\n\treg_offices_project,\n\treg_realty_buy_lot,\n\treg_realty_rent_lot,\n\treg_realty_catalog,\n\treg_com_collection,\n\treg_res_collection,\n\treg_retail_collection,\n\treg_offices_collection,\n}\n","import {\n\treg_com_lot,\n\treg_com_project,\n\treg_offices_lot,\n\treg_offices_project,\n\treg_realty_buy_lot,\n\treg_realty_catalog,\n\treg_realty_rent_lot,\n\treg_res_lot,\n\treg_res_project,\n\treg_retail_lot,\n\treg_retail_project,\n\treg_com_collection,\n\treg_res_collection,\n\treg_retail_collection,\n\treg_offices_collection,\n} from './regs'\n\nexport type TSource = 'stone' | 'sokolniki' | 'stone-hod' | 'stonehod' | 'realty'\n\nexport const staticPageViewType = {\n\t'/': 'main',\n\t'/loyalty': 'loyalty',\n\t'/residential': 'category_page',\n\t'/residential/standards': 'standards',\n\t'/commercial': 'category_page',\n\t'/commercial/standards': 'standards',\n\t'/retail': 'category_page',\n\t'/rent': 'rent',\n\t'/service': 'services',\n\t'/favorites': 'favorites',\n\t'/presscenter': 'press_center',\n\t'/purchaseterms': 'terms_of_purchase',\n\t'/purchaseterms/residential': 'terms_of_purchase',\n\t'/contacts': 'contacts',\n\t'/documents': 'documents',\n\t'/documents/docs': 'documents',\n\t'/documents/soglasie-na-rassylki': 'documents',\n\t'/documents/politika-konfidenczialnosti': 'documents',\n\t'/documents/usloviya-loyalty': 'documents',\n\t'/investments': 'investments',\n\t'/about': 'about_company',\n\t'/catalog/commercial': 'lot_catalog',\n\t'/catalog/residential': 'lot_catalog',\n\t'/catalog/retail': 'lot_catalog',\n\t'/catalog/offices': 'lot_catalog',\n} as const\n\nexport const staticRealtyPageViewType = {\n\t'/': 'rent',\n\t'/rent': 'category_page',\n\t'/owners': 'owners',\n\t'/about': 'about_company',\n\t'/news': 'press_center',\n\t'/buy': 'category_page',\n} as const\n\nexport const sokolnikiPageViewType = {\n\t'/': 'project_card',\n\t'/policy': 'project_card',\n}\n\nexport const stoneHodPageViewType = {\n\t'/': 'stoneHod_main',\n\t'/policy': 'stoneHod_policy',\n}\n\nconst specialCondition = {\n\t'stone.moscow': 'category_page',\n\t'stone-sokolniki': 'project_card',\n\t'sokolniki-stone': 'project_card',\n\t'stone-rise': 'project_card',\n\t'stone-hod': 'category_page',\n}\n\nexport type TPageType = keyof typeof staticPageViewType\n\nexport const getPageType = (pathname: string, source = 'stone' as TSource, href?: string) => {\n\tlet specialResult = null\n\n\tif (href) {\n\t\tObject.keys(specialCondition).forEach((el) => {\n\t\t\tif (href.includes(el)) {\n\t\t\t\tspecialResult = specialCondition[el]\n\t\t\t}\n\t\t})\n\t\tif (specialResult) return specialResult\n\t}\n\n\tif (pathname) {\n\t\tswitch (source) {\n\t\t\tcase 'stone': {\n\t\t\t\tconst isOnStaticPage = Object.keys(staticPageViewType).includes(pathname)\n\t\t\t\t//для статических страниц\n\t\t\t\tif (isOnStaticPage) return staticPageViewType[pathname as keyof typeof staticPageViewType]\n\n\t\t\t\tif (\n\t\t\t\t\treg_com_lot.test(pathname) ||\n\t\t\t\t\treg_res_lot.test(pathname) ||\n\t\t\t\t\treg_retail_lot.test(pathname) ||\n\t\t\t\t\treg_offices_lot.test(pathname)\n\t\t\t\t) {\n\t\t\t\t\treturn 'lot_card'\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\treg_com_collection.test(pathname) ||\n\t\t\t\t\treg_res_collection.test(pathname) ||\n\t\t\t\t\treg_retail_collection.test(pathname) ||\n\t\t\t\t\treg_offices_collection.test(pathname)\n\t\t\t\t) {\n\t\t\t\t\treturn 'lot_collection'\n\t\t\t\t}\n\n\t\t\t\t// 3. Проверка на проект\n\t\t\t\tif (\n\t\t\t\t\treg_com_project.test(pathname) ||\n\t\t\t\t\treg_res_project.test(pathname) ||\n\t\t\t\t\treg_retail_project.test(pathname) ||\n\t\t\t\t\treg_offices_project.test(pathname)\n\t\t\t\t) {\n\t\t\t\t\treturn 'project_card'\n\t\t\t\t}\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t\tcase 'sokolniki': {\n\t\t\t\treturn sokolnikiPageViewType[pathname as keyof typeof sokolnikiPageViewType]\n\t\t\t}\n\n\t\t\tcase 'stone-hod': {\n\t\t\t\treturn stoneHodPageViewType[pathname as keyof typeof stoneHodPageViewType]\n\t\t\t}\n\n\t\t\tcase 'realty': {\n\t\t\t\tconst isOnStaticPage = Object.keys(staticRealtyPageViewType).includes(pathname)\n\t\t\t\t//для статических страниц\n\t\t\t\tif (isOnStaticPage)\n\t\t\t\t\treturn staticRealtyPageViewType[pathname as keyof typeof staticRealtyPageViewType]\n\t\t\t\t//для динамической страницы проекта\n\t\t\t\telse if (reg_realty_catalog) {\n\t\t\t\t\treturn 'lot_catalog'\n\t\t\t\t} else if (reg_realty_rent_lot.test(pathname) || reg_realty_buy_lot.test(pathname)) {\n\t\t\t\t\treturn 'lot_card'\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdefault:\n\t\t\t\treturn null\n\t\t}\n\t}\n\n\treturn 'other'\n}\n","import {\n reg_com_lot,\n reg_com_project,\n reg_offices_lot,\n reg_offices_project,\n reg_realty_buy_lot,\n reg_realty_rent_lot,\n reg_res_lot,\n reg_res_project,\n reg_retail_lot,\n reg_retail_project,\n} from './regs'\n\nconst specialCondition = {\n 'stone-sokolniki': 'sokolniki',\n 'sokolniki-stone': 'sokolniki',\n 'stone-rise': 'rise',\n 'stone-hod': 'hodinka',\n}\n\nexport const getProjectName = (pathname: string, href?: string) => {\n let specialResult = null\n\n const comMatch = pathname.match(reg_com_project)\n const resMatch = pathname.match(reg_res_project)\n const retailMatch = pathname.match(reg_retail_project)\n const officesMatch = pathname.match(reg_offices_project)\n\n const comLotMatch = pathname.match(reg_com_lot)\n const resLotMatch = pathname.match(reg_res_lot)\n const retailLotMatch = pathname.match(reg_retail_lot)\n const officesLotMatch = pathname.match(reg_offices_lot)\n const buyLotMatch = pathname.match(reg_realty_buy_lot)\n const rentLotMatch = pathname.match(reg_realty_rent_lot)\n\n if (href) {\n Object.keys(specialCondition).forEach((el) => {\n if (href.includes(el)) {\n specialResult = specialCondition[el]\n }\n })\n }\n\n if (specialResult) return specialResult\n\n if (comLotMatch) return comLotMatch[1]\n if (resLotMatch) return resLotMatch[1]\n if (retailLotMatch) return retailLotMatch[1]\n if (officesLotMatch) return officesLotMatch[1]\n if (comMatch) return comMatch[1]\n if (resMatch) return resMatch[1]\n if (retailMatch) return retailMatch[1]\n if (officesMatch) return officesMatch[1]\n if (buyLotMatch) return buyLotMatch[1]\n if (rentLotMatch) return rentLotMatch[1]\n return null\n}\n","const reg_com_lot_last = /^\\/catalog\\/commercial\\/(?:[a-z0-9_#-]+\\/)*([a-z0-9_#-]+)$/i\nconst reg_res_lot_last = /^\\/catalog\\/residential\\/(?:[a-z0-9_#-]+\\/)*([a-z0-9_#-]+)$/i\nconst reg_retail_lot_last = /^\\/catalog\\/retail\\/(?:[a-z0-9_#-]+\\/)*([a-z0-9_#-]+)$/i\nconst reg_offices_lot_last = /^\\/catalog\\/offices\\/(?:[a-z0-9_#-]+\\/)*([a-z0-9_#-]+)$/i\nconst re_realty_buy_lot_last = /^\\/lot\\/buy\\/(?:[a-z0-9_#-]+\\/)*([a-z0-9_#-]+)$/i\nconst re_realty_rent_lot_last = /^\\/lot\\/rent\\/(?:[a-z0-9_#-]+\\/)*([a-z0-9_#-]+)$/i\n\nexport const getLotName = (pathname: string) => {\n const comMatch = pathname.match(reg_com_lot_last)\n const resMatch = pathname.match(reg_res_lot_last)\n const retailMatch = pathname.match(reg_retail_lot_last)\n const officesMatch = pathname.match(reg_offices_lot_last)\n const buyMatch = pathname.match(re_realty_buy_lot_last)\n const rentMatch = pathname.match(re_realty_rent_lot_last)\n\n if (comMatch) return comMatch[1]\n if (resMatch) return resMatch[1]\n if (retailMatch) return retailMatch[1]\n if (officesMatch) return officesMatch[1]\n if (buyMatch) return buyMatch[1]\n if (rentMatch) return rentMatch[1]\n return null\n}\n","import { StoneDataLayerStore } from '../StoneDataLayerStore'\n\nexport const getDefaultAnalyticsData = (store: StoneDataLayerStore) => ({\n\tym_uid: store.ym_uid ?? null,\n\tcm_visitor_id: store.cm_visitor_id ?? null,\n\tfingerprint_id: store?.fingerprint_id ?? null,\n\tvisible_virtual_pn: store?.visible_virtual_pn ?? null,\n\tpage_type: store.page_type,\n\tpage_direction: store.page_direction,\n\tpage_project: store.page_project,\n\tpage_lot: store.page_lot,\n\tab_test_name: store.ab_test_name,\n\tab_test_group: store.ab_test_group,\n\tuser_id: store.initializeUserId() ?? null,\n\tauth: store.initializeUserAuth() ?? false,\n})\n","import { StoneDataLayerStore } from '../StoneDataLayerStore'\nimport { getDefaultAnalyticsData } from '../utils/getDefaultAnalyticsData'\n\nexport type TEventPageView = {\n\tstore: StoneDataLayerStore\n\tuser_id?: string | null\n\tauth?: boolean\n\tprojectName?: string\n\tlotName?: string\n\twidget?: {\n\t\twidget_agent_id?: string\n\t\twidget_session_id?: string\n\t\tresponse_time_ms?: string\n\t}\n}\n\nexport const setEventPageView = async ({ store, auth, widget }: TEventPageView) => {\n\ttry {\n\t\tconst defaultData = getDefaultAnalyticsData(store)\n\n\t\tconst additionalFields = {\n\t\t\tevent: 'pageview',\n\t\t\tauth,\n\t\t\twidget,\n\t\t}\n\n\t\tconst dataForPush = { ...defaultData }\n\t\tdelete dataForPush.ym_uid\n\n\t\tstore.pushLayer({ ...dataForPush, ...additionalFields })\n\t} catch (e) {\n\t\tconsole.log('error', e)\n\t}\n}\n","import {StoneDataLayerStore} from \"../StoneDataLayerStore\";\nimport {getDefaultAnalyticsData} from \"../utils/getDefaultAnalyticsData\";\n\nexport type TEventPageView = {\n store: StoneDataLayerStore\n auth?: boolean\n projectName?: string\n lotName?: string\n widget?: {\n\t\twidget_agent_id?: string\n\t\twidget_session_id?: string\n\t\tresponse_time_ms?: string\n\t}\n}\n\nexport const setEventPageViewForce = async ({ store, auth, widget }: TEventPageView) => {\n try {\n const defaultData = getDefaultAnalyticsData(store)\n\n const additionalFields = {\n event: 'pageview_force',\n auth,\n widget\n }\n\n store.pushLayer({ ...defaultData, ...additionalFields })\n } catch (e) {\n console.log('error',e)\n }\n}\n","import {md5} from \"js-md5\";\n\nexport const getVisibleVirtualPn = () => {\n const virtual_pn = document.getElementById('header_phone')?.getAttribute(\"href\")?.replace(/\\D/g, \"\");\n return typeof virtual_pn === 'string' ? md5(virtual_pn) : undefined\n}","export const getYmUid = (id: number) => {\n if (typeof window !== 'undefined' && typeof ym !== 'undefined') {\n let ymUid\n ym(id, 'getClientID', function (clientID) {\n ymUid = clientID\n })\n return ymUid ?? null\n }\n}\n","declare const Comagic: any\n\nconst getComagicVisitorId = () => {\n if (typeof Comagic !== 'undefined') {\n return Comagic && Comagic.getVisitorId()\n }\n else return null\n}\n\nconst getComagicSessionId = () => {\n if (typeof Comagic !== 'undefined') {\n return Comagic && Comagic.getSessionId()\n }\n else return null\n}\n\nexport { getComagicSessionId, getComagicVisitorId }\n","import {getYmUid} from \"./getYmUid\";\nimport {getComagicVisitorId} from \"./getComagicId\";\n\nexport const setAnalyticId = (defaultData: any)=> {\n defaultData.ym_uid = getYmUid(95057596)\n defaultData.cm_visitor_id = getComagicVisitorId()\n}","import { getDefaultAnalyticsData } from '../utils/getDefaultAnalyticsData'\nimport { StoneDataLayerStore } from '../StoneDataLayerStore'\nimport { getVisibleVirtualPn } from '../../../utils/getVisibleVirtualPn'\nimport { setAnalyticId } from '../utils/setAnalyticId'\n\nexport type TEventSubmit = {\n\tstore: StoneDataLayerStore\n\tblock_name?: string\n\tauth?: boolean\n\tlead_id?: string\n\tsubmitted_lot?: string\n\tsubmitted_lot_project?: string\n\twidget?: {\n\t\twidget_agent_id?: string\n\t\twidget_session_id?: string\n\t\tresponse_time_ms?: string\n\t}\n}\n\nexport const setEventSubmit = async ({\n\tstore,\n\tlead_id,\n\tblock_name,\n\tauth,\n\tsubmitted_lot,\n\tsubmitted_lot_project,\n\twidget,\n}: TEventSubmit) => {\n\ttry {\n\t\tconst defaultData = getDefaultAnalyticsData(store)\n\n\t\tconst additionalFields = {\n\t\t\tevent: 'submit',\n\t\t\tlead_id: String(lead_id),\n\t\t\tblock_name,\n\t\t\tauth: auth ?? null,\n\t\t\tsubmitted_lot: submitted_lot ?? null,\n\t\t\tsubmitted_lot_project: submitted_lot_project ?? null,\n\t\t\twidget,\n\t\t}\n\n\t\tdefaultData.visible_virtual_pn = getVisibleVirtualPn()\n\t\tsetAnalyticId(defaultData)\n\n\t\tstore.pushLayer({ ...defaultData, ...additionalFields })\n\t} catch (e) {\n\t\tconsole.log('error', e)\n\t}\n}\n","import { StoneDataLayerStore } from '../StoneDataLayerStore'\nimport { getDefaultAnalyticsData } from '../utils/getDefaultAnalyticsData'\nimport { getVisibleVirtualPn } from '../../../utils/getVisibleVirtualPn'\nimport { setAnalyticId } from '../utils/setAnalyticId'\n\nexport type TEventLotFeedShow = {\n\tstore: StoneDataLayerStore\n\tpathname?: string\n\tblock_name?: string\n\tlist_of_lots: TAnalyticFeedLot[]\n\twidget?: {\n\t\twidget_agent_id?: string\n\t\twidget_session_id?: string\n\t\tresponse_time_ms?: string\n\t}\n}\n\nexport type TAnalyticFeedLot = {\n\tposition: number | null\n\tlot: string | null\n\tlot_project: string | null\n}\n\nexport const setEventLotFeedShow = async ({\n\tstore,\n\tblock_name,\n\tlist_of_lots,\n\twidget,\n}: TEventLotFeedShow) => {\n\ttry {\n\t\tconst defaultData = getDefaultAnalyticsData(store)\n\n\t\tconst additionalFields = {\n\t\t\tevent: 'lot_feed_show',\n\t\t\tblock_name,\n\t\t\tlist_of_lots,\n\t\t\twidget,\n\t\t}\n\n\t\tconst dataForPush = { ...defaultData }\n\t\tsetAnalyticId(defaultData)\n\n\t\tdelete dataForPush.ym_uid\n\t\tdelete dataForPush.cm_visitor_id\n\n\t\tdefaultData.visible_virtual_pn = getVisibleVirtualPn()\n\n\t\tstore.pushLayer({ ...defaultData, ...additionalFields })\n\t} catch (e) {\n\t\tconsole.log('error', e)\n\t}\n}\n","export const cleanString = (string : string) => {\n return string\n .replace(/&nbsp;|nbsp|\\u00A0/g, ' ')\n .replace(/<br\\s*\\/?>|br/gi, ' ').replace(/\\s+/g, ' ').trim()\n}","import { StoneDataLayerStore } from '../StoneDataLayerStore'\nimport { getDefaultAnalyticsData } from '../utils/getDefaultAnalyticsData'\nimport { getVisibleVirtualPn } from '../../../utils/getVisibleVirtualPn'\nimport { setAnalyticId } from '../utils/setAnalyticId'\nimport { cleanString } from '../../../utils/cleanString'\n\nexport type TEventClick = {\n\tstore: StoneDataLayerStore\n\tpathname?: string\n\tblock_name?: string\n\tauth?: boolean\n\tclicked_url?: string\n\taction_element?: string | null\n\taction_element_text?: string | null\n\taction_element_status?: 'error' | 'success'\n\tclicked_lot?: string\n\tclicked_lot_project?: string\n\tclicked_lot_position?: string\n\tbanner_position?: number\n\tbanner_text?: string\n\twidget?: {\n\t\twidget_agent_id?: string\n\t\twidget_session_id?: string\n\t\tresponse_time_ms?: string\n\t}\n}\n\nexport const setEventClick = async ({\n\tstore,\n\taction_element,\n\taction_element_text,\n\tblock_name,\n\tclicked_url,\n\tauth,\n\tclicked_lot,\n\tclicked_lot_project,\n\tclicked_lot_position,\n\taction_element_status,\n\tbanner_position,\n\tbanner_text,\n\twidget,\n}: TEventClick) => {\n\ttry {\n\t\tconst defaultData = getDefaultAnalyticsData(store)\n\n\t\tconst additionalFields: Omit<TEventClick, 'store'> & { event: string } = {\n\t\t\tevent: 'click',\n\t\t\taction_element,\n\t\t\tblock_name,\n\t\t\tauth: auth ?? null,\n\t\t\tclicked_url: clicked_url ?? null,\n\t\t\tclicked_lot: clicked_lot ?? null,\n\t\t\tclicked_lot_position: clicked_lot_position ?? null,\n\t\t\twidget,\n\t\t}\n\t\tif (banner_position) additionalFields.banner_position = banner_position\n\t\tif (clicked_lot_project) additionalFields.clicked_lot_project = clicked_lot_project\n\t\tif (action_element_text) additionalFields.action_element_text = cleanString(action_element_text)\n\t\tif (banner_text) additionalFields.banner_text = cleanString(banner_text)\n\t\tif (action_element_status) additionalFields.action_element_status = action_element_status\n\n\t\tdefaultData.visible_virtual_pn = getVisibleVirtualPn()\n\n\t\tsetAnalyticId(defaultData)\n\n\t\tstore.pushLayer({ ...defaultData, ...additionalFields })\n\t} catch (e) {\n\t\tconsole.log('error', e)\n\t}\n}\n","import { getDefaultAnalyticsData } from '../utils/getDefaultAnalyticsData'\nimport { StoneDataLayerStore } from '../StoneDataLayerStore'\nimport { getVisibleVirtualPn } from '../../../utils/getVisibleVirtualPn'\nimport { setAnalyticId } from '../utils/setAnalyticId'\n\nexport type TEventCheck = {\n\tstore: StoneDataLayerStore\n\tpathname?: string\n\tblock_name?: string\n\tauth?: boolean\n\taction_element: string\n\taction_element_text: string\n\twidget?: {\n\t\twidget_agent_id?: string\n\t\twidget_session_id?: string\n\t\tresponse_time_ms?: string\n\t}\n}\n\nexport const setEventCheck = async ({\n\tstore,\n\taction_element,\n\tauth,\n\taction_element_text,\n\tblock_name,\n\twidget,\n}: TEventCheck) => {\n\ttry {\n\t\tconst defaultData = getDefaultAnalyticsData(store)\n\n\t\tconst additionalFields = {\n\t\t\tevent: 'check',\n\t\t\taction_element,\n\t\t\tauth: auth ?? null,\n\t\t\taction_element_text: action_element_text ?? null,\n\t\t\tblock_name,\n\t\t\twidget,\n\t\t}\n\n\t\tdefaultData.visible_virtual_pn = getVisibleVirtualPn()\n\n\t\tsetAnalyticId(defaultData)\n\n\t\tstore.pushLayer({ ...defaultData, ...additionalFields })\n\t} catch (e) {\n\t\tconsole.log('error', e)\n\t}\n}\n","import { StoneDataLayerStore } from '../StoneDataLayerStore'\nimport { getDefaultAnalyticsData } from '../utils/getDefaultAnalyticsData'\nimport { getVisibleVirtualPn } from '../../../utils/getVisibleVirtualPn'\nimport { setAnalyticId } from '../utils/setAnalyticId'\n\nexport type TEventBlur = {\n\tstore: StoneDataLayerStore\n\tpathname?: string\n\tauth?: boolean\n\tblock_name?: string\n\taction_element: string\n\taction_element_status: 'error' | 'success'\n\twidget?: {\n\t\twidget_agent_id?: string\n\t\twidget_session_id?: string\n\t\tresponse_time_ms?: string\n\t}\n}\n\nexport const setEventBlur = async ({\n\tstore,\n\taction_element,\n\tblock_name,\n\tauth,\n\taction_element_status,\n\twidget,\n}: TEventBlur) => {\n\ttry {\n\t\tconst defaultData = getDefaultAnalyticsData(store)\n\n\t\tconst additionalFields = {\n\t\t\tevent: 'blur',\n\t\t\taction_element,\n\t\t\taction_element_status,\n\t\t\tblock_name,\n\t\t\tauth: auth ?? null,\n\t\t\twidget,\n\t\t}\n\n\t\tdefaultData.visible_virtual_pn = getVisibleVirtualPn()\n\n\t\tsetAnalyticId(defaultData)\n\n\t\tstore.pushLayer({ ...defaultData, ...additionalFields })\n\t} catch (e) {\n\t\tconsole.log('error', e)\n\t}\n}\n","import { StoneDataLayerStore } from '../StoneDataLayerStore'\nimport { getDefaultAnalyticsData } from '../utils/getDefaultAnalyticsData'\nimport { getVisibleVirtualPn } from '../../../utils/getVisibleVirtualPn'\nimport { setAnalyticId } from '../utils/setAnalyticId'\n\nexport type TEventPageView = {\n\tstore: StoneDataLayerStore\n\tprojectName?: string\n\tauth?: boolean\n\tlotName?: string\n\twidget?: {\n\t\twidget_agent_id?: string\n\t\twidget_session_id?: string\n\t\tresponse_time_ms?: string\n\t}\n}\n\nexport const setEventFullScreen = async ({ store, auth, widget }: TEventPageView) => {\n\ttry {\n\t\tconst defaultData = getDefaultAnalyticsData(store)\n\n\t\tconst additionalFields = {\n\t\t\tevent: 'fullscreenview',\n\t\t\tauth,\n\t\t\twidget,\n\t\t}\n\n\t\tdefaultData.visible_virtual_pn = getVisibleVirtualPn()\n\n\t\tsetAnalyticId(defaultData)\n\n\t\tstore.pushLayer({ ...defaultData, ...additionalFields })\n\t} catch (e) {\n\t\tconsole.log('error', e)\n\t}\n}\n","import { StoneDataLayerStore } from '../StoneDataLayerStore'\nimport { getDefaultAnalyticsData } from '../utils/getDefaultAnalyticsData'\nimport { setAnalyticId } from '../utils/setAnalyticId'\nimport { cleanString } from '../../../utils/cleanString'\n\nexport type TEventBannerShow = {\n\tstore: StoneDataLayerStore\n\tpathname?: string\n\tblock_name?: string\n\tauth?: boolean\n\tbanner_text: string\n\tbanner_link: string\n\tbanner_position?: number\n\twidget?: {\n\t\twidget_agent_id?: string\n\t\twidget_session_id?: string\n\t\tresponse_time_ms?: string\n\t}\n}\n\nexport const setEventBannerShow = async ({\n\tstore,\n\tbanner_text,\n\tbanner_link,\n\tbanner_position,\n\tauth,\n\tblock_name,\n\twidget,\n}: TEventBannerShow) => {\n\ttry {\n\t\tconst defaultData = getDefaultAnalyticsData(store)\n\n\t\tconst additionalFields = {\n\t\t\tevent: 'banner_show',\n\t\t\tbanner_text: cleanString(banner_text) ?? null,\n\t\t\tbanner_link: banner_link ?? null,\n\t\t\tbanner_position: banner_position ?? null,\n\t\t\tauth: auth ?? null,\n\t\t\tblock_name,\n\t\t\twidget\n\t\t}\n\n\t\tsetAnalyticId(defaultData)\n\n\t\tstore.pushLayer({ ...defaultData, ...additionalFields })\n\t} catch (e) {\n\t\tconsole.log('error', e)\n\t}\n}\n","import { StoneDataLayerStore } from '../StoneDataLayerStore'\nimport { getDefaultAnalyticsData } from '../utils/getDefaultAnalyticsData'\nimport { setAnalyticId } from '../utils/setAnalyticId'\n\nexport type TEventBannerClick = {\n\tstore: StoneDataLayerStore\n\tpathname?: string\n\tblock_name?: string\n\tauth?: boolean\n\tclicked_url?: string\n\tbanner_text: string\n\tbanner_link: string\n\twidget?: {\n\t\twidget_agent_id?: string\n\t\twidget_session_id?: string\n\t\tresponse_time_ms?: string\n\t}\n}\n\nexport const setEventBannerClick = async ({\n\tstore,\n\tbanner_text,\n\tbanner_link,\n\tauth,\n\tclicked_url,\n\tblock_name,\n\twidget,\n}: TEventBannerClick) => {\n\ttry {\n\t\tconst defaultData = getDefaultAnalyticsData(store)\n\n\t\tconst additionalFields = {\n\t\t\tevent: 'banner_click',\n\t\t\tbanner_text,\n\t\t\tbanner_link,\n\t\t\tauth: auth ?? null,\n\t\t\tclicked_url,\n\t\t\tblock_name,\n\t\t\twidget\n\t\t}\n\n\t\tsetAnalyticId(defaultData)\n\n\t\tstore.pushLayer({ ...defaultData, ...additionalFields })\n\t} catch (e) {\n\t\tconsole.log('error', e)\n\t}\n}\n","import { StoneDataLayerStore } from '../StoneDataLayerStore'\nimport { getDefaultAnalyticsData } from '../utils/getDefaultAnalyticsData'\nimport { setAnalyticId } from '../utils/setAnalyticId'\nimport { cleanString } from '../../../utils/cleanString'\n\nexport type TEventOnboardingShow = {\n\tstore: StoneDataLayerStore\n\tpathname?: string\n\tblock_name?: string\n\tauth?: boolean\n\tbanner_text: string\n\tbanner_link: string\n\tbanner_position?: number\n\twidget?: {\n\t\twidget_agent_id?: string\n\t\twidget_session_id?: string\n\t\tresponse_time_ms?: string\n\t}\n}\n\nexport const setEventOnboardingShow = async ({\n\tstore,\n\tbanner_text,\n\tbanner_link,\n\tbanner_position,\n\tauth,\n\tblock_name,\n\twidget,\n}: TEventOnboardingShow) => {\n\ttry {\n\t\tconst defaultData = getDefaultAnalyticsData(store)\n\n\t\tconst additionalFields = {\n\t\t\tevent: 'onboarding_show',\n\t\t\tbanner_text: cleanString(banner_text) ?? null,\n\t\t\tbanner_link: banner_link ?? null,\n\t\t\tbanner_position: banner_position ?? null,\n\t\t\tauth: auth ?? null,\n\t\t\tblock_name,\n\t\t\twidget,\n\t\t}\n\n\t\tsetAnalyticId(defaultData)\n\n\t\tstore.pushLayer({ ...defaultData, ...additionalFields })\n\t} catch (e) {\n\t\tconsole.log('error', e)\n\t}\n}\n\n","import { StoneDataLayerStore } from '../StoneDataLayerStore'\nimport { getDefaultAnalyticsData } from '../utils/getDefaultAnalyticsData'\nimport { setAnalyticId } from '../utils/setAnalyticId'\nimport { cleanString } from '../../../utils/cleanString'\n\nexport type TEventOnboardingClose = {\n\tstore: StoneDataLayerStore\n\tpathname?: string\n\tblock_name?: string\n\tauth?: boolean\n\tbanner_text: string\n\tbanner_link: string\n\tbanner_position?: number\n\twidget?: {\n\t\twidget_agent_id?: string\n\t\twidget_session_id?: string\n\t\tresponse_time_ms?: string\n\t}\n}\n\nexport const setEventOnboardingClose = async ({\n\tstore,\n\tbanner_text,\n\tbanner_link,\n\tbanner_position,\n\tauth,\n\tblock_name,\n\twidget\n}: TEventOnboardingClose) => {\n\ttry {\n\t\tconst defaultData = getDefaultAnalyticsData(store)\n\n\t\tconst additionalFields = {\n\t\t\tevent: 'onboarding_close',\n\t\t\tbanner_text: cleanString(banner_text) ?? null,\n\t\t\tbanner_link: banner_link ?? null,\n\t\t\tbanner_position: banner_position ?? null,\n\t\t\tauth: auth ?? null,\n\t\t\tblock_name,\n\t\t\twidget\n\t\t}\n\n\t\tsetAnalyticId(defaultData)\n\n\t\tstore.pushLayer({ ...defaultData, ...additionalFields })\n\t} catch (e) {\n\t\tconsole.log('error', e)\n\t}\n}\n\n","import { getDefaultAnalyticsData } from '../utils/getDefaultAnalyticsData'\nimport { StoneDataLayerStore } from '../StoneDataLayerStore'\nimport { setAnalyticId } from '../utils/setAnalyticId'\n\nexport type TEventChat = {\n\tstore: StoneDataLayerStore\n\tpathname?: string\n\tblock_name?: string\n\tauth?: boolean\n\taction_element: string\n\taction_element_text: string\n\tmessage?: string\n\twidget?: {\n\t\twidget_agent_id?: string\n\t\twidget_session_id?: string\n\t\tresponse_time_ms?: string\n\t}\n}\n\nexport const setEventChat = async ({\n\tstore,\n\taction_element,\n\tauth,\n\taction_element_text,\n\tblock_name,\n\tmessage,\n\twidget\n}: TEventChat) => {\n\ttry {\n\t\tconst defaultData = getDefaultAnalyticsData(store)\n\n\t\tconst additionalFields = {\n\t\t\tevent: 'chat',\n\t\t\taction_element,\n\t\t\tauth: auth ?? null,\n\t\t\taction_element_text: action_element_text ?? null,\n\t\t\tblock_name,\n\t\t\tmessage,\n\t\t\twidget\n\t\t}\n\n\t\tsetAnalyticId(defaultData)\n\n\t\tstore.pushLayer({ ...defaultData, ...additionalFields })\n\t} catch (e) {\n\t\tconsole.log('error', e)\n\t}\n}\n"],"mappings":"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","names":["index_exports","__export","StoneDataLayerStore","checkTimeStamp","getABCookie","getGoogleAnalyticsClientId","getLotName","getPageDirection","getPageType","getProjectName","getStoneClientId","getStoneHashClientId","getStoneSessionId","getYandexMetrikaClientId","setClientId","setSessionId","sokolnikiPageViewType","staticPageViewType","staticRealtyPageViewType","stoneDataLayerStore","stoneHodPageViewType","useComagicStatus","useInitializeMetrics","__toCommonJS","makeTimeBasedUID","isLocalStorage","checkTimeStamp","clientId","unixTimestamp","ISOSDate","ISOSDateNow","setSessionId","newId","makeTimeBasedUID","setClientId","import_react","useInitializeMetrics","isLocalStorage","isClientId","isSessionId","isYearPast","checkTimeStamp","setClientId","setSessionId","tabCountStorage","tabCount","handleBeforeUnload","scrollTop","scrollHeight","scrollPercent","inactivityTimer","resetInactivityTimer","events","event","import_fingerprintjs","import_cookies_next","getStoneHashClientId","st_client_hash_id","FingerprintJS","fp","result","getStoneSessionId","st_session_id","getStoneClientId","st_client_id","getGoogleAnalyticsClientId","_ga","_ga_local","getYandexMetrikaClientId","_ym_uid","_ym_uid_local","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_retail_project","reg_offices_project","reg_com_collection","reg_res_collection","reg_retail_collection","reg_offices_collection","reg_com_lot","reg_res_lot","reg_retail_lot","reg_offices_lot","reg_realty_buy_lot","reg_realty_rent_lot","reg_realty_catalog","staticPageViewType","staticRealtyPageViewType","sokolnikiPageViewType","stoneHodPageViewType","specialCondition","getPageType","pathname","source","href","specialResult","el","reg_com_lot","reg_res_lot","reg_retail_lot","reg_offices_lot","reg_com_collection","reg_res_collection","reg_retail_collection","reg_offices_collection","reg_com_project","reg_res_project","reg_retail_project","reg_offices_project","reg_realty_catalog","reg_realty_rent_lot","reg_realty_buy_lot","specialCondition","getProjectName","pathname","href","specialResult","comMatch","reg_com_project","resMatch","reg_res_project","retailMatch","reg_retail_project","officesMatch","reg_offices_project","comLotMatch","reg_com_lot","resLotMatch","reg_res_lot","retailLotMatch","reg_retail_lot","officesLotMatch","reg_offices_lot","buyLotMatch","reg_realty_buy_lot","rentLotMatch","reg_realty_rent_lot","el","reg_com_lot_last","reg_res_lot_last","reg_retail_lot_last","reg_offices_lot_last","re_realty_buy_lot_last","re_realty_rent_lot_last","getLotName","pathname","comMatch","resMatch","retailMatch","officesMatch","buyMatch","rentMatch","getDefaultAnalyticsData","store","setEventPageView","store","auth","widget","defaultData","getDefaultAnalyticsData","additionalFields","dataForPush","e","setEventPageViewForce","store","auth","widget","defaultData","getDefaultAnalyticsData","additionalFields","e","import_js_md5","getVisibleVirtualPn","_a","_b","virtual_pn","getYmUid","id","ymUid","clientID","getComagicVisitorId","setAnalyticId","defaultData","getYmUid","getComagicVisitorId","setEventSubmit","store","lead_id","block_name","auth","submitted_lot","submitted_lot_project","widget","defaultData","getDefaultAnalyticsData","additionalFields","getVisibleVirtualPn","setAnalyticId","e","setEventLotFeedShow","store","block_name","list_of_lots","widget","defaultData","getDefaultAnalyticsData","additionalFields","dataForPush","setAnalyticId","getVisibleVirtualPn","e","cleanString","string","setEventClick","store","action_element","action_element_text","block_name","clicked_url","auth","clicked_lot","clicked_lot_project","clicked_lot_position","action_element_status","banner_position","banner_text","widget","defaultData","getDefaultAnalyticsData","additionalFields","cleanString","getVisibleVirtualPn","setAnalyticId","e","setEventCheck","store","action_element","auth","action_element_text","block_name","widget","defaultData","getDefaultAnalyticsData","additionalFields","getVisibleVirtualPn","setAnalyticId","e","setEventBlur","store","action_element","block_name","auth","action_element_status","widget","defaultData","getDefaultAnalyticsData","additionalFields","getVisibleVirtualPn","setAnalyticId","e","setEventFullScreen","store","auth","widget","defaultData","getDefaultAnalyticsData","additionalFields","getVisibleVirtualPn","setAnalyticId","e","setEventBannerShow","store","banner_text","banner_link","banner_position","auth","block_name","widget","defaultData","getDefaultAnalyticsData","additionalFields","cleanString","setAnalyticId","e","setEventBannerClick","store","banner_text","banner_link","auth","clicked_url","block_name","widget","defaultData","getDefaultAnalyticsData","additionalFields","setAnalyticId","e","setEventOnboardingShow","store","banner_text","banner_link","banner_position","auth","block_name","widget","defaultData","getDefaultAnalyticsData","additionalFields","cleanString","setAnalyticId","e","setEventOnboardingClose","store","banner_text","banner_link","banner_position","auth","block_name","widget","defaultData","getDefaultAnalyticsData","additionalFields","cleanString","setAnalyticId","e","setEventChat","store","action_element","auth","action_element_text","block_name","message","widget","defaultData","getDefaultAnalyticsData","additionalFields","setAnalyticId","e","StoneDataLayerStore","authStore","parsed","error","tagManagerArgs","pathname","source","href","getPageDirection","getPageType","getProjectName","getLotName","getStoneHashClientId","props","setEventPageView","setEventPageViewForce","setEventSubmit","setEventLotFeedShow","setEventClick","setEventCheck","setEventBlur","setEventFullScreen","setEventBannerShow","setEventBannerClick","setEventOnboardingShow","setEventOnboardingClose","setEventChat","stoneDataLayerStore"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "stone-analytics",
3
- "version": "0.0.128",
3
+ "version": "0.0.131",
4
4
  "description": "analytic package STONE",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.js",