UNPKG

@cometchat/chat-uikit-angular

Version:

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

77 lines 12.4 kB
import { CometChatUIKitConstants, CometChatMessageTemplate, CometChatTheme, CometChatMessageComposerAction, localize, fontHelper, } from "@cometchat/uikit-resources"; import { PollsConstants } from "@cometchat/uikit-shared"; import { ChatConfigurator } from "../../Shared/Framework/ChatConfigurator"; import { DataSourceDecorator } from "../../Shared/Framework/DataSourceDecorator"; export class PollsExtensionDecorator extends DataSourceDecorator { constructor(dataSource) { super(dataSource); } getId() { return "polls"; } getAllMessageTypes() { const types = super.getAllMessageTypes(); if (!types.includes(PollsConstants.extension_poll)) { types.push(PollsConstants.extension_poll); } return types; } 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, PollsConstants.extension_poll)) { templates.push(this.getPollsTemplate()); } return templates; } getPollsTemplate() { return new CometChatMessageTemplate({ type: PollsConstants.extension_poll, 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) { const messageComposerActions = super.getAttachmentOptions(theme, user, group, id); let newAction = new CometChatMessageComposerAction({ id: PollsConstants.extension_poll, title: localize("POLLS"), iconURL: "assets/polls.svg", iconTint: theme.palette.getAccent700(), titleColor: theme.palette.getAccent600(), titleFont: fontHelper(theme.typography.subtitle1), background: theme.palette.getAccent100(), onClick: null, }); 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() == PollsConstants.extension_poll && message.getCategory() == CometChatUIKitConstants.MessageCategory.custom) { return localize("CUSTOM_MESSAGE_POLL"); } else { return super.getLastConversationMessage(conversation, loggedInUser, additionalConfigurations); } } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9sbHNFeHRlbnNpb25EZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0LXVpa2l0LWFuZ3VsYXIvc3JjL0V4dGVuc2lvbnMvUG9sbHNFeHRlbnNpb24vUG9sbHNFeHRlbnNpb25EZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLHVCQUF1QixFQUN2Qix3QkFBd0IsRUFDeEIsY0FBYyxFQUNkLDhCQUE4QixFQUM5QixRQUFRLEVBQ1IsVUFBVSxHQUNYLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRTNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2pGLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxtQkFBbUI7SUFDOUQsWUFBWSxVQUFzQjtRQUNoQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVRLEtBQUs7UUFDWixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBQ1Esa0JBQWtCO1FBQ3pCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUNsRCxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUMzQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNRLHVCQUF1QjtRQUM5QixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUNuRCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxlQUFlLENBQUMsTUFB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LENBQUM7U0FDeEM7YUFBTTtZQUNMLE9BQU8sS0FBSyxDQUFDLDBCQUEwQixDQUNyQyxZQUFZLEVBQ1osWUFBWSxFQUNaLHdCQUF3QixDQUN6QixDQUFDO1NBQ0g7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21ldENoYXQgfSBmcm9tIFwiQGNvbWV0Y2hhdC9jaGF0LXNkay1qYXZhc2NyaXB0XCI7XG5pbXBvcnQge1xuICBDb21ldENoYXRVSUtpdENvbnN0YW50cyxcbiAgQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlLFxuICBDb21ldENoYXRUaGVtZSxcbiAgQ29tZXRDaGF0TWVzc2FnZUNvbXBvc2VyQWN0aW9uLFxuICBsb2NhbGl6ZSxcbiAgZm9udEhlbHBlcixcbn0gZnJvbSBcIkBjb21ldGNoYXQvdWlraXQtcmVzb3VyY2VzXCI7XG5pbXBvcnQgeyBQb2xsc0NvbnN0YW50cyB9IGZyb20gXCJAY29tZXRjaGF0L3Vpa2l0LXNoYXJlZFwiO1xuaW1wb3J0IHsgQ2hhdENvbmZpZ3VyYXRvciB9IGZyb20gXCIuLi8uLi9TaGFyZWQvRnJhbWV3b3JrL0NoYXRDb25maWd1cmF0b3JcIjtcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tIFwiLi4vLi4vU2hhcmVkL0ZyYW1ld29yay9EYXRhU291cmNlXCI7XG5pbXBvcnQgeyBEYXRhU291cmNlRGVjb3JhdG9yIH0gZnJvbSBcIi4uLy4uL1NoYXJlZC9GcmFtZXdvcmsvRGF0YVNvdXJjZURlY29yYXRvclwiO1xuZXhwb3J0IGNsYXNzIFBvbGxzRXh0ZW5zaW9uRGVjb3JhdG9yIGV4dGVuZHMgRGF0YVNvdXJjZURlY29yYXRvciB7XG4gIGNvbnN0cnVjdG9yKGRhdGFTb3VyY2U6IERhdGFTb3VyY2UpIHtcbiAgICBzdXBlcihkYXRhU291cmNlKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGdldElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwicG9sbHNcIjtcbiAgfVxuICBvdmVycmlkZSBnZXRBbGxNZXNzYWdlVHlwZXMoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHR5cGVzID0gc3VwZXIuZ2V0QWxsTWVzc2FnZVR5cGVzKCk7XG4gICAgaWYgKCF0eXBlcy5pbmNsdWRlcyhQb2xsc0NvbnN0YW50cy5leHRlbnNpb25fcG9sbCkpIHtcbiAgICAgIHR5cGVzLnB1c2goUG9sbHNDb25zdGFudHMuZXh0ZW5zaW9uX3BvbGwpO1xuICAgIH1cbiAgICByZXR1cm4gdHlwZXM7XG4gIH1cbiAgb3ZlcnJpZGUgZ2V0QWxsTWVzc2FnZUNhdGVnb3JpZXMoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGNhdGVnb3JpZXMgPSBzdXBlci5nZXRBbGxNZXNzYWdlQ2F0ZWdvcmllcygpO1xuICAgIGlmICghY2F0ZWdvcmllcy5pbmNsdWRlcyhDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlQ2F0ZWdvcnkuY3VzdG9tKSkge1xuICAgICAgY2F0ZWdvcmllcy5wdXNoKENvbWV0Q2hhdFVJS2l0Q29uc3RhbnRzLk1lc3NhZ2VDYXRlZ29yeS5jdXN0b20pO1xuICAgIH1cbiAgICByZXR1cm4gY2F0ZWdvcmllcztcbiAgfVxuICBjaGVja0lmVGVtcGxhdGVFeGlzdChcbiAgICB0ZW1wbGF0ZTogQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlW10sXG4gICAgdHlwZTogc3RyaW5nXG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0ZW1wbGF0ZS5zb21lKChvYmopID0+IG9iai50eXBlID09PSB0eXBlKTtcbiAgfVxuICBvdmVycmlkZSBnZXRBbGxNZXNzYWdlVGVtcGxhdGVzKCk6IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZVtdIHtcbiAgICBjb25zdCB0ZW1wbGF0ZXMgPSBzdXBlci5nZXRBbGxNZXNzYWdlVGVtcGxhdGVzKCk7XG5cbiAgICBpZiAoIXRoaXMuY2hlY2tJZlRlbXBsYXRlRXhpc3QodGVtcGxhdGVzLCBQb2xsc0NvbnN0YW50cy5leHRlbnNpb25fcG9sbCkpIHtcbiAgICAgIHRlbXBsYXRlcy5wdXNoKHRoaXMuZ2V0UG9sbHNUZW1wbGF0ZSgpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGVtcGxhdGVzO1xuICB9XG4gIGdldFBvbGxzVGVtcGxhdGUoKTogQ29tZXRDaGF0TWVzc2FnZVRlbXBsYXRlIHtcbiAgICByZXR1cm4gbmV3IENvbWV0Q2hhdE1lc3NhZ2VUZW1wbGF0ZSh7XG4gICAgICB0eXBlOiBQb2xsc0NvbnN0YW50cy5leHRlbnNpb25fcG9sbCxcbiAgICAgIGNhdGVnb3J5OiBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlQ2F0ZWdvcnkuY3VzdG9tLFxuICAgICAgb3B0aW9uczogKFxuICAgICAgICBsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyLFxuICAgICAgICBtZXNzYWdlT2JqZWN0OiBDb21ldENoYXQuQmFzZU1lc3NhZ2UsXG4gICAgICAgIHRoZW1lOiBDb21ldENoYXRUaGVtZSxcbiAgICAgICAgZ3JvdXA/OiBDb21ldENoYXQuR3JvdXBcbiAgICAgICkgPT4ge1xuICAgICAgICByZXR1cm4gQ2hhdENvbmZpZ3VyYXRvci5nZXREYXRhU291cmNlKCkuZ2V0Q29tbW9uT3B0aW9ucyhcbiAgICAgICAgICBsb2dnZWRJblVzZXIsXG4gICAgICAgICAgbWVzc2FnZU9iamVjdCxcbiAgICAgICAgICB0aGVtZSxcbiAgICAgICAgICBncm91cFxuICAgICAgICApO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBvdmVycmlkZSBnZXRBdHRhY2htZW50T3B0aW9ucyhcbiAgICB0aGVtZTogQ29tZXRDaGF0VGhlbWUgPSBuZXcgQ29tZXRDaGF0VGhlbWUoe30pLFxuICAgIHVzZXI/OiBDb21ldENoYXQuVXNlcixcbiAgICBncm91cD86IENvbWV0Q2hhdC5Hcm91cCxcbiAgICBpZD86IGFueVxuICApIHtcbiAgICBpZiAoIWlkPy5wYXJlbnRNZXNzYWdlSWQpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2VDb21wb3NlckFjdGlvbnM6IENvbWV0Q2hhdE1lc3NhZ2VDb21wb3NlckFjdGlvbltdID1cbiAgICAgICAgc3VwZXIuZ2V0QXR0YWNobWVudE9wdGlvbnModGhlbWUsIHVzZXIsIGdyb3VwLCBpZCk7XG4gICAgICBsZXQgbmV3QWN0aW9uOiBDb21ldENoYXRNZXNzYWdlQ29tcG9zZXJBY3Rpb24gPVxuICAgICAgICBuZXcgQ29tZXRDaGF0TWVzc2FnZUNvbXBvc2VyQWN0aW9uKHtcbiAgICAgICAgICBpZDogUG9sbHNDb25zdGFudHMuZXh0ZW5zaW9uX3BvbGwsXG4gICAgICAgICAgdGl0bGU6IGxvY2FsaXplKFwiUE9MTFNcIiksXG4gICAgICAgICAgaWNvblVSTDogXCJhc3NldHMvcG9sbHMuc3ZnXCIsXG4gICAgICAgICAgaWNvblRpbnQ6IHRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NzAwKCksXG4gICAgICAgICAgdGl0bGVDb2xvcjogdGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQ2MDAoKSxcbiAgICAgICAgICB0aXRsZUZvbnQ6IGZvbnRIZWxwZXIodGhlbWUudHlwb2dyYXBoeS5zdWJ0aXRsZTEpLFxuICAgICAgICAgIGJhY2tncm91bmQ6IHRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50MTAwKCksXG4gICAgICAgICAgb25DbGljazogbnVsbCxcbiAgICAgICAgfSk7XG4gICAgICBtZXNzYWdlQ29tcG9zZXJBY3Rpb25zLnB1c2gobmV3QWN0aW9uKTtcbiAgICAgIHJldHVybiBtZXNzYWdlQ29tcG9zZXJBY3Rpb25zO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gc3VwZXIuZ2V0QXR0YWNobWVudE9wdGlvbnModGhlbWUsIHVzZXIsIGdyb3VwLCBpZCk7XG4gICAgfVxuICB9XG4gIG92ZXJyaWRlIGdldExhc3RDb252ZXJzYXRpb25NZXNzYWdlKFxuICAgIGNvbnZlcnNhdGlvbjogQ29tZXRDaGF0LkNvbnZlcnNhdGlvbixcbiAgICBsb2dnZWRJblVzZXI6IENvbWV0Q2hhdC5Vc2VyLFxuICAgIGFkZGl0aW9uYWxDb25maWd1cmF0aW9uczogYW55XG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgbWVzc2FnZTogQ29tZXRDaGF0LkJhc2VNZXNzYWdlIHwgdW5kZWZpbmVkID1cbiAgICAgIGNvbnZlcnNhdGlvbi5nZXRMYXN0TWVzc2FnZSgpO1xuICAgIGlmIChcbiAgICAgIG1lc3NhZ2UgIT0gbnVsbCAmJlxuICAgICAgbWVzc2FnZS5nZXRUeXBlKCkgPT0gUG9sbHNDb25zdGFudHMuZXh0ZW5zaW9uX3BvbGwgJiZcbiAgICAgIG1lc3NhZ2UuZ2V0Q2F0ZWdvcnkoKSA9PSBDb21ldENoYXRVSUtpdENvbnN0YW50cy5NZXNzYWdlQ2F0ZWdvcnkuY3VzdG9tXG4gICAgKSB7XG4gICAgICByZXR1cm4gbG9jYWxpemUoXCJDVVNUT01fTUVTU0FHRV9QT0xMXCIpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gc3VwZXIuZ2V0TGFzdENvbnZlcnNhdGlvbk1lc3NhZ2UoXG4gICAgICAgIGNvbnZlcnNhdGlvbixcbiAgICAgICAgbG9nZ2VkSW5Vc2VyLFxuICAgICAgICBhZGRpdGlvbmFsQ29uZmlndXJhdGlvbnNcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0=