ai12z 2.0.7 → 2.0.8

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 (68) hide show
  1. package/dist/cjs/ai12z-bot_10.cjs.entry.js +3 -3
  2. package/dist/cjs/ai12z-carousel.cjs.entry.js +1 -1
  3. package/dist/cjs/{ai12z-cta-7eb3dd6c.js → ai12z-cta-92484e63.js} +13 -13
  4. package/dist/cjs/ai12z-cta-92484e63.js.map +1 -0
  5. package/dist/cjs/{ai12z-knowledge-box-d6d579f8.js → ai12z-knowledge-box-c33465fe.js} +3 -3
  6. package/dist/cjs/{ai12z-knowledge-box-d6d579f8.js.map → ai12z-knowledge-box-c33465fe.js.map} +1 -1
  7. package/dist/cjs/ai12z-knowledge-box.cjs.entry.js +3 -3
  8. package/dist/cjs/ai12z-spinner.cjs.entry.js +1 -1
  9. package/dist/cjs/dynamic-form.cjs.entry.js +1 -1
  10. package/dist/cjs/{index-f098743c.js → index-171f7ecf.js} +2 -2
  11. package/dist/cjs/index-171f7ecf.js.map +1 -0
  12. package/dist/cjs/index.cjs.js +4 -4
  13. package/dist/cjs/library.cjs.js +1 -1
  14. package/dist/cjs/list-data.cjs.entry.js +1 -1
  15. package/dist/cjs/loader.cjs.js +1 -1
  16. package/dist/cjs/{utils-f0adbba9.js → utils-c9b045e3.js} +2 -2
  17. package/dist/cjs/{utils-f0adbba9.js.map → utils-c9b045e3.js.map} +1 -1
  18. package/dist/collection/components/ai12z-bot/ai12z-bot.js +8 -8
  19. package/dist/collection/components/ai12z-bot/ai12z-bot.js.map +1 -1
  20. package/dist/collection/utils/logger.js +15 -1
  21. package/dist/collection/utils/logger.js.map +1 -1
  22. package/dist/esm/ai12z-bot_10.entry.js +4 -4
  23. package/dist/esm/ai12z-carousel.entry.js +1 -1
  24. package/dist/esm/{ai12z-cta-e143bfc1.js → ai12z-cta-2b941e5b.js} +11 -11
  25. package/dist/esm/ai12z-cta-2b941e5b.js.map +1 -0
  26. package/dist/esm/{ai12z-knowledge-box-704c29af.js → ai12z-knowledge-box-aceba174.js} +3 -3
  27. package/dist/esm/{ai12z-knowledge-box-704c29af.js.map → ai12z-knowledge-box-aceba174.js.map} +1 -1
  28. package/dist/esm/ai12z-knowledge-box.entry.js +3 -3
  29. package/dist/esm/ai12z-spinner.entry.js +1 -1
  30. package/dist/esm/dynamic-form.entry.js +1 -1
  31. package/dist/esm/{index-39265a7d.js → index-9f7965fd.js} +2 -2
  32. package/dist/esm/index-9f7965fd.js.map +1 -0
  33. package/dist/esm/index.js +4 -4
  34. package/dist/esm/library.js +2 -2
  35. package/dist/esm/list-data.entry.js +1 -1
  36. package/dist/esm/loader.js +2 -2
  37. package/dist/esm/{utils-96bbd030.js → utils-a4deff47.js} +2 -2
  38. package/dist/esm/{utils-96bbd030.js.map → utils-a4deff47.js.map} +1 -1
  39. package/dist/library/index.esm.js +1 -1
  40. package/dist/library/library.esm.js +1 -1
  41. package/dist/library/p-682c54c0.js +3 -0
  42. package/dist/library/p-682c54c0.js.map +1 -0
  43. package/dist/library/{p-85691232.entry.js → p-7673db22.entry.js} +2 -2
  44. package/dist/library/{p-4fc9c2e8.js → p-973b27e2.js} +2 -2
  45. package/dist/library/{p-eeec7af3.js → p-9c383265.js} +2 -2
  46. package/dist/library/{p-eeec7af3.js.map → p-9c383265.js.map} +1 -1
  47. package/dist/library/{p-cfcf9f4d.js → p-b5fa76af.js} +2 -2
  48. package/dist/library/{p-c42b9950.entry.js → p-de0be744.entry.js} +2 -2
  49. package/dist/library/p-dea64110.entry.js +2 -0
  50. package/dist/library/{p-233361ad.entry.js → p-e81a8495.entry.js} +2 -2
  51. package/dist/library/{p-8dc9633d.entry.js → p-ed972184.entry.js} +2 -2
  52. package/dist/library/{p-b46a067b.entry.js → p-ee0c4132.entry.js} +2 -2
  53. package/package.json +2 -2
  54. package/dist/cjs/ai12z-cta-7eb3dd6c.js.map +0 -1
  55. package/dist/cjs/index-f098743c.js.map +0 -1
  56. package/dist/esm/ai12z-cta-e143bfc1.js.map +0 -1
  57. package/dist/esm/index-39265a7d.js.map +0 -1
  58. package/dist/library/p-b48f3cde.js +0 -3
  59. package/dist/library/p-b48f3cde.js.map +0 -1
  60. package/dist/library/p-e6aa7d00.entry.js +0 -2
  61. /package/dist/library/{p-85691232.entry.js.map → p-7673db22.entry.js.map} +0 -0
  62. /package/dist/library/{p-4fc9c2e8.js.map → p-973b27e2.js.map} +0 -0
  63. /package/dist/library/{p-cfcf9f4d.js.map → p-b5fa76af.js.map} +0 -0
  64. /package/dist/library/{p-c42b9950.entry.js.map → p-de0be744.entry.js.map} +0 -0
  65. /package/dist/library/{p-e6aa7d00.entry.js.map → p-dea64110.entry.js.map} +0 -0
  66. /package/dist/library/{p-233361ad.entry.js.map → p-e81a8495.entry.js.map} +0 -0
  67. /package/dist/library/{p-8dc9633d.entry.js.map → p-ed972184.entry.js.map} +0 -0
  68. /package/dist/library/{p-b46a067b.entry.js.map → p-ee0c4132.entry.js.map} +0 -0
@@ -419,7 +419,7 @@ export class Ai12zBot {
419
419
  });
420
420
  }
