@liip/liipgpt 3.5.1 → 3.5.7

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 (39) hide show
  1. package/button/liipgpt-button.iife.js +16 -9
  2. package/chat/liipgpt-chat.iife.js +27 -20
  3. package/config/index.cjs +186 -169
  4. package/config/index.d.ts +140 -26
  5. package/config/index.js +186 -169
  6. package/configurator/_app/env.js +1 -1
  7. package/configurator/_app/immutable/chunks/B4H9KbzH.js +1 -0
  8. package/configurator/_app/immutable/chunks/B7xCvPKw.js +143 -0
  9. package/configurator/_app/immutable/chunks/BsVnBobk.js +1 -0
  10. package/configurator/_app/immutable/chunks/CRn_Qu4-.js +1 -0
  11. package/configurator/_app/immutable/chunks/CZca1tVB.js +89 -0
  12. package/configurator/_app/immutable/chunks/{DEv5Ueqk.js → CabPM0Ap.js} +9 -2
  13. package/configurator/_app/immutable/chunks/{C4ZlxhXX.js → CgMo4dFz.js} +1 -1
  14. package/configurator/_app/immutable/chunks/{KzflMZHZ.js → D6zVGLUW.js} +1 -1
  15. package/configurator/_app/immutable/chunks/{Bk8mXcqs.js → di8DjX5b.js} +1 -1
  16. package/configurator/_app/immutable/chunks/h2Kch-uX.js +1 -0
  17. package/configurator/_app/immutable/chunks/hTLSLo2s.js +16 -0
  18. package/configurator/_app/immutable/entry/{app.D_RHUi4W.js → app.Ce62vasD.js} +2 -2
  19. package/configurator/_app/immutable/entry/start.CdYStGvR.js +1 -0
  20. package/configurator/_app/immutable/nodes/{0.v8uXkmdW.js → 0.DJJ_NjgH.js} +3 -3
  21. package/configurator/_app/immutable/nodes/{1.BywwMVvR.js → 1.BmbCK-Nv.js} +1 -1
  22. package/configurator/_app/immutable/nodes/{2.CYMrLahN.js → 2.C49eq5Js.js} +6 -6
  23. package/configurator/_app/immutable/nodes/3.DQg0gEvm.js +954 -0
  24. package/configurator/_app/version.json +1 -1
  25. package/configurator/index.html +6 -6
  26. package/configurator/sidebar.html +6 -6
  27. package/index.cjs +355 -182
  28. package/index.d.ts +511 -106
  29. package/index.js +355 -182
  30. package/package.json +1 -1
  31. package/configurator/_app/immutable/chunks/BHbOfRmz.js +0 -1
  32. package/configurator/_app/immutable/chunks/C3rp2svQ.js +0 -1
  33. package/configurator/_app/immutable/chunks/CIVgedTF.js +0 -89
  34. package/configurator/_app/immutable/chunks/COHS-6f9.js +0 -1
  35. package/configurator/_app/immutable/chunks/D35Ghe-e.js +0 -1
  36. package/configurator/_app/immutable/chunks/DWCi1FJT.js +0 -143
  37. package/configurator/_app/immutable/chunks/DyPOCJF2.js +0 -16
  38. package/configurator/_app/immutable/entry/start.CNc5-8nb.js +0 -1
  39. package/configurator/_app/immutable/nodes/3.BfE5HLrS.js +0 -954
package/index.cjs CHANGED
@@ -64,6 +64,7 @@ var __export = (target, all) => {
64
64
  var exports_client = {};
65
65
  __export(exports_client, {
66
66
  userDataResponseSchema: () => userDataResponseSchema,
67
+ selectedTopicSchema: () => selectedTopicSchema,
67
68
  routeSchema: () => routeSchema,
68
69
  predefinedQuestionsResponseSchema: () => predefinedQuestionsResponseSchema,
69
70
  predefinedQuestionSchema: () => predefinedQuestionSchema,
@@ -842,8 +843,7 @@ function createDOMPurify() {
842
843
  ;
843
844
  else if (value) {
844
845
  return false;
845
- } else
846
- ;
846
+ }
847
847
  return true;
848
848
  };
849
849
  const _isBasicCustomElement = function _isBasicCustomElement2(tagName) {
@@ -5990,6 +5990,12 @@ class ChatResultBuilder {
5990
5990
  retrievalQuestion: question
5991
5991
  }));
5992
5992
  }
5993
+ setNoFeedback() {
5994
+ this.store.update((current) => ({
5995
+ ...current,
5996
+ noFeedback: true
5997
+ }));
5998
+ }
5993
5999
  getReadableStore() {
5994
6000
  return { subscribe: this.store.subscribe };
5995
6001
  }
