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