@digipair/skill-web-chatbot 0.91.0-0 → 0.91.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.
Files changed (136) hide show
  1. package/SAP-icons.cjs.js +2489 -0
  2. package/SAP-icons.cjs2.js +2489 -0
  3. package/SAP-icons.esm.js +2482 -0
  4. package/SAP-icons.esm2.js +2482 -0
  5. package/Tableau10-558cc280.cjs.js +9 -0
  6. package/Tableau10-558cc280.esm.js +7 -0
  7. package/arc-d1f6357e.cjs.js +88 -0
  8. package/arc-d1f6357e.esm.js +86 -0
  9. package/array-2ff2c7a6.cjs.js +7 -0
  10. package/array-2ff2c7a6.esm.js +5 -0
  11. package/blockDiagram-5dc23a45.cjs.js +2921 -0
  12. package/blockDiagram-5dc23a45.esm.js +2919 -0
  13. package/c4Diagram-1e775db3.cjs.js +4387 -0
  14. package/c4Diagram-1e775db3.esm.js +4385 -0
  15. package/channel-ebbc4130.cjs.js +9 -0
  16. package/channel-ebbc4130.esm.js +7 -0
  17. package/classDiagram-f52caa06.cjs.js +209 -0
  18. package/classDiagram-f52caa06.esm.js +207 -0
  19. package/classDiagram-v2-640c694e.cjs.js +401 -0
  20. package/classDiagram-v2-640c694e.esm.js +399 -0
  21. package/clone-afc2f047.cjs.js +10 -0
  22. package/clone-afc2f047.esm.js +8 -0
  23. package/createText-03b82060.cjs.js +2936 -0
  24. package/createText-03b82060.esm.js +2933 -0
  25. package/edges-16357fde.cjs.js +1998 -0
  26. package/edges-16357fde.esm.js +1981 -0
  27. package/erDiagram-c7ff1bec.cjs.js +1807 -0
  28. package/erDiagram-c7ff1bec.esm.js +1805 -0
  29. package/flowDb-9a89ea33.cjs.js +5542 -0
  30. package/flowDb-9a89ea33.esm.js +5538 -0
  31. package/flowDiagram-aadb13b0.cjs.js +1351 -0
  32. package/flowDiagram-aadb13b0.esm.js +1349 -0
  33. package/flowDiagram-v2-f2119625.cjs.js +31 -0
  34. package/flowDiagram-v2-f2119625.esm.js +29 -0
  35. package/flowchart-elk-definition-cf813a97.cjs.js +50257 -0
  36. package/flowchart-elk-definition-cf813a97.esm.js +50255 -0
  37. package/ganttDiagram-3c2fde2b.cjs.js +3710 -0
  38. package/ganttDiagram-3c2fde2b.esm.js +3708 -0
  39. package/gitGraphDiagram-c3a0619c.cjs.js +3820 -0
  40. package/gitGraphDiagram-c3a0619c.esm.js +3818 -0
  41. package/graph-0ee63739.cjs.js +961 -0
  42. package/graph-0ee63739.esm.js +938 -0
  43. package/index-bb6d8841.cjs.js +648 -0
  44. package/index-bb6d8841.esm.js +646 -0
  45. package/index.cjs.d.ts +1 -0
  46. package/index.cjs.js +17 -0
  47. package/index.cjs2.js +60723 -0
  48. package/index.esm.js +1 -0
  49. package/index.esm2.js +60574 -0
  50. package/infoDiagram-2f5c50c0.cjs.js +460 -0
  51. package/infoDiagram-2f5c50c0.esm.js +458 -0
  52. package/init-f9637058.cjs.js +17 -0
  53. package/init-f9637058.esm.js +15 -0
  54. package/journeyDiagram-14fe341a.cjs.js +1061 -0
  55. package/journeyDiagram-14fe341a.esm.js +1059 -0
  56. package/katex-d90b6d29.cjs.js +25690 -0
  57. package/katex-d90b6d29.esm.js +25688 -0
  58. package/layout-fd473db2.cjs.js +1626 -0
  59. package/layout-fd473db2.esm.js +1619 -0
  60. package/libs/engine/src/index.d.ts +2 -0
  61. package/libs/engine/src/lib/alias.interface.d.ts +9 -0
  62. package/libs/engine/src/lib/engine.d.ts +13 -0
  63. package/libs/engine/src/lib/pins-settings.interface.d.ts +15 -0
  64. package/libs/skill-web-chatbot/src/lib/chat.element.d.ts +28 -0
  65. package/libs/skill-web-chatbot/src/lib/common.data.d.ts +1 -0
  66. package/libs/skill-web-chatbot/src/lib/config.d.ts +9 -0
  67. package/libs/skill-web-chatbot/src/lib/digipair-full.data.d.ts +1 -0
  68. package/libs/skill-web-chatbot/src/lib/digipair-full.element.d.ts +36 -0
  69. package/libs/skill-web-chatbot/src/lib/digipair.data.d.ts +1 -0
  70. package/libs/skill-web-chatbot/src/lib/digipair.element.d.ts +44 -0
  71. package/libs/skill-web-chatbot/src/lib/inputs.element.d.ts +10 -0
  72. package/libs/skill-web-chatbot/src/lib/message.interface.d.ts +10 -0
  73. package/libs/skill-web-chatbot/src/lib/pins/chatbot.actions.d.ts +1 -0
  74. package/libs/skill-web-chatbot/src/lib/tools/css-selector.d.ts +1 -0
  75. package/line-24d93f1b.cjs.js +34 -0
  76. package/line-24d93f1b.esm.js +32 -0
  77. package/linear-9bcf74c4.cjs.js +537 -0
  78. package/linear-9bcf74c4.esm.js +531 -0
  79. package/mindmap-definition-9399c7e6.cjs.js +20489 -0
  80. package/mindmap-definition-9399c7e6.esm.js +20487 -0
  81. package/ordinal-5695958c.cjs.js +331 -0
  82. package/ordinal-5695958c.esm.js +329 -0
  83. package/package.json +7 -22
  84. package/path-428ebac9.cjs.js +317 -0
  85. package/path-428ebac9.esm.js +314 -0
  86. package/pieDiagram-828dae43.cjs.js +951 -0
  87. package/pieDiagram-828dae43.esm.js +949 -0
  88. package/quadrantDiagram-5fa00455.cjs.js +2410 -0
  89. package/quadrantDiagram-5fa00455.esm.js +2408 -0
  90. package/requirementDiagram-03163dc4.cjs.js +2267 -0
  91. package/requirementDiagram-03163dc4.esm.js +2265 -0
  92. package/sankeyDiagram-52ec8976.cjs.js +1848 -0
  93. package/sankeyDiagram-52ec8976.esm.js +1846 -0
  94. package/sequenceDiagram-b517d154.cjs.js +5949 -0
  95. package/sequenceDiagram-b517d154.esm.js +5947 -0
  96. package/stateDiagram-fca82b5b.cjs.js +283 -0
  97. package/stateDiagram-fca82b5b.esm.js +281 -0
  98. package/stateDiagram-v2-ed04200a.cjs.js +373 -0
  99. package/stateDiagram-v2-ed04200a.esm.js +371 -0
  100. package/styles-11e81fdd.cjs.js +3944 -0
  101. package/styles-11e81fdd.esm.js +3940 -0
  102. package/styles-cacbff60.cjs.js +2120 -0
  103. package/styles-cacbff60.esm.js +2111 -0
  104. package/styles-e75131e4.cjs.js +671 -0
  105. package/styles-e75131e4.esm.js +661 -0
  106. package/svgDrawCommon-ecc5f780.cjs.js +68 -0
  107. package/svgDrawCommon-ecc5f780.esm.js +60 -0
  108. package/timeline-definition-4ee9bff4.cjs.js +1161 -0
  109. package/timeline-definition-4ee9bff4.esm.js +1159 -0
  110. package/xychartDiagram-e5e6b652.cjs.js +3150 -0
  111. package/xychartDiagram-e5e6b652.esm.js +3148 -0
  112. package/.swcrc +0 -28
  113. package/README.md +0 -7
  114. package/eslint.config.mjs +0 -22
  115. package/rollup.config.cjs +0 -28
  116. package/src/digipair__engine.d.ts +0 -2
  117. package/src/handlebars.d.ts +0 -1
  118. package/src/index.html +0 -18
  119. package/src/lib/chat.element.ts +0 -603
  120. package/src/lib/common.data.ts +0 -1
  121. package/src/lib/config.ts +0 -30
  122. package/src/lib/digipair-full.data.ts +0 -101
  123. package/src/lib/digipair-full.element.ts +0 -358
  124. package/src/lib/digipair.data.ts +0 -103
  125. package/src/lib/digipair.element.ts +0 -446
  126. package/src/lib/inputs.element.ts +0 -46
  127. package/src/lib/mermaid.d.ts +0 -1
  128. package/src/lib/message.interface.ts +0 -10
  129. package/src/lib/pins/chatbot.actions.ts +0 -32
  130. package/src/lib/tools/css-selector.ts +0 -12
  131. package/tsconfig.json +0 -13
  132. package/tsconfig.lib.json +0 -19
  133. /package/{src/index.d.ts → index.d.ts} +0 -0
  134. /package/{src/index.ts → libs/skill-web-chatbot/src/index.d.ts} +0 -0
  135. /package/{src/schema.fr.json → schema.fr.json} +0 -0
  136. /package/{src/schema.json → schema.json} +0 -0
