@veltdev/sdk 5.0.4 → 6.0.0-beta.2

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.
Files changed (67) hide show
  1. package/app/client/snippyly.model.d.ts +0 -18
  2. package/app/{models/data/arrow-annotation.data.model.d.ts → features/arrow/models/arrow-annotation.model.d.ts} +6 -6
  3. package/app/features/user-request/models/user-request.data.model.d.ts +37 -0
  4. package/app/models/data/comment-events.data.model.d.ts +29 -0
  5. package/app/models/data/user-contact-us.data.model.d.ts +1 -1
  6. package/app/models/data/user-feedback.data.model.d.ts +1 -1
  7. package/app/models/data/user-report-bug.data.model.d.ts +1 -1
  8. package/app/models/element/comment-element.model.d.ts +0 -4
  9. package/app/models/element/notification-element.model.d.ts +1 -15
  10. package/app/utils/constants.d.ts +10 -1
  11. package/app/utils/enums.d.ts +11 -2
  12. package/chunk-2VRLOC54.js +1 -0
  13. package/chunk-3JVZRXRU.js +1 -0
  14. package/chunk-4HZXXELL.js +2 -0
  15. package/chunk-7OE7P5OC.js +1 -0
  16. package/chunk-7Z2RUITF.js +1 -0
  17. package/chunk-BIRSJZS4.js +1 -0
  18. package/chunk-DGLPW6U2.js +1 -0
  19. package/chunk-FQV5GDQ4.js +13 -0
  20. package/chunk-GSWJ47CG.js +193 -0
  21. package/chunk-GUW532VN.js +1 -0
  22. package/chunk-HXAQVCSE.js +7 -0
  23. package/chunk-IEXOPENA.js +1 -0
  24. package/chunk-ISXOVSY6.js +2 -0
  25. package/chunk-J5OBLBNJ.js +1 -0
  26. package/chunk-JBAQC6H3.js +1 -0
  27. package/chunk-JPZDCXYT.js +1 -0
  28. package/chunk-JWQVDB7A.js +1 -0
  29. package/chunk-KLULVXAM.js +1 -0
  30. package/chunk-LSII7S42.js +10 -0
  31. package/chunk-LXOZAVEX.js +1 -0
  32. package/chunk-MRTKRXWO.js +1 -0
  33. package/chunk-NW7YF5JV.js +1 -0
  34. package/chunk-OYZG5CJ4.js +1 -0
  35. package/chunk-QARSEAEI.js +1 -0
  36. package/chunk-QITJMA2C.js +1 -0
  37. package/chunk-SX6YON2I.js +2 -0
  38. package/chunk-UKPF5PJP.js +1 -0
  39. package/chunk-VCZ24YVQ.js +2 -0
  40. package/chunk-XSKK5YFU.js +2 -0
  41. package/chunk-XVENMQZA.js +1 -0
  42. package/chunk-XZOBU25B.js +93 -0
  43. package/chunk-Y3NTQA6R.js +6 -0
  44. package/chunk-YSZ3KMWW.js +167 -0
  45. package/models.d.ts +1 -1
  46. package/package.json +1 -1
  47. package/types.d.ts +0 -1
  48. package/velt-activity-log.js +1 -0
  49. package/velt-area.js +1 -0
  50. package/velt-arrow.js +2 -0
  51. package/velt-comment.js +14 -0
  52. package/velt-crdt.js +1 -0
  53. package/velt-cursor.js +2 -0
  54. package/velt-huddle.js +3 -0
  55. package/velt-live-state-sync.js +2 -0
  56. package/velt-notification.js +1 -0
  57. package/velt-presence.js +1 -0
  58. package/velt-reaction.js +1 -0
  59. package/velt-recorder.js +1 -0
  60. package/velt-rewriter.js +8 -0
  61. package/velt-selection.js +1 -0
  62. package/velt-tag.js +1 -0
  63. package/velt-user-invite.js +2 -0
  64. package/velt-user-request.js +1 -0
  65. package/velt-video-player.js +1 -0
  66. package/velt-views.js +3 -0
  67. package/velt.js +33 -550
@@ -24,7 +24,6 @@ import { TagElement } from "../models/element/tag-element.model";
24
24
  import { FeatureType } from "../utils/enums";
25
25
  import { UserContact } from "../models/data/user-contact.data.model";
26
26
  import { DocumentMetadata } from "../models/data/document-metadata.model";
27
- import { PageInfo } from "../models/data/page-info.model";
28
27
  import { ReactionElement } from "../models/element/reaction-element.model";
29
28
  import { CrdtElement } from "../models/element/crdt-element.model";
30
29
  import { VeltEventMetadata, VeltDebugInfo } from "../models/data/event-metadata.data.model";
