bibot 1.0.5 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.babelrc +7 -0
- package/.vscode/settings.json +5 -0
- package/dist/bibot.js +175 -0
- package/dist/bibot.js.map +1 -0
- package/dist/component/bibot.d.ts +5 -0
- package/dist/component/bibot.js +170 -0
- package/dist/component/bibot.js.map +1 -0
- package/dist/config/appStateEnums.js +10 -5
- package/dist/config/endpointEnums.js +27 -22
- package/dist/config/index.js +38 -5
- package/dist/config/statusCode.js +49 -44
- package/dist/context/AppContext.js +73 -56
- package/dist/context/index.js +16 -3
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.js +38 -4
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/mobileView.js +33 -18
- package/dist/hooks/useBiBotChatBot.d.ts +29 -0
- package/dist/hooks/useBiBotChatBot.js +206 -0
- package/dist/hooks/useBiBotChatBot.js.map +1 -0
- package/dist/hooks/usePluginFactory.js +60 -77
- package/dist/index.css +36 -0
- package/dist/index.d.ts +1 -2
- package/dist/index.js +9 -6
- package/dist/index.js.map +1 -1
- package/dist/reducers/appReducer.js +24 -22
- package/dist/reducers/index.js +16 -3
- package/dist/services/index.js +16 -3
- package/dist/services/plugin-api.js +179 -182
- package/dist/styles/RegisterPageStyle.css +63 -0
- package/dist/styles/adminPortal.css +26 -0
- package/dist/styles/appConfig.css +90 -0
- package/dist/styles/buttonStyle.css +27 -0
- package/dist/styles/chatStyle.css +140 -0
- package/dist/styles/index.css +82 -0
- package/dist/styles/predefinedStyle.css +35 -0
- package/dist/styles/themeStyle.css +42 -0
- package/dist/styles/training.css +86 -0
- package/dist/types/coreInterfaces.d.ts +1 -10
- package/dist/types/coreInterfaces.js +5 -2
- package/dist/types/index.js +16 -3
- package/dist/utils/index.js +27 -3
- package/dist/utils/sessionManager.js +16 -12
- package/dist/utils/trimWhitespace.js +15 -11
- package/package.json +51 -54
- package/src/component/bibot.tsx +103 -0
- package/src/config/appStateEnums.ts +3 -0
- package/src/config/endpointEnums.ts +28 -0
- package/src/config/index.ts +5 -0
- package/src/config/statusCode.ts +49 -0
- package/src/context/AppContext.tsx +66 -0
- package/src/context/index.ts +3 -0
- package/src/hooks/index.ts +5 -0
- package/src/hooks/mobileView.tsx +17 -0
- package/src/hooks/useBiBotChatBot.tsx +107 -0
- package/src/hooks/usePluginFactory.tsx +38 -0
- package/src/index.css +36 -0
- package/src/index.tsx +3 -0
- package/src/reducers/appReducer.ts +16 -0
- package/src/reducers/index.ts +4 -0
- package/src/services/index.ts +2 -0
- package/src/services/plugin-api.tsx +120 -0
- package/src/styles/RegisterPageStyle.css +63 -0
- package/src/styles/adminPortal.css +26 -0
- package/src/styles/appConfig.css +90 -0
- package/src/styles/buttonStyle.css +27 -0
- package/src/styles/chatStyle.css +140 -0
- package/src/styles/index.css +82 -0
- package/src/styles/predefinedStyle.css +35 -0
- package/src/styles/themeStyle.css +42 -0
- package/src/styles/training.css +86 -0
- package/src/types/coreInterfaces.ts +69 -0
- package/src/types/index.ts +4 -0
- package/src/utils/index.ts +2 -0
- package/src/utils/sessionManager.tsx +15 -0
- package/src/utils/trimWhitespace.ts +11 -0
- package/tsconfig.json +25 -0
- package/webpack.config.js +19 -0
- package/dist/components/bibot.js +0 -171
- package/dist/components/bibot.js.map +0 -1
- /package/dist/{components/bibot.d.ts → bibot.d.ts} +0 -0
    
        package/dist/components/bibot.js
    DELETED
    
    | @@ -1,171 +0,0 @@ | |
| 1 | 
            -
            var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
         | 
| 2 | 
            -
                function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
         | 
