@memberjunction/ng-skip-chat 3.3.0 → 4.0.0
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/README.md +1 -1
- package/dist/lib/artifacts/skip-artifact-viewer.component.d.ts +3 -3
- package/dist/lib/artifacts/skip-artifact-viewer.component.d.ts.map +1 -1
- package/dist/lib/artifacts/skip-artifact-viewer.component.js +7 -8
- package/dist/lib/artifacts/skip-artifact-viewer.component.js.map +1 -1
- package/dist/lib/artifacts/skip-artifacts-counter.component.d.ts.map +1 -1
- package/dist/lib/artifacts/skip-artifacts-counter.component.js +7 -7
- package/dist/lib/artifacts/skip-artifacts-counter.component.js.map +1 -1
- package/dist/lib/artifacts/skip-component-feedback-panel.component.d.ts.map +1 -1
- package/dist/lib/artifacts/skip-component-feedback-panel.component.js +49 -51
- package/dist/lib/artifacts/skip-component-feedback-panel.component.js.map +1 -1
- package/dist/lib/base-managed-component.d.ts +1 -1
- package/dist/lib/dynamic-report/base-report.d.ts +2 -2
- package/dist/lib/dynamic-report/base-report.d.ts.map +1 -1
- package/dist/lib/dynamic-report/base-report.js +1 -1
- package/dist/lib/dynamic-report/base-report.js.map +1 -1
- package/dist/lib/dynamic-report/dynamic-chart.d.ts +32 -0
- package/dist/lib/dynamic-report/dynamic-chart.d.ts.map +1 -0
- package/dist/lib/dynamic-report/dynamic-chart.js +195 -0
- package/dist/lib/dynamic-report/dynamic-chart.js.map +1 -0
- package/dist/lib/dynamic-report/dynamic-grid.d.ts +38 -0
- package/dist/lib/dynamic-report/dynamic-grid.d.ts.map +1 -0
- package/dist/lib/dynamic-report/dynamic-grid.js +388 -0
- package/dist/lib/dynamic-report/dynamic-grid.js.map +1 -0
- package/dist/lib/dynamic-report/dynamic-ui-component.d.ts.map +1 -1
- package/dist/lib/dynamic-report/dynamic-ui-component.js +49 -40
- package/dist/lib/dynamic-report/dynamic-ui-component.js.map +1 -1
- package/dist/lib/dynamic-report/linear-report.d.ts.map +1 -1
- package/dist/lib/dynamic-report/linear-report.js +11 -10
- package/dist/lib/dynamic-report/linear-report.js.map +1 -1
- package/dist/lib/dynamic-report/skip-dynamic-report-wrapper.d.ts.map +1 -1
- package/dist/lib/dynamic-report/skip-dynamic-report-wrapper.js +3 -3
- package/dist/lib/dynamic-report/skip-dynamic-report-wrapper.js.map +1 -1
- package/dist/lib/skip-chat/skip-chat.component.d.ts.map +1 -1
- package/dist/lib/skip-chat/skip-chat.component.js +115 -111
- package/dist/lib/skip-chat/skip-chat.component.js.map +1 -1
- package/dist/lib/skip-single-message/skip-single-message.component.d.ts.map +1 -1
- package/dist/lib/skip-single-message/skip-single-message.component.js +51 -44
- package/dist/lib/skip-single-message/skip-single-message.component.js.map +1 -1
- package/dist/lib/split-panel/skip-split-panel.component.d.ts.map +1 -1
- package/dist/lib/split-panel/skip-split-panel.component.js +11 -10
- package/dist/lib/split-panel/skip-split-panel.component.js.map +1 -1
- package/package.json +40 -40
|
@@ -44,10 +44,10 @@ function SkipChatComponent_Conditional_3_Conditional_5_Template(rf, ctx) { if (r
|
|
|
44
44
|
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()); });
|
|
45
45
|
i0.ɵɵelementEnd();
|
|
46
46
|
} }
|
|
47
|
-
function
|
|
48
|
-
i0.ɵɵelement(0, "span",
|
|
47
|
+
function SkipChatComponent_Conditional_3_ng_template_8_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
48
|
+
i0.ɵɵelement(0, "span", 35);
|
|
49
49
|
} }
|
|
50
|
-
function
|
|
50
|
+
function SkipChatComponent_Conditional_3_ng_template_8_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
51
51
|
i0.ɵɵelementStart(0, "span");
|
|
52
52
|
i0.ɵɵtext(1);
|
|
53
53
|
i0.ɵɵelementEnd();
|
|
@@ -56,83 +56,88 @@ function SkipChatComponent_Conditional_3_ng_template_8_span_3_Template(rf, ctx)
|
|
|
56
56
|
i0.ɵɵadvance();
|
|
57
57
|
i0.ɵɵtextInterpolate(dataItem_r6.Name);
|
|
58
58
|
} }
|
|
59
|
-
function
|
|
59
|
+
function SkipChatComponent_Conditional_3_ng_template_8_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
60
60
|
const _r7 = i0.ɵɵgetCurrentView();
|
|
61
|
-
i0.ɵɵelementStart(0, "textarea",
|
|
62
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
61
|
+
i0.ɵɵelementStart(0, "textarea", 39);
|
|
62
|
+
i0.ɵɵtwoWayListener("ngModelChange", function SkipChatComponent_Conditional_3_ng_template_8_Conditional_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); });
|
|
63
63
|
i0.ɵɵelementEnd();
|
|
64
64
|
} if (rf & 2) {
|
|
65
65
|
const dataItem_r6 = i0.ɵɵnextContext().dataItem;
|
|
66
66
|
i0.ɵɵtwoWayProperty("ngModel", dataItem_r6.Name);
|
|
67
67
|
} }
|
|
68
|
-
function
|
|
68
|
+
function SkipChatComponent_Conditional_3_ng_template_8_Conditional_5_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
69
69
|
const _r8 = i0.ɵɵgetCurrentView();
|
|
70
|
-
i0.ɵɵelementStart(0, "span",
|
|
71
|
-
i0.ɵɵlistener("click", function
|
|
70
|
+
i0.ɵɵelementStart(0, "span", 44);
|
|
71
|
+
i0.ɵɵlistener("click", function SkipChatComponent_Conditional_3_ng_template_8_Conditional_5_Conditional_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)); });
|
|
72
72
|
i0.ɵɵelementEnd();
|
|
73
73
|
} }
|
|
74
|
-
function
|
|
74
|
+
function SkipChatComponent_Conditional_3_ng_template_8_Conditional_5_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
75
75
|
const _r9 = i0.ɵɵgetCurrentView();
|
|
76
|
-
i0.ɵɵelementStart(0, "span",
|
|
77
|
-
i0.ɵɵlistener("click", function
|
|
76
|
+
i0.ɵɵelementStart(0, "span", 45);
|
|
77
|
+
i0.ɵɵlistener("click", function SkipChatComponent_Conditional_3_ng_template_8_Conditional_5_Conditional_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)); });
|
|
78
78
|
i0.ɵɵelementEnd();
|
|
79
79
|
} }
|
|
80
|
-
function
|
|
80
|
+
function SkipChatComponent_Conditional_3_ng_template_8_Conditional_5_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
81
81
|
const _r10 = i0.ɵɵgetCurrentView();
|
|
82
|
-
i0.ɵɵelementStart(0, "span",
|
|
83
|
-
i0.ɵɵlistener("click", function
|
|
82
|
+
i0.ɵɵelementStart(0, "span", 46);
|
|
83
|
+
i0.ɵɵlistener("click", function SkipChatComponent_Conditional_3_ng_template_8_Conditional_5_Conditional_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)); });
|
|
84
84
|
i0.ɵɵelementEnd();
|
|
85
85
|
} }
|
|
86
|
-
function
|
|
86
|
+
function SkipChatComponent_Conditional_3_ng_template_8_Conditional_5_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
87
87
|
const _r11 = i0.ɵɵgetCurrentView();
|
|
88
|
-
i0.ɵɵelementStart(0, "span",
|
|
89
|
-
i0.ɵɵlistener("click", function
|
|
88
|
+
i0.ɵɵelementStart(0, "span", 47);
|
|
89
|
+
i0.ɵɵlistener("click", function SkipChatComponent_Conditional_3_ng_template_8_Conditional_5_Conditional_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)); });
|
|
90
90
|
i0.ɵɵelementEnd();
|
|
91
91
|
} }
|
|
92
|
-
function
|
|
93
|
-
i0.ɵɵelementStart(0, "div",
|
|
94
|
-
i0.ɵɵ
|
|
92
|
+
function SkipChatComponent_Conditional_3_ng_template_8_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
93
|
+
i0.ɵɵelementStart(0, "div", 38);
|
|
94
|
+
i0.ɵɵconditionalCreate(1, SkipChatComponent_Conditional_3_ng_template_8_Conditional_5_Conditional_1_Template, 1, 0, "span", 40);
|
|
95
|
+
i0.ɵɵconditionalCreate(2, SkipChatComponent_Conditional_3_ng_template_8_Conditional_5_Conditional_2_Template, 1, 0, "span", 41);
|
|
96
|
+
i0.ɵɵconditionalCreate(3, SkipChatComponent_Conditional_3_ng_template_8_Conditional_5_Conditional_3_Template, 1, 0, "span", 42);
|
|
97
|
+
i0.ɵɵconditionalCreate(4, SkipChatComponent_Conditional_3_ng_template_8_Conditional_5_Conditional_4_Template, 1, 0, "span", 43);
|
|
95
98
|
i0.ɵɵelementEnd();
|
|
96
99
|
} if (rf & 2) {
|
|
97
100
|
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
98
101
|
i0.ɵɵadvance();
|
|
99
|
-
i0.ɵɵ
|
|
102
|
+
i0.ɵɵconditional(!ctx_r2.ConversationEditMode ? 1 : -1);
|
|
100
103
|
i0.ɵɵadvance();
|
|
101
|
-
i0.ɵɵ
|
|
104
|
+
i0.ɵɵconditional(!ctx_r2.ConversationEditMode ? 2 : -1);
|
|
102
105
|
i0.ɵɵadvance();
|
|
103
|
-
i0.ɵɵ
|
|
106
|
+
i0.ɵɵconditional(ctx_r2.ConversationEditMode ? 3 : -1);
|
|
104
107
|
i0.ɵɵadvance();
|
|
105
|
-
i0.ɵɵ
|
|
108
|
+
i0.ɵɵconditional(ctx_r2.ConversationEditMode ? 4 : -1);
|
|
106
109
|
} }
|
|
107
110
|
function SkipChatComponent_Conditional_3_ng_template_8_Template(rf, ctx) { if (rf & 1) {
|
|
108
111
|
const _r5 = i0.ɵɵgetCurrentView();
|
|
109
112
|
i0.ɵɵelementStart(0, "div", 34);
|
|
110
113
|
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)); });
|
|
111
|
-
i0.ɵɵ
|
|
114
|
+
i0.ɵɵconditionalCreate(1, SkipChatComponent_Conditional_3_ng_template_8_Conditional_1_Template, 1, 0, "span", 35);
|
|
112
115
|
i0.ɵɵelementStart(2, "div", 36);
|
|
113
|
-
i0.ɵɵ
|
|
116
|
+
i0.ɵɵconditionalCreate(3, SkipChatComponent_Conditional_3_ng_template_8_Conditional_3_Template, 2, 1, "span");
|
|
117
|
+
i0.ɵɵconditionalCreate(4, SkipChatComponent_Conditional_3_ng_template_8_Conditional_4_Template, 1, 1, "textarea", 37);
|
|
114
118
|
i0.ɵɵelementEnd();
|
|
115
|
-
i0.ɵɵ
|
|
119
|
+
i0.ɵɵconditionalCreate(5, SkipChatComponent_Conditional_3_ng_template_8_Conditional_5_Template, 5, 4, "div", 38);
|
|
116
120
|
i0.ɵɵelementEnd();
|
|
117
121
|
} if (rf & 2) {
|
|
118
122
|
const dataItem_r6 = ctx.dataItem;
|
|
119
123
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
120
124
|
i0.ɵɵproperty("ngClass", ctx_r2.GetConversationItemClass(dataItem_r6))("title", dataItem_r6.Name);
|
|
121
125
|
i0.ɵɵadvance();
|
|
122
|
-
i0.ɵɵ
|
|
126
|
+
i0.ɵɵconditional(ctx_r2.SelectedConversation && ctx_r2.IsSkipProcessing(dataItem_r6) ? 1 : -1);
|
|
123
127
|
i0.ɵɵadvance(2);
|
|
124
|
-
i0.ɵɵ
|
|
128
|
+
i0.ɵɵconditional(dataItem_r6.ID !== (ctx_r2.SelectedConversation == null ? null : ctx_r2.SelectedConversation.ID) || !ctx_r2.ConversationEditMode ? 3 : -1);
|
|
125
129
|
i0.ɵɵadvance();
|
|
126
|
-
i0.ɵɵ
|
|
130
|
+
i0.ɵɵconditional(dataItem_r6.ID === (ctx_r2.SelectedConversation == null ? null : ctx_r2.SelectedConversation.ID) && ctx_r2.ConversationEditMode ? 4 : -1);
|
|
127
131
|
i0.ɵɵadvance();
|
|
128
|
-
i0.ɵɵ
|
|
132
|
+
i0.ɵɵconditional((ctx_r2.SelectedConversation == null ? null : ctx_r2.SelectedConversation.ID) === dataItem_r6.ID ? 5 : -1);
|
|
129
133
|
} }
|
|
130
134
|
function SkipChatComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
131
135
|
const _r2 = i0.ɵɵgetCurrentView();
|
|
132
136
|
i0.ɵɵelementStart(0, "div", 9)(1, "div", 26)(2, "div", 27)(3, "span", 28);
|
|
133
137
|
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)); });
|
|
134
138
|
i0.ɵɵelementEnd();
|
|
135
|
-
i0.ɵɵ
|
|
139
|
+
i0.ɵɵconditionalCreate(4, SkipChatComponent_Conditional_3_Conditional_4_Template, 1, 1, "img", 29);
|
|
140
|
+
i0.ɵɵconditionalCreate(5, SkipChatComponent_Conditional_3_Conditional_5_Template, 1, 0, "span", 30);
|
|
136
141
|
i0.ɵɵelementEnd();
|
|
137
142
|
i0.ɵɵelementStart(6, "kendo-listview", 31, 4);
|
|
138
143
|
i0.ɵɵtemplate(8, SkipChatComponent_Conditional_3_ng_template_8_Template, 6, 6, "ng-template", 32);
|
|
@@ -152,40 +157,40 @@ function SkipChatComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
|
152
157
|
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)); });
|
|
153
158
|
i0.ɵɵelementEnd();
|
|
154
159
|
} }
|
|
155
|
-
function
|
|
160
|
+
function SkipChatComponent_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
156
161
|
const _r13 = i0.ɵɵgetCurrentView();
|
|
157
|
-
i0.ɵɵelementStart(0, "div",
|
|
158
|
-
i0.ɵɵelement(2, "img",
|
|
159
|
-
i0.ɵɵelementStart(3, "div",
|
|
162
|
+
i0.ɵɵelementStart(0, "div", 16)(1, "div", 48);
|
|
163
|
+
i0.ɵɵelement(2, "img", 49);
|
|
164
|
+
i0.ɵɵelementStart(3, "div", 50);
|
|
160
165
|
i0.ɵɵtext(4, "What can I help with today?");
|
|
161
166
|
i0.ɵɵelementEnd()();
|
|
162
|
-
i0.ɵɵelementStart(5, "div",
|
|
163
|
-
i0.ɵɵlistener("click", function
|
|
164
|
-
i0.ɵɵelementStart(8, "span",
|
|
167
|
+
i0.ɵɵelementStart(5, "div", 51)(6, "div", 52)(7, "div", 53);
|
|
168
|
+
i0.ɵɵlistener("click", function SkipChatComponent_Conditional_13_Template_div_click_7_listener() { i0.ɵɵrestoreView(_r13); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.sendPrompt(ctx_r2.WelcomeQuestions[0].prompt)); });
|
|
169
|
+
i0.ɵɵelementStart(8, "span", 54);
|
|
165
170
|
i0.ɵɵtext(9);
|
|
166
171
|
i0.ɵɵelementEnd();
|
|
167
172
|
i0.ɵɵelementStart(10, "span");
|
|
168
173
|
i0.ɵɵtext(11);
|
|
169
174
|
i0.ɵɵelementEnd()();
|
|
170
|
-
i0.ɵɵelementStart(12, "div",
|
|
171
|
-
i0.ɵɵlistener("click", function
|
|
172
|
-
i0.ɵɵelementStart(13, "span",
|
|
175
|
+
i0.ɵɵelementStart(12, "div", 53);
|
|
176
|
+
i0.ɵɵlistener("click", function SkipChatComponent_Conditional_13_Template_div_click_12_listener() { i0.ɵɵrestoreView(_r13); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.sendPrompt(ctx_r2.WelcomeQuestions[1].prompt)); });
|
|
177
|
+
i0.ɵɵelementStart(13, "span", 54);
|
|
173
178
|
i0.ɵɵtext(14);
|
|
174
179
|
i0.ɵɵelementEnd();
|
|
175
180
|
i0.ɵɵelementStart(15, "span");
|
|
176
181
|
i0.ɵɵtext(16);
|
|
177
182
|
i0.ɵɵelementEnd()()();
|
|
178
|
-
i0.ɵɵelementStart(17, "div",
|
|
179
|
-
i0.ɵɵlistener("click", function
|
|
180
|
-
i0.ɵɵelementStart(19, "span",
|
|
183
|
+
i0.ɵɵelementStart(17, "div", 52)(18, "div", 53);
|
|
184
|
+
i0.ɵɵlistener("click", function SkipChatComponent_Conditional_13_Template_div_click_18_listener() { i0.ɵɵrestoreView(_r13); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.sendPrompt(ctx_r2.WelcomeQuestions[2].prompt)); });
|
|
185
|
+
i0.ɵɵelementStart(19, "span", 54);
|
|
181
186
|
i0.ɵɵtext(20);
|
|
182
187
|
i0.ɵɵelementEnd();
|
|
183
188
|
i0.ɵɵelementStart(21, "span");
|
|
184
189
|
i0.ɵɵtext(22);
|
|
185
190
|
i0.ɵɵelementEnd()();
|
|
186
|
-
i0.ɵɵelementStart(23, "div",
|
|
187
|
-
i0.ɵɵlistener("click", function
|
|
188
|
-
i0.ɵɵelementStart(24, "span",
|
|
191
|
+
i0.ɵɵelementStart(23, "div", 53);
|
|
192
|
+
i0.ɵɵlistener("click", function SkipChatComponent_Conditional_13_Template_div_click_23_listener() { i0.ɵɵrestoreView(_r13); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.sendPrompt(ctx_r2.WelcomeQuestions[3].prompt)); });
|
|
193
|
+
i0.ɵɵelementStart(24, "span", 54);
|
|
189
194
|
i0.ɵɵtext(25);
|
|
190
195
|
i0.ɵɵelementEnd();
|
|
191
196
|
i0.ɵɵelementStart(26, "span");
|
|
@@ -214,14 +219,14 @@ function SkipChatComponent_div_13_Template(rf, ctx) { if (rf & 1) {
|
|
|
214
219
|
} }
|
|
215
220
|
function SkipChatComponent_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
216
221
|
i0.ɵɵelementStart(0, "div", 17);
|
|
217
|
-
i0.ɵɵelement(1, "mj-loading",
|
|
222
|
+
i0.ɵɵelement(1, "mj-loading", 55);
|
|
218
223
|
i0.ɵɵelementEnd();
|
|
219
224
|
} }
|
|
220
|
-
function
|
|
225
|
+
function SkipChatComponent_Conditional_16_Template(rf, ctx) { if (rf & 1) {
|
|
221
226
|
const _r14 = i0.ɵɵgetCurrentView();
|
|
222
|
-
i0.ɵɵelementStart(0, "span",
|
|
223
|
-
i0.ɵɵlistener("click", function
|
|
224
|
-
i0.ɵɵelement(1, "i",
|
|
227
|
+
i0.ɵɵelementStart(0, "span", 56);
|
|
228
|
+
i0.ɵɵlistener("click", function SkipChatComponent_Conditional_16_Template_span_click_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.scrollToBottomAnimate()); });
|
|
229
|
+
i0.ɵɵelement(1, "i", 57);
|
|
225
230
|
i0.ɵɵelementEnd();
|
|
226
231
|
} if (rf & 2) {
|
|
227
232
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
@@ -229,22 +234,22 @@ function SkipChatComponent_span_16_Template(rf, ctx) { if (rf & 1) {
|
|
|
229
234
|
} }
|
|
230
235
|
function SkipChatComponent_Conditional_17_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
231
236
|
const _r16 = i0.ɵɵgetCurrentView();
|
|
232
|
-
i0.ɵɵelementStart(0, "button",
|
|
237
|
+
i0.ɵɵelementStart(0, "button", 62)(1, "span", 66);
|
|
233
238
|
i0.ɵɵlistener("click", function SkipChatComponent_Conditional_17_Conditional_6_Template_span_click_1_listener() { i0.ɵɵrestoreView(_r16); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.showDataContextDialog()); });
|
|
234
239
|
i0.ɵɵelementEnd()();
|
|
235
240
|
} }
|
|
236
241
|
function SkipChatComponent_Conditional_17_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
237
242
|
const _r17 = i0.ɵɵgetCurrentView();
|
|
238
|
-
i0.ɵɵelementStart(0, "button",
|
|
243
|
+
i0.ɵɵelementStart(0, "button", 67);
|
|
239
244
|
i0.ɵɵlistener("click", function SkipChatComponent_Conditional_17_Conditional_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r17); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.stopProcessing()); });
|
|
240
|
-
i0.ɵɵelement(1, "span",
|
|
245
|
+
i0.ɵɵelement(1, "span", 68);
|
|
241
246
|
i0.ɵɵelementEnd();
|
|
242
247
|
} }
|
|
243
248
|
function SkipChatComponent_Conditional_17_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
244
249
|
const _r18 = i0.ɵɵgetCurrentView();
|
|
245
|
-
i0.ɵɵelementStart(0, "button",
|
|
250
|
+
i0.ɵɵelementStart(0, "button", 69);
|
|
246
251
|
i0.ɵɵlistener("click", function SkipChatComponent_Conditional_17_Conditional_8_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r18); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.sendSkipMessage()); });
|
|
247
|
-
i0.ɵɵelement(1, "span",
|
|
252
|
+
i0.ɵɵelement(1, "span", 70);
|
|
248
253
|
i0.ɵɵelementEnd();
|
|
249
254
|
} if (rf & 2) {
|
|
250
255
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
@@ -252,17 +257,19 @@ function SkipChatComponent_Conditional_17_Conditional_8_Template(rf, ctx) { if (
|
|
|
252
257
|
} }
|
|
253
258
|
function SkipChatComponent_Conditional_17_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
254
259
|
const _r19 = i0.ɵɵgetCurrentView();
|
|
255
|
-
i0.ɵɵelementStart(0, "button",
|
|
260
|
+
i0.ɵɵelementStart(0, "button", 65)(1, "span", 71);
|
|
256
261
|
i0.ɵɵlistener("click", function SkipChatComponent_Conditional_17_Conditional_9_Template_span_click_1_listener() { i0.ɵɵrestoreView(_r19); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.showSharingDialog()); });
|
|
257
262
|
i0.ɵɵelementEnd()();
|
|
258
263
|
} }
|
|
259
264
|
function SkipChatComponent_Conditional_17_Template(rf, ctx) { if (rf & 1) {
|
|
260
265
|
const _r15 = i0.ɵɵgetCurrentView();
|
|
261
|
-
i0.ɵɵelementStart(0, "div", 20)(1, "div",
|
|
266
|
+
i0.ɵɵelementStart(0, "div", 20)(1, "div", 58)(2, "div", 59)(3, "textarea", 60, 5);
|
|
262
267
|
i0.ɵɵlistener("keyup.enter", function SkipChatComponent_Conditional_17_Template_textarea_keyup_enter_3_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onEnter($event)); })("input", function SkipChatComponent_Conditional_17_Template_textarea_input_3_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onInputChange($event)); });
|
|
263
268
|
i0.ɵɵelementEnd();
|
|
264
|
-
i0.ɵɵelementStart(5, "div",
|
|
265
|
-
i0.ɵɵ
|
|
269
|
+
i0.ɵɵelementStart(5, "div", 61);
|
|
270
|
+
i0.ɵɵconditionalCreate(6, SkipChatComponent_Conditional_17_Conditional_6_Template, 2, 0, "button", 62);
|
|
271
|
+
i0.ɵɵconditionalCreate(7, SkipChatComponent_Conditional_17_Conditional_7_Template, 2, 0, "button", 63)(8, SkipChatComponent_Conditional_17_Conditional_8_Template, 2, 1, "button", 64);
|
|
272
|
+
i0.ɵɵconditionalCreate(9, SkipChatComponent_Conditional_17_Conditional_9_Template, 2, 0, "button", 65);
|
|
266
273
|
i0.ɵɵelementEnd()()()();
|
|
267
274
|
} if (rf & 2) {
|
|
268
275
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
@@ -275,10 +282,10 @@ function SkipChatComponent_Conditional_17_Template(rf, ctx) { if (rf & 1) {
|
|
|
275
282
|
i0.ɵɵadvance(2);
|
|
276
283
|
i0.ɵɵconditional(ctx_r2.ShowSharingButton && ctx_r2.SelectedConversationCurrentUserPermissionLevel === "Owner" ? 9 : -1);
|
|
277
284
|
} }
|
|
278
|
-
function
|
|
285
|
+
function SkipChatComponent_Conditional_19_Template(rf, ctx) { if (rf & 1) {
|
|
279
286
|
const _r20 = i0.ɵɵgetCurrentView();
|
|
280
|
-
i0.ɵɵelementStart(0, "skip-artifact-viewer",
|
|
281
|
-
i0.ɵɵlistener("NavigateToMatchingReport", function
|
|
287
|
+
i0.ɵɵelementStart(0, "skip-artifact-viewer", 72);
|
|
288
|
+
i0.ɵɵlistener("NavigateToMatchingReport", function SkipChatComponent_Conditional_19_Template_skip_artifact_viewer_NavigateToMatchingReport_0_listener($event) { i0.ɵɵrestoreView(_r20); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.NavigateToMatchingReport.emit($event)); })("NewReportCreated", function SkipChatComponent_Conditional_19_Template_skip_artifact_viewer_NewReportCreated_0_listener($event) { i0.ɵɵrestoreView(_r20); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.NewReportCreated.emit($event)); })("DrillDownEvent", function SkipChatComponent_Conditional_19_Template_skip_artifact_viewer_DrillDownEvent_0_listener($event) { i0.ɵɵrestoreView(_r20); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.DrillDownEvent.emit($event)); })("ArtifactInfoChanged", function SkipChatComponent_Conditional_19_Template_skip_artifact_viewer_ArtifactInfoChanged_0_listener($event) { i0.ɵɵrestoreView(_r20); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onArtifactInfoChanged($event)); });
|
|
282
289
|
i0.ɵɵelementEnd();
|
|
283
290
|
} if (rf & 2) {
|
|
284
291
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
@@ -286,7 +293,7 @@ function SkipChatComponent_skip_artifact_viewer_19_Template(rf, ctx) { if (rf &
|
|
|
286
293
|
} }
|
|
287
294
|
function SkipChatComponent_Conditional_20_Template(rf, ctx) { if (rf & 1) {
|
|
288
295
|
const _r21 = i0.ɵɵgetCurrentView();
|
|
289
|
-
i0.ɵɵelementStart(0, "mj-data-context-dialog",
|
|
296
|
+
i0.ɵɵelementStart(0, "mj-data-context-dialog", 73);
|
|
290
297
|
i0.ɵɵlistener("dialogClosed", function SkipChatComponent_Conditional_20_Template_mj_data_context_dialog_dialogClosed_0_listener() { i0.ɵɵrestoreView(_r21); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.closeDataContextDialog()); });
|
|
291
298
|
i0.ɵɵelementEnd();
|
|
292
299
|
} if (rf & 2) {
|
|
@@ -295,14 +302,14 @@ function SkipChatComponent_Conditional_20_Template(rf, ctx) { if (rf & 1) {
|
|
|
295
302
|
} }
|
|
296
303
|
function SkipChatComponent_Conditional_21_Template(rf, ctx) { if (rf & 1) {
|
|
297
304
|
const _r22 = i0.ɵɵgetCurrentView();
|
|
298
|
-
i0.ɵɵelementStart(0, "kendo-dialog",
|
|
305
|
+
i0.ɵɵelementStart(0, "kendo-dialog", 74);
|
|
299
306
|
i0.ɵɵlistener("close", function SkipChatComponent_Conditional_21_Template_kendo_dialog_close_0_listener() { i0.ɵɵrestoreView(_r22); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.closeSharingDialog("no")); });
|
|
300
|
-
i0.ɵɵelement(1, "mj-resource-permissions",
|
|
301
|
-
i0.ɵɵelementStart(3, "kendo-dialog-actions")(4, "button",
|
|
307
|
+
i0.ɵɵelement(1, "mj-resource-permissions", 75, 6);
|
|
308
|
+
i0.ɵɵelementStart(3, "kendo-dialog-actions")(4, "button", 76);
|
|
302
309
|
i0.ɵɵlistener("click", function SkipChatComponent_Conditional_21_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r22); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.closeSharingDialog("yes")); });
|
|
303
310
|
i0.ɵɵtext(5, " Save ");
|
|
304
311
|
i0.ɵɵelementEnd();
|
|
305
|
-
i0.ɵɵelementStart(6, "button",
|
|
312
|
+
i0.ɵɵelementStart(6, "button", 77);
|
|
306
313
|
i0.ɵɵlistener("click", function SkipChatComponent_Conditional_21_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r22); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.closeSharingDialog("no")); });
|
|
307
314
|
i0.ɵɵtext(7, " Cancel ");
|
|
308
315
|
i0.ɵɵelementEnd()()();
|
|
@@ -312,19 +319,19 @@ function SkipChatComponent_Conditional_21_Template(rf, ctx) { if (rf & 1) {
|
|
|
312
319
|
i0.ɵɵadvance();
|
|
313
320
|
i0.ɵɵproperty("Provider", ctx_r2.Provider)("ResourceTypeID", ctx_r2.conversationResourceTypeID)("ResourceRecordID", ctx_r2.SelectedConversation.ID)("ExcludedRoleNames", ctx_r2.SharingExcludeRoleNames)("ExcludedUserEmails", ctx_r2.SharingExcludeEmails);
|
|
314
321
|
} }
|
|
315
|
-
function
|
|
322
|
+
function SkipChatComponent_Conditional_22_Template(rf, ctx) { if (rf & 1) {
|
|
316
323
|
const _r23 = i0.ɵɵgetCurrentView();
|
|
317
|
-
i0.ɵɵelementStart(0, "kendo-dialog",
|
|
318
|
-
i0.ɵɵlistener("close", function
|
|
319
|
-
i0.ɵɵelementStart(1, "p",
|
|
324
|
+
i0.ɵɵelementStart(0, "kendo-dialog", 78);
|
|
325
|
+
i0.ɵɵlistener("close", function SkipChatComponent_Conditional_22_Template_kendo_dialog_close_0_listener() { i0.ɵɵrestoreView(_r23); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.closeDeleteConversation("no")); });
|
|
326
|
+
i0.ɵɵelementStart(1, "p", 79);
|
|
320
327
|
i0.ɵɵtext(2);
|
|
321
328
|
i0.ɵɵelementEnd();
|
|
322
|
-
i0.ɵɵelementStart(3, "kendo-dialog-actions")(4, "button",
|
|
323
|
-
i0.ɵɵlistener("click", function
|
|
329
|
+
i0.ɵɵelementStart(3, "kendo-dialog-actions")(4, "button", 76);
|
|
330
|
+
i0.ɵɵlistener("click", function SkipChatComponent_Conditional_22_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r23); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.closeDeleteConversation("yes")); });
|
|
324
331
|
i0.ɵɵtext(5, " Yes ");
|
|
325
332
|
i0.ɵɵelementEnd();
|
|
326
|
-
i0.ɵɵelementStart(6, "button",
|
|
327
|
-
i0.ɵɵlistener("click", function
|
|
333
|
+
i0.ɵɵelementStart(6, "button", 77);
|
|
334
|
+
i0.ɵɵlistener("click", function SkipChatComponent_Conditional_22_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r23); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.closeDeleteConversation("no")); });
|
|
328
335
|
i0.ɵɵtext(7, " No ");
|
|
329
336
|
i0.ɵɵelementEnd()()();
|
|
330
337
|
} if (rf & 2) {
|
|
@@ -333,19 +340,19 @@ function SkipChatComponent_kendo_dialog_22_Template(rf, ctx) { if (rf & 1) {
|
|
|
333
340
|
i0.ɵɵadvance(2);
|
|
334
341
|
i0.ɵɵtextInterpolate1(" Would you like to delete ", ctx_r2.SelectedConversation == null ? null : ctx_r2.SelectedConversation.Name, "? ");
|
|
335
342
|
} }
|
|
336
|
-
function
|
|
343
|
+
function SkipChatComponent_Conditional_23_Template(rf, ctx) { if (rf & 1) {
|
|
337
344
|
const _r24 = i0.ɵɵgetCurrentView();
|
|
338
|
-
i0.ɵɵelementStart(0, "kendo-dialog",
|
|
339
|
-
i0.ɵɵlistener("close", function
|
|
340
|
-
i0.ɵɵelementStart(1, "p",
|
|
345
|
+
i0.ɵɵelementStart(0, "kendo-dialog", 78);
|
|
346
|
+
i0.ɵɵlistener("close", function SkipChatComponent_Conditional_23_Template_kendo_dialog_close_0_listener() { i0.ɵɵrestoreView(_r24); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.closeMessageEditOrDeleteDialog("no")); });
|
|
347
|
+
i0.ɵɵelementStart(1, "p", 79);
|
|
341
348
|
i0.ɵɵtext(2);
|
|
342
349
|
i0.ɵɵelementEnd();
|
|
343
|
-
i0.ɵɵelementStart(3, "kendo-dialog-actions")(4, "button",
|
|
344
|
-
i0.ɵɵlistener("click", function
|
|
350
|
+
i0.ɵɵelementStart(3, "kendo-dialog-actions")(4, "button", 76);
|
|
351
|
+
i0.ɵɵlistener("click", function SkipChatComponent_Conditional_23_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r24); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.closeMessageEditOrDeleteDialog("yes")); });
|
|
345
352
|
i0.ɵɵtext(5, " Yes ");
|
|
346
353
|
i0.ɵɵelementEnd();
|
|
347
|
-
i0.ɵɵelementStart(6, "button",
|
|
348
|
-
i0.ɵɵlistener("click", function
|
|
354
|
+
i0.ɵɵelementStart(6, "button", 77);
|
|
355
|
+
i0.ɵɵlistener("click", function SkipChatComponent_Conditional_23_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r24); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.closeMessageEditOrDeleteDialog("no")); });
|
|
349
356
|
i0.ɵɵtext(7, " No ");
|
|
350
357
|
i0.ɵɵelementEnd()()();
|
|
351
358
|
} if (rf & 2) {
|
|
@@ -2656,15 +2663,7 @@ export class SkipChatComponent extends BaseManagedComponent {
|
|
|
2656
2663
|
}
|
|
2657
2664
|
static ɵfac = function SkipChatComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || 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), i0.ɵɵdirectiveInject(i4.DialogService)); };
|
|
2658
2665
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SkipChatComponent, selectors: [["skip-chat"]], viewQuery: function SkipChatComponent_Query(rf, ctx) { if (rf & 1) {
|
|
2659
|
-
i0.ɵɵviewQuery(Container, 7);
|
|
2660
|
-
i0.ɵɵviewQuery(_c0, 7);
|
|
2661
|
-
i0.ɵɵviewQuery(_c1, 5, ViewContainerRef);
|
|
2662
|
-
i0.ɵɵviewQuery(_c2, 5);
|
|
2663
|
-
i0.ɵɵviewQuery(_c3, 5);
|
|
2664
|
-
i0.ɵɵviewQuery(_c4, 5);
|
|
2665
|
-
i0.ɵɵviewQuery(_c5, 5);
|
|
2666
|
-
i0.ɵɵviewQuery(_c6, 5);
|
|
2667
|
-
i0.ɵɵviewQuery(_c7, 5);
|
|
2666
|
+
i0.ɵɵviewQuery(Container, 7)(_c0, 7)(_c1, 5, ViewContainerRef)(_c2, 5)(_c3, 5)(_c4, 5)(_c5, 5)(_c6, 5)(_c7, 5);
|
|
2668
2667
|
} if (rf & 2) {
|
|
2669
2668
|
let _t;
|
|
2670
2669
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.askSkip = _t.first);
|
|
@@ -2676,26 +2675,31 @@ export class SkipChatComponent extends BaseManagedComponent {
|
|
|
2676
2675
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.topLevelDiv = _t.first);
|
|
2677
2676
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.resourcePermissionsRef = _t.first);
|
|
2678
2677
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.splitPanel = _t.first);
|
|
2679
|
-
} }, 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", VerboseLogging: "VerboseLogging", UpdateAppRoute: "UpdateAppRoute", ShowSkipLogoInConversationList: "ShowSkipLogoInConversationList", ShowSharingButton: "ShowSharingButton", SharingExcludeRoleNames: "SharingExcludeRoleNames", SharingExcludeEmails: "SharingExcludeEmails", EnableArtifactSplitView: "EnableArtifactSplitView", DefaultSplitRatio: "DefaultSplitRatio", DefaultTextboxPlaceholder: "DefaultTextboxPlaceholder", ProcessingTextBoxPlaceholder: "ProcessingTextBoxPlaceholder", WelcomeQuestions: "WelcomeQuestions", AutoLoad: "AutoLoad" }, outputs: { NavigateToMatchingReport: "NavigateToMatchingReport", ConversationSelected: "ConversationSelected", NewReportCreated: "NewReportCreated", DrillDownEvent: "DrillDownEvent", ArtifactSelected: "ArtifactSelected", ArtifactViewed: "ArtifactViewed" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 24, vars: 18, consts: [["topLevelDiv", ""], ["splitPanel", ""], ["AskSkipPanel", ""], ["scrollContainer", ""], ["conversationList", ""], ["AskSkipInput", ""], ["resourcePermissions", ""], ["kendoDialogContainer", "", 1, "chat-container"], [1, "layout"], [1, "left-panel"], [1, "fa-solid", "fa-table-columns", "toggle-icon"], [1, "right-panel"], ["mjFillContainer", "", 3, "SplitRatioChanged", "VersionSelected", "Mode", "SplitRatio", "RightPanelHeaderContent", "VersionList", "SelectedVersionId", "fillWidth", "fillHeight"], ["left-panel", "", 1, "conversation-wrapper"], [2, "width", "0", "height", "0", "overflow", "hidden", "position", "absolute"], [1, "messages", 3, "scroll"], [
|
|
2678
|
+
} }, 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", VerboseLogging: "VerboseLogging", UpdateAppRoute: "UpdateAppRoute", ShowSkipLogoInConversationList: "ShowSkipLogoInConversationList", ShowSharingButton: "ShowSharingButton", SharingExcludeRoleNames: "SharingExcludeRoleNames", SharingExcludeEmails: "SharingExcludeEmails", EnableArtifactSplitView: "EnableArtifactSplitView", DefaultSplitRatio: "DefaultSplitRatio", DefaultTextboxPlaceholder: "DefaultTextboxPlaceholder", ProcessingTextBoxPlaceholder: "ProcessingTextBoxPlaceholder", WelcomeQuestions: "WelcomeQuestions", AutoLoad: "AutoLoad" }, outputs: { NavigateToMatchingReport: "NavigateToMatchingReport", ConversationSelected: "ConversationSelected", NewReportCreated: "NewReportCreated", DrillDownEvent: "DrillDownEvent", ArtifactSelected: "ArtifactSelected", ArtifactViewed: "ArtifactViewed" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 24, vars: 18, consts: [["topLevelDiv", ""], ["splitPanel", ""], ["AskSkipPanel", ""], ["scrollContainer", ""], ["conversationList", ""], ["AskSkipInput", ""], ["resourcePermissions", ""], ["kendoDialogContainer", "", 1, "chat-container"], [1, "layout"], [1, "left-panel"], [1, "fa-solid", "fa-table-columns", "toggle-icon"], [1, "right-panel"], ["mjFillContainer", "", 3, "SplitRatioChanged", "VersionSelected", "Mode", "SplitRatio", "RightPanelHeaderContent", "VersionList", "SelectedVersionId", "fillWidth", "fillHeight"], ["left-panel", "", 1, "conversation-wrapper"], [2, "width", "0", "height", "0", "overflow", "hidden", "position", "absolute"], [1, "messages", 3, "scroll"], [1, "welcome-wrapper"], [1, "loading-convo-messages-wrapper"], ["mjContainer", "", "mjSkipResize", "true", 1, "messages-container"], [1, "scroll-to-bottom-icon", 3, "left"], [1, "input-area"], ["right-panel", ""], [3, "ArtifactID", "ArtifactVersionID", "DataContext"], [3, "dataContextId", "Provider"], ["title", "Share Conversation", 3, "width", "height"], ["title", "Please confirm", 3, "minWidth", "width"], [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"], [1, "conversation-list", 3, "data", "itemClass"], ["kendoListViewItemTemplate", ""], [1, "fa-solid", "fa-pen-to-square", "new-convo-icon", 3, "click"], [1, "conversation-item", 3, "click", "ngClass", "title"], [1, "fa-regular", "fa-clock"], [1, "text-container"], ["maxlength", "100", 3, "ngModel"], [1, "edit-conversation-panel"], ["maxlength", "100", 3, "ngModelChange", "ngModel"], [1, "fa-solid", "fa-pen-to-square"], [1, "fa-regular", "fa-trash-can"], [1, "fa-solid", "fa-check"], [1, "fa-solid", "fa-xmark"], [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, "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"], ["text", "Loading conversation...", "size", "medium"], [1, "scroll-to-bottom-icon", 3, "click"], [1, "fas", "fa-arrow-down"], [1, "input-container"], [1, "text-area-wrapper"], ["type", "text", 3, "keyup.enter", "input", "disabled", "placeholder"], [1, "button-area"], ["kendoButton", ""], ["kendoButton", "", 1, "stop-button"], ["kendoButton", "", 3, "disabled"], ["kendoButton", "", 1, "share-button"], [1, "fa-solid", "fa-gear", 3, "click"], ["kendoButton", "", 1, "stop-button", 3, "click"], [1, "fas", "fa-solid", "fa-stop"], ["kendoButton", "", 3, "click", "disabled"], [1, "fas", "fa-solid", "fa-arrow-up"], [1, "fa-solid", "fa-share", 3, "click"], [3, "NavigateToMatchingReport", "NewReportCreated", "DrillDownEvent", "ArtifactInfoChanged", "ArtifactID", "ArtifactVersionID", "DataContext"], [3, "dialogClosed", "dataContextId", "Provider"], ["title", "Share Conversation", 3, "close", "width", "height"], [3, "Provider", "ResourceTypeID", "ResourceRecordID", "ExcludedRoleNames", "ExcludedUserEmails"], ["kendoButton", "", "themeColor", "primary", 3, "click"], ["kendoButton", "", 3, "click"], ["title", "Please confirm", 3, "close", "minWidth", "width"], [2, "margin", "30px", "text-align", "center"]], template: function SkipChatComponent_Template(rf, ctx) { if (rf & 1) {
|
|
2680
2679
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
2681
2680
|
i0.ɵɵelementStart(0, "div", 7, 0)(2, "div", 8);
|
|
2682
|
-
i0.ɵɵ
|
|
2681
|
+
i0.ɵɵconditionalCreate(3, SkipChatComponent_Conditional_3_Template, 9, 5, "div", 9);
|
|
2682
|
+
i0.ɵɵconditionalCreate(4, SkipChatComponent_Conditional_4_Template, 1, 0, "span", 10);
|
|
2683
2683
|
i0.ɵɵelementStart(5, "div", 11)(6, "skip-split-panel", 12, 1);
|
|
2684
2684
|
i0.ɵɵlistener("SplitRatioChanged", function SkipChatComponent_Template_skip_split_panel_SplitRatioChanged_6_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onSplitRatioChanged($event)); })("VersionSelected", function SkipChatComponent_Template_skip_split_panel_VersionSelected_6_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onArtifactVersionSelected($event)); });
|
|
2685
2685
|
i0.ɵɵelementStart(8, "div", 13);
|
|
2686
2686
|
i0.ɵɵelement(9, "div", 14, 2);
|
|
2687
2687
|
i0.ɵɵelementStart(11, "div", 15, 3);
|
|
2688
2688
|
i0.ɵɵlistener("scroll", function SkipChatComponent_Template_div_scroll_11_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.checkScroll()); });
|
|
2689
|
-
i0.ɵɵ
|
|
2689
|
+
i0.ɵɵconditionalCreate(13, SkipChatComponent_Conditional_13_Template, 28, 9, "div", 16);
|
|
2690
|
+
i0.ɵɵconditionalCreate(14, SkipChatComponent_Conditional_14_Template, 2, 0, "div", 17);
|
|
2690
2691
|
i0.ɵɵelement(15, "div", 18);
|
|
2691
|
-
i0.ɵɵ
|
|
2692
|
+
i0.ɵɵconditionalCreate(16, SkipChatComponent_Conditional_16_Template, 2, 2, "span", 19);
|
|
2692
2693
|
i0.ɵɵelementEnd();
|
|
2693
|
-
i0.ɵɵ
|
|
2694
|
+
i0.ɵɵconditionalCreate(17, SkipChatComponent_Conditional_17_Template, 10, 5, "div", 20);
|
|
2694
2695
|
i0.ɵɵelementEnd();
|
|
2695
2696
|
i0.ɵɵelementStart(18, "div", 21);
|
|
2696
|
-
i0.ɵɵ
|
|
2697
|
+
i0.ɵɵconditionalCreate(19, SkipChatComponent_Conditional_19_Template, 1, 3, "skip-artifact-viewer", 22);
|
|
2697
2698
|
i0.ɵɵelementEnd()()()()();
|
|
2698
|
-
i0.ɵɵ
|
|
2699
|
+
i0.ɵɵconditionalCreate(20, SkipChatComponent_Conditional_20_Template, 1, 2, "mj-data-context-dialog", 23);
|
|
2700
|
+
i0.ɵɵconditionalCreate(21, SkipChatComponent_Conditional_21_Template, 8, 7, "kendo-dialog", 24);
|
|
2701
|
+
i0.ɵɵconditionalCreate(22, SkipChatComponent_Conditional_22_Template, 8, 3, "kendo-dialog", 25);
|
|
2702
|
+
i0.ɵɵconditionalCreate(23, SkipChatComponent_Conditional_23_Template, 8, 3, "kendo-dialog", 25);
|
|
2699
2703
|
} if (rf & 2) {
|
|
2700
2704
|
i0.ɵɵadvance(3);
|
|
2701
2705
|
i0.ɵɵconditional(ctx.IsConversationListVisible ? 3 : -1);
|
|
@@ -2704,28 +2708,28 @@ export class SkipChatComponent extends BaseManagedComponent {
|
|
|
2704
2708
|
i0.ɵɵadvance(2);
|
|
2705
2709
|
i0.ɵɵproperty("Mode", ctx.EnableArtifactSplitView && ctx.selectedArtifact ? "BothSides" : "LeftOnly")("SplitRatio", ctx.SplitRatio)("RightPanelHeaderContent", ctx.artifactHeaderInfo)("VersionList", ctx.artifactVersionList)("SelectedVersionId", ctx.selectedArtifactVersionId)("fillWidth", false)("fillHeight", true);
|
|
2706
2710
|
i0.ɵɵadvance(7);
|
|
2707
|
-
i0.ɵɵ
|
|
2711
|
+
i0.ɵɵconditional((!ctx.Messages || ctx.Messages.length === 0) && ctx._conversationLoadComplete ? 13 : -1);
|
|
2708
2712
|
i0.ɵɵadvance();
|
|
2709
2713
|
i0.ɵɵconditional(!ctx._conversationLoadComplete ? 14 : -1);
|
|
2710
2714
|
i0.ɵɵadvance(2);
|
|
2711
|
-
i0.ɵɵ
|
|
2715
|
+
i0.ɵɵconditional(ctx._showScrollToBottomIcon && ctx.Messages && ctx.Messages.length > 0 ? 16 : -1);
|
|
2712
2716
|
i0.ɵɵadvance();
|
|
2713
2717
|
i0.ɵɵconditional(ctx.SelectedConversationCurrentUserPermissionLevel === "Owner" || ctx.SelectedConversationCurrentUserPermissionLevel === "Edit" ? 17 : -1);
|
|
2714
2718
|
i0.ɵɵadvance(2);
|
|
2715
|
-
i0.ɵɵ
|
|
2719
|
+
i0.ɵɵconditional(ctx.selectedArtifact ? 19 : -1);
|
|
2716
2720
|
i0.ɵɵadvance();
|
|
2717
2721
|
i0.ɵɵconditional(ctx.isDataContextDialogVisible ? 20 : -1);
|
|
2718
2722
|
i0.ɵɵadvance();
|
|
2719
2723
|
i0.ɵɵconditional(ctx.isSharingDialogVisible && ctx.SelectedConversation && ctx.conversationResourceTypeID ? 21 : -1);
|
|
2720
2724
|
i0.ɵɵadvance();
|
|
2721
|
-
i0.ɵɵ
|
|
2725
|
+
i0.ɵɵconditional(ctx.confirmDeleteConversationDialogOpen ? 22 : -1);
|
|
2722
2726
|
i0.ɵɵadvance();
|
|
2723
|
-
i0.ɵɵ
|
|
2724
|
-
} }, dependencies: [i2.NgClass, i2.NgIf, i5.DefaultValueAccessor, i5.NgControlStatus, i5.MaxLengthValidator, i5.NgModel, i4.DialogComponent, i4.DialogActionsComponent, i4.DialogContainerDirective, i6.FillContainer, i6.Container, i7.ItemTemplateDirective, i7.ListViewComponent, i8.ButtonComponent, i9.DataContextDialogComponent, i10.ResourcePermissionsComponent, i11.LoadingComponent, i12.SkipSplitPanelComponent, i13.SkipArtifactViewerComponent], styles: [".layout[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: row; \n\n height: 100%; \n\n width: 100%; \n\n position: relative;\n overflow: hidden; \n\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 display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%; \n\n overflow: hidden; \n\n}\n\n.conversation-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 16px;\n background-color: #f5f7f9;\n border-bottom: 1px solid #dde4ee;\n height: 40px;\n flex-shrink: 0;\n}\n\n.conversation-title[_ngcontent-%COMP%] {\n font-size: 15px;\n font-weight: 500;\n color: #333;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 70%;\n}\n\n.artifact-counter-container[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\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: calc(100vh - 111px);\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 width: 100%;\n overflow: hidden; \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 height: 100%; \n\n max-height: 100%; \n\n flex: 1;\n overflow: auto; \n\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 position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 5;\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 padding-bottom: 100px; \n\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 position: relative;\n z-index: 10;\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 margin-top: 30px; \n\n}\n.welcome-suggested-questions-col[_ngcontent-%COMP%] {\n display: flex;\n margin-bottom: 10px; \n\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 !important; \n\n overflow-x: hidden !important; \n\n \n\n margin-bottom: 5px;\n\n margin-top: 2px; \n\n\n background-color: #f9f9f9;\n flex: 1 1 auto; \n\n height: calc(100% - 50px); \n\n max-height: 100%; \n\n scrollbar-width: thin; \n\n scrollbar-color: #d3d3d3 #f8f9fa; \n\n position: relative; \n\n}\n\n\n\n.messages[_ngcontent-%COMP%]::-webkit-scrollbar {\n width: 8px; \n\n background-color: #f8f9fa; \n\n}\n\n.messages[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n background-color: #d3d3d3; \n\n border-radius: 4px; \n\n}\n\n.messages[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover {\n background-color: #c0c0c0; \n\n}\n\n.messages[_ngcontent-%COMP%]::-webkit-scrollbar-track {\n background-color: #f8f9fa; \n\n}\n\n\n\n.messages-container[_ngcontent-%COMP%] {\n min-height: 20px; \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\n.message-image[_ngcontent-%COMP%] {\n min-width: 24px;\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 display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 15px;\n padding: 10px 20px;\n position: sticky;\n bottom: 0;\n background-color: #f9f9f9;\n z-index: 10;\n}\n\n.input-container[_ngcontent-%COMP%] {\n width: 100%;\n max-width: 800px;\n}\n\n.button-area[_ngcontent-%COMP%] {\n position: absolute;\n bottom: 8px;\n right: 8px;\n display: flex;\n align-items: center;\n gap: 5px;\n}\n\n\n.button-area[_ngcontent-%COMP%] > button[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n min-width: 28px;\n background-color: transparent;\n border: 1px solid transparent;\n}\n\n.button-area[_ngcontent-%COMP%] > button[_ngcontent-%COMP%]:hover:not(:disabled) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.button-area[_ngcontent-%COMP%] > button[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n\n\n.button-area[_ngcontent-%COMP%] > button.stop-button[_ngcontent-%COMP%] {\n background-color: #dc3545;\n color: white;\n border-color: #dc3545;\n}\n\n.button-area[_ngcontent-%COMP%] > button.stop-button[_ngcontent-%COMP%]:hover {\n background-color: #c82333;\n border-color: #c82333;\n}\n\n.text-area-wrapper[_ngcontent-%COMP%] {\n position: relative;\n display: flex;\n padding: 10px 12px;\n padding-right: 120px; \n\n border: solid 1px rgba(0, 0, 0, 0.08);\n border-radius: 15px;\n min-height: 44px;\n max-height: 200px;\n overflow-y: auto;\n background-color: white;\n align-items: flex-end;\n} \n.text-area-wrapper[_ngcontent-%COMP%] > textarea[_ngcontent-%COMP%] {\n border: 0;\n outline: 0;\n resize: none;\n width: 100%;\n min-height: 24px;\n max-height: 180px;\n overflow-y: auto;\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 line-height: 1.5;\n background-color: transparent;\n padding: 0;\n margin: 0;\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: fixed; \n\n bottom: 120px; \n\n \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 opacity: 0.9; \n\n}\n\n.loading-convo-messages-wrapper[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n width: 100%;\n position: absolute;\n z-index: 1000;\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}"] });
|
|
2727
|
+
i0.ɵɵconditional(ctx.confirmMessageEditOrDeleteDialogOpen ? 23 : -1);
|
|
2728
|
+
} }, dependencies: [i2.NgClass, i5.DefaultValueAccessor, i5.NgControlStatus, i5.MaxLengthValidator, i5.NgModel, i4.DialogComponent, i4.DialogContainerDirective, i4.DialogActionsComponent, i6.FillContainer, i6.Container, i7.ListViewComponent, i7.ItemTemplateDirective, i8.ButtonComponent, i9.DataContextDialogComponent, i10.ResourcePermissionsComponent, i11.LoadingComponent, i12.SkipSplitPanelComponent, i13.SkipArtifactViewerComponent], styles: [".layout[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: row; \n\n height: 100%; \n\n width: 100%; \n\n position: relative;\n overflow: hidden; \n\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 display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%; \n\n overflow: hidden; \n\n}\n\n.conversation-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 16px;\n background-color: #f5f7f9;\n border-bottom: 1px solid #dde4ee;\n height: 40px;\n flex-shrink: 0;\n}\n\n.conversation-title[_ngcontent-%COMP%] {\n font-size: 15px;\n font-weight: 500;\n color: #333;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 70%;\n}\n\n.artifact-counter-container[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\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: calc(100vh - 111px);\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 width: 100%;\n overflow: hidden; \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 height: 100%; \n\n max-height: 100%; \n\n flex: 1;\n overflow: auto; \n\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 position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 5;\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 padding-bottom: 100px; \n\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 position: relative;\n z-index: 10;\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 margin-top: 30px; \n\n}\n.welcome-suggested-questions-col[_ngcontent-%COMP%] {\n display: flex;\n margin-bottom: 10px; \n\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 !important; \n\n overflow-x: hidden !important; \n\n \n\n margin-bottom: 5px;\n\n margin-top: 2px; \n\n\n background-color: #f9f9f9;\n flex: 1 1 auto; \n\n height: calc(100% - 50px); \n\n max-height: 100%; \n\n scrollbar-width: thin; \n\n scrollbar-color: #d3d3d3 #f8f9fa; \n\n position: relative; \n\n}\n\n\n\n.messages[_ngcontent-%COMP%]::-webkit-scrollbar {\n width: 8px; \n\n background-color: #f8f9fa; \n\n}\n\n.messages[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n background-color: #d3d3d3; \n\n border-radius: 4px; \n\n}\n\n.messages[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover {\n background-color: #c0c0c0; \n\n}\n\n.messages[_ngcontent-%COMP%]::-webkit-scrollbar-track {\n background-color: #f8f9fa; \n\n}\n\n\n\n.messages-container[_ngcontent-%COMP%] {\n min-height: 20px; \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\n.message-image[_ngcontent-%COMP%] {\n min-width: 24px;\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 display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 15px;\n padding: 10px 20px;\n position: sticky;\n bottom: 0;\n background-color: #f9f9f9;\n z-index: 10;\n}\n\n.input-container[_ngcontent-%COMP%] {\n width: 100%;\n max-width: 800px;\n}\n\n.button-area[_ngcontent-%COMP%] {\n position: absolute;\n bottom: 8px;\n right: 8px;\n display: flex;\n align-items: center;\n gap: 5px;\n}\n\n\n.button-area[_ngcontent-%COMP%] > button[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n min-width: 28px;\n background-color: transparent;\n border: 1px solid transparent;\n}\n\n.button-area[_ngcontent-%COMP%] > button[_ngcontent-%COMP%]:hover:not(:disabled) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.button-area[_ngcontent-%COMP%] > button[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n\n\n.button-area[_ngcontent-%COMP%] > button.stop-button[_ngcontent-%COMP%] {\n background-color: #dc3545;\n color: white;\n border-color: #dc3545;\n}\n\n.button-area[_ngcontent-%COMP%] > button.stop-button[_ngcontent-%COMP%]:hover {\n background-color: #c82333;\n border-color: #c82333;\n}\n\n.text-area-wrapper[_ngcontent-%COMP%] {\n position: relative;\n display: flex;\n padding: 10px 12px;\n padding-right: 120px; \n\n border: solid 1px rgba(0, 0, 0, 0.08);\n border-radius: 15px;\n min-height: 44px;\n max-height: 200px;\n overflow-y: auto;\n background-color: white;\n align-items: flex-end;\n} \n.text-area-wrapper[_ngcontent-%COMP%] > textarea[_ngcontent-%COMP%] {\n border: 0;\n outline: 0;\n resize: none;\n width: 100%;\n min-height: 24px;\n max-height: 180px;\n overflow-y: auto;\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 line-height: 1.5;\n background-color: transparent;\n padding: 0;\n margin: 0;\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: fixed; \n\n bottom: 120px; \n\n \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 opacity: 0.9; \n\n}\n\n.loading-convo-messages-wrapper[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n width: 100%;\n position: absolute;\n z-index: 1000;\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}"] });
|
|
2725
2729
|
}
|
|
2726
2730
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SkipChatComponent, [{
|
|
2727
2731
|
type: Component,
|
|
2728
|
-
args: [{ selector: 'skip-chat', template: "<div class=\"chat-container\" kendoDialogContainer #topLevelDiv>\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 [itemClass]=\"{ 'item-border': true }\" \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 <skip-split-panel \n #splitPanel\n [Mode]=\"EnableArtifactSplitView && selectedArtifact ? 'BothSides' : 'LeftOnly'\" \n [SplitRatio]=\"SplitRatio\" \n (SplitRatioChanged)=\"onSplitRatioChanged($event)\"\n [RightPanelHeaderContent]=\"artifactHeaderInfo\"\n [VersionList]=\"artifactVersionList\"\n [SelectedVersionId]=\"selectedArtifactVersionId\"\n (VersionSelected)=\"onArtifactVersionSelected($event)\"\n mjFillContainer [fillWidth]=\"false\" [fillHeight]=\"true\">\n \n <!-- Left Panel (Chat) -->\n <div left-panel class=\"conversation-wrapper\">\n <!-- Use this for reference only, but don't display - hidden via width:0, height:0 -->\n <div #AskSkipPanel style=\"width:0; height:0; overflow:hidden; position:absolute;\"></div>\n \n <div class=\"messages\" #scrollContainer (scroll)=\"checkScroll()\">\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 @if (!_conversationLoadComplete) {\n <div class=\"loading-convo-messages-wrapper\">\n <mj-loading text=\"Loading conversation...\" size=\"medium\"></mj-loading>\n </div>\n } \n <div class=\"messages-container\" 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\" \n *ngIf=\"_showScrollToBottomIcon && Messages && Messages.length > 0\" \n [style.left.px]=\"getScrollToBottomIconPosition()\"\n (click)=\"scrollToBottomAnimate()\">\n <i class=\"fas fa-arrow-down\"></i>\n </span>\n </div>\n @if (SelectedConversationCurrentUserPermissionLevel === 'Owner' || \n SelectedConversationCurrentUserPermissionLevel === 'Edit') {\n <div class=\"input-area\">\n <div class=\"input-container\">\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 class=\"button-area\">\n @if (ShowDataContextButton) {\n <button kendoButton >\n <span class=\"fa-solid fa-gear\" \n (click)=\"showDataContextDialog()\"></span>\n </button> \n }\n @if (SelectedConversation && IsSkipProcessing(SelectedConversation)) {\n <button kendoButton \n class=\"stop-button\"\n (click)=\"stopProcessing()\">\n <span class=\"fas fa-solid fa-stop\"></span>\n </button>\n }\n @else {\n <button kendoButton \n [disabled]=\"IsTextAreaEmpty()\" \n (click)=\"sendSkipMessage()\">\n <span class=\"fas fa-solid fa-arrow-up\"></span>\n </button>\n }\n @if (ShowSharingButton && SelectedConversationCurrentUserPermissionLevel === 'Owner') {\n <button kendoButton class=\"share-button\">\n <span class=\"fa-solid fa-share\"\n (click)=\"showSharingDialog()\"></span>\n </button> \n }\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n \n <!-- Right Panel (Artifact Viewer) -->\n <div right-panel>\n <skip-artifact-viewer\n *ngIf=\"selectedArtifact\"\n [ArtifactID]=\"selectedArtifact.artifactId\"\n [ArtifactVersionID]=\"selectedArtifact.artifactVersionId\"\n [DataContext]=\"DataContext\"\n (NavigateToMatchingReport)=\"NavigateToMatchingReport.emit($event)\"\n (NewReportCreated)=\"NewReportCreated.emit($event)\"\n (DrillDownEvent)=\"DrillDownEvent.emit($event)\"\n (ArtifactInfoChanged)=\"onArtifactInfoChanged($event)\">\n </skip-artifact-viewer>\n </div>\n </skip-split-panel>\n </div> \n </div> \n</div> \n\n@if(isDataContextDialogVisible) {\n <mj-data-context-dialog [dataContextId]=\"DataContextID\" (dialogClosed)=\"closeDataContextDialog()\" [Provider]=\"ProviderToUse\"></mj-data-context-dialog>\n}\n@if(isSharingDialogVisible && SelectedConversation && conversationResourceTypeID) {\n <kendo-dialog\n title=\"Share Conversation\"\n (close)=\"closeSharingDialog('no')\"\n [width]=\"650\"\n [height]=\"400\"\n >\n <mj-resource-permissions \n [Provider]=\"Provider\"\n [ResourceTypeID]=\"conversationResourceTypeID\"\n [ResourceRecordID]=\"SelectedConversation.ID\"\n [ExcludedRoleNames]=\"SharingExcludeRoleNames\"\n [ExcludedUserEmails]=\"SharingExcludeEmails\"\n #resourcePermissions\n >\n </mj-resource-permissions>\n <kendo-dialog-actions>\n <button kendoButton (click)=\"closeSharingDialog('yes')\" themeColor=\"primary\">\n Save\n </button>\n <button kendoButton (click)=\"closeSharingDialog('no')\">\n Cancel\n </button>\n </kendo-dialog-actions>\n </kendo-dialog> \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> \n\n<kendo-dialog\n title=\"Please confirm\"\n *ngIf=\"confirmMessageEditOrDeleteDialogOpen\"\n (close)=\"closeMessageEditOrDeleteDialog('no')\"\n [minWidth]=\"250\"\n [width]=\"450\"\n>\n <p style=\"margin: 30px; text-align: center;\">\n Would you like to {{messageEditOrDeleteType}} this message? Doing so will result in any subsequent messages in the conversation being deleted.\n </p>\n <kendo-dialog-actions>\n <button kendoButton (click)=\"closeMessageEditOrDeleteDialog('yes')\" themeColor=\"primary\">\n Yes\n </button>\n <button kendoButton (click)=\"closeMessageEditOrDeleteDialog('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 overflow: hidden; /* Prevent content from expanding beyond container */\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 display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%; /* Don't exceed parent container height */\n overflow: hidden; /* Hide overflow to prevent double scrollbars */\n}\n\n.conversation-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 16px;\n background-color: #f5f7f9;\n border-bottom: 1px solid #dde4ee;\n height: 40px;\n flex-shrink: 0;\n}\n\n.conversation-title {\n font-size: 15px;\n font-weight: 500;\n color: #333;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 70%;\n}\n\n.artifact-counter-container {\n display: flex;\n align-items: center;\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: calc(100vh - 111px);\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 /*initial sizes*/\n width: 100%;\n overflow: hidden; /* Prevent container from growing beyond viewport */\n background-color: #f9f9f9;\n}\n\n.conversation-wrapper {\n display: flex;\n flex-direction: column;\n position: relative; /* This ensures child absolute elements position relative to this container */\n background-color: #f9f9f9;\n height: 100%; /* Ensure it takes full height */\n max-height: 100%; /* Don't exceed parent container height */\n flex: 1;\n overflow: auto; /* Allow content to scroll */\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 position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 5;\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 padding-bottom: 100px; /* Push the content up a bit */\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 position: relative;\n z-index: 10;\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 margin-top: 30px; /* Push questions down for spacing */\n}\n.welcome-suggested-questions-col {\n display: flex;\n margin-bottom: 10px; /* Space between rows */\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 !important; /* enable scrolling if the content overflows */\n overflow-x: hidden !important; /* 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 1 auto; /* Take up available space but don't push parent beyond size */\n height: calc(100% - 50px); /* Ensure messages container has a height */\n max-height: 100%; /* Don't exceed parent height */\n scrollbar-width: thin; /* For Firefox */\n scrollbar-color: #d3d3d3 #f8f9fa; /* Thumb color and track color */\n position: relative; /* For proper positioning of scroll icon */\n}\n\n/* For WebKit-based browsers (Chrome, Edge, Safari) */\n.messages::-webkit-scrollbar {\n width: 8px; /* Narrower scrollbar */\n background-color: #f8f9fa; /* Scrollbar track color */\n}\n\n.messages::-webkit-scrollbar-thumb {\n background-color: #d3d3d3; /* Lighter gray scrollbar thumb */\n border-radius: 4px; /* Rounded corners for the thumb */\n}\n\n.messages::-webkit-scrollbar-thumb:hover {\n background-color: #c0c0c0; /* Slightly darker gray on hover */\n}\n\n.messages::-webkit-scrollbar-track {\n background-color: #f8f9fa; /* Background of the scrollbar track */\n}\n\n/* Class for the messages container */\n.messages-container {\n min-height: 20px; /* Ensure container takes space even when empty */\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\n.message-image {\n min-width: 24px;\n}\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 display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 15px;\n padding: 10px 20px;\n position: sticky;\n bottom: 0;\n background-color: #f9f9f9;\n z-index: 10;\n}\n\n.input-container {\n width: 100%;\n max-width: 800px;\n}\n\n.button-area {\n position: absolute;\n bottom: 8px;\n right: 8px;\n display: flex;\n align-items: center;\n gap: 5px;\n}\n/* All buttons in the button area */\n.button-area > button {\n width: 28px;\n height: 28px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n min-width: 28px;\n background-color: transparent;\n border: 1px solid transparent;\n}\n\n.button-area > button:hover:not(:disabled) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.button-area > button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Stop button styling */\n.button-area > button.stop-button {\n background-color: #dc3545;\n color: white;\n border-color: #dc3545;\n}\n\n.button-area > button.stop-button:hover {\n background-color: #c82333;\n border-color: #c82333;\n}\n\n.text-area-wrapper {\n position: relative;\n display: flex;\n padding: 10px 12px;\n padding-right: 120px; /* Space for buttons */\n border: solid 1px rgba(0, 0, 0, 0.08);\n border-radius: 15px;\n min-height: 44px;\n max-height: 200px;\n overflow-y: auto;\n background-color: white;\n align-items: flex-end;\n} \n.text-area-wrapper > textarea {\n border: 0;\n outline: 0;\n resize: none;\n width: 100%;\n min-height: 24px;\n max-height: 180px;\n overflow-y: auto;\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 line-height: 1.5;\n background-color: transparent;\n padding: 0;\n margin: 0;\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: fixed; /* Fixed positioning to float over content */\n bottom: 120px; /* Position relative to the viewport */\n /* left position will be set dynamically via inline style */\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 */\n color: black; /* Icon color */\n border-radius: 50%; /* Makes the background a circle */\n width: 40px; /* Circle size */\n height: 40px; /* Circle size */\n display: flex;\n justify-content: center;\n align-items: center;\n box-shadow: 0px 0px 5px rgba(0,0,0,0.3); /* Subtle shadow for better visibility */\n cursor: pointer;\n opacity: 0.9; /* Slightly transparent */\n}\n\n.loading-convo-messages-wrapper {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n width: 100%;\n position: absolute;\n z-index: 1000;\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 \n"] }]
|
|
2732
|
+
args: [{ standalone: false, selector: 'skip-chat', template: "<div class=\"chat-container\" kendoDialogContainer #topLevelDiv>\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 [itemClass]=\"{ 'item-border': true }\"\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 @if (SelectedConversation && IsSkipProcessing(dataItem)) {\n <span class=\"fa-regular fa-clock\"></span>\n }\n <div class=\"text-container\">\n @if (dataItem.ID !== SelectedConversation?.ID || !ConversationEditMode) {\n <span>{{ dataItem.Name }}</span>\n }\n @if (dataItem.ID === SelectedConversation?.ID && ConversationEditMode) {\n <textarea [(ngModel)]=\"dataItem.Name\" maxlength=\"100\"></textarea>\n }\n </div>\n @if (SelectedConversation?.ID === dataItem.ID) {\n <div class=\"edit-conversation-panel\">\n @if (!ConversationEditMode) {\n <span class=\"fa-solid fa-pen-to-square\" (click)=\"editConvo(dataItem)\"></span>\n }\n @if (!ConversationEditMode) {\n <span class=\"fa-regular fa-trash-can\" (click)=\"showDeleteConvoDialog(dataItem)\"></span>\n }\n @if (ConversationEditMode) {\n <span class=\"fa-solid fa-check\" (click)=\"saveConvoName(dataItem)\"></span>\n }\n @if (ConversationEditMode) {\n <span class=\"fa-solid fa-xmark\" (click)=\"cancelConvoEdit(dataItem)\"></span>\n }\n </div>\n }\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 <skip-split-panel\n #splitPanel\n [Mode]=\"EnableArtifactSplitView && selectedArtifact ? 'BothSides' : 'LeftOnly'\"\n [SplitRatio]=\"SplitRatio\"\n (SplitRatioChanged)=\"onSplitRatioChanged($event)\"\n [RightPanelHeaderContent]=\"artifactHeaderInfo\"\n [VersionList]=\"artifactVersionList\"\n [SelectedVersionId]=\"selectedArtifactVersionId\"\n (VersionSelected)=\"onArtifactVersionSelected($event)\"\n mjFillContainer [fillWidth]=\"false\" [fillHeight]=\"true\">\n\n <!-- Left Panel (Chat) -->\n <div left-panel class=\"conversation-wrapper\">\n <!-- Use this for reference only, but don't display - hidden via width:0, height:0 -->\n <div #AskSkipPanel style=\"width:0; height:0; overflow:hidden; position:absolute;\"></div>\n\n <div class=\"messages\" #scrollContainer (scroll)=\"checkScroll()\">\n @if ((!Messages || Messages.length ===0) && _conversationLoadComplete) {\n <div class=\"welcome-wrapper\">\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 }\n @if (!_conversationLoadComplete) {\n <div class=\"loading-convo-messages-wrapper\">\n <mj-loading text=\"Loading conversation...\" size=\"medium\"></mj-loading>\n </div>\n }\n <div class=\"messages-container\" 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 @if (_showScrollToBottomIcon && Messages && Messages.length > 0) {\n <span class=\"scroll-to-bottom-icon\"\n [style.left.px]=\"getScrollToBottomIconPosition()\"\n (click)=\"scrollToBottomAnimate()\">\n <i class=\"fas fa-arrow-down\"></i>\n </span>\n }\n </div>\n @if (SelectedConversationCurrentUserPermissionLevel === 'Owner' ||\n SelectedConversationCurrentUserPermissionLevel === 'Edit') {\n <div class=\"input-area\">\n <div class=\"input-container\">\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 class=\"button-area\">\n @if (ShowDataContextButton) {\n <button kendoButton >\n <span class=\"fa-solid fa-gear\"\n (click)=\"showDataContextDialog()\"></span>\n </button>\n }\n @if (SelectedConversation && IsSkipProcessing(SelectedConversation)) {\n <button kendoButton\n class=\"stop-button\"\n (click)=\"stopProcessing()\">\n <span class=\"fas fa-solid fa-stop\"></span>\n </button>\n }\n @else {\n <button kendoButton\n [disabled]=\"IsTextAreaEmpty()\"\n (click)=\"sendSkipMessage()\">\n <span class=\"fas fa-solid fa-arrow-up\"></span>\n </button>\n }\n @if (ShowSharingButton && SelectedConversationCurrentUserPermissionLevel === 'Owner') {\n <button kendoButton class=\"share-button\">\n <span class=\"fa-solid fa-share\"\n (click)=\"showSharingDialog()\"></span>\n </button>\n }\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n\n <!-- Right Panel (Artifact Viewer) -->\n <div right-panel>\n @if (selectedArtifact) {\n <skip-artifact-viewer\n [ArtifactID]=\"selectedArtifact.artifactId\"\n [ArtifactVersionID]=\"selectedArtifact.artifactVersionId\"\n [DataContext]=\"DataContext\"\n (NavigateToMatchingReport)=\"NavigateToMatchingReport.emit($event)\"\n (NewReportCreated)=\"NewReportCreated.emit($event)\"\n (DrillDownEvent)=\"DrillDownEvent.emit($event)\"\n (ArtifactInfoChanged)=\"onArtifactInfoChanged($event)\">\n </skip-artifact-viewer>\n }\n </div>\n </skip-split-panel>\n </div>\n</div>\n</div>\n\n@if(isDataContextDialogVisible) {\n <mj-data-context-dialog [dataContextId]=\"DataContextID\" (dialogClosed)=\"closeDataContextDialog()\" [Provider]=\"ProviderToUse\"></mj-data-context-dialog>\n}\n@if(isSharingDialogVisible && SelectedConversation && conversationResourceTypeID) {\n <kendo-dialog\n title=\"Share Conversation\"\n (close)=\"closeSharingDialog('no')\"\n [width]=\"650\"\n [height]=\"400\"\n >\n <mj-resource-permissions\n [Provider]=\"Provider\"\n [ResourceTypeID]=\"conversationResourceTypeID\"\n [ResourceRecordID]=\"SelectedConversation.ID\"\n [ExcludedRoleNames]=\"SharingExcludeRoleNames\"\n [ExcludedUserEmails]=\"SharingExcludeEmails\"\n #resourcePermissions\n >\n </mj-resource-permissions>\n <kendo-dialog-actions>\n <button kendoButton (click)=\"closeSharingDialog('yes')\" themeColor=\"primary\">\n Save\n </button>\n <button kendoButton (click)=\"closeSharingDialog('no')\">\n Cancel\n </button>\n </kendo-dialog-actions>\n </kendo-dialog>\n}\n\n@if (confirmDeleteConversationDialogOpen) {\n <kendo-dialog\n title=\"Please confirm\"\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>\n}\n\n@if (confirmMessageEditOrDeleteDialogOpen) {\n <kendo-dialog\n title=\"Please confirm\"\n (close)=\"closeMessageEditOrDeleteDialog('no')\"\n [minWidth]=\"250\"\n [width]=\"450\"\n >\n <p style=\"margin: 30px; text-align: center;\">\n Would you like to {{messageEditOrDeleteType}} this message? Doing so will result in any subsequent messages in the conversation being deleted.\n </p>\n <kendo-dialog-actions>\n <button kendoButton (click)=\"closeMessageEditOrDeleteDialog('yes')\" themeColor=\"primary\">\n Yes\n </button>\n <button kendoButton (click)=\"closeMessageEditOrDeleteDialog('no')\">\n No\n </button>\n </kendo-dialog-actions>\n </kendo-dialog>\n}", 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 overflow: hidden; /* Prevent content from expanding beyond container */\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 display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%; /* Don't exceed parent container height */\n overflow: hidden; /* Hide overflow to prevent double scrollbars */\n}\n\n.conversation-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 16px;\n background-color: #f5f7f9;\n border-bottom: 1px solid #dde4ee;\n height: 40px;\n flex-shrink: 0;\n}\n\n.conversation-title {\n font-size: 15px;\n font-weight: 500;\n color: #333;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 70%;\n}\n\n.artifact-counter-container {\n display: flex;\n align-items: center;\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: calc(100vh - 111px);\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 /*initial sizes*/\n width: 100%;\n overflow: hidden; /* Prevent container from growing beyond viewport */\n background-color: #f9f9f9;\n}\n\n.conversation-wrapper {\n display: flex;\n flex-direction: column;\n position: relative; /* This ensures child absolute elements position relative to this container */\n background-color: #f9f9f9;\n height: 100%; /* Ensure it takes full height */\n max-height: 100%; /* Don't exceed parent container height */\n flex: 1;\n overflow: auto; /* Allow content to scroll */\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 position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 5;\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 padding-bottom: 100px; /* Push the content up a bit */\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 position: relative;\n z-index: 10;\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 margin-top: 30px; /* Push questions down for spacing */\n}\n.welcome-suggested-questions-col {\n display: flex;\n margin-bottom: 10px; /* Space between rows */\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 !important; /* enable scrolling if the content overflows */\n overflow-x: hidden !important; /* 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 1 auto; /* Take up available space but don't push parent beyond size */\n height: calc(100% - 50px); /* Ensure messages container has a height */\n max-height: 100%; /* Don't exceed parent height */\n scrollbar-width: thin; /* For Firefox */\n scrollbar-color: #d3d3d3 #f8f9fa; /* Thumb color and track color */\n position: relative; /* For proper positioning of scroll icon */\n}\n\n/* For WebKit-based browsers (Chrome, Edge, Safari) */\n.messages::-webkit-scrollbar {\n width: 8px; /* Narrower scrollbar */\n background-color: #f8f9fa; /* Scrollbar track color */\n}\n\n.messages::-webkit-scrollbar-thumb {\n background-color: #d3d3d3; /* Lighter gray scrollbar thumb */\n border-radius: 4px; /* Rounded corners for the thumb */\n}\n\n.messages::-webkit-scrollbar-thumb:hover {\n background-color: #c0c0c0; /* Slightly darker gray on hover */\n}\n\n.messages::-webkit-scrollbar-track {\n background-color: #f8f9fa; /* Background of the scrollbar track */\n}\n\n/* Class for the messages container */\n.messages-container {\n min-height: 20px; /* Ensure container takes space even when empty */\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\n.message-image {\n min-width: 24px;\n}\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 display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 15px;\n padding: 10px 20px;\n position: sticky;\n bottom: 0;\n background-color: #f9f9f9;\n z-index: 10;\n}\n\n.input-container {\n width: 100%;\n max-width: 800px;\n}\n\n.button-area {\n position: absolute;\n bottom: 8px;\n right: 8px;\n display: flex;\n align-items: center;\n gap: 5px;\n}\n/* All buttons in the button area */\n.button-area > button {\n width: 28px;\n height: 28px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n min-width: 28px;\n background-color: transparent;\n border: 1px solid transparent;\n}\n\n.button-area > button:hover:not(:disabled) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.button-area > button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Stop button styling */\n.button-area > button.stop-button {\n background-color: #dc3545;\n color: white;\n border-color: #dc3545;\n}\n\n.button-area > button.stop-button:hover {\n background-color: #c82333;\n border-color: #c82333;\n}\n\n.text-area-wrapper {\n position: relative;\n display: flex;\n padding: 10px 12px;\n padding-right: 120px; /* Space for buttons */\n border: solid 1px rgba(0, 0, 0, 0.08);\n border-radius: 15px;\n min-height: 44px;\n max-height: 200px;\n overflow-y: auto;\n background-color: white;\n align-items: flex-end;\n} \n.text-area-wrapper > textarea {\n border: 0;\n outline: 0;\n resize: none;\n width: 100%;\n min-height: 24px;\n max-height: 180px;\n overflow-y: auto;\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 line-height: 1.5;\n background-color: transparent;\n padding: 0;\n margin: 0;\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: fixed; /* Fixed positioning to float over content */\n bottom: 120px; /* Position relative to the viewport */\n /* left position will be set dynamically via inline style */\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 */\n color: black; /* Icon color */\n border-radius: 50%; /* Makes the background a circle */\n width: 40px; /* Circle size */\n height: 40px; /* Circle size */\n display: flex;\n justify-content: center;\n align-items: center;\n box-shadow: 0px 0px 5px rgba(0,0,0,0.3); /* Subtle shadow for better visibility */\n cursor: pointer;\n opacity: 0.9; /* Slightly transparent */\n}\n\n.loading-convo-messages-wrapper {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n width: 100%;\n position: absolute;\n z-index: 1000;\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 \n"] }]
|
|
2729
2733
|
}], () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.Location }, { type: i0.ChangeDetectorRef }, { type: i3.MJNotificationService }, { type: i4.DialogService }], { AllowSend: [{
|
|
2730
2734
|
type: Input
|
|
2731
2735
|
}], Messages: [{
|
|
@@ -2822,5 +2826,5 @@ export class SkipChatComponent extends BaseManagedComponent {
|
|
|
2822
2826
|
type: ViewChild,
|
|
2823
2827
|
args: ['splitPanel']
|
|
2824
2828
|
}] }); })();
|
|
2825
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SkipChatComponent, { className: "SkipChatComponent", filePath: "src/lib/skip-chat/skip-chat.component.ts", lineNumber:
|
|
2829
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SkipChatComponent, { className: "SkipChatComponent", filePath: "src/lib/skip-chat/skip-chat.component.ts", lineNumber: 48 }); })();
|
|
2826
2830
|
//# sourceMappingURL=skip-chat.component.js.map
|