UNPKG

@cometchat/chat-uikit-angular

Version:

Ready-to-use Chat UI Components for Angular (JavaScript/Web)

93 lines 15.7 kB
import { CometChat } from "@cometchat/chat-sdk-javascript"; import { CometChatTheme, CometChatMessageTemplate, CometChatMessageComposerAction, fontHelper, CometChatUIKitConstants, localize, } from "@cometchat/uikit-resources"; import { CollaborativeDocumentConstants, } from "@cometchat/uikit-shared"; import { ChatConfigurator } from "../../Shared/Framework/ChatConfigurator"; import { DataSourceDecorator } from "../../Shared/Framework/DataSourceDecorator"; export class CollaborativeDocumentExtensionDecorator extends DataSourceDecorator { constructor(dataSource) { super(dataSource); } getAllMessageTypes() { const types = super.getAllMessageTypes(); if (!types.includes(CollaborativeDocumentConstants.extension_document)) { types.push(CollaborativeDocumentConstants.extension_document); } return types; } getId() { return "collaborativedocument"; } getAllMessageCategories() { const categories = super.getAllMessageCategories(); if (!categories.includes(CometChatUIKitConstants.MessageCategory.custom)) { categories.push(CometChatUIKitConstants.MessageCategory.custom); } return categories; } checkIfTemplateExist(template, type) { return template.some((obj) => obj.type === type); } getAllMessageTemplates() { const templates = super.getAllMessageTemplates(); if (!this.checkIfTemplateExist(templates, CollaborativeDocumentConstants.extension_document)) { templates.push(this.getDocumentTemplate()); } return templates; } getDocumentTemplate() { return new CometChatMessageTemplate({ type: CollaborativeDocumentConstants.extension_document, category: CometChatUIKitConstants.MessageCategory.custom, options: (loggedInUser, messageObject, theme, group) => { return ChatConfigurator.getDataSource().getCommonOptions(loggedInUser, messageObject, theme, group); }, }); } getAttachmentOptions(theme = new CometChatTheme({}), user, group, id) { if (!id?.parentMessageId) { let receiverType = user ? CometChatUIKitConstants.MessageReceiverType.user : CometChatUIKitConstants.MessageReceiverType.group; let receiverId = user ? user.getUid() : group?.getGuid(); const messageComposerActions = super.getAttachmentOptions(theme, user, group, id); let newAction = new CometChatMessageComposerAction({ id: CollaborativeDocumentConstants.document, title: localize("COLLABORATIVE_DOCUMENT"), iconURL: "assets/collaborativedocument.svg", iconTint: theme.palette.getAccent700(), titleColor: theme.palette.getAccent600(), titleFont: fontHelper(theme.typography.subtitle1), background: theme.palette.getAccent100(), onClick: () => { CometChat.callExtension(CollaborativeDocumentConstants.document, CollaborativeDocumentConstants.post, CollaborativeDocumentConstants.v1_create, { receiver: receiverId, receiverType: receiverType, }) .then((res) => { }) .catch((error) => { console.log(error); }); }, }); messageComposerActions.push(newAction); return messageComposerActions; } else { return super.getAttachmentOptions(theme, user, group, id); } } getLastConversationMessage(conversation, loggedInUser, additionalConfigurations) { const message = conversation.getLastMessage(); if (message != null && message.getType() == CollaborativeDocumentConstants.extension_document && message.getCategory() == CometChatUIKitConstants.MessageCategory.custom) { return localize("CUSTOM_MESSAGE_DOCUMENT"); } else { return super.getLastConversationMessage(conversation, loggedInUser, additionalConfigurations); } } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29sbGFib3JhdGl2ZURvY3VtZW50RXh0ZW5zaW9uRGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hhdC11aWtpdC1hbmd1bGFyL3NyYy9FeHRlbnNpb25zL0NvbGxhYm9yYXRpdmVEb2N1bWVudC9Db2xsYWJvcmF0aXZlRG9jdW1lbnRFeHRlbnNpb25EZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzNELE9BQU8sRUFDTCxjQUFjLEVBQ2Qsd0JBQXdCLEVBQ3hCLDhCQUE4QixFQUM5QixVQUFVLEVBQ1YsdUJBQXVCLEVBQ3ZCLFFBQVEsR0FDVCxNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFFTCw4QkFBOEIsR0FDL0IsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUUzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNqRixNQUFNLE9BQU8sdUNBQXdDLFNBQVEsbUJBQW1CO0lBQzlFLFlBQVksVUFBc0I7UUFDaEMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFDUSxrQkFBa0I7UUFDekIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsOEJBQThCLENBQUMsa0JBQWtCLENBQUMsRUFBRTtZQUN0RSxLQUFLLENBQUMsSUFBSSxDQUFDLDhCQUE4QixDQUFDLGtCQUFrQixDQUFDLENBQUM7U0FDL0Q7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDUSxLQUFLO1FBQ1osT0FBTyx1QkFBdUIsQ0FBQztJQUNqQyxDQUFDO0lBQ1EsdUJBQXVCO1FBQzlCLE1BQU0sVUFB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QUFRLEVBQUUsVUFBVTt3QkFDcEIsWUFBWSxFQUFFLFlBQVk7cUJBQzNCLENBQ0Y7eUJBQ0UsSUFBSSxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7eUJBQ3RCLEtBQUssQ0FBQyxDQUFDLEtBQW1DLEVBQUUsRUFBRTt3QkFDN0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDckIsQ0FBQyxDQUFDLENBQUM7Z0JBQ1AsQ0FBQzthQUNGLENBQUMsQ0FBQztZQUNMLHNCQUFzQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN2QyxPQUFPLHNCQUFzQixDQUFDO1NBQy9CO2FBQU07WUFDTCxPQUFPLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztTQUMzRDtJQUNILENBQUM7SUFDUSwwQkFBMEIsQ0FDakMsWUFBb0MsRUFDcEMsWUFBNEIsRUFDNUIsd0JBQTZCO1FBRTdCLE1BQU0sT0FBTyxHQUNYLFlBQVksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNoQyxJQUNFLE9BQU8sSUFBSSxJQUFJO1lBQ2YsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLDhCQUE4QixDQUFDLGtCQUFrQjtZQUN0RSxPQUFPLENBQUMsV0FBVyxFQUFFLElBQUksdUJBQXVCLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFDdkU7WUFDQSxPQUFPLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1NBQzVDO2FBQU07WUFDTCxPQUFPLEtBQUssQ0FBQywwQkFBMEIsQ0FDckMsWUFBWSxFQUNaLFlBQVksRUFDWix3QkFBd0IsQ0FDekIsQ0FBQztTQUNIO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tZXRDaGF0IH0gZnJvbSBcIkBjb21ldGNoYXQvY2hhdC1zZGstamF2YXNjcmlwdFwiO1xuaW1wb3J0IHtcbiAgQ29tZXRDaGF0VGhlbWUsXG4gIENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSxcbiAgQ29tZXRDaGF0TWVzc2FnZUNvbXBvc2VyQWN0aW9uLFxuICBmb250SGVscGVyLFxuICBDb21ldENoYXRVSUtpdENvbnN0YW50cyxcbiAgbG9jYWxpemUsXG59IGZyb20gXCJAY29tZXRjaGF0L3Vpa2l0LXJlc291cmNlc1wiO1xuaW1wb3J0IHtcbiAgQ29sbGFib3JhdGl2ZURvY3VtZW50Q29uZmlndXJhdGlvbixcbiAgQ29sbGFib3JhdGl2ZURvY3VtZW50Q29uc3RhbnRzLFxufSBmcm9tIFwiQGNvbWV0Y2hhdC91aWtpdC1zaGFyZWRcIjtcbmltcG9ydCB7IENoYXRDb25maWd1cmF0b3IgfSBmcm9tIFwiLi4vLi4vU2hhcmVkL0ZyYW1ld29yay9DaGF0Q29uZmlndXJhdG9yXCI7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSBcIi4uLy4uL1NoYXJlZC9GcmFtZXdvcmsvRGF0YVNvdXJjZVwiO1xuaW1wb3J0IHsgRGF0YVNvdXJjZURlY29yYXRvciB9IGZyb20gXCIuLi8uLi9TaGFyZWQvRnJhbWV3b3JrL0RhdGFTb3VyY2VEZWNvcmF0b3JcIjtcbmV4cG9ydCBjbGFzcyBDb2xsYWJvcmF0aXZlRG9jdW1lbnRFeHRlbnNpb25EZWNvcmF0b3IgZXh0ZW5kcyBEYXRhU291cmNlRGVjb3JhdG9yIHtcbiAgY29uc3RydWN0b3IoZGF0YVNvdXJjZTogRGF0YVNvdXJjZSkge1xuICAgIHN1cGVyKGRhdGFTb3VyY2UpO1xuICB9XG4gIG92ZXJyaWRlIGdldEFsbE1lc3NhZ2VUeXBlcygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgdHlwZXMgPSBzdXBlci5nZXRBbGxNZXNzYWdlVHlwZXMoKTtcbiAgICBpZiAoIXR5cGVzLmluY2x1ZGVzKENvbGxhYm9yYXRpdmVEb2N1bWVudENvbnN0YW50cy5leHRlbnNpb25fZG9jdW1lbnQpKSB7XG4gICAgICB0eXBlcy5wdXNoKENvbGxhYm9yYXRpdmVEb2N1bWVudENvbnN0YW50cy5leHRlbnNpb25fZG9jdW1lbnQpO1xuICAgIH1cbiAgICByZXR1cm4gdHlwZXM7XG4gIH1cbiAgb3ZlcnJpZGUgZ2V0SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJjb2xsYWJvcmF0aXZlZG9jdW1lbnRcIjtcbiAgfVxuICBvdmVycmlkZSBnZXRBbGxNZXNzYWdlQ2F0ZWdvcmllcygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgY2F0ZWdvcmllcyA9IHN1cGVyLmdldEFsbE1lc3NhZ2VDYXRlZ29yaWVzKCk7XG4gICAgaWYgKCFjYXRlZ29yaWVzLmluY2x1ZGVzKENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5jdXN0b20pKSB7XG4gICAgICBjYXRlZ29yaWVzLnB1c2goQ29tZXRDaGF0VUlLaXRDb25zdGFudHMuTWVzc2FnZUNhdGVnb3J5LmN1c3RvbSk7XG4gICAgfVxuICAgIHJldHVybiBjYXRlZ29yaWVzO1xuICB9XG4gIGNoZWNrSWZUZW1wbGF0ZUV4aXN0KFxuICAgIHRlbXBsYXRlOiBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGVbXSxcbiAgICB0eXBlOiBzdHJpbmdcbiAgKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRlbXBsYXRlLnNvbWUoKG9iaikgPT4gb2JqLnR5cGUgPT09IHR5cGUpO1xuICB9XG4gIG92ZXJyaWRlIGdldEFsbE1lc3NhZ2VUZW1wbGF0ZXMoKTogQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlW10ge1xuICAgIGNvbnN0IHRlbXBsYXRlcyA9IHN1cGVyLmdldEFsbE1lc3NhZ2VUZW1wbGF0ZXMoKTtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5jaGVja0lmVGVtcGxhdGVFeGlzdChcbiAgICAgICAgdGVtcGxhdGVzLFxuICAgICAgICBDb2xsYWJvcmF0aXZlRG9jdW1lbnRDb25zdGFudHMuZXh0ZW5zaW9uX2RvY3VtZW50XG4gICAgICApXG4gICAgKSB7XG4gICAgICB0ZW1wbGF0ZXMucHVzaCh0aGlzLmdldERvY3VtZW50VGVtcGxhdGUoKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRlbXBsYXRlcztcbiAgfVxuICBnZXREb2N1bWVudFRlbXBsYXRlKCk6IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBDb21ldENoYXRNZXNzYWdlVGVtcGxhdGUoe1xuICAgICAgdHlwZTogQ29sbGFib3JhdGl2ZURvY3VtZW50Q29uc3RhbnRzLmV4dGVuc2lvbl9kb2N1bWVudCxcbiAgICAgIGNhdGVnb3J5OiBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlQ2F0ZWdvcnkuY3VzdG9tLFxuICAgICAgb3B0aW9uczogKFxuICAgICAgICBsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyLFxuICAgICAgICBtZXNzYWdlT2JqZWN0OiBDb21ldENoYXQuQmFzZU1lc3NhZ2UsXG4gICAgICAgIHRoZW1lOiBDb21ldENoYXRUaGVtZSxcbiAgICAgICAgZ3JvdXA/OiBDb21ldENoYXQuR3JvdXBcbiAgICAgICkgPT4ge1xuICAgICAgICByZXR1cm4gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0Q29tbW9uT3B0aW9ucyhcbiAgICAgICAgICBsb2dnZWRJblVzZXIsXG4gICAgICAgICAgbWVzc2FnZU9iamVjdCxcbiAgICAgICAgICB0aGVtZSxcbiAgICAgICAgICBncm91cFxuICAgICAgICApO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBvdmVycmlkZSBnZXRBdHRhY2htZW50T3B0aW9ucyhcbiAgICB0aGVtZTogQ29tZXRDaGF0VGhlbWUgPSBuZXcgQ29tZXRDaGF0VGhlbWUoe30pLFxuICAgIHVzZXI/OiBDb21ldENoYXQuVXNlcixcbiAgICBncm91cD86IENvbWV0Q2hhdC5Hcm91cCxcbiAgICBpZD86IGFueVxuICApIHtcbiAgICBpZiAoIWlkPy5wYXJlbnRNZXNzYWdlSWQpIHtcbiAgICAgIGxldCByZWNlaXZlclR5cGU6IHN0cmluZyA9IHVzZXJcbiAgICAgICAgPyBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlUmVjZWl2ZXJUeXBlLnVzZXJcbiAgICAgICAgOiBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlUmVjZWl2ZXJUeXBlLmdyb3VwO1xuICAgICAgbGV0IHJlY2VpdmVySWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVzZXJcbiAgICAgICAgPyB1c2VyLmdldFVpZCgpXG4gICAgICAgIDogZ3JvdXA/LmdldEd1aWQoKTtcbiAgICAgIGNvbnN0IG1lc3NhZ2VDb21wb3NlckFjdGlvbnM6IENvbWV0Q2hhdE1lc3NhZ2VDb21wb3NlckFjdGlvbltdID1cbiAgICAgICAgc3VwZXIuZ2V0QXR0YWNobWVudE9wdGlvbnModGhlbWUsIHVzZXIsIGdyb3VwLCBpZCk7XG4gICAgICBsZXQgbmV3QWN0aW9uOiBDb21ldENoYXRNZXNzYWdlQ29tcG9zZXJBY3Rpb24gPVxuICAgICAgICBuZXcgQ29tZXRDaGF0TWVzc2FnZUNvbXBvc2VyQWN0aW9uKHtcbiAgICAgICAgICBpZDogQ29sbGFib3JhdGl2ZURvY3VtZW50Q29uc3RhbnRzLmRvY3VtZW50LFxuICAgICAgICAgIHRpdGxlOiBsb2NhbGl6ZShcIkNPTExBQk9SQVRJVkVfRE9DVU1FTlRcIiksXG4gICAgICAgICAgaWNvblVSTDogXCJhc3NldHMvY29sbGFib3JhdGl2ZWRvY3VtZW50LnN2Z1wiLFxuICAgICAgICAgIGljb25UaW50OiB0aGVtZS5wYWxldHRlLmdldEFjY2VudDcwMCgpLFxuICAgICAgICAgIHRpdGxlQ29sb3I6IHRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgICAgICAgdGl0bGVGb250OiBmb250SGVscGVyKHRoZW1lLnR5cG9ncmFwaHkuc3VidGl0bGUxKSxcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB0aGVtZS5wYWxldHRlLmdldEFjY2VudDEwMCgpLFxuICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHtcbiAgICAgICAgICAgIENvbWV0Q2hhdC5jYWxsRXh0ZW5zaW9uKFxuICAgICAgICAgICAgICBDb2xsYWJvcmF0aXZlRG9jdW1lbnRDb25zdGFudHMuZG9jdW1lbnQsXG4gICAgICAgICAgICAgIENvbGxhYm9yYXRpdmVEb2N1bWVudENvbnN0YW50cy5wb3N0LFxuICAgICAgICAgICAgICBDb2xsYWJvcmF0aXZlRG9jdW1lbnRDb25zdGFudHMudjFfY3JlYXRlLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcmVjZWl2ZXI6IHJlY2VpdmVySWQsXG4gICAgICAgICAgICAgICAgcmVjZWl2ZXJUeXBlOiByZWNlaXZlclR5cGUsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgLnRoZW4oKHJlczogYW55KSA9PiB7fSlcbiAgICAgICAgICAgICAgLmNhdGNoKChlcnJvcjogQ29tZXRDaGF0LkNvbWV0Q2hhdEV4Y2VwdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICBtZXNzYWdlQ29tcG9zZXJBY3Rpb25zLnB1c2gobmV3QWN0aW9uKTtcbiAgICAgIHJldHVybiBtZXNzYWdlQ29tcG9zZXJBY3Rpb25zO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gc3VwZXIuZ2V0QXR0YWNobWVudE9wdGlvbnModGhlbWUsIHVzZXIsIGdyb3VwLCBpZCk7XG4gICAgfVxuICB9XG4gIG92ZXJyaWRlIGdldExhc3RDb252ZXJzYXRpb25NZXNzYWdlKFxuICAgIGNvbnZlcnNhdGlvbjogQ29tZXRDaGF0LkNvbnZlcnNhdGlvbixcbiAgICBsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyLFxuICAgIGFkZGl0aW9uYWxDb25maWd1cmF0aW9uczogYW55XG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgbWVzc2FnZTogQ29tZXRDaGF0LkJhc2VNZXNzYWdlIHwgdW5kZWZpbmVkID1cbiAgICAgIGNvbnZlcnNhdGlvbi5nZXRMYXN0TWVzc2FnZSgpO1xuICAgIGlmIChcbiAgICAgIG1lc3NhZ2UgIT0gbnVsbCAmJlxuICAgICAgbWVzc2FnZS5nZXRUeXBlKCkgPT0gQ29sbGFib3JhdGl2ZURvY3VtZW50Q29uc3RhbnRzLmV4dGVuc2lvbl9kb2N1bWVudCAmJlxuICAgICAgbWVzc2FnZS5nZXRDYXRlZ29yeSgpID09IENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5jdXN0b21cbiAgICApIHtcbiAgICAgIHJldHVybiBsb2NhbGl6ZShcIkNVU1RPTV9NRVNTQUdFX0RPQ1VNRU5UXCIpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gc3VwZXIuZ2V0TGFzdENvbnZlcnNhdGlvbk1lc3NhZ2UoXG4gICAgICAgIGNvbnZlcnNhdGlvbixcbiAgICAgICAgbG9nZ2VkSW5Vc2VyLFxuICAgICAgICBhZGRpdGlvbmFsQ29uZmlndXJhdGlvbnNcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0=