ai12z 3.18.1-alpha.0 → 3.18.1-alpha.2

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 (120) hide show
  1. package/dist/cjs/ai12z-beacon.cjs.entry.js +1 -1
  2. package/dist/cjs/ai12z-bot.cjs.entry.js +156 -55
  3. package/dist/cjs/ai12z-category_2.cjs.entry.js +2 -2
  4. package/dist/cjs/ai12z-chat-message.cjs.entry.js +1 -1
  5. package/dist/cjs/ai12z-chat_2.cjs.entry.js +9 -9
  6. package/dist/cjs/ai12z-container.cjs.entry.js +2 -2
  7. package/dist/cjs/ai12z-cta.cjs.entry.js +11 -11
  8. package/dist/cjs/ai12z-knowledge-box.cjs.entry.js +3 -3
  9. package/dist/cjs/{beacon-JlWjtnTj.js → beacon-Dzm5dknI.js} +12 -20
  10. package/dist/cjs/{botHelpers-AxnPKelf.js → botHelpers-B_lFspU6.js} +41 -43
  11. package/dist/cjs/{ctaHelpers-DUkpEv0V.js → ctaHelpers-CFn_XVtl.js} +48 -22
  12. package/dist/cjs/{index-DrVymXMa.js → index-DN109Evg.js} +460 -137
  13. package/dist/cjs/index.cjs.js +5 -5
  14. package/dist/cjs/item-list.cjs.entry.js +1 -1
  15. package/dist/cjs/library.cjs.js +1 -1
  16. package/dist/cjs/loader.cjs.js +1 -1
  17. package/dist/cjs/{parseHelper-CNiHFgWF.js → parseHelper-DGQ2ETjm.js} +1 -1
  18. package/dist/cjs/search-results-page.cjs.entry.js +2 -2
  19. package/dist/collection/components/ai12z-bot/ai12z-bot.js +153 -51
  20. package/dist/collection/components/ai12z-bot/ai12z-chatbot.css +1 -0
  21. package/dist/collection/components/ai12z-cta/ai12z-cta.js +10 -10
  22. package/dist/collection/components/ai12z-cta/components/Chat.js +5 -5
  23. package/dist/collection/utils/beacon.js +3 -0
  24. package/dist/collection/utils/botHelpers/botHelpers.js +41 -43
  25. package/dist/collection/utils/ctaHelpers.js +47 -22
  26. package/dist/collection/utils/referralDomain/engine-map.js +7 -18
  27. package/dist/components/ai12z-beacon.js +1 -1
  28. package/dist/components/ai12z-bot.js +1 -1
  29. package/dist/components/ai12z-chat-message.js +1 -1
  30. package/dist/components/ai12z-chat.js +1 -1
  31. package/dist/components/ai12z-container.js +1 -1
  32. package/dist/components/ai12z-cta.js +1 -1
  33. package/dist/components/ai12z-form.js +1 -1
  34. package/dist/components/ai12z-inline-search.js +1 -1
  35. package/dist/components/ai12z-input-form.js +1 -1
  36. package/dist/components/ai12z-knowledge-box.js +1 -1
  37. package/dist/components/ai12z-search-panel.js +1 -1
  38. package/dist/components/audio-recorder.js +1 -1
  39. package/dist/components/dynamic-form.js +1 -1
  40. package/dist/components/index.js +1 -1
  41. package/dist/components/interaction-buttons.js +1 -1
  42. package/dist/components/item-list.js +1 -1
  43. package/dist/{library/p-CE9IBQYw.js → components/p-6XEM7ZLl.js} +1 -1
  44. package/dist/components/{p-BcMpGTRl.js → p-B1v9MUA3.js} +1 -1
  45. package/dist/components/{p-BCSUz8VU.js → p-BBkshCs2.js} +1 -1
  46. package/dist/components/{p-Dp7_8HKH.js → p-BDfPuPOG.js} +1 -1
  47. package/dist/components/{p-DEz3XSJ-.js → p-BGvClrhu.js} +1 -1
  48. package/dist/components/p-BN2-aIWf.js +1 -0
  49. package/dist/components/p-BYO6vh73.js +1 -0
  50. package/dist/components/{p-B12AFpEW.js → p-BaWiE0V_.js} +1 -1
  51. package/dist/components/p-C5WJ7k2H.js +1 -0
  52. package/dist/components/p-C8xryOSN.js +1 -0
  53. package/dist/components/{p-BbcOl4b9.js → p-CLWMGEhc.js} +1 -1
  54. package/dist/components/{p-o0KfLH-y.js → p-CPRWfcS6.js} +3 -3
  55. package/dist/components/{p-BeQb-NnR.js → p-Cyx_DKRP.js} +1 -1
  56. package/dist/components/{p-RfWHp6O2.js → p-D-LWGuqg.js} +1 -1
  57. package/dist/components/{p-BeHgjKno.js → p-D6-f0_II.js} +1 -1
  58. package/dist/components/{p-DKR021JM.js → p-D7e8HNXM.js} +1 -1
  59. package/dist/components/{p-CB1q68t3.js → p-Dkus1tH4.js} +1 -1
  60. package/dist/components/p-DrKpCVS_.js +1 -0
  61. package/dist/components/{p-D_3qXJcI.js → p-DxzrIzcK.js} +1 -1
  62. package/dist/components/{p-C_JPcL6x.js → p-bpEiYuDq.js} +1 -1
  63. package/dist/components/{p-vXHMCBxR.js → p-tvFvUUjk.js} +1 -1
  64. package/dist/components/{p-Dj7c4LRG.js → p-xPuA7imU.js} +1 -1
  65. package/dist/components/p-yp55Zv6C.js +1 -0
  66. package/dist/components/p-zb604YaC.js +1 -0
  67. package/dist/components/privacy-modal.js +1 -1
  68. package/dist/components/search-results-page.js +1 -1
  69. package/dist/esm/ai12z-beacon.entry.js +1 -1
  70. package/dist/esm/ai12z-bot.entry.js +156 -55
  71. package/dist/esm/ai12z-category_2.entry.js +2 -2
  72. package/dist/esm/ai12z-chat-message.entry.js +1 -1
  73. package/dist/esm/ai12z-chat_2.entry.js +9 -9
  74. package/dist/esm/ai12z-container.entry.js +2 -2
  75. package/dist/esm/ai12z-cta.entry.js +11 -11
  76. package/dist/esm/ai12z-knowledge-box.entry.js +3 -3
  77. package/dist/esm/{beacon-CCcNZqoa.js → beacon-QqHlhBch.js} +12 -20
  78. package/dist/esm/{botHelpers-CE9IBQYw.js → botHelpers-CIEjV6Hg.js} +41 -43
  79. package/dist/esm/{ctaHelpers-CT2ErlJl.js → ctaHelpers-B-wi91c0.js} +48 -23
  80. package/dist/esm/{index-DUiyv997.js → index-CXzW7Axh.js} +460 -137
  81. package/dist/esm/index.js +5 -5
  82. package/dist/esm/item-list.entry.js +1 -1
  83. package/dist/esm/library.js +1 -1
  84. package/dist/esm/loader.js +1 -1
  85. package/dist/esm/{parseHelper-C0fbw-JE.js → parseHelper-Cee8ydll.js} +1 -1
  86. package/dist/esm/search-results-page.entry.js +2 -2
  87. package/dist/library/index.esm.js +1 -1
  88. package/dist/library/library.esm.js +1 -1
  89. package/dist/library/p-0KFBScvP.js +31 -0
  90. package/dist/library/{p-9a040257.entry.js → p-26368908.entry.js} +1 -1
  91. package/dist/library/{p-cfbe4ffd.entry.js → p-4a98c2df.entry.js} +1 -1
  92. package/dist/library/p-66441613.entry.js +1 -0
  93. package/dist/library/p-6ad5e049.entry.js +1 -0
  94. package/dist/library/{p-e3879503.entry.js → p-77bec202.entry.js} +1 -1
  95. package/dist/library/{p-54dbd259.entry.js → p-8bcfd6de.entry.js} +1 -1
  96. package/dist/{components/p-Cq4AwCwr.js → library/p-CIEjV6Hg.js} +1 -1
  97. package/dist/library/{p-CJ4MotJl.js → p-D1LcAm4L.js} +1 -1
  98. package/dist/library/p-D82dKYwS.js +1 -0
  99. package/dist/library/p-QY9ae39G.js +1 -0
  100. package/dist/library/{p-f2e28f1b.entry.js → p-a3933c45.entry.js} +1 -1
  101. package/dist/library/{p-a007abdf.entry.js → p-b27a2375.entry.js} +1 -1
  102. package/dist/library/p-e15861ae.entry.js +1 -0
  103. package/dist/library/{p-373ee8b7.entry.js → p-fde77918.entry.js} +1 -1
  104. package/dist/types/components/ai12z-bot/ai12z-bot.d.ts +15 -5
  105. package/dist/types/utils/botHelpers/botHelpers.d.ts +2 -2
  106. package/dist/types/utils/ctaHelpers.d.ts +13 -2
  107. package/package.json +3 -3
  108. package/dist/components/p-BicP0-s0.js +0 -1
  109. package/dist/components/p-BwPrqQp6.js +0 -1
  110. package/dist/components/p-C0jem-ly.js +0 -1
  111. package/dist/components/p-CaFmjtsi.js +0 -1
  112. package/dist/components/p-Ce6pOFBE.js +0 -1
  113. package/dist/components/p-DPKJirdj.js +0 -1
  114. package/dist/components/p-DfKwQvja.js +0 -1
  115. package/dist/library/p-06d0815f.entry.js +0 -1
  116. package/dist/library/p-1f8b0fbc.entry.js +0 -1
  117. package/dist/library/p-45cd9109.entry.js +0 -1
  118. package/dist/library/p-B2dL-v75.js +0 -1
  119. package/dist/library/p-Dd_HpGgX.js +0 -31
  120. package/dist/library/p-PFgBCUAH.js +0 -1
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var index = require('./index-v8T1EJAJ.js');
4
- var beacon = require('./beacon-JlWjtnTj.js');
4
+ var beacon = require('./beacon-Dzm5dknI.js');
5
5
  require('./utils-kaVdO3ki.js');
