angular-chat-widget-rasa
Version:
A chatbot widget that is able to connect to a rasa chatbot using SocketIO
99 lines • 7.25 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, ElementRef, EventEmitter, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
var ChatInputComponent = /** @class */ (function () {
function ChatInputComponent() {
this.buttonText = '↩︎';
this.focus = new EventEmitter();
this.send = new EventEmitter();
this.dismiss = new EventEmitter();
}
/**
* @return {?}
*/
ChatInputComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
var _this = this;
this.focus.subscribe((/**
* @return {?}
*/
function () { return _this.focusMessage(); }));
};
/**
* @return {?}
*/
ChatInputComponent.prototype.focusMessage = /**
* @return {?}
*/
function () {
this.message.nativeElement.focus();
};
/**
* @return {?}
*/
ChatInputComponent.prototype.getMessage = /**
* @return {?}
*/
function () {
return this.message.nativeElement.value;
};
/**
* @return {?}
*/
ChatInputComponent.prototype.clearMessage = /**
* @return {?}
*/
function () {
this.message.nativeElement.value = '';
};
/**
* @return {?}
*/
ChatInputComponent.prototype.onSubmit = /**
* @return {?}
*/
function () {
/** @type {?} */
var message = this.getMessage();
if (message.trim() === '') {
return;
}
this.send.emit({ message: message });
this.clearMessage();
this.focusMessage();
};
ChatInputComponent.decorators = [
{ type: Component, args: [{
selector: 'chat-input',
template: "\n <textarea type=\"text\" class=\"chat-input-text\" placeholder=\"Type message...\"\n #message (keydown.enter)=\"onSubmit()\" (keyup.enter)=\"message.value = ''\" (keyup.escape)=\"dismiss.emit()\"></textarea>\n <button type=\"submit\" class=\"chat-input-submit\" (click)=\"onSubmit()\">\n {{buttonText}}\n </button>\n ",
encapsulation: ViewEncapsulation.None,
styles: [".chat-input-text{margin:14px 0 0 14px;height:25px;width:70%;border:0;resize:none;border:none;overflow:auto;outline:0;box-shadow:none;font-size:14px;background-color:inherit;color:inherit}.chat-input-text::-webkit-input-placeholder{color:inherit}.chat-input-text::-moz-placeholder{color:inherit}.chat-input-text::-ms-input-placeholder{color:inherit}.chat-input-submit{margin:14px 12px;float:right;background-color:inherit;color:inherit;font-size:24px;border:0;outline:0}"]
}] }
];
ChatInputComponent.propDecorators = {
buttonText: [{ type: Input }],
focus: [{ type: Input }],
send: [{ type: Output }],
dismiss: [{ type: Output }],
message: [{ type: ViewChild, args: ['message',] }]
};
return ChatInputComponent;
}());
export { ChatInputComponent };
if (false) {
/** @type {?} */
ChatInputComponent.prototype.buttonText;
/** @type {?} */
ChatInputComponent.prototype.focus;
/** @type {?} */
ChatInputComponent.prototype.send;
/** @type {?} */
ChatInputComponent.prototype.dismiss;
/** @type {?} */
ChatInputComponent.prototype.message;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLWNoYXQtd2lkZ2V0LXJhc2EvIiwic291cmNlcyI6WyJsaWIvY2hhdC1pbnB1dC9jaGF0LWlucHV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRXhIO0lBQUE7UUFha0IsZUFBVSxHQUFHLElBQUksQ0FBQTtRQUNqQixVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQTtRQUN6QixTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQTtRQUN6QixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQTtJQTZCL0MsQ0FBQzs7OztJQTFCQyxxQ0FBUTs7O0lBQVI7UUFBQSxpQkFFQztRQURDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUzs7O1FBQUMsY0FBTSxPQUFBLEtBQUksQ0FBQyxZQUFZLEVBQUUsRUFBbkIsQ0FBbUIsRUFBQyxDQUFBO0lBQ2pELENBQUM7Ozs7SUFFTSx5Q0FBWTs7O0lBQW5CO1FBQ0UsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDcEMsQ0FBQzs7OztJQUVNLHVDQUFVOzs7SUFBakI7UUFDRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQTtJQUN6QyxDQUFDOzs7O0lBRU0seUNBQVk7OztJQUFuQjtRQUNFLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUE7SUFDdkMsQ0FBQzs7OztJQUVELHFDQUFROzs7SUFBUjs7WUFDUSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRTtRQUNqQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDekIsT0FBTTtTQUNQO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLFNBQUEsRUFBRSxDQUFDLENBQUE7UUFDM0IsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFBO1FBQ25CLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQTtJQUNyQixDQUFDOztnQkEzQ0YsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QixRQUFRLEVBQUUsNlZBTVQ7b0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7O2lCQUV0Qzs7OzZCQUVFLEtBQUs7d0JBQ0wsS0FBSzt1QkFDTCxNQUFNOzBCQUNOLE1BQU07MEJBQ04sU0FBUyxTQUFDLFNBQVM7O0lBNEJ0Qix5QkFBQztDQUFBLEFBN0NELElBNkNDO1NBakNZLGtCQUFrQjs7O0lBQzdCLHdDQUFpQzs7SUFDakMsbUNBQTBDOztJQUMxQyxrQ0FBMEM7O0lBQzFDLHFDQUE2Qzs7SUFDN0MscUNBQXlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NoYXQtaW5wdXQnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDx0ZXh0YXJlYSB0eXBlPVwidGV4dFwiIGNsYXNzPVwiY2hhdC1pbnB1dC10ZXh0XCIgcGxhY2Vob2xkZXI9XCJUeXBlIG1lc3NhZ2UuLi5cIlxuICAgICAgICAgICAgICAjbWVzc2FnZSAoa2V5ZG93bi5lbnRlcik9XCJvblN1Ym1pdCgpXCIgKGtleXVwLmVudGVyKT1cIm1lc3NhZ2UudmFsdWUgPSAnJ1wiIChrZXl1cC5lc2NhcGUpPVwiZGlzbWlzcy5lbWl0KClcIj48L3RleHRhcmVhPlxuICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiY2hhdC1pbnB1dC1zdWJtaXRcIiAoY2xpY2spPVwib25TdWJtaXQoKVwiPlxuICAgICAge3tidXR0b25UZXh0fX1cbiAgICA8L2J1dHRvbj5cbiAgYCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgc3R5bGVVcmxzOiBbJy4vY2hhdC1pbnB1dC5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENoYXRJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBidXR0b25UZXh0ID0gJ+KGqe+4jidcbiAgQElucHV0KCkgcHVibGljIGZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIEBPdXRwdXQoKSBwdWJsaWMgc2VuZCA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICBAT3V0cHV0KCkgcHVibGljIGRpc21pc3MgPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgQFZpZXdDaGlsZCgnbWVzc2FnZScpIG1lc3NhZ2U6IEVsZW1lbnRSZWZcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmZvY3VzLnN1YnNjcmliZSgoKSA9PiB0aGlzLmZvY3VzTWVzc2FnZSgpKVxuICB9XG5cbiAgcHVibGljIGZvY3VzTWVzc2FnZSgpIHtcbiAgICB0aGlzLm1lc3NhZ2UubmF0aXZlRWxlbWVudC5mb2N1cygpXG4gIH1cblxuICBwdWJsaWMgZ2V0TWVzc2FnZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXNzYWdlLm5hdGl2ZUVsZW1lbnQudmFsdWVcbiAgfVxuXG4gIHB1YmxpYyBjbGVhck1lc3NhZ2UoKSB7XG4gICAgdGhpcy5tZXNzYWdlLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJ1xuICB9XG5cbiAgb25TdWJtaXQoKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IHRoaXMuZ2V0TWVzc2FnZSgpXG4gICAgaWYgKG1lc3NhZ2UudHJpbSgpID09PSAnJykge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHRoaXMuc2VuZC5lbWl0KHsgbWVzc2FnZSB9KVxuICAgIHRoaXMuY2xlYXJNZXNzYWdlKClcbiAgICB0aGlzLmZvY3VzTWVzc2FnZSgpXG4gIH1cblxufVxuIl19