UNPKG

angular-chat-widget-rasa

Version:

A chatbot widget that is able to connect to a rasa chatbot using SocketIO

95 lines 6.04 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Injectable } from '@angular/core'; import io from 'socket.io-client'; import { Observable } from 'rxjs/Observable'; import * as i0 from "@angular/core"; export class ChatService { constructor() { this.getMessages = (/** * @return {?} */ () => { return Observable.create((/** * @param {?} observer * @return {?} */ (observer) => { this.socket.on('bot_uttered', (/** * @param {?} message * @return {?} */ (message) => { observer.next(message); })); })); }); } /** * @param {?} url * @return {?} */ connect(url) { this.socket = io(url); this.socket.on('connect', (/** * @return {?} */ () => { this.socket.emit('session_request', { 'session_id': this.socket.id }); })); this.socket.on('session_confirm', (/** * @param {?} remote_id * @return {?} */ (remote_id) => { })); this.socket.on('connect_error', (/** * @param {?} error * @return {?} */ (error) => { console.log(error); })); this.socket.on('error', (/** * @param {?} error * @return {?} */ (error) => { console.log(error); })); this.socket.on('disconnect', (/** * @param {?} reason * @return {?} */ (reason) => { console.log(reason); })); } /** * @param {?} message * @return {?} */ sendMessage(message) { this.socket.emit('user_uttered', { 'message': message }); } } ChatService.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] } ]; /** @nocollapse */ ChatService.ctorParameters = () => []; /** @nocollapse */ ChatService.ngInjectableDef = i0.defineInjectable({ factory: function ChatService_Factory() { return new ChatService(); }, token: ChatService, providedIn: "root" }); if (false) { /** * @type {?} * @private */ ChatService.prototype.socket; /** @type {?} */ ChatService.prototype.getMessages; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdGJvdC1yYXNhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLWNoYXQtd2lkZ2V0LXJhc2EvIiwic291cmNlcyI6WyJsaWIvY2hhdGJvdC1yYXNhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUs3QyxNQUFNLE9BQU8sV0FBVztJQUl0QjtRQTRCTyxnQkFBVzs7O1FBQUcsR0FBRyxFQUFFO1lBQ3BCLE9BQU8sVUFBVSxDQUFDLE1BQU07Ozs7WUFBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxhQUFhOzs7O2dCQUFFLENBQUMsT0FBTyxFQUFFLEVBQUU7b0JBQ3RDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzNCLENBQUMsRUFBQyxDQUFDO1lBQ1AsQ0FBQyxFQUFDLENBQUM7UUFDVCxDQUFDLEVBQUE7SUFoQ0QsQ0FBQzs7Ozs7SUFFTSxPQUFPLENBQUMsR0FBVztRQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxTQUFTOzs7UUFBRSxHQUFHLEVBQUU7WUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBQyxZQUFZLEVBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFBO1FBQ3BFLENBQUMsRUFBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsaUJBQWlCOzs7O1FBQUUsQ0FBQyxTQUFTLEVBQUUsRUFBRTtRQUNoRCxDQUFDLEVBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLGVBQWU7Ozs7UUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsQ0FBQyxFQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPOzs7O1FBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNoQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLENBQUMsRUFBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsWUFBWTs7OztRQUFFLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QixDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7O0lBRU0sV0FBVyxDQUFDLE9BQU87UUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQzs7O1lBakNGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7Ozs7Ozs7OztJQUdDLDZCQUFlOztJQThCZixrQ0FNQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBpbyBmcm9tICdzb2NrZXQuaW8tY2xpZW50JztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzL09ic2VydmFibGUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDaGF0U2VydmljZSB7XG5cbiAgcHJpdmF0ZSBzb2NrZXQ7XG5cbiAgY29uc3RydWN0b3IoKSB7XG5cbiAgfVxuXG4gIHB1YmxpYyBjb25uZWN0KHVybDogc3RyaW5nKXtcbiAgICB0aGlzLnNvY2tldCA9IGlvKHVybCk7XG4gICAgdGhpcy5zb2NrZXQub24oJ2Nvbm5lY3QnLCAoKSA9PiB7XG4gICAgICB0aGlzLnNvY2tldC5lbWl0KCdzZXNzaW9uX3JlcXVlc3QnLCB7J3Nlc3Npb25faWQnOnRoaXMuc29ja2V0LmlkfSlcbiAgICB9KTtcbiAgICB0aGlzLnNvY2tldC5vbignc2Vzc2lvbl9jb25maXJtJywgKHJlbW90ZV9pZCkgPT4ge1xuICAgIH0pXG4gICAgdGhpcy5zb2NrZXQub24oJ2Nvbm5lY3RfZXJyb3InLCAoZXJyb3IpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICB9KTtcblxuICAgIHRoaXMuc29ja2V0Lm9uKCdlcnJvcicsIChlcnJvcikgPT4ge1xuICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5zb2NrZXQub24oJ2Rpc2Nvbm5lY3QnLCAocmVhc29uKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZyhyZWFzb24pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNlbmRNZXNzYWdlKG1lc3NhZ2UpIHtcbiAgICB0aGlzLnNvY2tldC5lbWl0KCd1c2VyX3V0dGVyZWQnLCB7J21lc3NhZ2UnOm1lc3NhZ2V9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRNZXNzYWdlcyA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIE9ic2VydmFibGUuY3JlYXRlKChvYnNlcnZlcikgPT4ge1xuICAgICAgICAgICAgdGhpcy5zb2NrZXQub24oJ2JvdF91dHRlcmVkJywgKG1lc3NhZ2UpID0+IHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KG1lc3NhZ2UpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICB9XG59XG4iXX0=