@dorydaniel/ai-banking-assistant-lib 0.0.2 → 0.0.4

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.
@@ -1,24 +1,72 @@
1
- import { Component, Input } from '@angular/core';
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { Component, inject, Input } from '@angular/core';
2
3
  import * as i0 from "@angular/core";
3
4
  export class AiBankingAssistantLibComponent {
4
5
  username = '';
6
+ transactionsUrl = '';
7
+ transactionRequest = {};
8
+ http = inject(HttpClient);
5
9
  conversation = [
6
10
  {
7
11
  from: 'bot',
8
12
  text: 'Hello! How can I assist you with your banking needs today?',
9
13
  },
10
- {
11
- from: 'user',
12
- text: 'Hello! Please help?',
13
- },
14
14
  ];
15
+ textareaKeydown(event) {
16
+ if (event.key === 'Enter') {
17
+ // Check if the Shift key was also held down
18
+ if (event.shiftKey) {
19
+ // Shift+Enter: Allow the default behavior (new line)
20
+ // No need to preventDefault();
21
+ }
22
+ else {
23
+ // Enter only: Prevent the default behavior (new line)
24
+ event.preventDefault();
25
+ // Submit the form
26
+ this.conversation.push({
27
+ from: 'user',
28
+ text: event.target.value,
29
+ });
30
+ // // Clear the textarea after submission
31
+ // (event.target as HTMLTextAreaElement).value = '';
32
+ // (event.target as HTMLTextAreaElement).scrollTo(
33
+ // 0,
34
+ // (event.target as HTMLTextAreaElement).scrollHeight,
35
+ // );
36
+ if (event.target.value.toLowerCase() ===
37
+ 'transactions') {
38
+ this.conversation.push({
39
+ from: 'bot',
40
+ text: 'Here are your recent transactions:',
41
+ });
42
+ this.http
43
+ .post(this.transactionsUrl, this.transactionRequest)
44
+ .subscribe((data) => {
45
+ data.forEach((tx) => {
46
+ this.conversation.push({
47
+ from: 'bot',
48
+ text: `- ${tx.description}: $${tx.amount.toFixed(2)}`,
49
+ });
50
+ });
51
+ });
52
+ }
53
+ // Clear the textarea after submission
54
+ event.target.value = '';
55
+ event.target.scrollTo(0, event.target.scrollHeight);
56
+ }
57
+ }
58
+ }
15
59
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AiBankingAssistantLibComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AiBankingAssistantLibComponent, isStandalone: true, selector: "lib-ai-banking-assistant-lib", inputs: { username: "username" }, ngImport: i0, template: "<div\n class=\"main-container text-white d-flex flex-column justify-content-between p-4\"\n>\n <h1 class=\"m-0\">Welcome {{ username }}!</h1>\n\n <div>\n <div class=\"conversation-view d-flex flex-column justify-content-end\">\n @for (message of conversation; track $index) {\n <div\n class=\"p-3 mb-3 {{\n message.from === 'user' ? 'align-self-end' : 'align-self-start'\n }}\"\n >\n {{ message.text }}\n </div>\n }\n </div>\n <textarea\n class=\"rounded-4 w-100 p-3\"\n placeholder=\"Tell me what you need...\"\n ></textarea>\n </div>\n</div>\n", styles: [".main-container{min-height:400px;height:100%;background:linear-gradient(180deg,#6a2bd6,#2e0458)}.main-container textarea{background-color:#290050;color:#fff;border:none}.main-container textarea::placeholder{color:#d3d3d3}.main-container textarea:focus-visible{outline:none}\n"] });
60
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AiBankingAssistantLibComponent, isStandalone: true, selector: "lib-ai-banking-assistant-lib", inputs: { username: "username", transactionsUrl: "transactionsUrl", transactionRequest: "transactionRequest" }, ngImport: i0, template: "<div\n class=\"main-container text-white d-flex flex-column justify-content-between p-4\"\n>\n <h1 class=\"m-0\">Welcome {{ username }}!</h1>\n\n <div class=\"px-5 pt-5\">\n <div class=\"conversation-view p-3 mb-3\">\n @for (message of conversation; track $index) {\n <div\n class=\"p-2 {{\n message.from === 'user'\n ? 'float-end text-end user-message'\n : 'float-start text-start'\n }}\"\n >\n {{ message.text }}\n </div>\n }\n </div>\n <textarea\n class=\"rounded-4 w-100 p-3\"\n placeholder=\"Tell me what you need...\"\n (keydown)=\"textareaKeydown($event)\"\n ></textarea>\n </div>\n</div>\n", styles: [".main-container{min-height:400px;height:100%;background:linear-gradient(180deg,#6a2bd6,#2e0458)}.main-container .conversation-view{max-height:300px;overflow-y:auto}.main-container .conversation-view .user-message{width:75%}.main-container textarea{background-color:#290050;color:#fff;border:none;field-sizing:content;min-height:3lh;max-height:6lh;resize:none}.main-container textarea::placeholder{color:#d3d3d3}.main-container textarea:focus-visible{outline:none}\n"] });
17
61
  }