@@ -1,603 +0,0 @@
1
- import mermaid from 'mermaid/dist/mermaid.esm.min.mjs';
2
- import { LitElement, TemplateResult, css, html, nothing } from 'lit';
3
- import { customElement, property, query, state } from 'lit/decorators.js';
4
- import { unsafeHTML } from 'lit/directives/unsafe-html.js';
5
- import * as showdown from 'showdown';
6
- import { InputsElement } from './inputs.element';
7
- import { WRITTING_IMAGE } from './common.data';
8
- import './inputs.element';
9
-
10
- @customElement('digipair-chatbot-chat')
11
- export class ChatElement extends LitElement {
12
- @property({ type: Boolean })
13
- loading!: boolean;
14
-
15
- @property({ type: Array })
16
- messages!: any[];
17
-
18
- @property({ type: Object })
19
- currentBoost: any;
20
-
21
- @property({ type: Object })
22
- context: any;
23
-
24
- @property({ type: Array })
25
- get inputs(): { [key: string]: any }[] {
26
- return this.inputsElement?.values || [];
27
- }
28
-
29
- @property()
30
- loadingStep!: string;
31
-
32
- @query('#messageInput')
33
- private messageInput!: HTMLInputElement;
34
-
35
- @query('digipair-chatbot-inputs')
36
- private inputsElement!: InputsElement;
37
-
38
- private previousMessages = '';
39
- private converter!: showdown.Converter;
40
-
41
- static override styles = [
42
- css`
43
- /* Pour Chrome et Edge */
44
- .container::-webkit-scrollbar {
45
- width: 8px; /* Largeur de la barre de défilement */
46
- background-color: transparent; /* Couleur de fond du rail de la barre de défilement */
47
- }
48
-
49
- .container::-webkit-scrollbar-thumb {
50
- background-color: #bfc1c3;
51
- border-radius: 10px; /* Pour rendre la barre de défilement arrondie */
52
- background-clip: padding-box;
53
- border: 2px solid transparent; /* Espace entre la barre de défilement et son rail */
54
- }
55
-
56
- .container::-webkit-scrollbar-track {
57
- background-color: transparent; /* Couleur de fond de la zone de défilement */
58
- }
59
- .container {
60
- position: absolute;
61
- top: 0;
62
- bottom: 70px;
63
- left: 0;
64
- right: 0;
65
- padding: 20px;
66
- overflow-y: scroll;
67
- margin-top: 1px;
68
- margin-bottom: 2px;
69
- margin-right: 3px;
70
- }
71
-
72
- .container > section {
73
- overflow: auto;
74
- }
75
- .container > section::-webkit-scrollbar {
76
- height: 8px; /* Largeur de la barre de défilement */
77
- background-color: transparent; /* Couleur de fond du rail de la barre de défilement */
78
- }
79
- .container > section::-webkit-scrollbar-thumb {
80
- background-color: #bfc1c3;
81
- border-radius: 10px; /* Pour rendre la barre de défilement arrondie */
82
- background-clip: padding-box;
83
- border: 2px solid transparent; /* Espace entre la barre de défilement et son rail */
84
- }
85
- .container > section::-webkit-scrollbar-track {
86
- background-color: transparent; /* Couleur de fond de la zone de défilement */
87
- }
88
-
89
- .assistant,
90
- .user {
91
- max-width: 70%; /* Largeur maximale des bulles de chat */
92
- padding: 10px 15px;
93
- margin-bottom: 10px;
94
- border-radius: 20px;
95
- line-height: 1.4;
96
- }
97
-
98
- .assistant {
99
- background-color: var(
100
- --digipair-color-primary,
101
- #52dfdb
102
- ); /* Couleur de fond des messages de l'assistant */
103
- color: var(
104
- --digipair-color-text-primary,
105
- #242e3b
106
- ); /* Couleur du texte des messages de l'assistant */
107
- align-self: flex-start;
108
- margin-right: auto;
109
- }
110
-
111
- .user {
112
- background-color: var(--digipair-color-secondary, #242e3b);
113
- color: var(
114
- --digipair-color-text-secondary,
115
- #ffffff
116
- ); /* Couleur du texte des messages de l'utilisateur */
117
- align-self: flex-end;
118
- margin-left: auto;
119
- }
120
-
121
- .assistant a {
122
- color: var(--digipair-color-text-primary, #242e3b);
123
- }
124
-
125
- .user a {
126
- color: var(--digipair-color-text-secondary, #ffffff);
127
- }
128
-
129
- .input-container {
130
- position: absolute;
131
- bottom: 0px;
132
- right: 0;
133
- left: 0;
134
- height: 50px;
135
- margin-top: 0px;
136
- padding-top: 10px;
137
- padding-left: 10px;
138
- padding-bottom: 10px;
139
- border-radius: 20px 5px 0px 20px;
140
- border: 1px solid rgba(112, 183, 253, 0.3);
141
- }
142
-
143
- .input-container input {
144
- outline: none;
145
- width: 250px;
146
- border-top: none;
147
- border-left: none;
148
- border-right: none;
149
- border-bottom: 1px solid #bababa;
150
- background-color: transparent;
151
- margin-right: 6px;
152
- padding-bottom: 0px;
153
- }
154
-
155
- .button {
156
- margin-left: 5px;
157
- }
158
- .button:not(.disabled) {
159
- cursor: pointer;
160
- }
161
- .button:hover:not(.disabled) {
162
- color: rgb(112, 183, 253);
163
- }
164
- .button.disabled {
165
- color: rgb(220 220 220);
166
- }
167
-
168
- .input {
169
- position: absolute;
170
- top: 0;
171
- bottom: 5px;
172
- left: 8px;
173
- right: 40px;
174
- margin-top: 5px;
175
- margin-left: 4px;
176
- margin-bottom: 5px;
177
- }
178
-
179
- #messageInput {
180
- width: 100%;
181
- height: 45px;
182
- border: none;
183
- outline: none;
184
- resize: none;
185
- background-color: white;
186
- color: black;
187
- }
188
- #messageInput::-webkit-scrollbar {
189
- width: 8px; /* Largeur de la barre de défilement */
190
- background-color: transparent; /* Couleur de fond du rail de la barre de défilement */
191
- }
192
- #messageInput::-webkit-scrollbar-thumb {
193
- background-color: #bfc1c3;
194
- border-radius: 10px; /* Pour rendre la barre de défilement arrondie */
195
- background-clip: padding-box;
196
- border: 2px solid transparent; /* Espace entre la barre de défilement et son rail */
197
- }
198
- #messageInput::-webkit-scrollbar-track {
199
- background-color: transparent; /* Couleur de fond de la zone de défilement */
200
- }
201
-
202
- p {
203
- margin: 0;
204
- }
205
-
206
- [name='microphone'] {
207
- position: absolute;
208
- right: 10px;
209
- top: 12px;
210
- }
211
-
212
- [name='begin'] {
213
- position: absolute;
214
- right: 10px;
215
- top: 40px;
216
- }
217
-
218
- .container.with-boost {
219
- bottom: 105px;
220
- }
221
-
222
- .input-container.with-boost {
223
- height: 85px;
224
- }
225
-
226
- .input .assistant {
227
- height: 18px;
228
- max-width: 100%;
229
- width: 235px;
230
- overflow: hidden;
231
- opacity: 0.3;
232
- }
233
-
234
- .input .assistant p {
235
- text-overflow: ellipsis;
236
- white-space: nowrap;
237
- overflow: hidden;
238
- }
239
-
240
- .button.action {
241
- float: right;
242
- }
243
-
244
- .loading {
245
- overflow: visible !important;
246
- }
247
-
248
- .loading .step {
249
- color: #bfc1c3;
250
- margin-left: 45px;
251
- padding-top: 15px;
252
- display: block;
253
- }
254
-
255
- .loading img {
256
- float: left;
257
- }
258
-
259
- .sources {
260
- margin-top: 10px;
261
- }
262
-
263
- .sources > .source {
264
- background-color: rgba(255, 255, 255, 0.5);
265
- font-size: 12px;
266
- color: rgb(60, 60, 60);
267
- padding: 0px 8px;
268
- display: inline-block;
269
- transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0s;
270
- transform: scale(0.95);
271
- margin-bottom: 4px;
272
- border-radius: 5px;
273
- text-decoration: none;
274
- cursor: default;
275
- }
276
-
277
- .sources > .source.has-link {
278
- background-color: rgba(255, 255, 255, 0.9);
279
- cursor: pointer;
280
- }
281
-
282
- .sources > .source.has-link:hover {
283
- transform: scale(1);
284
- }
285
-
286
- .trust-bar {
287
- position: relative;
288
- width: 100%;
289
- height: 3px;
290
- background-color: rgba(82, 223, 219, 0.2);
291
- border-radius: 5px;
292
- overflow: hidden;
293
- margin-bottom: 5px;
294
- }
295
-
296
- .trust-bar-fill {
297
- height: 100%;
298
- background-color: green;
299
- transition: width 0.3s ease;
300
- border-radius: 5px;
301
- }
302
-
303
- .boosts {
304
- margin-top: 10px;
305
- margin-bottom: 5px;
306
- }
307
-
308
- .boosts.loading {
309
- display: none;
310
- }
311
-
312
- .boosts > .boost {
313
- background-color: rgba(255, 255, 255, 0.7);
314
- border-radius: 20px;
315
- font-size: 10px;
316
- color: rgb(60, 60, 60);
317
- padding: 4px 14px;
318
- cursor: pointer;
319
- display: inline-block;
320
- transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0s;
321
- transform: scale(0.95);
322
- margin-bottom: 1px;
323
- }
324
-
325
- .boosts > .boost:hover {
326
- transform: scale(1);
327
- }
328
- `,
329
- ];
330
-
331
- override connectedCallback(): void {
332
- super.connectedCallback();
333
-
334
- mermaid.initialize({ startOnLoad: false });
335
- showdown.extension('mermaid', function () {
336
- return [
337
- {
338
- type: 'lang',
339
- filter: function (text: string) {
340
- return text.replace(/```mermaid([^`]+)```/g, (_match, diagramCode) => {
341
- return '<div class="mermaid">' + diagramCode + '</div>';
342
- });
343
- },
344
- },
345
- ];
346
- });
347
- this.converter = new showdown.Converter({
348
- simplifiedAutoLink: true,
349
- strikethrough: true,
350
- tables: true,
351
- tasklists: true,
352
- smoothLivePreview: true,
353
- });
354
- this.converter.addExtension('mermaid' as any, {} as any);
355
- }
356
-
357
- private async addMessage(content: string): Promise<void> {
358
- if (this.currentBoost && !this.currentBoost.prompt) {
359
- this.dispatchEvent(new CustomEvent('prompt', { detail: { prompt: '' } }));
360
- return;
361
- }
362
-
363
- this.messageInput.value = '';
364
- this.dispatchEvent(new CustomEvent('prompt', { detail: { prompt: content } }));
365
- }
366
-
367
- private scrollDown(): void {
368
- const container = this.renderRoot.querySelector('.container') as Element;
369
- container.scrollTop = container.scrollHeight;
370
- }
371
-
372
- private keypressManagement(event: any) {
373
- if (event.key !== 'Enter' || event.shiftKey) {
374
- this.requestUpdate();
375
- return;
376
- }
377
-
378
- if (
379
- (this.currentBoost && !this.canAnswerToMessageBoost(this.currentBoost)) ||
380
- this.loading ||
381
- ((!this.messageInput || this.messageInput.value === '') &&
382
- (!this.currentBoost || this.currentBoost.required)) ||
383
- !this.hasInputsValues()
384
- ) {
385
- this.requestUpdate();
386
- return;
387
- }
388
-
389
- event.preventDefault();
390
- this.addMessage(this.messageInput.value.trim());
391
- }
392
-
393
- private hasInputsValues(): boolean {
394
- return this.inputsElement.values.reduce(
395
- (acc, { value, required }) => (required && value === '' ? false : acc),
396
- true,
397
- );
398
- }
399
-
400
- private answer(message: any): void {
401
- const boost = message.boost;
402
-
403
- this.dispatchEvent(
404
- new CustomEvent('boost', {
405
- detail: {
406
- parent_history: message.uuid,
407
- parent_conversation: message.parent_conversation || message.uuid,
408
- ...boost,
409
- },
410
- }),
411
- );
412
- }
413
-
414
- private canAnswerToMessageBoost(boost: any): boolean {
415
- if (!boost) {
416
- return false;
417
- }
418
-
419
- if (boost.checkUrl && !boost.checkUrl.test(window.location.href)) {
420
- return false;
421
- }
422
-
423
- if (boost.selector && !document.querySelector(boost.selector)) {
424
- return false;
425
- }
426
-
427
- return true;
428
- }
429
-
430
- private executeBoost(boost: any): void {
431
- this.dispatchEvent(
432
- new CustomEvent('executeboost', {
433
- detail: boost,
434
- }),
435
- );
436
- }
437
-
438
- private getAvailableBoosts(boosts: any[]): any[] {
439
- return boosts
440
- .filter(
441
- (boost: any) =>
442
- boost &&
443
- (boost.standalone || boost.selector) &&
444
- (boost.standalone || document.querySelectorAll(boost.selector).length === 1),
445
- )
446
- .map(boost => ({
447
- ...boost,
448
- context: {
449
- element: boost.standalone ? null : boost.selector,
450
- },
451
- checkUrl: new RegExp(boost.url),
452
- }))
453
- .filter(boost => boost.checkUrl.test(window.location.href));
454
- }
455
-
456
- pushMessage(message: any): void {
457
- this.messages.push(message);
458
- this.requestUpdate();
459
- }
460
-
461
- override render(): TemplateResult {
462
- if (this.previousMessages !== JSON.stringify(this.messages)) {
463
- this.previousMessages = JSON.stringify(this.messages);
464
- setTimeout(() => this.scrollDown(), 1);
465
- }
466
-
467
- setTimeout(() => {
468
- this.renderRoot.querySelectorAll('.mermaid:not([data-processed=true]').forEach(async el => {
469
- const { svg } = await mermaid.render('graphDiv', el.textContent);
470
- el.innerHTML = svg;
471
- el.setAttribute('data-processed', 'true');
472
- });
473
- }, 1);
474
-
475
- return html`
476
- <section class="container ${this.currentBoost ? 'with-boost' : ''}">
477
- ${this.messages.map(
478
- message =>
479
- html`<section class="${message.role}">
480
- ${this.canAnswerToMessageBoost(message.boost)
481
- ? html`<ui5-icon
482
- name="response"
483
- class="button action"
484
- @click=${() => this.answer(message)}
485
- ></ui5-icon>`
486
- : nothing}
487
- ${unsafeHTML(
488
- this.converter.makeHtml(
489
- message.role === 'user'
490
- ? message.content.replace(/\n/g, ' \n')
491
- : message.content.replace(
492
- /```markdown([\s\S]*?)```/g,
493
- (_: unknown, group: string) => group,
494
- ),
495
- ),
496
- )}
497
- </section>`,
498
- )}
499
- <digipair-chatbot-inputs
500
- @change=${() => this.requestUpdate()}
501
- .inputs=${this.currentBoost?.inputs || []}
502
- .context=${{ ...this.context, ...(this.currentBoost?.context || {}) }}
503
- ></digipair-chatbot-inputs>
504
-
505
- ${!this.loading
506
- ? nothing
507
- : html`<section class="loading">
508
- <img src=${WRITTING_IMAGE} /><span class="step">${this.loadingStep}</span>
509
- </section>`}
510
- </section>
511
-
512
- <section class="input-container ${this.currentBoost ? 'with-boost' : ''}">
513
- <section class="input">
514
- ${this.currentBoost?.parent_history
515
- ? html`
516
- <section class="assistant">
517
- ${this.messages
518
- .filter(message => message.uuid === this.currentBoost?.parent_history)
519
- .map(
520
- message => html`
521
- <ui5-icon
522
- name="decline"
523
- class="button action"
524
- @click=${() =>
525
- this.dispatchEvent(new CustomEvent('boost', { detail: null }))}
526
- ></ui5-icon>
527
- ${unsafeHTML(
528
- this.converter.makeHtml(
529
- message.content.replace(
530
- /```markdown([\s\S]*?)```/g,
531
- (_: unknown, group: string) => group,
532
- ),
533
- ),
534
- )}
535
-
536
- <section class="sources">
537
- ${message.sources?.map(
538
- (source: any) => html`
539
- <a
540
- class="source ${source.document_url ? 'has-link' : ''}"
541
- href=${source.document_url ?? 'javascript:'}
542
- target="_blank"
543
- >
544
- ${source.document_name}
545
- <div class="trust-bar">
546
- <div
547
- class="trust-bar-fill"
548
- style="width: ${source.rank * 100}%;"
549
- ></div>
550
- </div>
551
- </a>
552
- `,
553
- )}
554
- </section>
555
-
556
- <section class="actions ${this.loading ? 'loading' : ''}">
557
- ${this.getAvailableBoosts(message.boosts || []).map(
558
- boost => html`
559
- <span class="action" @click=${() => this.executeBoost(boost)}
560
- >${boost.summary}</span
561
- >
562
- `,
563
- )}
564
- </section>
565
- `,
566
- )}
567
- </section>
568
- `
569
- : nothing}
570
- <textarea
571
- id="messageInput"
572
- value=""
573
- placeholder=${this.currentBoost && !this.currentBoost.prompt
574
- ? ''
575
- : 'Saisir votre message'}
576
- @keydown=${() => this.requestUpdate()}
577
- @keyup=${(event: Event) => this.keypressManagement(event)}
578
- ?disabled=${this.loading || (this.currentBoost && !this.currentBoost.prompt)}
579
- ></textarea>
580
- </section>
581
-
582
- <ui5-icon
583
- name="begin"
584
- class="button ${(this.currentBoost && !this.canAnswerToMessageBoost(this.currentBoost)) ||
585
- this.loading ||
586
- ((!this.messageInput || this.messageInput.value === '') &&
587
- (!this.currentBoost || this.currentBoost.required)) ||
588
- !this.hasInputsValues()
589
- ? 'disabled'
590
- : ''}"
591
- @click=${() =>
592
- (this.currentBoost && !this.canAnswerToMessageBoost(this.currentBoost)) ||
593
- this.loading ||
594
- ((!this.messageInput || this.messageInput.value === '') &&
595
- (!this.currentBoost || this.currentBoost.required)) ||
596
- !this.hasInputsValues()
597
- ? void 0
598
- : this.addMessage(this.messageInput.value.trim())}
599
- ></ui5-icon>
600
- </section>
601
- `;
602
- }
603
- }
@@ -1 +0,0 @@
1
- export const WRITTING_IMAGE = 'data:image/gif;base64,R0lGODlhKAAoAPD/AHp6ent7eyH/C05FVFNDQVBFMi4wAwEAAAAh+QQFAgACACwAAAAAKAAoAAACSJSPqcvtD6OctNqLs968+w+G4kiW5omm6sqOAPMqAQYEdlLfiB3EFN/bAQ853W94APqAswoyyUs8Kz7potrKarfcrvcLDoszBQAh+QQJAgAAACwAAAAAHQAbAAACGoSPqcvtD6OctNqLs968+w+G4kiW5omm6noUACH5BAkCAAIALAkAFQAWAAYAAAIblGCZqMYQYoNSxXuZwSFxbmXLV3lXgzmNtyoFACH5BAUCAAIALAkAFQAWAAYAAAIdlGCZqAcIgmxxJilrVtieDnIY84Ge0VEe2QRNUwAAIfkECQIAAgAsGgAVAAUABQAAAgiUEgLG3RvAKgAh+QQJAgACACwaABQABQAFAAACCVQQgsHNy8wRBQAh+QQJAgACACwaABQABQAFAAACCFQegHt2IEwsACH5BAkCAAIALBoAEwAFAAUAAAIIVAJ2uAebnCgAIfkECQIAAgAsGgASAAUABQAAAghUbhegx5qCKAAh+QQJAgACACwaABEABQAFAAACCBRuoafdIJooACH5BAkCAAIALBoAEAAFAAUAAAIHlBAXy93SCgAh+QQJAgACACwUAA8ACwAMAAACE5RvAYjhwQR4kNFq3Yq8+w+GYgEAIfkECQIAAgAsEgAOAA0ADAAAAhqUj4Fr4cCac1GAqeqE1fYIcNrUYeJijsG5FAAh+QQJAgACACwSAA4ADQAMAAACF5R/oYG42tKLElIDrt7G3vmBkTgq2VUAACH5BAkCAAIALBIADQANAA0AAAIalH+hgKjfDnghGlrtZbr7L0xKh2mlRXmTVwAAIfkECQIAAgAsEgAMAA0ADQAAAhqUf6HI6pxcgAY4QE0AOPsPVpMnkVcmjVCZFQAh+QQJAgACACwSAAsADQAOAAACHJR/oMjhztIL0UxQDQg4+w+G1uNd2URVT3emWQEAIfkECQIAAgAsEgALAA0ADQAAAhqUf6GAqN/SC1EGVg3OvHvxbNHETVQFQOWZFQAh+QQJAgACACwSAAoADQANAAACG5R/oMgQH9iBTxoHrXlA+w9Oi0Z5VGeVGoZaBQAh+QQJAgACACwSAAoADQAMAAACGpR/oYEIy5p5SyYF7NW8i5BxVGRBoQSRzcgVACH5BAkCAAIALBIACQANAAwAAAIZlI8RyKLazINxriiAArh77U3dxFVP2ZxdAQAh+QQJAgACACwLAAkAFAASAAACI5SPaQDqF2J8DshA1cU52dmFSNCIUFSamyms5sex8kzX9n0XACH5BAkCAAIALAkACQAWABEAAAInlI+JEOoZYnxUTuqYxM9iAHDdJkJSWB5WkxpeC8emrLJyhMaknrcFACH5BAkCAAIALAkACQAWABEAAAIrlI+Jod0BmXMgyqnsxSmCWQVfMk4al1koCZXrAbjvTGdVLZy0JaM83sIVAAAh+QQJAgACACwJAAoAFgAQAAACKZSPecHqyeKbIIZpkQU48gNUk7CNTtWYTqq27gtrUowG31vC9RXb91sAACH5BAkCAAIALAkACgAWAA8AAAIplI95AaGfgmRQTICmrDp3qGFHI4JThTYOyrbuCzNlfMFGaAsqlZO5UAAAIfkECQIAAgAsCQALABYADgAAAieUjxBoGsBSmGjaeCxtGpueWZDnLMzjperKti4LvoJmvtpoX3K2GwUAIfkECQIAAgAsCQALABYADQAAAieUfxABKNscWvRQJi2NQtX8QIiHgV0giebKtm6rvsaFymH8XpyMvwUAIfkECQIAAgAsCQAKABYADQAAAimUjwCB7Rcie9TIAFKs4uqYUcrybZyzgOeTrmvrIlcYd14tpBhuLHRdAAAh+QQJAgACACwJAAoAFgAMAAACJpR/oYDtqQJ7VETVwKRgtVtZm3EF4VOeT4dJpppFI5zCkGdDM1wAACH5BAkCAAIALAkACQAWAAwAAAImlI8RyJ0KnDyqTllDvK1uCixcE1rjY2mnUELeCQnZt2biKse4UQAAIfkEBQIAAgAsCQAJABYACwAAAiSUjxDInQGdPBCCKWvErV78cZShbKKnLVyZBuHEupVIzsJLGwUAIfkECQIAAAAsAAAAAB8AFAAAAheEj6nL7Q+jnLTai7PevPsPhuJIlmZXAAAh+QQJAgACACwJAAoAFgAKAAACI5R/oYHtudibIkrqgAI0usB1S4gJwFmNpRlpysouBlm2cCMXACH5BAkCAAIALAkACgAWAAsAAAIklH8Qi+232JsmSqcCaJbawG1eRz3ZVSoimkZiyZEwYr0zBGwFACH5BAkCAAIALAkACgAWAAwAAAInlI8QyI0BlzMKsBisU/HhiUlGpDlY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';
package/src/lib/config.ts DELETED
@@ -1,30 +0,0 @@
1
- import { config as configEngine } from '@digipair/engine';
2
- import * as actionsChatbot from './pins/chatbot.actions';
3
-
4
- configEngine.set('LIBRARIES', {
5
- '@digipair/actions-chatbot': actionsChatbot,
6
- });
7
-
8
- type CONFIG_KEY = 'API_URL' | 'COMMON_EXPERIENCE' | 'BASE_URL' | 'LIBRARIES' | 'VERSIONS';
9
- export const _config = {
10
- API_URL: window.location.origin,
11
- COMMON_EXPERIENCE: 'common',
12
- };
13
- export const config = {
14
- set: (key: CONFIG_KEY, value: any) => {
15
- if (key === 'LIBRARIES') {
16
- configEngine.set('LIBRARIES', {
17
- '@digipair/actions-chatbot': actionsChatbot,
18
- ...value,
19
- });
20
- return;
21
- }
22
-
23
- if (['BASE_URL', 'VERSIONS'].indexOf(key) >= 0) {
24
- configEngine.set('BASE_URL', value);
25
- return;
26
- }
27
-
28
- _config[key as 'API_URL' | 'COMMON_EXPERIENCE'] = value;
29
- },
30
- };