UNPKG

@cometchat/chat-uikit-angular

Version:

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

68 lines 9.56 kB
import { CometChat } from "@cometchat/chat-sdk-javascript"; import { DataSourceDecorator } from "../../Shared/Framework/DataSourceDecorator"; import { CometChatMessageComposerAction, fontHelper, localize, } from "@cometchat/uikit-resources"; export class AIAssistBotDecorator extends DataSourceDecorator { constructor(dataSource) { super(dataSource); this.aiBotsList = []; this.fetchAiBots(); } getId() { return "aiassistbot"; } getAIOptions(theme, id, aiOptionsStyles) { let title; if (this.aiBotsList && this.aiBotsList.length == 1) { title = `${localize("COMETCHAT_ASK_BOT")} ${this.aiBotsList[0]?.name}`; } else { title = localize("COMETCHAT_ASK_AI_BOT"); } if (!id?.parentMessageId && this.aiBotsList && this.aiBotsList.length > 0) { const messageComposerActions = super.getAIOptions(theme, id, aiOptionsStyles); let newAction = new CometChatMessageComposerAction({ title: title, id: "ai-bots", onClick: () => { return this.aiBotsList; }, iconURL: "", iconTint: "", titleColor: aiOptionsStyles?.listItemTextColor || theme.palette.getAccent600(), titleFont: aiOptionsStyles?.listItemTextFont || fontHelper(theme.typography.subtitle1), background: aiOptionsStyles?.listItemBackground || theme.palette.getAccent100(), }); messageComposerActions.push(newAction); return messageComposerActions; } else { return super.getAIOptions(theme, id, aiOptionsStyles); } } async fetchAiBots() { try { let tags = ["aibot"]; let botsRequest = new CometChat.UsersRequestBuilder() .setLimit(30) .setTags(tags) .build(); const botList = await botsRequest.fetchNext(); botList.forEach((e) => { let newAction = new CometChatMessageComposerAction({ id: e.uid, title: e.name, iconURL: e.avatar, onClick: () => { return e; }, }); this.aiBotsList.push(newAction); }); } catch (error) { console.error("An error occurred while fetching AI bots:", error); } } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQUlBc3Npc3RCb3REZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaGF0LXVpa2l0LWFuZ3VsYXIvc3JjL0FJL0FJQXNzaXN0Qm90L0FJQXNzaXN0Qm90RGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUszRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUVqRixPQUFPLEVBRUwsOEJBQThCLEVBRTlCLFVBQVUsRUFDVixRQUFRLEdBQ1QsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQyxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsbUJBQW1CO0lBRTNELFlBQVksVUFBc0I7UUFDaEMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRmIsZUFBVSxHQUFRLEVBQUUsQ0FBQztRQUcxQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVRLEtBQUs7UUFDWixPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO0lBQ1EsWUFBWSxDQUNuQixLQUFxQixFQUNyQixFQUFRLEVBQ1IsZUFBZ0M7UUFFaEMsSUFBSSxLQUFLLENBQUM7UUFDVixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQ2xELEtBQUssR0FBRyxHQUFHLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUM7U0FDeEU7YUFBTTtZQUNMLEtBQUssR0FBRyxRQUFRLENBQUMsc0JBQXNCLENBQUMsQ0FBQztTQUMxQztRQUNELElBQUksQ0FBQyxFQUFFLEVBQUUsZUFBZSxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3pFLE1BQU0sc0JBQXNCLEdBR3RCLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxlQUFlLENBQUMsQ0FBQztZQUNyRCxJQUFJLFNBQVMsR0FDWCxJQUFJLDhCQUE4QixDQUFDO2dCQUNqQyxLQUFLLEVBQUUsS0FBSztnQkFDWixFQUFFLEVBQUUsU0FBUztnQkFDYixPQUFPLEVBQUUsR0FBRyxFQUFFO29CQUNaLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztnQkFDekIsQ0FBQztnQkFDRCxPQUFPLEVBQUUsRUFBRTtnQkFDWCxRQUFRLEVBQUUsRUFBRTtnQkFDWixVQUFVLEVBQ1IsZUFBZSxFQUFFLGlCQUFpQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFO2dCQUNwRSxTQUFTLEVBQ1AsZUFBZSxFQUFFLGdCQUFnQjtvQkFDakMsVUFBVSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO2dCQUN4QyxVQUFVLEVBQ1IsZUFBZSxFQUFFLGtCQUFrQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFO2FBQ3RFLENBQUMsQ0FBQztZQUNMLHNCQUFzQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN2QyxPQUFPLHNCQUFzQixDQUFDO1NBQy9CO2FBQU07WUFDTCxPQUFPLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxlQUFlLENBQUMsQ0FBQztTQUN2RDtJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVztRQUNmLElBQUk7WUFDRixJQUFJLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRXJCLElBQUksV0FBVyxHQUFHLElBQUksU0FBUyxDQUFDLG1CQUFtQixFQUFFO2lCQUNsRCxRQUFRLENBQUMsRUFBRSxDQUFDO2lCQUNaLE9BQU8sQ0FBQyxJQUFJLENBQUM7aUJBQ2IsS0FBSyxFQUFFLENBQUM7WUFFWCxNQUFNLE9BQU8sR0FBRyxNQUFNLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUU5QyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUU7Z0JBQ3pCLElBQUksU0FBUyxHQUNYLElBQUksOEJBQThCLENBQUM7b0JBQ2pDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRztvQkFDVCxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUk7b0JBQ2IsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNO29CQUNqQixPQUFPLEVBQUUsR0FBRyxFQUFFO3dCQUNaLE9BQU8sQ0FBQyxDQUFDO29CQUNYLENBQUM7aUJBQ0YsQ0FBQyxDQUFDO2dCQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2xDLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkNBQTJDLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDbkU7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21ldENoYXQgfSBmcm9tIFwiQGNvbWV0Y2hhdC9jaGF0LXNkay1qYXZhc2NyaXB0XCI7XG5pbXBvcnQge1xuICBBSUNvbnZlcnNhdGlvblN0YXJ0ZXJDb25maWd1cmF0aW9uLFxuICBBSU9wdGlvbnNTdHlsZSxcbn0gZnJvbSBcIkBjb21ldGNoYXQvdWlraXQtc2hhcmVkXCI7XG5pbXBvcnQgeyBEYXRhU291cmNlRGVjb3JhdG9yIH0gZnJvbSBcIi4uLy4uL1NoYXJlZC9GcmFtZXdvcmsvRGF0YVNvdXJjZURlY29yYXRvclwiO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gXCIuLi8uLi9TaGFyZWQvRnJhbWV3b3JrL0RhdGFTb3VyY2VcIjtcbmltcG9ydCB7XG4gIENvbWV0Q2hhdEFjdGlvbnNWaWV3LFxuICBDb21ldENoYXRNZXNzYWdlQ29tcG9zZXJBY3Rpb24sXG4gIENvbWV0Q2hhdFRoZW1lLFxuICBmb250SGVscGVyLFxuICBsb2NhbGl6ZSxcbn0gZnJvbSBcIkBjb21ldGNoYXQvdWlraXQtcmVzb3VyY2VzXCI7XG5cbmV4cG9ydCBjbGFzcyBBSUFzc2lzdEJvdERlY29yYXRvciBleHRlbmRzIERhdGFTb3VyY2VEZWNvcmF0b3Ige1xuICBwdWJsaWMgYWlCb3RzTGlzdDogYW55ID0gW107XG4gIGNvbnN0cnVjdG9yKGRhdGFTb3VyY2U6IERhdGFTb3VyY2UpIHtcbiAgICBzdXBlcihkYXRhU291cmNlKTtcbiAgICB0aGlzLmZldGNoQWlCb3RzKCk7XG4gIH1cblxuICBvdmVycmlkZSBnZXRJZCgpIHtcbiAgICByZXR1cm4gXCJhaWFzc2lzdGJvdFwiO1xuICB9XG4gIG92ZXJyaWRlIGdldEFJT3B0aW9ucyhcbiAgICB0aGVtZTogQ29tZXRDaGF0VGhlbWUsXG4gICAgaWQ/OiBhbnksXG4gICAgYWlPcHRpb25zU3R5bGVzPzogQUlPcHRpb25zU3R5bGVcbiAgKTogKENvbWV0Q2hhdE1lc3NhZ2VDb21wb3NlckFjdGlvbiB8IENvbWV0Q2hhdEFjdGlvbnNWaWV3KVtdIHtcbiAgICBsZXQgdGl0bGU7XG4gICAgaWYgKHRoaXMuYWlCb3RzTGlzdCAmJiB0aGlzLmFpQm90c0xpc3QubGVuZ3RoID09IDEpIHtcbiAgICAgIHRpdGxlID0gYCR7bG9jYWxpemUoXCJDT01FVENIQVRfQVNLX0JPVFwiKX0gJHt0aGlzLmFpQm90c0xpc3RbMF0/Lm5hbWV9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGl0bGUgPSBsb2NhbGl6ZShcIkNPTUVUQ0hBVF9BU0tfQUlfQk9UXCIpO1xuICAgIH1cbiAgICBpZiAoIWlkPy5wYXJlbnRNZXNzYWdlSWQgJiYgdGhpcy5haUJvdHNMaXN0ICYmIHRoaXMuYWlCb3RzTGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBtZXNzYWdlQ29tcG9zZXJBY3Rpb25zOiAoXG4gICAgICAgIHwgQ29tZXRDaGF0TWVzc2FnZUNvbXBvc2VyQWN0aW9uXG4gICAgICAgIHwgQ29tZXRDaGF0QWN0aW9uc1ZpZXdcbiAgICAgIClbXSA9IHN1cGVyLmdldEFJT3B0aW9ucyh0aGVtZSwgaWQsIGFpT3B0aW9uc1N0eWxlcyk7XG4gICAgICBsZXQgbmV3QWN0aW9uOiBDb21ldENoYXRNZXNzYWdlQ29tcG9zZXJBY3Rpb24gPVxuICAgICAgICBuZXcgQ29tZXRDaGF0TWVzc2FnZUNvbXBvc2VyQWN0aW9uKHtcbiAgICAgICAgICB0aXRsZTogdGl0bGUsXG4gICAgICAgICAgaWQ6IFwiYWktYm90c1wiLFxuICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFpQm90c0xpc3Q7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBpY29uVVJMOiBcIlwiLFxuICAgICAgICAgIGljb25UaW50OiBcIlwiLFxuICAgICAgICAgIHRpdGxlQ29sb3I6XG4gICAgICAgICAgICBhaU9wdGlvbnNTdHlsZXM/Lmxpc3RJdGVtVGV4dENvbG9yIHx8IHRoZW1lLnBhbGV0dGUuZ2V0QWNjZW50NjAwKCksXG4gICAgICAgICAgdGl0bGVGb250OlxuICAgICAgICAgICAgYWlPcHRpb25zU3R5bGVzPy5saXN0SXRlbVRleHRGb250IHx8XG4gICAgICAgICAgICBmb250SGVscGVyKHRoZW1lLnR5cG9ncmFwaHkuc3VidGl0bGUxKSxcbiAgICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgICAgYWlPcHRpb25zU3R5bGVzPy5saXN0SXRlbUJhY2tncm91bmQgfHwgdGhlbWUucGFsZXR0ZS5nZXRBY2NlbnQxMDAoKSxcbiAgICAgICAgfSk7XG4gICAgICBtZXNzYWdlQ29tcG9zZXJBY3Rpb25zLnB1c2gobmV3QWN0aW9uKTtcbiAgICAgIHJldHVybiBtZXNzYWdlQ29tcG9zZXJBY3Rpb25zO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gc3VwZXIuZ2V0QUlPcHRpb25zKHRoZW1lLCBpZCwgYWlPcHRpb25zU3R5bGVzKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBmZXRjaEFpQm90cygpIHtcbiAgICB0cnkge1xuICAgICAgbGV0IHRhZ3MgPSBbXCJhaWJvdFwiXTtcblxuICAgICAgbGV0IGJvdHNSZXF1ZXN0ID0gbmV3IENvbWV0Q2hhdC5Vc2Vyc1JlcXVlc3RCdWlsZGVyKClcbiAgICAgICAgLnNldExpbWl0KDMwKVxuICAgICAgICAuc2V0VGFncyh0YWdzKVxuICAgICAgICAuYnVpbGQoKTtcblxuICAgICAgY29uc3QgYm90TGlzdCA9IGF3YWl0IGJvdHNSZXF1ZXN0LmZldGNoTmV4dCgpO1xuXG4gICAgICBib3RMaXN0LmZvckVhY2goKGU6IGFueSkgPT4ge1xuICAgICAgICBsZXQgbmV3QWN0aW9uOiBDb21ldENoYXRNZXNzYWdlQ29tcG9zZXJBY3Rpb24gPVxuICAgICAgICAgIG5ldyBDb21ldENoYXRNZXNzYWdlQ29tcG9zZXJBY3Rpb24oe1xuICAgICAgICAgICAgaWQ6IGUudWlkLFxuICAgICAgICAgICAgdGl0bGU6IGUubmFtZSxcbiAgICAgICAgICAgIGljb25VUkw6IGUuYXZhdGFyLFxuICAgICAgICAgICAgb25DbGljazogKCkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYWlCb3RzTGlzdC5wdXNoKG5ld0FjdGlvbik7XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihcIkFuIGVycm9yIG9jY3VycmVkIHdoaWxlIGZldGNoaW5nIEFJIGJvdHM6XCIsIGVycm9yKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==