18
62
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AiBankingAssistantLibComponent, decorators: [{
19
63
  type: Component,
20
- args: [{ selector: 'lib-ai-banking-assistant-lib', standalone: true, imports: [], template: "<div\n class=\"main-container text-white d-flex flex-column justify-content-between p-4\"\n>\n <h1 class=\"m-0\">Welcome {{ username }}!</h1>\n\n <div>\n <div class=\"conversation-view d-flex flex-column justify-content-end\">\n @for (message of conversation; track $index) {\n <div\n class=\"p-3 mb-3 {{\n message.from === 'user' ? 'align-self-end' : 'align-self-start'\n }}\"\n >\n {{ message.text }}\n </div>\n }\n </div>\n <textarea\n class=\"rounded-4 w-100 p-3\"\n placeholder=\"Tell me what you need...\"\n ></textarea>\n </div>\n</div>\n", styles: [".main-container{min-height:400px;height:100%;background:linear-gradient(180deg,#6a2bd6,#2e0458)}.main-container textarea{background-color:#290050;color:#fff;border:none}.main-container textarea::placeholder{color:#d3d3d3}.main-container textarea:focus-visible{outline:none}\n"] }]
64
+ args: [{ selector: 'lib-ai-banking-assistant-lib', standalone: true, imports: [], template: "<div\n class=\"main-container text-white d-flex flex-column justify-content-between p-4\"\n>\n <h1 class=\"m-0\">Welcome {{ username }}!</h1>\n\n <div class=\"px-5 pt-5\">\n <div class=\"conversation-view p-3 mb-3\">\n @for (message of conversation; track $index) {\n <div\n class=\"p-2 {{\n message.from === 'user'\n ? 'float-end text-end user-message'\n : 'float-start text-start'\n }}\"\n >\n {{ message.text }}\n </div>\n }\n </div>\n <textarea\n class=\"rounded-4 w-100 p-3\"\n placeholder=\"Tell me what you need...\"\n (keydown)=\"textareaKeydown($event)\"\n ></textarea>\n </div>\n</div>\n", styles: [".main-container{min-height:400px;height:100%;background:linear-gradient(180deg,#6a2bd6,#2e0458)}.main-container .conversation-view{max-height:300px;overflow-y:auto}.main-container .conversation-view .user-message{width:75%}.main-container textarea{background-color:#290050;color:#fff;border:none;field-sizing:content;min-height:3lh;max-height:6lh;resize:none}.main-container textarea::placeholder{color:#d3d3d3}.main-container textarea:focus-visible{outline:none}\n"] }]
21
65
  }], propDecorators: { username: [{
22
66
  type: Input
67
+ }], transactionsUrl: [{
68
+ type: Input
69
+ }], transactionRequest: [{
70
+ type: Input
23
71
  }] } });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktYmFua2luZy1hc3Npc3RhbnQtbGliLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FpLWJhbmtpbmctYXNzaXN0YW50LWxpYi9zcmMvbGliL2FpLWJhbmtpbmctYXNzaXN0YW50LWxpYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9haS1iYW5raW5nLWFzc2lzdGFudC1saWIvc3JjL2xpYi9haS1iYW5raW5nLWFzc2lzdGFudC1saWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBU2pELE1BQU0sT0FBTyw4QkFBOEI7SUFDaEMsUUFBUSxHQUFXLEVBQUUsQ0FBQztJQUMvQixZQUFZLEdBQUc7UUFDYjtZQUNFLElBQUksRUFBRSxLQUFLO1lBQ1gsSUFBSSxFQUFFLDREQUE0RDtTQUNuRTtRQUNEO1lBQ0UsSUFBSSxFQUFFLE1BQU07WUFDWixJQUFJLEVBQUUscUJBQXFCO1NBQzVCO0tBQ0YsQ0FBQzt3R0FYUyw4QkFBOEI7NEZBQTlCLDhCQUE4QiwwSENUM0Msa29CQXVCQTs7NEZEZGEsOEJBQThCO2tCQVAxQyxTQUFTOytCQUNFLDhCQUE4QixjQUM1QixJQUFJLFdBQ1AsRUFBRTs4QkFLRixRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItYWktYmFua2luZy1hc3Npc3RhbnQtbGliJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW10sXG4gIHRlbXBsYXRlVXJsOiAnLi9haS1iYW5raW5nLWFzc2lzdGFudC1saWIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi4vc3R5bGVzLnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQWlCYW5raW5nQXNzaXN0YW50TGliQ29tcG9uZW50IHtcbiAgQElucHV0KCkgdXNlcm5hbWU6IHN0cmluZyA9ICcnO1xuICBjb252ZXJzYXRpb24gPSBbXG4gICAge1xuICAgICAgZnJvbTogJ2JvdCcsXG4gICAgICB0ZXh0OiAnSGVsbG8hIEhvdyBjYW4gSSBhc3Npc3QgeW91IHdpdGggeW91ciBiYW5raW5nIG5lZWRzIHRvZGF5PycsXG4gICAgfSxcbiAgICB7XG4gICAgICBmcm9tOiAndXNlcicsXG4gICAgICB0ZXh0OiAnSGVsbG8hIFBsZWFzZSBoZWxwPycsXG4gICAgfSxcbiAgXTtcbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJtYWluLWNvbnRhaW5lciB0ZXh0LXdoaXRlIGQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBwLTRcIlxuPlxuICA8aDEgY2xhc3M9XCJtLTBcIj5XZWxjb21lIHt7IHVzZXJuYW1lIH19ITwvaDE+XG5cbiAgPGRpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udmVyc2F0aW9uLXZpZXcgZC1mbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1lbmRcIj5cbiAgICAgIEBmb3IgKG1lc3NhZ2Ugb2YgY29udmVyc2F0aW9uOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwicC0zIG1iLTMge3tcbiAgICAgICAgICAgIG1lc3NhZ2UuZnJvbSA9PT0gJ3VzZXInID8gJ2FsaWduLXNlbGYtZW5kJyA6ICdhbGlnbi1zZWxmLXN0YXJ0J1xuICAgICAgICAgIH19XCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IG1lc3NhZ2UudGV4dCB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICA8dGV4dGFyZWFcbiAgICAgIGNsYXNzPVwicm91bmRlZC00IHctMTAwIHAtM1wiXG4gICAgICBwbGFjZWhvbGRlcj1cIlRlbGwgbWUgd2hhdCB5b3UgbmVlZC4uLlwiXG4gICAgPjwvdGV4dGFyZWE+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktYmFua2luZy1hc3Npc3RhbnQtbGliLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FpLWJhbmtpbmctYXNzaXN0YW50LWxpYi9zcmMvbGliL2FpLWJhbmtpbmctYXNzaXN0YW50LWxpYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9haS1iYW5raW5nLWFzc2lzdGFudC1saWIvc3JjL2xpYi9haS1iYW5raW5nLWFzc2lzdGFudC1saWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFTekQsTUFBTSxPQUFPLDhCQUE4QjtJQUNoQyxRQUFRLEdBQVcsRUFBRSxDQUFDO0lBQ3RCLGVBQWUsR0FBVyxFQUFFLENBQUM7SUFDN0Isa0JBQWtCLEdBQVEsRUFBRSxDQUFDO0lBRTlCLElBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFbEMsWUFBWSxHQUFHO1FBQ2I7WUFDRSxJQUFJLEVBQUUsS0FBSztZQUNYLElBQUksRUFBRSw0REFBNEQ7U0FDbkU7S0FDRixDQUFDO0lBRUYsZUFBZSxDQUFDLEtBQW9CO1FBQ2xDLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUMxQiw0Q0FBNEM7WUFDNUMsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ25CLHFEQUFxRDtnQkFDckQsK0JBQStCO1lBQ2pDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixzREFBc0Q7Z0JBQ3RELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDdkIsa0JBQWtCO2dCQUNsQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztvQkFDckIsSUFBSSxFQUFFLE1BQU07b0JBQ1osSUFBSSxFQUFHLEtBQUssQ0FBQyxNQUE4QixDQUFDLEtBQUs7aUJBQ2xELENBQUMsQ0FBQztnQkFDSCx5Q0FBeUM7Z0JBQ3pDLG9EQUFvRDtnQkFDcEQsa0RBQWtEO2dCQUNsRCxPQUFPO2dCQUNQLHdEQUF3RDtnQkFDeEQsS0FBSztnQkFFTCxJQUNHLEtBQUssQ0FBQyxNQUE4QixDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUU7b0JBQ3pELGNBQWMsRUFDZCxDQUFDO29CQUNELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO3dCQUNyQixJQUFJLEVBQUUsS0FBSzt3QkFDWCxJQUFJLEVBQUUsb0NBQW9DO3FCQUMzQyxDQUFDLENBQUM7b0JBQ0gsSUFBSSxDQUFDLElBQUk7eUJBQ04sSUFBSSxDQUVILElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDO3lCQUMvQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTt3QkFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFOzRCQUNsQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztnQ0FDckIsSUFBSSxFQUFFLEtBQUs7Z0NBQ1gsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLFdBQVcsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTs2QkFDdEQsQ0FBQyxDQUFDO3dCQUNMLENBQUMsQ0FBQyxDQUFDO29CQUNMLENBQUMsQ0FBQyxDQUFDO2dCQUNQLENBQUM7Z0JBRUQsc0NBQXNDO2dCQUNyQyxLQUFLLENBQUMsTUFBOEIsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUNoRCxLQUFLLENBQUMsTUFBOEIsQ0FBQyxRQUFRLENBQzVDLENBQUMsRUFDQSxLQUFLLENBQUMsTUFBOEIsQ0FBQyxZQUFZLENBQ25ELENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7d0dBakVVLDhCQUE4Qjs0RkFBOUIsOEJBQThCLHdNQ1YzQyxxdEJBMEJBOzs0RkRoQmEsOEJBQThCO2tCQVAxQyxTQUFTOytCQUNFLDhCQUE4QixjQUM1QixJQUFJLFdBQ1AsRUFBRTs4QkFLRixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItYWktYmFua2luZy1hc3Npc3RhbnQtbGliJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW10sXG4gIHRlbXBsYXRlVXJsOiAnLi9haS1iYW5raW5nLWFzc2lzdGFudC1saWIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi4vc3R5bGVzLnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQWlCYW5raW5nQXNzaXN0YW50TGliQ29tcG9uZW50IHtcbiAgQElucHV0KCkgdXNlcm5hbWU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSB0cmFuc2FjdGlvbnNVcmw6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSB0cmFuc2FjdGlvblJlcXVlc3Q6IGFueSA9IHt9O1xuXG4gIHByaXZhdGUgaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcblxuICBjb252ZXJzYXRpb24gPSBbXG4gICAge1xuICAgICAgZnJvbTogJ2JvdCcsXG4gICAgICB0ZXh0OiAnSGVsbG8hIEhvdyBjYW4gSSBhc3Npc3QgeW91IHdpdGggeW91ciBiYW5raW5nIG5lZWRzIHRvZGF5PycsXG4gICAgfSxcbiAgXTtcblxuICB0ZXh0YXJlYUtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAvLyBDaGVjayBpZiB0aGUgU2hpZnQga2V5IHdhcyBhbHNvIGhlbGQgZG93blxuICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICAgIC8vIFNoaWZ0K0VudGVyOiBBbGxvdyB0aGUgZGVmYXVsdCBiZWhhdmlvciAobmV3IGxpbmUpXG4gICAgICAgIC8vIE5vIG5lZWQgdG8gcHJldmVudERlZmF1bHQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEVudGVyIG9ubHk6IFByZXZlbnQgdGhlIGRlZmF1bHQgYmVoYXZpb3IgKG5ldyBsaW5lKVxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAvLyBTdWJtaXQgdGhlIGZvcm1cbiAgICAgICAgdGhpcy5jb252ZXJzYXRpb24ucHVzaCh7XG4gICAgICAgICAgZnJvbTogJ3VzZXInLFxuICAgICAgICAgIHRleHQ6IChldmVudC50YXJnZXQgYXMgSFRNTFRleHRBcmVhRWxlbWVudCkudmFsdWUsXG4gICAgICAgIH0pO1xuICAgICAgICAvLyAvLyBDbGVhciB0aGUgdGV4dGFyZWEgYWZ0ZXIgc3VibWlzc2lvblxuICAgICAgICAvLyAoZXZlbnQudGFyZ2V0IGFzIEhUTUxUZXh0QXJlYUVsZW1lbnQpLnZhbHVlID0gJyc7XG4gICAgICAgIC8vIChldmVudC50YXJnZXQgYXMgSFRNTFRleHRBcmVhRWxlbWVudCkuc2Nyb2xsVG8oXG4gICAgICAgIC8vICAgMCxcbiAgICAgICAgLy8gICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxUZXh0QXJlYUVsZW1lbnQpLnNjcm9sbEhlaWdodCxcbiAgICAgICAgLy8gKTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgKGV2ZW50LnRhcmdldCBhcyBIVE1MVGV4dEFyZWFFbGVtZW50KS52YWx1ZS50b0xvd2VyQ2FzZSgpID09PVxuICAgICAgICAgICd0cmFuc2FjdGlvbnMnXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMuY29udmVyc2F0aW9uLnB1c2goe1xuICAgICAgICAgICAgZnJvbTogJ2JvdCcsXG4gICAgICAgICAgICB0ZXh0OiAnSGVyZSBhcmUgeW91ciByZWNlbnQgdHJhbnNhY3Rpb25zOicsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdDxcbiAgICAgICAgICAgICAgeyBhbW91bnQ6IG51bWJlcjsgZGVzY3JpcHRpb246IHN0cmluZyB9W11cbiAgICAgICAgICAgID4odGhpcy50cmFuc2FjdGlvbnNVcmwsIHRoaXMudHJhbnNhY3Rpb25SZXF1ZXN0KVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICBkYXRhLmZvckVhY2goKHR4KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb252ZXJzYXRpb24ucHVzaCh7XG4gICAgICAgICAgICAgICAgICBmcm9tOiAnYm90JyxcbiAgICAgICAgICAgICAgICAgIHRleHQ6IGAtICR7dHguZGVzY3JpcHRpb259OiAkJHt0eC5hbW91bnQudG9GaXhlZCgyKX1gLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2xlYXIgdGhlIHRleHRhcmVhIGFmdGVyIHN1Ym1pc3Npb25cbiAgICAgICAgKGV2ZW50LnRhcmdldCBhcyBIVE1MVGV4dEFyZWFFbGVtZW50KS52YWx1ZSA9ICcnO1xuICAgICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxUZXh0QXJlYUVsZW1lbnQpLnNjcm9sbFRvKFxuICAgICAgICAgIDAsXG4gICAgICAgICAgKGV2ZW50LnRhcmdldCBhcyBIVE1MVGV4dEFyZWFFbGVtZW50KS5zY3JvbGxIZWlnaHQsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwibWFpbi1jb250YWluZXIgdGV4dC13aGl0ZSBkLWZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWJldHdlZW4gcC00XCJcbj5cbiAgPGgxIGNsYXNzPVwibS0wXCI+V2VsY29tZSB7eyB1c2VybmFtZSB9fSE8L2gxPlxuXG4gIDxkaXYgY2xhc3M9XCJweC01IHB0LTVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udmVyc2F0aW9uLXZpZXcgcC0zIG1iLTNcIj5cbiAgICAgIEBmb3IgKG1lc3NhZ2Ugb2YgY29udmVyc2F0aW9uOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwicC0yIHt7XG4gICAgICAgICAgICBtZXNzYWdlLmZyb20gPT09ICd1c2VyJ1xuICAgICAgICAgICAgICA/ICdmbG9hdC1lbmQgdGV4dC1lbmQgdXNlci1tZXNzYWdlJ1xuICAgICAgICAgICAgICA6ICdmbG9hdC1zdGFydCB0ZXh0LXN0YXJ0J1xuICAgICAgICAgIH19XCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IG1lc3NhZ2UudGV4dCB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICA8dGV4dGFyZWFcbiAgICAgIGNsYXNzPVwicm91bmRlZC00IHctMTAwIHAtM1wiXG4gICAgICBwbGFjZWhvbGRlcj1cIlRlbGwgbWUgd2hhdCB5b3UgbmVlZC4uLlwiXG4gICAgICAoa2V5ZG93bik9XCJ0ZXh0YXJlYUtleWRvd24oJGV2ZW50KVwiXG4gICAgPjwvdGV4dGFyZWE+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,5 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, Component, Input } from '@angular/core';
