@hivegpt/hiveai-angular 0.0.415 → 0.0.417

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.
@@ -1 +1 @@
1
- {"version":3,"file":"hivegpt-hiveai-angular.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/translations/translation.service.ts","../../../../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/NotificationSocket.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/socket-service.service.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/bot.service.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/voice-agent/services/audio-analyzer.service.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/voice-agent/services/voice-agent.service.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/voice-agent/voice-modal-tokens.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/voice-agent/components/voice-agent-modal/voice-agent-modal.component.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/components/voice-agent/voice-agent.module.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/components/bot-html-editor/bot-html-editor.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":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","import { Injectable, Inject, PLATFORM_ID } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TranslationService {\n private eventId: string | null = null;\n\n setEventId(id: string) {\n this.eventId = id;\n }\n\n getTranslation(key: string): string {\n console.log('eventId', this.eventId);\n // let lang = String(this.getLang(this.eventId)).replace(/^\"|\"$/g, '');\n const lang = (\n localStorage.getItem('defaultLanguage-' + this.eventId) || 'en'\n ).replace(/^\"|\"$/g, '');\n\n const entry = this.translationsData.find((item) => item.Key === key);\n\n if (!entry) {\n return key; // fallback\n }\n\n return entry.Translations[lang] || entry.DefaultValue || key;\n }\n\n private getLang(eventId?: string | null): string {\n const suffix = eventId ? `-${eventId}` : '';\n const storageKey = `defaultLanguage${suffix}`;\n\n return localStorage.getItem(storageKey) || 'en';\n }\n\n private translationsData: any[] = [\n { \n Key: \"Copy\",\n DefaultValue: \"Copy\",\n Translations: {\n en: \"Copy\",\n fr: \"Copier\",\n it: \"Copia\",\n es: \"Copiar\",\n de: \"Kopieren\",\n \"pt-br\": \"Copiar\",\n ar: \"نسخ\",\n zh: \"复制\",\n ru: \"Копировать\"\n }\n}\n,\n {\n \n Key: \"May I assist you with anything else\",\n DefaultValue: \"Great. May I assist you with anything else?\",\n Translations: {\n en: \"Great. May I assist you with anything else?\",\n fr: \"Parfait. Puis-je vous aider avec autre chose ?\",\n it: \"Perfetto. Posso aiutarti con qualcos'altro?\",\n es: \"Genial. ¿Puedo ayudarte con algo más?\",\n de: \"Super. Kann ich Ihnen noch bei etwas anderem helfen?\",\n \"pt-br\": \"Ótimo. Posso ajudar com mais alguma coisa?\",\n ar: \"رائع. هل يمكنني مساعدتك في أي شيء آخر؟\",\n zh: \"太好了。还有什么我可以帮您的吗?\",\n ru: \"Отлично. Могу ли я помочь вам с чем-то ещё?\"\n }\n},\n {\n Key: \"We are sorry we've not been able to answer your question\",\n DefaultValue: \"We are sorry we've not been able to answer your question. However, our dedicated support team is happy to help. Please <a href=\\\"mailto:support@social27.com\\\">click here</a> and a human agent will assist you as soon as possible.\",\n Translations: {\n en: \"We are sorry we've not been able to answer your question. However, our dedicated support team is happy to help. Please <a href=\\\"mailto:support@social27.com\\\">click here</a> and a human agent will assist you as soon as possible.\",\n fr: \"Nous sommes désolés de ne pas avoir pu répondre à votre question. Cependant, notre équipe d'assistance se fera un plaisir de vous aider. Veuillez <a href=\\\"mailto:support@social27.com\\\">cliquer ici</a> et un agent humain vous assistera dès que possible.\",\n it: \"Ci dispiace di non essere riusciti a rispondere alla tua domanda. Tuttavia, il nostro team di supporto dedicato sarà lieto di aiutarti. Ti preghiamo di <a href=\\\"mailto:support@social27.com\\\">fare clic qui</a> e un operatore umano ti assisterà al più presto.\",\n es: \"Lamentamos no haber podido responder a tu pregunta. Sin embargo, nuestro equipo de soporte estará encantado de ayudarte. Por favor, <a href=\\\"mailto:support@social27.com\\\">haz clic aquí</a> y un agente humano te asistirá lo antes posible.\",\n de: \"Es tut uns leid, dass wir Ihre Frage nicht beantworten konnten. Unser engagiertes Support-Team hilft Ihnen jedoch gerne weiter. Bitte <a href=\\\"mailto:support@social27.com\\\">klicken Sie hier</a>, und ein menschlicher Mitarbeiter wird Ihnen so bald wie möglich helfen.\",\n \"pt-br\": \"Lamentamos não ter conseguido responder à sua pergunta. No entanto, nossa equipe de suporte dedicada ficará feliz em ajudar. Por favor, <a href=\\\"mailto:support@social27.com\\\">clique aqui</a> e um agente humano o ajudará o mais rápido possível.\",\n ar: \"نأسف لعدم تمكننا من الإجابة على سؤالك. ومع ذلك، يسعد فريق الدعم المخصص لدينا بمساعدتك. يرجى <a href=\\\"mailto:support@social27.com\\\">النقر هنا</a> وسيساعدك أحد الوكلاء البشريين في أقرب وقت ممكن.\",\n zh: \"很抱歉我们未能回答您的问题。不过,我们的专属支持团队很乐意为您提供帮助。请<a href=\\\"mailto:support@social27.com\\\">点击这里</a>,人工客服将尽快为您提供协助。\",\n ru: \"К сожалению, мы не смогли ответить на ваш вопрос. Однако наша служба поддержки с радостью вам поможет. Пожалуйста, <a href=\\\"mailto:support@social27.com\\\">нажмите здесь</a>, и наш оператор свяжется с вами как можно скорее.\"\n }\n},\n {\n Key: 'Ask anything',\n DefaultValue: 'Ask anything',\n Translations: {\n en: 'Ask anything',\n fr: 'Demandez ce que vous voulez',\n it: 'Chiedi qualsiasi cosa',\n es: 'Pregunta lo que quieras',\n de: 'Frag alles',\n 'pt-br': 'Pergunte qualquer coisa',\n ar: 'اسأل أي شيء',\n zh: '随便问',\n ru: 'Спросите что угодно',\n },\n },\n {\n Key: 'Assistant',\n DefaultValue: 'Assistant',\n Translations: {\n en: 'Assistant',\n fr: 'Assistant',\n it: 'Assistente',\n es: 'Asistente',\n de: 'Assistent',\n 'pt-br': 'Assistente',\n ar: 'مساعد',\n zh: '助手',\n ru: 'Ассистент',\n },\n },\n {\n Key: 'Your personal or company information is kept private and secure within this chat.',\n DefaultValue:\n 'Your personal or company information is kept private and secure within this chat.',\n Translations: {\n en: 'Your personal or company information is kept private and secure within this chat.',\n fr: 'Vos informations personnelles ou celles de votre entreprise sont conservées privées et sécurisées dans cette conversation.',\n it: \"Le tue informazioni personali o aziendali sono mantenute private e sicure all'interno di questa chat.\",\n es: 'Tu información personal o de la empresa se mantiene privada y segura dentro de este chat.',\n de: 'Ihre persönlichen oder geschäftlichen Informationen bleiben in diesem Chat privat und sicher.',\n 'pt-br':\n 'Suas informações pessoais ou da empresa são mantidas privadas e seguras dentro deste chat.',\n ar: 'تظل معلوماتك الشخصية أو معلومات شركتك خاصة وآمنة داخل هذه المحادثة.',\n zh: '您的个人或公司信息在此聊天中保持私密和安全。',\n ru: 'Ваша личная или корпоративная информация остается конфиденциальной и защищенной в этом чате.',\n },\n },\n {\n Key: 'Send message',\n DefaultValue: 'Send message',\n Translations: {\n en: 'Send message',\n fr: 'Envoyer un message',\n it: 'Invia messaggio',\n es: 'Enviar mensaje',\n de: 'Nachricht senden',\n 'pt-br': 'Enviar mensagem',\n ar: 'إرسال رسالة',\n zh: '发送消息',\n ru: 'Отправить сообщение',\n },\n },\n {\n Key: 'Platform GPT',\n DefaultValue: 'Platform GPT',\n Translations: {\n en: 'Platform GPT',\n fr: 'Plateforme GPT',\n it: 'Piattaforma GPT',\n es: 'Plataforma GPT',\n de: 'Plattform GPT',\n 'pt-br': 'Plataforma GPT',\n ar: 'منصة GPT',\n zh: '平台 GPT',\n ru: 'Платформа GPT',\n },\n },\n {\n Key: 'New Chat',\n DefaultValue: 'New Chat',\n Translations: {\n en: 'New Chat',\n fr: 'Nouvelle conversation',\n it: 'Nuova chat',\n es: 'Nuevo chat',\n de: 'Neuer Chat',\n 'pt-br': 'Novo chat',\n ar: 'محادثة جديدة',\n zh: '新聊天',\n ru: 'Новый чат',\n },\n },\n {\n Key: 'You',\n DefaultValue: 'You',\n Translations: {\n en: 'You',\n fr: 'Vous',\n it: 'Tu',\n es: 'Tú',\n de: 'Du',\n 'pt-br': 'Você',\n ar: 'أنت',\n zh: '您',\n ru: 'Вы',\n },\n },\n {\n Key: 'Write your message',\n DefaultValue: 'Write your message',\n Translations: {\n en: 'Write your message',\n fr: 'Écrivez votre message',\n it: 'Scrivi il tuo messaggio',\n es: 'Escribe tu mensaje',\n de: 'Schreiben Sie Ihre Nachricht',\n 'pt-br': 'Escreva sua mensagem',\n ar: 'اكتب رسالتك',\n zh: '写下您的消息',\n ru: 'Напишите ваше сообщение',\n },\n },\n {\n Key: 'Send',\n DefaultValue: 'Send',\n Translations: {\n en: 'Send',\n fr: 'Envoyer',\n it: 'Invia',\n es: 'Enviar',\n de: 'Senden',\n 'pt-br': 'Enviar',\n ar: 'إرسال',\n zh: '发送',\n ru: 'Отправить',\n },\n },\n \n {\n Key: 'Call Interface',\n DefaultValue: 'Call Interface',\n Translations: {\n en: 'Call Interface',\n fr: \"Interface d'appel\",\n it: 'Interfaccia chiamata',\n es: 'Interfaz de llamada',\n de: 'Anrufoberfläche',\n 'pt-br': 'Interface de chamada',\n ar: 'واجهة الاتصال',\n zh: '呼叫界面',\n ru: 'Интерфейс звонка',\n },\n },\n {\n Key: 'Close',\n DefaultValue: 'Close',\n Translations: {\n en: 'Close',\n fr: 'Fermer',\n it: 'Chiudi',\n es: 'Cerrar',\n de: 'Schließen',\n 'pt-br': 'Fechar',\n ar: 'إغلاق',\n zh: '关闭',\n ru: 'Закрыть',\n },\n },\n ];\n}\n","const formatHoursAndMinutes = (date: Date) => {\n let hours = date.getHours() % 12;\n const minutes = date.getMinutes();\n const amPm = date.getHours() < 12 ? 'AM' : 'PM';\n if(hours === 0) hours = 12;\n\n const formattedHours = hours < 10 ? `0${hours}` : hours;\n const formattedMinutes = minutes < 10 ? `0${minutes}` : minutes;\n\n return `${formattedHours}:${formattedMinutes} ${amPm}`;\n};\n\nexport const formatNow = (timezone?: string) => {\n const now = new Date();\n if (timezone) {\n const options: any = {\n hour12: true,\n hour: 'numeric',\n minute: 'numeric',\n timeZone: timezone,\n };\n return now.toLocaleString('en-US', options);\n }\n return formatHoursAndMinutes(now);\n};\n\nexport const formatTimeStamps = (timezone: string, timestamps: any) => {\n const date = new Date(timestamps + 'Z');\n\n const options: any = {\n hour12: true,\n hour: 'numeric',\n minute: 'numeric',\n timeZone: timezone,\n };\n return date.toLocaleString('en-US', options);\n};\n","\n\nexport const prod_environment = {\n USERS_API: 'https://es-user.social27.com/api',\n BASE_URL: 'https://agent-api.hivegpt.ai',\n AGENTS_API: 'https://hive-ai.social27.com/api',\n API_KEY: '82595783-dc9c-4513-8204-709818d51be3',\n SocketUrl: 'https://notif-v2-ws.social27.com/'\n}\n\n\nexport const dev_environment = {\n USERS_API: 'https://pre-user.social27.com/api',\n BASE_URL: 'https://pre-agent-api.hivegpt.ai',\n AGENTS_API: 'https://hive-pre-ai.social27.com/api',\n API_KEY: '66d59244c50b8fb597a101t1',\n SocketUrl: 'https://notif-ws-staging.social27.com/',\n};\n\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConversationService {\n private conversationStorageKeyPrefix = 'conversationKey_';\n private sessionStorageKeyPrefix = 'sessionKey_';\n\n private userSpecificNotification: Subject<any> = new Subject<any>();\n\n constructor() { }\n\n 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\n getKey(botId: string, resetKey: boolean = false): string {\n const storageKey = `${this.conversationStorageKeyPrefix}${botId}`;\n let value = localStorage.getItem(storageKey);\n\n if (!value || resetKey) {\n value = this.generateKey();\n localStorage.setItem(storageKey, value);\n }\n\n return value;\n }\n\n getSessionKey(sessionId: string, resetKey: boolean = false): string {\n const storageKey = `${this.sessionStorageKeyPrefix}${sessionId}`;\n let value = localStorage.getItem(storageKey);\n\n if (!value || resetKey) {\n value = this.generateKey();\n localStorage.setItem(storageKey, value);\n }\n\n return value;\n }\n\n sendValidatedUserData(message: any) {\n this.userSpecificNotification.next(message);\n }\n\n getUserSpecificNotification(): Observable<any> {\n return this.userSpecificNotification.asObservable();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Socket, SocketIoConfig } from 'ngx-socket-io';\nimport { prod_environment } from '../../environments/environment';\n\n@Injectable({\n providedIn: 'root' // This ensures the service is available across the application\n})\nexport class NotificationSocket extends Socket {\n constructor() {\n super(socketConfig);\n\n // Log connection status\n this.on('connect', () => {\n console.log('Socket connected');\n });\n\n this.on('disconnect', () => {\n console.warn('Socket disconnected');\n });\n\n this.on('connect_error', (err) => {\n console.error('Socket connection error:', err);\n });\n }\n}\n\nconst socketConfig: SocketIoConfig = {\n url: prod_environment.SocketUrl,\n options: {\n transports: ['websocket', 'polling'],\n reconnection: true,\n autoConnect: true,\n upgrade: true,\n reconnectionDelay: 1000,\n reconnectionDelayMax: 5000,\n reconnectionAttempts: Infinity\n }\n};","import { Injectable } from '@angular/core';\n\nimport { Observable, Subject } from 'rxjs';\nimport { webSocket, WebSocketSubject } from 'rxjs/webSocket';\nimport { ConversationService } from './conversation.service';\nimport { NotificationSocket } from './NotificationSocket';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SocketService {\n public testMessage: string;\n private isCommonSocketInitialized = false;\n private isUserSpecificSocketInitialized = false;\n private isUserSpecificEventReleased = true;\n private messageQueue: any[] = [];\n private releaseInterval = 1000;\n private intervalSetup: boolean = false;\n\n constructor(\n private conversationService: ConversationService,\n private notificationSocket: NotificationSocket\n ) {\n this.startReleasingMessages();\n }\n\n isSocketInitialized(isCommon: boolean) {\n return isCommon\n ? this.isCommonSocketInitialized\n : this.isUserSpecificSocketInitialized &&\n !this.isUserSpecificEventReleased;\n }\n\n disconnectSocketConnection() {\n this.notificationSocket.disconnect();\n }\n connectSocketConnection() {\n this.notificationSocket.connect();\n }\n registerUserSpecificHiveSocket(botId: string, conversation_id: string, org_id: string) {\n const commonNotification = 'commonNotification';\n const groupId = `Hive_AI_Notifs_${botId}_${conversation_id}`;\n const groupId_org = `Hive_AI_Notifs_${org_id}`;\n\n // Remove any pre-existing listeners for commonNotification\n // this.notificationSocket.removeAllListeners(commonNotification);\n\n // Join the group again with updated botId and conversation_id\n this.notificationSocket.emit('joinData', { groupId });\n this.notificationSocket.emit('joinData', { groupId: groupId_org });\n\n // Re-register for common notifications\n this.notificationSocket.fromEvent(commonNotification).subscribe(\n (res) => {\n console.log('Received commonNotification:', res);\n this.conversationService.sendValidatedUserData(res);\n },\n (error) => {\n console.error('Error receiving commonNotification:', error);\n }\n );\n }\n\n private startReleasingMessages() {\n if (!this.intervalSetup) {\n setInterval(() => {\n if (this.messageQueue.length > 0) {\n const message = this.messageQueue.shift(); // Remove the first message from the queue\n // Handle the message here, e.g., send it to the server or process it\n console.log('Releasing message from queue:', message);\n // this.campaignService.sendValidatedUserData(message);\n }\n }, this.releaseInterval);\n this.intervalSetup = true; // Prevents multiple intervals\n }\n }\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { catchError, map } from 'rxjs/operators';\n\nimport { HttpHeaders } from '@angular/common/http';\nimport { Observable, Subject, throwError } from 'rxjs';\nimport { AnyRecord } from 'dns';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BotsService {\n eventDescription = new Subject();\n bot_api = 'https://agent-api.hivegpt.ai/';\n constructor(private http: HttpClient) { }\n\n fetchSpeechAuthorizationToken(botId, apiKey, domain) {\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n 'x-api-key': apiKey,\n 'hive-bot-id': botId,\n 'domain-authority': domain\n });\n\n const apiUrl = `${this.bot_api}speech/issue_token`;\n const url = `${apiUrl}`;\n return this.http.get(url, { headers }).pipe(\n map((resp: any) => {\n return resp.token;\n })\n );\n }\n\n getWorkflowsByOrgId(orgId: string): Observable<any> {\n const apiUrl = `${this.bot_api}workflows`;\n const url = `${apiUrl}?org_id=${orgId}`;\n return this.http.get(url).pipe(\n map((resp: any) => {\n return resp;\n })\n );\n }\n\n getWorkflowExecutionById(executionId: string): Observable<any> {\n const apiUrl = `${this.bot_api}workflows/execution/${executionId}`;\n return this.http.get(apiUrl).pipe(\n map((resp: any) => {\n return resp;\n })\n );\n }\n}","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AudioAnalyzerService {\n private audioContext: AudioContext | null = null;\n private analyserNode: AnalyserNode | null = null;\n private dataArray: Uint8Array | null = null;\n private animationFrameId: number | null = null;\n private isRunning = false;\n\n private audioLevelsSubject = new BehaviorSubject<number[]>([]);\n private isUserSpeakingSubject = new BehaviorSubject<boolean>(false);\n\n // Adaptive noise floor detection\n private noiseFloor = 0;\n private noiseFloorSamples: number[] = [];\n private readonly NOISE_FLOOR_SAMPLE_COUNT = 30;\n private readonly SPEAKING_THRESHOLD_MULTIPLIER = 2.5;\n private readonly WAVEFORM_BAR_COUNT = 40;\n\n audioLevels$: Observable<number[]> = this.audioLevelsSubject.asObservable();\n isUserSpeaking$: Observable<boolean> = this.isUserSpeakingSubject.asObservable();\n\n start(stream: MediaStream): void {\n if (this.isRunning) {\n this.stop();\n }\n\n try {\n this.audioContext = new (window.AudioContext || (window as any).webkitAudioContext)();\n const source = this.audioContext.createMediaStreamSource(stream);\n \n this.analyserNode = this.audioContext.createAnalyser();\n this.analyserNode.fftSize = 2048;\n this.analyserNode.smoothingTimeConstant = 0.8;\n \n const bufferLength = this.analyserNode.frequencyBinCount;\n this.dataArray = new Uint8Array(bufferLength);\n \n source.connect(this.analyserNode);\n \n this.isRunning = true;\n this.noiseFloorSamples = [];\n this.noiseFloor = 0;\n \n this.analyze();\n } catch (error) {\n console.error('Error starting audio analyzer:', error);\n this.stop();\n }\n }\n\n stop(): void {\n this.isRunning = false;\n \n if (this.animationFrameId !== null) {\n cancelAnimationFrame(this.animationFrameId);\n this.animationFrameId = null;\n }\n\n if (this.analyserNode) {\n this.analyserNode.disconnect();\n this.analyserNode = null;\n }\n\n if (this.audioContext && this.audioContext.state !== 'closed') {\n this.audioContext.close().catch(console.error);\n this.audioContext = null;\n }\n\n this.dataArray = null;\n this.audioLevelsSubject.next([]);\n this.isUserSpeakingSubject.next(false);\n }\n\n private analyze(): void {\n if (!this.isRunning || !this.analyserNode || !this.dataArray) {\n return;\n }\n\n this.analyserNode.getByteTimeDomainData(this.dataArray);\n \n // Calculate RMS (Root Mean Square) volume\n const rms = this.calculateRMS(this.dataArray);\n \n // Learn noise floor during initial samples\n if (this.noiseFloorSamples.length < this.NOISE_FLOOR_SAMPLE_COUNT) {\n this.noiseFloorSamples.push(rms);\n if (this.noiseFloorSamples.length === this.NOISE_FLOOR_SAMPLE_COUNT) {\n // Calculate average noise floor\n const sum = this.noiseFloorSamples.reduce((a, b) => a + b, 0);\n this.noiseFloor = sum / this.NOISE_FLOOR_SAMPLE_COUNT;\n }\n } else {\n // Update noise floor adaptively (moving average)\n this.noiseFloor = this.noiseFloor * 0.99 + rms * 0.01;\n }\n\n // Detect if user is speaking\n const threshold = this.noiseFloor * this.SPEAKING_THRESHOLD_MULTIPLIER;\n const isSpeaking = rms > threshold;\n this.isUserSpeakingSubject.next(isSpeaking);\n\n // Generate waveform bars\n const bars = this.generateWaveformBars(this.dataArray);\n this.audioLevelsSubject.next(bars);\n\n this.animationFrameId = requestAnimationFrame(() => this.analyze());\n }\n\n private calculateRMS(data: Uint8Array): number {\n let sum = 0;\n for (let i = 0; i < data.length; i++) {\n const normalized = (data[i] - 128) / 128;\n sum += normalized * normalized;\n }\n return Math.sqrt(sum / data.length);\n }\n\n private generateWaveformBars(data: Uint8Array): number[] {\n const bars: number[] = [];\n const step = Math.floor(data.length / this.WAVEFORM_BAR_COUNT);\n \n for (let i = 0; i < this.WAVEFORM_BAR_COUNT; i++) {\n const index = i * step;\n const value = data[index];\n // Normalize to 0-100\n const normalized = Math.abs((value - 128) / 128) * 100;\n bars.push(Math.min(100, Math.max(0, normalized)));\n }\n \n return bars;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport {\n PipecatClient,\n RTVIEvent,\n APIRequest,\n} from '@pipecat-ai/client-js';\nimport { WebSocketTransport } from '@pipecat-ai/websocket-transport';\nimport { AudioAnalyzerService } from './audio-analyzer.service';\n\nexport type CallState = 'idle' | 'connecting' | 'connected' | 'talking' | 'listening' | 'ended';\n\nexport interface TranscriptData {\n text: string;\n final: boolean;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class VoiceAgentService {\n private client: PipecatClient | null = null;\n private transport: InstanceType<typeof WebSocketTransport> | null = null;\n private userMediaStream: MediaStream | null = null;\n private botAudioElement: HTMLAudioElement | null = null;\n\n private callStateSubject = new BehaviorSubject<CallState>('idle');\n private statusTextSubject = new BehaviorSubject<string>('');\n private durationSubject = new BehaviorSubject<string>('00:00');\n private isMicMutedSubject = new BehaviorSubject<boolean>(false);\n private isUserSpeakingSubject = new BehaviorSubject<boolean>(false);\n private audioLevelsSubject = new BehaviorSubject<number[]>([]);\n private userTranscriptSubject = new Subject<TranscriptData>();\n private botTranscriptSubject = new Subject<string>();\n\n private callStartTime: number = 0;\n private durationInterval: ReturnType<typeof setInterval> | null = null;\n\n callState$: Observable<CallState> = this.callStateSubject.asObservable();\n statusText$: Observable<string> = this.statusTextSubject.asObservable();\n duration$: Observable<string> = this.durationSubject.asObservable();\n isMicMuted$: Observable<boolean> = this.isMicMutedSubject.asObservable();\n isUserSpeaking$: Observable<boolean> = this.isUserSpeakingSubject.asObservable();\n audioLevels$: Observable<number[]> = this.audioLevelsSubject.asObservable();\n userTranscript$: Observable<TranscriptData> = this.userTranscriptSubject.asObservable();\n botTranscript$: Observable<string> = this.botTranscriptSubject.asObservable();\n\n /** Reset to idle state (e.g. when modal opens so user can click Start Call). */\n resetToIdle(): void {\n if (this.callStateSubject.value === 'idle') return;\n if (this.durationInterval) {\n clearInterval(this.durationInterval);\n this.durationInterval = null;\n }\n this.audioAnalyzer.stop();\n this.client = null;\n this.transport = null;\n if (this.userMediaStream) {\n this.userMediaStream.getTracks().forEach(track => track.stop());\n this.userMediaStream = null;\n }\n if (this.botAudioElement) {\n this.botAudioElement.pause();\n this.botAudioElement.srcObject = null;\n this.botAudioElement = null;\n }\n this.callStateSubject.next('idle');\n this.statusTextSubject.next('');\n this.durationSubject.next('00:00');\n }\n\n constructor(private audioAnalyzer: AudioAnalyzerService) {\n this.audioAnalyzer.audioLevels$.subscribe(levels => {\n this.audioLevelsSubject.next(levels);\n });\n\n this.audioAnalyzer.isUserSpeaking$.subscribe(isSpeaking => {\n this.isUserSpeakingSubject.next(isSpeaking);\n if (isSpeaking && this.callStateSubject.value === 'connected') {\n this.callStateSubject.next('listening');\n } else if (!isSpeaking && this.callStateSubject.value === 'listening') {\n this.callStateSubject.next('connected');\n }\n });\n }\n\n async connect(\n apiUrl: string,\n token: string,\n botId: string,\n conversationId: string,\n apiKey: string,\n eventToken: string,\n eventUrl: string,\n domainAuthority: string\n ): Promise<void> {\n if (this.callStateSubject.value !== 'idle') {\n console.warn('Call already in progress');\n return;\n }\n\n try {\n this.callStateSubject.next('connecting');\n this.statusTextSubject.next('Connecting...');\n\n const baseUrl = apiUrl.replace(/\\/$/, '');\n const connectUrl = `${baseUrl}/ai/ask-voice`;\n\n const headers = new Headers();\n headers.set('Authorization', `Bearer ${token}`);\n // Do not set Content-Type here — the Pipecat client already sets \"application/json\" once; adding it again produces \"application/json, application/json\"\n headers.set('domain-authority', domainAuthority);\n headers.set('eventtoken', eventToken);\n headers.set('eventurl', eventUrl);\n headers.set('hive-bot-id', botId);\n headers.set('x-api-key', apiKey);\n\n const startBotParams: APIRequest = {\n endpoint: connectUrl,\n headers,\n requestData: {\n bot_id: botId,\n conversation_id: conversationId,\n voice: 'alloy',\n },\n };\n\n this.transport = new WebSocketTransport();\n this.client = new PipecatClient({\n transport: this.transport,\n enableMic: true,\n enableCam: false,\n });\n\n this.setupEventHandlers();\n\n this.botAudioElement = new Audio();\n this.botAudioElement.autoplay = true;\n\n await this.client.startBotAndConnect(startBotParams);\n\n const tracks = this.client.tracks();\n if (tracks?.local?.audio) {\n this.userMediaStream = new MediaStream([tracks.local.audio]);\n this.audioAnalyzer.start(this.userMediaStream);\n }\n\n this.isMicMutedSubject.next(!this.client.isMicEnabled);\n this.callStateSubject.next('connected');\n this.statusTextSubject.next('Connected');\n this.callStartTime = Date.now();\n this.startDurationTimer();\n } catch (error) {\n console.error('Error connecting voice agent:', error);\n this.callStateSubject.next('ended');\n await this.disconnect();\n this.statusTextSubject.next('Connection failed');\n throw error;\n }\n }\n\n async disconnect(): Promise<void> {\n try {\n if (this.durationInterval) {\n clearInterval(this.durationInterval);\n this.durationInterval = null;\n }\n\n this.audioAnalyzer.stop();\n\n if (this.client) {\n await this.client.disconnect();\n this.client = null;\n }\n\n this.transport = null;\n\n if (this.userMediaStream) {\n this.userMediaStream.getTracks().forEach(track => track.stop());\n this.userMediaStream = null;\n }\n\n if (this.botAudioElement) {\n this.botAudioElement.pause();\n this.botAudioElement.srcObject = null;\n this.botAudioElement = null;\n }\n\n this.callStateSubject.next('ended');\n this.statusTextSubject.next('Call ended');\n this.durationSubject.next('00:00');\n } catch (error) {\n console.error('Error disconnecting voice agent:', error);\n }\n }\n\n toggleMic(): void {\n if (!this.client) return;\n const newState = !this.client.isMicEnabled;\n this.client.enableMic(newState);\n this.isMicMutedSubject.next(!newState);\n }\n\n private setupEventHandlers(): void {\n if (!this.client) return;\n\n this.client.on(RTVIEvent.BotStartedSpeaking, () => {\n this.callStateSubject.next('talking');\n });\n\n this.client.on(RTVIEvent.BotStoppedSpeaking, () => {\n if (this.callStateSubject.value === 'talking') {\n this.callStateSubject.next('connected');\n }\n });\n\n this.client.on(RTVIEvent.TrackStarted, (track: MediaStreamTrack, participant?: { local?: boolean }) => {\n if (this.botAudioElement && participant && !participant.local && track.kind === 'audio') {\n const stream = new MediaStream([track]);\n this.botAudioElement.srcObject = stream;\n this.botAudioElement.play().catch(console.error);\n }\n });\n\n this.client.on(RTVIEvent.UserTranscript, (data: { text: string; final?: boolean }) => {\n this.userTranscriptSubject.next({\n text: data.text,\n final: data.final ?? false,\n });\n });\n\n this.client.on(RTVIEvent.BotTranscript, (data: { text?: string }) => {\n if (data?.text) {\n this.botTranscriptSubject.next(data.text);\n }\n });\n\n this.client.on(RTVIEvent.Error, () => {\n this.statusTextSubject.next('Error occurred');\n });\n\n this.client.on(RTVIEvent.Disconnected, () => {\n this.callStateSubject.next('ended');\n this.statusTextSubject.next('Disconnected');\n this.disconnect();\n });\n }\n\n private startDurationTimer(): void {\n this.durationInterval = setInterval(() => {\n if (this.callStartTime > 0) {\n const elapsed = Math.floor((Date.now() - this.callStartTime) / 1000);\n const minutes = Math.floor(elapsed / 60);\n const seconds = elapsed % 60;\n this.durationSubject.next(\n `${String(minutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}`\n );\n }\n }, 1000);\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface VoiceModalConfig {\n apiUrl: string;\n token: string;\n botId: string;\n conversationId: string;\n apiKey: string;\n eventToken: string;\n eventUrl: string;\n domainAuthority: string;\n agentName: string;\n agentRole: string;\n agentAvatar?: string;\n}\n\nexport const VOICE_MODAL_CONFIG = new InjectionToken<VoiceModalConfig>('VOICE_MODAL_CONFIG');\nexport const VOICE_MODAL_CLOSE_CALLBACK = new InjectionToken<() => void>('VOICE_MODAL_CLOSE_CALLBACK');\n","import { Component, Input, OnInit, OnDestroy, Output, EventEmitter, Injector } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { VoiceAgentService, CallState } from '../../services/voice-agent.service';\nimport { AudioAnalyzerService } from '../../services/audio-analyzer.service';\nimport { VOICE_MODAL_CONFIG, VOICE_MODAL_CLOSE_CALLBACK, VoiceModalConfig } from '../../voice-modal-tokens';\n\n@Component({\n selector: 'hivegpt-voice-agent-modal',\n templateUrl: './voice-agent-modal.component.html',\n styleUrls: ['./voice-agent-modal.component.scss']\n})\nexport class VoiceAgentModalComponent implements OnInit, OnDestroy {\n @Output() close = new EventEmitter<void>();\n @Input() apiUrl!: string;\n @Input() token!: string;\n @Input() botId!: string;\n @Input() conversationId!: string;\n @Input() apiKey: string = '';\n @Input() eventToken: string = '';\n @Input() eventUrl: string = '';\n @Input() domainAuthority: string = 'prod-lite';\n @Input() agentName: string = 'AI Assistant';\n @Input() agentRole: string = 'AI Agent Specialist';\n @Input() agentAvatar?: string;\n\n private injectedConfig: VoiceModalConfig | null = null;\n private onCloseCallback: (() => void) | null = null;\n\n constructor(\n public voiceAgentService: VoiceAgentService,\n public audioAnalyzer: AudioAnalyzerService,\n private injector: Injector\n ) {}\n\n /** Hardcoded voice agent avatar (Nia). */\n readonly displayAvatarUrl = 'https://www.jotform.com/uploads/mehmetkarakasli/form_files/1564593667676a8e85f23758.86945537_icon.png';\n\n callState: CallState = 'idle';\n statusText: string = '';\n duration: string = '00:00';\n isMicMuted: boolean = false;\n isUserSpeaking: boolean = false;\n audioLevels: number[] = [];\n isSpeaking: boolean = false;\n\n private subscriptions: Subscription[] = [];\n\n ngOnInit(): void {\n // When opened via Overlay, config is provided by injection\n this.injectedConfig = this.injector.get(VOICE_MODAL_CONFIG, null);\n this.onCloseCallback = this.injector.get(VOICE_MODAL_CLOSE_CALLBACK, null);\n if (this.injectedConfig) {\n this.apiUrl = this.injectedConfig.apiUrl;\n this.token = this.injectedConfig.token;\n this.botId = this.injectedConfig.botId;\n this.conversationId = this.injectedConfig.conversationId;\n this.apiKey = this.injectedConfig.apiKey ?? '';\n this.eventToken = this.injectedConfig.eventToken ?? '';\n this.eventUrl = this.injectedConfig.eventUrl ?? '';\n this.domainAuthority = this.injectedConfig.domainAuthority ?? 'prod-lite';\n this.agentName = this.injectedConfig.agentName ?? this.agentName;\n this.agentRole = this.injectedConfig.agentRole ?? this.agentRole;\n this.agentAvatar = this.injectedConfig.agentAvatar;\n }\n\n // Subscribe to observables\n this.subscriptions.push(\n this.voiceAgentService.callState$.subscribe(state => {\n this.callState = state;\n this.isSpeaking = state === 'talking';\n })\n );\n\n this.subscriptions.push(\n this.voiceAgentService.statusText$.subscribe(text => {\n this.statusText = text;\n })\n );\n\n this.subscriptions.push(\n this.voiceAgentService.duration$.subscribe(duration => {\n this.duration = duration;\n })\n );\n\n this.subscriptions.push(\n this.voiceAgentService.isMicMuted$.subscribe(muted => {\n this.isMicMuted = muted;\n })\n );\n\n this.subscriptions.push(\n this.voiceAgentService.isUserSpeaking$.subscribe(speaking => {\n this.isUserSpeaking = speaking;\n })\n );\n\n this.subscriptions.push(\n this.voiceAgentService.audioLevels$.subscribe(levels => {\n this.audioLevels = levels;\n })\n );\n\n // Modal opens in idle state; user clicks \"Start Call\" to connect (no auto-connect).\n this.voiceAgentService.resetToIdle();\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach(sub => sub.unsubscribe());\n this.disconnect();\n }\n\n isConnecting: boolean = false;\n\n async startCall(): Promise<void> {\n if (this.isConnecting || (this.callState !== 'idle' && this.callState !== 'ended')) return;\n this.isConnecting = true;\n try {\n await this.voiceAgentService.connect(\n this.apiUrl,\n this.token,\n this.botId,\n this.conversationId,\n this.apiKey,\n this.eventToken,\n this.eventUrl,\n this.domainAuthority\n );\n } catch (error) {\n console.error('Failed to connect voice agent:', error);\n } finally {\n this.isConnecting = false;\n }\n }\n\n async disconnect(): Promise<void> {\n await this.voiceAgentService.disconnect();\n }\n\n toggleMic(): void {\n this.voiceAgentService.toggleMic();\n }\n\n /** Map audio level (0–100) to waveform bar height in px (3–20). */\n getWaveformHeight(level: number): number {\n const n = Math.min(100, Math.max(0, level ?? 0));\n return 3 + (n / 100) * 17;\n }\n\n endCall(): void {\n this.disconnect();\n this.onCloseCallback?.();\n this.close.emit();\n }\n}\n","// import { Platform } from '@angular/cdk/platform';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { TranslationService } from '../translations/translation.service';\n\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Injector,\n Input,\n OnChanges,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n SimpleChanges,\n ViewChild,\n ViewChildren,\n ViewContainerRef,\n} from '@angular/core';\nimport { MatDrawer } from '@angular/material/sidenav';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { of, Subscription } from 'rxjs';\nimport { catchError, switchMap } from 'rxjs/operators';\nimport { formatNow, formatTimeStamps } from '../../utils/utils';\nimport {\n dev_environment,\n prod_environment,\n} from '../../../environments/environment';\nimport { ConversationService } from '../conversation.service';\nimport { Observable } from 'rxjs';\nimport { SocketService } from '../socket-service.service';\n\nimport { FormBuilder, Validators } from '@angular/forms';\nimport * as SpeechSDK from 'microsoft-cognitiveservices-speech-sdk';\nimport { BotsService } from '../bot.service';\nimport * as marked from 'marked'; // Import marked\nimport { VoiceAgentService } from '../voice-agent/services/voice-agent.service';\nimport { VoiceAgentModalComponent } from '../voice-agent/components/voice-agent-modal/voice-agent-modal.component';\nimport {\n VOICE_MODAL_CONFIG,\n VOICE_MODAL_CLOSE_CALLBACK,\n VoiceModalConfig,\n} from '../voice-agent/voice-modal-tokens';\n\n@Component({\n selector: 'hivegpt-chat-drawer-package',\n templateUrl: './chat-drawer.component.html',\n styleUrls: ['./chat-drawer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ChatDrawerComponent implements OnInit, OnChanges {\n @ViewChild('chatMain') private chatMain: ElementRef;\n @ViewChild('myInput', { static: false })\n myInput!: ElementRef<HTMLTextAreaElement>; // Reference to the textarea\n @ViewChildren('closeplaygroundbutton')\n closePlaygroundButtons: QueryList<ElementRef>;\n @ViewChild('drawer') drawer!: MatDrawer;\n @ViewChild('sourcesDrawer') sourcesDrawer!: MatDrawer;\n @ViewChild('editorsDrawer') editorsDrawer!: MatDrawer;\n private bodyOverflowClass = 'body-overflow-hidden';\n isCollapsedTrue = false;\n @Input() copilotName: string = 'HiveXGPT';\n @Input() firstName!: string;\n @Input() lastName!: string;\n @Input() apiKey!: string;\n @Input() bgBubbleAi!: string;\n @Input() bgBubbleUser!: string;\n @Input() bgGradient!: string[];\n @Input() botName!: string;\n @Input() botSkills!: string;\n @Input() botId!: string;\n @Input() orgId!: string;\n @Input() closeButtonColor!: string;\n @Input() closeButtonbgColor!: string;\n @Input() credentials!: [];\n @Input() dateTimeColor!: string;\n @Input() dateTextColor!: string;\n @Input() eventId!: string;\n @Input() eventUrl!: string;\n @Input() eventToken!: string;\n @Input() workspaceToken!: string;\n @Input() s27Token!: string;\n @Input() eventName!: string;\n @Input() botIcon!: string;\n @Input() formFieldBgColor!: string;\n @Input() formFieldTextColor!: string;\n @Input() fullView!: boolean;\n @Input() gradientColors!: string[];\n @Input() greeting!: string;\n @Input() messageTextColorAi!: string;\n @Input() messageTextColorUser!: string;\n @Input() rules!: string;\n @Input() sendButtonColor!: string;\n @Input() sendButtonTextColor!: string;\n @Input() showClose!: boolean;\n @Input() thumbsDownMessages!: string[];\n @Input() thumbsUpMessage!: string;\n @Input() timezone!: string;\n @Input() unknownResponses!: [];\n @Input() useOpenAi!: boolean;\n @Input() userId!: string;\n @Input() isDev!: boolean;\n\n @Input() againButtonColor!: string[];\n @Input() againButtonTextColor!: string[];\n @Output() feedbackEvent = new EventEmitter<string>();\n @Output() onCloseEvent = new EventEmitter<void>();\n @Output() openPage = new EventEmitter<any>();\n @Output() sessionActions = new EventEmitter<any>();\n @Output() closeBot = new EventEmitter<any>();\n @Output() connectWithUser = new EventEmitter<any>();\n @Output() scheduleMeeting = new EventEmitter<string>();\n @Output() refreshToken = new EventEmitter<any>();\n @Output() openSupport = new EventEmitter<any>();\n\n autogenKey = 'Autogen_eDJTtEU-NB0RtIpzq1w';\n addToMyAgendaAction = 'add_to_my_agenda';\n myUpcomingSessionAction = 'my_upcomming_session';\n connectOrFollowAction = 'connect_or_follow';\n aiResponse: string = '';\n chatLog: any[] = [];\n decoder = new TextDecoder();\n feedbackDone: boolean = false;\n greetingMsg: string = '';\n hasBackdropValue: boolean = false;\n input: string = '';\n listenerAdded = false;\n loading: boolean = false;\n mode: string = 'over';\n quickPrompts: any[] = [];\n thumbsDownMsgIndex = 0;\n userName: string = '';\n showStartAgain: boolean = false;\n isIOSDevice: boolean = false;\n showFeedBackIconsIndex: number | null = null;\n temperature: number = 1;\n speakers = [];\n environment: {\n USERS_API;\n BASE_URL;\n AGENTS_API;\n };\n pendingRequests: any;\n myConnections: any;\n conversationKey: string;\n conSessionKey: string = '';\n isFetchDataFor: boolean;\n is401: boolean;\n msg: any;\n chat: any;\n isWorkflowOpen: boolean;\n orgWorkflows: any;\n openWorkflowInput: boolean;\n selectedWorkflow: any;\n workflowForm: any;\n currentWorkflowActionProgress: number = 0;\n currentWorkflowAction: string = '';\n executingWorkflow: boolean;\n workflowExecutionDetails: any;\n showWorkflowExecutionDetails: any;\n currentWorkflowExecutionDetails: any;\n\n speechConfig: SpeechSDK.SpeechConfig;\n recognizer: SpeechSDK.SpeechRecognizer;\n recognizedText: string = '';\n authorizationToken: string = '';\n region: string = 'westeurope'; // Set your Azure region here\n isRecording: boolean;\n isVoiceModalOpen: boolean = false;\n private voiceModalOverlayRef: OverlayRef | null = null;\n private voiceTranscriptSubscriptions: Subscription[] = [];\n\n constructor(\n private fb: FormBuilder,\n private botService: BotsService,\n private cdr: ChangeDetectorRef,\n private http: HttpClient,\n private sanitizer: DomSanitizer,\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private socketService: SocketService,\n private conversationService: ConversationService, // private platform: Platform\n private translationService: TranslationService,\n private voiceAgentService: VoiceAgentService,\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef,\n private injector: Injector\n ) {\n this.chatMain = new ElementRef(null);\n\n // if (this.platform.IOS) {\n // this.isIOSDevice = true;\n // }\n }\n getTranslation(key: string) {\n return this.translationService.getTranslation(key);\n }\n ngOnChanges(changes: SimpleChanges): void {\n // Handle eventId changes to update translation service\n if (changes.eventId && changes.eventId.currentValue) {\n this.translationService.setEventId(changes.eventId.currentValue);\n }\n\n if (changes.s27Token) {\n if (changes.s27Token.currentValue != changes.s27Token.previousValue) {\n this.s27Token = changes.s27Token.currentValue;\n\n console.log('isFetchDataFor: ', this.isFetchDataFor);\n console.log('msg: ', this.msg);\n console.log('chat: ', this.chat);\n if (this.is401) {\n if (this.isFetchDataFor) {\n this.fetchDataFor(this.msg, this.chat);\n } else {\n this.fetchData(this.msg);\n }\n }\n }\n }\n\n if (changes.orgId) {\n if (\n changes.orgId.currentValue != changes.orgId.previousValue &&\n changes.orgId.currentValue\n ) {\n this.initializeSocket();\n }\n }\n }\n\n domainAuthorityValue: any = 'prod-lite';\n\n ngOnInit(): void {\n // Set the eventId in translation service to get the correct language from localStorage\n if (this.eventId) {\n this.translationService.setEventId(this.eventId);\n }\n\n this.environment = this.isDev ? dev_environment : prod_environment;\n\n const domain = window.location.hostname;\n\n // Determine the header value based on the domain\n\n if (domain.includes('pre-app.social27.com')) {\n this.domainAuthorityValue = 'pre-prod-lite';\n } else if (domain.includes('app.social27.com')) {\n this.domainAuthorityValue = 'prod-lite';\n } else if (domain.includes('hivegpt.io')) {\n this.domainAuthorityValue = 'hivegpt';\n }\n\n // this.fetchMyConnections().subscribe();\n // this.fetchPendingRequests().subscribe();\n\n this.changeTemperature(this.temperature);\n this.fetchBotConfig().subscribe(\n (res) => {\n this.cdr.markForCheck();\n\n this.fetchChatHistory().subscribe(\n (response) => {\n this.loading = false;\n this.mapChatHistory(response);\n this.cdr.markForCheck();\n },\n (err) => {\n console.error('Error fetching chat history:', err);\n }\n );\n },\n (err) => {\n console.error('Error fetching chat history:', err);\n }\n );\n // this.fetchAgents();\n // this.fetchEditorContent();\n this.cdr.markForCheck();\n // this.initializeSocket();\n this.botService\n .fetchSpeechAuthorizationToken(\n this.botId,\n this.apiKey,\n this.domainAuthorityValue\n )\n .subscribe((token) => {\n this.authorizationToken = token;\n this.initializeSpeechRecognizer(token);\n });\n }\n\n private eventSubscription: Subscription;\n initializeSocket() {\n try {\n this.socketService.disconnectSocketConnection();\n } catch (error) {}\n setTimeout(() => {\n this.socketService.connectSocketConnection();\n setTimeout(() => {\n console.log('YES INIT');\n const conversation_id = this.conversationService.getKey(this.botId);\n\n this.socketService.registerUserSpecificHiveSocket(\n this.botId,\n conversation_id,\n this.orgId\n );\n setTimeout(() => {\n this.listenSockets();\n }, 300);\n }, 200);\n }, 300);\n }\n\n subscriptionNew: any;\n socketData: any;\n\n listenSockets() {\n if (this.eventSubscription) {\n this.eventSubscription.unsubscribe();\n }\n console.log('Listen Socket');\n this.eventSubscription = this.conversationService\n .getUserSpecificNotification()\n .subscribe(\n (res) => {\n console.log('Listen Socket response');\n console.log(res);\n // Check if OtherFields exists in the response\n if (res?.m?.OtherFields?.workflow_id) {\n const {\n percentage,\n output,\n action_name,\n current_action_name,\n workflow_execution_id,\n time_stamp,\n } = res?.m?.OtherFields;\n\n this.currentWorkflowActionProgress = percentage;\n this.currentWorkflowAction = action_name;\n\n const actionIndex = this.workflowExecutionDetails.Actions.findIndex(\n (a) => a.Name == current_action_name\n );\n\n if (actionIndex !== -1) {\n this.workflowExecutionDetails.Actions[actionIndex]['Output'] =\n output;\n this.workflowExecutionDetails.Actions[actionIndex][\n 'InsertTimeStamp'\n ] = formatTimeStamps(this.timezone, time_stamp);\n } else {\n console.error(`Action with name ${action_name} not found`);\n }\n\n this.currentWorkflowExecutionDetails =\n this.workflowExecutionDetails;\n\n if (this.currentWorkflowActionProgress == 100) {\n this.chatLog[this.chatLog.length - 1]['WorkflowExecutionId'] =\n workflow_execution_id;\n this.isChatingWithAi = false;\n this.executingWorkflow = false;\n this.focusOnTextarea();\n }\n\n this.cdr.detectChanges();\n } else if (res?.m?.OtherFields) {\n const {\n conversation_id,\n bot_id,\n message_id,\n answer,\n web_results,\n search_results,\n graphs,\n execution_graphs,\n suggestions,\n } = res?.m?.OtherFields;\n console.log('message_id1');\n console.log(res?.m?.OtherFields);\n var currentChatMessage = this.chatLog.find(\n (p) => p._id == message_id\n );\n console.log(this.chatLog);\n if (!currentChatMessage) {\n console.log('message_id2');\n console.log(message_id);\n currentChatMessage = {\n _id: message_id,\n type: 'ai',\n time: formatNow(this.timezone),\n };\n\n this.chatLog.push(currentChatMessage);\n\n this.showFeedBackIconsIndex = this.chatLog.length - 1;\n console.log('message_id3');\n console.log(message_id);\n this.cdr.detectChanges();\n }\n\n // Handle the fields based on their presence\n if (search_results && Array.isArray(search_results)) {\n console.log('Online Search Terms:', search_results);\n currentChatMessage.searchTerms = search_results;\n this.cdr.detectChanges();\n }\n\n if (web_results && Array.isArray(web_results)) {\n console.log('Web Results:', web_results);\n currentChatMessage.sourcesList = web_results;\n currentChatMessage.displayedSources = web_results?.slice(0, 3); // First 3 cards\n currentChatMessage.remainingSources = web_results?.slice(3); // Remaining items\n this.cdr.detectChanges();\n }\n\n if (answer) {\n this.isChatingWithAi = false;\n console.log('Answer:', answer);\n\n currentChatMessage.message =\n this.processMessageForDisplay(answer);\n this.cdr.detectChanges();\n this.scrollToBottom();\n this.focusOnTextarea();\n }\n\n if (graphs && Array.isArray(graphs)) {\n console.log('Graphs:', graphs);\n currentChatMessage.graphs = graphs;\n this.cdr.detectChanges();\n }\n\n if (execution_graphs && Array.isArray(execution_graphs)) {\n console.log('Execution Graphs:', execution_graphs);\n currentChatMessage.executionGraphs = execution_graphs;\n this.cdr.detectChanges();\n }\n\n if (suggestions && Array.isArray(suggestions)) {\n console.log('suggestions:', suggestions);\n currentChatMessage.relatedListItems = suggestions;\n this.cdr.detectChanges();\n // Process online search terms as needed\n }\n\n // Add any other fields and their processing here\n } else {\n console.warn('OtherFields is missing in the response');\n }\n },\n (err) => {\n this.eventSubscription.unsubscribe();\n console.error('Error in fetching data from socket', err);\n }\n );\n }\n\n initializeSocketAndListen() {}\n handleEvent(data: any, type: string) {\n switch (type) {\n case 'webresult':\n break;\n case 'answer':\n break;\n case 'graph':\n break;\n default:\n break;\n }\n }\n ngOnDestroy(): void {\n if (this.eventSubscription) {\n this.eventSubscription.unsubscribe();\n }\n this.voiceTranscriptSubscriptions.forEach(sub => sub.unsubscribe());\n this.socketService.disconnectSocketConnection();\n //this.socketService.close();\n }\n changeTemperature(newTemperature: number) {\n if (this.loading) return;\n this.temperature = newTemperature;\n const wrapper = document.querySelector('.hivegpt-chat-wrapper');\n // Remove existing theme classes from body\n wrapper?.classList.remove('creative', 'balanced', 'precise');\n\n switch (newTemperature) {\n case 0:\n wrapper?.classList.add('creative');\n break;\n case 1:\n wrapper?.classList.add('balanced');\n break;\n case 2:\n wrapper?.classList.add('precise');\n break;\n default:\n break;\n }\n }\n\n onStartAgain() {\n if (this.loading) return;\n this.showStartAgain = false;\n this.chatLog = [];\n this.chatLog.push({\n type: 'ai',\n message: this.greetingMsg,\n\n time: formatNow(this.timezone),\n });\n this.archieveMessages().subscribe();\n }\n\n archieveMessages() {\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n 'x-api-key': this.apiKey,\n 'hive-bot-id': this.botId,\n 'domain-authority': this.domainAuthorityValue,\n });\n const url = `${this.environment.BASE_URL}/bot/clear-history/${this.botId}/${this.userId}`;\n return this.http.post(url, { headers }).pipe(\n switchMap((res: any) => {\n return of(res);\n }),\n catchError((error) => {\n return of(null);\n })\n );\n }\n\n triggerSupport() {\n this.openSupport.emit();\n }\n fetchBotConfig() {\n this.loading = true;\n const headers = new HttpHeaders({\n 'x-api-key': this.apiKey,\n 'hive-bot-id': this.botId,\n 'domain-authority': this.domainAuthorityValue,\n });\n const url = `${this.environment.BASE_URL}/bots?bot_id=${this.botId}`;\n return this.http.get(url, { headers }).pipe(\n switchMap((res: any) => {\n this.botName = this.getTranslation(res.Name);\n this.botIcon = res.Icon;\n this.botSkills = res?.Skills;\n this.greetingMsg = res.Greeting;\n\n this.thumbsDownMessages = res?.NegativeResponses?.length\n ? res.NegativeResponses\n : [\n this.getTranslation(\n `We are sorry we've not been able to answer your question`\n ),\n ];\n this.quickPrompts = res.QuickPrompts;\n this.cdr.markForCheck();\n this.loading = false;\n return of(res);\n }),\n catchError((error) => {\n console.error('Error fetching chatbot config: ', error);\n this.loading = false;\n return of(null);\n })\n );\n }\n\n fetchChatHistory(): Observable<any> {\n this.loading = true;\n\n this.conversationKey = this.conversationService.getKey(this.botId, false);\n this.conSessionKey = this.conversationService.getSessionKey(\n this.botId,\n false\n );\n const url = `${this.environment.BASE_URL}/conversations/${this.conversationKey}?session_id=${this.conSessionKey}`;\n const headers = new HttpHeaders({\n accept: 'application/json',\n 'x-api-key': this.apiKey,\n 'hive-bot-id': this.botId,\n 'domain-authority': this.domainAuthorityValue,\n });\n\n return this.http\n .get(url, { headers })\n .pipe(catchError(this.handleError<any>('fetchConversation')));\n }\n\n private handleError<T>(operation = 'operation', result?: T) {\n return (error: any): Observable<T> => {\n console.error(`${operation} failed: ${error.message}`);\n return of(result as T);\n };\n }\n // fetchChatHistory() {\n // this.loading = true;\n // const headers = new HttpHeaders({\n // 'Content-Type': 'application/json',\n // 'x-api-key': this.apiKey,\n // });\n // return this.http\n // .get(`${this.environment.BASE_URL}/conversations/${this.conversationKey}`, { headers })\n // .pipe(\n // switchMap((res: any) => {\n // this.loading = false;\n // return of(res);\n // }),\n // catchError((error: any) => {\n // console.error('Error fetching chat history: ', error);\n // this.loading = false;\n // return of(null);\n // })\n // );\n // }\n\n mapChatHistory(chats: any) {\n this.chatLog.push({\n type: 'ai',\n message: this.greetingMsg,\n time: formatNow(this.timezone),\n });\n if (chats && chats?.Messages?.length) {\n chats?.Messages.forEach((chat: any) => {\n if (chat.Type == 'user') {\n this.chatLog.push({\n type: 'user',\n message: this.processMessageForDisplay(chat.Text),\n time: formatTimeStamps(this.timezone, chat.InsertTimestamp),\n copied: false,\n isCollapsedTrue: false,\n WorkflowExecutionId: chat.WorkflowExecutionId,\n _id: chat._id,\n });\n }\n if (chat.Type == 'ai') {\n var sourcesList = chat.WebLinks || [];\n var displayedSources = chat.WebLinks.slice(0, 3); // First 3 cards\n var remainingSources = chat.WebLinks.slice(3); // Remaining items\n\n this.chatLog.push({\n type: 'ai',\n message: this.processMessageForDisplay(chat.Text),\n executionGraphs: chat.ExecutionGraphs,\n graphs: chat.Graphs,\n searchTerms: chat.SearchTerms,\n sourcesList: sourcesList,\n displayedSources: displayedSources,\n remainingSources: remainingSources,\n time: formatTimeStamps(this.timezone, chat.InsertTimestamp),\n copied: false,\n isCollapsedTrue: false,\n _id: chat._id,\n });\n this.showFeedBackIconsIndex = this.chatLog.length - 1;\n }\n });\n this.showStartAgain = true;\n }\n this.scrollToBottom();\n this.cdr.markForCheck();\n }\n\n processMessage(message: string): SafeHtml {\n if (!message || !(message?.length > 0)) {\n return '';\n }\n\n // console.log('here is my message')\n // console.log(message);\n\n message = message.trim();\n\n const markdownLinkRegex = /\\[([^[]+)]\\(([^)]+)\\)/g;\n const urlRegex = /(?<!href=\")\\bhttps?:\\/\\/\\S+(?<![.,])/gi;\n\n if (markdownLinkRegex.test(message)) {\n const html = message.replace(\n markdownLinkRegex,\n '<a href=\"$2\" target=\"_blank\">$1</a>'\n );\n //console.log('Sanitized message: ', message);\n return this.sanitizeHtml(html);\n }\n\n if (urlRegex.test(message)) {\n const html = message.replace(\n urlRegex,\n '<a href=\"$&\" target=\"_blank\">$&</a>'\n );\n // console.log('Sanitized message: ', message);\n return this.sanitizeHtml(html);\n }\n\n message = message.replace(/(?:\\r\\n|\\r|\\n)/g, '<br>');\n\n message = message.replace(/\\*\\*(.*?)\\*\\*/g, '<strong>$1</strong>');\n // Convert Markdown headers to HTML headers\n message = message.replace(/^(#{1,6})\\s+(.*)$/gm, (match, hashes, text) => {\n const level = hashes.length;\n return `<h${level}>${text}</h${level}>`;\n });\n\n this.cdr.markForCheck();\n const sanitizedMessage = this.sanitizeHtml(message);\n return sanitizedMessage;\n }\n\n ngAfterViewChecked() {\n const feedbackLinks =\n this.elementRef.nativeElement.querySelectorAll('.feedback-link');\n feedbackLinks.forEach((link: any) => {\n link.addEventListener(\n 'click',\n this.onFeedbackClick.bind(this, 'zendesk')\n );\n });\n // if (this.elementRef.nativeElement.querySelector('.feedback-link')) {\n // this.elementRef.nativeElement\n // .querySelector('.feedback-link')\n // .addEventListener('click', this.onFeedbackClick.bind(this, 'zendesk'));\n // }\n }\n\n sanitizeHtml(html: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustHtml(html);\n }\n\n onFeedbackClick(value: string) {\n this.feedbackEvent.emit(value);\n }\n\n onClose() {\n this.renderer.removeClass(document.body, this.bodyOverflowClass);\n this.onCloseEvent.emit();\n }\n\n sendMessageWithTile(prompt: string) {\n this.input = prompt;\n this.fetchData();\n this.scrollToBottom();\n }\n isChatingWithAi = false;\n fetchData(msg = null) {\n this.input = msg || this.input?.trim();\n this.msg = this.input;\n if (!this.input || this.loading) {\n return;\n }\n\n this.chatLog.push({\n type: 'user',\n message: this.processMessageForDisplay(this.input),\n time: formatNow(this.timezone),\n copied: false,\n isCollapsedTrue: false,\n });\n\n try {\n const textarea = this.myInput.nativeElement;\n textarea.style.height = 'hidden'; // Reset the height\n textarea.style.height = `62px`;\n } catch (error) {}\n this.cdr.markForCheck();\n\n this.aiResponse = '';\n this.isChatingWithAi = true;\n\n this.makeAskRequest(this.input, this.agents, this.conversationKey);\n }\n fetchDataFor(msg, chat) {\n const inputMsg = msg?.trim();\n if (!inputMsg || this.loading) {\n return;\n }\n try {\n chat.relatedListItems = [];\n this.cdr.detectChanges();\n } catch (error) {}\n\n this.scrollToBottom();\n this.chatLog.push({\n type: 'user',\n message: this.processMessageForDisplay(inputMsg),\n time: formatNow(this.timezone),\n copied: false,\n isCollapsedTrue: false,\n });\n\n this.cdr.markForCheck();\n\n this.aiResponse = '';\n this.isChatingWithAi = true;\n\n this.makeAskRequest(inputMsg, this.agents, this.conversationKey, msg, chat);\n }\n fetchSmallTalk() {\n this.loading = true;\n this.cdr.markForCheck();\n\n const url = `${this.environment.BASE_URL}/bot/small-talk/${this.botId}/${this.userId}`;\n\n this.http\n .get<{ smallTalk: string }>(url, {\n headers: {\n 'x-api-key': this.apiKey,\n 'hive-bot-id': this.botId,\n 'domain-authority': this.domainAuthorityValue,\n },\n })\n .pipe(\n catchError((error) => {\n console.error('Error while fetching small talk:', error);\n\n return of(null);\n })\n )\n .subscribe((response) => {\n this.loading = false;\n this.cdr.markForCheck();\n\n if (!response) {\n return;\n }\n\n if (response && response.smallTalk) {\n this.chatLog.push({\n type: 'ai',\n message: this.processMessage(response.smallTalk),\n time: formatNow(this.timezone),\n isFeedbackMsg: true,\n });\n this.showFeedBackIconsIndex = this.chatLog.length - 2;\n // this.scrollToBottom();\n this.cdr.markForCheck();\n }\n });\n }\n\n readAllChunks = (stream: any) => {\n const reader = stream.getReader();\n const allSuggestions: string[] = [];\n\n reader.closed.catch((err: any) => {\n if (err) {\n console.error('Error reading stream: ', err);\n }\n\n this.isChatingWithAi = false;\n this.scrollToBottom();\n return;\n });\n\n return new ReadableStream({\n start: (controller) => {\n return this.pump(controller, reader, allSuggestions);\n },\n });\n };\n\n pump(controller: any, reader: any, allSuggestions: string[]) {\n reader.read().then(({ done, value }: any) => {\n const lastItem = this.chatLog[this.chatLog.length - 1];\n\n if (done) {\n lastItem.message = this.processMessageForDisplay(lastItem.message);\n this.chatLog.pop();\n this.chatLog.push(lastItem);\n if (allSuggestions?.length) {\n this.chatLog.push({\n type: 'suggestions',\n suggestions: allSuggestions,\n });\n }\n\n controller.close();\n this.isChatingWithAi = false;\n // this.scrollToBottom();\n this.cdr.markForCheck();\n this.showStartAgain = true;\n\n // setTimeout(() => {\n // this.fetchSmallTalk();\n // },1000)\n return;\n }\n\n let decodedChunk = this.decoder.decode(value, { stream: true });\n this.aiResponse += decodedChunk;\n if (lastItem.type === 'ai') {\n const suggestionsMatch = this.aiResponse.match(/<sug>(.*?)<\\/sug>/g);\n if (suggestionsMatch) {\n suggestionsMatch.forEach((match) => {\n this.aiResponse = this.aiResponse.replace(match, '');\n allSuggestions.push(match?.replace(/<\\/?sug>/g, ''));\n });\n }\n\n lastItem.message = this.aiResponse;\n this.cdr.markForCheck();\n } else {\n this.isChatingWithAi = false;\n\n let aiFormattedData: any;\n\n try {\n console.log('parsing json ');\n aiFormattedData = JSON.parse(JSON.parse(this.aiResponse));\n } catch (e) {\n try {\n console.log('parsing json 2');\n aiFormattedData = JSON.parse(this.aiResponse);\n } catch (e) {}\n }\n\n console.log('parsing json done');\n\n if (aiFormattedData && aiFormattedData?.section_id?.length > 0) {\n if (\n aiFormattedData.section_id == 'company_search' ||\n aiFormattedData.section_id == 'user_search' ||\n aiFormattedData.section_id == 'industry_company_search'\n ) {\n this.fetchMyConnections().subscribe();\n this.fetchPendingRequests().subscribe();\n }\n\n if (aiFormattedData.section_id == this.myUpcomingSessionAction) {\n var speakerIds = [];\n aiFormattedData.content?.forEach((session) => {\n speakerIds = [...speakerIds, ...session.speakers];\n });\n\n if (speakerIds?.length > 0) this.getSpeakersByStaffIds(speakerIds);\n }\n\n if (\n aiFormattedData.section_id == this.addToMyAgendaAction &&\n aiFormattedData.content?.length > 0\n ) {\n this.openPage.next({\n sectionId: aiFormattedData.section_id,\n sessionIds: aiFormattedData.content,\n });\n }\n\n if (aiFormattedData.section_id == this.connectOrFollowAction) {\n let usersLen = aiFormattedData.content?.length;\n if (usersLen > 1) {\n this.openPage.next({\n sectionId: 'open_networking_drawer',\n search: aiFormattedData.content,\n });\n } else if (usersLen == 1) {\n this.openPage.next({\n sectionId: aiFormattedData.section_id,\n connetUserIds: [aiFormattedData.content[0].userId],\n });\n }\n }\n\n if (aiFormattedData.is_open_page == 'true') {\n this.openPage.next({\n sectionId: aiFormattedData.section_id,\n search: aiFormattedData.content,\n });\n\n if (this.isMobileBrowser()) {\n aiFormattedData.message +=\n '\\n\\n' + '<a id=\"closeBotNow\">Click Here</a> to see results.';\n }\n }\n\n this.chatLog.push({\n type: 'ai',\n message: aiFormattedData.message,\n action: aiFormattedData,\n time: formatNow(this.timezone),\n });\n\n if (this.isMobileBrowser()) {\n setTimeout(() => {\n this.addCloseBotClickEvent();\n }, 500);\n }\n\n this.aiResponse = '';\n } else {\n this.chatLog.push({\n type: 'ai',\n message: this.aiResponse,\n time: formatNow(this.timezone),\n });\n }\n\n this.showFeedBackIconsIndex = this.chatLog.length - 1;\n this.cdr.markForCheck();\n }\n\n this.scrollToBottom();\n\n // Enqueue the next data chunk into our target stream\n controller.enqueue(value);\n this.pump(controller, reader, allSuggestions);\n });\n }\n\n submitFeedback(flag: boolean, message) {\n console.log(message);\n\n this.feedbackDone = true;\n this.showFeedBackIconsIndex = null;\n const conversation_id = this.conversationService.getKey(this.botId);\n const url = `${this.environment.AGENTS_API}/Conversation/coPilot/${this.botId}/conversation/${conversation_id}/helpful-response`;\n fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n apiKey: 'Conversation_WIz/qAm+EEmfOkFaUA/weA==',\n 'hive-bot-id': this.botId,\n 'domain-authority': this.domainAuthorityValue,\n },\n body: JSON.stringify({ messageId: message._id, isHelpful: flag }),\n }).then(() => {\n if (flag) {\n this.chatLog.push({\n type: 'ai',\n message:\n this.thumbsUpMessage ||\n this.getTranslation('May I assist you with anything else'),\n time: formatNow(this.timezone),\n isFeedbackMsg: true,\n });\n\n this.scrollToBottom();\n this.cdr.markForCheck();\n this.feedbackDone = false;\n this.showFeedBackIconsIndex = null;\n return;\n }\n\n this.chatLog.push({\n type: 'ai',\n message: this.processMessage(\n this.thumbsDownMessages[this.thumbsDownMsgIndex]\n ),\n time: formatNow(this.timezone),\n isFeedbackMsg: true,\n });\n this.thumbsDownMsgIndex =\n (this.thumbsDownMsgIndex + 1) % this.thumbsDownMessages.length;\n this.scrollToBottom();\n this.cdr.markForCheck();\n setTimeout(() => {\n const supportLink = document.getElementById('supportLink88');\n if (supportLink) {\n supportLink.addEventListener('click', this.triggerSupport.bind(this));\n }\n }, 200);\n this.feedbackDone = false;\n this.showFeedBackIconsIndex = null;\n });\n }\n handleKeydown(event: KeyboardEvent) {\n if (event.key === 'Enter' && !event.shiftKey) {\n // Prevent default behavior (new line)\n event.preventDefault();\n // Call your submit function\n this.handleSubmit(event);\n }\n }\n handleSubmit(event) {\n this.fetchData();\n this.scrollToBottom();\n }\n\n handleUpClick(idx: any) {\n if (this.feedbackDone) {\n return;\n }\n\n this.submitFeedback(true, this.chatLog[idx]);\n this.chatLog[idx].liked = !this.chatLog[idx].liked;\n\n if (this.chatLog[idx].unliked) {\n this.chatLog[idx].unliked = !this.chatLog[idx].unliked;\n }\n\n this.cdr.markForCheck();\n }\n\n handleDownClick(idx: any) {\n if (this.feedbackDone) return;\n this.submitFeedback(false, this.chatLog[idx]);\n this.chatLog[idx].unliked = !this.chatLog[idx].unliked;\n if (this.chatLog[idx].liked)\n this.chatLog[idx].liked = !this.chatLog[idx].liked;\n }\n // handleCopyClick(index: any) {\n // // Copy the message to the clipboard\n // const contentToCopy = this.chatLog[index].message;\n // console.log('contentToCopy');\n // console.log(contentToCopy);\n // navigator.clipboard.writeText(contentToCopy).then(() => {\n // // Indicate that the message was copied\n // this.chatLog[index].copied = true;\n // this.cdr.detectChanges();\n // // Reset the copied state after a delay\n // setTimeout(() => {\n // this.chatLog[index].copied = false;\n // this.cdr.detectChanges();\n // }, 2000); // Reset after 2 seconds\n // });\n // }\n copyText(id, index) {\n // Get the text element\n var textElement = document.getElementById(id);\n\n // Create a temporary textarea element to copy the text\n var tempTextArea = document.createElement('textarea');\n tempTextArea.value = textElement.innerText;\n\n // Append the textarea to the body (necessary for the execCommand to work)\n document.body.appendChild(tempTextArea);\n\n // Select the text inside the textarea\n tempTextArea.select();\n\n // Copy the text to the clipboard\n document.execCommand('copy');\n\n // Remove the temporary textarea\n document.body.removeChild(tempTextArea);\n\n // Optionally, you can alert the user or change the button text to indicate the copy was successful\n // alert('Text copied to clipboard!');\n\n this.chatLog[index].copied = true;\n this.cdr.detectChanges();\n // Reset the copied state after a delay\n setTimeout(() => {\n this.chatLog[index].copied = false;\n this.cdr.detectChanges();\n }, 2000); // Reset after 2 seconds\n }\n handleCopyClick(index: any) {\n // Copy the message to the clipboard\n const contentToCopy = this.chatLog[index].message;\n const resutlt = this.copyText('messageText_' + index, index);\n }\n\n sanitizeHTML(html: string): string {\n const doc = new DOMParser().parseFromString(html, 'text/html');\n\n // Create a new document fragment to hold the simplified content\n const fragment = document.createDocumentFragment();\n\n // Append the children of the body of the parsed document to the fragment\n Array.from(doc.body.childNodes).forEach((node) => {\n fragment.appendChild(node.cloneNode(true));\n });\n\n // Create a new div element to hold the simplified HTML\n const simplifiedDiv = document.createElement('div');\n simplifiedDiv.appendChild(fragment);\n\n // Remove complex tags or attributes as needed\n // Example: remove scripts\n simplifiedDiv\n .querySelectorAll('script')\n .forEach((script) => script.remove());\n\n // Return the simplified HTML as a string\n return simplifiedDiv.innerHTML;\n }\n\n currentMessageForEditor: any = '';\n currentIndexForEditor: any = -1;\n handleEditorClick(index: any) {\n if (this.currentIndexForEditor == -1) {\n this.currentIndexForEditor = index;\n this.currentMessageForEditor = this.sanitizeHTML(\n this.chatLog[index].message\n );\n this.currentMessageForEditor = this.currentMessageForEditor.replace(\n 'SafeValue must use [property]=binding:',\n ''\n );\n\n this.cdr.detectChanges();\n } else {\n if (this.currentIndexForEditor == index) {\n this.currentMessageForEditor += this.sanitizeHTML(\n this.chatLog[index].message\n );\n this.currentMessageForEditor = this.currentMessageForEditor.replace(\n 'SafeValue must use [property]=binding:',\n ''\n );\n this.cdr.detectChanges();\n } else {\n this.currentIndexForEditor = index;\n this.currentMessageForEditor = this.sanitizeHTML(\n this.chatLog[index].message\n );\n this.currentMessageForEditor = this.currentMessageForEditor.replace(\n 'SafeValue must use [property]=binding:',\n ''\n );\n this.cdr.detectChanges();\n }\n }\n this.chatLog[index].isEditor = true;\n this.cdr.detectChanges();\n // Reset the copied state after a delay\n setTimeout(() => {\n this.chatLog[index].isEditor = false;\n this.cdr.detectChanges();\n }, 2000); // Reset after 2 seconds\n this.editorsDrawer.open();\n const button = document.getElementById('botcloseplaygroundbutton');\n if (button) {\n button.style.display = 'none';\n }\n this.cdr.detectChanges();\n }\n scrollToBottom() {\n let counter = 0;\n const interval = setInterval(() => {\n this.chatMain.nativeElement.scrollTop =\n this.chatMain.nativeElement.scrollHeight;\n if (counter++ > 5) clearInterval(interval);\n }, 5);\n }\n\n focusOnTextarea() {\n setTimeout(() => {\n if (this.myInput && this.myInput.nativeElement) {\n this.myInput.nativeElement.focus();\n }\n }, 100);\n }\n\n handleAction(action: any) {\n console.info('incoming action from the chatbot AI');\n console.info(action);\n\n if (action?.content) {\n }\n }\n\n ngAfterViewInit() {\n // Check if the drawer is initially open and apply overflow hidden to body if so\n if (this.drawer.opened) {\n this.setBodyOverflow();\n }\n\n // Listen to changes in the drawer being opened or closed\n this.drawer.openedChange.subscribe((opened: boolean) => {\n if (opened) {\n this.setBodyOverflow();\n } else {\n this.removeBodyOverflow();\n }\n });\n\n this.drawer.openedChange.subscribe((opened) => {\n if (opened) {\n setTimeout(() => {\n if (this.myInput && this.myInput.nativeElement) {\n this.myInput.nativeElement.focus(); // Focus on the textarea\n }\n });\n }\n });\n }\n\n private setBodyOverflow() {\n this.renderer.addClass(document.body, this.bodyOverflowClass);\n }\n\n private removeBodyOverflow() {\n this.renderer.removeClass(document.body, this.bodyOverflowClass);\n }\n\n getSpeakersByStaffIds(ids) {\n const url = `${this.environment.USERS_API}/events/${this.eventId}/users/get-by-staff-ids`;\n fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: 'Bearer ' + 'your_token_here',\n },\n body: JSON.stringify(ids),\n })\n .then((response) => {\n if (response.ok) {\n return response.json(); // Parse the JSON body of the response\n } else {\n throw new Error('Network response was not ok.');\n }\n })\n .then((data) => {\n if (data?.length > 0) {\n data.forEach((speaker) => {\n this.speakers[speaker.id] = speaker;\n });\n\n this.cdr.markForCheck();\n }\n })\n .catch((err) => {\n console.error('Error fetching data:', err);\n this.loading = false;\n });\n }\n\n performSessionAction(sessionId, action) {\n this.sessionActions.next({\n sessionId,\n action,\n });\n }\n\n addCloseBotClickEvent() {\n const element = this.elementRef.nativeElement.querySelector('#closeBotNow');\n if (element) {\n this.renderer.listen(element, 'click', () => {\n this.closeBot.next();\n });\n }\n }\n\n isMobileBrowser() {\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\n navigator.userAgent\n );\n }\n\n connectToUser(userId) {\n this.connectWithUser.emit({\n connect: !this.canDisconnect(userId),\n userId,\n });\n\n setTimeout(() => {\n this.fetchMyConnections().subscribe((res) => {\n this.cdr.markForCheck();\n });\n this.fetchPendingRequests().subscribe((res) => {\n this.cdr.markForCheck();\n });\n }, 500);\n }\n\n scheduleMeetingWithUser(user) {\n this.scheduleMeeting.emit(user);\n }\n\n canConnect(userId) {\n return !(\n this.canDisconnect(userId) ||\n this.pendingRequests.find((a) => a == userId)\n );\n }\n\n canDisconnect(userId) {\n return this.myConnections.find((conn) => conn.userId == userId);\n }\n\n fetchPendingRequests() {\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n apiKey: this.autogenKey,\n });\n return this.http\n .get(\n `${this.environment.USERS_API}/events/${this.eventId}/connection-requests/autogen/pending-sent-requests?userId=${this.userId}`,\n { headers }\n )\n .pipe(\n switchMap((res: any) => {\n this.pendingRequests = res;\n this.cdr.markForCheck();\n return of(res);\n }),\n catchError((error: any) => {\n console.error('Error fetching pending requests: ', error);\n return of(null);\n })\n );\n }\n\n fetchMyConnections() {\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n apiKey: this.autogenKey,\n });\n return this.http\n .get(\n `${this.environment.USERS_API}/events/${this.eventId}/users-connections/autogen?userId=${this.userId}`,\n { headers }\n )\n .pipe(\n switchMap((res: any) => {\n this.myConnections = res;\n this.cdr.markForCheck();\n return of(res);\n }),\n catchError((error: any) => {\n console.error('Error fetching pending requests: ', error);\n return of(null);\n })\n );\n }\n\n isDropdownOpen: boolean = false;\n agents: any;\n selectedAgents = [];\n allSelected = false;\n // Toggle the dropdown visibility\n toggleDropdown() {\n if (!this.agents) this.fetchAgents();\n this.isDropdownOpen = !this.isDropdownOpen;\n this.cdr.detectChanges();\n }\n\n onSelectAll(event: Event): void {\n this.agents?.forEach((agent) => (agent.selected = false));\n this.cdr.detectChanges();\n }\n\n onAgentChange(agent: any): void {\n //agent.selected = !agent.selected;\n //console.log(agent);\n let agentFound = this.agents.filter((p) => p.id == agent.id);\n if (agentFound && agentFound.length > 0) {\n agentFound[0].selected = !agentFound[0].selected;\n this.cdr.detectChanges();\n }\n this.cdr.detectChanges();\n }\n\n areAllSelected(): boolean {\n return this.agents?.every((agent) => !agent.selected);\n }\n\n getDropdownHeaderText(): string {\n const selectedAgents = this.agents?.filter((agent) => agent.selected);\n if (!selectedAgents) {\n return 'All Agents';\n } else {\n if (selectedAgents && selectedAgents?.length === 0) {\n return 'All Agents';\n } else {\n return selectedAgents?.length > 1\n ? `${selectedAgents?.length} Agents Selected`\n : `${selectedAgents?.length} Agent Selected`;\n }\n }\n }\n fetchAgents_http() {\n this.loading = true;\n const url = `${this.environment.AGENTS_API}/CoPilot/${this.botId}/active-agents`;\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n });\n\n return this.http.post(url, {}, { headers }).pipe(\n switchMap((res: any) => {\n if (res) {\n this.agents = res.map((agent) => ({\n ...agent,\n selected: false,\n }));\n }\n this.cdr.markForCheck();\n\n return of(res);\n }),\n catchError((error) => {\n console.error('Error fetching chatbot config: ', error);\n\n return of(null);\n })\n );\n }\n isDocInEditMode = false;\n documentContent: any;\n\n conversationId: any;\n isContentLoaded = false;\n\n fetchContent_http() {\n this.isDocInEditMode = false;\n this.isContentLoaded = false;\n console.log('API call function');\n this.loading = true;\n const conversation_id = this.conversationService.getKey(this.botId);\n this.conversationId = conversation_id;\n const url = `${this.environment.AGENTS_API}/ConversationDocuments?conversationId=${conversation_id}&botId=${this.botId}`;\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n apiKey: 'WIz/qAm+EEmfOkFaUA/weA==',\n 'domain-authority': this.domainAuthorityValue,\n });\n\n return this.http.get(url, { headers }).pipe(\n switchMap((res: any) => {\n if (res) {\n this.isDocInEditMode = true;\n this.documentContent = res;\n console.log('Get API callled success');\n this.isContentLoaded = true;\n console.log(res);\n }\n this.cdr.markForCheck();\n\n return of(res);\n }),\n catchError((error) => {\n console.error('Error fetching chatbot config DJ: ', error);\n this.isDocInEditMode = false;\n this.isContentLoaded = true;\n\n if (error?.status == 404) {\n console.log('dash');\n this.isDocInEditMode = false;\n this.isContentLoaded = true;\n }\n return of(null);\n })\n );\n }\n\n fetchAgents() {\n this.fetchAgents_http().subscribe();\n }\n\n fetchEditorContent() {\n this.fetchContent_http().subscribe();\n }\n\n // events/${eventId}/users-connections\n processMessageForDisplay(markdown: string): SafeHtml {\n try {\n // Create a custom renderer to modify <a> tags\n const renderer = new marked.Renderer();\n\n // Customize anchor tags to include target=\"_blank\"\n renderer.link = (href: string, title: string, text: string) => {\n return `<a href=\"${href}\" title=\"${\n title || ''\n }\" target=\"_blank\">${text}</a>`;\n };\n\n // Parse the markdown content to HTML using marked with the custom renderer\n const markdownContent = marked.parse(markdown, { renderer: renderer });\n\n // Sanitize the parsed HTML using Angular's DomSanitizer\n const sanitizedHtml =\n this.sanitizer.bypassSecurityTrustHtml(markdownContent);\n\n // Return the safe HTML content for display\n return sanitizedHtml;\n } catch (error) {\n console.error('Error processing markdown:', error);\n return ''; // Return an empty string or handle the error appropriately\n }\n }\n\n prepareHtml(markdown: string): string {\n if (!markdown || !(markdown.length > 0)) {\n console.error('Input Markdown is null or empty');\n return '';\n }\n\n // Convert Markdown headers (### or ##) to <strong> for bold headings\n let html = markdown.replace(\n /^(#{1,6})\\s+(.*)$/gm,\n (match, hashes, text) => {\n const level = hashes.length;\n if (level === 3) {\n return `<h3><strong>${text}</strong></h3>`;\n } else if (level === 4) {\n return `<h4><strong>${text}</strong></h4>`;\n }\n return `<strong>${text}</strong>`;\n }\n );\n\n // Convert Markdown code blocks with language to preformatted HTML\n html = html.replace(/```(\\w+)?\\n([\\s\\S]*?)```/g, (match, lang, code) => {\n const escapedCode = this.escapeHtml(code);\n const language = lang || 'plaintext';\n\n // Create a copy button for the code block\n return `\n <div class=\"code-container\">\n <button id=\"copy-button\" class=\"copy-button\" (click)=\"copyToClipboard('\\`${escapedCode}\\`')\">${this.getTranslation(\n 'Copy'\n )}</button>\n <pre class=\"code_block diff\"><code class=\"language-${language}\">${escapedCode}</code></pre>\n </div>`;\n });\n\n // Convert inline code (wrapped in `backticks`) to inline <code> tags\n html = html.replace(/`([^`]+)`/g, '<code>$1</code>');\n\n // Convert Markdown bold to HTML <strong>\n html = html.replace(/\\*\\*(.*?)\\*\\*/g, '<strong>$1</strong>');\n\n // Convert numbered lists\n html = html.replace(/^\\d+\\.\\s+(.*)$/gm, '<li>$1</li>');\n\n // Convert bullet point lists\n html = html.replace(/^\\-\\s+(.*)$/gm, '<li>$1</li>');\n\n // Convert Markdown links to HTML links\n html = html.replace(\n /\\[([^\\]]+)]\\(([^)]+)\\)/g,\n '<a href=\"$2\" target=\"_blank\">$1</a>'\n );\n\n // Convert new lines to <br> tags for paragraphs\n html = html.replace(/(?:\\r\\n|\\r|\\n)/g, '<br>');\n\n return html;\n }\n\n // Helper function to escape HTML characters for code blocks\n escapeHtml(code: string): string {\n return code\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(/\"/g, '&quot;')\n .replace(/'/g, '&#039;');\n }\n\n // Function to copy text to clipboard\n public copyToClipboard(text: string) {\n navigator.clipboard.writeText(text).then(\n () => {\n alert('Code copied to clipboard!');\n },\n (err) => {\n console.error('Could not copy text: ', err);\n }\n );\n }\n\n isCollapsed = false;\n isCollapsedForGraph = false;\n isCollapsedForFGraph = false;\n toggleCollapse() {\n this.isCollapsed = !this.isCollapsed;\n this.cdr.detectChanges();\n }\n\n toggleCollapseGraph() {\n this.isCollapsedForGraph = !this.isCollapsedForGraph;\n this.cdr.detectChanges();\n }\n toggleCollapseFGraph() {\n this.isCollapsedForFGraph = !this.isCollapsedForFGraph;\n this.cdr.detectChanges();\n }\n // [\n // {\n // \"title\": \"AI News January 2024: In-Depth and Concise - The AI Track\",\n // \"desc\": \"Each month, we compile significant news, trends, and happenings in AI, providing detailed summaries with key points in bullet form for concise yet complete understanding.\",\n // \"link\": \"https://theaitrack.com/ai-news-january-2024/\"\n // },\n // {\n // \"title\": \"Top AI News, January 2024 - Everypixel Journal\",\n // \"desc\": \"In this monthly roundup, we spotlight the top AI news stories from January, including the OpenAI vs. The New York Times Lawsuit.\",\n // \"link\": \"https://journal.everypixel.com/top-ai-news-january-2024\"\n // },\n // {\n // \"title\": \"AI News July 2024: In-Depth and Concise - The AI Track\",\n // \"desc\": \"This page features AI News for July 2024, highlighting significant events such as Canva acquiring Leonardo AI.\",\n // \"link\": \"https://theaitrack.com/ai-news-july-2024-in-depth-and-concise/\"\n // },\n // {\n // \"title\": \"January news roundup: What's new in the world of AI? - Pluralsight\",\n // \"desc\": \"OpenAI’s new GPT store, business-ready ChatGPT plans, and a predicted rise in AI-powered cybercrime.\",\n // \"link\": \"https://www.pluralsight.com/resources/blog/data/ai-this-month-january-2024\"\n // },\n // {\n // \"title\": \"AI News August 2024: In-Depth and Concise - The AI Track\",\n // \"desc\": \"This page features AI News for August 2024, with highlights such as Nvidia delaying the “Blackwell” B200 AI chips delivery.\",\n // \"link\": \"https://theaitrack.com/ai-news-august-2024-in-depth-and-concise-duplicate/\"\n // }\n // ]\n dateTime = { now: new Date().toISOString() };\n // Extracts the domain from a URL\n getDomainName(url: string): string {\n try {\n const { hostname } = new URL(url);\n return hostname.replace(/^www\\./, ''); // Remove 'www.' if present\n } catch {\n return 'unknown';\n }\n }\n\n // Generates the favicon URL\n getFaviconUrl(url: string): string {\n const domain = this.getDomainName(url);\n return `https://www.google.com/s2/favicons?sz=128&domain=${domain}`;\n }\n currentSourcesList: any = [];\n onCardClick(sources): void {\n this.currentSourcesList = sources;\n this.cdr.detectChanges();\n this.sourcesDrawer.open();\n const button = document.getElementById('botcloseplaygroundbutton');\n if (button) {\n button.style.display = 'none';\n }\n }\n\n isShowEditorButton = true;\n\n openOuterEditor() {\n this.fetchEditorContent();\n this.editorsDrawer.open();\n this.isDrawerOpen = true;\n this.isShowEditorButton = false;\n this.cdr.detectChanges();\n\n const button = document.getElementById('botcloseplaygroundbutton');\n if (button) {\n button.style.display = 'none';\n }\n }\n\n onCloseEditor() {\n this.editorsDrawer.close();\n this.isDrawerOpen = false;\n this.isShowEditorButton = true;\n this.cdr.detectChanges(); // Trigger change detection if needed\n this.onDrawerClosed();\n }\n\n onCloseSource() {\n this.sourcesDrawer.close();\n this.isDrawerOpen = false;\n this.cdr.detectChanges(); // Trigger change detection if needed\n this.onDrawerClosed();\n }\n onDrawerClosed() {\n setTimeout(() => {\n this.isDrawerOpen = true;\n this.cdr.detectChanges(); // Trigger change detection if needed\n // Use ngClass to dynamically apply the class\n const button = document.getElementById('botcloseplaygroundbutton');\n if (button) {\n button.style.display = 'block';\n }\n }, 800);\n }\n isDrawerOpen = true;\n\n toggleDrawer(todo) {\n this.isDrawerOpen = todo;\n this.cdr.detectChanges();\n this.updateButtonVisibility();\n }\n updateButtonVisibility() {\n const button = document.getElementById('botcloseplaygroundbutton');\n if (button) {\n button.style.display = this.isDrawerOpen ? 'block' : 'none';\n }\n }\n openLinkInNewTab(link: string): void {\n window.open(link, '_blank');\n }\n adjustTextareaHeight(event: any): void {\n try {\n if (event.key === 'Enter' && !event.shiftKey) {\n // Prevents a new line from being added\n event.preventDefault();\n }\n } catch (error) {}\n const textarea = event.target as HTMLTextAreaElement;\n textarea.style.height = 'auto'; // Reset the height\n textarea.style.height = `${textarea.scrollHeight}px`; // Adjust height to match content\n // Ensure the height doesn't exceed the max-height set in CSS\n if (textarea.scrollHeight > 150) {\n textarea.style.height = `150px`; // Adjust height to match content\n textarea.style.overflowY = 'auto'; // Enable scrolling if content exceeds 400px\n } else {\n textarea.style.overflowY = 'hidden'; // Hide scrollbar if content is within limits\n }\n }\n\n toggleWorkflows(value = null) {\n if (!this.checkForCop29BotId()) {\n this.botService.getWorkflowsByOrgId(this.orgId).subscribe((res) => {\n this.orgWorkflows = res;\n this.isWorkflowOpen = value == null ? !this.isWorkflowOpen : value;\n\n if (!this.isWorkflowOpen) {\n this.selectedWorkflow = null;\n this.openWorkflowInput = false;\n }\n\n this.cdr.detectChanges();\n });\n }\n }\n\n initializeForm() {\n // Create form controls dynamically based on selectedWorkflow.Trigger.InputSchema\n const formControls = {};\n if (this.selectedWorkflow?.Trigger?.InputSchema) {\n this.selectedWorkflow.Trigger.InputSchema.forEach((input) => {\n formControls[input.InputId] = [\n input.Value || '',\n input.Required ? Validators.required : null,\n ];\n });\n }\n\n // Initialize the form\n this.workflowForm = this.fb.group(formControls);\n }\n\n onWorkflowSelected(workflow) {\n this.selectedWorkflow = workflow;\n this.initializeForm();\n this.isWorkflowOpen = false;\n this.openWorkflowInput = true;\n }\n\n onWorkflowSubmit() {\n const container = document.getElementById('allChats');\n if (this.workflowForm.valid) {\n console.log(this.workflowForm.value);\n\n var input = this.prepareHtml(\n this.generateMarkdown(\n this.selectedWorkflow.Name,\n this.workflowForm.value\n )\n );\n\n // update last two chatLog entries, set showWorkflowExecutionLoader = false\n try {\n this.chatLog[this.chatLog.length - 1]['showWorkflowExecutionLoader'] =\n false;\n this.chatLog[this.chatLog.length - 2]['showWorkflowExecutionLoader'] =\n false;\n } catch (error) {}\n\n this.chatLog.push({\n type: 'user',\n message: input,\n time: formatNow(this.timezone),\n copied: false,\n isCollapsedTrue: false,\n showWorkflowExecutionLoader: true,\n });\n\n console.log(input);\n\n this.currentWorkflowActionProgress = 0;\n this.currentWorkflowAction =\n 'Executing ' + this.selectedWorkflow.Actions[0].Name;\n this.isChatingWithAi = true;\n this.executingWorkflow = true;\n this.workflowExecutionDetails = {\n Actions: this.selectedWorkflow.Actions,\n Inputs: this.workflowForm.value,\n workflowInputs: this.workflowForm.value,\n WorkflowName: this.selectedWorkflow.Name,\n };\n this.currentWorkflowExecutionDetails = this.workflowExecutionDetails;\n this.scrollToBottom();\n\n this.cdr.detectChanges();\n\n // execute the ask endpoint with workflow input\n this.makeAskRequest(\n input,\n this.agents,\n this.conversationKey,\n '',\n null,\n this.selectedWorkflow['_id'],\n this.workflowForm.value\n );\n }\n }\n\n makeAskRequest(\n inputMsg: string,\n agents: any[],\n conversationId: string,\n msg?: any,\n chat?: any,\n workflowId?: string,\n workflow_inputs?: any\n ): void {\n var url = `${this.environment.BASE_URL}/ai/ask`;\n\n var body = {\n user_question: inputMsg,\n user_id: this.userId,\n bot_id: this.botId,\n message_id: this.conversationService.generateKey(),\n session_id: this.conSessionKey,\n agents: agents?.filter((p) => p.selected).map((p) => p.id) ?? [],\n conversation_id: conversationId,\n first_name: this.firstName,\n last_name: this.lastName,\n };\n\n if (workflowId) {\n body['workflow_id'] = workflowId;\n body['workflow_inputs'] = workflow_inputs;\n }\n\n const headers: any = {\n 'Content-Type': 'application/json',\n Authorization: 'Bearer ' + this.s27Token,\n 'x-api-key': this.apiKey,\n 'hive-bot-id': this.botId,\n 'domain-authority': this.domainAuthorityValue,\n eventUrl: this.eventUrl,\n eventToken: this.eventToken,\n };\n\n if (this.workspaceToken) {\n headers['workspaceToken'] = this.workspaceToken;\n }\n\n fetch(url, {\n method: 'POST',\n headers: headers,\n body: JSON.stringify(body),\n })\n .then((response) => {\n if (response.status === 401 || response.status === 403) {\n this.is401 = true;\n this.refreshToken.emit();\n\n // If `msg` and `chat` exist, handle them\n if (msg && chat) {\n this.msg = msg;\n this.chat = chat;\n this.isFetchDataFor = true;\n }\n } else {\n this.is401 = false;\n }\n return response.json();\n })\n .then((data) => {\n console.log(data);\n // Additional response handling if needed\n })\n .catch((err) => {\n console.error('Error: ', err);\n this.isChatingWithAi = false;\n });\n\n this.input = '';\n this.selectedWorkflow = null;\n this.openWorkflowInput = false;\n this.isWorkflowOpen = false;\n this.scrollToBottom();\n this.cdr.markForCheck();\n }\n\n makeAskRequestold(\n inputMsg: string,\n agents: any[],\n conversationId: string,\n msg?: any,\n chat?: any,\n workflowId?: string,\n workflow_inputs?: any\n ): void {\n const url = `${this.environment.BASE_URL}/ai/ask`;\n\n const body: any = {\n user_question: inputMsg,\n user_id: this.userId,\n bot_id: this.botId,\n message_id: this.conversationService.generateKey(),\n agents: agents?.filter((p) => p.selected).map((p) => p.id) ?? [],\n conversation_id: conversationId,\n first_name: this.firstName,\n last_name: this.lastName,\n };\n\n if (workflowId) {\n body['workflow_id'] = workflowId;\n body['workflow_inputs'] = workflow_inputs;\n }\n\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n 'x-api-key': this.apiKey,\n 'hive-bot-id': this.botId,\n 'domain-authority': this.domainAuthorityValue,\n });\n\n this.http.post(url, body, { headers }).subscribe({\n next: (data) => {\n console.log(data);\n // Additional response handling if needed\n },\n error: (err) => {\n console.error('Error: ', err);\n this.isChatingWithAi = false;\n },\n });\n\n this.input = '';\n this.selectedWorkflow = null;\n this.openWorkflowInput = false;\n this.isWorkflowOpen = false;\n this.scrollToBottom();\n this.cdr.markForCheck();\n }\n\n generateMarkdown(title, obj) {\n // Initialize markdown with the title\n let markdown = `## ${title}\\n`;\n\n // Loop through the object and append the field names and values\n for (const [key, value] of Object.entries(obj)) {\n var key_label =\n this.selectedWorkflow.Trigger.InputSchema.find(\n (input) => input.InputId === key\n )?.Label || key;\n markdown += `- **${key_label}**: ${value}\\n`;\n }\n\n return markdown;\n }\n\n showWorkflowHistoryDetails(workflow_id) {\n if (!workflow_id) {\n this.workflowExecutionDetails = this.currentWorkflowExecutionDetails;\n this.showWorkflowExecutionDetails = true;\n this.cdr.detectChanges();\n return;\n }\n\n this.botService.getWorkflowExecutionById(workflow_id).subscribe((res) => {\n if (res && res.Actions && Array.isArray(res.Actions)) {\n res.Actions = res.Actions.map((action) => {\n if (action.InsertTimeStamp) {\n action.InsertTimeStamp = formatTimeStamps(\n this.timezone,\n action.InsertTimeStamp\n );\n }\n return action;\n });\n }\n\n res.InsertTimeStamp = formatTimeStamps(\n this.timezone,\n res.InsertTimeStamp\n );\n this.workflowExecutionDetails = res;\n this.showWorkflowExecutionDetails = true;\n this.cdr.detectChanges();\n });\n }\n\n closeModal() {\n this.showWorkflowExecutionDetails = false;\n }\n\n objectToArray(obj: any): any[] {\n return Object.keys(obj).map((key) => ({ key, value: obj[key] }));\n }\n\n startNewConversation() {\n this.conversationKey = this.conversationService.getKey(this.botId, true);\n this.chatLog = [this.chatLog[0]];\n this.isChatingWithAi = false;\n setTimeout(() => {\n this.initializeSocket();\n }, 200);\n this.scrollToBottom();\n this.cdr.detectChanges();\n }\n\n initializeSpeechRecognizer(token: string) {\n this.speechConfig = SpeechSDK.SpeechConfig.fromAuthorizationToken(\n token,\n this.region\n );\n const audioConfig = SpeechSDK.AudioConfig.fromDefaultMicrophoneInput();\n this.recognizer = new SpeechSDK.SpeechRecognizer(\n this.speechConfig,\n audioConfig\n );\n\n this.recognizer.recognizing = (s, e) => {\n if (e.result.reason === SpeechSDK.ResultReason.RecognizingSpeech) {\n this.input = e.result.text;\n console.log(`Recognizing: ${e.result.text}`);\n this.cdr.markForCheck();\n }\n };\n\n this.recognizer.recognized = (s, e) => {\n if (e.result.reason === SpeechSDK.ResultReason.RecognizedSpeech) {\n this.input = e.result.text;\n console.log(`Recognized: ${e.result.text}`);\n this.toggleRecording();\n this.cdr.markForCheck();\n }\n };\n\n this.recognizer.canceled = (s, e) => {\n console.error('Canceled: ', e.errorDetails);\n };\n\n this.recognizer.sessionStopped = (s, e) => {\n console.log('Session stopped.');\n this.recognizer.stopContinuousRecognitionAsync();\n this.fetchData();\n };\n }\n\n toggleRecording() {\n this.isRecording = !this.isRecording;\n\n if (this.isRecording) {\n this.startRecognition();\n } else {\n this.stopRecognition();\n }\n }\n\n startRecognition() {\n this.recognizer.startContinuousRecognitionAsync();\n }\n\n stopRecognition() {\n this.recognizer.stopContinuousRecognitionAsync();\n }\n\n checkForCop29BotId() {\n return (\n this.botId == '66fa3f276c5d71e2717bfea8' ||\n this.botId == '671633545652dd78efec848d'\n );\n }\n\n getLatestTime(time): string {\n if (time) {\n return time;\n }\n return new Date().toLocaleTimeString([], {\n hour: '2-digit',\n minute: '2-digit',\n }); // returns current time in 'shortTime' format\n }\n\n /** Used by the voice modal when opened from this drawer. */\n voiceModalConversationId: string = '';\n\n openVoiceModal(): void {\n const conversationId = this.conversationKey ?? this.conversationService.getKey(this.botId, false) ?? '';\n this.voiceModalConversationId = conversationId;\n this.setupVoiceTranscripts();\n\n // Close existing overlay if any\n if (this.voiceModalOverlayRef) {\n this.voiceModalOverlayRef.detach();\n this.voiceModalOverlayRef.dispose();\n this.voiceModalOverlayRef = null;\n }\n\n const config: VoiceModalConfig = {\n apiUrl: this.environment?.BASE_URL ?? '',\n token: this.s27Token ?? '',\n botId: this.botId ?? '',\n conversationId,\n apiKey: this.apiKey ?? '',\n eventToken: this.eventToken ?? '',\n eventUrl: this.eventUrl ?? '',\n domainAuthority: this.domainAuthorityValue ?? 'prod-lite',\n agentName: this.botName || 'AI Assistant',\n agentRole: this.botSkills || 'AI Agent Specialist',\n agentAvatar: this.botIcon,\n };\n\n const closeCallback = () => {\n if (this.voiceModalOverlayRef) {\n this.voiceModalOverlayRef.detach();\n this.voiceModalOverlayRef.dispose();\n this.voiceModalOverlayRef = null;\n }\n this.closeVoiceModal();\n };\n\n const injector = Injector.create([\n { provide: VOICE_MODAL_CONFIG, useValue: config },\n { provide: VOICE_MODAL_CLOSE_CALLBACK, useValue: closeCallback },\n ], this.injector);\n\n const overlayRef = this.overlay.create({\n hasBackdrop: false,\n scrollStrategy: this.overlay.scrollStrategies.block(),\n positionStrategy: this.overlay.position().global().bottom('0').right('0').left('0').top('0'),\n });\n\n const portal = new ComponentPortal(\n VoiceAgentModalComponent,\n this.viewContainerRef,\n injector\n );\n overlayRef.attach(portal);\n this.voiceModalOverlayRef = overlayRef;\n this.cdr.markForCheck();\n }\n\n closeVoiceModal(): void {\n if (this.voiceModalOverlayRef) {\n this.voiceModalOverlayRef.detach();\n this.voiceModalOverlayRef.dispose();\n this.voiceModalOverlayRef = null;\n }\n this.isVoiceModalOpen = false;\n this.voiceAgentService.disconnect();\n this.cdr.markForCheck();\n }\n\n private setupVoiceTranscripts(): void {\n // Clear existing subscriptions\n this.voiceTranscriptSubscriptions.forEach(sub => sub.unsubscribe());\n this.voiceTranscriptSubscriptions = [];\n\n // Subscribe to user transcripts\n const userSub = this.voiceAgentService.userTranscript$.subscribe(transcript => {\n if (transcript.final && transcript.text.trim()) {\n // Add user message to chat\n this.chatLog.push({\n type: 'user',\n message: this.processMessageForDisplay(transcript.text),\n time: formatNow(this.timezone),\n copied: false,\n isCollapsedTrue: false,\n });\n this.cdr.markForCheck();\n this.scrollToBottom();\n }\n });\n\n // Subscribe to bot transcripts\n const botSub = this.voiceAgentService.botTranscript$.subscribe(transcript => {\n if (transcript && transcript.trim()) {\n // Check if last message is from bot, update it, otherwise add new\n const lastMessage = this.chatLog[this.chatLog.length - 1];\n if (lastMessage && lastMessage.type === 'ai') {\n lastMessage.message = this.processMessageForDisplay(transcript);\n } else {\n this.chatLog.push({\n type: 'ai',\n message: this.processMessageForDisplay(transcript),\n time: formatNow(this.timezone),\n copied: false,\n isCollapsedTrue: false,\n });\n this.showFeedBackIconsIndex = this.chatLog.length - 1;\n }\n this.cdr.markForCheck();\n this.scrollToBottom();\n }\n });\n\n this.voiceTranscriptSubscriptions.push(userSub, botSub);\n }\n}\n\nexport { VoiceModalConfig } from '../voice-agent/voice-modal-tokens';\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'hivegpt-chatbot',\n templateUrl: './chatbot.component.html',\n styleUrls: ['./chatbot.component.scss'],\n})\nexport class ChatBotComponent {\n @Input() userId!: string;\n @Input() apiKey!: string;\n @Input() botName!: string;\n @Input() botSkills!: string;\n @Input() botId!: string;\n @Input() closeButtonColor!: string;\n @Input() gradientColors!: string[];\n @Input() greeting!: string;\n @Input() sendButtonColor!: string;\n @Input() useOpenAi!: boolean;\n @Input() showClose!: boolean;\n @Input() bgGradient!: string[];\n @Input() sendButtonTextColor!: string;\n @Input() fullView!: boolean;\n @Input() bgBubbleAi!: string;\n @Input() bgBubbleUser!: string;\n @Input() closeButtonbgColor!: string;\n @Input() messageTextColorAi!: string;\n @Input() messageTextColorUser!: string;\n @Input() dateTimeColor!: string;\n @Input() dateTextColor!: string;\n @Input() formFieldBgColor!: string;\n @Input() formFieldTextColor!: string;\n @Input() thumbsUpMessage!: string;\n @Input() thumbsDownMessages!: string[];\n @Input() timezone!: string;\n @Input() eventName!: string;\n @Input() credentials!: [];\n @Input() unknownResponses!: [];\n @Input() rules!: string;\n @Input() eventId!: string;\n @Input() s27Token!: string;\n @Input() workspaceToken!: string;\n @Input() isDev!: boolean;\n visible = false;\n\n toggle() {\n this.visible = !this.visible;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { VoiceAgentModalComponent } from './components/voice-agent-modal/voice-agent-modal.component';\nimport { VoiceAgentService } from './services/voice-agent.service';\nimport { AudioAnalyzerService } from './services/audio-analyzer.service';\n\n@NgModule({\n declarations: [\n VoiceAgentModalComponent\n ],\n imports: [\n CommonModule\n ],\n providers: [\n VoiceAgentService,\n AudioAnalyzerService\n ],\n exports: [\n VoiceAgentModalComponent\n ]\n})\nexport class VoiceAgentModule { }\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'safeHtml',\n})\nexport class SafeHtmlPipe implements PipeTransform {\n\n constructor(private sanitizer: DomSanitizer) {\n }\n\n transform(html): unknown {\n return html ? this.sanitizer.bypassSecurityTrustHtml(html) : '';\n }\n\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { IVideo } from '../../models/video';\nimport { DOCUMENT } from '@angular/common';\n\n@Component({\n selector: 'app-video-player',\n templateUrl: './video-player.component.html',\n styleUrls: ['./video-player.component.scss'],\n})\nexport class VideoPlayerComponent\n implements OnInit, AfterViewInit {\n @Input() currentUserId: string;\n @Input() user: any;\n @Input() eventId: string;\n @Input() videoObj: IVideo;\n @Input() isDev: boolean;\n myFollowingList: Array<string>;\n myPendingSentRequests: Array<string>;\n @Input() type: string;\n isMuted: boolean = true;\n private observer: IntersectionObserver;\n isFullscreen: boolean = false;\n @ViewChild('video') video: any;\n @ViewChild('fullscreenvideo') fullscreenvideo: any;\n isFullscreenvideoPlaying: boolean = false;\n\n @Output() connectWithUser = new EventEmitter<string>();\n @Output() scheduleMeeting = new EventEmitter<any>();\n\n constructor(\n @Inject(DOCUMENT) private doc: any,\n private el: ElementRef,\n private cdr: ChangeDetectorRef\n ) {\n }\n\n ngOnInit(): void {\n }\n\n toggleSound(isMuted = null) {\n this.isMuted = isMuted != null ? isMuted : !this.isMuted;\n setTimeout(() => {\n const video: any = this.doc\n .getElementById(this.video.id.toString());\n if (video) {\n video.muted = this.isMuted;\n this.video.isMuted = this.isMuted;\n }\n\n this.cdr.markForCheck();\n //this.muteToggle.emit(this.isMuted);\n })\n}\n\n togglePlay(playState: boolean, videoEl) {\n this.videoObj.isPlaying = !this.videoObj.isPlaying;\n setTimeout(() => { \n if (playState) { \n this.videoObj.isPlaying = true;\n videoEl.play();\n var pauseBtn = document.getElementById('pause-btn');\n pauseBtn.classList.add('hide-pause-btn');\n\n this.toggleSound(false);\n }\n else{\n this.videoObj.isPlaying = false;\n videoEl.pause();\n }\n this.cdr.markForCheck();\n })\n }\n \n ngAfterViewInit() {\n if (window.innerWidth <= 576) {\n this.observer = new IntersectionObserver(\n (entries) => {\n if (entries[0].isIntersecting === true) {\n this.video.nativeElement.play();\n } else {\n this.video.nativeElement.pause();\n }\n },\n {\n threshold: 0.75,\n }\n );\n\n this.observer.observe(this.el.nativeElement as HTMLElement);\n }\n }\n\n toggleFullscreen() {\n this.isFullscreen = !this.isFullscreen;\n if (!this.isFullscreen) {\n this.fullscreenvideo.nativeElement.pause();\n }\n }\n\n toggleFullscreenPlay() {\n this.isFullscreenvideoPlaying = !this.isFullscreenvideoPlaying;\n\n if (this.isFullscreenvideoPlaying) {\n this.fullscreenvideo.nativeElement.play();\n } else {\n this.fullscreenvideo.nativeElement.pause();\n }\n }\n\n followUser(userId) {\n this.connectWithUser.emit(userId);\n }\n\n checkPendingSentRequest(userId) {\n return this.myPendingSentRequests?.find(a => a == userId);\n }\n\n canUnfollowUser() {\n return false;\n }\n\n canFollowUser() {\n return true;\n }\n\n getIniNames(firstName, lastName) {\n if(!firstName && !lastName) {\n return '';\n }\n \n if (firstName && lastName)\n return (\n firstName.charAt(0).toUpperCase() + lastName.charAt(0).toUpperCase()\n );\n else return firstName.charAt(0).toUpperCase();\n }\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n SimpleChanges,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { MatDrawer } from '@angular/material/sidenav';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { of, Subscription } from 'rxjs';\nimport { catchError, switchMap } from 'rxjs/operators';\nimport { formatNow, formatTimeStamps } from '../../utils/utils';\nimport {\n dev_environment,\n prod_environment,\n} from '../../../environments/environment';\nimport { ConversationService } from '../conversation.service';\nimport { Observable } from 'rxjs';\nimport { SocketService } from '../socket-service.service';\n\n@Component({\n selector: 'lib-bot-html-editor',\n templateUrl: './bot-html-editor.component.html',\n styleUrls: ['./bot-html-editor.component.css'],\n})\nexport class BotHtmlEditorComponent implements OnInit {\n @Input() editorContent: Observable<string>;\n @Input() isDocInEditMode: any;\n @Input() documentContent: any;\n @Input() conversationId: any;\n @Input() botId: any;\n\n documentName: any = 'doc name';\n\n environment: {\n USERS_API;\n BASE_URL;\n AGENTS_API;\n };\n\n quillConfig = {\n toolbar: [\n [{ header: '1' }, { header: '2' }, { font: [] }],\n [{ list: 'ordered' }, { list: 'bullet' }],\n ['bold', 'italic', 'underline'],\n ['link'],\n ['clean'],\n ],\n };\n constructor(private cdr: ChangeDetectorRef, private http: HttpClient) {}\n\n ngOnInit(): void {\n this.environment = prod_environment;\n\n setTimeout(() => {\n if (this.isDocInEditMode) {\n console.log('In Edit mode');\n this.filldataInForm();\n } else {\n console.log('In save mode');\n }\n }, 2500);\n }\n\n filldataInForm() {\n if (this.documentContent) {\n this.documentName = this.documentContent?.name;\n this.editorContent = this.documentContent?.content;\n this.cdr.detectChanges();\n }\n }\n\n saveContent() {\n if (!this.isDocInEditMode) {\n this.saveContent_http().subscribe();\n } else {\n this.saveContent_http().subscribe();\n }\n }\n\n saveContent_http() {\n console.log('API call function');\n\n const url = `${this.environment.AGENTS_API}/ConversationDocuments?conversationId=${this.conversationId}&botId=${this.botId}`;\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n apiKey: 'WIz/qAm+EEmfOkFaUA/weA==',\n });\n\n let data = {\n name: this.documentName,\n content: this.editorContent,\n };\n\n return this.http.post(url, data, { headers }).pipe(\n switchMap((res: any) => {\n if (res) {\n // alert('Saved Successfully');\n }\n this.cdr.markForCheck();\n\n return of(res);\n }),\n catchError((error) => {\n console.error('Error fetching chatbot config: ', error);\n\n return of(null);\n })\n );\n }\n\n updateContent_http() {\n console.log('API call function');\n\n const url = `${this.environment.AGENTS_API}/ConversationDocuments/rename?conversationId=${this.conversationId}&botId=${this.botId}`;\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n apiKey: 'WIz/qAm+EEmfOkFaUA/weA==',\n });\n\n let data = {\n name: this.documentName,\n content: this.editorContent,\n };\n\n return this.http.put(url, data, { headers }).pipe(\n switchMap((res: any) => {\n if (res) {\n // alert('Updated Successfully');\n }\n this.cdr.markForCheck();\n\n return of(res);\n }),\n catchError((error) => {\n console.error('Error fetching chatbot config: ', error);\n\n return of(null);\n })\n );\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { ChatDrawerComponent } from './components/chat-drawer/chat-drawer.component';\nimport { ChatBotComponent } from './components/chatbot/chatbot.component';\nimport { SafeHtmlPipe } from './pipes/safe-html.pipe';\nimport { VideoPlayerComponent } from './components/video-player/video-player.component';\nimport { QuillModule } from 'ngx-quill';\nimport { BotHtmlEditorComponent } from './components/bot-html-editor/bot-html-editor.component';\nimport { VoiceAgentModule } from './components/voice-agent/voice-agent.module';\n\n@NgModule({\n declarations: [ChatBotComponent, ChatDrawerComponent, VideoPlayerComponent, SafeHtmlPipe, BotHtmlEditorComponent],\n imports: [CommonModule, OverlayModule, MatIconModule, MatSidenavModule, FormsModule, ReactiveFormsModule, QuillModule, VoiceAgentModule],\n exports: [ChatBotComponent, ChatDrawerComponent, VideoPlayerComponent]\n})\nexport class HiveGptModule { }\n","/*\n * Public API Surface of hive-gpt\n */\n\nexport * from './lib/components/chat-drawer/chat-drawer.component';\nexport * from './lib/components/chatbot/chatbot.component';\nexport * from './lib/components/voice-agent/components/voice-agent-modal/voice-agent-modal.component';\nexport * from './lib/components/voice-agent/services/voice-agent.service';\nexport * from './lib/components/voice-agent/services/audio-analyzer.service';\nexport * from './lib/components/voice-agent/voice-agent.module';\nexport * from './lib/components/voice-agent/voice-modal-tokens';\nexport * from './lib/hivegpt.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {NotificationSocket as ɵd} from './lib/components/NotificationSocket';\nexport {BotHtmlEditorComponent as ɵh} from './lib/components/bot-html-editor/bot-html-editor.component';\nexport {BotsService as ɵa} from './lib/components/bot.service';\nexport {ConversationService as ɵc} from './lib/components/conversation.service';\nexport {SocketService as ɵb} from './lib/components/socket-service.service';\nexport {TranslationService as ɵe} from './lib/components/translations/translation.service';\nexport {VideoPlayerComponent as ɵf} from './lib/components/video-player/video-player.component';\nexport {SafeHtmlPipe as ɵg} from './lib/pipes/safe-html.pipe';"],"names":["Injectable","Subject","Socket","HttpHeaders","map","HttpClient","BehaviorSubject","WebSocketTransport","PipecatClient","RTVIEvent","InjectionToken","EventEmitter","Component","Injector","Output","Input","ElementRef","switchMap","of","catchError","marked","Validators","SpeechSDK","portal","ComponentPortal","ChangeDetectionStrategy","FormBuilder","ChangeDetectorRef","DomSanitizer","Renderer2","Overlay","ViewContainerRef","ViewChild","ViewChildren","NgModule","CommonModule","Pipe","Inject","DOCUMENT","OverlayModule","MatIconModule","MatSidenavModule","FormsModule","ReactiveFormsModule","QuillModule"],"mappings":"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"}
1
+ {"version":3,"file":"hivegpt-hiveai-angular.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/translations/translation.service.ts","../../../../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/NotificationSocket.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/socket-service.service.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/bot.service.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/voice-agent/services/audio-analyzer.service.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/voice-agent/services/voice-agent.service.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/voice-agent/voice-modal-tokens.ts","../../../../projects/hivegpt/eventsgpt-angular/src/lib/components/voice-agent/components/voice-agent-modal/voice-agent-modal.component.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/components/voice-agent/voice-agent.module.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/components/bot-html-editor/bot-html-editor.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":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","import { Injectable, Inject, PLATFORM_ID } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TranslationService {\n private eventId: string | null = null;\n\n setEventId(id: string) {\n this.eventId = id;\n }\n\n getTranslation(key: string): string {\n console.log('eventId', this.eventId);\n // let lang = String(this.getLang(this.eventId)).replace(/^\"|\"$/g, '');\n const lang = (\n localStorage.getItem('defaultLanguage-' + this.eventId) || 'en'\n ).replace(/^\"|\"$/g, '');\n\n const entry = this.translationsData.find((item) => item.Key === key);\n\n if (!entry) {\n return key; // fallback\n }\n\n return entry.Translations[lang] || entry.DefaultValue || key;\n }\n\n private getLang(eventId?: string | null): string {\n const suffix = eventId ? `-${eventId}` : '';\n const storageKey = `defaultLanguage${suffix}`;\n\n return localStorage.getItem(storageKey) || 'en';\n }\n\n private translationsData: any[] = [\n { \n Key: \"Copy\",\n DefaultValue: \"Copy\",\n Translations: {\n en: \"Copy\",\n fr: \"Copier\",\n it: \"Copia\",\n es: \"Copiar\",\n de: \"Kopieren\",\n \"pt-br\": \"Copiar\",\n ar: \"نسخ\",\n zh: \"复制\",\n ru: \"Копировать\"\n }\n}\n,\n {\n \n Key: \"May I assist you with anything else\",\n DefaultValue: \"Great. May I assist you with anything else?\",\n Translations: {\n en: \"Great. May I assist you with anything else?\",\n fr: \"Parfait. Puis-je vous aider avec autre chose ?\",\n it: \"Perfetto. Posso aiutarti con qualcos'altro?\",\n es: \"Genial. ¿Puedo ayudarte con algo más?\",\n de: \"Super. Kann ich Ihnen noch bei etwas anderem helfen?\",\n \"pt-br\": \"Ótimo. Posso ajudar com mais alguma coisa?\",\n ar: \"رائع. هل يمكنني مساعدتك في أي شيء آخر؟\",\n zh: \"太好了。还有什么我可以帮您的吗?\",\n ru: \"Отлично. Могу ли я помочь вам с чем-то ещё?\"\n }\n},\n {\n Key: \"We are sorry we've not been able to answer your question\",\n DefaultValue: \"We are sorry we've not been able to answer your question. However, our dedicated support team is happy to help. Please <a href=\\\"mailto:support@social27.com\\\">click here</a> and a human agent will assist you as soon as possible.\",\n Translations: {\n en: \"We are sorry we've not been able to answer your question. However, our dedicated support team is happy to help. Please <a href=\\\"mailto:support@social27.com\\\">click here</a> and a human agent will assist you as soon as possible.\",\n fr: \"Nous sommes désolés de ne pas avoir pu répondre à votre question. Cependant, notre équipe d'assistance se fera un plaisir de vous aider. Veuillez <a href=\\\"mailto:support@social27.com\\\">cliquer ici</a> et un agent humain vous assistera dès que possible.\",\n it: \"Ci dispiace di non essere riusciti a rispondere alla tua domanda. Tuttavia, il nostro team di supporto dedicato sarà lieto di aiutarti. Ti preghiamo di <a href=\\\"mailto:support@social27.com\\\">fare clic qui</a> e un operatore umano ti assisterà al più presto.\",\n es: \"Lamentamos no haber podido responder a tu pregunta. Sin embargo, nuestro equipo de soporte estará encantado de ayudarte. Por favor, <a href=\\\"mailto:support@social27.com\\\">haz clic aquí</a> y un agente humano te asistirá lo antes posible.\",\n de: \"Es tut uns leid, dass wir Ihre Frage nicht beantworten konnten. Unser engagiertes Support-Team hilft Ihnen jedoch gerne weiter. Bitte <a href=\\\"mailto:support@social27.com\\\">klicken Sie hier</a>, und ein menschlicher Mitarbeiter wird Ihnen so bald wie möglich helfen.\",\n \"pt-br\": \"Lamentamos não ter conseguido responder à sua pergunta. No entanto, nossa equipe de suporte dedicada ficará feliz em ajudar. Por favor, <a href=\\\"mailto:support@social27.com\\\">clique aqui</a> e um agente humano o ajudará o mais rápido possível.\",\n ar: \"نأسف لعدم تمكننا من الإجابة على سؤالك. ومع ذلك، يسعد فريق الدعم المخصص لدينا بمساعدتك. يرجى <a href=\\\"mailto:support@social27.com\\\">النقر هنا</a> وسيساعدك أحد الوكلاء البشريين في أقرب وقت ممكن.\",\n zh: \"很抱歉我们未能回答您的问题。不过,我们的专属支持团队很乐意为您提供帮助。请<a href=\\\"mailto:support@social27.com\\\">点击这里</a>,人工客服将尽快为您提供协助。\",\n ru: \"К сожалению, мы не смогли ответить на ваш вопрос. Однако наша служба поддержки с радостью вам поможет. Пожалуйста, <a href=\\\"mailto:support@social27.com\\\">нажмите здесь</a>, и наш оператор свяжется с вами как можно скорее.\"\n }\n},\n {\n Key: 'Ask anything',\n DefaultValue: 'Ask anything',\n Translations: {\n en: 'Ask anything',\n fr: 'Demandez ce que vous voulez',\n it: 'Chiedi qualsiasi cosa',\n es: 'Pregunta lo que quieras',\n de: 'Frag alles',\n 'pt-br': 'Pergunte qualquer coisa',\n ar: 'اسأل أي شيء',\n zh: '随便问',\n ru: 'Спросите что угодно',\n },\n },\n {\n Key: 'Assistant',\n DefaultValue: 'Assistant',\n Translations: {\n en: 'Assistant',\n fr: 'Assistant',\n it: 'Assistente',\n es: 'Asistente',\n de: 'Assistent',\n 'pt-br': 'Assistente',\n ar: 'مساعد',\n zh: '助手',\n ru: 'Ассистент',\n },\n },\n {\n Key: 'Your personal or company information is kept private and secure within this chat.',\n DefaultValue:\n 'Your personal or company information is kept private and secure within this chat.',\n Translations: {\n en: 'Your personal or company information is kept private and secure within this chat.',\n fr: 'Vos informations personnelles ou celles de votre entreprise sont conservées privées et sécurisées dans cette conversation.',\n it: \"Le tue informazioni personali o aziendali sono mantenute private e sicure all'interno di questa chat.\",\n es: 'Tu información personal o de la empresa se mantiene privada y segura dentro de este chat.',\n de: 'Ihre persönlichen oder geschäftlichen Informationen bleiben in diesem Chat privat und sicher.',\n 'pt-br':\n 'Suas informações pessoais ou da empresa são mantidas privadas e seguras dentro deste chat.',\n ar: 'تظل معلوماتك الشخصية أو معلومات شركتك خاصة وآمنة داخل هذه المحادثة.',\n zh: '您的个人或公司信息在此聊天中保持私密和安全。',\n ru: 'Ваша личная или корпоративная информация остается конфиденциальной и защищенной в этом чате.',\n },\n },\n {\n Key: 'Send message',\n DefaultValue: 'Send message',\n Translations: {\n en: 'Send message',\n fr: 'Envoyer un message',\n it: 'Invia messaggio',\n es: 'Enviar mensaje',\n de: 'Nachricht senden',\n 'pt-br': 'Enviar mensagem',\n ar: 'إرسال رسالة',\n zh: '发送消息',\n ru: 'Отправить сообщение',\n },\n },\n {\n Key: 'Platform GPT',\n DefaultValue: 'Platform GPT',\n Translations: {\n en: 'Platform GPT',\n fr: 'Plateforme GPT',\n it: 'Piattaforma GPT',\n es: 'Plataforma GPT',\n de: 'Plattform GPT',\n 'pt-br': 'Plataforma GPT',\n ar: 'منصة GPT',\n zh: '平台 GPT',\n ru: 'Платформа GPT',\n },\n },\n {\n Key: 'New Chat',\n DefaultValue: 'New Chat',\n Translations: {\n en: 'New Chat',\n fr: 'Nouvelle conversation',\n it: 'Nuova chat',\n es: 'Nuevo chat',\n de: 'Neuer Chat',\n 'pt-br': 'Novo chat',\n ar: 'محادثة جديدة',\n zh: '新聊天',\n ru: 'Новый чат',\n },\n },\n {\n Key: 'You',\n DefaultValue: 'You',\n Translations: {\n en: 'You',\n fr: 'Vous',\n it: 'Tu',\n es: 'Tú',\n de: 'Du',\n 'pt-br': 'Você',\n ar: 'أنت',\n zh: '您',\n ru: 'Вы',\n },\n },\n {\n Key: 'Write your message',\n DefaultValue: 'Write your message',\n Translations: {\n en: 'Write your message',\n fr: 'Écrivez votre message',\n it: 'Scrivi il tuo messaggio',\n es: 'Escribe tu mensaje',\n de: 'Schreiben Sie Ihre Nachricht',\n 'pt-br': 'Escreva sua mensagem',\n ar: 'اكتب رسالتك',\n zh: '写下您的消息',\n ru: 'Напишите ваше сообщение',\n },\n },\n {\n Key: 'Send',\n DefaultValue: 'Send',\n Translations: {\n en: 'Send',\n fr: 'Envoyer',\n it: 'Invia',\n es: 'Enviar',\n de: 'Senden',\n 'pt-br': 'Enviar',\n ar: 'إرسال',\n zh: '发送',\n ru: 'Отправить',\n },\n },\n \n {\n Key: 'Call Interface',\n DefaultValue: 'Call Interface',\n Translations: {\n en: 'Call Interface',\n fr: \"Interface d'appel\",\n it: 'Interfaccia chiamata',\n es: 'Interfaz de llamada',\n de: 'Anrufoberfläche',\n 'pt-br': 'Interface de chamada',\n ar: 'واجهة الاتصال',\n zh: '呼叫界面',\n ru: 'Интерфейс звонка',\n },\n },\n {\n Key: 'Close',\n DefaultValue: 'Close',\n Translations: {\n en: 'Close',\n fr: 'Fermer',\n it: 'Chiudi',\n es: 'Cerrar',\n de: 'Schließen',\n 'pt-br': 'Fechar',\n ar: 'إغلاق',\n zh: '关闭',\n ru: 'Закрыть',\n },\n },\n ];\n}\n","const formatHoursAndMinutes = (date: Date) => {\n let hours = date.getHours() % 12;\n const minutes = date.getMinutes();\n const amPm = date.getHours() < 12 ? 'AM' : 'PM';\n if(hours === 0) hours = 12;\n\n const formattedHours = hours < 10 ? `0${hours}` : hours;\n const formattedMinutes = minutes < 10 ? `0${minutes}` : minutes;\n\n return `${formattedHours}:${formattedMinutes} ${amPm}`;\n};\n\nexport const formatNow = (timezone?: string) => {\n const now = new Date();\n if (timezone) {\n const options: any = {\n hour12: true,\n hour: 'numeric',\n minute: 'numeric',\n timeZone: timezone,\n };\n return now.toLocaleString('en-US', options);\n }\n return formatHoursAndMinutes(now);\n};\n\nexport const formatTimeStamps = (timezone: string, timestamps: any) => {\n const date = new Date(timestamps + 'Z');\n\n const options: any = {\n hour12: true,\n hour: 'numeric',\n minute: 'numeric',\n timeZone: timezone,\n };\n return date.toLocaleString('en-US', options);\n};\n","\n\nexport const prod_environment = {\n USERS_API: 'https://es-user.social27.com/api',\n BASE_URL: 'https://agent-api.hivegpt.ai',\n AGENTS_API: 'https://hive-ai.social27.com/api',\n API_KEY: '82595783-dc9c-4513-8204-709818d51be3',\n SocketUrl: 'https://notif-v2-ws.social27.com/'\n}\n\n\nexport const dev_environment = {\n USERS_API: 'https://pre-user.social27.com/api',\n BASE_URL: 'https://pre-agent-api.hivegpt.ai',\n AGENTS_API: 'https://hive-pre-ai.social27.com/api',\n API_KEY: '66d59244c50b8fb597a101t1',\n SocketUrl: 'https://notif-ws-staging.social27.com/',\n};\n\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConversationService {\n private conversationStorageKeyPrefix = 'conversationKey_';\n private sessionStorageKeyPrefix = 'sessionKey_';\n\n private userSpecificNotification: Subject<any> = new Subject<any>();\n\n constructor() { }\n\n 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\n getKey(botId: string, resetKey: boolean = false): string {\n const storageKey = `${this.conversationStorageKeyPrefix}${botId}`;\n let value = localStorage.getItem(storageKey);\n\n if (!value || resetKey) {\n value = this.generateKey();\n localStorage.setItem(storageKey, value);\n }\n\n return value;\n }\n\n getSessionKey(sessionId: string, resetKey: boolean = false): string {\n const storageKey = `${this.sessionStorageKeyPrefix}${sessionId}`;\n let value = localStorage.getItem(storageKey);\n\n if (!value || resetKey) {\n value = this.generateKey();\n localStorage.setItem(storageKey, value);\n }\n\n return value;\n }\n\n sendValidatedUserData(message: any) {\n this.userSpecificNotification.next(message);\n }\n\n getUserSpecificNotification(): Observable<any> {\n return this.userSpecificNotification.asObservable();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Socket, SocketIoConfig } from 'ngx-socket-io';\nimport { prod_environment } from '../../environments/environment';\n\n@Injectable({\n providedIn: 'root' // This ensures the service is available across the application\n})\nexport class NotificationSocket extends Socket {\n constructor() {\n super(socketConfig);\n\n // Log connection status\n this.on('connect', () => {\n console.log('Socket connected');\n });\n\n this.on('disconnect', () => {\n console.warn('Socket disconnected');\n });\n\n this.on('connect_error', (err) => {\n console.error('Socket connection error:', err);\n });\n }\n}\n\nconst socketConfig: SocketIoConfig = {\n url: prod_environment.SocketUrl,\n options: {\n transports: ['websocket', 'polling'],\n reconnection: true,\n autoConnect: true,\n upgrade: true,\n reconnectionDelay: 1000,\n reconnectionDelayMax: 5000,\n reconnectionAttempts: Infinity\n }\n};","import { Injectable } from '@angular/core';\n\nimport { Observable, Subject } from 'rxjs';\nimport { webSocket, WebSocketSubject } from 'rxjs/webSocket';\nimport { ConversationService } from './conversation.service';\nimport { NotificationSocket } from './NotificationSocket';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SocketService {\n public testMessage: string;\n private isCommonSocketInitialized = false;\n private isUserSpecificSocketInitialized = false;\n private isUserSpecificEventReleased = true;\n private messageQueue: any[] = [];\n private releaseInterval = 1000;\n private intervalSetup: boolean = false;\n\n constructor(\n private conversationService: ConversationService,\n private notificationSocket: NotificationSocket\n ) {\n this.startReleasingMessages();\n }\n\n isSocketInitialized(isCommon: boolean) {\n return isCommon\n ? this.isCommonSocketInitialized\n : this.isUserSpecificSocketInitialized &&\n !this.isUserSpecificEventReleased;\n }\n\n disconnectSocketConnection() {\n this.notificationSocket.disconnect();\n }\n connectSocketConnection() {\n this.notificationSocket.connect();\n }\n registerUserSpecificHiveSocket(botId: string, conversation_id: string, org_id: string) {\n const commonNotification = 'commonNotification';\n const groupId = `Hive_AI_Notifs_${botId}_${conversation_id}`;\n const groupId_org = `Hive_AI_Notifs_${org_id}`;\n\n // Remove any pre-existing listeners for commonNotification\n // this.notificationSocket.removeAllListeners(commonNotification);\n\n // Join the group again with updated botId and conversation_id\n this.notificationSocket.emit('joinData', { groupId });\n this.notificationSocket.emit('joinData', { groupId: groupId_org });\n\n // Re-register for common notifications\n this.notificationSocket.fromEvent(commonNotification).subscribe(\n (res) => {\n console.log('Received commonNotification:', res);\n this.conversationService.sendValidatedUserData(res);\n },\n (error) => {\n console.error('Error receiving commonNotification:', error);\n }\n );\n }\n\n private startReleasingMessages() {\n if (!this.intervalSetup) {\n setInterval(() => {\n if (this.messageQueue.length > 0) {\n const message = this.messageQueue.shift(); // Remove the first message from the queue\n // Handle the message here, e.g., send it to the server or process it\n console.log('Releasing message from queue:', message);\n // this.campaignService.sendValidatedUserData(message);\n }\n }, this.releaseInterval);\n this.intervalSetup = true; // Prevents multiple intervals\n }\n }\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { catchError, map } from 'rxjs/operators';\n\nimport { HttpHeaders } from '@angular/common/http';\nimport { Observable, Subject, throwError } from 'rxjs';\nimport { AnyRecord } from 'dns';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BotsService {\n eventDescription = new Subject();\n bot_api = 'https://agent-api.hivegpt.ai/';\n constructor(private http: HttpClient) { }\n\n fetchSpeechAuthorizationToken(botId, apiKey, domain) {\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n 'x-api-key': apiKey,\n 'hive-bot-id': botId,\n 'domain-authority': domain\n });\n\n const apiUrl = `${this.bot_api}speech/issue_token`;\n const url = `${apiUrl}`;\n return this.http.get(url, { headers }).pipe(\n map((resp: any) => {\n return resp.token;\n })\n );\n }\n\n getWorkflowsByOrgId(orgId: string): Observable<any> {\n const apiUrl = `${this.bot_api}workflows`;\n const url = `${apiUrl}?org_id=${orgId}`;\n return this.http.get(url).pipe(\n map((resp: any) => {\n return resp;\n })\n );\n }\n\n getWorkflowExecutionById(executionId: string): Observable<any> {\n const apiUrl = `${this.bot_api}workflows/execution/${executionId}`;\n return this.http.get(apiUrl).pipe(\n map((resp: any) => {\n return resp;\n })\n );\n }\n}","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AudioAnalyzerService {\n private audioContext: AudioContext | null = null;\n private analyserNode: AnalyserNode | null = null;\n private dataArray: Uint8Array | null = null;\n private animationFrameId: number | null = null;\n private isRunning = false;\n\n private audioLevelsSubject = new BehaviorSubject<number[]>([]);\n private isUserSpeakingSubject = new BehaviorSubject<boolean>(false);\n\n // Adaptive noise floor detection\n private noiseFloor = 0;\n private noiseFloorSamples: number[] = [];\n private readonly NOISE_FLOOR_SAMPLE_COUNT = 30;\n private readonly SPEAKING_THRESHOLD_MULTIPLIER = 2.5;\n private readonly WAVEFORM_BAR_COUNT = 40;\n\n audioLevels$: Observable<number[]> = this.audioLevelsSubject.asObservable();\n isUserSpeaking$: Observable<boolean> = this.isUserSpeakingSubject.asObservable();\n\n start(stream: MediaStream): void {\n if (this.isRunning) {\n this.stop();\n }\n\n try {\n this.audioContext = new (window.AudioContext || (window as any).webkitAudioContext)();\n const source = this.audioContext.createMediaStreamSource(stream);\n \n this.analyserNode = this.audioContext.createAnalyser();\n this.analyserNode.fftSize = 2048;\n this.analyserNode.smoothingTimeConstant = 0.8;\n \n const bufferLength = this.analyserNode.frequencyBinCount;\n this.dataArray = new Uint8Array(bufferLength);\n \n source.connect(this.analyserNode);\n \n this.isRunning = true;\n this.noiseFloorSamples = [];\n this.noiseFloor = 0;\n \n this.analyze();\n } catch (error) {\n console.error('Error starting audio analyzer:', error);\n this.stop();\n }\n }\n\n stop(): void {\n this.isRunning = false;\n \n if (this.animationFrameId !== null) {\n cancelAnimationFrame(this.animationFrameId);\n this.animationFrameId = null;\n }\n\n if (this.analyserNode) {\n this.analyserNode.disconnect();\n this.analyserNode = null;\n }\n\n if (this.audioContext && this.audioContext.state !== 'closed') {\n this.audioContext.close().catch(console.error);\n this.audioContext = null;\n }\n\n this.dataArray = null;\n this.audioLevelsSubject.next([]);\n this.isUserSpeakingSubject.next(false);\n }\n\n private analyze(): void {\n if (!this.isRunning || !this.analyserNode || !this.dataArray) {\n return;\n }\n\n this.analyserNode.getByteTimeDomainData(this.dataArray);\n \n // Calculate RMS (Root Mean Square) volume\n const rms = this.calculateRMS(this.dataArray);\n \n // Learn noise floor during initial samples\n if (this.noiseFloorSamples.length < this.NOISE_FLOOR_SAMPLE_COUNT) {\n this.noiseFloorSamples.push(rms);\n if (this.noiseFloorSamples.length === this.NOISE_FLOOR_SAMPLE_COUNT) {\n // Calculate average noise floor\n const sum = this.noiseFloorSamples.reduce((a, b) => a + b, 0);\n this.noiseFloor = sum / this.NOISE_FLOOR_SAMPLE_COUNT;\n }\n } else {\n // Update noise floor adaptively (moving average)\n this.noiseFloor = this.noiseFloor * 0.99 + rms * 0.01;\n }\n\n // Detect if user is speaking\n const threshold = this.noiseFloor * this.SPEAKING_THRESHOLD_MULTIPLIER;\n const isSpeaking = rms > threshold;\n this.isUserSpeakingSubject.next(isSpeaking);\n\n // Generate waveform bars\n const bars = this.generateWaveformBars(this.dataArray);\n this.audioLevelsSubject.next(bars);\n\n this.animationFrameId = requestAnimationFrame(() => this.analyze());\n }\n\n private calculateRMS(data: Uint8Array): number {\n let sum = 0;\n for (let i = 0; i < data.length; i++) {\n const normalized = (data[i] - 128) / 128;\n sum += normalized * normalized;\n }\n return Math.sqrt(sum / data.length);\n }\n\n private generateWaveformBars(data: Uint8Array): number[] {\n const bars: number[] = [];\n const step = Math.floor(data.length / this.WAVEFORM_BAR_COUNT);\n \n for (let i = 0; i < this.WAVEFORM_BAR_COUNT; i++) {\n const index = i * step;\n const value = data[index];\n // Normalize to 0-100\n const normalized = Math.abs((value - 128) / 128) * 100;\n bars.push(Math.min(100, Math.max(0, normalized)));\n }\n \n return bars;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport {\n PipecatClient,\n RTVIEvent,\n APIRequest,\n} from '@pipecat-ai/client-js';\nimport { WebSocketTransport } from '@pipecat-ai/websocket-transport';\nimport { AudioAnalyzerService } from './audio-analyzer.service';\n\nexport type CallState = 'idle' | 'connecting' | 'connected' | 'talking' | 'listening' | 'ended';\n\nexport interface TranscriptData {\n text: string;\n final: boolean;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class VoiceAgentService {\n private client: PipecatClient | null = null;\n private transport: InstanceType<typeof WebSocketTransport> | null = null;\n private userMediaStream: MediaStream | null = null;\n private botAudioElement: HTMLAudioElement | null = null;\n\n private callStateSubject = new BehaviorSubject<CallState>('idle');\n private statusTextSubject = new BehaviorSubject<string>('');\n private durationSubject = new BehaviorSubject<string>('00:00');\n private isMicMutedSubject = new BehaviorSubject<boolean>(false);\n private isUserSpeakingSubject = new BehaviorSubject<boolean>(false);\n private audioLevelsSubject = new BehaviorSubject<number[]>([]);\n private userTranscriptSubject = new Subject<TranscriptData>();\n private botTranscriptSubject = new Subject<string>();\n\n private callStartTime: number = 0;\n private durationInterval: ReturnType<typeof setInterval> | null = null;\n\n callState$: Observable<CallState> = this.callStateSubject.asObservable();\n statusText$: Observable<string> = this.statusTextSubject.asObservable();\n duration$: Observable<string> = this.durationSubject.asObservable();\n isMicMuted$: Observable<boolean> = this.isMicMutedSubject.asObservable();\n isUserSpeaking$: Observable<boolean> = this.isUserSpeakingSubject.asObservable();\n audioLevels$: Observable<number[]> = this.audioLevelsSubject.asObservable();\n userTranscript$: Observable<TranscriptData> = this.userTranscriptSubject.asObservable();\n botTranscript$: Observable<string> = this.botTranscriptSubject.asObservable();\n\n /** Reset to idle state (e.g. when modal opens so user can click Start Call). */\n resetToIdle(): void {\n if (this.callStateSubject.value === 'idle') return;\n if (this.durationInterval) {\n clearInterval(this.durationInterval);\n this.durationInterval = null;\n }\n this.audioAnalyzer.stop();\n this.client = null;\n this.transport = null;\n if (this.userMediaStream) {\n this.userMediaStream.getTracks().forEach(track => track.stop());\n this.userMediaStream = null;\n }\n if (this.botAudioElement) {\n this.botAudioElement.pause();\n this.botAudioElement.srcObject = null;\n this.botAudioElement = null;\n }\n this.callStateSubject.next('idle');\n this.statusTextSubject.next('');\n this.durationSubject.next('0:00');\n }\n\n constructor(private audioAnalyzer: AudioAnalyzerService) {\n this.audioAnalyzer.audioLevels$.subscribe(levels => {\n this.audioLevelsSubject.next(levels);\n });\n\n this.audioAnalyzer.isUserSpeaking$.subscribe(isSpeaking => {\n this.isUserSpeakingSubject.next(isSpeaking);\n if (isSpeaking && this.callStateSubject.value === 'connected') {\n this.callStateSubject.next('listening');\n } else if (!isSpeaking && this.callStateSubject.value === 'listening') {\n this.callStateSubject.next('connected');\n }\n });\n }\n\n async connect(\n apiUrl: string,\n token: string,\n botId: string,\n conversationId: string,\n apiKey: string,\n eventToken: string,\n eventUrl: string,\n domainAuthority: string\n ): Promise<void> {\n if (this.callStateSubject.value !== 'idle') {\n console.warn('Call already in progress');\n return;\n }\n\n try {\n this.callStateSubject.next('connecting');\n this.statusTextSubject.next('Connecting...');\n\n const baseUrl = apiUrl.replace(/\\/$/, '');\n const connectUrl = `${baseUrl}/ai/ask-voice`;\n\n const headers = new Headers();\n headers.set('Authorization', `Bearer ${token}`);\n // Do not set Content-Type here — the Pipecat client already sets \"application/json\" once; adding it again produces \"application/json, application/json\"\n headers.set('domain-authority', domainAuthority);\n headers.set('eventtoken', eventToken);\n headers.set('eventurl', eventUrl);\n headers.set('hive-bot-id', botId);\n headers.set('x-api-key', apiKey);\n\n const startBotParams: APIRequest = {\n endpoint: connectUrl,\n headers,\n requestData: {\n bot_id: botId,\n conversation_id: conversationId,\n voice: 'alloy',\n },\n };\n\n this.transport = new WebSocketTransport();\n this.client = new PipecatClient({\n transport: this.transport,\n enableMic: true,\n enableCam: false,\n });\n\n this.setupEventHandlers();\n\n this.botAudioElement = new Audio();\n this.botAudioElement.autoplay = true;\n\n await this.client.startBotAndConnect(startBotParams);\n\n const tracks = this.client.tracks();\n if (tracks?.local?.audio) {\n this.userMediaStream = new MediaStream([tracks.local.audio]);\n this.audioAnalyzer.start(this.userMediaStream);\n }\n\n this.isMicMutedSubject.next(!this.client.isMicEnabled);\n this.callStateSubject.next('connected');\n this.statusTextSubject.next('Connected');\n this.callStartTime = Date.now();\n this.startDurationTimer();\n } catch (error) {\n console.error('Error connecting voice agent:', error);\n this.callStateSubject.next('ended');\n await this.disconnect();\n this.statusTextSubject.next('Connection failed');\n throw error;\n }\n }\n\n async disconnect(): Promise<void> {\n try {\n if (this.durationInterval) {\n clearInterval(this.durationInterval);\n this.durationInterval = null;\n }\n\n this.audioAnalyzer.stop();\n\n if (this.client) {\n await this.client.disconnect();\n this.client = null;\n }\n\n this.transport = null;\n\n if (this.userMediaStream) {\n this.userMediaStream.getTracks().forEach(track => track.stop());\n this.userMediaStream = null;\n }\n\n if (this.botAudioElement) {\n this.botAudioElement.pause();\n this.botAudioElement.srcObject = null;\n this.botAudioElement = null;\n }\n\n this.callStateSubject.next('ended');\n this.statusTextSubject.next('Call Ended');\n // Keep current duration so \"Call Ended\" state can show it (e.g. \"Call Ended 1:04\")\n } catch (error) {\n console.error('Error disconnecting voice agent:', error);\n }\n }\n\n toggleMic(): void {\n if (!this.client) return;\n const newState = !this.client.isMicEnabled;\n this.client.enableMic(newState);\n this.isMicMutedSubject.next(!newState);\n }\n\n private setupEventHandlers(): void {\n if (!this.client) return;\n\n this.client.on(RTVIEvent.BotStartedSpeaking, () => {\n this.callStateSubject.next('talking');\n });\n\n this.client.on(RTVIEvent.BotStoppedSpeaking, () => {\n if (this.callStateSubject.value === 'talking') {\n this.callStateSubject.next('connected');\n }\n });\n\n this.client.on(RTVIEvent.TrackStarted, (track: MediaStreamTrack, participant?: { local?: boolean }) => {\n if (this.botAudioElement && participant && !participant.local && track.kind === 'audio') {\n const stream = new MediaStream([track]);\n this.botAudioElement.srcObject = stream;\n this.botAudioElement.play().catch(console.error);\n }\n });\n\n this.client.on(RTVIEvent.UserTranscript, (data: { text: string; final?: boolean }) => {\n this.userTranscriptSubject.next({\n text: data.text,\n final: data.final ?? false,\n });\n });\n\n this.client.on(RTVIEvent.BotTranscript, (data: { text?: string }) => {\n if (data?.text) {\n this.botTranscriptSubject.next(data.text);\n }\n });\n\n this.client.on(RTVIEvent.Error, () => {\n this.statusTextSubject.next('Error occurred');\n });\n\n this.client.on(RTVIEvent.Disconnected, () => {\n this.callStateSubject.next('ended');\n this.statusTextSubject.next('Disconnected');\n this.disconnect();\n });\n }\n\n private startDurationTimer(): void {\n const updateDuration = () => {\n if (this.callStartTime > 0) {\n const elapsed = Math.floor((Date.now() - this.callStartTime) / 1000);\n const minutes = Math.floor(elapsed / 60);\n const seconds = elapsed % 60;\n this.durationSubject.next(\n `${minutes}:${String(seconds).padStart(2, '0')}`\n );\n }\n };\n updateDuration(); // show 0:00 immediately\n this.durationInterval = setInterval(updateDuration, 1000);\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface VoiceModalConfig {\n apiUrl: string;\n token: string;\n botId: string;\n conversationId: string;\n apiKey: string;\n eventToken: string;\n eventUrl: string;\n domainAuthority: string;\n agentName: string;\n agentRole: string;\n agentAvatar?: string;\n}\n\nexport const VOICE_MODAL_CONFIG = new InjectionToken<VoiceModalConfig>('VOICE_MODAL_CONFIG');\nexport const VOICE_MODAL_CLOSE_CALLBACK = new InjectionToken<() => void>('VOICE_MODAL_CLOSE_CALLBACK');\n","import { Component, Input, OnInit, OnDestroy, Output, EventEmitter, Injector } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { VoiceAgentService, CallState } from '../../services/voice-agent.service';\nimport { AudioAnalyzerService } from '../../services/audio-analyzer.service';\nimport { VOICE_MODAL_CONFIG, VOICE_MODAL_CLOSE_CALLBACK, VoiceModalConfig } from '../../voice-modal-tokens';\n\n@Component({\n selector: 'hivegpt-voice-agent-modal',\n templateUrl: './voice-agent-modal.component.html',\n styleUrls: ['./voice-agent-modal.component.scss']\n})\nexport class VoiceAgentModalComponent implements OnInit, OnDestroy {\n @Output() close = new EventEmitter<void>();\n @Input() apiUrl!: string;\n @Input() token!: string;\n @Input() botId!: string;\n @Input() conversationId!: string;\n @Input() apiKey: string = '';\n @Input() eventToken: string = '';\n @Input() eventUrl: string = '';\n @Input() domainAuthority: string = 'prod-lite';\n @Input() agentName: string = 'AI Assistant';\n @Input() agentRole: string = 'AI Agent Specialist';\n @Input() agentAvatar?: string;\n\n private injectedConfig: VoiceModalConfig | null = null;\n private onCloseCallback: (() => void) | null = null;\n\n constructor(\n public voiceAgentService: VoiceAgentService,\n public audioAnalyzer: AudioAnalyzerService,\n private injector: Injector\n ) {}\n\n /** Hardcoded voice agent avatar (Nia). */\n readonly displayAvatarUrl = 'https://www.jotform.com/uploads/mehmetkarakasli/form_files/1564593667676a8e85f23758.86945537_icon.png';\n\n callState: CallState = 'idle';\n statusText: string = '';\n duration: string = '00:00';\n isMicMuted: boolean = false;\n isUserSpeaking: boolean = false;\n audioLevels: number[] = [];\n isSpeaking: boolean = false;\n\n /** Once user or bot has spoken, show \"Ready\" instead of \"Connected\" when idle in call. */\n private hasLeftConnectedOnce: boolean = false;\n\n private subscriptions: Subscription[] = [];\n\n ngOnInit(): void {\n // When opened via Overlay, config is provided by injection\n this.injectedConfig = this.injector.get(VOICE_MODAL_CONFIG, null);\n this.onCloseCallback = this.injector.get(VOICE_MODAL_CLOSE_CALLBACK, null);\n if (this.injectedConfig) {\n this.apiUrl = this.injectedConfig.apiUrl;\n this.token = this.injectedConfig.token;\n this.botId = this.injectedConfig.botId;\n this.conversationId = this.injectedConfig.conversationId;\n this.apiKey = this.injectedConfig.apiKey ?? '';\n this.eventToken = this.injectedConfig.eventToken ?? '';\n this.eventUrl = this.injectedConfig.eventUrl ?? '';\n this.domainAuthority = this.injectedConfig.domainAuthority ?? 'prod-lite';\n this.agentName = this.injectedConfig.agentName ?? this.agentName;\n this.agentRole = this.injectedConfig.agentRole ?? this.agentRole;\n this.agentAvatar = this.injectedConfig.agentAvatar;\n }\n\n // Subscribe to observables\n this.subscriptions.push(\n this.voiceAgentService.callState$.subscribe(state => {\n this.callState = state;\n this.isSpeaking = state === 'talking';\n if (state === 'listening' || state === 'talking') {\n this.hasLeftConnectedOnce = true;\n }\n if (state === 'idle' || state === 'ended') {\n this.hasLeftConnectedOnce = false;\n }\n })\n );\n\n this.subscriptions.push(\n this.voiceAgentService.statusText$.subscribe(text => {\n this.statusText = text;\n })\n );\n\n this.subscriptions.push(\n this.voiceAgentService.duration$.subscribe(duration => {\n this.duration = duration;\n })\n );\n\n this.subscriptions.push(\n this.voiceAgentService.isMicMuted$.subscribe(muted => {\n this.isMicMuted = muted;\n })\n );\n\n this.subscriptions.push(\n this.voiceAgentService.isUserSpeaking$.subscribe(speaking => {\n this.isUserSpeaking = speaking;\n })\n );\n\n this.subscriptions.push(\n this.voiceAgentService.audioLevels$.subscribe(levels => {\n this.audioLevels = levels;\n })\n );\n\n // Modal opens in idle state; user clicks \"Start Call\" to connect (no auto-connect).\n this.voiceAgentService.resetToIdle();\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach(sub => sub.unsubscribe());\n this.disconnect();\n }\n\n isConnecting: boolean = false;\n\n async startCall(): Promise<void> {\n if (this.isConnecting || (this.callState !== 'idle' && this.callState !== 'ended')) return;\n this.isConnecting = true;\n try {\n await this.voiceAgentService.connect(\n this.apiUrl,\n this.token,\n this.botId,\n this.conversationId,\n this.apiKey,\n this.eventToken,\n this.eventUrl,\n this.domainAuthority\n );\n } catch (error) {\n console.error('Failed to connect voice agent:', error);\n } finally {\n this.isConnecting = false;\n }\n }\n\n async disconnect(): Promise<void> {\n await this.voiceAgentService.disconnect();\n }\n\n toggleMic(): void {\n this.voiceAgentService.toggleMic();\n }\n\n /** Map audio level (0–100) to waveform bar height in px (3–20). */\n getWaveformHeight(level: number): number {\n const n = Math.min(100, Math.max(0, level ?? 0));\n return 3 + (n / 100) * 17;\n }\n\n /** Status label for active call. \"Connected\" only once; then \"Ready\" when idle in call. */\n get statusLabel(): string {\n if (this.callState === 'connecting') return this.statusText || 'Connecting...';\n if (this.callState === 'talking') return 'Talking...';\n if (this.callState === 'listening') return 'Listening';\n if (this.callState === 'connected') {\n return this.hasLeftConnectedOnce ? 'Listening' : 'Connected';\n }\n return this.statusText || '';\n }\n\n /** Call Again: reset to idle then start a new call. */\n callAgain(): void {\n this.voiceAgentService.resetToIdle();\n this.startCall();\n }\n\n /** Back to Chat: close modal and disconnect. */\n backToChat(): void {\n this.endCall();\n }\n\n /** End call but keep modal open to show Call Ended + Call Again / Back to Chat. */\n hangUp(): void {\n this.disconnect();\n }\n\n endCall(): void {\n this.disconnect();\n this.onCloseCallback?.();\n this.close.emit();\n }\n}\n","// import { Platform } from '@angular/cdk/platform';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { TranslationService } from '../translations/translation.service';\n\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Injector,\n Input,\n OnChanges,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n SimpleChanges,\n ViewChild,\n ViewChildren,\n ViewContainerRef,\n} from '@angular/core';\nimport { MatDrawer } from '@angular/material/sidenav';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { of, Subscription } from 'rxjs';\nimport { catchError, switchMap } from 'rxjs/operators';\nimport { formatNow, formatTimeStamps } from '../../utils/utils';\nimport {\n dev_environment,\n prod_environment,\n} from '../../../environments/environment';\nimport { ConversationService } from '../conversation.service';\nimport { Observable } from 'rxjs';\nimport { SocketService } from '../socket-service.service';\n\nimport { FormBuilder, Validators } from '@angular/forms';\nimport * as SpeechSDK from 'microsoft-cognitiveservices-speech-sdk';\nimport { BotsService } from '../bot.service';\nimport * as marked from 'marked'; // Import marked\nimport { VoiceAgentService } from '../voice-agent/services/voice-agent.service';\nimport { VoiceAgentModalComponent } from '../voice-agent/components/voice-agent-modal/voice-agent-modal.component';\nimport {\n VOICE_MODAL_CONFIG,\n VOICE_MODAL_CLOSE_CALLBACK,\n VoiceModalConfig,\n} from '../voice-agent/voice-modal-tokens';\n\n@Component({\n selector: 'hivegpt-chat-drawer-package',\n templateUrl: './chat-drawer.component.html',\n styleUrls: ['./chat-drawer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ChatDrawerComponent implements OnInit, OnChanges {\n @ViewChild('chatMain') private chatMain: ElementRef;\n @ViewChild('myInput', { static: false })\n myInput!: ElementRef<HTMLTextAreaElement>; // Reference to the textarea\n @ViewChildren('closeplaygroundbutton')\n closePlaygroundButtons: QueryList<ElementRef>;\n @ViewChild('drawer') drawer!: MatDrawer;\n @ViewChild('sourcesDrawer') sourcesDrawer!: MatDrawer;\n @ViewChild('editorsDrawer') editorsDrawer!: MatDrawer;\n private bodyOverflowClass = 'body-overflow-hidden';\n isCollapsedTrue = false;\n @Input() copilotName: string = 'HiveXGPT';\n @Input() firstName!: string;\n @Input() lastName!: string;\n @Input() apiKey!: string;\n @Input() bgBubbleAi!: string;\n @Input() bgBubbleUser!: string;\n @Input() bgGradient!: string[];\n @Input() botName!: string;\n @Input() botSkills!: string;\n @Input() botId!: string;\n @Input() orgId!: string;\n @Input() closeButtonColor!: string;\n @Input() closeButtonbgColor!: string;\n @Input() credentials!: [];\n @Input() dateTimeColor!: string;\n @Input() dateTextColor!: string;\n @Input() eventId!: string;\n @Input() eventUrl!: string;\n @Input() eventToken!: string;\n @Input() workspaceToken!: string;\n @Input() s27Token!: string;\n @Input() eventName!: string;\n @Input() botIcon!: string;\n @Input() formFieldBgColor!: string;\n @Input() formFieldTextColor!: string;\n @Input() fullView!: boolean;\n @Input() gradientColors!: string[];\n @Input() greeting!: string;\n @Input() messageTextColorAi!: string;\n @Input() messageTextColorUser!: string;\n @Input() rules!: string;\n @Input() sendButtonColor!: string;\n @Input() sendButtonTextColor!: string;\n @Input() showClose!: boolean;\n @Input() thumbsDownMessages!: string[];\n @Input() thumbsUpMessage!: string;\n @Input() timezone!: string;\n @Input() unknownResponses!: [];\n @Input() useOpenAi!: boolean;\n @Input() userId!: string;\n @Input() isDev!: boolean;\n\n @Input() againButtonColor!: string[];\n @Input() againButtonTextColor!: string[];\n @Output() feedbackEvent = new EventEmitter<string>();\n @Output() onCloseEvent = new EventEmitter<void>();\n @Output() openPage = new EventEmitter<any>();\n @Output() sessionActions = new EventEmitter<any>();\n @Output() closeBot = new EventEmitter<any>();\n @Output() connectWithUser = new EventEmitter<any>();\n @Output() scheduleMeeting = new EventEmitter<string>();\n @Output() refreshToken = new EventEmitter<any>();\n @Output() openSupport = new EventEmitter<any>();\n\n autogenKey = 'Autogen_eDJTtEU-NB0RtIpzq1w';\n addToMyAgendaAction = 'add_to_my_agenda';\n myUpcomingSessionAction = 'my_upcomming_session';\n connectOrFollowAction = 'connect_or_follow';\n aiResponse: string = '';\n chatLog: any[] = [];\n decoder = new TextDecoder();\n feedbackDone: boolean = false;\n greetingMsg: string = '';\n hasBackdropValue: boolean = false;\n input: string = '';\n listenerAdded = false;\n loading: boolean = false;\n mode: string = 'over';\n quickPrompts: any[] = [];\n thumbsDownMsgIndex = 0;\n userName: string = '';\n showStartAgain: boolean = false;\n isIOSDevice: boolean = false;\n showFeedBackIconsIndex: number | null = null;\n temperature: number = 1;\n speakers = [];\n environment: {\n USERS_API;\n BASE_URL;\n AGENTS_API;\n };\n pendingRequests: any;\n myConnections: any;\n conversationKey: string;\n conSessionKey: string = '';\n isFetchDataFor: boolean;\n is401: boolean;\n msg: any;\n chat: any;\n isWorkflowOpen: boolean;\n orgWorkflows: any;\n openWorkflowInput: boolean;\n selectedWorkflow: any;\n workflowForm: any;\n currentWorkflowActionProgress: number = 0;\n currentWorkflowAction: string = '';\n executingWorkflow: boolean;\n workflowExecutionDetails: any;\n showWorkflowExecutionDetails: any;\n currentWorkflowExecutionDetails: any;\n\n speechConfig: SpeechSDK.SpeechConfig;\n recognizer: SpeechSDK.SpeechRecognizer;\n recognizedText: string = '';\n authorizationToken: string = '';\n region: string = 'westeurope'; // Set your Azure region here\n isRecording: boolean;\n isVoiceModalOpen: boolean = false;\n private voiceModalOverlayRef: OverlayRef | null = null;\n private voiceTranscriptSubscriptions: Subscription[] = [];\n\n constructor(\n private fb: FormBuilder,\n private botService: BotsService,\n private cdr: ChangeDetectorRef,\n private http: HttpClient,\n private sanitizer: DomSanitizer,\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private socketService: SocketService,\n private conversationService: ConversationService, // private platform: Platform\n private translationService: TranslationService,\n private voiceAgentService: VoiceAgentService,\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef,\n private injector: Injector\n ) {\n this.chatMain = new ElementRef(null);\n\n // if (this.platform.IOS) {\n // this.isIOSDevice = true;\n // }\n }\n getTranslation(key: string) {\n return this.translationService.getTranslation(key);\n }\n ngOnChanges(changes: SimpleChanges): void {\n // Handle eventId changes to update translation service\n if (changes.eventId && changes.eventId.currentValue) {\n this.translationService.setEventId(changes.eventId.currentValue);\n }\n\n if (changes.s27Token) {\n if (changes.s27Token.currentValue != changes.s27Token.previousValue) {\n this.s27Token = changes.s27Token.currentValue;\n\n console.log('isFetchDataFor: ', this.isFetchDataFor);\n console.log('msg: ', this.msg);\n console.log('chat: ', this.chat);\n if (this.is401) {\n if (this.isFetchDataFor) {\n this.fetchDataFor(this.msg, this.chat);\n } else {\n this.fetchData(this.msg);\n }\n }\n }\n }\n\n if (changes.orgId) {\n if (\n changes.orgId.currentValue != changes.orgId.previousValue &&\n changes.orgId.currentValue\n ) {\n this.initializeSocket();\n }\n }\n }\n\n domainAuthorityValue: any = 'prod-lite';\n\n ngOnInit(): void {\n // Set the eventId in translation service to get the correct language from localStorage\n if (this.eventId) {\n this.translationService.setEventId(this.eventId);\n }\n\n this.environment = this.isDev ? dev_environment : prod_environment;\n\n const domain = window.location.hostname;\n\n // Determine the header value based on the domain\n\n if (domain.includes('pre-app.social27.com')) {\n this.domainAuthorityValue = 'pre-prod-lite';\n } else if (domain.includes('app.social27.com')) {\n this.domainAuthorityValue = 'prod-lite';\n } else if (domain.includes('hivegpt.io')) {\n this.domainAuthorityValue = 'hivegpt';\n }\n\n // this.fetchMyConnections().subscribe();\n // this.fetchPendingRequests().subscribe();\n\n this.changeTemperature(this.temperature);\n this.fetchBotConfig().subscribe(\n (res) => {\n this.cdr.markForCheck();\n\n this.fetchChatHistory().subscribe(\n (response) => {\n this.loading = false;\n this.mapChatHistory(response);\n this.cdr.markForCheck();\n },\n (err) => {\n console.error('Error fetching chat history:', err);\n }\n );\n },\n (err) => {\n console.error('Error fetching chat history:', err);\n }\n );\n // this.fetchAgents();\n // this.fetchEditorContent();\n this.cdr.markForCheck();\n // this.initializeSocket();\n this.botService\n .fetchSpeechAuthorizationToken(\n this.botId,\n this.apiKey,\n this.domainAuthorityValue\n )\n .subscribe((token) => {\n this.authorizationToken = token;\n this.initializeSpeechRecognizer(token);\n });\n }\n\n private eventSubscription: Subscription;\n initializeSocket() {\n try {\n this.socketService.disconnectSocketConnection();\n } catch (error) {}\n setTimeout(() => {\n this.socketService.connectSocketConnection();\n setTimeout(() => {\n console.log('YES INIT');\n const conversation_id = this.conversationService.getKey(this.botId);\n\n this.socketService.registerUserSpecificHiveSocket(\n this.botId,\n conversation_id,\n this.orgId\n );\n setTimeout(() => {\n this.listenSockets();\n }, 300);\n }, 200);\n }, 300);\n }\n\n subscriptionNew: any;\n socketData: any;\n\n listenSockets() {\n if (this.eventSubscription) {\n this.eventSubscription.unsubscribe();\n }\n console.log('Listen Socket');\n this.eventSubscription = this.conversationService\n .getUserSpecificNotification()\n .subscribe(\n (res) => {\n console.log('Listen Socket response');\n console.log(res);\n // Check if OtherFields exists in the response\n if (res?.m?.OtherFields?.workflow_id) {\n const {\n percentage,\n output,\n action_name,\n current_action_name,\n workflow_execution_id,\n time_stamp,\n } = res?.m?.OtherFields;\n\n this.currentWorkflowActionProgress = percentage;\n this.currentWorkflowAction = action_name;\n\n const actionIndex = this.workflowExecutionDetails.Actions.findIndex(\n (a) => a.Name == current_action_name\n );\n\n if (actionIndex !== -1) {\n this.workflowExecutionDetails.Actions[actionIndex]['Output'] =\n output;\n this.workflowExecutionDetails.Actions[actionIndex][\n 'InsertTimeStamp'\n ] = formatTimeStamps(this.timezone, time_stamp);\n } else {\n console.error(`Action with name ${action_name} not found`);\n }\n\n this.currentWorkflowExecutionDetails =\n this.workflowExecutionDetails;\n\n if (this.currentWorkflowActionProgress == 100) {\n this.chatLog[this.chatLog.length - 1]['WorkflowExecutionId'] =\n workflow_execution_id;\n this.isChatingWithAi = false;\n this.executingWorkflow = false;\n this.focusOnTextarea();\n }\n\n this.cdr.detectChanges();\n } else if (res?.m?.OtherFields) {\n const {\n conversation_id,\n bot_id,\n message_id,\n answer,\n web_results,\n search_results,\n graphs,\n execution_graphs,\n suggestions,\n } = res?.m?.OtherFields;\n console.log('message_id1');\n console.log(res?.m?.OtherFields);\n var currentChatMessage = this.chatLog.find(\n (p) => p._id == message_id\n );\n console.log(this.chatLog);\n if (!currentChatMessage) {\n console.log('message_id2');\n console.log(message_id);\n currentChatMessage = {\n _id: message_id,\n type: 'ai',\n time: formatNow(this.timezone),\n };\n\n this.chatLog.push(currentChatMessage);\n\n this.showFeedBackIconsIndex = this.chatLog.length - 1;\n console.log('message_id3');\n console.log(message_id);\n this.cdr.detectChanges();\n }\n\n // Handle the fields based on their presence\n if (search_results && Array.isArray(search_results)) {\n console.log('Online Search Terms:', search_results);\n currentChatMessage.searchTerms = search_results;\n this.cdr.detectChanges();\n }\n\n if (web_results && Array.isArray(web_results)) {\n console.log('Web Results:', web_results);\n currentChatMessage.sourcesList = web_results;\n currentChatMessage.displayedSources = web_results?.slice(0, 3); // First 3 cards\n currentChatMessage.remainingSources = web_results?.slice(3); // Remaining items\n this.cdr.detectChanges();\n }\n\n if (answer) {\n this.isChatingWithAi = false;\n console.log('Answer:', answer);\n\n currentChatMessage.message =\n this.processMessageForDisplay(answer);\n this.cdr.detectChanges();\n this.scrollToBottom();\n this.focusOnTextarea();\n }\n\n if (graphs && Array.isArray(graphs)) {\n console.log('Graphs:', graphs);\n currentChatMessage.graphs = graphs;\n this.cdr.detectChanges();\n }\n\n if (execution_graphs && Array.isArray(execution_graphs)) {\n console.log('Execution Graphs:', execution_graphs);\n currentChatMessage.executionGraphs = execution_graphs;\n this.cdr.detectChanges();\n }\n\n if (suggestions && Array.isArray(suggestions)) {\n console.log('suggestions:', suggestions);\n currentChatMessage.relatedListItems = suggestions;\n this.cdr.detectChanges();\n // Process online search terms as needed\n }\n\n // Add any other fields and their processing here\n } else {\n console.warn('OtherFields is missing in the response');\n }\n },\n (err) => {\n this.eventSubscription.unsubscribe();\n console.error('Error in fetching data from socket', err);\n }\n );\n }\n\n initializeSocketAndListen() {}\n handleEvent(data: any, type: string) {\n switch (type) {\n case 'webresult':\n break;\n case 'answer':\n break;\n case 'graph':\n break;\n default:\n break;\n }\n }\n ngOnDestroy(): void {\n if (this.eventSubscription) {\n this.eventSubscription.unsubscribe();\n }\n this.voiceTranscriptSubscriptions.forEach(sub => sub.unsubscribe());\n this.socketService.disconnectSocketConnection();\n //this.socketService.close();\n }\n changeTemperature(newTemperature: number) {\n if (this.loading) return;\n this.temperature = newTemperature;\n const wrapper = document.querySelector('.hivegpt-chat-wrapper');\n // Remove existing theme classes from body\n wrapper?.classList.remove('creative', 'balanced', 'precise');\n\n switch (newTemperature) {\n case 0:\n wrapper?.classList.add('creative');\n break;\n case 1:\n wrapper?.classList.add('balanced');\n break;\n case 2:\n wrapper?.classList.add('precise');\n break;\n default:\n break;\n }\n }\n\n onStartAgain() {\n if (this.loading) return;\n this.showStartAgain = false;\n this.chatLog = [];\n this.chatLog.push({\n type: 'ai',\n message: this.greetingMsg,\n\n time: formatNow(this.timezone),\n });\n this.archieveMessages().subscribe();\n }\n\n archieveMessages() {\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n 'x-api-key': this.apiKey,\n 'hive-bot-id': this.botId,\n 'domain-authority': this.domainAuthorityValue,\n });\n const url = `${this.environment.BASE_URL}/bot/clear-history/${this.botId}/${this.userId}`;\n return this.http.post(url, { headers }).pipe(\n switchMap((res: any) => {\n return of(res);\n }),\n catchError((error) => {\n return of(null);\n })\n );\n }\n\n triggerSupport() {\n this.openSupport.emit();\n }\n fetchBotConfig() {\n this.loading = true;\n const headers = new HttpHeaders({\n 'x-api-key': this.apiKey,\n 'hive-bot-id': this.botId,\n 'domain-authority': this.domainAuthorityValue,\n });\n const url = `${this.environment.BASE_URL}/bots?bot_id=${this.botId}`;\n return this.http.get(url, { headers }).pipe(\n switchMap((res: any) => {\n this.botName = this.getTranslation(res.Name);\n this.botIcon = res.Icon;\n this.botSkills = res?.Skills;\n this.greetingMsg = res.Greeting;\n\n this.thumbsDownMessages = res?.NegativeResponses?.length\n ? res.NegativeResponses\n : [\n this.getTranslation(\n `We are sorry we've not been able to answer your question`\n ),\n ];\n this.quickPrompts = res.QuickPrompts;\n this.cdr.markForCheck();\n this.loading = false;\n return of(res);\n }),\n catchError((error) => {\n console.error('Error fetching chatbot config: ', error);\n this.loading = false;\n return of(null);\n })\n );\n }\n\n fetchChatHistory(): Observable<any> {\n this.loading = true;\n\n this.conversationKey = this.conversationService.getKey(this.botId, false);\n this.conSessionKey = this.conversationService.getSessionKey(\n this.botId,\n false\n );\n const url = `${this.environment.BASE_URL}/conversations/${this.conversationKey}?session_id=${this.conSessionKey}`;\n const headers = new HttpHeaders({\n accept: 'application/json',\n 'x-api-key': this.apiKey,\n 'hive-bot-id': this.botId,\n 'domain-authority': this.domainAuthorityValue,\n });\n\n return this.http\n .get(url, { headers })\n .pipe(catchError(this.handleError<any>('fetchConversation')));\n }\n\n private handleError<T>(operation = 'operation', result?: T) {\n return (error: any): Observable<T> => {\n console.error(`${operation} failed: ${error.message}`);\n return of(result as T);\n };\n }\n // fetchChatHistory() {\n // this.loading = true;\n // const headers = new HttpHeaders({\n // 'Content-Type': 'application/json',\n // 'x-api-key': this.apiKey,\n // });\n // return this.http\n // .get(`${this.environment.BASE_URL}/conversations/${this.conversationKey}`, { headers })\n // .pipe(\n // switchMap((res: any) => {\n // this.loading = false;\n // return of(res);\n // }),\n // catchError((error: any) => {\n // console.error('Error fetching chat history: ', error);\n // this.loading = false;\n // return of(null);\n // })\n // );\n // }\n\n mapChatHistory(chats: any) {\n this.chatLog.push({\n type: 'ai',\n message: this.greetingMsg,\n time: formatNow(this.timezone),\n });\n if (chats && chats?.Messages?.length) {\n chats?.Messages.forEach((chat: any) => {\n if (chat.Type == 'user') {\n this.chatLog.push({\n type: 'user',\n message: this.processMessageForDisplay(chat.Text),\n time: formatTimeStamps(this.timezone, chat.InsertTimestamp),\n copied: false,\n isCollapsedTrue: false,\n WorkflowExecutionId: chat.WorkflowExecutionId,\n _id: chat._id,\n });\n }\n if (chat.Type == 'ai') {\n var sourcesList = chat.WebLinks || [];\n var displayedSources = chat.WebLinks.slice(0, 3); // First 3 cards\n var remainingSources = chat.WebLinks.slice(3); // Remaining items\n\n this.chatLog.push({\n type: 'ai',\n message: this.processMessageForDisplay(chat.Text),\n executionGraphs: chat.ExecutionGraphs,\n graphs: chat.Graphs,\n searchTerms: chat.SearchTerms,\n sourcesList: sourcesList,\n displayedSources: displayedSources,\n remainingSources: remainingSources,\n time: formatTimeStamps(this.timezone, chat.InsertTimestamp),\n copied: false,\n isCollapsedTrue: false,\n _id: chat._id,\n });\n this.showFeedBackIconsIndex = this.chatLog.length - 1;\n }\n });\n this.showStartAgain = true;\n }\n this.scrollToBottom();\n this.cdr.markForCheck();\n }\n\n processMessage(message: string): SafeHtml {\n if (!message || !(message?.length > 0)) {\n return '';\n }\n\n // console.log('here is my message')\n // console.log(message);\n\n message = message.trim();\n\n const markdownLinkRegex = /\\[([^[]+)]\\(([^)]+)\\)/g;\n const urlRegex = /(?<!href=\")\\bhttps?:\\/\\/\\S+(?<![.,])/gi;\n\n if (markdownLinkRegex.test(message)) {\n const html = message.replace(\n markdownLinkRegex,\n '<a href=\"$2\" target=\"_blank\">$1</a>'\n );\n //console.log('Sanitized message: ', message);\n return this.sanitizeHtml(html);\n }\n\n if (urlRegex.test(message)) {\n const html = message.replace(\n urlRegex,\n '<a href=\"$&\" target=\"_blank\">$&</a>'\n );\n // console.log('Sanitized message: ', message);\n return this.sanitizeHtml(html);\n }\n\n message = message.replace(/(?:\\r\\n|\\r|\\n)/g, '<br>');\n\n message = message.replace(/\\*\\*(.*?)\\*\\*/g, '<strong>$1</strong>');\n // Convert Markdown headers to HTML headers\n message = message.replace(/^(#{1,6})\\s+(.*)$/gm, (match, hashes, text) => {\n const level = hashes.length;\n return `<h${level}>${text}</h${level}>`;\n });\n\n this.cdr.markForCheck();\n const sanitizedMessage = this.sanitizeHtml(message);\n return sanitizedMessage;\n }\n\n ngAfterViewChecked() {\n const feedbackLinks =\n this.elementRef.nativeElement.querySelectorAll('.feedback-link');\n feedbackLinks.forEach((link: any) => {\n link.addEventListener(\n 'click',\n this.onFeedbackClick.bind(this, 'zendesk')\n );\n });\n // if (this.elementRef.nativeElement.querySelector('.feedback-link')) {\n // this.elementRef.nativeElement\n // .querySelector('.feedback-link')\n // .addEventListener('click', this.onFeedbackClick.bind(this, 'zendesk'));\n // }\n }\n\n sanitizeHtml(html: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustHtml(html);\n }\n\n onFeedbackClick(value: string) {\n this.feedbackEvent.emit(value);\n }\n\n onClose() {\n this.renderer.removeClass(document.body, this.bodyOverflowClass);\n this.onCloseEvent.emit();\n }\n\n sendMessageWithTile(prompt: string) {\n this.input = prompt;\n this.fetchData();\n this.scrollToBottom();\n }\n isChatingWithAi = false;\n fetchData(msg = null) {\n this.input = msg || this.input?.trim();\n this.msg = this.input;\n if (!this.input || this.loading) {\n return;\n }\n\n this.chatLog.push({\n type: 'user',\n message: this.processMessageForDisplay(this.input),\n time: formatNow(this.timezone),\n copied: false,\n isCollapsedTrue: false,\n });\n\n try {\n const textarea = this.myInput.nativeElement;\n textarea.style.height = 'hidden'; // Reset the height\n textarea.style.height = `62px`;\n } catch (error) {}\n this.cdr.markForCheck();\n\n this.aiResponse = '';\n this.isChatingWithAi = true;\n\n this.makeAskRequest(this.input, this.agents, this.conversationKey);\n }\n fetchDataFor(msg, chat) {\n const inputMsg = msg?.trim();\n if (!inputMsg || this.loading) {\n return;\n }\n try {\n chat.relatedListItems = [];\n this.cdr.detectChanges();\n } catch (error) {}\n\n this.scrollToBottom();\n this.chatLog.push({\n type: 'user',\n message: this.processMessageForDisplay(inputMsg),\n time: formatNow(this.timezone),\n copied: false,\n isCollapsedTrue: false,\n });\n\n this.cdr.markForCheck();\n\n this.aiResponse = '';\n this.isChatingWithAi = true;\n\n this.makeAskRequest(inputMsg, this.agents, this.conversationKey, msg, chat);\n }\n fetchSmallTalk() {\n this.loading = true;\n this.cdr.markForCheck();\n\n const url = `${this.environment.BASE_URL}/bot/small-talk/${this.botId}/${this.userId}`;\n\n this.http\n .get<{ smallTalk: string }>(url, {\n headers: {\n 'x-api-key': this.apiKey,\n 'hive-bot-id': this.botId,\n 'domain-authority': this.domainAuthorityValue,\n },\n })\n .pipe(\n catchError((error) => {\n console.error('Error while fetching small talk:', error);\n\n return of(null);\n })\n )\n .subscribe((response) => {\n this.loading = false;\n this.cdr.markForCheck();\n\n if (!response) {\n return;\n }\n\n if (response && response.smallTalk) {\n this.chatLog.push({\n type: 'ai',\n message: this.processMessage(response.smallTalk),\n time: formatNow(this.timezone),\n isFeedbackMsg: true,\n });\n this.showFeedBackIconsIndex = this.chatLog.length - 2;\n // this.scrollToBottom();\n this.cdr.markForCheck();\n }\n });\n }\n\n readAllChunks = (stream: any) => {\n const reader = stream.getReader();\n const allSuggestions: string[] = [];\n\n reader.closed.catch((err: any) => {\n if (err) {\n console.error('Error reading stream: ', err);\n }\n\n this.isChatingWithAi = false;\n this.scrollToBottom();\n return;\n });\n\n return new ReadableStream({\n start: (controller) => {\n return this.pump(controller, reader, allSuggestions);\n },\n });\n };\n\n pump(controller: any, reader: any, allSuggestions: string[]) {\n reader.read().then(({ done, value }: any) => {\n const lastItem = this.chatLog[this.chatLog.length - 1];\n\n if (done) {\n lastItem.message = this.processMessageForDisplay(lastItem.message);\n this.chatLog.pop();\n this.chatLog.push(lastItem);\n if (allSuggestions?.length) {\n this.chatLog.push({\n type: 'suggestions',\n suggestions: allSuggestions,\n });\n }\n\n controller.close();\n this.isChatingWithAi = false;\n // this.scrollToBottom();\n this.cdr.markForCheck();\n this.showStartAgain = true;\n\n // setTimeout(() => {\n // this.fetchSmallTalk();\n // },1000)\n return;\n }\n\n let decodedChunk = this.decoder.decode(value, { stream: true });\n this.aiResponse += decodedChunk;\n if (lastItem.type === 'ai') {\n const suggestionsMatch = this.aiResponse.match(/<sug>(.*?)<\\/sug>/g);\n if (suggestionsMatch) {\n suggestionsMatch.forEach((match) => {\n this.aiResponse = this.aiResponse.replace(match, '');\n allSuggestions.push(match?.replace(/<\\/?sug>/g, ''));\n });\n }\n\n lastItem.message = this.aiResponse;\n this.cdr.markForCheck();\n } else {\n this.isChatingWithAi = false;\n\n let aiFormattedData: any;\n\n try {\n console.log('parsing json ');\n aiFormattedData = JSON.parse(JSON.parse(this.aiResponse));\n } catch (e) {\n try {\n console.log('parsing json 2');\n aiFormattedData = JSON.parse(this.aiResponse);\n } catch (e) {}\n }\n\n console.log('parsing json done');\n\n if (aiFormattedData && aiFormattedData?.section_id?.length > 0) {\n if (\n aiFormattedData.section_id == 'company_search' ||\n aiFormattedData.section_id == 'user_search' ||\n aiFormattedData.section_id == 'industry_company_search'\n ) {\n this.fetchMyConnections().subscribe();\n this.fetchPendingRequests().subscribe();\n }\n\n if (aiFormattedData.section_id == this.myUpcomingSessionAction) {\n var speakerIds = [];\n aiFormattedData.content?.forEach((session) => {\n speakerIds = [...speakerIds, ...session.speakers];\n });\n\n if (speakerIds?.length > 0) this.getSpeakersByStaffIds(speakerIds);\n }\n\n if (\n aiFormattedData.section_id == this.addToMyAgendaAction &&\n aiFormattedData.content?.length > 0\n ) {\n this.openPage.next({\n sectionId: aiFormattedData.section_id,\n sessionIds: aiFormattedData.content,\n });\n }\n\n if (aiFormattedData.section_id == this.connectOrFollowAction) {\n let usersLen = aiFormattedData.content?.length;\n if (usersLen > 1) {\n this.openPage.next({\n sectionId: 'open_networking_drawer',\n search: aiFormattedData.content,\n });\n } else if (usersLen == 1) {\n this.openPage.next({\n sectionId: aiFormattedData.section_id,\n connetUserIds: [aiFormattedData.content[0].userId],\n });\n }\n }\n\n if (aiFormattedData.is_open_page == 'true') {\n this.openPage.next({\n sectionId: aiFormattedData.section_id,\n search: aiFormattedData.content,\n });\n\n if (this.isMobileBrowser()) {\n aiFormattedData.message +=\n '\\n\\n' + '<a id=\"closeBotNow\">Click Here</a> to see results.';\n }\n }\n\n this.chatLog.push({\n type: 'ai',\n message: aiFormattedData.message,\n action: aiFormattedData,\n time: formatNow(this.timezone),\n });\n\n if (this.isMobileBrowser()) {\n setTimeout(() => {\n this.addCloseBotClickEvent();\n }, 500);\n }\n\n this.aiResponse = '';\n } else {\n this.chatLog.push({\n type: 'ai',\n message: this.aiResponse,\n time: formatNow(this.timezone),\n });\n }\n\n this.showFeedBackIconsIndex = this.chatLog.length - 1;\n this.cdr.markForCheck();\n }\n\n this.scrollToBottom();\n\n // Enqueue the next data chunk into our target stream\n controller.enqueue(value);\n this.pump(controller, reader, allSuggestions);\n });\n }\n\n submitFeedback(flag: boolean, message) {\n console.log(message);\n\n this.feedbackDone = true;\n this.showFeedBackIconsIndex = null;\n const conversation_id = this.conversationService.getKey(this.botId);\n const url = `${this.environment.AGENTS_API}/Conversation/coPilot/${this.botId}/conversation/${conversation_id}/helpful-response`;\n fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n apiKey: 'Conversation_WIz/qAm+EEmfOkFaUA/weA==',\n 'hive-bot-id': this.botId,\n 'domain-authority': this.domainAuthorityValue,\n },\n body: JSON.stringify({ messageId: message._id, isHelpful: flag }),\n }).then(() => {\n if (flag) {\n this.chatLog.push({\n type: 'ai',\n message:\n this.thumbsUpMessage ||\n this.getTranslation('May I assist you with anything else'),\n time: formatNow(this.timezone),\n isFeedbackMsg: true,\n });\n\n this.scrollToBottom();\n this.cdr.markForCheck();\n this.feedbackDone = false;\n this.showFeedBackIconsIndex = null;\n return;\n }\n\n this.chatLog.push({\n type: 'ai',\n message: this.processMessage(\n this.thumbsDownMessages[this.thumbsDownMsgIndex]\n ),\n time: formatNow(this.timezone),\n isFeedbackMsg: true,\n });\n this.thumbsDownMsgIndex =\n (this.thumbsDownMsgIndex + 1) % this.thumbsDownMessages.length;\n this.scrollToBottom();\n this.cdr.markForCheck();\n setTimeout(() => {\n const supportLink = document.getElementById('supportLink88');\n if (supportLink) {\n supportLink.addEventListener('click', this.triggerSupport.bind(this));\n }\n }, 200);\n this.feedbackDone = false;\n this.showFeedBackIconsIndex = null;\n });\n }\n handleKeydown(event: KeyboardEvent) {\n if (event.key === 'Enter' && !event.shiftKey) {\n // Prevent default behavior (new line)\n event.preventDefault();\n // Call your submit function\n this.handleSubmit(event);\n }\n }\n handleSubmit(event) {\n this.fetchData();\n this.scrollToBottom();\n }\n\n handleUpClick(idx: any) {\n if (this.feedbackDone) {\n return;\n }\n\n this.submitFeedback(true, this.chatLog[idx]);\n this.chatLog[idx].liked = !this.chatLog[idx].liked;\n\n if (this.chatLog[idx].unliked) {\n this.chatLog[idx].unliked = !this.chatLog[idx].unliked;\n }\n\n this.cdr.markForCheck();\n }\n\n handleDownClick(idx: any) {\n if (this.feedbackDone) return;\n this.submitFeedback(false, this.chatLog[idx]);\n this.chatLog[idx].unliked = !this.chatLog[idx].unliked;\n if (this.chatLog[idx].liked)\n this.chatLog[idx].liked = !this.chatLog[idx].liked;\n }\n // handleCopyClick(index: any) {\n // // Copy the message to the clipboard\n // const contentToCopy = this.chatLog[index].message;\n // console.log('contentToCopy');\n // console.log(contentToCopy);\n // navigator.clipboard.writeText(contentToCopy).then(() => {\n // // Indicate that the message was copied\n // this.chatLog[index].copied = true;\n // this.cdr.detectChanges();\n // // Reset the copied state after a delay\n // setTimeout(() => {\n // this.chatLog[index].copied = false;\n // this.cdr.detectChanges();\n // }, 2000); // Reset after 2 seconds\n // });\n // }\n copyText(id, index) {\n // Get the text element\n var textElement = document.getElementById(id);\n\n // Create a temporary textarea element to copy the text\n var tempTextArea = document.createElement('textarea');\n tempTextArea.value = textElement.innerText;\n\n // Append the textarea to the body (necessary for the execCommand to work)\n document.body.appendChild(tempTextArea);\n\n // Select the text inside the textarea\n tempTextArea.select();\n\n // Copy the text to the clipboard\n document.execCommand('copy');\n\n // Remove the temporary textarea\n document.body.removeChild(tempTextArea);\n\n // Optionally, you can alert the user or change the button text to indicate the copy was successful\n // alert('Text copied to clipboard!');\n\n this.chatLog[index].copied = true;\n this.cdr.detectChanges();\n // Reset the copied state after a delay\n setTimeout(() => {\n this.chatLog[index].copied = false;\n this.cdr.detectChanges();\n }, 2000); // Reset after 2 seconds\n }\n handleCopyClick(index: any) {\n // Copy the message to the clipboard\n const contentToCopy = this.chatLog[index].message;\n const resutlt = this.copyText('messageText_' + index, index);\n }\n\n sanitizeHTML(html: string): string {\n const doc = new DOMParser().parseFromString(html, 'text/html');\n\n // Create a new document fragment to hold the simplified content\n const fragment = document.createDocumentFragment();\n\n // Append the children of the body of the parsed document to the fragment\n Array.from(doc.body.childNodes).forEach((node) => {\n fragment.appendChild(node.cloneNode(true));\n });\n\n // Create a new div element to hold the simplified HTML\n const simplifiedDiv = document.createElement('div');\n simplifiedDiv.appendChild(fragment);\n\n // Remove complex tags or attributes as needed\n // Example: remove scripts\n simplifiedDiv\n .querySelectorAll('script')\n .forEach((script) => script.remove());\n\n // Return the simplified HTML as a string\n return simplifiedDiv.innerHTML;\n }\n\n currentMessageForEditor: any = '';\n currentIndexForEditor: any = -1;\n handleEditorClick(index: any) {\n if (this.currentIndexForEditor == -1) {\n this.currentIndexForEditor = index;\n this.currentMessageForEditor = this.sanitizeHTML(\n this.chatLog[index].message\n );\n this.currentMessageForEditor = this.currentMessageForEditor.replace(\n 'SafeValue must use [property]=binding:',\n ''\n );\n\n this.cdr.detectChanges();\n } else {\n if (this.currentIndexForEditor == index) {\n this.currentMessageForEditor += this.sanitizeHTML(\n this.chatLog[index].message\n );\n this.currentMessageForEditor = this.currentMessageForEditor.replace(\n 'SafeValue must use [property]=binding:',\n ''\n );\n this.cdr.detectChanges();\n } else {\n this.currentIndexForEditor = index;\n this.currentMessageForEditor = this.sanitizeHTML(\n this.chatLog[index].message\n );\n this.currentMessageForEditor = this.currentMessageForEditor.replace(\n 'SafeValue must use [property]=binding:',\n ''\n );\n this.cdr.detectChanges();\n }\n }\n this.chatLog[index].isEditor = true;\n this.cdr.detectChanges();\n // Reset the copied state after a delay\n setTimeout(() => {\n this.chatLog[index].isEditor = false;\n this.cdr.detectChanges();\n }, 2000); // Reset after 2 seconds\n this.editorsDrawer.open();\n const button = document.getElementById('botcloseplaygroundbutton');\n if (button) {\n button.style.display = 'none';\n }\n this.cdr.detectChanges();\n }\n scrollToBottom() {\n let counter = 0;\n const interval = setInterval(() => {\n this.chatMain.nativeElement.scrollTop =\n this.chatMain.nativeElement.scrollHeight;\n if (counter++ > 5) clearInterval(interval);\n }, 5);\n }\n\n focusOnTextarea() {\n setTimeout(() => {\n if (this.myInput && this.myInput.nativeElement) {\n this.myInput.nativeElement.focus();\n }\n }, 100);\n }\n\n handleAction(action: any) {\n console.info('incoming action from the chatbot AI');\n console.info(action);\n\n if (action?.content) {\n }\n }\n\n ngAfterViewInit() {\n // Check if the drawer is initially open and apply overflow hidden to body if so\n if (this.drawer.opened) {\n this.setBodyOverflow();\n }\n\n // Listen to changes in the drawer being opened or closed\n this.drawer.openedChange.subscribe((opened: boolean) => {\n if (opened) {\n this.setBodyOverflow();\n } else {\n this.removeBodyOverflow();\n }\n });\n\n this.drawer.openedChange.subscribe((opened) => {\n if (opened) {\n setTimeout(() => {\n if (this.myInput && this.myInput.nativeElement) {\n this.myInput.nativeElement.focus(); // Focus on the textarea\n }\n });\n }\n });\n }\n\n private setBodyOverflow() {\n this.renderer.addClass(document.body, this.bodyOverflowClass);\n }\n\n private removeBodyOverflow() {\n this.renderer.removeClass(document.body, this.bodyOverflowClass);\n }\n\n getSpeakersByStaffIds(ids) {\n const url = `${this.environment.USERS_API}/events/${this.eventId}/users/get-by-staff-ids`;\n fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: 'Bearer ' + 'your_token_here',\n },\n body: JSON.stringify(ids),\n })\n .then((response) => {\n if (response.ok) {\n return response.json(); // Parse the JSON body of the response\n } else {\n throw new Error('Network response was not ok.');\n }\n })\n .then((data) => {\n if (data?.length > 0) {\n data.forEach((speaker) => {\n this.speakers[speaker.id] = speaker;\n });\n\n this.cdr.markForCheck();\n }\n })\n .catch((err) => {\n console.error('Error fetching data:', err);\n this.loading = false;\n });\n }\n\n performSessionAction(sessionId, action) {\n this.sessionActions.next({\n sessionId,\n action,\n });\n }\n\n addCloseBotClickEvent() {\n const element = this.elementRef.nativeElement.querySelector('#closeBotNow');\n if (element) {\n this.renderer.listen(element, 'click', () => {\n this.closeBot.next();\n });\n }\n }\n\n isMobileBrowser() {\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\n navigator.userAgent\n );\n }\n\n connectToUser(userId) {\n this.connectWithUser.emit({\n connect: !this.canDisconnect(userId),\n userId,\n });\n\n setTimeout(() => {\n this.fetchMyConnections().subscribe((res) => {\n this.cdr.markForCheck();\n });\n this.fetchPendingRequests().subscribe((res) => {\n this.cdr.markForCheck();\n });\n }, 500);\n }\n\n scheduleMeetingWithUser(user) {\n this.scheduleMeeting.emit(user);\n }\n\n canConnect(userId) {\n return !(\n this.canDisconnect(userId) ||\n this.pendingRequests.find((a) => a == userId)\n );\n }\n\n canDisconnect(userId) {\n return this.myConnections.find((conn) => conn.userId == userId);\n }\n\n fetchPendingRequests() {\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n apiKey: this.autogenKey,\n });\n return this.http\n .get(\n `${this.environment.USERS_API}/events/${this.eventId}/connection-requests/autogen/pending-sent-requests?userId=${this.userId}`,\n { headers }\n )\n .pipe(\n switchMap((res: any) => {\n this.pendingRequests = res;\n this.cdr.markForCheck();\n return of(res);\n }),\n catchError((error: any) => {\n console.error('Error fetching pending requests: ', error);\n return of(null);\n })\n );\n }\n\n fetchMyConnections() {\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n apiKey: this.autogenKey,\n });\n return this.http\n .get(\n `${this.environment.USERS_API}/events/${this.eventId}/users-connections/autogen?userId=${this.userId}`,\n { headers }\n )\n .pipe(\n switchMap((res: any) => {\n this.myConnections = res;\n this.cdr.markForCheck();\n return of(res);\n }),\n catchError((error: any) => {\n console.error('Error fetching pending requests: ', error);\n return of(null);\n })\n );\n }\n\n isDropdownOpen: boolean = false;\n agents: any;\n selectedAgents = [];\n allSelected = false;\n // Toggle the dropdown visibility\n toggleDropdown() {\n if (!this.agents) this.fetchAgents();\n this.isDropdownOpen = !this.isDropdownOpen;\n this.cdr.detectChanges();\n }\n\n onSelectAll(event: Event): void {\n this.agents?.forEach((agent) => (agent.selected = false));\n this.cdr.detectChanges();\n }\n\n onAgentChange(agent: any): void {\n //agent.selected = !agent.selected;\n //console.log(agent);\n let agentFound = this.agents.filter((p) => p.id == agent.id);\n if (agentFound && agentFound.length > 0) {\n agentFound[0].selected = !agentFound[0].selected;\n this.cdr.detectChanges();\n }\n this.cdr.detectChanges();\n }\n\n areAllSelected(): boolean {\n return this.agents?.every((agent) => !agent.selected);\n }\n\n getDropdownHeaderText(): string {\n const selectedAgents = this.agents?.filter((agent) => agent.selected);\n if (!selectedAgents) {\n return 'All Agents';\n } else {\n if (selectedAgents && selectedAgents?.length === 0) {\n return 'All Agents';\n } else {\n return selectedAgents?.length > 1\n ? `${selectedAgents?.length} Agents Selected`\n : `${selectedAgents?.length} Agent Selected`;\n }\n }\n }\n fetchAgents_http() {\n this.loading = true;\n const url = `${this.environment.AGENTS_API}/CoPilot/${this.botId}/active-agents`;\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n });\n\n return this.http.post(url, {}, { headers }).pipe(\n switchMap((res: any) => {\n if (res) {\n this.agents = res.map((agent) => ({\n ...agent,\n selected: false,\n }));\n }\n this.cdr.markForCheck();\n\n return of(res);\n }),\n catchError((error) => {\n console.error('Error fetching chatbot config: ', error);\n\n return of(null);\n })\n );\n }\n isDocInEditMode = false;\n documentContent: any;\n\n conversationId: any;\n isContentLoaded = false;\n\n fetchContent_http() {\n this.isDocInEditMode = false;\n this.isContentLoaded = false;\n console.log('API call function');\n this.loading = true;\n const conversation_id = this.conversationService.getKey(this.botId);\n this.conversationId = conversation_id;\n const url = `${this.environment.AGENTS_API}/ConversationDocuments?conversationId=${conversation_id}&botId=${this.botId}`;\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n apiKey: 'WIz/qAm+EEmfOkFaUA/weA==',\n 'domain-authority': this.domainAuthorityValue,\n });\n\n return this.http.get(url, { headers }).pipe(\n switchMap((res: any) => {\n if (res) {\n this.isDocInEditMode = true;\n this.documentContent = res;\n console.log('Get API callled success');\n this.isContentLoaded = true;\n console.log(res);\n }\n this.cdr.markForCheck();\n\n return of(res);\n }),\n catchError((error) => {\n console.error('Error fetching chatbot config DJ: ', error);\n this.isDocInEditMode = false;\n this.isContentLoaded = true;\n\n if (error?.status == 404) {\n console.log('dash');\n this.isDocInEditMode = false;\n this.isContentLoaded = true;\n }\n return of(null);\n })\n );\n }\n\n fetchAgents() {\n this.fetchAgents_http().subscribe();\n }\n\n fetchEditorContent() {\n this.fetchContent_http().subscribe();\n }\n\n // events/${eventId}/users-connections\n processMessageForDisplay(markdown: string): SafeHtml {\n try {\n // Create a custom renderer to modify <a> tags\n const renderer = new marked.Renderer();\n\n // Customize anchor tags to include target=\"_blank\"\n renderer.link = (href: string, title: string, text: string) => {\n return `<a href=\"${href}\" title=\"${\n title || ''\n }\" target=\"_blank\">${text}</a>`;\n };\n\n // Parse the markdown content to HTML using marked with the custom renderer\n const markdownContent = marked.parse(markdown, { renderer: renderer });\n\n // Sanitize the parsed HTML using Angular's DomSanitizer\n const sanitizedHtml =\n this.sanitizer.bypassSecurityTrustHtml(markdownContent);\n\n // Return the safe HTML content for display\n return sanitizedHtml;\n } catch (error) {\n console.error('Error processing markdown:', error);\n return ''; // Return an empty string or handle the error appropriately\n }\n }\n\n prepareHtml(markdown: string): string {\n if (!markdown || !(markdown.length > 0)) {\n console.error('Input Markdown is null or empty');\n return '';\n }\n\n // Convert Markdown headers (### or ##) to <strong> for bold headings\n let html = markdown.replace(\n /^(#{1,6})\\s+(.*)$/gm,\n (match, hashes, text) => {\n const level = hashes.length;\n if (level === 3) {\n return `<h3><strong>${text}</strong></h3>`;\n } else if (level === 4) {\n return `<h4><strong>${text}</strong></h4>`;\n }\n return `<strong>${text}</strong>`;\n }\n );\n\n // Convert Markdown code blocks with language to preformatted HTML\n html = html.replace(/```(\\w+)?\\n([\\s\\S]*?)```/g, (match, lang, code) => {\n const escapedCode = this.escapeHtml(code);\n const language = lang || 'plaintext';\n\n // Create a copy button for the code block\n return `\n <div class=\"code-container\">\n <button id=\"copy-button\" class=\"copy-button\" (click)=\"copyToClipboard('\\`${escapedCode}\\`')\">${this.getTranslation(\n 'Copy'\n )}</button>\n <pre class=\"code_block diff\"><code class=\"language-${language}\">${escapedCode}</code></pre>\n </div>`;\n });\n\n // Convert inline code (wrapped in `backticks`) to inline <code> tags\n html = html.replace(/`([^`]+)`/g, '<code>$1</code>');\n\n // Convert Markdown bold to HTML <strong>\n html = html.replace(/\\*\\*(.*?)\\*\\*/g, '<strong>$1</strong>');\n\n // Convert numbered lists\n html = html.replace(/^\\d+\\.\\s+(.*)$/gm, '<li>$1</li>');\n\n // Convert bullet point lists\n html = html.replace(/^\\-\\s+(.*)$/gm, '<li>$1</li>');\n\n // Convert Markdown links to HTML links\n html = html.replace(\n /\\[([^\\]]+)]\\(([^)]+)\\)/g,\n '<a href=\"$2\" target=\"_blank\">$1</a>'\n );\n\n // Convert new lines to <br> tags for paragraphs\n html = html.replace(/(?:\\r\\n|\\r|\\n)/g, '<br>');\n\n return html;\n }\n\n // Helper function to escape HTML characters for code blocks\n escapeHtml(code: string): string {\n return code\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(/\"/g, '&quot;')\n .replace(/'/g, '&#039;');\n }\n\n // Function to copy text to clipboard\n public copyToClipboard(text: string) {\n navigator.clipboard.writeText(text).then(\n () => {\n alert('Code copied to clipboard!');\n },\n (err) => {\n console.error('Could not copy text: ', err);\n }\n );\n }\n\n isCollapsed = false;\n isCollapsedForGraph = false;\n isCollapsedForFGraph = false;\n toggleCollapse() {\n this.isCollapsed = !this.isCollapsed;\n this.cdr.detectChanges();\n }\n\n toggleCollapseGraph() {\n this.isCollapsedForGraph = !this.isCollapsedForGraph;\n this.cdr.detectChanges();\n }\n toggleCollapseFGraph() {\n this.isCollapsedForFGraph = !this.isCollapsedForFGraph;\n this.cdr.detectChanges();\n }\n // [\n // {\n // \"title\": \"AI News January 2024: In-Depth and Concise - The AI Track\",\n // \"desc\": \"Each month, we compile significant news, trends, and happenings in AI, providing detailed summaries with key points in bullet form for concise yet complete understanding.\",\n // \"link\": \"https://theaitrack.com/ai-news-january-2024/\"\n // },\n // {\n // \"title\": \"Top AI News, January 2024 - Everypixel Journal\",\n // \"desc\": \"In this monthly roundup, we spotlight the top AI news stories from January, including the OpenAI vs. The New York Times Lawsuit.\",\n // \"link\": \"https://journal.everypixel.com/top-ai-news-january-2024\"\n // },\n // {\n // \"title\": \"AI News July 2024: In-Depth and Concise - The AI Track\",\n // \"desc\": \"This page features AI News for July 2024, highlighting significant events such as Canva acquiring Leonardo AI.\",\n // \"link\": \"https://theaitrack.com/ai-news-july-2024-in-depth-and-concise/\"\n // },\n // {\n // \"title\": \"January news roundup: What's new in the world of AI? - Pluralsight\",\n // \"desc\": \"OpenAI’s new GPT store, business-ready ChatGPT plans, and a predicted rise in AI-powered cybercrime.\",\n // \"link\": \"https://www.pluralsight.com/resources/blog/data/ai-this-month-january-2024\"\n // },\n // {\n // \"title\": \"AI News August 2024: In-Depth and Concise - The AI Track\",\n // \"desc\": \"This page features AI News for August 2024, with highlights such as Nvidia delaying the “Blackwell” B200 AI chips delivery.\",\n // \"link\": \"https://theaitrack.com/ai-news-august-2024-in-depth-and-concise-duplicate/\"\n // }\n // ]\n dateTime = { now: new Date().toISOString() };\n // Extracts the domain from a URL\n getDomainName(url: string): string {\n try {\n const { hostname } = new URL(url);\n return hostname.replace(/^www\\./, ''); // Remove 'www.' if present\n } catch {\n return 'unknown';\n }\n }\n\n // Generates the favicon URL\n getFaviconUrl(url: string): string {\n const domain = this.getDomainName(url);\n return `https://www.google.com/s2/favicons?sz=128&domain=${domain}`;\n }\n currentSourcesList: any = [];\n onCardClick(sources): void {\n this.currentSourcesList = sources;\n this.cdr.detectChanges();\n this.sourcesDrawer.open();\n const button = document.getElementById('botcloseplaygroundbutton');\n if (button) {\n button.style.display = 'none';\n }\n }\n\n isShowEditorButton = true;\n\n openOuterEditor() {\n this.fetchEditorContent();\n this.editorsDrawer.open();\n this.isDrawerOpen = true;\n this.isShowEditorButton = false;\n this.cdr.detectChanges();\n\n const button = document.getElementById('botcloseplaygroundbutton');\n if (button) {\n button.style.display = 'none';\n }\n }\n\n onCloseEditor() {\n this.editorsDrawer.close();\n this.isDrawerOpen = false;\n this.isShowEditorButton = true;\n this.cdr.detectChanges(); // Trigger change detection if needed\n this.onDrawerClosed();\n }\n\n onCloseSource() {\n this.sourcesDrawer.close();\n this.isDrawerOpen = false;\n this.cdr.detectChanges(); // Trigger change detection if needed\n this.onDrawerClosed();\n }\n onDrawerClosed() {\n setTimeout(() => {\n this.isDrawerOpen = true;\n this.cdr.detectChanges(); // Trigger change detection if needed\n // Use ngClass to dynamically apply the class\n const button = document.getElementById('botcloseplaygroundbutton');\n if (button) {\n button.style.display = 'block';\n }\n }, 800);\n }\n isDrawerOpen = true;\n\n toggleDrawer(todo) {\n this.isDrawerOpen = todo;\n this.cdr.detectChanges();\n this.updateButtonVisibility();\n }\n updateButtonVisibility() {\n const button = document.getElementById('botcloseplaygroundbutton');\n if (button) {\n button.style.display = this.isDrawerOpen ? 'block' : 'none';\n }\n }\n openLinkInNewTab(link: string): void {\n window.open(link, '_blank');\n }\n adjustTextareaHeight(event: any): void {\n try {\n if (event.key === 'Enter' && !event.shiftKey) {\n // Prevents a new line from being added\n event.preventDefault();\n }\n } catch (error) {}\n const textarea = event.target as HTMLTextAreaElement;\n textarea.style.height = 'auto'; // Reset the height\n textarea.style.height = `${textarea.scrollHeight}px`; // Adjust height to match content\n // Ensure the height doesn't exceed the max-height set in CSS\n if (textarea.scrollHeight > 150) {\n textarea.style.height = `150px`; // Adjust height to match content\n textarea.style.overflowY = 'auto'; // Enable scrolling if content exceeds 400px\n } else {\n textarea.style.overflowY = 'hidden'; // Hide scrollbar if content is within limits\n }\n }\n\n toggleWorkflows(value = null) {\n if (!this.checkForCop29BotId()) {\n this.botService.getWorkflowsByOrgId(this.orgId).subscribe((res) => {\n this.orgWorkflows = res;\n this.isWorkflowOpen = value == null ? !this.isWorkflowOpen : value;\n\n if (!this.isWorkflowOpen) {\n this.selectedWorkflow = null;\n this.openWorkflowInput = false;\n }\n\n this.cdr.detectChanges();\n });\n }\n }\n\n initializeForm() {\n // Create form controls dynamically based on selectedWorkflow.Trigger.InputSchema\n const formControls = {};\n if (this.selectedWorkflow?.Trigger?.InputSchema) {\n this.selectedWorkflow.Trigger.InputSchema.forEach((input) => {\n formControls[input.InputId] = [\n input.Value || '',\n input.Required ? Validators.required : null,\n ];\n });\n }\n\n // Initialize the form\n this.workflowForm = this.fb.group(formControls);\n }\n\n onWorkflowSelected(workflow) {\n this.selectedWorkflow = workflow;\n this.initializeForm();\n this.isWorkflowOpen = false;\n this.openWorkflowInput = true;\n }\n\n onWorkflowSubmit() {\n const container = document.getElementById('allChats');\n if (this.workflowForm.valid) {\n console.log(this.workflowForm.value);\n\n var input = this.prepareHtml(\n this.generateMarkdown(\n this.selectedWorkflow.Name,\n this.workflowForm.value\n )\n );\n\n // update last two chatLog entries, set showWorkflowExecutionLoader = false\n try {\n this.chatLog[this.chatLog.length - 1]['showWorkflowExecutionLoader'] =\n false;\n this.chatLog[this.chatLog.length - 2]['showWorkflowExecutionLoader'] =\n false;\n } catch (error) {}\n\n this.chatLog.push({\n type: 'user',\n message: input,\n time: formatNow(this.timezone),\n copied: false,\n isCollapsedTrue: false,\n showWorkflowExecutionLoader: true,\n });\n\n console.log(input);\n\n this.currentWorkflowActionProgress = 0;\n this.currentWorkflowAction =\n 'Executing ' + this.selectedWorkflow.Actions[0].Name;\n this.isChatingWithAi = true;\n this.executingWorkflow = true;\n this.workflowExecutionDetails = {\n Actions: this.selectedWorkflow.Actions,\n Inputs: this.workflowForm.value,\n workflowInputs: this.workflowForm.value,\n WorkflowName: this.selectedWorkflow.Name,\n };\n this.currentWorkflowExecutionDetails = this.workflowExecutionDetails;\n this.scrollToBottom();\n\n this.cdr.detectChanges();\n\n // execute the ask endpoint with workflow input\n this.makeAskRequest(\n input,\n this.agents,\n this.conversationKey,\n '',\n null,\n this.selectedWorkflow['_id'],\n this.workflowForm.value\n );\n }\n }\n\n makeAskRequest(\n inputMsg: string,\n agents: any[],\n conversationId: string,\n msg?: any,\n chat?: any,\n workflowId?: string,\n workflow_inputs?: any\n ): void {\n var url = `${this.environment.BASE_URL}/ai/ask`;\n\n var body = {\n user_question: inputMsg,\n user_id: this.userId,\n bot_id: this.botId,\n message_id: this.conversationService.generateKey(),\n session_id: this.conSessionKey,\n agents: agents?.filter((p) => p.selected).map((p) => p.id) ?? [],\n conversation_id: conversationId,\n first_name: this.firstName,\n last_name: this.lastName,\n };\n\n if (workflowId) {\n body['workflow_id'] = workflowId;\n body['workflow_inputs'] = workflow_inputs;\n }\n\n const headers: any = {\n 'Content-Type': 'application/json',\n Authorization: 'Bearer ' + this.s27Token,\n 'x-api-key': this.apiKey,\n 'hive-bot-id': this.botId,\n 'domain-authority': this.domainAuthorityValue,\n eventUrl: this.eventUrl,\n eventToken: this.eventToken,\n };\n\n if (this.workspaceToken) {\n headers['workspaceToken'] = this.workspaceToken;\n }\n\n fetch(url, {\n method: 'POST',\n headers: headers,\n body: JSON.stringify(body),\n })\n .then((response) => {\n if (response.status === 401 || response.status === 403) {\n this.is401 = true;\n this.refreshToken.emit();\n\n // If `msg` and `chat` exist, handle them\n if (msg && chat) {\n this.msg = msg;\n this.chat = chat;\n this.isFetchDataFor = true;\n }\n } else {\n this.is401 = false;\n }\n return response.json();\n })\n .then((data) => {\n console.log(data);\n // Additional response handling if needed\n })\n .catch((err) => {\n console.error('Error: ', err);\n this.isChatingWithAi = false;\n });\n\n this.input = '';\n this.selectedWorkflow = null;\n this.openWorkflowInput = false;\n this.isWorkflowOpen = false;\n this.scrollToBottom();\n this.cdr.markForCheck();\n }\n\n makeAskRequestold(\n inputMsg: string,\n agents: any[],\n conversationId: string,\n msg?: any,\n chat?: any,\n workflowId?: string,\n workflow_inputs?: any\n ): void {\n const url = `${this.environment.BASE_URL}/ai/ask`;\n\n const body: any = {\n user_question: inputMsg,\n user_id: this.userId,\n bot_id: this.botId,\n message_id: this.conversationService.generateKey(),\n agents: agents?.filter((p) => p.selected).map((p) => p.id) ?? [],\n conversation_id: conversationId,\n first_name: this.firstName,\n last_name: this.lastName,\n };\n\n if (workflowId) {\n body['workflow_id'] = workflowId;\n body['workflow_inputs'] = workflow_inputs;\n }\n\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n 'x-api-key': this.apiKey,\n 'hive-bot-id': this.botId,\n 'domain-authority': this.domainAuthorityValue,\n });\n\n this.http.post(url, body, { headers }).subscribe({\n next: (data) => {\n console.log(data);\n // Additional response handling if needed\n },\n error: (err) => {\n console.error('Error: ', err);\n this.isChatingWithAi = false;\n },\n });\n\n this.input = '';\n this.selectedWorkflow = null;\n this.openWorkflowInput = false;\n this.isWorkflowOpen = false;\n this.scrollToBottom();\n this.cdr.markForCheck();\n }\n\n generateMarkdown(title, obj) {\n // Initialize markdown with the title\n let markdown = `## ${title}\\n`;\n\n // Loop through the object and append the field names and values\n for (const [key, value] of Object.entries(obj)) {\n var key_label =\n this.selectedWorkflow.Trigger.InputSchema.find(\n (input) => input.InputId === key\n )?.Label || key;\n markdown += `- **${key_label}**: ${value}\\n`;\n }\n\n return markdown;\n }\n\n showWorkflowHistoryDetails(workflow_id) {\n if (!workflow_id) {\n this.workflowExecutionDetails = this.currentWorkflowExecutionDetails;\n this.showWorkflowExecutionDetails = true;\n this.cdr.detectChanges();\n return;\n }\n\n this.botService.getWorkflowExecutionById(workflow_id).subscribe((res) => {\n if (res && res.Actions && Array.isArray(res.Actions)) {\n res.Actions = res.Actions.map((action) => {\n if (action.InsertTimeStamp) {\n action.InsertTimeStamp = formatTimeStamps(\n this.timezone,\n action.InsertTimeStamp\n );\n }\n return action;\n });\n }\n\n res.InsertTimeStamp = formatTimeStamps(\n this.timezone,\n res.InsertTimeStamp\n );\n this.workflowExecutionDetails = res;\n this.showWorkflowExecutionDetails = true;\n this.cdr.detectChanges();\n });\n }\n\n closeModal() {\n this.showWorkflowExecutionDetails = false;\n }\n\n objectToArray(obj: any): any[] {\n return Object.keys(obj).map((key) => ({ key, value: obj[key] }));\n }\n\n startNewConversation() {\n this.conversationKey = this.conversationService.getKey(this.botId, true);\n this.chatLog = [this.chatLog[0]];\n this.isChatingWithAi = false;\n setTimeout(() => {\n this.initializeSocket();\n }, 200);\n this.scrollToBottom();\n this.cdr.detectChanges();\n }\n\n initializeSpeechRecognizer(token: string) {\n this.speechConfig = SpeechSDK.SpeechConfig.fromAuthorizationToken(\n token,\n this.region\n );\n const audioConfig = SpeechSDK.AudioConfig.fromDefaultMicrophoneInput();\n this.recognizer = new SpeechSDK.SpeechRecognizer(\n this.speechConfig,\n audioConfig\n );\n\n this.recognizer.recognizing = (s, e) => {\n if (e.result.reason === SpeechSDK.ResultReason.RecognizingSpeech) {\n this.input = e.result.text;\n console.log(`Recognizing: ${e.result.text}`);\n this.cdr.markForCheck();\n }\n };\n\n this.recognizer.recognized = (s, e) => {\n if (e.result.reason === SpeechSDK.ResultReason.RecognizedSpeech) {\n this.input = e.result.text;\n console.log(`Recognized: ${e.result.text}`);\n this.toggleRecording();\n this.cdr.markForCheck();\n }\n };\n\n this.recognizer.canceled = (s, e) => {\n console.error('Canceled: ', e.errorDetails);\n };\n\n this.recognizer.sessionStopped = (s, e) => {\n console.log('Session stopped.');\n this.recognizer.stopContinuousRecognitionAsync();\n this.fetchData();\n };\n }\n\n toggleRecording() {\n this.isRecording = !this.isRecording;\n\n if (this.isRecording) {\n this.startRecognition();\n } else {\n this.stopRecognition();\n }\n }\n\n startRecognition() {\n this.recognizer.startContinuousRecognitionAsync();\n }\n\n stopRecognition() {\n this.recognizer.stopContinuousRecognitionAsync();\n }\n\n checkForCop29BotId() {\n return (\n this.botId == '66fa3f276c5d71e2717bfea8' ||\n this.botId == '671633545652dd78efec848d'\n );\n }\n\n getLatestTime(time): string {\n if (time) {\n return time;\n }\n return new Date().toLocaleTimeString([], {\n hour: '2-digit',\n minute: '2-digit',\n }); // returns current time in 'shortTime' format\n }\n\n /** Used by the voice modal when opened from this drawer. */\n voiceModalConversationId: string = '';\n\n openVoiceModal(): void {\n const conversationId = this.conversationKey ?? this.conversationService.getKey(this.botId, false) ?? '';\n this.voiceModalConversationId = conversationId;\n this.setupVoiceTranscripts();\n\n // Close existing overlay if any\n if (this.voiceModalOverlayRef) {\n this.voiceModalOverlayRef.detach();\n this.voiceModalOverlayRef.dispose();\n this.voiceModalOverlayRef = null;\n }\n\n const config: VoiceModalConfig = {\n apiUrl: this.environment?.BASE_URL ?? '',\n token: this.s27Token ?? '',\n botId: this.botId ?? '',\n conversationId,\n apiKey: this.apiKey ?? '',\n eventToken: this.eventToken ?? '',\n eventUrl: this.eventUrl ?? '',\n domainAuthority: this.domainAuthorityValue ?? 'prod-lite',\n agentName: this.botName || 'AI Assistant',\n agentRole: this.botSkills || 'AI Agent Specialist',\n agentAvatar: this.botIcon,\n };\n\n const closeCallback = () => {\n if (this.voiceModalOverlayRef) {\n this.voiceModalOverlayRef.detach();\n this.voiceModalOverlayRef.dispose();\n this.voiceModalOverlayRef = null;\n }\n this.closeVoiceModal();\n };\n\n const injector = Injector.create([\n { provide: VOICE_MODAL_CONFIG, useValue: config },\n { provide: VOICE_MODAL_CLOSE_CALLBACK, useValue: closeCallback },\n ], this.injector);\n\n const overlayRef = this.overlay.create({\n hasBackdrop: false,\n scrollStrategy: this.overlay.scrollStrategies.block(),\n positionStrategy: this.overlay.position().global().bottom('0').right('0').left('0').top('0'),\n });\n\n const portal = new ComponentPortal(\n VoiceAgentModalComponent,\n this.viewContainerRef,\n injector\n );\n overlayRef.attach(portal);\n this.voiceModalOverlayRef = overlayRef;\n this.cdr.markForCheck();\n }\n\n closeVoiceModal(): void {\n if (this.voiceModalOverlayRef) {\n this.voiceModalOverlayRef.detach();\n this.voiceModalOverlayRef.dispose();\n this.voiceModalOverlayRef = null;\n }\n this.isVoiceModalOpen = false;\n this.voiceAgentService.disconnect();\n this.cdr.markForCheck();\n }\n\n private setupVoiceTranscripts(): void {\n // Clear existing subscriptions\n this.voiceTranscriptSubscriptions.forEach(sub => sub.unsubscribe());\n this.voiceTranscriptSubscriptions = [];\n\n // Subscribe to user transcripts\n const userSub = this.voiceAgentService.userTranscript$.subscribe(transcript => {\n if (transcript.final && transcript.text.trim()) {\n // Add user message to chat\n this.chatLog.push({\n type: 'user',\n message: this.processMessageForDisplay(transcript.text),\n time: formatNow(this.timezone),\n copied: false,\n isCollapsedTrue: false,\n });\n this.cdr.markForCheck();\n this.scrollToBottom();\n }\n });\n\n // Subscribe to bot transcripts\n const botSub = this.voiceAgentService.botTranscript$.subscribe(transcript => {\n if (transcript && transcript.trim()) {\n // Check if last message is from bot, update it, otherwise add new\n const lastMessage = this.chatLog[this.chatLog.length - 1];\n if (lastMessage && lastMessage.type === 'ai') {\n lastMessage.message = this.processMessageForDisplay(transcript);\n } else {\n this.chatLog.push({\n type: 'ai',\n message: this.processMessageForDisplay(transcript),\n time: formatNow(this.timezone),\n copied: false,\n isCollapsedTrue: false,\n });\n this.showFeedBackIconsIndex = this.chatLog.length - 1;\n }\n this.cdr.markForCheck();\n this.scrollToBottom();\n }\n });\n\n this.voiceTranscriptSubscriptions.push(userSub, botSub);\n }\n}\n\nexport { VoiceModalConfig } from '../voice-agent/voice-modal-tokens';\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'hivegpt-chatbot',\n templateUrl: './chatbot.component.html',\n styleUrls: ['./chatbot.component.scss'],\n})\nexport class ChatBotComponent {\n @Input() userId!: string;\n @Input() apiKey!: string;\n @Input() botName!: string;\n @Input() botSkills!: string;\n @Input() botId!: string;\n @Input() closeButtonColor!: string;\n @Input() gradientColors!: string[];\n @Input() greeting!: string;\n @Input() sendButtonColor!: string;\n @Input() useOpenAi!: boolean;\n @Input() showClose!: boolean;\n @Input() bgGradient!: string[];\n @Input() sendButtonTextColor!: string;\n @Input() fullView!: boolean;\n @Input() bgBubbleAi!: string;\n @Input() bgBubbleUser!: string;\n @Input() closeButtonbgColor!: string;\n @Input() messageTextColorAi!: string;\n @Input() messageTextColorUser!: string;\n @Input() dateTimeColor!: string;\n @Input() dateTextColor!: string;\n @Input() formFieldBgColor!: string;\n @Input() formFieldTextColor!: string;\n @Input() thumbsUpMessage!: string;\n @Input() thumbsDownMessages!: string[];\n @Input() timezone!: string;\n @Input() eventName!: string;\n @Input() credentials!: [];\n @Input() unknownResponses!: [];\n @Input() rules!: string;\n @Input() eventId!: string;\n @Input() s27Token!: string;\n @Input() workspaceToken!: string;\n @Input() isDev!: boolean;\n visible = false;\n\n toggle() {\n this.visible = !this.visible;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { VoiceAgentModalComponent } from './components/voice-agent-modal/voice-agent-modal.component';\nimport { VoiceAgentService } from './services/voice-agent.service';\nimport { AudioAnalyzerService } from './services/audio-analyzer.service';\n\n@NgModule({\n declarations: [\n VoiceAgentModalComponent\n ],\n imports: [\n CommonModule\n ],\n providers: [\n VoiceAgentService,\n AudioAnalyzerService\n ],\n exports: [\n VoiceAgentModalComponent\n ]\n})\nexport class VoiceAgentModule { }\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'safeHtml',\n})\nexport class SafeHtmlPipe implements PipeTransform {\n\n constructor(private sanitizer: DomSanitizer) {\n }\n\n transform(html): unknown {\n return html ? this.sanitizer.bypassSecurityTrustHtml(html) : '';\n }\n\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { IVideo } from '../../models/video';\nimport { DOCUMENT } from '@angular/common';\n\n@Component({\n selector: 'app-video-player',\n templateUrl: './video-player.component.html',\n styleUrls: ['./video-player.component.scss'],\n})\nexport class VideoPlayerComponent\n implements OnInit, AfterViewInit {\n @Input() currentUserId: string;\n @Input() user: any;\n @Input() eventId: string;\n @Input() videoObj: IVideo;\n @Input() isDev: boolean;\n myFollowingList: Array<string>;\n myPendingSentRequests: Array<string>;\n @Input() type: string;\n isMuted: boolean = true;\n private observer: IntersectionObserver;\n isFullscreen: boolean = false;\n @ViewChild('video') video: any;\n @ViewChild('fullscreenvideo') fullscreenvideo: any;\n isFullscreenvideoPlaying: boolean = false;\n\n @Output() connectWithUser = new EventEmitter<string>();\n @Output() scheduleMeeting = new EventEmitter<any>();\n\n constructor(\n @Inject(DOCUMENT) private doc: any,\n private el: ElementRef,\n private cdr: ChangeDetectorRef\n ) {\n }\n\n ngOnInit(): void {\n }\n\n toggleSound(isMuted = null) {\n this.isMuted = isMuted != null ? isMuted : !this.isMuted;\n setTimeout(() => {\n const video: any = this.doc\n .getElementById(this.video.id.toString());\n if (video) {\n video.muted = this.isMuted;\n this.video.isMuted = this.isMuted;\n }\n\n this.cdr.markForCheck();\n //this.muteToggle.emit(this.isMuted);\n })\n}\n\n togglePlay(playState: boolean, videoEl) {\n this.videoObj.isPlaying = !this.videoObj.isPlaying;\n setTimeout(() => { \n if (playState) { \n this.videoObj.isPlaying = true;\n videoEl.play();\n var pauseBtn = document.getElementById('pause-btn');\n pauseBtn.classList.add('hide-pause-btn');\n\n this.toggleSound(false);\n }\n else{\n this.videoObj.isPlaying = false;\n videoEl.pause();\n }\n this.cdr.markForCheck();\n })\n }\n \n ngAfterViewInit() {\n if (window.innerWidth <= 576) {\n this.observer = new IntersectionObserver(\n (entries) => {\n if (entries[0].isIntersecting === true) {\n this.video.nativeElement.play();\n } else {\n this.video.nativeElement.pause();\n }\n },\n {\n threshold: 0.75,\n }\n );\n\n this.observer.observe(this.el.nativeElement as HTMLElement);\n }\n }\n\n toggleFullscreen() {\n this.isFullscreen = !this.isFullscreen;\n if (!this.isFullscreen) {\n this.fullscreenvideo.nativeElement.pause();\n }\n }\n\n toggleFullscreenPlay() {\n this.isFullscreenvideoPlaying = !this.isFullscreenvideoPlaying;\n\n if (this.isFullscreenvideoPlaying) {\n this.fullscreenvideo.nativeElement.play();\n } else {\n this.fullscreenvideo.nativeElement.pause();\n }\n }\n\n followUser(userId) {\n this.connectWithUser.emit(userId);\n }\n\n checkPendingSentRequest(userId) {\n return this.myPendingSentRequests?.find(a => a == userId);\n }\n\n canUnfollowUser() {\n return false;\n }\n\n canFollowUser() {\n return true;\n }\n\n getIniNames(firstName, lastName) {\n if(!firstName && !lastName) {\n return '';\n }\n \n if (firstName && lastName)\n return (\n firstName.charAt(0).toUpperCase() + lastName.charAt(0).toUpperCase()\n );\n else return firstName.charAt(0).toUpperCase();\n }\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n SimpleChanges,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { MatDrawer } from '@angular/material/sidenav';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { of, Subscription } from 'rxjs';\nimport { catchError, switchMap } from 'rxjs/operators';\nimport { formatNow, formatTimeStamps } from '../../utils/utils';\nimport {\n dev_environment,\n prod_environment,\n} from '../../../environments/environment';\nimport { ConversationService } from '../conversation.service';\nimport { Observable } from 'rxjs';\nimport { SocketService } from '../socket-service.service';\n\n@Component({\n selector: 'lib-bot-html-editor',\n templateUrl: './bot-html-editor.component.html',\n styleUrls: ['./bot-html-editor.component.css'],\n})\nexport class BotHtmlEditorComponent implements OnInit {\n @Input() editorContent: Observable<string>;\n @Input() isDocInEditMode: any;\n @Input() documentContent: any;\n @Input() conversationId: any;\n @Input() botId: any;\n\n documentName: any = 'doc name';\n\n environment: {\n USERS_API;\n BASE_URL;\n AGENTS_API;\n };\n\n quillConfig = {\n toolbar: [\n [{ header: '1' }, { header: '2' }, { font: [] }],\n [{ list: 'ordered' }, { list: 'bullet' }],\n ['bold', 'italic', 'underline'],\n ['link'],\n ['clean'],\n ],\n };\n constructor(private cdr: ChangeDetectorRef, private http: HttpClient) {}\n\n ngOnInit(): void {\n this.environment = prod_environment;\n\n setTimeout(() => {\n if (this.isDocInEditMode) {\n console.log('In Edit mode');\n this.filldataInForm();\n } else {\n console.log('In save mode');\n }\n }, 2500);\n }\n\n filldataInForm() {\n if (this.documentContent) {\n this.documentName = this.documentContent?.name;\n this.editorContent = this.documentContent?.content;\n this.cdr.detectChanges();\n }\n }\n\n saveContent() {\n if (!this.isDocInEditMode) {\n this.saveContent_http().subscribe();\n } else {\n this.saveContent_http().subscribe();\n }\n }\n\n saveContent_http() {\n console.log('API call function');\n\n const url = `${this.environment.AGENTS_API}/ConversationDocuments?conversationId=${this.conversationId}&botId=${this.botId}`;\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n apiKey: 'WIz/qAm+EEmfOkFaUA/weA==',\n });\n\n let data = {\n name: this.documentName,\n content: this.editorContent,\n };\n\n return this.http.post(url, data, { headers }).pipe(\n switchMap((res: any) => {\n if (res) {\n // alert('Saved Successfully');\n }\n this.cdr.markForCheck();\n\n return of(res);\n }),\n catchError((error) => {\n console.error('Error fetching chatbot config: ', error);\n\n return of(null);\n })\n );\n }\n\n updateContent_http() {\n console.log('API call function');\n\n const url = `${this.environment.AGENTS_API}/ConversationDocuments/rename?conversationId=${this.conversationId}&botId=${this.botId}`;\n const headers = new HttpHeaders({\n 'Content-Type': 'application/json',\n apiKey: 'WIz/qAm+EEmfOkFaUA/weA==',\n });\n\n let data = {\n name: this.documentName,\n content: this.editorContent,\n };\n\n return this.http.put(url, data, { headers }).pipe(\n switchMap((res: any) => {\n if (res) {\n // alert('Updated Successfully');\n }\n this.cdr.markForCheck();\n\n return of(res);\n }),\n catchError((error) => {\n console.error('Error fetching chatbot config: ', error);\n\n return of(null);\n })\n );\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { ChatDrawerComponent } from './components/chat-drawer/chat-drawer.component';\nimport { ChatBotComponent } from './components/chatbot/chatbot.component';\nimport { SafeHtmlPipe } from './pipes/safe-html.pipe';\nimport { VideoPlayerComponent } from './components/video-player/video-player.component';\nimport { QuillModule } from 'ngx-quill';\nimport { BotHtmlEditorComponent } from './components/bot-html-editor/bot-html-editor.component';\nimport { VoiceAgentModule } from './components/voice-agent/voice-agent.module';\n\n@NgModule({\n declarations: [ChatBotComponent, ChatDrawerComponent, VideoPlayerComponent, SafeHtmlPipe, BotHtmlEditorComponent],\n imports: [CommonModule, OverlayModule, MatIconModule, MatSidenavModule, FormsModule, ReactiveFormsModule, QuillModule, VoiceAgentModule],\n exports: [ChatBotComponent, ChatDrawerComponent, VideoPlayerComponent]\n})\nexport class HiveGptModule { }\n","/*\n * Public API Surface of hive-gpt\n */\n\nexport * from './lib/components/chat-drawer/chat-drawer.component';\nexport * from './lib/components/chatbot/chatbot.component';\nexport * from './lib/components/voice-agent/components/voice-agent-modal/voice-agent-modal.component';\nexport * from './lib/components/voice-agent/services/voice-agent.service';\nexport * from './lib/components/voice-agent/services/audio-analyzer.service';\nexport * from './lib/components/voice-agent/voice-agent.module';\nexport * from './lib/components/voice-agent/voice-modal-tokens';\nexport * from './lib/hivegpt.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {NotificationSocket as ɵd} from './lib/components/NotificationSocket';\nexport {BotHtmlEditorComponent as ɵh} from './lib/components/bot-html-editor/bot-html-editor.component';\nexport {BotsService as ɵa} from './lib/components/bot.service';\nexport {ConversationService as ɵc} from './lib/components/conversation.service';\nexport {SocketService as ɵb} from './lib/components/socket-service.service';\nexport {TranslationService as ɵe} from './lib/components/translations/translation.service';\nexport {VideoPlayerComponent as ɵf} from './lib/components/video-player/video-player.component';\nexport {SafeHtmlPipe as ɵg} from './lib/pipes/safe-html.pipe';"],"names":["Injectable","Subject","Socket","HttpHeaders","map","HttpClient","BehaviorSubject","WebSocketTransport","PipecatClient","RTVIEvent","InjectionToken","EventEmitter","Component","Injector","Output","Input","ElementRef","switchMap","of","catchError","marked","Validators","SpeechSDK","portal","ComponentPortal","ChangeDetectionStrategy","FormBuilder","ChangeDetectorRef","DomSanitizer","Renderer2","Overlay","ViewContainerRef","ViewChild","ViewChildren","NgModule","CommonModule","Pipe","Inject","DOCUMENT","OverlayModule","MatIconModule","MatSidenavModule","FormsModule","ReactiveFormsModule","QuillModule"],"mappings":"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"}