UNPKG

@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
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; }