@memberjunction/ng-skip-chat 2.18.3 → 2.19.1
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/dist/lib/dynamic-report/base-report.d.ts +9 -1
- package/dist/lib/dynamic-report/base-report.d.ts.map +1 -1
- package/dist/lib/dynamic-report/base-report.js +28 -17
- package/dist/lib/dynamic-report/base-report.js.map +1 -1
- package/dist/lib/dynamic-report/dynamic-chart.d.ts.map +1 -1
- package/dist/lib/dynamic-report/dynamic-chart.js +3 -3
- package/dist/lib/dynamic-report/dynamic-chart.js.map +1 -1
- package/dist/lib/dynamic-report/dynamic-grid.d.ts +3 -1
- package/dist/lib/dynamic-report/dynamic-grid.d.ts.map +1 -1
- package/dist/lib/dynamic-report/dynamic-grid.js +13 -12
- package/dist/lib/dynamic-report/dynamic-grid.js.map +1 -1
- package/dist/lib/dynamic-report/linear-report.js +7 -1
- package/dist/lib/dynamic-report/linear-report.js.map +1 -1
- package/dist/lib/module.js +0 -6
- package/dist/lib/module.js.map +1 -1
- package/dist/lib/skip-chat/skip-chat.component.d.ts +26 -4
- package/dist/lib/skip-chat/skip-chat.component.d.ts.map +1 -1
- package/dist/lib/skip-chat/skip-chat.component.js +195 -167
- package/dist/lib/skip-chat/skip-chat.component.js.map +1 -1
- package/package.json +11 -11
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
8
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
9
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -13,29 +7,26 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
13
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
14
8
|
});
|
|
15
9
|
};
|
|
16
|
-
var SkipChatComponent_1;
|
|
17
10
|
import { Component, ViewChild, ViewContainerRef, Input, Output, EventEmitter, } from '@angular/core';
|
|
18
11
|
import { ActivationEnd } from '@angular/router';
|
|
19
12
|
import { LogError, CompositeKey } from '@memberjunction/core';
|
|
20
13
|
import { Container } from '@memberjunction/ng-container-directives';
|
|
21
|
-
import { BaseNavigationComponent, SharedService } from '@memberjunction/ng-shared';
|
|
22
14
|
import { take, filter } from 'rxjs/operators';
|
|
23
15
|
import { SkipResponsePhase, } from '@memberjunction/skip-types';
|
|
24
16
|
import { DataContext } from '@memberjunction/data-context';
|
|
25
|
-
import { MJEventType, MJGlobal
|
|
17
|
+
import { InvokeManualResize, MJEventType, MJGlobal } from '@memberjunction/global';
|
|
26
18
|
import { SkipSingleMessageComponent } from '../skip-single-message/skip-single-message.component';
|
|
27
19
|
import { BaseAngularComponent } from '@memberjunction/ng-base-types';
|
|
28
20
|
import * as i0 from "@angular/core";
|
|
29
|
-
import * as i1 from "@
|
|
30
|
-
import * as i2 from "@angular/
|
|
31
|
-
import * as i3 from "@
|
|
32
|
-
import * as i4 from "@
|
|
33
|
-
import * as i5 from "@angular
|
|
34
|
-
import * as i6 from "@
|
|
35
|
-
import * as i7 from "@
|
|
36
|
-
import * as i8 from "@progress/kendo-angular-
|
|
37
|
-
import * as i9 from "@
|
|
38
|
-
import * as i10 from "@memberjunction/ng-data-context";
|
|
21
|
+
import * as i1 from "@angular/router";
|
|
22
|
+
import * as i2 from "@angular/common";
|
|
23
|
+
import * as i3 from "@memberjunction/ng-notifications";
|
|
24
|
+
import * as i4 from "@angular/forms";
|
|
25
|
+
import * as i5 from "@progress/kendo-angular-dialog";
|
|
26
|
+
import * as i6 from "@memberjunction/ng-container-directives";
|
|
27
|
+
import * as i7 from "@progress/kendo-angular-listview";
|
|
28
|
+
import * as i8 from "@progress/kendo-angular-buttons";
|
|
29
|
+
import * as i9 from "@memberjunction/ng-data-context";
|
|
39
30
|
const _c0 = ["AskSkipPanel"];
|
|
40
31
|
const _c1 = ["mjContainer"];
|
|
41
32
|
const _c2 = ["conversationList"];
|
|
@@ -43,17 +34,22 @@ const _c3 = ["AskSkipInput"];
|
|
|
43
34
|
const _c4 = ["scrollContainer"];
|
|
44
35
|
const _c5 = ["topLevelDiv"];
|
|
45
36
|
const _c6 = () => ({ "item-border": true });
|
|
46
|
-
function
|
|
37
|
+
function SkipChatComponent_Conditional_3_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
38
|
+
i0.ɵɵelement(0, "img", 26);
|
|
39
|
+
} if (rf & 2) {
|
|
40
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
41
|
+
i0.ɵɵproperty("src", ctx_r2.SkipLogoURL, i0.ɵɵsanitizeUrl);
|
|
42
|
+
} }
|
|
43
|
+
function SkipChatComponent_Conditional_3_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
47
44
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
48
|
-
i0.ɵɵelementStart(0, "
|
|
49
|
-
i0.ɵɵlistener("click", function
|
|
50
|
-
i0.ɵɵtext(1, "+");
|
|
45
|
+
i0.ɵɵelementStart(0, "span", 30);
|
|
46
|
+
i0.ɵɵlistener("click", function SkipChatComponent_Conditional_3_Conditional_5_Template_span_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.CreateNewConversation()); });
|
|
51
47
|
i0.ɵɵelementEnd();
|
|
52
48
|
} }
|
|
53
|
-
function
|
|
54
|
-
i0.ɵɵelement(0, "span",
|
|
49
|
+
function SkipChatComponent_Conditional_3_ng_template_8_span_1_Template(rf, ctx) { if (rf & 1) {
|
|
50
|
+
i0.ɵɵelement(0, "span", 36);
|
|
55
51
|
} }
|
|
56
|
-
function
|
|
52
|
+
function SkipChatComponent_Conditional_3_ng_template_8_span_3_Template(rf, ctx) { if (rf & 1) {
|
|
57
53
|
i0.ɵɵelementStart(0, "span");
|
|
58
54
|
i0.ɵɵtext(1);
|
|
59
55
|
i0.ɵɵelementEnd();
|
|
@@ -62,45 +58,45 @@ function SkipChatComponent_kendo_splitter_pane_3_div_1_ng_template_6_span_3_Temp
|
|
|
62
58
|
i0.ɵɵadvance();
|
|
63
59
|
i0.ɵɵtextInterpolate(dataItem_r6.Name);
|
|
64
60
|
} }
|
|
65
|
-
function
|
|
61
|
+
function SkipChatComponent_Conditional_3_ng_template_8_textarea_4_Template(rf, ctx) { if (rf & 1) {
|
|
66
62
|
const _r7 = i0.ɵɵgetCurrentView();
|
|
67
|
-
i0.ɵɵelementStart(0, "textarea",
|
|
68
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
63
|
+
i0.ɵɵelementStart(0, "textarea", 37);
|
|
64
|
+
i0.ɵɵtwoWayListener("ngModelChange", function SkipChatComponent_Conditional_3_ng_template_8_textarea_4_Template_textarea_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r7); const dataItem_r6 = i0.ɵɵnextContext().dataItem; i0.ɵɵtwoWayBindingSet(dataItem_r6.Name, $event) || (dataItem_r6.Name = $event); return i0.ɵɵresetView($event); });
|
|
69
65
|
i0.ɵɵelementEnd();
|
|
70
66
|
} if (rf & 2) {
|
|
71
67
|
const dataItem_r6 = i0.ɵɵnextContext().dataItem;
|
|
72
68
|
i0.ɵɵtwoWayProperty("ngModel", dataItem_r6.Name);
|
|
73
69
|
} }
|
|
74
|
-
function
|
|
70
|
+
function SkipChatComponent_Conditional_3_ng_template_8_div_5_span_1_Template(rf, ctx) { if (rf & 1) {
|
|
75
71
|
const _r8 = i0.ɵɵgetCurrentView();
|
|
76
|
-
i0.ɵɵelementStart(0, "span",
|
|
77
|
-
i0.ɵɵlistener("click", function
|
|
72
|
+
i0.ɵɵelementStart(0, "span", 43);
|
|
73
|
+
i0.ɵɵlistener("click", function SkipChatComponent_Conditional_3_ng_template_8_div_5_span_1_Template_span_click_0_listener() { i0.ɵɵrestoreView(_r8); const dataItem_r6 = i0.ɵɵnextContext(2).dataItem; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.editConvo(dataItem_r6)); });
|
|
78
74
|
i0.ɵɵelementEnd();
|
|
79
75
|
} }
|
|
80
|
-
function
|
|
76
|
+
function SkipChatComponent_Conditional_3_ng_template_8_div_5_span_2_Template(rf, ctx) { if (rf & 1) {
|
|
81
77
|
const _r9 = i0.ɵɵgetCurrentView();
|
|
82
|
-
i0.ɵɵelementStart(0, "span",
|
|
83
|
-
i0.ɵɵlistener("click", function
|
|
78
|
+
i0.ɵɵelementStart(0, "span", 44);
|
|
79
|
+
i0.ɵɵlistener("click", function SkipChatComponent_Conditional_3_ng_template_8_div_5_span_2_Template_span_click_0_listener() { i0.ɵɵrestoreView(_r9); const dataItem_r6 = i0.ɵɵnextContext(2).dataItem; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.showDeleteConvoDialog(dataItem_r6)); });
|
|
84
80
|
i0.ɵɵelementEnd();
|
|
85
81
|
} }
|
|
86
|
-
function
|
|
82
|
+
function SkipChatComponent_Conditional_3_ng_template_8_div_5_span_3_Template(rf, ctx) { if (rf & 1) {
|
|
87
83
|
const _r10 = i0.ɵɵgetCurrentView();
|
|
88
|
-
i0.ɵɵelementStart(0, "span",
|
|
89
|
-
i0.ɵɵlistener("click", function
|
|
84
|
+
i0.ɵɵelementStart(0, "span", 45);
|
|
85
|
+
i0.ɵɵlistener("click", function SkipChatComponent_Conditional_3_ng_template_8_div_5_span_3_Template_span_click_0_listener() { i0.ɵɵrestoreView(_r10); const dataItem_r6 = i0.ɵɵnextContext(2).dataItem; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.saveConvoName(dataItem_r6)); });
|
|
90
86
|
i0.ɵɵelementEnd();
|
|
91
87
|
} }
|
|
92
|
-
function
|
|
88
|
+
function SkipChatComponent_Conditional_3_ng_template_8_div_5_span_4_Template(rf, ctx) { if (rf & 1) {
|
|
93
89
|
const _r11 = i0.ɵɵgetCurrentView();
|
|
94
|
-
i0.ɵɵelementStart(0, "span",
|
|
95
|
-
i0.ɵɵlistener("click", function
|
|
90
|
+
i0.ɵɵelementStart(0, "span", 46);
|
|
91
|
+
i0.ɵɵlistener("click", function SkipChatComponent_Conditional_3_ng_template_8_div_5_span_4_Template_span_click_0_listener() { i0.ɵɵrestoreView(_r11); const dataItem_r6 = i0.ɵɵnextContext(2).dataItem; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.cancelConvoEdit(dataItem_r6)); });
|
|
96
92
|
i0.ɵɵelementEnd();
|
|
97
93
|
} }
|
|
98
|
-
function
|
|
99
|
-
i0.ɵɵelementStart(0, "div",
|
|
100
|
-
i0.ɵɵtemplate(1,
|
|
94
|
+
function SkipChatComponent_Conditional_3_ng_template_8_div_5_Template(rf, ctx) { if (rf & 1) {
|
|
95
|
+
i0.ɵɵelementStart(0, "div", 38);
|
|
96
|
+
i0.ɵɵtemplate(1, SkipChatComponent_Conditional_3_ng_template_8_div_5_span_1_Template, 1, 0, "span", 39)(2, SkipChatComponent_Conditional_3_ng_template_8_div_5_span_2_Template, 1, 0, "span", 40)(3, SkipChatComponent_Conditional_3_ng_template_8_div_5_span_3_Template, 1, 0, "span", 41)(4, SkipChatComponent_Conditional_3_ng_template_8_div_5_span_4_Template, 1, 0, "span", 42);
|
|
101
97
|
i0.ɵɵelementEnd();
|
|
102
98
|
} if (rf & 2) {
|
|
103
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
99
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
104
100
|
i0.ɵɵadvance();
|
|
105
101
|
i0.ɵɵproperty("ngIf", !ctx_r2.ConversationEditMode);
|
|
106
102
|
i0.ɵɵadvance();
|
|
@@ -110,19 +106,19 @@ function SkipChatComponent_kendo_splitter_pane_3_div_1_ng_template_6_div_5_Templ
|
|
|
110
106
|
i0.ɵɵadvance();
|
|
111
107
|
i0.ɵɵproperty("ngIf", ctx_r2.ConversationEditMode);
|
|
112
108
|
} }
|
|
113
|
-
function
|
|
109
|
+
function SkipChatComponent_Conditional_3_ng_template_8_Template(rf, ctx) { if (rf & 1) {
|
|
114
110
|
const _r5 = i0.ɵɵgetCurrentView();
|
|
115
|
-
i0.ɵɵelementStart(0, "div",
|
|
116
|
-
i0.ɵɵlistener("click", function
|
|
117
|
-
i0.ɵɵtemplate(1,
|
|
118
|
-
i0.ɵɵelementStart(2, "div",
|
|
119
|
-
i0.ɵɵtemplate(3,
|
|
111
|
+
i0.ɵɵelementStart(0, "div", 31);
|
|
112
|
+
i0.ɵɵlistener("click", function SkipChatComponent_Conditional_3_ng_template_8_Template_div_click_0_listener() { const dataItem_r6 = i0.ɵɵrestoreView(_r5).dataItem; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.SelectConversation(dataItem_r6)); });
|
|
113
|
+
i0.ɵɵtemplate(1, SkipChatComponent_Conditional_3_ng_template_8_span_1_Template, 1, 0, "span", 32);
|
|
114
|
+
i0.ɵɵelementStart(2, "div", 33);
|
|
115
|
+
i0.ɵɵtemplate(3, SkipChatComponent_Conditional_3_ng_template_8_span_3_Template, 2, 1, "span", 21)(4, SkipChatComponent_Conditional_3_ng_template_8_textarea_4_Template, 1, 1, "textarea", 34);
|
|
120
116
|
i0.ɵɵelementEnd();
|
|
121
|
-
i0.ɵɵtemplate(5,
|
|
117
|
+
i0.ɵɵtemplate(5, SkipChatComponent_Conditional_3_ng_template_8_div_5_Template, 5, 4, "div", 35);
|
|
122
118
|
i0.ɵɵelementEnd();
|
|
123
119
|
} if (rf & 2) {
|
|
124
120
|
const dataItem_r6 = ctx.dataItem;
|
|
125
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
121
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
126
122
|
i0.ɵɵproperty("ngClass", ctx_r2.GetConversationItemClass(dataItem_r6))("title", dataItem_r6.Name);
|
|
127
123
|
i0.ɵɵadvance();
|
|
128
124
|
i0.ɵɵproperty("ngIf", ctx_r2.SelectedConversation && ctx_r2.IsSkipProcessing(dataItem_r6));
|
|
@@ -133,73 +129,69 @@ function SkipChatComponent_kendo_splitter_pane_3_div_1_ng_template_6_Template(rf
|
|
|
133
129
|
i0.ɵɵadvance();
|
|
134
130
|
i0.ɵɵproperty("ngIf", (ctx_r2.SelectedConversation == null ? null : ctx_r2.SelectedConversation.ID) === dataItem_r6.ID);
|
|
135
131
|
} }
|
|
136
|
-
function
|
|
137
|
-
i0.ɵɵ
|
|
138
|
-
i0.ɵɵ
|
|
139
|
-
i0.ɵɵ
|
|
132
|
+
function SkipChatComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
133
|
+
const _r2 = i0.ɵɵgetCurrentView();
|
|
134
|
+
i0.ɵɵelementStart(0, "div", 6)(1, "div", 23)(2, "div", 24)(3, "span", 25);
|
|
135
|
+
i0.ɵɵlistener("click", function SkipChatComponent_Conditional_3_Template_span_click_3_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.DisplayConversationList(false)); });
|
|
140
136
|
i0.ɵɵelementEnd();
|
|
141
|
-
i0.ɵɵ
|
|
142
|
-
i0.ɵɵ
|
|
143
|
-
i0.ɵɵ
|
|
137
|
+
i0.ɵɵtemplate(4, SkipChatComponent_Conditional_3_Conditional_4_Template, 1, 1, "img", 26)(5, SkipChatComponent_Conditional_3_Conditional_5_Template, 1, 0, "span", 27);
|
|
138
|
+
i0.ɵɵelementEnd();
|
|
139
|
+
i0.ɵɵelementStart(6, "kendo-listview", 28, 3);
|
|
140
|
+
i0.ɵɵtemplate(8, SkipChatComponent_Conditional_3_ng_template_8_Template, 6, 6, "ng-template", 29);
|
|
141
|
+
i0.ɵɵelementEnd()()();
|
|
144
142
|
} if (rf & 2) {
|
|
145
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
146
|
-
i0.ɵɵadvance(
|
|
147
|
-
i0.ɵɵ
|
|
143
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
144
|
+
i0.ɵɵadvance(4);
|
|
145
|
+
i0.ɵɵconditional(ctx_r2.ShowSkipLogoInConversationList ? 4 : -1);
|
|
148
146
|
i0.ɵɵadvance();
|
|
149
|
-
i0.ɵɵ
|
|
147
|
+
i0.ɵɵconditional(ctx_r2.AllowNewConversations ? 5 : -1);
|
|
150
148
|
i0.ɵɵadvance();
|
|
151
149
|
i0.ɵɵstyleProp("height", 280, "px");
|
|
152
|
-
i0.ɵɵproperty("data", ctx_r2.Conversations)("itemClass", i0.ɵɵpureFunction0(8, _c6))("fillWidth", false)("bottomMargin",
|
|
150
|
+
i0.ɵɵproperty("data", ctx_r2.Conversations)("itemClass", i0.ɵɵpureFunction0(8, _c6))("fillWidth", false)("bottomMargin", 50);
|
|
153
151
|
} }
|
|
154
|
-
function
|
|
155
|
-
const
|
|
156
|
-
i0.ɵɵelementStart(0, "
|
|
157
|
-
i0.ɵɵlistener("
|
|
158
|
-
i0.ɵɵtemplate(1, SkipChatComponent_kendo_splitter_pane_3_div_1_Template, 7, 9, "div", 22);
|
|
152
|
+
function SkipChatComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
153
|
+
const _r12 = i0.ɵɵgetCurrentView();
|
|
154
|
+
i0.ɵɵelementStart(0, "span", 25);
|
|
155
|
+
i0.ɵɵlistener("click", function SkipChatComponent_Conditional_4_Template_span_click_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.DisplayConversationList(true)); });
|
|
159
156
|
i0.ɵɵelementEnd();
|
|
160
|
-
} if (rf & 2) {
|
|
161
|
-
const ctx_r2 = i0.ɵɵnextContext();
|
|
162
|
-
i0.ɵɵproperty("collapsible", true)("scrollable", false)("resizable", false);
|
|
163
|
-
i0.ɵɵadvance();
|
|
164
|
-
i0.ɵɵproperty("ngIf", ctx_r2.ShowConversationList);
|
|
165
|
-
} }
|
|
166
|
-
function SkipChatComponent_div_9_Template(rf, ctx) { if (rf & 1) {
|
|
167
|
-
i0.ɵɵelement(0, "div", 46);
|
|
168
157
|
} }
|
|
169
158
|
function SkipChatComponent_div_10_Template(rf, ctx) { if (rf & 1) {
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
i0.ɵɵ
|
|
159
|
+
i0.ɵɵelement(0, "div", 47);
|
|
160
|
+
} }
|
|
161
|
+
function SkipChatComponent_div_11_Template(rf, ctx) { if (rf & 1) {
|
|
162
|
+
const _r13 = i0.ɵɵgetCurrentView();
|
|
163
|
+
i0.ɵɵelementStart(0, "div", 48)(1, "div", 49);
|
|
164
|
+
i0.ɵɵelement(2, "img", 50);
|
|
165
|
+
i0.ɵɵelementStart(3, "div", 51);
|
|
174
166
|
i0.ɵɵtext(4, "What can I help with today?");
|
|
175
167
|
i0.ɵɵelementEnd()();
|
|
176
|
-
i0.ɵɵelementStart(5, "div",
|
|
177
|
-
i0.ɵɵlistener("click", function
|
|
178
|
-
i0.ɵɵelementStart(8, "span",
|
|
168
|
+
i0.ɵɵelementStart(5, "div", 52)(6, "div", 53)(7, "div", 54);
|
|
169
|
+
i0.ɵɵlistener("click", function SkipChatComponent_div_11_Template_div_click_7_listener() { i0.ɵɵrestoreView(_r13); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.sendPrompt(ctx_r2.WelcomeQuestions[0].prompt)); });
|
|
170
|
+
i0.ɵɵelementStart(8, "span", 55);
|
|
179
171
|
i0.ɵɵtext(9);
|
|
180
172
|
i0.ɵɵelementEnd();
|
|
181
173
|
i0.ɵɵelementStart(10, "span");
|
|
182
174
|
i0.ɵɵtext(11);
|
|
183
175
|
i0.ɵɵelementEnd()();
|
|
184
|
-
i0.ɵɵelementStart(12, "div",
|
|
185
|
-
i0.ɵɵlistener("click", function
|
|
186
|
-
i0.ɵɵelementStart(13, "span",
|
|
176
|
+
i0.ɵɵelementStart(12, "div", 54);
|
|
177
|
+
i0.ɵɵlistener("click", function SkipChatComponent_div_11_Template_div_click_12_listener() { i0.ɵɵrestoreView(_r13); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.sendPrompt(ctx_r2.WelcomeQuestions[1].prompt)); });
|
|
178
|
+
i0.ɵɵelementStart(13, "span", 55);
|
|
187
179
|
i0.ɵɵtext(14);
|
|
188
180
|
i0.ɵɵelementEnd();
|
|
189
181
|
i0.ɵɵelementStart(15, "span");
|
|
190
182
|
i0.ɵɵtext(16);
|
|
191
183
|
i0.ɵɵelementEnd()()();
|
|
192
|
-
i0.ɵɵelementStart(17, "div",
|
|
193
|
-
i0.ɵɵlistener("click", function
|
|
194
|
-
i0.ɵɵelementStart(19, "span",
|
|
184
|
+
i0.ɵɵelementStart(17, "div", 53)(18, "div", 54);
|
|
185
|
+
i0.ɵɵlistener("click", function SkipChatComponent_div_11_Template_div_click_18_listener() { i0.ɵɵrestoreView(_r13); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.sendPrompt(ctx_r2.WelcomeQuestions[2].prompt)); });
|
|
186
|
+
i0.ɵɵelementStart(19, "span", 55);
|
|
195
187
|
i0.ɵɵtext(20);
|
|
196
188
|
i0.ɵɵelementEnd();
|
|
197
189
|
i0.ɵɵelementStart(21, "span");
|
|
198
190
|
i0.ɵɵtext(22);
|
|
199
191
|
i0.ɵɵelementEnd()();
|
|
200
|
-
i0.ɵɵelementStart(23, "div",
|
|
201
|
-
i0.ɵɵlistener("click", function
|
|
202
|
-
i0.ɵɵelementStart(24, "span",
|
|
192
|
+
i0.ɵɵelementStart(23, "div", 54);
|
|
193
|
+
i0.ɵɵlistener("click", function SkipChatComponent_div_11_Template_div_click_23_listener() { i0.ɵɵrestoreView(_r13); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.sendPrompt(ctx_r2.WelcomeQuestions[3].prompt)); });
|
|
194
|
+
i0.ɵɵelementStart(24, "span", 55);
|
|
203
195
|
i0.ɵɵtext(25);
|
|
204
196
|
i0.ɵɵelementEnd();
|
|
205
197
|
i0.ɵɵelementStart(26, "span");
|
|
@@ -226,42 +218,42 @@ function SkipChatComponent_div_10_Template(rf, ctx) { if (rf & 1) {
|
|
|
226
218
|
i0.ɵɵadvance(2);
|
|
227
219
|
i0.ɵɵtextInterpolate(ctx_r2.WelcomeQuestions[3].bottomLine);
|
|
228
220
|
} }
|
|
229
|
-
function
|
|
230
|
-
const
|
|
231
|
-
i0.ɵɵelementStart(0, "span",
|
|
232
|
-
i0.ɵɵlistener("click", function
|
|
233
|
-
i0.ɵɵelement(1, "i",
|
|
221
|
+
function SkipChatComponent_span_13_Template(rf, ctx) { if (rf & 1) {
|
|
222
|
+
const _r14 = i0.ɵɵgetCurrentView();
|
|
223
|
+
i0.ɵɵelementStart(0, "span", 56);
|
|
224
|
+
i0.ɵɵlistener("click", function SkipChatComponent_span_13_Template_span_click_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.scrollToBottomAnimate()); });
|
|
225
|
+
i0.ɵɵelement(1, "i", 57);
|
|
234
226
|
i0.ɵɵelementEnd();
|
|
235
227
|
} }
|
|
236
|
-
function
|
|
237
|
-
const
|
|
238
|
-
i0.ɵɵelementStart(0, "button",
|
|
239
|
-
i0.ɵɵlistener("click", function
|
|
228
|
+
function SkipChatComponent_Conditional_18_Template(rf, ctx) { if (rf & 1) {
|
|
229
|
+
const _r15 = i0.ɵɵgetCurrentView();
|
|
230
|
+
i0.ɵɵelementStart(0, "button", 18)(1, "span", 58);
|
|
231
|
+
i0.ɵɵlistener("click", function SkipChatComponent_Conditional_18_Template_span_click_1_listener() { i0.ɵɵrestoreView(_r15); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.showDataContext()); });
|
|
240
232
|
i0.ɵɵelementEnd()();
|
|
241
233
|
} }
|
|
242
|
-
function
|
|
243
|
-
const
|
|
244
|
-
i0.ɵɵelementStart(0, "div")(1, "mj-data-context-dialog",
|
|
245
|
-
i0.ɵɵlistener("dialogClosed", function
|
|
234
|
+
function SkipChatComponent_div_21_Template(rf, ctx) { if (rf & 1) {
|
|
235
|
+
const _r16 = i0.ɵɵgetCurrentView();
|
|
236
|
+
i0.ɵɵelementStart(0, "div")(1, "mj-data-context-dialog", 59);
|
|
237
|
+
i0.ɵɵlistener("dialogClosed", function SkipChatComponent_div_21_Template_mj_data_context_dialog_dialogClosed_1_listener() { i0.ɵɵrestoreView(_r16); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.closeDataContextDialog()); });
|
|
246
238
|
i0.ɵɵelementEnd()();
|
|
247
239
|
} if (rf & 2) {
|
|
248
240
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
249
241
|
i0.ɵɵadvance();
|
|
250
242
|
i0.ɵɵproperty("dataContextId", ctx_r2.DataContextID)("Provider", ctx_r2.ProviderToUse);
|
|
251
243
|
} }
|
|
252
|
-
function
|
|
253
|
-
const
|
|
254
|
-
i0.ɵɵelementStart(0, "kendo-dialog",
|
|
255
|
-
i0.ɵɵlistener("close", function
|
|
256
|
-
i0.ɵɵelementStart(1, "p",
|
|
244
|
+
function SkipChatComponent_kendo_dialog_22_Template(rf, ctx) { if (rf & 1) {
|
|
245
|
+
const _r17 = i0.ɵɵgetCurrentView();
|
|
246
|
+
i0.ɵɵelementStart(0, "kendo-dialog", 60);
|
|
247
|
+
i0.ɵɵlistener("close", function SkipChatComponent_kendo_dialog_22_Template_kendo_dialog_close_0_listener() { i0.ɵɵrestoreView(_r17); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.closeDeleteConversation("no")); });
|
|
248
|
+
i0.ɵɵelementStart(1, "p", 61);
|
|
257
249
|
i0.ɵɵtext(2);
|
|
258
250
|
i0.ɵɵelementEnd();
|
|
259
|
-
i0.ɵɵelementStart(3, "kendo-dialog-actions")(4, "button",
|
|
260
|
-
i0.ɵɵlistener("click", function
|
|
251
|
+
i0.ɵɵelementStart(3, "kendo-dialog-actions")(4, "button", 62);
|
|
252
|
+
i0.ɵɵlistener("click", function SkipChatComponent_kendo_dialog_22_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r17); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.closeDeleteConversation("yes")); });
|
|
261
253
|
i0.ɵɵtext(5, " Yes ");
|
|
262
254
|
i0.ɵɵelementEnd();
|
|
263
|
-
i0.ɵɵelementStart(6, "button",
|
|
264
|
-
i0.ɵɵlistener("click", function
|
|
255
|
+
i0.ɵɵelementStart(6, "button", 63);
|
|
256
|
+
i0.ɵɵlistener("click", function SkipChatComponent_kendo_dialog_22_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r17); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.closeDeleteConversation("no")); });
|
|
265
257
|
i0.ɵɵtext(7, " No ");
|
|
266
258
|
i0.ɵɵelementEnd()()();
|
|
267
259
|
} if (rf & 2) {
|
|
@@ -270,20 +262,23 @@ function SkipChatComponent_kendo_dialog_21_Template(rf, ctx) { if (rf & 1) {
|
|
|
270
262
|
i0.ɵɵadvance(2);
|
|
271
263
|
i0.ɵɵtextInterpolate1(" Would you like to delete ", ctx_r2.SelectedConversation == null ? null : ctx_r2.SelectedConversation.Name, "? ");
|
|
272
264
|
} }
|
|
273
|
-
|
|
274
|
-
constructor(el,
|
|
265
|
+
export class SkipChatComponent extends BaseAngularComponent {
|
|
266
|
+
constructor(el, renderer, route, router, location, cdRef, notificationService) {
|
|
275
267
|
super();
|
|
276
268
|
this.el = el;
|
|
277
|
-
this.sharedService = sharedService;
|
|
278
269
|
this.renderer = renderer;
|
|
279
270
|
this.route = route;
|
|
280
271
|
this.router = router;
|
|
281
272
|
this.location = location;
|
|
282
273
|
this.cdRef = cdRef;
|
|
274
|
+
this.notificationService = notificationService;
|
|
283
275
|
this.AllowSend = true;
|
|
284
276
|
this.Messages = [];
|
|
285
277
|
this.Conversations = [];
|
|
286
278
|
this.ConversationEditMode = false;
|
|
279
|
+
/**
|
|
280
|
+
* If true, the component will show the conversation list. Default is true.
|
|
281
|
+
*/
|
|
287
282
|
this.ShowConversationList = true;
|
|
288
283
|
this.AllowNewConversations = true;
|
|
289
284
|
this.Title = 'Ask Skip';
|
|
@@ -302,6 +297,18 @@ let SkipChatComponent = SkipChatComponent_1 = class SkipChatComponent extends Ba
|
|
|
302
297
|
* If true, the component will update the browser URL when the conversation changes. If false, it will not update the URL. Default is true.
|
|
303
298
|
*/
|
|
304
299
|
this.UpdateAppRoute = true;
|
|
300
|
+
/**
|
|
301
|
+
* When set to true, the small Skip logo is shown in the conversation list on the top left of the component
|
|
302
|
+
*/
|
|
303
|
+
this.ShowSkipLogoInConversationList = false;
|
|
304
|
+
/**
|
|
305
|
+
* This property is used to set the placeholder text for the textbox where the user types their message to Skip.
|
|
306
|
+
*/
|
|
307
|
+
this.DefaultTextboxPlaceholder = 'Type your message to Skip here...';
|
|
308
|
+
/**
|
|
309
|
+
* This property is used to set the placeholder text for the textbox where the user types their message to Skip when Skip is processing a request and the text area is disabled.
|
|
310
|
+
*/
|
|
311
|
+
this.ProcessingTextBoxPlaceholder = 'Please wait...';
|
|
305
312
|
/**
|
|
306
313
|
* Event emitted when the user clicks on a matching report and the application needs to handle the navigation
|
|
307
314
|
*/
|
|
@@ -310,7 +317,12 @@ let SkipChatComponent = SkipChatComponent_1 = class SkipChatComponent extends Ba
|
|
|
310
317
|
* Event emitted whenever a conversation is selected
|
|
311
318
|
*/
|
|
312
319
|
this.ConversationSelected = new EventEmitter();
|
|
320
|
+
/**
|
|
321
|
+
* Internal state variable to track if the conversation list is visible or not. Defaults to true. Conversation List only is shown if this is true and ShowConversationList is true.
|
|
322
|
+
*/
|
|
323
|
+
this.IsConversationListVisible = true;
|
|
313
324
|
this._showScrollToBottomIcon = false;
|
|
325
|
+
this._AskSkipTextboxPlaceholder = 'Type your message here...';
|
|
314
326
|
this._messageInProgress = false;
|
|
315
327
|
this._conversationsInProgress = {};
|
|
316
328
|
this._conversationsToReload = {};
|
|
@@ -358,7 +370,7 @@ let SkipChatComponent = SkipChatComponent_1 = class SkipChatComponent extends Ba
|
|
|
358
370
|
this.SubscribeToNotifications();
|
|
359
371
|
}
|
|
360
372
|
static get SkipChatWindowsCurrentlyVisible() {
|
|
361
|
-
return
|
|
373
|
+
return SkipChatComponent.__skipChatWindowsCurrentlyVisible;
|
|
362
374
|
}
|
|
363
375
|
SubscribeToNotifications() {
|
|
364
376
|
try {
|
|
@@ -387,7 +399,17 @@ let SkipChatComponent = SkipChatComponent_1 = class SkipChatComponent extends Ba
|
|
|
387
399
|
}
|
|
388
400
|
}
|
|
389
401
|
splitterCollapseStateChanged(e) {
|
|
390
|
-
|
|
402
|
+
InvokeManualResize();
|
|
403
|
+
}
|
|
404
|
+
get ConversationListCurrentlyVisible() {
|
|
405
|
+
return this.IsConversationListVisible && this.ShowConversationList;
|
|
406
|
+
}
|
|
407
|
+
DisplayConversationList(show = true) {
|
|
408
|
+
if (show !== this.IsConversationListVisible) {
|
|
409
|
+
this.IsConversationListVisible = show;
|
|
410
|
+
this.cdRef.detectChanges();
|
|
411
|
+
InvokeManualResize();
|
|
412
|
+
}
|
|
391
413
|
}
|
|
392
414
|
GetConversationItemClass(item) {
|
|
393
415
|
var _a;
|
|
@@ -425,6 +447,7 @@ let SkipChatComponent = SkipChatComponent_1 = class SkipChatComponent extends Ba
|
|
|
425
447
|
obj.RefreshMessage();
|
|
426
448
|
}
|
|
427
449
|
}
|
|
450
|
+
this._AskSkipTextboxPlaceholder = this.ProcessingTextBoxPlaceholder;
|
|
428
451
|
}
|
|
429
452
|
else {
|
|
430
453
|
if (this._temporaryMessage) {
|
|
@@ -432,6 +455,7 @@ let SkipChatComponent = SkipChatComponent_1 = class SkipChatComponent extends Ba
|
|
|
432
455
|
this.RemoveMessageFromCurrentConversation(this._temporaryMessage);
|
|
433
456
|
this._temporaryMessage = undefined;
|
|
434
457
|
}
|
|
458
|
+
this._AskSkipTextboxPlaceholder = this.DefaultTextboxPlaceholder;
|
|
435
459
|
}
|
|
436
460
|
}
|
|
437
461
|
SetSelectedConversationUser() {
|
|
@@ -506,15 +530,15 @@ let SkipChatComponent = SkipChatComponent_1 = class SkipChatComponent extends Ba
|
|
|
506
530
|
// we are NOT visible, so decrement the count of visible instances, but only if we were ever visible, meaning sometimes we get this situation before we are ever shown
|
|
507
531
|
if (this._initialLoadComplete) {
|
|
508
532
|
// don't go below 0
|
|
509
|
-
|
|
533
|
+
SkipChatComponent.__skipChatWindowsCurrentlyVisible = Math.max(0, SkipChatComponent.__skipChatWindowsCurrentlyVisible - 1);
|
|
510
534
|
}
|
|
511
535
|
}
|
|
512
536
|
else {
|
|
513
537
|
// we are now visible, increment the count of visible instances
|
|
514
|
-
|
|
538
|
+
SkipChatComponent.__skipChatWindowsCurrentlyVisible++;
|
|
515
539
|
if (!this._initialLoadComplete) {
|
|
516
540
|
// we are now visible, for the first time, first fire off an InvokeManualResize to ensure the parent container is resized properly
|
|
517
|
-
|
|
541
|
+
InvokeManualResize();
|
|
518
542
|
// first do stuff if we're on "global" skip chat mode...
|
|
519
543
|
if (this.ShowConversationList && !this.LinkedEntity && this.LinkedEntity.trim().length === 0 && !this.CompositeKeyIsPopulated()) {
|
|
520
544
|
// only subscribe to the route params if we don't have a linked entity and record id, meaning we're in the context of the top level Skip Chat UI, not embedded somewhere
|
|
@@ -599,7 +623,7 @@ let SkipChatComponent = SkipChatComponent_1 = class SkipChatComponent extends Ba
|
|
|
599
623
|
if (this.Conversations.length === 0) {
|
|
600
624
|
// no conversations, so create a new one
|
|
601
625
|
yield this.CreateNewConversation();
|
|
602
|
-
|
|
626
|
+
InvokeManualResize(1);
|
|
603
627
|
}
|
|
604
628
|
else if (conversationIdToLoad) {
|
|
605
629
|
// we have > 0 convos and we were asked to load a specific one
|
|
@@ -657,7 +681,7 @@ let SkipChatComponent = SkipChatComponent_1 = class SkipChatComponent extends Ba
|
|
|
657
681
|
}
|
|
658
682
|
}
|
|
659
683
|
else
|
|
660
|
-
this.
|
|
684
|
+
this.notificationService.CreateSimpleNotification('Error saving conversation name', 'error', 5000);
|
|
661
685
|
});
|
|
662
686
|
}
|
|
663
687
|
showDeleteConvoDialog(conversation) {
|
|
@@ -697,7 +721,7 @@ let SkipChatComponent = SkipChatComponent_1 = class SkipChatComponent extends Ba
|
|
|
697
721
|
this.Messages = [];
|
|
698
722
|
}
|
|
699
723
|
else {
|
|
700
|
-
this.
|
|
724
|
+
this.notificationService.CreateSimpleNotification('Error deleting conversation', 'error', 5000);
|
|
701
725
|
}
|
|
702
726
|
});
|
|
703
727
|
}
|
|
@@ -741,7 +765,7 @@ let SkipChatComponent = SkipChatComponent_1 = class SkipChatComponent extends Ba
|
|
|
741
765
|
}
|
|
742
766
|
let dciSaveResult = yield dci.Save();
|
|
743
767
|
if (!dciSaveResult) {
|
|
744
|
-
this.
|
|
768
|
+
this.notificationService.CreateSimpleNotification('Error creating data context item', 'error', 5000);
|
|
745
769
|
LogError('Error creating data context item', undefined, dci.LatestResult);
|
|
746
770
|
}
|
|
747
771
|
}
|
|
@@ -749,7 +773,7 @@ let SkipChatComponent = SkipChatComponent_1 = class SkipChatComponent extends Ba
|
|
|
749
773
|
this.DataContextID = dc.ID;
|
|
750
774
|
const convoSaveResult = yield convo.Save();
|
|
751
775
|
if (!convoSaveResult) {
|
|
752
|
-
this.
|
|
776
|
+
this.notificationService.CreateSimpleNotification('Error creating conversation', 'error', 5000);
|
|
753
777
|
LogError('Error creating conversation', undefined, convo.LatestResult);
|
|
754
778
|
return;
|
|
755
779
|
}
|
|
@@ -768,7 +792,7 @@ let SkipChatComponent = SkipChatComponent_1 = class SkipChatComponent extends Ba
|
|
|
768
792
|
this._scrollToBottom = true; // this results in the angular after Viewchecked scrolling to bottom when it's done
|
|
769
793
|
}
|
|
770
794
|
else {
|
|
771
|
-
this.
|
|
795
|
+
this.notificationService.CreateSimpleNotification('Error creating data context', 'error', 5000);
|
|
772
796
|
}
|
|
773
797
|
});
|
|
774
798
|
}
|
|
@@ -827,7 +851,7 @@ let SkipChatComponent = SkipChatComponent_1 = class SkipChatComponent extends Ba
|
|
|
827
851
|
this.cdRef.reattach(); // resume change detection
|
|
828
852
|
}
|
|
829
853
|
this._processingStatus[conversation.ID] = oldStatus; // set back to old status as it might have been processing
|
|
830
|
-
|
|
854
|
+
InvokeManualResize(500);
|
|
831
855
|
// ensure the list box has the conversation in view
|
|
832
856
|
this.scrollToConversation(conversation.ID);
|
|
833
857
|
this._conversationLoadComplete = true;
|
|
@@ -870,15 +894,15 @@ let SkipChatComponent = SkipChatComponent_1 = class SkipChatComponent extends Ba
|
|
|
870
894
|
}
|
|
871
895
|
pickSkipStartMessage() {
|
|
872
896
|
// goal here is to randomly select one of the above _startMessages, however we want to track for our instance of the class the ones we use so that we don't reuse any of them until we use them all
|
|
873
|
-
if (this._usedStartMessages.length ===
|
|
897
|
+
if (this._usedStartMessages.length === SkipChatComponent._startMessages.length) {
|
|
874
898
|
this._usedStartMessages = []; // reset the used messages
|
|
875
899
|
}
|
|
876
900
|
let idx = -1;
|
|
877
901
|
do {
|
|
878
|
-
idx = Math.floor(Math.random() *
|
|
879
|
-
} while (this._usedStartMessages.indexOf(
|
|
880
|
-
this._usedStartMessages.push(
|
|
881
|
-
return
|
|
902
|
+
idx = Math.floor(Math.random() * SkipChatComponent._startMessages.length);
|
|
903
|
+
} while (this._usedStartMessages.indexOf(SkipChatComponent._startMessages[idx]) >= 0);
|
|
904
|
+
this._usedStartMessages.push(SkipChatComponent._startMessages[idx]);
|
|
905
|
+
return SkipChatComponent._startMessages[idx];
|
|
882
906
|
}
|
|
883
907
|
sendPrompt(val) {
|
|
884
908
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -962,7 +986,7 @@ let SkipChatComponent = SkipChatComponent_1 = class SkipChatComponent extends Ba
|
|
|
962
986
|
this.cdRef.reattach();
|
|
963
987
|
this.cdRef.detectChanges();
|
|
964
988
|
// invoke manual resize with a delay to ensure that the scroll to bottom has taken place
|
|
965
|
-
//
|
|
989
|
+
//InvokeManualResize();
|
|
966
990
|
this.SetSkipStatusMessage('', 500); // slight delay to ensure that the message is removed after the UI has updated with the new response message
|
|
967
991
|
// now set focus on the input box
|
|
968
992
|
this.askSkipInput.nativeElement.focus();
|
|
@@ -1142,13 +1166,13 @@ let SkipChatComponent = SkipChatComponent_1 = class SkipChatComponent extends Ba
|
|
|
1142
1166
|
else if (type === 'full_entity')
|
|
1143
1167
|
dci.EntityID = e.ID;
|
|
1144
1168
|
if (!(yield dci.Save())) {
|
|
1145
|
-
|
|
1169
|
+
this.notificationService.CreateSimpleNotification('Error creating data context item', 'error', 5000);
|
|
1146
1170
|
console.log('AskSkipComponent: Error creating data context item');
|
|
1147
1171
|
}
|
|
1148
1172
|
}
|
|
1149
1173
|
}
|
|
1150
1174
|
else {
|
|
1151
|
-
|
|
1175
|
+
this.notificationService.CreateSimpleNotification('Error creating data context', 'error', 5000);
|
|
1152
1176
|
console.log('AskSkipComponent: Error creating data context');
|
|
1153
1177
|
}
|
|
1154
1178
|
}
|
|
@@ -1254,7 +1278,7 @@ let SkipChatComponent = SkipChatComponent_1 = class SkipChatComponent extends Ba
|
|
|
1254
1278
|
this.loadConversations(convoIDParam);
|
|
1255
1279
|
});
|
|
1256
1280
|
}
|
|
1257
|
-
}
|
|
1281
|
+
}
|
|
1258
1282
|
SkipChatComponent.__skipChatWindowsCurrentlyVisible = 0;
|
|
1259
1283
|
SkipChatComponent._startMessages = [
|
|
1260
1284
|
'On it, let me get back to you in a moment with the results!🤖',
|
|
@@ -1266,7 +1290,7 @@ SkipChatComponent._startMessages = [
|
|
|
1266
1290
|
"Ok, heard loud and clear, I'll jump right on it! 👂",
|
|
1267
1291
|
"Aye aye captain, I'll get started right away! ⚓",
|
|
1268
1292
|
];
|
|
1269
|
-
SkipChatComponent.ɵfac = function SkipChatComponent_Factory(t) { return new (t || SkipChatComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(
|
|
1293
|
+
SkipChatComponent.ɵfac = function SkipChatComponent_Factory(t) { return new (t || SkipChatComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i2.Location), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i3.MJNotificationService)); };
|
|
1270
1294
|
SkipChatComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SkipChatComponent, selectors: [["skip-chat"]], viewQuery: function SkipChatComponent_Query(rf, ctx) { if (rf & 1) {
|
|
1271
1295
|
i0.ɵɵviewQuery(Container, 7);
|
|
1272
1296
|
i0.ɵɵviewQuery(_c0, 7);
|
|
@@ -1284,29 +1308,31 @@ SkipChatComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SkipChatC
|
|
|
1284
1308
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.askSkipInput = _t.first);
|
|
1285
1309
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.scrollContainer = _t.first);
|
|
1286
1310
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.topLevelDiv = _t.first);
|
|
1287
|
-
} }, inputs: { AllowSend: "AllowSend", Messages: "Messages", Conversations: "Conversations", SelectedConversation: "SelectedConversation", ConversationEditMode: "ConversationEditMode", ShowConversationList: "ShowConversationList", AllowNewConversations: "AllowNewConversations", Title: "Title", DataContextID: "DataContextID", LinkedEntity: "LinkedEntity", LinkedEntityCompositeKey: "LinkedEntityCompositeKey", ShowDataContextButton: "ShowDataContextButton", IncludeLinkedConversationsInList: "IncludeLinkedConversationsInList", SkipLogoURL: "SkipLogoURL", SkipMarkOnlyLogoURL: "SkipMarkOnlyLogoURL", UserImage: "UserImage", UpdateAppRoute: "UpdateAppRoute", WelcomeQuestions: "WelcomeQuestions", AutoLoad: "AutoLoad" }, outputs: { NavigateToMatchingReport: "NavigateToMatchingReport", ConversationSelected: "ConversationSelected" }, features: [i0.ɵɵInheritDefinitionFeature], decls:
|
|
1311
|
+
} }, inputs: { AllowSend: "AllowSend", Messages: "Messages", Conversations: "Conversations", SelectedConversation: "SelectedConversation", ConversationEditMode: "ConversationEditMode", ShowConversationList: "ShowConversationList", AllowNewConversations: "AllowNewConversations", Title: "Title", DataContextID: "DataContextID", LinkedEntity: "LinkedEntity", LinkedEntityCompositeKey: "LinkedEntityCompositeKey", ShowDataContextButton: "ShowDataContextButton", IncludeLinkedConversationsInList: "IncludeLinkedConversationsInList", SkipLogoURL: "SkipLogoURL", SkipMarkOnlyLogoURL: "SkipMarkOnlyLogoURL", UserImage: "UserImage", UpdateAppRoute: "UpdateAppRoute", ShowSkipLogoInConversationList: "ShowSkipLogoInConversationList", DefaultTextboxPlaceholder: "DefaultTextboxPlaceholder", ProcessingTextBoxPlaceholder: "ProcessingTextBoxPlaceholder", WelcomeQuestions: "WelcomeQuestions", AutoLoad: "AutoLoad" }, outputs: { NavigateToMatchingReport: "NavigateToMatchingReport", ConversationSelected: "ConversationSelected" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 23, vars: 13, consts: [["topLevelDiv", ""], ["AskSkipPanel", "", "scrollContainer", ""], ["AskSkipInput", ""], ["conversationList", ""], ["mjFillContainer", "", 1, "chat-container", 3, "bottomMargin", "rightMargin"], [1, "layout"], [1, "left-panel"], [1, "fa-solid", "fa-table-columns", "toggle-icon"], [1, "right-panel"], ["mjFillContainer", "", 1, "conversation-wrapper"], [1, "messages", 3, "scroll"], ["class", "waiting-for-ai", 4, "ngIf"], ["class", "welcome-wrapper", 4, "ngIf"], ["mjContainer", "", "mjSkipResize", "true"], ["class", "scroll-to-bottom-icon", 3, "click", 4, "ngIf"], [1, "input-area"], [1, "text-area-wrapper"], ["type", "text", 3, "keyup.enter", "input", "disabled", "placeholder"], ["kendoButton", ""], ["kendoButton", "", 3, "click", "disabled"], [1, "fas", "fa-solid", "fa-arrow-up"], [4, "ngIf"], ["title", "Please confirm", 3, "minWidth", "width", "close", 4, "ngIf"], [1, "conversation-history"], [1, "new-chat-area"], [1, "fa-solid", "fa-table-columns", "toggle-icon", 3, "click"], [1, "avatar", 3, "src"], [1, "fa-solid", "fa-pen-to-square", "new-convo-icon"], ["mjFillContainer", "", 1, "conversation-list", 3, "data", "itemClass", "fillWidth", "bottomMargin"], ["kendoListViewItemTemplate", ""], [1, "fa-solid", "fa-pen-to-square", "new-convo-icon", 3, "click"], [1, "conversation-item", 3, "click", "ngClass", "title"], ["class", "fa-regular fa-clock", 4, "ngIf"], [1, "text-container"], ["maxlength", "100", 3, "ngModel", "ngModelChange", 4, "ngIf"], ["class", "edit-conversation-panel", 4, "ngIf"], [1, "fa-regular", "fa-clock"], ["maxlength", "100", 3, "ngModelChange", "ngModel"], [1, "edit-conversation-panel"], ["class", "fa-solid fa-pen-to-square", 3, "click", 4, "ngIf"], ["class", "fa-regular fa-trash-can", 3, "click", 4, "ngIf"], ["class", "fa-solid fa-check", 3, "click", 4, "ngIf"], ["class", "fa-solid fa-xmark", 3, "click", 4, "ngIf"], [1, "fa-solid", "fa-pen-to-square", 3, "click"], [1, "fa-regular", "fa-trash-can", 3, "click"], [1, "fa-solid", "fa-check", 3, "click"], [1, "fa-solid", "fa-xmark", 3, "click"], [1, "waiting-for-ai"], [1, "welcome-wrapper"], [1, "welcome-message"], [3, "src"], [1, "welcome-header-text"], [1, "welcome-suggested-questions"], [1, "welcome-suggested-questions-col"], [1, "welcome-question", 3, "click"], [1, "welcome-question-header"], [1, "scroll-to-bottom-icon", 3, "click"], [1, "fas", "fa-arrow-down"], [1, "fa-solid", "fa-gear", 3, "click"], [3, "dialogClosed", "dataContextId", "Provider"], ["title", "Please confirm", 3, "close", "minWidth", "width"], [2, "margin", "30px", "text-align", "center"], ["kendoButton", "", "themeColor", "primary", 3, "click"], ["kendoButton", "", 3, "click"]], template: function SkipChatComponent_Template(rf, ctx) { if (rf & 1) {
|
|
1288
1312
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
1289
|
-
i0.ɵɵelementStart(0, "div", 4, 0)(2, "
|
|
1290
|
-
i0.ɵɵtemplate(3,
|
|
1291
|
-
i0.ɵɵelementStart(
|
|
1292
|
-
i0.ɵɵlistener("scroll", function
|
|
1293
|
-
i0.ɵɵtemplate(
|
|
1294
|
-
i0.ɵɵelement(
|
|
1295
|
-
i0.ɵɵtemplate(
|
|
1313
|
+
i0.ɵɵelementStart(0, "div", 4, 0)(2, "div", 5);
|
|
1314
|
+
i0.ɵɵtemplate(3, SkipChatComponent_Conditional_3_Template, 9, 9, "div", 6)(4, SkipChatComponent_Conditional_4_Template, 1, 0, "span", 7);
|
|
1315
|
+
i0.ɵɵelementStart(5, "div", 8)(6, "div", 9)(7, "div", 10, 1);
|
|
1316
|
+
i0.ɵɵlistener("scroll", function SkipChatComponent_Template_div_scroll_7_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.checkScroll()); });
|
|
1317
|
+
i0.ɵɵtemplate(10, SkipChatComponent_div_10_Template, 1, 0, "div", 11)(11, SkipChatComponent_div_11_Template, 28, 9, "div", 12);
|
|
1318
|
+
i0.ɵɵelement(12, "div", 13);
|
|
1319
|
+
i0.ɵɵtemplate(13, SkipChatComponent_span_13_Template, 2, 0, "span", 14);
|
|
1296
1320
|
i0.ɵɵelementEnd();
|
|
1297
|
-
i0.ɵɵelementStart(
|
|
1298
|
-
i0.ɵɵlistener("keyup.enter", function
|
|
1321
|
+
i0.ɵɵelementStart(14, "div", 15)(15, "div", 16)(16, "textarea", 17, 2);
|
|
1322
|
+
i0.ɵɵlistener("keyup.enter", function SkipChatComponent_Template_textarea_keyup_enter_16_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onEnter($event)); })("input", function SkipChatComponent_Template_textarea_input_16_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onInputChange($event)); });
|
|
1299
1323
|
i0.ɵɵelementEnd()();
|
|
1300
|
-
i0.ɵɵtemplate(
|
|
1301
|
-
i0.ɵɵelementStart(
|
|
1302
|
-
i0.ɵɵlistener("click", function
|
|
1303
|
-
i0.ɵɵelement(
|
|
1324
|
+
i0.ɵɵtemplate(18, SkipChatComponent_Conditional_18_Template, 2, 0, "button", 18);
|
|
1325
|
+
i0.ɵɵelementStart(19, "button", 19);
|
|
1326
|
+
i0.ɵɵlistener("click", function SkipChatComponent_Template_button_click_19_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.sendSkipMessage()); });
|
|
1327
|
+
i0.ɵɵelement(20, "span", 20);
|
|
1304
1328
|
i0.ɵɵelementEnd()()()()()();
|
|
1305
|
-
i0.ɵɵtemplate(
|
|
1329
|
+
i0.ɵɵtemplate(21, SkipChatComponent_div_21_Template, 2, 2, "div", 21)(22, SkipChatComponent_kendo_dialog_22_Template, 8, 3, "kendo-dialog", 22);
|
|
1306
1330
|
} if (rf & 2) {
|
|
1307
1331
|
i0.ɵɵproperty("bottomMargin", 10)("rightMargin", 10);
|
|
1308
1332
|
i0.ɵɵadvance(3);
|
|
1309
|
-
i0.ɵɵ
|
|
1333
|
+
i0.ɵɵconditional(ctx.IsConversationListVisible ? 3 : -1);
|
|
1334
|
+
i0.ɵɵadvance();
|
|
1335
|
+
i0.ɵɵconditional(!ctx.IsConversationListVisible ? 4 : -1);
|
|
1310
1336
|
i0.ɵɵadvance(6);
|
|
1311
1337
|
i0.ɵɵproperty("ngIf", ctx.Messages && ctx.Messages.length > 0 && ctx.SelectedConversation && ctx.IsSkipProcessing(ctx.SelectedConversation));
|
|
1312
1338
|
i0.ɵɵadvance();
|
|
@@ -1314,24 +1340,20 @@ SkipChatComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SkipChatC
|
|
|
1314
1340
|
i0.ɵɵadvance(2);
|
|
1315
1341
|
i0.ɵɵproperty("ngIf", ctx._showScrollToBottomIcon && ctx.Messages && ctx.Messages.length > 0);
|
|
1316
1342
|
i0.ɵɵadvance(3);
|
|
1317
|
-
i0.ɵɵproperty("disabled", ctx.SelectedConversation && ctx.IsSkipProcessing(ctx.SelectedConversation));
|
|
1343
|
+
i0.ɵɵproperty("disabled", ctx.SelectedConversation && ctx.IsSkipProcessing(ctx.SelectedConversation))("placeholder", ctx._AskSkipTextboxPlaceholder);
|
|
1318
1344
|
i0.ɵɵadvance(2);
|
|
1319
|
-
i0.ɵɵconditional(ctx.ShowDataContextButton ?
|
|
1345
|
+
i0.ɵɵconditional(ctx.ShowDataContextButton ? 18 : -1);
|
|
1320
1346
|
i0.ɵɵadvance();
|
|
1321
1347
|
i0.ɵɵproperty("disabled", ctx.IsTextAreaEmpty() || ctx.SelectedConversation !== undefined && ctx.IsSkipProcessing(ctx.SelectedConversation));
|
|
1322
1348
|
i0.ɵɵadvance(2);
|
|
1323
1349
|
i0.ɵɵproperty("ngIf", ctx.isDataContextDialogVisible);
|
|
1324
1350
|
i0.ɵɵadvance();
|
|
1325
1351
|
i0.ɵɵproperty("ngIf", ctx.confirmDeleteConversationDialogOpen);
|
|
1326
|
-
} }, dependencies: [i3.NgClass, i3.NgIf, i4.SplitterComponent, i4.SplitterPaneComponent, i5.DefaultValueAccessor, i5.NgControlStatus, i5.MaxLengthValidator, i5.NgModel, i6.DialogComponent, i6.DialogActionsComponent, i7.FillContainer, i7.Container, i8.ItemTemplateDirective, i8.ListViewComponent, i9.ButtonComponent, i10.DataContextDialogComponent], styles: [".chat-container[_ngcontent-%COMP%] {\n padding: 5px;\n display: flex;\n flex-direction: row;\n height: 100%;\n font-family: S\u00F6hne, ui-sans-serif, system-ui, -apple-system, \"Segoe UI\", Roboto, Ubuntu, Cantarell, \"Noto Sans\", sans-serif, \"Helvetica Neue\", Arial, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n\n \n\n width: 100%;\n height: 100%;\n\n background-color: #f9f9f9;\n}\n\n.conversation-wrapper[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n position: relative; \n\n background-color: #f9f9f9;\n}\n\n.new-conversation[_ngcontent-%COMP%] {\n height: 30px;\n font-size: large;\n}\n\n.conversation-history[_ngcontent-%COMP%] {\n width: 260px;\n min-width: 260px;\n height: 100%;\n overflow-y: auto; \n\n margin-right: 10px;\n padding-top: 5px;\n background-color: #f9f9f9;\n margin-top: 0px; \n padding: 12px; \n}\n\n.k-tabstrip-content-for-skip[_ngcontent-%COMP%] {\n padding: 0;\n padding-block: 0;\n}\n\n\n.conversation-history[_ngcontent-%COMP%] > button[_ngcontent-%COMP%] {\n height: 25px;\n}\n\n.skip-title[_ngcontent-%COMP%] {\n font-size: larger;\n margin-bottom: 5px;\n height: 20px;\n margin-top: 5px;\n}\n\n.conversation-list[_ngcontent-%COMP%] {\n margin-top: 5px;\n padding-top: 5px;\n \n border: 0;\n background-color: #f9f9f9;\n}\n\n\n\n\n\n.welcome-wrapper[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\n.welcome-message[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n overflow: hidden;\n height: 100%;\n}\n\n.embedded-conversations[_ngcontent-%COMP%] {\n margin-left: 3px;\n margin-top: 5px;\n font-size: 10pt;\n color: rgb(48, 48, 235);\n}\n.embedded-conversations[_ngcontent-%COMP%] > span[_ngcontent-%COMP%] {\n margin-top: 4px;\n margin-left: 5px;\n cursor: pointer;\n}\n.conversation-item-linked[_ngcontent-%COMP%] {\n color: rgb(48, 48, 235);\n}\n\n.welcome-message[_ngcontent-%COMP%] img[_ngcontent-%COMP%] {\n width: 120px;\n height: 50px;\n margin-bottom: 20px; \n\n}\n\n.welcome-header-text[_ngcontent-%COMP%] {\n font-size: larger;\n font-weight: bold;\n}\n\n\n\n.welcome-suggested-questions[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-content: center;\n}\n.welcome-suggested-questions-col[_ngcontent-%COMP%] {\n display: flex;\n}\n\n\n\n.welcome-question[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column; \n\n align-items: left;;\n width: 300px; \n justify-content: space-between;\n margin: 5px; \n\n border: solid 1px rgba(41, 28, 28, 0.08);\n border-radius: 15px;\n padding: 10px;\n cursor: pointer;\n}\n\n.welcome-question[_ngcontent-%COMP%]:hover {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n\n.welcome-question-header[_ngcontent-%COMP%] {\n font-size: 12pt;\n font-weight: bold;\n display: block; \n\n}\n\n\n\n.welcome-question[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:not(.welcome-question-header) {\n font-weight: normal;\n font-size: 10pt;\n}\n\n\n.messages[_ngcontent-%COMP%] {\n overflow-y: auto; \n\n overflow-x: hidden; \n\n \n\n margin-bottom: 5px;\n\n margin-top: 2px; \n\n\n background-color: #f9f9f9;\n flex: 1;\n}\n\n\n\n.new-chat-area[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between; \n\n align-items: center; \n\n}\n.avatar[_ngcontent-%COMP%] {\n max-height: 24px;\n margin-right: 10px;\n margin-left: 5px;\n margin-bottom: 3px;\n \n\n margin-right: auto; \n\n}\n\n.conversation-item[_ngcontent-%COMP%] {\n margin-left: 5px;\n margin-right: 5px;\n padding-top: 10px;\n padding-bottom: 10px;\n padding-left: 5px;\n padding-right: 5px;\n border-radius: 5px;\n cursor: pointer;\n overflow: hidden;\n max-height: 150px;\n font-size: 14px;\n\n display: flex;\n align-items: flex-start; \n\n\n flex-wrap: wrap; \n\n}\n\n.text-container[_ngcontent-%COMP%] {\n flex: 1; \n\n display: flex;\n flex-direction: column; \n\n}\n\n.text-container[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%] {\n resize: none; \n\n \n\n}\n\n.conversation-item[_ngcontent-%COMP%] > .conversation-icon[_ngcontent-%COMP%] {\n margin-top: 3px;\n}\n\n.conversation-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n display: inline-block;\n white-space: pre-wrap; \n\n overflow: auto;\n word-wrap: break-word;\n margin-left: 3px; \n\n}\n\n.conversation-item[_ngcontent-%COMP%]:hover {\n background-color: rgba(0, 0, 0, 0.05);\n}\n.conversation-item-selected[_ngcontent-%COMP%] {\n background-color: rgba(0, 0, 0, 0.15);\n}\n\n\n.conversation-item[_ngcontent-%COMP%] > .conversation-icon[_ngcontent-%COMP%] {\n margin-right: 11px;\n}\n.edit-conversation-panel[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end; \n\n margin-top: 2px; \n\n margin-right: 2px; \n\n}\n.edit-conversation-panel[_ngcontent-%COMP%] > .k-icon[_ngcontent-%COMP%] {\n margin-left: 5px;\n cursor: pointer;\n}\n.edit-conversation-panel[_ngcontent-%COMP%] > .k-icon[_ngcontent-%COMP%]:hover {\n color: #ff0000;\n}\n\n\n\n.input-area[_ngcontent-%COMP%] {\n min-height: 35px;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 15px;\n}\n\n.input-area[_ngcontent-%COMP%] > button[_ngcontent-%COMP%] {\n vertical-align: top;\n width: 30px;\n height: 30px;\n margin-top: 3px;\n border-radius: 12px;\n}\n.input-area[_ngcontent-%COMP%] > button[_ngcontent-%COMP%]:first-of-type {\n margin-left: -40px;\n}\n.input-area[_ngcontent-%COMP%] > button[_ngcontent-%COMP%]:last-child {\n margin-left: -65px;\n}\n\n.text-area-wrapper[_ngcontent-%COMP%] {\n padding: 3px;\n border: solid 1px rgba(0, 0, 0, 0.08) ;\n border-radius: 15px;\n\n margin-top: 4px;\n margin-right: -1px;\n min-height: 42px;\n max-height: 100%; \n\n\n overflow: hidden; \n align-items: center;\n\n \n\n width: 710px; \n padding-right: 90px\n} \n.text-area-wrapper[_ngcontent-%COMP%] > textarea[_ngcontent-%COMP%] {\n border: 0;\n outline: 0;\n resize: none;\n\n min-height: 20px; \n\n\n width: 100%;\n overflow-y: hidden; \n\n\n font-family: S\u00F6hne, ui-sans-serif, system-ui, -apple-system, \"Segoe UI\", Roboto, Ubuntu, Cantarell, \"Noto Sans\", sans-serif, \"Helvetica Neue\", Arial, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n\n margin-left: 7px;\n margin-top: 7px;\n margin-bottom: 5px;\n\n background-color: #f9f9f9;\n}\n\n.text-area-wrapper[_ngcontent-%COMP%] > textarea[_ngcontent-%COMP%]:disabled {\n background-color: white;\n}\n\n.input-wrapper[_ngcontent-%COMP%] {\n flex-grow: 1; \n\n height: 100%;\n}\n\n.waiting-for-ai[_ngcontent-%COMP%] {\n position: absolute;\n display: flex; \n\n bottom: 100px;\n z-index: 999;\n left: 10px; \n}\n \n.scroll-to-bottom-icon[_ngcontent-%COMP%] {\n position: absolute;\n bottom: 100px; \n\n left: 50%; \n\n transform: translateX(-50%); \n\n z-index: 1000; \n\n background-color: white; \n\n color: black; \n\n border-radius: 50%; \n\n width: 40px; \n\n height: 40px; \n\n display: flex;\n justify-content: center;\n align-items: center;\n box-shadow: 0px 0px 5px rgba(0,0,0,0.3); \n\n cursor: pointer;\n}\n\n@media (min-width: 600px) {\n .welcome-suggested-questions[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap; \n\n align-content: flex-end; \n\n }\n}"] });
|
|
1327
|
-
SkipChatComponent = SkipChatComponent_1 = __decorate([
|
|
1328
|
-
RegisterClass(BaseNavigationComponent, 'Ask Skip')
|
|
1329
|
-
], SkipChatComponent);
|
|
1330
|
-
export { SkipChatComponent };
|
|
1352
|
+
} }, dependencies: [i2.NgClass, i2.NgIf, i4.DefaultValueAccessor, i4.NgControlStatus, i4.MaxLengthValidator, i4.NgModel, i5.DialogComponent, i5.DialogActionsComponent, i6.FillContainer, i6.Container, i7.ItemTemplateDirective, i7.ListViewComponent, i8.ButtonComponent, i9.DataContextDialogComponent], styles: [".layout[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: row; \n\n height: 100%; \n\n width: 100%; \n\n position: relative;\n}\n\n.left-panel[_ngcontent-%COMP%] {\n width: 272px; \n\n background-color: #f8f9fa; \n\n border-right: 1px solid #ddd; \n\n overflow-y: auto; \n\n overflow-x: hidden; \n\n position: relative;\n\n scrollbar-width: thin; \n\n scrollbar-color: #d3d3d3 #f8f9fa; \n\n}\n\n\n\n.left-panel[_ngcontent-%COMP%]::-webkit-scrollbar {\n width: 8px; \n\n background-color: #f8f9fa; \n\n}\n\n.left-panel[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n background-color: #d3d3d3; \n\n border-radius: 4px; \n\n}\n\n.left-panel[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover {\n background-color: #c0c0c0; \n\n}\n\n.left-panel[_ngcontent-%COMP%]::-webkit-scrollbar-track {\n background-color: #f8f9fa; \n\n}\n\n.right-panel[_ngcontent-%COMP%] {\n flex: 1; \n\n overflow-y: auto; \n\n}\n\n\n.new-convo-icon[_ngcontent-%COMP%] {\n color: #808080; \n\n font-size: 18px; \n\n cursor: pointer; \n\n z-index: 10; \n\n padding: 5px;\n border-radius: 4px;\n}\n\n.toggle-icon[_ngcontent-%COMP%] {\n color: #808080; \n\n font-size: 18px; \n\n cursor: pointer; \n\n z-index: 10; \n\n margin-left: 6px;\n padding: 3px;\n border-radius: 3px;\n}\n \n\n.right-panel[_ngcontent-%COMP%] .toggle-icon[_ngcontent-%COMP%] {\n margin-left: 3px;\n margin-top: 2px;\n position: absolute;\n top: 10px;\n left: auto;\n right: 10px; \n\n}\n\n\n.chat-container[_ngcontent-%COMP%] {\n padding: 5px;\n display: flex;\n flex-direction: row;\n height: 100%;\n font-family: S\u00F6hne, ui-sans-serif, system-ui, -apple-system, \"Segoe UI\", Roboto, Ubuntu, Cantarell, \"Noto Sans\", sans-serif, \"Helvetica Neue\", Arial, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n\n \n\n width: 100%;\n height: 100%;\n\n background-color: #f9f9f9;\n}\n\n.conversation-wrapper[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n position: relative; \n\n background-color: #f9f9f9;\n}\n\n.new-conversation[_ngcontent-%COMP%] {\n height: 30px;\n font-size: large;\n}\n\n.conversation-history[_ngcontent-%COMP%] {\n width: 240px;\n min-width: 240px;\n height: 95%;\n overflow-y: auto; \n\n overflow-x: hidden; \n\n margin-right: 10px;\n padding-top: 5px;\n background-color: #f9f9f9;\n margin-top: 0px; \n padding: 12px; \n}\n\n.k-tabstrip-content-for-skip[_ngcontent-%COMP%] {\n padding: 0;\n padding-block: 0;\n}\n\n\n.conversation-history[_ngcontent-%COMP%] > button[_ngcontent-%COMP%] {\n height: 25px;\n}\n\n.skip-title[_ngcontent-%COMP%] {\n font-size: larger;\n margin-bottom: 5px;\n height: 20px;\n margin-top: 5px;\n}\n\n.conversation-list[_ngcontent-%COMP%] {\n margin-top: 5px;\n padding-top: 5px;\n \n border: 0;\n background-color: #f9f9f9;\n}\n\n\n\n\n\n.welcome-wrapper[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\n.welcome-message[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n overflow: hidden;\n height: 100%;\n}\n\n.embedded-conversations[_ngcontent-%COMP%] {\n margin-left: 3px;\n margin-top: 5px;\n font-size: 10pt;\n color: rgb(48, 48, 235);\n}\n.embedded-conversations[_ngcontent-%COMP%] > span[_ngcontent-%COMP%] {\n margin-top: 4px;\n margin-left: 5px;\n cursor: pointer;\n}\n.conversation-item-linked[_ngcontent-%COMP%] {\n color: rgb(48, 48, 235);\n}\n\n.welcome-message[_ngcontent-%COMP%] img[_ngcontent-%COMP%] {\n width: 120px;\n height: 50px;\n margin-bottom: 20px; \n\n}\n\n.welcome-header-text[_ngcontent-%COMP%] {\n font-size: larger;\n font-weight: bold;\n}\n\n\n\n.welcome-suggested-questions[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-content: center;\n}\n.welcome-suggested-questions-col[_ngcontent-%COMP%] {\n display: flex;\n}\n\n\n\n.welcome-question[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column; \n\n align-items: left;;\n width: 300px; \n justify-content: space-between;\n margin: 5px; \n\n border: solid 1px rgba(41, 28, 28, 0.08);\n border-radius: 15px;\n padding: 10px;\n cursor: pointer;\n}\n\n.welcome-question[_ngcontent-%COMP%]:hover {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n\n.welcome-question-header[_ngcontent-%COMP%] {\n font-size: 12pt;\n font-weight: bold;\n display: block; \n\n}\n\n\n\n.welcome-question[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:not(.welcome-question-header) {\n font-weight: normal;\n font-size: 10pt;\n}\n\n\n.messages[_ngcontent-%COMP%] {\n overflow-y: auto; \n\n overflow-x: hidden; \n\n \n\n margin-bottom: 5px;\n\n margin-top: 2px; \n\n\n background-color: #f9f9f9;\n flex: 1;\n scrollbar-width: thin; \n\n scrollbar-color: #d3d3d3 #f8f9fa; \n\n}\n\n\n\n.messages[_ngcontent-%COMP%]::-webkit-scrollbar {\nwidth: 8px; \n\nbackground-color: #f8f9fa; \n\n}\n\n.messages[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\nbackground-color: #d3d3d3; \n\nborder-radius: 4px; \n\n}\n\n.messages[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover {\nbackground-color: #c0c0c0; \n\n}\n\n.messages[_ngcontent-%COMP%]::-webkit-scrollbar-track {\nbackground-color: #f8f9fa; \n\n}\n\n\n\n.new-chat-area[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between; \n\n align-items: center; \n\n}\n.avatar[_ngcontent-%COMP%] {\n max-height: 24px;\n margin-right: 10px;\n margin-left: 5px;\n margin-bottom: 3px;\n \n\n margin-right: auto; \n\n}\n\n.conversation-item[_ngcontent-%COMP%] {\n margin-left: 5px;\n margin-right: 5px;\n padding-top: 10px;\n padding-bottom: 10px;\n padding-left: 5px;\n padding-right: 5px;\n border-radius: 5px;\n cursor: pointer;\n overflow: hidden;\n max-height: 150px;\n font-size: 14px;\n\n display: flex;\n align-items: flex-start; \n\n\n flex-wrap: wrap; \n\n}\n\n.text-container[_ngcontent-%COMP%] {\n flex: 1; \n\n display: flex;\n flex-direction: column; \n\n}\n\n.text-container[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%] {\n resize: none; \n\n \n\n}\n\n.conversation-item[_ngcontent-%COMP%] > .conversation-icon[_ngcontent-%COMP%] {\n margin-top: 3px;\n}\n\n.conversation-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n display: inline-block;\n white-space: pre-wrap; \n\n overflow: auto;\n word-wrap: break-word;\n margin-left: 3px; \n\n}\n\n.conversation-item[_ngcontent-%COMP%]:hover {\n background-color: rgba(0, 0, 0, 0.05);\n}\n.conversation-item-selected[_ngcontent-%COMP%] {\n background-color: rgba(0, 0, 0, 0.15);\n}\n\n\n.conversation-item[_ngcontent-%COMP%] > .conversation-icon[_ngcontent-%COMP%] {\n margin-right: 11px;\n}\n.edit-conversation-panel[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end; \n\n margin-top: 2px; \n\n margin-right: 2px; \n\n}\n.edit-conversation-panel[_ngcontent-%COMP%] > .k-icon[_ngcontent-%COMP%] {\n margin-left: 5px;\n cursor: pointer;\n}\n.edit-conversation-panel[_ngcontent-%COMP%] > .k-icon[_ngcontent-%COMP%]:hover {\n color: #ff0000;\n}\n\n\n\n.input-area[_ngcontent-%COMP%] {\n min-height: 35px;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 15px;\n}\n\n.input-area[_ngcontent-%COMP%] > button[_ngcontent-%COMP%] {\n vertical-align: top;\n width: 30px;\n height: 30px;\n margin-top: 3px;\n border-radius: 12px;\n}\n.input-area[_ngcontent-%COMP%] > button[_ngcontent-%COMP%]:first-of-type {\n margin-left: -40px;\n}\n.input-area[_ngcontent-%COMP%] > button[_ngcontent-%COMP%]:last-child {\n margin-left: -65px;\n}\n\n.text-area-wrapper[_ngcontent-%COMP%] {\n padding: 3px;\n border: solid 1px rgba(0, 0, 0, 0.08) ;\n border-radius: 15px;\n\n margin-top: 4px;\n margin-right: -1px;\n min-height: 42px;\n max-height: 100%; \n\n\n overflow: hidden; \n align-items: center;\n\n \n\n width: 710px; \n padding-right: 90px\n} \n.text-area-wrapper[_ngcontent-%COMP%] > textarea[_ngcontent-%COMP%] {\n border: 0;\n outline: 0;\n resize: none;\n\n min-height: 20px; \n\n\n width: 100%;\n overflow-y: hidden; \n\n\n font-family: S\u00F6hne, ui-sans-serif, system-ui, -apple-system, \"Segoe UI\", Roboto, Ubuntu, Cantarell, \"Noto Sans\", sans-serif, \"Helvetica Neue\", Arial, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n\n margin-left: 7px;\n margin-top: 7px;\n margin-bottom: 5px;\n\n background-color: #f9f9f9;\n}\n\n\n\n\n\n\n.input-wrapper[_ngcontent-%COMP%] {\n flex-grow: 1; \n\n height: 100%;\n}\n\n.waiting-for-ai[_ngcontent-%COMP%] {\n position: absolute;\n display: flex; \n\n bottom: 100px;\n z-index: 999;\n left: 10px; \n}\n \n.scroll-to-bottom-icon[_ngcontent-%COMP%] {\n position: absolute;\n bottom: 100px; \n\n left: 50%; \n\n transform: translateX(-50%); \n\n z-index: 1000; \n\n background-color: white; \n\n color: black; \n\n border-radius: 50%; \n\n width: 40px; \n\n height: 40px; \n\n display: flex;\n justify-content: center;\n align-items: center;\n box-shadow: 0px 0px 5px rgba(0,0,0,0.3); \n\n cursor: pointer;\n}\n\n@media (min-width: 600px) {\n .welcome-suggested-questions[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap; \n\n align-content: flex-end; \n\n }\n}"] });
|
|
1331
1353
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SkipChatComponent, [{
|
|
1332
1354
|
type: Component,
|
|
1333
|
-
args: [{ selector: 'skip-chat', template: "<div class = \"chat-container\" mjFillContainer #topLevelDiv [bottomMargin]=\"10\" [rightMargin]=\"10\">\n <kendo-splitter orientation=\"horizontal\">\n <kendo-splitter-pane *ngIf=\"ShowConversationList\" [collapsible]=\"true\" [scrollable]=\"false\" [resizable]=\"false\" size=\"272px\" (collapsedChange)=\"splitterCollapseStateChanged($event)\">\n <div class=\"conversation-history\" *ngIf=\"ShowConversationList\">\n <div class=\"new-chat-area\">\n <img [src]=\"SkipLogoURL\" class=\"avatar\" />\n <button kendoButton *ngIf=\"AllowNewConversations\" (click)=\"CreateNewConversation()\">+</button>\n </div>\n <kendo-listview\n class=\"conversation-list\"\n [data]=\"Conversations\"\n [style.height.px]=\"280\"\n [itemClass]=\"{ 'item-border': true }\" \n mjFillContainer \n [fillWidth]=\"false\"\n [bottomMargin]=\"20\"\n #conversationList\n >\n <ng-template kendoListViewItemTemplate let-dataItem=\"dataItem\">\n <div class=\"conversation-item\" \n [ngClass]=\"GetConversationItemClass(dataItem)\"\n [title]=\"dataItem.Name\" \n (click)=\"SelectConversation(dataItem)\"> \n <span *ngIf=\"SelectedConversation && IsSkipProcessing(dataItem)\" class=\"fa-regular fa-clock\"></span>\n <div class=\"text-container\">\n <span *ngIf=\"dataItem.ID !== SelectedConversation?.ID || !ConversationEditMode\">{{ dataItem.Name }}</span>\n <textarea *ngIf=\"dataItem.ID === SelectedConversation?.ID && ConversationEditMode\" [(ngModel)]=\"dataItem.Name\" maxlength=\"100\"></textarea>\n </div>\n <div *ngIf=\"SelectedConversation?.ID === dataItem.ID\" class=\"edit-conversation-panel\">\n <span *ngIf=\"!ConversationEditMode\" class=\"fa-solid fa-pen-to-square\" (click)=\"editConvo(dataItem)\"></span>\n <span *ngIf=\"!ConversationEditMode\" class=\"fa-regular fa-trash-can\" (click)=\"showDeleteConvoDialog(dataItem)\"></span>\n <span *ngIf=\"ConversationEditMode\" class=\"fa-solid fa-check\" (click)=\"saveConvoName(dataItem)\"></span>\n <span *ngIf=\"ConversationEditMode\" class=\"fa-solid fa-xmark\" (click)=\"cancelConvoEdit(dataItem)\"></span>\n </div>\n </div>\n </ng-template>\n </kendo-listview>\n <!-- COMMENTED OUT as we don't want to support embedded conversations in the UI for now\n <div class=\"embedded-conversations\"><input kendoCheckBox type=\"checkbox\" [(ngModel)]=\"IncludeLinkedConversationsInList\" (ngModelChange)=\"loadConversations()\"/> <span (click)=\"FlipEmbeddedConversationState()\">Show Linked Conversations</span></div> -->\n </div>\n </kendo-splitter-pane>\n <kendo-splitter-pane>\n <div class=\"conversation-wrapper\" mjFillContainer>\n <div #AskSkipPanel class=\"messages\" #scrollContainer (scroll)=\"checkScroll()\">\n <div class=\"waiting-for-ai\" *ngIf=\"Messages && Messages.length > 0 && SelectedConversation && IsSkipProcessing(SelectedConversation)\">\n <!-- MOVED THIS TO INSIDE MESSAGE - REMOVE THIS ENTIRE DIV ---- <kendo-loader></kendo-loader> -->\n </div>\n <div class=\"welcome-wrapper\" *ngIf=\"(!Messages || Messages.length ===0) && _conversationLoadComplete\">\n <div class='welcome-message'>\n <img [src]=\"SkipLogoURL\" />\n <div class=\"welcome-header-text\">What can I help with today?</div>\n </div>\n <div class='welcome-suggested-questions'>\n <div class=\"welcome-suggested-questions-col\">\n <div class=\"welcome-question\" (click)=\"sendPrompt(WelcomeQuestions[0].prompt)\">\n <span class=\"welcome-question-header\">{{WelcomeQuestions[0].topLine}}</span>\n <span>{{WelcomeQuestions[0].bottomLine}}</span>\n </div>\n <div class=\"welcome-question\" (click)=\"sendPrompt(WelcomeQuestions[1].prompt)\">\n <span class=\"welcome-question-header\">{{WelcomeQuestions[1].topLine}}</span>\n <span>{{WelcomeQuestions[1].bottomLine}}</span>\n </div> \n </div>\n <div class=\"welcome-suggested-questions-col\">\n <div class=\"welcome-question\" (click)=\"sendPrompt(WelcomeQuestions[2].prompt)\">\n <span class=\"welcome-question-header\">{{WelcomeQuestions[2].topLine}}</span>\n <span>{{WelcomeQuestions[2].bottomLine}}</span>\n </div>\n <div class=\"welcome-question\" (click)=\"sendPrompt(WelcomeQuestions[3].prompt)\">\n <span class=\"welcome-question-header\">{{WelcomeQuestions[3].topLine}}</span>\n <span>{{WelcomeQuestions[3].bottomLine}}</span>\n </div> \n </div>\n </div> \n </div>\n <div mjContainer mjSkipResize=\"true\"><!--mjSkipResize results in everything below this level NOT being resized, performance optimization-->\n <!-- Dynamic messages will be injected here -->\n </div>\n <span class=\"scroll-to-bottom-icon\" *ngIf=\"_showScrollToBottomIcon && Messages && Messages.length > 0\" (click)=\"scrollToBottomAnimate()\"><i class=\"fas fa-arrow-down\"></i></span>\n </div>\n <div class=\"input-area\">\n <div class=\"text-area-wrapper\">\n <textarea\n #AskSkipInput \n [disabled]=\"SelectedConversation && IsSkipProcessing(SelectedConversation)\" \n (keyup.enter)=\"onEnter($event)\" \n (input)=\"onInputChange($event)\"\n type=\"text\" \n placeholder=\"Ask Skip a question\"></textarea>\n </div>\n @if (ShowDataContextButton) {\n <button kendoButton >\n <span class=\"fa-solid fa-gear\" \n (click)=\"showDataContext()\"></span>\n </button> \n }\n <button kendoButton \n [disabled]=\"IsTextAreaEmpty() || (SelectedConversation !== undefined && IsSkipProcessing(SelectedConversation))\" \n (click)=\"sendSkipMessage()\">\n <span class=\"fas fa-solid fa-arrow-up\"></span>\n </button>\n </div>\n </div>\n </kendo-splitter-pane>\n </kendo-splitter>\n</div> \n\n<div *ngIf=\"isDataContextDialogVisible\">\n <mj-data-context-dialog [dataContextId]=\"DataContextID\" (dialogClosed)=\"closeDataContextDialog()\" [Provider]=\"ProviderToUse\"></mj-data-context-dialog>\n</div>\n\n\n<kendo-dialog\n title=\"Please confirm\"\n *ngIf=\"confirmDeleteConversationDialogOpen\"\n (close)=\"closeDeleteConversation('no')\"\n [minWidth]=\"250\"\n [width]=\"450\"\n>\n <p style=\"margin: 30px; text-align: center;\">\n Would you like to delete {{SelectedConversation?.Name}}?\n </p>\n <kendo-dialog-actions>\n <button kendoButton (click)=\"closeDeleteConversation('yes')\" themeColor=\"primary\">\n Yes\n </button>\n <button kendoButton (click)=\"closeDeleteConversation('no')\">\n No\n </button>\n </kendo-dialog-actions>\n</kendo-dialog> ", styles: [".chat-container {\n padding: 5px;\n display: flex;\n flex-direction: row;\n height: 100%;\n font-family: S\u00F6hne, ui-sans-serif, system-ui, -apple-system, \"Segoe UI\", Roboto, Ubuntu, Cantarell, \"Noto Sans\", sans-serif, \"Helvetica Neue\", Arial, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n\n /*initial sizes*/\n width: 100%;\n height: 100%;\n\n background-color: #f9f9f9;\n}\n\n.conversation-wrapper {\n display: flex;\n flex-direction: column;\n position: relative; /* Add this line if the wrapper needs to be a reference point */\n background-color: #f9f9f9;\n}\n\n.new-conversation {\n height: 30px;\n font-size: large;\n}\n\n.conversation-history {\n width: 260px;\n min-width: 260px;\n height: 100%;\n overflow-y: auto; /* Add scroll if the content exceeds the height */\n margin-right: 10px;\n padding-top: 5px;\n background-color: #f9f9f9;\n margin-top: 0px; \n padding: 12px; \n}\n\n.k-tabstrip-content-for-skip {\n padding: 0;\n padding-block: 0;\n}\n\n\n.conversation-history > button {\n height: 25px;\n}\n\n.skip-title {\n font-size: larger;\n margin-bottom: 5px;\n height: 20px;\n margin-top: 5px;\n}\n\n.conversation-list {\n margin-top: 5px;\n padding-top: 5px;\n \n border: 0;\n background-color: #f9f9f9;\n}\n\n\n\n/* Center the welcome message vertically and horizontally */\n.welcome-wrapper {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\n.welcome-message {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n overflow: hidden;\n height: 100%;\n}\n\n.embedded-conversations {\n margin-left: 3px;\n margin-top: 5px;\n font-size: 10pt;\n color: rgb(48, 48, 235);\n}\n.embedded-conversations > span {\n margin-top: 4px;\n margin-left: 5px;\n cursor: pointer;\n}\n.conversation-item-linked {\n color: rgb(48, 48, 235);\n}\n\n.welcome-message img {\n width: 120px;\n height: 50px;\n margin-bottom: 20px; /* Adds some space between the image and the text below */\n}\n\n.welcome-header-text {\n font-size: larger;\n font-weight: bold;\n}\n\n/* Position the welcome-suggested-questions at the bottom of its container */\n.welcome-suggested-questions {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-content: center;\n}\n.welcome-suggested-questions-col {\n display: flex;\n}\n\n/* Flex layout for questions, two per row */\n.welcome-question {\n display: flex;\n flex-direction: column; /* Stack the header and text vertically */\n align-items: left;;\n width: 300px; \n justify-content: space-between;\n margin: 5px; /* Adds some space around each question */\n border: solid 1px rgba(41, 28, 28, 0.08);\n border-radius: 15px;\n padding: 10px;\n cursor: pointer;\n}\n\n.welcome-question:hover {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n\n.welcome-question-header {\n font-size: 12pt;\n font-weight: bold;\n display: block; /* Ensures the header is on its own line */\n}\n\n/* Non-bold text for the content below the header */\n.welcome-question span:not(.welcome-question-header) {\n font-weight: normal;\n font-size: 10pt;\n}\n\n\n.messages {\n overflow-y: auto; /* enable scrolling if the content overflows */\n overflow-x: hidden; /* hide horizontal scrollbar */\n /* border: solid 1px rgba(0, 0, 0, 0.08); */\n margin-bottom: 5px;\n\n margin-top: 2px; /* align it with the top of converation history exactly*/\n\n background-color: #f9f9f9;\n flex: 1;\n}\n\n\n\n.new-chat-area {\n display: flex;\n justify-content: space-between; /* Aligns children (img and button) to each end */\n align-items: center; /* Centers children vertically */\n}\n.avatar {\n max-height: 24px;\n margin-right: 10px;\n margin-left: 5px;\n margin-bottom: 3px;\n /* Ensure the image aligns to the left */\n margin-right: auto; /* Pushes everything else to the right */\n}\n\n.conversation-item {\n margin-left: 5px;\n margin-right: 5px;\n padding-top: 10px;\n padding-bottom: 10px;\n padding-left: 5px;\n padding-right: 5px;\n border-radius: 5px;\n cursor: pointer;\n overflow: hidden;\n max-height: 150px;\n font-size: 14px;\n\n display: flex;\n align-items: flex-start; /* Align items to the top */\n\n flex-wrap: wrap; /* Allow items to wrap to the next line */\n}\n\n.text-container {\n flex: 1; /* Take up remaining space */\n display: flex;\n flex-direction: column; /* Stack children vertically */\n}\n\n.text-container textarea {\n resize: none; /* Disable resizing */\n /* Add more styles for the textarea if needed */\n}\n\n.conversation-item > .conversation-icon {\n margin-top: 3px;\n}\n\n.conversation-item span {\n display: inline-block;\n white-space: pre-wrap; /* Allow text to wrap */\n overflow: auto;\n word-wrap: break-word;\n margin-left: 3px; /* Move the text to the right */\n}\n\n.conversation-item:hover {\n background-color: rgba(0, 0, 0, 0.05);\n}\n.conversation-item-selected {\n background-color: rgba(0, 0, 0, 0.15);\n}\n\n\n.conversation-item > .conversation-icon {\n margin-right: 11px;\n}\n.edit-conversation-panel {\n display: flex;\n justify-content: flex-end; /* Align icons to the right */\n margin-top: 2px; /* litle buffer on top */\n margin-right: 2px; /* litle buffer to the right */\n}\n.edit-conversation-panel > .k-icon {\n margin-left: 5px;\n cursor: pointer;\n}\n.edit-conversation-panel > .k-icon:hover {\n color: #ff0000;\n}\n\n\n\n.input-area {\n min-height: 35px;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 15px;\n}\n\n.input-area > button {\n vertical-align: top;\n width: 30px;\n height: 30px;\n margin-top: 3px;\n border-radius: 12px;\n}\n.input-area > button:first-of-type {\n margin-left: -40px;\n}\n.input-area > button:last-child {\n margin-left: -65px;\n}\n\n.text-area-wrapper {\n padding: 3px;\n border: solid 1px rgba(0, 0, 0, 0.08) ;\n border-radius: 15px;\n\n margin-top: 4px;\n margin-right: -1px;\n min-height: 42px;\n max-height: 100%; /* Prevent it from growing beyond the container */\n\n overflow: hidden; \n align-items: center;\n\n /*combined width and padding is 800*/\n width: 710px; \n padding-right: 90px\n} \n.text-area-wrapper > textarea {\n border: 0;\n outline: 0;\n resize: none;\n\n min-height: 20px; /* Initial height */\n\n width: 100%;\n overflow-y: hidden; /* Hide scrollbar */\n\n font-family: S\u00F6hne, ui-sans-serif, system-ui, -apple-system, \"Segoe UI\", Roboto, Ubuntu, Cantarell, \"Noto Sans\", sans-serif, \"Helvetica Neue\", Arial, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n\n margin-left: 7px;\n margin-top: 7px;\n margin-bottom: 5px;\n\n background-color: #f9f9f9;\n}\n\n.text-area-wrapper > textarea:disabled {\n background-color: white;\n}\n\n.input-wrapper {\n flex-grow: 1; /* This will make the input-wrapper take the remaining space */\n height: 100%;\n}\n\n.waiting-for-ai {\n position: absolute;\n display: flex; /* Use flexbox layout */\n bottom: 100px;\n z-index: 999;\n left: 10px; \n}\n \n.scroll-to-bottom-icon {\n position: absolute;\n bottom: 100px; /* Adjust as needed to position away from the bottom edge */\n left: 50%; /* Start at the exact horizontal center */\n transform: translateX(-50%); /* Shift it back by half its width to center it */\n z-index: 1000; /* Ensure it stays on top */\n background-color: white; /* Circle background color - adjust as needed */\n color: black; /* Icon color - adjust as needed */\n border-radius: 50%; /* Makes the background a circle */\n width: 40px; /* Circle size - adjust as needed */\n height: 40px; /* Circle size - adjust as needed */\n display: flex;\n justify-content: center;\n align-items: center;\n box-shadow: 0px 0px 5px rgba(0,0,0,0.3); /* Optional: Adds a subtle shadow for better visibility */\n cursor: pointer;\n}\n\n@media (min-width: 600px) {\n .welcome-suggested-questions {\n display: flex;\n flex-wrap: wrap; /* Allows questions to wrap to the next line */\n align-content: flex-end; /* Aligns the content to the bottom */\n }\n}\n "] }]
|
|
1334
|
-
}], () => [{ type: i0.ElementRef }, { type:
|
|
1355
|
+
args: [{ selector: 'skip-chat', template: "<div class = \"chat-container\" mjFillContainer #topLevelDiv [bottomMargin]=\"10\" [rightMargin]=\"10\">\n <div class=\"layout\">\n @if (IsConversationListVisible) {\n <div class=\"left-panel\">\n <div class=\"conversation-history\">\n <div class=\"new-chat-area\">\n <span class=\"fa-solid fa-table-columns toggle-icon\" (click)=\"DisplayConversationList(false)\"></span>\n @if (ShowSkipLogoInConversationList) {\n <img [src]=\"SkipLogoURL\" class=\"avatar\" />\n }\n @if (AllowNewConversations) {\n <span class=\"fa-solid fa-pen-to-square new-convo-icon\" (click)=\"CreateNewConversation()\"></span> \n }\n </div>\n <kendo-listview\n class=\"conversation-list\"\n [data]=\"Conversations\"\n [style.height.px]=\"280\"\n [itemClass]=\"{ 'item-border': true }\" \n mjFillContainer \n [fillWidth]=\"false\"\n [bottomMargin]=\"50\"\n #conversationList\n >\n <ng-template kendoListViewItemTemplate let-dataItem=\"dataItem\">\n <div class=\"conversation-item\" \n [ngClass]=\"GetConversationItemClass(dataItem)\"\n [title]=\"dataItem.Name\" \n (click)=\"SelectConversation(dataItem)\"> \n <span *ngIf=\"SelectedConversation && IsSkipProcessing(dataItem)\" class=\"fa-regular fa-clock\"></span>\n <div class=\"text-container\">\n <span *ngIf=\"dataItem.ID !== SelectedConversation?.ID || !ConversationEditMode\">{{ dataItem.Name }}</span>\n <textarea *ngIf=\"dataItem.ID === SelectedConversation?.ID && ConversationEditMode\" [(ngModel)]=\"dataItem.Name\" maxlength=\"100\"></textarea>\n </div>\n <div *ngIf=\"SelectedConversation?.ID === dataItem.ID\" class=\"edit-conversation-panel\">\n <span *ngIf=\"!ConversationEditMode\" class=\"fa-solid fa-pen-to-square\" (click)=\"editConvo(dataItem)\"></span>\n <span *ngIf=\"!ConversationEditMode\" class=\"fa-regular fa-trash-can\" (click)=\"showDeleteConvoDialog(dataItem)\"></span>\n <span *ngIf=\"ConversationEditMode\" class=\"fa-solid fa-check\" (click)=\"saveConvoName(dataItem)\"></span>\n <span *ngIf=\"ConversationEditMode\" class=\"fa-solid fa-xmark\" (click)=\"cancelConvoEdit(dataItem)\"></span>\n </div>\n </div>\n </ng-template>\n </kendo-listview>\n <!-- COMMENTED OUT as we don't want to support embedded conversations in the UI for now\n <div class=\"embedded-conversations\"><input kendoCheckBox type=\"checkbox\" [(ngModel)]=\"IncludeLinkedConversationsInList\" (ngModelChange)=\"loadConversations()\"/> <span (click)=\"FlipEmbeddedConversationState()\">Show Linked Conversations</span></div> -->\n </div> \n </div>\n }\n @if (!IsConversationListVisible) {\n <span class=\"fa-solid fa-table-columns toggle-icon\" (click)=\"DisplayConversationList(true)\"></span>\n }\n\n <div class=\"right-panel\">\n <div class=\"conversation-wrapper\" mjFillContainer>\n <div #AskSkipPanel class=\"messages\" #scrollContainer (scroll)=\"checkScroll()\">\n <div class=\"waiting-for-ai\" *ngIf=\"Messages && Messages.length > 0 && SelectedConversation && IsSkipProcessing(SelectedConversation)\">\n <!-- MOVED THIS TO INSIDE MESSAGE - REMOVE THIS ENTIRE DIV ---- <kendo-loader></kendo-loader> -->\n </div>\n <div class=\"welcome-wrapper\" *ngIf=\"(!Messages || Messages.length ===0) && _conversationLoadComplete\">\n <div class='welcome-message'>\n <img [src]=\"SkipLogoURL\" />\n <div class=\"welcome-header-text\">What can I help with today?</div>\n </div>\n <div class='welcome-suggested-questions'>\n <div class=\"welcome-suggested-questions-col\">\n <div class=\"welcome-question\" (click)=\"sendPrompt(WelcomeQuestions[0].prompt)\">\n <span class=\"welcome-question-header\">{{WelcomeQuestions[0].topLine}}</span>\n <span>{{WelcomeQuestions[0].bottomLine}}</span>\n </div>\n <div class=\"welcome-question\" (click)=\"sendPrompt(WelcomeQuestions[1].prompt)\">\n <span class=\"welcome-question-header\">{{WelcomeQuestions[1].topLine}}</span>\n <span>{{WelcomeQuestions[1].bottomLine}}</span>\n </div> \n </div>\n <div class=\"welcome-suggested-questions-col\">\n <div class=\"welcome-question\" (click)=\"sendPrompt(WelcomeQuestions[2].prompt)\">\n <span class=\"welcome-question-header\">{{WelcomeQuestions[2].topLine}}</span>\n <span>{{WelcomeQuestions[2].bottomLine}}</span>\n </div>\n <div class=\"welcome-question\" (click)=\"sendPrompt(WelcomeQuestions[3].prompt)\">\n <span class=\"welcome-question-header\">{{WelcomeQuestions[3].topLine}}</span>\n <span>{{WelcomeQuestions[3].bottomLine}}</span>\n </div> \n </div>\n </div> \n </div>\n <div mjContainer mjSkipResize=\"true\"><!--mjSkipResize results in everything below this level NOT being resized, performance optimization-->\n <!-- Dynamic messages will be injected here -->\n </div>\n <span class=\"scroll-to-bottom-icon\" *ngIf=\"_showScrollToBottomIcon && Messages && Messages.length > 0\" (click)=\"scrollToBottomAnimate()\"><i class=\"fas fa-arrow-down\"></i></span>\n </div>\n <div class=\"input-area\">\n <div class=\"text-area-wrapper\">\n <textarea\n #AskSkipInput \n [disabled]=\"SelectedConversation && IsSkipProcessing(SelectedConversation)\" \n (keyup.enter)=\"onEnter($event)\" \n (input)=\"onInputChange($event)\"\n type=\"text\" \n [placeholder]=\"_AskSkipTextboxPlaceholder\"></textarea>\n </div>\n @if (ShowDataContextButton) {\n <button kendoButton >\n <span class=\"fa-solid fa-gear\" \n (click)=\"showDataContext()\"></span>\n </button> \n }\n <button kendoButton \n [disabled]=\"IsTextAreaEmpty() || (SelectedConversation !== undefined && IsSkipProcessing(SelectedConversation))\" \n (click)=\"sendSkipMessage()\">\n <span class=\"fas fa-solid fa-arrow-up\"></span>\n </button>\n </div>\n </div> \n </div>\n </div> \n</div> \n\n<div *ngIf=\"isDataContextDialogVisible\">\n <mj-data-context-dialog [dataContextId]=\"DataContextID\" (dialogClosed)=\"closeDataContextDialog()\" [Provider]=\"ProviderToUse\"></mj-data-context-dialog>\n</div>\n\n\n<kendo-dialog\n title=\"Please confirm\"\n *ngIf=\"confirmDeleteConversationDialogOpen\"\n (close)=\"closeDeleteConversation('no')\"\n [minWidth]=\"250\"\n [width]=\"450\"\n>\n <p style=\"margin: 30px; text-align: center;\">\n Would you like to delete {{SelectedConversation?.Name}}?\n </p>\n <kendo-dialog-actions>\n <button kendoButton (click)=\"closeDeleteConversation('yes')\" themeColor=\"primary\">\n Yes\n </button>\n <button kendoButton (click)=\"closeDeleteConversation('no')\">\n No\n </button>\n </kendo-dialog-actions>\n</kendo-dialog> ", styles: [".layout {\n display: flex;\n flex-direction: row; /* Ensures left and right panels are side by side */\n height: 100%; /* Fill the available height */\n width: 100%; /* Fill the available width */\n position: relative;\n}\n\n.left-panel {\n width: 272px; /* Fixed width for the conversation list */\n background-color: #f8f9fa; /* Optional: Background color */\n border-right: 1px solid #ddd; /* Optional: Add a divider */\n overflow-y: auto; /* Enable scrolling if content overflows */\n overflow-x: hidden; /* Hide horizontal scrollbar */\n position: relative;\n\n scrollbar-width: thin; /* For Firefox */\n scrollbar-color: #d3d3d3 #f8f9fa; /* Thumb color and track color */\n}\n\n/* For WebKit-based browsers (Chrome, Edge, Safari) */\n.left-panel::-webkit-scrollbar {\n width: 8px; /* Narrower scrollbar */\n background-color: #f8f9fa; /* Scrollbar track color */\n}\n\n.left-panel::-webkit-scrollbar-thumb {\n background-color: #d3d3d3; /* Lighter gray scrollbar thumb */\n border-radius: 4px; /* Rounded corners for the thumb */\n}\n\n.left-panel::-webkit-scrollbar-thumb:hover {\n background-color: #c0c0c0; /* Slightly darker gray on hover */\n}\n\n.left-panel::-webkit-scrollbar-track {\n background-color: #f8f9fa; /* Background of the scrollbar track */\n}\n\n.right-panel {\n flex: 1; /* Take up the remaining space */\n overflow-y: auto; /* Enable scrolling for the conversation content */\n}\n\n\n.new-convo-icon {\n color: #808080; /* Mid-gray */\n font-size: 18px; /* Adjust icon size */\n cursor: pointer; /* Make it clear the icon is clickable */\n z-index: 10; /* Ensure the icon is above other content */\n padding: 5px;\n border-radius: 4px;\n}\n\n.toggle-icon {\n color: #808080; /* Mid-gray */\n font-size: 18px; /* Adjust icon size */\n cursor: pointer; /* Make it clear the icon is clickable */\n z-index: 10; /* Ensure the icon is above other content */\n margin-left: 6px;\n padding: 3px;\n border-radius: 3px;\n}\n \n\n.right-panel .toggle-icon {\n margin-left: 3px;\n margin-top: 2px;\n position: absolute;\n top: 10px;\n left: auto;\n right: 10px; /* For the right panel toggle */\n}\n\n\n.chat-container {\n padding: 5px;\n display: flex;\n flex-direction: row;\n height: 100%;\n font-family: S\u00F6hne, ui-sans-serif, system-ui, -apple-system, \"Segoe UI\", Roboto, Ubuntu, Cantarell, \"Noto Sans\", sans-serif, \"Helvetica Neue\", Arial, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n\n /*initial sizes*/\n width: 100%;\n height: 100%;\n\n background-color: #f9f9f9;\n}\n\n.conversation-wrapper {\n display: flex;\n flex-direction: column;\n position: relative; /* Add this line if the wrapper needs to be a reference point */\n background-color: #f9f9f9;\n}\n\n.new-conversation {\n height: 30px;\n font-size: large;\n}\n\n.conversation-history {\n width: 240px;\n min-width: 240px;\n height: 95%;\n overflow-y: auto; /* Add scroll if the content exceeds the height */\n overflow-x: hidden; /* Hide horizontal scrollbar */\n margin-right: 10px;\n padding-top: 5px;\n background-color: #f9f9f9;\n margin-top: 0px; \n padding: 12px; \n}\n\n.k-tabstrip-content-for-skip {\n padding: 0;\n padding-block: 0;\n}\n\n\n.conversation-history > button {\n height: 25px;\n}\n\n.skip-title {\n font-size: larger;\n margin-bottom: 5px;\n height: 20px;\n margin-top: 5px;\n}\n\n.conversation-list {\n margin-top: 5px;\n padding-top: 5px;\n \n border: 0;\n background-color: #f9f9f9;\n}\n\n\n\n/* Center the welcome message vertically and horizontally */\n.welcome-wrapper {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\n.welcome-message {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n overflow: hidden;\n height: 100%;\n}\n\n.embedded-conversations {\n margin-left: 3px;\n margin-top: 5px;\n font-size: 10pt;\n color: rgb(48, 48, 235);\n}\n.embedded-conversations > span {\n margin-top: 4px;\n margin-left: 5px;\n cursor: pointer;\n}\n.conversation-item-linked {\n color: rgb(48, 48, 235);\n}\n\n.welcome-message img {\n width: 120px;\n height: 50px;\n margin-bottom: 20px; /* Adds some space between the image and the text below */\n}\n\n.welcome-header-text {\n font-size: larger;\n font-weight: bold;\n}\n\n/* Position the welcome-suggested-questions at the bottom of its container */\n.welcome-suggested-questions {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-content: center;\n}\n.welcome-suggested-questions-col {\n display: flex;\n}\n\n/* Flex layout for questions, two per row */\n.welcome-question {\n display: flex;\n flex-direction: column; /* Stack the header and text vertically */\n align-items: left;;\n width: 300px; \n justify-content: space-between;\n margin: 5px; /* Adds some space around each question */\n border: solid 1px rgba(41, 28, 28, 0.08);\n border-radius: 15px;\n padding: 10px;\n cursor: pointer;\n}\n\n.welcome-question:hover {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n\n.welcome-question-header {\n font-size: 12pt;\n font-weight: bold;\n display: block; /* Ensures the header is on its own line */\n}\n\n/* Non-bold text for the content below the header */\n.welcome-question span:not(.welcome-question-header) {\n font-weight: normal;\n font-size: 10pt;\n}\n\n\n.messages {\n overflow-y: auto; /* enable scrolling if the content overflows */\n overflow-x: hidden; /* hide horizontal scrollbar */\n /* border: solid 1px rgba(0, 0, 0, 0.08); */\n margin-bottom: 5px;\n\n margin-top: 2px; /* align it with the top of converation history exactly*/\n\n background-color: #f9f9f9;\n flex: 1;\n scrollbar-width: thin; /* For Firefox */\n scrollbar-color: #d3d3d3 #f8f9fa; /* Thumb color and track color */\n}\n\n/* For WebKit-based browsers (Chrome, Edge, Safari) */\n.messages::-webkit-scrollbar {\nwidth: 8px; /* Narrower scrollbar */\nbackground-color: #f8f9fa; /* Scrollbar track color */\n}\n\n.messages::-webkit-scrollbar-thumb {\nbackground-color: #d3d3d3; /* Lighter gray scrollbar thumb */\nborder-radius: 4px; /* Rounded corners for the thumb */\n}\n\n.messages::-webkit-scrollbar-thumb:hover {\nbackground-color: #c0c0c0; /* Slightly darker gray on hover */\n}\n\n.messages::-webkit-scrollbar-track {\nbackground-color: #f8f9fa; /* Background of the scrollbar track */\n}\n\n\n\n.new-chat-area {\n display: flex;\n justify-content: space-between; /* Aligns children (img and button) to each end */\n align-items: center; /* Centers children vertically */\n}\n.avatar {\n max-height: 24px;\n margin-right: 10px;\n margin-left: 5px;\n margin-bottom: 3px;\n /* Ensure the image aligns to the left */\n margin-right: auto; /* Pushes everything else to the right */\n}\n\n.conversation-item {\n margin-left: 5px;\n margin-right: 5px;\n padding-top: 10px;\n padding-bottom: 10px;\n padding-left: 5px;\n padding-right: 5px;\n border-radius: 5px;\n cursor: pointer;\n overflow: hidden;\n max-height: 150px;\n font-size: 14px;\n\n display: flex;\n align-items: flex-start; /* Align items to the top */\n\n flex-wrap: wrap; /* Allow items to wrap to the next line */\n}\n\n.text-container {\n flex: 1; /* Take up remaining space */\n display: flex;\n flex-direction: column; /* Stack children vertically */\n}\n\n.text-container textarea {\n resize: none; /* Disable resizing */\n /* Add more styles for the textarea if needed */\n}\n\n.conversation-item > .conversation-icon {\n margin-top: 3px;\n}\n\n.conversation-item span {\n display: inline-block;\n white-space: pre-wrap; /* Allow text to wrap */\n overflow: auto;\n word-wrap: break-word;\n margin-left: 3px; /* Move the text to the right */\n}\n\n.conversation-item:hover {\n background-color: rgba(0, 0, 0, 0.05);\n}\n.conversation-item-selected {\n background-color: rgba(0, 0, 0, 0.15);\n}\n\n\n.conversation-item > .conversation-icon {\n margin-right: 11px;\n}\n.edit-conversation-panel {\n display: flex;\n justify-content: flex-end; /* Align icons to the right */\n margin-top: 2px; /* litle buffer on top */\n margin-right: 2px; /* litle buffer to the right */\n}\n.edit-conversation-panel > .k-icon {\n margin-left: 5px;\n cursor: pointer;\n}\n.edit-conversation-panel > .k-icon:hover {\n color: #ff0000;\n}\n\n\n\n.input-area {\n min-height: 35px;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 15px;\n}\n\n.input-area > button {\n vertical-align: top;\n width: 30px;\n height: 30px;\n margin-top: 3px;\n border-radius: 12px;\n}\n.input-area > button:first-of-type {\n margin-left: -40px;\n}\n.input-area > button:last-child {\n margin-left: -65px;\n}\n\n.text-area-wrapper {\n padding: 3px;\n border: solid 1px rgba(0, 0, 0, 0.08) ;\n border-radius: 15px;\n\n margin-top: 4px;\n margin-right: -1px;\n min-height: 42px;\n max-height: 100%; /* Prevent it from growing beyond the container */\n\n overflow: hidden; \n align-items: center;\n\n /*combined width and padding is 800*/\n width: 710px; \n padding-right: 90px\n} \n.text-area-wrapper > textarea {\n border: 0;\n outline: 0;\n resize: none;\n\n min-height: 20px; /* Initial height */\n\n width: 100%;\n overflow-y: hidden; /* Hide scrollbar */\n\n font-family: S\u00F6hne, ui-sans-serif, system-ui, -apple-system, \"Segoe UI\", Roboto, Ubuntu, Cantarell, \"Noto Sans\", sans-serif, \"Helvetica Neue\", Arial, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n\n margin-left: 7px;\n margin-top: 7px;\n margin-bottom: 5px;\n\n background-color: #f9f9f9;\n}\n\n/* .text-area-wrapper > textarea:disabled {\n background-color: white;\n} */\n\n.input-wrapper {\n flex-grow: 1; /* This will make the input-wrapper take the remaining space */\n height: 100%;\n}\n\n.waiting-for-ai {\n position: absolute;\n display: flex; /* Use flexbox layout */\n bottom: 100px;\n z-index: 999;\n left: 10px; \n}\n \n.scroll-to-bottom-icon {\n position: absolute;\n bottom: 100px; /* Adjust as needed to position away from the bottom edge */\n left: 50%; /* Start at the exact horizontal center */\n transform: translateX(-50%); /* Shift it back by half its width to center it */\n z-index: 1000; /* Ensure it stays on top */\n background-color: white; /* Circle background color - adjust as needed */\n color: black; /* Icon color - adjust as needed */\n border-radius: 50%; /* Makes the background a circle */\n width: 40px; /* Circle size - adjust as needed */\n height: 40px; /* Circle size - adjust as needed */\n display: flex;\n justify-content: center;\n align-items: center;\n box-shadow: 0px 0px 5px rgba(0,0,0,0.3); /* Optional: Adds a subtle shadow for better visibility */\n cursor: pointer;\n}\n\n@media (min-width: 600px) {\n .welcome-suggested-questions {\n display: flex;\n flex-wrap: wrap; /* Allows questions to wrap to the next line */\n align-content: flex-end; /* Aligns the content to the bottom */\n }\n}\n "] }]
|
|
1356
|
+
}], () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.Location }, { type: i0.ChangeDetectorRef }, { type: i3.MJNotificationService }], { AllowSend: [{
|
|
1335
1357
|
type: Input
|
|
1336
1358
|
}], Messages: [{
|
|
1337
1359
|
type: Input
|
|
@@ -1365,6 +1387,12 @@ export { SkipChatComponent };
|
|
|
1365
1387
|
type: Input
|
|
1366
1388
|
}], UpdateAppRoute: [{
|
|
1367
1389
|
type: Input
|
|
1390
|
+
}], ShowSkipLogoInConversationList: [{
|
|
1391
|
+
type: Input
|
|
1392
|
+
}], DefaultTextboxPlaceholder: [{
|
|
1393
|
+
type: Input
|
|
1394
|
+
}], ProcessingTextBoxPlaceholder: [{
|
|
1395
|
+
type: Input
|
|
1368
1396
|
}], NavigateToMatchingReport: [{
|
|
1369
1397
|
type: Output
|
|
1370
1398
|
}], ConversationSelected: [{
|
|
@@ -1395,5 +1423,5 @@ export { SkipChatComponent };
|
|
|
1395
1423
|
}], AutoLoad: [{
|
|
1396
1424
|
type: Input
|
|
1397
1425
|
}] }); })();
|
|
1398
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SkipChatComponent, { className: "SkipChatComponent", filePath: "src/lib/skip-chat/skip-chat.component.ts", lineNumber:
|
|
1426
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SkipChatComponent, { className: "SkipChatComponent", filePath: "src/lib/skip-chat/skip-chat.component.ts", lineNumber: 43 }); })();
|
|
1399
1427
|
//# sourceMappingURL=skip-chat.component.js.map
|