@veltdev/sdk
Version:
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.
263 lines (262 loc) • 7.16 kB
TypeScript
import { CommentAccessMode } from "../../utils/enums";
import { BaseMetadata } from "./base-metadata.data.model";
import { Comment } from "./comment.data.model";
import { CursorPosition } from "./cursor-position.data.model";
import { CustomAnnotationDropdownItem } from "./custom-chip-dropdown.data.model";
import { CustomCategory, CustomPriority, CustomStatus } from "./custom-filter.data.model";
import { Location } from "./location.model";
import { PageInfo } from "./page-info.model";
import { TargetElement } from "./target-element.data.model";
import { TargetTextRange } from "./target-text-range.data.model";
import { User } from "./user.data.model";
import { CommentAnnotationViews } from "./views.data.model";
export declare class CommentAnnotation {
/**
* Unique identifier for the comment pin annotation.
*
* Auto generated.
*/
annotationId: string;
/**
* Annotation number for the comment pin annotation.
*
* Auto generated.
*/
annotationNumber?: number;
/**
* This is the list of all comments part of this annotation.
*
*/
comments: Comment[];
/**
* The list of categories that this comment pin annotation belongs to.
*/
commentCategories: CustomCategory[];
/**
* The user who created this comment pin annotation.
*
*/
from: User;
/**
* Color used for the comment pin annotation.
*
*/
color?: string;
/**
* @deprecated
* Whether the comment annotation is marked resolved.
*
*/
resolved?: boolean;
/**
* @deprecated
* Whether the comment annotation is marked as in progress.
*
*/
inProgress?: boolean;
/**
* Timestamp when the comment annotation was last updated.
*
* Auto generated.
*/
lastUpdated?: any;
/**
* Timestamp when the comment annotation was created.
*
* Auto generated.
*/
createdAt?: any;
/**
* Comment annotation's position on the X axis.
*
* Auto generated.
*/
positionX?: number;
/**
* Comment annotation's position on the Y axis.
*
* Auto generated.
*/
positionY?: number;
/**
* User’s screen width.
*
* Auto generated.
*/
screenWidth?: number;
/**
* User’s screen height.
*
* Auto generated.
*/
screenHeight?: number;
/**
* User’s screen scroll height.
*
* Auto generated.
*/
screenScrollHeight?: number;
/**
* User’s screen scroll height.
*
* Auto generated.
*/
screenScrollTop?: number;
/**
* Xpath of the element that was clicked.
*
* Auto generated.
*/
taggedElementPath?: string;
/**
* Xpath of the element that was clicked.
*
* Auto generated.
*/
taggedElementRect?: any;
/**
* Target element of comment annotation
*/
targetElement?: TargetElement | null;
/**
* Target element id provided by user
*/
targetElementId?: string | null;
position?: CursorPosition | null;
/**
* Unique document params id generated from provided document params
* @deprecated `documentParamsId` is deprecated and will be removed in next release, use `locationId` instead.
*/
documentParamsId?: number | null;
/**
* Set document params to identify user on sub document
* @deprecated `documentParams` is deprecated and will be removed in next release, use `location` instead.
*/
documentParams?: Location | null;
/**
* Unique location id generated from provided location
*/
locationId?: number | null;
/**
* Set location to identify user on sub document
*/
location?: Location | null;
type?: string;
commentType?: string;
metadata?: CommentMetadata;
/**
* Selected text range of comment annotation
*/
targetTextRange?: TargetTextRange | null;
/**
* Set `true` to set text comment annotation on all the text content of provided target element using `targetElementId`
*/
selectAllContent?: boolean;
approved?: boolean;
status: CustomStatus;
/**
* To maintain index of current annotation in available list of annotations
* It will start from 1, so no need to add 1 in that.
*/
annotationIndex?: number;
pageInfo?: PageInfo;
assignedTo?: User;
priority?: CustomPriority;
ghostComment?: GhostComment | null;
/**
* Connected area annotation id of comment annotation
*/
areaAnnotationId?: string;
/**
* Custom context data provided by the user
*/
context?: any;
/**
* Context id generated from context data
*/
contextId?: string;
iam: CommentIAMConfig;
isPageAnnotation?: boolean;
targetInlineCommentElementId?: string;
inlineCommentSectionConfig?: InlineCommentSectionConfig;
customList?: CustomAnnotationDropdownItem[];
subscribedUsers?: CommentAnnotationSubscribedUsers;
unsubscribedUsers?: CommentAnnotationUnsubscribedUsers;
subscribedGroups?: CommentAnnotationSubscribedGroups;
resolvedByUserId?: string | null;
multiThreadAnnotationId?: string;
isDraft?: boolean;
sourceId?: string;
views?: CommentAnnotationViews;
viewedByUserIds?: string[];
}
export declare class GhostComment {
targetElement?: TargetElement | null;
message?: string;
type?: string;
/**
* To check if comment is from same device group or not, device groups are ['mobile', 'tablet'] and ['desktop', 'monitor']
*/
isSameGroup?: boolean;
}
export declare class CommentOnElementConfig {
targetElement?: {
targetText?: string;
occurrence?: number;
elementId?: string;
selectAllContent?: boolean;
};
commentData?: {
commentText: string;
commentHtml?: string;
status: string;
from: any;
replaceContentHtml?: string;
replaceContentText?: string;
}[];
status?: string;
context?: any;
openComment?: boolean;
sourceId?: string;
}
export declare class CommentIAMConfig {
accessMode?: CommentAccessMode;
}
export declare class CommentMetadata extends BaseMetadata {
[key: string]: any;
}
export declare class CommentSelectionChangeData {
selected: boolean;
annotation: CommentAnnotation;
}
export declare class InlineCommentSectionConfig {
id: string;
name?: string;
}
export declare class ManualCommentAnnotationConfig {
context?: any;
location?: Location;
}
export declare class CommentAnnotationSubscribedUsers {
[userIdHash: string]: {
user: User;
type: 'manual' | 'auto';
};
}
export declare class CommentAnnotationUnsubscribedUsers {
[userIdHash: string]: {
user: User;
type: 'manual' | 'auto';
};
}
export declare class CommentAnnotationSubscribedGroups {
[groupId: string]: {
type: 'manual' | 'auto';
};
}
export declare class UpdateContextConfig {
merge?: boolean;
}
export interface ContextOptions {
partialMatch?: boolean;
}