| 3 | 
            -
                return new (P || (P = Promise))(function (resolve, reject) {
         | 
| 4 | 
            -
                    function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
         | 
| 5 | 
            -
                    function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
         | 
| 6 | 
            -
                    function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
         | 
| 7 | 
            -
                    step((generator = generator.apply(thisArg, _arguments || [])).next());
         | 
| 8 | 
            -
                });
         | 
| 9 | 
            -
            };
         | 
| 10 | 
            -
            var __generator = (this && this.__generator) || function (thisArg, body) {
         | 
| 11 | 
            -
                var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
         | 
| 12 | 
            -
                return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
         | 
| 13 | 
            -
                function verb(n) { return function (v) { return step([n, v]); }; }
         | 
| 14 | 
            -
                function step(op) {
         | 
| 15 | 
            -
                    if (f) throw new TypeError("Generator is already executing.");
         | 
| 16 | 
            -
                    while (g && (g = 0, op[0] && (_ = 0)), _) try {
         | 
| 17 | 
            -
                        if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
         | 
| 18 | 
            -
                        if (y = 0, t) op = [op[0] & 2, t.value];
         | 
| 19 | 
            -
                        switch (op[0]) {
         | 
| 20 | 
            -
                            case 0: case 1: t = op; break;
         | 
| 21 | 
            -
                            case 4: _.label++; return { value: op[1], done: false };
         | 
| 22 | 
            -
                            case 5: _.label++; y = op[1]; op = [0]; continue;
         | 
| 23 | 
            -
                            case 7: op = _.ops.pop(); _.trys.pop(); continue;
         | 
| 24 | 
            -
                            default:
         | 
| 25 | 
            -
                                if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
         | 
| 26 | 
            -
                                if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
         | 
| 27 | 
            -
                                if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
         | 
| 28 | 
            -
                                if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
         | 
| 29 | 
            -
                                if (t[2]) _.ops.pop();
         | 
| 30 | 
            -
                                _.trys.pop(); continue;
         | 
| 31 | 
            -
                        }
         | 
| 32 | 
            -
                        op = body.call(thisArg, _);
         | 
| 33 | 
            -
                    } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
         | 
| 34 | 
            -
                    if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
         | 
| 35 | 
            -
                }
         | 
| 36 | 
            -
            };
         | 
| 37 | 
            -
            var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
         | 
| 38 | 
            -
                if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
         | 
| 39 | 
            -
                    if (ar || !(i in from)) {
         | 
| 40 | 
            -
                        if (!ar) ar = Array.prototype.slice.call(from, 0, i);
         | 
| 41 | 
            -
                        ar[i] = from[i];
         | 
| 42 | 
            -
                    }
         | 
| 43 | 
            -
                }
         | 
| 44 | 
            -
                return to.concat(ar || Array.prototype.slice.call(from));
         | 
| 45 | 
            -
            };
         | 
| 46 | 
            -
            import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
         | 
| 47 | 
            -
            import { Avatar, Indicator } from '@mantine/core';
         | 
| 48 | 
            -
            import { useNetwork } from '@mantine/hooks';
         | 
| 49 | 
            -
            import { Close, SendRounded } from '@mui/icons-material';
         | 
| 50 | 
            -
            import ChatIcon from '@mui/icons-material/Chat';
         | 
| 51 | 
            -
            import { Button, message } from 'antd';
         | 
| 52 | 
            -
            import { AppProvider } from '../context/AppContext';
         | 
| 53 | 
            -
            import { appStateEnums } from '../config/appStateEnums';
         | 
| 54 | 
            -
            import { useEffect, useRef, useState, useContext, useCallback } from 'react';
         | 
| 55 | 
            -
            import { AppContext } from '../context/AppContext';
         | 
| 56 | 
            -
            import { v4 as uuidv4 } from 'uuid';
         | 
| 57 | 
            -
            import { askBiBot, getRemoteClientChatBubbleConfig, getRemoteClientChatPredefinedQuestions } from '../services/plugin-api';
         | 
| 58 | 
            -
            var PredefinedQuestions = function (_a) {
         | 
| 59 | 
            -
                var questions = _a.questions, onSelect = _a.onSelect;
         | 
| 60 | 
            -
                return (_jsx("div", { className: "predefined-questions", children: questions.map(function (question, index) { return (_jsx("div", { className: "predefined-question", onClick: function () { return onSelect(question); }, children: question }, index)); }) }));
         | 
| 61 | 
            -
            };
         | 