6
6
 
7
7
  const Ai12zBeacon = class {
@@ -5,17 +5,17 @@ var responseAdapter = require('./response-adapter-BSZc0N1k.js');
5
5
  var processCarouselData = require('./processCarouselData-BPxsH6Ck.js');
6
6
  var logger$2 = require('./logger-D--BUQGx.js');
7
7
  var utils = require('./utils-kaVdO3ki.js');
8
- var index$1 = require('./index-DrVymXMa.js');
8
+ var index$1 = require('./index-DN109Evg.js');
9
9
  var globalStore = require('./global-store-R6x06KvJ.js');
10
10
  var reCaptchaHelpers = require('./reCaptchaHelpers-C8v6BB6z.js');
11
- var botHelpers = require('./botHelpers-AxnPKelf.js');
11
+ var botHelpers = require('./botHelpers-B_lFspU6.js');
12
12
  var surveyHelpers = require('./surveyHelpers-DpChOjp8.js');
13
13
  var scriptStyleLoader = require('./scriptStyleLoader-D-bqKqSb.js');
14
14
  var keyboardShortcuts = require('./keyboard-shortcuts-g_HyNYT-.js');
15
- var ctaHelpers = require('./ctaHelpers-DUkpEv0V.js');
15
+ var ctaHelpers = require('./ctaHelpers-CFn_XVtl.js');
16
16
  var appStore = require('./app-store-BtkiHvcw.js');
17
- var parseHelper = require('./parseHelper-CNiHFgWF.js');
18
- var beacon = require('./beacon-JlWjtnTj.js');
17
+ var parseHelper = require('./parseHelper-DGQ2ETjm.js');
18
+ var beacon = require('./beacon-Dzm5dknI.js');
19
19
  var bodyScrollLock = require('./bodyScrollLock-C7gKTAfx.js');
20
20
  require('./_commonjsHelpers-MBWFX2dn.js');
21
21
 
@@ -1052,7 +1052,7 @@ function deleteJsonCookie(name, options = {}) {
1052
1052
 
1053
1053
  const ai12zBotCss = () => `:host{font-family:var(--ai12zBot-v2-font-family) !important;font-size:var(--ai12zBot-v2-font-size) !important;color:var(--ai12zBot-v2-font-color, black);text-align:var(--ai12zBot-v2-text-align, left)}.chat-body{height:100%;overflow-y:auto;display:flex;flex-direction:column;gap:10px;overflow-x:hidden}.chat-body::-webkit-scrollbar{width:5px;height:5px;}.chat-body::-webkit-scrollbar-thumb{background-color:#888;border-radius:10px;}.message{padding:10px;border-radius:15px;font-size:14px;line-height:1.4;word-wrap:break-word}span.prose{font-size:14px;}.image-Container{position:relative;display:inline-block;margin-right:10px}.delete-image{opacity:3;position:absolute;right:3px;top:0;cursor:pointer;line-height:10px}.ai12zBtn{background-color:var(--ai12zBot-v2-button-background) !important;color:var(--ai12zBot-v2-button-font-color);padding:5px 10px;border:none;border-radius:5px;cursor:pointer;text-decoration:none;margin:5px}.ai12z-btn{background-color:var(--ai12zBot-v2-button-background) !important;color:var(--ai12zBot-v2-button-font-color);padding:5px 10px;border:none;border-radius:5px;cursor:pointer;text-decoration:none;margin:5px}.custom-privacy{color:var(--ai12z-bot-privacy-color);padding-bottom:10px;padding-left:5px;margin-top:auto;}@media (max-width: 768px){.hide-chatbot{display:none !important}}`;
1054
1054
 
1055
- const ai12zChatbotCss = () => `:host{--wes-c-icon-color:#fff;--fab-bottom:26px;--xsf-ai12z-zindex-isexpanded-10:20020;--ai-toolbar-icon-color:#2095ae;--xsf-ai12z-zindex-0:19979;--xsf-ai12z-zindex-10:19989;--xsf-ai12z-fab-bottom:26px}.modal-overlay{position:absolute;height:100%;width:100%;z-index:var(--xsf-ai12z-zindex-0);background-color:#2e2e2e99}.layout{pointer-events:none;position:fixed;inset:0;height:100dvh;width:99dvw;justify-content:flex-end;grid-template-rows:auto 1fr auto;grid-template-areas:"left toolbar right" "left main right" "left footer right";padding-top:96px;transition-property:grid-template-columns, padding-top;z-index:19979}.layout.is-open .modal{pointer-events:auto}.layout.is-expanded ai12z-bot{pointer-events:auto}.layout.is-open.is-expanded .modal{border-top-left-radius:12px;border-top-right-radius:12px;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);z-index:var(--xsf-ai12z-zindex-isexpanded-10)}.layout.is-open .user-input-fieldset{background-image:none;padding:0px;background:none}.layout.is-expanded .user-input-fieldset{border-top-left-radius:12px;border-top-right-radius:12px}.layout.is-open .grow-wrap>.textarea,.layout.is-open .grow-wrap>button,.layout.is-open .grow-wrap:after{border-color:var(--ai12zBot-v2-searchbar-open-border-color);}.layout.is-expanded .grow-wrap:after{display:none}.layout.is-open.is-expanded .user-input{z-index:var(--xsf-ai12z-zindex-isexpanded-10)}.layout.is-open .user-input{z-index:var(--xsf-ai12z-zindex-10)}.text-body2{font-size:16px;line-height:1.5;letter-spacing:-0.12px;font-weight:400}.modal-toolbar-icon{color:var(--ai12zBot-v2-toolbar-icon-color, inherit);width:16px;height:16px}.search-flex{flex:1 1 0%}.show-grid{display:grid}.hide-title{padding:0px;opacity:0;height:0px}.user-msg{background-color:var(--ai12zBot-v2-user-bubble-background);color:var(--ai12zBot-v2-user-bubble-font-color)}.text-body4{font-size:var(--ai12zBot-v2-timestamp-font-size);line-height:1.5;letter-spacing:0.03px;font-weight:400;color:var(--ai12zBot-v2-timestamp-font-color)}.isContent{background:var(--ai12zBot-v2-content-background);padding:10px}.default-botAvatar{color:var(--ai12zBot-v2-default-avatar-color)}.searchform{opacity:1;transform:none}.user-input{margin-left:auto;margin-right:auto;width:100%;max-width:840px;min-width:340px;grid-area:footer}.main{margin-left:auto;margin-right:auto;width:100%;max-width:840px;min-width:340px;margin-top:7px}.heading{color:var(--ai12zBot-v2-title-color)}.dropdown-item-button{display:flex;width:100%;cursor:pointer;align-items:center;-moz-column-gap:8px;column-gap:8px;border-radius:4px;--tw-border-opacity:1;--tw-bg-opacity:1;background-color:var(--ai12zBot-v2-dropdown-bgcolor);padding:8px 24px;font-weight:500;--tw-text-opacity:1;color:var(--ai12zBot-v2-dropdown-font-color);transition-property:color, background-color, border-color, text-decoration-color, fill, stroke;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:75ms}.helptext{padding:0px;opacity:0;height:0px}.minimize-input{transform:translateY(calc(-100% - 4px))}.ai-text-caption{font-size:12px;line-height:1.5;letter-spacing:0.2px;font-weight:400}.fab>button{background:var(--ai12zBot-v2-fab-button-background);}.user-input-fieldset{background:var(--ai12zBot-v2-searchbar-background)}.return-text-color{color:rgb(255, 255, 255)}.ai-minimize-icon svg{fill:currentColor;height:1em;width:1em}.hide-form{opacity:0;transform:none}.show-form{opacity:1;transform:none}.ai-minimize-icon{color:var(--wes-c-icon-color, inherit)}.fab{bottom:var(--fab-bottom, 30px)}.text-body1{font-size:var(--ai12zBot-v2-title-font-size);line-height:1.5;letter-spacing:-0.12px;font-weight:400}#message-submit{margin-right:6px;margin-bottom:7px;background-color:var(--ai12zBot-v2-searchbar-submit-bgcolor)}.ai-icon{color:var(--ai12zBot-v2-searchbar-submit-color);font-size:24px;width:24px;height:24px}.bot-plus-icon{color:var(--ai12zBot-v2-searchbar-plus-icon-color);font-size:24px;width:24px;height:24px}.grow-wrap>.textarea,.grow-wrap:after{min-height:48px;align-content:center;border-radius:24px;border-width:1px;border-style:solid;border:1px solid var(--ai12zBot-v2-searchbar-border-color);--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding:8px 48px;text-indent:2px;font-size:16px;line-height:1.5;letter-spacing:-0.12px;font-weight:400;--tw-text-opacity:1;color:rgb(46 46 46 / var(--tw-text-opacity, 1));--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);--tw-ring-inset:inset;--tw-ring-offset-width:0px;transition-property:all;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:0.15s}.grow-wrap>.textarea,.grow-wrap:after{grid-area:1 / 1 / 2 / 2}.modal{position:relative;grid-column:span 1 / span 1;grid-column-start:2;grid-row:span 3 / span 3;grid-row-start:1;display:grid;border-top-left-radius:0;border-top-right-radius:0;background-position:center;box-shadow:0 16px 32px -4px #18181829, 0 12px 24px -4px #18181814;background-image:var(--ai12zBot-v2-modal-backgroundImage);background-repeat:no-repeat;background-size:100vw 100vh;grid-template-columns:subgrid;grid-template-rows:subgrid;z-index:var(--xsf-ai12z-zindex-10);transition:0.3sease-out;transition-property:grid-template-columns}.dropdown-menu{pointer-events:none;opacity:0;z-index:10;background-color:var(--ai12zBot-v2-dropdown-bgcolor);transform:translateY(-10px);transition:opacity 0.3s ease, transform 0.3s ease}.dropdown-menu.show{pointer-events:auto;opacity:1;pointer-events:auto;transform:translateY(0);background-color:var(--ai12zBot-v2-dropdown-bgcolor)}.copy-btn{color:var(--ai12zBot-v2-copy-btn-color)}.thumbs-up{fill:var(--ai12zBot-v2-feedback-selected);width:24px}.thumbs-down{fill:var( --ai12zBot-v2-feedback-selected);width:24px}.chat-thumbs-up{color:var(--ai12zBot-v2-feedback-color)}.thumbs-container{justify-content:flex-start;align-items:center}.back-btn svg{fill:var(--ai12zBot-v2-back-button-color)}.dropdown-item{background-color:var(--ai12zBot-v2-dropdown-bgcolor)}button:focus-visible{outline:2px solid var(--ai12zBot-v2-focus-visible-color, #0A2A43);outline-offset:2px}button.bot-btn-primary:focus-visible{outline:2px solid var(--ai12zBot-v2-focus-visible-color-primary, var(--ai12zBot-v2-focus-visible-color, #0A2A43));outline-offset:2px}button.bot-btn-secondary:focus-visible{outline:2px solid var(--ai12zBot-v2-focus-visible-color-secondary, var(--ai12zBot-v2-focus-visible-color, #0A2A43))}.bot-name{color:var(--ai12zBot-v2-fab-name-color, var(--ai12zBot-v2-bot-name-color));font-weight:var(--ai12zBot-v2-fab-font-weight, var(--ai12zBot-v2-bot-name-font-weight))}.ai12z-link{color:var(--ai12zBot-v2-link-color);text-decoration:underline}.ai12z-link:hover{color:var(--ai12zBot-v2-link-hover-color);text-decoration:underline}.toolbar{height:52px;border:#fff;grid-area:toolbar}.skip-link{position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden}.skip-link:focus{left:10px;top:10px;width:auto;height:auto;z-index:1000}.enter-tip{font-size:12px;color:#666;margin-left:10px}.skip-links.hidden{position:absolute;left:-9999px;}.skip-links.visible{left:auto;position:static;}.error-message-container{margin-top:4px}.error-msg{color:#dc2626;font-size:12px;display:block;animation:slideIn 0.2s ease-out}.ai12z-form-honeypot{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}@keyframes slideIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media (min-width: 1024px){.modal{background-size:80vw 100vh}}@media (min-width: 1024px){.layout.is-expanded{grid-template-columns:1fr minmax(340px, 80dvw) 1fr !important}}@media (min-width: 768px){.layout.is-expanded{-moz-column-gap:48px;column-gap:48px}}@media (max-width: 767px){.layout.is-open{padding-top:0px !important;grid-template-columns:0fr minmax(340px, 1fr) 0fr !important}}@media (max-width: 767px){.fab{right:30px;bottom:var(--xsf-ai12z-fab-bottom, 26px)}}`;
1055
+ const ai12zChatbotCss = () => `:host{--wes-c-icon-color:#fff;--fab-bottom:26px;--xsf-ai12z-zindex-isexpanded-10:20020;--ai-toolbar-icon-color:#2095ae;--xsf-ai12z-zindex-0:19979;--xsf-ai12z-zindex-10:19989;--xsf-ai12z-fab-bottom:26px}.modal-overlay{position:absolute;height:100%;width:100%;z-index:var(--xsf-ai12z-zindex-0);background-color:#2e2e2e99}.layout{pointer-events:none;position:fixed;inset:0;height:100dvh;width:99dvw;justify-content:flex-end;grid-template-rows:auto 1fr auto;grid-template-areas:"left toolbar right" "left main right" "left footer right";padding-top:96px;transition-property:grid-template-columns, padding-top;z-index:19979}.layout.is-open .modal{pointer-events:auto}.layout.is-expanded ai12z-bot{pointer-events:auto}.layout.is-open.is-expanded .modal{border-top-left-radius:12px;border-top-right-radius:12px;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);z-index:var(--xsf-ai12z-zindex-isexpanded-10)}.layout.is-open .user-input-fieldset{background-image:none;padding:0px;background:none}.layout.is-expanded .user-input-fieldset{border-top-left-radius:12px;border-top-right-radius:12px}.layout.is-open .grow-wrap>.textarea,.layout.is-open .grow-wrap>button,.layout.is-open .grow-wrap:after{border-color:var(--ai12zBot-v2-searchbar-open-border-color);}.layout.is-expanded .grow-wrap:after{display:none}.layout.is-open.is-expanded .user-input{z-index:var(--xsf-ai12z-zindex-isexpanded-10)}.layout.is-open .user-input{z-index:var(--xsf-ai12z-zindex-10)}.text-body2{font-size:16px;line-height:1.5;letter-spacing:-0.12px;font-weight:400}.modal-toolbar-icon{color:var(--ai12zBot-v2-toolbar-icon-color, inherit);width:16px;height:16px}.search-flex{flex:1 1 0%}.show-grid{display:grid}.hide-title{padding:0px;opacity:0;height:0px}.user-msg{background-color:var(--ai12zBot-v2-user-bubble-background);color:var(--ai12zBot-v2-user-bubble-font-color)}.text-body4{font-size:var(--ai12zBot-v2-timestamp-font-size);line-height:1.5;letter-spacing:0.03px;font-weight:400;color:var(--ai12zBot-v2-timestamp-font-color)}.isContent{background:var(--ai12zBot-v2-content-background);padding:10px}.default-botAvatar{color:var(--ai12zBot-v2-default-avatar-color)}.searchform{opacity:1;transform:none}.user-input{margin-left:auto;margin-right:auto;width:100%;max-width:840px;min-width:340px;grid-area:footer}.main{margin-left:auto;margin-right:auto;width:100%;max-width:840px;min-width:340px;margin-top:7px}.heading{color:var(--ai12zBot-v2-title-color)}.dropdown-item-button{display:flex;width:100%;cursor:pointer;align-items:center;-moz-column-gap:8px;column-gap:8px;border-radius:4px;--tw-border-opacity:1;--tw-bg-opacity:1;background-color:var(--ai12zBot-v2-dropdown-bgcolor);padding:8px 24px;font-weight:500;--tw-text-opacity:1;color:var(--ai12zBot-v2-dropdown-font-color);transition-property:color, background-color, border-color, text-decoration-color, fill, stroke;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:75ms}.helptext{padding:0px;opacity:0;height:0px}.minimize-input{transform:translateY(calc(-100% - 4px))}.ai-text-caption{font-size:12px;line-height:1.5;letter-spacing:0.2px;font-weight:400}.fab>button{background:var(--ai12zBot-v2-fab-button-background);}.user-input-fieldset{background:var(--ai12zBot-v2-searchbar-background)}.return-text-color{color:rgb(255, 255, 255)}.ai-minimize-icon svg{fill:currentColor;height:1em;width:1em}.hide-form{opacity:0;transform:none}.show-form{opacity:1;transform:none}.ai-minimize-icon{color:var(--wes-c-icon-color, inherit)}.fab{bottom:var(--fab-bottom, 30px)}.text-body1{font-size:var(--ai12zBot-v2-title-font-size);line-height:1.5;letter-spacing:-0.12px;font-weight:400}#message-submit{margin-right:6px;margin-bottom:7px;background-color:var(--ai12zBot-v2-searchbar-submit-bgcolor)}.ai-icon{color:var(--ai12zBot-v2-searchbar-submit-color);font-size:24px;width:24px;height:24px}.bot-plus-icon{color:var(--ai12zBot-v2-searchbar-plus-icon-color);font-size:24px;width:24px;height:24px;background-color:white}.grow-wrap>.textarea,.grow-wrap:after{min-height:48px;align-content:center;border-radius:24px;border-width:1px;border-style:solid;border:1px solid var(--ai12zBot-v2-searchbar-border-color);--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding:8px 48px;text-indent:2px;font-size:16px;line-height:1.5;letter-spacing:-0.12px;font-weight:400;--tw-text-opacity:1;color:rgb(46 46 46 / var(--tw-text-opacity, 1));--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);--tw-ring-inset:inset;--tw-ring-offset-width:0px;transition-property:all;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:0.15s}.grow-wrap>.textarea,.grow-wrap:after{grid-area:1 / 1 / 2 / 2}.modal{position:relative;grid-column:span 1 / span 1;grid-column-start:2;grid-row:span 3 / span 3;grid-row-start:1;display:grid;border-top-left-radius:0;border-top-right-radius:0;background-position:center;box-shadow:0 16px 32px -4px #18181829, 0 12px 24px -4px #18181814;background-image:var(--ai12zBot-v2-modal-backgroundImage);background-repeat:no-repeat;background-size:100vw 100vh;grid-template-columns:subgrid;grid-template-rows:subgrid;z-index:var(--xsf-ai12z-zindex-10);transition:0.3sease-out;transition-property:grid-template-columns}.dropdown-menu{pointer-events:none;opacity:0;z-index:10;background-color:var(--ai12zBot-v2-dropdown-bgcolor);transform:translateY(-10px);transition:opacity 0.3s ease, transform 0.3s ease}.dropdown-menu.show{pointer-events:auto;opacity:1;pointer-events:auto;transform:translateY(0);background-color:var(--ai12zBot-v2-dropdown-bgcolor)}.copy-btn{color:var(--ai12zBot-v2-copy-btn-color)}.thumbs-up{fill:var(--ai12zBot-v2-feedback-selected);width:24px}.thumbs-down{fill:var( --ai12zBot-v2-feedback-selected);width:24px}.chat-thumbs-up{color:var(--ai12zBot-v2-feedback-color)}.thumbs-container{justify-content:flex-start;align-items:center}.back-btn svg{fill:var(--ai12zBot-v2-back-button-color)}.dropdown-item{background-color:var(--ai12zBot-v2-dropdown-bgcolor)}button:focus-visible{outline:2px solid var(--ai12zBot-v2-focus-visible-color, #0A2A43);outline-offset:2px}button.bot-btn-primary:focus-visible{outline:2px solid var(--ai12zBot-v2-focus-visible-color-primary, var(--ai12zBot-v2-focus-visible-color, #0A2A43));outline-offset:2px}button.bot-btn-secondary:focus-visible{outline:2px solid var(--ai12zBot-v2-focus-visible-color-secondary, var(--ai12zBot-v2-focus-visible-color, #0A2A43))}.bot-name{color:var(--ai12zBot-v2-fab-name-color, var(--ai12zBot-v2-bot-name-color));font-weight:var(--ai12zBot-v2-fab-font-weight, var(--ai12zBot-v2-bot-name-font-weight))}.ai12z-link{color:var(--ai12zBot-v2-link-color);text-decoration:underline}.ai12z-link:hover{color:var(--ai12zBot-v2-link-hover-color);text-decoration:underline}.toolbar{height:52px;border:#fff;grid-area:toolbar}.skip-link{position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden}.skip-link:focus{left:10px;top:10px;width:auto;height:auto;z-index:1000}.enter-tip{font-size:12px;color:#666;margin-left:10px}.skip-links.hidden{position:absolute;left:-9999px;}.skip-links.visible{left:auto;position:static;}.error-message-container{margin-top:4px}.error-msg{color:#dc2626;font-size:12px;display:block;animation:slideIn 0.2s ease-out}.ai12z-form-honeypot{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}@keyframes slideIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media (min-width: 1024px){.modal{background-size:80vw 100vh}}@media (min-width: 1024px){.layout.is-expanded{grid-template-columns:1fr minmax(340px, 80dvw) 1fr !important}}@media (min-width: 768px){.layout.is-expanded{-moz-column-gap:48px;column-gap:48px}}@media (max-width: 767px){.layout.is-open{padding-top:0px !important;grid-template-columns:0fr minmax(340px, 1fr) 0fr !important}}@media (max-width: 767px){.fab{right:30px;bottom:var(--xsf-ai12z-fab-bottom, 26px)}}`;
1056
1056
 
1057
1057
  var __rest = (undefined && undefined.__rest) || function (s, e) {
1058
1058
  var t = {};
@@ -1067,6 +1067,7 @@ var __rest = (undefined && undefined.__rest) || function (s, e) {
1067
1067
  return t;
1068
1068
  };
1069
1069
  const logger = new logger$2.Logger("Ai12zBot");
1070
+ const STREAM_END_TIMEOUT_MS = 30000;
1070
1071
  const Ai12zBot = class {
1071
1072
  constructor(hostRef) {
1072
1073
  index.registerInstance(this, hostRef);
@@ -1150,6 +1151,7 @@ const Ai12zBot = class {
1150
1151
  this.shortcuts = keyboardShortcuts.DEFAULT_SHORTCUTS;
1151
1152
  this.announceMessage = ""; // For accessibility announcements
1152
1153
  this.token = "";
1154
+ this.isSending = false;
1153
1155
  this.messageRefs = [];
1154
1156
  // Replace your existing handlePaste method with this enhanced version
1155
1157
  this.handlePaste = (event) => {
@@ -1262,8 +1264,14 @@ const Ai12zBot = class {
1262
1264
  }
1263
1265
  };
1264
1266
  this.handleSend = async (eleValue, options = {}) => {
1265
- var _a, _b;
1266
- const { isHide = false, isLiveChatEnded = false } = options;
1267
+ var _a, _b, _c;
1268
+ const { isHide = false, isLiveChatEnded = false, bypassSendGuard = false } = options;
1269
+ // Acquire the lock before any await.
1270
+ if ((this.isSending || this.isStreaming) && !bypassSendGuard) {
1271
+ this.query = "";
1272
+ return false;
1273
+ }
1274
+ this.isSending = true;
1267
1275
  const queryText = typeof this.query === "string" ? this.query.trim() : "";
1268
1276
  const displayText = typeof eleValue === "string" ? eleValue.trim() : "";
1269
1277
  const inputText = ((_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.value.trim()) || "";
@@ -1271,11 +1279,15 @@ const Ai12zBot = class {
1271
1279
  const resolvedDisplayText = displayText || (!isHide ? resolvedQuery : "");
1272
1280
  if (!resolvedQuery && this.imagesBase64List.length === 0) {
1273
1281
  this.showEmptyMessageValidation();
1274
- return;
1282
+ this.query = "";
1283
+ this.isSending = false;
1284
+ return false;
1275
1285
  }
1276
1286
  if (!isHide && !resolvedDisplayText && this.imagesBase64List.length === 0) {
1287
+ this.query = "";
1288
+ this.isSending = false;
1277
1289
  this.showEmptyMessageValidation();
1278
- return;
1290
+ return false;
1279
1291
  }
1280
1292
  this.emptyMessageError = false;
1281
1293
  this.surveyDomId = "";
@@ -1294,11 +1306,19 @@ const Ai12zBot = class {
1294
1306
  if (this.showWelcomeScreen && this.botSettings.botVersion === "v1") {
1295
1307
  this.showWelcomeScreen = false;
1296
1308
  }
1297
- if (this.messages.length === 0) {
1298
- await this.socketConnection();
1309
+ try {
1310
+ if (this.messages.length === 0 || !((_b = this.socket) === null || _b === void 0 ? void 0 : _b.connected)) {
1311
+ await this.socketConnection();
1312
+ }
1313
+ else if (!this.socket || !this.socket.connected) {
1314
+ await this.socketConnection();
1315
+ }
1299
1316
  }
1300
- else if (!this.socket || !this.socket.connected) {
1301
- await this.socketConnection();
1317
+ catch (error) {
1318
+ console.error("Error in handleSend:", error);
1319
+ this.query = "";
1320
+ this.isSending = false;
1321
+ return false;
1302
1322
  }
1303
1323
  // if (inputValue.trim()) {
1304
1324
  const now = new Date();
@@ -1345,6 +1365,9 @@ const Ai12zBot = class {
1345
1365
  if (this.botSettings.maxQuestion > 0 && this.questionCounter > this.botSettings.maxQuestion && !this.isLiveAgent && !isLiveChatEnded) {
1346
1366
  // console.log("Max question limit reached")
1347
1367
  this.inputEl.value = "";
1368
+ this.query = "";
1369
+ this.releaseSendLock();
1370
+ return false;
1348
1371
  }
1349
1372
  else {
1350
1373
  this.currentDomId = "";
@@ -1356,16 +1379,18 @@ const Ai12zBot = class {
1356
1379
  this.inputEl.value = "";
1357
1380
  }
1358
1381
  this.query = "";
1382
+ this.isSending = false;
1359
1383
  }
1360
1384
  else {
1361
1385
  this.checkLiveAgentMode();
1362
1386
  this.isStreaming = true;
1363
1387
  this.ignoreChunks = false;
1364
- this.invokeSocket();
1388
+ this.resetStreamEndWatchdog();
1389
+ this.invokeSocket(resolvedQuery);
1365
1390
  }
1366
1391
  }
1367
1392
  // this.invokeSocket()
1368
- const parent = (_b = this.el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector("#previewContainer");
1393
+ const parent = (_c = this.el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector("#previewContainer");
1369
1394
  if (parent) {
1370
1395
  parent.innerHTML = "";
1371
1396
  }
@@ -1373,6 +1398,7 @@ const Ai12zBot = class {
1373
1398
  this.rowCount = 1;
1374
1399
  this.showSubmit = false;
1375
1400
  // }
1401
+ return true;
1376
1402
  };
1377
1403
  this.agentMessageCreated = (message) => {
1378
1404
  var _a;
@@ -1717,6 +1743,7 @@ const Ai12zBot = class {
1717
1743
  this.showWelcomeScreen = true;
1718
1744
  this.showHistory = false;
1719
1745
  this.isOpened = true;
1746
+ this.releaseSendLock();
1720
1747
  // Focus input if available
1721
1748
  setTimeout(() => {
1722
1749
  var _a;
@@ -1736,11 +1763,17 @@ const Ai12zBot = class {
1736
1763
  this.handleSend(event.detail);
1737
1764
  }
1738
1765
  deleteChatHistoryHandler(event) {
1739
- var _a;
1740
1766
  const chatHistory = this.getConversationHistory();
1741
- const updatedHistory = chatHistory.filter(item => item.conversationId !== event.detail.conversationId);
1767
+ const configId = this.getResolvedConfigId();
1768
+ const updatedHistory = chatHistory.filter(item => {
1769
+ var _a, _b, _c;
1770
+ if (item.conversationId !== event.detail.conversationId) {
1771
+ return true;
1772
+ }
1773
+ return item.projectId !== ((_a = this.botSettings) === null || _a === void 0 ? void 0 : _a.pId) || ctaHelpers.resolveConfigId(item === null || item === void 0 ? void 0 : item.configId) !== configId || ((_b = item === null || item === void 0 ? void 0 : item.botType) !== null && _b !== void 0 ? _b : "") !== ((_c = this.botType) !== null && _c !== void 0 ? _c : "");
1774
+ });
1742
1775
  localStorage.setItem(`${this.visitorID}`, JSON.stringify(updatedHistory));
1743
- this.conversationHistory = ctaHelpers.filterConversationHistoryByProjectAndConfig(updatedHistory, (_a = this.botSettings._id) === null || _a === void 0 ? void 0 : _a.$oid, this.botSettings.pId);
1776
+ this.conversationHistory = ctaHelpers.filterConversationHistoryByProjectAndConfig(updatedHistory, configId, this.botSettings.pId, this.botType);
1744
1777
  // this.conversationHistory = updatedHistory
1745
1778
  }
1746
1779
  chatClickHandler(event) {
@@ -1764,9 +1797,6 @@ const Ai12zBot = class {
1764
1797
  }
1765
1798
  async sendMessage(message, displayText, options) {
1766
1799
  this.query = message;
1767
- // if (!this.isChatOpen) {
1768
- // this.isChatOpen = true
1769
- // }
1770
1800
  this.handleSend(displayText !== null && displayText !== void 0 ? displayText : message, options);
1771
1801
  }
1772
1802
  async sendQuery(query) {
@@ -1775,9 +1805,6 @@ const Ai12zBot = class {
1775
1805
  }
1776
1806
  async sendJSON(jsonData, displayText) {
1777
1807
  this.query = JSON.stringify(jsonData);
1778
- // if (!this.isChatOpen) {
1779
- // this.isChatOpen = true
1780
- // }
1781
1808
  this.handleSend(displayText);
1782
1809
  }
1783
1810
  async openBot(expanded = false) {
@@ -1846,13 +1873,14 @@ const Ai12zBot = class {
1846
1873
  appStore.setParentComponentState("bot", this.dataKey, this.dataMode);
1847
1874
  }
1848
1875
  hydrateStateFromStorage() {
1849
- var _a, _b, _c;
1876
+ var _a;
1850
1877
  const projectId = (_a = this.botSettings) === null || _a === void 0 ? void 0 : _a.pId;
1851
1878
  if (!projectId) {
1852
1879
  console.warn("AI12Z: Cannot hydrate state - projectId not available");
1853
1880
  return;
1854
1881
  }
1855
- const botState = botHelpers.getBotStateFromSession(projectId, (_b = this.botSettings._id) === null || _b === void 0 ? void 0 : _b.$oid) || getJsonCookie(botHelpers.getBotStateKey(projectId, (_c = this.botSettings._id) === null || _c === void 0 ? void 0 : _c.$oid), isBotState);
1882
+ const configId = this.getResolvedConfigId();
1883
+ const botState = botHelpers.getBotStateFromSession(projectId, configId, this.botType) || getJsonCookie(botHelpers.getBotStateKey(projectId, configId, this.botType), isBotState);
1856
1884
  if (botState) {
1857
1885
  this.isOpened = botState.isOpened;
1858
1886
  this.isMinimized = botState.isMinimized;
@@ -1915,6 +1943,28 @@ const Ai12zBot = class {
1915
1943
  this.clearEvents();
1916
1944
  }
1917
1945
  }
1946
+ releaseSendLock() {
1947
+ this.clearStreamEndWatchdog();
1948
+ this.isStreaming = false;
1949
+ this.isSending = false;
1950
+ }
1951
+ clearStreamEndWatchdog() {
1952
+ if (this.streamEndWatchdog) {
1953
+ clearTimeout(this.streamEndWatchdog);
1954
+ this.streamEndWatchdog = undefined;
1955
+ }
1956
+ }
1957
+ resetStreamEndWatchdog() {
1958
+ this.clearStreamEndWatchdog();
1959
+ this.streamEndWatchdog = setTimeout(() => {
1960
+ this.streamEndWatchdog = undefined;
1961
+ if (!this.isStreaming) {
1962
+ return;
1963
+ }
1964
+ console.error("Socket response timed out before completion");
1965
+ this.failTurn("Something went wrong. Please try again.");
1966
+ }, STREAM_END_TIMEOUT_MS);
1967
+ }
1918
1968
  componentDidLoad() {
1919
1969
  var _a;
1920
1970
  globalStore.setBotElement(this.el); // register globally
@@ -1996,6 +2046,7 @@ const Ai12zBot = class {
1996
2046
  // fire scrollToBottom() against a torn-down component.
1997
2047
  if (this.autoScrollTimer)
1998
2048
  clearTimeout(this.autoScrollTimer);
2049
+ this.clearStreamEndWatchdog();
1999
2050
  }
2000
2051
  handleClickOutside(event) {
2001
2052
  // Check if the clicked target is outside the menu
@@ -2058,7 +2109,6 @@ const Ai12zBot = class {
2058
2109
  }
2059
2110
  }
2060
2111
  openChat(expanded = false) {
2061
- var _a, _b;
2062
2112
  this.syncBodyScrollLock(true);
2063
2113
  this.unreadCount = 0;
2064
2114
  // document.title = `Chat opened – ${this.originalTitle}`
@@ -2068,7 +2118,8 @@ const Ai12zBot = class {
2068
2118
  this.isContent = false;
2069
2119
  // Open immediately to ensure textarea and UI are visible
2070
2120
  this.isOpened = true;
2071
- const sessionKey = botHelpers.getBotStateKey(this.botSettings.pId, (_a = this.botSettings._id) === null || _a === void 0 ? void 0 : _a.$oid);
2121
+ const configId = this.getResolvedConfigId();
2122
+ const sessionKey = botHelpers.getBotStateKey(this.botSettings.pId, configId, this.botType);
2072
2123
  if (!sessionStorage.getItem(sessionKey)) {
2073
2124
  const SetBotByAgent = {
2074
2125
  messages: [],
@@ -2077,7 +2128,8 @@ const Ai12zBot = class {
2077
2128
  isExpanded: this.isExpanded,
2078
2129
  conversationId: this.conversationId,
2079
2130
  projectId: this.botSettings.pId,
2080
- configId: (_b = this.botSettings._id) === null || _b === void 0 ? void 0 : _b.$oid,
2131
+ configId,
2132
+ botType: this.botType,
2081
2133
  newChat: true,
2082
2134
  };
2083
2135
  sessionStorage.setItem(sessionKey, JSON.stringify(SetBotByAgent));
@@ -2119,7 +2171,7 @@ const Ai12zBot = class {
2119
2171
  }
2120
2172
  }
2121
2173
  async configBot() {
2122
- var _a, _b, _c, _d, _f;
2174
+ var _a, _b, _c;
2123
2175
  const payload = {
2124
2176
  apiKey: this.dataKey,
2125
2177
  configId: this.configId,
@@ -2197,7 +2249,7 @@ const Ai12zBot = class {
2197
2249
  // Clean up cookies when cookies is not enabled
2198
2250
  if (this.botSettings && !((_c = this.botSettings) === null || _c === void 0 ? void 0 : _c.cookies)) {
2199
2251
  const domain = getValidCookieDomain(this.botSettings.subDomain);
2200
- deleteJsonCookie(botHelpers.getBotStateKey(this.botSettings.pId, (_f = (_d = this.botSettings) === null || _d === void 0 ? void 0 : _d._id) === null || _f === void 0 ? void 0 : _f.$oid), { domain });
2252
+ deleteJsonCookie(botHelpers.getBotStateKey(this.botSettings.pId, this.getResolvedConfigId(), this.botType), { domain });
2201
2253
  }
2202
2254
  }
2203
2255
  }
@@ -2268,6 +2320,7 @@ const Ai12zBot = class {
2268
2320
  const responseEvent = protocol === "v2" ? "chunk" : "response";
2269
2321
  const endEvent = protocol === "v2" ? "complete" : "end_response";
2270
2322
  this.socket.on(responseEvent, async (event) => {
2323
+ this.resetStreamEndWatchdog();
2271
2324
  const { id, idChanged } = parseHelper.ensureMessageId(this.currentDomId, this.messages, "chatbot");
2272
2325
  this.currentDomId = id;
2273
2326
  if (idChanged)
@@ -2282,6 +2335,12 @@ const Ai12zBot = class {
2282
2335
  });
2283
2336
  });
2284
2337
  this.socket.on(endEvent, async (rawData) => {
2338
+ if (!rawData) {
2339
+ console.error("Received empty end response payload");
2340
+ this.failTurn("Something went wrong. Please try again.");
2341
+ return;
2342
+ }
2343
+ this.clearStreamEndWatchdog();
2285
2344
  // For v2, adapt the response format to match legacy expectations
2286
2345
  const data = protocol === "v2" ? responseAdapter.adaptCompleteToLegacy(rawData) : rawData;
2287
2346
  if (data.showInput !== undefined && typeof data.showInput === "boolean") {
@@ -2307,7 +2366,7 @@ const Ai12zBot = class {
2307
2366
  }
2308
2367
  this.announce(this.isOpened ? "New message received" : "New message received while chat is minimized");
2309
2368
  requestAnimationFrame(async () => {
2310
- var _a, _b, _c, _d, _f, _g, _h;
2369
+ var _a, _b, _c;
2311
2370
  try {
2312
2371
  // ✅ Create config object
2313
2372
  const config = {
@@ -2373,22 +2432,24 @@ const Ai12zBot = class {
2373
2432
  // ✅ Common cleanup
2374
2433
  this.conversationId = data.conversationId;
2375
2434
  // this.saveConversation()
2376
- ctaHelpers.saveConversation((_b = this.botSettings) === null || _b === void 0 ? void 0 : _b.pId, this.messages, this.conversationId, (_d = (_c = this.botSettings._id) === null || _c === void 0 ? void 0 : _c.$oid) !== null && _d !== void 0 ? _d : "", this.visitorID, "bot", {
2435
+ const configId = this.getResolvedConfigId();
2436
+ ctaHelpers.saveConversation((_b = this.botSettings) === null || _b === void 0 ? void 0 : _b.pId, this.messages, this.conversationId, configId, this.visitorID, "bot", {
2377
2437
  isMinimized: this.isMinimized,
2378
2438
  isOpened: this.isOpened,
2379
2439
  isExpanded: this.isExpanded,
2380
- });
2440
+ }, this.botType);
2381
2441
  if (this.visitorID && isFirstExchange) {
2382
- const sessionKey = botHelpers.getBotStateKey(this.botSettings.pId, (_f = this.botSettings._id) === null || _f === void 0 ? void 0 : _f.$oid);
2442
+ const sessionKey = botHelpers.getBotStateKey(this.botSettings.pId, configId, this.botType);
2383
2443
  sessionStorage.setItem(sessionKey, JSON.stringify({
2384
2444
  isMinimized: this.isMinimized,
2385
2445
  isOpened: this.isOpened,
2386
2446
  isExpanded: this.isExpanded,
2387
2447
  messages: this.messages,
2388
2448
  conversationId: this.conversationId,
2389
- configId: (_g = this.botSettings._id) === null || _g === void 0 ? void 0 : _g.$oid,
2449
+ configId,
2390
2450
  visitorID: this.visitorID,
2391
- projectId: (_h = this.botSettings) === null || _h === void 0 ? void 0 : _h.pId,
2451
+ projectId: (_c = this.botSettings) === null || _c === void 0 ? void 0 : _c.pId,
2452
+ botType: this.botType,
2392
2453
  date: new Date(),
2393
2454
  }));
2394
2455
  }
@@ -2396,12 +2457,12 @@ const Ai12zBot = class {
2396
2457
  this.updateBotState();
2397
2458
  }
2398
2459
  this.scrollToBottom();
2399
- this.isStreaming = false;
2460
+ this.releaseSendLock();
2400
2461
  this.currentDomId = "";
2401
2462
  }
2402
2463
  catch (error) {
2403
2464
  console.error("Error handling end_response:", error);
2404
- this.isStreaming = false;
2465
+ this.releaseSendLock();
2405
2466
  }
2406
2467
  });
2407
2468
  });
@@ -2483,7 +2544,7 @@ const Ai12zBot = class {
2483
2544
  }
2484
2545
  }
2485
2546
  // ✅ Handle the survey completion rendering
2486
- handleSurveyCompletionRender(processedResults) {
2547
+ async handleSurveyCompletionRender(processedResults) {
2487
2548
  // console.log("Survey completed with results:", processedResults)
2488
2549
  // Find and update the message
2489
2550
  const idx = this.messages.findIndex(item => item.surveyDomId === processedResults.domId);
@@ -2492,8 +2553,26 @@ const Ai12zBot = class {
2492
2553
  this.surveyDomId = processedResults.domId;
2493
2554
  // Update conversations with completed HTML
2494
2555
  this.updateConversations(processedResults.completedHtml, {});
2556
+ // Use the JSON payload as the query and the completion text as display text.
2557
+ const surveyQuery = processedResults.jsonData;
2558
+ this.query = surveyQuery;
2559
+ let sent = false;
2495
2560
  // Send the JSON data message
2496
- this.sendMessage(processedResults.jsonData, processedResults.completeText, { isHide: true });
2561
+ try {
2562
+ sent = await this.handleSend(processedResults.completeText, { isHide: true, bypassSendGuard: true });
2563
+ }
2564
+ finally {
2565
+ if (!sent) {
2566
+ console.error("Failed to send form data in finally block");
2567
+ }
2568
+ if (this.query === surveyQuery) {
2569
+ this.query = "";
2570
+ }
2571
+ }
2572
+ if (!sent) {
2573
+ console.error("Failed to send form data");
2574
+ return;
2575
+ }
2497
2576
  this.formSubmitted.emit(processedResults.sender.data);
2498
2577
  // Scroll to bottom
2499
2578
  this.scrollToBottom();
@@ -2670,6 +2749,7 @@ const Ai12zBot = class {
2670
2749
  this.messages = [...this.messages];
2671
2750
  }
2672
2751
  this.isStreaming = false;
2752
+ this.isSending = false;
2673
2753
  });
2674
2754
  this.socket.on("connect_error", error => {
2675
2755
  this.errored.emit(error);
@@ -2682,7 +2762,7 @@ const Ai12zBot = class {
2682
2762
  this.errored.emit(error);
2683
2763
  this.announce("An error occurred with the chat server. Please try again.");
2684
2764
  console.error("Socket error:", error);
2685
- this.isStreaming = false;
2765
+ this.releaseSendLock();
2686
2766
  if (lastMessage === null || lastMessage === void 0 ? void 0 : lastMessage.isLoading) {
2687
2767
  lastMessage.text = errorMessage;
2688
2768
  lastMessage.isLoading = false;
@@ -2708,9 +2788,21 @@ const Ai12zBot = class {
2708
2788
  this.socket.off("response");
2709
2789
  this.socket.off("chunk");
2710
2790
  // Handle disconnection if needed
2791
+ if (this.isStreaming)
2792
+ this.failTurn("Connection lost. Please try again.");
2711
2793
  });
2712
2794
  }
2713
- invokeSocket() {
2795
+ failTurn(message) {
2796
+ // Release the lock so another message can be sent.
2797
+ this.releaseSendLock();
2798
+ const last = this.messages[this.messages.length - 1];
2799
+ if (last && !last.isUser && last.isLoading) {
2800
+ last.text = message;
2801
+ last.isLoading = false;
2802
+ this.messages = [...this.messages];
2803
+ }
2804
+ }
2805
+ invokeSocket(query) {
2714
2806
  var _a;
2715
2807
  const protocol = utils.getBackendProtocol(this.dataMode);
2716
2808
  let data;
@@ -2718,13 +2810,13 @@ const Ai12zBot = class {
2718
2810
  if (protocol === "v2") {
2719
2811
  eventName = "query";
2720
2812
  const beaconId = sessionStorage.getItem("ai12zBeaconId");
2721
- data = Object.assign({ query: this.query !== "" ? this.query : this.inputEl.value, botType: this.botType, conversation_id: this.conversationId || "", base64_images: ((_a = this.imagesBase64List) === null || _a === void 0 ? void 0 : _a.length) > 0 ? this.imagesBase64List : undefined, beacon_id: this.botSettings.disableBeacon ? "" : beaconId !== null && beaconId !== void 0 ? beaconId : "" }, (this.botSettings.disableBeacon || beaconId ? {} : { beacon_data: beacon.buildBeacon() }));
2813
+ data = Object.assign({ query, botType: this.botType, conversation_id: this.conversationId || "", base64_images: ((_a = this.imagesBase64List) === null || _a === void 0 ? void 0 : _a.length) > 0 ? this.imagesBase64List : undefined, beacon_id: this.botSettings.disableBeacon ? "" : beaconId !== null && beaconId !== void 0 ? beaconId : "" }, (this.botSettings.disableBeacon || beaconId ? {} : { beacon_data: beacon.buildBeacon() }));
2722
2814
  }
2723
2815
  else {
2724
2816
  eventName = "evaluate_query";
2725
2817
  data = {
2726
2818
  apiKey: this.dataKey,
2727
- query: this.query !== "" ? this.query : this.inputEl.value,
2819
+ query,
2728
2820
  conversationId: this.conversationId,
2729
2821
  event: "evaluate_query",
2730
2822
  attributes: this.dataAttributes,
@@ -2761,6 +2853,7 @@ const Ai12zBot = class {
2761
2853
  .catch(error => {
2762
2854
  console.error("Error in processDataOverride:", error);
2763
2855
  this.errored.emit(error);
2856
+ this.releaseSendLock();
2764
2857
  this.announce("An error occurred while sending your message.");
2765
2858
  });
2766
2859
  }
@@ -2771,15 +2864,17 @@ const Ai12zBot = class {
2771
2864
  }
2772
2865
  return [];
2773
2866
  }
2867
+ getResolvedConfigId() {
2868
+ return ctaHelpers.resolveConfigId(this.botSettings);
2869
+ }
2774
2870
  loadConversation() {
2775
- var _a;
2776
2871
  this.showWelcomeScreen = false;
2777
2872
  // this.hideInput = true
2778
2873
  // this.messages = []
2779
2874
  const storedMessages = localStorage.getItem(`${this.visitorID}`);
2780
2875
  if (storedMessages) {
2781
2876
  this.conversationHistory = JSON.parse(storedMessages);
2782
- this.conversationHistory = ctaHelpers.filterConversationHistoryByProjectAndConfig(this.conversationHistory, (_a = this.botSettings._id) === null || _a === void 0 ? void 0 : _a.$oid, this.botSettings.pId);
2877
+ this.conversationHistory = ctaHelpers.filterConversationHistoryByProjectAndConfig(this.conversationHistory, this.getResolvedConfigId(), this.botSettings.pId, this.botType);
2783
2878
  // this.conversationHistory = this.conversationHistory.filter(item => item.projectId === this.botSettings?.pId)
2784
2879
  }
2785
2880
  }
@@ -2793,6 +2888,7 @@ const Ai12zBot = class {
2793
2888
  stopResponse() {
2794
2889
  this.ignoreChunks = true; // drop future chunks
2795
2890
  this.isStreaming = false;
2891
+ this.releaseSendLock();
2796
2892
  this.messages[this.messages.length - 1].isLoading = false;
2797
2893
  // this.socket.off('response');
2798
2894
  }
@@ -2894,9 +2990,12 @@ const Ai12zBot = class {
2894
2990
  this.liveAgentSessionId = "";
2895
2991
  this.liveAgentConversationId = "";
2896
2992
  this.liveAgentButtonText = "Talk to a Live Agent";
2897
- this.sendMessage(((_a = this.botSettings) === null || _a === void 0 ? void 0 : _a.llmMessageOnDisconnect) !== ""
2993
+ const llmMessage = ((_a = this.botSettings) === null || _a === void 0 ? void 0 : _a.llmMessageOnDisconnect) !== ""
2898
2994
  ? (_b = this.botSettings) === null || _b === void 0 ? void 0 : _b.llmMessageOnDisconnect
2899
- : "The live agent has been disconnected. Please do not initiate the live agent directive again.", ((_c = this.botSettings) === null || _c === void 0 ? void 0 : _c.userMessageOnDisconnect) !== "" ? (_d = this.botSettings) === null || _d === void 0 ? void 0 : _d.userMessageOnDisconnect : "The live agent has ended the conversation.", { isLiveChatEnded: true });
2995
+ : "The live agent has been disconnected. Please do not initiate the live agent directive again.";
2996
+ const displayText = ((_c = this.botSettings) === null || _c === void 0 ? void 0 : _c.userMessageOnDisconnect) !== "" ? (_d = this.botSettings) === null || _d === void 0 ? void 0 : _d.userMessageOnDisconnect : "The live agent has ended the conversation.";
2997
+ this.query = llmMessage;
2998
+ void this.handleSend(displayText, { isLiveChatEnded: true, bypassSendGuard: true });
2900
2999
  this.announce("Live agent chat ended");
2901
3000
  this.clearEvents();
2902
3001
  }
@@ -3083,11 +3182,12 @@ const Ai12zBot = class {
3083
3182
  }
3084
3183
  }
3085
3184
  async updateBotState() {
3086
- var _a, _b, _c, _d;
3087
- const sessionKey = botHelpers.getBotStateKey(this.botSettings.pId, (_a = this.botSettings._id) === null || _a === void 0 ? void 0 : _a.$oid);
3185
+ var _a;
3186
+ const configId = this.getResolvedConfigId();
3187
+ const sessionKey = botHelpers.getBotStateKey(this.botSettings.pId, configId, this.botType);
3088
3188
  let storedState = await utils.getSessionState(sessionKey);
3089
3189
  if (!storedState) {
3090
- storedState = botHelpers.getBotStateFromSession(this.botSettings.pId, (_b = this.botSettings._id) === null || _b === void 0 ? void 0 : _b.$oid);
3190
+ storedState = botHelpers.getBotStateFromSession(this.botSettings.pId, configId, this.botType);
3091
3191
  }
3092
3192
  if (typeof storedState === "string") {
3093
3193
  try {
@@ -3106,8 +3206,9 @@ const Ai12zBot = class {
3106
3206
  isExpanded: this.isExpanded,
3107
3207
  messages: this.messages,
3108
3208
  conversationId: this.conversationId,
3109
- projectId: (_c = this.botSettings) === null || _c === void 0 ? void 0 : _c.pId,
3110
- configId: (_d = this.botSettings) === null || _d === void 0 ? void 0 : _d._id.$oid,
3209
+ projectId: (_a = this.botSettings) === null || _a === void 0 ? void 0 : _a.pId,
3210
+ configId,
3211
+ botType: this.botType,
3111
3212
  newChat: this.messages.length === 0 ? true : false,
3112
3213
  isLiveAgent: this.isLiveAgent,
3113
3214
  liveAgentProviderName: this.liveAgentProviderName,
@@ -5,8 +5,8 @@ var SearchResult = require('./SearchResult-CvTJr55G.js');
5
5
  var utils = require('./utils-kaVdO3ki.js');
6
6
  var _commonjsHelpers = require('./_commonjsHelpers-MBWFX2dn.js');
7
7
  var appStore = require('./app-store-BtkiHvcw.js');
8
- var parseHelper = require('./parseHelper-CNiHFgWF.js');
9
- require('./ctaHelpers-DUkpEv0V.js');
8
+ var parseHelper = require('./parseHelper-DGQ2ETjm.js');
9
+ require('./ctaHelpers-CFn_XVtl.js');
10
10
  require('./logger-D--BUQGx.js');
11
11
 
12
12
  const categoryCss = () => `ai12z-category{font-family:var(--ai12z-font-family) !important;font-size:var(--ai12z-search-font-size, var(--ai12z-font-size)) !important}.custom-title{font-size:var(--ai12z-category-font-size);color:var(--ai12z-category-font-color)}`;
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var index = require('./index-v8T1EJAJ.js');
4
- var botHelpers = require('./botHelpers-AxnPKelf.js');
4
+ var botHelpers = require('./botHelpers-B_lFspU6.js');
5
5
  var styleSheetRegistry = require('./styleSheetRegistry-Cv84KUXj.js');
6
6
  require('./utils-kaVdO3ki.js');
7
7