import { type IPostCustomSlots, PostPermission, ThemeStore, Theming, VueComponentBase } from "../.."; import { IWebComponentInstance, OmniaContext } from "../../.."; import { type IPersistedPost, IPostBaseContext, IPostBaseWithContext, type OmitProperties, ReactionType, ResolvedUserIdentity, type ThemeDefinition } from "../../../models"; import { IRichTextEditor } from "../../richtexteditor"; import { ILikeService, UserIdentityStore } from "@omnia/fx/stores"; import { IdentitiesLocalization } from "../../identities/loc/localize"; export declare class PostTemplate extends VueComponentBase<{}, {}, {}> implements IWebComponentInstance { persistedPost: IPersistedPost>; persistedPosts: Array>>; richTextSettings: OmitProperties; currentUser: ResolvedUserIdentity; canShowEditDialogOnLoad?: boolean; canLike?: boolean; enableMention?: boolean; openReply: (postToReplyOn: IPersistedPost>) => void; cancelReply: (post: IPersistedPost>) => void; openEdit: (post: IPersistedPost>) => void; closeEdit: (post: IPersistedPost>) => void; refresh: (addedPost: boolean) => void; cardStyle?: ThemeDefinition; hideEdit?: boolean; handleAddingPost: (addingPost: IPostBaseWithContext) => Promise>>; handleUpdatingPost: (updatingPost: IPersistedPost>) => Promise>>; handleDeletingPost: (deletingPost: IPersistedPost>) => Promise>>; handleTogglingLike: (togglingPost: IPersistedPost>) => Promise>>; handleSocialReacts: (postToReact: IPersistedPost>, isReacts: boolean, reactionType: ReactionType) => Promise>>; customSlots?: IPostCustomSlots; hideEditOption?: boolean; getTopPostIds: () => { [commentId: string]: string; }; getUserHash: () => { [principalName: string]: ResolvedUserIdentity; }; topicPermissionDictionary: { [topicId: string]: PostPermission; }; private omniaUxLocalization; private postLoc; identityLoc: IdentitiesLocalization.locInterface; userIdentityStore: UserIdentityStore; omniaCtx: OmniaContext; themeStore: ThemeStore; dialogTheme: Theming; private dateFormat; private isAdd; private isEdit; private isReply; private isAddingOrUpdatingPost; private isDeleting; private draftContent; private language; private resetContent; private isRTEPlaceholderClicked; private isLoadingRTE; private isRenderRTE; private draftMentionUsers; private customCardThemeId; private childTargetThemeId; private useAccessibilityFeatures; private dialogModel; private deleteDialogModel; onPostChange(newValue: IPersistedPost>, oldValue: IPersistedPost>): void; created(): void; mounted(): void; beforeUnmount(): void; private migrateData; private getReactions; private ensureCustomThemeRegistered; private ensureCustomThemeUnregistered; getReplyToPost(): IPersistedPost>; ensureContentOnSave(content: string): string; getContentInsideTag(content: string): string; onClickReply(): void; onReact(topicId: string, commentId: string, isReacts: boolean, reactionType: ReactionType): Promise; onClickRemoveReplyToPost(): void; onClickDelete(): void; onSave(): void; onContentUpdate(content: string): void; onMentionUpdate(mentionUsers: Array): void; onEditPostClicked(): void; getCommentLikeService(): ILikeService; loadRTE(): void; private renderUserLink; /** * Render title for post * @param isDialog * @param cardTheming Nested theming for everything inside the post card */ private renderTitleInfo; private renderEditDialog; private renderEdit; private renderEditContentBody; private renderEditButton; private renderDeleteButton; private renderDeleteDialog; private renderEditOptionsBase; private renderEditOptions; private renderDisplay; private renderDeletedMessage; render(): VueTsxSupport.JSX.Element; }