421
421
  updateConversations(finalHtml, data) {
422
- var _a, _b, _c;
422
+ var _a, _b, _c, _d;
423
423
  const updatedmsg = {
424
424
  id: this.currentDomId,
425
425
  text: finalHtml,
@@ -427,7 +427,7 @@ export class Ai12zBot {
427
427
  timestamp: new Date().toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" }),
428
428
  images: [],
429
429
  conversationId: this.conversationId,
430
- formModel: (_c = (_b = (_a = data.controlData) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.source) !== null && _c !== void 0 ? _c : {},
430
+ formModel: (_d = (_c = (_b = (_a = data.controlData) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.source) !== null && _c !== void 0 ? _c : data.controlData) !== null && _d !== void 0 ? _d : {},
431
431
  surveyDomId: this.surveyDomId,
432
432
  };
433
433
  this.addEventListeners(`#${this.currentDomId}`);
@@ -650,26 +650,26 @@ export class Ai12zBot {
650
650
  width: (_b = (_a = this.botSettings) === null || _a === void 0 ? void 0 : _a.botWidth) !== null && _b !== void 0 ? _b : "35%",
651
651
  height: (_d = (_c = this.botSettings) === null || _c === void 0 ? void 0 : _c.botHeight) !== null && _d !== void 0 ? _d : "80%",
652
652
  };
653
- return (h("div", { key: 'ce24ff53cc3859f16fc379e17a699938b41d9518' }, h("div", { key: 'ab88c5c22d09b10c22ae1d4d8cf55c515342b5ca', class: {
653
+ return (h("div", { key: 'e203cff051f2fa637b4dea3b74e91567476916f1' }, h("div", { key: '0060110723f316ac85ea2e822e4e9fc60a9ac099', class: {
654
654
  "right": ((_f = this.botSettings) === null || _f === void 0 ? void 0 : _f.botPosition) === "right",
655
655
  "left": ((_g = this.botSettings) === null || _g === void 0 ? void 0 : _g.botPosition) === "left",
656
656
  "custom-floating-icon ": this.isBot,
657
657
  "hide-chatbot": this.isChatOpen,
658
- }, onClick: () => this.action("open") }, !this.isBot && ((_h = this.botSettings) === null || _h === void 0 ? void 0 : _h.botPosition) && this.defaultTemplate(), this.isBot && h("slot", { key: '5ebadd46a2b76cd497bc37bcc2f48c095151ac69', name: "bot" })), !this.isChatOpen && ((_k = (_j = this.botSettings) === null || _j === void 0 ? void 0 : _j.popover) === null || _k === void 0 ? void 0 : _k.returnMessage) && h("bot-popover", { key: '39c22121a8aecf072fe709d52ed3339fb484a288', popoverConfig: (_l = this.botSettings) === null || _l === void 0 ? void 0 : _l.popover }), this.isChatOpen && (h("div", { key: 'f7b6f0bfd8c5cd92c3ae6e100eaf3c3cd42c3343', class: {
658
+ }, onClick: () => this.action("open") }, !this.isBot && ((_h = this.botSettings) === null || _h === void 0 ? void 0 : _h.botPosition) && this.defaultTemplate(), this.isBot && h("slot", { key: '2b34cc1ef63ea7657975c9e8f297523d06e8f2c7', name: "bot" })), !this.isChatOpen && ((_k = (_j = this.botSettings) === null || _j === void 0 ? void 0 : _j.popover) === null || _k === void 0 ? void 0 : _k.returnMessage) && h("bot-popover", { key: 'b9adaf06beabeae5288db51ebfc6aa1ffca72850', popoverConfig: (_l = this.botSettings) === null || _l === void 0 ? void 0 : _l.popover }), this.isChatOpen && (h("div", { key: 'eb8487c7ab9df9f7e1cd1b4c6081b2728e5f46a2', class: {
659
659
  "chat-window": true,
660
660
  "chat-window-open": this.isChatOpen,
661
661
  "chat-window-close": !this.isChatOpen,
662
662
  "chat-right": ((_m = this.botSettings) === null || _m === void 0 ? void 0 : _m.botPosition) === "right",
663
663
  "chat-left": ((_o = this.botSettings) === null || _o === void 0 ? void 0 : _o.botPosition) === "left",
664
- }, style: style }, !this.hideInput && (h("div", { key: 'd7c7c96ae2bc310593108910cf07a9ca8841dd2f', class: "chat-header" }, ((_q = (_p = this.botSettings) === null || _p === void 0 ? void 0 : _p.buttons) === null || _q === void 0 ? void 0 : _q.length) > 0 && (h("button", { key: 'ca008f9137da10de1286bf3e112805e429bf26e4', class: "hamburger", onClick: e => this.toggleMenu(e) }, "\u2630 ")), h("img", { key: 'bfd98efa2a295e7703855af743ad8cdc5a4e3d01', class: "avatar", src: (_s = (_r = this.botSettings) === null || _r === void 0 ? void 0 : _r.botLogo) !== null && _s !== void 0 ? _s : this.botlogo, alt: "Avatar" }), h("span", { key: '9f4c7a2cf0774852630e4c0be71c301991806cc3', class: "chat-name" }, (_t = this.botSettings) === null || _t === void 0 ? void 0 : _t.botName), this.showHistory && (h("button", { key: 'd2c0ca77ae4d800a97ad91e35d84be6d27b727ec', onClick: () => this.loadConversation() }, h("svg", { key: 'e3527909317f464827e58a08e9f5dbd3dd83617c', viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: "#ffffff", width: "25", height: "25" }, h("path", { key: '432fd4bc5ec9bda9c4f0a08f2b31836de43a0dd7', fill: "none", d: "M0 0L24 0 24 24 0 24z" }), " ", h("path", { key: '7523d8cc3ee9a4b92216ceb9dc76b5d5467c7c31', d: "M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10c-1.702 0-3.305-.425-4.708-1.175L2 22l1.176-5.29C2.426 15.306 2 13.703 2 12 2 6.477 6.477 2 12 2zm0 2c-4.418 0-8 3.582-8 8 0 1.335.326 2.618.94 3.766l.35.654-.656 2.946 2.948-.654.653.349c1.148.614 2.43.939 3.765.939 4.418 0 8-3.582 8-8s-3.582-8-8-8zm1 3v5h4v2h-6V7h2z" }), " "))), h("button", { key: 'd7fd155d02c2f14d16ee4077e23a6d3e74a7094e', class: "minimizebtn", onClick: () => this.action("minimize") }, h("svg", { key: '406ecb25337b5da17766552984f29cdc29678f62', fill: "white", height: "20px", width: "20px", version: "1.1", id: "Layer_1", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512" }, h("path", { key: '6381342ac54824edce3460477e88da169ba4d683', d: "M505.752,6.248c-8.331-8.331-21.839-8.331-30.17,0L320,161.83V64c0-11.782-9.551-21.333-21.333-21.333 c-11.782,0-21.333,9.551-21.333,21.333v149.333c0,0.007,0.001,0.015,0.001,0.022c0.001,0.695,0.037,1.39,0.105,2.083 c0.031,0.318,0.091,0.627,0.136,0.94c0.054,0.375,0.098,0.75,0.171,1.122c0.071,0.359,0.17,0.708,0.259,1.061 c0.081,0.322,0.151,0.645,0.248,0.964c0.105,0.346,0.234,0.68,0.356,1.018c0.114,0.318,0.219,0.639,0.349,0.953 c0.131,0.316,0.284,0.618,0.43,0.926c0.152,0.323,0.296,0.649,0.465,0.966c0.158,0.295,0.338,0.575,0.509,0.861 c0.186,0.311,0.361,0.626,0.564,0.929c0.211,0.316,0.447,0.613,0.674,0.917c0.19,0.253,0.365,0.513,0.568,0.759 c0.892,1.087,1.889,2.085,2.977,2.977c0.246,0.202,0.506,0.378,0.759,0.568c0.304,0.228,0.601,0.463,0.917,0.674 c0.303,0.203,0.618,0.379,0.929,0.564c0.286,0.171,0.566,0.351,0.861,0.509c0.317,0.169,0.643,0.313,0.966,0.465 c0.308,0.145,0.611,0.299,0.926,0.43c0.314,0.13,0.635,0.235,0.953,0.349c0.338,0.122,0.672,0.251,1.018,0.356 c0.318,0.096,0.642,0.167,0.964,0.248c0.353,0.089,0.701,0.188,1.061,0.259c0.372,0.074,0.748,0.118,1.122,0.171 c0.314,0.045,0.622,0.104,0.94,0.136c0.693,0.068,1.388,0.105,2.083,0.105c0.007,0,0.015,0.001,0.022,0.001H448 c11.782,0,21.333-9.551,21.333-21.333c0-11.782-9.551-21.333-21.333-21.333h-97.83L505.752,36.418 C514.083,28.087,514.083,14.58,505.752,6.248z" }), " ", h("path", { key: 'cbe6c1ef746beef378c23630e470a188158b7636', d: "M234.56,296.562c-0.031-0.318-0.091-0.627-0.136-0.94c-0.054-0.375-0.098-0.75-0.171-1.122 c-0.071-0.359-0.17-0.708-0.259-1.061c-0.081-0.322-0.151-0.645-0.248-0.964c-0.105-0.346-0.234-0.68-0.356-1.018 c-0.114-0.318-0.219-0.639-0.349-0.953c-0.131-0.316-0.284-0.618-0.43-0.926c-0.152-0.323-0.296-0.649-0.465-0.966 c-0.158-0.295-0.338-0.575-0.509-0.861c-0.186-0.311-0.361-0.626-0.564-0.929c-0.211-0.316-0.447-0.613-0.674-0.917 c-0.19-0.253-0.365-0.513-0.568-0.759c-0.892-1.087-1.889-2.085-2.977-2.977c-0.246-0.202-0.506-0.378-0.759-0.568 c-0.304-0.228-0.601-0.463-0.917-0.674c-0.303-0.203-0.618-0.379-0.929-0.564c-0.286-0.171-0.566-0.351-0.861-0.509 c-0.317-0.169-0.643-0.313-0.966-0.465c-0.308-0.145-0.611-0.299-0.926-0.43c-0.314-0.13-0.635-0.235-0.953-0.349 c-0.338-0.122-0.672-0.251-1.018-0.356c-0.318-0.096-0.642-0.167-0.964-0.248c-0.353-0.089-0.701-0.188-1.061-0.259 c-0.372-0.074-0.748-0.118-1.122-0.171c-0.314-0.045-0.622-0.104-0.94-0.136c-0.7-0.069-1.402-0.106-2.105-0.106l0,0H64 c-11.782,0-21.333,9.551-21.333,21.333C42.667,310.449,52.218,320,64,320h97.83L6.248,475.582c-8.331,8.331-8.331,21.839,0,30.17 c8.331,8.331,21.839,8.331,30.17,0L192,350.17V448c0,11.782,9.551,21.333,21.333,21.333c11.782,0,21.333-9.551,21.333-21.333 V298.667l0,0C234.667,297.964,234.629,297.262,234.56,296.562z" }), " ")), h("button", { key: '90c14b7c71960234c7d4bac8b62cb411cf98e06b', class: "close-btn", onClick: () => this.action("close") }, h("svg", { key: '9f87d50a4877cbb756ba5ff19bbea5c546c9d0bd', "aria-hidden": "true", width: "25", height: "13", viewBox: "0 0 23 23", fill: "none" }, h("path", { key: 'adf563fdab85f475b19e43708568c6d35979d1a3', "fill-rule": "evenodd", "clip-rule": "evenodd", fill: "white", d: "M9.34583 11.2L0.384011 2.23818C-0.128004 1.72617 -0.128004 0.896026 0.384011 0.384011C0.896026 -0.128004 1.72617 -0.128004 2.23818 0.384011L11.2 9.34583L20.1618 0.384011C20.6738 -0.128004 21.504 -0.128004 22.016 0.384011C22.528 0.896026 22.528 1.72617 22.016 2.23818L13.0542 11.2L22.016 20.1618C22.528 20.6738 22.528 21.504 22.016 22.016C21.504 22.528 20.6738 22.528 20.1618 22.016L11.2 13.0542L2.23818 22.016C1.72617 22.528 0.896026 22.528 0.384011 22.016C-0.128003 21.504 -0.128003 20.6738 0.384011 20.1618L9.34583 11.2Z" }))))), h("div", { key: '135cbb31882dab3b0348afd9459de05defa1c98e', class: `menu ${this.isMenuOpen ? "open" : "closed"}`, ref: el => (this.menuRef = el) }, h("ul", { key: '8c9aa4d159b9e82ab281eee96368c2e4a34ff69b' }, (_v = (_u = this.botSettings) === null || _u === void 0 ? void 0 : _u.buttons) === null || _v === void 0 ? void 0 : _v.map(item => (h("li", { onClick: () => {
664
+ }, style: style }, !this.hideInput && (h("div", { key: 'cc145ee117efff71b1ab6d194e1dd1614d200208', class: "chat-header" }, ((_q = (_p = this.botSettings) === null || _p === void 0 ? void 0 : _p.buttons) === null || _q === void 0 ? void 0 : _q.length) > 0 && (h("button", { key: '8604e94f8a90cf4957392747cfac6288d8d7a6c5', class: "hamburger", onClick: e => this.toggleMenu(e) }, "\u2630 ")), h("img", { key: 'bf233682fbf60e0d0275d0eb0856f74c33368ec4', class: "avatar", src: (_s = (_r = this.botSettings) === null || _r === void 0 ? void 0 : _r.botLogo) !== null && _s !== void 0 ? _s : this.botlogo, alt: "Avatar" }), h("span", { key: 'd49e3c1aa4930bb9a607e13b7188da646d091a03', class: "chat-name" }, (_t = this.botSettings) === null || _t === void 0 ? void 0 : _t.botName), this.showHistory && (h("button", { key: '88f0dffc307ee3b4f6a699b8b9fa65bfb59dfb33', onClick: () => this.loadConversation() }, h("svg", { key: '4bec42dc70f1f446aa0e2effb43548c6cfe5a631', viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: "#ffffff", width: "25", height: "25" }, h("path", { key: '7dd04e7a811ee086ba7bd556c50950c6226e9ea7', fill: "none", d: "M0 0L24 0 24 24 0 24z" }), " ", h("path", { key: 'bab30ebb72c626ed805a63da1e65c8575a068a81', d: "M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10c-1.702 0-3.305-.425-4.708-1.175L2 22l1.176-5.29C2.426 15.306 2 13.703 2 12 2 6.477 6.477 2 12 2zm0 2c-4.418 0-8 3.582-8 8 0 1.335.326 2.618.94 3.766l.35.654-.656 2.946 2.948-.654.653.349c1.148.614 2.43.939 3.765.939 4.418 0 8-3.582 8-8s-3.582-8-8-8zm1 3v5h4v2h-6V7h2z" }), " "))), h("button", { key: 'f4c70a5d3f1f355d5ae3d172b08f7c8e3122155f', class: "minimizebtn", onClick: () => this.action("minimize") }, h("svg", { key: 'db501702b415e7a57729b5ef7b057d144d454d27', fill: "white", height: "20px", width: "20px", version: "1.1", id: "Layer_1", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512" }, h("path", { key: '4e0d2aa370dfa4ecdc372f8ddf66de81de799251', d: "M505.752,6.248c-8.331-8.331-21.839-8.331-30.17,0L320,161.83V64c0-11.782-9.551-21.333-21.333-21.333 c-11.782,0-21.333,9.551-21.333,21.333v149.333c0,0.007,0.001,0.015,0.001,0.022c0.001,0.695,0.037,1.39,0.105,2.083 c0.031,0.318,0.091,0.627,0.136,0.94c0.054,0.375,0.098,0.75,0.171,1.122c0.071,0.359,0.17,0.708,0.259,1.061 c0.081,0.322,0.151,0.645,0.248,0.964c0.105,0.346,0.234,0.68,0.356,1.018c0.114,0.318,0.219,0.639,0.349,0.953 c0.131,0.316,0.284,0.618,0.43,0.926c0.152,0.323,0.296,0.649,0.465,0.966c0.158,0.295,0.338,0.575,0.509,0.861 c0.186,0.311,0.361,0.626,0.564,0.929c0.211,0.316,0.447,0.613,0.674,0.917c0.19,0.253,0.365,0.513,0.568,0.759 c0.892,1.087,1.889,2.085,2.977,2.977c0.246,0.202,0.506,0.378,0.759,0.568c0.304,0.228,0.601,0.463,0.917,0.674 c0.303,0.203,0.618,0.379,0.929,0.564c0.286,0.171,0.566,0.351,0.861,0.509c0.317,0.169,0.643,0.313,0.966,0.465 c0.308,0.145,0.611,0.299,0.926,0.43c0.314,0.13,0.635,0.235,0.953,0.349c0.338,0.122,0.672,0.251,1.018,0.356 c0.318,0.096,0.642,0.167,0.964,0.248c0.353,0.089,0.701,0.188,1.061,0.259c0.372,0.074,0.748,0.118,1.122,0.171 c0.314,0.045,0.622,0.104,0.94,0.136c0.693,0.068,1.388,0.105,2.083,0.105c0.007,0,0.015,0.001,0.022,0.001H448 c11.782,0,21.333-9.551,21.333-21.333c0-11.782-9.551-21.333-21.333-21.333h-97.83L505.752,36.418 C514.083,28.087,514.083,14.58,505.752,6.248z" }), " ", h("path", { key: 'b826ebcff4c796110914a233b859325822c8af97', d: "M234.56,296.562c-0.031-0.318-0.091-0.627-0.136-0.94c-0.054-0.375-0.098-0.75-0.171-1.122 c-0.071-0.359-0.17-0.708-0.259-1.061c-0.081-0.322-0.151-0.645-0.248-0.964c-0.105-0.346-0.234-0.68-0.356-1.018 c-0.114-0.318-0.219-0.639-0.349-0.953c-0.131-0.316-0.284-0.618-0.43-0.926c-0.152-0.323-0.296-0.649-0.465-0.966 c-0.158-0.295-0.338-0.575-0.509-0.861c-0.186-0.311-0.361-0.626-0.564-0.929c-0.211-0.316-0.447-0.613-0.674-0.917 c-0.19-0.253-0.365-0.513-0.568-0.759c-0.892-1.087-1.889-2.085-2.977-2.977c-0.246-0.202-0.506-0.378-0.759-0.568 c-0.304-0.228-0.601-0.463-0.917-0.674c-0.303-0.203-0.618-0.379-0.929-0.564c-0.286-0.171-0.566-0.351-0.861-0.509 c-0.317-0.169-0.643-0.313-0.966-0.465c-0.308-0.145-0.611-0.299-0.926-0.43c-0.314-0.13-0.635-0.235-0.953-0.349 c-0.338-0.122-0.672-0.251-1.018-0.356c-0.318-0.096-0.642-0.167-0.964-0.248c-0.353-0.089-0.701-0.188-1.061-0.259 c-0.372-0.074-0.748-0.118-1.122-0.171c-0.314-0.045-0.622-0.104-0.94-0.136c-0.7-0.069-1.402-0.106-2.105-0.106l0,0H64 c-11.782,0-21.333,9.551-21.333,21.333C42.667,310.449,52.218,320,64,320h97.83L6.248,475.582c-8.331,8.331-8.331,21.839,0,30.17 c8.331,8.331,21.839,8.331,30.17,0L192,350.17V448c0,11.782,9.551,21.333,21.333,21.333c11.782,0,21.333-9.551,21.333-21.333 V298.667l0,0C234.667,297.964,234.629,297.262,234.56,296.562z" }), " ")), h("button", { key: '47c6fd0add3e92994cd6c027b4a45e51cfa8ea3a', class: "close-btn", onClick: () => this.action("close") }, h("svg", { key: '024b7de7d04ac3d15385f6484663a87f653c7b3f', "aria-hidden": "true", width: "25", height: "13", viewBox: "0 0 23 23", fill: "none" }, h("path", { key: '22d428253ee54170437a4c4e7b7402d3163526a2', "fill-rule": "evenodd", "clip-rule": "evenodd", fill: "white", d: "M9.34583 11.2L0.384011 2.23818C-0.128004 1.72617 -0.128004 0.896026 0.384011 0.384011C0.896026 -0.128004 1.72617 -0.128004 2.23818 0.384011L11.2 9.34583L20.1618 0.384011C20.6738 -0.128004 21.504 -0.128004 22.016 0.384011C22.528 0.896026 22.528 1.72617 22.016 2.23818L13.0542 11.2L22.016 20.1618C22.528 20.6738 22.528 21.504 22.016 22.016C21.504 22.528 20.6738 22.528 20.1618 22.016L11.2 13.0542L2.23818 22.016C1.72617 22.528 0.896026 22.528 0.384011 22.016C-0.128003 21.504 -0.128003 20.6738 0.384011 20.1618L9.34583 11.2Z" }))))), h("div", { key: 'e9b7cf5546f2a29c30f3cbd5573b39046a02125e', class: `menu ${this.isMenuOpen ? "open" : "closed"}`, ref: el => (this.menuRef = el) }, h("ul", { key: '20c8c7428e8e013f779300628be71a6ea791a28f' }, (_v = (_u = this.botSettings) === null || _u === void 0 ? void 0 : _u.buttons) === null || _v === void 0 ? void 0 : _v.map(item => (h("li", { onClick: () => {
665
665
  this.isMenuOpen = !this.isMenuOpen;
666
666
  this.menuAction = item.action;
667
667
  this.handleSend(item.label);
668
- } }, item.label))))), this.hideInput && (h("div", { key: 'd166fa21d0ee4143f145fe5870d8ed6a1e26e2da', class: "chat-header" }, h("button", { key: '3d85085fa1bc06b7f2b7d83c0fdb19d71e6d3c8a', onClick: () => {
668
+ } }, item.label))))), this.hideInput && (h("div", { key: 'f5dba3aeca8e2cd63fb3f4876ad006e2e2901277', class: "chat-header" }, h("button", { key: '3657db986f568dc700f79bf0a958a594737d863c', onClick: () => {
669
669
  this.showWelcomeScreen = true;
670
670
  this.hideInput = false;
671
671
  this.checkHistory();
672
- } }, h("svg", { key: '8318859ebfed0322009190eac0e58f96d82cd02e', "aria-hidden": "true", width: "20", height: "20", viewBox: "0 0 10 19" }, h("path", { key: '4688abab773bee8d9e7729af60f29713fe0d525e', fill: "#FFFFFF", d: "M9.70711 0.542893C10.0976 0.933418 10.0976 1.56658 9.70711 1.95711L2.41421 9.25L9.70711 16.5429C10.0976 16.9334 10.0976 17.5666 9.70711 17.9571C9.31658 18.3476 8.68342 18.3476 8.29289 17.9571L0.292893 9.95711C0.105357 9.76957 -4.04995e-07 9.51522 -3.93402e-07 9.25C-3.81809e-07 8.98478 0.105357 8.73043 0.292893 8.54289L8.29289 0.542893C8.68342 0.152369 9.31658 0.152369 9.70711 0.542893Z", "clip-rule": "evenodd", "fill-rule": "evenodd" }))), h("span", { key: 'f37121db15f0fc8984a54d3f2799deeea44cdfa4', class: "header-title" }, "Conversation History"))), h("div", { key: 'fc22fde049397618a1b5ba8963712efbeecddde1', class: "chat-body" }, this.showWelcomeScreen && (h("chatbot-welcome", { key: 'a5d7cba95eeeeaf5756586b992f4f1009ac4c507', welcomeMessage: (_x = (_w = this.botSettings) === null || _w === void 0 ? void 0 : _w.welcome) === null || _x === void 0 ? void 0 : _x.message, buttonsList: (_z = (_y = this.botSettings) === null || _y === void 0 ? void 0 : _y.welcome) === null || _z === void 0 ? void 0 : _z.buttons, welcomelogo: (_1 = (_0 = this.botSettings) === null || _0 === void 0 ? void 0 : _0.welcome) === null || _1 === void 0 ? void 0 : _1.image })), this.showHistory && this.conversationHistory.length > 0 && this.hideInput && (h("chatbot-history", { key: '26d4fb36aaf5f62afe511a5a2f4a31214f318c8c', chatList: this.conversationHistory, botName: (_2 = this.botSettings) === null || _2 === void 0 ? void 0 : _2.botName })), !this.showWelcomeScreen && this.messages.length > 0 && h("p", { key: 'cfdda3439616f6f637be2a60af3cc43d5b8675be', class: "timestamp" }, this.timestamp), !this.showWelcomeScreen &&
672
+ } }, h("svg", { key: 'ecd16f8fd6f21b2b0a8195121adabf356217fab9', "aria-hidden": "true", width: "20", height: "20", viewBox: "0 0 10 19" }, h("path", { key: '625fb4fb39b7818eacd0a10e3bdefafdbee6ce38', fill: "#FFFFFF", d: "M9.70711 0.542893C10.0976 0.933418 10.0976 1.56658 9.70711 1.95711L2.41421 9.25L9.70711 16.5429C10.0976 16.9334 10.0976 17.5666 9.70711 17.9571C9.31658 18.3476 8.68342 18.3476 8.29289 17.9571L0.292893 9.95711C0.105357 9.76957 -4.04995e-07 9.51522 -3.93402e-07 9.25C-3.81809e-07 8.98478 0.105357 8.73043 0.292893 8.54289L8.29289 0.542893C8.68342 0.152369 9.31658 0.152369 9.70711 0.542893Z", "clip-rule": "evenodd", "fill-rule": "evenodd" }))), h("span", { key: '5547409e34ef1b74120466af8a201f47852803a5', class: "header-title" }, "Conversation History"))), h("div", { key: 'bda3338fc7a140c88b27735d9db8fe9e934ef03a', class: "chat-body" }, this.showWelcomeScreen && (h("chatbot-welcome", { key: '75051ec276ba4251a5549d702858a292697fd410', welcomeMessage: (_x = (_w = this.botSettings) === null || _w === void 0 ? void 0 : _w.welcome) === null || _x === void 0 ? void 0 : _x.message, buttonsList: (_z = (_y = this.botSettings) === null || _y === void 0 ? void 0 : _y.welcome) === null || _z === void 0 ? void 0 : _z.buttons, welcomelogo: (_1 = (_0 = this.botSettings) === null || _0 === void 0 ? void 0 : _0.welcome) === null || _1 === void 0 ? void 0 : _1.image })), this.showHistory && this.conversationHistory.length > 0 && this.hideInput && (h("chatbot-history", { key: '9db352c048804c4dba59301e61f028cbea101d3c', chatList: this.conversationHistory, botName: (_2 = this.botSettings) === null || _2 === void 0 ? void 0 : _2.botName })), !this.showWelcomeScreen && this.messages.length > 0 && h("p", { key: 'a068df0252edadf97fc20222be1acc38f752d342', class: "timestamp" }, this.timestamp), !this.showWelcomeScreen &&
673
673
  this.messages.length > 0 &&
674
674
  this.messages.map(msg => {
675
675
  var _a, _b, _c;
@@ -677,7 +677,7 @@ export class Ai12zBot {
677
677
  _c.map(img => {
678
678
  return h("img", { src: img, class: "thumbnail", alt: "thumbnail" });
679
679
  }), !msg.isUser && msg.text === "" && (h("svg", { class: "animate-spin h-5 w-5 text-gray-400", xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", id: "spinner" }, h("circle", { class: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", "stroke-width": "4" }), h("path", { class: "opacity-75", fill: "currentColor", d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 0 1 4 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z" })))), h("span", { class: "message-timestamp" }, msg.timestamp)))));
680
- })), h("div", { key: 'a4d92c6e981394a183e81e426b68277bd4971e62', id: "previewContainer" }), !this.hideInput && (h("div", { key: '43c209b2a6987c6a5f6949f6cb950cd008eb4225', class: "chat-footer" }, this.messages.length === 0 && (h("div", { key: '1e02dbf08ea4267d040442bfa19daa9d3e9b268a', class: "custom-privacy" }, h("slot", { key: '98a8362490c3deaec589c11e9777a5a114e74a8d', name: "custom-privacy" }))), ((_3 = this.messages) === null || _3 === void 0 ? void 0 : _3.length) > 0 && (h("div", { key: 'a8cb213fe64e06ad1155a9c717f7805516f1e424', class: "follow-up" }, h("input", { key: 'e4908b2a14fb907f186f36120a9e5dba60fe646f', ref: el => (this.followUpElem = el), type: "checkbox", name: "followUp", id: "followUp", defaultChecked: true, class: "follow-up-input", onChange: ev => this.handleFollowUp(ev) }), h("label", { key: '1310f3b8822b387c4dc57c5efc387ad913382996', htmlFor: "followUp" }, "Do you have a follow up question?"), h("svg", { key: '0bf8bbe18f559979ee24b1467dc9003580c507be', onClick: () => this.followUpElem.click(), class: "custom-svg-checkbox\n peer-checked:block text-white", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "4", "stroke-linecap": "round", "stroke-linejoin": "round" }, h("polyline", { key: 'b0812d5684019e24583e68045fc6042bc1f202c0', points: "20 6 9 17 4 12" })))), h("div", { key: '03e774c58bc74ffeb39da1a8d80effdd1ddc7f3a', style: { display: "flex" } }, h("textarea", { key: 'ac19e4f9189f1a42a5bd46d964b64f9874ce6396', rows: this.rowCount, placeholder: (_5 = (_4 = this.botSettings) === null || _4 === void 0 ? void 0 : _4.botPlaceholderText) !== null && _5 !== void 0 ? _5 : "Type your message...", ref: el => (this.inputEl = el), onKeyUp: this.adjustHeight }), this.botSettings.imageUpload && (h("div", { key: '7c2eb89692327e9e13190abeaaf462c0edda4a96', class: "custom-attachment" }, h("input", { key: '48390916c46de3aec4af5a8c1533abceb622975b', type: "file", multiple: true, name: "files[]", id: "fileInput", accept: "image/*", class: "image-upload__input", onChange: ($event) => this.onInputChange($event.target.files), ref: el => (this.uploadElem = el) }), h("svg", { key: '593f59d4a4c4c7082e54f6babcc2833723186369', onClick: () => this.uploadElem.click(), "aria-hidden": "true", width: "18", height: "16", viewBox: "0 0 16 18" }, h("path", { key: 'b1a3537e05a2d559f95fa097efccc0f79143f685', fill: "#687882", "fill-rule": "evenodd", d: "M8.078 16a.71.71 0 0 1-.513-.222.784.784 0 0 1 0-1.075l7.53-7.879c.562-.587.871-1.368.871-2.199 0-.83-.31-1.611-.87-2.197a2.883 2.883 0 0 0-4.204 0l-8.735 9.139c-.493.516-.73 1.012-.703 1.476.026.452.298.801.46.968.27.284.563.402.892.358.413-.054.888-.35 1.375-.86l6.854-7.172a.703.703 0 0 1 1.026 0 .784.784 0 0 1 0 1.074l-6.853 7.172c-.728.761-1.475 1.196-2.222 1.293-.783.102-1.509-.172-2.1-.79-.528-.553-.841-1.246-.881-1.952-.053-.917.326-1.805 1.125-2.64l8.735-9.14a4.292 4.292 0 0 1 6.257 0 4.706 4.706 0 0 1 1.296 3.271c0 1.236-.461 2.4-1.296 3.274l-7.53 7.879a.71.71 0 0 1-.514.222z" })))), h("button", { key: '7085079dca222acb7f1112d78f0bd60d3ea3b017', onClick: () => this.handleSend(this.inputEl.value) }, h("svg", { key: '6285c9667e2c879d539cff99eb99d343a690c979', "aria-hidden": "true", width: "17", height: "16", viewBox: "0 0 17 16" }, h("path", { key: '42ffd4e4fc65fbc1072c5ad0275414354341ebfc', fill: "#687882", "fill-rule": "evenodd", stroke: "#687882", "stroke-linecap": "round", "stroke-linejoin": "round", d: "M1 1l2.166 5.39 8.5 1.564-8.5 1.666L1 15l16-7z" }))))))))));
680
+ })), h("div", { key: '2f00cc2e06861c20ce468146ca9da65cb4a02241', id: "previewContainer" }), !this.hideInput && (h("div", { key: '896d3634aa68465dee10ed5416e0046d6ba5d2e6', class: "chat-footer" }, this.messages.length === 0 && (h("div", { key: 'ced0cc3718ca83f3667a4692215e78e16e5250c1', class: "custom-privacy" }, h("slot", { key: 'a86fbfceadd1096cf57f6ca8e465c1b29ac92ee6', name: "custom-privacy" }))), ((_3 = this.messages) === null || _3 === void 0 ? void 0 : _3.length) > 0 && (h("div", { key: '9a36a3a9c8388292219432489df79abacb94a0dd', class: "follow-up" }, h("input", { key: 'fb02065c2f4246d583a034d50dddf5cb68c6ecef', ref: el => (this.followUpElem = el), type: "checkbox", name: "followUp", id: "followUp", defaultChecked: true, class: "follow-up-input", onChange: ev => this.handleFollowUp(ev) }), h("label", { key: 'b17fdc6072e821328c80e6dc4b32cc33b9100df1', htmlFor: "followUp" }, "Do you have a follow up question?"), h("svg", { key: 'aa2e080da7394efb19d8d9b6cf23d732ae1f8023', onClick: () => this.followUpElem.click(), class: "custom-svg-checkbox\n peer-checked:block text-white", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "4", "stroke-linecap": "round", "stroke-linejoin": "round" }, h("polyline", { key: '0dcd7ba1405e93d6450d4fb7755bdb57b017af5d', points: "20 6 9 17 4 12" })))), h("div", { key: '522b0d3681a0a26f4c7fc65f72d0a0176acd74ab', style: { display: "flex" } }, h("textarea", { key: '04e8f923c4ff9eee252a05cceb7013c6c4ba83dd', rows: this.rowCount, placeholder: (_5 = (_4 = this.botSettings) === null || _4 === void 0 ? void 0 : _4.botPlaceholderText) !== null && _5 !== void 0 ? _5 : "Type your message...", ref: el => (this.inputEl = el), onKeyUp: this.adjustHeight }), this.botSettings.imageUpload && (h("div", { key: '54b01d06596e8c00ef02dca5d988964d8f9aae19', class: "custom-attachment" }, h("input", { key: 'c872a67300ce5e1b4bd6a551adf6b75f1b943aff', type: "file", multiple: true, name: "files[]", id: "fileInput", accept: "image/*", class: "image-upload__input", onChange: ($event) => this.onInputChange($event.target.files), ref: el => (this.uploadElem = el) }), h("svg", { key: '1b40497621a3f30a04055b8fd354d002ad919484', onClick: () => this.uploadElem.click(), "aria-hidden": "true", width: "18", height: "16", viewBox: "0 0 16 18" }, h("path", { key: 'a27c86bf50d1f300c19ff2225cbb19a78bab36d8', fill: "#687882", "fill-rule": "evenodd", d: "M8.078 16a.71.71 0 0 1-.513-.222.784.784 0 0 1 0-1.075l7.53-7.879c.562-.587.871-1.368.871-2.199 0-.83-.31-1.611-.87-2.197a2.883 2.883 0 0 0-4.204 0l-8.735 9.139c-.493.516-.73 1.012-.703 1.476.026.452.298.801.46.968.27.284.563.402.892.358.413-.054.888-.35 1.375-.86l6.854-7.172a.703.703 0 0 1 1.026 0 .784.784 0 0 1 0 1.074l-6.853 7.172c-.728.761-1.475 1.196-2.222 1.293-.783.102-1.509-.172-2.1-.79-.528-.553-.841-1.246-.881-1.952-.053-.917.326-1.805 1.125-2.64l8.735-9.14a4.292 4.292 0 0 1 6.257 0 4.706 4.706 0 0 1 1.296 3.271c0 1.236-.461 2.4-1.296 3.274l-7.53 7.879a.71.71 0 0 1-.514.222z" })))), h("button", { key: '323f81a8c147e2070ca40919aa63198500039b4d', onClick: () => this.handleSend(this.inputEl.value) }, h("svg", { key: '931be4df1c157f47b4a670d87469289d2c39db18', "aria-hidden": "true", width: "17", height: "16", viewBox: "0 0 17 16" }, h("path", { key: '00c3efefd7080b3f520e1c5753c8efed7d95e664', fill: "#687882", "fill-rule": "evenodd", stroke: "#687882", "stroke-linecap": "round", "stroke-linejoin": "round", d: "M1 1l2.166 5.39 8.5 1.564-8.5 1.666L1 15l16-7z" }))))))))));
681
681
  }
682
682
  static get is() { return "ai12z-bot"; }
683
683
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"ai12z-bot.js","sourceRoot":"","sources":["../../../src/components/ai12z-bot/ai12z-bot.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, State, Prop, Element, Watch, Listen, Event, EventEmitter, Method } from \"@stencil/core\"\nimport { io, Socket } from \"socket.io-client\"\nimport showdown from \"showdown\"\nimport { getEndpoint, generateUUID, updateButtonEvents, getBotConfig, getOrCreateVisitorId, getComponentByControlType, splitContent } from \"../../utils/utils\"\n\n// import $ from \"jquery\"\n// import { Model } from \"survey-jquery\"\n\n@Component({\n tag: \"ai12z-bot\",\n styleUrls: [\"./ai12z-bot.css\", \"../../global/tailwind.min.css\", \"../../global/survey.min.css\"],\n shadow: true,\n})\nexport class Ai12zBot {\n private cdnPath: string = \"https://cdn.ai12z.net/assets/bot\"\n @Element() el: HTMLElement\n @Prop() assetPath: string = import.meta.url\n @Prop({ reflect: true }) dataKey: string\n @Prop({ reflect: true }) dataMode: string\n @Prop({ reflect: true }) configId: string\n\n @State() botSettings: any = {}\n\n @State() botlogo: string = this.cdnPath + `/v1/ai12z-bot/img/chatbot.jpg`\n @State() botAvatar: string = this.cdnPath + `/v1/ai12z-bot/img/chatbot.jpg`\n\n @State() showWelcomeScreen: boolean = true\n @State() hideInput: boolean = false\n @State() showHistory: boolean = false\n @State() conversationId: string = \"\"\n @State() surveyDomId: string = \"\"\n @State() searchResults: any = {}\n @State() buttons: Array<{ id: string; label: string }> = []\n @State() currentDomId: string = \"\"\n @State() messages: { text: string; isUser: boolean; id: string; timestamp: string; images: any[]; conversationId: string; formModel: any; surveyDomId: string }[] = [\n // { text: this.welcomeMessage === \"\" ? \"Hi there! How can I assist you today\" : this.welcomeMessage, isUser: false, id: `chatbot-${generateUUID()}`, timestamp: \"\", images: [] },\n ]\n @State() isChatOpen: boolean = false\n @State() visitorID: string\n @State() timestamp: string = \"\"\n @State() rowCount = 1\n @State() isBot = false\n @State() conversationHistory = []\n @State() isMenuOpen: boolean = false\n @State() menuAction: string = \"\"\n private inputEl!: HTMLTextAreaElement\n private uploadElem: HTMLInputElement\n private followUpElem: HTMLInputElement\n menuRef: HTMLElement\n private socket: Socket\n imagesBase64List = []\n @Event({\n eventName: \"messageSent\",\n composed: true,\n cancelable: true,\n bubbles: true,\n })\n messageSent: EventEmitter\n @Event({\n eventName: \"messageReceived\",\n composed: true,\n cancelable: true,\n bubbles: true,\n })\n messageReceived: EventEmitter\n\n @Event({\n eventName: \"close\",\n composed: true,\n cancelable: true,\n bubbles: true,\n })\n close: EventEmitter\n\n @Event({\n eventName: \"open\",\n composed: true,\n cancelable: true,\n bubbles: true,\n })\n open: EventEmitter\n\n @Event({\n eventName: \"minimize\",\n composed: true,\n cancelable: true,\n bubbles: true,\n })\n minimize: EventEmitter\n\n @Event({\n eventName: \"errored\",\n composed: true,\n cancelable: true,\n bubbles: true,\n })\n errored: EventEmitter\n\n @Listen(\"buttonClick\")\n buttonClickHandler(event: CustomEvent) {\n this.showWelcomeScreen = false\n this.hideInput = false\n this.menuAction = event.detail.action\n this.handleSend(event.detail.label)\n }\n\n @Listen(\"sendQueryToBot\")\n sendQueryToBotHandler(event: CustomEvent) {\n this.showWelcomeScreen = false\n this.hideInput = false\n this.menuAction = event.detail\n this.handleSend(event.detail)\n }\n\n @Listen(\"deleteChatHistory\")\n deleteChatHistoryHandler(event: CustomEvent) {\n const chatHistory = this.getConversationHistory()\n const updatedHistory = chatHistory.filter(item => item.conversationId !== event.detail.conversationId)\n localStorage.setItem(`${this.visitorID}`, JSON.stringify(updatedHistory))\n this.conversationHistory = updatedHistory\n }\n\n @Listen(\"chatClick\")\n chatClickHandler(event: CustomEvent) {\n this.messages = event.detail\n this.showWelcomeScreen = false\n this.hideInput = false\n }\n\n @Listen(\"openChat\")\n openChatHandler(_event: CustomEvent) {\n // console.log(\"open chat event\", event)\n this.isChatOpen = true\n }\n\n handleClickOutside(event: MouseEvent) {\n // Check if the clicked target is outside the menu\n const target = event.target as HTMLElement\n if (this.isMenuOpen && this.menuRef && !this.menuRef.contains(target)) {\n this.isMenuOpen = false\n }\n }\n\n componentDidLoad() {\n // console.log(\"Bot Settings getAssetPath\")\n // debugger;\n document.addEventListener(\"click\", this.handleClickOutside.bind(this))\n // Load jQuery first\n const jQueryScript = document.createElement(\"script\")\n jQueryScript.src = this.cdnPath + \"/v1/jquery.min.js\" // Path relative to the www root\n jQueryScript.onload = () => {\n // console.log(\"jQuery loaded\")\n // Load the script that loads and exposes SurveyJS\n const loadSurveyScript = document.createElement(\"script\")\n loadSurveyScript.src = this.cdnPath + \"/v1/survey.jquery.min.js\" // Path relative to the www root\n loadSurveyScript.onload = () => {\n // console.log(\"SurveyJS loaded and SurveyModel exposed\")\n }\n loadSurveyScript.onerror = err => {\n console.error(\"Failed to load Forms:\", err)\n }\n document.head.appendChild(loadSurveyScript)\n this.el.shadowRoot.appendChild(loadSurveyScript)\n }\n jQueryScript.onerror = err => {\n console.error(\"Failed to load jQuery:\", err)\n }\n document.head.appendChild(jQueryScript)\n this.el.shadowRoot.appendChild(jQueryScript)\n }\n\n disconnectedCallback() {\n // Remove event listener when component is destroyed\n document.removeEventListener(\"click\", this.handleClickOutside.bind(this))\n }\n\n checkHistory = () => {\n const storedMessages = localStorage.getItem(`${this.visitorID}`)\n let chatHistory = []\n if (storedMessages) {\n chatHistory = JSON.parse(storedMessages)\n chatHistory = chatHistory.filter(item => item.projectId === this.botSettings?.pId)\n }\n this.showHistory = chatHistory.length > 0 ? true : false\n // console.log(\"showHistory\", this.showHistory)\n }\n\n @Method()\n async sendMessage(message) {\n this.menuAction = message\n if (!this.isChatOpen) {\n this.isChatOpen = true\n }\n this.handleSend(message)\n }\n @Method()\n async action(type) {\n // this.isChatOpen = !this.isChatOpen\n if (type === \"open\") {\n this.isChatOpen = true\n this.open.emit(\"open\")\n }\n if (type === \"minimize\") {\n this.isChatOpen = false\n this.minimize.emit(\"minimize\")\n }\n const getVisitorKey = localStorage.getItem(`ai12z-visitorId`)\n this.visitorID = \"ai12z-\" + getVisitorKey\n this.checkHistory()\n if (type === \"close\") {\n this.isChatOpen = false\n this.searchResults = {}\n this.surveyDomId = \"\"\n this.showWelcomeScreen = true\n this.showHistory = this.messages.length > 0 ? true : false\n // this.saveConversation()\n this.messages = [...[]]\n this.conversationId = \"\"\n this.close.emit(\"close\")\n }\n }\n\n toggleMenu(e) {\n e.stopPropagation()\n this.isMenuOpen = !this.isMenuOpen\n }\n\n adjustHeight = () => {\n this.inputEl.style.height = \"auto\"\n this.inputEl.style.height = this.inputEl.scrollHeight + \"px\"\n }\n\n connectedCallback() {\n this.configBot()\n }\n\n componentWillLoad() {\n this.checkCustomSlot()\n this.timestamp = this.formatTimestamp(new Date())\n this.socketConnection()\n // this.configBot()\n }\n\n configBot() {\n const payload = {\n apiKey: this.dataKey,\n configId: this.configId,\n }\n getBotConfig(payload, this.dataMode).then(data => {\n if (data) {\n // console.log(\"Bot Settings\", data)\n this.botSettings = data\n }\n })\n }\n\n checkCustomSlot() {\n const slot = this.el[\"children\"]\n let slotHasContent = slot && slot.length > 0\n if (slotHasContent) {\n for (var i = 0; i < slot.length; i++) {\n if (slot[i].tagName.toLowerCase() === \"bot\" || slot[i].getAttribute(\"slot\") === \"bot\") {\n this.isBot = true\n }\n }\n }\n }\n\n @Watch(\"currentDomId\")\n watchStateHandler(_newValue: boolean, _oldValue: boolean) {\n this.socket.off(\"response\")\n this.socket.off(\"end_response\")\n // console.log(\"currentDomId changed\")\n this.handleBotMessages()\n }\n\n generateMessage() {\n return {\n text: \"\",\n isUser: false,\n id: `chatbot-${generateUUID()}`,\n timestamp: new Date().toLocaleTimeString([], { hour: \"2-digit\", minute: \"2-digit\" }),\n images: [],\n conversationId: this.conversationId,\n formModel: {},\n surveyDomId: \"\",\n }\n }\n hideSpinner(chatData) {\n // Logic for hiding the spinner (assumed to return a Promise if async is needed)\n return new Promise(resolve => {\n const renderedBubble = this.el.shadowRoot.querySelector(`#${chatData.id}`)\n if (renderedBubble) {\n ;(renderedBubble.querySelector(\"#spinner\") as HTMLElement).style.display = \"none\"\n }\n // Assume some async action here, then resolve\n console.log(\"Spinner hidden\")\n resolve(true)\n })\n }\n\n async processChatData(chatData, data) {\n // Step 1: Hide the spinner\n await this.hideSpinner(chatData)\n\n // Step 2: Get the control element based on control type\n const controlElement = getComponentByControlType(data, \"bot\")\n\n // Step 3: Append the control element if both it and the target container exist\n const targetContainer = this.el.shadowRoot.querySelector(`#${chatData.id}`)\n if (targetContainer && controlElement) {\n // console.log(\"controlElement\", targetContainer)\n targetContainer.appendChild(controlElement)\n targetContainer[\"style\"].width = \"98%\"\n\n // Step 4: Wait until the control element is rendered\n await this.waitForElementRender(targetContainer as HTMLElement)\n\n // Step 5: Retrieve the content and emit the updated data\n chatData.text = targetContainer.innerHTML\n this.messages = this.messages.map(item => (item.id === chatData.id ? chatData : item))\n }\n }\n\n // Helper function to detect when the target element is rendered\n waitForElementRender(element: HTMLElement) {\n return new Promise<void>(resolve => {\n const observer = new MutationObserver(_mutations => {\n resolve()\n observer.disconnect()\n })\n observer.observe(element, { childList: true, subtree: true })\n })\n }\n\n handleBotMessages() {\n // const domId = this.messages[this.messages.length - 1].id\n this.socket.on(\"response\", event => {\n this.handleMessage(event.data, `${this.currentDomId}`) // Use the unique ID to handle messages\n })\n this.socket.on(\"end_response\", data => {\n // console.log(\"end_response\")\n this.messageReceived.emit(data)\n const converter = new showdown.Converter()\n let finalHtml = converter.makeHtml(data.answer)\n // document.getElementById(\"messageId\").innerHTML = finalHtml;\n finalHtml = updateButtonEvents(finalHtml).body\n this.buttons = updateButtonEvents(finalHtml).buttons\n this.searchResults = data\n this.conversationId = data.conversationId\n if (finalHtml.indexOf(\"[control\") > -1) {\n // console.log(\"controlType\", data.controlType)\n switch (data.controlType) {\n case \"form\":\n this.surveyDomId = \"surveyElement-\" + generateUUID()\n finalHtml = `<div id=${this.surveyDomId} style=\"width:330px\"></div>`\n this.el.shadowRoot.querySelector(`#${this.currentDomId}`).innerHTML = finalHtml\n break\n case \"carousel\":\n case \"list\":\n if (data.controlType && data.controlType !== null) {\n const newContent = splitContent(finalHtml)\n finalHtml = newContent.before\n this.updateConversations(finalHtml, data)\n const newMessage = this.generateMessage()\n this.messages = [...this.messages, newMessage]\n setTimeout(() => {\n this.processChatData(newMessage, data)\n }, 2000)\n if (newContent.after.trim().length > 0) {\n const afterMessage = this.generateMessage()\n afterMessage.text = newContent.after\n this.messages = [...this.messages, afterMessage]\n setTimeout(() => {\n if (afterMessage.id) {\n const bubbleEle = this.el.shadowRoot.querySelector(`#${afterMessage.id}`)\n if (bubbleEle && (bubbleEle.querySelector(\"#spinner\") as HTMLElement)) {\n ;(bubbleEle.querySelector(\"#spinner\") as HTMLElement).style.display = \"none\"\n }\n }\n }, 500)\n }\n }\n }\n } else {\n const currentDomElement = this.el.shadowRoot.querySelector(`#${this.currentDomId}`) as HTMLElement\n if (currentDomElement) {\n currentDomElement.style.width = \"auto\"\n }\n this.el.shadowRoot.querySelector(`#${this.currentDomId}`).innerHTML = finalHtml\n this.updateConversations(finalHtml, data)\n }\n\n this.saveConversation()\n this.scrollToBottom()\n })\n }\n\n updateConversations(finalHtml, data) {\n const updatedmsg = {\n id: this.currentDomId,\n text: finalHtml,\n isUser: false,\n timestamp: new Date().toLocaleTimeString([], { hour: \"2-digit\", minute: \"2-digit\" }),\n images: [],\n conversationId: this.conversationId,\n formModel: data.controlData?.data?.source ?? {},\n surveyDomId: this.surveyDomId,\n }\n this.addEventListeners(`#${this.currentDomId}`)\n this.messages = this.messages.map(item => (item.id === this.currentDomId ? updatedmsg : item))\n }\n\n @Watch(\"surveyDomId\")\n watchSurveyDomIdHandler(_newValue: boolean, _oldValue: boolean) {\n setTimeout(() => {\n this.renderSurvey(this.searchResults)\n }, 1000)\n }\n\n alertResults = sender => {\n const results = JSON.stringify(sender.data)\n const query = \"Here is the data you requested:\" + results\n sender.implementor.renderedElement.innerHTML = `<p><b>Thank you</b></p>`\n\n this.messages = [\n ...this.messages,\n {\n text: query,\n isUser: false,\n id: `chatbot-${generateUUID()}`,\n timestamp: new Date().toLocaleTimeString([], { hour: \"2-digit\", minute: \"2-digit\" }),\n images: [],\n conversationId: this.conversationId,\n formModel: {},\n surveyDomId: \"\",\n },\n ]\n this.scrollToBottom()\n this.invokeSocket()\n }\n\n renderSurvey = chat => {\n const survey = new window[\"Survey\"].Model(chat.controlData?.data?.source)\n if (this.surveyDomId === \"\") {\n return\n }\n const domELe = this.el.shadowRoot?.querySelector(`#${this.surveyDomId}`)\n if (domELe) {\n window[\"jQuery\"](domELe).Survey({ model: survey })\n } else {\n console.error(\"Survey Element not found\")\n }\n survey.showCompletedPage = false\n survey.onComplete.add(this.alertResults)\n }\n\n addEventListeners(msgId) {\n const container = this.el.shadowRoot.querySelector(msgId)\n if (container) {\n this.buttons.forEach(button => {\n const buttonElement = container.querySelector(`#${button.id}`)\n if (buttonElement) {\n buttonElement.addEventListener(\"click\", this.handleButtonClick(button.label))\n }\n })\n }\n }\n\n handleButtonClick = (label: string) => (_event: Event) => {\n this.inputEl.value = label\n this.handleSend(label)\n }\n\n formatTimestamp(date: Date) {\n const today = new Date()\n today.setHours(0, 0, 0, 0)\n const options: Intl.DateTimeFormatOptions = {\n weekday: \"long\",\n hour: \"numeric\",\n minute: \"numeric\",\n hour12: true,\n }\n const formatter = new Intl.DateTimeFormat(\"en-US\", options)\n const formattedDate = formatter.format(date)\n\n if (date.toDateString() === today.toDateString()) {\n return `Today, ${formattedDate.split(\" \").slice(1).join(\" \")}`\n } else {\n return formattedDate\n }\n }\n\n async socketConnection() {\n let a12z_EndPoint = getEndpoint(this.dataMode)\n this.socket = io(a12z_EndPoint, { transports: [\"polling\"] })\n\n await new Promise<void>(resolve => {\n this.socket.on(\"connect\", () => {\n console.log(\"Connected to Socket.IO server\")\n resolve()\n })\n })\n\n this.socket.on(\"connect_error\", error => {\n this.errored.emit(error)\n console.error(\"Connection error:\", error)\n })\n\n this.socket.on(\"disconnect\", () => {\n console.log(\"Disconnected from Socket.IO server\")\n this.socket.off(\"response\")\n // Handle disconnection if needed\n })\n }\n\n invokeSocket() {\n const data = {\n apiKey: this.dataKey,\n query: this.menuAction !== \"\" ? this.menuAction : this.inputEl.value,\n conversationId: this.conversationId,\n event: \"evaluate_query\",\n }\n this.messageSent.emit(JSON.stringify(data))\n\n this.socket.emit(\"evaluate_query\", data, (error, response) => {\n if (error) {\n this.errored.emit(error)\n console.error(\"Error:\", error)\n } else {\n console.log(\"Response:\", response)\n }\n })\n this.currentDomId = this.messages[this.messages.length - 1].id\n if (this.inputEl) {\n this.inputEl.value = \"\"\n }\n this.menuAction = \"\"\n }\n\n handleMessage = (data, aiMessageId) => {\n const converter = new showdown.Converter()\n // const aiMessageBubble = document.getElementById(aiMessageId);\n\n const aiMessageBubble = this.el.shadowRoot?.querySelector(`#${aiMessageId}`)\n // const aiMessageBubble = this.element.querySelector('.ai12z-suggest-answer')\n\n if (!aiMessageBubble) {\n console.error(`Message bubble with ID ${aiMessageId} not found.`)\n return\n }\n var bubbleText = aiMessageBubble.getAttribute(\"data-bubbleText\") || \"\"\n bubbleText = bubbleText + data\n aiMessageBubble.setAttribute(\"data-bubbleText\", bubbleText)\n\n // Assuming data is a string containing the message content\n let html = converter.makeHtml(bubbleText)\n // Append new content to the existing chat bubble\n aiMessageBubble.innerHTML = html\n }\n\n onInputChange(files: FileList) {\n if (files.length > 0) {\n this.uploadImage(files)\n } else {\n console.error(files.length === 0 || \"NO IMAGE UPLOADED\")\n return false\n }\n }\n\n private uploadImage(files) {\n let newFile\n let tempImagesBase64List = []\n if (files.length > 10 || this.imagesBase64List.length > 10) {\n // this.showErrorMessage = true\n // console.error('You can upload a maximum of 10 images once at a time.');\n return\n }\n for (var i = 0; i < files.length; i++) {\n const mimeType = files[i].type\n if (!mimeType.match(\"image.*\")) {\n console.log(\"file is not an image\")\n return\n }\n newFile = files[i]\n\n const reader = new FileReader()\n\n reader.onload = () => {\n const imagePreviewContainer: HTMLElement = this.el.shadowRoot.querySelector(\"#previewContainer\")\n\n const base64Image = `data:${mimeType};base64,${(reader.result as string).split(\",\")[1]}`\n this.imagesBase64List.push(base64Image)\n tempImagesBase64List = this.imagesBase64List\n\n const newDiv = document.createElement(\"div\")\n newDiv.classList.add(\"image-Container\")\n newDiv.classList.add(\"sc-ai12z-input-form\")\n\n const img = document.createElement(\"img\")\n img.setAttribute(\"src\", reader.result as string)\n img.style.width = \"70px\"\n img.style.height = \"50px\"\n\n const deleteSpan = document.createElement(\"span\")\n deleteSpan.textContent = \"x\"\n deleteSpan.classList.add(\"delete-image\")\n deleteSpan.classList.add(\"sc-ai12z-input-form\")\n imagePreviewContainer.appendChild(newDiv)\n\n newDiv.appendChild(img)\n newDiv.appendChild(deleteSpan)\n\n deleteSpan.onclick = function (event) {\n let imgSrc = event.target[\"previousSibling\"] ? event.target[\"previousSibling\"].src : null\n let index = tempImagesBase64List.indexOf(imgSrc)\n if (index > -1) {\n tempImagesBase64List.splice(index, 1)\n }\n newDiv.remove()\n }\n\n // console.log('uploading finished, emitting an image blob to the outside world');\n }\n reader.readAsDataURL(newFile)\n reader.onloadend = () => {\n console.log(\"upload finished\")\n }\n\n reader.onerror = err => {\n console.error(\"something went wrong...\", err)\n }\n }\n }\n\n getConversationHistory() {\n const storedData = localStorage.getItem(`${this.visitorID}`)\n return storedData ? JSON.parse(storedData) : []\n }\n\n saveConversation() {\n let pastMessages = this.getConversationHistory()\n // console.log(\"saving conversation\", pastMessages)\n if (pastMessages.length > 0) {\n let conversationExists = pastMessages.filter(item => item.conversationId === this.conversationId && item.projectId === this.botSettings?.pId)\n if (conversationExists.length > 0) {\n conversationExists[0].messages = this.messages\n } else {\n pastMessages.push({\n conversationId: this.conversationId,\n projectId: this.botSettings?.pId,\n date: new Date(),\n messages: this.messages,\n })\n }\n } else {\n pastMessages.push({\n conversationId: this.conversationId,\n projectId: this.botSettings?.pId,\n date: new Date(),\n messages: this.messages,\n })\n }\n\n if (this.messages.length > 0) {\n localStorage.setItem(`${this.visitorID}`, JSON.stringify(pastMessages))\n }\n }\n\n loadConversation() {\n this.showWelcomeScreen = false\n this.hideInput = true\n this.messages = []\n const storedMessages = localStorage.getItem(`${this.visitorID}`)\n if (storedMessages) {\n this.conversationHistory = JSON.parse(storedMessages)\n this.conversationHistory = this.conversationHistory.filter(item => item.projectId === this.botSettings?.pId)\n // console.log(\"conversationHistory\", this.conversationHistory)\n // this.messages = chatHistory.map(item => ({ ...item }))\n }\n }\n\n @Listen(\"keydown\")\n handleKeyDown(ev: KeyboardEvent) {\n if (ev.key === \"Enter\" && !ev.shiftKey) {\n // console.log(\"down arrow pressed\")\n this.handleSend(this.inputEl.value)\n }\n }\n\n handleSend = eleValue => {\n const inputValue = eleValue\n if (this.inputEl) {\n this.inputEl.value = inputValue\n }\n // this.inputEl.value = inputValue\n if (this.showWelcomeScreen) {\n this.showWelcomeScreen = false\n // this.messages = [\n // {\n // text: this.botSettings?.welcome?.message === \"\" ? \"Hi there! How can I assist you today\" : this.botSettings?.welcome?.message,\n // isUser: false,\n // id: `chatbot-${generateUUID()}`,\n // timestamp: \"\",\n // images: [],\n // conversationId: this.conversationId,\n // formModel: {},\n // surveyDomId: \"\",\n // },\n // ]\n }\n\n if (inputValue.trim()) {\n const now = new Date()\n const timestamp = now.toLocaleTimeString([], { hour: \"2-digit\", minute: \"2-digit\" })\n\n // Add the new message to the chat\n this.messages = [\n ...this.messages,\n {\n text: inputValue,\n isUser: true,\n id: `user-${generateUUID()}`,\n timestamp: timestamp,\n images: this.imagesBase64List,\n conversationId: this.conversationId,\n formModel: {},\n surveyDomId: \"\",\n },\n { text: \"\", isUser: false, id: `chatbot-${generateUUID()}`, timestamp: \"\", images: [], conversationId: this.conversationId, formModel: {}, surveyDomId: \"\" },\n ]\n\n if (this.messages.length === 2) {\n this.visitorID = getOrCreateVisitorId()\n }\n\n this.checkHistory()\n\n this.scrollToBottom()\n this.invokeSocket()\n // Clear the input field\n // this.inputEl.value = \"\"\n const parent = this.el.shadowRoot.querySelector(\"#previewContainer\")\n if (parent) {\n parent.innerHTML = \"\"\n }\n // parent.innerHTML = \"\"\n this.imagesBase64List = []\n this.rowCount = 1\n }\n }\n\n scrollToBottom() {\n const container = this.el.shadowRoot.querySelector(\".chat-body\")\n if (container) {\n container.scroll({\n top: container.scrollHeight,\n behavior: \"smooth\",\n })\n }\n }\n\n defaultTemplate() {\n return (\n <div class={{ \"prose\": true, \"floating-icon\": !this.isBot, \"right\": this.botSettings?.botPosition === \"right\", \"left\": this.botSettings?.botPosition === \"left\" }}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"white\" height=\"30px\" width=\"30px\" version=\"1.1\" id=\"Capa_1\" viewBox=\"0 0 60.019 60.019\">\n <g>\n <path d=\"M59.888,47.514l-3.839-11.518c2.056-3.615,3.14-7.716,3.14-11.893c0-13.286-10.809-24.095-24.095-24.095 c-8.242,0-15.824,4.223-20.219,11.007c3.089-1.291,6.477-2.007,10.029-2.007C39.294,9.01,51,20.716,51,35.104 c0,3.996-0.905,7.783-2.518,11.172l10.263,2.701c0.085,0.022,0.17,0.033,0.255,0.033c0.006,0,0.014-0.001,0.02,0 c0.553,0,1-0.448,1-1C60.019,47.829,59.972,47.66,59.888,47.514z\" />\n <path d=\"M24.905,11.01C11.619,11.01,0.81,21.819,0.81,35.104c0,4.176,1.084,8.277,3.14,11.893L0.051,58.693 c-0.116,0.349-0.032,0.732,0.219,1C0.462,59.898,0.727,60.01,1,60.01c0.085,0,0.17-0.011,0.255-0.033l12.788-3.365 c3.35,1.694,7.097,2.587,10.862,2.587C38.191,59.199,49,48.39,49,35.104S38.191,11.01,24.905,11.01z M41.246,26.799 c-0.152,0.083-0.317,0.123-0.479,0.123c-0.354,0-0.696-0.188-0.878-0.519c-2.795-5.097-8.115-8.679-13.883-9.349 c-0.549-0.063-0.941-0.56-0.878-1.108c0.063-0.548,0.558-0.942,1.108-0.878c6.401,0.743,12.304,4.718,15.406,10.373 C41.908,25.926,41.73,26.534,41.246,26.799z\" />\n </g>\n </svg>\n </div>\n )\n }\n\n handleFollowUp(_e) {\n // console.log(\"follow up\", e)\n this.messages = [...[]]\n this.conversationId = \"\"\n this.showWelcomeScreen = true\n }\n\n render() {\n // const imageSrc = getAssetPath(`./assets/ai12z-bot/img/chatbot.jpg`)\n const style = {\n width: this.botSettings?.botWidth ?? \"35%\",\n height: this.botSettings?.botHeight ?? \"80%\",\n }\n return (\n <div>\n <div\n class={{\n \"right\": this.botSettings?.botPosition === \"right\",\n \"left\": this.botSettings?.botPosition === \"left\",\n \"custom-floating-icon \": this.isBot,\n \"hide-chatbot\": this.isChatOpen,\n }}\n onClick={() => this.action(\"open\")}\n >\n {!this.isBot && this.botSettings?.botPosition && this.defaultTemplate()}\n {this.isBot && <slot name=\"bot\" />}\n </div>\n {!this.isChatOpen && this.botSettings?.popover?.returnMessage && <bot-popover popoverConfig={this.botSettings?.popover}></bot-popover>}\n {this.isChatOpen && (\n <div\n class={{\n \"chat-window\": true,\n \"chat-window-open\": this.isChatOpen,\n \"chat-window-close\": !this.isChatOpen,\n \"chat-right\": this.botSettings?.botPosition === \"right\",\n \"chat-left\": this.botSettings?.botPosition === \"left\",\n }}\n style={style}\n >\n {!this.hideInput && (\n <div class=\"chat-header\">\n {this.botSettings?.buttons?.length > 0 && (\n <button class=\"hamburger\" onClick={e => this.toggleMenu(e)}>\n &#9776; {/* Hamburger Icon */}\n </button>\n )}\n <img class=\"avatar\" src={this.botSettings?.botLogo ?? this.botlogo} alt=\"Avatar\" />\n <span class=\"chat-name\">{this.botSettings?.botName}</span>\n {this.showHistory && (\n <button onClick={() => this.loadConversation()}>\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"#ffffff\" width=\"25\" height=\"25\">\n <path fill=\"none\" d=\"M0 0L24 0 24 24 0 24z\"></path>{\" \"}\n <path d=\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10c-1.702 0-3.305-.425-4.708-1.175L2 22l1.176-5.29C2.426 15.306 2 13.703 2 12 2 6.477 6.477 2 12 2zm0 2c-4.418 0-8 3.582-8 8 0 1.335.326 2.618.94 3.766l.35.654-.656 2.946 2.948-.654.653.349c1.148.614 2.43.939 3.765.939 4.418 0 8-3.582 8-8s-3.582-8-8-8zm1 3v5h4v2h-6V7h2z\"></path>{\" \"}\n </svg>\n </button>\n )}\n <button class=\"minimizebtn\" onClick={() => this.action(\"minimize\")}>\n <svg fill=\"white\" height=\"20px\" width=\"20px\" version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <path d=\"M505.752,6.248c-8.331-8.331-21.839-8.331-30.17,0L320,161.83V64c0-11.782-9.551-21.333-21.333-21.333 c-11.782,0-21.333,9.551-21.333,21.333v149.333c0,0.007,0.001,0.015,0.001,0.022c0.001,0.695,0.037,1.39,0.105,2.083 c0.031,0.318,0.091,0.627,0.136,0.94c0.054,0.375,0.098,0.75,0.171,1.122c0.071,0.359,0.17,0.708,0.259,1.061 c0.081,0.322,0.151,0.645,0.248,0.964c0.105,0.346,0.234,0.68,0.356,1.018c0.114,0.318,0.219,0.639,0.349,0.953 c0.131,0.316,0.284,0.618,0.43,0.926c0.152,0.323,0.296,0.649,0.465,0.966c0.158,0.295,0.338,0.575,0.509,0.861 c0.186,0.311,0.361,0.626,0.564,0.929c0.211,0.316,0.447,0.613,0.674,0.917c0.19,0.253,0.365,0.513,0.568,0.759 c0.892,1.087,1.889,2.085,2.977,2.977c0.246,0.202,0.506,0.378,0.759,0.568c0.304,0.228,0.601,0.463,0.917,0.674 c0.303,0.203,0.618,0.379,0.929,0.564c0.286,0.171,0.566,0.351,0.861,0.509c0.317,0.169,0.643,0.313,0.966,0.465 c0.308,0.145,0.611,0.299,0.926,0.43c0.314,0.13,0.635,0.235,0.953,0.349c0.338,0.122,0.672,0.251,1.018,0.356 c0.318,0.096,0.642,0.167,0.964,0.248c0.353,0.089,0.701,0.188,1.061,0.259c0.372,0.074,0.748,0.118,1.122,0.171 c0.314,0.045,0.622,0.104,0.94,0.136c0.693,0.068,1.388,0.105,2.083,0.105c0.007,0,0.015,0.001,0.022,0.001H448 c11.782,0,21.333-9.551,21.333-21.333c0-11.782-9.551-21.333-21.333-21.333h-97.83L505.752,36.418 C514.083,28.087,514.083,14.58,505.752,6.248z\"></path>{\" \"}\n <path d=\"M234.56,296.562c-0.031-0.318-0.091-0.627-0.136-0.94c-0.054-0.375-0.098-0.75-0.171-1.122 c-0.071-0.359-0.17-0.708-0.259-1.061c-0.081-0.322-0.151-0.645-0.248-0.964c-0.105-0.346-0.234-0.68-0.356-1.018 c-0.114-0.318-0.219-0.639-0.349-0.953c-0.131-0.316-0.284-0.618-0.43-0.926c-0.152-0.323-0.296-0.649-0.465-0.966 c-0.158-0.295-0.338-0.575-0.509-0.861c-0.186-0.311-0.361-0.626-0.564-0.929c-0.211-0.316-0.447-0.613-0.674-0.917 c-0.19-0.253-0.365-0.513-0.568-0.759c-0.892-1.087-1.889-2.085-2.977-2.977c-0.246-0.202-0.506-0.378-0.759-0.568 c-0.304-0.228-0.601-0.463-0.917-0.674c-0.303-0.203-0.618-0.379-0.929-0.564c-0.286-0.171-0.566-0.351-0.861-0.509 c-0.317-0.169-0.643-0.313-0.966-0.465c-0.308-0.145-0.611-0.299-0.926-0.43c-0.314-0.13-0.635-0.235-0.953-0.349 c-0.338-0.122-0.672-0.251-1.018-0.356c-0.318-0.096-0.642-0.167-0.964-0.248c-0.353-0.089-0.701-0.188-1.061-0.259 c-0.372-0.074-0.748-0.118-1.122-0.171c-0.314-0.045-0.622-0.104-0.94-0.136c-0.7-0.069-1.402-0.106-2.105-0.106l0,0H64 c-11.782,0-21.333,9.551-21.333,21.333C42.667,310.449,52.218,320,64,320h97.83L6.248,475.582c-8.331,8.331-8.331,21.839,0,30.17 c8.331,8.331,21.839,8.331,30.17,0L192,350.17V448c0,11.782,9.551,21.333,21.333,21.333c11.782,0,21.333-9.551,21.333-21.333 V298.667l0,0C234.667,297.964,234.629,297.262,234.56,296.562z\"></path>{\" \"}\n </svg>\n </button>\n\n <button class=\"close-btn\" onClick={() => this.action(\"close\")}>\n <svg aria-hidden=\"true\" width=\"25\" height=\"13\" viewBox=\"0 0 23 23\" fill=\"none\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n fill=\"white\"\n d=\"M9.34583 11.2L0.384011 2.23818C-0.128004 1.72617 -0.128004 0.896026 0.384011 0.384011C0.896026 -0.128004 1.72617 -0.128004 2.23818 0.384011L11.2 9.34583L20.1618 0.384011C20.6738 -0.128004 21.504 -0.128004 22.016 0.384011C22.528 0.896026 22.528 1.72617 22.016 2.23818L13.0542 11.2L22.016 20.1618C22.528 20.6738 22.528 21.504 22.016 22.016C21.504 22.528 20.6738 22.528 20.1618 22.016L11.2 13.0542L2.23818 22.016C1.72617 22.528 0.896026 22.528 0.384011 22.016C-0.128003 21.504 -0.128003 20.6738 0.384011 20.1618L9.34583 11.2Z\"\n ></path>\n </svg>\n </button>\n </div>\n )}\n <div class={`menu ${this.isMenuOpen ? \"open\" : \"closed\"}`} ref={el => (this.menuRef = el)}>\n <ul>\n {this.botSettings?.buttons?.map(item => (\n <li\n onClick={() => {\n this.isMenuOpen = !this.isMenuOpen\n this.menuAction = item.action\n this.handleSend(item.label)\n }}\n >\n {item.label}\n </li>\n ))}\n </ul>\n </div>\n {this.hideInput && (\n <div class=\"chat-header\">\n <button\n onClick={() => {\n this.showWelcomeScreen = true\n this.hideInput = false\n this.checkHistory()\n }}\n >\n <svg aria-hidden=\"true\" width=\"20\" height=\"20\" viewBox=\"0 0 10 19\">\n <path\n fill=\"#FFFFFF\"\n d=\"M9.70711 0.542893C10.0976 0.933418 10.0976 1.56658 9.70711 1.95711L2.41421 9.25L9.70711 16.5429C10.0976 16.9334 10.0976 17.5666 9.70711 17.9571C9.31658 18.3476 8.68342 18.3476 8.29289 17.9571L0.292893 9.95711C0.105357 9.76957 -4.04995e-07 9.51522 -3.93402e-07 9.25C-3.81809e-07 8.98478 0.105357 8.73043 0.292893 8.54289L8.29289 0.542893C8.68342 0.152369 9.31658 0.152369 9.70711 0.542893Z\"\n clip-rule=\"evenodd\"\n fill-rule=\"evenodd\"\n ></path>\n </svg>\n </button>\n <span class=\"header-title\">Conversation History</span>\n </div>\n )}\n\n <div class=\"chat-body\">\n {this.showWelcomeScreen && (\n <chatbot-welcome\n welcomeMessage={this.botSettings?.welcome?.message}\n buttonsList={this.botSettings?.welcome?.buttons}\n welcomelogo={this.botSettings?.welcome?.image}\n />\n )}\n {this.showHistory && this.conversationHistory.length > 0 && this.hideInput && (\n <chatbot-history chatList={this.conversationHistory} botName={this.botSettings?.botName}></chatbot-history>\n )}\n {!this.showWelcomeScreen && this.messages.length > 0 && <p class=\"timestamp\">{this.timestamp}</p>}\n {!this.showWelcomeScreen &&\n this.messages.length > 0 &&\n this.messages.map(msg => (\n <div class={{ \"message\": true, \"message-user\": msg.isUser }}>\n <div class=\"msg-wrapper\">\n {!msg.isUser && <img class=\"bot-avatar\" src={this.botSettings?.botAvatar ?? this.botAvatar} alt=\"Bot Avatar\" />}\n <div class={{ \"message-content\": true, \"bubble-width\": !msg.isUser }}>\n <span class={{ \"message-text\": true, \"message-bot\": !msg.isUser, \"prose\": true }} id={msg.id} innerHTML={msg.text}>\n {msg?.images?.map(img => {\n return <img src={img} class=\"thumbnail\" alt=\"thumbnail\" />\n })}\n {!msg.isUser && msg.text === \"\" && (\n <svg class=\"animate-spin h-5 w-5 text-gray-400\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" id=\"spinner\">\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\"></circle>\n <path\n class=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 0 1 4 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n ></path>\n </svg>\n )}\n </span>\n <span class=\"message-timestamp\">{msg.timestamp}</span>\n </div>\n </div>\n </div>\n ))}\n </div>\n\n <div id=\"previewContainer\"></div>\n\n {!this.hideInput && (\n <div class=\"chat-footer\">\n {this.messages.length === 0 && (\n <div class=\"custom-privacy\">\n <slot name=\"custom-privacy\" />\n </div>\n )}\n {this.messages?.length > 0 && (\n <div class=\"follow-up\">\n <input\n ref={el => (this.followUpElem = el as HTMLInputElement)}\n type=\"checkbox\"\n name=\"followUp\"\n id=\"followUp\"\n defaultChecked={true}\n class=\"follow-up-input\"\n onChange={ev => this.handleFollowUp(ev)}\n />\n <label htmlFor=\"followUp\">Do you have a follow up question?</label>\n <svg\n onClick={() => this.followUpElem.click()}\n class=\"custom-svg-checkbox\n peer-checked:block text-white\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <polyline points=\"20 6 9 17 4 12\"></polyline>\n </svg>\n </div>\n )}\n <div style={{ display: \"flex\" }}>\n <textarea\n rows={this.rowCount}\n placeholder={this.botSettings?.botPlaceholderText ?? \"Type your message...\"}\n ref={el => (this.inputEl = el as HTMLTextAreaElement)}\n onKeyUp={this.adjustHeight}\n />\n {this.botSettings.imageUpload && (\n <div class=\"custom-attachment\">\n <input\n type=\"file\"\n multiple\n name=\"files[]\"\n id=\"fileInput\"\n accept=\"image/*\"\n class=\"image-upload__input\"\n onChange={($event: any) => this.onInputChange($event.target.files)}\n ref={el => (this.uploadElem = el as HTMLInputElement)}\n />\n <svg onClick={() => this.uploadElem.click()} aria-hidden=\"true\" width=\"18\" height=\"16\" viewBox=\"0 0 16 18\">\n <path\n fill=\"#687882\"\n fill-rule=\"evenodd\"\n d=\"M8.078 16a.71.71 0 0 1-.513-.222.784.784 0 0 1 0-1.075l7.53-7.879c.562-.587.871-1.368.871-2.199 0-.83-.31-1.611-.87-2.197a2.883 2.883 0 0 0-4.204 0l-8.735 9.139c-.493.516-.73 1.012-.703 1.476.026.452.298.801.46.968.27.284.563.402.892.358.413-.054.888-.35 1.375-.86l6.854-7.172a.703.703 0 0 1 1.026 0 .784.784 0 0 1 0 1.074l-6.853 7.172c-.728.761-1.475 1.196-2.222 1.293-.783.102-1.509-.172-2.1-.79-.528-.553-.841-1.246-.881-1.952-.053-.917.326-1.805 1.125-2.64l8.735-9.14a4.292 4.292 0 0 1 6.257 0 4.706 4.706 0 0 1 1.296 3.271c0 1.236-.461 2.4-1.296 3.274l-7.53 7.879a.71.71 0 0 1-.514.222z\"\n ></path>\n </svg>\n </div>\n )}\n <button onClick={() => this.handleSend(this.inputEl.value)}>\n <svg aria-hidden=\"true\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\">\n <path\n fill=\"#687882\"\n fill-rule=\"evenodd\"\n stroke=\"#687882\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M1 1l2.166 5.39 8.5 1.564-8.5 1.666L1 15l16-7z\"\n ></path>\n </svg>\n </button>\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n )\n }\n}\n"]}
1
+ {"version":3,"file":"ai12z-bot.js","sourceRoot":"","sources":["../../../src/components/ai12z-bot/ai12z-bot.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAgB,MAAM,EAAE,MAAM,eAAe,CAAA;AAC9G,OAAO,EAAE,EAAE,EAAU,MAAM,kBAAkB,CAAA;AAC7C,OAAO,QAAQ,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAE9J,yBAAyB;AACzB,wCAAwC;AAOxC,MAAM,OAAO,QAAQ;;QACX,YAAO,GAAW,kCAAkC,CAAA;QAoC5D,qBAAgB,GAAG,EAAE,CAAA;QA8HrB,iBAAY,GAAG,GAAG,EAAE;YAClB,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;YAChE,IAAI,WAAW,GAAG,EAAE,CAAA;YACpB,IAAI,cAAc,EAAE,CAAC;gBACnB,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;gBACxC,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,WAAC,OAAA,IAAI,CAAC,SAAS,MAAK,MAAA,IAAI,CAAC,WAAW,0CAAE,GAAG,CAAA,CAAA,EAAA,CAAC,CAAA;YACpF,CAAC;YACD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAA;YACxD,+CAA+C;QACjD,CAAC,CAAA;QA0CD,iBAAY,GAAG,GAAG,EAAE;YAClB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAA;YAClC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAA;QAC9D,CAAC,CAAA;QA8LD,iBAAY,GAAG,MAAM,CAAC,EAAE;YACtB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAC3C,MAAM,KAAK,GAAG,iCAAiC,GAAG,OAAO,CAAA;YACzD,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,SAAS,GAAG,yBAAyB,CAAA;YAExE,IAAI,CAAC,QAAQ,GAAG;gBACd,GAAG,IAAI,CAAC,QAAQ;gBAChB;oBACE,IAAI,EAAE,KAAK;oBACX,MAAM,EAAE,KAAK;oBACb,EAAE,EAAE,WAAW,YAAY,EAAE,EAAE;oBAC/B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;oBACpF,MAAM,EAAE,EAAE;oBACV,cAAc,EAAE,IAAI,CAAC,cAAc;oBACnC,SAAS,EAAE,EAAE;oBACb,WAAW,EAAE,EAAE;iBAChB;aACF,CAAA;YACD,IAAI,CAAC,cAAc,EAAE,CAAA;YACrB,IAAI,CAAC,YAAY,EAAE,CAAA;QACrB,CAAC,CAAA;QAED,iBAAY,GAAG,IAAI,CAAC,EAAE;;YACpB,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,MAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,IAAI,0CAAE,MAAM,CAAC,CAAA;YACzE,IAAI,IAAI,CAAC,WAAW,KAAK,EAAE,EAAE,CAAC;gBAC5B,OAAM;YACR,CAAC;YACD,MAAM,MAAM,GAAG,MAAA,IAAI,CAAC,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;YACxE,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;YACpD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;YAC3C,CAAC;YACD,MAAM,CAAC,iBAAiB,GAAG,KAAK,CAAA;YAChC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAC1C,CAAC,CAAA;QAcD,sBAAiB,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,MAAa,EAAE,EAAE;YACvD,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAA;YAC1B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QACxB,CAAC,CAAA;QAoED,kBAAa,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE;;YACpC,MAAM,SAAS,GAAG,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAA;YAC1C,gEAAgE;YAEhE,MAAM,eAAe,GAAG,MAAA,IAAI,CAAC,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,IAAI,WAAW,EAAE,CAAC,CAAA;YAC5E,8EAA8E;YAE9E,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,OAAO,CAAC,KAAK,CAAC,0BAA0B,WAAW,aAAa,CAAC,CAAA;gBACjE,OAAM;YACR,CAAC;YACD,IAAI,UAAU,GAAG,eAAe,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAA;YACtE,UAAU,GAAG,UAAU,GAAG,IAAI,CAAA;YAC9B,eAAe,CAAC,YAAY,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAA;YAE3D,2DAA2D;YAC3D,IAAI,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;YACzC,iDAAiD;YACjD,eAAe,CAAC,SAAS,GAAG,IAAI,CAAA;QAClC,CAAC,CAAA;QAmID,eAAU,GAAG,QAAQ,CAAC,EAAE;YACtB,MAAM,UAAU,GAAG,QAAQ,CAAA;YAC3B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,UAAU,CAAA;YACjC,CAAC;YACD,kCAAkC;YAClC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC3B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAA;gBAC9B,oBAAoB;gBACpB,MAAM;gBACN,qIAAqI;gBACrI,qBAAqB;gBACrB,uCAAuC;gBACvC,qBAAqB;gBACrB,kBAAkB;gBAClB,2CAA2C;gBAC3C,qBAAqB;gBACrB,uBAAuB;gBACvB,OAAO;gBACP,IAAI;YACN,CAAC;YAED,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;gBACtB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;gBACtB,MAAM,SAAS,GAAG,GAAG,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAA;gBAEpF,kCAAkC;gBAClC,IAAI,CAAC,QAAQ,GAAG;oBACd,GAAG,IAAI,CAAC,QAAQ;oBAChB;wBACE,IAAI,EAAE,UAAU;wBAChB,MAAM,EAAE,IAAI;wBACZ,EAAE,EAAE,QAAQ,YAAY,EAAE,EAAE;wBAC5B,SAAS,EAAE,SAAS;wBACpB,MAAM,EAAE,IAAI,CAAC,gBAAgB;wBAC7B,cAAc,EAAE,IAAI,CAAC,cAAc;wBACnC,SAAS,EAAE,EAAE;wBACb,WAAW,EAAE,EAAE;qBAChB;oBACD,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,YAAY,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;iBAC7J,CAAA;gBAED,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC/B,IAAI,CAAC,SAAS,GAAG,oBAAoB,EAAE,CAAA;gBACzC,CAAC;gBAED,IAAI,CAAC,YAAY,EAAE,CAAA;gBAEnB,IAAI,CAAC,cAAc,EAAE,CAAA;gBACrB,IAAI,CAAC,YAAY,EAAE,CAAA;gBACnB,wBAAwB;gBACxB,0BAA0B;gBAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAA;gBACpE,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,CAAC,SAAS,GAAG,EAAE,CAAA;gBACvB,CAAC;gBACD,wBAAwB;gBACxB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAA;gBAC1B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAA;YACnB,CAAC;QACH,CAAC,CAAA;yBA9tB2B,MAAM,CAAC,IAAI,CAAC,GAAG;;;;2BAKf,EAAE;uBAEH,IAAI,CAAC,OAAO,GAAG,+BAA+B;yBAC5C,IAAI,CAAC,OAAO,GAAG,+BAA+B;iCAErC,IAAI;yBACZ,KAAK;2BACH,KAAK;8BACH,EAAE;2BACL,EAAE;6BACH,EAAE;uBACyB,EAAE;4BAC3B,EAAE;wBACkI;QAClK,kLAAkL;SACnL;0BAC8B,KAAK;;yBAEP,EAAE;wBACX,CAAC;qBACJ,KAAK;mCACS,EAAE;0BACF,KAAK;0BACN,EAAE;;IAuDhC,kBAAkB,CAAC,KAAkB;QACnC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAA;QAC9B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;QACtB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAA;QACrC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACrC,CAAC;IAGD,qBAAqB,CAAC,KAAkB;QACtC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAA;QAC9B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;QACtB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,CAAA;QAC9B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAC/B,CAAC;IAGD,wBAAwB,CAAC,KAAkB;QACzC,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAA;QACjD,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,KAAK,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;QACtG,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAA;QACzE,IAAI,CAAC,mBAAmB,GAAG,cAAc,CAAA;IAC3C,CAAC;IAGD,gBAAgB,CAAC,KAAkB;QACjC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAA;QAC5B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAA;QAC9B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;IACxB,CAAC;IAGD,eAAe,CAAC,MAAmB;QACjC,wCAAwC;QACxC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;IACxB,CAAC;IAED,kBAAkB,CAAC,KAAiB;QAClC,kDAAkD;QAClD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAA;QAC1C,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACtE,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;QACzB,CAAC;IACH,CAAC;IAED,gBAAgB;QACd,2CAA2C;QAC3C,YAAY;QACZ,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACtE,oBAAoB;QACpB,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QACrD,YAAY,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,mBAAmB,CAAA,CAAC,gCAAgC;QACtF,YAAY,CAAC,MAAM,GAAG,GAAG,EAAE;YACzB,+BAA+B;YAC/B,kDAAkD;YAClD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;YACzD,gBAAgB,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,0BAA0B,CAAA,CAAC,gCAAgC;YACjG,gBAAgB,CAAC,MAAM,GAAG,GAAG,EAAE;gBAC7B,yDAAyD;YAC3D,CAAC,CAAA;YACD,gBAAgB,CAAC,OAAO,GAAG,GAAG,CAAC,EAAE;gBAC/B,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAA;YAC7C,CAAC,CAAA;YACD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAA;YAC3C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAA;QAClD,CAAC,CAAA;QACD,YAAY,CAAC,OAAO,GAAG,GAAG,CAAC,EAAE;YAC3B,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAA;QAC9C,CAAC,CAAA;QACD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;QACvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;IAC9C,CAAC;IAED,oBAAoB;QAClB,oDAAoD;QACpD,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAC3E,CAAC;IAcD,KAAK,CAAC,WAAW,CAAC,OAAO;QACvB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAA;QACzB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;QACxB,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAI;QACf,qCAAqC;QACrC,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;YACtB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACxB,CAAC;QACD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;YACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAChC,CAAC;QACD,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;QAC7D,IAAI,CAAC,SAAS,GAAG,QAAQ,GAAG,aAAa,CAAA;QACzC,IAAI,CAAC,YAAY,EAAE,CAAA;QACnB,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;YACvB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;YACvB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAA;YACrB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAA;YAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAA;YAC1D,0BAA0B;YAC1B,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,EAAE,CAAC,CAAA;YACvB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAA;YACxB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC;IAED,UAAU,CAAC,CAAC;QACV,CAAC,CAAC,eAAe,EAAE,CAAA;QACnB,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAA;IACpC,CAAC;IAOD,iBAAiB;QACf,IAAI,CAAC,SAAS,EAAE,CAAA;IAClB,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,eAAe,EAAE,CAAA;QACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;QACjD,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvB,mBAAmB;IACrB,CAAC;IAED,SAAS;QACP,MAAM,OAAO,GAAG;YACd,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAA;QACD,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC/C,IAAI,IAAI,EAAE,CAAC;gBACT,oCAAoC;gBACpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;YACzB,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,eAAe;QACb,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAA;QAChC,IAAI,cAAc,GAAG,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;QAC5C,IAAI,cAAc,EAAE,CAAC;YACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE,CAAC;oBACtF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAGD,iBAAiB,CAAC,SAAkB,EAAE,SAAkB;QACtD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QAC3B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;QAC/B,sCAAsC;QACtC,IAAI,CAAC,iBAAiB,EAAE,CAAA;IAC1B,CAAC;IAED,eAAe;QACb,OAAO;YACL,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,KAAK;YACb,EAAE,EAAE,WAAW,YAAY,EAAE,EAAE;YAC/B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;YACpF,MAAM,EAAE,EAAE;YACV,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,SAAS,EAAE,EAAE;YACb,WAAW,EAAE,EAAE;SAChB,CAAA;IACH,CAAC;IACD,WAAW,CAAC,QAAQ;QAClB,gFAAgF;QAChF,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YAC3B,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAA;YAC1E,IAAI,cAAc,EAAE,CAAC;gBACnB,CAAC;gBAAC,cAAc,CAAC,aAAa,CAAC,UAAU,CAAiB,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAA;YACnF,CAAC;YACD,8CAA8C;YAC9C,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;YAC7B,OAAO,CAAC,IAAI,CAAC,CAAA;QACf,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI;QAClC,2BAA2B;QAC3B,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;QAEhC,wDAAwD;QACxD,MAAM,cAAc,GAAG,yBAAyB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAE7D,+EAA+E;QAC/E,MAAM,eAAe,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAA;QAC3E,IAAI,eAAe,IAAI,cAAc,EAAE,CAAC;YACtC,iDAAiD;YACjD,eAAe,CAAC,WAAW,CAAC,cAAc,CAAC,CAAA;YAC3C,eAAe,CAAC,OAAO,CAAC,CAAC,KAAK,GAAG,KAAK,CAAA;YAEtC,qDAAqD;YACrD,MAAM,IAAI,CAAC,oBAAoB,CAAC,eAA8B,CAAC,CAAA;YAE/D,yDAAyD;YACzD,QAAQ,CAAC,IAAI,GAAG,eAAe,CAAC,SAAS,CAAA;YACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QACxF,CAAC;IACH,CAAC;IAED,gEAAgE;IAChE,oBAAoB,CAAC,OAAoB;QACvC,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YACjC,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,UAAU,CAAC,EAAE;gBACjD,OAAO,EAAE,CAAA;gBACT,QAAQ,CAAC,UAAU,EAAE,CAAA;YACvB,CAAC,CAAC,CAAA;YACF,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QAC/D,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,iBAAiB;QACf,2DAA2D;QAC3D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE;YACjC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,CAAA,CAAC,uCAAuC;QAChG,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE;YACpC,8BAA8B;YAC9B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC/B,MAAM,SAAS,GAAG,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAA;YAC1C,IAAI,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAC/C,8DAA8D;YAC9D,SAAS,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAA;YAC9C,IAAI,CAAC,OAAO,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC,OAAO,CAAA;YACpD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;YACzB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAA;YACzC,IAAI,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACvC,+CAA+C;gBAC/C,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;oBACzB,KAAK,MAAM;wBACT,IAAI,CAAC,WAAW,GAAG,gBAAgB,GAAG,YAAY,EAAE,CAAA;wBACpD,SAAS,GAAG,WAAW,IAAI,CAAC,WAAW,6BAA6B,CAAA;wBACpE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,SAAS,GAAG,SAAS,CAAA;wBAC/E,MAAK;oBACP,KAAK,UAAU,CAAC;oBAChB,KAAK,MAAM;wBACT,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;4BAClD,MAAM,UAAU,GAAG,YAAY,CAAC,SAAS,CAAC,CAAA;4BAC1C,SAAS,GAAG,UAAU,CAAC,MAAM,CAAA;4BAC7B,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;4BACzC,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;4BACzC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;4BAC9C,UAAU,CAAC,GAAG,EAAE;gCACd,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;4BACxC,CAAC,EAAE,IAAI,CAAC,CAAA;4BACR,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCACvC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;gCAC3C,YAAY,CAAC,IAAI,GAAG,UAAU,CAAC,KAAK,CAAA;gCACpC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;gCAChD,UAAU,CAAC,GAAG,EAAE;oCACd,IAAI,YAAY,CAAC,EAAE,EAAE,CAAC;wCACpB,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,YAAY,CAAC,EAAE,EAAE,CAAC,CAAA;wCACzE,IAAI,SAAS,IAAK,SAAS,CAAC,aAAa,CAAC,UAAU,CAAiB,EAAE,CAAC;4CACtE,CAAC;4CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAiB,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAA;wCAC9E,CAAC;oCACH,CAAC;gCACH,CAAC,EAAE,GAAG,CAAC,CAAA;4BACT,CAAC;wBACH,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAgB,CAAA;gBAClG,IAAI,iBAAiB,EAAE,CAAC;oBACtB,iBAAiB,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAA;gBACxC,CAAC;gBACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,SAAS,GAAG,SAAS,CAAA;gBAC/E,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;YAC3C,CAAC;YAED,IAAI,CAAC,gBAAgB,EAAE,CAAA;YACvB,IAAI,CAAC,cAAc,EAAE,CAAA;QACvB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,mBAAmB,CAAC,SAAS,EAAE,IAAI;;QACjC,MAAM,UAAU,GAAG;YACjB,EAAE,EAAE,IAAI,CAAC,YAAY;YACrB,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;YACpF,MAAM,EAAE,EAAE;YACV,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,SAAS,EAAE,MAAA,MAAA,MAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,IAAI,0CAAE,MAAM,mCAAI,IAAI,CAAC,WAAW,mCAAI,EAAE;YACnE,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAA;QACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,CAAA;QAC/C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IAChG,CAAC;IAGD,uBAAuB,CAAC,SAAkB,EAAE,SAAkB;QAC5D,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACvC,CAAC,EAAE,IAAI,CAAC,CAAA;IACV,CAAC;IAuCD,iBAAiB,CAAC,KAAK;QACrB,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QACzD,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBAC5B,MAAM,aAAa,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;gBAC9D,IAAI,aAAa,EAAE,CAAC;oBAClB,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;gBAC/E,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAOD,eAAe,CAAC,IAAU;QACxB,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAA;QACxB,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAC1B,MAAM,OAAO,GAA+B;YAC1C,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,IAAI;SACb,CAAA;QACD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAC3D,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAE5C,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,KAAK,CAAC,YAAY,EAAE,EAAE,CAAC;YACjD,OAAO,UAAU,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;QAChE,CAAC;aAAM,CAAC;YACN,OAAO,aAAa,CAAA;QACtB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,IAAI,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC9C,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,aAAa,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;QAE5D,MAAM,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YAChC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;gBAC7B,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAA;gBAC5C,OAAO,EAAE,CAAA;YACX,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE;YACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACxB,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAA;QAC3C,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;YAChC,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAA;YACjD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YAC3B,iCAAiC;QACnC,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,YAAY;QACV,MAAM,IAAI,GAAG;YACX,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,KAAK,EAAE,IAAI,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK;YACpE,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,KAAK,EAAE,gBAAgB;SACxB,CAAA;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;QAE3C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;YAC3D,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBACxB,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;YAChC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;YACpC,CAAC;QACH,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;QAC9D,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAA;QACzB,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;IACtB,CAAC;IAuBD,aAAa,CAAC,KAAe;QAC3B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QACzB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,mBAAmB,CAAC,CAAA;YACxD,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,KAAK;QACvB,IAAI,OAAO,CAAA;QACX,IAAI,oBAAoB,GAAG,EAAE,CAAA;QAC7B,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC3D,+BAA+B;YAC/B,0EAA0E;YAC1E,OAAM;QACR,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YAC9B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/B,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;gBACnC,OAAM;YACR,CAAC;YACD,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YAElB,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAA;YAE/B,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE;gBACnB,MAAM,qBAAqB,GAAgB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAA;gBAEhG,MAAM,WAAW,GAAG,QAAQ,QAAQ,WAAY,MAAM,CAAC,MAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;gBACxF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;gBACvC,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,CAAA;gBAE5C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;gBAC5C,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;gBACvC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;gBAE3C,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;gBACzC,GAAG,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAgB,CAAC,CAAA;gBAChD,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAA;gBACxB,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAA;gBAEzB,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;gBACjD,UAAU,CAAC,WAAW,GAAG,GAAG,CAAA;gBAC5B,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;gBACxC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;gBAC/C,qBAAqB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;gBAEzC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;gBACvB,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;gBAE9B,UAAU,CAAC,OAAO,GAAG,UAAU,KAAK;oBAClC,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA;oBACzF,IAAI,KAAK,GAAG,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;oBAChD,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;wBACf,oBAAoB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;oBACvC,CAAC;oBACD,MAAM,CAAC,MAAM,EAAE,CAAA;gBACjB,CAAC,CAAA;gBAED,kFAAkF;YACpF,CAAC,CAAA;YACD,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;YAC7B,MAAM,CAAC,SAAS,GAAG,GAAG,EAAE;gBACtB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;YAChC,CAAC,CAAA;YAED,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC,EAAE;gBACrB,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAA;YAC/C,CAAC,CAAA;QACH,CAAC;IACH,CAAC;IAED,sBAAsB;QACpB,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;QAC5D,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACjD,CAAC;IAED,gBAAgB;;QACd,IAAI,YAAY,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAA;QAChD,mDAAmD;QACnD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAI,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,WAAC,OAAA,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,SAAS,MAAK,MAAA,IAAI,CAAC,WAAW,0CAAE,GAAG,CAAA,CAAA,EAAA,CAAC,CAAA;YAC7I,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,kBAAkB,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;YAChD,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,IAAI,CAAC;oBAChB,cAAc,EAAE,IAAI,CAAC,cAAc;oBACnC,SAAS,EAAE,MAAA,IAAI,CAAC,WAAW,0CAAE,GAAG;oBAChC,IAAI,EAAE,IAAI,IAAI,EAAE;oBAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,IAAI,CAAC;gBAChB,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,SAAS,EAAE,MAAA,IAAI,CAAC,WAAW,0CAAE,GAAG;gBAChC,IAAI,EAAE,IAAI,IAAI,EAAE;gBAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAA;QACzE,CAAC;IACH,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAA;QAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QACrB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;QAClB,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;QAChE,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;YACrD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,WAAC,OAAA,IAAI,CAAC,SAAS,MAAK,MAAA,IAAI,CAAC,WAAW,0CAAE,GAAG,CAAA,CAAA,EAAA,CAAC,CAAA;YAC5G,+DAA+D;YAC/D,yDAAyD;QAC3D,CAAC;IACH,CAAC;IAGD,aAAa,CAAC,EAAiB;QAC7B,IAAI,EAAE,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;YACvC,oCAAoC;YACpC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;IAgED,cAAc;QACZ,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,CAAA;QAChE,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,MAAM,CAAC;gBACf,GAAG,EAAE,SAAS,CAAC,YAAY;gBAC3B,QAAQ,EAAE,QAAQ;aACnB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,eAAe;;QACb,OAAO,CACL,WAAK,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,WAAW,MAAK,OAAO,EAAE,MAAM,EAAE,CAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,WAAW,MAAK,MAAM,EAAE;YAC/J,WAAK,KAAK,EAAC,4BAA4B,EAAC,IAAI,EAAC,OAAO,EAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,OAAO,EAAC,KAAK,EAAC,EAAE,EAAC,QAAQ,EAAC,OAAO,EAAC,mBAAmB;gBACnI;oBACE,YAAM,CAAC,EAAC,kYAAkY,GAAG;oBAC7Y,YAAM,CAAC,EAAC,klBAAklB,GAAG,CAC3lB,CACA,CACF,CACP,CAAA;IACH,CAAC;IAED,cAAc,CAAC,EAAE;QACf,8BAA8B;QAC9B,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,EAAE,CAAC,CAAA;QACvB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAA;QACxB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAA;IAC/B,CAAC;IAED,MAAM;;QACJ,sEAAsE;QACtE,MAAM,KAAK,GAAG;YACZ,KAAK,EAAE,MAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,QAAQ,mCAAI,KAAK;YAC1C,MAAM,EAAE,MAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,SAAS,mCAAI,KAAK;SAC7C,CAAA;QACD,OAAO,CACL;YACE,4DACE,KAAK,EAAE;oBACL,OAAO,EAAE,CAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,WAAW,MAAK,OAAO;oBAClD,MAAM,EAAE,CAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,WAAW,MAAK,MAAM;oBAChD,uBAAuB,EAAE,IAAI,CAAC,KAAK;oBACnC,cAAc,EAAE,IAAI,CAAC,UAAU;iBAChC,EACD,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBAEjC,CAAC,IAAI,CAAC,KAAK,KAAI,MAAA,IAAI,CAAC,WAAW,0CAAE,WAAW,CAAA,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtE,IAAI,CAAC,KAAK,IAAI,6DAAM,IAAI,EAAC,KAAK,GAAG,CAC9B;YACL,CAAC,IAAI,CAAC,UAAU,KAAI,MAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,OAAO,0CAAE,aAAa,CAAA,IAAI,oEAAa,aAAa,EAAE,MAAA,IAAI,CAAC,WAAW,0CAAE,OAAO,GAAgB;YACrI,IAAI,CAAC,UAAU,IAAI,CAClB,4DACE,KAAK,EAAE;oBACL,aAAa,EAAE,IAAI;oBACnB,kBAAkB,EAAE,IAAI,CAAC,UAAU;oBACnC,mBAAmB,EAAE,CAAC,IAAI,CAAC,UAAU;oBACrC,YAAY,EAAE,CAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,WAAW,MAAK,OAAO;oBACvD,WAAW,EAAE,CAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,WAAW,MAAK,MAAM;iBACtD,EACD,KAAK,EAAE,KAAK;gBAEX,CAAC,IAAI,CAAC,SAAS,IAAI,CAClB,4DAAK,KAAK,EAAC,aAAa;oBACrB,CAAA,MAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,OAAO,0CAAE,MAAM,IAAG,CAAC,IAAI,CACxC,+DAAQ,KAAK,EAAC,WAAW,EAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,cAEjD,CACV;oBACD,4DAAK,KAAK,EAAC,QAAQ,EAAC,GAAG,EAAE,MAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,OAAO,mCAAI,IAAI,CAAC,OAAO,EAAE,GAAG,EAAC,QAAQ,GAAG;oBACnF,6DAAM,KAAK,EAAC,WAAW,IAAE,MAAA,IAAI,CAAC,WAAW,0CAAE,OAAO,CAAQ;oBACzD,IAAI,CAAC,WAAW,IAAI,CACnB,+DAAQ,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE;wBAC5C,4DAAK,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,4BAA4B,EAAC,IAAI,EAAC,SAAS,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI;4BAC/F,6DAAM,IAAI,EAAC,MAAM,EAAC,CAAC,EAAC,uBAAuB,GAAQ;4BAAC,GAAG;4BACvD,6DAAM,CAAC,EAAC,0TAA0T,GAAQ;4BAAC,GAAG,CAC1U,CACC,CACV;oBACD,+DAAQ,KAAK,EAAC,aAAa,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;wBAChE,4DAAK,IAAI,EAAC,OAAO,EAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,OAAO,EAAC,KAAK,EAAC,EAAE,EAAC,SAAS,EAAC,KAAK,EAAC,4BAA4B,EAAC,OAAO,EAAC,aAAa;4BAC9H,6DAAM,CAAC,EAAC,6yCAA6yC,GAAQ;4BAAC,GAAG;4BACj0C,6DAAM,CAAC,EAAC,0wCAA0wC,GAAQ;4BAAC,GAAG,CAC1xC,CACC;oBAET,+DAAQ,KAAK,EAAC,WAAW,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;wBAC3D,2EAAiB,MAAM,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM;4BAC5E,0EACY,SAAS,eACT,SAAS,EACnB,IAAI,EAAC,OAAO,EACZ,CAAC,EAAC,4gBAA4gB,GACxgB,CACJ,CACC,CACL,CACP;gBACD,4DAAK,KAAK,EAAE,QAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;oBACvF,6DACG,MAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,OAAO,0CAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CACtC,UACE,OAAO,EAAE,GAAG,EAAE;4BACZ,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAA;4BAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAA;4BAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;wBAC7B,CAAC,IAEA,IAAI,CAAC,KAAK,CACR,CACN,CAAC,CACC,CACD;gBACL,IAAI,CAAC,SAAS,IAAI,CACjB,4DAAK,KAAK,EAAC,aAAa;oBACtB,+DACE,OAAO,EAAE,GAAG,EAAE;4BACZ,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAA;4BAC7B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;4BACtB,IAAI,CAAC,YAAY,EAAE,CAAA;wBACrB,CAAC;wBAED,2EAAiB,MAAM,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW;4BAChE,6DACE,IAAI,EAAC,SAAS,EACd,CAAC,EAAC,sYAAsY,eAC9X,SAAS,eACT,SAAS,GACb,CACJ,CACC;oBACT,6DAAM,KAAK,EAAC,cAAc,2BAA4B,CAClD,CACP;gBAED,4DAAK,KAAK,EAAC,WAAW;oBACnB,IAAI,CAAC,iBAAiB,IAAI,CACzB,wEACE,cAAc,EAAE,MAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,OAAO,0CAAE,OAAO,EAClD,WAAW,EAAE,MAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,OAAO,0CAAE,OAAO,EAC/C,WAAW,EAAE,MAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,OAAO,0CAAE,KAAK,GAC7C,CACH;oBACA,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,CAC5E,wEAAiB,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAAE,OAAO,EAAE,MAAA,IAAI,CAAC,WAAW,0CAAE,OAAO,GAAoB,CAC5G;oBACA,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,0DAAG,KAAK,EAAC,WAAW,IAAE,IAAI,CAAC,SAAS,CAAK;oBAChG,CAAC,IAAI,CAAC,iBAAiB;wBACtB,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;wBACxB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;;4BAAC,OAAA,CACvB,WAAK,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE;gCACzD,WAAK,KAAK,EAAC,aAAa;oCACrB,CAAC,GAAG,CAAC,MAAM,IAAI,WAAK,KAAK,EAAC,YAAY,EAAC,GAAG,EAAE,MAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,SAAS,mCAAI,IAAI,CAAC,SAAS,EAAE,GAAG,EAAC,YAAY,GAAG;oCAC/G,WAAK,KAAK,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE;wCAClE,YAAM,KAAK,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,IAAI,IAC9G,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM;+CAAE,GAAG,CAAC,GAAG,CAAC,EAAE;gDACtB,OAAO,WAAK,GAAG,EAAE,GAAG,EAAE,KAAK,EAAC,WAAW,EAAC,GAAG,EAAC,WAAW,GAAG,CAAA;4CAC5D,CAAC,CAAC;4CACD,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,EAAE,IAAI,CACjC,WAAK,KAAK,EAAC,oCAAoC,EAAC,KAAK,EAAC,4BAA4B,EAAC,IAAI,EAAC,MAAM,EAAC,OAAO,EAAC,WAAW,EAAC,EAAE,EAAC,SAAS;gDAC7H,cAAQ,KAAK,EAAC,YAAY,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,MAAM,EAAC,cAAc,kBAAc,GAAG,GAAU;gDAClG,YACE,KAAK,EAAC,YAAY,EAClB,IAAI,EAAC,cAAc,EACnB,CAAC,EAAC,mHAAmH,GAC/G,CACJ,CACP,CACI;wCACP,YAAM,KAAK,EAAC,mBAAmB,IAAE,GAAG,CAAC,SAAS,CAAQ,CAClD,CACF,CACF,CACP,CAAA;yBAAA,CAAC,CACA;gBAEN,4DAAK,EAAE,EAAC,kBAAkB,GAAO;gBAEhC,CAAC,IAAI,CAAC,SAAS,IAAI,CAClB,4DAAK,KAAK,EAAC,aAAa;oBACrB,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAC7B,4DAAK,KAAK,EAAC,gBAAgB;wBACzB,6DAAM,IAAI,EAAC,gBAAgB,GAAG,CAC1B,CACP;oBACA,CAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,MAAM,IAAG,CAAC,IAAI,CAC5B,4DAAK,KAAK,EAAC,WAAW;wBACpB,8DACE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,EAAsB,CAAC,EACvD,IAAI,EAAC,UAAU,EACf,IAAI,EAAC,UAAU,EACf,EAAE,EAAC,UAAU,EACb,cAAc,EAAE,IAAI,EACpB,KAAK,EAAC,iBAAiB,EACvB,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,GACvC;wBACF,8DAAO,OAAO,EAAC,UAAU,wCAA0C;wBACnE,4DACE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,EACxC,KAAK,EAAC,oEACkB,EACxB,KAAK,EAAC,4BAA4B,EAClC,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,kBACR,GAAG,oBACD,OAAO,qBACN,OAAO;4BAEvB,iEAAU,MAAM,EAAC,gBAAgB,GAAY,CACzC,CACF,CACP;oBACD,4DAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;wBAC7B,iEACE,IAAI,EAAE,IAAI,CAAC,QAAQ,EACnB,WAAW,EAAE,MAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,kBAAkB,mCAAI,sBAAsB,EAC3E,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,EAAyB,CAAC,EACrD,OAAO,EAAE,IAAI,CAAC,YAAY,GAC1B;wBACD,IAAI,CAAC,WAAW,CAAC,WAAW,IAAI,CAC/B,4DAAK,KAAK,EAAC,mBAAmB;4BAC5B,8DACE,IAAI,EAAC,MAAM,EACX,QAAQ,QACR,IAAI,EAAC,SAAS,EACd,EAAE,EAAC,WAAW,EACd,MAAM,EAAC,SAAS,EAChB,KAAK,EAAC,qBAAqB,EAC3B,QAAQ,EAAE,CAAC,MAAW,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAClE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,EAAsB,CAAC,GACrD;4BACF,4DAAK,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,iBAAc,MAAM,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW;gCACxG,6DACE,IAAI,EAAC,SAAS,eACJ,SAAS,EACnB,CAAC,EAAC,ilBAAilB,GAC7kB,CACJ,CACF,CACP;wBACD,+DAAQ,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;4BACxD,2EAAiB,MAAM,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW;gCAChE,6DACE,IAAI,EAAC,SAAS,eACJ,SAAS,EACnB,MAAM,EAAC,SAAS,oBACD,OAAO,qBACN,OAAO,EACvB,CAAC,EAAC,gDAAgD,GAC5C,CACJ,CACC,CACL,CACF,CACP,CACG,CACP,CACG,CACP,CAAA;IACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, State, Prop, Element, Watch, Listen, Event, EventEmitter, Method } from \"@stencil/core\"\nimport { io, Socket } from \"socket.io-client\"\nimport showdown from \"showdown\"\nimport { getEndpoint, generateUUID, updateButtonEvents, getBotConfig, getOrCreateVisitorId, getComponentByControlType, splitContent } from \"../../utils/utils\"\n\n// import $ from \"jquery\"\n// import { Model } from \"survey-jquery\"\n\n@Component({\n tag: \"ai12z-bot\",\n styleUrls: [\"./ai12z-bot.css\", \"../../global/tailwind.min.css\", \"../../global/survey.min.css\"],\n shadow: true,\n})\nexport class Ai12zBot {\n private cdnPath: string = \"https://cdn.ai12z.net/assets/bot\"\n @Element() el: HTMLElement\n @Prop() assetPath: string = import.meta.url\n @Prop({ reflect: true }) dataKey: string\n @Prop({ reflect: true }) dataMode: string\n @Prop({ reflect: true }) configId: string\n\n @State() botSettings: any = {}\n\n @State() botlogo: string = this.cdnPath + `/v1/ai12z-bot/img/chatbot.jpg`\n @State() botAvatar: string = this.cdnPath + `/v1/ai12z-bot/img/chatbot.jpg`\n\n @State() showWelcomeScreen: boolean = true\n @State() hideInput: boolean = false\n @State() showHistory: boolean = false\n @State() conversationId: string = \"\"\n @State() surveyDomId: string = \"\"\n @State() searchResults: any = {}\n @State() buttons: Array<{ id: string; label: string }> = []\n @State() currentDomId: string = \"\"\n @State() messages: { text: string; isUser: boolean; id: string; timestamp: string; images: any[]; conversationId: string; formModel: any; surveyDomId: string }[] = [\n // { text: this.welcomeMessage === \"\" ? \"Hi there! How can I assist you today\" : this.welcomeMessage, isUser: false, id: `chatbot-${generateUUID()}`, timestamp: \"\", images: [] },\n ]\n @State() isChatOpen: boolean = false\n @State() visitorID: string\n @State() timestamp: string = \"\"\n @State() rowCount = 1\n @State() isBot = false\n @State() conversationHistory = []\n @State() isMenuOpen: boolean = false\n @State() menuAction: string = \"\"\n private inputEl!: HTMLTextAreaElement\n private uploadElem: HTMLInputElement\n private followUpElem: HTMLInputElement\n menuRef: HTMLElement\n private socket: Socket\n imagesBase64List = []\n @Event({\n eventName: \"messageSent\",\n composed: true,\n cancelable: true,\n bubbles: true,\n })\n messageSent: EventEmitter\n @Event({\n eventName: \"messageReceived\",\n composed: true,\n cancelable: true,\n bubbles: true,\n })\n messageReceived: EventEmitter\n\n @Event({\n eventName: \"close\",\n composed: true,\n cancelable: true,\n bubbles: true,\n })\n close: EventEmitter\n\n @Event({\n eventName: \"open\",\n composed: true,\n cancelable: true,\n bubbles: true,\n })\n open: EventEmitter\n\n @Event({\n eventName: \"minimize\",\n composed: true,\n cancelable: true,\n bubbles: true,\n })\n minimize: EventEmitter\n\n @Event({\n eventName: \"errored\",\n composed: true,\n cancelable: true,\n bubbles: true,\n })\n errored: EventEmitter\n\n @Listen(\"buttonClick\")\n buttonClickHandler(event: CustomEvent) {\n this.showWelcomeScreen = false\n this.hideInput = false\n this.menuAction = event.detail.action\n this.handleSend(event.detail.label)\n }\n\n @Listen(\"sendQueryToBot\")\n sendQueryToBotHandler(event: CustomEvent) {\n this.showWelcomeScreen = false\n this.hideInput = false\n this.menuAction = event.detail\n this.handleSend(event.detail)\n }\n\n @Listen(\"deleteChatHistory\")\n deleteChatHistoryHandler(event: CustomEvent) {\n const chatHistory = this.getConversationHistory()\n const updatedHistory = chatHistory.filter(item => item.conversationId !== event.detail.conversationId)\n localStorage.setItem(`${this.visitorID}`, JSON.stringify(updatedHistory))\n this.conversationHistory = updatedHistory\n }\n\n @Listen(\"chatClick\")\n chatClickHandler(event: CustomEvent) {\n this.messages = event.detail\n this.showWelcomeScreen = false\n this.hideInput = false\n }\n\n @Listen(\"openChat\")\n openChatHandler(_event: CustomEvent) {\n // console.log(\"open chat event\", event)\n this.isChatOpen = true\n }\n\n handleClickOutside(event: MouseEvent) {\n // Check if the clicked target is outside the menu\n const target = event.target as HTMLElement\n if (this.isMenuOpen && this.menuRef && !this.menuRef.contains(target)) {\n this.isMenuOpen = false\n }\n }\n\n componentDidLoad() {\n // console.log(\"Bot Settings getAssetPath\")\n // debugger;\n document.addEventListener(\"click\", this.handleClickOutside.bind(this))\n // Load jQuery first\n const jQueryScript = document.createElement(\"script\")\n jQueryScript.src = this.cdnPath + \"/v1/jquery.min.js\" // Path relative to the www root\n jQueryScript.onload = () => {\n // console.log(\"jQuery loaded\")\n // Load the script that loads and exposes SurveyJS\n const loadSurveyScript = document.createElement(\"script\")\n loadSurveyScript.src = this.cdnPath + \"/v1/survey.jquery.min.js\" // Path relative to the www root\n loadSurveyScript.onload = () => {\n // console.log(\"SurveyJS loaded and SurveyModel exposed\")\n }\n loadSurveyScript.onerror = err => {\n console.error(\"Failed to load Forms:\", err)\n }\n document.head.appendChild(loadSurveyScript)\n this.el.shadowRoot.appendChild(loadSurveyScript)\n }\n jQueryScript.onerror = err => {\n console.error(\"Failed to load jQuery:\", err)\n }\n document.head.appendChild(jQueryScript)\n this.el.shadowRoot.appendChild(jQueryScript)\n }\n\n disconnectedCallback() {\n // Remove event listener when component is destroyed\n document.removeEventListener(\"click\", this.handleClickOutside.bind(this))\n }\n\n checkHistory = () => {\n const storedMessages = localStorage.getItem(`${this.visitorID}`)\n let chatHistory = []\n if (storedMessages) {\n chatHistory = JSON.parse(storedMessages)\n chatHistory = chatHistory.filter(item => item.projectId === this.botSettings?.pId)\n }\n this.showHistory = chatHistory.length > 0 ? true : false\n // console.log(\"showHistory\", this.showHistory)\n }\n\n @Method()\n async sendMessage(message) {\n this.menuAction = message\n if (!this.isChatOpen) {\n this.isChatOpen = true\n }\n this.handleSend(message)\n }\n @Method()\n async action(type) {\n // this.isChatOpen = !this.isChatOpen\n if (type === \"open\") {\n this.isChatOpen = true\n this.open.emit(\"open\")\n }\n if (type === \"minimize\") {\n this.isChatOpen = false\n this.minimize.emit(\"minimize\")\n }\n const getVisitorKey = localStorage.getItem(`ai12z-visitorId`)\n this.visitorID = \"ai12z-\" + getVisitorKey\n this.checkHistory()\n if (type === \"close\") {\n this.isChatOpen = false\n this.searchResults = {}\n this.surveyDomId = \"\"\n this.showWelcomeScreen = true\n this.showHistory = this.messages.length > 0 ? true : false\n // this.saveConversation()\n this.messages = [...[]]\n this.conversationId = \"\"\n this.close.emit(\"close\")\n }\n }\n\n toggleMenu(e) {\n e.stopPropagation()\n this.isMenuOpen = !this.isMenuOpen\n }\n\n adjustHeight = () => {\n this.inputEl.style.height = \"auto\"\n this.inputEl.style.height = this.inputEl.scrollHeight + \"px\"\n }\n\n connectedCallback() {\n this.configBot()\n }\n\n componentWillLoad() {\n this.checkCustomSlot()\n this.timestamp = this.formatTimestamp(new Date())\n this.socketConnection()\n // this.configBot()\n }\n\n configBot() {\n const payload = {\n apiKey: this.dataKey,\n configId: this.configId,\n }\n getBotConfig(payload, this.dataMode).then(data => {\n if (data) {\n // console.log(\"Bot Settings\", data)\n this.botSettings = data\n }\n })\n }\n\n checkCustomSlot() {\n const slot = this.el[\"children\"]\n let slotHasContent = slot && slot.length > 0\n if (slotHasContent) {\n for (var i = 0; i < slot.length; i++) {\n if (slot[i].tagName.toLowerCase() === \"bot\" || slot[i].getAttribute(\"slot\") === \"bot\") {\n this.isBot = true\n }\n }\n }\n }\n\n @Watch(\"currentDomId\")\n watchStateHandler(_newValue: boolean, _oldValue: boolean) {\n this.socket.off(\"response\")\n this.socket.off(\"end_response\")\n // console.log(\"currentDomId changed\")\n this.handleBotMessages()\n }\n\n generateMessage() {\n return {\n text: \"\",\n isUser: false,\n id: `chatbot-${generateUUID()}`,\n timestamp: new Date().toLocaleTimeString([], { hour: \"2-digit\", minute: \"2-digit\" }),\n images: [],\n conversationId: this.conversationId,\n formModel: {},\n surveyDomId: \"\",\n }\n }\n hideSpinner(chatData) {\n // Logic for hiding the spinner (assumed to return a Promise if async is needed)\n return new Promise(resolve => {\n const renderedBubble = this.el.shadowRoot.querySelector(`#${chatData.id}`)\n if (renderedBubble) {\n ;(renderedBubble.querySelector(\"#spinner\") as HTMLElement).style.display = \"none\"\n }\n // Assume some async action here, then resolve\n console.log(\"Spinner hidden\")\n resolve(true)\n })\n }\n\n async processChatData(chatData, data) {\n // Step 1: Hide the spinner\n await this.hideSpinner(chatData)\n\n // Step 2: Get the control element based on control type\n const controlElement = getComponentByControlType(data, \"bot\")\n\n // Step 3: Append the control element if both it and the target container exist\n const targetContainer = this.el.shadowRoot.querySelector(`#${chatData.id}`)\n if (targetContainer && controlElement) {\n // console.log(\"controlElement\", targetContainer)\n targetContainer.appendChild(controlElement)\n targetContainer[\"style\"].width = \"98%\"\n\n // Step 4: Wait until the control element is rendered\n await this.waitForElementRender(targetContainer as HTMLElement)\n\n // Step 5: Retrieve the content and emit the updated data\n chatData.text = targetContainer.innerHTML\n this.messages = this.messages.map(item => (item.id === chatData.id ? chatData : item))\n }\n }\n\n // Helper function to detect when the target element is rendered\n waitForElementRender(element: HTMLElement) {\n return new Promise<void>(resolve => {\n const observer = new MutationObserver(_mutations => {\n resolve()\n observer.disconnect()\n })\n observer.observe(element, { childList: true, subtree: true })\n })\n }\n\n handleBotMessages() {\n // const domId = this.messages[this.messages.length - 1].id\n this.socket.on(\"response\", event => {\n this.handleMessage(event.data, `${this.currentDomId}`) // Use the unique ID to handle messages\n })\n this.socket.on(\"end_response\", data => {\n // console.log(\"end_response\")\n this.messageReceived.emit(data)\n const converter = new showdown.Converter()\n let finalHtml = converter.makeHtml(data.answer)\n // document.getElementById(\"messageId\").innerHTML = finalHtml;\n finalHtml = updateButtonEvents(finalHtml).body\n this.buttons = updateButtonEvents(finalHtml).buttons\n this.searchResults = data\n this.conversationId = data.conversationId\n if (finalHtml.indexOf(\"[control\") > -1) {\n // console.log(\"controlType\", data.controlType)\n switch (data.controlType) {\n case \"form\":\n this.surveyDomId = \"surveyElement-\" + generateUUID()\n finalHtml = `<div id=${this.surveyDomId} style=\"width:330px\"></div>`\n this.el.shadowRoot.querySelector(`#${this.currentDomId}`).innerHTML = finalHtml\n break\n case \"carousel\":\n case \"list\":\n if (data.controlType && data.controlType !== null) {\n const newContent = splitContent(finalHtml)\n finalHtml = newContent.before\n this.updateConversations(finalHtml, data)\n const newMessage = this.generateMessage()\n this.messages = [...this.messages, newMessage]\n setTimeout(() => {\n this.processChatData(newMessage, data)\n }, 2000)\n if (newContent.after.trim().length > 0) {\n const afterMessage = this.generateMessage()\n afterMessage.text = newContent.after\n this.messages = [...this.messages, afterMessage]\n setTimeout(() => {\n if (afterMessage.id) {\n const bubbleEle = this.el.shadowRoot.querySelector(`#${afterMessage.id}`)\n if (bubbleEle && (bubbleEle.querySelector(\"#spinner\") as HTMLElement)) {\n ;(bubbleEle.querySelector(\"#spinner\") as HTMLElement).style.display = \"none\"\n }\n }\n }, 500)\n }\n }\n }\n } else {\n const currentDomElement = this.el.shadowRoot.querySelector(`#${this.currentDomId}`) as HTMLElement\n if (currentDomElement) {\n currentDomElement.style.width = \"auto\"\n }\n this.el.shadowRoot.querySelector(`#${this.currentDomId}`).innerHTML = finalHtml\n this.updateConversations(finalHtml, data)\n }\n\n this.saveConversation()\n this.scrollToBottom()\n })\n }\n\n updateConversations(finalHtml, data) {\n const updatedmsg = {\n id: this.currentDomId,\n text: finalHtml,\n isUser: false,\n timestamp: new Date().toLocaleTimeString([], { hour: \"2-digit\", minute: \"2-digit\" }),\n images: [],\n conversationId: this.conversationId,\n formModel: data.controlData?.data?.source ?? data.controlData ?? {},\n surveyDomId: this.surveyDomId,\n }\n this.addEventListeners(`#${this.currentDomId}`)\n this.messages = this.messages.map(item => (item.id === this.currentDomId ? updatedmsg : item))\n }\n\n @Watch(\"surveyDomId\")\n watchSurveyDomIdHandler(_newValue: boolean, _oldValue: boolean) {\n setTimeout(() => {\n this.renderSurvey(this.searchResults)\n }, 1000)\n }\n\n alertResults = sender => {\n const results = JSON.stringify(sender.data)\n const query = \"Here is the data you requested:\" + results\n sender.implementor.renderedElement.innerHTML = `<p><b>Thank you</b></p>`\n\n this.messages = [\n ...this.messages,\n {\n text: query,\n isUser: false,\n id: `chatbot-${generateUUID()}`,\n timestamp: new Date().toLocaleTimeString([], { hour: \"2-digit\", minute: \"2-digit\" }),\n images: [],\n conversationId: this.conversationId,\n formModel: {},\n surveyDomId: \"\",\n },\n ]\n this.scrollToBottom()\n this.invokeSocket()\n }\n\n renderSurvey = chat => {\n const survey = new window[\"Survey\"].Model(chat.controlData?.data?.source)\n if (this.surveyDomId === \"\") {\n return\n }\n const domELe = this.el.shadowRoot?.querySelector(`#${this.surveyDomId}`)\n if (domELe) {\n window[\"jQuery\"](domELe).Survey({ model: survey })\n } else {\n console.error(\"Survey Element not found\")\n }\n survey.showCompletedPage = false\n survey.onComplete.add(this.alertResults)\n }\n\n addEventListeners(msgId) {\n const container = this.el.shadowRoot.querySelector(msgId)\n if (container) {\n this.buttons.forEach(button => {\n const buttonElement = container.querySelector(`#${button.id}`)\n if (buttonElement) {\n buttonElement.addEventListener(\"click\", this.handleButtonClick(button.label))\n }\n })\n }\n }\n\n handleButtonClick = (label: string) => (_event: Event) => {\n this.inputEl.value = label\n this.handleSend(label)\n }\n\n formatTimestamp(date: Date) {\n const today = new Date()\n today.setHours(0, 0, 0, 0)\n const options: Intl.DateTimeFormatOptions = {\n weekday: \"long\",\n hour: \"numeric\",\n minute: \"numeric\",\n hour12: true,\n }\n const formatter = new Intl.DateTimeFormat(\"en-US\", options)\n const formattedDate = formatter.format(date)\n\n if (date.toDateString() === today.toDateString()) {\n return `Today, ${formattedDate.split(\" \").slice(1).join(\" \")}`\n } else {\n return formattedDate\n }\n }\n\n async socketConnection() {\n let a12z_EndPoint = getEndpoint(this.dataMode)\n this.socket = io(a12z_EndPoint, { transports: [\"polling\"] })\n\n await new Promise<void>(resolve => {\n this.socket.on(\"connect\", () => {\n console.log(\"Connected to Socket.IO server\")\n resolve()\n })\n })\n\n this.socket.on(\"connect_error\", error => {\n this.errored.emit(error)\n console.error(\"Connection error:\", error)\n })\n\n this.socket.on(\"disconnect\", () => {\n console.log(\"Disconnected from Socket.IO server\")\n this.socket.off(\"response\")\n // Handle disconnection if needed\n })\n }\n\n invokeSocket() {\n const data = {\n apiKey: this.dataKey,\n query: this.menuAction !== \"\" ? this.menuAction : this.inputEl.value,\n conversationId: this.conversationId,\n event: \"evaluate_query\",\n }\n this.messageSent.emit(JSON.stringify(data))\n\n this.socket.emit(\"evaluate_query\", data, (error, response) => {\n if (error) {\n this.errored.emit(error)\n console.error(\"Error:\", error)\n } else {\n console.log(\"Response:\", response)\n }\n })\n this.currentDomId = this.messages[this.messages.length - 1].id\n if (this.inputEl) {\n this.inputEl.value = \"\"\n }\n this.menuAction = \"\"\n }\n\n handleMessage = (data, aiMessageId) => {\n const converter = new showdown.Converter()\n // const aiMessageBubble = document.getElementById(aiMessageId);\n\n const aiMessageBubble = this.el.shadowRoot?.querySelector(`#${aiMessageId}`)\n // const aiMessageBubble = this.element.querySelector('.ai12z-suggest-answer')\n\n if (!aiMessageBubble) {\n console.error(`Message bubble with ID ${aiMessageId} not found.`)\n return\n }\n var bubbleText = aiMessageBubble.getAttribute(\"data-bubbleText\") || \"\"\n bubbleText = bubbleText + data\n aiMessageBubble.setAttribute(\"data-bubbleText\", bubbleText)\n\n // Assuming data is a string containing the message content\n let html = converter.makeHtml(bubbleText)\n // Append new content to the existing chat bubble\n aiMessageBubble.innerHTML = html\n }\n\n onInputChange(files: FileList) {\n if (files.length > 0) {\n this.uploadImage(files)\n } else {\n console.error(files.length === 0 || \"NO IMAGE UPLOADED\")\n return false\n }\n }\n\n private uploadImage(files) {\n let newFile\n let tempImagesBase64List = []\n if (files.length > 10 || this.imagesBase64List.length > 10) {\n // this.showErrorMessage = true\n // console.error('You can upload a maximum of 10 images once at a time.');\n return\n }\n for (var i = 0; i < files.length; i++) {\n const mimeType = files[i].type\n if (!mimeType.match(\"image.*\")) {\n console.log(\"file is not an image\")\n return\n }\n newFile = files[i]\n\n const reader = new FileReader()\n\n reader.onload = () => {\n const imagePreviewContainer: HTMLElement = this.el.shadowRoot.querySelector(\"#previewContainer\")\n\n const base64Image = `data:${mimeType};base64,${(reader.result as string).split(\",\")[1]}`\n this.imagesBase64List.push(base64Image)\n tempImagesBase64List = this.imagesBase64List\n\n const newDiv = document.createElement(\"div\")\n newDiv.classList.add(\"image-Container\")\n newDiv.classList.add(\"sc-ai12z-input-form\")\n\n const img = document.createElement(\"img\")\n img.setAttribute(\"src\", reader.result as string)\n img.style.width = \"70px\"\n img.style.height = \"50px\"\n\n const deleteSpan = document.createElement(\"span\")\n deleteSpan.textContent = \"x\"\n deleteSpan.classList.add(\"delete-image\")\n deleteSpan.classList.add(\"sc-ai12z-input-form\")\n imagePreviewContainer.appendChild(newDiv)\n\n newDiv.appendChild(img)\n newDiv.appendChild(deleteSpan)\n\n deleteSpan.onclick = function (event) {\n let imgSrc = event.target[\"previousSibling\"] ? event.target[\"previousSibling\"].src : null\n let index = tempImagesBase64List.indexOf(imgSrc)\n if (index > -1) {\n tempImagesBase64List.splice(index, 1)\n }\n newDiv.remove()\n }\n\n // console.log('uploading finished, emitting an image blob to the outside world');\n }\n reader.readAsDataURL(newFile)\n reader.onloadend = () => {\n console.log(\"upload finished\")\n }\n\n reader.onerror = err => {\n console.error(\"something went wrong...\", err)\n }\n }\n }\n\n getConversationHistory() {\n const storedData = localStorage.getItem(`${this.visitorID}`)\n return storedData ? JSON.parse(storedData) : []\n }\n\n saveConversation() {\n let pastMessages = this.getConversationHistory()\n // console.log(\"saving conversation\", pastMessages)\n if (pastMessages.length > 0) {\n let conversationExists = pastMessages.filter(item => item.conversationId === this.conversationId && item.projectId === this.botSettings?.pId)\n if (conversationExists.length > 0) {\n conversationExists[0].messages = this.messages\n } else {\n pastMessages.push({\n conversationId: this.conversationId,\n projectId: this.botSettings?.pId,\n date: new Date(),\n messages: this.messages,\n })\n }\n } else {\n pastMessages.push({\n conversationId: this.conversationId,\n projectId: this.botSettings?.pId,\n date: new Date(),\n messages: this.messages,\n })\n }\n\n if (this.messages.length > 0) {\n localStorage.setItem(`${this.visitorID}`, JSON.stringify(pastMessages))\n }\n }\n\n loadConversation() {\n this.showWelcomeScreen = false\n this.hideInput = true\n this.messages = []\n const storedMessages = localStorage.getItem(`${this.visitorID}`)\n if (storedMessages) {\n this.conversationHistory = JSON.parse(storedMessages)\n this.conversationHistory = this.conversationHistory.filter(item => item.projectId === this.botSettings?.pId)\n // console.log(\"conversationHistory\", this.conversationHistory)\n // this.messages = chatHistory.map(item => ({ ...item }))\n }\n }\n\n @Listen(\"keydown\")\n handleKeyDown(ev: KeyboardEvent) {\n if (ev.key === \"Enter\" && !ev.shiftKey) {\n // console.log(\"down arrow pressed\")\n this.handleSend(this.inputEl.value)\n }\n }\n\n handleSend = eleValue => {\n const inputValue = eleValue\n if (this.inputEl) {\n this.inputEl.value = inputValue\n }\n // this.inputEl.value = inputValue\n if (this.showWelcomeScreen) {\n this.showWelcomeScreen = false\n // this.messages = [\n // {\n // text: this.botSettings?.welcome?.message === \"\" ? \"Hi there! How can I assist you today\" : this.botSettings?.welcome?.message,\n // isUser: false,\n // id: `chatbot-${generateUUID()}`,\n // timestamp: \"\",\n // images: [],\n // conversationId: this.conversationId,\n // formModel: {},\n // surveyDomId: \"\",\n // },\n // ]\n }\n\n if (inputValue.trim()) {\n const now = new Date()\n const timestamp = now.toLocaleTimeString([], { hour: \"2-digit\", minute: \"2-digit\" })\n\n // Add the new message to the chat\n this.messages = [\n ...this.messages,\n {\n text: inputValue,\n isUser: true,\n id: `user-${generateUUID()}`,\n timestamp: timestamp,\n images: this.imagesBase64List,\n conversationId: this.conversationId,\n formModel: {},\n surveyDomId: \"\",\n },\n { text: \"\", isUser: false, id: `chatbot-${generateUUID()}`, timestamp: \"\", images: [], conversationId: this.conversationId, formModel: {}, surveyDomId: \"\" },\n ]\n\n if (this.messages.length === 2) {\n this.visitorID = getOrCreateVisitorId()\n }\n\n this.checkHistory()\n\n this.scrollToBottom()\n this.invokeSocket()\n // Clear the input field\n // this.inputEl.value = \"\"\n const parent = this.el.shadowRoot.querySelector(\"#previewContainer\")\n if (parent) {\n parent.innerHTML = \"\"\n }\n // parent.innerHTML = \"\"\n this.imagesBase64List = []\n this.rowCount = 1\n }\n }\n\n scrollToBottom() {\n const container = this.el.shadowRoot.querySelector(\".chat-body\")\n if (container) {\n container.scroll({\n top: container.scrollHeight,\n behavior: \"smooth\",\n })\n }\n }\n\n defaultTemplate() {\n return (\n <div class={{ \"prose\": true, \"floating-icon\": !this.isBot, \"right\": this.botSettings?.botPosition === \"right\", \"left\": this.botSettings?.botPosition === \"left\" }}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"white\" height=\"30px\" width=\"30px\" version=\"1.1\" id=\"Capa_1\" viewBox=\"0 0 60.019 60.019\">\n <g>\n <path d=\"M59.888,47.514l-3.839-11.518c2.056-3.615,3.14-7.716,3.14-11.893c0-13.286-10.809-24.095-24.095-24.095 c-8.242,0-15.824,4.223-20.219,11.007c3.089-1.291,6.477-2.007,10.029-2.007C39.294,9.01,51,20.716,51,35.104 c0,3.996-0.905,7.783-2.518,11.172l10.263,2.701c0.085,0.022,0.17,0.033,0.255,0.033c0.006,0,0.014-0.001,0.02,0 c0.553,0,1-0.448,1-1C60.019,47.829,59.972,47.66,59.888,47.514z\" />\n <path d=\"M24.905,11.01C11.619,11.01,0.81,21.819,0.81,35.104c0,4.176,1.084,8.277,3.14,11.893L0.051,58.693 c-0.116,0.349-0.032,0.732,0.219,1C0.462,59.898,0.727,60.01,1,60.01c0.085,0,0.17-0.011,0.255-0.033l12.788-3.365 c3.35,1.694,7.097,2.587,10.862,2.587C38.191,59.199,49,48.39,49,35.104S38.191,11.01,24.905,11.01z M41.246,26.799 c-0.152,0.083-0.317,0.123-0.479,0.123c-0.354,0-0.696-0.188-0.878-0.519c-2.795-5.097-8.115-8.679-13.883-9.349 c-0.549-0.063-0.941-0.56-0.878-1.108c0.063-0.548,0.558-0.942,1.108-0.878c6.401,0.743,12.304,4.718,15.406,10.373 C41.908,25.926,41.73,26.534,41.246,26.799z\" />\n </g>\n </svg>\n </div>\n )\n }\n\n handleFollowUp(_e) {\n // console.log(\"follow up\", e)\n this.messages = [...[]]\n this.conversationId = \"\"\n this.showWelcomeScreen = true\n }\n\n render() {\n // const imageSrc = getAssetPath(`./assets/ai12z-bot/img/chatbot.jpg`)\n const style = {\n width: this.botSettings?.botWidth ?? \"35%\",\n height: this.botSettings?.botHeight ?? \"80%\",\n }\n return (\n <div>\n <div\n class={{\n \"right\": this.botSettings?.botPosition === \"right\",\n \"left\": this.botSettings?.botPosition === \"left\",\n \"custom-floating-icon \": this.isBot,\n \"hide-chatbot\": this.isChatOpen,\n }}\n onClick={() => this.action(\"open\")}\n >\n {!this.isBot && this.botSettings?.botPosition && this.defaultTemplate()}\n {this.isBot && <slot name=\"bot\" />}\n </div>\n {!this.isChatOpen && this.botSettings?.popover?.returnMessage && <bot-popover popoverConfig={this.botSettings?.popover}></bot-popover>}\n {this.isChatOpen && (\n <div\n class={{\n \"chat-window\": true,\n \"chat-window-open\": this.isChatOpen,\n \"chat-window-close\": !this.isChatOpen,\n \"chat-right\": this.botSettings?.botPosition === \"right\",\n \"chat-left\": this.botSettings?.botPosition === \"left\",\n }}\n style={style}\n >\n {!this.hideInput && (\n <div class=\"chat-header\">\n {this.botSettings?.buttons?.length > 0 && (\n <button class=\"hamburger\" onClick={e => this.toggleMenu(e)}>\n &#9776; {/* Hamburger Icon */}\n </button>\n )}\n <img class=\"avatar\" src={this.botSettings?.botLogo ?? this.botlogo} alt=\"Avatar\" />\n <span class=\"chat-name\">{this.botSettings?.botName}</span>\n {this.showHistory && (\n <button onClick={() => this.loadConversation()}>\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"#ffffff\" width=\"25\" height=\"25\">\n <path fill=\"none\" d=\"M0 0L24 0 24 24 0 24z\"></path>{\" \"}\n <path d=\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10c-1.702 0-3.305-.425-4.708-1.175L2 22l1.176-5.29C2.426 15.306 2 13.703 2 12 2 6.477 6.477 2 12 2zm0 2c-4.418 0-8 3.582-8 8 0 1.335.326 2.618.94 3.766l.35.654-.656 2.946 2.948-.654.653.349c1.148.614 2.43.939 3.765.939 4.418 0 8-3.582 8-8s-3.582-8-8-8zm1 3v5h4v2h-6V7h2z\"></path>{\" \"}\n </svg>\n </button>\n )}\n <button class=\"minimizebtn\" onClick={() => this.action(\"minimize\")}>\n <svg fill=\"white\" height=\"20px\" width=\"20px\" version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n <path d=\"M505.752,6.248c-8.331-8.331-21.839-8.331-30.17,0L320,161.83V64c0-11.782-9.551-21.333-21.333-21.333 c-11.782,0-21.333,9.551-21.333,21.333v149.333c0,0.007,0.001,0.015,0.001,0.022c0.001,0.695,0.037,1.39,0.105,2.083 c0.031,0.318,0.091,0.627,0.136,0.94c0.054,0.375,0.098,0.75,0.171,1.122c0.071,0.359,0.17,0.708,0.259,1.061 c0.081,0.322,0.151,0.645,0.248,0.964c0.105,0.346,0.234,0.68,0.356,1.018c0.114,0.318,0.219,0.639,0.349,0.953 c0.131,0.316,0.284,0.618,0.43,0.926c0.152,0.323,0.296,0.649,0.465,0.966c0.158,0.295,0.338,0.575,0.509,0.861 c0.186,0.311,0.361,0.626,0.564,0.929c0.211,0.316,0.447,0.613,0.674,0.917c0.19,0.253,0.365,0.513,0.568,0.759 c0.892,1.087,1.889,2.085,2.977,2.977c0.246,0.202,0.506,0.378,0.759,0.568c0.304,0.228,0.601,0.463,0.917,0.674 c0.303,0.203,0.618,0.379,0.929,0.564c0.286,0.171,0.566,0.351,0.861,0.509c0.317,0.169,0.643,0.313,0.966,0.465 c0.308,0.145,0.611,0.299,0.926,0.43c0.314,0.13,0.635,0.235,0.953,0.349c0.338,0.122,0.672,0.251,1.018,0.356 c0.318,0.096,0.642,0.167,0.964,0.248c0.353,0.089,0.701,0.188,1.061,0.259c0.372,0.074,0.748,0.118,1.122,0.171 c0.314,0.045,0.622,0.104,0.94,0.136c0.693,0.068,1.388,0.105,2.083,0.105c0.007,0,0.015,0.001,0.022,0.001H448 c11.782,0,21.333-9.551,21.333-21.333c0-11.782-9.551-21.333-21.333-21.333h-97.83L505.752,36.418 C514.083,28.087,514.083,14.58,505.752,6.248z\"></path>{\" \"}\n <path d=\"M234.56,296.562c-0.031-0.318-0.091-0.627-0.136-0.94c-0.054-0.375-0.098-0.75-0.171-1.122 c-0.071-0.359-0.17-0.708-0.259-1.061c-0.081-0.322-0.151-0.645-0.248-0.964c-0.105-0.346-0.234-0.68-0.356-1.018 c-0.114-0.318-0.219-0.639-0.349-0.953c-0.131-0.316-0.284-0.618-0.43-0.926c-0.152-0.323-0.296-0.649-0.465-0.966 c-0.158-0.295-0.338-0.575-0.509-0.861c-0.186-0.311-0.361-0.626-0.564-0.929c-0.211-0.316-0.447-0.613-0.674-0.917 c-0.19-0.253-0.365-0.513-0.568-0.759c-0.892-1.087-1.889-2.085-2.977-2.977c-0.246-0.202-0.506-0.378-0.759-0.568 c-0.304-0.228-0.601-0.463-0.917-0.674c-0.303-0.203-0.618-0.379-0.929-0.564c-0.286-0.171-0.566-0.351-0.861-0.509 c-0.317-0.169-0.643-0.313-0.966-0.465c-0.308-0.145-0.611-0.299-0.926-0.43c-0.314-0.13-0.635-0.235-0.953-0.349 c-0.338-0.122-0.672-0.251-1.018-0.356c-0.318-0.096-0.642-0.167-0.964-0.248c-0.353-0.089-0.701-0.188-1.061-0.259 c-0.372-0.074-0.748-0.118-1.122-0.171c-0.314-0.045-0.622-0.104-0.94-0.136c-0.7-0.069-1.402-0.106-2.105-0.106l0,0H64 c-11.782,0-21.333,9.551-21.333,21.333C42.667,310.449,52.218,320,64,320h97.83L6.248,475.582c-8.331,8.331-8.331,21.839,0,30.17 c8.331,8.331,21.839,8.331,30.17,0L192,350.17V448c0,11.782,9.551,21.333,21.333,21.333c11.782,0,21.333-9.551,21.333-21.333 V298.667l0,0C234.667,297.964,234.629,297.262,234.56,296.562z\"></path>{\" \"}\n </svg>\n </button>\n\n <button class=\"close-btn\" onClick={() => this.action(\"close\")}>\n <svg aria-hidden=\"true\" width=\"25\" height=\"13\" viewBox=\"0 0 23 23\" fill=\"none\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n fill=\"white\"\n d=\"M9.34583 11.2L0.384011 2.23818C-0.128004 1.72617 -0.128004 0.896026 0.384011 0.384011C0.896026 -0.128004 1.72617 -0.128004 2.23818 0.384011L11.2 9.34583L20.1618 0.384011C20.6738 -0.128004 21.504 -0.128004 22.016 0.384011C22.528 0.896026 22.528 1.72617 22.016 2.23818L13.0542 11.2L22.016 20.1618C22.528 20.6738 22.528 21.504 22.016 22.016C21.504 22.528 20.6738 22.528 20.1618 22.016L11.2 13.0542L2.23818 22.016C1.72617 22.528 0.896026 22.528 0.384011 22.016C-0.128003 21.504 -0.128003 20.6738 0.384011 20.1618L9.34583 11.2Z\"\n ></path>\n </svg>\n </button>\n </div>\n )}\n <div class={`menu ${this.isMenuOpen ? \"open\" : \"closed\"}`} ref={el => (this.menuRef = el)}>\n <ul>\n {this.botSettings?.buttons?.map(item => (\n <li\n onClick={() => {\n this.isMenuOpen = !this.isMenuOpen\n this.menuAction = item.action\n this.handleSend(item.label)\n }}\n >\n {item.label}\n </li>\n ))}\n </ul>\n </div>\n {this.hideInput && (\n <div class=\"chat-header\">\n <button\n onClick={() => {\n this.showWelcomeScreen = true\n this.hideInput = false\n this.checkHistory()\n }}\n >\n <svg aria-hidden=\"true\" width=\"20\" height=\"20\" viewBox=\"0 0 10 19\">\n <path\n fill=\"#FFFFFF\"\n d=\"M9.70711 0.542893C10.0976 0.933418 10.0976 1.56658 9.70711 1.95711L2.41421 9.25L9.70711 16.5429C10.0976 16.9334 10.0976 17.5666 9.70711 17.9571C9.31658 18.3476 8.68342 18.3476 8.29289 17.9571L0.292893 9.95711C0.105357 9.76957 -4.04995e-07 9.51522 -3.93402e-07 9.25C-3.81809e-07 8.98478 0.105357 8.73043 0.292893 8.54289L8.29289 0.542893C8.68342 0.152369 9.31658 0.152369 9.70711 0.542893Z\"\n clip-rule=\"evenodd\"\n fill-rule=\"evenodd\"\n ></path>\n </svg>\n </button>\n <span class=\"header-title\">Conversation History</span>\n </div>\n )}\n\n <div class=\"chat-body\">\n {this.showWelcomeScreen && (\n <chatbot-welcome\n welcomeMessage={this.botSettings?.welcome?.message}\n buttonsList={this.botSettings?.welcome?.buttons}\n welcomelogo={this.botSettings?.welcome?.image}\n />\n )}\n {this.showHistory && this.conversationHistory.length > 0 && this.hideInput && (\n <chatbot-history chatList={this.conversationHistory} botName={this.botSettings?.botName}></chatbot-history>\n )}\n {!this.showWelcomeScreen && this.messages.length > 0 && <p class=\"timestamp\">{this.timestamp}</p>}\n {!this.showWelcomeScreen &&\n this.messages.length > 0 &&\n this.messages.map(msg => (\n <div class={{ \"message\": true, \"message-user\": msg.isUser }}>\n <div class=\"msg-wrapper\">\n {!msg.isUser && <img class=\"bot-avatar\" src={this.botSettings?.botAvatar ?? this.botAvatar} alt=\"Bot Avatar\" />}\n <div class={{ \"message-content\": true, \"bubble-width\": !msg.isUser }}>\n <span class={{ \"message-text\": true, \"message-bot\": !msg.isUser, \"prose\": true }} id={msg.id} innerHTML={msg.text}>\n {msg?.images?.map(img => {\n return <img src={img} class=\"thumbnail\" alt=\"thumbnail\" />\n })}\n {!msg.isUser && msg.text === \"\" && (\n <svg class=\"animate-spin h-5 w-5 text-gray-400\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" id=\"spinner\">\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\"></circle>\n <path\n class=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 0 1 4 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n ></path>\n </svg>\n )}\n </span>\n <span class=\"message-timestamp\">{msg.timestamp}</span>\n </div>\n </div>\n </div>\n ))}\n </div>\n\n <div id=\"previewContainer\"></div>\n\n {!this.hideInput && (\n <div class=\"chat-footer\">\n {this.messages.length === 0 && (\n <div class=\"custom-privacy\">\n <slot name=\"custom-privacy\" />\n </div>\n )}\n {this.messages?.length > 0 && (\n <div class=\"follow-up\">\n <input\n ref={el => (this.followUpElem = el as HTMLInputElement)}\n type=\"checkbox\"\n name=\"followUp\"\n id=\"followUp\"\n defaultChecked={true}\n class=\"follow-up-input\"\n onChange={ev => this.handleFollowUp(ev)}\n />\n <label htmlFor=\"followUp\">Do you have a follow up question?</label>\n <svg\n onClick={() => this.followUpElem.click()}\n class=\"custom-svg-checkbox\n peer-checked:block text-white\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <polyline points=\"20 6 9 17 4 12\"></polyline>\n </svg>\n </div>\n )}\n <div style={{ display: \"flex\" }}>\n <textarea\n rows={this.rowCount}\n placeholder={this.botSettings?.botPlaceholderText ?? \"Type your message...\"}\n ref={el => (this.inputEl = el as HTMLTextAreaElement)}\n onKeyUp={this.adjustHeight}\n />\n {this.botSettings.imageUpload && (\n <div class=\"custom-attachment\">\n <input\n type=\"file\"\n multiple\n name=\"files[]\"\n id=\"fileInput\"\n accept=\"image/*\"\n class=\"image-upload__input\"\n onChange={($event: any) => this.onInputChange($event.target.files)}\n ref={el => (this.uploadElem = el as HTMLInputElement)}\n />\n <svg onClick={() => this.uploadElem.click()} aria-hidden=\"true\" width=\"18\" height=\"16\" viewBox=\"0 0 16 18\">\n <path\n fill=\"#687882\"\n fill-rule=\"evenodd\"\n d=\"M8.078 16a.71.71 0 0 1-.513-.222.784.784 0 0 1 0-1.075l7.53-7.879c.562-.587.871-1.368.871-2.199 0-.83-.31-1.611-.87-2.197a2.883 2.883 0 0 0-4.204 0l-8.735 9.139c-.493.516-.73 1.012-.703 1.476.026.452.298.801.46.968.27.284.563.402.892.358.413-.054.888-.35 1.375-.86l6.854-7.172a.703.703 0 0 1 1.026 0 .784.784 0 0 1 0 1.074l-6.853 7.172c-.728.761-1.475 1.196-2.222 1.293-.783.102-1.509-.172-2.1-.79-.528-.553-.841-1.246-.881-1.952-.053-.917.326-1.805 1.125-2.64l8.735-9.14a4.292 4.292 0 0 1 6.257 0 4.706 4.706 0 0 1 1.296 3.271c0 1.236-.461 2.4-1.296 3.274l-7.53 7.879a.71.71 0 0 1-.514.222z\"\n ></path>\n </svg>\n </div>\n )}\n <button onClick={() => this.handleSend(this.inputEl.value)}>\n <svg aria-hidden=\"true\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\">\n <path\n fill=\"#687882\"\n fill-rule=\"evenodd\"\n stroke=\"#687882\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M1 1l2.166 5.39 8.5 1.564-8.5 1.666L1 15l16-7z\"\n ></path>\n </svg>\n </button>\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n )\n }\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  // logger.ts
2
+ import { Env } from "@stencil/core";
2
3
  export var LogLevel;
3
4
  (function (LogLevel) {
4
5
  LogLevel[LogLevel["Debug"] = 1] = "Debug";
@@ -6,10 +7,23 @@ export var LogLevel;
6
7
  LogLevel[LogLevel["Warn"] = 3] = "Warn";
7
8
  LogLevel[LogLevel["Error"] = 4] = "Error";
8
9
  })(LogLevel || (LogLevel = {}));
10
+ function getLogLevelFromString(level) {
11
+ switch (level.toLowerCase()) {
12
+ case "info":
13
+ return LogLevel.Info;
14
+ case "warn":
15
+ return LogLevel.Warn;
16
+ case "error":
17
+ return LogLevel.Error;
18
+ default:
19
+ console.warn(`Invalid log level string: ${level}, defaulting to Error`);
20
+ return LogLevel.Error;
21
+ }
22
+ }
9
23
  export class Logger {
10
24
  constructor(componentName, options = {}) {
11
25
  this.componentName = componentName || "UnknownComponent";
12
- this.logLevel = options.logLevel || LogLevel.Debug;
26
+ this.logLevel = options.logLevel || getLogLevelFromString(Env.LOG_LEVEL) || LogLevel.Error;
13
27
  this.remoteLoggingUrl = options.remoteLoggingUrl;
14
28
  }
15
29
  setLogLevel(level) {
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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","sourcesContent":["// logger.ts\n\nexport enum LogLevel {\n Debug = 1,\n Info,\n Warn,\n Error,\n}\n\ninterface LoggerOptions {\n logLevel?: LogLevel\n remoteLoggingUrl?: string\n}\n\nexport class Logger {\n private componentName: string\n private logLevel: LogLevel\n private remoteLoggingUrl?: string\n\n constructor(componentName: string, options: LoggerOptions = {}) {\n this.componentName = componentName || \"UnknownComponent\"\n this.logLevel = options.logLevel || LogLevel.Debug\n this.remoteLoggingUrl = options.remoteLoggingUrl\n }\n\n setLogLevel(level: LogLevel) {\n if (level in LogLevel) {\n this.logLevel = level\n } else {\n console.warn(`Invalid log level: ${level}`)\n }\n }\n\n private log(level: LogLevel, message: string, ...args: any[]) {\n if (level >= this.logLevel) {\n const timestamp = new Date().toISOString()\n const levelName = LogLevel[level].toUpperCase()\n const formattedMessage = `[${timestamp}] [${this.componentName}] [${levelName}] ${message}`\n switch (level) {\n case LogLevel.Debug:\n console.debug(formattedMessage, ...args)\n break\n case LogLevel.Info:\n console.info(formattedMessage, ...args)\n break\n case LogLevel.Warn:\n console.warn(formattedMessage, ...args)\n break\n case LogLevel.Error:\n console.error(formattedMessage, ...args)\n break\n }\n\n if (this.remoteLoggingUrl) {\n this.sendToServer(levelName, message, args)\n }\n }\n }\n\n private sendToServer(level: string, message: string, args: any[]) {\n const logEntry = {\n timestamp: new Date().toISOString(),\n componentName: this.componentName,\n level: level,\n message: message,\n args: args,\n }\n\n fetch(this.remoteLoggingUrl!, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(logEntry),\n }).catch(error => {\n console.warn(\"Failed to send log to server:\", error)\n })\n }\n\n debug(message: string, ...args: any[]) {\n this.log(LogLevel.Debug, message, ...args)\n }\n\n info(message: string, ...args: any[]) {\n this.log(LogLevel.Info, message, ...args)\n }\n\n warn(message: string, ...args: any[]) {\n this.log(LogLevel.Warn, message, ...args)\n }\n\n error(message: string, errorObj?: Error) {\n if (errorObj instanceof Error) {\n this.log(LogLevel.Error, `${message}: ${errorObj.message}`, errorObj.stack)\n } else {\n this.log(LogLevel.Error, message, errorObj)\n }\n }\n}\n"]}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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","sourcesContent":["// logger.ts\nimport { Env } from \"@stencil/core\"\n\nexport enum LogLevel {\n Debug = 1,\n Info,\n Warn,\n Error,\n}\n\ninterface LoggerOptions {\n logLevel?: LogLevel\n remoteLoggingUrl?: string\n}\n\nfunction getLogLevelFromString(level: string): LogLevel {\n switch (level.toLowerCase()) {\n case \"info\":\n return LogLevel.Info\n case \"warn\":\n return LogLevel.Warn\n case \"error\":\n return LogLevel.Error\n default:\n console.warn(`Invalid log level string: ${level}, defaulting to Error`)\n return LogLevel.Error\n }\n}\n\nexport class Logger {\n private componentName: string\n private logLevel: LogLevel\n private remoteLoggingUrl?: string\n\n constructor(componentName: string, options: LoggerOptions = {}) {\n this.componentName = componentName || \"UnknownComponent\"\n this.logLevel = options.logLevel || getLogLevelFromString(Env.LOG_LEVEL) || LogLevel.Error\n this.remoteLoggingUrl = options.remoteLoggingUrl\n }\n\n setLogLevel(level: LogLevel) {\n if (level in LogLevel) {\n this.logLevel = level\n } else {\n console.warn(`Invalid log level: ${level}`)\n }\n }\n\n private log(level: LogLevel, message: string, ...args: any[]) {\n if (level >= this.logLevel) {\n const timestamp = new Date().toISOString()\n const levelName = LogLevel[level].toUpperCase()\n const formattedMessage = `[${timestamp}] [${this.componentName}] [${levelName}] ${message}`\n switch (level) {\n case LogLevel.Debug:\n console.debug(formattedMessage, ...args)\n break\n case LogLevel.Info:\n console.info(formattedMessage, ...args)\n break\n case LogLevel.Warn:\n console.warn(formattedMessage, ...args)\n break\n case LogLevel.Error:\n console.error(formattedMessage, ...args)\n break\n }\n\n if (this.remoteLoggingUrl) {\n this.sendToServer(levelName, message, args)\n }\n }\n }\n\n private sendToServer(level: string, message: string, args: any[]) {\n const logEntry = {\n timestamp: new Date().toISOString(),\n componentName: this.componentName,\n level: level,\n message: message,\n args: args,\n }\n\n fetch(this.remoteLoggingUrl!, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(logEntry),\n }).catch(error => {\n console.warn(\"Failed to send log to server:\", error)\n })\n }\n\n debug(message: string, ...args: any[]) {\n this.log(LogLevel.Debug, message, ...args)\n }\n\n info(message: string, ...args: any[]) {\n this.log(LogLevel.Info, message, ...args)\n }\n\n warn(message: string, ...args: any[]) {\n this.log(LogLevel.Warn, message, ...args)\n }\n\n error(message: string, errorObj?: Error) {\n if (errorObj instanceof Error) {\n this.log(LogLevel.Error, `${message}: ${errorObj.message}`, errorObj.stack)\n } else {\n this.log(LogLevel.Error, message, errorObj)\n }\n }\n}\n"]}
@@ -1,7 +1,7 @@
1
- import { S as SearchResult } from './ai12z-cta-e143bfc1.js';
2
- export { A as ai12z_bot, a as ai12z_cta } from './ai12z-cta-e143bfc1.js';
3
- import { r as registerInstance, h, F as Fragment, c as createEvent, g as getElement, E as Env } from './index-39265a7d.js';
4
- import { j as getDefaultExportFromCjs, s as showdown, d as splitContent, c as getComponentByControlType, k as debounce$1, m as getTemplate, n as getBotTemplate } from './utils-96bbd030.js';
1
+ import { S as SearchResult } from './ai12z-cta-2b941e5b.js';
2
+ export { A as ai12z_bot, a as ai12z_cta } from './ai12z-cta-2b941e5b.js';
3
+ import { r as registerInstance, h, F as Fragment, c as createEvent, g as getElement, E as Env } from './index-9f7965fd.js';
4
+ import { j as getDefaultExportFromCjs, s as showdown, d as splitContent, c as getComponentByControlType, k as debounce$1, m as getTemplate, n as getBotTemplate } from './utils-a4deff47.js';
5
5
 
6
6
  const ai12zCtaCss = ":host{--bg-smoke-light:rgba(0, 0, 0, 0.5);margin-left:20px}.bg-smoke-light{transition:opacity 300ms ease-in-out;position:fixed;top:0;left:0;z-index:200;display:flex;height:100vh;width:100vw;cursor:auto;flex-direction:column;background-color:#0003;--tw-backdrop-blur:blur(4px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate)\n var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.modal-content{transition:transform 300ms ease-in-out,\n opacity 300ms ease-in-out;transform:scale(0.9);opacity:0}.modal-position{position:relative;padding:2rem 0 0.5rem 1rem;flex-direction:column}.modal-close{color:rgb(0 0 0)}.modal-close:hover{color:rgb(31 41 55)}.model-heading{color:var(--ai12z-heading-color);font-size:var(--ai12z-heading-font-size)}:host(.show-modal) .bg-smoke-light{opacity:1}:host(.show-modal) .modal-content{transform:scale(1);opacity:1}.modal-content-wrapper{background-color:rgb(255 255 255);width:100%;max-width:48rem;border-radius:0.5rem;margin:var(--ai12z-dialog-margin);}.custom-title{font-size:var(--ai12z-category-font-size);color:var(--ai12z-category-font-color)}.model-wrapper{position:fixed;top:0;left:0;z-index:200;display:flex;height:100vh;width:100vw;cursor:auto;flex-direction:column;background-color:#0003;padding:1rem;--tw-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate)\n var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate)\n var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.custom-model{overflow:auto;inset:0px;position:fixed;min-height:100vh;place-items:center;display:flex}.modal-position .btn-position{position:absolute;right:0px;top:0px;padding:0.25rem}@media (max-width: 768px){.modal-content-wrapper{width:100%;height:100dvh;margin:0;border-radius:0;padding:1rem}.custom-privacy{position:fixed;bottom:0;left:0;width:100%;padding:10px}.modal-position .btn-position{padding:0rem}}.custom-privacy{color:var(--ai12z-knowledge-box-privacy-color);text-align:center;margin-top:auto;}.custom-button{align-items:center;text-align:left;background-color:rgb(255 255 255);color:rgb(148 163 184);border-radius:0.5rem;width:18rem;min-height:3rem;padding-left:1rem;padding-right:1rem;}.custom-msg{text-align:center;color:var(--ai12z-font-mute);justify-content:center;padding:2.5rem;}.cta-search-results{border-top-width:1px;border-bottom-width:0px;border-color:rgb(243 244 246)}.cta-search-results-list{position:relative;padding-bottom:1.25rem;padding-top:1.25rem}.cta-search-results-list:hover{background-color:var(--ai12z-hover-bg-color)}.cta-search-container{margin-left:auto;margin-right:auto;display:flex;max-width:56rem;justify-content:space-between;column-gap:1.5rem}.cta-search-container-two{display:flex;min-width:0px;column-gap:1rem}.cta-search-container-three{min-width:0px;flex:1 1 auto}.cta-search-text{font-weight:600;line-height:1.5rem;font-size:var(--ai12z-search-result-title-font-size);color:var(--ai12z-search-result-title-color)}.cta-search-text-position{position:absolute;left:0px;right:0px;top:-1px;bottom:0px}.cta-search-description{margin-top:0.25rem;display:flex;font-size:var(--ai12z-search-result-description-font-size);line-height:1rem;line-height:1.25rem;color:var(--ai12z-search-result-description-color)}.cta-search-list-arrow{display:flex;align-items:center;flex-shrink:0;column-gap:1rem}.custom-icon-width{width:4rem}.results-icon svg{width:1.5rem;height:1.5rem}";
7
7
  const Ai12zCategoryStyle0 = ai12zCtaCss;
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, c as createEvent, h } from './index-39265a7d.js';
1
+ import { r as registerInstance, c as createEvent, h } from './index-9f7965fd.js';
2
2
 
3
3
  const ai12zCarouselCss = ".carousel-container{display:flex;align-items:center;justify-content:space-between;width:100%;overflow:hidden;position:relative;flex-direction:column}.carousel{width:87%;display:flex;transition:transform 0.5s ease-in-out;transform:translateX(calc(-100% * var(--active-index) / var(--items-per-row)));}.carousel-item{flex:1 0 calc(100% / var(--items-per-row) - 30px);min-width:30%;background-color:#fff;border-radius:8px;margin-right:15px;min-height:500px;margin-left:15px}.carousel-more-item{min-height:350px;max-height:400px;overflow-y:auto}.carousel-item-des2{min-height:300px;overflow-y:auto}.carousel-item-img-container{justify-content:center;align-items:center;width:100%;display:flex}.carousel-item-img{width:250px;height:auto;border-radius:8px}.carousel-item-des{max-height:150px;overflow-y:auto}.prev,.next{background:#007bff;border:none;color:white;padding:10px;cursor:pointer;border-radius:50%;position:absolute;top:50%;transform:translateY(-50%);z-index:10}.prev{cursor:pointer;left:0px}.next{cursor:pointer;right:0px}button:disabled{opacity:0.5;cursor:not-allowed}.carousel-item-info{margin-left:10px}.carousel-btn{background-color:#007bff;color:white;padding:5px 10px;border:none;border-radius:5px;cursor:pointer;text-decoration:none;margin:5px}.carousel-item p{font-size:14px;line-height:1.5;white-space:normal;word-wrap:break-word;overflow-wrap:break-word}.indicators{display:flex;justify-content:center;margin-top:10px}.indicator{width:10px;height:10px;background-color:gray;border-radius:50%;margin:0 5px;cursor:pointer}.indicator.active{background-color:black}.carousel-more-item::-webkit-scrollbar,.carousel-item-des::-webkit-scrollbar{width:8px;}.carousel-more-item::-webkit-scrollbar,.carousel-item-des::-webkit-scrollbar-track{background:#f1f1f1;}.carousel-more-item::-webkit-scrollbar,.carousel-item-des::-webkit-scrollbar-thumb{background:#888;border-radius:10px}.carousel-more-item::-webkit-scrollbar,.carousel-item-des::-webkit-scrollbar-thumb:hover{background:#555;}";
4
4
  const Ai12zCarouselStyle0 = ai12zCarouselCss;