@buni.ai/chatbot-angular 1.0.22 → 1.0.23
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.
- package/dist/index.esm.js +103 -12
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +103 -12
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.esm.js
CHANGED
|
@@ -38,6 +38,8 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
|
|
|
38
38
|
|
|
39
39
|
// Default BuniAI platform URL
|
|
40
40
|
const BUNI_PLATFORM_URL = "https://www.buni.ai";
|
|
41
|
+
const PARENT_HANDSHAKE_TYPE = "buni:parent_handshake";
|
|
42
|
+
const IFRAME_HANDSHAKE_ACK_TYPE = "buni:iframe_handshake_ack";
|
|
41
43
|
// Core widget loader class
|
|
42
44
|
class BuniChatWidget {
|
|
43
45
|
constructor() {
|
|
@@ -53,6 +55,9 @@ class BuniChatWidget {
|
|
|
53
55
|
this.chatIframe = null;
|
|
54
56
|
this.customerData = null;
|
|
55
57
|
this.sessionVariables = null;
|
|
58
|
+
this.chatTargetOrigin = null;
|
|
59
|
+
this.handshakeComplete = false;
|
|
60
|
+
this.outboundMessageQueue = [];
|
|
56
61
|
}
|
|
57
62
|
async initialize(options) {
|
|
58
63
|
this.options = options;
|
|
@@ -239,7 +244,18 @@ class BuniChatWidget {
|
|
|
239
244
|
chatIframe.onload = () => {
|
|
240
245
|
// Set visibility hidden after iframe loads to allow content initialization
|
|
241
246
|
chatIframe.style.visibility = "hidden";
|
|
247
|
+
// Compute the iframe origin once we know the final src.
|
|
248
|
+
try {
|
|
249
|
+
this.chatTargetOrigin = new URL(chatIframe.src).origin;
|
|
250
|
+
}
|
|
251
|
+
catch (_a) {
|
|
252
|
+
this.chatTargetOrigin = this.getBaseUrl();
|
|
253
|
+
}
|
|
254
|
+
// Reset handshake state for this iframe instance.
|
|
255
|
+
this.handshakeComplete = false;
|
|
256
|
+
this.outboundMessageQueue = [];
|
|
242
257
|
this.setupPostMessageAPI(chatIframe);
|
|
258
|
+
this.sendParentHandshake();
|
|
243
259
|
// Now that both iframes are loaded, resolve the promise
|
|
244
260
|
this.widgetElement = container;
|
|
245
261
|
this.triggerIframe = triggerIframe;
|
|
@@ -251,13 +267,17 @@ class BuniChatWidget {
|
|
|
251
267
|
};
|
|
252
268
|
// Listen for trigger and connection events
|
|
253
269
|
window.addEventListener("message", (event) => {
|
|
254
|
-
var _a;
|
|
255
|
-
|
|
270
|
+
var _a, _b;
|
|
271
|
+
const payload = event.data;
|
|
272
|
+
if (!payload || typeof payload !== "object")
|
|
273
|
+
return;
|
|
274
|
+
if (typeof payload.type !== "string")
|
|
256
275
|
return;
|
|
257
|
-
switch (
|
|
276
|
+
switch (payload.type) {
|
|
258
277
|
case "connection_ready":
|
|
259
278
|
// Check if message is from chat iframe
|
|
260
|
-
if (event.source === ((_a = this.chatIframe) === null || _a === void 0 ? void 0 : _a.contentWindow)
|
|
279
|
+
if (event.source === ((_a = this.chatIframe) === null || _a === void 0 ? void 0 : _a.contentWindow) &&
|
|
280
|
+
event.origin === this.getBaseUrl()) {
|
|
261
281
|
// Connection is ready, show the trigger button
|
|
262
282
|
if (container && !config.hideDefaultTrigger) {
|
|
263
283
|
container.style.display = "block";
|
|
@@ -271,7 +291,10 @@ class BuniChatWidget {
|
|
|
271
291
|
}
|
|
272
292
|
break;
|
|
273
293
|
case "trigger_clicked":
|
|
274
|
-
this.
|
|
294
|
+
if (event.source === ((_b = this.triggerIframe) === null || _b === void 0 ? void 0 : _b.contentWindow) &&
|
|
295
|
+
event.origin === window.location.origin) {
|
|
296
|
+
this.openChat();
|
|
297
|
+
}
|
|
275
298
|
break;
|
|
276
299
|
}
|
|
277
300
|
});
|
|
@@ -386,11 +409,15 @@ class BuniChatWidget {
|
|
|
386
409
|
</div>
|
|
387
410
|
<script>
|
|
388
411
|
function handleClick() {
|
|
389
|
-
|
|
412
|
+
// Trigger iframe is same-origin with parent (about:blank + document.write),
|
|
413
|
+
// so we can safely target the parent's origin.
|
|
414
|
+
window.parent.postMessage({ type: 'trigger_clicked' }, window.location.origin);
|
|
390
415
|
}
|
|
391
416
|
|
|
392
417
|
// Listen for unread count updates
|
|
393
418
|
window.addEventListener('message', function(event) {
|
|
419
|
+
if (event.source !== window.parent) return;
|
|
420
|
+
if (event.origin !== window.location.origin) return;
|
|
394
421
|
if (event.data.type === 'updateUnreadCount') {
|
|
395
422
|
const badge = document.getElementById('badge');
|
|
396
423
|
const count = event.data.count || 0;
|
|
@@ -538,12 +565,24 @@ class BuniChatWidget {
|
|
|
538
565
|
// Listen for messages from the iframe
|
|
539
566
|
window.addEventListener("message", (event) => {
|
|
540
567
|
var _a;
|
|
568
|
+
if (event.source !== iframe.contentWindow) {
|
|
569
|
+
return;
|
|
570
|
+
}
|
|
541
571
|
// Verify origin for security
|
|
542
572
|
if (event.origin !== this.getBaseUrl()) {
|
|
543
573
|
return;
|
|
544
574
|
}
|
|
545
|
-
const
|
|
575
|
+
const payload = event.data;
|
|
576
|
+
if (!payload || typeof payload !== "object")
|
|
577
|
+
return;
|
|
578
|
+
const { type, data } = payload;
|
|
579
|
+
if (typeof type !== "string")
|
|
580
|
+
return;
|
|
546
581
|
switch (type) {
|
|
582
|
+
case IFRAME_HANDSHAKE_ACK_TYPE:
|
|
583
|
+
this.handshakeComplete = true;
|
|
584
|
+
this.flushOutboundMessageQueue();
|
|
585
|
+
break;
|
|
547
586
|
case "ready":
|
|
548
587
|
this.state.isLoaded = true;
|
|
549
588
|
this.emit("ready", data);
|
|
@@ -575,7 +614,7 @@ class BuniChatWidget {
|
|
|
575
614
|
// Update unread count in trigger
|
|
576
615
|
this.state.unreadCount++;
|
|
577
616
|
if ((_a = this.triggerIframe) === null || _a === void 0 ? void 0 : _a.contentWindow) {
|
|
578
|
-
this.triggerIframe.contentWindow.postMessage({ type: "updateUnreadCount", count: this.state.unreadCount },
|
|
617
|
+
this.triggerIframe.contentWindow.postMessage({ type: "updateUnreadCount", count: this.state.unreadCount }, window.location.origin);
|
|
579
618
|
}
|
|
580
619
|
break;
|
|
581
620
|
case "customer_data_updated":
|
|
@@ -595,17 +634,69 @@ class BuniChatWidget {
|
|
|
595
634
|
}
|
|
596
635
|
});
|
|
597
636
|
}
|
|
637
|
+
sendParentHandshake() {
|
|
638
|
+
var _a, _b;
|
|
639
|
+
const iframeWindow = (_a = this.chatIframe) === null || _a === void 0 ? void 0 : _a.contentWindow;
|
|
640
|
+
if (!iframeWindow)
|
|
641
|
+
return;
|
|
642
|
+
const targetOrigin = (_b = this.chatTargetOrigin) !== null && _b !== void 0 ? _b : this.getBaseUrl();
|
|
643
|
+
try {
|
|
644
|
+
iframeWindow.postMessage({
|
|
645
|
+
type: PARENT_HANDSHAKE_TYPE,
|
|
646
|
+
data: { origin: window.location.origin },
|
|
647
|
+
}, targetOrigin);
|
|
648
|
+
}
|
|
649
|
+
catch (_c) {
|
|
650
|
+
// Best-effort; iframe may fall back to document.referrer for origin discovery.
|
|
651
|
+
}
|
|
652
|
+
}
|
|
653
|
+
flushOutboundMessageQueue() {
|
|
654
|
+
var _a, _b;
|
|
655
|
+
const iframeWindow = (_a = this.chatIframe) === null || _a === void 0 ? void 0 : _a.contentWindow;
|
|
656
|
+
if (!iframeWindow)
|
|
657
|
+
return;
|
|
658
|
+
const targetOrigin = (_b = this.chatTargetOrigin) !== null && _b !== void 0 ? _b : this.getBaseUrl();
|
|
659
|
+
const queued = this.outboundMessageQueue;
|
|
660
|
+
if (queued.length === 0)
|
|
661
|
+
return;
|
|
662
|
+
this.outboundMessageQueue = [];
|
|
663
|
+
for (const msg of queued) {
|
|
664
|
+
iframeWindow.postMessage({ type: msg.type, data: msg.data }, targetOrigin);
|
|
665
|
+
}
|
|
666
|
+
}
|
|
598
667
|
postMessageToWidget(type, data) {
|
|
599
|
-
var _a;
|
|
600
|
-
|
|
601
|
-
|
|
668
|
+
var _a, _b;
|
|
669
|
+
const iframeWindow = (_a = this.chatIframe) === null || _a === void 0 ? void 0 : _a.contentWindow;
|
|
670
|
+
if (!iframeWindow)
|
|
671
|
+
return;
|
|
672
|
+
const targetOrigin = (_b = this.chatTargetOrigin) !== null && _b !== void 0 ? _b : this.getBaseUrl();
|
|
673
|
+
// Ensure handshake is sent before any other commands; queue until ack.
|
|
674
|
+
if (!this.handshakeComplete && type !== PARENT_HANDSHAKE_TYPE) {
|
|
675
|
+
const queue = this.outboundMessageQueue;
|
|
676
|
+
if (queue.length < 50) {
|
|
677
|
+
queue.push({ type, data });
|
|
678
|
+
}
|
|
679
|
+
else {
|
|
680
|
+
this.outboundMessageQueue = [...queue.slice(-49), { type, data }];
|
|
681
|
+
}
|
|
682
|
+
this.sendParentHandshake();
|
|
683
|
+
return;
|
|
602
684
|
}
|
|
685
|
+
iframeWindow.postMessage({ type, data }, targetOrigin);
|
|
603
686
|
}
|
|
604
687
|
getBaseUrl() {
|
|
688
|
+
var _a, _b;
|
|
605
689
|
// Return the base URL for the BuniAI platform
|
|
606
690
|
// Priority: 1. config.baseUrl, 2. global BUNI_API_URL, 3. default platform URL
|
|
691
|
+
const configUrl = (_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.config) === null || _b === void 0 ? void 0 : _b.baseUrl;
|
|
607
692
|
const globalUrl = globalThis.BUNI_API_URL;
|
|
608
|
-
|
|
693
|
+
const rawUrl = configUrl || globalUrl || BUNI_PLATFORM_URL;
|
|
694
|
+
try {
|
|
695
|
+
return new URL(rawUrl).origin;
|
|
696
|
+
}
|
|
697
|
+
catch (_c) {
|
|
698
|
+
return rawUrl;
|
|
699
|
+
}
|
|
609
700
|
}
|
|
610
701
|
destroy() {
|
|
611
702
|
this.postMessageToWidget("destroy");
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../core/dist/index.esm.js","../src/buni-chat.service.ts","../src/buni-chat-widget.component.ts","../src/buni-chat-button.component.ts","../src/buni-chat.module.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","// Default BuniAI platform URL\nconst BUNI_PLATFORM_URL = \"https://www.buni.ai\";\n// Core widget loader class\nclass BuniChatWidget {\n constructor() {\n this.state = {\n isOpen: false,\n isLoaded: false,\n isMinimized: false,\n unreadCount: 0,\n };\n this.eventListeners = new Map();\n this.widgetElement = null;\n this.triggerIframe = null;\n this.chatIframe = null;\n this.customerData = null;\n this.sessionVariables = null;\n }\n async initialize(options) {\n this.options = options;\n try {\n await this.loadWidget();\n this.state.isLoaded = true;\n this.emit(\"ready\", { timestamp: Date.now() });\n if (options.onReady) {\n options.onReady({ timestamp: Date.now() });\n }\n }\n catch (error) {\n const errorObj = error instanceof Error ? error : new Error(String(error));\n this.emit(\"error\", { error: errorObj, context: \"initialization\" });\n if (options.onError) {\n options.onError(errorObj);\n }\n throw errorObj;\n }\n }\n async loadWidget() {\n return new Promise((resolve, reject) => {\n // Check if container already exists and remove it\n const existingContainer = document.getElementById(\"buni-chat-widget-container\");\n if (existingContainer) {\n existingContainer.remove();\n }\n // Create container div for proper positioning\n const container = document.createElement(\"div\");\n container.id = \"buni-chat-widget-container\";\n const config = this.options.config || {};\n const ensureUnits = (value, defaultValue) => {\n if (!value)\n return defaultValue;\n const str = String(value);\n if (str.match(/^[\\d.]+\\s*(px|em|rem|%|vh|vw)$/))\n return str;\n if (str.match(/^[\\d.]+$/))\n return `${str}px`;\n return str;\n };\n const widthValue = ensureUnits(config.width, \"350px\");\n const heightValue = ensureUnits(config.height, \"650px\");\n // Configuration\n const showTriggerText = config.showTriggerText !== false;\n const hasTriggerText = !!config.triggerText;\n const primaryColor = config.primaryColor || \"#795548\";\n const triggerText = config.triggerText || \"\";\n const companyName = config.companyName || \"Chat Support\";\n // Responsive breakpoints\n const isMobile = window.innerWidth <= 768;\n // Calculate trigger dimensions\n const triggerWidth = showTriggerText && hasTriggerText ? \"auto\" : \"52px\";\n const triggerHeight = \"52px\";\n const triggerMinWidth = showTriggerText && hasTriggerText ? \"auto\" : \"\";\n // Container starts as trigger size, initially hidden until connection is ready\n container.style.cssText = `\n position: fixed;\n pointer-events: none;\n z-index: 999999;\n width: ${triggerWidth};\n height: ${triggerHeight};\n ${triggerMinWidth ? `min-width: ${triggerMinWidth};` : \"\"}\n transition: width 0.3s ease, height 0.3s ease, border-radius 0.3s ease;\n ${this.getPositionStyles(config.position || \"bottom-right\", true)}\n display: none;\n overflow: hidden;\n box-sizing: border-box;\n `;\n // Create inline trigger iframe (no src)\n const triggerIframe = document.createElement(\"iframe\");\n triggerIframe.id = \"buni-trigger-iframe\";\n triggerIframe.style.cssText = `\n position: absolute;\n top: 0;\n left: 0;\n border: none;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n border-radius: ${showTriggerText && hasTriggerText ? \"26px\" : \"50%\"};\n transition: border-radius 0.3s ease, box-shadow 0.3s ease;\n pointer-events: auto;\n `;\n triggerIframe.setAttribute(\"title\", \"BuniAI Chat Trigger\");\n // Inject trigger HTML content directly (no src)\n container.appendChild(triggerIframe);\n document.body.appendChild(container);\n triggerIframe.onload = () => {\n var _a;\n const triggerDoc = triggerIframe.contentDocument ||\n ((_a = triggerIframe.contentWindow) === null || _a === void 0 ? void 0 : _a.document);\n if (!triggerDoc) {\n reject(new Error(\"Failed to access trigger iframe document\"));\n return;\n }\n // Build inline HTML for trigger\n const triggerHTML = this.buildTriggerHTML(primaryColor, triggerText || companyName, showTriggerText && hasTriggerText, config.customAvatar, config.avatarType, config.avatarText);\n triggerDoc.open();\n triggerDoc.write(triggerHTML);\n triggerDoc.close();\n // Create chat iframe (initially hidden)\n const chatIframe = document.createElement(\"iframe\");\n chatIframe.id = \"buni-chat-iframe\";\n // Build URL with configuration parameters\n const params = new URLSearchParams({\n token: this.options.token,\n embedded: \"true\",\n source: \"package\",\n framework: this.options.framework || \"vanilla\",\n });\n // Add all configuration parameters\n if (config.theme)\n params.set(\"theme\", config.theme);\n if (config.primaryColor)\n params.set(\"primaryColor\", config.primaryColor);\n if (config.secondaryColor)\n params.set(\"secondaryColor\", config.secondaryColor);\n if (config.position)\n params.set(\"position\", config.position);\n if (widthValue && config.width !== undefined)\n params.set(\"width\", widthValue);\n if (heightValue && config.height !== undefined)\n params.set(\"height\", heightValue);\n if (config.customAvatar)\n params.set(\"customAvatar\", config.customAvatar);\n if (config.companyName)\n params.set(\"companyName\", config.companyName);\n if (config.welcomeMessage)\n params.set(\"welcomeMessage\", config.welcomeMessage);\n if (config.triggerText)\n params.set(\"triggerText\", config.triggerText);\n if (config.borderRadius)\n params.set(\"borderRadius\", config.borderRadius);\n if (config.avatarType)\n params.set(\"avatarType\", config.avatarType);\n if (config.avatarText)\n params.set(\"avatarText\", config.avatarText);\n // Boolean options\n if (config.showBranding !== undefined)\n params.set(\"showBranding\", String(config.showBranding));\n if (config.autoOpen !== undefined)\n params.set(\"autoOpen\", String(config.autoOpen));\n if (config.allowMinimize !== undefined)\n params.set(\"allowMinimize\", String(config.allowMinimize));\n if (config.showMinimize !== undefined)\n params.set(\"showMinimize\", String(config.showMinimize));\n if (config.allowClose !== undefined)\n params.set(\"allowClose\", String(config.allowClose));\n if (config.enableFileUpload !== undefined)\n params.set(\"enableFileUpload\", String(config.enableFileUpload));\n if (config.showTimestamps !== undefined)\n params.set(\"showTimestamps\", String(config.showTimestamps));\n if (config.enableMobile !== undefined)\n params.set(\"enableMobile\", String(config.enableMobile));\n if (config.showPreChatForm !== undefined)\n params.set(\"showPreChatForm\", String(config.showPreChatForm));\n if (config.showStartButton !== undefined)\n params.set(\"showStartButton\", String(config.showStartButton));\n if (config.startButtonText)\n params.set(\"startButtonText\", config.startButtonText);\n if (config.preChatFormFields)\n params.set(\"preChatFormFields\", JSON.stringify(config.preChatFormFields));\n chatIframe.src = `${this.getBaseUrl()}/embed/chat?${params.toString()}`;\n // Chat iframe styling - initially hidden\n chatIframe.style.cssText = `\n position: absolute;\n top: 0;\n left: 0;\n border: none;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n border-radius: ${isMobile ? \"0\" : \"16px\"};\n transition: border-radius 0.3s ease, box-shadow 0.3s ease;\n pointer-events: auto;\n box-shadow: ${isMobile ? \"none\" : \"0 8px 32px rgba(0,0,0,0.15)\"};\n display: none;\n `;\n chatIframe.setAttribute(\"allow\", \"clipboard-write\");\n chatIframe.setAttribute(\"title\", \"BuniAI Chat Widget\");\n container.appendChild(chatIframe);\n // Wait for chat iframe to load before resolving\n chatIframe.onload = () => {\n // Set visibility hidden after iframe loads to allow content initialization\n chatIframe.style.visibility = \"hidden\";\n this.setupPostMessageAPI(chatIframe);\n // Now that both iframes are loaded, resolve the promise\n this.widgetElement = container;\n this.triggerIframe = triggerIframe;\n this.chatIframe = chatIframe;\n this.state.isMinimized = true;\n this.state.isLoaded = true;\n resolve();\n };\n };\n // Listen for trigger and connection events\n window.addEventListener(\"message\", (event) => {\n var _a;\n if (!event.data.type)\n return;\n switch (event.data.type) {\n case \"connection_ready\":\n // Check if message is from chat iframe\n if (event.source === ((_a = this.chatIframe) === null || _a === void 0 ? void 0 : _a.contentWindow)) {\n // Connection is ready, show the trigger button\n if (container && !config.hideDefaultTrigger) {\n container.style.display = \"block\";\n }\n // Emit connection_ready event for consumers\n this.emit(\"connection_ready\", { timestamp: Date.now() });\n if (this.options.onConnectionReady &&\n typeof this.options.onConnectionReady === \"function\") {\n this.options.onConnectionReady({ timestamp: Date.now() });\n }\n }\n break;\n case \"trigger_clicked\":\n this.openChat();\n break;\n }\n });\n // Trigger the load event\n // if by 10 seconds the ready message is not received, we want to manually, set the container to visible\n setTimeout(() => {\n if (!this.state.isLoaded) {\n if (container &&\n !config.hideDefaultTrigger &&\n container.style.display === \"none\" &&\n this.state.isOpen === false) {\n container.style.display = \"block\";\n }\n }\n }, 10000);\n triggerIframe.src = \"about:blank\";\n });\n }\n buildTriggerHTML(primaryColor, text, showText, customAvatar, avatarType, avatarText) {\n const avatarContent = customAvatar\n ? `<img src=\"${customAvatar}\" alt=\"Avatar\" style=\"width: 32px; height: 32px; border-radius: 50%;\" />`\n : avatarType === \"text\" && avatarText\n ? `<div style=\"width: 32px; height: 32px; border-radius: 50%; background: rgba(255,255,255,0.3); display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 600; color: white;\">${avatarText.substring(0, 2).toUpperCase()}</div>`\n : `<svg width=\"28\" height=\"28\" viewBox=\"0 0 24 24\" fill=\"white\"><path d=\"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1 0-.9-2-2zm0 14H6l-2 2V4h16v12z\"/></svg>`;\n return `<!DOCTYPE html>\n<html>\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <style>\n * { margin: 0; padding: 0; box-sizing: border-box; }\n body {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n overflow: hidden;\n }\n .trigger {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: ${showText ? \"12px\" : \"0\"};\n padding: ${showText ? \"10px 20px\" : \"10px\"};\n background: ${primaryColor};\n color: white;\n border-radius: ${showText ? \"26px\" : \"50%\"};\n cursor: pointer;\n transition: all 0.3s ease;\n box-shadow: 0 4px 16px rgba(0,0,0,0.15);\n animation: pulse 2s infinite;\n ${showText ? \"\" : \"width: 52px; height: 52px;\"}\n }\n .trigger:hover {\n transform: translateY(-2px);\n filter: brightness(1.1);\n box-shadow: 0 6px 24px ${primaryColor}99;\n }\n .trigger:active {\n transform: translateY(0);\n }\n .avatar {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n }\n .text {\n font-size: 14px;\n font-weight: 600;\n white-space: nowrap;\n }\n .badge {\n position: absolute;\n top: -4px;\n right: -4px;\n background: #f44336;\n color: white;\n border-radius: 10px;\n padding: 2px 6px;\n font-size: 11px;\n font-weight: 600;\n min-width: 18px;\n text-align: center;\n display: none;\n animation: pulse 2s infinite;\n }\n .badge.show {\n display: block;\n }\n @keyframes pulse {\n 0%, 100% {\n transform: scale(1);\n box-shadow: 0 4px 16px rgba(0,0,0,0.15);\n }\n 50% {\n transform: scale(1.02);\n box-shadow: 0 6px 24px ${primaryColor}99;\n }\n }\n </style>\n</head>\n<body>\n <div style=\"position: relative;\">\n <div class=\"trigger\" onclick=\"handleClick()\">\n <div class=\"avatar\">${avatarContent}</div>\n ${showText ? `<span class=\"text\">${text}</span>` : \"\"}\n </div>\n <div class=\"badge\" id=\"badge\">0</div>\n </div>\n <script>\n function handleClick() {\n window.parent.postMessage({ type: 'trigger_clicked' }, '*');\n }\n \n // Listen for unread count updates\n window.addEventListener('message', function(event) {\n if (event.data.type === 'updateUnreadCount') {\n const badge = document.getElementById('badge');\n const count = event.data.count || 0;\n badge.textContent = count;\n if (count > 0) {\n badge.classList.add('show');\n } else {\n badge.classList.remove('show');\n }\n }\n });\n </script>\n</body>\n</html>`;\n }\n async openChat() {\n if (!this.chatIframe || !this.widgetElement || !this.triggerIframe)\n return;\n if (this.state.isOpen)\n return; // Already open\n const config = this.options.config || {};\n const isMobile = window.innerWidth <= 768;\n const isTablet = window.innerWidth > 768 && window.innerWidth <= 1024;\n const ensureUnits = (value, defaultValue) => {\n if (!value)\n return defaultValue;\n const str = String(value);\n if (str.match(/^[\\d.]+\\s*(px|em|rem|%|vh|vw)$/))\n return str;\n if (str.match(/^[\\d.]+$/))\n return `${str}px`;\n return str;\n };\n const widthValue = ensureUnits(config.width, \"350px\");\n const heightValue = ensureUnits(config.height, \"650px\");\n // Calculate chat dimensions\n const chatWidth = isMobile\n ? \"100vw\"\n : isTablet\n ? \"min(calc(100vw - 3rem), 370px)\"\n : widthValue;\n const chatHeight = isMobile\n ? \"100vh\"\n : isTablet\n ? \"min(calc(100vh - 3rem), 620px)\"\n : heightValue;\n // Resize container for chat\n this.widgetElement.style.cssText = `\n position: fixed;\n pointer-events: none;\n z-index: 999999;\n width: ${chatWidth};\n height: ${chatHeight};\n ${isMobile ? \"max-width: 100vw; max-height: 100vh;\" : \"\"}\n transition: width 0.3s ease, height 0.3s ease, border-radius 0.3s ease;\n ${this.getPositionStyles(config.position || \"bottom-right\", false)}\n display: block;\n overflow: visible;\n box-sizing: border-box;\n `;\n // Hide trigger, show chat\n this.triggerIframe.style.display = \"none\";\n this.chatIframe.style.display = \"block\";\n this.chatIframe.style.visibility = \"visible\";\n this.state.isMinimized = false;\n this.state.isOpen = true;\n this.emit(\"maximized\", { timestamp: Date.now() });\n }\n closeChat() {\n if (!this.chatIframe || !this.widgetElement || !this.triggerIframe)\n return;\n const config = this.options.config || {};\n const showTriggerText = config.showTriggerText !== false;\n const hasTriggerText = !!config.triggerText;\n // Hide chat iframe\n this.chatIframe.style.display = \"none\";\n this.chatIframe.style.visibility = \"hidden\";\n // Resize container back to trigger size\n const triggerWidth = showTriggerText && hasTriggerText ? \"auto\" : \"52px\";\n const triggerHeight = \"52px\";\n const triggerMinWidth = showTriggerText && hasTriggerText ? \"auto\" : \"\";\n this.widgetElement.style.cssText = `\n position: fixed;\n pointer-events: none;\n z-index: 999999;\n width: ${triggerWidth};\n height: ${triggerHeight};\n ${triggerMinWidth ? `min-width: ${triggerMinWidth};` : \"\"}\n transition: width 0.3s ease, height 0.3s ease, border-radius 0.3s ease;\n ${this.getPositionStyles(config.position || \"bottom-right\", true)}\n display: block;\n overflow: hidden;\n box-sizing: border-box;\n `;\n // Show trigger again\n this.triggerIframe.style.display = \"block\";\n this.state.isMinimized = true;\n this.state.isOpen = false;\n this.emit(\"minimized\", { timestamp: Date.now() });\n }\n getPositionStyles(position, isMinimized = false) {\n // Responsive positioning following mobile-first best practices\n const viewportWidth = window.innerWidth;\n const isMobile = viewportWidth <= 768;\n const isTablet = viewportWidth > 768 && viewportWidth <= 1024;\n // For extra small devices (Galaxy S8+, iPhone SE, etc.), use minimal or no margins\n // For mobile, use small margins for breathing room\n // For tablet/desktop, use larger margins for floating appearance\n let margin;\n if (isMinimized) {\n // Minimized button always needs some space from edges\n margin = isMobile ? \"12px\" : \"20px\";\n }\n else if (isMobile) {\n // Full screen on all mobile devices (no margins)\n margin = \"0\";\n }\n else if (isTablet) {\n // Medium margins on tablets\n margin = \"16px\";\n }\n else {\n // Larger margins on desktop for floating effect\n margin = \"24px\";\n }\n // On mobile screens when not minimized, position at edges for full coverage\n if (isMobile && !isMinimized) {\n return `top: 0; left: 0; right: 0; bottom: 0;`;\n }\n // Standard positioning for larger screens or minimized state\n switch (position) {\n case \"bottom-right\":\n return `bottom: ${margin}; right: ${margin};`;\n case \"bottom-left\":\n return `bottom: ${margin}; left: ${margin};`;\n case \"top-right\":\n return `top: ${margin}; right: ${margin};`;\n case \"top-left\":\n return `top: ${margin}; left: ${margin};`;\n default:\n return `bottom: ${margin}; right: ${margin};`;\n }\n }\n setupPostMessageAPI(iframe) {\n // Listen for messages from the iframe\n window.addEventListener(\"message\", (event) => {\n var _a;\n // Verify origin for security\n if (event.origin !== this.getBaseUrl()) {\n return;\n }\n const { type, data } = event.data;\n switch (type) {\n case \"ready\":\n this.state.isLoaded = true;\n this.emit(\"ready\", data);\n if (this.options.onReady) {\n this.options.onReady(data);\n }\n break;\n case \"visibility_changed\":\n this.state.isOpen = data.visibility === \"visible\";\n this.emit(\"visibility_changed\", data);\n if (this.options.onVisibilityChanged) {\n this.options.onVisibilityChanged(data);\n }\n break;\n case \"new_message\":\n if (data.isFromBot) {\n this.state.unreadCount++;\n }\n this.emit(\"new_message\", data);\n if (this.options.onNewMessage) {\n this.options.onNewMessage(data);\n }\n break;\n case \"minimized\":\n // User clicked minimize in chat - close chat and show trigger\n this.closeChat();\n break;\n case \"new_unread_message\":\n // Update unread count in trigger\n this.state.unreadCount++;\n if ((_a = this.triggerIframe) === null || _a === void 0 ? void 0 : _a.contentWindow) {\n this.triggerIframe.contentWindow.postMessage({ type: \"updateUnreadCount\", count: this.state.unreadCount }, \"*\");\n }\n break;\n case \"customer_data_updated\":\n this.customerData = data;\n this.emit(\"customer_data_updated\", data);\n break;\n case \"session_updated\":\n this.sessionVariables = data.variables;\n this.emit(\"session_updated\", data);\n break;\n case \"error\":\n this.emit(\"error\", data);\n if (this.options.onError) {\n this.options.onError(data.error);\n }\n break;\n }\n });\n }\n postMessageToWidget(type, data) {\n var _a;\n if ((_a = this.chatIframe) === null || _a === void 0 ? void 0 : _a.contentWindow) {\n this.chatIframe.contentWindow.postMessage({ type, data }, this.getBaseUrl());\n }\n }\n getBaseUrl() {\n // Return the base URL for the BuniAI platform\n // Priority: 1. config.baseUrl, 2. global BUNI_API_URL, 3. default platform URL\n const globalUrl = globalThis.BUNI_API_URL;\n return globalUrl || BUNI_PLATFORM_URL;\n }\n destroy() {\n this.postMessageToWidget(\"destroy\");\n if (this.widgetElement) {\n this.widgetElement.remove();\n this.widgetElement = null;\n }\n this.triggerIframe = null;\n this.chatIframe = null;\n this.eventListeners.clear();\n this.state.isLoaded = false;\n this.customerData = null;\n this.sessionVariables = null;\n }\n show() {\n // Show the widget container if it was hidden (hideDefaultTrigger mode)\n if (this.widgetElement) {\n this.widgetElement.style.display = \"block\";\n }\n // Open chat if not already open\n if (!this.chatIframe && !this.state.isOpen) {\n this.openChat();\n }\n }\n hide() {\n var _a;\n // Close chat if open\n if (this.chatIframe) {\n this.closeChat();\n }\n // If hideDefaultTrigger is enabled, completely hide the container\n if (((_a = this.options.config) === null || _a === void 0 ? void 0 : _a.hideDefaultTrigger) && this.widgetElement) {\n this.widgetElement.style.display = \"none\";\n }\n this.state.isOpen = false;\n this.emit(\"visibility_changed\", { visibility: \"hidden\" });\n }\n toggle() {\n if (this.chatIframe || this.state.isOpen) {\n this.closeChat();\n }\n else {\n this.openChat();\n }\n }\n minimize() {\n this.closeChat();\n }\n maximize() {\n this.openChat();\n }\n setCustomerData(data) {\n this.customerData = { ...this.customerData, ...data };\n this.postMessageToWidget(\"setCustomerData\", this.customerData);\n this.emit(\"customer_data_updated\", { data: this.customerData });\n }\n getCustomerData() {\n return this.customerData ? { ...this.customerData } : null;\n }\n setSessionVariables(variables) {\n this.sessionVariables = { ...this.sessionVariables, ...variables };\n this.postMessageToWidget(\"setSessionVariables\", this.sessionVariables);\n this.emit(\"session_updated\", { variables: this.sessionVariables });\n }\n getSessionVariables() {\n return this.sessionVariables ? { ...this.sessionVariables } : null;\n }\n sendMessage(message) {\n this.postMessageToWidget(\"sendMessage\", { message });\n const messageData = {\n message,\n isFromBot: false,\n timestamp: Date.now(),\n messageId: `msg_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`,\n };\n this.emit(\"new_message\", messageData);\n }\n clearChat() {\n this.postMessageToWidget(\"clearChat\");\n this.state.unreadCount = 0;\n }\n setTheme(theme) {\n this.postMessageToWidget(\"theme-change\", { theme });\n this.emit(\"theme_changed\", { theme, timestamp: Date.now() });\n }\n open() {\n this.openChat();\n }\n close() {\n this.closeChat();\n }\n on(event, callback) {\n if (!this.eventListeners.has(event)) {\n this.eventListeners.set(event, []);\n }\n this.eventListeners.get(event).push(callback);\n }\n off(event, callback) {\n const listeners = this.eventListeners.get(event);\n if (!listeners)\n return;\n if (callback) {\n const index = listeners.indexOf(callback);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n }\n else {\n this.eventListeners.set(event, []);\n }\n }\n emit(event, data) {\n const listeners = this.eventListeners.get(event);\n if (listeners) {\n listeners.forEach((callback) => {\n try {\n callback(data);\n }\n catch (error) {\n console.error(`Error in event listener for ${event}:`, error);\n }\n });\n }\n }\n getState() {\n return { ...this.state };\n }\n isReady() {\n return this.state.isLoaded;\n }\n}\n// Utility function - named export\nfunction createBuniChatWidget(options) {\n const widget = new BuniChatWidget();\n widget.initialize(options);\n return widget;\n}\n\n// Main exports for @buni.ai/chatbot-core\n// Export all types\n\nexport { BuniChatWidget, createBuniChatWidget, BuniChatWidget as default };\n//# sourceMappingURL=index.esm.js.map\n",null,null,null,null],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../core/dist/index.esm.js","../src/buni-chat.service.ts","../src/buni-chat-widget.component.ts","../src/buni-chat-button.component.ts","../src/buni-chat.module.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","// Default BuniAI platform URL\nconst BUNI_PLATFORM_URL = \"https://www.buni.ai\";\nconst PARENT_HANDSHAKE_TYPE = \"buni:parent_handshake\";\nconst IFRAME_HANDSHAKE_ACK_TYPE = \"buni:iframe_handshake_ack\";\n// Core widget loader class\nclass BuniChatWidget {\n constructor() {\n this.state = {\n isOpen: false,\n isLoaded: false,\n isMinimized: false,\n unreadCount: 0,\n };\n this.eventListeners = new Map();\n this.widgetElement = null;\n this.triggerIframe = null;\n this.chatIframe = null;\n this.customerData = null;\n this.sessionVariables = null;\n this.chatTargetOrigin = null;\n this.handshakeComplete = false;\n this.outboundMessageQueue = [];\n }\n async initialize(options) {\n this.options = options;\n try {\n await this.loadWidget();\n this.state.isLoaded = true;\n this.emit(\"ready\", { timestamp: Date.now() });\n if (options.onReady) {\n options.onReady({ timestamp: Date.now() });\n }\n }\n catch (error) {\n const errorObj = error instanceof Error ? error : new Error(String(error));\n this.emit(\"error\", { error: errorObj, context: \"initialization\" });\n if (options.onError) {\n options.onError(errorObj);\n }\n throw errorObj;\n }\n }\n async loadWidget() {\n return new Promise((resolve, reject) => {\n // Check if container already exists and remove it\n const existingContainer = document.getElementById(\"buni-chat-widget-container\");\n if (existingContainer) {\n existingContainer.remove();\n }\n // Create container div for proper positioning\n const container = document.createElement(\"div\");\n container.id = \"buni-chat-widget-container\";\n const config = this.options.config || {};\n const ensureUnits = (value, defaultValue) => {\n if (!value)\n return defaultValue;\n const str = String(value);\n if (str.match(/^[\\d.]+\\s*(px|em|rem|%|vh|vw)$/))\n return str;\n if (str.match(/^[\\d.]+$/))\n return `${str}px`;\n return str;\n };\n const widthValue = ensureUnits(config.width, \"350px\");\n const heightValue = ensureUnits(config.height, \"650px\");\n // Configuration\n const showTriggerText = config.showTriggerText !== false;\n const hasTriggerText = !!config.triggerText;\n const primaryColor = config.primaryColor || \"#795548\";\n const triggerText = config.triggerText || \"\";\n const companyName = config.companyName || \"Chat Support\";\n // Responsive breakpoints\n const isMobile = window.innerWidth <= 768;\n // Calculate trigger dimensions\n const triggerWidth = showTriggerText && hasTriggerText ? \"auto\" : \"52px\";\n const triggerHeight = \"52px\";\n const triggerMinWidth = showTriggerText && hasTriggerText ? \"auto\" : \"\";\n // Container starts as trigger size, initially hidden until connection is ready\n container.style.cssText = `\n position: fixed;\n pointer-events: none;\n z-index: 999999;\n width: ${triggerWidth};\n height: ${triggerHeight};\n ${triggerMinWidth ? `min-width: ${triggerMinWidth};` : \"\"}\n transition: width 0.3s ease, height 0.3s ease, border-radius 0.3s ease;\n ${this.getPositionStyles(config.position || \"bottom-right\", true)}\n display: none;\n overflow: hidden;\n box-sizing: border-box;\n `;\n // Create inline trigger iframe (no src)\n const triggerIframe = document.createElement(\"iframe\");\n triggerIframe.id = \"buni-trigger-iframe\";\n triggerIframe.style.cssText = `\n position: absolute;\n top: 0;\n left: 0;\n border: none;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n border-radius: ${showTriggerText && hasTriggerText ? \"26px\" : \"50%\"};\n transition: border-radius 0.3s ease, box-shadow 0.3s ease;\n pointer-events: auto;\n `;\n triggerIframe.setAttribute(\"title\", \"BuniAI Chat Trigger\");\n // Inject trigger HTML content directly (no src)\n container.appendChild(triggerIframe);\n document.body.appendChild(container);\n triggerIframe.onload = () => {\n var _a;\n const triggerDoc = triggerIframe.contentDocument ||\n ((_a = triggerIframe.contentWindow) === null || _a === void 0 ? void 0 : _a.document);\n if (!triggerDoc) {\n reject(new Error(\"Failed to access trigger iframe document\"));\n return;\n }\n // Build inline HTML for trigger\n const triggerHTML = this.buildTriggerHTML(primaryColor, triggerText || companyName, showTriggerText && hasTriggerText, config.customAvatar, config.avatarType, config.avatarText);\n triggerDoc.open();\n triggerDoc.write(triggerHTML);\n triggerDoc.close();\n // Create chat iframe (initially hidden)\n const chatIframe = document.createElement(\"iframe\");\n chatIframe.id = \"buni-chat-iframe\";\n // Build URL with configuration parameters\n const params = new URLSearchParams({\n token: this.options.token,\n embedded: \"true\",\n source: \"package\",\n framework: this.options.framework || \"vanilla\",\n });\n // Add all configuration parameters\n if (config.theme)\n params.set(\"theme\", config.theme);\n if (config.primaryColor)\n params.set(\"primaryColor\", config.primaryColor);\n if (config.secondaryColor)\n params.set(\"secondaryColor\", config.secondaryColor);\n if (config.position)\n params.set(\"position\", config.position);\n if (widthValue && config.width !== undefined)\n params.set(\"width\", widthValue);\n if (heightValue && config.height !== undefined)\n params.set(\"height\", heightValue);\n if (config.customAvatar)\n params.set(\"customAvatar\", config.customAvatar);\n if (config.companyName)\n params.set(\"companyName\", config.companyName);\n if (config.welcomeMessage)\n params.set(\"welcomeMessage\", config.welcomeMessage);\n if (config.triggerText)\n params.set(\"triggerText\", config.triggerText);\n if (config.borderRadius)\n params.set(\"borderRadius\", config.borderRadius);\n if (config.avatarType)\n params.set(\"avatarType\", config.avatarType);\n if (config.avatarText)\n params.set(\"avatarText\", config.avatarText);\n // Boolean options\n if (config.showBranding !== undefined)\n params.set(\"showBranding\", String(config.showBranding));\n if (config.autoOpen !== undefined)\n params.set(\"autoOpen\", String(config.autoOpen));\n if (config.allowMinimize !== undefined)\n params.set(\"allowMinimize\", String(config.allowMinimize));\n if (config.showMinimize !== undefined)\n params.set(\"showMinimize\", String(config.showMinimize));\n if (config.allowClose !== undefined)\n params.set(\"allowClose\", String(config.allowClose));\n if (config.enableFileUpload !== undefined)\n params.set(\"enableFileUpload\", String(config.enableFileUpload));\n if (config.showTimestamps !== undefined)\n params.set(\"showTimestamps\", String(config.showTimestamps));\n if (config.enableMobile !== undefined)\n params.set(\"enableMobile\", String(config.enableMobile));\n if (config.showPreChatForm !== undefined)\n params.set(\"showPreChatForm\", String(config.showPreChatForm));\n if (config.showStartButton !== undefined)\n params.set(\"showStartButton\", String(config.showStartButton));\n if (config.startButtonText)\n params.set(\"startButtonText\", config.startButtonText);\n if (config.preChatFormFields)\n params.set(\"preChatFormFields\", JSON.stringify(config.preChatFormFields));\n chatIframe.src = `${this.getBaseUrl()}/embed/chat?${params.toString()}`;\n // Chat iframe styling - initially hidden\n chatIframe.style.cssText = `\n position: absolute;\n top: 0;\n left: 0;\n border: none;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n border-radius: ${isMobile ? \"0\" : \"16px\"};\n transition: border-radius 0.3s ease, box-shadow 0.3s ease;\n pointer-events: auto;\n box-shadow: ${isMobile ? \"none\" : \"0 8px 32px rgba(0,0,0,0.15)\"};\n display: none;\n `;\n chatIframe.setAttribute(\"allow\", \"clipboard-write\");\n chatIframe.setAttribute(\"title\", \"BuniAI Chat Widget\");\n container.appendChild(chatIframe);\n // Wait for chat iframe to load before resolving\n chatIframe.onload = () => {\n // Set visibility hidden after iframe loads to allow content initialization\n chatIframe.style.visibility = \"hidden\";\n // Compute the iframe origin once we know the final src.\n try {\n this.chatTargetOrigin = new URL(chatIframe.src).origin;\n }\n catch (_a) {\n this.chatTargetOrigin = this.getBaseUrl();\n }\n // Reset handshake state for this iframe instance.\n this.handshakeComplete = false;\n this.outboundMessageQueue = [];\n this.setupPostMessageAPI(chatIframe);\n this.sendParentHandshake();\n // Now that both iframes are loaded, resolve the promise\n this.widgetElement = container;\n this.triggerIframe = triggerIframe;\n this.chatIframe = chatIframe;\n this.state.isMinimized = true;\n this.state.isLoaded = true;\n resolve();\n };\n };\n // Listen for trigger and connection events\n window.addEventListener(\"message\", (event) => {\n var _a, _b;\n const payload = event.data;\n if (!payload || typeof payload !== \"object\")\n return;\n if (typeof payload.type !== \"string\")\n return;\n switch (payload.type) {\n case \"connection_ready\":\n // Check if message is from chat iframe\n if (event.source === ((_a = this.chatIframe) === null || _a === void 0 ? void 0 : _a.contentWindow) &&\n event.origin === this.getBaseUrl()) {\n // Connection is ready, show the trigger button\n if (container && !config.hideDefaultTrigger) {\n container.style.display = \"block\";\n }\n // Emit connection_ready event for consumers\n this.emit(\"connection_ready\", { timestamp: Date.now() });\n if (this.options.onConnectionReady &&\n typeof this.options.onConnectionReady === \"function\") {\n this.options.onConnectionReady({ timestamp: Date.now() });\n }\n }\n break;\n case \"trigger_clicked\":\n if (event.source === ((_b = this.triggerIframe) === null || _b === void 0 ? void 0 : _b.contentWindow) &&\n event.origin === window.location.origin) {\n this.openChat();\n }\n break;\n }\n });\n // Trigger the load event\n // if by 10 seconds the ready message is not received, we want to manually, set the container to visible\n setTimeout(() => {\n if (!this.state.isLoaded) {\n if (container &&\n !config.hideDefaultTrigger &&\n container.style.display === \"none\" &&\n this.state.isOpen === false) {\n container.style.display = \"block\";\n }\n }\n }, 10000);\n triggerIframe.src = \"about:blank\";\n });\n }\n buildTriggerHTML(primaryColor, text, showText, customAvatar, avatarType, avatarText) {\n const avatarContent = customAvatar\n ? `<img src=\"${customAvatar}\" alt=\"Avatar\" style=\"width: 32px; height: 32px; border-radius: 50%;\" />`\n : avatarType === \"text\" && avatarText\n ? `<div style=\"width: 32px; height: 32px; border-radius: 50%; background: rgba(255,255,255,0.3); display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 600; color: white;\">${avatarText.substring(0, 2).toUpperCase()}</div>`\n : `<svg width=\"28\" height=\"28\" viewBox=\"0 0 24 24\" fill=\"white\"><path d=\"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1 0-.9-2-2zm0 14H6l-2 2V4h16v12z\"/></svg>`;\n return `<!DOCTYPE html>\n<html>\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <style>\n * { margin: 0; padding: 0; box-sizing: border-box; }\n body {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n overflow: hidden;\n }\n .trigger {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: ${showText ? \"12px\" : \"0\"};\n padding: ${showText ? \"10px 20px\" : \"10px\"};\n background: ${primaryColor};\n color: white;\n border-radius: ${showText ? \"26px\" : \"50%\"};\n cursor: pointer;\n transition: all 0.3s ease;\n box-shadow: 0 4px 16px rgba(0,0,0,0.15);\n animation: pulse 2s infinite;\n ${showText ? \"\" : \"width: 52px; height: 52px;\"}\n }\n .trigger:hover {\n transform: translateY(-2px);\n filter: brightness(1.1);\n box-shadow: 0 6px 24px ${primaryColor}99;\n }\n .trigger:active {\n transform: translateY(0);\n }\n .avatar {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n }\n .text {\n font-size: 14px;\n font-weight: 600;\n white-space: nowrap;\n }\n .badge {\n position: absolute;\n top: -4px;\n right: -4px;\n background: #f44336;\n color: white;\n border-radius: 10px;\n padding: 2px 6px;\n font-size: 11px;\n font-weight: 600;\n min-width: 18px;\n text-align: center;\n display: none;\n animation: pulse 2s infinite;\n }\n .badge.show {\n display: block;\n }\n @keyframes pulse {\n 0%, 100% {\n transform: scale(1);\n box-shadow: 0 4px 16px rgba(0,0,0,0.15);\n }\n 50% {\n transform: scale(1.02);\n box-shadow: 0 6px 24px ${primaryColor}99;\n }\n }\n </style>\n</head>\n<body>\n <div style=\"position: relative;\">\n <div class=\"trigger\" onclick=\"handleClick()\">\n <div class=\"avatar\">${avatarContent}</div>\n ${showText ? `<span class=\"text\">${text}</span>` : \"\"}\n </div>\n <div class=\"badge\" id=\"badge\">0</div>\n </div>\n <script>\n function handleClick() {\n // Trigger iframe is same-origin with parent (about:blank + document.write),\n // so we can safely target the parent's origin.\n window.parent.postMessage({ type: 'trigger_clicked' }, window.location.origin);\n }\n \n // Listen for unread count updates\n window.addEventListener('message', function(event) {\n if (event.source !== window.parent) return;\n if (event.origin !== window.location.origin) return;\n if (event.data.type === 'updateUnreadCount') {\n const badge = document.getElementById('badge');\n const count = event.data.count || 0;\n badge.textContent = count;\n if (count > 0) {\n badge.classList.add('show');\n } else {\n badge.classList.remove('show');\n }\n }\n });\n </script>\n</body>\n</html>`;\n }\n async openChat() {\n if (!this.chatIframe || !this.widgetElement || !this.triggerIframe)\n return;\n if (this.state.isOpen)\n return; // Already open\n const config = this.options.config || {};\n const isMobile = window.innerWidth <= 768;\n const isTablet = window.innerWidth > 768 && window.innerWidth <= 1024;\n const ensureUnits = (value, defaultValue) => {\n if (!value)\n return defaultValue;\n const str = String(value);\n if (str.match(/^[\\d.]+\\s*(px|em|rem|%|vh|vw)$/))\n return str;\n if (str.match(/^[\\d.]+$/))\n return `${str}px`;\n return str;\n };\n const widthValue = ensureUnits(config.width, \"350px\");\n const heightValue = ensureUnits(config.height, \"650px\");\n // Calculate chat dimensions\n const chatWidth = isMobile\n ? \"100vw\"\n : isTablet\n ? \"min(calc(100vw - 3rem), 370px)\"\n : widthValue;\n const chatHeight = isMobile\n ? \"100vh\"\n : isTablet\n ? \"min(calc(100vh - 3rem), 620px)\"\n : heightValue;\n // Resize container for chat\n this.widgetElement.style.cssText = `\n position: fixed;\n pointer-events: none;\n z-index: 999999;\n width: ${chatWidth};\n height: ${chatHeight};\n ${isMobile ? \"max-width: 100vw; max-height: 100vh;\" : \"\"}\n transition: width 0.3s ease, height 0.3s ease, border-radius 0.3s ease;\n ${this.getPositionStyles(config.position || \"bottom-right\", false)}\n display: block;\n overflow: visible;\n box-sizing: border-box;\n `;\n // Hide trigger, show chat\n this.triggerIframe.style.display = \"none\";\n this.chatIframe.style.display = \"block\";\n this.chatIframe.style.visibility = \"visible\";\n this.state.isMinimized = false;\n this.state.isOpen = true;\n this.emit(\"maximized\", { timestamp: Date.now() });\n }\n closeChat() {\n if (!this.chatIframe || !this.widgetElement || !this.triggerIframe)\n return;\n const config = this.options.config || {};\n const showTriggerText = config.showTriggerText !== false;\n const hasTriggerText = !!config.triggerText;\n // Hide chat iframe\n this.chatIframe.style.display = \"none\";\n this.chatIframe.style.visibility = \"hidden\";\n // Resize container back to trigger size\n const triggerWidth = showTriggerText && hasTriggerText ? \"auto\" : \"52px\";\n const triggerHeight = \"52px\";\n const triggerMinWidth = showTriggerText && hasTriggerText ? \"auto\" : \"\";\n this.widgetElement.style.cssText = `\n position: fixed;\n pointer-events: none;\n z-index: 999999;\n width: ${triggerWidth};\n height: ${triggerHeight};\n ${triggerMinWidth ? `min-width: ${triggerMinWidth};` : \"\"}\n transition: width 0.3s ease, height 0.3s ease, border-radius 0.3s ease;\n ${this.getPositionStyles(config.position || \"bottom-right\", true)}\n display: block;\n overflow: hidden;\n box-sizing: border-box;\n `;\n // Show trigger again\n this.triggerIframe.style.display = \"block\";\n this.state.isMinimized = true;\n this.state.isOpen = false;\n this.emit(\"minimized\", { timestamp: Date.now() });\n }\n getPositionStyles(position, isMinimized = false) {\n // Responsive positioning following mobile-first best practices\n const viewportWidth = window.innerWidth;\n const isMobile = viewportWidth <= 768;\n const isTablet = viewportWidth > 768 && viewportWidth <= 1024;\n // For extra small devices (Galaxy S8+, iPhone SE, etc.), use minimal or no margins\n // For mobile, use small margins for breathing room\n // For tablet/desktop, use larger margins for floating appearance\n let margin;\n if (isMinimized) {\n // Minimized button always needs some space from edges\n margin = isMobile ? \"12px\" : \"20px\";\n }\n else if (isMobile) {\n // Full screen on all mobile devices (no margins)\n margin = \"0\";\n }\n else if (isTablet) {\n // Medium margins on tablets\n margin = \"16px\";\n }\n else {\n // Larger margins on desktop for floating effect\n margin = \"24px\";\n }\n // On mobile screens when not minimized, position at edges for full coverage\n if (isMobile && !isMinimized) {\n return `top: 0; left: 0; right: 0; bottom: 0;`;\n }\n // Standard positioning for larger screens or minimized state\n switch (position) {\n case \"bottom-right\":\n return `bottom: ${margin}; right: ${margin};`;\n case \"bottom-left\":\n return `bottom: ${margin}; left: ${margin};`;\n case \"top-right\":\n return `top: ${margin}; right: ${margin};`;\n case \"top-left\":\n return `top: ${margin}; left: ${margin};`;\n default:\n return `bottom: ${margin}; right: ${margin};`;\n }\n }\n setupPostMessageAPI(iframe) {\n // Listen for messages from the iframe\n window.addEventListener(\"message\", (event) => {\n var _a;\n if (event.source !== iframe.contentWindow) {\n return;\n }\n // Verify origin for security\n if (event.origin !== this.getBaseUrl()) {\n return;\n }\n const payload = event.data;\n if (!payload || typeof payload !== \"object\")\n return;\n const { type, data } = payload;\n if (typeof type !== \"string\")\n return;\n switch (type) {\n case IFRAME_HANDSHAKE_ACK_TYPE:\n this.handshakeComplete = true;\n this.flushOutboundMessageQueue();\n break;\n case \"ready\":\n this.state.isLoaded = true;\n this.emit(\"ready\", data);\n if (this.options.onReady) {\n this.options.onReady(data);\n }\n break;\n case \"visibility_changed\":\n this.state.isOpen = data.visibility === \"visible\";\n this.emit(\"visibility_changed\", data);\n if (this.options.onVisibilityChanged) {\n this.options.onVisibilityChanged(data);\n }\n break;\n case \"new_message\":\n if (data.isFromBot) {\n this.state.unreadCount++;\n }\n this.emit(\"new_message\", data);\n if (this.options.onNewMessage) {\n this.options.onNewMessage(data);\n }\n break;\n case \"minimized\":\n // User clicked minimize in chat - close chat and show trigger\n this.closeChat();\n break;\n case \"new_unread_message\":\n // Update unread count in trigger\n this.state.unreadCount++;\n if ((_a = this.triggerIframe) === null || _a === void 0 ? void 0 : _a.contentWindow) {\n this.triggerIframe.contentWindow.postMessage({ type: \"updateUnreadCount\", count: this.state.unreadCount }, window.location.origin);\n }\n break;\n case \"customer_data_updated\":\n this.customerData = data;\n this.emit(\"customer_data_updated\", data);\n break;\n case \"session_updated\":\n this.sessionVariables = data.variables;\n this.emit(\"session_updated\", data);\n break;\n case \"error\":\n this.emit(\"error\", data);\n if (this.options.onError) {\n this.options.onError(data.error);\n }\n break;\n }\n });\n }\n sendParentHandshake() {\n var _a, _b;\n const iframeWindow = (_a = this.chatIframe) === null || _a === void 0 ? void 0 : _a.contentWindow;\n if (!iframeWindow)\n return;\n const targetOrigin = (_b = this.chatTargetOrigin) !== null && _b !== void 0 ? _b : this.getBaseUrl();\n try {\n iframeWindow.postMessage({\n type: PARENT_HANDSHAKE_TYPE,\n data: { origin: window.location.origin },\n }, targetOrigin);\n }\n catch (_c) {\n // Best-effort; iframe may fall back to document.referrer for origin discovery.\n }\n }\n flushOutboundMessageQueue() {\n var _a, _b;\n const iframeWindow = (_a = this.chatIframe) === null || _a === void 0 ? void 0 : _a.contentWindow;\n if (!iframeWindow)\n return;\n const targetOrigin = (_b = this.chatTargetOrigin) !== null && _b !== void 0 ? _b : this.getBaseUrl();\n const queued = this.outboundMessageQueue;\n if (queued.length === 0)\n return;\n this.outboundMessageQueue = [];\n for (const msg of queued) {\n iframeWindow.postMessage({ type: msg.type, data: msg.data }, targetOrigin);\n }\n }\n postMessageToWidget(type, data) {\n var _a, _b;\n const iframeWindow = (_a = this.chatIframe) === null || _a === void 0 ? void 0 : _a.contentWindow;\n if (!iframeWindow)\n return;\n const targetOrigin = (_b = this.chatTargetOrigin) !== null && _b !== void 0 ? _b : this.getBaseUrl();\n // Ensure handshake is sent before any other commands; queue until ack.\n if (!this.handshakeComplete && type !== PARENT_HANDSHAKE_TYPE) {\n const queue = this.outboundMessageQueue;\n if (queue.length < 50) {\n queue.push({ type, data });\n }\n else {\n this.outboundMessageQueue = [...queue.slice(-49), { type, data }];\n }\n this.sendParentHandshake();\n return;\n }\n iframeWindow.postMessage({ type, data }, targetOrigin);\n }\n getBaseUrl() {\n var _a, _b;\n // Return the base URL for the BuniAI platform\n // Priority: 1. config.baseUrl, 2. global BUNI_API_URL, 3. default platform URL\n const configUrl = (_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.config) === null || _b === void 0 ? void 0 : _b.baseUrl;\n const globalUrl = globalThis.BUNI_API_URL;\n const rawUrl = configUrl || globalUrl || BUNI_PLATFORM_URL;\n try {\n return new URL(rawUrl).origin;\n }\n catch (_c) {\n return rawUrl;\n }\n }\n destroy() {\n this.postMessageToWidget(\"destroy\");\n if (this.widgetElement) {\n this.widgetElement.remove();\n this.widgetElement = null;\n }\n this.triggerIframe = null;\n this.chatIframe = null;\n this.eventListeners.clear();\n this.state.isLoaded = false;\n this.customerData = null;\n this.sessionVariables = null;\n }\n show() {\n // Show the widget container if it was hidden (hideDefaultTrigger mode)\n if (this.widgetElement) {\n this.widgetElement.style.display = \"block\";\n }\n // Open chat if not already open\n if (!this.chatIframe && !this.state.isOpen) {\n this.openChat();\n }\n }\n hide() {\n var _a;\n // Close chat if open\n if (this.chatIframe) {\n this.closeChat();\n }\n // If hideDefaultTrigger is enabled, completely hide the container\n if (((_a = this.options.config) === null || _a === void 0 ? void 0 : _a.hideDefaultTrigger) && this.widgetElement) {\n this.widgetElement.style.display = \"none\";\n }\n this.state.isOpen = false;\n this.emit(\"visibility_changed\", { visibility: \"hidden\" });\n }\n toggle() {\n if (this.chatIframe || this.state.isOpen) {\n this.closeChat();\n }\n else {\n this.openChat();\n }\n }\n minimize() {\n this.closeChat();\n }\n maximize() {\n this.openChat();\n }\n setCustomerData(data) {\n this.customerData = { ...this.customerData, ...data };\n this.postMessageToWidget(\"setCustomerData\", this.customerData);\n this.emit(\"customer_data_updated\", { data: this.customerData });\n }\n getCustomerData() {\n return this.customerData ? { ...this.customerData } : null;\n }\n setSessionVariables(variables) {\n this.sessionVariables = { ...this.sessionVariables, ...variables };\n this.postMessageToWidget(\"setSessionVariables\", this.sessionVariables);\n this.emit(\"session_updated\", { variables: this.sessionVariables });\n }\n getSessionVariables() {\n return this.sessionVariables ? { ...this.sessionVariables } : null;\n }\n sendMessage(message) {\n this.postMessageToWidget(\"sendMessage\", { message });\n const messageData = {\n message,\n isFromBot: false,\n timestamp: Date.now(),\n messageId: `msg_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`,\n };\n this.emit(\"new_message\", messageData);\n }\n clearChat() {\n this.postMessageToWidget(\"clearChat\");\n this.state.unreadCount = 0;\n }\n setTheme(theme) {\n this.postMessageToWidget(\"theme-change\", { theme });\n this.emit(\"theme_changed\", { theme, timestamp: Date.now() });\n }\n open() {\n this.openChat();\n }\n close() {\n this.closeChat();\n }\n on(event, callback) {\n if (!this.eventListeners.has(event)) {\n this.eventListeners.set(event, []);\n }\n this.eventListeners.get(event).push(callback);\n }\n off(event, callback) {\n const listeners = this.eventListeners.get(event);\n if (!listeners)\n return;\n if (callback) {\n const index = listeners.indexOf(callback);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n }\n else {\n this.eventListeners.set(event, []);\n }\n }\n emit(event, data) {\n const listeners = this.eventListeners.get(event);\n if (listeners) {\n listeners.forEach((callback) => {\n try {\n callback(data);\n }\n catch (error) {\n console.error(`Error in event listener for ${event}:`, error);\n }\n });\n }\n }\n getState() {\n return { ...this.state };\n }\n isReady() {\n return this.state.isLoaded;\n }\n}\n// Utility function - named export\nfunction createBuniChatWidget(options) {\n const widget = new BuniChatWidget();\n widget.initialize(options);\n return widget;\n}\n\n// Main exports for @buni.ai/chatbot-core\n// Export all types\n\nexport { BuniChatWidget, createBuniChatWidget, BuniChatWidget as default };\n//# sourceMappingURL=index.esm.js.map\n",null,null,null,null],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|
package/dist/index.js
CHANGED
|
@@ -40,6 +40,8 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
|
|
|
40
40
|
|
|
41
41
|
// Default BuniAI platform URL
|
|
42
42
|
const BUNI_PLATFORM_URL = "https://www.buni.ai";
|
|
43
|
+
const PARENT_HANDSHAKE_TYPE = "buni:parent_handshake";
|
|
44
|
+
const IFRAME_HANDSHAKE_ACK_TYPE = "buni:iframe_handshake_ack";
|
|
43
45
|
// Core widget loader class
|
|
44
46
|
class BuniChatWidget {
|
|
45
47
|
constructor() {
|
|
@@ -55,6 +57,9 @@ class BuniChatWidget {
|
|
|
55
57
|
this.chatIframe = null;
|
|
56
58
|
this.customerData = null;
|
|
57
59
|
this.sessionVariables = null;
|
|
60
|
+
this.chatTargetOrigin = null;
|
|
61
|
+
this.handshakeComplete = false;
|
|
62
|
+
this.outboundMessageQueue = [];
|
|
58
63
|
}
|
|
59
64
|
async initialize(options) {
|
|
60
65
|
this.options = options;
|
|
@@ -241,7 +246,18 @@ class BuniChatWidget {
|
|
|
241
246
|
chatIframe.onload = () => {
|
|
242
247
|
// Set visibility hidden after iframe loads to allow content initialization
|
|
243
248
|
chatIframe.style.visibility = "hidden";
|
|
249
|
+
// Compute the iframe origin once we know the final src.
|
|
250
|
+
try {
|
|
251
|
+
this.chatTargetOrigin = new URL(chatIframe.src).origin;
|
|
252
|
+
}
|
|
253
|
+
catch (_a) {
|
|
254
|
+
this.chatTargetOrigin = this.getBaseUrl();
|
|
255
|
+
}
|
|
256
|
+
// Reset handshake state for this iframe instance.
|
|
257
|
+
this.handshakeComplete = false;
|
|
258
|
+
this.outboundMessageQueue = [];
|
|
244
259
|
this.setupPostMessageAPI(chatIframe);
|
|
260
|
+
this.sendParentHandshake();
|
|
245
261
|
// Now that both iframes are loaded, resolve the promise
|
|
246
262
|
this.widgetElement = container;
|
|
247
263
|
this.triggerIframe = triggerIframe;
|
|
@@ -253,13 +269,17 @@ class BuniChatWidget {
|
|
|
253
269
|
};
|
|
254
270
|
// Listen for trigger and connection events
|
|
255
271
|
window.addEventListener("message", (event) => {
|
|
256
|
-
var _a;
|
|
257
|
-
|
|
272
|
+
var _a, _b;
|
|
273
|
+
const payload = event.data;
|
|
274
|
+
if (!payload || typeof payload !== "object")
|
|
275
|
+
return;
|
|
276
|
+
if (typeof payload.type !== "string")
|
|
258
277
|
return;
|
|
259
|
-
switch (
|
|
278
|
+
switch (payload.type) {
|
|
260
279
|
case "connection_ready":
|
|
261
280
|
// Check if message is from chat iframe
|
|
262
|
-
if (event.source === ((_a = this.chatIframe) === null || _a === void 0 ? void 0 : _a.contentWindow)
|
|
281
|
+
if (event.source === ((_a = this.chatIframe) === null || _a === void 0 ? void 0 : _a.contentWindow) &&
|
|
282
|
+
event.origin === this.getBaseUrl()) {
|
|
263
283
|
// Connection is ready, show the trigger button
|
|
264
284
|
if (container && !config.hideDefaultTrigger) {
|
|
265
285
|
container.style.display = "block";
|
|
@@ -273,7 +293,10 @@ class BuniChatWidget {
|
|
|
273
293
|
}
|
|
274
294
|
break;
|
|
275
295
|
case "trigger_clicked":
|
|
276
|
-
this.
|
|
296
|
+
if (event.source === ((_b = this.triggerIframe) === null || _b === void 0 ? void 0 : _b.contentWindow) &&
|
|
297
|
+
event.origin === window.location.origin) {
|
|
298
|
+
this.openChat();
|
|
299
|
+
}
|
|
277
300
|
break;
|
|
278
301
|
}
|
|
279
302
|
});
|
|
@@ -388,11 +411,15 @@ class BuniChatWidget {
|
|
|
388
411
|
</div>
|
|
389
412
|
<script>
|
|
390
413
|
function handleClick() {
|
|
391
|
-
|
|
414
|
+
// Trigger iframe is same-origin with parent (about:blank + document.write),
|
|
415
|
+
// so we can safely target the parent's origin.
|
|
416
|
+
window.parent.postMessage({ type: 'trigger_clicked' }, window.location.origin);
|
|
392
417
|
}
|
|
393
418
|
|
|
394
419
|
// Listen for unread count updates
|
|
395
420
|
window.addEventListener('message', function(event) {
|
|
421
|
+
if (event.source !== window.parent) return;
|
|
422
|
+
if (event.origin !== window.location.origin) return;
|
|
396
423
|
if (event.data.type === 'updateUnreadCount') {
|
|
397
424
|
const badge = document.getElementById('badge');
|
|
398
425
|
const count = event.data.count || 0;
|
|
@@ -540,12 +567,24 @@ class BuniChatWidget {
|
|
|
540
567
|
// Listen for messages from the iframe
|
|
541
568
|
window.addEventListener("message", (event) => {
|
|
542
569
|
var _a;
|
|
570
|
+
if (event.source !== iframe.contentWindow) {
|
|
571
|
+
return;
|
|
572
|
+
}
|
|
543
573
|
// Verify origin for security
|
|
544
574
|
if (event.origin !== this.getBaseUrl()) {
|
|
545
575
|
return;
|
|
546
576
|
}
|
|
547
|
-
const
|
|
577
|
+
const payload = event.data;
|
|
578
|
+
if (!payload || typeof payload !== "object")
|
|
579
|
+
return;
|
|
580
|
+
const { type, data } = payload;
|
|
581
|
+
if (typeof type !== "string")
|
|
582
|
+
return;
|
|
548
583
|
switch (type) {
|
|
584
|
+
case IFRAME_HANDSHAKE_ACK_TYPE:
|
|
585
|
+
this.handshakeComplete = true;
|
|
586
|
+
this.flushOutboundMessageQueue();
|
|
587
|
+
break;
|
|
549
588
|
case "ready":
|
|
550
589
|
this.state.isLoaded = true;
|
|
551
590
|
this.emit("ready", data);
|
|
@@ -577,7 +616,7 @@ class BuniChatWidget {
|
|
|
577
616
|
// Update unread count in trigger
|
|
578
617
|
this.state.unreadCount++;
|
|
579
618
|
if ((_a = this.triggerIframe) === null || _a === void 0 ? void 0 : _a.contentWindow) {
|
|
580
|
-
this.triggerIframe.contentWindow.postMessage({ type: "updateUnreadCount", count: this.state.unreadCount },
|
|
619
|
+
this.triggerIframe.contentWindow.postMessage({ type: "updateUnreadCount", count: this.state.unreadCount }, window.location.origin);
|
|
581
620
|
}
|
|
582
621
|
break;
|
|
583
622
|
case "customer_data_updated":
|
|
@@ -597,17 +636,69 @@ class BuniChatWidget {
|
|
|
597
636
|
}
|
|
598
637
|
});
|
|
599
638
|
}
|
|
639
|
+
sendParentHandshake() {
|
|
640
|
+
var _a, _b;
|
|
641
|
+
const iframeWindow = (_a = this.chatIframe) === null || _a === void 0 ? void 0 : _a.contentWindow;
|
|
642
|
+
if (!iframeWindow)
|
|
643
|
+
return;
|
|
644
|
+
const targetOrigin = (_b = this.chatTargetOrigin) !== null && _b !== void 0 ? _b : this.getBaseUrl();
|
|
645
|
+
try {
|
|
646
|
+
iframeWindow.postMessage({
|
|
647
|
+
type: PARENT_HANDSHAKE_TYPE,
|
|
648
|
+
data: { origin: window.location.origin },
|
|
649
|
+
}, targetOrigin);
|
|
650
|
+
}
|
|
651
|
+
catch (_c) {
|
|
652
|
+
// Best-effort; iframe may fall back to document.referrer for origin discovery.
|
|
653
|
+
}
|
|
654
|
+
}
|
|
655
|
+
flushOutboundMessageQueue() {
|
|
656
|
+
var _a, _b;
|
|
657
|
+
const iframeWindow = (_a = this.chatIframe) === null || _a === void 0 ? void 0 : _a.contentWindow;
|
|
658
|
+
if (!iframeWindow)
|
|
659
|
+
return;
|
|
660
|
+
const targetOrigin = (_b = this.chatTargetOrigin) !== null && _b !== void 0 ? _b : this.getBaseUrl();
|
|
661
|
+
const queued = this.outboundMessageQueue;
|
|
662
|
+
if (queued.length === 0)
|
|
663
|
+
return;
|
|
664
|
+
this.outboundMessageQueue = [];
|
|
665
|
+
for (const msg of queued) {
|
|
666
|
+
iframeWindow.postMessage({ type: msg.type, data: msg.data }, targetOrigin);
|
|
667
|
+
}
|
|
668
|
+
}
|
|
600
669
|
postMessageToWidget(type, data) {
|
|
601
|
-
var _a;
|
|
602
|
-
|
|
603
|
-
|
|
670
|
+
var _a, _b;
|
|
671
|
+
const iframeWindow = (_a = this.chatIframe) === null || _a === void 0 ? void 0 : _a.contentWindow;
|
|
672
|
+
if (!iframeWindow)
|
|
673
|
+
return;
|
|
674
|
+
const targetOrigin = (_b = this.chatTargetOrigin) !== null && _b !== void 0 ? _b : this.getBaseUrl();
|
|
675
|
+
// Ensure handshake is sent before any other commands; queue until ack.
|
|
676
|
+
if (!this.handshakeComplete && type !== PARENT_HANDSHAKE_TYPE) {
|
|
677
|
+
const queue = this.outboundMessageQueue;
|
|
678
|
+
if (queue.length < 50) {
|
|
679
|
+
queue.push({ type, data });
|
|
680
|
+
}
|
|
681
|
+
else {
|
|
682
|
+
this.outboundMessageQueue = [...queue.slice(-49), { type, data }];
|
|
683
|
+
}
|
|
684
|
+
this.sendParentHandshake();
|
|
685
|
+
return;
|
|
604
686
|
}
|
|
687
|
+
iframeWindow.postMessage({ type, data }, targetOrigin);
|
|
605
688
|
}
|
|
606
689
|
getBaseUrl() {
|
|
690
|
+
var _a, _b;
|
|
607
691
|
// Return the base URL for the BuniAI platform
|
|
608
692
|
// Priority: 1. config.baseUrl, 2. global BUNI_API_URL, 3. default platform URL
|
|
693
|
+
const configUrl = (_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.config) === null || _b === void 0 ? void 0 : _b.baseUrl;
|
|
609
694
|
const globalUrl = globalThis.BUNI_API_URL;
|
|
610
|
-
|
|
695
|
+
const rawUrl = configUrl || globalUrl || BUNI_PLATFORM_URL;
|
|
696
|
+
try {
|
|
697
|
+
return new URL(rawUrl).origin;
|
|
698
|
+
}
|
|
699
|
+
catch (_c) {
|
|
700
|
+
return rawUrl;
|
|
701
|
+
}
|
|
611
702
|
}
|
|
612
703
|
destroy() {
|
|
613
704
|
this.postMessageToWidget("destroy");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../core/dist/index.esm.js","../src/buni-chat.service.ts","../src/buni-chat-widget.component.ts","../src/buni-chat-button.component.ts","../src/buni-chat.module.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","// Default BuniAI platform URL\nconst BUNI_PLATFORM_URL = \"https://www.buni.ai\";\n// Core widget loader class\nclass BuniChatWidget {\n constructor() {\n this.state = {\n isOpen: false,\n isLoaded: false,\n isMinimized: false,\n unreadCount: 0,\n };\n this.eventListeners = new Map();\n this.widgetElement = null;\n this.triggerIframe = null;\n this.chatIframe = null;\n this.customerData = null;\n this.sessionVariables = null;\n }\n async initialize(options) {\n this.options = options;\n try {\n await this.loadWidget();\n this.state.isLoaded = true;\n this.emit(\"ready\", { timestamp: Date.now() });\n if (options.onReady) {\n options.onReady({ timestamp: Date.now() });\n }\n }\n catch (error) {\n const errorObj = error instanceof Error ? error : new Error(String(error));\n this.emit(\"error\", { error: errorObj, context: \"initialization\" });\n if (options.onError) {\n options.onError(errorObj);\n }\n throw errorObj;\n }\n }\n async loadWidget() {\n return new Promise((resolve, reject) => {\n // Check if container already exists and remove it\n const existingContainer = document.getElementById(\"buni-chat-widget-container\");\n if (existingContainer) {\n existingContainer.remove();\n }\n // Create container div for proper positioning\n const container = document.createElement(\"div\");\n container.id = \"buni-chat-widget-container\";\n const config = this.options.config || {};\n const ensureUnits = (value, defaultValue) => {\n if (!value)\n return defaultValue;\n const str = String(value);\n if (str.match(/^[\\d.]+\\s*(px|em|rem|%|vh|vw)$/))\n return str;\n if (str.match(/^[\\d.]+$/))\n return `${str}px`;\n return str;\n };\n const widthValue = ensureUnits(config.width, \"350px\");\n const heightValue = ensureUnits(config.height, \"650px\");\n // Configuration\n const showTriggerText = config.showTriggerText !== false;\n const hasTriggerText = !!config.triggerText;\n const primaryColor = config.primaryColor || \"#795548\";\n const triggerText = config.triggerText || \"\";\n const companyName = config.companyName || \"Chat Support\";\n // Responsive breakpoints\n const isMobile = window.innerWidth <= 768;\n // Calculate trigger dimensions\n const triggerWidth = showTriggerText && hasTriggerText ? \"auto\" : \"52px\";\n const triggerHeight = \"52px\";\n const triggerMinWidth = showTriggerText && hasTriggerText ? \"auto\" : \"\";\n // Container starts as trigger size, initially hidden until connection is ready\n container.style.cssText = `\n position: fixed;\n pointer-events: none;\n z-index: 999999;\n width: ${triggerWidth};\n height: ${triggerHeight};\n ${triggerMinWidth ? `min-width: ${triggerMinWidth};` : \"\"}\n transition: width 0.3s ease, height 0.3s ease, border-radius 0.3s ease;\n ${this.getPositionStyles(config.position || \"bottom-right\", true)}\n display: none;\n overflow: hidden;\n box-sizing: border-box;\n `;\n // Create inline trigger iframe (no src)\n const triggerIframe = document.createElement(\"iframe\");\n triggerIframe.id = \"buni-trigger-iframe\";\n triggerIframe.style.cssText = `\n position: absolute;\n top: 0;\n left: 0;\n border: none;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n border-radius: ${showTriggerText && hasTriggerText ? \"26px\" : \"50%\"};\n transition: border-radius 0.3s ease, box-shadow 0.3s ease;\n pointer-events: auto;\n `;\n triggerIframe.setAttribute(\"title\", \"BuniAI Chat Trigger\");\n // Inject trigger HTML content directly (no src)\n container.appendChild(triggerIframe);\n document.body.appendChild(container);\n triggerIframe.onload = () => {\n var _a;\n const triggerDoc = triggerIframe.contentDocument ||\n ((_a = triggerIframe.contentWindow) === null || _a === void 0 ? void 0 : _a.document);\n if (!triggerDoc) {\n reject(new Error(\"Failed to access trigger iframe document\"));\n return;\n }\n // Build inline HTML for trigger\n const triggerHTML = this.buildTriggerHTML(primaryColor, triggerText || companyName, showTriggerText && hasTriggerText, config.customAvatar, config.avatarType, config.avatarText);\n triggerDoc.open();\n triggerDoc.write(triggerHTML);\n triggerDoc.close();\n // Create chat iframe (initially hidden)\n const chatIframe = document.createElement(\"iframe\");\n chatIframe.id = \"buni-chat-iframe\";\n // Build URL with configuration parameters\n const params = new URLSearchParams({\n token: this.options.token,\n embedded: \"true\",\n source: \"package\",\n framework: this.options.framework || \"vanilla\",\n });\n // Add all configuration parameters\n if (config.theme)\n params.set(\"theme\", config.theme);\n if (config.primaryColor)\n params.set(\"primaryColor\", config.primaryColor);\n if (config.secondaryColor)\n params.set(\"secondaryColor\", config.secondaryColor);\n if (config.position)\n params.set(\"position\", config.position);\n if (widthValue && config.width !== undefined)\n params.set(\"width\", widthValue);\n if (heightValue && config.height !== undefined)\n params.set(\"height\", heightValue);\n if (config.customAvatar)\n params.set(\"customAvatar\", config.customAvatar);\n if (config.companyName)\n params.set(\"companyName\", config.companyName);\n if (config.welcomeMessage)\n params.set(\"welcomeMessage\", config.welcomeMessage);\n if (config.triggerText)\n params.set(\"triggerText\", config.triggerText);\n if (config.borderRadius)\n params.set(\"borderRadius\", config.borderRadius);\n if (config.avatarType)\n params.set(\"avatarType\", config.avatarType);\n if (config.avatarText)\n params.set(\"avatarText\", config.avatarText);\n // Boolean options\n if (config.showBranding !== undefined)\n params.set(\"showBranding\", String(config.showBranding));\n if (config.autoOpen !== undefined)\n params.set(\"autoOpen\", String(config.autoOpen));\n if (config.allowMinimize !== undefined)\n params.set(\"allowMinimize\", String(config.allowMinimize));\n if (config.showMinimize !== undefined)\n params.set(\"showMinimize\", String(config.showMinimize));\n if (config.allowClose !== undefined)\n params.set(\"allowClose\", String(config.allowClose));\n if (config.enableFileUpload !== undefined)\n params.set(\"enableFileUpload\", String(config.enableFileUpload));\n if (config.showTimestamps !== undefined)\n params.set(\"showTimestamps\", String(config.showTimestamps));\n if (config.enableMobile !== undefined)\n params.set(\"enableMobile\", String(config.enableMobile));\n if (config.showPreChatForm !== undefined)\n params.set(\"showPreChatForm\", String(config.showPreChatForm));\n if (config.showStartButton !== undefined)\n params.set(\"showStartButton\", String(config.showStartButton));\n if (config.startButtonText)\n params.set(\"startButtonText\", config.startButtonText);\n if (config.preChatFormFields)\n params.set(\"preChatFormFields\", JSON.stringify(config.preChatFormFields));\n chatIframe.src = `${this.getBaseUrl()}/embed/chat?${params.toString()}`;\n // Chat iframe styling - initially hidden\n chatIframe.style.cssText = `\n position: absolute;\n top: 0;\n left: 0;\n border: none;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n border-radius: ${isMobile ? \"0\" : \"16px\"};\n transition: border-radius 0.3s ease, box-shadow 0.3s ease;\n pointer-events: auto;\n box-shadow: ${isMobile ? \"none\" : \"0 8px 32px rgba(0,0,0,0.15)\"};\n display: none;\n `;\n chatIframe.setAttribute(\"allow\", \"clipboard-write\");\n chatIframe.setAttribute(\"title\", \"BuniAI Chat Widget\");\n container.appendChild(chatIframe);\n // Wait for chat iframe to load before resolving\n chatIframe.onload = () => {\n // Set visibility hidden after iframe loads to allow content initialization\n chatIframe.style.visibility = \"hidden\";\n this.setupPostMessageAPI(chatIframe);\n // Now that both iframes are loaded, resolve the promise\n this.widgetElement = container;\n this.triggerIframe = triggerIframe;\n this.chatIframe = chatIframe;\n this.state.isMinimized = true;\n this.state.isLoaded = true;\n resolve();\n };\n };\n // Listen for trigger and connection events\n window.addEventListener(\"message\", (event) => {\n var _a;\n if (!event.data.type)\n return;\n switch (event.data.type) {\n case \"connection_ready\":\n // Check if message is from chat iframe\n if (event.source === ((_a = this.chatIframe) === null || _a === void 0 ? void 0 : _a.contentWindow)) {\n // Connection is ready, show the trigger button\n if (container && !config.hideDefaultTrigger) {\n container.style.display = \"block\";\n }\n // Emit connection_ready event for consumers\n this.emit(\"connection_ready\", { timestamp: Date.now() });\n if (this.options.onConnectionReady &&\n typeof this.options.onConnectionReady === \"function\") {\n this.options.onConnectionReady({ timestamp: Date.now() });\n }\n }\n break;\n case \"trigger_clicked\":\n this.openChat();\n break;\n }\n });\n // Trigger the load event\n // if by 10 seconds the ready message is not received, we want to manually, set the container to visible\n setTimeout(() => {\n if (!this.state.isLoaded) {\n if (container &&\n !config.hideDefaultTrigger &&\n container.style.display === \"none\" &&\n this.state.isOpen === false) {\n container.style.display = \"block\";\n }\n }\n }, 10000);\n triggerIframe.src = \"about:blank\";\n });\n }\n buildTriggerHTML(primaryColor, text, showText, customAvatar, avatarType, avatarText) {\n const avatarContent = customAvatar\n ? `<img src=\"${customAvatar}\" alt=\"Avatar\" style=\"width: 32px; height: 32px; border-radius: 50%;\" />`\n : avatarType === \"text\" && avatarText\n ? `<div style=\"width: 32px; height: 32px; border-radius: 50%; background: rgba(255,255,255,0.3); display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 600; color: white;\">${avatarText.substring(0, 2).toUpperCase()}</div>`\n : `<svg width=\"28\" height=\"28\" viewBox=\"0 0 24 24\" fill=\"white\"><path d=\"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1 0-.9-2-2zm0 14H6l-2 2V4h16v12z\"/></svg>`;\n return `<!DOCTYPE html>\n<html>\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <style>\n * { margin: 0; padding: 0; box-sizing: border-box; }\n body {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n overflow: hidden;\n }\n .trigger {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: ${showText ? \"12px\" : \"0\"};\n padding: ${showText ? \"10px 20px\" : \"10px\"};\n background: ${primaryColor};\n color: white;\n border-radius: ${showText ? \"26px\" : \"50%\"};\n cursor: pointer;\n transition: all 0.3s ease;\n box-shadow: 0 4px 16px rgba(0,0,0,0.15);\n animation: pulse 2s infinite;\n ${showText ? \"\" : \"width: 52px; height: 52px;\"}\n }\n .trigger:hover {\n transform: translateY(-2px);\n filter: brightness(1.1);\n box-shadow: 0 6px 24px ${primaryColor}99;\n }\n .trigger:active {\n transform: translateY(0);\n }\n .avatar {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n }\n .text {\n font-size: 14px;\n font-weight: 600;\n white-space: nowrap;\n }\n .badge {\n position: absolute;\n top: -4px;\n right: -4px;\n background: #f44336;\n color: white;\n border-radius: 10px;\n padding: 2px 6px;\n font-size: 11px;\n font-weight: 600;\n min-width: 18px;\n text-align: center;\n display: none;\n animation: pulse 2s infinite;\n }\n .badge.show {\n display: block;\n }\n @keyframes pulse {\n 0%, 100% {\n transform: scale(1);\n box-shadow: 0 4px 16px rgba(0,0,0,0.15);\n }\n 50% {\n transform: scale(1.02);\n box-shadow: 0 6px 24px ${primaryColor}99;\n }\n }\n </style>\n</head>\n<body>\n <div style=\"position: relative;\">\n <div class=\"trigger\" onclick=\"handleClick()\">\n <div class=\"avatar\">${avatarContent}</div>\n ${showText ? `<span class=\"text\">${text}</span>` : \"\"}\n </div>\n <div class=\"badge\" id=\"badge\">0</div>\n </div>\n <script>\n function handleClick() {\n window.parent.postMessage({ type: 'trigger_clicked' }, '*');\n }\n \n // Listen for unread count updates\n window.addEventListener('message', function(event) {\n if (event.data.type === 'updateUnreadCount') {\n const badge = document.getElementById('badge');\n const count = event.data.count || 0;\n badge.textContent = count;\n if (count > 0) {\n badge.classList.add('show');\n } else {\n badge.classList.remove('show');\n }\n }\n });\n </script>\n</body>\n</html>`;\n }\n async openChat() {\n if (!this.chatIframe || !this.widgetElement || !this.triggerIframe)\n return;\n if (this.state.isOpen)\n return; // Already open\n const config = this.options.config || {};\n const isMobile = window.innerWidth <= 768;\n const isTablet = window.innerWidth > 768 && window.innerWidth <= 1024;\n const ensureUnits = (value, defaultValue) => {\n if (!value)\n return defaultValue;\n const str = String(value);\n if (str.match(/^[\\d.]+\\s*(px|em|rem|%|vh|vw)$/))\n return str;\n if (str.match(/^[\\d.]+$/))\n return `${str}px`;\n return str;\n };\n const widthValue = ensureUnits(config.width, \"350px\");\n const heightValue = ensureUnits(config.height, \"650px\");\n // Calculate chat dimensions\n const chatWidth = isMobile\n ? \"100vw\"\n : isTablet\n ? \"min(calc(100vw - 3rem), 370px)\"\n : widthValue;\n const chatHeight = isMobile\n ? \"100vh\"\n : isTablet\n ? \"min(calc(100vh - 3rem), 620px)\"\n : heightValue;\n // Resize container for chat\n this.widgetElement.style.cssText = `\n position: fixed;\n pointer-events: none;\n z-index: 999999;\n width: ${chatWidth};\n height: ${chatHeight};\n ${isMobile ? \"max-width: 100vw; max-height: 100vh;\" : \"\"}\n transition: width 0.3s ease, height 0.3s ease, border-radius 0.3s ease;\n ${this.getPositionStyles(config.position || \"bottom-right\", false)}\n display: block;\n overflow: visible;\n box-sizing: border-box;\n `;\n // Hide trigger, show chat\n this.triggerIframe.style.display = \"none\";\n this.chatIframe.style.display = \"block\";\n this.chatIframe.style.visibility = \"visible\";\n this.state.isMinimized = false;\n this.state.isOpen = true;\n this.emit(\"maximized\", { timestamp: Date.now() });\n }\n closeChat() {\n if (!this.chatIframe || !this.widgetElement || !this.triggerIframe)\n return;\n const config = this.options.config || {};\n const showTriggerText = config.showTriggerText !== false;\n const hasTriggerText = !!config.triggerText;\n // Hide chat iframe\n this.chatIframe.style.display = \"none\";\n this.chatIframe.style.visibility = \"hidden\";\n // Resize container back to trigger size\n const triggerWidth = showTriggerText && hasTriggerText ? \"auto\" : \"52px\";\n const triggerHeight = \"52px\";\n const triggerMinWidth = showTriggerText && hasTriggerText ? \"auto\" : \"\";\n this.widgetElement.style.cssText = `\n position: fixed;\n pointer-events: none;\n z-index: 999999;\n width: ${triggerWidth};\n height: ${triggerHeight};\n ${triggerMinWidth ? `min-width: ${triggerMinWidth};` : \"\"}\n transition: width 0.3s ease, height 0.3s ease, border-radius 0.3s ease;\n ${this.getPositionStyles(config.position || \"bottom-right\", true)}\n display: block;\n overflow: hidden;\n box-sizing: border-box;\n `;\n // Show trigger again\n this.triggerIframe.style.display = \"block\";\n this.state.isMinimized = true;\n this.state.isOpen = false;\n this.emit(\"minimized\", { timestamp: Date.now() });\n }\n getPositionStyles(position, isMinimized = false) {\n // Responsive positioning following mobile-first best practices\n const viewportWidth = window.innerWidth;\n const isMobile = viewportWidth <= 768;\n const isTablet = viewportWidth > 768 && viewportWidth <= 1024;\n // For extra small devices (Galaxy S8+, iPhone SE, etc.), use minimal or no margins\n // For mobile, use small margins for breathing room\n // For tablet/desktop, use larger margins for floating appearance\n let margin;\n if (isMinimized) {\n // Minimized button always needs some space from edges\n margin = isMobile ? \"12px\" : \"20px\";\n }\n else if (isMobile) {\n // Full screen on all mobile devices (no margins)\n margin = \"0\";\n }\n else if (isTablet) {\n // Medium margins on tablets\n margin = \"16px\";\n }\n else {\n // Larger margins on desktop for floating effect\n margin = \"24px\";\n }\n // On mobile screens when not minimized, position at edges for full coverage\n if (isMobile && !isMinimized) {\n return `top: 0; left: 0; right: 0; bottom: 0;`;\n }\n // Standard positioning for larger screens or minimized state\n switch (position) {\n case \"bottom-right\":\n return `bottom: ${margin}; right: ${margin};`;\n case \"bottom-left\":\n return `bottom: ${margin}; left: ${margin};`;\n case \"top-right\":\n return `top: ${margin}; right: ${margin};`;\n case \"top-left\":\n return `top: ${margin}; left: ${margin};`;\n default:\n return `bottom: ${margin}; right: ${margin};`;\n }\n }\n setupPostMessageAPI(iframe) {\n // Listen for messages from the iframe\n window.addEventListener(\"message\", (event) => {\n var _a;\n // Verify origin for security\n if (event.origin !== this.getBaseUrl()) {\n return;\n }\n const { type, data } = event.data;\n switch (type) {\n case \"ready\":\n this.state.isLoaded = true;\n this.emit(\"ready\", data);\n if (this.options.onReady) {\n this.options.onReady(data);\n }\n break;\n case \"visibility_changed\":\n this.state.isOpen = data.visibility === \"visible\";\n this.emit(\"visibility_changed\", data);\n if (this.options.onVisibilityChanged) {\n this.options.onVisibilityChanged(data);\n }\n break;\n case \"new_message\":\n if (data.isFromBot) {\n this.state.unreadCount++;\n }\n this.emit(\"new_message\", data);\n if (this.options.onNewMessage) {\n this.options.onNewMessage(data);\n }\n break;\n case \"minimized\":\n // User clicked minimize in chat - close chat and show trigger\n this.closeChat();\n break;\n case \"new_unread_message\":\n // Update unread count in trigger\n this.state.unreadCount++;\n if ((_a = this.triggerIframe) === null || _a === void 0 ? void 0 : _a.contentWindow) {\n this.triggerIframe.contentWindow.postMessage({ type: \"updateUnreadCount\", count: this.state.unreadCount }, \"*\");\n }\n break;\n case \"customer_data_updated\":\n this.customerData = data;\n this.emit(\"customer_data_updated\", data);\n break;\n case \"session_updated\":\n this.sessionVariables = data.variables;\n this.emit(\"session_updated\", data);\n break;\n case \"error\":\n this.emit(\"error\", data);\n if (this.options.onError) {\n this.options.onError(data.error);\n }\n break;\n }\n });\n }\n postMessageToWidget(type, data) {\n var _a;\n if ((_a = this.chatIframe) === null || _a === void 0 ? void 0 : _a.contentWindow) {\n this.chatIframe.contentWindow.postMessage({ type, data }, this.getBaseUrl());\n }\n }\n getBaseUrl() {\n // Return the base URL for the BuniAI platform\n // Priority: 1. config.baseUrl, 2. global BUNI_API_URL, 3. default platform URL\n const globalUrl = globalThis.BUNI_API_URL;\n return globalUrl || BUNI_PLATFORM_URL;\n }\n destroy() {\n this.postMessageToWidget(\"destroy\");\n if (this.widgetElement) {\n this.widgetElement.remove();\n this.widgetElement = null;\n }\n this.triggerIframe = null;\n this.chatIframe = null;\n this.eventListeners.clear();\n this.state.isLoaded = false;\n this.customerData = null;\n this.sessionVariables = null;\n }\n show() {\n // Show the widget container if it was hidden (hideDefaultTrigger mode)\n if (this.widgetElement) {\n this.widgetElement.style.display = \"block\";\n }\n // Open chat if not already open\n if (!this.chatIframe && !this.state.isOpen) {\n this.openChat();\n }\n }\n hide() {\n var _a;\n // Close chat if open\n if (this.chatIframe) {\n this.closeChat();\n }\n // If hideDefaultTrigger is enabled, completely hide the container\n if (((_a = this.options.config) === null || _a === void 0 ? void 0 : _a.hideDefaultTrigger) && this.widgetElement) {\n this.widgetElement.style.display = \"none\";\n }\n this.state.isOpen = false;\n this.emit(\"visibility_changed\", { visibility: \"hidden\" });\n }\n toggle() {\n if (this.chatIframe || this.state.isOpen) {\n this.closeChat();\n }\n else {\n this.openChat();\n }\n }\n minimize() {\n this.closeChat();\n }\n maximize() {\n this.openChat();\n }\n setCustomerData(data) {\n this.customerData = { ...this.customerData, ...data };\n this.postMessageToWidget(\"setCustomerData\", this.customerData);\n this.emit(\"customer_data_updated\", { data: this.customerData });\n }\n getCustomerData() {\n return this.customerData ? { ...this.customerData } : null;\n }\n setSessionVariables(variables) {\n this.sessionVariables = { ...this.sessionVariables, ...variables };\n this.postMessageToWidget(\"setSessionVariables\", this.sessionVariables);\n this.emit(\"session_updated\", { variables: this.sessionVariables });\n }\n getSessionVariables() {\n return this.sessionVariables ? { ...this.sessionVariables } : null;\n }\n sendMessage(message) {\n this.postMessageToWidget(\"sendMessage\", { message });\n const messageData = {\n message,\n isFromBot: false,\n timestamp: Date.now(),\n messageId: `msg_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`,\n };\n this.emit(\"new_message\", messageData);\n }\n clearChat() {\n this.postMessageToWidget(\"clearChat\");\n this.state.unreadCount = 0;\n }\n setTheme(theme) {\n this.postMessageToWidget(\"theme-change\", { theme });\n this.emit(\"theme_changed\", { theme, timestamp: Date.now() });\n }\n open() {\n this.openChat();\n }\n close() {\n this.closeChat();\n }\n on(event, callback) {\n if (!this.eventListeners.has(event)) {\n this.eventListeners.set(event, []);\n }\n this.eventListeners.get(event).push(callback);\n }\n off(event, callback) {\n const listeners = this.eventListeners.get(event);\n if (!listeners)\n return;\n if (callback) {\n const index = listeners.indexOf(callback);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n }\n else {\n this.eventListeners.set(event, []);\n }\n }\n emit(event, data) {\n const listeners = this.eventListeners.get(event);\n if (listeners) {\n listeners.forEach((callback) => {\n try {\n callback(data);\n }\n catch (error) {\n console.error(`Error in event listener for ${event}:`, error);\n }\n });\n }\n }\n getState() {\n return { ...this.state };\n }\n isReady() {\n return this.state.isLoaded;\n }\n}\n// Utility function - named export\nfunction createBuniChatWidget(options) {\n const widget = new BuniChatWidget();\n widget.initialize(options);\n return widget;\n}\n\n// Main exports for @buni.ai/chatbot-core\n// Export all types\n\nexport { BuniChatWidget, createBuniChatWidget, BuniChatWidget as default };\n//# sourceMappingURL=index.esm.js.map\n",null,null,null,null],"names":["BuniChatService","BehaviorSubject","map","Injectable","BuniChatWidgetComponent","Input","Component","BuniChatButtonComponent","EventEmitter","Output","BuniChatModule","NgModule","CommonModule"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAsCA;AACO,SAAS,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;AAC1D,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;AACjI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACnI,SAAS,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;AACtJ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAClE,CAAC;AAkDD;AACO,SAAS,UAAU,CAAC,WAAW,EAAE,aAAa,EAAE;AACvD,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;AACnI,CAAC;AAuND;AACuB,OAAO,eAAe,KAAK,UAAU,GAAG,eAAe,GAAG,UAAU,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE;AACvH,IAAI,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AAC/B,IAAI,OAAO,CAAC,CAAC,IAAI,GAAG,iBAAiB,EAAE,CAAC,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC,CAAC;AACrF;;AC3UA;AACA,MAAM,iBAAiB,GAAG,qBAAqB,CAAC;AAChD;AACA,MAAM,cAAc,CAAC;AACrB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,KAAK,GAAG;AACrB,YAAY,MAAM,EAAE,KAAK;AACzB,YAAY,QAAQ,EAAE,KAAK;AAC3B,YAAY,WAAW,EAAE,KAAK;AAC9B,YAAY,WAAW,EAAE,CAAC;AAC1B,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;AACxC,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAClC,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAClC,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC/B,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACjC,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACrC,KAAK;AACL,IAAI,MAAM,UAAU,CAAC,OAAO,EAAE;AAC9B,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC/B,QAAQ,IAAI;AACZ,YAAY,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;AACpC,YAAY,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;AACvC,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC1D,YAAY,IAAI,OAAO,CAAC,OAAO,EAAE;AACjC,gBAAgB,OAAO,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC3D,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACvF,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAC/E,YAAY,IAAI,OAAO,CAAC,OAAO,EAAE;AACjC,gBAAgB,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC1C,aAAa;AACb,YAAY,MAAM,QAAQ,CAAC;AAC3B,SAAS;AACT,KAAK;AACL,IAAI,MAAM,UAAU,GAAG;AACvB,QAAQ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAChD;AACA,YAAY,MAAM,iBAAiB,GAAG,QAAQ,CAAC,cAAc,CAAC,4BAA4B,CAAC,CAAC;AAC5F,YAAY,IAAI,iBAAiB,EAAE;AACnC,gBAAgB,iBAAiB,CAAC,MAAM,EAAE,CAAC;AAC3C,aAAa;AACb;AACA,YAAY,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC5D,YAAY,SAAS,CAAC,EAAE,GAAG,4BAA4B,CAAC;AACxD,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;AACrD,YAAY,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK;AACzD,gBAAgB,IAAI,CAAC,KAAK;AAC1B,oBAAoB,OAAO,YAAY,CAAC;AACxC,gBAAgB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1C,gBAAgB,IAAI,GAAG,CAAC,KAAK,CAAC,gCAAgC,CAAC;AAC/D,oBAAoB,OAAO,GAAG,CAAC;AAC/B,gBAAgB,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;AACzC,oBAAoB,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;AACtC,gBAAgB,OAAO,GAAG,CAAC;AAC3B,aAAa,CAAC;AACd,YAAY,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAClE,YAAY,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACpE;AACA,YAAY,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,KAAK,KAAK,CAAC;AACrE,YAAY,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;AACxD,YAAY,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,SAAS,CAAC;AAClE,YAAY,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;AACzD,YAAY,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,cAAc,CAAC;AACrE;AACA,YAAY,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC;AACtD;AACA,YAAY,MAAM,YAAY,GAAG,eAAe,IAAI,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC;AACrF,YAAY,MAAM,aAAa,GAAG,MAAM,CAAC;AACzC,YAAY,MAAM,eAAe,GAAG,eAAe,IAAI,cAAc,GAAG,MAAM,GAAG,EAAE,CAAC;AACpF;AACA,YAAY,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC;AACvC;AACA;AACA;AACA,eAAe,EAAE,YAAY,CAAC;AAC9B,gBAAgB,EAAE,aAAa,CAAC;AAChC,QAAQ,EAAE,eAAe,GAAG,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAClE;AACA,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,IAAI,cAAc,EAAE,IAAI,CAAC,CAAC;AAC1E;AACA;AACA;AACA,MAAM,CAAC,CAAC;AACR;AACA,YAAY,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACnE,YAAY,aAAa,CAAC,EAAE,GAAG,qBAAqB,CAAC;AACrD,YAAY,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE,eAAe,IAAI,cAAc,GAAG,MAAM,GAAG,KAAK,CAAC;AAC5E;AACA;AACA,MAAM,CAAC,CAAC;AACR,YAAY,aAAa,CAAC,YAAY,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;AACvE;AACA,YAAY,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;AACjD,YAAY,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AACjD,YAAY,aAAa,CAAC,MAAM,GAAG,MAAM;AACzC,gBAAgB,IAAI,EAAE,CAAC;AACvB,gBAAgB,MAAM,UAAU,GAAG,aAAa,CAAC,eAAe;AAChE,qBAAqB,CAAC,EAAE,GAAG,aAAa,CAAC,aAAa,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;AAC1G,gBAAgB,IAAI,CAAC,UAAU,EAAE;AACjC,oBAAoB,MAAM,CAAC,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC,CAAC;AAClF,oBAAoB,OAAO;AAC3B,iBAAiB;AACjB;AACA,gBAAgB,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,WAAW,IAAI,WAAW,EAAE,eAAe,IAAI,cAAc,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;AAClM,gBAAgB,UAAU,CAAC,IAAI,EAAE,CAAC;AAClC,gBAAgB,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AAC9C,gBAAgB,UAAU,CAAC,KAAK,EAAE,CAAC;AACnC;AACA,gBAAgB,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACpE,gBAAgB,UAAU,CAAC,EAAE,GAAG,kBAAkB,CAAC;AACnD;AACA,gBAAgB,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;AACnD,oBAAoB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;AAC7C,oBAAoB,QAAQ,EAAE,MAAM;AACpC,oBAAoB,MAAM,EAAE,SAAS;AACrC,oBAAoB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,SAAS;AAClE,iBAAiB,CAAC,CAAC;AACnB;AACA,gBAAgB,IAAI,MAAM,CAAC,KAAK;AAChC,oBAAoB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AACtD,gBAAgB,IAAI,MAAM,CAAC,YAAY;AACvC,oBAAoB,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;AACpE,gBAAgB,IAAI,MAAM,CAAC,cAAc;AACzC,oBAAoB,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;AACxE,gBAAgB,IAAI,MAAM,CAAC,QAAQ;AACnC,oBAAoB,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC5D,gBAAgB,IAAI,UAAU,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;AAC5D,oBAAoB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACpD,gBAAgB,IAAI,WAAW,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;AAC9D,oBAAoB,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AACtD,gBAAgB,IAAI,MAAM,CAAC,YAAY;AACvC,oBAAoB,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;AACpE,gBAAgB,IAAI,MAAM,CAAC,WAAW;AACtC,oBAAoB,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;AAClE,gBAAgB,IAAI,MAAM,CAAC,cAAc;AACzC,oBAAoB,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;AACxE,gBAAgB,IAAI,MAAM,CAAC,WAAW;AACtC,oBAAoB,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;AAClE,gBAAgB,IAAI,MAAM,CAAC,YAAY;AACvC,oBAAoB,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;AACpE,gBAAgB,IAAI,MAAM,CAAC,UAAU;AACrC,oBAAoB,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;AAChE,gBAAgB,IAAI,MAAM,CAAC,UAAU;AACrC,oBAAoB,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;AAChE;AACA,gBAAgB,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS;AACrD,oBAAoB,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;AAC5E,gBAAgB,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;AACjD,oBAAoB,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpE,gBAAgB,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS;AACtD,oBAAoB,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AAC9E,gBAAgB,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS;AACrD,oBAAoB,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;AAC5E,gBAAgB,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;AACnD,oBAAoB,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AACxE,gBAAgB,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS;AACzD,oBAAoB,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACpF,gBAAgB,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS;AACvD,oBAAoB,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;AAChF,gBAAgB,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS;AACrD,oBAAoB,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;AAC5E,gBAAgB,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS;AACxD,oBAAoB,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;AAClF,gBAAgB,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS;AACxD,oBAAoB,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;AAClF,gBAAgB,IAAI,MAAM,CAAC,eAAe;AAC1C,oBAAoB,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;AAC1E,gBAAgB,IAAI,MAAM,CAAC,iBAAiB;AAC5C,oBAAoB,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAC9F,gBAAgB,UAAU,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AACxF;AACA,gBAAgB,UAAU,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,EAAE,QAAQ,GAAG,GAAG,GAAG,MAAM,CAAC;AACnD;AACA;AACA,sBAAsB,EAAE,QAAQ,GAAG,MAAM,GAAG,6BAA6B,CAAC;AAC1E;AACA,QAAQ,CAAC,CAAC;AACV,gBAAgB,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;AACpE,gBAAgB,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;AACvE,gBAAgB,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AAClD;AACA,gBAAgB,UAAU,CAAC,MAAM,GAAG,MAAM;AAC1C;AACA,oBAAoB,UAAU,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;AAC3D,oBAAoB,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;AACzD;AACA,oBAAoB,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;AACnD,oBAAoB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;AACvD,oBAAoB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AACjD,oBAAoB,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;AAClD,oBAAoB,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC/C,oBAAoB,OAAO,EAAE,CAAC;AAC9B,iBAAiB,CAAC;AAClB,aAAa,CAAC;AACd;AACA,YAAY,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,KAAK;AAC1D,gBAAgB,IAAI,EAAE,CAAC;AACvB,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;AACpC,oBAAoB,OAAO;AAC3B,gBAAgB,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI;AACvC,oBAAoB,KAAK,kBAAkB;AAC3C;AACA,wBAAwB,IAAI,KAAK,CAAC,MAAM,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE;AAC7H;AACA,4BAA4B,IAAI,SAAS,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE;AACzE,gCAAgC,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;AAClE,6BAA6B;AAC7B;AACA,4BAA4B,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACrF,4BAA4B,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB;AAC9D,gCAAgC,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,KAAK,UAAU,EAAE;AACtF,gCAAgC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC1F,6BAA6B;AAC7B,yBAAyB;AACzB,wBAAwB,MAAM;AAC9B,oBAAoB,KAAK,iBAAiB;AAC1C,wBAAwB,IAAI,CAAC,QAAQ,EAAE,CAAC;AACxC,wBAAwB,MAAM;AAC9B,iBAAiB;AACjB,aAAa,CAAC,CAAC;AACf;AACA;AACA,YAAY,UAAU,CAAC,MAAM;AAC7B,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;AAC1C,oBAAoB,IAAI,SAAS;AACjC,wBAAwB,CAAC,MAAM,CAAC,kBAAkB;AAClD,wBAAwB,SAAS,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM;AAC1D,wBAAwB,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE;AACrD,wBAAwB,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;AAC1D,qBAAqB;AACrB,iBAAiB;AACjB,aAAa,EAAE,KAAK,CAAC,CAAC;AACtB,YAAY,aAAa,CAAC,GAAG,GAAG,aAAa,CAAC;AAC9C,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,gBAAgB,CAAC,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE;AACzF,QAAQ,MAAM,aAAa,GAAG,YAAY;AAC1C,cAAc,CAAC,UAAU,EAAE,YAAY,CAAC,wEAAwE,CAAC;AACjH,cAAc,UAAU,KAAK,MAAM,IAAI,UAAU;AACjD,kBAAkB,CAAC,6MAA6M,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC;AAClR,kBAAkB,CAAC,sKAAsK,CAAC,CAAC;AAC3L,QAAQ,OAAO,CAAC;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE,QAAQ,GAAG,MAAM,GAAG,GAAG,CAAC;AACrC,eAAe,EAAE,QAAQ,GAAG,WAAW,GAAG,MAAM,CAAC;AACjD,kBAAkB,EAAE,YAAY,CAAC;AACjC;AACA,qBAAqB,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC;AACjD;AACA;AACA;AACA;AACA,MAAM,EAAE,QAAQ,GAAG,EAAE,GAAG,4BAA4B,CAAC;AACrD;AACA;AACA;AACA;AACA,6BAA6B,EAAE,YAAY,CAAC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE,YAAY,CAAC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,EAAE,aAAa,CAAC;AAC1C,MAAM,EAAE,QAAQ,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC,CAAC;AACT,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG;AACrB,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,aAAa;AAC1E,YAAY,OAAO;AACnB,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM;AAC7B,YAAY,OAAO;AACnB,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;AACjD,QAAQ,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC;AAClD,QAAQ,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,GAAG,GAAG,IAAI,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC;AAC9E,QAAQ,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK;AACrD,YAAY,IAAI,CAAC,KAAK;AACtB,gBAAgB,OAAO,YAAY,CAAC;AACpC,YAAY,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AACtC,YAAY,IAAI,GAAG,CAAC,KAAK,CAAC,gCAAgC,CAAC;AAC3D,gBAAgB,OAAO,GAAG,CAAC;AAC3B,YAAY,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;AACrC,gBAAgB,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;AAClC,YAAY,OAAO,GAAG,CAAC;AACvB,SAAS,CAAC;AACV,QAAQ,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC9D,QAAQ,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAChE;AACA,QAAQ,MAAM,SAAS,GAAG,QAAQ;AAClC,cAAc,OAAO;AACrB,cAAc,QAAQ;AACtB,kBAAkB,gCAAgC;AAClD,kBAAkB,UAAU,CAAC;AAC7B,QAAQ,MAAM,UAAU,GAAG,QAAQ;AACnC,cAAc,OAAO;AACrB,cAAc,QAAQ;AACtB,kBAAkB,gCAAgC;AAClD,kBAAkB,WAAW,CAAC;AAC9B;AACA,QAAQ,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC;AAC5C;AACA;AACA;AACA,aAAa,EAAE,SAAS,CAAC;AACzB,cAAc,EAAE,UAAU,CAAC;AAC3B,MAAM,EAAE,QAAQ,GAAG,sCAAsC,GAAG,EAAE,CAAC;AAC/D;AACA,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,IAAI,cAAc,EAAE,KAAK,CAAC,CAAC;AACzE;AACA;AACA;AACA,IAAI,CAAC,CAAC;AACN;AACA,QAAQ,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;AAClD,QAAQ,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;AAChD,QAAQ,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;AACrD,QAAQ,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;AACvC,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;AACjC,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC1D,KAAK;AACL,IAAI,SAAS,GAAG;AAChB,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,aAAa;AAC1E,YAAY,OAAO;AACnB,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;AACjD,QAAQ,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,KAAK,KAAK,CAAC;AACjE,QAAQ,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;AACpD;AACA,QAAQ,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;AAC/C,QAAQ,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;AACpD;AACA,QAAQ,MAAM,YAAY,GAAG,eAAe,IAAI,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC;AACjF,QAAQ,MAAM,aAAa,GAAG,MAAM,CAAC;AACrC,QAAQ,MAAM,eAAe,GAAG,eAAe,IAAI,cAAc,GAAG,MAAM,GAAG,EAAE,CAAC;AAChF,QAAQ,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC;AAC5C;AACA;AACA;AACA,aAAa,EAAE,YAAY,CAAC;AAC5B,cAAc,EAAE,aAAa,CAAC;AAC9B,MAAM,EAAE,eAAe,GAAG,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAChE;AACA,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,IAAI,cAAc,EAAE,IAAI,CAAC,CAAC;AACxE;AACA;AACA;AACA,IAAI,CAAC,CAAC;AACN;AACA,QAAQ,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;AACnD,QAAQ,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;AACtC,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;AAClC,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC1D,KAAK;AACL,IAAI,iBAAiB,CAAC,QAAQ,EAAE,WAAW,GAAG,KAAK,EAAE;AACrD;AACA,QAAQ,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC;AAChD,QAAQ,MAAM,QAAQ,GAAG,aAAa,IAAI,GAAG,CAAC;AAC9C,QAAQ,MAAM,QAAQ,GAAG,aAAa,GAAG,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC;AACtE;AACA;AACA;AACA,QAAQ,IAAI,MAAM,CAAC;AACnB,QAAQ,IAAI,WAAW,EAAE;AACzB;AACA,YAAY,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAChD,SAAS;AACT,aAAa,IAAI,QAAQ,EAAE;AAC3B;AACA,YAAY,MAAM,GAAG,GAAG,CAAC;AACzB,SAAS;AACT,aAAa,IAAI,QAAQ,EAAE;AAC3B;AACA,YAAY,MAAM,GAAG,MAAM,CAAC;AAC5B,SAAS;AACT,aAAa;AACb;AACA,YAAY,MAAM,GAAG,MAAM,CAAC;AAC5B,SAAS;AACT;AACA,QAAQ,IAAI,QAAQ,IAAI,CAAC,WAAW,EAAE;AACtC,YAAY,OAAO,CAAC,qCAAqC,CAAC,CAAC;AAC3D,SAAS;AACT;AACA,QAAQ,QAAQ,QAAQ;AACxB,YAAY,KAAK,cAAc;AAC/B,gBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9D,YAAY,KAAK,aAAa;AAC9B,gBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC7D,YAAY,KAAK,WAAW;AAC5B,gBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC3D,YAAY,KAAK,UAAU;AAC3B,gBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1D,YAAY;AACZ,gBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9D,SAAS;AACT,KAAK;AACL,IAAI,mBAAmB,CAAC,MAAM,EAAE;AAChC;AACA,QAAQ,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,KAAK;AACtD,YAAY,IAAI,EAAE,CAAC;AACnB;AACA,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE,EAAE;AACpD,gBAAgB,OAAO;AACvB,aAAa;AACb,YAAY,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;AAC9C,YAAY,QAAQ,IAAI;AACxB,gBAAgB,KAAK,OAAO;AAC5B,oBAAoB,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC/C,oBAAoB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC7C,oBAAoB,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AAC9C,wBAAwB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACnD,qBAAqB;AACrB,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,oBAAoB;AACzC,oBAAoB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC;AACtE,oBAAoB,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;AAC1D,oBAAoB,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE;AAC1D,wBAAwB,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAC/D,qBAAqB;AACrB,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,aAAa;AAClC,oBAAoB,IAAI,IAAI,CAAC,SAAS,EAAE;AACxC,wBAAwB,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;AACjD,qBAAqB;AACrB,oBAAoB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AACnD,oBAAoB,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;AACnD,wBAAwB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AACxD,qBAAqB;AACrB,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,WAAW;AAChC;AACA,oBAAoB,IAAI,CAAC,SAAS,EAAE,CAAC;AACrC,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,oBAAoB;AACzC;AACA,oBAAoB,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;AAC7C,oBAAoB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,aAAa,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,aAAa,EAAE;AACzG,wBAAwB,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC;AACxI,qBAAqB;AACrB,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,uBAAuB;AAC5C,oBAAoB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC7C,oBAAoB,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;AAC7D,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,iBAAiB;AACtC,oBAAoB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC;AAC3D,oBAAoB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;AACvD,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,OAAO;AAC5B,oBAAoB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC7C,oBAAoB,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AAC9C,wBAAwB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzD,qBAAqB;AACrB,oBAAoB,MAAM;AAC1B,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE;AACpC,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,aAAa,EAAE;AAC1F,YAAY,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;AACzF,SAAS;AACT,KAAK;AACL,IAAI,UAAU,GAAG;AACjB;AACA;AACA,QAAQ,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC;AAClD,QAAQ,OAAO,SAAS,IAAI,iBAAiB,CAAC;AAC9C,KAAK;AACL,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;AAC5C,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE;AAChC,YAAY,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;AACxC,YAAY,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AACtC,SAAS;AACT,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAClC,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC/B,QAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;AACpC,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;AACpC,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACjC,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACrC,KAAK;AACL,IAAI,IAAI,GAAG;AACX;AACA,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE;AAChC,YAAY,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;AACvD,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACpD,YAAY,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC5B,SAAS;AACT,KAAK;AACL,IAAI,IAAI,GAAG;AACX,QAAQ,IAAI,EAAE,CAAC;AACf;AACA,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE;AAC7B,YAAY,IAAI,CAAC,SAAS,EAAE,CAAC;AAC7B,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,kBAAkB,KAAK,IAAI,CAAC,aAAa,EAAE;AAC3H,YAAY,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;AACtD,SAAS;AACT,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;AAClC,QAAQ,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;AAClE,KAAK;AACL,IAAI,MAAM,GAAG;AACb,QAAQ,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AAClD,YAAY,IAAI,CAAC,SAAS,EAAE,CAAC;AAC7B,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC5B,SAAS;AACT,KAAK;AACL,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;AACzB,KAAK;AACL,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;AACxB,KAAK;AACL,IAAI,eAAe,CAAC,IAAI,EAAE;AAC1B,QAAQ,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,EAAE,CAAC;AAC9D,QAAQ,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AACvE,QAAQ,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;AACxE,KAAK;AACL,IAAI,eAAe,GAAG;AACtB,QAAQ,OAAO,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC;AACnE,KAAK;AACL,IAAI,mBAAmB,CAAC,SAAS,EAAE;AACnC,QAAQ,IAAI,CAAC,gBAAgB,GAAG,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,SAAS,EAAE,CAAC;AAC3E,QAAQ,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC/E,QAAQ,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;AAC3E,KAAK;AACL,IAAI,mBAAmB,GAAG;AAC1B,QAAQ,OAAO,IAAI,CAAC,gBAAgB,GAAG,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC;AAC3E,KAAK;AACL,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;AAC7D,QAAQ,MAAM,WAAW,GAAG;AAC5B,YAAY,OAAO;AACnB,YAAY,SAAS,EAAE,KAAK;AAC5B,YAAY,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;AACjC,YAAY,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACrF,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;AAC9C,KAAK;AACL,IAAI,SAAS,GAAG;AAChB,QAAQ,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;AAC9C,QAAQ,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;AACnC,KAAK;AACL,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,QAAQ,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AAC5D,QAAQ,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACrE,KAAK;AACL,IAAI,IAAI,GAAG;AACX,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;AACxB,KAAK;AACL,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;AACzB,KAAK;AACL,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE;AACxB,QAAQ,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AAC7C,YAAY,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC/C,SAAS;AACT,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACtD,KAAK;AACL,IAAI,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE;AACzB,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACzD,QAAQ,IAAI,CAAC,SAAS;AACtB,YAAY,OAAO;AACnB,QAAQ,IAAI,QAAQ,EAAE;AACtB,YAAY,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACtD,YAAY,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;AAC5B,gBAAgB,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC3C,aAAa;AACb,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC/C,SAAS;AACT,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE;AACtB,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACzD,QAAQ,IAAI,SAAS,EAAE;AACvB,YAAY,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK;AAC5C,gBAAgB,IAAI;AACpB,oBAAoB,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnC,iBAAiB;AACjB,gBAAgB,OAAO,KAAK,EAAE;AAC9B,oBAAoB,OAAO,CAAC,KAAK,CAAC,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAClF,iBAAiB;AACjB,aAAa,CAAC,CAAC;AACf,SAAS;AACT,KAAK;AACL,IAAI,QAAQ,GAAG;AACf,QAAQ,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;AACjC,KAAK;AACL,IAAI,OAAO,GAAG;AACd,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;AACnC,KAAK;AACL;;AC5rBA;AAgBaA,uBAAe,GAArB,MAAM,eAAe,CAAA;AAU1B,IAAA,WAAA,GAAA;QARiB,IAAY,CAAA,YAAA,GAAG,IAAIC,oBAAe,CAAgB;AACjE,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,WAAW,EAAE,CAAC;AACf,SAAA,CAAC,CAAC;AACc,QAAA,IAAA,CAAA,YAAY,GAAG,IAAIA,oBAAe,CAAU,KAAK,CAAC,CAAC;AAGlE,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;KACpC;IAED,MAAM,UAAU,CAAC,OAAwB,EAAA;AACvC,QAAA,IAAI;AACF,YAAA,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;SACpE;QAAC,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;AAC9D,YAAA,MAAM,KAAK,CAAC;SACb;QAED,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;IAEO,mBAAmB,GAAA;QACzB,MAAM,WAAW,GAAG,MAAK;AACvB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AACjD,SAAC,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,kBAAkB,EAAE,MAAK;AACtC,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;KAC5C;;AAGD,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;KACzC;AAED,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;KACzC;AAED,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAC3BC,aAAG,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,CAC3B,CAAC;KACH;AAED,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAC3BA,aAAG,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,CAAC,CAChC,CAAC;KACH;;IAGD,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KACpB;IAED,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KACpB;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;KACtB;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;KACxB;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;KACxB;;AAGD,IAAA,eAAe,CAAC,IAAkB,EAAA;AAChC,QAAA,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;KACnC;IAED,eAAe,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;KACtC;AAED,IAAA,mBAAmB,CAAC,SAA2B,EAAA;AAC7C,QAAA,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;KAC5C;IAED,mBAAmB,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;KAC1C;;AAGD,IAAA,WAAW,CAAC,OAAe,EAAA;AACzB,QAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;KAClC;IAED,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;KACzB;;AAGD,IAAA,QAAQ,CAAC,KAAkC,EAAA;AACzC,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KAC7B;IAED,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KACpB;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;KACrB;;IAGD,EAAE,CAAC,KAAa,EAAE,QAAkB,EAAA;QAClC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;KACjC;IAED,GAAG,CAAC,KAAa,EAAE,QAAmB,EAAA;QACpC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;KAClC;;IAGD,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;KAC9B;EACF;AAxIYF,uBAAe,GAAA,UAAA,CAAA;AAH3B,IAAAG,eAAU,CAAC;AACV,QAAA,UAAU,EAAE,MAAM;KACnB,CAAC;;AACW,CAAA,EAAAH,uBAAe,CAwI3B;;ACzIYI,+BAAuB,GAA7B,MAAM,uBAAuB,CAAA;AAQlC,IAAA,WAAA,CAAoB,eAAgC,EAAA;QAAhC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;KAAI;AAExD,IAAA,MAAM,QAAQ,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;gBACpC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;gBAC7C,OAAO,EAAE,IAAI,CAAC,OAAO;AACtB,aAAA,CAAC,CAAC;SACJ;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;KAChC;EACF;AAzBU,UAAA,CAAA;AAAR,IAAAC,UAAK,EAAE;;AAAgB,CAAA,EAAAD,+BAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AACf,UAAA,CAAA;AAAR,IAAAC,UAAK,EAAE;;AAAoC,CAAA,EAAAD,+BAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AACnC,UAAA,CAAA;AAAR,IAAAC,UAAK,EAAE;;AAAsC,CAAA,EAAAD,+BAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AACrC,UAAA,CAAA;AAAR,IAAAC,UAAK,EAAE;;AAAgD,CAAA,EAAAD,+BAAA,CAAA,SAAA,EAAA,cAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAC/C,UAAA,CAAA;AAAR,IAAAC,UAAK,EAAE;;AAA8D,CAAA,EAAAD,+BAAA,CAAA,SAAA,EAAA,qBAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAC7D,UAAA,CAAA;AAAR,IAAAC,UAAK,EAAE;;AAAsC,CAAA,EAAAD,+BAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AANnCA,+BAAuB,GAAA,UAAA,CAAA;AAXnC,IAAAE,cAAS,CAAC;AACT,QAAA,QAAQ,EAAE,kBAAkB;AAC5B,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,MAAM,EAAE;AACN,YAAA,CAAA;;;;AAIC,IAAA,CAAA;AACF,SAAA;KACF,CAAC;qCASqCN,uBAAe,CAAA,CAAA;AARzC,CAAA,EAAAI,+BAAuB,CA0BnC;;ACqDYG,+BAAuB,GAA7B,MAAM,uBAAuB,CAAA;AAUlC,IAAA,WAAA,CAAoB,eAAgC,EAAA;QAAhC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAT3C,IAAQ,CAAA,QAAA,GAAG,cAAc,CAAC;QAC1B,IAAS,CAAA,SAAA,GAAG,YAAY,CAAC;QACzB,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;AACf,QAAA,IAAA,CAAA,OAAO,GAAG,IAAIC,iBAAY,EAAW,CAAC;QAO9C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;QAC9C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;KACvD;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,IAAG;AAC9B,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,SAAC,CAAC,CAAC;KACJ;EACF;AArBU,UAAA,CAAA;AAAR,IAAAH,UAAK,EAAE;;AAA2B,CAAA,EAAAE,+BAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAC1B,UAAA,CAAA;AAAR,IAAAF,UAAK,EAAE;;AAA0B,CAAA,EAAAE,+BAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AACzB,UAAA,CAAA;AAAR,IAAAF,UAAK,EAAE;;AAAiB,CAAA,EAAAE,+BAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AACf,UAAA,CAAA;AAAT,IAAAE,WAAM,EAAE;;AAAuC,CAAA,EAAAF,+BAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAJrCA,+BAAuB,GAAA,UAAA,CAAA;AA1FnC,IAAAD,cAAS,CAAC;AACT,QAAA,QAAQ,EAAE,kBAAkB;AAC5B,QAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;AAoBT,EAAA,CAAA;AACD,QAAA,MAAM,EAAE,CAAC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiER,CAAC;KACH,CAAC;qCAWqCN,uBAAe,CAAA,CAAA;AAVzC,CAAA,EAAAO,+BAAuB,CAsBnC;;AC9FYG,sBAAc,GAApB,MAAM,cAAc,CAAA;EAAG;AAAjBA,sBAAc,GAAA,UAAA,CAAA;AAhB1B,IAAAC,aAAQ,CAAC;AACR,QAAA,YAAY,EAAE;YACZP,+BAAuB;YACvBG,+BAAuB;AACxB,SAAA;AACD,QAAA,OAAO,EAAE;YACPK,mBAAY;AACb,SAAA;AACD,QAAA,OAAO,EAAE;YACPR,+BAAuB;YACvBG,+BAAuB;AACxB,SAAA;AACD,QAAA,SAAS,EAAE;YACTP,uBAAe;AAChB,SAAA;KACF,CAAC;AACW,CAAA,EAAAU,sBAAc,CAAG;;","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../core/dist/index.esm.js","../src/buni-chat.service.ts","../src/buni-chat-widget.component.ts","../src/buni-chat-button.component.ts","../src/buni-chat.module.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","// Default BuniAI platform URL\nconst BUNI_PLATFORM_URL = \"https://www.buni.ai\";\nconst PARENT_HANDSHAKE_TYPE = \"buni:parent_handshake\";\nconst IFRAME_HANDSHAKE_ACK_TYPE = \"buni:iframe_handshake_ack\";\n// Core widget loader class\nclass BuniChatWidget {\n constructor() {\n this.state = {\n isOpen: false,\n isLoaded: false,\n isMinimized: false,\n unreadCount: 0,\n };\n this.eventListeners = new Map();\n this.widgetElement = null;\n this.triggerIframe = null;\n this.chatIframe = null;\n this.customerData = null;\n this.sessionVariables = null;\n this.chatTargetOrigin = null;\n this.handshakeComplete = false;\n this.outboundMessageQueue = [];\n }\n async initialize(options) {\n this.options = options;\n try {\n await this.loadWidget();\n this.state.isLoaded = true;\n this.emit(\"ready\", { timestamp: Date.now() });\n if (options.onReady) {\n options.onReady({ timestamp: Date.now() });\n }\n }\n catch (error) {\n const errorObj = error instanceof Error ? error : new Error(String(error));\n this.emit(\"error\", { error: errorObj, context: \"initialization\" });\n if (options.onError) {\n options.onError(errorObj);\n }\n throw errorObj;\n }\n }\n async loadWidget() {\n return new Promise((resolve, reject) => {\n // Check if container already exists and remove it\n const existingContainer = document.getElementById(\"buni-chat-widget-container\");\n if (existingContainer) {\n existingContainer.remove();\n }\n // Create container div for proper positioning\n const container = document.createElement(\"div\");\n container.id = \"buni-chat-widget-container\";\n const config = this.options.config || {};\n const ensureUnits = (value, defaultValue) => {\n if (!value)\n return defaultValue;\n const str = String(value);\n if (str.match(/^[\\d.]+\\s*(px|em|rem|%|vh|vw)$/))\n return str;\n if (str.match(/^[\\d.]+$/))\n return `${str}px`;\n return str;\n };\n const widthValue = ensureUnits(config.width, \"350px\");\n const heightValue = ensureUnits(config.height, \"650px\");\n // Configuration\n const showTriggerText = config.showTriggerText !== false;\n const hasTriggerText = !!config.triggerText;\n const primaryColor = config.primaryColor || \"#795548\";\n const triggerText = config.triggerText || \"\";\n const companyName = config.companyName || \"Chat Support\";\n // Responsive breakpoints\n const isMobile = window.innerWidth <= 768;\n // Calculate trigger dimensions\n const triggerWidth = showTriggerText && hasTriggerText ? \"auto\" : \"52px\";\n const triggerHeight = \"52px\";\n const triggerMinWidth = showTriggerText && hasTriggerText ? \"auto\" : \"\";\n // Container starts as trigger size, initially hidden until connection is ready\n container.style.cssText = `\n position: fixed;\n pointer-events: none;\n z-index: 999999;\n width: ${triggerWidth};\n height: ${triggerHeight};\n ${triggerMinWidth ? `min-width: ${triggerMinWidth};` : \"\"}\n transition: width 0.3s ease, height 0.3s ease, border-radius 0.3s ease;\n ${this.getPositionStyles(config.position || \"bottom-right\", true)}\n display: none;\n overflow: hidden;\n box-sizing: border-box;\n `;\n // Create inline trigger iframe (no src)\n const triggerIframe = document.createElement(\"iframe\");\n triggerIframe.id = \"buni-trigger-iframe\";\n triggerIframe.style.cssText = `\n position: absolute;\n top: 0;\n left: 0;\n border: none;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n border-radius: ${showTriggerText && hasTriggerText ? \"26px\" : \"50%\"};\n transition: border-radius 0.3s ease, box-shadow 0.3s ease;\n pointer-events: auto;\n `;\n triggerIframe.setAttribute(\"title\", \"BuniAI Chat Trigger\");\n // Inject trigger HTML content directly (no src)\n container.appendChild(triggerIframe);\n document.body.appendChild(container);\n triggerIframe.onload = () => {\n var _a;\n const triggerDoc = triggerIframe.contentDocument ||\n ((_a = triggerIframe.contentWindow) === null || _a === void 0 ? void 0 : _a.document);\n if (!triggerDoc) {\n reject(new Error(\"Failed to access trigger iframe document\"));\n return;\n }\n // Build inline HTML for trigger\n const triggerHTML = this.buildTriggerHTML(primaryColor, triggerText || companyName, showTriggerText && hasTriggerText, config.customAvatar, config.avatarType, config.avatarText);\n triggerDoc.open();\n triggerDoc.write(triggerHTML);\n triggerDoc.close();\n // Create chat iframe (initially hidden)\n const chatIframe = document.createElement(\"iframe\");\n chatIframe.id = \"buni-chat-iframe\";\n // Build URL with configuration parameters\n const params = new URLSearchParams({\n token: this.options.token,\n embedded: \"true\",\n source: \"package\",\n framework: this.options.framework || \"vanilla\",\n });\n // Add all configuration parameters\n if (config.theme)\n params.set(\"theme\", config.theme);\n if (config.primaryColor)\n params.set(\"primaryColor\", config.primaryColor);\n if (config.secondaryColor)\n params.set(\"secondaryColor\", config.secondaryColor);\n if (config.position)\n params.set(\"position\", config.position);\n if (widthValue && config.width !== undefined)\n params.set(\"width\", widthValue);\n if (heightValue && config.height !== undefined)\n params.set(\"height\", heightValue);\n if (config.customAvatar)\n params.set(\"customAvatar\", config.customAvatar);\n if (config.companyName)\n params.set(\"companyName\", config.companyName);\n if (config.welcomeMessage)\n params.set(\"welcomeMessage\", config.welcomeMessage);\n if (config.triggerText)\n params.set(\"triggerText\", config.triggerText);\n if (config.borderRadius)\n params.set(\"borderRadius\", config.borderRadius);\n if (config.avatarType)\n params.set(\"avatarType\", config.avatarType);\n if (config.avatarText)\n params.set(\"avatarText\", config.avatarText);\n // Boolean options\n if (config.showBranding !== undefined)\n params.set(\"showBranding\", String(config.showBranding));\n if (config.autoOpen !== undefined)\n params.set(\"autoOpen\", String(config.autoOpen));\n if (config.allowMinimize !== undefined)\n params.set(\"allowMinimize\", String(config.allowMinimize));\n if (config.showMinimize !== undefined)\n params.set(\"showMinimize\", String(config.showMinimize));\n if (config.allowClose !== undefined)\n params.set(\"allowClose\", String(config.allowClose));\n if (config.enableFileUpload !== undefined)\n params.set(\"enableFileUpload\", String(config.enableFileUpload));\n if (config.showTimestamps !== undefined)\n params.set(\"showTimestamps\", String(config.showTimestamps));\n if (config.enableMobile !== undefined)\n params.set(\"enableMobile\", String(config.enableMobile));\n if (config.showPreChatForm !== undefined)\n params.set(\"showPreChatForm\", String(config.showPreChatForm));\n if (config.showStartButton !== undefined)\n params.set(\"showStartButton\", String(config.showStartButton));\n if (config.startButtonText)\n params.set(\"startButtonText\", config.startButtonText);\n if (config.preChatFormFields)\n params.set(\"preChatFormFields\", JSON.stringify(config.preChatFormFields));\n chatIframe.src = `${this.getBaseUrl()}/embed/chat?${params.toString()}`;\n // Chat iframe styling - initially hidden\n chatIframe.style.cssText = `\n position: absolute;\n top: 0;\n left: 0;\n border: none;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n border-radius: ${isMobile ? \"0\" : \"16px\"};\n transition: border-radius 0.3s ease, box-shadow 0.3s ease;\n pointer-events: auto;\n box-shadow: ${isMobile ? \"none\" : \"0 8px 32px rgba(0,0,0,0.15)\"};\n display: none;\n `;\n chatIframe.setAttribute(\"allow\", \"clipboard-write\");\n chatIframe.setAttribute(\"title\", \"BuniAI Chat Widget\");\n container.appendChild(chatIframe);\n // Wait for chat iframe to load before resolving\n chatIframe.onload = () => {\n // Set visibility hidden after iframe loads to allow content initialization\n chatIframe.style.visibility = \"hidden\";\n // Compute the iframe origin once we know the final src.\n try {\n this.chatTargetOrigin = new URL(chatIframe.src).origin;\n }\n catch (_a) {\n this.chatTargetOrigin = this.getBaseUrl();\n }\n // Reset handshake state for this iframe instance.\n this.handshakeComplete = false;\n this.outboundMessageQueue = [];\n this.setupPostMessageAPI(chatIframe);\n this.sendParentHandshake();\n // Now that both iframes are loaded, resolve the promise\n this.widgetElement = container;\n this.triggerIframe = triggerIframe;\n this.chatIframe = chatIframe;\n this.state.isMinimized = true;\n this.state.isLoaded = true;\n resolve();\n };\n };\n // Listen for trigger and connection events\n window.addEventListener(\"message\", (event) => {\n var _a, _b;\n const payload = event.data;\n if (!payload || typeof payload !== \"object\")\n return;\n if (typeof payload.type !== \"string\")\n return;\n switch (payload.type) {\n case \"connection_ready\":\n // Check if message is from chat iframe\n if (event.source === ((_a = this.chatIframe) === null || _a === void 0 ? void 0 : _a.contentWindow) &&\n event.origin === this.getBaseUrl()) {\n // Connection is ready, show the trigger button\n if (container && !config.hideDefaultTrigger) {\n container.style.display = \"block\";\n }\n // Emit connection_ready event for consumers\n this.emit(\"connection_ready\", { timestamp: Date.now() });\n if (this.options.onConnectionReady &&\n typeof this.options.onConnectionReady === \"function\") {\n this.options.onConnectionReady({ timestamp: Date.now() });\n }\n }\n break;\n case \"trigger_clicked\":\n if (event.source === ((_b = this.triggerIframe) === null || _b === void 0 ? void 0 : _b.contentWindow) &&\n event.origin === window.location.origin) {\n this.openChat();\n }\n break;\n }\n });\n // Trigger the load event\n // if by 10 seconds the ready message is not received, we want to manually, set the container to visible\n setTimeout(() => {\n if (!this.state.isLoaded) {\n if (container &&\n !config.hideDefaultTrigger &&\n container.style.display === \"none\" &&\n this.state.isOpen === false) {\n container.style.display = \"block\";\n }\n }\n }, 10000);\n triggerIframe.src = \"about:blank\";\n });\n }\n buildTriggerHTML(primaryColor, text, showText, customAvatar, avatarType, avatarText) {\n const avatarContent = customAvatar\n ? `<img src=\"${customAvatar}\" alt=\"Avatar\" style=\"width: 32px; height: 32px; border-radius: 50%;\" />`\n : avatarType === \"text\" && avatarText\n ? `<div style=\"width: 32px; height: 32px; border-radius: 50%; background: rgba(255,255,255,0.3); display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 600; color: white;\">${avatarText.substring(0, 2).toUpperCase()}</div>`\n : `<svg width=\"28\" height=\"28\" viewBox=\"0 0 24 24\" fill=\"white\"><path d=\"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1 0-.9-2-2zm0 14H6l-2 2V4h16v12z\"/></svg>`;\n return `<!DOCTYPE html>\n<html>\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <style>\n * { margin: 0; padding: 0; box-sizing: border-box; }\n body {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n overflow: hidden;\n }\n .trigger {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: ${showText ? \"12px\" : \"0\"};\n padding: ${showText ? \"10px 20px\" : \"10px\"};\n background: ${primaryColor};\n color: white;\n border-radius: ${showText ? \"26px\" : \"50%\"};\n cursor: pointer;\n transition: all 0.3s ease;\n box-shadow: 0 4px 16px rgba(0,0,0,0.15);\n animation: pulse 2s infinite;\n ${showText ? \"\" : \"width: 52px; height: 52px;\"}\n }\n .trigger:hover {\n transform: translateY(-2px);\n filter: brightness(1.1);\n box-shadow: 0 6px 24px ${primaryColor}99;\n }\n .trigger:active {\n transform: translateY(0);\n }\n .avatar {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n }\n .text {\n font-size: 14px;\n font-weight: 600;\n white-space: nowrap;\n }\n .badge {\n position: absolute;\n top: -4px;\n right: -4px;\n background: #f44336;\n color: white;\n border-radius: 10px;\n padding: 2px 6px;\n font-size: 11px;\n font-weight: 600;\n min-width: 18px;\n text-align: center;\n display: none;\n animation: pulse 2s infinite;\n }\n .badge.show {\n display: block;\n }\n @keyframes pulse {\n 0%, 100% {\n transform: scale(1);\n box-shadow: 0 4px 16px rgba(0,0,0,0.15);\n }\n 50% {\n transform: scale(1.02);\n box-shadow: 0 6px 24px ${primaryColor}99;\n }\n }\n </style>\n</head>\n<body>\n <div style=\"position: relative;\">\n <div class=\"trigger\" onclick=\"handleClick()\">\n <div class=\"avatar\">${avatarContent}</div>\n ${showText ? `<span class=\"text\">${text}</span>` : \"\"}\n </div>\n <div class=\"badge\" id=\"badge\">0</div>\n </div>\n <script>\n function handleClick() {\n // Trigger iframe is same-origin with parent (about:blank + document.write),\n // so we can safely target the parent's origin.\n window.parent.postMessage({ type: 'trigger_clicked' }, window.location.origin);\n }\n \n // Listen for unread count updates\n window.addEventListener('message', function(event) {\n if (event.source !== window.parent) return;\n if (event.origin !== window.location.origin) return;\n if (event.data.type === 'updateUnreadCount') {\n const badge = document.getElementById('badge');\n const count = event.data.count || 0;\n badge.textContent = count;\n if (count > 0) {\n badge.classList.add('show');\n } else {\n badge.classList.remove('show');\n }\n }\n });\n </script>\n</body>\n</html>`;\n }\n async openChat() {\n if (!this.chatIframe || !this.widgetElement || !this.triggerIframe)\n return;\n if (this.state.isOpen)\n return; // Already open\n const config = this.options.config || {};\n const isMobile = window.innerWidth <= 768;\n const isTablet = window.innerWidth > 768 && window.innerWidth <= 1024;\n const ensureUnits = (value, defaultValue) => {\n if (!value)\n return defaultValue;\n const str = String(value);\n if (str.match(/^[\\d.]+\\s*(px|em|rem|%|vh|vw)$/))\n return str;\n if (str.match(/^[\\d.]+$/))\n return `${str}px`;\n return str;\n };\n const widthValue = ensureUnits(config.width, \"350px\");\n const heightValue = ensureUnits(config.height, \"650px\");\n // Calculate chat dimensions\n const chatWidth = isMobile\n ? \"100vw\"\n : isTablet\n ? \"min(calc(100vw - 3rem), 370px)\"\n : widthValue;\n const chatHeight = isMobile\n ? \"100vh\"\n : isTablet\n ? \"min(calc(100vh - 3rem), 620px)\"\n : heightValue;\n // Resize container for chat\n this.widgetElement.style.cssText = `\n position: fixed;\n pointer-events: none;\n z-index: 999999;\n width: ${chatWidth};\n height: ${chatHeight};\n ${isMobile ? \"max-width: 100vw; max-height: 100vh;\" : \"\"}\n transition: width 0.3s ease, height 0.3s ease, border-radius 0.3s ease;\n ${this.getPositionStyles(config.position || \"bottom-right\", false)}\n display: block;\n overflow: visible;\n box-sizing: border-box;\n `;\n // Hide trigger, show chat\n this.triggerIframe.style.display = \"none\";\n this.chatIframe.style.display = \"block\";\n this.chatIframe.style.visibility = \"visible\";\n this.state.isMinimized = false;\n this.state.isOpen = true;\n this.emit(\"maximized\", { timestamp: Date.now() });\n }\n closeChat() {\n if (!this.chatIframe || !this.widgetElement || !this.triggerIframe)\n return;\n const config = this.options.config || {};\n const showTriggerText = config.showTriggerText !== false;\n const hasTriggerText = !!config.triggerText;\n // Hide chat iframe\n this.chatIframe.style.display = \"none\";\n this.chatIframe.style.visibility = \"hidden\";\n // Resize container back to trigger size\n const triggerWidth = showTriggerText && hasTriggerText ? \"auto\" : \"52px\";\n const triggerHeight = \"52px\";\n const triggerMinWidth = showTriggerText && hasTriggerText ? \"auto\" : \"\";\n this.widgetElement.style.cssText = `\n position: fixed;\n pointer-events: none;\n z-index: 999999;\n width: ${triggerWidth};\n height: ${triggerHeight};\n ${triggerMinWidth ? `min-width: ${triggerMinWidth};` : \"\"}\n transition: width 0.3s ease, height 0.3s ease, border-radius 0.3s ease;\n ${this.getPositionStyles(config.position || \"bottom-right\", true)}\n display: block;\n overflow: hidden;\n box-sizing: border-box;\n `;\n // Show trigger again\n this.triggerIframe.style.display = \"block\";\n this.state.isMinimized = true;\n this.state.isOpen = false;\n this.emit(\"minimized\", { timestamp: Date.now() });\n }\n getPositionStyles(position, isMinimized = false) {\n // Responsive positioning following mobile-first best practices\n const viewportWidth = window.innerWidth;\n const isMobile = viewportWidth <= 768;\n const isTablet = viewportWidth > 768 && viewportWidth <= 1024;\n // For extra small devices (Galaxy S8+, iPhone SE, etc.), use minimal or no margins\n // For mobile, use small margins for breathing room\n // For tablet/desktop, use larger margins for floating appearance\n let margin;\n if (isMinimized) {\n // Minimized button always needs some space from edges\n margin = isMobile ? \"12px\" : \"20px\";\n }\n else if (isMobile) {\n // Full screen on all mobile devices (no margins)\n margin = \"0\";\n }\n else if (isTablet) {\n // Medium margins on tablets\n margin = \"16px\";\n }\n else {\n // Larger margins on desktop for floating effect\n margin = \"24px\";\n }\n // On mobile screens when not minimized, position at edges for full coverage\n if (isMobile && !isMinimized) {\n return `top: 0; left: 0; right: 0; bottom: 0;`;\n }\n // Standard positioning for larger screens or minimized state\n switch (position) {\n case \"bottom-right\":\n return `bottom: ${margin}; right: ${margin};`;\n case \"bottom-left\":\n return `bottom: ${margin}; left: ${margin};`;\n case \"top-right\":\n return `top: ${margin}; right: ${margin};`;\n case \"top-left\":\n return `top: ${margin}; left: ${margin};`;\n default:\n return `bottom: ${margin}; right: ${margin};`;\n }\n }\n setupPostMessageAPI(iframe) {\n // Listen for messages from the iframe\n window.addEventListener(\"message\", (event) => {\n var _a;\n if (event.source !== iframe.contentWindow) {\n return;\n }\n // Verify origin for security\n if (event.origin !== this.getBaseUrl()) {\n return;\n }\n const payload = event.data;\n if (!payload || typeof payload !== \"object\")\n return;\n const { type, data } = payload;\n if (typeof type !== \"string\")\n return;\n switch (type) {\n case IFRAME_HANDSHAKE_ACK_TYPE:\n this.handshakeComplete = true;\n this.flushOutboundMessageQueue();\n break;\n case \"ready\":\n this.state.isLoaded = true;\n this.emit(\"ready\", data);\n if (this.options.onReady) {\n this.options.onReady(data);\n }\n break;\n case \"visibility_changed\":\n this.state.isOpen = data.visibility === \"visible\";\n this.emit(\"visibility_changed\", data);\n if (this.options.onVisibilityChanged) {\n this.options.onVisibilityChanged(data);\n }\n break;\n case \"new_message\":\n if (data.isFromBot) {\n this.state.unreadCount++;\n }\n this.emit(\"new_message\", data);\n if (this.options.onNewMessage) {\n this.options.onNewMessage(data);\n }\n break;\n case \"minimized\":\n // User clicked minimize in chat - close chat and show trigger\n this.closeChat();\n break;\n case \"new_unread_message\":\n // Update unread count in trigger\n this.state.unreadCount++;\n if ((_a = this.triggerIframe) === null || _a === void 0 ? void 0 : _a.contentWindow) {\n this.triggerIframe.contentWindow.postMessage({ type: \"updateUnreadCount\", count: this.state.unreadCount }, window.location.origin);\n }\n break;\n case \"customer_data_updated\":\n this.customerData = data;\n this.emit(\"customer_data_updated\", data);\n break;\n case \"session_updated\":\n this.sessionVariables = data.variables;\n this.emit(\"session_updated\", data);\n break;\n case \"error\":\n this.emit(\"error\", data);\n if (this.options.onError) {\n this.options.onError(data.error);\n }\n break;\n }\n });\n }\n sendParentHandshake() {\n var _a, _b;\n const iframeWindow = (_a = this.chatIframe) === null || _a === void 0 ? void 0 : _a.contentWindow;\n if (!iframeWindow)\n return;\n const targetOrigin = (_b = this.chatTargetOrigin) !== null && _b !== void 0 ? _b : this.getBaseUrl();\n try {\n iframeWindow.postMessage({\n type: PARENT_HANDSHAKE_TYPE,\n data: { origin: window.location.origin },\n }, targetOrigin);\n }\n catch (_c) {\n // Best-effort; iframe may fall back to document.referrer for origin discovery.\n }\n }\n flushOutboundMessageQueue() {\n var _a, _b;\n const iframeWindow = (_a = this.chatIframe) === null || _a === void 0 ? void 0 : _a.contentWindow;\n if (!iframeWindow)\n return;\n const targetOrigin = (_b = this.chatTargetOrigin) !== null && _b !== void 0 ? _b : this.getBaseUrl();\n const queued = this.outboundMessageQueue;\n if (queued.length === 0)\n return;\n this.outboundMessageQueue = [];\n for (const msg of queued) {\n iframeWindow.postMessage({ type: msg.type, data: msg.data }, targetOrigin);\n }\n }\n postMessageToWidget(type, data) {\n var _a, _b;\n const iframeWindow = (_a = this.chatIframe) === null || _a === void 0 ? void 0 : _a.contentWindow;\n if (!iframeWindow)\n return;\n const targetOrigin = (_b = this.chatTargetOrigin) !== null && _b !== void 0 ? _b : this.getBaseUrl();\n // Ensure handshake is sent before any other commands; queue until ack.\n if (!this.handshakeComplete && type !== PARENT_HANDSHAKE_TYPE) {\n const queue = this.outboundMessageQueue;\n if (queue.length < 50) {\n queue.push({ type, data });\n }\n else {\n this.outboundMessageQueue = [...queue.slice(-49), { type, data }];\n }\n this.sendParentHandshake();\n return;\n }\n iframeWindow.postMessage({ type, data }, targetOrigin);\n }\n getBaseUrl() {\n var _a, _b;\n // Return the base URL for the BuniAI platform\n // Priority: 1. config.baseUrl, 2. global BUNI_API_URL, 3. default platform URL\n const configUrl = (_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.config) === null || _b === void 0 ? void 0 : _b.baseUrl;\n const globalUrl = globalThis.BUNI_API_URL;\n const rawUrl = configUrl || globalUrl || BUNI_PLATFORM_URL;\n try {\n return new URL(rawUrl).origin;\n }\n catch (_c) {\n return rawUrl;\n }\n }\n destroy() {\n this.postMessageToWidget(\"destroy\");\n if (this.widgetElement) {\n this.widgetElement.remove();\n this.widgetElement = null;\n }\n this.triggerIframe = null;\n this.chatIframe = null;\n this.eventListeners.clear();\n this.state.isLoaded = false;\n this.customerData = null;\n this.sessionVariables = null;\n }\n show() {\n // Show the widget container if it was hidden (hideDefaultTrigger mode)\n if (this.widgetElement) {\n this.widgetElement.style.display = \"block\";\n }\n // Open chat if not already open\n if (!this.chatIframe && !this.state.isOpen) {\n this.openChat();\n }\n }\n hide() {\n var _a;\n // Close chat if open\n if (this.chatIframe) {\n this.closeChat();\n }\n // If hideDefaultTrigger is enabled, completely hide the container\n if (((_a = this.options.config) === null || _a === void 0 ? void 0 : _a.hideDefaultTrigger) && this.widgetElement) {\n this.widgetElement.style.display = \"none\";\n }\n this.state.isOpen = false;\n this.emit(\"visibility_changed\", { visibility: \"hidden\" });\n }\n toggle() {\n if (this.chatIframe || this.state.isOpen) {\n this.closeChat();\n }\n else {\n this.openChat();\n }\n }\n minimize() {\n this.closeChat();\n }\n maximize() {\n this.openChat();\n }\n setCustomerData(data) {\n this.customerData = { ...this.customerData, ...data };\n this.postMessageToWidget(\"setCustomerData\", this.customerData);\n this.emit(\"customer_data_updated\", { data: this.customerData });\n }\n getCustomerData() {\n return this.customerData ? { ...this.customerData } : null;\n }\n setSessionVariables(variables) {\n this.sessionVariables = { ...this.sessionVariables, ...variables };\n this.postMessageToWidget(\"setSessionVariables\", this.sessionVariables);\n this.emit(\"session_updated\", { variables: this.sessionVariables });\n }\n getSessionVariables() {\n return this.sessionVariables ? { ...this.sessionVariables } : null;\n }\n sendMessage(message) {\n this.postMessageToWidget(\"sendMessage\", { message });\n const messageData = {\n message,\n isFromBot: false,\n timestamp: Date.now(),\n messageId: `msg_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`,\n };\n this.emit(\"new_message\", messageData);\n }\n clearChat() {\n this.postMessageToWidget(\"clearChat\");\n this.state.unreadCount = 0;\n }\n setTheme(theme) {\n this.postMessageToWidget(\"theme-change\", { theme });\n this.emit(\"theme_changed\", { theme, timestamp: Date.now() });\n }\n open() {\n this.openChat();\n }\n close() {\n this.closeChat();\n }\n on(event, callback) {\n if (!this.eventListeners.has(event)) {\n this.eventListeners.set(event, []);\n }\n this.eventListeners.get(event).push(callback);\n }\n off(event, callback) {\n const listeners = this.eventListeners.get(event);\n if (!listeners)\n return;\n if (callback) {\n const index = listeners.indexOf(callback);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n }\n else {\n this.eventListeners.set(event, []);\n }\n }\n emit(event, data) {\n const listeners = this.eventListeners.get(event);\n if (listeners) {\n listeners.forEach((callback) => {\n try {\n callback(data);\n }\n catch (error) {\n console.error(`Error in event listener for ${event}:`, error);\n }\n });\n }\n }\n getState() {\n return { ...this.state };\n }\n isReady() {\n return this.state.isLoaded;\n }\n}\n// Utility function - named export\nfunction createBuniChatWidget(options) {\n const widget = new BuniChatWidget();\n widget.initialize(options);\n return widget;\n}\n\n// Main exports for @buni.ai/chatbot-core\n// Export all types\n\nexport { BuniChatWidget, createBuniChatWidget, BuniChatWidget as default };\n//# sourceMappingURL=index.esm.js.map\n",null,null,null,null],"names":["BuniChatService","BehaviorSubject","map","Injectable","BuniChatWidgetComponent","Input","Component","BuniChatButtonComponent","EventEmitter","Output","BuniChatModule","NgModule","CommonModule"],"mappings":"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","x_google_ignoreList":[0]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@buni.ai/chatbot-angular",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.23",
|
|
4
4
|
"description": "Angular components and services for BuniAI chat widget",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"rxjs": ">=7.0.0"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@buni.ai/chatbot-core": "^1.0.
|
|
45
|
+
"@buni.ai/chatbot-core": "^1.0.20"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"@angular/core": "^16.0.0",
|