| 62 | 
            -
            var BiBot = function (_a) {
         | 
| 63 | 
            -
                var _b, _c;
         | 
| 64 | 
            -
                var clientId = _a.clientId;
         | 
| 65 | 
            -
                var _d = useState([]), predefinedQuestions = _d[0], setPredefinedQuestions = _d[1]; // State to store predefined questions
         | 
| 66 | 
            -
                var _e = useState(true), showPredefinedQuestions = _e[0], setShowPredefinedQuestions = _e[1]; // State to toggle predefined questions
         | 
| 67 | 
            -
                var _f = useContext(AppContext), state = _f.state, dispatch = _f.dispatch;
         | 
| 68 | 
            -
                var chatIsOpen = state.chatIsOpen;
         | 
| 69 | 
            -
                var _g = useState([]), messages = _g[0], setMessages = _g[1];
         | 
| 70 | 
            -
                var _h = useState(''), userInput = _h[0], setUserInput = _h[1];
         | 
| 71 | 
            -
                var _j = useState(false), isLoading = _j[0], setIsLoading = _j[1];
         | 
| 72 | 
            -
                var messageEndRef = useRef(null);
         | 
| 73 | 
            -
                var _k = useState(), chatBubbleConfig = _k[0], setChatBubbleConfig = _k[1];
         | 
| 74 | 
            -
                // Function to handle selecting a predefined question
         | 
| 75 | 
            -
                var handlePredefinedQuestionSelect = function (question) {
         | 
| 76 | 
            -
                    setUserInput(question);
         | 
| 77 | 
            -
                    sendInputInquiry();
         | 
| 78 | 
            -
                    setShowPredefinedQuestions(false); // Hide predefined questions after selection
         | 
| 79 | 
            -
                };
         | 
| 80 | 
            -
                var getChatBubbleConfig = useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
         | 
| 81 | 
            -
                    var remotePredefinedQuestions, remoteChatBubbleConfig;
         | 
| 82 | 
            -
                    return __generator(this, function (_a) {
         | 
| 83 | 
            -
                        switch (_a.label) {
         | 
| 84 | 
            -
                            case 0: return [4 /*yield*/, getRemoteClientChatPredefinedQuestions({ client_id: clientId })];
         | 
| 85 | 
            -
                            case 1:
         | 
| 86 | 
            -
                                remotePredefinedQuestions = _a.sent();
         | 
| 87 | 
            -
                                if (remotePredefinedQuestions) {
         | 
| 88 | 
            -
                                    setPredefinedQuestions(remotePredefinedQuestions);
         | 
| 89 | 
            -
                                }
         | 
| 90 | 
            -
                                return [4 /*yield*/, getRemoteClientChatBubbleConfig({ client_id: clientId })];
         | 
| 91 | 
            -
                            case 2:
         | 
| 92 | 
            -
                                remoteChatBubbleConfig = _a.sent();
         | 
| 93 | 
            -
                                if (remoteChatBubbleConfig) {
         | 
| 94 | 
            -
                                    setChatBubbleConfig(remoteChatBubbleConfig);
         | 
| 95 | 
            -
                                }
         | 
| 96 | 
            -
                                return [2 /*return*/];
         | 
| 97 | 
            -
                        }
         | 
| 98 | 
            -
                    });
         | 
| 99 | 
            -
                }); }, [clientId]);
         | 
| 100 | 
            -
                useEffect(function () {
         | 
| 101 | 
            -
                    void getChatBubbleConfig();
         | 
| 102 | 
            -
                }, [getChatBubbleConfig]);
         | 
| 103 | 
            -
                useEffect(function () {
         | 
| 104 | 
            -
                    if (messageEndRef === null || messageEndRef === void 0 ? void 0 : messageEndRef.current) {
         | 
| 105 | 
            -
                        messageEndRef.current.scrollIntoView({ behavior: 'smooth' });
         | 
| 106 | 
            -
                    }
         | 
| 107 | 
            -
                }, [messages]);
         | 
| 108 | 
            -
                var toggleChat = function () {
         | 
| 109 | 
            -
                    dispatch({ type: appStateEnums.BIBOT, chatIsOpen: !chatIsOpen });
         | 
| 110 | 
            -
                };
         | 