2
+ import { Injectable, inject, Component, Input } from '@angular/core';
3
+ import { HttpClient } from '@angular/common/http';
3
4
 
4
5
  class AiBankingAssistantLibService {
5
6
  constructor() { }
@@ -15,24 +16,71 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
15
16
 
16
17
  class AiBankingAssistantLibComponent {
17
18
  username = '';
19
+ transactionsUrl = '';
20
+ transactionRequest = {};
21
+ http = inject(HttpClient);
18
22
  conversation = [
19
23
  {
20
24
  from: 'bot',
21
25
  text: 'Hello! How can I assist you with your banking needs today?',
22
26
  },
23
- {
24
- from: 'user',
25
- text: 'Hello! Please help?',
26
- },
27
27
  ];
28
+ textareaKeydown(event) {
29
+ if (event.key === 'Enter') {
30
+ // Check if the Shift key was also held down
31
+ if (event.shiftKey) {
32
+ // Shift+Enter: Allow the default behavior (new line)
33
+ // No need to preventDefault();
34
+ }
35
+ else {
36
+ // Enter only: Prevent the default behavior (new line)
37
+ event.preventDefault();
38
+ // Submit the form
39
+ this.conversation.push({
40
+ from: 'user',
41
+ text: event.target.value,
42
+ });
43
+ // // Clear the textarea after submission
44
+ // (event.target as HTMLTextAreaElement).value = '';
45
+ // (event.target as HTMLTextAreaElement).scrollTo(
46
+ // 0,
47
+ // (event.target as HTMLTextAreaElement).scrollHeight,
48
+ // );
49
+ if (event.target.value.toLowerCase() ===
50
+ 'transactions') {
51
+ this.conversation.push({
52
+ from: 'bot',
53
+ text: 'Here are your recent transactions:',
54
+ });
55
+ this.http
56
+ .post(this.transactionsUrl, this.transactionRequest)
57
+ .subscribe((data) => {
58
+ data.forEach((tx) => {
59
+ this.conversation.push({
60
+ from: 'bot',
61
+ text: `- ${tx.description}: $${tx.amount.toFixed(2)}`,
62
+ });
63
+ });
64
+ });
65
+ }
66
+ // Clear the textarea after submission
67
+ event.target.value = '';
68
+ event.target.scrollTo(0, event.target.scrollHeight);
69
+ }
70
+ }
71
+ }
28
72
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AiBankingAssistantLibComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AiBankingAssistantLibComponent, isStandalone: true, selector: "lib-ai-banking-assistant-lib", inputs: { username: "username" }, ngImport: i0, template: "<div\n class=\"main-container text-white d-flex flex-column justify-content-between p-4\"\n>\n <h1 class=\"m-0\">Welcome {{ username }}!</h1>\n\n <div>\n <div class=\"conversation-view d-flex flex-column justify-content-end\">\n @for (message of conversation; track $index) {\n <div\n class=\"p-3 mb-3 {{\n message.from === 'user' ? 'align-self-end' : 'align-self-start'\n }}\"\n >\n {{ message.text }}\n </div>\n }\n </div>\n <textarea\n class=\"rounded-4 w-100 p-3\"\n placeholder=\"Tell me what you need...\"\n ></textarea>\n </div>\n</div>\n", styles: [".main-container{min-height:400px;height:100%;background:linear-gradient(180deg,#6a2bd6,#2e0458)}.main-container textarea{background-color:#290050;color:#fff;border:none}.main-container textarea::placeholder{color:#d3d3d3}.main-container textarea:focus-visible{outline:none}\n"] });
73
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AiBankingAssistantLibComponent, isStandalone: true, selector: "lib-ai-banking-assistant-lib", inputs: { username: "username", transactionsUrl: "transactionsUrl", transactionRequest: "transactionRequest" }, ngImport: i0, template: "<div\n class=\"main-container text-white d-flex flex-column justify-content-between p-4\"\n>\n <h1 class=\"m-0\">Welcome {{ username }}!</h1>\n\n <div class=\"px-5 pt-5\">\n <div class=\"conversation-view p-3 mb-3\">\n @for (message of conversation; track $index) {\n <div\n class=\"p-2 {{\n message.from === 'user'\n ? 'float-end text-end user-message'\n : 'float-start text-start'\n }}\"\n >\n {{ message.text }}\n </div>\n }\n </div>\n <textarea\n class=\"rounded-4 w-100 p-3\"\n placeholder=\"Tell me what you need...\"\n (keydown)=\"textareaKeydown($event)\"\n ></textarea>\n </div>\n</div>\n", styles: [".main-container{min-height:400px;height:100%;background:linear-gradient(180deg,#6a2bd6,#2e0458)}.main-container .conversation-view{max-height:300px;overflow-y:auto}.main-container .conversation-view .user-message{width:75%}.main-container textarea{background-color:#290050;color:#fff;border:none;field-sizing:content;min-height:3lh;max-height:6lh;resize:none}.main-container textarea::placeholder{color:#d3d3d3}.main-container textarea:focus-visible{outline:none}\n"] });
30
74
  }
