@cometchat/chat-uikit-angular
Version:
Ready-to-use Chat UI Components for Angular (JavaScript/Web)
93 lines • 15.7 kB
JavaScript
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=