| 111 | 
            -
                var handleUserInput = function (e) {
         | 
| 112 | 
            -
                    setUserInput(e.target.value);
         | 
| 113 | 
            -
                };
         | 
| 114 | 
            -
                function sendInputInquiry() {
         | 
| 115 | 
            -
                    return __awaiter(this, void 0, void 0, function () {
         | 
| 116 | 
            -
                        var response_1, error_1;
         | 
| 117 | 
            -
                        var _a;
         | 
| 118 | 
            -
                        return __generator(this, function (_b) {
         | 
| 119 | 
            -
                            switch (_b.label) {
         | 
| 120 | 
            -
                                case 0:
         | 
| 121 | 
            -
                                    setIsLoading(true);
         | 
| 122 | 
            -
                                    setUserInput('');
         | 
| 123 | 
            -
                                    _b.label = 1;
         | 
| 124 | 
            -
                                case 1:
         | 
| 125 | 
            -
                                    _b.trys.push([1, 4, 5, 6]);
         | 
| 126 | 
            -
                                    if (!userInput.trim()) return [3 /*break*/, 3];
         | 
| 127 | 
            -
                                    // dispatch({ type: appStateEnums.BIBOT, chatIsOpen: true })
         | 
| 128 | 
            -
                                    setMessages(function (messages) { return __spreadArray(__spreadArray([], messages, true), [{ sender: 'user', text: userInput }], false); });
         | 
| 129 | 
            -
                                    return [4 /*yield*/, askBiBot({
         | 
| 130 | 
            -
                                            client_id: clientId,
         | 
| 131 | 
            -
                                            q: userInput.trim(),
         | 
| 132 | 
            -
                                            session_id: state.sessionId,
         | 
| 133 | 
            -
                                            chat_id: uuidv4()
         | 
| 134 | 
            -
                                        })];
         | 
| 135 | 
            -
                                case 2:
         | 
| 136 | 
            -
                                    response_1 = _b.sent();
         | 
| 137 | 
            -
                                    setMessages(function (messages) { return __spreadArray(__spreadArray([], messages, true), [{ sender: 'bot', text: response_1 }], false); });
         | 
| 138 | 
            -
                                    _b.label = 3;
         | 
| 139 | 
            -
                                case 3: return [3 /*break*/, 6];
         | 
| 140 | 
            -
                                case 4:
         | 
| 141 | 
            -
                                    error_1 = _b.sent();
         | 
| 142 | 
            -
                                    void message.error((_a = error_1 === null || error_1 === void 0 ? void 0 : error_1.message) !== null && _a !== void 0 ? _a : 'Failed to get response from server');
         | 
| 143 | 
            -
                                    return [3 /*break*/, 6];
         | 
| 144 | 
            -
                                case 5:
         | 
| 145 | 
            -
                                    setIsLoading(false);
         | 
| 146 | 
            -
                                    return [7 /*endfinally*/];
         | 
| 147 | 
            -
                                case 6: return [2 /*return*/];
         | 
| 148 | 
            -
                            }
         | 
| 149 | 
            -
                        });
         | 
| 150 | 
            -
                    });
         | 
| 151 | 
            -
                }
         | 
| 152 | 
            -
                var handleKeyPress = function (e) { return __awaiter(void 0, void 0, void 0, function () {
         | 
| 153 | 
            -
                    return __generator(this, function (_a) {
         | 
| 154 | 
            -
                        switch (_a.label) {
         | 
| 155 | 
            -
                            case 0:
         | 
| 156 | 
            -
                                if (!(e.key === 'Enter' && !isLoading)) return [3 /*break*/, 2];
         | 
| 157 | 
            -
                                return [4 /*yield*/, sendInputInquiry()];
         | 
| 158 | 
            -
                            case 1:
         | 
| 159 | 
            -
                                _a.sent();
         | 
| 160 | 
            -
                                _a.label = 2;
         | 
| 161 | 
            -
                            case 2: return [2 /*return*/];
         | 
| 162 | 
            -
                        }
         | 
| 163 | 
            -
                    });
         | 
| 164 | 
            -
                }); };
         | 
| 165 | 
            -
                var networkStatus = useNetwork();
         | 