31
75
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AiBankingAssistantLibComponent, decorators: [{
32
76
  type: Component,
33
- args: [{ selector: 'lib-ai-banking-assistant-lib', standalone: true, imports: [], template: "<div\n class=\"main-container text-white d-flex flex-column justify-content-between p-4\"\n>\n <h1 class=\"m-0\">Welcome {{ username }}!</h1>\n\n <div>\n <div class=\"conversation-view d-flex flex-column justify-content-end\">\n @for (message of conversation; track $index) {\n <div\n class=\"p-3 mb-3 {{\n message.from === 'user' ? 'align-self-end' : 'align-self-start'\n }}\"\n >\n {{ message.text }}\n </div>\n }\n </div>\n <textarea\n class=\"rounded-4 w-100 p-3\"\n placeholder=\"Tell me what you need...\"\n ></textarea>\n </div>\n</div>\n", styles: [".main-container{min-height:400px;height:100%;background:linear-gradient(180deg,#6a2bd6,#2e0458)}.main-container textarea{background-color:#290050;color:#fff;border:none}.main-container textarea::placeholder{color:#d3d3d3}.main-container textarea:focus-visible{outline:none}\n"] }]
77
+ args: [{ selector: 'lib-ai-banking-assistant-lib', standalone: true, imports: [], template: "<div\n class=\"main-container text-white d-flex flex-column justify-content-between p-4\"\n>\n <h1 class=\"m-0\">Welcome {{ username }}!</h1>\n\n <div class=\"px-5 pt-5\">\n <div class=\"conversation-view p-3 mb-3\">\n @for (message of conversation; track $index) {\n <div\n class=\"p-2 {{\n message.from === 'user'\n ? 'float-end text-end user-message'\n : 'float-start text-start'\n }}\"\n >\n {{ message.text }}\n </div>\n }\n </div>\n <textarea\n class=\"rounded-4 w-100 p-3\"\n placeholder=\"Tell me what you need...\"\n (keydown)=\"textareaKeydown($event)\"\n ></textarea>\n </div>\n</div>\n", styles: [".main-container{min-height:400px;height:100%;background:linear-gradient(180deg,#6a2bd6,#2e0458)}.main-container .conversation-view{max-height:300px;overflow-y:auto}.main-container .conversation-view .user-message{width:75%}.main-container textarea{background-color:#290050;color:#fff;border:none;field-sizing:content;min-height:3lh;max-height:6lh;resize:none}.main-container textarea::placeholder{color:#d3d3d3}.main-container textarea:focus-visible{outline:none}\n"] }]
34
78
  }], propDecorators: { username: [{
35
79
  type: Input
80
+ }], transactionsUrl: [{
81
+ type: Input
82
+ }], transactionRequest: [{
83
+ type: Input
36
84
  }] } });
