@veltdev/sdk 5.0.0-beta.6 → 5.0.0-beta.8

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.
@@ -41,9 +41,29 @@ export interface CopyLinkRequest {
41
41
  annotationId: string;
42
42
  options?: RequestOptions;
43
43
  }
44
+ /**
45
+ * Visibility type for comment annotations.
46
+ * - 'public': Visible to everyone (default:velt)
47
+ * - 'organization': Visible only to users in the specified organization
48
+ * - 'self': Visible only to specified users (private comments)
49
+ */
50
+ export type CommentVisibilityType = 'public' | 'organization' | 'self';
51
+ /**
52
+ * Configuration for comment visibility/access control.
53
+ */
54
+ export interface CommentVisibilityConfig {
55
+ /** The type of visibility for the comment */
56
+ type: CommentVisibilityType;
57
+ /** Organization ID for 'organization' type visibility */
58
+ organizationId?: string;
59
+ /** User IDs for 'self' type visibility - array of user IDs who can see the comment */
60
+ userIds?: string[];
61
+ }
44
62
  export interface AddCommentAnnotationRequest {
45
63
  annotation: CommentAnnotation;
46
64
  options?: RequestOptions;
65
+ /** Optional visibility configuration for the comment */
66
+ visibility?: CommentVisibilityConfig;
47
67
  }
