import { VueComponentBase } from ".."; import { IWebComponentInstance } from "../.."; import { OmniaContext } from "../../contexts"; import { GuidValue, IPersistedPost, IPostBaseContext, IPostBaseWithContext, OmitProperties, ResolvedUserIdentity, ThemeDefinition } from "../../models"; import { PostStyle } from "../models"; import { IRichTextEditor } from "../richtexteditor"; import { IPostComponent, IPostCustomSlots, PostPermission, PostProvider } from "./IPost"; import { PostLocalization } from "./loc/localize"; import "./Post.css"; import { UserIdentityStore } from "@omnia/fx/stores"; export default class PostComponent extends VueComponentBase implements IWebComponentInstance, IPostComponent { omniaContext: OmniaContext; userIdentityStore: UserIdentityStore; private featureStore; postLoc: PostLocalization.locInterface; provider: PostProvider; editContentOnTop?: boolean; omniaServiceId: GuidValue; postTypeId: GuidValue; showMoreSize: number; richTextSettings?: OmitProperties; styles?: typeof PostStyle; cardStyle?: ThemeDefinition; allowLikes?: boolean; enableMention?: boolean; customSlots?: IPostCustomSlots; hideEditOption?: boolean; getTopPostIds: () => { [commentId: string]: string; }; getUserHash: () => { [principalName: string]: ResolvedUserIdentity; }; topicPermissionDictionary: { [topicId: string]: PostPermission; }; isLoading: boolean; currentUser: ResolvedUserIdentity; showOnlyPromotedPost: boolean; canCreateNewPost: boolean; postAddingHashKey: string; postsReplyingHashKey: { [id: string]: string; }; postsHashKey: { [id: string]: string; }; postAdding: IPersistedPost>; postsReplying: { [id: string]: IPersistedPost>; }; postsBeingEdited: Array>>; currentShowMoreSize: { [id: string]: number; }; private postClasses; private minIndexToShow; private topMostId; private topPosts; private postTemplate; private enableTeamsPresence; onPromotedPostChange(newValue: IPersistedPost>, oldValue: IPersistedPost>): void; onPostsChange(newValue: IPersistedPost>[], oldValue: IPersistedPost>[]): void; created(): void; mounted(): void; updateCreatePostPermission(): void; initPostAdding(): void; extendCurrentShowMoreSize(id: string, size?: number): void; handlePostAdding: (addedPost: boolean, postId: string, parentPost?: IPersistedPost>) => void; onCancelReply(persistedParentPost: IPersistedPost>): void; onOpenReply(persistedPostToReplyOn: IPersistedPost>): void; openEditPost(post: IPersistedPost>): void; cancelEditPost(post: IPersistedPost>): void; isElementInViewport(el: any): boolean; getPostsCountLabel(postsCount: number): string; renderPosts(): VueTsxSupport.JSX.Element; renderShowMoreOption(id: string): VueTsxSupport.JSX.Element; renderShowAllOption(id: string): VueTsxSupport.JSX.Element; renderMainPostComponent(post: IPersistedPost>, slimSpacing: boolean): VueTsxSupport.JSX.Element; renderPostsWithReplies(parentPost: IPersistedPost>): VueTsxSupport.JSX.Element; renderPromotedPost(): VueTsxSupport.JSX.Element | JSX.Element[]; render(): VueTsxSupport.JSX.Element; }