@@ -16977,7 +16983,7 @@ function finalize(ctx, schema) {
16977
16983
  result.$schema = "http://json-schema.org/draft-07/schema#";
16978
16984
  } else if (ctx.target === "draft-04") {
16979
16985
  result.$schema = "http://json-schema.org/draft-04/schema#";
16980
- } else if (ctx.target === "openapi-3.0") {} else {}
16986
+ } else if (ctx.target === "openapi-3.0") {}
16981
16987
  if (ctx.external?.uri) {
16982
16988
  const id = ctx.external.registry.get(schema)?.id;
16983
16989
  if (!id)
@@ -17225,7 +17231,7 @@ var literalProcessor = (schema, ctx, json, _params) => {
17225
17231
  if (val === undefined) {
17226
17232
  if (ctx.unrepresentable === "throw") {
17227
17233
  throw new Error("Literal `undefined` cannot be represented in JSON Schema");
17228
- } else {}
17234
+ }
17229
17235
  } else if (typeof val === "bigint") {
17230
17236
  if (ctx.unrepresentable === "throw") {
17231
17237
  throw new Error("BigInt literals cannot be represented in JSON Schema");
@@ -19587,7 +19593,165 @@ var searchReferenceSchema = exports_external.object({
19587
19593
  language: exports_external.string().optional()
19588
19594
  }).extend(referenceContentSchema.shape);
19589
19595
 
19596
+ // src/lib/config/schemas/translations-schema.ts
19597
+ var errorTranslationSchema = exports_external.object({
19598
+ blocked: exports_external.string(),
19599
+ maintenance: exports_external.string(),
19600
+ "rate-limit": exports_external.string(),
19601
+ "server-error": exports_external.string(),
19602
+ "too-short": exports_external.string(),
19603
+ "too-long": exports_external.string(),
19604
+ "quota-reached": exports_external.string(),
19605
+ aborted: exports_external.string(),
19606
+ "sse-error": exports_external.string(),
19607
+ "client-error": exports_external.string(),
19608
+ "unexpected-call": exports_external.string(),
19609
+ "incomplete-error": exports_external.string(),
19610
+ "feedback-failed": exports_external.string(),
19611
+ "speech-not-supported": exports_external.string(),
19612
+ "speech-transcription-failed": exports_external.string(),
19613
+ "speech-no-text-detected": exports_external.string(),
19614
+ "speech-microphone-access-denied": exports_external.string(),
19615
+ "pii-detected": exports_external.string()
19616
+ });
19617
+ var piiTranslationSchema = exports_external.object({
19618
+ email: exports_external.string(),
19619
+ creditCard: exports_external.string(),
19620
+ ahv: exports_external.string(),
19621
+ phoneSwiss: exports_external.string(),
19622
+ phoneInternational: exports_external.string(),
19623
+ swissPassport: exports_external.string(),
19624
+ longNumber: exports_external.string()
19625
+ });
19626
+ var chatSelectorTranslationSchema = exports_external.object({
19627
+ name: exports_external.string(),
19628
+ namePlural: exports_external.string().optional(),
19629
+ intro: exports_external.string().optional(),
19630
+ placeholder: exports_external.string(),
19631
+ values: exports_external.record(exports_external.string(), exports_external.string())
19632
+ });
19633
+ var popupAction = exports_external.object({
19634
+ action: exports_external.string(),
19635
+ label: exports_external.string(),
19636
+ type: exports_external.enum(["primary", "secondary"]).optional()
19637
+ });
19638
+ var popup = exports_external.object({
19639
+ hash: exports_external.string(),
19640
+ title: exports_external.string(),
19641
+ content: exports_external.string(),
19642
+ actions: exports_external.array(popupAction).optional()
19643
+ });
19644
+ var translationSchema = exports_external.object({
19645
+ introductionTitle: exports_external.string(),
19646
+ introductionDisclaimer: exports_external.string().optional(),
19647
+ termsInvitationToConsent: exports_external.string().optional(),
19648
+ chatInputPlaceholder: exports_external.string(),
19649
+ chatInputPlaceholderListening: exports_external.string().optional(),
19650
+ chatInputSubmit: exports_external.string(),
19651
+ chatInputAbort: exports_external.string(),
19652
+ chatInputStartListening: exports_external.string(),
19653
+ chatInputStopListening: exports_external.string(),
19654
+ referenceLink: exports_external.string(),
19655
+ referencesDisplay: exports_external.string(),
19656
+ referencesHide: exports_external.string(),
19657
+ referencesTitle: exports_external.string(),
19658
+ referencesFurtherTitle: exports_external.string(),
19659
+ newChat: exports_external.string(),
19660
+ maintenanceModeError: exports_external.string(),
19661
+ messageBotLoading: exports_external.string(),
19662
+ messageBotError: exports_external.string(),
19663
+ messageBotDefaultError: exports_external.string(),
19664
+ noResultsFound: exports_external.string(),
19665
+ chatFooterText: exports_external.string().optional(),
19666
+ scrollToBottom: exports_external.string(),
19667
+ openButtonTitle: exports_external.string().optional(),
19668
+ openButtonDescription: exports_external.string().optional(),
19669
+ openMenu: exports_external.string(),
19670
+ openInfo: exports_external.string(),
19671
+ aboutThisChat: exports_external.string().optional(),
19672
+ closeMenu: exports_external.string(),
19673
+ closeChat: exports_external.string(),
19674
+ close: exports_external.string(),
19675
+ send: exports_external.string(),
19676
+ thankYouForFeedback: exports_external.string(),
19677
+ giveFeedback: exports_external.string(),
19678
+ sendFeedback: exports_external.string(),
19679
+ feedbackFormTitle: exports_external.string(),
19680
+ feedbackFormMessage: exports_external.string(),
19681
+ feedbackFormMessagePlaceholder: exports_external.string(),
19682
+ feedbackFormEmail: exports_external.string(),
19683
+ feedbackFormEmailPlaceholder: exports_external.string(),
19684
+ askQuestionAgain: exports_external.string(),
19685
+ answerGood: exports_external.string(),
19686
+ answerBad: exports_external.string(),
19687
+ classificationSubmit: exports_external.string(),
19688
+ classificationThankYou: exports_external.string(),
19689
+ classificationTitle: exports_external.string(),
19690
+ selectLanguage: exports_external.string(),
19691
+ languageChanged: exports_external.string(),
19692
+ selectColorTheme: exports_external.string(),
19693
+ lightMode: exports_external.string(),
19694
+ darkMode: exports_external.string(),
19695
+ ariaMainNavigation: exports_external.string(),
19696
+ ariaMainNavigationRegion: exports_external.string(),
19697
+ ariaGotoMainNavigation: exports_external.string(),
19698
+ ariaAskQuestion: exports_external.string(),
19699
+ ariaAskQuestionRegion: exports_external.string(),
19700
+ ariaNotifications: exports_external.string(),
19701
+ ariaPredefinedQuestions: exports_external.string(),
19702
+ ariaPredefinedQuestionsRegion: exports_external.string(),
19703
+ ariaChatHistory: exports_external.string(),
19704
+ ariaOpenChat: exports_external.string(),
19705
+ ariaQuestionFromYou: exports_external.string(),
19706
+ ariaAnswerFromBot: exports_external.string(),
19707
+ ariaLastAnswerNavigation: exports_external.string(),
19708
+ ariaQuestionSent: exports_external.string(),
19709
+ ariaAnswerReady: exports_external.string(),
19710
+ ariaAnswerFinished: exports_external.string(),
19711
+ ariaAskQuestionAgain: exports_external.string(),
19712
+ ariaAnswerGood: exports_external.string(),
19713
+ ariaAnswerBad: exports_external.string(),
19714
+ ariaReferenceSource: exports_external.string(),
19715
+ ariaGiveFeedback: exports_external.string(),
19716
+ ariaLanguageChanged: exports_external.string(),
19717
+ ariaLightSelected: exports_external.string(),
19718
+ ariaDarkSelected: exports_external.string(),
19719
+ ariaSettings: exports_external.string(),
19720
+ ariaSettingsRegion: exports_external.string(),
19721
+ ariaReferencesRegion: exports_external.string(),
19722
+ ariaOpensInNewTab: exports_external.string(),
19723
+ ariaPageTitle: exports_external.string(),
19724
+ ariaCloseWithEsc: exports_external.string(),
19725
+ ariaInfoTitle: exports_external.string(),
19726
+ ariaFlyoutRegion: exports_external.string(),
19727
+ ariaSelected: exports_external.string(),
19728
+ ariaUnselected: exports_external.string(),
19729
+ ariaAllSelected: exports_external.string(),
19730
+ ariaAllUnselected: exports_external.string(),
19731
+ ariaAllReseted: exports_external.string(),
19732
+ popups: exports_external.array(popup).optional(),
19733
+ termsAcceptButton: exports_external.string().optional(),
19734
+ termsReadButton: exports_external.string().optional(),
19735
+ selectors: exports_external.record(exports_external.string(), chatSelectorTranslationSchema).optional(),
19736
+ hideSettings: exports_external.string(),
19737
+ showSettings: exports_external.string(),
19738
+ chooseAtLeastOneOption: exports_external.string(),
19739
+ selectAll: exports_external.string(),
19740
+ selectNone: exports_external.string(),
19741
+ resetToDefaults: exports_external.string(),
19742
+ messageTooLong: exports_external.string(),
19743
+ changeTopic: exports_external.string()
19744
+ });
19745
+ var allLanguages = ["en", "de", "fr", "it"];
19746
+ var languagesSchema = exports_external.enum(allLanguages);
19747
+ var translationsSchema = exports_external.partialRecord(languagesSchema, translationSchema.partial().extend({
19748
+ selectors: exports_external.record(exports_external.string(), chatSelectorTranslationSchema).optional()
19749
+ }));
19750
+ var errorTranslationsSchema = exports_external.record(languagesSchema, errorTranslationSchema);
19751
+ var piiTranslationsSchema = exports_external.record(languagesSchema, piiTranslationSchema);
19752
+
19590
19753
  // src/lib/config/schemas/chat-message-embed-schema.ts
19754
+ var translatableStringSchema = exports_external.partialRecord(languagesSchema, exports_external.string());
19591
19755
  var buttonsComponentSchema = exports_external.object({
19592
19756
  componentName: exports_external.literal("buttons"),
19593
19757
  data: exports_external.object({
@@ -19605,12 +19769,15 @@ var buttonsComponentSchema = exports_external.object({
19605
19769
  var comboboxComponentSchema = exports_external.object({
19606
19770
  componentName: exports_external.literal("combobox"),
19607
19771
  data: exports_external.object({
19608
- caption: exports_external.string().optional(),
19609
- placeholder: exports_external.string(),
19772
+ caption: translatableStringSchema.optional(),
19773
+ placeholder: translatableStringSchema,
19610
19774
  values: exports_external.array(exports_external.object({
19611
- label: exports_external.string(),
19612
- value: exports_external.string()
19613
- }))
19775
+ label: translatableStringSchema,
19776
+ value: exports_external.string(),
19777
+ metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
19778
+ })),
19779
+ removeComponentAfterValueSelection: exports_external.boolean().optional(),
19780
+ selectorKey: exports_external.string().optional()
19614
19781
  })
19615
19782
  });
19616
19783
  var alvaInitComponentSchema = exports_external.object({
@@ -19626,7 +19793,8 @@ var chatMessageEmbedBaseSchema = exports_external.object({
19626
19793
  id: exports_external.string().optional(),
19627
19794
  time: exports_external.string().optional(),
19628
19795
  hideAvatar: exports_external.boolean().optional(),
19629
- noSectionPadding: exports_external.boolean().optional()
19796
+ noSectionPadding: exports_external.boolean().optional(),
19797
+ hideChatInput: exports_external.boolean().optional()
19630
19798
  });
19631
19799
  var chatMessageEmbedSchema = exports_external.intersection(exports_external.discriminatedUnion("componentName", [
19632
19800
  buttonsComponentSchema,
@@ -19647,7 +19815,9 @@ var routeSchema = exports_external.discriminatedUnion("name", [
19647
19815
  }),
19648
19816
  exports_external.object({
19649
19817
  name: exports_external.literal("chat-page"),
19650
- query: exports_external.string()
19818
+ query: exports_external.string(),
19819
+ predefinedQuestionId: exports_external.string().optional(),
19820
+ switchQuestionId: exports_external.string().optional()
19651
19821
  })
19652
19822
  ]);
19653
19823
  var chatMessageUserSchema = exports_external.object({
@@ -19702,7 +19872,8 @@ var botMessageBaseSchema = exports_external.object({
19702
19872
  }),
19703
19873
  references: chatReferencesSchema,
19704
19874
  errors: exports_external.array(chatErrorsSchema),
19705
- retrievalQuestion: exports_external.string().optional()
19875
+ retrievalQuestion: exports_external.string().optional(),
19876
+ noFeedback: exports_external.boolean().optional()
19706
19877
  });
19707
19878
  var chatMessageBotStreamingSchema = botMessageBaseSchema.extend({
19708
19879
  state: exports_external.enum(["streaming", "done"])
@@ -19795,6 +19966,7 @@ var svgsSchema = exports_external.partialRecord(exports_external.enum([
19795
19966
  "model",
19796
19967
  "checkbox",
19797
19968
  "warning",
19969
+ "topic",
19798
19970
  "headerLogo",
19799
19971
  "embedAvatar"
19800
19972
  ]), exports_external.string());
@@ -19948,162 +20120,6 @@ var themeSchema2 = exports_external.object({
19948
20120
  fineGrained: fineGrainedThemeSchema.optional()
19949
20121
  });
19950
20122
 
19951
- // src/lib/config/schemas/translations-schema.ts
19952
- var errorTranslationSchema = exports_external.object({
19953
- blocked: exports_external.string(),
19954
- maintenance: exports_external.string(),
19955
- "rate-limit": exports_external.string(),
19956
- "server-error": exports_external.string(),
19957
- "too-short": exports_external.string(),
19958
- "too-long": exports_external.string(),
19959
- "quota-reached": exports_external.string(),
19960
- aborted: exports_external.string(),
19961
- "sse-error": exports_external.string(),
19962
- "client-error": exports_external.string(),
19963
- "unexpected-call": exports_external.string(),
19964
- "incomplete-error": exports_external.string(),
19965
- "feedback-failed": exports_external.string(),
19966
- "speech-not-supported": exports_external.string(),
19967
- "speech-transcription-failed": exports_external.string(),
19968
- "speech-no-text-detected": exports_external.string(),
19969
- "speech-microphone-access-denied": exports_external.string(),
19970
- "pii-detected": exports_external.string()
19971
- });
19972
- var piiTranslationSchema = exports_external.object({
19973
- email: exports_external.string(),
19974
- creditCard: exports_external.string(),
19975
- ahv: exports_external.string(),
19976
- phoneSwiss: exports_external.string(),
19977
- phoneInternational: exports_external.string(),
19978
- swissPassport: exports_external.string(),
19979
- longNumber: exports_external.string()
19980
- });
19981
- var chatSelectorTranslationSchema = exports_external.object({
19982
- name: exports_external.string(),
19983
- namePlural: exports_external.string().optional(),
19984
- intro: exports_external.string().optional(),
19985
- placeholder: exports_external.string(),
19986
- values: exports_external.record(exports_external.string(), exports_external.string())
19987
- });
19988
- var popupAction = exports_external.object({
19989
- action: exports_external.string(),
19990
- label: exports_external.string(),
19991
- type: exports_external.enum(["primary", "secondary"]).optional()
19992
- });
19993
- var popup = exports_external.object({
19994
- hash: exports_external.string(),
19995
- title: exports_external.string(),
19996
- content: exports_external.string(),
19997
- actions: exports_external.array(popupAction).optional()
19998
- });
19999
- var translationSchema = exports_external.object({
20000
- introductionTitle: exports_external.string(),
20001
- introductionDisclaimer: exports_external.string().optional(),
20002
- termsInvitationToConsent: exports_external.string().optional(),
20003
- chatInputPlaceholder: exports_external.string(),
20004
- chatInputPlaceholderListening: exports_external.string().optional(),
20005
- chatInputSubmit: exports_external.string(),
20006
- chatInputAbort: exports_external.string(),
20007
- chatInputStartListening: exports_external.string(),
20008
- chatInputStopListening: exports_external.string(),
20009
- referenceLink: exports_external.string(),
20010
- referencesDisplay: exports_external.string(),
20011
- referencesHide: exports_external.string(),
20012
- referencesTitle: exports_external.string(),
20013
- referencesFurtherTitle: exports_external.string(),
20014
- newChat: exports_external.string(),
20015
- maintenanceModeError: exports_external.string(),
20016
- messageBotLoading: exports_external.string(),
20017
- messageBotError: exports_external.string(),
20018
- messageBotDefaultError: exports_external.string(),
20019
- noResultsFound: exports_external.string(),
20020
- chatFooterText: exports_external.string().optional(),
20021
- scrollToBottom: exports_external.string(),
20022
- openButtonTitle: exports_external.string().optional(),
20023
- openButtonDescription: exports_external.string().optional(),
20024
- openMenu: exports_external.string(),
20025
- openInfo: exports_external.string(),
20026
- aboutThisChat: exports_external.string().optional(),
20027
- closeMenu: exports_external.string(),
20028
- closeChat: exports_external.string(),
20029
- close: exports_external.string(),
20030
- send: exports_external.string(),
20031
- thankYouForFeedback: exports_external.string(),
20032
- giveFeedback: exports_external.string(),
20033
- sendFeedback: exports_external.string(),
20034
- feedbackFormTitle: exports_external.string(),
20035
- feedbackFormMessage: exports_external.string(),
20036
- feedbackFormMessagePlaceholder: exports_external.string(),
20037
- feedbackFormEmail: exports_external.string(),
20038
- feedbackFormEmailPlaceholder: exports_external.string(),
20039
- askQuestionAgain: exports_external.string(),
20040
- answerGood: exports_external.string(),
20041
- answerBad: exports_external.string(),
20042
- classificationSubmit: exports_external.string(),
20043
- classificationThankYou: exports_external.string(),
20044
- classificationTitle: exports_external.string(),
20045
- selectLanguage: exports_external.string(),
20046
- languageChanged: exports_external.string(),
20047
- selectColorTheme: exports_external.string(),
20048
- lightMode: exports_external.string(),
20049
- darkMode: exports_external.string(),
20050
- ariaMainNavigation: exports_external.string(),
20051
- ariaMainNavigationRegion: exports_external.string(),
20052
- ariaGotoMainNavigation: exports_external.string(),
20053
- ariaAskQuestion: exports_external.string(),
20054
- ariaAskQuestionRegion: exports_external.string(),
20055
- ariaNotifications: exports_external.string(),
20056
- ariaPredefinedQuestions: exports_external.string(),
20057
- ariaPredefinedQuestionsRegion: exports_external.string(),
20058
- ariaChatHistory: exports_external.string(),
20059
- ariaOpenChat: exports_external.string(),
20060
- ariaQuestionFromYou: exports_external.string(),
20061
- ariaAnswerFromBot: exports_external.string(),
20062
- ariaLastAnswerNavigation: exports_external.string(),
20063
- ariaQuestionSent: exports_external.string(),
20064
- ariaAnswerReady: exports_external.string(),
20065
- ariaAnswerFinished: exports_external.string(),
20066
- ariaAskQuestionAgain: exports_external.string(),
20067
- ariaAnswerGood: exports_external.string(),
20068
- ariaAnswerBad: exports_external.string(),
20069
- ariaReferenceSource: exports_external.string(),
20070
- ariaGiveFeedback: exports_external.string(),
20071
- ariaLanguageChanged: exports_external.string(),
20072
- ariaLightSelected: exports_external.string(),
20073
- ariaDarkSelected: exports_external.string(),
20074
- ariaSettings: exports_external.string(),
20075
- ariaSettingsRegion: exports_external.string(),
20076
- ariaReferencesRegion: exports_external.string(),
20077
- ariaOpensInNewTab: exports_external.string(),
20078
- ariaPageTitle: exports_external.string(),
20079
- ariaCloseWithEsc: exports_external.string(),
20080
- ariaInfoTitle: exports_external.string(),
20081
- ariaFlyoutRegion: exports_external.string(),
20082
- ariaSelected: exports_external.string(),
20083
- ariaUnselected: exports_external.string(),
20084
- ariaAllSelected: exports_external.string(),
20085
- ariaAllUnselected: exports_external.string(),
20086
- ariaAllReseted: exports_external.string(),
20087
- popups: exports_external.array(popup).optional(),
20088
- termsAcceptButton: exports_external.string().optional(),
20089
- termsReadButton: exports_external.string().optional(),
20090
- selectors: exports_external.record(exports_external.string(), chatSelectorTranslationSchema).optional(),
20091
- hideSettings: exports_external.string(),
20092
- showSettings: exports_external.string(),
20093
- chooseAtLeastOneOption: exports_external.string(),
20094
- selectAll: exports_external.string(),
20095
- selectNone: exports_external.string(),
20096
- resetToDefaults: exports_external.string(),
20097
- messageTooLong: exports_external.string()
20098
- });
20099
- var allLanguages = ["en", "de", "fr", "it"];
20100
- var languagesSchema = exports_external.enum(allLanguages);
20101
- var translationsSchema = exports_external.partialRecord(languagesSchema, translationSchema.partial().extend({
20102
- selectors: exports_external.record(exports_external.string(), chatSelectorTranslationSchema).optional()
20103
- }));
20104
- var errorTranslationsSchema = exports_external.record(languagesSchema, errorTranslationSchema);
20105
- var piiTranslationsSchema = exports_external.record(languagesSchema, piiTranslationSchema);
20106
-
20107
20123
  // src/lib/config/schemas/chat-config-schema.ts
20108
20124
  var classificationOptionSchema = exports_external.object({
20109
20125
  label: exports_external.string(),
@@ -20119,8 +20135,10 @@ var menuItemSchema = exports_external.object({
20119
20135
  target: exports_external.enum(["_blank", "_self"]).optional()
20120
20136
  });
20121
20137
  var predefinedQuestionSchema = exports_external.object({
20138
+ id: exports_external.string(),
20122
20139
  label: exports_external.string().nullable(),
20123
- question: exports_external.string()
20140
+ question: exports_external.string(),
20141
+ switchQuestionId: exports_external.string().optional()
20124
20142
  });
20125
20143
  var classificationConfigSchema = exports_external.object({
20126
20144
  impact: classificationOptionSchema.optional(),
@@ -20142,6 +20160,10 @@ var userDataResponseSchema = exports_external.union([
20142
20160
  })
20143
20161
  ]);
20144
20162
  var fullTranslations = exports_external.partialRecord(languagesSchema, translationSchema);
20163
+ var selectedTopicSchema = exports_external.object({
20164
+ label: exports_external.string(),
20165
+ placeholder: exports_external.string()
20166
+ });
20145
20167
  var chatSelectorConfigSchema = exports_external.object({
20146
20168
  settingName: exports_external.string(),
20147
20169
  iconName: exports_external.string(),
@@ -20161,7 +20183,7 @@ var messageAdditionsSchema = exports_external.object({
20161
20183
  user: messageAdditionSchema.optional()
20162
20184
  });
20163
20185
  var completeChatConfigSchema = exports_external.object({
20164
- showPredefinedQuestions: exports_external.boolean(),
20186
+ forcePredefinedQuestions: exports_external.boolean().optional(),
20165
20187
  showOverallFeedbackButton: exports_external.boolean(),
20166
20188
  showOverallFeedbackEmail: exports_external.boolean(),
20167
20189
  showCloseChatButton: exports_external.boolean(),
@@ -20194,7 +20216,8 @@ var completeChatConfigSchema = exports_external.object({
20194
20216
  extractSelectors: exports_external.string().array().optional()
20195
20217
  }),
20196
20218
  messageAdditions: messageAdditionsSchema.optional(),
20197
- contextVersion: exports_external.number().optional()
20219
+ contextVersion: exports_external.number().optional(),
20220
+ selectedTopicResetPredefinedQuestionId: exports_external.string().optional()
20198
20221
  });
20199
20222
  var chatConfigSchema = completeChatConfigSchema.partial();
20200
20223
  var chatConfigSchemaWithLegacyThemeName = exports_external.intersection(chatConfigSchema, exports_external.object({
@@ -20810,6 +20833,130 @@ class ChatResponse {
20810
20833
  }
20811
20834
  }
20812
20835
 
20836
+ // src/lib/client/utils/fake-typing.ts
20837
+ var TYPING_MIN_CHUNKS = 5;
20838
+ var MS_PER_CHAR = 7;
20839
+ var MIN_DELAY_MS = 8;
20840
+ var MAX_DELAY_MS = 160;
20841
+ var START_DELAY_MS = 750;
20842
+ var tokenize = (text2) => {
20843
+ const tokens = [];
20844
+ let i = 0;
20845
+ while (i < text2.length) {
20846
+ const ch = text2[i];
20847
+ if (ch === "<") {
20848
+ const end = text2.indexOf(">", i);
20849
+ if (end !== -1) {
20850
+ tokens.push({ type: "tag", value: text2.slice(i, end + 1) });
20851
+ i = end + 1;
20852
+ continue;
20853
+ }
20854
+ }
20855
+ if (/\s/.test(ch)) {
20856
+ let j2 = i;
20857
+ while (j2 < text2.length && /\s/.test(text2[j2]))
20858
+ j2++;
20859
+ tokens.push({ type: "space", value: text2.slice(i, j2) });
20860
+ i = j2;
20861
+ continue;
20862
+ }
20863
+ let j = i;
20864
+ while (j < text2.length && !/\s/.test(text2[j]) && text2[j] !== "<")
20865
+ j++;
20866
+ tokens.push({ type: "word", value: text2.slice(i, j) });
20867
+ i = j;
20868
+ }
20869
+ return tokens;
20870
+ };
20871
+ var splitForTyping = (text2) => {
20872
+ const tokens = tokenize(text2);
20873
+ const emissions = [];
20874
+ let current = "";
20875
+ let hasWord = false;
20876
+ for (const token of tokens) {
20877
+ if (token.type === "space" && hasWord) {
20878
+ emissions.push(current);
20879
+ current = token.value;
20880
+ hasWord = false;
20881
+ } else {
20882
+ current += token.value;
20883
+ if (token.type === "word")
20884
+ hasWord = true;
20885
+ }
20886
+ }
20887
+ if (current)
20888
+ emissions.push(current);
20889
+ return emissions;
20890
+ };
20891
+ var delayForChunk = (chunk) => Math.max(MIN_DELAY_MS, Math.min(MAX_DELAY_MS, chunk.length * MS_PER_CHAR));
20892
+
20893
+ class FakeTypingQueue {
20894
+ onText;
20895
+ queue = [];
20896
+ timeoutId = null;
20897
+ isProcessing = false;
20898
+ constructor(onText) {
20899
+ this.onText = onText;
20900
+ }
20901
+ ingestText(text2) {
20902
+ const chunks = splitForTyping(text2);
20903
+ if (chunks.length >= TYPING_MIN_CHUNKS) {
20904
+ for (const chunk of chunks) {
20905
+ this.queue.push({ kind: "text", chunk, delayMs: delayForChunk(chunk) });
20906
+ }
20907
+ this.kickoff();
20908
+ return;
20909
+ }
20910
+ this.runAfterTyping(() => this.onText(text2));
20911
+ }
20912
+ runAfterTyping(fn) {
20913
+ if (this.queue.length === 0 && !this.isProcessing) {
20914
+ fn();
20915
+ return;
20916
+ }
20917
+ this.queue.push({ kind: "fn", fn });
20918
+ this.kickoff();
20919
+ }
20920
+ runWithWarmup(fn) {
20921
+ this.queue.push({ kind: "fn", fn });
20922
+ this.kickoff();
20923
+ }
20924
+ clear() {
20925
+ if (this.timeoutId !== null) {
20926
+ clearTimeout(this.timeoutId);
20927
+ this.timeoutId = null;
20928
+ }
20929
+ this.queue = [];
20930
+ this.isProcessing = false;
20931
+ }
20932
+ kickoff() {
20933
+ if (this.isProcessing || this.timeoutId !== null)
20934
+ return;
20935
+ this.timeoutId = setTimeout(() => {
20936
+ this.timeoutId = null;
20937
+ this.processNext();
20938
+ }, START_DELAY_MS);
20939
+ }
20940
+ processNext() {
20941
+ const item = this.queue.shift();
20942
+ if (!item) {
20943
+ this.isProcessing = false;
20944
+ return;
20945
+ }
20946
+ this.isProcessing = true;
20947
+ if (item.kind === "text") {
20948
+ this.onText(item.chunk);
20949
+ this.timeoutId = setTimeout(() => {
20950
+ this.timeoutId = null;
20951
+ this.processNext();
20952
+ }, item.delayMs);
20953
+ } else {
20954
+ item.fn();
20955
+ this.processNext();
20956
+ }
20957
+ }
20958
+ }
20959
+
20813
20960
  // src/lib/client/search-response.ts
20814
20961
  class SearchResponse {
20815
20962
  results;
@@ -20876,6 +21023,7 @@ class LiipGPTClientPrimitive {
20876
21023
  (await subscription).close();
20877
21024
  };
20878
21025
  const subscription = new FutureValue;
21026
+ const typingQueue = new FakeTypingQueue((chunk) => chatResultBuilder.updateText(chunk));
20879
21027
  (async () => {
20880
21028
  const metadata = await this.internalData.metadata;
20881
21029
  if (metadata.mode === "maintenance") {
@@ -20890,10 +21038,13 @@ class LiipGPTClientPrimitive {
20890
21038
  feature: options2.features?.join(","),
20891
21039
  referrer: options2.referrer,
20892
21040
  ...options2.selectorValues ?? {},
21041
+ ...options2.predefinedQuestionId ? { predefinedQuestionId: options2.predefinedQuestionId } : {},
21042
+ ...options2.switchQuestionId ? { switchQuestionId: options2.switchQuestionId } : {},
20893
21043
  chat: "true",
20894
21044
  version: "2"
20895
21045
  }, {
20896
21046
  onClose: () => {
21047
+ typingQueue.clear();
20897
21048
  chatResultBuilder.finishMessage();
20898
21049
  readyForFeedback.resolve();
20899
21050
  content.cleanup();
@@ -20902,7 +21053,7 @@ class LiipGPTClientPrimitive {
20902
21053
  const data = d;
20903
21054
  switch (data.type) {
20904
21055
  case "error":
20905
- chatResultBuilder.pushError(data.error);
21056
+ typingQueue.runAfterTyping(() => chatResultBuilder.pushError(data.error));
20906
21057
  break;
20907
21058
  case "id":
20908
21059
  if (data.for === "request") {
@@ -20920,29 +21071,39 @@ class LiipGPTClientPrimitive {
20920
21071
  }
20921
21072
  break;
20922
21073
  case "text":
20923
- chatResultBuilder.updateText(data.text);
21074
+ typingQueue.ingestText(data.text);
20924
21075
  break;
20925
21076
  case "done":
20926
21077
  case "answer-done":
20927
- chatResultBuilder.finishMessage();
20928
- readyForFeedback.resolve();
20929
- subscription.then((s2) => s2.close());
21078
+ typingQueue.runAfterTyping(() => {
21079
+ chatResultBuilder.finishMessage();
21080
+ readyForFeedback.resolve();
21081
+ subscription.then((s2) => s2.close());
21082
+ });
20930
21083
  break;
20931
21084
  case "unexpected-call":
20932
- console.error("unexpected-call:", data);
20933
- chatResultBuilder.pushError("unexpected-call");
21085
+ typingQueue.runAfterTyping(() => {
21086
+ console.error("unexpected-call:", data);
21087
+ chatResultBuilder.pushError("unexpected-call");
21088
+ });
20934
21089
  break;
20935
21090
  case "mapped-reference":
20936
- chatResultBuilder.addMappedReference(data.reference);
21091
+ typingQueue.runAfterTyping(() => chatResultBuilder.addMappedReference(data.reference));
20937
21092
  break;
20938
21093
  case "reference":
20939
- chatResultBuilder.addOldReference(data.reference);
21094
+ typingQueue.runAfterTyping(() => chatResultBuilder.addOldReference(data.reference));
20940
21095
  break;
20941
21096
  case "retrieval-question":
20942
- chatResultBuilder.updateRetrievalQuestion(data.question);
21097
+ typingQueue.runAfterTyping(() => chatResultBuilder.updateRetrievalQuestion(data.question));
21098
+ break;
21099
+ case "no-feedback":
21100
+ typingQueue.runAfterTyping(() => chatResultBuilder.setNoFeedback());
21101
+ break;
21102
+ case "component":
21103
+ typingQueue.runWithWarmup(() => options2.onEmbed?.(data));
20943
21104
  break;
20944
21105
  }
20945
- options2.onMessage?.(data);
21106
+ typingQueue.runAfterTyping(() => options2.onMessage?.(data));
20946
21107
  },
20947
21108
  onError: (event) => {
20948
21109
  console.error(" sse-error:", event);
@@ -21005,6 +21166,18 @@ class LiipGPTClientPrimitive {
21005
21166
  });
21006
21167
  }
21007
21168
  }
21169
+ async userAction(userAction, options2 = {}) {
21170
+ const metadata = await this.internalData.metadata;
21171
+ if (metadata.mode !== "ready")
21172
+ throw new Error("Can not post user action unless we are in ready mode");
21173
+ const request = {
21174
+ uID: metadata.userId,
21175
+ cID: options2.conversationId,
21176
+ lang: options2.lang,
21177
+ userAction
21178
+ };
21179
+ await this.internalData.restClient.postData("/assistant/userAction", request);
21180
+ }
21008
21181
  async search(query, options2 = {}) {
21009
21182
  const metadata = await this.internalData.metadata;
21010
21183
  const uID = metadata.mode === "ready" ? metadata.userId : undefined;