48
68
  export interface ApproveCommentAnnotationRequest {
49
69
  annotationId: string;
@@ -54,6 +54,7 @@ export interface CommentSuggestionEventData {
54
54
  }
55
55
  export type CommentEventTypesMap = {
56
56
  [CommentEventTypes.ADD_COMMENT_ANNOTATION]: AddCommentAnnotationEvent;
57
+ [CommentEventTypes.ADD_COMMENT_ANNOTATION_DRAFT]: AddCommentAnnotationDraftEvent;
57
58
  [CommentEventTypes.APPROVE_COMMENT_ANNOTATION]: ApproveCommentAnnotationEvent;
58
59
  [CommentEventTypes.ACCEPT_COMMENT_ANNOTATION]: AcceptCommentAnnotationEvent;
59
60
  [CommentEventTypes.REJECT_COMMENT_ANNOTATION]: RejectCommentAnnotationEvent;
@@ -97,6 +98,10 @@ export interface DeleteAttachmentEvent {
97
98
  attachment: Attachment;
98
99
  metadata: VeltEventMetadata;
99
100
  }
101
+ export interface AddCommentAnnotationDraftEvent {
102
+ metadata: VeltEventMetadata;
103
+ addContext: (context: Record<string, unknown>) => void;
104
+ }
100
105
  export interface AddCommentAnnotationEvent {
101
106
  annotationId: string;
102
107
  commentAnnotation: CommentAnnotation;
@@ -1,3 +1,4 @@
1
+ import { Location } from './location.model';
1
2
  export interface IUnreadCommentsMap {
2
3
  [annotationId: string]: number;
3
4
  }
@@ -14,3 +15,28 @@ export interface TransformContext {
14
15
  inverseScale?: number;
15
16
  };
16
17
  }
18
+ /**
19
+ * Context data returned by the comment context provider.
20
+ * This is a flexible object that can contain custom properties.
21
+ */
22
+ export interface CommentContext {
23
+ /**
24
+ * Optional comment type. When set to 'manual', the comment will be treated as a manual comment
25
+ * and the target element will be removed.
26
+ */
27
+ commentType?: 'manual' | string;
28
+ /**
29
+ * Allow additional custom properties
30
+ */
31
+ [key: string]: unknown;
32
+ }
33
+ export type CommentContextProviderResponse = CommentContext | null | undefined;
34
+ /**
35
+ * A function that provides custom context for comments.
36
+ * Can return the context synchronously or asynchronously via a Promise.
37
+ *
38
+ * @param documentId - The ID of the document
39
+ * @param location - Optional location information
40
+ * @returns The comment context object or a Promise that resolves to it
41
+ */
42
+ export type CommentContextProvider = (documentId: string, location?: Location) => CommentContextProviderResponse | Promise<CommentContextProviderResponse>;
@@ -1,16 +1,16 @@
1
1
  // @ts-nocheck
2
2
  import { Observable } from "rxjs";
3
- import { CommentAnnotation, CommentOnElementConfig, CommentSelectionChangeData, ManualCommentAnnotationConfig, UpdateContextConfig } from "../data/comment-annotation.data.model";
4
- import { AcceptCommentAnnotationEvent, AddCommentAnnotationEvent, AddCommentEvent, AddReactionEvent, ApproveCommentAnnotationEvent, CommentAddEventData, CommentEventTypesMap, CommentUpdateEventData, CopyLinkEvent, DeleteAttachmentEvent, DeleteCommentAnnotationEvent, DeleteCommentEvent, DeleteReactionEvent, DeleteRecordingEvent, GetLinkEvent, RejectCommentAnnotationEvent, ToggleReactionEvent, UpdateAccessEvent, UpdateCommentEvent, UpdatePriorityEvent, UpdateStatusEvent, GetCommentAnnotationsResponse, GetCommentAnnotationsCountResponse, FetchCommentAnnotationsResponse } from "../data/comment-events.data.model";
5
- import { CustomCategory, CustomPriority, CustomStatus } from "../data/custom-filter.data.model";
6
- import { CustomAnnotationDropdownData } from "../data/custom-chip-dropdown.data.model";
3
+ import { CommentSidebarSystemFiltersOperator, SidebarButtonCountType } from "../../utils/enums";
4
+ import { UploadFileData } from "../data/attachment.model";
7
5
  import { AutocompleteData } from "../data/autocomplete.data.model";
6
+ import { AcceptCommentAnnotationRequest, AddAttachmentRequest, AddAttachmentResponse, AddCommentAnnotationRequest, AddCommentRequest, AddReactionRequest, ApproveCommentAnnotationRequest, AssignUserEvent, AssignUserRequest, CommentRequestQuery, CommentVisibilityConfig, CopyLinkRequest, DeleteAttachmentRequest, DeleteCommentAnnotationRequest, DeleteCommentRequest, DeleteReactionRequest, DeleteRecordingRequest, FetchCommentAnnotationsRequest, GetAttachmentRequest, GetCommentRequest, GetLinkRequest, GetRecordingRequest, RejectCommentAnnotationRequest, ResolveCommentAnnotationRequest, SubscribeCommentAnnotationRequest, ToggleReactionRequest, UnsubscribeCommentAnnotationRequest, UpdateAccessRequest, UpdateCommentRequest, UpdatePriorityRequest, UpdateStatusRequest } from "../data/comment-actions.data.model";
7
+ import { CommentAnnotation, CommentOnElementConfig, CommentSelectionChangeData, ManualCommentAnnotationConfig, UpdateContextConfig } from "../data/comment-annotation.data.model";
8
+ import { AcceptCommentAnnotationEvent, AddCommentAnnotationEvent, AddCommentEvent, AddReactionEvent, ApproveCommentAnnotationEvent, CommentAddEventData, CommentEventTypesMap, CommentUpdateEventData, CopyLinkEvent, DeleteAttachmentEvent, DeleteCommentAnnotationEvent, DeleteCommentEvent, DeleteReactionEvent, DeleteRecordingEvent, FetchCommentAnnotationsResponse, GetCommentAnnotationsCountResponse, GetCommentAnnotationsResponse, GetLinkEvent, RejectCommentAnnotationEvent, ToggleReactionEvent, UpdateAccessEvent, UpdateCommentEvent, UpdatePriorityEvent, UpdateStatusEvent } from "../data/comment-events.data.model";
8
9
  import { CommentSidebarCustomActionEventData, CommentSidebarData, CommentSidebarDataOptions } from "../data/comment-sidebar-config.model";
10
+ import { CommentContextProvider, TransformContext, UnreadCommentsCount } from "../data/comment-utils.data.model";
11
+ import { CustomAnnotationDropdownData } from "../data/custom-chip-dropdown.data.model";
12
+ import { CustomCategory, CustomPriority, CustomStatus } from "../data/custom-filter.data.model";
9
13
  export { ReactionMap } from '../data/reaction-annotation.data.model';
10
- import { AcceptCommentAnnotationRequest, AddAttachmentRequest, AddAttachmentResponse, AddCommentAnnotationRequest, AddCommentRequest, AddReactionRequest, ApproveCommentAnnotationRequest, AssignUserRequest, AssignUserEvent, CopyLinkRequest, DeleteAttachmentRequest, DeleteCommentAnnotationRequest, CommentRequestQuery, CommentRequestQuery, DeleteCommentRequest, DeleteReactionRequest, DeleteRecordingRequest, GetAttachmentRequest, GetCommentRequest, GetLinkRequest, GetRecordingRequest, RejectCommentAnnotationRequest, ResolveCommentAnnotationRequest, SubscribeCommentAnnotationRequest, UnsubscribeCommentAnnotationRequest, ToggleReactionRequest, UpdateAccessRequest, UpdateCommentRequest, UpdatePriorityRequest, UpdateStatusRequest, FetchCommentAnnotationsRequest } from "../data/comment-actions.data.model";
11
- import { UnreadCommentsCount, TransformContext } from "../data/comment-utils.data.model";
12
- import { CommentSidebarSystemFiltersOperator, SidebarButtonCountType } from "../../utils/enums";
13
- import { UploadFileData } from "../data/attachment.model";
14
14
 
15
15
  export declare class CommentElement {
16
16
  /**
@@ -329,7 +329,7 @@ export declare class CommentElement {
329
329
  * @description Sets the comment context provider
330
330
  * @param provider
331
331
  */
332
- public setContextProvider: (provider: (documentId: string, location?: any) => any) => void;
332
+ public setContextProvider: (provider: CommentContextProvider | null) => void;
333
333
 
334
334
  /**
335
335
  * To enable suggestion mode
@@ -823,6 +823,14 @@ export declare class CommentElement {
823
823
  */
824
824
  public updateContext: (annotationId: string, context: any, config?: UpdateContextConfig) => Promise<any>;
825
825
 
826
+ /**
827
+ * Updates the visibility of a comment annotation.
828
+ * @param annotationId Annotation Id
829
+ * @param visibility Visibility configuration (public, organization, or self)
830
+ * @returns Promise<any>
831
+ */
832
+ public updateVisibility: (annotationId: string, visibility: CommentVisibilityConfig) => Promise<any>;
833
+
826
834
  /**
827
835
  * Subscribe to selected comments
828
836
  * @returns list of selected comments
@@ -2082,6 +2090,14 @@ export declare class CommentElement {
2082
2090
  */
2083
2091
  private _updateContext;
2084
2092
 
2093
+ /**
2094
+ * Updates the visibility of a comment annotation.
2095
+ * @param annotationId Annotation Id
2096
+ * @param visibility Visibility configuration (public, organization, or self)
2097
+ * @returns Promise<any>
2098
+ */
2099
+ private _updateVisibility;
2100
+
2085
2101
  /**
2086
2102
  * Subscribe to selected comments
2087
2103
  * @returns list of selected comments
@@ -11,6 +11,7 @@ export declare class Constants {
11
11
  static LISTENER_BATCH_SIZE: number;
12
12
  static LISTENER_CONTEXT_BATCH_SIZE: number;
13
13
  static DEFAULT_VELT_CONTEXT: string;
14
+ static VISIBILITY_SELF_PREFIX: string;
14
15
  static FIREBASE_PARTIAL_PATH_ORGANIZATIONS: string;
15
16
  static FIREBASE_PARTIAL_PATH_FOLDERS: string;
16
17
  static FIREBASE_PARTIAL_PATH_DOCS: string;
@@ -29,6 +29,7 @@ export declare enum ResolverActions {
29
29
  }
30
30
  export declare const CommentEventTypes: {
31
31
  readonly ADD_COMMENT_ANNOTATION: "addCommentAnnotation";
32
+ readonly ADD_COMMENT_ANNOTATION_DRAFT: "addCommentAnnotationDraft";
32
33
  readonly DELETE_COMMENT_ANNOTATION: "deleteCommentAnnotation";
33
34
  readonly APPROVE_COMMENT_ANNOTATION: "approveCommentAnnotation";
34
35
  readonly ACCEPT_COMMENT_ANNOTATION: "acceptCommentAnnotation";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@veltdev/sdk",
3
- "version": "5.0.0-beta.6",
3
+ "version": "5.0.0-beta.8",
4
4
  "description": "Velt is an SDK to add collaborative features to your product within minutes. Example: Comments like Figma, Frame.io, Google docs or sheets, Recording like Loom, Huddles like Slack and much more.",
5
5
  "homepage": "https://velt.dev",
6
6
  "keywords": [