@hivegpt/hiveai-angular 0.0.71 → 0.0.72

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.
@@ -160,10 +160,10 @@ class ChatDrawerComponent {
160
160
  this.environment = this.isDev ? dev_environment : prod_environment;
161
161
  // this.fetchMyConnections().subscribe();
162
162
  // this.fetchPendingRequests().subscribe();
163
- this.fetchAgents();
164
163
  this.changeTemperature(this.temperature);
165
164
  this.fetchBotConfig().subscribe((res) => {
166
165
  this.cdr.markForCheck();
166
+ this.fetchAgents();
167
167
  this.fetchChatHistory().subscribe((response) => {
168
168
  this.loading = false;
169
169
  this.mapChatHistory(response);
@@ -860,7 +860,7 @@ ChatDrawerComponent.decorators = [
860
860
  selector: 'hivegpt-chat-drawer',
861
861
  template: "<mat-drawer-container class=\"hivegpt-chat-wrapper\" [class.ios-device]=\"isIOSDevice\" [hasBackdrop]=\"hasBackdropValue\">\r\n\r\n <mat-drawer class=\"drawer\" #drawer [position]=\"'end'\" [mode]=\"'over'\" opened=\"true\"\r\n [class.full-width-drawer]=\"fullView\" [style.background]=\"\r\n 'linear-gradient(' + (bgGradient ? bgGradient.join(', ') : '') + ')'\r\n \">\r\n <mat-drawer-content>\r\n\r\n <div class=\"chat-main\">\r\n <!-- <div class=\"chat-header\">\r\n <h2> -->\r\n <!-- {{eventName}} -->\r\n <!-- </h2> -->\r\n <!-- <button class=\"closeIcon\" (click)=\"onClose()\">\r\n <span class=\"material-symbols-outlined\">\r\n close\r\n </span>\r\n </button> -->\r\n <!-- </div> -->\r\n\r\n <div class=\"innerChat\" #chatMain>\r\n <div class=\"\">\r\n <div class=\"title\">\r\n <h2><span> {{botName}} <i><svg width=\"30\" height=\"30\" viewBox=\"0 0 106 105\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M52.8578 104.318C52.8645 104.32 52.8713 104.323 52.878 104.325V104.311C74.7711 96.9781 115.49 69.0948 103.537 16.0875C79.9227 8.17267 59.9557 2.08167 52.878 0.0118542V0C52.8713 0.0019722 52.8645 0.00394726 52.8578 0.00592613C52.851 0.00394726 52.8442 0.0019722 52.8375 0V0.0118542C45.7599 2.08167 25.7928 8.17267 2.17802 16.0875C-9.77459 69.0948 30.9444 96.9781 52.8375 104.311V104.325C52.8442 104.323 52.851 104.32 52.8578 104.318Z\"\r\n fill=\"#E2F6FA\"></path>\r\n <path\r\n d=\"M52.8409 95.3002V9.02441C58.6643 10.7266 75.2028 15.7706 94.7694 22.3286C104.66 66.1922 70.9382 89.2528 52.8409 95.3002Z\"\r\n fill=\"url(#paint0_linear_174_9166)\"></path>\r\n <rect x=\"63.725\" y=\"21.0347\" width=\"2.275\" height=\"29.6903\" rx=\"1.1375\"\r\n transform=\"rotate(-73.8316 63.725 21.0347)\"\r\n fill=\"url(#paint1_linear_174_9166)\"></rect>\r\n <path\r\n d=\"M52.8745 95.3002V9.02441C47.0511 10.7266 30.5127 15.7706 10.9461 22.3286C1.0553 66.1922 34.7772 89.2528 52.8745 95.3002Z\"\r\n fill=\"url(#paint2_linear_174_9166)\"></path>\r\n <path\r\n d=\"M67.1131 34.3431L43.2493 56.165C41.5673 57.7031 41.5085 60.3337 43.1202 61.9454L68.0846 86.9097C69.4975 88.3227 71.7364 88.4762 73.3289 87.2693L89.8566 74.7444C90.8029 74.0273 91.3817 72.9269 91.4364 71.7409L91.7769 64.3639C91.8163 63.5106 91.5814 62.667 91.1067 61.9568L73.138 35.0723C71.7767 33.0355 68.9209 32.6899 67.1131 34.3431Z\"\r\n fill=\"url(#paint3_linear_174_9166)\"></path>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M68.6302 31.8839C69.0923 31.6059 69.6441 31.5177 70.1698 31.6379C70.6955 31.758 71.1542 32.0771 71.4497 32.5282L73.5143 35.6772C73.7834 36.0886 73.8986 36.5818 73.8394 37.0698C73.7803 37.5579 73.5506 38.0093 73.191 38.3445L73.1848 38.3528L73.1556 38.3799L73.0367 38.4905L72.5675 38.9388C69.9711 41.4572 67.4535 44.0555 65.0183 46.7299C60.4366 51.7683 54.9958 58.3624 51.3338 64.7604C50.3119 66.5456 47.8157 66.9293 46.335 65.3882L32.8111 51.3366C32.6173 51.1352 32.466 50.8968 32.3661 50.6357C32.2663 50.3746 32.2199 50.0961 32.2298 49.8168C32.2398 49.5374 32.3057 49.2629 32.4239 49.0095C32.542 48.7562 32.7098 48.5292 32.9175 48.342L37.0049 44.6549C37.3641 44.3311 37.8247 44.1422 38.3078 44.1205C38.7909 44.0988 39.2666 44.2457 39.6534 44.5361L46.554 49.71C57.3335 39.0806 63.4459 35.0016 68.6302 31.8839Z\"\r\n fill=\"url(#paint4_linear_174_9166)\"></path>\r\n <defs>\r\n <linearGradient id=\"paint0_linear_174_9166\" x1=\"74.6954\" y1=\"9.02441\"\r\n x2=\"74.6954\" y2=\"95.3002\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#6EC6E3\"></stop>\r\n <stop offset=\"1\" stop-color=\"#5361C7\"></stop>\r\n </linearGradient>\r\n <linearGradient id=\"paint1_linear_174_9166\" x1=\"64.8625\" y1=\"21.0347\"\r\n x2=\"64.2597\" y2=\"43.0438\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"white\" stop-opacity=\"0.47\"></stop>\r\n <stop offset=\"1\" stop-color=\"white\" stop-opacity=\"0\"></stop>\r\n </linearGradient>\r\n <linearGradient id=\"paint2_linear_174_9166\" x1=\"31.02\" y1=\"9.02441\"\r\n x2=\"31.02\" y2=\"95.3002\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#5F8ED4\"></stop>\r\n <stop offset=\"1\" stop-color=\"#4F54C3\"></stop>\r\n </linearGradient>\r\n <linearGradient id=\"paint3_linear_174_9166\" x1=\"54.7875\" y1=\"42.5752\"\r\n x2=\"75.425\" y2=\"71.3377\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#5975CC\"></stop>\r\n <stop offset=\"1\" stop-color=\"#0043A6\" stop-opacity=\"0\"></stop>\r\n </linearGradient>\r\n <linearGradient id=\"paint4_linear_174_9166\" x1=\"40.8125\" y1=\"66.3502\"\r\n x2=\"73.8\" y2=\"66.3502\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#D0F0F7\"></stop>\r\n <stop offset=\"1\" stop-color=\"white\"></stop>\r\n </linearGradient>\r\n </defs>\r\n </svg></i> </span></h2>\r\n <p>AI-powered <span>copilot</span></p>\r\n </div>\r\n <div class=\"chatType\" style=\"display:none\">\r\n <h4 class=\"labelChat\">Choose a conversation style</h4>\r\n <ul>\r\n <li (click)=\"changeTemperature(0)\">\r\n <button [ngClass]=\"{active: temperature === 0}\">\r\n <span class=\"top-section-title\">\r\n More Creative\r\n </span>\r\n </button>\r\n </li>\r\n <li (click)=\"changeTemperature(1)\" class=\"fdssfd\">\r\n <button [ngClass]=\"{active: temperature === 1}\">\r\n <span class=\"top-section-title\">\r\n More Balanced\r\n </span>\r\n </button>\r\n </li>\r\n <li (click)=\"changeTemperature(2)\">\r\n <button [ngClass]=\"{active: temperature === 2}\">\r\n <span class=\"top-section-title\">\r\n More Precise\r\n </span>\r\n </button>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n <!-- chattype -->\r\n <div class=\"chat\" *ngFor=\"let chat of chatLog; let i = index\"\r\n [ngClass]=\"{ user: chat.type === 'user', bot: chat.type === 'ai' }\">\r\n <div class=\"chat-box\">\r\n <div class=\"message\" *ngIf=\"chat.type === 'ai' || chat.type === 'user'\" [ngStyle]=\"{\r\n background:\r\n chat.type === 'ai' && bgBubbleAi\r\n ? ''\r\n : chat.type === 'user' && bgBubbleUser\r\n ? ''\r\n : ''\r\n }\">\r\n <p *ngIf=\"chat.type === 'ai' || chat.type === 'user'\" [ngStyle]=\"{\r\n background:\r\n chat.type === 'ai' && messageTextColorAi\r\n ? ''\r\n : chat.type === 'user' && messageTextColorUser\r\n ? ''\r\n : '',\r\n color:\r\n chat.type === 'ai' && messageTextColorAi\r\n ? ''\r\n : chat.type === 'user' && messageTextColorUser\r\n ? ''\r\n : ''\r\n }\" [innerHTML]=\"chat.message\">\r\n </p>\r\n\r\n </div>\r\n <div class=\"cta\" *ngIf=\"showFeedBackIconsIndex === i\">\r\n <div class=\"copyBox\" title=\"Copy\" style=\"float: right;\">\r\n <button title=\"{{ chat.copied ? 'Copied!' : 'Copy' }}\" class=\"copy\"\r\n [class.active]=\"chat.copied\" (click)=\"handleCopyClick(i)\">\r\n <i *ngIf=\"chat.copied\">\r\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M9 16.17L4.83 12L3.41 13.41L9 19L21 7L19.59 5.59L9 16.17Z\"\r\n fill=\"#566563\" />\r\n </svg>\r\n\r\n </i>\r\n <i *ngIf=\"!chat.copied\">\r\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M19.24 2H8.84C8.14 2 7.58 2.56 7.58 3.26V16.84C7.58 17.54 8.14 18.1 8.84 18.1H19.24C19.94 18.1 20.5 17.54 20.5 16.84V3.26C20.5 2.56 19.94 2 19.24 2ZM19.24 16.84H8.84V3.26H19.24V16.84ZM4.74 6.52C4.04 6.52 3.48 7.08 3.48 7.78V20.36C3.48 21.06 4.04 21.62 4.74 21.62H15.14C15.84 21.62 16.4 21.06 16.4 20.36V18.88H14.96V20.36H4.74V7.78H6.18V6.52H4.74Z\"\r\n fill=\"#566563\" />\r\n </svg>\r\n </i>\r\n </button>\r\n <button class=\"up copy\" title=\"Like\" [class.active]=\"chat.liked\"\r\n (click)=\"handleUpClick(i)\">\r\n <i *ngIf=\"chat.liked\">\r\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M8.38989 18.4902V8.33022C8.38989 7.93022 8.50989 7.54022 8.72989 7.21022L11.4599 3.15022C11.8899 2.50022 12.9599 2.04022 13.8699 2.38022C14.8499 2.71022 15.4999 3.81022 15.2899 4.79022L14.7699 8.06022C14.7299 8.36022 14.8099 8.63022 14.9799 8.84022C15.1499 9.03022 15.3999 9.15022 15.6699 9.15022H19.7799C20.5699 9.15022 21.2499 9.47022 21.6499 10.0302C22.0299 10.5702 22.0999 11.2702 21.8499 11.9802L19.3899 19.4702C19.0799 20.7102 17.7299 21.7202 16.3899 21.7202H12.4899C11.8199 21.7202 10.8799 21.4902 10.4499 21.0602L9.16989 20.0702C8.67989 19.7002 8.38989 19.1102 8.38989 18.4902Z\"\r\n fill=\"#17235B\" />\r\n <path\r\n d=\"M5.21 6.37988H4.18C2.63 6.37988 2 6.97988 2 8.45988V18.5199C2 19.9999 2.63 20.5999 4.18 20.5999H5.21C6.76 20.5999 7.39 19.9999 7.39 18.5199V8.45988C7.39 6.97988 6.76 6.37988 5.21 6.37988Z\"\r\n fill=\"#17235B\" />\r\n </svg>\r\n </i>\r\n <i *ngIf=\"!chat.liked\">\r\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M10.4037 20.9264L10.381 20.9038L10.3557 20.8843L7.72165 18.85L8.02965 18.4516L10.7161 20.5315C10.9228 20.7195 11.2181 20.8517 11.4962 20.9377C11.7978 21.0309 12.1451 21.09 12.4801 21.09H16.2801C16.8572 21.09 17.4266 20.8625 17.8751 20.5306C18.3159 20.2044 18.6912 19.7385 18.8305 19.1997L21.2428 11.8732C21.4379 11.3309 21.4287 10.749 21.0965 10.2887C20.7583 9.81377 20.1844 9.58999 19.5801 9.58999H15.5801C15.2031 9.58999 14.8615 9.43143 14.6276 9.16215L14.627 9.16142C14.3873 8.88649 14.2756 8.51549 14.3345 8.11501L14.8322 4.9195C14.9978 4.1052 14.4664 3.24596 13.7053 2.98804C13.3277 2.85165 12.9297 2.89129 12.61 2.99839C12.2949 3.10396 11.9772 3.30172 11.7881 3.57673L11.7881 3.57671L11.7851 3.58107L7.96352 9.26689L7.55454 8.99314L11.3751 3.30891L11.3755 3.30836C11.8763 2.56103 13.0109 2.19028 13.8726 2.51744L13.8834 2.52151L13.8943 2.52509C14.9044 2.8564 15.556 3.98765 15.3317 5.01314L15.3284 5.02805L15.326 5.04314L14.836 8.19314L14.836 8.19313L14.8351 8.19928C14.8184 8.31642 14.7981 8.60268 15.0138 8.84924L15.0248 8.86177L15.0366 8.87354C15.1833 9.02026 15.3817 9.09999 15.5901 9.09999H19.5901C20.4308 9.09999 21.1176 9.44886 21.5113 10.0079L21.5124 10.0095C21.8964 10.5502 21.9908 11.2849 21.7202 12.0291L21.7175 12.0365L21.7151 12.044L19.3251 19.324L19.3198 19.34L19.3156 19.3564C19.0058 20.5707 17.6766 21.6 16.2801 21.6H12.4801C12.2411 21.6 11.8403 21.5625 11.4297 21.4512C11.0123 21.338 10.6406 21.1633 10.4037 20.9264Z\"\r\n fill=\"#566563\" stroke=\"#566563\" />\r\n <path\r\n d=\"M5.37988 20.4999H4.37988C3.52442 20.4999 2.98559 20.2982 2.65822 19.9825C2.33437 19.6702 2.12988 19.1614 2.12988 18.3499V8.5499C2.12988 7.73843 2.33437 7.22962 2.65822 6.91731C2.98559 6.6016 3.52442 6.3999 4.37988 6.3999H5.37988C6.23534 6.3999 6.77418 6.6016 7.10155 6.91731C7.4254 7.22962 7.62988 7.73843 7.62988 8.5499V18.3499C7.62988 19.1614 7.4254 19.6702 7.10155 19.9825C6.77418 20.2982 6.23534 20.4999 5.37988 20.4999ZM4.37988 6.8999C4.0934 6.8999 3.83578 6.9164 3.61382 6.96689C3.38745 7.01838 3.16822 7.11196 2.99258 7.2876C2.81559 7.46459 2.72807 7.67966 2.68301 7.89002C2.63948 8.09318 2.62988 8.31967 2.62988 8.5499V18.3499C2.62988 18.5801 2.63948 18.8066 2.68301 19.0098C2.72807 19.2201 2.81559 19.4352 2.99258 19.6122C3.16822 19.7878 3.38745 19.8814 3.61382 19.9329C3.83578 19.9834 4.0934 19.9999 4.37988 19.9999H5.37988C5.66637 19.9999 5.92398 19.9834 6.14595 19.9329C6.37232 19.8814 6.59155 19.7878 6.76719 19.6122C6.94418 19.4352 7.0317 19.2201 7.07676 19.0098C7.12028 18.8066 7.12988 18.5801 7.12988 18.3499V8.5499C7.12988 8.31967 7.12028 8.09318 7.07676 7.89002C7.0317 7.67966 6.94418 7.46459 6.76719 7.2876C6.59155 7.11196 6.37232 7.01838 6.14595 6.96689C5.92398 6.9164 5.66637 6.8999 5.37988 6.8999H4.37988Z\"\r\n fill=\"#566563\" stroke=\"#566563\" />\r\n </svg>\r\n </i>\r\n </button>\r\n <button class=\"down copy\" title=\"Dislike\" [class.active]=\"chat.unliked\"\r\n (click)=\"handleDownClick(i)\">\r\n <i *ngIf=\"chat.unliked\">\r\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M15.61 5.50002V15.66C15.61 16.06 15.49 16.45 15.27 16.78L12.54 20.84C12.11 21.49 11.04 21.95 10.13 21.61C9.15002 21.28 8.50002 20.18 8.71002 19.2L9.23002 15.93C9.27002 15.63 9.19002 15.36 9.02002 15.15C8.85002 14.96 8.60002 14.84 8.33002 14.84H4.22002C3.43002 14.84 2.75002 14.52 2.35002 13.96C1.97002 13.42 1.90002 12.72 2.15002 12.01L4.61002 4.52002C4.92002 3.28002 6.27002 2.27002 7.61002 2.27002H11.51C12.18 2.27002 13.12 2.50002 13.55 2.93002L14.83 3.92002C15.32 4.30002 15.61 4.88002 15.61 5.50002Z\"\r\n fill=\"#17235B\" />\r\n\r\n <path\r\n d=\"M18.7901 17.6099H19.8201C21.3701 17.6099 22.0001 17.0099 22.0001 15.5299V5.4799C22.0001 3.9999 21.3701 3.3999 19.8201 3.3999H18.7901C17.2401 3.3999 16.6101 3.9999 16.6101 5.4799V15.5399C16.6101 17.0099 17.2401 17.6099 18.7901 17.6099Z\"\r\n fill=\"#17235B\" />\r\n </svg>\r\n </i>\r\n\r\n <i *ngIf=\"!chat.unliked\">\r\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M10.1237 21.481L10.1148 21.4778L10.1059 21.4748C9.09577 21.1435 8.44416 20.0122 8.66849 18.9867L8.67175 18.9718L8.6741 18.9568L9.1641 15.8068L9.16413 15.8068L9.16501 15.8006C9.18175 15.6835 9.20207 15.3972 8.98633 15.1507L8.97536 15.1381L8.96359 15.1263C8.81687 14.9796 8.61841 14.8999 8.41004 14.8999H4.41004C3.56937 14.8999 2.88252 14.551 2.48884 13.992L2.4877 13.9904C2.10371 13.4497 2.00931 12.715 2.27994 11.9708L2.28263 11.9634L2.28509 11.9559L4.67509 4.67586L4.68035 4.65985L4.68451 4.64353C4.99418 3.42996 6.33271 2.3999 7.72004 2.3999H11.52C11.7591 2.3999 12.1599 2.43736 12.5704 2.54872C12.9878 2.66194 13.3596 2.83655 13.5965 3.07346L13.6191 3.09608L13.6444 3.11563L16.2785 5.14986L15.9705 5.54825L13.2875 3.47111C13.0799 3.2763 12.7837 3.1413 12.5061 3.05412C12.2031 2.95897 11.8551 2.8999 11.52 2.8999H7.72004C7.1429 2.8999 6.57353 3.12735 6.12508 3.45926C5.68428 3.78551 5.30892 4.25142 5.16963 4.79019L2.75738 12.1167C2.56223 12.659 2.57147 13.2409 2.90366 13.7012C3.24183 14.1761 3.81578 14.3999 4.42004 14.3999H8.42004C8.79702 14.3999 9.13867 14.5585 9.37252 14.8277L9.37315 14.8285C9.61286 15.1034 9.72457 15.4745 9.66568 15.875C9.6656 15.8755 9.66552 15.8761 9.66544 15.8766L9.16795 19.0704C9.00242 19.8841 9.53299 20.7428 10.2933 21.0013C10.6685 21.1391 11.0675 21.0978 11.3857 20.9917C11.7001 20.8869 12.0218 20.6898 12.2121 20.4132L12.2121 20.4132L12.215 20.4088L16.0351 14.7253L16.4472 15.0045L12.6251 20.691L12.6249 20.6912C12.259 21.2361 11.5347 21.5999 10.8 21.5999C10.5668 21.5999 10.3358 21.5596 10.1237 21.481Z\"\r\n fill=\"#566563\" stroke=\"#566563\" />\r\n <path\r\n d=\"M19.6201 17.6H18.6201C17.7647 17.6 17.2258 17.3983 16.8985 17.0826C16.5746 16.7703 16.3701 16.2615 16.3701 15.45V5.65C16.3701 4.83853 16.5746 4.32972 16.8985 4.0174C17.2258 3.7017 17.7647 3.5 18.6201 3.5H19.6201C20.4756 3.5 21.0144 3.7017 21.3418 4.0174C21.6656 4.32972 21.8701 4.83853 21.8701 5.65V15.45C21.8701 16.2615 21.6656 16.7703 21.3418 17.0826C21.0144 17.3983 20.4756 17.6 19.6201 17.6ZM18.6201 4C18.3336 4 18.076 4.01649 17.8541 4.06699C17.6277 4.11848 17.4085 4.21206 17.2328 4.3877C17.0558 4.56469 16.9683 4.77976 16.9232 4.99011C16.8797 5.19328 16.8701 5.41977 16.8701 5.65V15.45C16.8701 15.6802 16.8797 15.9067 16.9232 16.1099C16.9683 16.3202 17.0558 16.5353 17.2328 16.7123C17.4085 16.8879 17.6277 16.9815 17.8541 17.033C18.076 17.0835 18.3336 17.1 18.6201 17.1H19.6201C19.9066 17.1 20.1642 17.0835 20.3862 17.033C20.6126 16.9815 20.8318 16.8879 21.0074 16.7123C21.1844 16.5353 21.2719 16.3202 21.317 16.1099C21.3605 15.9067 21.3701 15.6802 21.3701 15.45V5.65C21.3701 5.41977 21.3605 5.19328 21.317 4.99011C21.2719 4.77976 21.1844 4.56469 21.0074 4.3877C20.8318 4.21206 20.6126 4.11848 20.3862 4.06699C20.1642 4.01649 19.9066 4 19.6201 4H18.6201Z\"\r\n fill=\"#566563\" stroke=\"#566563\" />\r\n </svg>\r\n </i>\r\n </button>\r\n\r\n </div>\r\n\r\n </div>\r\n <div class=\"time-cta\"\r\n [ngClass]=\"{'time-cta din': showFeedBackIconsIndex===i, 'time-cta': showFeedBackIconsIndex!=i}\">\r\n <div class=\"Icon_TimeSTamp\" *ngIf=\"chat.type === 'ai'\">\r\n <img [src]=\"botIcon\" [alt]=\"botName || 'Assistant'\">\r\n <div class=\"dateTime\" [style.color]=\"dateTimeColor ? '' : ''\">\r\n {{ \"Assistant\" }} - {{ chat.time }}\r\n </div>\r\n </div>\r\n\r\n <div class=\"Icon_TimeSTamp\" *ngIf=\"chat.type === 'user'\">\r\n <img src=\"https://e1cdn.social27.com/digitalevents/chatbot/user-chatbot-icon.svg\">\r\n <div class=\"dateTime\">\r\n You - {{ chat.time }}\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n </div>\r\n <div class=\"cta-faqs quick-prompts-extended\" *ngIf=\"i == 0 && quickPrompts?.length\">\r\n <!-- <div *ngFor=\"let tile of quickPrompts\" class=\"cta\"\r\n (click)=\"sendMessageWithTile(tile.prompt)\">\r\n Q: {{ tile.text }}\r\n </div> -->\r\n <div class=\"cta_suggestions\">\r\n <button *ngFor=\"let tile of quickPrompts\" (click)=\"sendMessageWithTile(tile.prompt)\">\r\n <ng-container *ngIf=\"tile\">{{tile.text}}</ng-container>\r\n </button>\r\n </div>\r\n\r\n </div>\r\n <div class=\"chat bot\" *ngIf=\"i == 0 && botSkills\">\r\n <div class=\"chat-box\">\r\n <div class=\"message\">\r\n <p>{{botSkills}} </p> &nbsp;\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"chat.suggestions?.length\">\r\n <h4 class=\"labelChat\">Here are some things EventsGPT Copilot can help you do:</h4>\r\n <div class=\"cta_suggestions\">\r\n <button *ngFor=\"let suggestion of chat.suggestions\"\r\n (click)=\"sendMessageWithTile(suggestion)\">\r\n <ng-container *ngIf=\"suggestion\">{{suggestion}}</ng-container>\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"chat.action?.section_id == 'company_search' || chat.action?.section_id == 'user_search' || chat.action?.section_id == 'industry_company_search'\">\r\n <div class=\"box\">\r\n <div class=\"tiktokwrapper\">\r\n <div class=\"tiktokshell\" *ngFor=\"let user of chat.action.users\">\r\n <div class=\"videoPhotobox\">\r\n <ng-conatiner *ngIf=\"user?.photoPath && !user.userVideosModel\">\r\n <img [src]=\"user?.photoPath\">\r\n </ng-conatiner>\r\n <ng-conatiner *ngIf=\"user.userVideosModel\">\r\n <app-video-player *ngIf=\"user?.userVideosModel\" [isDev]=\"isDev\"\r\n [currentUserId]=\"userId\" [videoObj]=\"user?.userVideosModel\"\r\n [user]=\"user\" [eventId]=\"eventId\" type=\"1\">\r\n </app-video-player>\r\n </ng-conatiner>\r\n\r\n </div>\r\n\r\n <div class=\"noPhoto\" *ngIf=\"!user?.photoPath && !user.userVideosModel\">\r\n <h3>{{user.firstName | slice:0:1}}{{user.lastName | slice:0:1}}</h3>\r\n </div>\r\n <div class=\"overlymask\" *ngIf=\"!user.userVideosModel\">\r\n </div>\r\n <div class=\"onshell-content\">\r\n <div class=\"title-shell\">\r\n <h3>{{user.firstName}} {{user.lastName}}</h3>\r\n <h3 class=\"companyName\">{{user.company}}</h3>\r\n </div>\r\n <div class=\"button-shell\">\r\n <button class=\"Connectbtn\"\r\n (click)=\"connectToUser(user.userId)\">{{canConnect(user.userId) ?\r\n 'Connect' : canDisconnect(user.userId) ? 'Disconnect' : 'Request\r\n Sent'}}</button>\r\n <button class=\"schedulebtn\"\r\n (click)=\"scheduleMeetingWithUser(user)\">Schedule</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"chat.action?.section_id == myUpcomingSessionAction\">\r\n <div class=\"agenda-items-wrapper\" class=\"agenda-items-wrapper\">\r\n <div class=\"list-view\">\r\n <div class=\"session-detail-wrapper card-background-session\"\r\n *ngFor=\"let upcomingSession of chat.action.content\">\r\n <div class=\"thumbnail \"><img alt=\"Introduction to the Imaging Radar Academy\"\r\n src=\"https://s27media.azureedge.net/8008/profile_pic/453cea2c-feba-11ed-8c0b-00155d025b0a.png\"\r\n class=\"\">\r\n <!---->\r\n <!---->\r\n <!----><button class=\"play-btn color-primary \"\r\n title=\"Play Session: Introduction to the Imaging Radar Academy\"><span\r\n class=\"material-icons notranslate \"> play_circle_outline\r\n </span>\r\n <!---->\r\n </button>\r\n <!---->\r\n <!---->\r\n </div>\r\n <!---->\r\n <!---->\r\n <div class=\"content p-3\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"d-flex flex-column\">\r\n <p class=\"fs-xs mb-0 body-text-color \">\r\n {{upcomingSession.dateTimeRange.start | date:'MM-dd-yyyy\r\n HH:mm':'UTC'}} - {{upcomingSession.dateTimeRange.end |\r\n date:'MM-dd-yyyy HH:mm':'UTC'}} {{upcomingSession.timeZone.id}}\r\n </p>\r\n <!---->\r\n <!---->\r\n <!-- <p class=\"fs-xs mb-2 color-secondary\" title=\"Session Type: Generative AI\">Generative AI </p> -->\r\n <!---->\r\n </div>\r\n <div class=\"d-flex align-items-center actions px-2\">\r\n <!---->\r\n <button\r\n (click)=\"performSessionAction(upcomingSession.id, 'view-session')\"\r\n class=\"s27-btn-icon body-text-color\"\r\n title=\"View Session Information: Introduction to the Imaging Radar Academy\"><span\r\n class=\"material-icons notranslate\"> remove_red_eye\r\n </span>\r\n </button>\r\n\r\n <button\r\n (click)=\"performSessionAction(upcomingSession.id, 'add-to-agenda')\"\r\n class=\"s27-btn-icon body-text-color \"><span\r\n class=\"material-icons notranslate\"\r\n title=\"Add Session: Introduction to the Imaging Radar Academy to My agendaa\">\r\n event_available </span>\r\n </button>\r\n <!---->\r\n <!---->\r\n <!---->\r\n <!---->\r\n\r\n <button (click)=\"performSessionAction(upcomingSession.id, 'play')\"\r\n class=\"s27-btn-icon body-text-color \"\r\n title=\"Copy session link to share\"><span\r\n class=\"material-icons notranslate\"> play_circle_outline\r\n </span>\r\n </button>\r\n <!---->\r\n </div>\r\n </div>\r\n <h2 class=\"body-text-color\">{{upcomingSession.title}}</h2>\r\n <div class=\"session-description color-secondary\"\r\n [innerHTML]=\"sanitizeHtml(upcomingSession.description)\">\r\n </div>\r\n <ul class=\"speakers grid-2-cols\"\r\n *ngFor=\"let speakerId of upcomingSession.speakers\">\r\n <li class=\"\">\r\n <div class=\"image \" title=\"Blair Wunderlich\"><img\r\n alt=\"Blair Wunderlich\"\r\n [src]=\"speakers[speakerId]?.photoPath\" class=\"\">\r\n <!---->\r\n <!---->\r\n <!---->\r\n </div>\r\n <!---->\r\n <div class=\"content pl-3 \" style=\"text-transform: none;\">\r\n <div class=\"mb-0 body-text-color fs-xs fw-500\">\r\n {{speakers[speakerId]?.firstName}}\r\n {{speakers[speakerId]?.lastName}}</div>\r\n <div class=\"color-secondary fs-xxs\">\r\n {{speakers[speakerId]?.jobTitle}}</div>\r\n <div class=\"color-secondary fs-xxs\">\r\n {{speakers[speakerId]?.company}}</div>\r\n </div>\r\n <!---->\r\n </li>\r\n </ul>\r\n <!---->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"chat bot\" *ngIf=\"isChatingWithAi\">\r\n\r\n <div class=\"chat-box\">\r\n <div class=\"skeleton-message\">\r\n <div class=\"skeleton-text\">\r\n <div class=\"skeleton-line w-65\"></div>\r\n <div class=\"skeleton-line w-100\"></div>\r\n <div class=\"skeleton-line w-100\"></div>\r\n <div class=\"skeleton-line w-65\"></div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"time-cta\">\r\n <div class=\"Icon_TimeSTamp\">\r\n <img [src]=\"botIcon\" [alt]=\"botName || 'Assistant'\">\r\n <div class=\"dateTime\" [style.color]=\"dateTimeColor ? '' : ''\">\r\n {{ \"Assistant\" }} - {{ chat.time }}\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"chat bot\" *ngIf=\"loading\">\r\n <div class=\"chat-box\">\r\n <div class=\"message\" [style.background]=\"bgBubbleAi ? '' : ''\">\r\n <p>Loading </p> &nbsp;\r\n <div class=\"spinner\">\r\n <div class=\"bounce1\"></div>\r\n <div class=\"bounce2\"></div>\r\n <div class=\"bounce3\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- <div #chatMain></div> -->\r\n <div class=\"chatFooterWrapper\">\r\n <div class=\"chat-footer\">\r\n <div class=\"dropdown-wrapper\" (click)=\"toggleDropdown()\">\r\n <div class=\"dropdown-header\">\r\n <span>Select Agents</span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"none\"\r\n stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\r\n <path d=\"M19 9l-7 7-7-7\" />\r\n </svg>\r\n </div>\r\n <div class=\"dropdown-menu\" *ngIf=\"isDropdownOpen\">\r\n <label *ngFor=\"let agent of agents\">\r\n <input type=\"checkbox\" [checked]=\"agent.selected\" (change)=\"onAgentChange(agent)\" />\r\n {{ agent.name }}\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"border-shape\">\r\n <input [disabled]=\"loading\" type=\"text\" class=\"form-control-1 s27-scroll\"\r\n placeholder=\"Ask anything...\" [style.background]=\"formFieldBgColor ? formFieldBgColor : ''\"\r\n [style.color]=\"formFieldTextColor ? formFieldTextColor : ''\" [(ngModel)]=\"input\"\r\n (keyup.enter)=\"handleSubmit()\" #myInput />\r\n </div>\r\n <div class=\"cta-footer\">\r\n <button class=\"btn cta-chat\" (click)=\"handleSubmit()\"\r\n [style.background]=\"sendButtonColor ? sendButtonColor : ''\"\r\n [style.color]=\"sendButtonTextColor ? sendButtonTextColor : ''\">\r\n <svg stroke=\"currentColor\" fill=\"currentColor\" stroke-width=\"0\" viewBox=\"0 0 512 512\"\r\n height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M476.59 227.05l-.16-.07L49.35 49.84A23.56 23.56 0 0027.14 52 24.65 24.65 0 0016 72.59v113.29a24 24 0 0019.52 23.57l232.93 43.07a4 4 0 010 7.86L35.53 303.45A24 24 0 0016 327v113.31A23.57 23.57 0 0026.59 460a23.94 23.94 0 0013.22 4 24.55 24.55 0 009.52-1.93L476.4 285.94l.19-.09a32 32 0 000-58.8z\">\r\n </path>\r\n </svg>\r\n <!-- SEND -->\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"text-left note-section\">\r\n <div class=\"note\">\r\n <i>\r\n <svg width=\"30\" height=\"30\" viewBox=\"0 0 106 105\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M52.8578 104.318C52.8645 104.32 52.8713 104.323 52.878 104.325V104.311C74.7711 96.9781 115.49 69.0948 103.537 16.0875C79.9227 8.17267 59.9557 2.08167 52.878 0.0118542V0C52.8713 0.0019722 52.8645 0.00394726 52.8578 0.00592613C52.851 0.00394726 52.8442 0.0019722 52.8375 0V0.0118542C45.7599 2.08167 25.7928 8.17267 2.17802 16.0875C-9.77459 69.0948 30.9444 96.9781 52.8375 104.311V104.325C52.8442 104.323 52.851 104.32 52.8578 104.318Z\"\r\n fill=\"#E2F6FA\"></path>\r\n <path\r\n d=\"M52.8409 95.3002V9.02441C58.6643 10.7266 75.2028 15.7706 94.7694 22.3286C104.66 66.1922 70.9382 89.2528 52.8409 95.3002Z\"\r\n fill=\"url(#paint0_linear_174_9166)\"></path>\r\n <rect x=\"63.725\" y=\"21.0347\" width=\"2.275\" height=\"29.6903\" rx=\"1.1375\"\r\n transform=\"rotate(-73.8316 63.725 21.0347)\" fill=\"url(#paint1_linear_174_9166)\">\r\n </rect>\r\n <path\r\n d=\"M52.8745 95.3002V9.02441C47.0511 10.7266 30.5127 15.7706 10.9461 22.3286C1.0553 66.1922 34.7772 89.2528 52.8745 95.3002Z\"\r\n fill=\"url(#paint2_linear_174_9166)\"></path>\r\n <path\r\n d=\"M67.1131 34.3431L43.2493 56.165C41.5673 57.7031 41.5085 60.3337 43.1202 61.9454L68.0846 86.9097C69.4975 88.3227 71.7364 88.4762 73.3289 87.2693L89.8566 74.7444C90.8029 74.0273 91.3817 72.9269 91.4364 71.7409L91.7769 64.3639C91.8163 63.5106 91.5814 62.667 91.1067 61.9568L73.138 35.0723C71.7767 33.0355 68.9209 32.6899 67.1131 34.3431Z\"\r\n fill=\"url(#paint3_linear_174_9166)\"></path>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M68.6302 31.8839C69.0923 31.6059 69.6441 31.5177 70.1698 31.6379C70.6955 31.758 71.1542 32.0771 71.4497 32.5282L73.5143 35.6772C73.7834 36.0886 73.8986 36.5818 73.8394 37.0698C73.7803 37.5579 73.5506 38.0093 73.191 38.3445L73.1848 38.3528L73.1556 38.3799L73.0367 38.4905L72.5675 38.9388C69.9711 41.4572 67.4535 44.0555 65.0183 46.7299C60.4366 51.7683 54.9958 58.3624 51.3338 64.7604C50.3119 66.5456 47.8157 66.9293 46.335 65.3882L32.8111 51.3366C32.6173 51.1352 32.466 50.8968 32.3661 50.6357C32.2663 50.3746 32.2199 50.0961 32.2298 49.8168C32.2398 49.5374 32.3057 49.2629 32.4239 49.0095C32.542 48.7562 32.7098 48.5292 32.9175 48.342L37.0049 44.6549C37.3641 44.3311 37.8247 44.1422 38.3078 44.1205C38.7909 44.0988 39.2666 44.2457 39.6534 44.5361L46.554 49.71C57.3335 39.0806 63.4459 35.0016 68.6302 31.8839Z\"\r\n fill=\"#C4C4C4\"></path>\r\n <defs>\r\n <linearGradient id=\"paint0_linear_174_9166\" x1=\"87.9736\" y1=\"7.88186\" x2=\"7.52095\"\r\n y2=\"100.482\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#E8F6F9\"></stop>\r\n <stop offset=\"1\" stop-color=\"#CEFAF9\"></stop>\r\n </linearGradient>\r\n <linearGradient id=\"paint1_linear_174_9166\" x1=\"63.8012\" y1=\"37.3264\" x2=\"66.6714\"\r\n y2=\"24.7281\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#C2E4E7\"></stop>\r\n <stop offset=\"1\" stop-color=\"#F3F8F8\" stop-opacity=\"0\"></stop>\r\n </linearGradient>\r\n <linearGradient id=\"paint2_linear_174_9166\" x1=\"52.8387\" y1=\"30.822\" x2=\"27.7411\"\r\n y2=\"77.8896\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#E8F6F9\"></stop>\r\n <stop offset=\"1\" stop-color=\"#CEFAF9\"></stop>\r\n </linearGradient>\r\n <linearGradient id=\"paint3_linear_174_9166\" x1=\"89.7622\" y1=\"51.5494\" x2=\"73.8328\"\r\n y2=\"68.4825\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#A0E6E9\"></stop>\r\n <stop offset=\"1\" stop-color=\"#D6F7F9\" stop-opacity=\"0\"></stop>\r\n </linearGradient>\r\n </defs>\r\n </svg>\r\n </i>\r\n <span class=\"text\">Your personal or company information is kept private and secure within this\r\n chat.</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n\r\n </mat-drawer-content>\r\n </mat-drawer>\r\n</mat-drawer-container>",
862
862
  changeDetection: ChangeDetectionStrategy.OnPush,
863
- styles: ["@import url(\"https://e1cdn.social27.com/digitalevents/liteversion/fonts/segoe-ui/stylesheet.css\");::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb,::-webkit-scrollbar-thumb:hover{background:#e5ccbc}body{overflow:hidden}.ios-device .drawer .chat-footer .form-control{font-size:16px}.hivegpt-chat-wrapper{background:transparent!important;height:100%;inset:0;opacity:0;position:fixed;visibility:hidden;z-index:999999}.hivegpt-chat-wrapper.mat-drawer-container-has-open{background:transparent!important;opacity:1;transition:all .3s;visibility:visible;z-index:999999}.hivegpt-chat-wrapper .mat-drawer:not(.mat-drawer-side){box-shadow:none}.hivegpt-chat-wrapper mat-drawer{background-color:#eee;background-image:linear-gradient(180deg,rgba(88,190,251,.050980392156862744) 60%,rgba(0,102,255,.2) 96.27%);max-width:800px;width:100%}.hivegpt-chat-wrapper mat-drawer.full-width-drawer{max-width:100%}.hivegpt-chat-wrapper .mat-drawer-content{display:flex;flex-direction:column}.hivegpt-chat-wrapper .chat-header{padding:16px 40px;width:100%}.hivegpt-chat-wrapper .chat-header h2{font-family:Segoe UI,sans-serif;font-size:36px;font-weight:500;letter-spacing:-.72px;line-height:108%;margin:0;text-transform:uppercase}.hivegpt-chat-wrapper .chat-header .closeIcon{align-items:center;background:transparent;border:none;border-radius:50%;display:inline-flex;font-size:18px;height:35px;justify-content:center;outline:none;padding:0;position:absolute;right:12px;top:16px;width:35px}.hivegpt-chat-wrapper .chat-main{display:flex;flex:1;flex-direction:column;justify-content:space-between;overflow-y:auto;width:100%}.hivegpt-chat-wrapper .chat-main .innerChat{overflow-y:auto;padding:20px 40px 10px;width:100%}.hivegpt-chat-wrapper .chat-main .chat{margin-bottom:20px}.hivegpt-chat-wrapper .chat-main .chat .chat-box{max-width:80%;width:100%}.hivegpt-chat-wrapper .chat-main .chat .chat-box .message{background:hsla(0,0%,100%,.7019607843137254);box-shadow:0 .3px .9px rgba(0,0,0,.12156862745098039),0 1.6px 3.6px rgba(0,0,0,.1607843137254902);display:inline-flex;margin-bottom:5px;min-height:44px;padding:12px 20px;position:relative}.hivegpt-chat-wrapper .chat-main .chat .chat-box .message p{color:#111;font-family:Segoe UI,sans-serif;font-size:14px;font-style:normal;font-weight:500;line-height:160%;margin:0;text-align:left;white-space:pre-line}.hivegpt-chat-wrapper .chat-main .chat .chat-box .message p a{color:#17235b!important;cursor:pointer!important;font-weight:700;text-decoration:underline}.hivegpt-chat-wrapper .chat-main .chat .chat-box .message .cta{align-items:end;bottom:-7px;display:inline-flex;gap:10px;grid-gap:10px;position:relative;right:-10px;z-index:5}.hivegpt-chat-wrapper .chat-main .chat .chat-box .message .cta button{background:transparent;border:none;color:#566563;cursor:pointer;padding:0;transition:all .3s}.hivegpt-chat-wrapper .chat-main .chat .chat-box .message .cta button i{display:inline-block}.hivegpt-chat-wrapper .chat-main .chat .chat-box .message .cta button:hover{color:#17235b}.hivegpt-chat-wrapper .chat-main .chat .chat-box .message .cta button.up:hover i{animation:thumbsUpAnimation .5s ease-in-out;animation-fill-mode:forwards}.hivegpt-chat-wrapper .chat-main .chat .chat-box .message .cta button.down:hover i{animation:thumbsDownAnimation .5s ease-in-out;animation-fill-mode:forwards}.hivegpt-chat-wrapper .chat-main .chat.bot .chat-box .message{border-radius:20px 20px 20px 0}.hivegpt-chat-wrapper .chat-main .chat.user{text-align:right}.hivegpt-chat-wrapper .chat-main .chat.user .chat-box{margin-left:auto}.hivegpt-chat-wrapper .chat-main .chat.user .chat-box .message{background:linear-gradient(96deg,#8b4ead -10.61%,#761c79 84.59%);border-radius:20px 20px 0 20px;color:#fff}.hivegpt-chat-wrapper .chat-main .chat.user .chat-box .message p{color:#fff;text-align:left}.hivegpt-chat-wrapper .chat-main .chat.user .dateTime{text-align:right}.hivegpt-chat-wrapper .chat-main .chat.user .time-cta{justify-content:flex-end}.hivegpt-chat-wrapper .chat-main .chat .Icon_TimeSTamp{align-content:center;align-items:center;display:flex;justify-content:center}.hivegpt-chat-wrapper .chat-main .chat .dateTime{color:#566563;font-family:Segoe UI,sans-serif;font-size:13px;font-style:normal;font-weight:500;line-height:140%;margin:0 5px}.hivegpt-chat-wrapper .chat-main .chat:last-of-type{margin-bottom:0}.hivegpt-chat-wrapper .chatFooterWrapper{background:#fff;border-radius:6px 6px 0 0!important;margin-top:5px!important;padding:10px 14px}.hivegpt-chat-wrapper .chatFooterWrapper .note{align-items:center;border-radius:6px;color:#1b75bb;display:inline-flex;font-size:11px;gap:8px;line-height:1;margin:0 auto 4px;padding:4px 8px}.hivegpt-chat-wrapper .chatFooterWrapper .note a{text-transform:capitalize}.hivegpt-chat-wrapper .chatFooterWrapper .note i{font-size:18px}.hivegpt-chat-wrapper .chatFooterWrapper .note i svg{height:18px;width:18px}.hivegpt-chat-wrapper .chatFooterWrapper .note span{flex:1;gap:4px;line-height:1.3}.hivegpt-chat-wrapper .chat-footer{align-items:center;display:flex;gap:8px;justify-content:space-between;padding:4px 0 0;position:relative}.hivegpt-chat-wrapper .chat-footer .form-control{background:#fff!important;border:0;line-height:21px;outline:0;padding:10px;position:relative;width:100%}.hivegpt-chat-wrapper .chat-footer .form-control::-moz-placeholder{color:#6c7a78}.hivegpt-chat-wrapper .chat-footer .form-control::placeholder{color:#6c7a78}.hivegpt-chat-wrapper .chat-footer .form-control:focus{border-color:#e5ccbc;box-shadow:0 0 0 .2rem rgba(229,204,188,.25)}.hivegpt-chat-wrapper .chat-footer .cta-footer{align-items:center;bottom:5px;display:flex;gap:8px;justify-content:space-between;position:absolute;right:10px;text-align:right}.hivegpt-chat-wrapper .chat-footer .cta-footer .btn{color:#000;font-weight:500;gap:8px;max-width:150px;padding:0}.hivegpt-chat-wrapper .chat-footer .cta-footer .cta-chat{align-items:center;background:transparent!important;border:none;border-radius:0;box-shadow:0 1px 2px 0 rgba(16,24,40,.05);display:inline-flex;font-size:20px;height:auto;justify-content:center;width:auto}.hivegpt-chat-wrapper .chat-footer .cta-footer .cta-chat:hover{opacity:.8}.hivegpt-chat-wrapper .chat-footer .cta-footer .cta-again{background:#17235b;border:1px solid #17235b;color:#fff}.hivegpt-chat-wrapper .cta-faqs{align-items:flex-end;display:flex;flex-direction:column;flex-wrap:wrap;gap:8px;margin-left:auto;max-width:80%;padding:10px 0 0}.hivegpt-chat-wrapper .cta-faqs .cta{background:transparent;border:1px solid #c9a893;border-radius:20px 20px 0 20px;color:#333;cursor:pointer;font-family:Segoe UI,sans-serif;font-size:14px;font-style:normal;font-weight:500;line-height:160%;margin:0;min-height:44px;padding:12px 20px;text-align:left;text-decoration:none;transition:all .3s;white-space:pre-line}.spinner{align-items:center;display:flex;gap:2px;justify-content:center}.spinner>div{animation:bouncedelay 1.4s ease-in-out infinite;animation-fill-mode:both;background-color:#173330;border-radius:100%;display:inline-block;height:5px;width:5px}.spinner .bounce1{animation-delay:-.32s}.spinner .bounce2{animation-delay:-.16s}@keyframes bouncedelay{0%,80%,to{-webkit-transform:scale(0);transform:scale(0)}40%{-webkit-transform:scale(1);transform:scale(1)}}.time-cta{align-items:center;display:flex;gap:8px;justify-content:start;margin-left:-30px;margin-top:5px}@keyframes thumbsUpAnimation{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes thumbsDownAnimation{0%,to{transform:translateY(0)}50%{transform:translateY(3px)}}@media (max-width:767px){.hivegpt-chat-wrapper .chat-main .innerChat{padding:0 24px 10px}.hivegpt-chat-wrapper .chat-footer{padding:10px 24px}.hivegpt-chat-wrapper .chat-footer .cta-footer .cta-chat{max-width:100%}.hivegpt-chat-wrapper .chat-footer .form-control{height:80px}.hivegpt-chat-wrapper .chat-header .closeIcon{height:28px;right:8px;top:8px;width:28px}.hivegpt-chat-wrapper .chat-header .closeIcon span{font-size:14px}.hivegpt-chat-wrapper .chat-header{padding:10px 24px}.hivegpt-chat-wrapper .chat-header h2{font-size:20px}.cta-faqs{padding:10px 0 0}}.body-overflow-hidden{overflow:hidden}.chat-button{align-items:center;background:#17235b;border:#17235b;border-radius:50%;color:#fff;display:inline-flex;font-size:24px;height:50px;justify-content:center;width:50px}textarea{caret-color:#000}.labelChat{font-size:14px;font-weight:400;margin:0 0 10px}.chatType h4{color:#566563;text-align:center}.chatType ul{align-items:center;background:#fff;border-radius:10px;box-shadow:0 .3px .9px rgba(0,0,0,.12),0 1.6px 3.6px rgba(0,0,0,.16);display:flex;justify-content:center;list-style:none;margin:0 0 20px;padding:4px}.chatType ul li{flex:1}.chatType ul li button{align-items:center;background:#fff;border:none;border-radius:10px;font-weight:600;min-height:48px;padding:.375rem;text-align:center;text-shadow:1px 0 rgba(0,0,0,.2);width:100%}.chatType ul li button.active{background:linear-gradient(96deg,#761c79 -10.61%,#761c79 84.59%);box-shadow:0 1px 2px 0 rgba(16,24,40,.05);color:#fff}.cta_suggestions{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:20px}.cta_suggestions button{background:#fff;border:1px solid #174ae4;border-radius:10px;box-shadow:0 1.6px 3.6px 0 rgba(0,0,0,.13),0 .3px .9px 0 rgba(0,0,0,.1);color:#1543cd;font-size:14px;font-weight:600;line-height:1.2;padding:8px 12px;position:relative;text-align:left;transition:all .3s}.cta_suggestions button:hover{background:#eff3ff}.balanced .chat-footer .cta-footer .cta-chat,.balanced .chat-main .chat.user .chat-box .message,.balanced .chatType ul li button.active{color:#000}.balanced .chat-main .innerChat .title p span{color:#06f}.balanced mat-drawer{background-image:linear-gradient(180deg,rgba(88,190,251,.05) 60%,rgba(0,102,255,.2) 96.27%)}.balanced .cta_suggestions button:hover{border:1px solid #06f}.precise .chat-footer .cta-footer .cta-chat,.precise .chat-main .chat.user .chat-box .message{background:linear-gradient(96deg,#69ca6d -10.61%,#4caf50 84.59%)}.precise .chatType ul li button.active{background:linear-gradient(96deg,#4caf50 -10.61%,#4caf50 84.59%);color:#fff}.precise .chat-main .innerChat .title p span{color:#4caf50}.precise mat-drawer{background-image:linear-gradient(180deg,rgba(76,175,80,.05) 60%,rgba(76,175,80,.3) 96.27%)}.precise .cta_suggestions button:hover{border:1px solid #4caf50}.title{margin-bottom:50px}.title h2{font-size:28px;margin:0 0 10px}.title h2 span{align-items:center;color:#000;display:inline-flex;gap:10px}.title h2 i{color:#06f;font-size:30px;line-height:1}.title h2 i svg{height:30px;width:30px}.title p{font-weight:600;margin:0}.title p span{color:#06f}.agenda-items-wrapper{padding-bottom:15px;padding-top:15px}@media (max-width:576px){.list-view .session-detail-wrapper{border:none;flex-direction:column}}.card-background-session{background:#fff;border-radius:8px}.card-background-session .body-text-color{color:#111!important}.card-background-session h2{-webkit-box-orient:vertical;-webkit-line-clamp:1;display:-webkit-box;font-size:20px;margin-bottom:8px;overflow:hidden}.card-background-session .session-description{-webkit-box-orient:vertical;-webkit-line-clamp:2;color:#111!important;display:-webkit-box;font-size:14px;overflow:hidden}.card-background-session .color-secondary{color:#111!important}.card-background-session p{font-size:14px}.list-view .session-detail-wrapper .s27-btn-icon{background:transparent;border:transparent}.list-view .session-detail-wrapper{border-left:3px solid transparent;display:flex;margin-bottom:16px}.thumbnail{align-items:center;display:flex;height:160px;justify-content:center;min-width:160px;position:relative;width:160px}.thumbnail img{-o-object-fit:cover;height:100%;object-fit:cover;width:100%}@media (max-width:576px){.thumbnail{height:160px;min-height:unset;width:100%}}.thumbnail .play-btn{align-items:center;background-color:transparent;border:0;bottom:0;display:flex;font-size:60px;justify-content:center;left:0;position:absolute;right:0;top:0;width:100%}.thumbnail .play-btn span{font-size:80px;text-shadow:0 0 14px rgba(74,74,74,.45)}.content{flex-grow:1}.actions{background-color:transparent!important}.speakers{margin-bottom:0;margin-top:10px;padding:0}.speakers li{align-items:unset;display:flex}.speakers li .content{font-size:12px!important}.speakers .image{border-radius:100%;height:40px;min-width:40px;overflow:hidden;width:40px}.speakers img{-o-object-fit:cover;height:100%;object-fit:cover;width:100%}.grid-2-cols{display:grid;grid-gap:15px;grid-template-columns:calc(55% - 10px) calc(50% - 10px);padding-right:20px}@media (max-width:768px){.grid-2-cols{grid-template-columns:calc(50% - 10px) calc(50% - 10px)}}@media (max-width:575px){.grid-3-cols{grid-template-columns:100%}}.quick-prompts-extended{align-items:flex-start!important;margin-left:0!important}.border-shape{background:#fff;border:1px solid #ced4da;border-radius:4px;min-height:60px;overflow:hidden;padding:0;width:100%}.border-shape .form-control-1{background:none!important;border:0;line-height:21px;outline:0;padding:10px;position:relative;width:100%}.border-shape .form-control-1:focus{box-shadow:none;outline:none}.border-shape .s27-scroll::-webkit-scrollbar{border-radius:30px;width:3px}.border-shape .s27-scroll::-webkit-scrollbar-track{background:#f1f1f1;border-radius:30px}.border-shape .s27-scroll::-webkit-scrollbar-thumb{background:#888;border-radius:30px}.box{display:table;height:275px;margin:10px 0;width:100%}.tiktokwrapper{display:grid;gap:10px;grid-template-columns:repeat(2,1fr);height:100%}.tiktokwrapper .tiktokshell{background:#3d2b8f;border:2px solid #fff;border-radius:5px;box-shadow:0 0 6px #494949;height:100%;min-height:275px;min-width:160px;position:relative;width:100%}.tiktokwrapper .overlymask{background-image:url(https://e1cdn.social27.com/digitalevents/HiveGpt/screen-overlay.png);background-position:0 0;bottom:0;height:100%;left:0;position:absolute;width:100%;z-index:6}.tiktokwrapper .videoPhotobox{bottom:0;height:272px;left:0;overflow:hidden;position:absolute;width:auto;z-index:6}.tiktokwrapper .videoPhotobox video{-o-object-fit:cover;border-radius:0;cursor:pointer;height:270px;object-fit:cover;outline:0;transition:.3s ease-in-out;width:100%}.tiktokwrapper .videoPhotobox img{-o-object-fit:cover;height:100%;object-fit:cover;width:100%}.tiktokwrapper .playBtn{align-items:center;border:none;cursor:pointer;display:flex;height:40px;justify-content:center;left:0;margin:0 auto;position:absolute;right:0;top:105px;transition:all 1s;width:40px;z-index:10}.tiktokwrapper .playBtn:hover{transform:scale(1.2)}.tiktokwrapper .noPhoto{align-items:center;border:none;cursor:pointer;display:flex;height:40px;justify-content:center;left:0;margin:0 auto;position:absolute;right:0;top:105px;transition:all 1s;z-index:6}.tiktokwrapper .noPhoto h3{color:#fff;font-size:46px}.tiktokwrapper .onshell-content{bottom:10px;left:5px;position:absolute;z-index:10}.tiktokwrapper .onshell-content .title-shell{margin:0 10px}.tiktokwrapper .onshell-content h3{color:#fff;font-size:13px;font-weight:500}.tiktokwrapper .onshell-content .companyName{color:#eaeaea;font-size:12px;font-weight:400}.tiktokwrapper .onshell-content .button-shell button{background:#4e4e4e;border:none;border-radius:2px;color:#fff;font-size:11px;margin:0 1px;padding:4px 7px;text-transform:capitalize}.tiktokwrapper .onshell-content .Connectbtn{background:linear-gradient(149deg,#06f,#06f)!important}.skeleton-message{align-items:flex-start;background:hsla(0,0%,100%,.7019607843);border-radius:10px;border-radius:20px 20px 20px 0;box-shadow:0 .3px .9px rgba(0,0,0,.1215686275),0 1.6px 3.6px rgba(0,0,0,.1607843137);display:flex;margin-bottom:5px;padding:20px;position:relative}.skeleton-avatar{background-color:#e0e0e0;border-radius:50%;flex-shrink:0;height:40px;margin-right:10px;overflow:hidden;position:relative;width:40px}.skeleton-text{flex:1}.skeleton-line{background-color:#e0e0e0;border-radius:4px;height:15px;margin-bottom:8px;overflow:hidden;position:relative}.skeleton-line:last-child{margin-bottom:0}.w-65{width:65%}.w-100{width:100%}@keyframes skeleton-loading{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.skeleton-avatar:after,.skeleton-line:after{animation:skeleton-loading 1.2s infinite;background:linear-gradient(90deg,#e0e0e0,#f0f0f0,#e0e0e0);background-size:200px 100%;content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.copy{background:none;border:none;cursor:pointer;padding:5px;transition:transform .2s ease}.copy.active{transform:scale(1.1)}.copy svg{fill:#566563;height:18px;width:18px}.copyBox{background:hsla(0,0%,100%,.7019607843);border-radius:13px;box-shadow:0 .3px .9px rgba(0,0,0,.1215686275),0 1.6px 3.6px rgba(0,0,0,.1607843137);color:#566563;display:flex;gap:12px;padding:5px 10px;position:relative;width:105px}.copyBox button{background:transparent;border:none;color:#566563;cursor:pointer;padding:0;transition:all .3s}.copyBox button i{display:inline-block}.copyBox button:hover{color:#17235b}.copyBox button.up:hover i{animation:thumbsUpAnimation .5s ease-in-out;animation-fill-mode:forwards}.copyBox button.down:hover i{animation:thumbsDownAnimation .5s ease-in-out;animation-fill-mode:forwards}.din{display:inline-flex}.chatFooterWrapper{background-color:#f5f5f5;border-top:1px solid #ccc;flex-direction:column;justify-content:center}.chat-footer,.chatFooterWrapper{align-items:center;display:flex;padding:10px}.chat-footer{background:#fff;border-radius:5px;box-shadow:0 2px 4px rgba(0,0,0,.1);margin-bottom:10px;max-width:800px;width:100%}.dropdown-wrapper{margin-right:10px;position:relative}.dropdown-header{align-items:center;cursor:pointer;display:flex}.dropdown-header span{margin-right:8px}.dropdown-menu{background-color:#fff;border:1px solid #ccc;border-radius:5px;box-shadow:0 2px 4px rgba(0,0,0,.1);left:0;max-height:200px;overflow-y:auto;position:absolute;top:100%;width:200px;z-index:1000}.dropdown-menu label{cursor:pointer;display:block;padding:8px}.dropdown-menu label:hover{background-color:#f0f0f0}.border-shape{flex-grow:1;margin-right:10px}.form-control-1{border:1px solid #ddd;border-radius:5px;padding:10px;width:100%}.cta-footer{align-items:center;display:flex}.btn.cta-chat{background-color:#007bff;border:none;border-radius:5px;color:#fff;cursor:pointer;padding:10px 15px}.btn.cta-chat svg{vertical-align:middle}.text-left .note-section{align-items:center;background:#fff;border-radius:5px;box-shadow:0 2px 4px rgba(0,0,0,.1);display:flex;margin-top:10px;max-width:800px;padding:10px;width:100%}.text-left .note{align-items:center;color:#555;display:flex}.text-left .note i{margin-right:8px}.text-left .note .text{font-size:14px}"]
863
+ styles: ["@import url(\"https://e1cdn.social27.com/digitalevents/liteversion/fonts/segoe-ui/stylesheet.css\");::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb,::-webkit-scrollbar-thumb:hover{background:#e5ccbc}body{overflow:hidden}.ios-device .drawer .chat-footer .form-control{font-size:16px}.hivegpt-chat-wrapper{background:transparent!important;height:100%;inset:0;opacity:0;position:fixed;visibility:hidden;z-index:999999}.hivegpt-chat-wrapper.mat-drawer-container-has-open{background:transparent!important;opacity:1;transition:all .3s;visibility:visible;z-index:999999}.hivegpt-chat-wrapper .mat-drawer:not(.mat-drawer-side){box-shadow:none}.hivegpt-chat-wrapper mat-drawer{background-color:#eee;background-image:linear-gradient(180deg,rgba(88,190,251,.050980392156862744) 60%,rgba(0,102,255,.2) 96.27%);max-width:800px;width:100%}.hivegpt-chat-wrapper mat-drawer.full-width-drawer{max-width:100%}.hivegpt-chat-wrapper .mat-drawer-content{display:flex;flex-direction:column}.hivegpt-chat-wrapper .chat-header{padding:16px 40px;width:100%}.hivegpt-chat-wrapper .chat-header h2{font-family:Segoe UI,sans-serif;font-size:36px;font-weight:500;letter-spacing:-.72px;line-height:108%;margin:0;text-transform:uppercase}.hivegpt-chat-wrapper .chat-header .closeIcon{align-items:center;background:transparent;border:none;border-radius:50%;display:inline-flex;font-size:18px;height:35px;justify-content:center;outline:none;padding:0;position:absolute;right:12px;top:16px;width:35px}.hivegpt-chat-wrapper .chat-main{display:flex;flex:1;flex-direction:column;justify-content:space-between;overflow-y:auto;width:100%}.hivegpt-chat-wrapper .chat-main .innerChat{overflow-y:auto;padding:20px 40px 10px;width:100%}.hivegpt-chat-wrapper .chat-main .chat{margin-bottom:20px}.hivegpt-chat-wrapper .chat-main .chat .chat-box{max-width:80%;width:100%}.hivegpt-chat-wrapper .chat-main .chat .chat-box .message{background:hsla(0,0%,100%,.7019607843137254);box-shadow:0 .3px .9px rgba(0,0,0,.12156862745098039),0 1.6px 3.6px rgba(0,0,0,.1607843137254902);display:inline-flex;margin-bottom:5px;min-height:44px;padding:12px 20px;position:relative}.hivegpt-chat-wrapper .chat-main .chat .chat-box .message p{color:#111;font-family:Segoe UI,sans-serif;font-size:14px;font-style:normal;font-weight:500;line-height:160%;margin:0;text-align:left;white-space:pre-line}.hivegpt-chat-wrapper .chat-main .chat .chat-box .message p a{color:#17235b!important;cursor:pointer!important;font-weight:700;text-decoration:underline}.hivegpt-chat-wrapper .chat-main .chat .chat-box .message .cta{align-items:end;bottom:-7px;display:inline-flex;gap:10px;grid-gap:10px;position:relative;right:-10px;z-index:5}.hivegpt-chat-wrapper .chat-main .chat .chat-box .message .cta button{background:transparent;border:none;color:#566563;cursor:pointer;padding:0;transition:all .3s}.hivegpt-chat-wrapper .chat-main .chat .chat-box .message .cta button i{display:inline-block}.hivegpt-chat-wrapper .chat-main .chat .chat-box .message .cta button:hover{color:#17235b}.hivegpt-chat-wrapper .chat-main .chat .chat-box .message .cta button.up:hover i{animation:thumbsUpAnimation .5s ease-in-out;animation-fill-mode:forwards}.hivegpt-chat-wrapper .chat-main .chat .chat-box .message .cta button.down:hover i{animation:thumbsDownAnimation .5s ease-in-out;animation-fill-mode:forwards}.hivegpt-chat-wrapper .chat-main .chat.bot .chat-box .message{border-radius:20px 20px 20px 0}.hivegpt-chat-wrapper .chat-main .chat.user{text-align:right}.hivegpt-chat-wrapper .chat-main .chat.user .chat-box{margin-left:auto}.hivegpt-chat-wrapper .chat-main .chat.user .chat-box .message{background:linear-gradient(96deg,#8b4ead -10.61%,#761c79 84.59%);border-radius:20px 20px 0 20px;color:#fff}.hivegpt-chat-wrapper .chat-main .chat.user .chat-box .message p{color:#fff;text-align:left}.hivegpt-chat-wrapper .chat-main .chat.user .dateTime{text-align:right}.hivegpt-chat-wrapper .chat-main .chat.user .time-cta{justify-content:flex-end}.hivegpt-chat-wrapper .chat-main .chat .Icon_TimeSTamp{align-content:center;align-items:center;display:flex;justify-content:center}.hivegpt-chat-wrapper .chat-main .chat .dateTime{color:#566563;font-family:Segoe UI,sans-serif;font-size:13px;font-style:normal;font-weight:500;line-height:140%;margin:0 5px}.hivegpt-chat-wrapper .chat-main .chat:last-of-type{margin-bottom:0}.hivegpt-chat-wrapper .chatFooterWrapper{background:#fff;border-radius:6px 6px 0 0!important;margin-top:5px!important;padding:10px 14px}.hivegpt-chat-wrapper .chatFooterWrapper .note{align-items:center;border-radius:6px;color:#1b75bb;display:inline-flex;font-size:11px;gap:8px;line-height:1;margin:0 auto 4px;padding:4px 8px}.hivegpt-chat-wrapper .chatFooterWrapper .note a{text-transform:capitalize}.hivegpt-chat-wrapper .chatFooterWrapper .note i{font-size:18px}.hivegpt-chat-wrapper .chatFooterWrapper .note i svg{height:18px;width:18px}.hivegpt-chat-wrapper .chatFooterWrapper .note span{flex:1;gap:4px;line-height:1.3}.hivegpt-chat-wrapper .chat-footer{align-items:center;display:flex;gap:8px;justify-content:space-between;padding:4px 0 0;position:relative}.hivegpt-chat-wrapper .chat-footer .form-control{background:#fff!important;border:0;line-height:21px;outline:0;padding:10px;position:relative;width:100%}.hivegpt-chat-wrapper .chat-footer .form-control::-moz-placeholder{color:#6c7a78}.hivegpt-chat-wrapper .chat-footer .form-control::placeholder{color:#6c7a78}.hivegpt-chat-wrapper .chat-footer .form-control:focus{border-color:#e5ccbc}.hivegpt-chat-wrapper .chat-footer .cta-footer{align-items:center;bottom:5px;display:flex;gap:8px;justify-content:space-between;position:absolute;right:10px;text-align:right}.hivegpt-chat-wrapper .chat-footer .cta-footer .btn{color:#000;font-weight:500;gap:8px;max-width:150px;padding:0}.hivegpt-chat-wrapper .chat-footer .cta-footer .cta-chat{align-items:center;background:transparent!important;border:none;border-radius:0;box-shadow:0 1px 2px 0 rgba(16,24,40,.05);display:inline-flex;font-size:20px;height:auto;justify-content:center;width:auto}.hivegpt-chat-wrapper .chat-footer .cta-footer .cta-chat:hover{opacity:.8}.hivegpt-chat-wrapper .chat-footer .cta-footer .cta-again{background:#17235b;border:1px solid #17235b;color:#fff}.hivegpt-chat-wrapper .cta-faqs{align-items:flex-end;display:flex;flex-direction:column;flex-wrap:wrap;gap:8px;margin-left:auto;max-width:80%;padding:10px 0 0}.hivegpt-chat-wrapper .cta-faqs .cta{background:transparent;border:1px solid #c9a893;border-radius:20px 20px 0 20px;color:#333;cursor:pointer;font-family:Segoe UI,sans-serif;font-size:14px;font-style:normal;font-weight:500;line-height:160%;margin:0;min-height:44px;padding:12px 20px;text-align:left;text-decoration:none;transition:all .3s;white-space:pre-line}.spinner{align-items:center;display:flex;gap:2px;justify-content:center}.spinner>div{animation:bouncedelay 1.4s ease-in-out infinite;animation-fill-mode:both;background-color:#173330;border-radius:100%;display:inline-block;height:5px;width:5px}.spinner .bounce1{animation-delay:-.32s}.spinner .bounce2{animation-delay:-.16s}@keyframes bouncedelay{0%,80%,to{-webkit-transform:scale(0);transform:scale(0)}40%{-webkit-transform:scale(1);transform:scale(1)}}.time-cta{align-items:center;display:flex;gap:8px;justify-content:start;margin-left:-30px;margin-top:5px}@keyframes thumbsUpAnimation{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes thumbsDownAnimation{0%,to{transform:translateY(0)}50%{transform:translateY(3px)}}@media (max-width:767px){.hivegpt-chat-wrapper .chat-main .innerChat{padding:0 24px 10px}.hivegpt-chat-wrapper .chat-footer{padding:10px 24px}.hivegpt-chat-wrapper .chat-footer .cta-footer .cta-chat{max-width:100%}.hivegpt-chat-wrapper .chat-footer .form-control{height:80px}.hivegpt-chat-wrapper .chat-header .closeIcon{height:28px;right:8px;top:8px;width:28px}.hivegpt-chat-wrapper .chat-header .closeIcon span{font-size:14px}.hivegpt-chat-wrapper .chat-header{padding:10px 24px}.hivegpt-chat-wrapper .chat-header h2{font-size:20px}.cta-faqs{padding:10px 0 0}}.body-overflow-hidden{overflow:hidden}.chat-button{align-items:center;background:#17235b;border:#17235b;border-radius:50%;color:#fff;display:inline-flex;font-size:24px;height:50px;justify-content:center;width:50px}textarea{caret-color:#000}.labelChat{font-size:14px;font-weight:400;margin:0 0 10px}.chatType h4{color:#566563;text-align:center}.chatType ul{align-items:center;background:#fff;border-radius:10px;box-shadow:0 .3px .9px rgba(0,0,0,.12),0 1.6px 3.6px rgba(0,0,0,.16);display:flex;justify-content:center;list-style:none;margin:0 0 20px;padding:4px}.chatType ul li{flex:1}.chatType ul li button{align-items:center;background:#fff;border:none;border-radius:10px;font-weight:600;min-height:48px;padding:.375rem;text-align:center;text-shadow:1px 0 rgba(0,0,0,.2);width:100%}.chatType ul li button.active{background:linear-gradient(96deg,#761c79 -10.61%,#761c79 84.59%);box-shadow:0 1px 2px 0 rgba(16,24,40,.05);color:#fff}.cta_suggestions{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:20px}.cta_suggestions button{background:#fff;border:1px solid #174ae4;border-radius:10px;box-shadow:0 1.6px 3.6px 0 rgba(0,0,0,.13),0 .3px .9px 0 rgba(0,0,0,.1);color:#1543cd;font-size:14px;font-weight:600;line-height:1.2;padding:8px 12px;position:relative;text-align:left;transition:all .3s}.cta_suggestions button:hover{background:#eff3ff}.balanced .chat-footer .cta-footer .cta-chat,.balanced .chat-main .chat.user .chat-box .message,.balanced .chatType ul li button.active{color:#000}.balanced .chat-main .innerChat .title p span{color:#06f}.balanced mat-drawer{background-image:linear-gradient(180deg,rgba(88,190,251,.05) 60%,rgba(0,102,255,.2) 96.27%)}.balanced .cta_suggestions button:hover{border:1px solid #06f}.precise .chat-footer .cta-footer .cta-chat,.precise .chat-main .chat.user .chat-box .message{background:linear-gradient(96deg,#69ca6d -10.61%,#4caf50 84.59%)}.precise .chatType ul li button.active{background:linear-gradient(96deg,#4caf50 -10.61%,#4caf50 84.59%);color:#fff}.precise .chat-main .innerChat .title p span{color:#4caf50}.precise mat-drawer{background-image:linear-gradient(180deg,rgba(76,175,80,.05) 60%,rgba(76,175,80,.3) 96.27%)}.precise .cta_suggestions button:hover{border:1px solid #4caf50}.title{margin-bottom:50px}.title h2{font-size:28px;margin:0 0 10px}.title h2 span{align-items:center;color:#000;display:inline-flex;gap:10px}.title h2 i{color:#06f;font-size:30px;line-height:1}.title h2 i svg{height:30px;width:30px}.title p{font-weight:600;margin:0}.title p span{color:#06f}.agenda-items-wrapper{padding-bottom:15px;padding-top:15px}@media (max-width:576px){.list-view .session-detail-wrapper{border:none;flex-direction:column}}.card-background-session{background:#fff;border-radius:8px}.card-background-session .body-text-color{color:#111!important}.card-background-session h2{-webkit-box-orient:vertical;-webkit-line-clamp:1;display:-webkit-box;font-size:20px;margin-bottom:8px;overflow:hidden}.card-background-session .session-description{-webkit-box-orient:vertical;-webkit-line-clamp:2;color:#111!important;display:-webkit-box;font-size:14px;overflow:hidden}.card-background-session .color-secondary{color:#111!important}.card-background-session p{font-size:14px}.list-view .session-detail-wrapper .s27-btn-icon{background:transparent;border:transparent}.list-view .session-detail-wrapper{border-left:3px solid transparent;display:flex;margin-bottom:16px}.thumbnail{align-items:center;display:flex;height:160px;justify-content:center;min-width:160px;position:relative;width:160px}.thumbnail img{-o-object-fit:cover;height:100%;object-fit:cover;width:100%}@media (max-width:576px){.thumbnail{height:160px;min-height:unset;width:100%}}.thumbnail .play-btn{align-items:center;background-color:transparent;border:0;bottom:0;display:flex;font-size:60px;justify-content:center;left:0;position:absolute;right:0;top:0;width:100%}.thumbnail .play-btn span{font-size:80px;text-shadow:0 0 14px rgba(74,74,74,.45)}.content{flex-grow:1}.actions{background-color:transparent!important}.speakers{margin-bottom:0;margin-top:10px;padding:0}.speakers li{align-items:unset;display:flex}.speakers li .content{font-size:12px!important}.speakers .image{border-radius:100%;height:40px;min-width:40px;overflow:hidden;width:40px}.speakers img{-o-object-fit:cover;height:100%;object-fit:cover;width:100%}.grid-2-cols{display:grid;grid-gap:15px;grid-template-columns:calc(55% - 10px) calc(50% - 10px);padding-right:20px}@media (max-width:768px){.grid-2-cols{grid-template-columns:calc(50% - 10px) calc(50% - 10px)}}@media (max-width:575px){.grid-3-cols{grid-template-columns:100%}}.quick-prompts-extended{align-items:flex-start!important;margin-left:0!important}.border-shape{background:#fff;border:1px solid #ced4da;border-radius:4px;min-height:60px;overflow:hidden;padding:0;width:100%}.border-shape .form-control-1{background:none!important;border:0;line-height:21px;outline:0;padding:10px;position:relative;width:100%}.border-shape .form-control-1:focus{box-shadow:none;outline:none}.border-shape .s27-scroll::-webkit-scrollbar{border-radius:30px;width:3px}.border-shape .s27-scroll::-webkit-scrollbar-track{background:#f1f1f1;border-radius:30px}.border-shape .s27-scroll::-webkit-scrollbar-thumb{background:#888;border-radius:30px}.box{display:table;height:275px;margin:10px 0;width:100%}.tiktokwrapper{display:grid;gap:10px;grid-template-columns:repeat(2,1fr);height:100%}.tiktokwrapper .tiktokshell{background:#3d2b8f;border:2px solid #fff;border-radius:5px;box-shadow:0 0 6px #494949;height:100%;min-height:275px;min-width:160px;position:relative;width:100%}.tiktokwrapper .overlymask{background-image:url(https://e1cdn.social27.com/digitalevents/HiveGpt/screen-overlay.png);background-position:0 0;bottom:0;height:100%;left:0;position:absolute;width:100%;z-index:6}.tiktokwrapper .videoPhotobox{bottom:0;height:272px;left:0;overflow:hidden;position:absolute;width:auto;z-index:6}.tiktokwrapper .videoPhotobox video{-o-object-fit:cover;border-radius:0;cursor:pointer;height:270px;object-fit:cover;outline:0;transition:.3s ease-in-out;width:100%}.tiktokwrapper .videoPhotobox img{-o-object-fit:cover;height:100%;object-fit:cover;width:100%}.tiktokwrapper .playBtn{align-items:center;border:none;cursor:pointer;display:flex;height:40px;justify-content:center;left:0;margin:0 auto;position:absolute;right:0;top:105px;transition:all 1s;width:40px;z-index:10}.tiktokwrapper .playBtn:hover{transform:scale(1.2)}.tiktokwrapper .noPhoto{align-items:center;border:none;cursor:pointer;display:flex;height:40px;justify-content:center;left:0;margin:0 auto;position:absolute;right:0;top:105px;transition:all 1s;z-index:6}.tiktokwrapper .noPhoto h3{color:#fff;font-size:46px}.tiktokwrapper .onshell-content{bottom:10px;left:5px;position:absolute;z-index:10}.tiktokwrapper .onshell-content .title-shell{margin:0 10px}.tiktokwrapper .onshell-content h3{color:#fff;font-size:13px;font-weight:500}.tiktokwrapper .onshell-content .companyName{color:#eaeaea;font-size:12px;font-weight:400}.tiktokwrapper .onshell-content .button-shell button{background:#4e4e4e;border:none;border-radius:2px;color:#fff;font-size:11px;margin:0 1px;padding:4px 7px;text-transform:capitalize}.tiktokwrapper .onshell-content .Connectbtn{background:linear-gradient(149deg,#06f,#06f)!important}.skeleton-message{align-items:flex-start;background:hsla(0,0%,100%,.7019607843);border-radius:10px;border-radius:20px 20px 20px 0;box-shadow:0 .3px .9px rgba(0,0,0,.1215686275),0 1.6px 3.6px rgba(0,0,0,.1607843137);display:flex;margin-bottom:5px;padding:20px;position:relative}.skeleton-avatar{background-color:#e0e0e0;border-radius:50%;flex-shrink:0;height:40px;margin-right:10px;overflow:hidden;position:relative;width:40px}.skeleton-text{flex:1}.skeleton-line{background-color:#e0e0e0;border-radius:4px;height:15px;margin-bottom:8px;overflow:hidden;position:relative}.skeleton-line:last-child{margin-bottom:0}.w-65{width:65%}.w-100{width:100%}@keyframes skeleton-loading{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.skeleton-avatar:after,.skeleton-line:after{animation:skeleton-loading 1.2s infinite;background:linear-gradient(90deg,#e0e0e0,#f0f0f0,#e0e0e0);background-size:200px 100%;content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.copy{background:none;border:none;cursor:pointer;padding:5px;transition:transform .2s ease}.copy.active{transform:scale(1.1)}.copy svg{fill:#566563;height:18px;width:18px}.copyBox{background:hsla(0,0%,100%,.7019607843);border-radius:13px;box-shadow:0 .3px .9px rgba(0,0,0,.1215686275),0 1.6px 3.6px rgba(0,0,0,.1607843137);color:#566563;display:flex;gap:12px;padding:5px 10px;position:relative;width:105px}.copyBox button{background:transparent;border:none;color:#566563;cursor:pointer;padding:0;transition:all .3s}.copyBox button i{display:inline-block}.copyBox button:hover{color:#17235b}.copyBox button.up:hover i{animation:thumbsUpAnimation .5s ease-in-out;animation-fill-mode:forwards}.copyBox button.down:hover i{animation:thumbsDownAnimation .5s ease-in-out;animation-fill-mode:forwards}.din{display:inline-flex}.chatFooterWrapper{background-color:#f5f5f5;border-top:1px solid #ccc;flex-direction:column;justify-content:center}.chat-footer,.chatFooterWrapper{align-items:center;display:flex;padding:10px}.chat-footer{background:#fff;border-radius:5px;box-shadow:0 2px 4px rgba(0,0,0,.1);margin-bottom:10px;width:100%}.dropdown-wrapper{margin-right:10px;position:relative}.dropdown-header{align-items:center;cursor:pointer;display:flex}.dropdown-header span{margin-right:8px}.dropdown-menu{background-color:#fff;border:1px solid #ccc;border-radius:5px;box-shadow:0 2px 4px rgba(0,0,0,.1);left:0;max-height:200px;overflow-y:auto;position:absolute;top:100%;width:200px;z-index:1000}.dropdown-menu label{cursor:pointer;display:block;padding:8px}.dropdown-menu label:hover{background-color:#f0f0f0}.border-shape{flex-grow:1;margin-right:10px}.form-control-1{border:1px solid #ddd;border-radius:5px;padding:10px;width:100%}.cta-footer{align-items:center;display:flex}.btn.cta-chat{background-color:#007bff;border:none;border-radius:5px;color:#fff;cursor:pointer;padding:10px 15px}.btn.cta-chat svg{vertical-align:middle}.text-left .note-section{align-items:center;background:#fff;border-radius:5px;box-shadow:0 2px 4px rgba(0,0,0,.1);display:flex;margin-top:10px;max-width:800px;padding:10px;width:100%}.text-left .note{align-items:center;color:#555;display:flex}.text-left .note i{margin-right:8px}.text-left .note .text{font-size:14px}"]
864
864
  },] }
865
865
  ];
866
866
  ChatDrawerComponent.ctorParameters = () => [
@@ -1 +1 @@
1
- {"version":3,"file":"hivegpt-hiveai-angular.js","sources":["../../../../projects/hivegpt/eventsgpt-angular/src/lib/utils/utils.ts","../../../../projects/hivegpt/eventsgpt-angular/src/environments/environment.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/conversation.service.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/chat-drawer/chat-drawer.component.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/chatbot/chatbot.component.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/pipes/safe-html.pipe.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/video-player/video-player.component.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/hivegpt.module.ts","../../../../projects/hivegpt/eventsgpt-angular/src/public-api.ts","../../../../projects/hivegpt/eventsgpt-angular/src/hivegpt-hiveai-angular.ts"],"sourcesContent":["const formatHoursAndMinutes = (date: Date) => {\r\n let hours = date.getHours() % 12;\r\n const minutes = date.getMinutes();\r\n const amPm = date.getHours() < 12 ? 'AM' : 'PM';\r\n if(hours === 0) hours = 12;\r\n\r\n const formattedHours = hours < 10 ? `0${hours}` : hours;\r\n const formattedMinutes = minutes < 10 ? `0${minutes}` : minutes;\r\n\r\n return `${formattedHours}:${formattedMinutes} ${amPm}`;\r\n};\r\n\r\nexport const formatNow = (timezone?: string) => {\r\n const now = new Date();\r\n if (timezone) {\r\n const options: any = {\r\n hour12: true,\r\n hour: 'numeric',\r\n minute: 'numeric',\r\n timeZone: timezone,\r\n };\r\n return now.toLocaleString('en-US', options);\r\n }\r\n return formatHoursAndMinutes(now);\r\n};\r\n\r\nexport const formatTimeStamps = (timezone: string, timestamps: any) => {\r\n const date = new Date(timestamps + 'Z');\r\n\r\n const options: any = {\r\n hour12: true,\r\n hour: 'numeric',\r\n minute: 'numeric',\r\n timeZone: timezone,\r\n };\r\n return date.toLocaleString('en-US', options);\r\n};\r\n","export const prod_environment = {\r\n USERS_API: 'https://es-user.social27.com/api',\r\n BASE_URL: 'https://agent-api.hivegpt.ai',\r\n AGENTS_API: 'https://hive-ai.social27.com/api',\r\n API_KEY: 'b621eb3f-0bd2-41d5-a48c-a8f8ab7d38f8'\r\n}\r\n\r\nexport const dev_environment = {\r\n USERS_API: 'https://pre-user.social27.com/api',\r\n BASE_URL: 'https://agent-api.hivegpt.ai',\r\n AGENTS_API: 'https://hive-ai.social27.com/api',\r\n API_KEY: 'b621eb3f-0bd2-41d5-a48c-a8f8ab7d38f8'\r\n}\r\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConversationService {\n\n private storageKey = 'conversationKey';\n\n constructor() {\n\n }\n private generateKey(): string {\n const timestamp = Math.floor(new Date().getTime() / 1000).toString(16);\n const randomHex = 'xxxxxxxxxxxxxxxx'.replace(/[x]/g, () => {\n return (Math.floor(Math.random() * 16)).toString(16);\n });\n return timestamp + randomHex;\n }\n private generateStorageKey(key: string): string {\n return `conversationKey_${key}`;\n }\n\n private ensureKeyExists(storageKey: string, key: string): void {\n if (!localStorage.getItem(storageKey)) {\n const newKey = this.generateKey();\n localStorage.setItem(storageKey, newKey);\n }\n }\n\n getKey(key: string): string {\n const storageKey = this.generateStorageKey(key);\n this.ensureKeyExists(storageKey, key);\n return localStorage.getItem(storageKey)!;\n }\n}\n","// import { Platform } from '@angular/cdk/platform';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n Renderer2,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDrawer } from '@angular/material/sidenav';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\nimport { of } from 'rxjs';\r\nimport { catchError, switchMap } from 'rxjs/operators';\r\nimport { formatNow, formatTimeStamps } from '../../utils/utils';\r\nimport { dev_environment, prod_environment } from '../../../environments/environment';\r\nimport { ConversationService } from '../conversation.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'hivegpt-chat-drawer',\r\n templateUrl: './chat-drawer.component.html',\r\n styleUrls: ['./chat-drawer.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ChatDrawerComponent implements OnInit {\r\n @ViewChild('chatMain') private chatMain: ElementRef;\r\n\r\n @ViewChild('drawer') drawer!: MatDrawer;\r\n private bodyOverflowClass = 'body-overflow-hidden';\r\n @ViewChild('myTextarea', { static: false })\r\n myTextarea!: ElementRef<HTMLTextAreaElement>; // Reference to the textarea\r\n\r\n @Input() copilotName: string = \"HiveXGPT\";\r\n @Input() firstName!: string;\r\n @Input() lastName!: string;\r\n @Input() apiKey!: string;\r\n @Input() bgBubbleAi!: string;\r\n @Input() bgBubbleUser!: string;\r\n @Input() bgGradient!: string[];\r\n @Input() botName!: string;\r\n @Input() botSkills!: string;\r\n @Input() botId!: string;\r\n @Input() closeButtonColor!: string;\r\n @Input() closeButtonbgColor!: string;\r\n @Input() credentials!: [];\r\n @Input() dateTimeColor!: string;\r\n @Input() dateTextColor!: string;\r\n @Input() eventId!: string;\r\n @Input() s27UserToken!: string;\r\n @Input() eventName!: string;\r\n @Input() botIcon!: string;\r\n @Input() formFieldBgColor!: string;\r\n @Input() formFieldTextColor!: string;\r\n @Input() fullView!: boolean;\r\n @Input() gradientColors!: string[];\r\n @Input() greeting!: string;\r\n @Input() messageTextColorAi!: string;\r\n @Input() messageTextColorUser!: string;\r\n @Input() rules!: string;\r\n @Input() sendButtonColor!: string;\r\n @Input() sendButtonTextColor!: string;\r\n @Input() showClose!: boolean;\r\n @Input() thumbsDownMessages!: string[];\r\n @Input() thumbsUpMessage!: string;\r\n @Input() timezone!: string;\r\n @Input() unknownResponses!: [];\r\n @Input() useOpenAi!: boolean;\r\n @Input() userId!: string;\r\n @Input() isDev!: boolean;\r\n\r\n @Input() againButtonColor!: string[];\r\n @Input() againButtonTextColor!: string[];\r\n @Output() feedbackEvent = new EventEmitter<string>();\r\n @Output() onCloseEvent = new EventEmitter<void>();\r\n @Output() openPage = new EventEmitter<any>();\r\n @Output() sessionActions = new EventEmitter<any>();\r\n @Output() closeBot = new EventEmitter<any>();\r\n @Output() connectWithUser = new EventEmitter<any>();\r\n @Output() scheduleMeeting = new EventEmitter<string>();\r\n\r\n autogenKey = \"Autogen_eDJTtEU-NB0RtIpzq1w\"\r\n addToMyAgendaAction = \"add_to_my_agenda\";\r\n myUpcomingSessionAction = \"my_upcomming_session\";\r\n connectOrFollowAction = \"connect_or_follow\";\r\n aiResponse: string = '';\r\n chatLog: any[] = [];\r\n decoder = new TextDecoder();\r\n feedbackDone: boolean = false;\r\n greetingMsg: string = '';\r\n hasBackdropValue: boolean = false;\r\n input: string = '';\r\n listenerAdded = false;\r\n loading: boolean = false;\r\n mode: string = 'over';\r\n quickPrompts: any[] = [];\r\n thumbsDownMsgIndex = 0;\r\n userName: string = '';\r\n showStartAgain: boolean = false;\r\n isIOSDevice: boolean = false;\r\n showFeedBackIconsIndex: number | null = null;\r\n temperature: number = 1;\r\n speakers = [];\r\n environment: {\r\n USERS_API,\r\n BASE_URL,\r\n AGENTS_API\r\n };\r\n pendingRequests: any;\r\n myConnections: any;\r\n conversationKey: string;\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n private http: HttpClient,\r\n private sanitizer: DomSanitizer,\r\n private elementRef: ElementRef,\r\n private renderer: Renderer2,\r\n private conversation: ConversationService\r\n // private platform: Platform\r\n ) {\r\n this.chatMain = new ElementRef(null);\r\n\r\n // if (this.platform.IOS) {\r\n // this.isIOSDevice = true;\r\n // }\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.environment = this.isDev ? dev_environment : prod_environment;\r\n\r\n // this.fetchMyConnections().subscribe();\r\n // this.fetchPendingRequests().subscribe();\r\n this.fetchAgents();\r\n this.changeTemperature(this.temperature);\r\n this.fetchBotConfig().subscribe(\r\n (res) => {\r\n this.cdr.markForCheck();\r\n this.fetchChatHistory().subscribe(\r\n (response) => {\r\n this.loading = false;\r\n this.mapChatHistory(response);\r\n this.cdr.markForCheck();\r\n },\r\n (err) => {\r\n console.error('Error fetching chat history:', err);\r\n }\r\n );\r\n },\r\n (err) => {\r\n console.error('Error fetching chat history:', err);\r\n }\r\n );\r\n\r\n this.cdr.markForCheck();\r\n }\r\n\r\n changeTemperature(newTemperature: number) {\r\n if (this.loading) return;\r\n this.temperature = newTemperature;\r\n const wrapper = document.querySelector('.hivegpt-chat-wrapper')\r\n // Remove existing theme classes from body\r\n wrapper?.classList.remove('creative', 'balanced', 'precise');\r\n\r\n switch (newTemperature) {\r\n case 0:\r\n wrapper?.classList.add('creative');\r\n break;\r\n case 1:\r\n wrapper?.classList.add('balanced');\r\n break;\r\n case 2:\r\n wrapper?.classList.add('precise');\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n onStartAgain() {\r\n if (this.loading) return;\r\n this.showStartAgain = false;\r\n this.chatLog = [];\r\n this.chatLog.push({\r\n type: 'ai',\r\n message:\r\n this.greetingMsg ||\r\n this.processMessage(\r\n \"Greetings! I'm your COP28 virtual assistant. Have questions about the event? I'm here to help.\"\r\n ),\r\n time: formatNow(this.timezone),\r\n });\r\n this.archieveMessages().subscribe();\r\n }\r\n\r\n archieveMessages() {\r\n const headers = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'x-api-key': this.apiKey,\r\n });\r\n const url = `${this.environment.BASE_URL}/bot/clear-history/${this.botId}/${this.userId}`;\r\n return this.http.post(url, {}, { headers }).pipe(\r\n switchMap((res: any) => {\r\n return of(res);\r\n }),\r\n catchError((error) => {\r\n return of(null);\r\n })\r\n );\r\n }\r\n\r\n fetchBotConfig() {\r\n this.loading = true;\r\n const url = `${this.environment.BASE_URL}/bots?bot_id=${this.botId}`;\r\n return this.http.get(url).pipe(\r\n switchMap((res: any) => {\r\n this.botName = res.Name;\r\n this.botIcon = res.Icon;\r\n this.botSkills = res?.Skills;\r\n this.greetingMsg = res.Greeting;\r\n\r\n this.thumbsDownMessages = res?.NegativeResponses?.length\r\n ? res.NegativeResponses\r\n : [\r\n \"We are sorry we've not been able to answer your question.<br/> However, our dedicated support team is happy to help. <span class='feedback-link' style='cursor: pointer; text-decoration: underline; font-weight: 700; color: #17235B;'>Please click here</span> and a human agent will assist you as soon as possible\",\r\n ];\r\n this.quickPrompts = res.QuickPrompts;\r\n this.cdr.markForCheck();\r\n this.loading = false;\r\n return of(res);\r\n }),\r\n catchError((error) => {\r\n console.error('Error fetching chatbot config: ', error);\r\n this.loading = false;\r\n return of(null);\r\n })\r\n );\r\n }\r\n\r\n fetchChatHistory(): Observable<any> {\r\n this.loading = true;\r\n this.conversationKey = this.conversation.getKey(this.botId);\r\n const url = `${this.environment.BASE_URL}/conversations/${this.conversationKey}`;\r\n const headers = new HttpHeaders({\r\n 'accept': 'application/json'\r\n });\r\n\r\n return this.http.get(url, { headers }).pipe(\r\n catchError(this.handleError<any>('fetchConversation'))\r\n );\r\n }\r\n\r\n private handleError<T>(operation = 'operation', result?: T) {\r\n return (error: any): Observable<T> => {\r\n console.error(`${operation} failed: ${error.message}`);\r\n return of(result as T);\r\n };\r\n }\r\n // fetchChatHistory() {\r\n // this.loading = true;\r\n // const headers = new HttpHeaders({\r\n // 'Content-Type': 'application/json',\r\n // 'x-api-key': this.apiKey,\r\n // });\r\n // return this.http\r\n // .get(`${this.environment.BASE_URL}/conversations/${this.conversationKey}`, { headers })\r\n // .pipe(\r\n // switchMap((res: any) => {\r\n // this.loading = false;\r\n // return of(res);\r\n // }),\r\n // catchError((error: any) => {\r\n // console.error('Error fetching chat history: ', error);\r\n // this.loading = false;\r\n // return of(null);\r\n // })\r\n // );\r\n // }\r\n\r\n mapChatHistory(chats: any) {\r\n this.chatLog.push({\r\n type: 'ai',\r\n message:\r\n this.greetingMsg ||\r\n this.processMessage(\r\n \"Greetings! I'm your COP28 virtual assistant. Have questions about the event? I'm here to help.\"\r\n ),\r\n time: formatNow(this.timezone),\r\n });\r\n if (chats && chats?.Messages?.length) {\r\n chats?.Messages.forEach((chat: any) => {\r\n if (chat.Type == \"user\") {\r\n this.chatLog.push({\r\n type: 'user',\r\n message: this.processMessageForDisplay(chat.Text),\r\n time: formatTimeStamps(this.timezone, chat.InsertTimestamp),\r\n copied: false\r\n });\r\n }\r\n if (chat.Type == \"ai\") {\r\n this.chatLog.push({\r\n type: 'ai',\r\n message: this.processMessageForDisplay(chat.Text),\r\n time: formatTimeStamps(this.timezone, chat.InsertTimestamp),\r\n copied: false\r\n });\r\n this.showFeedBackIconsIndex = this.chatLog.length - 1;\r\n }\r\n });\r\n this.showStartAgain = true;\r\n }\r\n this.scrollToBottom();\r\n this.cdr.markForCheck();\r\n }\r\n\r\n processMessage(message: string): SafeHtml {\r\n if (!message || !(message?.length > 0)) {\r\n return '';\r\n }\r\n\r\n console.log('here is my message')\r\n console.log(message);\r\n\r\n message = message.trim();\r\n\r\n const markdownLinkRegex = /\\[([^[]+)]\\(([^)]+)\\)/g;\r\n const urlRegex = /(?<!href=\")\\bhttps?:\\/\\/\\S+(?<![.,])/gi;\r\n\r\n if (markdownLinkRegex.test(message)) {\r\n const html = message.replace(\r\n markdownLinkRegex,\r\n '<a href=\"$2\" target=\"_blank\">$1</a>'\r\n );\r\n console.log('Sanitized message: ', message);\r\n return this.sanitizeHtml(html);\r\n }\r\n\r\n if (urlRegex.test(message)) {\r\n const html = message.replace(\r\n urlRegex,\r\n '<a href=\"$&\" target=\"_blank\">$&</a>'\r\n );\r\n console.log('Sanitized message: ', message);\r\n return this.sanitizeHtml(html);\r\n }\r\n\r\n message = message.replace(/(?:\\r\\n|\\r|\\n)/g, '<br>');\r\n\r\n message = message.replace(/\\*\\*(.*?)\\*\\*/g, '<strong>$1</strong>');\r\n // Convert Markdown headers to HTML headers\r\n message = message.replace(/^(#{1,6})\\s+(.*)$/gm, (match, hashes, text) => {\r\n const level = hashes.length;\r\n return `<h${level}>${text}</h${level}>`;\r\n });\r\n\r\n this.cdr.markForCheck();\r\n const sanitizedMessage = this.sanitizeHtml(message);\r\n return sanitizedMessage;\r\n }\r\n\r\n ngAfterViewChecked() {\r\n const feedbackLinks =\r\n this.elementRef.nativeElement.querySelectorAll('.feedback-link');\r\n feedbackLinks.forEach((link: any) => {\r\n link.addEventListener(\r\n 'click',\r\n this.onFeedbackClick.bind(this, 'zendesk')\r\n );\r\n });\r\n // if (this.elementRef.nativeElement.querySelector('.feedback-link')) {\r\n // this.elementRef.nativeElement\r\n // .querySelector('.feedback-link')\r\n // .addEventListener('click', this.onFeedbackClick.bind(this, 'zendesk'));\r\n // }\r\n }\r\n\r\n sanitizeHtml(html: string): SafeHtml {\r\n return this.sanitizer.bypassSecurityTrustHtml(html);\r\n }\r\n\r\n onFeedbackClick(value: string) {\r\n this.feedbackEvent.emit(value);\r\n }\r\n\r\n onClose() {\r\n this.renderer.removeClass(document.body, this.bodyOverflowClass);\r\n this.onCloseEvent.emit();\r\n }\r\n\r\n sendMessageWithTile(prompt: string) {\r\n this.input = prompt;\r\n this.fetchData();\r\n this.scrollToBottom();\r\n }\r\n isChatingWithAi = false;\r\n fetchData() {\r\n this.input = this.input?.trim();\r\n if (!this.input || this.loading) {\r\n return;\r\n }\r\n\r\n this.chatLog.push({\r\n type: 'user',\r\n message: this.processMessage(this.input),\r\n time: formatNow(this.timezone),\r\n copied: false\r\n });\r\n\r\n this.cdr.markForCheck();\r\n\r\n this.aiResponse = '';\r\n this.isChatingWithAi = true;\r\n\r\n const url =\r\n `${this.environment.BASE_URL}/ai/ask`// +\r\n // (this.useOpenAi === false ? '/llm-hf' : '');\r\n fetch(url, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-api-key': this.apiKey,\r\n },\r\n body: JSON.stringify({\r\n user_question: this.input,\r\n user_id: this.userId,\r\n bot_id: this.botId,\r\n // temperature: this.temperature,\r\n // event_id: this.eventId,\r\n // token: this.s27UserToken,\r\n agents: this.agents.filter(p => p.selected).map(p => p.id),\r\n conversation_id: this.conversationKey\r\n }),\r\n })\r\n // Retrieve its body as ReadableStream\r\n .then((response) => {\r\n return this.readAllChunks(response.body);\r\n })\r\n .catch((err) => {\r\n console.error('Err: ', err);\r\n this.isChatingWithAi = false;\r\n });\r\n\r\n this.input = '';\r\n }\r\n\r\n fetchSmallTalk() {\r\n this.loading = true;\r\n this.cdr.markForCheck();\r\n\r\n const url = `${this.environment.BASE_URL}/bot/small-talk/${this.botId}/${this.userId}`;\r\n\r\n this.http\r\n .get<{ smallTalk: string }>(url, {\r\n headers: {\r\n 'x-api-key': this.apiKey,\r\n },\r\n })\r\n .pipe(\r\n catchError((error) => {\r\n console.error('Error while fetching small talk:', error);\r\n\r\n return of(null);\r\n })\r\n )\r\n .subscribe((response) => {\r\n this.loading = false;\r\n this.cdr.markForCheck();\r\n\r\n if (!response) {\r\n return;\r\n }\r\n\r\n if (response && response.smallTalk) {\r\n this.chatLog.push({\r\n type: 'ai',\r\n message: this.processMessage(response.smallTalk),\r\n time: formatNow(this.timezone),\r\n isFeedbackMsg: true,\r\n });\r\n this.showFeedBackIconsIndex = this.chatLog.length - 2;\r\n // this.scrollToBottom();\r\n this.cdr.markForCheck();\r\n }\r\n });\r\n }\r\n\r\n readAllChunks = (stream: any) => {\r\n const reader = stream.getReader();\r\n const allSuggestions: string[] = [];\r\n\r\n reader.closed.catch((err: any) => {\r\n if (err) {\r\n console.error('Error reading stream: ', err);\r\n }\r\n\r\n this.isChatingWithAi = false;\r\n this.scrollToBottom();\r\n return;\r\n });\r\n\r\n return new ReadableStream({\r\n start: (controller) => {\r\n return this.pump(controller, reader, allSuggestions);\r\n },\r\n });\r\n };\r\n\r\n pump(controller: any, reader: any, allSuggestions: string[]) {\r\n reader.read().then(({ done, value }: any) => {\r\n const lastItem = this.chatLog[this.chatLog.length - 1];\r\n\r\n if (done) {\r\n lastItem.message = this.processMessageForDisplay(lastItem.message);\r\n this.chatLog.pop();\r\n this.chatLog.push(lastItem);\r\n if (allSuggestions?.length) {\r\n this.chatLog.push({\r\n type: 'suggestions',\r\n suggestions: allSuggestions\r\n })\r\n }\r\n\r\n controller.close();\r\n this.isChatingWithAi = false;\r\n // this.scrollToBottom();\r\n this.cdr.markForCheck();\r\n this.showStartAgain = true;\r\n\r\n // setTimeout(() => {\r\n // this.fetchSmallTalk();\r\n // },1000)\r\n return;\r\n }\r\n\r\n let decodedChunk = this.decoder.decode(value, { stream: true });\r\n this.aiResponse += decodedChunk;\r\n if (lastItem.type === 'ai') {\r\n const suggestionsMatch = this.aiResponse.match(/<sug>(.*?)<\\/sug>/g);\r\n if (suggestionsMatch) {\r\n suggestionsMatch.forEach((match) => {\r\n this.aiResponse = this.aiResponse.replace(match, \"\");\r\n allSuggestions.push(match?.replace(/<\\/?sug>/g, \"\"));\r\n });\r\n }\r\n\r\n lastItem.message = this.aiResponse;\r\n this.cdr.markForCheck();\r\n } else {\r\n this.isChatingWithAi = false;\r\n\r\n let aiFormattedData: any;\r\n\r\n try {\r\n console.log('parsing json ')\r\n aiFormattedData = JSON.parse(JSON.parse(this.aiResponse))\r\n }\r\n catch (e) {\r\n try {\r\n console.log('parsing json 2')\r\n aiFormattedData = JSON.parse(this.aiResponse)\r\n } catch (e) { }\r\n }\r\n\r\n console.log('parsing json done')\r\n\r\n if (aiFormattedData && aiFormattedData?.section_id?.length > 0) {\r\n if (aiFormattedData.section_id == 'company_search' || aiFormattedData.section_id == 'user_search' || aiFormattedData.section_id == 'industry_company_search') {\r\n this.fetchMyConnections().subscribe();\r\n this.fetchPendingRequests().subscribe();\r\n }\r\n\r\n if (aiFormattedData.section_id == this.myUpcomingSessionAction) {\r\n var speakerIds = [];\r\n aiFormattedData.content?.forEach(session => {\r\n speakerIds = [...speakerIds, ...session.speakers]\r\n });\r\n\r\n if (speakerIds?.length > 0)\r\n this.getSpeakersByStaffIds(speakerIds);\r\n }\r\n\r\n if (aiFormattedData.section_id == this.addToMyAgendaAction && aiFormattedData.content?.length > 0) {\r\n this.openPage.next({\r\n sectionId: aiFormattedData.section_id,\r\n sessionIds: aiFormattedData.content\r\n })\r\n }\r\n\r\n if (aiFormattedData.section_id == this.connectOrFollowAction) {\r\n let usersLen = aiFormattedData.content?.length;\r\n if (usersLen > 1) {\r\n this.openPage.next({\r\n sectionId: \"open_networking_drawer\",\r\n search: aiFormattedData.content\r\n })\r\n }\r\n else if (usersLen == 1) {\r\n this.openPage.next({\r\n sectionId: aiFormattedData.section_id,\r\n connetUserIds: [aiFormattedData.content[0].userId]\r\n })\r\n }\r\n }\r\n\r\n if (aiFormattedData.is_open_page == \"true\") {\r\n this.openPage.next({\r\n sectionId: aiFormattedData.section_id,\r\n search: aiFormattedData.content\r\n });\r\n\r\n if (this.isMobileBrowser()) {\r\n aiFormattedData.message += \"\\n\\n\" + '<a id=\"closeBotNow\">Click Here</a> to see results.'\r\n }\r\n }\r\n\r\n\r\n\r\n this.chatLog.push({\r\n type: 'ai',\r\n message: aiFormattedData.message,\r\n action: aiFormattedData,\r\n time: formatNow(this.timezone)\r\n });\r\n\r\n if (this.isMobileBrowser()) {\r\n setTimeout(() => {\r\n this.addCloseBotClickEvent();\r\n }, 500);\r\n }\r\n\r\n this.aiResponse = \"\";\r\n } else {\r\n this.chatLog.push({\r\n type: 'ai',\r\n message: this.aiResponse,\r\n time: formatNow(this.timezone),\r\n });\r\n }\r\n\r\n this.showFeedBackIconsIndex = this.chatLog.length - 1;\r\n this.cdr.markForCheck();\r\n }\r\n\r\n this.scrollToBottom();\r\n\r\n // Enqueue the next data chunk into our target stream\r\n controller.enqueue(value);\r\n this.pump(controller, reader, allSuggestions);\r\n });\r\n }\r\n\r\n submitFeedback(flag: boolean) {\r\n this.feedbackDone = true;\r\n this.showFeedBackIconsIndex = null;\r\n const url = `${this.environment.BASE_URL}/bot/feedback`;\r\n fetch(url, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-api-key': this.apiKey,\r\n },\r\n body: JSON.stringify({ flag, user_id: this.userId, bot_id: this.botId }),\r\n }).then(() => {\r\n if (flag) {\r\n this.chatLog.push({\r\n type: 'ai',\r\n message:\r\n this.thumbsUpMessage ||\r\n `Great. May I assist you with anything else?`,\r\n time: formatNow(this.timezone),\r\n isFeedbackMsg: true,\r\n });\r\n\r\n this.scrollToBottom();\r\n this.cdr.markForCheck();\r\n this.feedbackDone = false;\r\n this.showFeedBackIconsIndex = null;\r\n return;\r\n }\r\n\r\n this.chatLog.push({\r\n type: 'ai',\r\n message: this.processMessage(\r\n this.thumbsDownMessages[this.thumbsDownMsgIndex]\r\n ),\r\n time: formatNow(this.timezone),\r\n isFeedbackMsg: true,\r\n });\r\n this.thumbsDownMsgIndex =\r\n (this.thumbsDownMsgIndex + 1) % this.thumbsDownMessages.length;\r\n this.scrollToBottom();\r\n this.cdr.markForCheck();\r\n this.feedbackDone = false;\r\n this.showFeedBackIconsIndex = null;\r\n });\r\n }\r\n\r\n handleSubmit() {\r\n this.fetchData();\r\n this.scrollToBottom();\r\n }\r\n\r\n handleUpClick(idx: any) {\r\n if (this.feedbackDone) {\r\n return;\r\n }\r\n\r\n this.submitFeedback(true);\r\n this.chatLog[idx].liked = !this.chatLog[idx].liked;\r\n\r\n if (this.chatLog[idx].unliked) {\r\n this.chatLog[idx].unliked = !this.chatLog[idx].unliked;\r\n }\r\n\r\n this.cdr.markForCheck();\r\n }\r\n\r\n handleDownClick(idx: any) {\r\n if (this.feedbackDone) return;\r\n this.submitFeedback(false);\r\n this.chatLog[idx].unliked = !this.chatLog[idx].unliked;\r\n if (this.chatLog[idx].liked)\r\n this.chatLog[idx].liked = !this.chatLog[idx].liked;\r\n }\r\n handleCopyClick(index: any) {\r\n // Copy the message to the clipboard\r\n const contentToCopy = this.chatLog[index].message;\r\n navigator.clipboard.writeText(contentToCopy).then(() => {\r\n // Indicate that the message was copied\r\n this.chatLog[index].copied = true;\r\n this.cdr.detectChanges();\r\n // Reset the copied state after a delay\r\n setTimeout(() => {\r\n this.chatLog[index].copied = false;\r\n this.cdr.detectChanges();\r\n }, 2000); // Reset after 2 seconds\r\n });\r\n }\r\n\r\n scrollToBottom() {\r\n let counter = 0;\r\n const interval = setInterval(() => {\r\n this.chatMain.nativeElement.scrollTop =\r\n this.chatMain.nativeElement.scrollHeight;\r\n if (counter++ > 5) clearInterval(interval);\r\n }, 5);\r\n }\r\n\r\n handleAction(action: any) {\r\n console.info(\"incoming action from the chatbot AI\")\r\n console.info(action)\r\n\r\n if (action?.content) {\r\n\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n // Check if the drawer is initially open and apply overflow hidden to body if so\r\n if (this.drawer.opened) {\r\n this.setBodyOverflow();\r\n }\r\n\r\n // Listen to changes in the drawer being opened or closed\r\n this.drawer.openedChange.subscribe((opened: boolean) => {\r\n if (opened) {\r\n this.setBodyOverflow();\r\n } else {\r\n this.removeBodyOverflow();\r\n }\r\n });\r\n\r\n this.drawer.openedChange.subscribe((opened) => {\r\n if (opened) {\r\n setTimeout(() => {\r\n if (this.myTextarea && this.myTextarea.nativeElement) {\r\n this.myTextarea.nativeElement.focus(); // Focus on the textarea\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n private setBodyOverflow() {\r\n this.renderer.addClass(document.body, this.bodyOverflowClass);\r\n }\r\n\r\n private removeBodyOverflow() {\r\n this.renderer.removeClass(document.body, this.bodyOverflowClass);\r\n }\r\n\r\n getSpeakersByStaffIds(ids) {\r\n const url =\r\n `${this.environment.USERS_API}/events/${this.eventId}/users/get-by-staff-ids`\r\n fetch(url, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + \"your_token_here\",\r\n },\r\n body: JSON.stringify(ids),\r\n })\r\n .then((response) => {\r\n if (response.ok) {\r\n return response.json(); // Parse the JSON body of the response\r\n } else {\r\n throw new Error('Network response was not ok.');\r\n }\r\n })\r\n .then((data) => {\r\n if (data?.length > 0) {\r\n data.forEach(speaker => {\r\n this.speakers[speaker.id] = speaker;\r\n });\r\n\r\n this.cdr.markForCheck();\r\n }\r\n })\r\n .catch((err) => {\r\n console.error('Error fetching data:', err);\r\n this.loading = false;\r\n });\r\n }\r\n\r\n performSessionAction(sessionId, action) {\r\n this.sessionActions.next({\r\n sessionId,\r\n action\r\n });\r\n }\r\n\r\n addCloseBotClickEvent() {\r\n const element = this.elementRef.nativeElement.querySelector('#closeBotNow');\r\n if (element) {\r\n this.renderer.listen(element, 'click', () => {\r\n this.closeBot.next();\r\n });\r\n }\r\n }\r\n\r\n isMobileBrowser() {\r\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\r\n }\r\n\r\n connectToUser(userId) {\r\n this.connectWithUser.emit({\r\n connect: !this.canDisconnect(userId),\r\n userId\r\n });\r\n\r\n setTimeout(() => {\r\n this.fetchMyConnections().subscribe(res => {\r\n this.cdr.markForCheck();\r\n });\r\n this.fetchPendingRequests().subscribe(res => {\r\n this.cdr.markForCheck();\r\n });\r\n }, 500);\r\n }\r\n\r\n scheduleMeetingWithUser(user) {\r\n this.scheduleMeeting.emit(user);\r\n }\r\n\r\n canConnect(userId) {\r\n return !(this.canDisconnect(userId) || this.pendingRequests.find(a => a == userId))\r\n }\r\n\r\n canDisconnect(userId) {\r\n return this.myConnections.find(conn => conn.userId == userId)\r\n }\r\n\r\n fetchPendingRequests() {\r\n const headers = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'apiKey': this.autogenKey\r\n });\r\n return this.http\r\n .get(\r\n `${this.environment.USERS_API}/events/${this.eventId}/connection-requests/autogen/pending-sent-requests?userId=${this.userId}`,\r\n { headers }\r\n )\r\n .pipe(\r\n switchMap((res: any) => {\r\n this.pendingRequests = res;\r\n this.cdr.markForCheck();\r\n return of(res);\r\n }),\r\n catchError((error: any) => {\r\n console.error('Error fetching pending requests: ', error);\r\n return of(null);\r\n })\r\n );\r\n }\r\n\r\n fetchMyConnections() {\r\n const headers = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'apiKey': this.autogenKey\r\n });\r\n return this.http\r\n .get(\r\n `${this.environment.USERS_API}/events/${this.eventId}/users-connections/autogen?userId=${this.userId}`,\r\n { headers }\r\n )\r\n .pipe(\r\n switchMap((res: any) => {\r\n this.myConnections = res;\r\n this.cdr.markForCheck();\r\n return of(res);\r\n }),\r\n catchError((error: any) => {\r\n console.error('Error fetching pending requests: ', error);\r\n return of(null);\r\n })\r\n );\r\n }\r\n\r\n\r\n isDropdownOpen: boolean = false;\r\n agents: any;\r\n // Toggle the dropdown visibility\r\n toggleDropdown() {\r\n this.isDropdownOpen = !this.isDropdownOpen;\r\n }\r\n\r\n // Handle changes in the selected agents\r\n onAgentChange(agent: { id: string, name: string, selected: boolean }) {\r\n agent.selected = !agent.selected;\r\n console.log('Selected agent:', agent);\r\n // You can handle selected agents here, e.g., save them to a variable or send to an API\r\n }\r\n\r\n\r\n fetchAgents() {\r\n const url = `${this.environment.AGENTS_API}/CoPilot/${this.botId}/public-agents`;\r\n\r\n fetch(url, {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-api-key': this.apiKey,\r\n }\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n if (data) {\r\n this.agents = data;\r\n this.agents.forEach(element => {\r\n element.selected = false;\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n console.error('Error:', error);\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n // events/${eventId}/users-connections\r\n processMessageForDisplay(markdown: string): SafeHtml {\r\n if (!markdown || !(markdown.length > 0)) {\r\n console.error('Input Markdown is null or empty');\r\n return '';\r\n }\r\n\r\n console.log('Markdown input:', markdown);\r\n\r\n // Convert Markdown headers to HTML headers\r\n let html = markdown.replace(/^(#{1,6})\\s+(.*)$/gm, (match, hashes, text) => {\r\n const level = hashes.length;\r\n return `<h${level}>${text}</h${level}>`;\r\n });\r\n\r\n console.log('After header conversion:', html);\r\n\r\n // Convert Markdown links to HTML links\r\n html = html.replace(/\\[([^\\]]+)]\\(([^)]+)\\)/g, '<a href=\"$2\" target=\"_blank\">$1</a>');\r\n\r\n console.log('After link conversion:', html);\r\n\r\n // Convert Markdown bold to HTML strong\r\n html = html.replace(/\\*\\*(.*?)\\*\\*/g, '<strong>$1</strong>');\r\n\r\n console.log('After bold conversion:', html);\r\n\r\n // Convert new lines to <br> tags\r\n html = html.replace(/(?:\\r\\n|\\r|\\n)/g, '<br>');\r\n\r\n console.log('After line breaks conversion:', html);\r\n\r\n // Optional: Sanitize the HTML to prevent XSS\r\n const sanitizedHtml = this.sanitizeHtml(html);\r\n\r\n console.log('Sanitized HTML:', sanitizedHtml);\r\n\r\n return sanitizedHtml;\r\n }\r\n\r\n\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n@Component({\r\n selector: 'hivegpt-chatbot',\r\n templateUrl: './chatbot.component.html',\r\n styleUrls: ['./chatbot.component.scss'],\r\n})\r\nexport class ChatBotComponent {\r\n @Input() userId!: string;\r\n @Input() apiKey!: string;\r\n @Input() botName!: string;\r\n @Input() botSkills!: string;\r\n @Input() botId!: string;\r\n @Input() closeButtonColor!: string;\r\n @Input() gradientColors!: string[];\r\n @Input() greeting!: string;\r\n @Input() sendButtonColor!: string;\r\n @Input() useOpenAi!: boolean;\r\n @Input() showClose!: boolean;\r\n @Input() bgGradient!: string[];\r\n @Input() sendButtonTextColor!: string;\r\n @Input() fullView!: boolean;\r\n @Input() bgBubbleAi!: string;\r\n @Input() bgBubbleUser!: string;\r\n @Input() closeButtonbgColor!: string;\r\n @Input() messageTextColorAi!: string;\r\n @Input() messageTextColorUser!: string;\r\n @Input() dateTimeColor!: string;\r\n @Input() dateTextColor!: string;\r\n @Input() formFieldBgColor!: string;\r\n @Input() formFieldTextColor!: string;\r\n @Input() thumbsUpMessage!: string;\r\n @Input() thumbsDownMessages!: string[];\r\n @Input() timezone!: string;\r\n @Input() eventName!: string;\r\n @Input() credentials!: [];\r\n @Input() unknownResponses!: [];\r\n @Input() rules!: string;\r\n @Input() eventId!: string;\r\n visible = false;\r\n\r\n toggle() {\r\n this.visible = !this.visible;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'safeHtml',\r\n})\r\nexport class SafeHtmlPipe implements PipeTransform {\r\n\r\n constructor(private sanitizer: DomSanitizer) {\r\n }\r\n\r\n transform(html): unknown {\r\n return html ? this.sanitizer.bypassSecurityTrustHtml(html) : '';\r\n }\r\n\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { IVideo } from '../../models/video';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'app-video-player',\r\n templateUrl: './video-player.component.html',\r\n styleUrls: ['./video-player.component.scss'],\r\n})\r\nexport class VideoPlayerComponent\r\n implements OnInit, AfterViewInit {\r\n @Input() currentUserId: string;\r\n @Input() user: any;\r\n @Input() eventId: string;\r\n @Input() videoObj: IVideo;\r\n @Input() isDev: boolean;\r\n myFollowingList: Array<string>;\r\n myPendingSentRequests: Array<string>;\r\n @Input() type: string;\r\n isMuted: boolean = true;\r\n private observer: IntersectionObserver;\r\n isFullscreen: boolean = false;\r\n @ViewChild('video') video: any;\r\n @ViewChild('fullscreenvideo') fullscreenvideo: any;\r\n isFullscreenvideoPlaying: boolean = false;\r\n\r\n @Output() connectWithUser = new EventEmitter<string>();\r\n @Output() scheduleMeeting = new EventEmitter<any>();\r\n\r\n constructor(\r\n @Inject(DOCUMENT) private doc: any,\r\n private el: ElementRef,\r\n private cdr: ChangeDetectorRef\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n toggleSound(isMuted = null) {\r\n this.isMuted = isMuted != null ? isMuted : !this.isMuted;\r\n setTimeout(() => {\r\n const video: any = this.doc\r\n .getElementById(this.video.id.toString());\r\n if (video) {\r\n video.muted = this.isMuted;\r\n this.video.isMuted = this.isMuted;\r\n }\r\n\r\n this.cdr.markForCheck();\r\n //this.muteToggle.emit(this.isMuted);\r\n })\r\n}\r\n\r\n togglePlay(playState: boolean, videoEl) {\r\n this.videoObj.isPlaying = !this.videoObj.isPlaying;\r\n setTimeout(() => { \r\n if (playState) { \r\n this.videoObj.isPlaying = true;\r\n videoEl.play();\r\n var pauseBtn = document.getElementById('pause-btn');\r\n pauseBtn.classList.add('hide-pause-btn');\r\n\r\n this.toggleSound(false);\r\n }\r\n else{\r\n this.videoObj.isPlaying = false;\r\n videoEl.pause();\r\n }\r\n this.cdr.markForCheck();\r\n })\r\n }\r\n \r\n ngAfterViewInit() {\r\n if (window.innerWidth <= 576) {\r\n this.observer = new IntersectionObserver(\r\n (entries) => {\r\n if (entries[0].isIntersecting === true) {\r\n this.video.nativeElement.play();\r\n } else {\r\n this.video.nativeElement.pause();\r\n }\r\n },\r\n {\r\n threshold: 0.75,\r\n }\r\n );\r\n\r\n this.observer.observe(this.el.nativeElement as HTMLElement);\r\n }\r\n }\r\n\r\n toggleFullscreen() {\r\n this.isFullscreen = !this.isFullscreen;\r\n if (!this.isFullscreen) {\r\n this.fullscreenvideo.nativeElement.pause();\r\n }\r\n }\r\n\r\n toggleFullscreenPlay() {\r\n this.isFullscreenvideoPlaying = !this.isFullscreenvideoPlaying;\r\n\r\n if (this.isFullscreenvideoPlaying) {\r\n this.fullscreenvideo.nativeElement.play();\r\n } else {\r\n this.fullscreenvideo.nativeElement.pause();\r\n }\r\n }\r\n\r\n followUser(userId) {\r\n this.connectWithUser.emit(userId);\r\n }\r\n\r\n checkPendingSentRequest(userId) {\r\n return this.myPendingSentRequests?.find(a => a == userId);\r\n }\r\n\r\n canUnfollowUser() {\r\n return false;\r\n }\r\n\r\n canFollowUser() {\r\n return true;\r\n }\r\n\r\n getIniNames(firstName, lastName) {\r\n if(!firstName && !lastName) {\r\n return '';\r\n }\r\n \r\n if (firstName && lastName)\r\n return (\r\n firstName.charAt(0).toUpperCase() + lastName.charAt(0).toUpperCase()\r\n );\r\n else return firstName.charAt(0).toUpperCase();\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { ChatDrawerComponent } from './components/chat-drawer/chat-drawer.component';\r\nimport { ChatBotComponent } from './components/chatbot/chatbot.component';\r\nimport { SafeHtmlPipe } from './pipes/safe-html.pipe';\r\nimport { VideoPlayerComponent } from './components/video-player/video-player.component';\r\n\r\n@NgModule({\r\n declarations: [ChatBotComponent, ChatDrawerComponent, VideoPlayerComponent, SafeHtmlPipe],\r\n imports: [CommonModule, MatIconModule, MatSidenavModule, FormsModule],\r\n exports: [ChatBotComponent, ChatDrawerComponent, VideoPlayerComponent]\r\n})\r\nexport class HiveGptModule {}\r\n","/*\r\n * Public API Surface of hive-gpt\r\n */\r\n\r\nexport * from './lib/components/chat-drawer/chat-drawer.component';\r\nexport * from './lib/components/chatbot/chatbot.component';\r\nexport * from './lib/hivegpt.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {ConversationService as ɵa} from './lib/components/conversation.service';\nexport {VideoPlayerComponent as ɵb} from './lib/components/video-player/video-player.component';\nexport {SafeHtmlPipe as ɵc} from './lib/pipes/safe-html.pipe';"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hivegpt-hiveai-angular.js","sources":["../../../../projects/hivegpt/eventsgpt-angular/src/lib/utils/utils.ts","../../../../projects/hivegpt/eventsgpt-angular/src/environments/environment.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/conversation.service.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/chat-drawer/chat-drawer.component.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/chatbot/chatbot.component.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/pipes/safe-html.pipe.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/video-player/video-player.component.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/hivegpt.module.ts","../../../../projects/hivegpt/eventsgpt-angular/src/public-api.ts","../../../../projects/hivegpt/eventsgpt-angular/src/hivegpt-hiveai-angular.ts"],"sourcesContent":["const formatHoursAndMinutes = (date: Date) => {\r\n let hours = date.getHours() % 12;\r\n const minutes = date.getMinutes();\r\n const amPm = date.getHours() < 12 ? 'AM' : 'PM';\r\n if(hours === 0) hours = 12;\r\n\r\n const formattedHours = hours < 10 ? `0${hours}` : hours;\r\n const formattedMinutes = minutes < 10 ? `0${minutes}` : minutes;\r\n\r\n return `${formattedHours}:${formattedMinutes} ${amPm}`;\r\n};\r\n\r\nexport const formatNow = (timezone?: string) => {\r\n const now = new Date();\r\n if (timezone) {\r\n const options: any = {\r\n hour12: true,\r\n hour: 'numeric',\r\n minute: 'numeric',\r\n timeZone: timezone,\r\n };\r\n return now.toLocaleString('en-US', options);\r\n }\r\n return formatHoursAndMinutes(now);\r\n};\r\n\r\nexport const formatTimeStamps = (timezone: string, timestamps: any) => {\r\n const date = new Date(timestamps + 'Z');\r\n\r\n const options: any = {\r\n hour12: true,\r\n hour: 'numeric',\r\n minute: 'numeric',\r\n timeZone: timezone,\r\n };\r\n return date.toLocaleString('en-US', options);\r\n};\r\n","export const prod_environment = {\r\n USERS_API: 'https://es-user.social27.com/api',\r\n BASE_URL: 'https://agent-api.hivegpt.ai',\r\n AGENTS_API: 'https://hive-ai.social27.com/api',\r\n API_KEY: 'b621eb3f-0bd2-41d5-a48c-a8f8ab7d38f8'\r\n}\r\n\r\nexport const dev_environment = {\r\n USERS_API: 'https://pre-user.social27.com/api',\r\n BASE_URL: 'https://agent-api.hivegpt.ai',\r\n AGENTS_API: 'https://hive-ai.social27.com/api',\r\n API_KEY: 'b621eb3f-0bd2-41d5-a48c-a8f8ab7d38f8'\r\n}\r\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConversationService {\n\n private storageKey = 'conversationKey';\n\n constructor() {\n\n }\n private generateKey(): string {\n const timestamp = Math.floor(new Date().getTime() / 1000).toString(16);\n const randomHex = 'xxxxxxxxxxxxxxxx'.replace(/[x]/g, () => {\n return (Math.floor(Math.random() * 16)).toString(16);\n });\n return timestamp + randomHex;\n }\n private generateStorageKey(key: string): string {\n return `conversationKey_${key}`;\n }\n\n private ensureKeyExists(storageKey: string, key: string): void {\n if (!localStorage.getItem(storageKey)) {\n const newKey = this.generateKey();\n localStorage.setItem(storageKey, newKey);\n }\n }\n\n getKey(key: string): string {\n const storageKey = this.generateStorageKey(key);\n this.ensureKeyExists(storageKey, key);\n return localStorage.getItem(storageKey)!;\n }\n}\n","// import { Platform } from '@angular/cdk/platform';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n Renderer2,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDrawer } from '@angular/material/sidenav';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\nimport { of } from 'rxjs';\r\nimport { catchError, switchMap } from 'rxjs/operators';\r\nimport { formatNow, formatTimeStamps } from '../../utils/utils';\r\nimport { dev_environment, prod_environment } from '../../../environments/environment';\r\nimport { ConversationService } from '../conversation.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'hivegpt-chat-drawer',\r\n templateUrl: './chat-drawer.component.html',\r\n styleUrls: ['./chat-drawer.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ChatDrawerComponent implements OnInit {\r\n @ViewChild('chatMain') private chatMain: ElementRef;\r\n\r\n @ViewChild('drawer') drawer!: MatDrawer;\r\n private bodyOverflowClass = 'body-overflow-hidden';\r\n @ViewChild('myTextarea', { static: false })\r\n myTextarea!: ElementRef<HTMLTextAreaElement>; // Reference to the textarea\r\n\r\n @Input() copilotName: string = \"HiveXGPT\";\r\n @Input() firstName!: string;\r\n @Input() lastName!: string;\r\n @Input() apiKey!: string;\r\n @Input() bgBubbleAi!: string;\r\n @Input() bgBubbleUser!: string;\r\n @Input() bgGradient!: string[];\r\n @Input() botName!: string;\r\n @Input() botSkills!: string;\r\n @Input() botId!: string;\r\n @Input() closeButtonColor!: string;\r\n @Input() closeButtonbgColor!: string;\r\n @Input() credentials!: [];\r\n @Input() dateTimeColor!: string;\r\n @Input() dateTextColor!: string;\r\n @Input() eventId!: string;\r\n @Input() s27UserToken!: string;\r\n @Input() eventName!: string;\r\n @Input() botIcon!: string;\r\n @Input() formFieldBgColor!: string;\r\n @Input() formFieldTextColor!: string;\r\n @Input() fullView!: boolean;\r\n @Input() gradientColors!: string[];\r\n @Input() greeting!: string;\r\n @Input() messageTextColorAi!: string;\r\n @Input() messageTextColorUser!: string;\r\n @Input() rules!: string;\r\n @Input() sendButtonColor!: string;\r\n @Input() sendButtonTextColor!: string;\r\n @Input() showClose!: boolean;\r\n @Input() thumbsDownMessages!: string[];\r\n @Input() thumbsUpMessage!: string;\r\n @Input() timezone!: string;\r\n @Input() unknownResponses!: [];\r\n @Input() useOpenAi!: boolean;\r\n @Input() userId!: string;\r\n @Input() isDev!: boolean;\r\n\r\n @Input() againButtonColor!: string[];\r\n @Input() againButtonTextColor!: string[];\r\n @Output() feedbackEvent = new EventEmitter<string>();\r\n @Output() onCloseEvent = new EventEmitter<void>();\r\n @Output() openPage = new EventEmitter<any>();\r\n @Output() sessionActions = new EventEmitter<any>();\r\n @Output() closeBot = new EventEmitter<any>();\r\n @Output() connectWithUser = new EventEmitter<any>();\r\n @Output() scheduleMeeting = new EventEmitter<string>();\r\n\r\n autogenKey = \"Autogen_eDJTtEU-NB0RtIpzq1w\"\r\n addToMyAgendaAction = \"add_to_my_agenda\";\r\n myUpcomingSessionAction = \"my_upcomming_session\";\r\n connectOrFollowAction = \"connect_or_follow\";\r\n aiResponse: string = '';\r\n chatLog: any[] = [];\r\n decoder = new TextDecoder();\r\n feedbackDone: boolean = false;\r\n greetingMsg: string = '';\r\n hasBackdropValue: boolean = false;\r\n input: string = '';\r\n listenerAdded = false;\r\n loading: boolean = false;\r\n mode: string = 'over';\r\n quickPrompts: any[] = [];\r\n thumbsDownMsgIndex = 0;\r\n userName: string = '';\r\n showStartAgain: boolean = false;\r\n isIOSDevice: boolean = false;\r\n showFeedBackIconsIndex: number | null = null;\r\n temperature: number = 1;\r\n speakers = [];\r\n environment: {\r\n USERS_API,\r\n BASE_URL,\r\n AGENTS_API\r\n };\r\n pendingRequests: any;\r\n myConnections: any;\r\n conversationKey: string;\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n private http: HttpClient,\r\n private sanitizer: DomSanitizer,\r\n private elementRef: ElementRef,\r\n private renderer: Renderer2,\r\n private conversation: ConversationService\r\n // private platform: Platform\r\n ) {\r\n this.chatMain = new ElementRef(null);\r\n\r\n // if (this.platform.IOS) {\r\n // this.isIOSDevice = true;\r\n // }\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.environment = this.isDev ? dev_environment : prod_environment;\r\n\r\n // this.fetchMyConnections().subscribe();\r\n // this.fetchPendingRequests().subscribe();\r\n\r\n this.changeTemperature(this.temperature);\r\n this.fetchBotConfig().subscribe(\r\n (res) => {\r\n this.cdr.markForCheck();\r\n this.fetchAgents();\r\n this.fetchChatHistory().subscribe(\r\n (response) => {\r\n this.loading = false;\r\n this.mapChatHistory(response);\r\n this.cdr.markForCheck();\r\n },\r\n (err) => {\r\n console.error('Error fetching chat history:', err);\r\n }\r\n );\r\n },\r\n (err) => {\r\n console.error('Error fetching chat history:', err);\r\n }\r\n );\r\n\r\n this.cdr.markForCheck();\r\n }\r\n\r\n changeTemperature(newTemperature: number) {\r\n if (this.loading) return;\r\n this.temperature = newTemperature;\r\n const wrapper = document.querySelector('.hivegpt-chat-wrapper')\r\n // Remove existing theme classes from body\r\n wrapper?.classList.remove('creative', 'balanced', 'precise');\r\n\r\n switch (newTemperature) {\r\n case 0:\r\n wrapper?.classList.add('creative');\r\n break;\r\n case 1:\r\n wrapper?.classList.add('balanced');\r\n break;\r\n case 2:\r\n wrapper?.classList.add('precise');\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n onStartAgain() {\r\n if (this.loading) return;\r\n this.showStartAgain = false;\r\n this.chatLog = [];\r\n this.chatLog.push({\r\n type: 'ai',\r\n message:\r\n this.greetingMsg ||\r\n this.processMessage(\r\n \"Greetings! I'm your COP28 virtual assistant. Have questions about the event? I'm here to help.\"\r\n ),\r\n time: formatNow(this.timezone),\r\n });\r\n this.archieveMessages().subscribe();\r\n }\r\n\r\n archieveMessages() {\r\n const headers = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'x-api-key': this.apiKey,\r\n });\r\n const url = `${this.environment.BASE_URL}/bot/clear-history/${this.botId}/${this.userId}`;\r\n return this.http.post(url, {}, { headers }).pipe(\r\n switchMap((res: any) => {\r\n return of(res);\r\n }),\r\n catchError((error) => {\r\n return of(null);\r\n })\r\n );\r\n }\r\n\r\n fetchBotConfig() {\r\n this.loading = true;\r\n const url = `${this.environment.BASE_URL}/bots?bot_id=${this.botId}`;\r\n return this.http.get(url).pipe(\r\n switchMap((res: any) => {\r\n this.botName = res.Name;\r\n this.botIcon = res.Icon;\r\n this.botSkills = res?.Skills;\r\n this.greetingMsg = res.Greeting;\r\n\r\n this.thumbsDownMessages = res?.NegativeResponses?.length\r\n ? res.NegativeResponses\r\n : [\r\n \"We are sorry we've not been able to answer your question.<br/> However, our dedicated support team is happy to help. <span class='feedback-link' style='cursor: pointer; text-decoration: underline; font-weight: 700; color: #17235B;'>Please click here</span> and a human agent will assist you as soon as possible\",\r\n ];\r\n this.quickPrompts = res.QuickPrompts;\r\n this.cdr.markForCheck();\r\n this.loading = false;\r\n return of(res);\r\n }),\r\n catchError((error) => {\r\n console.error('Error fetching chatbot config: ', error);\r\n this.loading = false;\r\n return of(null);\r\n })\r\n );\r\n }\r\n\r\n fetchChatHistory(): Observable<any> {\r\n this.loading = true;\r\n this.conversationKey = this.conversation.getKey(this.botId);\r\n const url = `${this.environment.BASE_URL}/conversations/${this.conversationKey}`;\r\n const headers = new HttpHeaders({\r\n 'accept': 'application/json'\r\n });\r\n\r\n return this.http.get(url, { headers }).pipe(\r\n catchError(this.handleError<any>('fetchConversation'))\r\n );\r\n }\r\n\r\n private handleError<T>(operation = 'operation', result?: T) {\r\n return (error: any): Observable<T> => {\r\n console.error(`${operation} failed: ${error.message}`);\r\n return of(result as T);\r\n };\r\n }\r\n // fetchChatHistory() {\r\n // this.loading = true;\r\n // const headers = new HttpHeaders({\r\n // 'Content-Type': 'application/json',\r\n // 'x-api-key': this.apiKey,\r\n // });\r\n // return this.http\r\n // .get(`${this.environment.BASE_URL}/conversations/${this.conversationKey}`, { headers })\r\n // .pipe(\r\n // switchMap((res: any) => {\r\n // this.loading = false;\r\n // return of(res);\r\n // }),\r\n // catchError((error: any) => {\r\n // console.error('Error fetching chat history: ', error);\r\n // this.loading = false;\r\n // return of(null);\r\n // })\r\n // );\r\n // }\r\n\r\n mapChatHistory(chats: any) {\r\n this.chatLog.push({\r\n type: 'ai',\r\n message:\r\n this.greetingMsg ||\r\n this.processMessage(\r\n \"Greetings! I'm your COP28 virtual assistant. Have questions about the event? I'm here to help.\"\r\n ),\r\n time: formatNow(this.timezone),\r\n });\r\n if (chats && chats?.Messages?.length) {\r\n chats?.Messages.forEach((chat: any) => {\r\n if (chat.Type == \"user\") {\r\n this.chatLog.push({\r\n type: 'user',\r\n message: this.processMessageForDisplay(chat.Text),\r\n time: formatTimeStamps(this.timezone, chat.InsertTimestamp),\r\n copied: false\r\n });\r\n }\r\n if (chat.Type == \"ai\") {\r\n this.chatLog.push({\r\n type: 'ai',\r\n message: this.processMessageForDisplay(chat.Text),\r\n time: formatTimeStamps(this.timezone, chat.InsertTimestamp),\r\n copied: false\r\n });\r\n this.showFeedBackIconsIndex = this.chatLog.length - 1;\r\n }\r\n });\r\n this.showStartAgain = true;\r\n }\r\n this.scrollToBottom();\r\n this.cdr.markForCheck();\r\n }\r\n\r\n processMessage(message: string): SafeHtml {\r\n if (!message || !(message?.length > 0)) {\r\n return '';\r\n }\r\n\r\n console.log('here is my message')\r\n console.log(message);\r\n\r\n message = message.trim();\r\n\r\n const markdownLinkRegex = /\\[([^[]+)]\\(([^)]+)\\)/g;\r\n const urlRegex = /(?<!href=\")\\bhttps?:\\/\\/\\S+(?<![.,])/gi;\r\n\r\n if (markdownLinkRegex.test(message)) {\r\n const html = message.replace(\r\n markdownLinkRegex,\r\n '<a href=\"$2\" target=\"_blank\">$1</a>'\r\n );\r\n console.log('Sanitized message: ', message);\r\n return this.sanitizeHtml(html);\r\n }\r\n\r\n if (urlRegex.test(message)) {\r\n const html = message.replace(\r\n urlRegex,\r\n '<a href=\"$&\" target=\"_blank\">$&</a>'\r\n );\r\n console.log('Sanitized message: ', message);\r\n return this.sanitizeHtml(html);\r\n }\r\n\r\n message = message.replace(/(?:\\r\\n|\\r|\\n)/g, '<br>');\r\n\r\n message = message.replace(/\\*\\*(.*?)\\*\\*/g, '<strong>$1</strong>');\r\n // Convert Markdown headers to HTML headers\r\n message = message.replace(/^(#{1,6})\\s+(.*)$/gm, (match, hashes, text) => {\r\n const level = hashes.length;\r\n return `<h${level}>${text}</h${level}>`;\r\n });\r\n\r\n this.cdr.markForCheck();\r\n const sanitizedMessage = this.sanitizeHtml(message);\r\n return sanitizedMessage;\r\n }\r\n\r\n ngAfterViewChecked() {\r\n const feedbackLinks =\r\n this.elementRef.nativeElement.querySelectorAll('.feedback-link');\r\n feedbackLinks.forEach((link: any) => {\r\n link.addEventListener(\r\n 'click',\r\n this.onFeedbackClick.bind(this, 'zendesk')\r\n );\r\n });\r\n // if (this.elementRef.nativeElement.querySelector('.feedback-link')) {\r\n // this.elementRef.nativeElement\r\n // .querySelector('.feedback-link')\r\n // .addEventListener('click', this.onFeedbackClick.bind(this, 'zendesk'));\r\n // }\r\n }\r\n\r\n sanitizeHtml(html: string): SafeHtml {\r\n return this.sanitizer.bypassSecurityTrustHtml(html);\r\n }\r\n\r\n onFeedbackClick(value: string) {\r\n this.feedbackEvent.emit(value);\r\n }\r\n\r\n onClose() {\r\n this.renderer.removeClass(document.body, this.bodyOverflowClass);\r\n this.onCloseEvent.emit();\r\n }\r\n\r\n sendMessageWithTile(prompt: string) {\r\n this.input = prompt;\r\n this.fetchData();\r\n this.scrollToBottom();\r\n }\r\n isChatingWithAi = false;\r\n fetchData() {\r\n this.input = this.input?.trim();\r\n if (!this.input || this.loading) {\r\n return;\r\n }\r\n\r\n this.chatLog.push({\r\n type: 'user',\r\n message: this.processMessage(this.input),\r\n time: formatNow(this.timezone),\r\n copied: false\r\n });\r\n\r\n this.cdr.markForCheck();\r\n\r\n this.aiResponse = '';\r\n this.isChatingWithAi = true;\r\n\r\n const url =\r\n `${this.environment.BASE_URL}/ai/ask`// +\r\n // (this.useOpenAi === false ? '/llm-hf' : '');\r\n fetch(url, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-api-key': this.apiKey,\r\n },\r\n body: JSON.stringify({\r\n user_question: this.input,\r\n user_id: this.userId,\r\n bot_id: this.botId,\r\n // temperature: this.temperature,\r\n // event_id: this.eventId,\r\n // token: this.s27UserToken,\r\n agents: this.agents.filter(p => p.selected).map(p => p.id),\r\n conversation_id: this.conversationKey\r\n }),\r\n })\r\n // Retrieve its body as ReadableStream\r\n .then((response) => {\r\n return this.readAllChunks(response.body);\r\n })\r\n .catch((err) => {\r\n console.error('Err: ', err);\r\n this.isChatingWithAi = false;\r\n });\r\n\r\n this.input = '';\r\n }\r\n\r\n fetchSmallTalk() {\r\n this.loading = true;\r\n this.cdr.markForCheck();\r\n\r\n const url = `${this.environment.BASE_URL}/bot/small-talk/${this.botId}/${this.userId}`;\r\n\r\n this.http\r\n .get<{ smallTalk: string }>(url, {\r\n headers: {\r\n 'x-api-key': this.apiKey,\r\n },\r\n })\r\n .pipe(\r\n catchError((error) => {\r\n console.error('Error while fetching small talk:', error);\r\n\r\n return of(null);\r\n })\r\n )\r\n .subscribe((response) => {\r\n this.loading = false;\r\n this.cdr.markForCheck();\r\n\r\n if (!response) {\r\n return;\r\n }\r\n\r\n if (response && response.smallTalk) {\r\n this.chatLog.push({\r\n type: 'ai',\r\n message: this.processMessage(response.smallTalk),\r\n time: formatNow(this.timezone),\r\n isFeedbackMsg: true,\r\n });\r\n this.showFeedBackIconsIndex = this.chatLog.length - 2;\r\n // this.scrollToBottom();\r\n this.cdr.markForCheck();\r\n }\r\n });\r\n }\r\n\r\n readAllChunks = (stream: any) => {\r\n const reader = stream.getReader();\r\n const allSuggestions: string[] = [];\r\n\r\n reader.closed.catch((err: any) => {\r\n if (err) {\r\n console.error('Error reading stream: ', err);\r\n }\r\n\r\n this.isChatingWithAi = false;\r\n this.scrollToBottom();\r\n return;\r\n });\r\n\r\n return new ReadableStream({\r\n start: (controller) => {\r\n return this.pump(controller, reader, allSuggestions);\r\n },\r\n });\r\n };\r\n\r\n pump(controller: any, reader: any, allSuggestions: string[]) {\r\n reader.read().then(({ done, value }: any) => {\r\n const lastItem = this.chatLog[this.chatLog.length - 1];\r\n\r\n if (done) {\r\n lastItem.message = this.processMessageForDisplay(lastItem.message);\r\n this.chatLog.pop();\r\n this.chatLog.push(lastItem);\r\n if (allSuggestions?.length) {\r\n this.chatLog.push({\r\n type: 'suggestions',\r\n suggestions: allSuggestions\r\n })\r\n }\r\n\r\n controller.close();\r\n this.isChatingWithAi = false;\r\n // this.scrollToBottom();\r\n this.cdr.markForCheck();\r\n this.showStartAgain = true;\r\n\r\n // setTimeout(() => {\r\n // this.fetchSmallTalk();\r\n // },1000)\r\n return;\r\n }\r\n\r\n let decodedChunk = this.decoder.decode(value, { stream: true });\r\n this.aiResponse += decodedChunk;\r\n if (lastItem.type === 'ai') {\r\n const suggestionsMatch = this.aiResponse.match(/<sug>(.*?)<\\/sug>/g);\r\n if (suggestionsMatch) {\r\n suggestionsMatch.forEach((match) => {\r\n this.aiResponse = this.aiResponse.replace(match, \"\");\r\n allSuggestions.push(match?.replace(/<\\/?sug>/g, \"\"));\r\n });\r\n }\r\n\r\n lastItem.message = this.aiResponse;\r\n this.cdr.markForCheck();\r\n } else {\r\n this.isChatingWithAi = false;\r\n\r\n let aiFormattedData: any;\r\n\r\n try {\r\n console.log('parsing json ')\r\n aiFormattedData = JSON.parse(JSON.parse(this.aiResponse))\r\n }\r\n catch (e) {\r\n try {\r\n console.log('parsing json 2')\r\n aiFormattedData = JSON.parse(this.aiResponse)\r\n } catch (e) { }\r\n }\r\n\r\n console.log('parsing json done')\r\n\r\n if (aiFormattedData && aiFormattedData?.section_id?.length > 0) {\r\n if (aiFormattedData.section_id == 'company_search' || aiFormattedData.section_id == 'user_search' || aiFormattedData.section_id == 'industry_company_search') {\r\n this.fetchMyConnections().subscribe();\r\n this.fetchPendingRequests().subscribe();\r\n }\r\n\r\n if (aiFormattedData.section_id == this.myUpcomingSessionAction) {\r\n var speakerIds = [];\r\n aiFormattedData.content?.forEach(session => {\r\n speakerIds = [...speakerIds, ...session.speakers]\r\n });\r\n\r\n if (speakerIds?.length > 0)\r\n this.getSpeakersByStaffIds(speakerIds);\r\n }\r\n\r\n if (aiFormattedData.section_id == this.addToMyAgendaAction && aiFormattedData.content?.length > 0) {\r\n this.openPage.next({\r\n sectionId: aiFormattedData.section_id,\r\n sessionIds: aiFormattedData.content\r\n })\r\n }\r\n\r\n if (aiFormattedData.section_id == this.connectOrFollowAction) {\r\n let usersLen = aiFormattedData.content?.length;\r\n if (usersLen > 1) {\r\n this.openPage.next({\r\n sectionId: \"open_networking_drawer\",\r\n search: aiFormattedData.content\r\n })\r\n }\r\n else if (usersLen == 1) {\r\n this.openPage.next({\r\n sectionId: aiFormattedData.section_id,\r\n connetUserIds: [aiFormattedData.content[0].userId]\r\n })\r\n }\r\n }\r\n\r\n if (aiFormattedData.is_open_page == \"true\") {\r\n this.openPage.next({\r\n sectionId: aiFormattedData.section_id,\r\n search: aiFormattedData.content\r\n });\r\n\r\n if (this.isMobileBrowser()) {\r\n aiFormattedData.message += \"\\n\\n\" + '<a id=\"closeBotNow\">Click Here</a> to see results.'\r\n }\r\n }\r\n\r\n\r\n\r\n this.chatLog.push({\r\n type: 'ai',\r\n message: aiFormattedData.message,\r\n action: aiFormattedData,\r\n time: formatNow(this.timezone)\r\n });\r\n\r\n if (this.isMobileBrowser()) {\r\n setTimeout(() => {\r\n this.addCloseBotClickEvent();\r\n }, 500);\r\n }\r\n\r\n this.aiResponse = \"\";\r\n } else {\r\n this.chatLog.push({\r\n type: 'ai',\r\n message: this.aiResponse,\r\n time: formatNow(this.timezone),\r\n });\r\n }\r\n\r\n this.showFeedBackIconsIndex = this.chatLog.length - 1;\r\n this.cdr.markForCheck();\r\n }\r\n\r\n this.scrollToBottom();\r\n\r\n // Enqueue the next data chunk into our target stream\r\n controller.enqueue(value);\r\n this.pump(controller, reader, allSuggestions);\r\n });\r\n }\r\n\r\n submitFeedback(flag: boolean) {\r\n this.feedbackDone = true;\r\n this.showFeedBackIconsIndex = null;\r\n const url = `${this.environment.BASE_URL}/bot/feedback`;\r\n fetch(url, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-api-key': this.apiKey,\r\n },\r\n body: JSON.stringify({ flag, user_id: this.userId, bot_id: this.botId }),\r\n }).then(() => {\r\n if (flag) {\r\n this.chatLog.push({\r\n type: 'ai',\r\n message:\r\n this.thumbsUpMessage ||\r\n `Great. May I assist you with anything else?`,\r\n time: formatNow(this.timezone),\r\n isFeedbackMsg: true,\r\n });\r\n\r\n this.scrollToBottom();\r\n this.cdr.markForCheck();\r\n this.feedbackDone = false;\r\n this.showFeedBackIconsIndex = null;\r\n return;\r\n }\r\n\r\n this.chatLog.push({\r\n type: 'ai',\r\n message: this.processMessage(\r\n this.thumbsDownMessages[this.thumbsDownMsgIndex]\r\n ),\r\n time: formatNow(this.timezone),\r\n isFeedbackMsg: true,\r\n });\r\n this.thumbsDownMsgIndex =\r\n (this.thumbsDownMsgIndex + 1) % this.thumbsDownMessages.length;\r\n this.scrollToBottom();\r\n this.cdr.markForCheck();\r\n this.feedbackDone = false;\r\n this.showFeedBackIconsIndex = null;\r\n });\r\n }\r\n\r\n handleSubmit() {\r\n this.fetchData();\r\n this.scrollToBottom();\r\n }\r\n\r\n handleUpClick(idx: any) {\r\n if (this.feedbackDone) {\r\n return;\r\n }\r\n\r\n this.submitFeedback(true);\r\n this.chatLog[idx].liked = !this.chatLog[idx].liked;\r\n\r\n if (this.chatLog[idx].unliked) {\r\n this.chatLog[idx].unliked = !this.chatLog[idx].unliked;\r\n }\r\n\r\n this.cdr.markForCheck();\r\n }\r\n\r\n handleDownClick(idx: any) {\r\n if (this.feedbackDone) return;\r\n this.submitFeedback(false);\r\n this.chatLog[idx].unliked = !this.chatLog[idx].unliked;\r\n if (this.chatLog[idx].liked)\r\n this.chatLog[idx].liked = !this.chatLog[idx].liked;\r\n }\r\n handleCopyClick(index: any) {\r\n // Copy the message to the clipboard\r\n const contentToCopy = this.chatLog[index].message;\r\n navigator.clipboard.writeText(contentToCopy).then(() => {\r\n // Indicate that the message was copied\r\n this.chatLog[index].copied = true;\r\n this.cdr.detectChanges();\r\n // Reset the copied state after a delay\r\n setTimeout(() => {\r\n this.chatLog[index].copied = false;\r\n this.cdr.detectChanges();\r\n }, 2000); // Reset after 2 seconds\r\n });\r\n }\r\n\r\n scrollToBottom() {\r\n let counter = 0;\r\n const interval = setInterval(() => {\r\n this.chatMain.nativeElement.scrollTop =\r\n this.chatMain.nativeElement.scrollHeight;\r\n if (counter++ > 5) clearInterval(interval);\r\n }, 5);\r\n }\r\n\r\n handleAction(action: any) {\r\n console.info(\"incoming action from the chatbot AI\")\r\n console.info(action)\r\n\r\n if (action?.content) {\r\n\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n // Check if the drawer is initially open and apply overflow hidden to body if so\r\n if (this.drawer.opened) {\r\n this.setBodyOverflow();\r\n }\r\n\r\n // Listen to changes in the drawer being opened or closed\r\n this.drawer.openedChange.subscribe((opened: boolean) => {\r\n if (opened) {\r\n this.setBodyOverflow();\r\n } else {\r\n this.removeBodyOverflow();\r\n }\r\n });\r\n\r\n this.drawer.openedChange.subscribe((opened) => {\r\n if (opened) {\r\n setTimeout(() => {\r\n if (this.myTextarea && this.myTextarea.nativeElement) {\r\n this.myTextarea.nativeElement.focus(); // Focus on the textarea\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n private setBodyOverflow() {\r\n this.renderer.addClass(document.body, this.bodyOverflowClass);\r\n }\r\n\r\n private removeBodyOverflow() {\r\n this.renderer.removeClass(document.body, this.bodyOverflowClass);\r\n }\r\n\r\n getSpeakersByStaffIds(ids) {\r\n const url =\r\n `${this.environment.USERS_API}/events/${this.eventId}/users/get-by-staff-ids`\r\n fetch(url, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': \"Bearer \" + \"your_token_here\",\r\n },\r\n body: JSON.stringify(ids),\r\n })\r\n .then((response) => {\r\n if (response.ok) {\r\n return response.json(); // Parse the JSON body of the response\r\n } else {\r\n throw new Error('Network response was not ok.');\r\n }\r\n })\r\n .then((data) => {\r\n if (data?.length > 0) {\r\n data.forEach(speaker => {\r\n this.speakers[speaker.id] = speaker;\r\n });\r\n\r\n this.cdr.markForCheck();\r\n }\r\n })\r\n .catch((err) => {\r\n console.error('Error fetching data:', err);\r\n this.loading = false;\r\n });\r\n }\r\n\r\n performSessionAction(sessionId, action) {\r\n this.sessionActions.next({\r\n sessionId,\r\n action\r\n });\r\n }\r\n\r\n addCloseBotClickEvent() {\r\n const element = this.elementRef.nativeElement.querySelector('#closeBotNow');\r\n if (element) {\r\n this.renderer.listen(element, 'click', () => {\r\n this.closeBot.next();\r\n });\r\n }\r\n }\r\n\r\n isMobileBrowser() {\r\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\r\n }\r\n\r\n connectToUser(userId) {\r\n this.connectWithUser.emit({\r\n connect: !this.canDisconnect(userId),\r\n userId\r\n });\r\n\r\n setTimeout(() => {\r\n this.fetchMyConnections().subscribe(res => {\r\n this.cdr.markForCheck();\r\n });\r\n this.fetchPendingRequests().subscribe(res => {\r\n this.cdr.markForCheck();\r\n });\r\n }, 500);\r\n }\r\n\r\n scheduleMeetingWithUser(user) {\r\n this.scheduleMeeting.emit(user);\r\n }\r\n\r\n canConnect(userId) {\r\n return !(this.canDisconnect(userId) || this.pendingRequests.find(a => a == userId))\r\n }\r\n\r\n canDisconnect(userId) {\r\n return this.myConnections.find(conn => conn.userId == userId)\r\n }\r\n\r\n fetchPendingRequests() {\r\n const headers = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'apiKey': this.autogenKey\r\n });\r\n return this.http\r\n .get(\r\n `${this.environment.USERS_API}/events/${this.eventId}/connection-requests/autogen/pending-sent-requests?userId=${this.userId}`,\r\n { headers }\r\n )\r\n .pipe(\r\n switchMap((res: any) => {\r\n this.pendingRequests = res;\r\n this.cdr.markForCheck();\r\n return of(res);\r\n }),\r\n catchError((error: any) => {\r\n console.error('Error fetching pending requests: ', error);\r\n return of(null);\r\n })\r\n );\r\n }\r\n\r\n fetchMyConnections() {\r\n const headers = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'apiKey': this.autogenKey\r\n });\r\n return this.http\r\n .get(\r\n `${this.environment.USERS_API}/events/${this.eventId}/users-connections/autogen?userId=${this.userId}`,\r\n { headers }\r\n )\r\n .pipe(\r\n switchMap((res: any) => {\r\n this.myConnections = res;\r\n this.cdr.markForCheck();\r\n return of(res);\r\n }),\r\n catchError((error: any) => {\r\n console.error('Error fetching pending requests: ', error);\r\n return of(null);\r\n })\r\n );\r\n }\r\n\r\n\r\n isDropdownOpen: boolean = false;\r\n agents: any;\r\n // Toggle the dropdown visibility\r\n toggleDropdown() {\r\n this.isDropdownOpen = !this.isDropdownOpen;\r\n }\r\n\r\n // Handle changes in the selected agents\r\n onAgentChange(agent: { id: string, name: string, selected: boolean }) {\r\n agent.selected = !agent.selected;\r\n console.log('Selected agent:', agent);\r\n // You can handle selected agents here, e.g., save them to a variable or send to an API\r\n }\r\n\r\n\r\n fetchAgents() {\r\n const url = `${this.environment.AGENTS_API}/CoPilot/${this.botId}/public-agents`;\r\n\r\n fetch(url, {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-api-key': this.apiKey,\r\n }\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n if (data) {\r\n this.agents = data;\r\n this.agents.forEach(element => {\r\n element.selected = false;\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n console.error('Error:', error);\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n // events/${eventId}/users-connections\r\n processMessageForDisplay(markdown: string): SafeHtml {\r\n if (!markdown || !(markdown.length > 0)) {\r\n console.error('Input Markdown is null or empty');\r\n return '';\r\n }\r\n\r\n console.log('Markdown input:', markdown);\r\n\r\n // Convert Markdown headers to HTML headers\r\n let html = markdown.replace(/^(#{1,6})\\s+(.*)$/gm, (match, hashes, text) => {\r\n const level = hashes.length;\r\n return `<h${level}>${text}</h${level}>`;\r\n });\r\n\r\n console.log('After header conversion:', html);\r\n\r\n // Convert Markdown links to HTML links\r\n html = html.replace(/\\[([^\\]]+)]\\(([^)]+)\\)/g, '<a href=\"$2\" target=\"_blank\">$1</a>');\r\n\r\n console.log('After link conversion:', html);\r\n\r\n // Convert Markdown bold to HTML strong\r\n html = html.replace(/\\*\\*(.*?)\\*\\*/g, '<strong>$1</strong>');\r\n\r\n console.log('After bold conversion:', html);\r\n\r\n // Convert new lines to <br> tags\r\n html = html.replace(/(?:\\r\\n|\\r|\\n)/g, '<br>');\r\n\r\n console.log('After line breaks conversion:', html);\r\n\r\n // Optional: Sanitize the HTML to prevent XSS\r\n const sanitizedHtml = this.sanitizeHtml(html);\r\n\r\n console.log('Sanitized HTML:', sanitizedHtml);\r\n\r\n return sanitizedHtml;\r\n }\r\n\r\n\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n@Component({\r\n selector: 'hivegpt-chatbot',\r\n templateUrl: './chatbot.component.html',\r\n styleUrls: ['./chatbot.component.scss'],\r\n})\r\nexport class ChatBotComponent {\r\n @Input() userId!: string;\r\n @Input() apiKey!: string;\r\n @Input() botName!: string;\r\n @Input() botSkills!: string;\r\n @Input() botId!: string;\r\n @Input() closeButtonColor!: string;\r\n @Input() gradientColors!: string[];\r\n @Input() greeting!: string;\r\n @Input() sendButtonColor!: string;\r\n @Input() useOpenAi!: boolean;\r\n @Input() showClose!: boolean;\r\n @Input() bgGradient!: string[];\r\n @Input() sendButtonTextColor!: string;\r\n @Input() fullView!: boolean;\r\n @Input() bgBubbleAi!: string;\r\n @Input() bgBubbleUser!: string;\r\n @Input() closeButtonbgColor!: string;\r\n @Input() messageTextColorAi!: string;\r\n @Input() messageTextColorUser!: string;\r\n @Input() dateTimeColor!: string;\r\n @Input() dateTextColor!: string;\r\n @Input() formFieldBgColor!: string;\r\n @Input() formFieldTextColor!: string;\r\n @Input() thumbsUpMessage!: string;\r\n @Input() thumbsDownMessages!: string[];\r\n @Input() timezone!: string;\r\n @Input() eventName!: string;\r\n @Input() credentials!: [];\r\n @Input() unknownResponses!: [];\r\n @Input() rules!: string;\r\n @Input() eventId!: string;\r\n visible = false;\r\n\r\n toggle() {\r\n this.visible = !this.visible;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'safeHtml',\r\n})\r\nexport class SafeHtmlPipe implements PipeTransform {\r\n\r\n constructor(private sanitizer: DomSanitizer) {\r\n }\r\n\r\n transform(html): unknown {\r\n return html ? this.sanitizer.bypassSecurityTrustHtml(html) : '';\r\n }\r\n\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { IVideo } from '../../models/video';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'app-video-player',\r\n templateUrl: './video-player.component.html',\r\n styleUrls: ['./video-player.component.scss'],\r\n})\r\nexport class VideoPlayerComponent\r\n implements OnInit, AfterViewInit {\r\n @Input() currentUserId: string;\r\n @Input() user: any;\r\n @Input() eventId: string;\r\n @Input() videoObj: IVideo;\r\n @Input() isDev: boolean;\r\n myFollowingList: Array<string>;\r\n myPendingSentRequests: Array<string>;\r\n @Input() type: string;\r\n isMuted: boolean = true;\r\n private observer: IntersectionObserver;\r\n isFullscreen: boolean = false;\r\n @ViewChild('video') video: any;\r\n @ViewChild('fullscreenvideo') fullscreenvideo: any;\r\n isFullscreenvideoPlaying: boolean = false;\r\n\r\n @Output() connectWithUser = new EventEmitter<string>();\r\n @Output() scheduleMeeting = new EventEmitter<any>();\r\n\r\n constructor(\r\n @Inject(DOCUMENT) private doc: any,\r\n private el: ElementRef,\r\n private cdr: ChangeDetectorRef\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n toggleSound(isMuted = null) {\r\n this.isMuted = isMuted != null ? isMuted : !this.isMuted;\r\n setTimeout(() => {\r\n const video: any = this.doc\r\n .getElementById(this.video.id.toString());\r\n if (video) {\r\n video.muted = this.isMuted;\r\n this.video.isMuted = this.isMuted;\r\n }\r\n\r\n this.cdr.markForCheck();\r\n //this.muteToggle.emit(this.isMuted);\r\n })\r\n}\r\n\r\n togglePlay(playState: boolean, videoEl) {\r\n this.videoObj.isPlaying = !this.videoObj.isPlaying;\r\n setTimeout(() => { \r\n if (playState) { \r\n this.videoObj.isPlaying = true;\r\n videoEl.play();\r\n var pauseBtn = document.getElementById('pause-btn');\r\n pauseBtn.classList.add('hide-pause-btn');\r\n\r\n this.toggleSound(false);\r\n }\r\n else{\r\n this.videoObj.isPlaying = false;\r\n videoEl.pause();\r\n }\r\n this.cdr.markForCheck();\r\n })\r\n }\r\n \r\n ngAfterViewInit() {\r\n if (window.innerWidth <= 576) {\r\n this.observer = new IntersectionObserver(\r\n (entries) => {\r\n if (entries[0].isIntersecting === true) {\r\n this.video.nativeElement.play();\r\n } else {\r\n this.video.nativeElement.pause();\r\n }\r\n },\r\n {\r\n threshold: 0.75,\r\n }\r\n );\r\n\r\n this.observer.observe(this.el.nativeElement as HTMLElement);\r\n }\r\n }\r\n\r\n toggleFullscreen() {\r\n this.isFullscreen = !this.isFullscreen;\r\n if (!this.isFullscreen) {\r\n this.fullscreenvideo.nativeElement.pause();\r\n }\r\n }\r\n\r\n toggleFullscreenPlay() {\r\n this.isFullscreenvideoPlaying = !this.isFullscreenvideoPlaying;\r\n\r\n if (this.isFullscreenvideoPlaying) {\r\n this.fullscreenvideo.nativeElement.play();\r\n } else {\r\n this.fullscreenvideo.nativeElement.pause();\r\n }\r\n }\r\n\r\n followUser(userId) {\r\n this.connectWithUser.emit(userId);\r\n }\r\n\r\n checkPendingSentRequest(userId) {\r\n return this.myPendingSentRequests?.find(a => a == userId);\r\n }\r\n\r\n canUnfollowUser() {\r\n return false;\r\n }\r\n\r\n canFollowUser() {\r\n return true;\r\n }\r\n\r\n getIniNames(firstName, lastName) {\r\n if(!firstName && !lastName) {\r\n return '';\r\n }\r\n \r\n if (firstName && lastName)\r\n return (\r\n firstName.charAt(0).toUpperCase() + lastName.charAt(0).toUpperCase()\r\n );\r\n else return firstName.charAt(0).toUpperCase();\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { ChatDrawerComponent } from './components/chat-drawer/chat-drawer.component';\r\nimport { ChatBotComponent } from './components/chatbot/chatbot.component';\r\nimport { SafeHtmlPipe } from './pipes/safe-html.pipe';\r\nimport { VideoPlayerComponent } from './components/video-player/video-player.component';\r\n\r\n@NgModule({\r\n declarations: [ChatBotComponent, ChatDrawerComponent, VideoPlayerComponent, SafeHtmlPipe],\r\n imports: [CommonModule, MatIconModule, MatSidenavModule, FormsModule],\r\n exports: [ChatBotComponent, ChatDrawerComponent, VideoPlayerComponent]\r\n})\r\nexport class HiveGptModule {}\r\n","/*\r\n * Public API Surface of hive-gpt\r\n */\r\n\r\nexport * from './lib/components/chat-drawer/chat-drawer.component';\r\nexport * from './lib/components/chatbot/chatbot.component';\r\nexport * from './lib/hivegpt.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {ConversationService as ɵa} from './lib/components/conversation.service';\nexport {VideoPlayerComponent as ɵb} from './lib/components/video-player/video-player.component';\nexport {SafeHtmlPipe as ɵc} from './lib/pipes/safe-html.pipe';"],"names":[],"mappings":"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"}