@@ -56,23 +55,6 @@ export declare class Snippyly {
56
55
  * @param documentMetadata Document Metadata
57
56
  */
58
57
  setDocument: (id: string, documentMetadata?: DocumentMetadata) => Promise<void>;
59
- /**
60
- * Provide custom page info that the SDK should use instead of generating it from the browser
61
- * (`window.location` / `document.title`). Newly created data (comments, reactions, recordings,
62
- * presence, cursors, etc.) will use the provided page info. Already saved/existing data is not
63
- * affected.
64
- * @param pageInfo client-provided page info
65
- * @param options optional; pass a `documentId` to scope the page info to a specific document
66
- * (per-document page info takes precedence over the global page info)
67
- */
68
- setPageInfo: (pageInfo: PageInfo, options?: { documentId?: string; }) => void;
69
- /**
70
- * Clear custom page info previously set via `setPageInfo`. The SDK will resume generating
71
- * page info from the browser.
72
- * @param options optional; pass a `documentId` to clear only that document's page info,
73
- * otherwise the global page info is cleared
74
- */
75
- clearPageInfo: (options?: { documentId?: string; }) => void;
76
58
  /**
77
59
  * Tell us the unique ID of the current document/resource on which you want to enable collaboration.
78
60
  * @param id unique document ID
@@ -1,9 +1,9 @@
1
- import { AnnotationProperty } from "./annotation-property.data.model";
2
- import { CursorPosition } from "./cursor-position.data.model";
3
- import { Location } from "./location.model";
4
- import { PageInfo } from "./page-info.model";
5
- import { TargetElement } from "./target-element.data.model";
6
- import { User } from "./user.data.model";
1
+ import { AnnotationProperty } from "../../../models/data/annotation-property.data.model";
2
+ import { CursorPosition } from "../../../models/data/cursor-position.data.model";
3
+ import { Location } from "../../../models/data/location.model";
4
+ import { PageInfo } from "../../../models/data/page-info.model";
5
+ import { TargetElement } from "../../../models/data/target-element.data.model";
6
+ import { User } from "../../../models/data/user.data.model";
7
7
  export declare class ArrowAnnotation {
8
8
  /**
9
9
  * Unique identifier for the arrow pin annotation.
@@ -0,0 +1,37 @@
1
+ import { DocumentMetadata } from "../../../models/data/document-metadata.model";
2
+ import { PageInfo } from "../../../models/data/page-info.model";
3
+ import { User } from "../../../models/data/user.data.model";
4
+ export declare class UserRequest {
5
+ /**
6
+ * Unique id of the feedback
7
+ */
8
+ id?: string;
9
+ /**
10
+ * apiKey of the client
11
+ */
12
+ apiKey?: string | null;
13
+ /**
14
+ * Email id of the feedback giver
15
+ */
16
+ emailId?: string;
17
+ /**
18
+ * Message given by the user
19
+ */
20
+ message?: string;
21
+ /**
22
+ * User who added the feedback
23
+ */
24
+ from?: User | null;
25
+ /**
26
+ * Date when the feedback was added
27
+ */
28
+ lastUpdated?: any;
29
+ /**
30
+ * Document metadata
31
+ */
32
+ metadata?: DocumentMetadata | null;
33
+ /**
34
+ * User's page info
35
+ */
36
+ pageInfo?: PageInfo;
37
+ }
@@ -89,6 +89,10 @@ export type CommentEventTypesMap = {
89
89
  [CommentEventTypes.COMMENT_TOOL_CLICKED]: CommentToolClickedEvent;
90
90
  [CommentEventTypes.SIDEBAR_BUTTON_CLICK]: SidebarButtonClickEvent;
91
91
  [CommentEventTypes.SIDEBAR_BUTTON_CLICKED]: SidebarButtonClickedEvent;
92
+ [CommentEventTypes.SIDEBAR_OPEN]: SidebarOpenEvent;
93
+ [CommentEventTypes.SIDEBAR_CLOSE]: SidebarCloseEvent;
94
+ [CommentEventTypes.COMMENT_CLICK]: CommentClickEvent;
95
+ [CommentEventTypes.COMMENT_NAVIGATION_BUTTON_CLICK]: CommentNavigationButtonClickEvent;
92
96
  [CommentEventTypes.ATTACHMENT_DOWNLOAD_CLICKED]: AttachmentDownloadClickedEvent;
93
97
  [CommentEventTypes.COMMENT_SAVED]: CommentSavedEvent;
94
98
  [CommentEventTypes.COMMENT_SAVE_TRIGGERED]: CommentSaveTriggeredEvent;
@@ -347,6 +351,31 @@ export interface SidebarButtonClickEvent {
347
351
  }
348
352
  export interface SidebarButtonClickedEvent extends SidebarButtonClickEvent {
349
353
  }
354
+ /** Fired when the comment sidebar opens. Subscribe via `commentElement.on('sidebarOpen')`. */
355
+ export interface SidebarOpenEvent {
356
+ metadata?: VeltEventMetadata;
357
+ }
358
+ /** Fired when the comment sidebar closes. Subscribe via `commentElement.on('sidebarClose')`. */
359
+ export interface SidebarCloseEvent {
360
+ metadata?: VeltEventMetadata;
361
+ }
362
+ /** Fired when a comment is clicked in the sidebar list. Subscribe via `commentElement.on('commentClick')`. */
363
+ export interface CommentClickEvent {
364
+ documentId?: string | null;
365
+ location?: Location | null;
366
+ targetElementId?: string | null;
367
+ context?: {
368
+ [key: string]: any;
369
+ };
370
+ annotation?: CommentAnnotation;
371
+ metadata?: VeltEventMetadata;
372
+ }
373
+ /**
374
+ * Fired when the navigation ("go to") button on a sidebar comment is clicked.
375
+ * Subscribe via `commentElement.on('commentNavigationButtonClick')`.
376
+ */
377
+ export interface CommentNavigationButtonClickEvent extends CommentClickEvent {
378
+ }
350
379
  export interface AttachmentDownloadClickedEvent {
351
380
  annotationId: string;
352
381
  commentAnnotation: CommentAnnotation;
@@ -1,3 +1,3 @@
1
- import { UserRequest } from "./user-request.data.model";
1
+ import { UserRequest } from "../../features/user-request/models/user-request.data.model";
2
2
  export declare class UserContactUs extends UserRequest {
3
3
  }
@@ -1,3 +1,3 @@
1
- import { UserRequest } from "./user-request.data.model";
1
+ import { UserRequest } from "../../features/user-request/models/user-request.data.model";
2
2
  export declare class UserFeedback extends UserRequest {
3
3
  }
@@ -1,3 +1,3 @@
1
- import { UserRequest } from "./user-request.data.model";
1
+ import { UserRequest } from "../../features/user-request/models/user-request.data.model";
2
2
  export declare class UserReportBug extends UserRequest {
3
3
  }
@@ -948,8 +948,6 @@ export declare class CommentElement {
948
948
  * To disable collapsed comment
949
949
  */
950
950
  public disableCollapsedComments: () => void;
951
- public enableCollapsedRepliesPreview: () => void;
952
- public disableCollapsedRepliesPreview: () => void;
953
951
 
954
952
  /**
955
953
  * To enable query params comments
@@ -2300,8 +2298,6 @@ export declare class CommentElement {
2300
2298
  * To disable collapsed comment
2301
2299
  */
2302
2300
  private _disableCollapsedComments;
2303
- private _enableCollapsedRepliesPreview;
2304
- private _disableCollapsedRepliesPreview;
2305
2301
 
2306
2302
  /**
2307
2303
  * To enable query params comments
@@ -1,6 +1,6 @@
1
1
  // @ts-nocheck
2
2
 
3
- import { CrossOrganizationConfig, GetNotificationsDataQuery, Notification, NotificationInitialSettingsConfig, NotificationSettingsConfig, NotificationTabConfig } from "../data/notification.model";
3
+ import { GetNotificationsDataQuery, Notification, NotificationInitialSettingsConfig, NotificationSettingsConfig, NotificationTabConfig } from "../data/notification.model";
4
4
 
5
5
  export declare class NotificationElement {
6
6
  /**
@@ -128,16 +128,6 @@ export declare class NotificationElement {
128
128
  */
129
129
  disableCurrentDocumentOnly: () => void;
130
130
 
131
- /**
132
- * Opt in to cross-organization "For You" notifications.
133
- */
134
- enableCrossOrganization: (config?: CrossOrganizationConfig | null) => void;
135
-
136
- /**
137
- * Opt out of cross-organization "For You" notifications.
138
- */
139
- disableCrossOrganization: () => void;
140
-
141
131
  constructor();
142
132
 
143
133
  /**
@@ -264,8 +254,4 @@ export declare class NotificationElement {
264
254
  * To disable current document only
265
255
  */
266
256
  private _disableCurrentDocumentOnly;
267
-
268
- private _enableCrossOrganization;
269
-
270
- private _disableCrossOrganization;
271
257
  }
@@ -203,8 +203,11 @@ export declare class Constants {
203
203
  VELT_TAGS: string;
204
204
  VELT_RECORDER_NOTES: string;
205
205
  VELT_RECORDER_CONTROL_PANEL: string;
206
- VELT_RECORDER_CONTROL_PANEL_INTERNAL: string;
206
+ VELT_RECORDER_CONTROL_PANEL_EMBED: string;
207
+ SNIPPYLY_RECORDER_CONTROL_PANEL_EMBED: string;
207
208
  VELT_RECORDER_PLAYER: string;
209
+ VELT_RECORDER_PLAYER_EMBED: string;
210
+ SNIPPYLY_RECORDER_PLAYER_EMBED: string;
208
211
  VELT_VIDEO_EDITOR: string;
209
212
  VELT_TEXT_HIGHLIGHT: string;
210
213
  VELT_COMMENT_TEXT_PORTAL: string;
@@ -271,6 +274,8 @@ export declare class Constants {
271
274
  VELT_COMMENT_BUBBLE_UNREAD_ICON: string;
272
275
  VELT_COMMENT_THREAD: string;
273
276
  VELT_COMMENT_PIN: string;
277
+ VELT_COMMENT_PIN_EMBED: string;
278
+ SNIPPYLY_COMMENT_PIN_EMBED: string;
274
279
  VELT_COMMENT_PIN_NUMBER: string;
275
280
  VELT_COMMENT_PIN_INDEX: string;
276
281
  VELT_COMMENT_PIN_TRIANGLE: string;
@@ -332,7 +337,11 @@ export declare class Constants {
332
337
  VELT_VIDEO_PLAYER: string;
333
338
  VELT_VIDEO_COMMENTS_TIMELINE: string;
334
339
  VELT_REACTION_TOOL: string;
340
+ SNIPPYLY_REACTION_TOOL: string;
341
+ VELT_REACTION_PIN: string;
342
+ SNIPPYLY_REACTION_PIN: string;
335
343
  VELT_INLINE_REACTIONS_SECTION: string;
344
+ SNIPPYLY_INLINE_REACTIONS_SECTION: string;
336
345
  VELT_VIEW_ANALYTICS: string;
337
346
  VELT_NOTIFICATIONS_TOOL: string;
338
347
  VELT_NOTIFICATIONS_TOOL_ICON: string;
@@ -95,6 +95,10 @@ export declare const CommentEventTypes: {
95
95
  readonly COMMENT_TOOL_CLICKED: "commentToolClicked";
96
96
  readonly SIDEBAR_BUTTON_CLICK: "sidebarButtonClick";
97
97
  readonly SIDEBAR_BUTTON_CLICKED: "sidebarButtonClicked";
98
+ readonly SIDEBAR_OPEN: "sidebarOpen";
99
+ readonly SIDEBAR_CLOSE: "sidebarClose";
100
+ readonly COMMENT_CLICK: "commentClick";
101
+ readonly COMMENT_NAVIGATION_BUTTON_CLICK: "commentNavigationButtonClick";
98
102
  readonly ATTACHMENT_DOWNLOAD_CLICKED: "attachmentDownloadClicked";
99
103
  readonly COMMENT_SAVED: "commentSaved";
100
104
  readonly COMMENT_SAVE_TRIGGERED: "commentSaveTriggered";
@@ -224,7 +228,12 @@ export declare enum Features {
224
228
  LIVE_SELECTION = "liveSelection",
225
229
  NOTIFICATION = "notification",
226
230
  REACTION = "reaction",
227
- ACTIVITY = "activity"
231
+ ACTIVITY = "activity",
232
+ VIEWS = "views",
233
+ USER_INVITE = "userInvite",
234
+ USER_REQUEST = "userRequest",
235
+ VIDEO_PLAYER = "videoPlayer",
236
+ CRDT = "crdt"
228
237
  }
229
238
  export declare enum AnalyticsFeatures {
230
239
  AREA = "area",
@@ -246,7 +255,7 @@ export declare enum AnalyticsFeatures {
246
255
  INLINE_COMMENT = "inlineComment",
247
256
  COMMENT_SIDEBAR = "commentSidebar"
248
257
  }
249
- export type FeatureType = 'area' | 'arrow' | 'audioHuddle' | 'comment' | 'cursor' | 'huddle' | 'liveStateSync' | 'presence' | 'recorder' | 'rewriter' | 'tag' | 'liveSelection' | 'notification' | 'reaction' | 'multiThread' | 'activity';
258
+ export type FeatureType = 'area' | 'arrow' | 'audioHuddle' | 'comment' | 'cursor' | 'huddle' | 'liveStateSync' | 'presence' | 'recorder' | 'rewriter' | 'tag' | 'liveSelection' | 'notification' | 'reaction' | 'multiThread' | 'activity' | 'views' | 'userInvite' | 'userRequest' | 'videoPlayer' | 'crdt';
250
259
  export type AssignToType = 'dropdown' | 'checkbox';
251
260
  export declare enum DeviceType {
252
261
  DESKTOP = "Desktop",
@@ -0,0 +1 @@
1
+ import{da as I,ea as D,ga as E}from"./chunk-Y3NTQA6R.js";import{Ua as f,Ya as m,Zh as v,a as s,b as g,da as n,ni as C,pi as y,qa as S,vc as d,wa as u,xc as p}from"./chunk-YSZ3KMWW.js";var B=(()=>{let r=class r extends E{set parentLocalUIState(e){try{e&&(this.localUIStateSignal=e,this.isLocalUIStateOwner=!1)}catch{}}get elementRef(){try{return this.hostElementRef}catch{return null}}getServiceComponentConfigSignal(){}constructor(){let e=n(u),t=n(D),o=n(p),l=n(C).get(v),h=n(I),c=n(y);super(e,t,o,l??void 0,void 0,h,c),this.defaultCondition=d(!0,{transform:i=>{try{return typeof i=="string"?i==="true"||i==="":i}catch{return!0}}}),this.isLocalUIStateOwner=!1;try{this.hostElementRef=e,this.themeService=t,this.dynamicDataService=h,this.loggingService=c,this.cd=o,this.commentService=l??void 0,this.initializeLocalUIState()}catch(i){this.loggingService=this.loggingService||c,this.loggingService?.catch?.("Error in V2PrimitiveThemedBase constructor:",i)}}initializeLocalUIState(){this.localUIStateSignal=S(this.getDefaultLocalUIState()),this.isLocalUIStateOwner=!0}getConditionalClassesContext(){return{componentConfigSignal:this.componentConfigSignal}}ngOnInit(){try{this.connectToServiceSignalIfStandalone(),this.dynamicDataService.applyConditionalClasses(this.hostElementRef?.nativeElement,this.getConditionalClassesContext()),this.setupA11yAttributes(),this.isLocalUIStateOwner&&this.setupDarkModeSync()}catch(e){this.loggingService.catch("Error in V2PrimitiveThemedBase ngOnInit:",e)}}connectToServiceSignalIfStandalone(){try{let e=this.componentConfigSignal();if(!e||!e?.uiState){let t=this.getServiceComponentConfigSignal();t&&(this.componentConfigSignal=t)}}catch(e){this.loggingService.catch("Error connecting to service signal:",e)}}ngOnDestroy(){try{this.darkModeConfigSyncSubscription&&this.darkModeConfigSyncSubscription.unsubscribe(),super.ngOnDestroy()}catch(e){this.loggingService.catch("Error in V2PrimitiveThemedBase ngOnDestroy:",e)}}setupA11yAttributes(){}setupDarkModeSync(){try{this.darkModeConfigSyncSubscription=this.onDarkModeChange().subscribe(e=>{try{if(this.componentConfigSignal&&typeof this.componentConfigSignal=="function"){let t=this.componentConfigSignal();t&&t.uiState&&t.uiState.darkMode!==e&&this.componentConfigSignal.update(o=>g(s({},o),{uiState:g(s({},o.uiState),{darkMode:e})}))}}catch(t){this.loggingService.catch("Error in darkMode sync subscription:",t)}})}catch(e){this.loggingService.catch("Error in V2PrimitiveThemedBase setupDarkModeSync:",e)}}};r.\u0275fac=function(t){return new(t||r)},r.\u0275cmp=f({type:r,selectors:[["app-v2-primitive-themed-base"]],inputs:{defaultCondition:[1,"defaultCondition"],parentLocalUIState:"parentLocalUIState"},standalone:!1,features:[m],decls:0,vars:0,template:function(t,o){},encapsulation:2});let a=r;return a})();export{B as a};
@@ -0,0 +1 @@
1
+ import{b as f,c as S,d as y,e as g,f as E}from"./chunk-LSII7S42.js";import{$ as k,Fi as N,Te as C,Ue as I,Xe as v,ag as b,ca as h,g as u,je as w,jf as x,le as A,pi as L,qe as T,qi as O,si as D,ti as P,vi as _}from"./chunk-YSZ3KMWW.js";var z=l=>{try{let s={USE_PROFILES:{svg:!0,svgFilters:!0},FORBID_ATTR:["onerror","onload","onclick","onmouseover","onmouseout","onmouseenter","onmouseleave","onmousemove","onmousedown","onmouseup","onwheel","onscroll","onkeydown","onkeyup","onkeypress","onfocus","onblur","onchange","onsubmit","on*"],FORBID_TAGS:["script","style","iframe","object","embed","form"]};return P.sanitize(l,s)}catch(s){return v.catch("Error in File utils sanitizeSvg: ",s),""}},M=l=>{try{return l.name.split(".").slice(0,-1).join(".")}catch(s){v.catch("Error in File utils getFileName: ",s);return}},R=l=>{try{return/(?:\.([^.]+))?$/.exec(l?.name)[1]}catch(s){v.catch("Error in File utils getFileExtension: ",s);return}},U=(l,s)=>{try{let d=l.slice(0,-1,l.type);return new File([d],s+"."+R(l),{type:l.type})}catch(d){v.catch("Error in File utils updateFile: ",d);return}};var F={mp4:"video/mp4",mov:"video/quicktime",avi:"video/x-msvideo",wmv:"video/x-ms-wmv",flv:"video/x-flv",mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",webm:"video/webm",mkv:"video/x-matroska",m4v:"video/x-m4v",m4a:"audio/x-m4a",aac:"audio/aac","3gp":"video/3gpp","3g2":"video/3gpp2",jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",gif:"image/gif",bmp:"image/bmp",svg:"image/svg+xml",webp:"image/webp",pdf:"application/pdf",doc:"application/msword",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",xls:"application/vnd.ms-excel",xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",ppt:"application/vnd.ms-powerpoint",pptx:"application/vnd.openxmlformats-officedocument.presentationml.presentation",odt:"application/vnd.oasis.opendocument.text",ods:"application/vnd.oasis.opendocument.spreadsheet",zip:"application/zip",rar:"application/x-rar-compressed",txt:"text/plain",rtf:"application/rtf",html:"text/html",htm:"text/html",csv:"text/csv",ics:"text/calendar",vcf:"text/x-vcard",js:"application/javascript",css:"text/css",json:"application/json",xml:"application/xml",swf:"application/x-shockwave-flash"};var ie=(()=>{let s=class s{constructor(t,e,o,i,c){this.authService=t,this.configService=e,this.coreActionsService=o,this.loggingService=i,this.attachmentResolverService=c,this.storage=y();try{this.configService.getApiKey$().subscribe(r=>{this.apiKey=r}),this.authService.getFirebaseConfig$().subscribe(r=>{if(r&&r.firebaseOptions?.storageBucket){this.storage=y(void 0,r?.firebaseOptions?.storageBucket);let a=this.configService.getProxyConfig();a?.storageHost&&(this.storage.host=a.storageHost)}},r=>{this.loggingService.catch("Error in StorageService constructor: ",r)})}catch(r){this.loggingService.catch("Error in StorageService constructor:",r)}}createAttachment({path:t,file:e}){try{let o=new I;o.name=e.name;let i=U(e,`${o.attachmentId}_${M(e)}`),c=`${this.apiKey}/${t}/${i?.name}`;return o.bucketPath=c,o.size=e.size,o.type=R(e),o?.type&&(o.mimeType=F[o?.type]),o}catch(o){return this.loggingService.catch("Error in StorageService createAttachment: ",o),null}}sanitizeSvgFile(t){return u(this,null,function*(){if(t.type===F.svg)try{let e=yield t.text(),o=z(e);return new File([o],t.name,{type:t.type})}catch(e){return this.loggingService.catch("Error in StorageService sanitizeSvgFile: ",e),t}return t})}uploadAttachmentToStorage(c){return u(this,arguments,function*({attachment:t,file:e,resolve:o,reject:i}){try{let r=g(this.storage,t.bucketPath),a=E(r,e,{cacheControl:"public,max-age=3600"});a.on("state_changed",n=>{let m=n.bytesTransferred/n.totalBytes*100},n=>{i(n)},()=>{S(a.snapshot.ref).then(n=>{t.url=n,o(t)})})}catch(r){this.loggingService.catch("Error in StorageService uploadAttachmentToStorage: ",r),i(r)}})}uploadToResolver(a){return u(this,arguments,function*({file:t,attachment:e,metadata:o,resolve:i,reject:c,scope:r}){try{o.attachmentId=e.attachmentId;let n={attachmentId:e.attachmentId,name:e.name,file:t,metadata:o,mimeType:e.mimeType},m=b();this.coreActionsService.triggerAction(T.ATTACHMENT_RESOLVER,{event:w.Events.Resolver.ATTACHMENT_SAVE_REQUEST_FORMED,timestamp:new Date().getTime(),uniqueId:m,methodName:x.UPLOAD_TO_RESOLVER,source:"internal",payload:{attachment:n,eventType:A.ATTACHMENT_ADD}});let p=yield this.attachmentResolverService.saveAttachment({attachment:n,eventType:A.ATTACHMENT_ADD},m,r);p&&p.data?.url?(e.url=p.data?.url,i(e)):c(new Error("Failed to upload attachment to resolver"))}catch(n){this.loggingService.catch("Error in StorageService uploadToResolver: ",n),c(n)}})}uploadFile({path:t,file:e,useAttachmentResolver:o,metadata:i,attachmentScope:c}){return new Promise((r,a)=>u(this,null,function*(){try{if(!this.apiKey)throw new Error("API key not configured");let n=yield this.sanitizeSvgFile(e),m=this.createAttachment({path:t,file:n});if(!m)throw new Error("Attachment not created");o?this.uploadToResolver({file:n,attachment:m,metadata:i,resolve:r,reject:a,scope:c}):this.uploadAttachmentToStorage({attachment:m,file:n,resolve:r,reject:a})}catch(n){this.loggingService.catch("Error in StorageService uploadFile:",n),a(n)}}))}uploadChunk(t,e,o,i){return new Promise((c,r)=>{try{if(i?.useAttachmentResolver){let a=this.createAttachment({path:t,file:e});if(!a){r(new Error("Attachment not created for chunk upload"));return}this.uploadToResolver({file:e,attachment:a,metadata:i.metadata,resolve:n=>c(n.url),reject:r,scope:i.attachmentScope});return}if(this.apiKey){let a=`${this.apiKey}/${t}/${e.name}`,n=g(this.storage,a),m=E(n,e,{cacheControl:"public,max-age=3600"});m.on("state_changed",p=>{let $=p.bytesTransferred/p.totalBytes*100},p=>{r(p)},()=>{S(m.snapshot.ref).then(p=>{c(p)}).catch(p=>{this.loggingService.catch(`[uploadChunk] Error getting download URL for chunk ${o}:`,p),r(p)})})}else{let a=new Error("API key not available");this.loggingService.catch("[uploadChunk] API key not available",a),r(a)}}catch(a){this.loggingService.catch(`[uploadChunk] Error in StorageService uploadChunk for chunk ${o}: `,a),r(a)}})}downloadAttachment(t){try{if(t.url){let e=new XMLHttpRequest;e.responseType="blob",e.onload=()=>{let o=e.response,i=document.createElement("a"),c=window.URL.createObjectURL(o);i.setAttribute("type","hidden"),i.setAttribute(C.ATTRIBUTES.VELT_DOWNLOAD_BUTTON,"true"),i.classList.add("snippyly-overlay-panel"),i.href=c,t?.name&&(i.download=t?.name),document.body.appendChild(i);let r=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1});i.dispatchEvent(r),window.URL.revokeObjectURL(c),i.remove()},e.onerror=()=>{window.open(t.url,"_blank")},e.open("GET",t.url),e.send()}}catch(e){this.loggingService.catch("Error in StorageService downloadAttachment: ",e)}}deleteAttachment({attachment:t,metadata:e,useAttachmentResolver:o,attachmentScope:i}){return new Promise((c,r)=>{if(o){let a=b();this.coreActionsService.triggerAction(T.ATTACHMENT_RESOLVER,{event:w.Events.Resolver.ATTACHMENT_DELETE_REQUEST_FORMED,timestamp:new Date().getTime(),uniqueId:a,methodName:x.DELETE_ATTACHMENT,source:"internal",payload:{attachmentId:t.attachmentId,metadata:e}}),this.attachmentResolverService.deleteAttachment({attachmentId:t.attachmentId,metadata:e},a,i).then(()=>{c(null)}).catch(n=>{r(n)})}else{let a=g(this.storage,t.bucketPath);f(a).then(()=>{c(null)}).catch(n=>{c(null)})}})}deleteFileFromPath(t){return new Promise((e,o)=>{let i=g(this.storage,t);f(i).then(()=>{e(null)}).catch(c=>{o(c)})})}};s.\u0275fac=function(e){return new(e||s)(h(_),h(O),h(D),h(L),h(N))},s.\u0275prov=k({token:s,factory:s.\u0275fac,providedIn:"root"});let l=s;return l})();export{ie as a};
@@ -0,0 +1,2 @@
1
+ import{Ab as a,Bb as h,Pa as o,Ua as c,db as m,pi as g,ui as l,wa as s}from"./chunk-YSZ3KMWW.js";var d=["*"],C=(()=>{let i=class i{constructor(t,e,n){this.elementRef=t,this.domService=e,this.loggingService=n,this.veltElement=!0}ngAfterViewInit(){try{this.customCssSubscription=this.domService.subscribeInjectCustomCss(this.elementRef)}catch(t){this.loggingService.catch("Error in ShadowDomComponent ngAfterViewInit: ",t)}}ngOnDestroy(){try{this.customCssSubscription?.unsubscribe()}catch(t){this.loggingService.catch("Error in ShadowDomComponent ngOnDestroy: ",t)}}};i.\u0275fac=function(e){return new(e||i)(o(s),o(l),o(g))},i.\u0275cmp=c({type:i,selectors:[["velt-shadow-dom-internal"]],hostVars:1,hostBindings:function(e,n){e&2&&m("data-velt-element",n.veltElement)},ngContentSelectors:d,decls:1,vars:0,template:function(e,n){e&1&&(a(),h(0))},styles:[`:host{width:100%}
2
+ `],encapsulation:3,changeDetection:0});let r=i;return r})();export{C as a};
@@ -0,0 +1 @@
1
+ import{D as E,Ha as R,Ja as S,Ka as F,Ma as l,T as b,bb as V,i as g,la as I,m as y,ra as v}from"./chunk-YSZ3KMWW.js";var Z={schedule(n,t){let e=setTimeout(n,t);return()=>clearTimeout(e)}};function D(n){return n.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}function M(n){return!!n&&n.nodeType===Node.ELEMENT_NODE}var h;function T(n,t){if(!h){let e=Element.prototype;h=e.matches||e.matchesSelector||e.mozMatchesSelector||e.msMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector}return n.nodeType===Node.ELEMENT_NODE?h.call(n,t):!1}function C(n){let t={};return n.forEach(({propName:e,templateName:s,transform:r})=>{t[D(s)]=[e,r]}),t}function _(n,t){return t.get(l).resolveComponentFactory(n).inputs}function x(n,t){let e=n.childNodes,s=t.map(()=>[]),r=-1;t.some((c,u)=>c==="*"?(r=u,!0):!1);for(let c=0,u=e.length;c<u;++c){let o=e[c],i=O(o,t,r);i!==-1&&s[i].push(o)}return s}function O(n,t,e){let s=e;return M(n)&&t.some((r,c)=>r!=="*"&&T(n,r)?(s=c,!0):!1),s}var N=10,p=class{componentFactory;inputMap=new Map;constructor(t,e){this.componentFactory=e.get(l).resolveComponentFactory(t);for(let s of this.componentFactory.inputs)this.inputMap.set(s.propName,s.templateName)}create(t){return new m(this.componentFactory,t,this.inputMap)}},m=class{componentFactory;injector;inputMap;eventEmitters=new y(1);events=this.eventEmitters.pipe(b(t=>E(...t)));componentRef=null;scheduledDestroyFn=null;initialInputValues=new Map;ngZone;elementZone;appRef;cdScheduler;constructor(t,e,s){this.componentFactory=t,this.injector=e,this.inputMap=s,this.ngZone=this.injector.get(R),this.appRef=this.injector.get(V),this.cdScheduler=e.get(v),this.elementZone=typeof Zone>"u"?null:this.ngZone.run(()=>Zone.current)}connect(t){this.runInZone(()=>{if(this.scheduledDestroyFn!==null){this.scheduledDestroyFn(),this.scheduledDestroyFn=null;return}this.componentRef===null&&this.initializeComponent(t)})}disconnect(){this.runInZone(()=>{this.componentRef===null||this.scheduledDestroyFn!==null||(this.scheduledDestroyFn=Z.schedule(()=>{this.componentRef!==null&&(this.componentRef.destroy(),this.componentRef=null)},N))})}getInputValue(t){return this.runInZone(()=>this.componentRef===null?this.initialInputValues.get(t):this.componentRef.instance[t])}setInputValue(t,e){if(this.componentRef===null){this.initialInputValues.set(t,e);return}this.runInZone(()=>{this.componentRef.setInput(this.inputMap.get(t)??t,e),S(this.componentRef.hostView)&&(F(this.componentRef.changeDetectorRef),this.cdScheduler.notify(6))})}initializeComponent(t){let e=I.create({providers:[],parent:this.injector}),s=x(t,this.componentFactory.ngContentSelectors);this.componentRef=this.componentFactory.create(e,s,t),this.initializeInputs(),this.initializeOutputs(this.componentRef),this.appRef.attachView(this.componentRef.hostView),this.componentRef.hostView.detectChanges()}initializeInputs(){for(let[t,e]of this.initialInputValues)this.setInputValue(t,e);this.initialInputValues.clear()}initializeOutputs(t){let e=this.componentFactory.outputs.map(({propName:s,templateName:r})=>{let c=t.instance[s];return new g(u=>{let o=c.subscribe(i=>u.next({name:r,value:i}));return()=>o.unsubscribe()})});this.eventEmitters.next(e)}runInZone(t){return this.elementZone&&Zone.current!==this.elementZone?this.ngZone.run(t):t()}},f=class extends HTMLElement{ngElementEventsSubscription=null};function L(n,t){let e=_(n,t.injector),s=t.strategyFactory||new p(n,t.injector),r=C(e);class c extends f{injector;static observedAttributes=Object.keys(r);get ngElementStrategy(){if(!this._ngElementStrategy){let o=this._ngElementStrategy=s.create(this.injector||t.injector);e.forEach(({propName:i,transform:a})=>{if(!this.hasOwnProperty(i))return;let d=this[i];delete this[i],o.setInputValue(i,d,a)})}return this._ngElementStrategy}_ngElementStrategy;constructor(o){super(),this.injector=o}attributeChangedCallback(o,i,a,d){let[w,j]=r[o];this.ngElementStrategy.setInputValue(w,a,j)}connectedCallback(){let o=!1;this.ngElementStrategy.events&&(this.subscribeToEvents(),o=!0),this.ngElementStrategy.connect(this),o||this.subscribeToEvents()}disconnectedCallback(){this._ngElementStrategy&&this._ngElementStrategy.disconnect(),this.ngElementEventsSubscription&&(this.ngElementEventsSubscription.unsubscribe(),this.ngElementEventsSubscription=null)}subscribeToEvents(){this.ngElementEventsSubscription=this.ngElementStrategy.events.subscribe(o=>{let i=new CustomEvent(o.name,{detail:o.value});this.dispatchEvent(i)})}}return e.forEach(({propName:u,transform:o})=>{Object.defineProperty(c.prototype,u,{get(){return this.ngElementStrategy.getInputValue(u)},set(i){this.ngElementStrategy.setInputValue(u,i,o)},configurable:!0,enumerable:!0})}),c}export{L as a};
@@ -0,0 +1 @@
1
+ import{Pa as c,Xa as o,ui as s}from"./chunk-YSZ3KMWW.js";var n=(()=>{let r=class r{constructor(t){this.domService=t}transform(t){try{return this.domService.sanitizeHtml(t)}catch{return t}}};r.\u0275fac=function(i){return new(i||r)(c(s,16))},r.\u0275pipe=o({name:"sanitizeHtml",type:r,pure:!0});let e=r;return e})();export{n as a};
@@ -0,0 +1 @@
1
+ import{x as F}from"./chunk-HXAQVCSE.js";import{b as G}from"./chunk-ISXOVSY6.js";import{W as H,X as A,Y as L,ea as R}from"./chunk-Y3NTQA6R.js";import{$ as E,Fa as n,Gc as j,Hc as T,Ib as x,Ic as $,Nb as l,Pa as h,Pb as v,Ua as V,_a as u,_e as N,a as I,ca as D,db as B,ja as m,ka as P,kc as d,l as y,lb as p,lc as c,mb as a,nb as o,ob as g,pc as M,pi as f,r as S,sb as k,tb as b,wa as O,zb as _}from"./chunk-YSZ3KMWW.js";function K(t,r){t&1&&(m(),a(0,"svg",16),g(1,"rect",17)(2,"path",18)(3,"path",19)(4,"rect",20)(5,"path",21),o())}function Q(t,r){t&1&&(m(),a(0,"svg",16),g(1,"rect",22)(2,"path",23)(3,"path",19)(4,"rect",20)(5,"path",21),o())}function X(t,r){if(t&1&&(k(0),a(1,"div",6)(2,"div",7),u(3,K,6,0,"svg",8)(4,Q,6,0,"ng-template",null,1,M),o(),a(6,"div",9),l(7),d(8,"translate"),g(9,"br"),l(10),d(11,"translate"),o(),a(12,"div",10)(13,"p"),l(14),d(15,"translate"),m(),a(16,"svg",11),g(17,"path",12)(18,"path",13)(19,"path",14)(20,"path",15),o(),l(21),d(22,"translate"),o(),P(),a(23,"p"),l(24),d(25,"translate"),o()()(),b()),t&2){let C=x(5),i=_();n(3),p("ngIf",i.darkMode)("ngIfElse",C),n(4),v(" ",c(8,7,"Allow mic permission to")),n(3),v("",c(11,9,"enable your audio")," "),n(4),v(" ",c(15,11,"1. Click the")," "),n(7),v(" ",c(22,13,"page info icon in your browser\u2019s address bar")," "),n(3),v(" ",c(25,15,"2. Turn on Microphone")," ")}}function Y(t,r){t&1&&(m(),a(0,"svg",16),g(1,"rect",17)(2,"path",24)(3,"path",19)(4,"rect",20)(5,"path",21),o())}function ee(t,r){t&1&&(m(),a(0,"svg",16),g(1,"rect",22)(2,"path",25)(3,"path",19)(4,"rect",20)(5,"path",21),o())}function te(t,r){if(t&1&&(k(0),a(1,"div",6)(2,"div",7),u(3,Y,6,0,"svg",8)(4,ee,6,0,"ng-template",null,2,M),o(),a(6,"div",9),l(7),d(8,"translate"),g(9,"br"),l(10),d(11,"translate"),o(),a(12,"div",10)(13,"p"),l(14),d(15,"translate"),m(),a(16,"svg",11),g(17,"path",12)(18,"path",13)(19,"path",14)(20,"path",15),o(),l(21),d(22,"translate"),o(),P(),a(23,"p"),l(24),d(25,"translate"),o()()(),b()),t&2){let C=x(5),i=_();n(3),p("ngIf",i.darkMode)("ngIfElse",C),n(4),v(" ",c(8,7,"Allow camera permission")),n(3),v("",c(11,9,"to enable your video")," "),n(4),v(" ",c(15,11,"1. Click the")," "),n(7),v(" ",c(22,13,"page info icon in your browser\u2019s address bar")," "),n(3),v(" ",c(25,15,"2. Turn on Camera")," ")}}var z=(()=>{let r=class r{constructor(i,e,s,w,W){this.loggingService=i,this.themeService=e,this.elementRef=s,this.matDialogRef=w,this.data=W,this.veltElement=!0,this.darkMode=!0;try{this.loggingService.log("%c[WB] Creating CLASS: DevicePermissionDeniedDialogComponent","color: blue;"),this.type=this.data?.type,[!0,!1].includes(this.data?.darkMode)&&(this.darkMode=this.data?.darkMode)}catch(Z){this.loggingService.catch("Error in DevicePermissionDeniedDialogComponent constructor: ",Z)}}ngOnDestroy(){}};r.\u0275fac=function(e){return new(e||r)(h(f),h(R),h(O),h(H,8),h(A,8))},r.\u0275cmp=V({type:r,selectors:[["velt-device-permission-denied-dialog-internal"]],hostVars:1,hostBindings:function(e,s){e&2&&B("data-velt-element",s.veltElement)},inputs:{type:"type"},standalone:!1,decls:5,vars:5,consts:[["devicePermissionDialogRef",""],["defaultAudioIcon",""],["defaultVideoIcon",""],[1,"velt-device-permission-denied-dialog--container",3,"snippylyOverlay","snippylyOverlayZIndex"],[3,"ngSwitch"],[4,"ngSwitchCase"],[1,"velt-device-permission-denied-dialog"],[1,"velt-device-permission-denied-dialog--icon"],["width","61","height","60","viewBox","0 0 61 60","fill","none","xmlns","http://www.w3.org/2000/svg",4,"ngIf","ngIfElse"],[1,"velt-device-permission-denied-dialog--header"],[1,"velt-device-permission-denied-dialog--content"],["width","13","height","12","viewBox","0 0 13 12","fill","none","xmlns","http://www.w3.org/2000/svg",1,"velt-device-permission-denied-dialog--page-info-icon"],["d","M4.375 2.5C4.375 3.53553 3.53553 4.375 2.5 4.375C1.46447 4.375 0.625 3.53553 0.625 2.5C0.625 1.46447 1.46447 0.625 2.5 0.625C3.53553 0.625 4.375 1.46447 4.375 2.5Z","stroke","currentColor","stroke-opacity","0.6","stroke-width","1.25"],["d","M5 2.5H12.5","stroke","currentColor","stroke-opacity","0.6","stroke-width","1.25"],["d","M0 8.75H7.5","stroke","currentColor","stroke-opacity","0.6","stroke-width","1.25"],["d","M11.875 8.75C11.875 9.78553 11.0355 10.625 10 10.625C8.96447 10.625 8.125 9.78553 8.125 8.75C8.125 7.71447 8.96447 6.875 10 6.875C11.0355 6.875 11.875 7.71447 11.875 8.75Z","stroke","currentColor","stroke-opacity","0.6","stroke-width","1.25"],["width","61","height","60","viewBox","0 0 61 60","fill","none","xmlns","http://www.w3.org/2000/svg"],["x","0.5","y","4","width","56","height","56","rx","28","fill","white","fill-opacity","0.04"],["d","M23.5026 20.333C23.5026 19.0069 24.0294 17.7352 24.9671 16.7975C25.9048 15.8598 27.1765 15.333 28.5026 15.333C29.8287 15.333 31.1005 15.8598 32.0381 16.7975C32.9758 17.7352 33.5026 19.0069 33.5026 20.333V28.6663C33.5027 29.1599 33.4297 29.6508 33.2859 30.123M29.9526 33.4563C29.2054 33.6828 28.4155 33.7311 27.6463 33.5973C26.8771 33.4636 26.1499 33.1516 25.5229 32.6863C24.8959 32.2211 24.3866 31.6154 24.0358 30.9179C23.685 30.2204 23.5024 29.4504 23.5026 28.6697V27.003M16.8359 28.6663C16.8356 30.7719 17.405 32.8383 18.484 34.6465C19.5629 36.4546 21.111 37.9371 22.9642 38.9366C24.8174 39.9362 26.9066 40.4156 29.0102 40.324C31.1137 40.2324 33.1533 39.5732 34.9126 38.4163M38.2459 35.083C39.5023 33.1791 40.1701 30.9474 40.1659 28.6663M21.8359 46.9997H35.1693M28.5026 40.333V46.9997","stroke","white","stroke-opacity","0.52","stroke-width","2.5","stroke-linecap","round","stroke-linejoin","round"],["d","M13.5 17L43.5 47","stroke","currentColor","stroke-width","2.5","stroke-linecap","round","stroke-linejoin","round"],["x","36.5","width","24","height","24","rx","12","fill","currentColor"],["d","M48.5 18.99V19M48.5 14V5","stroke","white","stroke-width","2.5","stroke-linecap","round","stroke-linejoin","round"],["x","0.5","y","4","width","56","height","56","rx","28","fill","black","fill-opacity","0.04"],["d","M23.5026 20.333C23.5026 19.0069 24.0294 17.7352 24.9671 16.7975C25.9048 15.8598 27.1765 15.333 28.5026 15.333C29.8287 15.333 31.1005 15.8598 32.0381 16.7975C32.9758 17.7352 33.5026 19.0069 33.5026 20.333V28.6663C33.5027 29.1599 33.4297 29.6508 33.2859 30.123M29.9526 33.4563C29.2054 33.6828 28.4155 33.7311 27.6463 33.5973C26.8771 33.4636 26.1499 33.1516 25.5229 32.6863C24.8959 32.2211 24.3866 31.6154 24.0358 30.9179C23.685 30.2204 23.5024 29.4504 23.5026 28.6697V27.003M16.8359 28.6663C16.8356 30.7719 17.405 32.8383 18.484 34.6465C19.5629 36.4546 21.111 37.9371 22.9642 38.9366C24.8174 39.9362 26.9066 40.4156 29.0102 40.324C31.1137 40.2324 33.1533 39.5732 34.9126 38.4163M38.2459 35.083C39.5023 33.1791 40.1701 30.9474 40.1659 28.6663M21.8359 46.9997H35.1693M28.5026 40.333V46.9997","stroke","black","stroke-opacity","0.52","stroke-width","2.5","stroke-linecap","round","stroke-linejoin","round"],["d","M42.375 39.2135C42.7034 39.1007 42.9883 38.8881 43.19 38.6054C43.3917 38.3227 43.5001 37.9841 43.5 37.6369V26.3635C43.4998 26.0795 43.4271 25.8003 43.2888 25.5523C43.1504 25.3043 42.9509 25.0958 42.7093 24.9465C42.4677 24.7973 42.192 24.7122 41.9083 24.6994C41.6246 24.6867 41.3424 24.7466 41.0883 24.8735L33.5 28.6669V30.3335V25.3333C33.5 24.4493 33.1488 23.6014 32.5237 22.9763C31.8986 22.3512 31.0507 22 30.1667 22H25.1667M33.5 37V38.6667C33.5 39.5507 33.1488 40.3986 32.5237 41.0237C31.8986 41.6488 31.0507 42 30.1667 42H16.8333C15.9493 42 15.1014 41.6488 14.4763 41.0237C13.8512 40.3986 13.5 39.5507 13.5 38.6667V25.3333C13.5 24.4493 13.8512 23.6014 14.4763 22.9763C15.1014 22.3512 15.9493 22 16.8333 22H18.5","stroke","white","stroke-opacity","0.52","stroke-width","2.5","stroke-linecap","round","stroke-linejoin","round"],["d","M42.375 39.2135C42.7034 39.1007 42.9883 38.8881 43.19 38.6054C43.3917 38.3227 43.5001 37.9841 43.5 37.6369V26.3635C43.4998 26.0795 43.4271 25.8003 43.2888 25.5523C43.1504 25.3043 42.9509 25.0958 42.7093 24.9465C42.4677 24.7973 42.192 24.7122 41.9083 24.6994C41.6246 24.6867 41.3424 24.7466 41.0883 24.8735L33.5 28.6669V30.3335V25.3333C33.5 24.4493 33.1488 23.6014 32.5237 22.9763C31.8986 22.3512 31.0507 22 30.1667 22H25.1667M33.5 37V38.6667C33.5 39.5507 33.1488 40.3986 32.5237 41.0237C31.8986 41.6488 31.0507 42 30.1667 42H16.8333C15.9493 42 15.1014 41.6488 14.4763 41.0237C13.8512 40.3986 13.5 39.5507 13.5 38.6667V25.3333C13.5 24.4493 13.8512 23.6014 14.4763 22.9763C15.1014 22.3512 15.9493 22 16.8333 22H18.5","stroke","currentColor","stroke-opacity","0.52","stroke-width","2.5","stroke-linecap","round","stroke-linejoin","round"]],template:function(e,s){if(e&1&&(a(0,"div",3,0),k(2,4),u(3,X,26,17,"ng-container",5)(4,te,26,17,"ng-container",5),b(),o()),e&2){let w=x(1);p("snippylyOverlay",w)("snippylyOverlayZIndex",3e3),n(2),p("ngSwitch",s.type),n(),p("ngSwitchCase","audio"),n(),p("ngSwitchCase","video")}},dependencies:[j,T,$,F,G],styles:["html[_ngcontent-%COMP%]{--velt-base-rem-unit: 1}*[data-snippyly-element=true][_ngcontent-%COMP%], *[data-velt-element=true][_ngcontent-%COMP%]{font-family:var(--velt-default-font-family)}velt-wireframe[_ngcontent-%COMP%]{display:none!important}body.velt-pin-dragging[_ngcontent-%COMP%] iframe[_ngcontent-%COMP%]{pointer-events:none!important}[_nghost-%COMP%]{--velt-green: var(--velt-light-mode-green);--velt-magenta: var(--velt-light-mode-magenta);--velt-amber: var(--velt-light-mode-amber);--velt-purple: var(--velt-light-mode-purple);--velt-cyan: var(--velt-light-mode-cyan);--velt-orange: var(--velt-light-mode-orange);--velt-black: var(--velt-light-mode-black);--velt-white: var(--velt-light-mode-white);--velt-gray: var(--velt-light-mode-gray);--velt-error: var(--velt-light-mode-error);--velt-error-hover: var(--velt-light-mode-error-hover);--velt-error-foreground: var(--velt-light-mode-error-foreground);--velt-error-light: var(--velt-light-mode-error-light);--velt-error-transparent: var(--velt-light-mode-error-transparent);--velt-warning: var(--velt-light-mode-warning);--velt-warning-hover: var(--velt-light-mode-warning-hover);--velt-warning-foreground: var(--velt-light-mode-warning-foreground);--velt-warning-light: var(--velt-light-mode-warning-light);--velt-warning-transparent: var(--velt-light-mode-warning-transparent);--velt-agent-accent: #4495ff;--velt-agent-accent-transparent: rgba(68, 149, 255, .2);--velt-success: var(--velt-light-mode-success);--velt-success-hover: var(--velt-light-mode-success-hover);--velt-success-foreground: var(--velt-light-mode-success-foreground);--velt-success-light: var(--velt-light-mode-success-light);--velt-success-transparent: var(--velt-light-mode-success-transparent);--velt-accent: var(--velt-light-mode-accent);--velt-accent-text: var(--velt-light-mode-accent-text);--velt-accent-hover: var(--velt-light-mode-accent-hover);--velt-accent-foreground: var(--velt-light-mode-accent-foreground);--velt-accent-light: var(--velt-light-mode-accent-light);--velt-accent-transparent: var(--velt-light-mode-accent-transparent);--velt-text-0: var(--velt-light-mode-text-0);--velt-text-1: var(--velt-light-mode-text-1);--velt-text-2: var(--velt-light-mode-text-2);--velt-text-3: var(--velt-light-mode-text-3);--velt-text-4: var(--velt-light-mode-text-4);--velt-text-5: var(--velt-light-mode-text-5);--velt-text-6: var(--velt-light-mode-text-6);--velt-text-7: var(--velt-light-mode-text-7);--velt-text-8: var(--velt-light-mode-text-8);--velt-text-9: var(--velt-light-mode-text-9);--velt-text-10: var(--velt-light-mode-text-10);--velt-text-11: var(--velt-light-mode-text-11);--velt-text-12: var(--velt-light-mode-text-12);--velt-background-0: var(--velt-light-mode-background-0);--velt-background-1: var(--velt-light-mode-background-1);--velt-background-2: var(--velt-light-mode-background-2);--velt-background-3: var(--velt-light-mode-background-3);--velt-background-4: var(--velt-light-mode-background-4);--velt-background-5: var(--velt-light-mode-background-5);--velt-background-6: var(--velt-light-mode-background-6);--velt-background-7: var(--velt-light-mode-background-7);--velt-background-8: var(--velt-light-mode-background-8);--velt-background-9: var(--velt-light-mode-background-9);--velt-background-10: var(--velt-light-mode-background-10);--velt-border-0: var(--velt-light-mode-border-0);--velt-border-1: var(--velt-light-mode-border-1);--velt-border-2: var(--velt-light-mode-border-2);--velt-border-3: var(--velt-light-mode-border-3);--velt-border-4: var(--velt-light-mode-border-4);--velt-border-5: var(--velt-light-mode-border-5);--velt-border-6: var(--velt-light-mode-border-6);--velt-border-7: var(--velt-light-mode-border-7);--velt-border-8: var(--velt-light-mode-border-8);--velt-border-9: var(--velt-light-mode-border-9);--velt-border-10: var(--velt-light-mode-border-10);--velt-background-transparent: var(--velt-light-mode-background-transparent);--velt-border-transparent: var(--velt-light-mode-border-transparent);--velt-animation-transparent: var(--velt-light-mode-animation-transparent)}[dark][_nghost-%COMP%]{--velt-green: var(--velt-dark-mode-green);--velt-magenta: var(--velt-dark-mode-magenta);--velt-amber: var(--velt-dark-mode-amber);--velt-purple: var(--velt-dark-mode-purple);--velt-cyan: var(--velt-dark-mode-cyan);--velt-orange: var(--velt-dark-mode-orange);--velt-black: var(--velt-dark-mode-black);--velt-white: var(--velt-dark-mode-white);--velt-gray: var(--velt-dark-mode-gray);--velt-error: var(--velt-dark-mode-error);--velt-error-hover: var(--velt-dark-mode-error-hover);--velt-error-foreground: var(--velt-dark-mode-error-foreground);--velt-error-light: var(--velt-dark-mode-error-light);--velt-error-transparent: var(--velt-dark-mode-error-transparent);--velt-warning: var(--velt-dark-mode-warning);--velt-warning-hover: var(--velt-dark-mode-warning-hover);--velt-warning-foreground: var(--velt-dark-mode-warning-foreground);--velt-warning-light: var(--velt-dark-mode-warning-light);--velt-warning-transparent: var(--velt-dark-mode-warning-transparent);--velt-agent-accent: #4495ff;--velt-agent-accent-transparent: rgba(68, 149, 255, .2);--velt-success: var(--velt-dark-mode-success);--velt-success-hover: var(--velt-dark-mode-success-hover);--velt-success-foreground: var(--velt-dark-mode-success-foreground);--velt-success-light: var(--velt-dark-mode-success-light);--velt-success-transparent: var(--velt-dark-mode-success-transparent);--velt-accent: var(--velt-dark-mode-accent);--velt-accent-text: var(--velt-dark-mode-accent-text);--velt-accent-hover: var(--velt-dark-mode-accent-hover);--velt-accent-foreground: var(--velt-dark-mode-accent-foreground);--velt-accent-light: var(--velt-dark-mode-accent-light);--velt-accent-transparent: var(--velt-dark-mode-accent-transparent);--velt-text-0: var(--velt-dark-mode-text-0);--velt-text-1: var(--velt-dark-mode-text-1);--velt-text-2: var(--velt-dark-mode-text-2);--velt-text-3: var(--velt-dark-mode-text-3);--velt-text-4: var(--velt-dark-mode-text-4);--velt-text-5: var(--velt-dark-mode-text-5);--velt-text-6: var(--velt-dark-mode-text-6);--velt-text-7: var(--velt-dark-mode-text-7);--velt-text-8: var(--velt-dark-mode-text-8);--velt-text-9: var(--velt-dark-mode-text-9);--velt-text-10: var(--velt-dark-mode-text-10);--velt-text-11: var(--velt-dark-mode-text-11);--velt-text-12: var(--velt-dark-mode-text-12);--velt-background-0: var(--velt-dark-mode-background-0);--velt-background-1: var(--velt-dark-mode-background-1);--velt-background-2: var(--velt-dark-mode-background-2);--velt-background-3: var(--velt-dark-mode-background-3);--velt-background-4: var(--velt-dark-mode-background-4);--velt-background-5: var(--velt-dark-mode-background-5);--velt-background-6: var(--velt-dark-mode-background-6);--velt-background-7: var(--velt-dark-mode-background-7);--velt-background-8: var(--velt-dark-mode-background-8);--velt-background-9: var(--velt-dark-mode-background-9);--velt-background-10: var(--velt-dark-mode-background-10);--velt-border-0: var(--velt-dark-mode-border-0);--velt-border-1: var(--velt-dark-mode-border-1);--velt-border-2: var(--velt-dark-mode-border-2);--velt-border-3: var(--velt-dark-mode-border-3);--velt-border-4: var(--velt-dark-mode-border-4);--velt-border-5: var(--velt-dark-mode-border-5);--velt-border-6: var(--velt-dark-mode-border-6);--velt-border-7: var(--velt-dark-mode-border-7);--velt-border-8: var(--velt-dark-mode-border-8);--velt-border-9: var(--velt-dark-mode-border-9);--velt-border-10: var(--velt-dark-mode-border-10);--velt-background-transparent: var(--velt-dark-mode-background-transparent);--velt-border-transparent: var(--velt-dark-mode-border-transparent);--velt-animation-transparent: var(--velt-dark-mode-animation-transparent)} .velt-mat-dialog-container.velt-device-permission-denied-dialog--panel mat-dialog-container .mat-mdc-dialog-surface.mdc-dialog__surface{padding:0;background-color:transparent;box-shadow:none;overflow:unset}.velt-device-permission-denied-dialog[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:var(--velt-spacing-lg);align-items:center;justify-content:center;padding:4rem;box-sizing:border-box;word-break:break-word;max-width:600px;max-height:400px;text-align:center;background-color:var(--velt-background-0);border-radius:var(--velt-border-radius-2xl);box-shadow:0 calc((4rem + 0px) * var(--velt-base-rem-unit)) calc((4rem + 0px) * var(--velt-base-rem-unit)) calc((-3rem + 0px) * var(--velt-base-rem-unit)) #1f2f461f}.velt-device-permission-denied-dialog[_ngcontent-%COMP%] .velt-device-permission-denied-dialog--icon[_ngcontent-%COMP%]{color:var(--velt-error)}.velt-device-permission-denied-dialog[_ngcontent-%COMP%] .velt-device-permission-denied-dialog--header[_ngcontent-%COMP%]{font-size:var(--velt-font-size-lg);font-weight:600;line-height:36px;letter-spacing:-.02em;text-align:center;color:var(--velt-text-0)}.velt-device-permission-denied-dialog[_ngcontent-%COMP%] .velt-device-permission-denied-dialog--content[_ngcontent-%COMP%]{font-size:var(--velt-font-size-sm);font-weight:400;line-height:21px;text-align:center;color:var(--velt-text-0)}.velt-device-permission-denied-dialog[_ngcontent-%COMP%] .velt-device-permission-denied-dialog--content[_ngcontent-%COMP%] .velt-device-permission-denied-dialog--page-info-icon[_ngcontent-%COMP%]{margin-left:var(--velt-spacing-sm);margin-right:var(--velt-spacing-sm);color:var(--velt-error)}"],changeDetection:0});let t=r;return t})();var me=(()=>{let r=class r{constructor(i,e){this.loggingService=i,this.matDialog=e,this.audioPermissionState$=new y(null),this.videoPermissionState$=new y(null);try{this.loggingService.log("%c[WB] Creating CLASS: DevicePermissionService","color: blue;"),this.checkPermissions()}catch(s){this.loggingService.catch("Error in DevicePermissionService constructor: ",s)}}checkPermissions(){try{this.loggingService.log("%c[WB] Calling DevicePermissionService FUNCTION: checkPermissions","color: green;"),new N().browserName!=="Firefox"&&(navigator.permissions.query({name:"microphone"}).then(e=>{this.audioPermissionState$.next(e.state),e.onchange=()=>{this.audioPermissionState$.next(e.state)}}).catch(e=>{}),navigator.permissions.query({name:"camera"}).then(e=>{this.videoPermissionState$.next(e.state),e.onchange=()=>{this.videoPermissionState$.next(e.state)}}).catch(e=>{}))}catch(i){this.loggingService.catch("Error in DevicePermissionService checkPermissions: ",i)}}getPermissionState$(i){try{switch(this.loggingService.log("%c[WB] Calling DevicePermissionService FUNCTION: getPermissionState$","color: green;"),i){case"audio":return this.getAudioPermissionState$();case"video":return this.getVideoPermissionState$();default:return S(null)}}catch(e){return this.loggingService.catch("Error in DevicePermissionService getPermissionState$: ",e),S(null)}}getAudioPermissionState$(){return this.audioPermissionState$.asObservable()}getVideoPermissionState$(){return this.videoPermissionState$.asObservable()}openDevicePermissionDeniedDialog(i,e){try{this.loggingService.log("%c[WB] Calling DevicePermissionService FUNCTION: openDevicePermissionDeniedDialog","color: green;"),this.matDialog.open(z,{panelClass:["velt-device-permission-denied-dialog--panel","velt-mat-dialog-container"],backdropClass:["velt-device-permission-denied-dialog--backdrop","s-background-blur-1"],data:I({type:i},e||{})})}catch(s){this.loggingService.catch("Error in DevicePermissionService openDevicePermissionDeniedDialog: ",s)}}};r.\u0275fac=function(e){return new(e||r)(D(f),D(L))},r.\u0275prov=E({token:r,factory:r.\u0275fac,providedIn:"root"});let t=r;return t})();export{me as a};
@@ -0,0 +1 @@
1
+ import{Ga as c,Pa as n,Wa as o,ua as a,ui as h,wa as r}from"./chunk-YSZ3KMWW.js";var I=(()=>{let e=class e{constructor(t,i){this.domService=t,this.elementRef=i,this.clickOutside=new c}ngOnInit(){}ngAfterViewInit(){setTimeout(()=>{this.subscription=this.domService.onDocumentClickSubject$().subscribe(t=>{let i=this.checkInsideClick(t,this.elementRef.nativeElement);!i&&this.clickOutsideHandler&&typeof this.clickOutsideHandler=="function"&&(i=this.clickOutsideHandler(t.target,this.elementRef.nativeElement)),i||this.clickOutside.emit()})},500)}ngOnDestroy(){this.subscription?.unsubscribe()}checkInsideClick(t,i){return t.composedPath().includes(i)}};e.\u0275fac=function(i){return new(i||e)(n(h),n(r))},e.\u0275dir=o({type:e,selectors:[["","snippylyClickOutside",""]],inputs:{clickOutsideHandler:"clickOutsideHandler"},outputs:{clickOutside:"clickOutside"}});let s=e;return s})();var b=(()=>{let e=class e{constructor(t){this.elementRef=t,this.lastPosition=null,this.positionChange=new c,this.disabled=!1,this.timeSpentInMs=0,this.MAX_TIME_SPENT_IN_MS=6e4}ngAfterViewInit(){try{this.toggleTrackingPosition()}catch{}}toggleTrackingPosition(){try{this.disabled?this.stopTracking():this.startTrackingPosition()}catch{}}startTrackingPosition(){try{if(this.intervalId)return;this.intervalId=setInterval(()=>{if(this.timeSpentInMs+=10,this.timeSpentInMs>this.MAX_TIME_SPENT_IN_MS){this.stopTracking();return}let t=this.elementRef.nativeElement.getBoundingClientRect();(!this.lastPosition||!this.arePositionsEqual(this.lastPosition,t))&&(this.lastPosition=t,this.positionChange.emit(t))},10)}catch{}}stopTracking(){try{this.intervalId&&(clearInterval(this.intervalId),this.intervalId=null,this.timeSpentInMs=0)}catch{}}arePositionsEqual(t,i){try{return t.top===i.top&&t.left===i.left&&t.bottom===i.bottom&&t.right===i.right&&t.width===i.width&&t.height===i.height}catch{return!0}}ngOnChanges(){try{this.toggleTrackingPosition()}catch{}}ngOnDestroy(){try{this.stopTracking()}catch{}}};e.\u0275fac=function(i){return new(i||e)(n(r))},e.\u0275dir=o({type:e,selectors:[["","veltPositionObserver",""]],inputs:{disabled:[0,"veltPositionObserverDisabled","disabled"]},outputs:{positionChange:"positionChange"},features:[a]});let s=e;return s})();export{I as a,b};
@@ -0,0 +1,13 @@
1
+ import{b as G}from"./chunk-NW7YF5JV.js";import{$ as O,C as w,Ci as _,E as g,Hi as x,L as S,M as P,Pd as W,Pi as Q,Qf as D,Qi as Y,Rd as y,S as j,Sd as U,T as H,Ud as $,W as E,Wd as C,_d as A,ca as u,g as k,l as z,p as B,pi as M,qi as N,r as h,ui as R,v as b,vi as K,w as F,xh as L}from"./chunk-YSZ3KMWW.js";var he=(()=>{let m=class m{constructor(e,t,r,s,o,c,n,i,d){this.authService=e,this.commonDbService=t,this.databaseService=r,this.docService=s,this.domService=o,this.loggingService=c,this.metadataService=n,this.commonDbUtils=i,this.configService=d,this.HEARTBEAT_DURATION=5*1e3,this.heartbeatEnabled$=new z(!1),this.subscriptions=[],this.heartbeatCreatedTimestamps=new Map,this.initializedHeartbeatIds=new Set;try{this.loggingService.log("%c[WB] Creating CLASS: HeartbeatService","color: blue;"),this.heartbeatEnabled$.pipe(S()).subscribe(a=>{a?this.setupHeartbeat():this.teardownHeartbeat()}),this.docService.addPreDocumentIdChangeFunction("heartbeat-service",a=>a?.documentId?this.removeDocumentHeartbeat(a):Promise.resolve())}catch(a){this.loggingService.catch("Error in HeartbeatService constructor: ",a)}}setupWebWorker(e){try{let t=`
2
+ let intervalId;
3
+ self.addEventListener('message', (event) => {
4
+ if (event.data === 'start') {
5
+ if (intervalId) clearInterval(intervalId);
6
+ intervalId = setInterval(() => {
7
+ self.postMessage('tick');
8
+ }, ${e});
9
+ } else if (event.data === 'stop') {
10
+ if (intervalId) clearInterval(intervalId);
11
+ }
12
+ });
13
+ `;if(typeof Worker<"u"){let r=new Blob([t],{type:"application/javascript"});return new Worker(URL.createObjectURL(r))}return}catch(t){this.loggingService.catch("Error in HeartbeatService setupWebWorker: ",t);return}}setupHeartbeat(){try{if(this.loggingService.log("%c[WB] Calling FUNCTION: setupHeartbeat","color: green;"),this.worker=this.setupWebWorker(this.HEARTBEAT_DURATION),this.worker){this.worker.onmessage=()=>{this.authService.getUser()&&this.sendHeartbeat()};let r=this.authService.getUser$().subscribe(s=>{s?(this.worker?.postMessage("start"),this.sendHeartbeat()):this.worker?.postMessage("stop")});this.subscriptions.push(r)}else{let r=this.authService.getUser$().pipe(H(s=>s?w(this.HEARTBEAT_DURATION).pipe(j(0)):B)).subscribe(()=>this.sendHeartbeat());this.subscriptions.push(r)}let e=this.docService.getDocumentPaths$().pipe(g(r=>!!r),E(()=>this.sendHeartbeat())).subscribe();this.subscriptions.push(e);let t=F([this.databaseService.getDb().pipe(g(r=>!!r)),this.authService.getUser$(),this.docService.getDocumentPaths$()]).pipe(P(),E(([[r,s,o],[c,n,i]])=>{if(n&&i){let d=this.domService.getTabId();if(d){let a=this.generateHeartbeatId(n.userId,d),p={id:a,organizationId:i.organizationId},I=this.commonDbUtils.getDocumentPath({feature:"heartbeat",properties:p,defaultDocumentPaths:i,apiKey:this.configService.getApiKey(),useFirestore:!1});if(I&&c&&U(C(c,I)).set(null),i.documentId){let l={id:a,documentId:i.documentId,organizationId:i.organizationId},v=this.commonDbUtils.getDocumentPath({feature:"heartbeatByDocument",properties:l,defaultDocumentPaths:i,apiKey:this.configService.getApiKey(),useFirestore:!1});v&&c&&U(C(c,v)).set(null)}if(o&&o.documentId&&o.documentId!==i.documentId){let l={id:a,documentId:o.documentId,organizationId:o.organizationId,skipFirestore:!0};this.commonDbService.deleteData({feature:"heartbeatByDocument",properties:l})}}}})).subscribe();this.subscriptions.push(t)}catch(e){this.loggingService.catch("Error in HeartbeatService setupHeartbeat: ",e)}}teardownHeartbeat(){try{this.loggingService.log("%c[WB] Calling FUNCTION: teardownHeartbeat","color: green;"),this.worker&&(this.worker.postMessage("stop"),this.worker.terminate(),this.worker=void 0),this.subscriptions.forEach(e=>e.unsubscribe()),this.subscriptions=[],this.heartbeatCreatedTimestamps.clear(),this.initializedHeartbeatIds.clear()}catch(e){this.loggingService.catch("Error in HeartbeatService teardownHeartbeat: ",e)}}sendHeartbeat(){try{this.loggingService.log("%c[WB] Calling HeartbeatService FUNCTION: sendHeartbeat","color: green;");let e=this.authService.getUser(),t=this.docService.getDocumentPaths(),r=this.domService.getTabId();if(e&&t&&r){let s=Date.now(),o=this.generateHeartbeatId(e.userId,r),c=this.docService.getBaseMetadata("heartbeat"),n=c.documentId,i=t.organizationId,d=`${o}_${i}`,a=n?`${o}_${i}_${n}`:null,p=this.heartbeatCreatedTimestamps.get(d)??s;this.heartbeatCreatedTimestamps.has(d)||this.heartbeatCreatedTimestamps.set(d,p);let I=!this.initializedHeartbeatIds.has(d),l={id:o,createdTimestamp:p,lastUpdatedTimestamp:s,userId:e.userId,veltUserId:D(e.userId),tabId:r,metadata:c};if(I?(this.commonDbService.setData({feature:"heartbeat",properties:{id:l.id,skipFirestore:!0},data:l}),this.initializedHeartbeatIds.add(d)):this.commonDbService.updateData({feature:"heartbeat",properties:{id:l.id,skipFirestore:!0},data:l}),n&&a){let v=this.heartbeatCreatedTimestamps.get(a)??s;this.heartbeatCreatedTimestamps.has(a)||this.heartbeatCreatedTimestamps.set(a,v);let J=!this.initializedHeartbeatIds.has(a),f={id:o,createdTimestamp:v,lastUpdatedTimestamp:s,userId:e.userId,veltUserId:D(e.userId),tabId:r,metadata:c};J?(this.commonDbService.setData({feature:"heartbeatByDocument",properties:{id:f.id,skipFirestore:!0,documentId:n},data:f}),this.initializedHeartbeatIds.add(a)):this.commonDbService.updateData({feature:"heartbeatByDocument",properties:{id:f.id,skipFirestore:!0,documentId:n},data:f})}}}catch(e){this.loggingService.catch("Error in HeartbeatService sendHeartbeat: ",e)}}generateHeartbeatId(e,t){return D(e+"_"+t)}getHeartbeatData(e){try{let t=this.docService.getDocumentPaths(),r=e?.organizationId||t?.organizationId,s=e?.documentId,o,c={organizationId:r,skipFirestore:!0,useQuery:!0};if(s?(o="allHeartbeatsByDocument",c.documentId=s):o="allHeartbeats",!t)return h(null);if(e?.userId){let n=e?.limit??50;return c.rtdbQuery=[$("userId"),W(e.userId),y(n)],this.commonDbService.dbListener({feature:o,properties:c}).pipe(g(i=>!!i?.data),b(i=>i?.data),b(i=>i?Object.values(i??{}).map(d=>d):null),b(i=>{if(i){let d=e?.lastUpdatedTimestamp?.$gte??Date.now()-15e3;return i.filter(a=>!(d&&a.lastUpdatedTimestamp<d))}return i}))}else{let n=e?.orderBy??"lastUpdatedTimestamp",i=e?.lastUpdatedTimestamp?.$gte??Date.now()-15e3,d=e?.limit??50;return c.rtdbQuery=[$(n),A(i),y(d)],this.commonDbService.dbListener({feature:o,properties:c}).pipe(g(a=>!!a?.data),b(a=>a?.data),b(a=>a?Object.values(a??{}).map(p=>p):null))}}catch(t){return this.loggingService.catch("Error in HeartbeatService getHeartbeatData: ",t),h(null)}}getSpecificHeartbeat(e){try{let t=this.generateHeartbeatId(e.userId,e.tabId),s=this.docService.getDocumentPaths()?.organizationId;if(!s)return h(null);let o,c={id:t,organizationId:s,skipFirestore:!0};return e.documentId?(o="heartbeatByDocument",c.documentId=e.documentId):o="heartbeat",this.commonDbService.dbListener({feature:o,properties:c}).pipe(g(n=>!!n?.data),b(n=>n?.data),S((n,i)=>n?.lastUpdatedTimestamp===i?.lastUpdatedTimestamp))}catch(t){return this.loggingService.catch("Error in HeartbeatService getSpecificHeartbeat: ",t),h(null)}}removeDocumentHeartbeat(e){return k(this,null,function*(){try{let t=this.authService.getUser()?.userId,r=this.domService.getTabId();if(t&&r&&e?.documentId){let s=this.generateHeartbeatId(t,r),o=`${s}_${e.organizationId}_${e.documentId}`;this.heartbeatCreatedTimestamps.delete(o),this.initializedHeartbeatIds.delete(o),yield this.commonDbService.deleteData({feature:"heartbeatByDocument",properties:{id:s,documentId:e.documentId,organizationId:e.organizationId,skipFirestore:!0}})}return Promise.resolve()}catch(t){return this.loggingService.catch("Error in HeartbeatService removeDocumentHeartbeat: ",t),Promise.resolve()}})}getHeartbeat(e){try{return(e?.userId?h(e.userId):this.authService.getUser$().pipe(b(r=>r?.userId))).pipe(H(r=>r?this.docService.getDocumentPaths$().pipe(H(s=>s?this.getHeartbeatData({userId:r,documentId:s.documentId,organizationId:s.organizationId}):h(null))):h(null)),b(r=>({data:r})),S(L))}catch(t){return this.loggingService.catch("Error in HeartbeatService getHeartbeat: ",t),h({data:null})}}enableHeartbeat(){try{if(this.heartbeatEnabled$.value===!0)return;this.heartbeatEnabled$.next(!0)}catch(e){this.loggingService.catch("Error in HeartbeatService enableHeartbeat: ",e)}}disableHeartbeat(){try{if(this.heartbeatEnabled$.value===!1)return;this.heartbeatEnabled$.next(!1)}catch(e){this.loggingService.catch("Error in HeartbeatService disableHeartbeat: ",e)}}getHeartbeatEnabled$(){try{return this.heartbeatEnabled$.asObservable()}catch(e){return this.loggingService.catch("Error in HeartbeatService getHeartbeatEnabled$: ",e),h(!1)}}getHeartbeatEnabled(){try{return this.heartbeatEnabled$.value}catch(e){return this.loggingService.catch("Error in HeartbeatService getHeartbeatEnabled: ",e),!1}}ngOnDestroy(){try{this.teardownHeartbeat()}catch(e){this.loggingService.catch("Error in HeartbeatService ngOnDestroy: ",e)}}};m.\u0275fac=function(t){return new(t||m)(u(K),u(Y),u(_),u(x),u(R),u(M),u(G),u(Q),u(N))},m.\u0275prov=O({token:m,factory:m.\u0275fac,providedIn:"root"});let T=m;return T})();export{he as a};