@veltdev/sdk 6.0.30 → 6.0.32
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/{chunk-V3CCCVUU.js → chunk-2GMFNHOT.js} +1 -1
- package/{chunk-C7UYW742.js → chunk-2MJAK5A5.js} +1 -1
- package/{chunk-L7ER3PYC.js → chunk-3BDGQ5BH.js} +24 -24
- package/{chunk-MQTILYP7.js → chunk-4IZOBQPA.js} +1 -1
- package/{chunk-2UKN5WS4.js → chunk-4R5WJWJ4.js} +1 -1
- package/{chunk-KDHNXY6I.js → chunk-4WR2GOXI.js} +1 -1
- package/chunk-57BIEQT2.js +1 -0
- package/{chunk-3QPZIMRE.js → chunk-5N6FRMDY.js} +1 -1
- package/{chunk-DZQGFGTU.js → chunk-5ZT4SI4Q.js} +1 -1
- package/{chunk-4VA4U4ZT.js → chunk-65JXF5ID.js} +1 -1
- package/{chunk-URGVQ42Y.js → chunk-6GBHUA6N.js} +2 -2
- package/{chunk-OXA3UQFH.js → chunk-6MMBTBVW.js} +1 -1
- package/{chunk-XSALYNZB.js → chunk-B4LHJYNG.js} +1 -1
- package/{chunk-2V6RG2BJ.js → chunk-B6ADFKWY.js} +1 -1
- package/{chunk-UB5LEK3H.js → chunk-BSCQ2SIU.js} +1 -1
- package/{chunk-VDYHDBPE.js → chunk-DXZHCUKV.js} +1 -1
- package/{chunk-NT4UQLUO.js → chunk-EDLKBBGZ.js} +1 -1
- package/{chunk-VN4JI7CH.js → chunk-FJSQLT27.js} +1 -1
- package/{chunk-43NZ2PGR.js → chunk-FTIJIX6Y.js} +1 -1
- package/{chunk-YMUHYPSR.js → chunk-FUFU46AG.js} +1 -1
- package/{chunk-M4IKKBA5.js → chunk-HQ4N7XMQ.js} +1 -1
- package/{chunk-ABYSNLTK.js → chunk-I5XISXO3.js} +1 -1
- package/chunk-LFIJYWMO.js +1 -0
- package/{chunk-K7LNHQZK.js → chunk-LMYG4KLY.js} +1 -1
- package/{chunk-2F2VO47Y.js → chunk-N4LOLZ2Y.js} +1 -1
- package/{chunk-EVFSTZKN.js → chunk-NFTOH2HZ.js} +1 -1
- package/{chunk-W25U6MDG.js → chunk-SA7JZYBN.js} +1 -1
- package/{chunk-MRXVHYCG.js → chunk-SCVFCERC.js} +1 -1
- package/{chunk-3VEFGPN7.js → chunk-TGWSCIG4.js} +1 -1
- package/{chunk-LXJRMMTK.js → chunk-TWY3X34A.js} +1 -1
- package/{chunk-NCWWDRHZ.js → chunk-UMRM6GQA.js} +1 -1
- package/{chunk-WPSQEE5O.js → chunk-URL5KBFL.js} +1 -1
- package/{chunk-EH6IEYMQ.js → chunk-WCQZBPSI.js} +1 -1
- package/{chunk-PPNLEE6T.js → chunk-WL25NQ5T.js} +1 -1
- package/{chunk-GUKHFAJQ.js → chunk-WR5LVHSG.js} +1 -1
- package/{chunk-ZWIQB7VN.js → chunk-YTMFAPO3.js} +1 -1
- package/package.json +1 -1
- package/velt-activity-log.js +1 -1
- package/velt-area.js +1 -1
- package/velt-arrow.js +1 -1
- package/velt-comment.js +7 -7
- package/velt-crdt.js +1 -1
- package/velt-cursor.js +1 -1
- package/velt-huddle.js +1 -1
- package/velt-live-state-sync.js +1 -1
- package/velt-notification.js +1 -1
- package/velt-portable.js +1 -1
- package/velt-presence.js +1 -1
- package/velt-reaction.js +1 -1
- package/velt-recorder.js +1 -1
- package/velt-rewriter.js +2 -2
- package/velt-selection.js +1 -1
- package/velt-tag.js +1 -1
- package/velt-user-invite.js +1 -1
- package/velt-user-request.js +1 -1
- package/velt-video-player.js +1 -1
- package/velt-views.js +1 -1
- package/velt.js +6 -6
- package/chunk-IX3XIRFU.js +0 -1
- package/chunk-M3BSHQ2X.js +0 -1
package/velt-views.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{t as dt}from"./chunk-C7UYW742.js";import"./chunk-V3CCCVUU.js";import"./chunk-LXJRMMTK.js";import{a as We,c as Je,d as Ke}from"./chunk-W25U6MDG.js";import{a as gt}from"./chunk-2F2VO47Y.js";import"./chunk-DZQGFGTU.js";import{a as ct}from"./chunk-GUKHFAJQ.js";import{a as pt}from"./chunk-3QPZIMRE.js";import"./chunk-2UKN5WS4.js";import"./chunk-KDHNXY6I.js";import{b as st,d as lt}from"./chunk-EH6IEYMQ.js";import{a as mt}from"./chunk-MQTILYP7.js";import{a as je}from"./chunk-4VA4U4ZT.js";import{A as Pe,Fa as rt,G as Ne,H as Le,Ha as at,I as Me}from"./chunk-YMUHYPSR.js";import{a as ut}from"./chunk-VDYHDBPE.js";import{E as ot,F as pe,j as ge}from"./chunk-M3BSHQ2X.js";import{Aj as Se,Bb as x,E as B,Fj as z,G as De,Gd as Re,Ha as w,Hc as ze,He as E,Hi as ye,Ia as re,Ic as le,Ij as tt,K as te,Kb as ae,Ki as Ze,M as q,Mb as se,O as xe,Pb as _,Qb as K,Qj as it,Ra as I,Rb as j,Rc as Fe,Tb as Te,U as _e,V as S,Va as Ue,Vd as qe,Wa as Q,Wd as Ge,Xa as ke,Y as Ee,Zf as we,Zi as fe,_ as ie,a as m,ab as T,b as h,ba as Oe,ca as Be,cc as $e,ci as Qe,ea as k,ei as de,g as R,ja as P,ka as N,kj as Xe,l as $,la as H,ma as Y,mc as A,nb as D,nc as U,nj as me,ob as v,pb as y,pj as C,qb as L,qe as He,qj as et,r as b,rc as ce,sa as ne,t as Ce,ub as G,v as f,vb as W,w as Z,wa as Ae,xb as J,xk as ue,ya as oe,yg as Ye,yk as nt,zb as M}from"./chunk-L7ER3PYC.js";function vt(c){return c?{field:"metadata.veltFolderId",value:c}:null}function ht(c,l){if(!l||!c||typeof c!="object")return c;let r={};for(let e of Object.keys(c)){let t=c[e]?.metadata;(!(t&&typeof t=="object"&&Object.prototype.hasOwnProperty.call(t,"veltFolderId"))||t.veltFolderId===l.value)&&(r[e]=c[e])}return r}var F=(()=>{let l=class l{constructor(e,t,n,i,o,s,d,a,g,p){this.afAuth=e,this.authService=t,this.configService=n,this.databaseService=i,this.docService=o,this.commonDbService=s,this.iamService=d,this.loggingService=a,this.userPermissionService=g,this.serviceBook=p,this.documentPaths=null,this.views$=new $({}),this.commentViews$=new $({}),this.documentViews$=new $({}),this.locationViews$=new $({}),this.commentViewsByOrganizationIdAndDocumentId$=new $({}),this.documentViewsByOrganizationIdAndDocumentId$=new $({}),this.locationViewsByOrganizationIdAndLocationId$=new $({}),this.documentViewsEnabled$=new $(!1),this.documentViewsSetByDocumentId={},this.notificationService=null,this.loggingService.log("%c[WB] Creating CLASS: ViewsService","color: blue;");try{this.serviceBook.observe(fe).subscribe(u=>{this.commentService=u??void 0}),this.serviceBook.observe(Ze).subscribe(u=>{this.notificationService=u??null}),this.viewsDbReadyGate$().pipe(te(1)).subscribe(()=>{this.subscribeViewsData().subscribe(),this.getNotificationFeatureViews$().subscribe(u=>{this.notificationService?.setNotificationViews(u)}),this.authService.getUser$().pipe(B(u=>!!u),S(u=>this.documentViewsEnabled$.pipe(B(V=>V),f(()=>u))),S(u=>this.docService.getDocumentPaths$().pipe(_e(null),xe(),f(([V,O])=>(V?.documentId!==O?.documentId&&this.views$.next({}),O)),f(V=>(this.documentPaths=V,this.setDocumentAsRead({documentId:this.documentPaths?.documentId??"",clientDocumentId:this.documentPaths?.clientDocumentId??""}),{_user:u,_documentPaths:V})),S(V=>this.docService.getDocumentIds$().pipe(S(O=>(O?.length&&(O.find(ee=>ee.documentId===this.documentPaths?.documentId)||O.push({documentId:this.documentPaths?.documentId??"",clientDocumentId:this.documentPaths?.clientDocumentId??""}),O.forEach(ee=>{this.setDocumentAsRead({documentId:ee.documentId,clientDocumentId:ee.clientDocumentId})})),b(V))))))),S(u=>this.docService.getDocumentMetadata$().pipe(B(V=>!!V),f(V=>h(m({},u),{_documentMetadata:V}))))).subscribe(),this.authService.getUser$().pipe(B(u=>!!u),S(u=>this.documentViewsEnabled$.pipe(B(V=>V),f(()=>u))),S(u=>this.docService.getLocation$().pipe(B(V=>!!V))),S(u=>this.docService.getDocumentIds$().pipe(S(V=>(V.find(O=>O.documentId===this.documentPaths?.documentId)||V.push({documentId:this.documentPaths?.documentId??"",clientDocumentId:this.documentPaths?.clientDocumentId??""}),V.forEach(O=>{this.setLocationAsRead({documentId:O.documentId,clientDocumentId:O.clientDocumentId})}),b(u)))))).subscribe()},u=>{this.loggingService.catch("Error in ViewsService getDb subscription: ",u)})}catch(u){this.loggingService.catch("Error in ViewsService constructor: ",u)}}clearCache(){this.loggingService.log("%c[WB] Calling FUNCTION: clearCache in ViewsService","color: green;");try{this.documentPaths=null,this.documentViews$.next({}),this.views$.next({}),this.commentViews$.next({}),this.locationViews$.next({}),this.commentViewsByOrganizationIdAndDocumentId$.next({}),this.documentViewsByOrganizationIdAndDocumentId$.next({}),this.locationViewsByOrganizationIdAndLocationId$.next({})}catch(e){this.loggingService.catch("Error in ViewsService clearCache: ",e)}}subscribeViewsData(e,t){this.loggingService.log("%c[WB] Calling FUNCTION: subscribeViewsData","color: green;");let n,i;try{if(e&&(i=we(e)),t&&typeof t=="object"){let o=Ye(t);n=we(JSON.stringify(o))}}catch(o){this.loggingService.catch("Error in ViewsService subscribeViewsData: ",o)}return this.authService.getAuthState$().pipe(B(o=>!!o),S(o=>this.isFeatureAllowed({firebaseUser:o})),S(o=>o.featureAllowed?this.iamService.isUserAllowed$().pipe(f(s=>(o.featureAllowed=s,o))):b(o)),S(o=>o.featureAllowed?b(o).pipe(S(s=>this.docService.getDocumentPaths$().pipe(f(d=>(this.documentPaths=d,s.documentPaths=d,s)))),S(s=>i?this.getDataFromDocumentIds([i]):this.docService.getDocumentIds$().pipe(S(d=>{let a=d?.length>0?d.map(g=>g.documentId):[this.documentPaths?.documentId??""];return this.getDataFromDocumentIds(a)})))):b([])))}isFeatureAllowed(e){return this.configService.getConfig$().pipe(B(t=>!!t),f(t=>h(m({},e),{config:t})),S(t=>this.authService.getUser$().pipe(f(n=>h(m({},t),{user:n})))),S(t=>t.user?b(h(m({},t),{featureAllowed:!0})):b(h(m({},t),{featureAllowed:!1}))),q((t,n)=>t?.featureAllowed===n?.featureAllowed))}getDataFromDocumentIds(e,t){return this.getDataFromDocuments({documentIds:e,filters:t})}getCommentViewsById(e){try{return this.commentViews$.value?.[e]?this.commentViews$.value?.[e]:void 0}catch(t){this.loggingService.catch("Error in ViewsService getCommentViewsById: ",t);return}}getDocumentViewsById(e){try{return this.documentViews$.value?.[e]}catch(t){this.loggingService.catch("Error in ViewsService getDocumentViewsById: ",t);return}}getLocationViewsById(e){try{return this.locationViews$.value?.[e]}catch(t){this.loggingService.catch("Error in ViewsService getLocationViewsById: ",t);return}}getDataFromDocuments(e){if(this.configService?.getApiKey()){let{documentIds:t,filters:n}=e;return t?.some(i=>!i)||!this.documentPaths?b([]):this.documentViewsEnabled$.pipe(S(i=>i?Z([this.getCommentViewsDataFromDocuments(),this.getDocumentViewsDataFromDocuments(t),this.getLocationViewsDataFromDocuments(t)]):Z([this.getCommentViewsDataFromDocuments()])))}else return b(null)}getCommentViews(e){try{let t={};Object.entries(e??{}).forEach(([n,i])=>{let o=i.metadata?.documentId,s=i.views;!o||!s||(t[o]||(t[o]={}),t[o][i.annotationId]=s)}),Object.entries(t??{}).forEach(([n,i])=>{this.setCommentViewsByOrganizationIdAndDocumentId({organizationId:this.documentPaths?.organizationId,documentId:n,commentViews:i})})}catch(t){this.loggingService.catch("Error in ViewsService getCommentViews: ",t)}}getCommentViewsDataFromDocuments(){try{return this.serviceBook.observe(fe).pipe(q(),S(e=>{if(!e)return b([]);try{return e.getAllCommentAnnotations({detectGhostComments:!0,addFilterCommentsOnDomCheck:!0,fromCommentSidebar:!0,skipPositionCalculation:!0,analytics:{enabled:!0,properties:{source:"internal",sourceId:"commentsContainer"}}}).pipe(B(t=>!!t),Ee(t=>{this.getCommentViews(t)}),De(t=>(this.loggingService.catch("Error in ViewsService getCommentViewsDataFromDocuments: ",t),b([]))))}catch(t){return this.loggingService.catch("Error in ViewsService getCommentViewsDataFromDocuments: ",t),b([])}}))}catch(e){return this.loggingService.catch("Error in ViewsService getCommentViewsDataFromDocuments: ",e),b([])}}viewsDbReadyGate$(){return it({isPortableFeedActive:()=>this.commonDbService?.usesPortableChannelFeed(ge),firebaseDb$:()=>this.databaseService.getDb(),onError:(e,t)=>this.loggingService.catch(`Error in ViewsService viewsDbReadyGate$ ${e}: `,t)})}getDocumentViewsDataFromDocuments(e){let t=this.docService.getDocumentPaths()?.veltFolderId,n=vt(t),i=b([]),o={useCollectionGroup:!0,isCollection:!0,useQuery:!0};if(this.commonDbService.shouldUseFirestore()||(o.documentId=e?.length?e[0]:void 0,o.organizationId=this.documentPaths?.organizationId),this.commonDbService.usesPortableChannelFeed(ge))i=this.commonDbService.dbListener({feature:"allDocumentViews",properties:h(m({},o),{organizationId:this.documentPaths?.organizationId,documentIds:e})}).pipe(ie(),f(s=>de(JSON.parse(JSON.stringify([s])))),f(s=>n&&s?.data?h(m({},s),{data:ht(s.data,n)}):s));else{let s=[];for(let d=0;d<(e?.length??0);d+=E.LISTENER_BATCH_SIZE)s.push(e?.slice(d,d+E.LISTENER_BATCH_SIZE)??[]);i=Z(s.map(d=>this.commonDbService.dbListener({feature:"allDocumentViews",properties:h(m({},o),{firestoreQuery:[Se(z("metadata.apiKey","==",this.configService?.getApiKey()),z("metadata.documentId","in",d),z("metadata.organizationId","==",this.documentPaths?.organizationId),...n?[z(n.field,"==",n.value)]:[])]})}).pipe(ie()))).pipe(f(d=>de(d)))}return i.pipe(f(s=>({data:s?.data,operation:s?.operation})),f(({data:s,operation:d})=>{let a={};return e?(Object.entries(s??{}).forEach(([g,p])=>{let u=p.metadata?.documentId;u&&(a[u]||(a[u]={}),a[u][g]=p)}),{data:s,documentMap:a,operation:d}):{data:s,documentMap:a,operation:d}}),f(({data:s,documentMap:d,operation:a})=>{if(a?.type==="removed"){if(a?.ids?.length){let g=this.documentViews$.value;a?.ids?.forEach(p=>{delete g?.[p]}),this.documentViews$.next(g)}}else Object.entries(d??{}).forEach(([g,p])=>{this.setDocumentViewsByOrganizationIdAndDocumentId({organizationId:this.documentPaths?.organizationId,documentId:g,documentViews:p})})}))}getLocationViewsDataFromDocuments(e){let t=this.docService.getDocumentPaths()?.veltFolderId,n=b([]),i={useCollectionGroup:!0,isCollection:!0,useQuery:!0};this.commonDbService.shouldUseFirestore()||(i.documentId=e?.length?e[0]:void 0,i.organizationId=this.documentPaths?.organizationId);let o=[];for(let s=0;s<(e?.length??0);s+=E.LISTENER_BATCH_SIZE)o.push(e?.slice(s,s+E.LISTENER_BATCH_SIZE)??[]);return n=Z(o.map(s=>this.commonDbService.dbListener({feature:"allLocationViews",properties:h(m({},i),{firestoreQuery:[Se(z("metadata.apiKey","==",this.configService?.getApiKey()),z("metadata.documentId","in",s),z("metadata.organizationId","==",this.documentPaths?.organizationId),...t?[z("metadata.veltFolderId","==",t)]:[])]})}).pipe(ie()))).pipe(f(s=>de(s))),n.pipe(f(s=>({data:s?.data,operation:s?.operation})),f(({data:s,operation:d})=>{let a={};return e?(Object.entries(s??{}).forEach(([g,p])=>{let u=p.metadata?.documentId;u&&(a[u]||(a[u]={}),a[u][g]=p)}),{data:s,documentMap:a,operation:d}):{data:s,documentMap:a,operation:d}}),f(({data:s,documentMap:d,operation:a})=>{if(a?.type==="removed"){if(a?.ids?.length){let g=this.locationViews$.value;a?.ids?.forEach(p=>{delete g?.[p]}),this.locationViews$.next(g)}}else Object.entries(d??{}).forEach(([g,p])=>{this.setLocationViewsByOrganizationIdAndDocumentId({organizationId:this.documentPaths?.organizationId,documentId:g,locationViews:p})})}))}setViewsData(e){try{this.views$.next(m(m({},this.views$.getValue()),e||{}))}catch(t){this.loggingService.catch("Error in ViewsService setViewsData:",t)}}setCommentViewsByOrganizationIdAndDocumentId({organizationId:e,documentId:t,commentViews:n,queryHash:i}){try{if(n||(n={}),t){e||(e=E.NO_ORGANIZATION_ID),i||(i=E.DEFAULT_QUERY_HASH);let o=m(m({},this.commentViews$.value),n);this.commentViews$.next(o),this.commentViewsByOrganizationIdAndDocumentId$.next(h(m({},this.commentViewsByOrganizationIdAndDocumentId$.value),{[e]:h(m({},this.commentViewsByOrganizationIdAndDocumentId$.value[e]),{[t]:h(m({},this.commentViewsByOrganizationIdAndDocumentId$.value[e]?.[t]),{[i]:n})})}))}}catch(o){this.loggingService.catch("Error in CommentService setCommentAnnotationsByOrganizationIdAndDocumentId:",o)}}setDocumentViewsByOrganizationIdAndDocumentId({organizationId:e,documentId:t,documentViews:n,queryHash:i}){try{if(n||(n={}),t){e||(e=E.NO_ORGANIZATION_ID),i||(i=E.DEFAULT_QUERY_HASH);let o=m(m({},this.documentViews$.value),n);this.documentViews$.next(o),this.documentViewsByOrganizationIdAndDocumentId$.next(h(m({},this.documentViewsByOrganizationIdAndDocumentId$.value),{[e]:h(m({},this.documentViewsByOrganizationIdAndDocumentId$.value[e]),{[t]:h(m({},this.documentViewsByOrganizationIdAndDocumentId$.value[e]?.[t]),{[i]:n})})}))}}catch(o){this.loggingService.catch("Error in CommentService setCommentAnnotationsByOrganizationIdAndDocumentId:",o)}}setLocationViewsByOrganizationIdAndDocumentId({organizationId:e,documentId:t,locationViews:n,queryHash:i}){try{if(n||(n={}),t){e||(e=E.NO_ORGANIZATION_ID),i||(i=E.DEFAULT_QUERY_HASH);let o=m(m({},this.locationViews$.value),n);this.locationViews$.next(o),this.locationViewsByOrganizationIdAndLocationId$.next(h(m({},this.locationViewsByOrganizationIdAndLocationId$.value),{[e]:h(m({},this.locationViewsByOrganizationIdAndLocationId$.value[e]),{[t]:h(m({},this.locationViewsByOrganizationIdAndLocationId$.value[e]?.[t]),{[i]:n})})}))}}catch(o){this.loggingService.catch("Error in CommentService setCommentAnnotationsByOrganizationIdAndDocumentId:",o)}}getCommentFeatureViews$(){return this.commentViews$.pipe(q((e,t)=>JSON.stringify(e||{})===JSON.stringify(t||{})))}setCommentAnnotationAsRead(e){return R(this,null,function*(){try{if(this.authService.getUser()&&e?.annotationId){if(e.annotationId.startsWith("TEMP_COMPOSER_"))return;this.updateCommentAnnotationViews(e);let n=e?.metadata?.organizationId??this.documentPaths?.organizationId??"",i=e?.metadata?.documentId??this.documentPaths?.documentId??"";if(e?.isDraft)return;yield this.commonDbService.setData({feature:"comment",properties:{id:e.annotationId,documentId:i,organizationId:n,metadata:{apiKey:this.configService.getApiKey(),organizationId:n,veltFolderId:e?.metadata?.veltFolderId,documentId:i}},data:JSON.parse(JSON.stringify(e))})}}catch(t){this.loggingService.catch("Error in ViewsService setCommentAnnotationAsRead:",t)}})}setCommentAnnotationAsUnread(e){return R(this,null,function*(){try{if(this.authService.getUser()&&e?.annotationId){if(e.annotationId.startsWith("TEMP_COMPOSER_"))return;this.removeCommentAnnotationViews(e);let n=e?.metadata?.organizationId??this.documentPaths?.organizationId??"",i=e?.metadata?.documentId??this.documentPaths?.documentId??"";if(e?.isDraft)return;yield this.commonDbService.setData({feature:"comment",properties:{id:e.annotationId,documentId:i,organizationId:n,metadata:{apiKey:this.configService.getApiKey(),organizationId:n,veltFolderId:e?.metadata?.veltFolderId,documentId:i}},data:JSON.parse(JSON.stringify(e))})}}catch(t){this.loggingService.catch("Error in ViewsService setCommentAnnotationAsRead:",t)}})}updateCommentAnnotationViews(e){try{let t=this.authService.getUser(),n={views:{},comments:{}};if(t){let i={},o=e?.views?.comments||{},s=new Date().getTime()+this.commonDbService.getOffset();e.comments?.forEach(a=>{o[a.commentId]||(o[a.commentId]={views:{}}),o[a.commentId].views||(o[a.commentId].views={}),o[a.commentId].views[t.userSnippylyId]||(o[a.commentId].views[t.userSnippylyId]={timestamp:s})});let d=new Set(e.comments?.map(a=>a.commentId+""));if(Object.keys(o??{}).forEach(a=>{d.has(a)||delete o[a]}),e.comments?.length){let a=o[e.comments[0].commentId]?.views||{},g=Object.keys(a??{}).filter(p=>e.comments?.every(u=>o[u.commentId]?.views?.[p]));g.forEach(p=>{i[p]={timestamp:a[p].timestamp}}),e.viewedByUserIds=g}n.views=i,n.comments=o,e.views=n}return n}catch(t){return this.loggingService.catch("Error in ViewsService updateCommentAnnotationViews:",t),{views:{},comments:{}}}}removeCommentAnnotationViews(e){try{let t=this.authService.getUser(),n={views:{},comments:{}};if(t){let i={},o=e?.views?.comments||{};e.comments?.forEach(d=>{o[d.commentId]?.views?.[t.userSnippylyId]&&delete o[d.commentId].views[t.userSnippylyId]});let s=new Set(e.comments?.map(d=>d.commentId+""));if(Object.keys(o??{}).forEach(d=>{s.has(d)||delete o[d]}),e.comments?.length){let d=o[e.comments[0].commentId]?.views||{},a=Object.keys(d??{}).filter(g=>e.comments?.every(p=>o[p.commentId]?.views?.[g]));a.forEach(g=>{i[g]={timestamp:d[g].timestamp}}),e.viewedByUserIds=a}else e.viewedByUserIds=[];n.views=i,n.comments=o,e.views=n}return n}catch(t){return this.loggingService.catch("Error in ViewsService removeCommentAnnotationViews:",t),{views:{},comments:{}}}}getNotificationFeatureViews$(){return this.views$.pipe(q((e,t)=>JSON.stringify(e?.notification||{})===JSON.stringify(t?.notification||{})))}setNotificationsAsRead(e){try{let t=this.authService.getUser();if(t){let n=new Date().getTime()+this.commonDbService.getOffset();e.forEach(i=>{this.commonDbService.updateData({feature:"notificationViewsTimestamp",properties:{id:i,user:t.userSnippylyId,documentId:this.documentPaths?.documentId??"",organizationId:this.documentPaths?.organizationId??""},data:{timestamp:n}})})}}catch(t){this.loggingService.catch("Error in ViewsService setNotificationAsRead:",t)}}getDocumentViews$(){return this.views$.pipe(q((e,t)=>JSON.stringify(e?.documentViews||{})===JSON.stringify(t?.documentViews||{})))}getUniqueViewsByUser(e){try{return this.enableDocumentViews(),this.docService.getDocumentPaths$().pipe(S(t=>(this.documentPaths=t,e?this.locationViews$.pipe(f(n=>{let i=Object.keys(n||{}).find(o=>n?.[o]?.location?.id===e);return i?n?.[i]?.users||{}:{}})):this.documentViews$.pipe(f(n=>{let i=this.documentPaths?.documentId;return i?n?.[i]?.users||{}:{}})))),q(Qe))}catch(t){return this.loggingService.catch("Error in ViewsService getUniqueViewsByUser:",t),b({})}}getUniqueViewsByDate(e){try{return this.enableDocumentViews(),this.docService.getDocumentPaths$().pipe(S(t=>(this.documentPaths=t,e?this.locationViews$.pipe(f(n=>{let i=Object.keys(n||{}).find(o=>n?.[o]?.location?.id===e);return i?n?.[i]?.day||{}:{}})):this.documentViews$.pipe(f(n=>{let i=this.documentPaths?.documentId;return i?n?.[i]?.day||{}:{}})))))}catch(t){return this.loggingService.catch("Error in ViewsService getUniqueViewsByDate:",t),b({})}}enableDocumentViews(){try{if(this.documentViewsEnabled$.value===!0)return;this.documentViewsEnabled$.next(!0)}catch(e){this.loggingService.catch("Error in ViewsService enableDocumentViews:",e)}}disableDocumentViews(){try{if(this.documentViewsEnabled$.value===!1)return;this.documentViewsEnabled$.next(!1)}catch(e){this.loggingService.catch("Error in ViewsService disableDocumentViews:",e)}}setDocumentAsRead(n){return R(this,arguments,function*({documentId:e,clientDocumentId:t}){try{let i=this.authService.getUser();if(i&&e&&this.userPermissionService?.hasEditAccess({documentId:e??"",folderId:this.documentPaths?.allDocuments&&this.documentPaths?.veltFolderId?this.documentPaths?.veltFolderId:void 0})){if(this.documentViewsSetByDocumentId[e])return;this.documentViewsSetByDocumentId[e]=!0;let o=new Date().getTime()+this.commonDbService.getOffset(),s=new Date().toISOString().split("T")[0];if(this.commonDbService.usesPortableChannelFeed(ge)){let a=yield Ce(this.docService.getDocumentPaths$().pipe(f(g=>g?.organizationId),B(g=>!!g)));yield this.commonDbService.whenPortableRealtimeReady(),this.commonDbService.updateData({feature:"documentViews",properties:{id:e,date:s,user:i.userSnippylyId,documentId:e,organizationId:a},data:{}}),this.checkAndTriggerNotification(i);return}let d=this.getDocumentViewsById(e);if(d){let a=new Date().toISOString().split("T")[0];d?.users[i.userSnippylyId]||(d.users[i.userSnippylyId]={}),d.users[i.userSnippylyId][a]={timestamp:this.timestamp},d?.day[a]||(d.day[a]={}),d.day[a][i.userSnippylyId]={timestamp:this.timestamp},d.metadata=this.docService.getBaseMetadata("documentViews",{clientDocumentId:t}),this.commonDbService.updateData({feature:"documentViews",properties:{id:e,date:a,user:i.userSnippylyId,documentId:e,organizationId:this.documentPaths?.organizationId??""},data:d})}else this.commonDbService.updateData({feature:"documentDayViews",properties:{id:e,date:s,user:i.userSnippylyId,documentId:e,organizationId:this.documentPaths?.organizationId??"",skipFirestore:!0},data:{timestamp:o}}),this.commonDbService.updateData({feature:"documentUsersViews",properties:{id:e,user:i.userSnippylyId,date:s,documentId:e,organizationId:this.documentPaths?.organizationId??"",skipFirestore:!0},data:{timestamp:o}}),this.commonDbService.updateData({feature:"documentMetadataViews",properties:{id:e,documentId:e,organizationId:this.documentPaths?.organizationId??"",skipFirestore:!0},data:this.docService.getBaseMetadata("documentViews",{clientDocumentId:t})}),this.docService.getDocumentMetadata$(e).pipe(B(a=>a!==null),te(1)).subscribe(()=>{let a={day:{[s]:{[i.userSnippylyId]:{timestamp:o}}},users:{[i.userSnippylyId]:{[s]:{timestamp:o}}},metadata:this.docService.getBaseMetadata("documentViews",{clientDocumentId:t})};this.commonDbService.updateData({feature:"documentViews",properties:{id:e,date:s,user:i.userSnippylyId,documentId:e,organizationId:this.documentPaths?.organizationId??"",skipRtdb:!0},data:a})});this.checkAndTriggerNotification(i)}}catch(i){this.loggingService.catch("Error in ViewsService setDocumentAsRead:",i)}})}checkAndTriggerNotification(e){try{this.getUniqueViewsByUser().pipe(te(1)).subscribe(t=>{if(Object.keys(t??{}).length===2){let n=this.docService.getDocumentMetadata();if(n?.creator?.email&&n?.creator?.email!==e.email){let i=[n.creator.email];this.updateNotificationsDatabase(He.FIRST_VIEWED,{documentViews:{emails:i}})}}})}catch(t){this.loggingService.catch("Error in checkAndTriggerNotification:",t)}}setLocationAsRead(n){return R(this,arguments,function*({documentId:e,clientDocumentId:t}){try{let i=this.authService.getUser(),o=this.docService.getLocation(),s=o?.locationId,d=o?.location;if(i&&s&&d){let a=new Date().getTime()+this.commonDbService.getOffset(),g=new Date().toISOString().split("T")[0],p=this.getLocationViewsById(s);if(p){let u=new Date().toISOString().split("T")[0];p?.users[i.userSnippylyId]||(p.users[i.userSnippylyId]={}),p.users[i.userSnippylyId][u]={timestamp:this.timestamp},p?.day[u]||(p.day[u]={}),p.day[u][i.userSnippylyId]={timestamp:this.timestamp},p.metadata=this.docService.getBaseMetadata("locationViews",{clientDocumentId:t}),this.commonDbService.updateData({feature:"location",data:p,properties:{id:s,documentId:e,organizationId:this.documentPaths?.organizationId??""}})}else{this.commonDbService.updateData({feature:"locationViews",data:d,properties:{id:s,documentId:e,organizationId:this.documentPaths?.organizationId??"",skipFirestore:!0}}),this.commonDbService.updateData({feature:"locationUsersViews",properties:{id:s,user:i.userSnippylyId,date:g,documentId:e,organizationId:this.documentPaths?.organizationId??"",skipFirestore:!0},data:{timestamp:a}}),this.commonDbService.updateData({feature:"locationDayViews",properties:{id:s,date:g,user:i.userSnippylyId,documentId:e,organizationId:this.documentPaths?.organizationId??"",skipFirestore:!0},data:{timestamp:a}}),this.commonDbService.updateData({feature:"locationMetadataViews",properties:{id:s,documentId:e,organizationId:this.documentPaths?.organizationId??"",skipFirestore:!0},data:this.docService.getBaseMetadata("locationViews",{clientDocumentId:t})});let u={day:{[g]:{[i.userSnippylyId]:{timestamp:a}}},users:{[i.userSnippylyId]:{[g]:{timestamp:a}}},metadata:this.docService.getBaseMetadata("locationViews",{clientDocumentId:t}),location:d};this.commonDbService.updateData({feature:"location",data:u,properties:{id:s,documentId:e,organizationId:this.documentPaths?.organizationId??"",skipRtdb:!0}})}}}catch(i){this.loggingService.catch("Error in ViewsService setLocationAsRead:",i)}})}updateNotificationsDatabase(e,t={}){try{let n=m({actionType:e,notificationSource:"documentViews"},t);this.notificationService?.updateNotificationDatabase(n)}catch(n){this.loggingService.catch("Error in CommentService updateNotificationsDatabase: ",n)}}get timestamp(){return this.commonDbService.getServerTimestamp()}};l.\u0275fac=function(t){return new(t||l)(k(Re),k(nt),k(et),k(tt),k(pe),k(ot),k(mt),k(C),k(gt),k(me))},l.\u0275prov=Oe({token:l,factory:l.\u0275fac,providedIn:"root"});let c=l;return c})();function Vt(c,l){if(c&1&&(G(0),v(1,"div",21)(2,"div",22),L(3,"snippyly-user-avatar",23),y(),v(4,"div",24)(5,"div",25),_(6),A(7,"translate"),y()(),v(8,"div",26),_(9),A(10,"timeAgo"),y()(),W()),c&2){let r=l.$implicit;w(3),D("user",r==null?null:r.user)("size",32),w(3),j(" ",U(7,4,(r==null||r.user==null?null:r.user.name)||(r==null||r.user==null?null:r.user.email))," "),w(3),j(" ",U(10,6,r==null?null:r.timestamp)," ")}}function It(c,l){if(c&1&&(v(0,"div",19),T(1,Vt,11,8,"ng-container",20),y()),c&2){let r=x(2).ngIf;w(),D("ngForOf",r.userViews)}}function Ct(c,l){if(c&1){let r=J();G(0),v(1,"div",4)(2,"button",5),M("click",function(){P(r);let t=x(2);return N(t.closeTrendDialog())}),H(),v(3,"svg",6),L(4,"path",7),y(),Y(),v(5,"span"),_(6),A(7,"translate"),y()()(),v(8,"div",8)(9,"div",9)(10,"div",10),_(11),y(),v(12,"div",11),H(),v(13,"svg",12),L(14,"path",13)(15,"path",14),y(),Y(),v(16,"span"),_(17),A(18,"translate"),y()()(),v(19,"div",15)(20,"div",16),_(21),y(),v(22,"div",17)(23,"span"),_(24),A(25,"translate"),y()()()(),T(26,It,2,1,"div",18),W()}if(c&2){let r=x().ngIf;w(6),K(U(7,6,"Go Back")),w(5),j(" ",r.totalUniqueViewsCount," "),w(6),K(U(18,8,"Total Views")),w(4),j(" ",r.todayViewsCount," "),w(3),K(U(25,10,"Views Today")),w(2),D("ngIf",r.userViews==null?null:r.userViews.length)}}function Dt(c,l){if(c&1&&(G(0),v(1,"div",21)(2,"div",22),L(3,"snippyly-user-avatar",23),y(),v(4,"div",24)(5,"div",25),_(6),A(7,"translate"),y(),v(8,"div",26),_(9),A(10,"timeAgo"),y()()(),W()),c&2){let r=l.$implicit;w(3),D("user",r==null?null:r.user)("size",32),w(3),j(" ",U(7,4,(r==null||r.user==null?null:r.user.name)||(r==null||r.user==null?null:r.user.email))," "),w(3),j(" ",U(10,6,r==null?null:r.timestamp)," ")}}function xt(c,l){if(c&1&&(v(0,"div",29)(1,"div",19),T(2,Dt,11,8,"ng-container",20),y()()),c&2){let r=x(2).ngIf;w(2),D("ngForOf",r.userViews)}}function _t(c,l){if(c&1&&(v(0,"div",27)(1,"div",9)(2,"div",10),_(3),y(),v(4,"div",11),H(),v(5,"svg",12),L(6,"path",13)(7,"path",14),y(),Y(),v(8,"span"),_(9),A(10,"translate"),y()()(),v(11,"div",15),_(12),A(13,"translate"),A(14,"translate"),A(15,"translate"),y()(),T(16,xt,3,1,"div",28)),c&2){let r=x().ngIf;w(3),j(" ",r.totalUniqueViewsCount," "),w(6),K(U(10,6,"Total Views")),w(3),Te(" ",r.todayViewsCount," ",r.todayViewsCount===1?U(13,8,"View"):U(14,10,"Views")," ",U(15,12,"Today")," "),w(4),D("ngIf",r.userViews==null?null:r.userViews.length)}}function Et(c,l){if(c&1){let r=J();G(0),v(1,"div",2),M("clickOutside",function(){P(r);let t=x();return N(t.closeTrendDialog())}),T(2,Ct,27,12,"ng-container",3)(3,_t,17,14,"ng-template",null,0,ce),y(),W()}if(c&2){let r=l.ngIf,e=ae(4);w(),se("bottom-sheet",r.bottomSheetMode),w(),D("ngIf",r.bottomSheetMode)("ngIfElse",e)}}var X=(()=>{let l=class l{constructor(e,t,n,i,o,s,d){this.contactService=e,this.loggingService=t,this.viewsService=n,this.themeService=i,this.elementRef=o,this.domService=s,this.bottomSheetData=d,this.close=new re,this.componentConfigSignal=ne({today:new Date().toISOString().split("T")[0],todayViews:{},todayViewsCount:0,totalUniqueViews:{},totalUniqueViewsCount:0,views:{},usersMap:{},userViews:[],bottomSheetMode:!1}),this.subscriptions=[];try{d&&(this.componentConfigSignal.update(a=>(a=h(m({},a),{bottomSheetMode:!0}),a)),this.clientLocationId=d.clientLocationId,this.closeBottomSheetFn=d.closeBottomSheetFn),this.subscriptions.push(this.contactService.getUsersMap$().subscribe(a=>{this.componentConfigSignal.update(g=>(g=h(m({},g),{usersMap:a||{}}),g)),this.setLatestViewsByUsers()},a=>{this.loggingService.catch("Error in ViewAnalyticsDialogComponent getUsersMap$ subscription: ",a)})),this.subscriptions.push(this.themeService.getDarkMode$().subscribe(a=>{a?this.elementRef.nativeElement.setAttribute("dark",""):this.elementRef.nativeElement.removeAttribute("dark")}))}catch(a){this.loggingService.catch("Error in ViewAnalyticsDialogComponent constructor: ",a)}}ngOnInit(){this.getDocumentViews()}ngAfterViewInit(){try{this.subscriptions.push(this.domService.subscribeInjectCustomCss(this.elementRef))}catch(e){this.loggingService.catch("Error in ViewAnalyticsDialogComponent ngAfterViewInit: ",e)}}trackByUserIdAndTimestamp(e,t){return`${t?.user?.userSnippylyId}-${t.timestamp}`}getDocumentViews(){try{this.loggingService.log("%c[WB] Calling FUNCTION: getDocumentViews","color: green;"),this.uniqueViewsByUserSubscription&&(this.componentConfigSignal.update(e=>(e=h(m({},e),{totalUniqueViews:{},totalUniqueViewsCount:0}),e)),this.uniqueViewsByUserSubscription.unsubscribe()),this.uniqueViewsByDateSubscription&&(this.componentConfigSignal.update(e=>(e=h(m({},e),{todayViews:{},todayViewsCount:0}),e)),this.uniqueViewsByDateSubscription.unsubscribe()),this.uniqueViewsByUserSubscription=this.viewsService.getUniqueViewsByUser(this.clientLocationId).subscribe(e=>{this.componentConfigSignal.update(t=>(t=h(m({},t),{totalUniqueViews:e||{},totalUniqueViewsCount:Object.keys(e||{})?.length||0}),t)),this.setLatestViewsByUsers()},e=>{this.loggingService.catch("Error in ViewAnalyticsDialogComponent getUniqueViewsByUser subscription: ",e)}),this.uniqueViewsByDateSubscription=this.viewsService.getUniqueViewsByDate(this.clientLocationId).subscribe(e=>{this.componentConfigSignal.update(t=>(t=m({},t),t.todayViews=e&&e[t.today]?e[t.today]:{},t.todayViewsCount=Object.keys(t.todayViews||{})?.length||0,t)),this.setLatestViewsByUsers()},e=>{this.loggingService.catch("Error in ViewAnalyticsDialogComponent getUniqueViewsByDate subscription: ",e)})}catch(e){this.loggingService.catch("Error in ViewAnalyticsDialogComponent getDocumentViews: ",e)}}setLatestViewsByUsers(){try{this.loggingService.log("%c[WB] Calling FUNCTION: setLatestViewsByUsers","color: green;"),Object.keys(this.componentConfigSignal().todayViews||{}).forEach(e=>{let t=this.componentConfigSignal().usersMap[e],n=this.componentConfigSignal().todayViews[e]?.timestamp;t&&n&&(this.componentConfigSignal().userViews.find(o=>o.user.userSnippylyId===e)||this.componentConfigSignal.update(o=>(o=h(m({},o),{userViews:[...o.userViews,{user:t,timestamp:n}]}),o)))}),this.componentConfigSignal.update(e=>(e=m({},e),e.userViews.sort((t,n)=>n.timestamp-t.timestamp),e.userViews=e.userViews.slice(0,3),e))}catch(e){this.loggingService.catch("Error in ViewAnalyticsDialogComponent setLatestViewsByUsers: ",e)}}closeTrendDialog(){try{this.close.emit(),this.closeBottomSheetFn&&this.closeBottomSheetFn?.()}catch(e){this.loggingService.catch("Error in ViewAnalyticsDialogComponent onClose: ",e)}}ngOnDestroy(){try{this.subscriptions.forEach(e=>{e.unsubscribe()}),this.uniqueViewsByDateSubscription?.unsubscribe(),this.uniqueViewsByUserSubscription?.unsubscribe()}catch(e){this.loggingService.catch("Error in ViewAnalyticsDialogComponent ngOnDestroy: ",e)}}};l.\u0275fac=function(t){return new(t||l)(I(rt),I(C),I(F),I(at),I(oe),I(ue),I(We,8))},l.\u0275cmp=Q({type:l,selectors:[["velt-view-analytics-dialog"]],inputs:{clientLocationId:"clientLocationId"},outputs:{close:"close"},standalone:!1,decls:1,vars:1,consts:[["defaultDialogRef",""],[4,"ngIf"],["snippylyClickOutside","",1,"v-view-analytics-dialog-container",3,"clickOutside"],[4,"ngIf","ngIfElse"],[1,"v-back-btn-container"],[1,"v-back-btn",3,"click"],["width","16","height","16","viewBox","0 0 16 16","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M9.99988 4L5.99988 8L9.99988 12","stroke","currentColor","stroke-width","1.33333","stroke-linecap","round","stroke-linejoin","round"],[1,"v-view-analytics-count-container"],[1,"v-total-views-container"],[1,"v-total-views-count"],[1,"v-total-views-text"],["width","18","height","18","viewBox","0 0 18 18","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M7.5 9C7.5 9.39782 7.65804 9.77936 7.93934 10.0607C8.22064 10.342 8.60218 10.5 9 10.5C9.39782 10.5 9.77936 10.342 10.0607 10.0607C10.342 9.77936 10.5 9.39782 10.5 9C10.5 8.60218 10.342 8.22064 10.0607 7.93934C9.77936 7.65804 9.39782 7.5 9 7.5C8.60218 7.5 8.22064 7.65804 7.93934 7.93934C7.65804 8.22064 7.5 8.60218 7.5 9Z","stroke","#625DF5","stroke-width","1.25","stroke-linecap","round","stroke-linejoin","round"],["d","M15.75 9C13.95 12 11.7 13.5 9 13.5C6.3 13.5 4.05 12 2.25 9C4.05 6 6.3 4.5 9 4.5C11.7 4.5 13.95 6 15.75 9Z","stroke","#625DF5","stroke-width","1.25","stroke-linecap","round","stroke-linejoin","round"],[1,"v-today-views-container"],[1,"v-today-views-count"],[1,"v-today-views-text"],["class","v-users-container",4,"ngIf"],[1,"v-users-container"],[4,"ngFor","ngForOf"],[1,"v-user"],[1,"v-user-image"],[3,"user","size"],[1,"v-user-view-details"],[1,"v-user-name"],[1,"v-user-view-time"],[1,"v-document-viewer-tread-left"],["class","v-document-viewer-tread-right",4,"ngIf"],[1,"v-document-viewer-tread-right"]],template:function(t,n){t&1&&T(0,Et,5,4,"ng-container",1),t&2&&D("ngIf",n.componentConfigSignal())},dependencies:[ze,le,ct,lt,st,pt],styles:[`.v-view-analytics-dialog-container{border-radius:var(--legacy-velt-view-analytics-dialog-border-radius);border:var(--legacy-velt-view-analytics-dialog-border);background:var(--legacy-velt-view-analytics-dialog-bg-color);box-shadow:var(--legacy-velt-view-analytics-dialog-box-shadow);padding:var(--legacy-velt-view-analytics-dialog-padding);display:flex;gap:16px}.v-view-analytics-dialog-container .v-document-viewer-tread-left{display:flex;flex-direction:column;gap:4px}.v-view-analytics-dialog-container .v-document-viewer-tread-left .v-total-views-container{width:140px;height:110px;flex-shrink:0;border-radius:8px;background:var(--legacy-velt-view-analytics-dialog-views-container-bg-color);box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px}.v-view-analytics-dialog-container .v-document-viewer-tread-left .v-total-views-container .v-total-views-count{color:var(--legacy-velt-view-analytics-dialog-total-views-count-color);font-size:32px;font-style:normal;font-weight:600;line-height:100%}.v-view-analytics-dialog-container .v-document-viewer-tread-left .v-total-views-container .v-total-views-text{color:var(--legacy-velt-view-analytics-dialog-total-views-text-color);font-size:12px;font-style:normal;font-weight:500;line-height:100%;text-transform:uppercase;display:flex;gap:4px;align-items:center}.v-view-analytics-dialog-container .v-document-viewer-tread-left .v-today-views-container{display:flex;width:140px;padding:8px 4px;justify-content:center;align-items:center;gap:4px;border-radius:8px;background:var(--legacy-velt-view-analytics-dialog-views-container-bg-color);box-sizing:border-box;color:var(--legacy-velt-view-analytics-dialog-today-views-text-color);font-size:12px;font-style:normal;font-weight:500;line-height:100%;text-transform:uppercase}.v-view-analytics-dialog-container .v-document-viewer-tread-right{padding:8px 0}.v-view-analytics-dialog-container .v-document-viewer-tread-right .v-users-container{display:inline-flex;flex-direction:column;align-items:flex-start;gap:16px;margin-right:16px}.v-view-analytics-dialog-container .v-document-viewer-tread-right .v-users-container .v-user{display:flex;align-items:center;gap:12px}.v-view-analytics-dialog-container .v-document-viewer-tread-right .v-users-container .v-user snippyly-user-avatar{display:flex}.v-view-analytics-dialog-container .v-document-viewer-tread-right .v-users-container .v-user .v-user-view-details{display:flex;flex-direction:column;gap:8px}.v-view-analytics-dialog-container .v-document-viewer-tread-right .v-users-container .v-user .v-user-view-details .v-user-name{color:var(--legacy-velt-view-analytics-dialog-user-name-color);font-size:12px;font-style:normal;font-weight:500;line-height:100%}.v-view-analytics-dialog-container .v-document-viewer-tread-right .v-users-container .v-user .v-user-view-details .v-user-view-time{color:var(--legacy-velt-view-analytics-dialog-user-timestamp-color);font-size:10px;font-style:normal;font-weight:500;line-height:100%;text-transform:uppercase}.v-view-analytics-dialog-container.bottom-sheet{display:flex;flex-direction:column;border-bottom-left-radius:0;border-bottom-right-radius:0}.v-view-analytics-dialog-container.bottom-sheet .v-back-btn-container{display:flex;padding:8px 8px 0}.v-view-analytics-dialog-container.bottom-sheet .v-back-btn-container .v-back-btn{background:transparent;border:0;outline:0;display:flex;align-items:center;gap:8px;color:var(--legacy-velt-view-analytics-dialog-back-btn-color);cursor:pointer;font-size:16px;font-style:normal;font-weight:400;line-height:normal}.v-view-analytics-dialog-container.bottom-sheet .v-view-analytics-count-container{display:flex;flex:1;gap:10px}.v-view-analytics-dialog-container.bottom-sheet .v-view-analytics-count-container .v-total-views-container{display:flex;padding:25px 20px;flex-direction:column;justify-content:center;align-items:center;gap:10px;flex:1 0 0;border-radius:8px;background:var(--legacy-velt-view-analytics-dialog-views-container-bg-color)}.v-view-analytics-dialog-container.bottom-sheet .v-view-analytics-count-container .v-total-views-container .v-total-views-count{color:var(--legacy-velt-view-analytics-dialog-total-views-count-color);font-size:32px;font-style:normal;font-weight:600;line-height:100%}.v-view-analytics-dialog-container.bottom-sheet .v-view-analytics-count-container .v-total-views-container .v-total-views-text{color:var(--legacy-velt-view-analytics-dialog-total-views-text-color);font-size:12px;font-style:normal;font-weight:500;line-height:100%;text-transform:uppercase;display:flex;gap:4px;align-items:center}.v-view-analytics-dialog-container.bottom-sheet .v-view-analytics-count-container .v-today-views-container{display:flex;padding:25px 20px;flex-direction:column;justify-content:center;align-items:center;gap:10px;flex:1 0 0;border-radius:8px;background:var(--legacy-velt-view-analytics-dialog-views-container-bg-color)}.v-view-analytics-dialog-container.bottom-sheet .v-view-analytics-count-container .v-today-views-container .v-today-views-count{color:var(--legacy-velt-view-analytics-dialog-today-views-text-color);font-size:32px;font-style:normal;font-weight:600;line-height:100%}.v-view-analytics-dialog-container.bottom-sheet .v-view-analytics-count-container .v-today-views-container .v-today-views-text{color:var(--legacy-velt-view-analytics-dialog-today-views-text-color);font-size:12px;font-style:normal;font-weight:500;line-height:100%;text-transform:uppercase;display:flex;gap:4px;align-items:center}.v-view-analytics-dialog-container.bottom-sheet .v-users-container{display:inline-flex;flex-direction:column;align-items:flex-start;gap:16px;margin-right:16px}.v-view-analytics-dialog-container.bottom-sheet .v-users-container .v-user{display:flex;align-items:center;gap:12px;width:100%}.v-view-analytics-dialog-container.bottom-sheet .v-users-container .v-user snippyly-user-avatar{display:flex}.v-view-analytics-dialog-container.bottom-sheet .v-users-container .v-user .v-user-view-details{display:flex;flex-direction:column;gap:8px;flex:1}.v-view-analytics-dialog-container.bottom-sheet .v-users-container .v-user .v-user-view-details .v-user-name{color:var(--legacy-velt-view-analytics-dialog-user-name-color);font-size:12px;font-style:normal;font-weight:500;line-height:100%}.v-view-analytics-dialog-container.bottom-sheet .v-users-container .v-user .v-user-view-time{color:var(--legacy-velt-view-analytics-dialog-user-timestamp-color);font-size:10px;font-style:normal;font-weight:500;line-height:100%;text-transform:uppercase}
|
|
1
|
+
import{t as dt}from"./chunk-2MJAK5A5.js";import"./chunk-2GMFNHOT.js";import"./chunk-TWY3X34A.js";import{a as We,c as Je,d as Ke}from"./chunk-SA7JZYBN.js";import{a as gt}from"./chunk-N4LOLZ2Y.js";import"./chunk-5ZT4SI4Q.js";import{a as ct}from"./chunk-WR5LVHSG.js";import{a as pt}from"./chunk-5N6FRMDY.js";import"./chunk-4R5WJWJ4.js";import"./chunk-4WR2GOXI.js";import{b as st,d as lt}from"./chunk-WCQZBPSI.js";import{a as mt}from"./chunk-4IZOBQPA.js";import{a as je}from"./chunk-65JXF5ID.js";import{A as Pe,Fa as rt,G as Ne,H as Le,Ha as at,I as Me}from"./chunk-FUFU46AG.js";import{a as ut}from"./chunk-DXZHCUKV.js";import{D as ot,E as pe,j as ge}from"./chunk-57BIEQT2.js";import{Ak as nt,Bb as x,Bj as Se,E as B,G as De,Gd as Re,Gj as z,Ha as w,Hc as ze,He as E,Ia as re,Ic as le,Ii as ye,Jj as tt,K as te,Kb as ae,Li as Ze,M as q,Mb as se,O as xe,Pb as _,Qb as K,Ra as I,Rb as j,Rc as Fe,Rj as it,Tb as Te,U as _e,V as S,Va as Ue,Vd as qe,Wa as Q,Wd as Ge,Xa as ke,Y as Ee,Zf as we,_ as ie,_i as fe,a as m,ab as T,b as h,ba as Oe,ca as Be,cc as $e,di as Qe,ea as k,fi as de,g as R,ja as P,ka as N,l as $,la as H,lj as Xe,ma as Y,mc as A,nb as D,nc as U,ob as v,oj as me,pb as y,qb as L,qe as He,qj as C,r as b,rc as ce,rj as et,sa as ne,t as Ce,ub as G,v as f,vb as W,w as Z,wa as Ae,xb as J,ya as oe,yg as Ye,zb as M,zk as ue}from"./chunk-3BDGQ5BH.js";function vt(c){return c?{field:"metadata.veltFolderId",value:c}:null}function ht(c,l){if(!l||!c||typeof c!="object")return c;let r={};for(let e of Object.keys(c)){let t=c[e]?.metadata;(!(t&&typeof t=="object"&&Object.prototype.hasOwnProperty.call(t,"veltFolderId"))||t.veltFolderId===l.value)&&(r[e]=c[e])}return r}var F=(()=>{let l=class l{constructor(e,t,n,i,o,s,d,a,g,p){this.afAuth=e,this.authService=t,this.configService=n,this.databaseService=i,this.docService=o,this.commonDbService=s,this.iamService=d,this.loggingService=a,this.userPermissionService=g,this.serviceBook=p,this.documentPaths=null,this.views$=new $({}),this.commentViews$=new $({}),this.documentViews$=new $({}),this.locationViews$=new $({}),this.commentViewsByOrganizationIdAndDocumentId$=new $({}),this.documentViewsByOrganizationIdAndDocumentId$=new $({}),this.locationViewsByOrganizationIdAndLocationId$=new $({}),this.documentViewsEnabled$=new $(!1),this.documentViewsSetByDocumentId={},this.notificationService=null,this.loggingService.log("%c[WB] Creating CLASS: ViewsService","color: blue;");try{this.serviceBook.observe(fe).subscribe(u=>{this.commentService=u??void 0}),this.serviceBook.observe(Ze).subscribe(u=>{this.notificationService=u??null}),this.viewsDbReadyGate$().pipe(te(1)).subscribe(()=>{this.subscribeViewsData().subscribe(),this.getNotificationFeatureViews$().subscribe(u=>{this.notificationService?.setNotificationViews(u)}),this.authService.getUser$().pipe(B(u=>!!u),S(u=>this.documentViewsEnabled$.pipe(B(V=>V),f(()=>u))),S(u=>this.docService.getDocumentPaths$().pipe(_e(null),xe(),f(([V,O])=>(V?.documentId!==O?.documentId&&this.views$.next({}),O)),f(V=>(this.documentPaths=V,this.setDocumentAsRead({documentId:this.documentPaths?.documentId??"",clientDocumentId:this.documentPaths?.clientDocumentId??""}),{_user:u,_documentPaths:V})),S(V=>this.docService.getDocumentIds$().pipe(S(O=>(O?.length&&(O.find(ee=>ee.documentId===this.documentPaths?.documentId)||O.push({documentId:this.documentPaths?.documentId??"",clientDocumentId:this.documentPaths?.clientDocumentId??""}),O.forEach(ee=>{this.setDocumentAsRead({documentId:ee.documentId,clientDocumentId:ee.clientDocumentId})})),b(V))))))),S(u=>this.docService.getDocumentMetadata$().pipe(B(V=>!!V),f(V=>h(m({},u),{_documentMetadata:V}))))).subscribe(),this.authService.getUser$().pipe(B(u=>!!u),S(u=>this.documentViewsEnabled$.pipe(B(V=>V),f(()=>u))),S(u=>this.docService.getLocation$().pipe(B(V=>!!V))),S(u=>this.docService.getDocumentIds$().pipe(S(V=>(V.find(O=>O.documentId===this.documentPaths?.documentId)||V.push({documentId:this.documentPaths?.documentId??"",clientDocumentId:this.documentPaths?.clientDocumentId??""}),V.forEach(O=>{this.setLocationAsRead({documentId:O.documentId,clientDocumentId:O.clientDocumentId})}),b(u)))))).subscribe()},u=>{this.loggingService.catch("Error in ViewsService getDb subscription: ",u)})}catch(u){this.loggingService.catch("Error in ViewsService constructor: ",u)}}clearCache(){this.loggingService.log("%c[WB] Calling FUNCTION: clearCache in ViewsService","color: green;");try{this.documentPaths=null,this.documentViews$.next({}),this.views$.next({}),this.commentViews$.next({}),this.locationViews$.next({}),this.commentViewsByOrganizationIdAndDocumentId$.next({}),this.documentViewsByOrganizationIdAndDocumentId$.next({}),this.locationViewsByOrganizationIdAndLocationId$.next({})}catch(e){this.loggingService.catch("Error in ViewsService clearCache: ",e)}}subscribeViewsData(e,t){this.loggingService.log("%c[WB] Calling FUNCTION: subscribeViewsData","color: green;");let n,i;try{if(e&&(i=we(e)),t&&typeof t=="object"){let o=Ye(t);n=we(JSON.stringify(o))}}catch(o){this.loggingService.catch("Error in ViewsService subscribeViewsData: ",o)}return this.authService.getAuthState$().pipe(B(o=>!!o),S(o=>this.isFeatureAllowed({firebaseUser:o})),S(o=>o.featureAllowed?this.iamService.isUserAllowed$().pipe(f(s=>(o.featureAllowed=s,o))):b(o)),S(o=>o.featureAllowed?b(o).pipe(S(s=>this.docService.getDocumentPaths$().pipe(f(d=>(this.documentPaths=d,s.documentPaths=d,s)))),S(s=>i?this.getDataFromDocumentIds([i]):this.docService.getDocumentIds$().pipe(S(d=>{let a=d?.length>0?d.map(g=>g.documentId):[this.documentPaths?.documentId??""];return this.getDataFromDocumentIds(a)})))):b([])))}isFeatureAllowed(e){return this.configService.getConfig$().pipe(B(t=>!!t),f(t=>h(m({},e),{config:t})),S(t=>this.authService.getUser$().pipe(f(n=>h(m({},t),{user:n})))),S(t=>t.user?b(h(m({},t),{featureAllowed:!0})):b(h(m({},t),{featureAllowed:!1}))),q((t,n)=>t?.featureAllowed===n?.featureAllowed))}getDataFromDocumentIds(e,t){return this.getDataFromDocuments({documentIds:e,filters:t})}getCommentViewsById(e){try{return this.commentViews$.value?.[e]?this.commentViews$.value?.[e]:void 0}catch(t){this.loggingService.catch("Error in ViewsService getCommentViewsById: ",t);return}}getDocumentViewsById(e){try{return this.documentViews$.value?.[e]}catch(t){this.loggingService.catch("Error in ViewsService getDocumentViewsById: ",t);return}}getLocationViewsById(e){try{return this.locationViews$.value?.[e]}catch(t){this.loggingService.catch("Error in ViewsService getLocationViewsById: ",t);return}}getDataFromDocuments(e){if(this.configService?.getApiKey()){let{documentIds:t,filters:n}=e;return t?.some(i=>!i)||!this.documentPaths?b([]):this.documentViewsEnabled$.pipe(S(i=>i?Z([this.getCommentViewsDataFromDocuments(),this.getDocumentViewsDataFromDocuments(t),this.getLocationViewsDataFromDocuments(t)]):Z([this.getCommentViewsDataFromDocuments()])))}else return b(null)}getCommentViews(e){try{let t={};Object.entries(e??{}).forEach(([n,i])=>{let o=i.metadata?.documentId,s=i.views;!o||!s||(t[o]||(t[o]={}),t[o][i.annotationId]=s)}),Object.entries(t??{}).forEach(([n,i])=>{this.setCommentViewsByOrganizationIdAndDocumentId({organizationId:this.documentPaths?.organizationId,documentId:n,commentViews:i})})}catch(t){this.loggingService.catch("Error in ViewsService getCommentViews: ",t)}}getCommentViewsDataFromDocuments(){try{return this.serviceBook.observe(fe).pipe(q(),S(e=>{if(!e)return b([]);try{return e.getAllCommentAnnotations({detectGhostComments:!0,addFilterCommentsOnDomCheck:!0,fromCommentSidebar:!0,skipPositionCalculation:!0,analytics:{enabled:!0,properties:{source:"internal",sourceId:"commentsContainer"}}}).pipe(B(t=>!!t),Ee(t=>{this.getCommentViews(t)}),De(t=>(this.loggingService.catch("Error in ViewsService getCommentViewsDataFromDocuments: ",t),b([]))))}catch(t){return this.loggingService.catch("Error in ViewsService getCommentViewsDataFromDocuments: ",t),b([])}}))}catch(e){return this.loggingService.catch("Error in ViewsService getCommentViewsDataFromDocuments: ",e),b([])}}viewsDbReadyGate$(){return it({isPortableFeedActive:()=>this.commonDbService?.usesPortableChannelFeed(ge),firebaseDb$:()=>this.databaseService.getDb(),onError:(e,t)=>this.loggingService.catch(`Error in ViewsService viewsDbReadyGate$ ${e}: `,t)})}getDocumentViewsDataFromDocuments(e){let t=this.docService.getDocumentPaths()?.veltFolderId,n=vt(t),i=b([]),o={useCollectionGroup:!0,isCollection:!0,useQuery:!0};if(this.commonDbService.shouldUseFirestore()||(o.documentId=e?.length?e[0]:void 0,o.organizationId=this.documentPaths?.organizationId),this.commonDbService.usesPortableChannelFeed(ge))i=this.commonDbService.dbListener({feature:"allDocumentViews",properties:h(m({},o),{organizationId:this.documentPaths?.organizationId,documentIds:e})}).pipe(ie(),f(s=>de(JSON.parse(JSON.stringify([s])))),f(s=>n&&s?.data?h(m({},s),{data:ht(s.data,n)}):s));else{let s=[];for(let d=0;d<(e?.length??0);d+=E.LISTENER_BATCH_SIZE)s.push(e?.slice(d,d+E.LISTENER_BATCH_SIZE)??[]);i=Z(s.map(d=>this.commonDbService.dbListener({feature:"allDocumentViews",properties:h(m({},o),{firestoreQuery:[Se(z("metadata.apiKey","==",this.configService?.getApiKey()),z("metadata.documentId","in",d),z("metadata.organizationId","==",this.documentPaths?.organizationId),...n?[z(n.field,"==",n.value)]:[])]})}).pipe(ie()))).pipe(f(d=>de(d)))}return i.pipe(f(s=>({data:s?.data,operation:s?.operation})),f(({data:s,operation:d})=>{let a={};return e?(Object.entries(s??{}).forEach(([g,p])=>{let u=p.metadata?.documentId;u&&(a[u]||(a[u]={}),a[u][g]=p)}),{data:s,documentMap:a,operation:d}):{data:s,documentMap:a,operation:d}}),f(({data:s,documentMap:d,operation:a})=>{if(a?.type==="removed"){if(a?.ids?.length){let g=this.documentViews$.value;a?.ids?.forEach(p=>{delete g?.[p]}),this.documentViews$.next(g)}}else Object.entries(d??{}).forEach(([g,p])=>{this.setDocumentViewsByOrganizationIdAndDocumentId({organizationId:this.documentPaths?.organizationId,documentId:g,documentViews:p})})}))}getLocationViewsDataFromDocuments(e){let t=this.docService.getDocumentPaths()?.veltFolderId,n=b([]),i={useCollectionGroup:!0,isCollection:!0,useQuery:!0};this.commonDbService.shouldUseFirestore()||(i.documentId=e?.length?e[0]:void 0,i.organizationId=this.documentPaths?.organizationId);let o=[];for(let s=0;s<(e?.length??0);s+=E.LISTENER_BATCH_SIZE)o.push(e?.slice(s,s+E.LISTENER_BATCH_SIZE)??[]);return n=Z(o.map(s=>this.commonDbService.dbListener({feature:"allLocationViews",properties:h(m({},i),{firestoreQuery:[Se(z("metadata.apiKey","==",this.configService?.getApiKey()),z("metadata.documentId","in",s),z("metadata.organizationId","==",this.documentPaths?.organizationId),...t?[z("metadata.veltFolderId","==",t)]:[])]})}).pipe(ie()))).pipe(f(s=>de(s))),n.pipe(f(s=>({data:s?.data,operation:s?.operation})),f(({data:s,operation:d})=>{let a={};return e?(Object.entries(s??{}).forEach(([g,p])=>{let u=p.metadata?.documentId;u&&(a[u]||(a[u]={}),a[u][g]=p)}),{data:s,documentMap:a,operation:d}):{data:s,documentMap:a,operation:d}}),f(({data:s,documentMap:d,operation:a})=>{if(a?.type==="removed"){if(a?.ids?.length){let g=this.locationViews$.value;a?.ids?.forEach(p=>{delete g?.[p]}),this.locationViews$.next(g)}}else Object.entries(d??{}).forEach(([g,p])=>{this.setLocationViewsByOrganizationIdAndDocumentId({organizationId:this.documentPaths?.organizationId,documentId:g,locationViews:p})})}))}setViewsData(e){try{this.views$.next(m(m({},this.views$.getValue()),e||{}))}catch(t){this.loggingService.catch("Error in ViewsService setViewsData:",t)}}setCommentViewsByOrganizationIdAndDocumentId({organizationId:e,documentId:t,commentViews:n,queryHash:i}){try{if(n||(n={}),t){e||(e=E.NO_ORGANIZATION_ID),i||(i=E.DEFAULT_QUERY_HASH);let o=m(m({},this.commentViews$.value),n);this.commentViews$.next(o),this.commentViewsByOrganizationIdAndDocumentId$.next(h(m({},this.commentViewsByOrganizationIdAndDocumentId$.value),{[e]:h(m({},this.commentViewsByOrganizationIdAndDocumentId$.value[e]),{[t]:h(m({},this.commentViewsByOrganizationIdAndDocumentId$.value[e]?.[t]),{[i]:n})})}))}}catch(o){this.loggingService.catch("Error in CommentService setCommentAnnotationsByOrganizationIdAndDocumentId:",o)}}setDocumentViewsByOrganizationIdAndDocumentId({organizationId:e,documentId:t,documentViews:n,queryHash:i}){try{if(n||(n={}),t){e||(e=E.NO_ORGANIZATION_ID),i||(i=E.DEFAULT_QUERY_HASH);let o=m(m({},this.documentViews$.value),n);this.documentViews$.next(o),this.documentViewsByOrganizationIdAndDocumentId$.next(h(m({},this.documentViewsByOrganizationIdAndDocumentId$.value),{[e]:h(m({},this.documentViewsByOrganizationIdAndDocumentId$.value[e]),{[t]:h(m({},this.documentViewsByOrganizationIdAndDocumentId$.value[e]?.[t]),{[i]:n})})}))}}catch(o){this.loggingService.catch("Error in CommentService setCommentAnnotationsByOrganizationIdAndDocumentId:",o)}}setLocationViewsByOrganizationIdAndDocumentId({organizationId:e,documentId:t,locationViews:n,queryHash:i}){try{if(n||(n={}),t){e||(e=E.NO_ORGANIZATION_ID),i||(i=E.DEFAULT_QUERY_HASH);let o=m(m({},this.locationViews$.value),n);this.locationViews$.next(o),this.locationViewsByOrganizationIdAndLocationId$.next(h(m({},this.locationViewsByOrganizationIdAndLocationId$.value),{[e]:h(m({},this.locationViewsByOrganizationIdAndLocationId$.value[e]),{[t]:h(m({},this.locationViewsByOrganizationIdAndLocationId$.value[e]?.[t]),{[i]:n})})}))}}catch(o){this.loggingService.catch("Error in CommentService setCommentAnnotationsByOrganizationIdAndDocumentId:",o)}}getCommentFeatureViews$(){return this.commentViews$.pipe(q((e,t)=>JSON.stringify(e||{})===JSON.stringify(t||{})))}setCommentAnnotationAsRead(e){return R(this,null,function*(){try{if(this.authService.getUser()&&e?.annotationId){if(e.annotationId.startsWith("TEMP_COMPOSER_"))return;this.updateCommentAnnotationViews(e);let n=e?.metadata?.organizationId??this.documentPaths?.organizationId??"",i=e?.metadata?.documentId??this.documentPaths?.documentId??"";if(e?.isDraft)return;yield this.commonDbService.setData({feature:"comment",properties:{id:e.annotationId,documentId:i,organizationId:n,metadata:{apiKey:this.configService.getApiKey(),organizationId:n,veltFolderId:e?.metadata?.veltFolderId,documentId:i}},data:JSON.parse(JSON.stringify(e))})}}catch(t){this.loggingService.catch("Error in ViewsService setCommentAnnotationAsRead:",t)}})}setCommentAnnotationAsUnread(e){return R(this,null,function*(){try{if(this.authService.getUser()&&e?.annotationId){if(e.annotationId.startsWith("TEMP_COMPOSER_"))return;this.removeCommentAnnotationViews(e);let n=e?.metadata?.organizationId??this.documentPaths?.organizationId??"",i=e?.metadata?.documentId??this.documentPaths?.documentId??"";if(e?.isDraft)return;yield this.commonDbService.setData({feature:"comment",properties:{id:e.annotationId,documentId:i,organizationId:n,metadata:{apiKey:this.configService.getApiKey(),organizationId:n,veltFolderId:e?.metadata?.veltFolderId,documentId:i}},data:JSON.parse(JSON.stringify(e))})}}catch(t){this.loggingService.catch("Error in ViewsService setCommentAnnotationAsRead:",t)}})}updateCommentAnnotationViews(e){try{let t=this.authService.getUser(),n={views:{},comments:{}};if(t){let i={},o=e?.views?.comments||{},s=new Date().getTime()+this.commonDbService.getOffset();e.comments?.forEach(a=>{o[a.commentId]||(o[a.commentId]={views:{}}),o[a.commentId].views||(o[a.commentId].views={}),o[a.commentId].views[t.userSnippylyId]||(o[a.commentId].views[t.userSnippylyId]={timestamp:s})});let d=new Set(e.comments?.map(a=>a.commentId+""));if(Object.keys(o??{}).forEach(a=>{d.has(a)||delete o[a]}),e.comments?.length){let a=o[e.comments[0].commentId]?.views||{},g=Object.keys(a??{}).filter(p=>e.comments?.every(u=>o[u.commentId]?.views?.[p]));g.forEach(p=>{i[p]={timestamp:a[p].timestamp}}),e.viewedByUserIds=g}n.views=i,n.comments=o,e.views=n}return n}catch(t){return this.loggingService.catch("Error in ViewsService updateCommentAnnotationViews:",t),{views:{},comments:{}}}}removeCommentAnnotationViews(e){try{let t=this.authService.getUser(),n={views:{},comments:{}};if(t){let i={},o=e?.views?.comments||{};e.comments?.forEach(d=>{o[d.commentId]?.views?.[t.userSnippylyId]&&delete o[d.commentId].views[t.userSnippylyId]});let s=new Set(e.comments?.map(d=>d.commentId+""));if(Object.keys(o??{}).forEach(d=>{s.has(d)||delete o[d]}),e.comments?.length){let d=o[e.comments[0].commentId]?.views||{},a=Object.keys(d??{}).filter(g=>e.comments?.every(p=>o[p.commentId]?.views?.[g]));a.forEach(g=>{i[g]={timestamp:d[g].timestamp}}),e.viewedByUserIds=a}else e.viewedByUserIds=[];n.views=i,n.comments=o,e.views=n}return n}catch(t){return this.loggingService.catch("Error in ViewsService removeCommentAnnotationViews:",t),{views:{},comments:{}}}}getNotificationFeatureViews$(){return this.views$.pipe(q((e,t)=>JSON.stringify(e?.notification||{})===JSON.stringify(t?.notification||{})))}setNotificationsAsRead(e){try{let t=this.authService.getUser();if(t){let n=new Date().getTime()+this.commonDbService.getOffset();e.forEach(i=>{this.commonDbService.updateData({feature:"notificationViewsTimestamp",properties:{id:i,user:t.userSnippylyId,documentId:this.documentPaths?.documentId??"",organizationId:this.documentPaths?.organizationId??""},data:{timestamp:n}})})}}catch(t){this.loggingService.catch("Error in ViewsService setNotificationAsRead:",t)}}getDocumentViews$(){return this.views$.pipe(q((e,t)=>JSON.stringify(e?.documentViews||{})===JSON.stringify(t?.documentViews||{})))}getUniqueViewsByUser(e){try{return this.enableDocumentViews(),this.docService.getDocumentPaths$().pipe(S(t=>(this.documentPaths=t,e?this.locationViews$.pipe(f(n=>{let i=Object.keys(n||{}).find(o=>n?.[o]?.location?.id===e);return i?n?.[i]?.users||{}:{}})):this.documentViews$.pipe(f(n=>{let i=this.documentPaths?.documentId;return i?n?.[i]?.users||{}:{}})))),q(Qe))}catch(t){return this.loggingService.catch("Error in ViewsService getUniqueViewsByUser:",t),b({})}}getUniqueViewsByDate(e){try{return this.enableDocumentViews(),this.docService.getDocumentPaths$().pipe(S(t=>(this.documentPaths=t,e?this.locationViews$.pipe(f(n=>{let i=Object.keys(n||{}).find(o=>n?.[o]?.location?.id===e);return i?n?.[i]?.day||{}:{}})):this.documentViews$.pipe(f(n=>{let i=this.documentPaths?.documentId;return i?n?.[i]?.day||{}:{}})))))}catch(t){return this.loggingService.catch("Error in ViewsService getUniqueViewsByDate:",t),b({})}}enableDocumentViews(){try{if(this.documentViewsEnabled$.value===!0)return;this.documentViewsEnabled$.next(!0)}catch(e){this.loggingService.catch("Error in ViewsService enableDocumentViews:",e)}}disableDocumentViews(){try{if(this.documentViewsEnabled$.value===!1)return;this.documentViewsEnabled$.next(!1)}catch(e){this.loggingService.catch("Error in ViewsService disableDocumentViews:",e)}}setDocumentAsRead(n){return R(this,arguments,function*({documentId:e,clientDocumentId:t}){try{let i=this.authService.getUser();if(i&&e&&this.userPermissionService?.hasEditAccess({documentId:e??"",folderId:this.documentPaths?.allDocuments&&this.documentPaths?.veltFolderId?this.documentPaths?.veltFolderId:void 0})){if(this.documentViewsSetByDocumentId[e])return;this.documentViewsSetByDocumentId[e]=!0;let o=new Date().getTime()+this.commonDbService.getOffset(),s=new Date().toISOString().split("T")[0];if(this.commonDbService.usesPortableChannelFeed(ge)){let a=yield Ce(this.docService.getDocumentPaths$().pipe(f(g=>g?.organizationId),B(g=>!!g)));yield this.commonDbService.whenPortableRealtimeReady(),this.commonDbService.updateData({feature:"documentViews",properties:{id:e,date:s,user:i.userSnippylyId,documentId:e,organizationId:a},data:{}}),this.checkAndTriggerNotification(i);return}let d=this.getDocumentViewsById(e);if(d){let a=new Date().toISOString().split("T")[0];d?.users[i.userSnippylyId]||(d.users[i.userSnippylyId]={}),d.users[i.userSnippylyId][a]={timestamp:this.timestamp},d?.day[a]||(d.day[a]={}),d.day[a][i.userSnippylyId]={timestamp:this.timestamp},d.metadata=this.docService.getBaseMetadata("documentViews",{clientDocumentId:t}),this.commonDbService.updateData({feature:"documentViews",properties:{id:e,date:a,user:i.userSnippylyId,documentId:e,organizationId:this.documentPaths?.organizationId??""},data:d})}else this.commonDbService.updateData({feature:"documentDayViews",properties:{id:e,date:s,user:i.userSnippylyId,documentId:e,organizationId:this.documentPaths?.organizationId??"",skipFirestore:!0},data:{timestamp:o}}),this.commonDbService.updateData({feature:"documentUsersViews",properties:{id:e,user:i.userSnippylyId,date:s,documentId:e,organizationId:this.documentPaths?.organizationId??"",skipFirestore:!0},data:{timestamp:o}}),this.commonDbService.updateData({feature:"documentMetadataViews",properties:{id:e,documentId:e,organizationId:this.documentPaths?.organizationId??"",skipFirestore:!0},data:this.docService.getBaseMetadata("documentViews",{clientDocumentId:t})}),this.docService.getDocumentMetadata$(e).pipe(B(a=>a!==null),te(1)).subscribe(()=>{let a={day:{[s]:{[i.userSnippylyId]:{timestamp:o}}},users:{[i.userSnippylyId]:{[s]:{timestamp:o}}},metadata:this.docService.getBaseMetadata("documentViews",{clientDocumentId:t})};this.commonDbService.updateData({feature:"documentViews",properties:{id:e,date:s,user:i.userSnippylyId,documentId:e,organizationId:this.documentPaths?.organizationId??"",skipRtdb:!0},data:a})});this.checkAndTriggerNotification(i)}}catch(i){this.loggingService.catch("Error in ViewsService setDocumentAsRead:",i)}})}checkAndTriggerNotification(e){try{this.getUniqueViewsByUser().pipe(te(1)).subscribe(t=>{if(Object.keys(t??{}).length===2){let n=this.docService.getDocumentMetadata();if(n?.creator?.email&&n?.creator?.email!==e.email){let i=[n.creator.email];this.updateNotificationsDatabase(He.FIRST_VIEWED,{documentViews:{emails:i}})}}})}catch(t){this.loggingService.catch("Error in checkAndTriggerNotification:",t)}}setLocationAsRead(n){return R(this,arguments,function*({documentId:e,clientDocumentId:t}){try{let i=this.authService.getUser(),o=this.docService.getLocation(),s=o?.locationId,d=o?.location;if(i&&s&&d){let a=new Date().getTime()+this.commonDbService.getOffset(),g=new Date().toISOString().split("T")[0],p=this.getLocationViewsById(s);if(p){let u=new Date().toISOString().split("T")[0];p?.users[i.userSnippylyId]||(p.users[i.userSnippylyId]={}),p.users[i.userSnippylyId][u]={timestamp:this.timestamp},p?.day[u]||(p.day[u]={}),p.day[u][i.userSnippylyId]={timestamp:this.timestamp},p.metadata=this.docService.getBaseMetadata("locationViews",{clientDocumentId:t}),this.commonDbService.updateData({feature:"location",data:p,properties:{id:s,documentId:e,organizationId:this.documentPaths?.organizationId??""}})}else{this.commonDbService.updateData({feature:"locationViews",data:d,properties:{id:s,documentId:e,organizationId:this.documentPaths?.organizationId??"",skipFirestore:!0}}),this.commonDbService.updateData({feature:"locationUsersViews",properties:{id:s,user:i.userSnippylyId,date:g,documentId:e,organizationId:this.documentPaths?.organizationId??"",skipFirestore:!0},data:{timestamp:a}}),this.commonDbService.updateData({feature:"locationDayViews",properties:{id:s,date:g,user:i.userSnippylyId,documentId:e,organizationId:this.documentPaths?.organizationId??"",skipFirestore:!0},data:{timestamp:a}}),this.commonDbService.updateData({feature:"locationMetadataViews",properties:{id:s,documentId:e,organizationId:this.documentPaths?.organizationId??"",skipFirestore:!0},data:this.docService.getBaseMetadata("locationViews",{clientDocumentId:t})});let u={day:{[g]:{[i.userSnippylyId]:{timestamp:a}}},users:{[i.userSnippylyId]:{[g]:{timestamp:a}}},metadata:this.docService.getBaseMetadata("locationViews",{clientDocumentId:t}),location:d};this.commonDbService.updateData({feature:"location",data:u,properties:{id:s,documentId:e,organizationId:this.documentPaths?.organizationId??"",skipRtdb:!0}})}}}catch(i){this.loggingService.catch("Error in ViewsService setLocationAsRead:",i)}})}updateNotificationsDatabase(e,t={}){try{let n=m({actionType:e,notificationSource:"documentViews"},t);this.notificationService?.updateNotificationDatabase(n)}catch(n){this.loggingService.catch("Error in CommentService updateNotificationsDatabase: ",n)}}get timestamp(){return this.commonDbService.getServerTimestamp()}};l.\u0275fac=function(t){return new(t||l)(k(Re),k(nt),k(et),k(tt),k(pe),k(ot),k(mt),k(C),k(gt),k(me))},l.\u0275prov=Oe({token:l,factory:l.\u0275fac,providedIn:"root"});let c=l;return c})();function Vt(c,l){if(c&1&&(G(0),v(1,"div",21)(2,"div",22),L(3,"snippyly-user-avatar",23),y(),v(4,"div",24)(5,"div",25),_(6),A(7,"translate"),y()(),v(8,"div",26),_(9),A(10,"timeAgo"),y()(),W()),c&2){let r=l.$implicit;w(3),D("user",r==null?null:r.user)("size",32),w(3),j(" ",U(7,4,(r==null||r.user==null?null:r.user.name)||(r==null||r.user==null?null:r.user.email))," "),w(3),j(" ",U(10,6,r==null?null:r.timestamp)," ")}}function It(c,l){if(c&1&&(v(0,"div",19),T(1,Vt,11,8,"ng-container",20),y()),c&2){let r=x(2).ngIf;w(),D("ngForOf",r.userViews)}}function Ct(c,l){if(c&1){let r=J();G(0),v(1,"div",4)(2,"button",5),M("click",function(){P(r);let t=x(2);return N(t.closeTrendDialog())}),H(),v(3,"svg",6),L(4,"path",7),y(),Y(),v(5,"span"),_(6),A(7,"translate"),y()()(),v(8,"div",8)(9,"div",9)(10,"div",10),_(11),y(),v(12,"div",11),H(),v(13,"svg",12),L(14,"path",13)(15,"path",14),y(),Y(),v(16,"span"),_(17),A(18,"translate"),y()()(),v(19,"div",15)(20,"div",16),_(21),y(),v(22,"div",17)(23,"span"),_(24),A(25,"translate"),y()()()(),T(26,It,2,1,"div",18),W()}if(c&2){let r=x().ngIf;w(6),K(U(7,6,"Go Back")),w(5),j(" ",r.totalUniqueViewsCount," "),w(6),K(U(18,8,"Total Views")),w(4),j(" ",r.todayViewsCount," "),w(3),K(U(25,10,"Views Today")),w(2),D("ngIf",r.userViews==null?null:r.userViews.length)}}function Dt(c,l){if(c&1&&(G(0),v(1,"div",21)(2,"div",22),L(3,"snippyly-user-avatar",23),y(),v(4,"div",24)(5,"div",25),_(6),A(7,"translate"),y(),v(8,"div",26),_(9),A(10,"timeAgo"),y()()(),W()),c&2){let r=l.$implicit;w(3),D("user",r==null?null:r.user)("size",32),w(3),j(" ",U(7,4,(r==null||r.user==null?null:r.user.name)||(r==null||r.user==null?null:r.user.email))," "),w(3),j(" ",U(10,6,r==null?null:r.timestamp)," ")}}function xt(c,l){if(c&1&&(v(0,"div",29)(1,"div",19),T(2,Dt,11,8,"ng-container",20),y()()),c&2){let r=x(2).ngIf;w(2),D("ngForOf",r.userViews)}}function _t(c,l){if(c&1&&(v(0,"div",27)(1,"div",9)(2,"div",10),_(3),y(),v(4,"div",11),H(),v(5,"svg",12),L(6,"path",13)(7,"path",14),y(),Y(),v(8,"span"),_(9),A(10,"translate"),y()()(),v(11,"div",15),_(12),A(13,"translate"),A(14,"translate"),A(15,"translate"),y()(),T(16,xt,3,1,"div",28)),c&2){let r=x().ngIf;w(3),j(" ",r.totalUniqueViewsCount," "),w(6),K(U(10,6,"Total Views")),w(3),Te(" ",r.todayViewsCount," ",r.todayViewsCount===1?U(13,8,"View"):U(14,10,"Views")," ",U(15,12,"Today")," "),w(4),D("ngIf",r.userViews==null?null:r.userViews.length)}}function Et(c,l){if(c&1){let r=J();G(0),v(1,"div",2),M("clickOutside",function(){P(r);let t=x();return N(t.closeTrendDialog())}),T(2,Ct,27,12,"ng-container",3)(3,_t,17,14,"ng-template",null,0,ce),y(),W()}if(c&2){let r=l.ngIf,e=ae(4);w(),se("bottom-sheet",r.bottomSheetMode),w(),D("ngIf",r.bottomSheetMode)("ngIfElse",e)}}var X=(()=>{let l=class l{constructor(e,t,n,i,o,s,d){this.contactService=e,this.loggingService=t,this.viewsService=n,this.themeService=i,this.elementRef=o,this.domService=s,this.bottomSheetData=d,this.close=new re,this.componentConfigSignal=ne({today:new Date().toISOString().split("T")[0],todayViews:{},todayViewsCount:0,totalUniqueViews:{},totalUniqueViewsCount:0,views:{},usersMap:{},userViews:[],bottomSheetMode:!1}),this.subscriptions=[];try{d&&(this.componentConfigSignal.update(a=>(a=h(m({},a),{bottomSheetMode:!0}),a)),this.clientLocationId=d.clientLocationId,this.closeBottomSheetFn=d.closeBottomSheetFn),this.subscriptions.push(this.contactService.getUsersMap$().subscribe(a=>{this.componentConfigSignal.update(g=>(g=h(m({},g),{usersMap:a||{}}),g)),this.setLatestViewsByUsers()},a=>{this.loggingService.catch("Error in ViewAnalyticsDialogComponent getUsersMap$ subscription: ",a)})),this.subscriptions.push(this.themeService.getDarkMode$().subscribe(a=>{a?this.elementRef.nativeElement.setAttribute("dark",""):this.elementRef.nativeElement.removeAttribute("dark")}))}catch(a){this.loggingService.catch("Error in ViewAnalyticsDialogComponent constructor: ",a)}}ngOnInit(){this.getDocumentViews()}ngAfterViewInit(){try{this.subscriptions.push(this.domService.subscribeInjectCustomCss(this.elementRef))}catch(e){this.loggingService.catch("Error in ViewAnalyticsDialogComponent ngAfterViewInit: ",e)}}trackByUserIdAndTimestamp(e,t){return`${t?.user?.userSnippylyId}-${t.timestamp}`}getDocumentViews(){try{this.loggingService.log("%c[WB] Calling FUNCTION: getDocumentViews","color: green;"),this.uniqueViewsByUserSubscription&&(this.componentConfigSignal.update(e=>(e=h(m({},e),{totalUniqueViews:{},totalUniqueViewsCount:0}),e)),this.uniqueViewsByUserSubscription.unsubscribe()),this.uniqueViewsByDateSubscription&&(this.componentConfigSignal.update(e=>(e=h(m({},e),{todayViews:{},todayViewsCount:0}),e)),this.uniqueViewsByDateSubscription.unsubscribe()),this.uniqueViewsByUserSubscription=this.viewsService.getUniqueViewsByUser(this.clientLocationId).subscribe(e=>{this.componentConfigSignal.update(t=>(t=h(m({},t),{totalUniqueViews:e||{},totalUniqueViewsCount:Object.keys(e||{})?.length||0}),t)),this.setLatestViewsByUsers()},e=>{this.loggingService.catch("Error in ViewAnalyticsDialogComponent getUniqueViewsByUser subscription: ",e)}),this.uniqueViewsByDateSubscription=this.viewsService.getUniqueViewsByDate(this.clientLocationId).subscribe(e=>{this.componentConfigSignal.update(t=>(t=m({},t),t.todayViews=e&&e[t.today]?e[t.today]:{},t.todayViewsCount=Object.keys(t.todayViews||{})?.length||0,t)),this.setLatestViewsByUsers()},e=>{this.loggingService.catch("Error in ViewAnalyticsDialogComponent getUniqueViewsByDate subscription: ",e)})}catch(e){this.loggingService.catch("Error in ViewAnalyticsDialogComponent getDocumentViews: ",e)}}setLatestViewsByUsers(){try{this.loggingService.log("%c[WB] Calling FUNCTION: setLatestViewsByUsers","color: green;"),Object.keys(this.componentConfigSignal().todayViews||{}).forEach(e=>{let t=this.componentConfigSignal().usersMap[e],n=this.componentConfigSignal().todayViews[e]?.timestamp;t&&n&&(this.componentConfigSignal().userViews.find(o=>o.user.userSnippylyId===e)||this.componentConfigSignal.update(o=>(o=h(m({},o),{userViews:[...o.userViews,{user:t,timestamp:n}]}),o)))}),this.componentConfigSignal.update(e=>(e=m({},e),e.userViews.sort((t,n)=>n.timestamp-t.timestamp),e.userViews=e.userViews.slice(0,3),e))}catch(e){this.loggingService.catch("Error in ViewAnalyticsDialogComponent setLatestViewsByUsers: ",e)}}closeTrendDialog(){try{this.close.emit(),this.closeBottomSheetFn&&this.closeBottomSheetFn?.()}catch(e){this.loggingService.catch("Error in ViewAnalyticsDialogComponent onClose: ",e)}}ngOnDestroy(){try{this.subscriptions.forEach(e=>{e.unsubscribe()}),this.uniqueViewsByDateSubscription?.unsubscribe(),this.uniqueViewsByUserSubscription?.unsubscribe()}catch(e){this.loggingService.catch("Error in ViewAnalyticsDialogComponent ngOnDestroy: ",e)}}};l.\u0275fac=function(t){return new(t||l)(I(rt),I(C),I(F),I(at),I(oe),I(ue),I(We,8))},l.\u0275cmp=Q({type:l,selectors:[["velt-view-analytics-dialog"]],inputs:{clientLocationId:"clientLocationId"},outputs:{close:"close"},standalone:!1,decls:1,vars:1,consts:[["defaultDialogRef",""],[4,"ngIf"],["snippylyClickOutside","",1,"v-view-analytics-dialog-container",3,"clickOutside"],[4,"ngIf","ngIfElse"],[1,"v-back-btn-container"],[1,"v-back-btn",3,"click"],["width","16","height","16","viewBox","0 0 16 16","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M9.99988 4L5.99988 8L9.99988 12","stroke","currentColor","stroke-width","1.33333","stroke-linecap","round","stroke-linejoin","round"],[1,"v-view-analytics-count-container"],[1,"v-total-views-container"],[1,"v-total-views-count"],[1,"v-total-views-text"],["width","18","height","18","viewBox","0 0 18 18","fill","none","xmlns","http://www.w3.org/2000/svg"],["d","M7.5 9C7.5 9.39782 7.65804 9.77936 7.93934 10.0607C8.22064 10.342 8.60218 10.5 9 10.5C9.39782 10.5 9.77936 10.342 10.0607 10.0607C10.342 9.77936 10.5 9.39782 10.5 9C10.5 8.60218 10.342 8.22064 10.0607 7.93934C9.77936 7.65804 9.39782 7.5 9 7.5C8.60218 7.5 8.22064 7.65804 7.93934 7.93934C7.65804 8.22064 7.5 8.60218 7.5 9Z","stroke","#625DF5","stroke-width","1.25","stroke-linecap","round","stroke-linejoin","round"],["d","M15.75 9C13.95 12 11.7 13.5 9 13.5C6.3 13.5 4.05 12 2.25 9C4.05 6 6.3 4.5 9 4.5C11.7 4.5 13.95 6 15.75 9Z","stroke","#625DF5","stroke-width","1.25","stroke-linecap","round","stroke-linejoin","round"],[1,"v-today-views-container"],[1,"v-today-views-count"],[1,"v-today-views-text"],["class","v-users-container",4,"ngIf"],[1,"v-users-container"],[4,"ngFor","ngForOf"],[1,"v-user"],[1,"v-user-image"],[3,"user","size"],[1,"v-user-view-details"],[1,"v-user-name"],[1,"v-user-view-time"],[1,"v-document-viewer-tread-left"],["class","v-document-viewer-tread-right",4,"ngIf"],[1,"v-document-viewer-tread-right"]],template:function(t,n){t&1&&T(0,Et,5,4,"ng-container",1),t&2&&D("ngIf",n.componentConfigSignal())},dependencies:[ze,le,ct,lt,st,pt],styles:[`.v-view-analytics-dialog-container{border-radius:var(--legacy-velt-view-analytics-dialog-border-radius);border:var(--legacy-velt-view-analytics-dialog-border);background:var(--legacy-velt-view-analytics-dialog-bg-color);box-shadow:var(--legacy-velt-view-analytics-dialog-box-shadow);padding:var(--legacy-velt-view-analytics-dialog-padding);display:flex;gap:16px}.v-view-analytics-dialog-container .v-document-viewer-tread-left{display:flex;flex-direction:column;gap:4px}.v-view-analytics-dialog-container .v-document-viewer-tread-left .v-total-views-container{width:140px;height:110px;flex-shrink:0;border-radius:8px;background:var(--legacy-velt-view-analytics-dialog-views-container-bg-color);box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px}.v-view-analytics-dialog-container .v-document-viewer-tread-left .v-total-views-container .v-total-views-count{color:var(--legacy-velt-view-analytics-dialog-total-views-count-color);font-size:32px;font-style:normal;font-weight:600;line-height:100%}.v-view-analytics-dialog-container .v-document-viewer-tread-left .v-total-views-container .v-total-views-text{color:var(--legacy-velt-view-analytics-dialog-total-views-text-color);font-size:12px;font-style:normal;font-weight:500;line-height:100%;text-transform:uppercase;display:flex;gap:4px;align-items:center}.v-view-analytics-dialog-container .v-document-viewer-tread-left .v-today-views-container{display:flex;width:140px;padding:8px 4px;justify-content:center;align-items:center;gap:4px;border-radius:8px;background:var(--legacy-velt-view-analytics-dialog-views-container-bg-color);box-sizing:border-box;color:var(--legacy-velt-view-analytics-dialog-today-views-text-color);font-size:12px;font-style:normal;font-weight:500;line-height:100%;text-transform:uppercase}.v-view-analytics-dialog-container .v-document-viewer-tread-right{padding:8px 0}.v-view-analytics-dialog-container .v-document-viewer-tread-right .v-users-container{display:inline-flex;flex-direction:column;align-items:flex-start;gap:16px;margin-right:16px}.v-view-analytics-dialog-container .v-document-viewer-tread-right .v-users-container .v-user{display:flex;align-items:center;gap:12px}.v-view-analytics-dialog-container .v-document-viewer-tread-right .v-users-container .v-user snippyly-user-avatar{display:flex}.v-view-analytics-dialog-container .v-document-viewer-tread-right .v-users-container .v-user .v-user-view-details{display:flex;flex-direction:column;gap:8px}.v-view-analytics-dialog-container .v-document-viewer-tread-right .v-users-container .v-user .v-user-view-details .v-user-name{color:var(--legacy-velt-view-analytics-dialog-user-name-color);font-size:12px;font-style:normal;font-weight:500;line-height:100%}.v-view-analytics-dialog-container .v-document-viewer-tread-right .v-users-container .v-user .v-user-view-details .v-user-view-time{color:var(--legacy-velt-view-analytics-dialog-user-timestamp-color);font-size:10px;font-style:normal;font-weight:500;line-height:100%;text-transform:uppercase}.v-view-analytics-dialog-container.bottom-sheet{display:flex;flex-direction:column;border-bottom-left-radius:0;border-bottom-right-radius:0}.v-view-analytics-dialog-container.bottom-sheet .v-back-btn-container{display:flex;padding:8px 8px 0}.v-view-analytics-dialog-container.bottom-sheet .v-back-btn-container .v-back-btn{background:transparent;border:0;outline:0;display:flex;align-items:center;gap:8px;color:var(--legacy-velt-view-analytics-dialog-back-btn-color);cursor:pointer;font-size:16px;font-style:normal;font-weight:400;line-height:normal}.v-view-analytics-dialog-container.bottom-sheet .v-view-analytics-count-container{display:flex;flex:1;gap:10px}.v-view-analytics-dialog-container.bottom-sheet .v-view-analytics-count-container .v-total-views-container{display:flex;padding:25px 20px;flex-direction:column;justify-content:center;align-items:center;gap:10px;flex:1 0 0;border-radius:8px;background:var(--legacy-velt-view-analytics-dialog-views-container-bg-color)}.v-view-analytics-dialog-container.bottom-sheet .v-view-analytics-count-container .v-total-views-container .v-total-views-count{color:var(--legacy-velt-view-analytics-dialog-total-views-count-color);font-size:32px;font-style:normal;font-weight:600;line-height:100%}.v-view-analytics-dialog-container.bottom-sheet .v-view-analytics-count-container .v-total-views-container .v-total-views-text{color:var(--legacy-velt-view-analytics-dialog-total-views-text-color);font-size:12px;font-style:normal;font-weight:500;line-height:100%;text-transform:uppercase;display:flex;gap:4px;align-items:center}.v-view-analytics-dialog-container.bottom-sheet .v-view-analytics-count-container .v-today-views-container{display:flex;padding:25px 20px;flex-direction:column;justify-content:center;align-items:center;gap:10px;flex:1 0 0;border-radius:8px;background:var(--legacy-velt-view-analytics-dialog-views-container-bg-color)}.v-view-analytics-dialog-container.bottom-sheet .v-view-analytics-count-container .v-today-views-container .v-today-views-count{color:var(--legacy-velt-view-analytics-dialog-today-views-text-color);font-size:32px;font-style:normal;font-weight:600;line-height:100%}.v-view-analytics-dialog-container.bottom-sheet .v-view-analytics-count-container .v-today-views-container .v-today-views-text{color:var(--legacy-velt-view-analytics-dialog-today-views-text-color);font-size:12px;font-style:normal;font-weight:500;line-height:100%;text-transform:uppercase;display:flex;gap:4px;align-items:center}.v-view-analytics-dialog-container.bottom-sheet .v-users-container{display:inline-flex;flex-direction:column;align-items:flex-start;gap:16px;margin-right:16px}.v-view-analytics-dialog-container.bottom-sheet .v-users-container .v-user{display:flex;align-items:center;gap:12px;width:100%}.v-view-analytics-dialog-container.bottom-sheet .v-users-container .v-user snippyly-user-avatar{display:flex}.v-view-analytics-dialog-container.bottom-sheet .v-users-container .v-user .v-user-view-details{display:flex;flex-direction:column;gap:8px;flex:1}.v-view-analytics-dialog-container.bottom-sheet .v-users-container .v-user .v-user-view-details .v-user-name{color:var(--legacy-velt-view-analytics-dialog-user-name-color);font-size:12px;font-style:normal;font-weight:500;line-height:100%}.v-view-analytics-dialog-container.bottom-sheet .v-users-container .v-user .v-user-view-time{color:var(--legacy-velt-view-analytics-dialog-user-timestamp-color);font-size:10px;font-style:normal;font-weight:500;line-height:100%;text-transform:uppercase}
|
|
2
2
|
`],encapsulation:3,changeDetection:0});let c=l;return c})();var Ve=(()=>{let l=class l{constructor(e,t){this.bottomSheet=e,this.loggingService=t,this.close=new re,this.subscriptions=[]}ngOnInit(){}ngAfterViewInit(){this.openBottomSheet()}openBottomSheet(){return R(this,null,function*(){try{this.bottomSheetRef=this.bottomSheet.open(X,{data:{clientLocationId:this.clientLocationId,closeBottomSheetFn:()=>{this.onClose(),this.bottomSheetRef?.dismiss()}},panelClass:["v-view-analytics-bottom-sheet-container","velt-mat-bottom-sheet-container"]}),this.subscriptions.push(this.bottomSheetRef.backdropClick().subscribe(()=>{this.onClose()},e=>{this.loggingService.catch("Error in ViewAnalyticsBottomSheetComponent backdropClick subscription: ",e)}))}catch(e){this.loggingService.catch("Error in ViewAnalyticsBottomSheetComponent openBottomSheet: ",e)}})}onClose(){try{this.close.emit()}catch(e){this.loggingService.catch("Error in ViewAnalyticsBottomSheetComponent onClose: ",e)}}ngOnDestroy(){try{this.subscriptions.forEach(e=>{e.unsubscribe()})}catch(e){this.loggingService.catch("Error in ViewAnalyticsBottomSheetComponent ngOnDestroy: ",e)}}};l.\u0275fac=function(t){return new(t||l)(I(Je),I(C))},l.\u0275cmp=Q({type:l,selectors:[["velt-view-analytics-bottom-sheet-internal"]],inputs:{clientLocationId:"clientLocationId"},outputs:{close:"close"},standalone:!1,decls:0,vars:0,template:function(t,n){},styles:[".velt-mat-bottom-sheet-container.v-view-analytics-bottom-sheet-container{padding:0!important} .velt-mat-bottom-sheet-container.v-view-analytics-bottom-sheet-container .mat-bottom-sheet-container{padding:0!important}"],changeDetection:0});let c=l;return c})();var At=()=>["snippyly-overlay-panel","v-view-analytics-overlay-panel","velt-overlay-panel"];function Ut(c,l){if(c&1){let r=J();v(0,"velt-view-analytics-dialog",11),M("close",function(){P(r);let t=x(2);return N(t.toggleTrends())}),y()}if(c&2){let r=x(2);D("clientLocationId",r.clientLocationId)}}function kt(c,l){if(c&1){let r=J();v(0,"velt-view-analytics-bottom-sheet-internal",11),M("close",function(){P(r);let t=x(2);return N(t.closeTrends())}),y()}if(c&2){let r=x(2);D("clientLocationId",r.clientLocationId)}}function Tt(c,l){if(c&1){let r=J();G(0),v(1,"div",3,0),M("click",function(t){return P(r),x().toggleTrends(),N(t.stopPropagation())}),v(3,"slot",4),M("slotchange",function(){P(r);let t=x();return N(t.onButtonSlotChange())}),v(4,"div",5),H(),v(5,"svg",6),L(6,"path",7),y(),Y(),v(7,"span",8),_(8),y()()()(),T(9,Ut,1,1,"ng-template",9,1,ce)(11,kt,1,1,"velt-view-analytics-bottom-sheet-internal",10),W()}if(c&2){let r=l.ngIf,e=ae(2),t=x();w(4),se("active",r.treadsVisible),w(4),K(r.totalUniqueViewsCount),w(),D("cdkConnectedOverlayOrigin",e)("cdkConnectedOverlayOpen",!r.isPhone&&r.treadsVisible)("cdkConnectedOverlayPanelClass",$e(11,At))("cdkConnectedOverlayBackdropClass","snippyly-overlay-backdrop")("cdkConnectedOverlayGrowAfterOpen",!0)("cdkConnectedOverlayPositions",t.positions)("cdkConnectedOverlayDisableClose",!0),w(2),D("ngIf",r.isPhone&&r.treadsVisible)}}var Ie=(()=>{let l=class l{constructor(e,t,n,i,o,s){this.breakpointObserver=e,this.docService=t,this.loggingService=n,this.viewsService=i,this.elementRef=o,this.domService=s,this.type="document",this.componentConfigSignal=ne({today:new Date().toISOString().split("T")[0],todayViews:{},todayViewsCount:0,totalUniqueViews:{},totalUniqueViewsCount:0,treadsVisible:!1,customButtonAdded:!1,isPhone:!1,componentId:Math.random().toString(36).substring(2)}),this.positions=E.OVERLAY_POSITIONS.map(d=>new Pe({originX:d.originX,originY:d.originY},{overlayX:d.overlayX,overlayY:d.overlayY})),this.subscriptions=[]}ngOnInit(){try{this.getUniqueViewsByUser(),this.subscriptions.push(this.breakpointObserver.observe(Ge.XSmall).subscribe(e=>{this.componentConfigSignal.update(t=>(t=m({},t),t.isPhone=!!e.matches,t))},e=>{this.loggingService.catch("Error in ViewAnalyticsComponent breakpointObserver subscription: ",e)})),this.subscriptions.push(this.docService.getLocation$().subscribe(e=>{e?.location?.id&&(this.clientLocationId=e?.location?.id,this.getUniqueViewsByUser())}))}catch(e){this.loggingService.catch("Error in ViewAnalyticsComponent ngOnInit: ",e)}}ngOnChanges(e){try{(e.type||e.clientLocationId)&&this.getUniqueViewsByUser()}catch(t){this.loggingService.catch("Error in ViewAnalyticsComponent ngOnChanges: ",t)}}ngAfterViewInit(){try{this.subscriptions.push(this.domService.subscribeInjectCustomCss(this.elementRef))}catch(e){this.loggingService.catch("Error in ViewAnalyticsComponent ngAfterViewInit: ",e)}}getUniqueViewsByUser(){try{this.loggingService.log("%c[WB] Calling FUNCTION: getDocumentViews","color: green;"),this.uniqueViewsByUserSubscription&&(this.componentConfigSignal.update(t=>(t=m({},t),t.totalUniqueViews={},t.totalUniqueViewsCount=0,t)),this.uniqueViewsByUserSubscription.unsubscribe());let e=this.type==="location"&&this.clientLocationId?this.clientLocationId:void 0;this.uniqueViewsByUserSubscription=this.viewsService.getUniqueViewsByUser(e).subscribe(t=>{this.componentConfigSignal.update(n=>(n=m({},n),n.totalUniqueViews=t||{},n.totalUniqueViewsCount=Object.keys(n.totalUniqueViews||{})?.length||0,n))},t=>{this.loggingService.catch("Error in ViewAnalyticsComponent getUniqueViewsByUser subscription: ",t)})}catch(e){this.loggingService.catch("Error in ViewAnalyticsComponent getDocumentViews: ",e)}}toggleTrends(){try{this.loggingService.log("%c[WB] Calling FUNCTION: toggleTrends","color: green;"),this.componentConfigSignal.update(e=>(e=m({},e),e.treadsVisible=!e.treadsVisible,e))}catch(e){this.loggingService.catch("Error in ViewAnalyticsComponent toggleTrends: ",e)}}openTrends(){try{this.loggingService.log("%c[WB] Calling FUNCTION: openTrends","color: green;"),this.componentConfigSignal.update(e=>(e=m({},e),e.treadsVisible=!0,e))}catch(e){this.loggingService.catch("Error in ViewAnalyticsComponent openTrends: ",e)}}closeTrends(){try{this.loggingService.log("%c[WB] Calling FUNCTION: closeTrends","color: green;"),this.componentConfigSignal.update(e=>(e=m({},e),e.treadsVisible=!1,e))}catch(e){this.loggingService.catch("Error in ViewAnalyticsComponent closeTrends: ",e)}}onButtonSlotChange(){this.componentConfigSignal.update(e=>(e=m({},e),e.customButtonAdded=!0,e))}unsubscribe(){this.loggingService.log("%c[WB] Calling FUNCTION: unsubscribe","color: green;");try{this.subscriptions.map(e=>{e.unsubscribe()}),this.subscriptions=[],this.uniqueViewsByUserSubscription&&this.uniqueViewsByUserSubscription.unsubscribe()}catch(e){this.loggingService.catch("Error in ViewAnalyticsComponent unsubscribe: ",e)}}ngOnDestroy(){try{this.unsubscribe()}catch(e){this.loggingService.catch("Error in ViewAnalyticsComponent ngOnDestroy: ",e)}}};l.\u0275fac=function(t){return new(t||l)(I(qe),I(pe),I(C),I(F),I(oe),I(ue))},l.\u0275cmp=Q({type:l,selectors:[["velt-view-analytics-internal"]],inputs:{type:"type",clientLocationId:[0,"locationId","clientLocationId"]},standalone:!1,features:[Ae],decls:1,vars:1,consts:[["trigger","cdkOverlayOrigin"],["overlay","cdkConnectedOverlay"],[4,"ngIf"],["part","container","cdkOverlayOrigin","",1,"v-document-viewer-tread-container",3,"click"],["name","button",3,"slotchange"],["part","button-container",1,"action-btn"],["part","button-icon","width","24","height","24","viewBox","0 0 24 24","fill","none","xmlns","http://www.w3.org/2000/svg",1,"action-btn-icon"],["d","M4.5 16.1667L9.5 11.1667L12.8333 14.5L19.5 7.83334M19.5 7.83334H13.6667M19.5 7.83334V13.6667","stroke","currentColor","stroke-width","1.5","stroke-linecap","round","stroke-linejoin","round"],["part","button-label",1,"action-btn-label"],["cdkConnectedOverlay","",3,"cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPanelClass","cdkConnectedOverlayBackdropClass","cdkConnectedOverlayGrowAfterOpen","cdkConnectedOverlayPositions","cdkConnectedOverlayDisableClose"],[3,"clientLocationId","close",4,"ngIf"],[3,"close","clientLocationId"]],template:function(t,n){t&1&&T(0,Tt,12,12,"ng-container",2),t&2&&D("ngIf",n.componentConfigSignal())},dependencies:[le,Le,Ne,X,Ve],styles:[`html{--velt-base-rem-unit: 1}*[data-snippyly-element=true],*[data-velt-element=true]{font-family:var(--velt-default-font-family)}velt-wireframe{display:none!important}body.velt-pin-dragging iframe{pointer-events:none!important}*{box-sizing:border-box;-webkit-tap-highlight-color:rgba(255,255,255,0);outline:none;margin:0;padding:0;height:unset;width:unset;text-align:left;line-height:1.5;font-size:calc((1rem + 0px) * var(--velt-base-rem-unit))}*:empty{display:revert}.v-document-viewer-tread-container{display:inline-block}.action-btn{display:inline-flex;justify-content:center;align-items:center;padding:6px;border-radius:var(--legacy-velt-tool-border-radius);border:var(--legacy-velt-tool-border);background-color:var(--legacy-velt-tool-bg-color);color:var(--legacy-velt-tool-icon-color);cursor:pointer}.action-btn .action-btn-label{font-size:calc((.9rem + 0px) * var(--velt-base-rem-unit));padding:0 12px 0 4px;font-weight:700;color:currentColor}.action-btn .action-btn-icon{width:calc((var(--legacy-velt-tool-icon-size) + 0px) * var(--velt-base-rem-unit));height:calc((var(--legacy-velt-tool-icon-size) + 0px) * var(--velt-base-rem-unit));color:currentColor;padding-left:8px;box-sizing:content-box}.action-btn .toolbar-icon-dropdown-arrow{width:16px;height:16px;color:currentColor}.action-btn:focus{border-radius:var(--legacy-velt-tool-focus-border-radius);border:var(--legacy-velt-tool-focus-border);background-color:var(--legacy-velt-tool-focus-bg-color);color:var(--legacy-velt-tool-focus-icon-color)}.action-btn:focus .action-btn-icon{width:calc((var(--legacy-velt-tool-focus-icon-size) + 0px) * var(--velt-base-rem-unit));height:calc((var(--legacy-velt-tool-focus-icon-size) + 0px) * var(--velt-base-rem-unit))}.action-btn:focus .toolbar-icon-dropdown-arrow{color:var(--legacy-velt-tool-focus-icon-color)}.action-btn:hover{border-radius:var(--legacy-velt-tool-hover-border-radius);border:var(--legacy-velt-tool-hover-border);background-color:var(--legacy-velt-tool-hover-bg-color);color:var(--legacy-velt-tool-hover-icon-color)}.action-btn:hover .action-btn-icon{width:calc((var(--legacy-velt-tool-hover-icon-size) + 0px) * var(--velt-base-rem-unit));height:calc((var(--legacy-velt-tool-hover-icon-size) + 0px) * var(--velt-base-rem-unit))}.action-btn:hover .toolbar-icon-dropdown-arrow{color:var(--legacy-velt-tool-hover-icon-color)}.action-btn:active,.action-btn.active{border-radius:var(--legacy-velt-tool-active-border-radius);border:var(--legacy-velt-tool-active-border);background-color:var(--legacy-velt-tool-active-bg-color);color:var(--legacy-velt-tool-active-icon-color)}.action-btn:active .action-btn-icon,.action-btn.active .action-btn-icon{width:calc((var(--legacy-velt-tool-active-icon-size) + 0px) * var(--velt-base-rem-unit));height:calc((var(--legacy-velt-tool-active-icon-size) + 0px) * var(--velt-base-rem-unit))}.action-btn:active .toolbar-icon-dropdown-arrow,.action-btn.active .toolbar-icon-dropdown-arrow{color:var(--legacy-velt-tool-active-icon-color)}
|
|
3
3
|
`],encapsulation:3,changeDetection:0});let c=l;return c})();var he=class extends ut{constructor(l){super(l),this.getService(C).log("%c[WB] Creating CLASS: ViewsElement","color: blue;"),this.getUniqueViewsByUser=this._getUniqueViewsByUser,this.getUniqueViewsByDate=this._getUniqueViewsByDate}_getUniqueViewsByUser(l){this.getService(C).log("%c[WB] Calling FUNCTION: _getUniqueViewsByUser","color: green;");try{return this.trackEvent(ye.Events.Views.GET_UNIQUE_VIEWS_BY_USER_TRIGGERED,{payload:{clientLocationId:l}}),this.getService(F).getUniqueViewsByUser(l)}catch(r){return this.getService(C).catch("Error in getUniqueViewsByUser: ",r),b({})}}_getUniqueViewsByDate(l){this.getService(C).log("%c[WB] Calling FUNCTION: _getUniqueViewsByDate","color: green;");try{return this.trackEvent(ye.Events.Views.GET_UNIQUE_VIEWS_BY_DATE_TRIGGERED,{payload:{clientLocationId:l}}),this.getService(F).getUniqueViewsByDate(l)}catch(r){return this.getService(C).catch("Error in getUniqueViewsByDate: ",r),b({})}}};var yt=(()=>{let l=class l{};l.\u0275fac=function(t){return new(t||l)},l.\u0275mod=ke({type:l}),l.\u0275inj=Be({imports:[Fe,Me,Ke,dt]});let c=l;return c})();function $t(c){c.get(C).log("%c[WB] Loading view feature chunk","color: blue;"),c.get(me).set(Xe,c.get(F));let t=Ue(yt,c).injector;return zt(t,E.TAGS.VELT_VIEW_ANALYTICS,Ie),new he(c)}function zt(c,l,r){if(customElements.get(l))return;let e=je(r,c);customElements.define(l,e)}export{$t as default};
|