angular-chat-widget-rasa
Version:
A chatbot widget that is able to connect to a rasa chatbot using SocketIO
107 lines • 6.45 kB
JavaScript
/**
* @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";
var ChatService = /** @class */ (function () {
function ChatService() {
var _this = this;
this.getMessages = (/**
* @return {?}
*/
function () {
return Observable.create((/**
* @param {?} observer
* @return {?}
*/
function (observer) {
_this.socket.on('bot_uttered', (/**
* @param {?} message
* @return {?}
*/
function (message) {
observer.next(message);
}));
}));
});
}
/**
* @param {?} url
* @return {?}
*/
ChatService.prototype.connect = /**
* @param {?} url
* @return {?}
*/
function (url) {
var _this = this;
this.socket = io(url);
this.socket.on('connect', (/**
* @return {?}
*/
function () {
_this.socket.emit('session_request', { 'session_id': _this.socket.id });
}));
this.socket.on('session_confirm', (/**
* @param {?} remote_id
* @return {?}
*/
function (remote_id) {
}));
this.socket.on('connect_error', (/**
* @param {?} error
* @return {?}
*/
function (error) {
console.log(error);
}));
this.socket.on('error', (/**
* @param {?} error
* @return {?}
*/
function (error) {
console.log(error);
}));
this.socket.on('disconnect', (/**
* @param {?} reason
* @return {?}
*/
function (reason) {
console.log(reason);
}));
};
/**
* @param {?} message
* @return {?}
*/
ChatService.prototype.sendMessage = /**
* @param {?} message
* @return {?}
*/
function (message) {
this.socket.emit('user_uttered', { 'message': message });
};
ChatService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
/** @nocollapse */
ChatService.ctorParameters = function () { return []; };
/** @nocollapse */ ChatService.ngInjectableDef = i0.defineInjectable({ factory: function ChatService_Factory() { return new ChatService(); }, token: ChatService, providedIn: "root" });
return ChatService;
}());
export { ChatService };
if (false) {
/**
* @type {?}
* @private
*/
ChatService.prototype.socket;
/** @type {?} */
ChatService.prototype.getMessages;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdGJvdC1yYXNhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLWNoYXQtd2lkZ2V0LXJhc2EvIiwic291cmNlcyI6WyJsaWIvY2hhdGJvdC1yYXNhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUU3QztJQU9FO1FBQUEsaUJBRUM7UUEwQk0sZ0JBQVc7OztRQUFHO1lBQ2YsT0FBTyxVQUFVLENBQUMsTUFBTTs7OztZQUFDLFVBQUMsUUFBUTtnQkFDOUIsS0FBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsYUFBYTs7OztnQkFBRSxVQUFDLE9BQU87b0JBQ2xDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzNCLENBQUMsRUFBQyxDQUFDO1lBQ1AsQ0FBQyxFQUFDLENBQUM7UUFDVCxDQUFDLEVBQUE7SUFoQ0QsQ0FBQzs7Ozs7SUFFTSw2QkFBTzs7OztJQUFkLFVBQWUsR0FBVztRQUExQixpQkFrQkM7UUFqQkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsU0FBUzs7O1FBQUU7WUFDeEIsS0FBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBQyxZQUFZLEVBQUMsS0FBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFBO1FBQ3BFLENBQUMsRUFBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsaUJBQWlCOzs7O1FBQUUsVUFBQyxTQUFTO1FBQzVDLENBQUMsRUFBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsZUFBZTs7OztRQUFFLFVBQUMsS0FBSztZQUNwQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLENBQUMsRUFBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBTzs7OztRQUFFLFVBQUMsS0FBSztZQUM1QixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLENBQUMsRUFBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsWUFBWTs7OztRQUFFLFVBQUMsTUFBTTtZQUNsQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RCLENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7Ozs7SUFFTSxpQ0FBVzs7OztJQUFsQixVQUFtQixPQUFPO1FBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFDLFNBQVMsRUFBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7O2dCQWpDRixVQUFVLFNBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzs7OztzQkFORDtDQThDQyxBQTFDRCxJQTBDQztTQXZDWSxXQUFXOzs7Ozs7SUFFdEIsNkJBQWU7O0lBOEJmLGtDQU1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IGlvIGZyb20gJ3NvY2tldC5pby1jbGllbnQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMvT2JzZXJ2YWJsZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIENoYXRTZXJ2aWNlIHtcblxuICBwcml2YXRlIHNvY2tldDtcblxuICBjb25zdHJ1Y3RvcigpIHtcblxuICB9XG5cbiAgcHVibGljIGNvbm5lY3QodXJsOiBzdHJpbmcpe1xuICAgIHRoaXMuc29ja2V0ID0gaW8odXJsKTtcbiAgICB0aGlzLnNvY2tldC5vbignY29ubmVjdCcsICgpID0+IHtcbiAgICAgIHRoaXMuc29ja2V0LmVtaXQoJ3Nlc3Npb25fcmVxdWVzdCcsIHsnc2Vzc2lvbl9pZCc6dGhpcy5zb2NrZXQuaWR9KVxuICAgIH0pO1xuICAgIHRoaXMuc29ja2V0Lm9uKCdzZXNzaW9uX2NvbmZpcm0nLCAocmVtb3RlX2lkKSA9PiB7XG4gICAgfSlcbiAgICB0aGlzLnNvY2tldC5vbignY29ubmVjdF9lcnJvcicsIChlcnJvcikgPT4ge1xuICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5zb2NrZXQub24oJ2Vycm9yJywgKGVycm9yKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZyhlcnJvcik7XG4gICAgfSk7XG5cbiAgICB0aGlzLnNvY2tldC5vbignZGlzY29ubmVjdCcsIChyZWFzb24pID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKHJlYXNvbik7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2VuZE1lc3NhZ2UobWVzc2FnZSkge1xuICAgIHRoaXMuc29ja2V0LmVtaXQoJ3VzZXJfdXR0ZXJlZCcsIHsnbWVzc2FnZSc6bWVzc2FnZX0pO1xuICB9XG5cbiAgcHVibGljIGdldE1lc3NhZ2VzID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4gT2JzZXJ2YWJsZS5jcmVhdGUoKG9ic2VydmVyKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNvY2tldC5vbignYm90X3V0dGVyZWQnLCAobWVzc2FnZSkgPT4ge1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQobWVzc2FnZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gIH1cbn1cbiJdfQ==