37
85
 
38
86
  /*
@@ -1 +1 @@
1
- {"version":3,"file":"dorydaniel-ai-banking-assistant-lib.mjs","sources":["../../../projects/ai-banking-assistant-lib/src/lib/ai-banking-assistant-lib.service.ts","../../../projects/ai-banking-assistant-lib/src/lib/ai-banking-assistant-lib.component.ts","../../../projects/ai-banking-assistant-lib/src/lib/ai-banking-assistant-lib.component.html","../../../projects/ai-banking-assistant-lib/src/public-api.ts","../../../projects/ai-banking-assistant-lib/src/dorydaniel-ai-banking-assistant-lib.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AiBankingAssistantLibService {\n\n constructor() { }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-ai-banking-assistant-lib',\n standalone: true,\n imports: [],\n templateUrl: './ai-banking-assistant-lib.component.html',\n styleUrls: ['../styles.scss'],\n})\nexport class AiBankingAssistantLibComponent {\n @Input() username: string = '';\n conversation = [\n {\n from: 'bot',\n text: 'Hello! How can I assist you with your banking needs today?',\n },\n {\n from: 'user',\n text: 'Hello! Please help?',\n },\n ];\n}\n","<div\n class=\"main-container text-white d-flex flex-column justify-content-between p-4\"\n>\n <h1 class=\"m-0\">Welcome {{ username }}!</h1>\n\n <div>\n <div class=\"conversation-view d-flex flex-column justify-content-end\">\n @for (message of conversation; track $index) {\n <div\n class=\"p-3 mb-3 {{\n message.from === 'user' ? 'align-self-end' : 'align-self-start'\n }}\"\n >\n {{ message.text }}\n </div>\n }\n </div>\n <textarea\n class=\"rounded-4 w-100 p-3\"\n placeholder=\"Tell me what you need...\"\n ></textarea>\n </div>\n</div>\n","/*\n * Public API Surface of ai-banking-assistant-lib\n */\n\nexport * from './lib/ai-banking-assistant-lib.service';\nexport * from './lib/ai-banking-assistant-lib.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAKa,4BAA4B,CAAA;AAEvC,IAAA,WAAA,GAAA,GAAiB;wGAFN,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,cAF3B,MAAM,EAAA,CAAA,CAAA;;4FAEP,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAHxC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCKY,8BAA8B,CAAA;IAChC,QAAQ,GAAW,EAAE,CAAC;AAC/B,IAAA,YAAY,GAAG;AACb,QAAA;AACE,YAAA,IAAI,EAAE,KAAK;AACX,YAAA,IAAI,EAAE,4DAA4D;AACnE,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,qBAAqB;AAC5B,SAAA;KACF,CAAC;wGAXS,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA9B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,0HCT3C,koBAuBA,EAAA,MAAA,EAAA,CAAA,qRAAA,CAAA,EAAA,CAAA,CAAA;;4FDda,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAP1C,SAAS;+BACE,8BAA8B,EAAA,UAAA,EAC5B,IAAI,EAAA,OAAA,EACP,EAAE,EAAA,QAAA,EAAA,koBAAA,EAAA,MAAA,EAAA,CAAA,qRAAA,CAAA,EAAA,CAAA;8BAKF,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;AEVR;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"dorydaniel-ai-banking-assistant-lib.mjs","sources":["../../../projects/ai-banking-assistant-lib/src/lib/ai-banking-assistant-lib.service.ts","../../../projects/ai-banking-assistant-lib/src/lib/ai-banking-assistant-lib.component.ts","../../../projects/ai-banking-assistant-lib/src/lib/ai-banking-assistant-lib.component.html","../../../projects/ai-banking-assistant-lib/src/public-api.ts","../../../projects/ai-banking-assistant-lib/src/dorydaniel-ai-banking-assistant-lib.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AiBankingAssistantLibService {\n\n constructor() { }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Component, inject, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-ai-banking-assistant-lib',\n standalone: true,\n imports: [],\n templateUrl: './ai-banking-assistant-lib.component.html',\n styleUrls: ['../styles.scss'],\n})\nexport class AiBankingAssistantLibComponent {\n @Input() username: string = '';\n @Input() transactionsUrl: string = '';\n @Input() transactionRequest: any = {};\n\n private http = inject(HttpClient);\n\n conversation = [\n {\n from: 'bot',\n text: 'Hello! How can I assist you with your banking needs today?',\n },\n ];\n\n textareaKeydown(event: KeyboardEvent) {\n if (event.key === 'Enter') {\n // Check if the Shift key was also held down\n if (event.shiftKey) {\n // Shift+Enter: Allow the default behavior (new line)\n // No need to preventDefault();\n } else {\n // Enter only: Prevent the default behavior (new line)\n event.preventDefault();\n // Submit the form\n this.conversation.push({\n from: 'user',\n text: (event.target as HTMLTextAreaElement).value,\n });\n // // Clear the textarea after submission\n // (event.target as HTMLTextAreaElement).value = '';\n // (event.target as HTMLTextAreaElement).scrollTo(\n // 0,\n // (event.target as HTMLTextAreaElement).scrollHeight,\n // );\n\n if (\n (event.target as HTMLTextAreaElement).value.toLowerCase() ===\n 'transactions'\n ) {\n this.conversation.push({\n from: 'bot',\n text: 'Here are your recent transactions:',\n });\n this.http\n .post<\n { amount: number; description: string }[]\n >(this.transactionsUrl, this.transactionRequest)\n .subscribe((data) => {\n data.forEach((tx) => {\n this.conversation.push({\n from: 'bot',\n text: `- ${tx.description}: $${tx.amount.toFixed(2)}`,\n });\n });\n });\n }\n\n // Clear the textarea after submission\n (event.target as HTMLTextAreaElement).value = '';\n (event.target as HTMLTextAreaElement).scrollTo(\n 0,\n (event.target as HTMLTextAreaElement).scrollHeight,\n );\n }\n }\n }\n}\n","<div\n class=\"main-container text-white d-flex flex-column justify-content-between p-4\"\n>\n <h1 class=\"m-0\">Welcome {{ username }}!</h1>\n\n <div class=\"px-5 pt-5\">\n <div class=\"conversation-view p-3 mb-3\">\n @for (message of conversation; track $index) {\n <div\n class=\"p-2 {{\n message.from === 'user'\n ? 'float-end text-end user-message'\n : 'float-start text-start'\n }}\"\n >\n {{ message.text }}\n </div>\n }\n </div>\n <textarea\n class=\"rounded-4 w-100 p-3\"\n placeholder=\"Tell me what you need...\"\n (keydown)=\"textareaKeydown($event)\"\n ></textarea>\n </div>\n</div>\n","/*\n * Public API Surface of ai-banking-assistant-lib\n */\n\nexport * from './lib/ai-banking-assistant-lib.service';\nexport * from './lib/ai-banking-assistant-lib.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAKa,4BAA4B,CAAA;AAEvC,IAAA,WAAA,GAAA,GAAiB;wGAFN,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,cAF3B,MAAM,EAAA,CAAA,CAAA;;4FAEP,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAHxC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCMY,8BAA8B,CAAA;IAChC,QAAQ,GAAW,EAAE,CAAC;IACtB,eAAe,GAAW,EAAE,CAAC;IAC7B,kBAAkB,GAAQ,EAAE,CAAC;AAE9B,IAAA,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAElC,IAAA,YAAY,GAAG;AACb,QAAA;AACE,YAAA,IAAI,EAAE,KAAK;AACX,YAAA,IAAI,EAAE,4DAA4D;AACnE,SAAA;KACF,CAAC;AAEF,IAAA,eAAe,CAAC,KAAoB,EAAA;AAClC,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;;AAEzB,YAAA,IAAI,KAAK,CAAC,QAAQ,EAAE;;;aAGnB;iBAAM;;gBAEL,KAAK,CAAC,cAAc,EAAE,CAAC;;AAEvB,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AACrB,oBAAA,IAAI,EAAE,MAAM;AACZ,oBAAA,IAAI,EAAG,KAAK,CAAC,MAA8B,CAAC,KAAK;AAClD,iBAAA,CAAC,CAAC;;;;;;;AAQH,gBAAA,IACG,KAAK,CAAC,MAA8B,CAAC,KAAK,CAAC,WAAW,EAAE;AACzD,oBAAA,cAAc,EACd;AACA,oBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AACrB,wBAAA,IAAI,EAAE,KAAK;AACX,wBAAA,IAAI,EAAE,oCAAoC;AAC3C,qBAAA,CAAC,CAAC;AACH,oBAAA,IAAI,CAAC,IAAI;yBACN,IAAI,CAEH,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,kBAAkB,CAAC;AAC/C,yBAAA,SAAS,CAAC,CAAC,IAAI,KAAI;AAClB,wBAAA,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,KAAI;AAClB,4BAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AACrB,gCAAA,IAAI,EAAE,KAAK;AACX,gCAAA,IAAI,EAAE,CAAA,EAAA,EAAK,EAAE,CAAC,WAAW,CAAM,GAAA,EAAA,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAE,CAAA;AACtD,6BAAA,CAAC,CAAC;AACL,yBAAC,CAAC,CAAC;AACL,qBAAC,CAAC,CAAC;iBACN;;AAGA,gBAAA,KAAK,CAAC,MAA8B,CAAC,KAAK,GAAG,EAAE,CAAC;AAChD,gBAAA,KAAK,CAAC,MAA8B,CAAC,QAAQ,CAC5C,CAAC,EACA,KAAK,CAAC,MAA8B,CAAC,YAAY,CACnD,CAAC;aACH;SACF;KACF;wGAjEU,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA9B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,wMCV3C,qtBA0BA,EAAA,MAAA,EAAA,CAAA,mdAAA,CAAA,EAAA,CAAA,CAAA;;4FDhBa,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAP1C,SAAS;+BACE,8BAA8B,EAAA,UAAA,EAC5B,IAAI,EAAA,OAAA,EACP,EAAE,EAAA,QAAA,EAAA,qtBAAA,EAAA,MAAA,EAAA,CAAA,mdAAA,CAAA,EAAA,CAAA;8BAKF,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;;;AEbR;;AAEG;;ACFH;;AAEG;;;;"}
@@ -1,10 +1,14 @@
1
1
  import * as i0 from "@angular/core";
2
2
  export declare class AiBankingAssistantLibComponent {
3
3
  username: string;
4
+ transactionsUrl: string;
5
+ transactionRequest: any;
6
+ private http;
4
7
  conversation: {
5
8
  from: string;
6
9
  text: string;
7
10
  }[];
11
+ textareaKeydown(event: KeyboardEvent): void;
8
12
  static ɵfac: i0.ɵɵFactoryDeclaration<AiBankingAssistantLibComponent, never>;
9
- static ɵcmp: i0.ɵɵComponentDeclaration<AiBankingAssistantLibComponent, "lib-ai-banking-assistant-lib", never, { "username": { "alias": "username"; "required": false; }; }, {}, never, never, true, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<AiBankingAssistantLibComponent, "lib-ai-banking-assistant-lib", never, { "username": { "alias": "username"; "required": false; }; "transactionsUrl": { "alias": "transactionsUrl"; "required": false; }; "transactionRequest": { "alias": "transactionRequest"; "required": false; }; }, {}, never, never, true, never>;
10
14
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dorydaniel/ai-banking-assistant-lib",
3
- "version": "0.0.2",
3
+ "version": "0.0.4",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^18.2.0",
6
6
  "@angular/core": "^18.2.0"