| 166 | 
            -
                return (_jsx(AppProvider, { children: _jsxs("div", { className: "chat-bubble ".concat(chatIsOpen ? 'open' : ''), children: [chatIsOpen && (_jsxs("div", { className: "chat-window", style: { backgroundColor: chatBubbleConfig === null || chatBubbleConfig === void 0 ? void 0 : chatBubbleConfig.bgColor }, children: [_jsxs("div", { className: "chat-header", style: { backgroundColor: (_b = chatBubbleConfig === null || chatBubbleConfig === void 0 ? void 0 : chatBubbleConfig.color) !== null && _b !== void 0 ? _b : '#dedede' }, children: [_jsx("div", { style: { alignItems: 'center', display: 'flex', color: '#fff', fontWeight: 'bold' }, children: _jsx(Indicator, { inline: true, size: 12, offset: 7, position: "bottom-end", color: 'green', children: _jsx(Avatar, { color: "white", src: chatBubbleConfig === null || chatBubbleConfig === void 0 ? void 0 : chatBubbleConfig.logo_url, alt: "profile" }) }) }), _jsxs("div", { style: { display: 'flex', flexDirection: 'column', textAlign: 'left', paddingLeft: '10px', justifyContent: 'flex-start', color: '#fff' }, children: [_jsx("span", { style: { fontWeight: 'bold' }, children: chatBubbleConfig === null || chatBubbleConfig === void 0 ? void 0 : chatBubbleConfig.title }), isLoading ? _jsx("span", { style: { fontSize: '12px', lineHeight: '0.5' }, children: "Typing..." }) : _jsx("span", { style: { fontSize: '12px', lineHeight: '0.5' }, children: 'Online' })] })] }), _jsxs("div", { className: "message-list", children: [messages.map(function (message, index) { return (message.sender === 'user'
         | 
| 167 | 
            -
                                                ? _jsx("div", { className: "message ".concat(message.sender), children: message.text }, index)
         | 
| 168 | 
            -
                                                : _jsxs("div", { style: { display: 'flex' }, children: [_jsx(Avatar, { color: "white", src: chatBubbleConfig === null || chatBubbleConfig === void 0 ? void 0 : chatBubbleConfig.logo_url, size: 25, alt: "profile" }), _jsx("div", { className: "message ".concat(message.sender), children: message.text })] }, index)); }), showPredefinedQuestions && predefinedQuestions && predefinedQuestions.length > 0 && (_jsx(PredefinedQuestions, { questions: predefinedQuestions, onSelect: handlePredefinedQuestionSelect })), isLoading && _jsxs("div", { style: { marginLeft: '20px' }, className: 'message', children: [" ", _jsx("div", { className: "loader" }), "  "] }), _jsx("div", { ref: messageEndRef })] }), _jsxs("div", { className: "input-area", children: [_jsx("input", { autoFocus: true, type: "text", value: userInput, onChange: handleUserInput, onKeyPress: handleKeyPress, placeholder: "Ask a question" }), _jsx(Button, { disabled: isLoading !== null && isLoading !== void 0 ? isLoading : true, style: { backgroundColor: 'transparent', color: isLoading ? '#dedede' : chatBubbleConfig === null || chatBubbleConfig === void 0 ? void 0 : chatBubbleConfig.color }, size: 'middle', icon: _jsx(SendRounded, {}), onClick: sendInputInquiry })] })] })), _jsx(Button, { type: 'link', onClick: toggleChat, className: "chat-toggle", style: { backgroundColor: (_c = chatBubbleConfig === null || chatBubbleConfig === void 0 ? void 0 : chatBubbleConfig.color) !== null && _c !== void 0 ? _c : '#dedede' }, children: chatIsOpen ? _jsx(Close, { style: { width: 30, height: 30, color: '#fff' } }) : _jsx(ChatIcon, { style: { width: 30, height: 30, color: '#fff' } }) })] }) }));
         | 
| 169 | 
            -
            };
         | 
| 170 | 
            -
            export default BiBot;
         | 
| 171 | 
            -
            //# sourceMappingURL=bibot.js.map
         | 
| @@ -1 +0,0 @@ | |
| 1 | 
            -
            {"version":3,"file":"bibot.js","sourceRoot":"","sources":["../../src/components/bibot.tsx"],"names":[],"mappings":"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"}
         | 
| 
            File without changes
         |