@gengage/assistant-fe 0.6.12 → 0.6.13
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/agentic/adaptor/mount.d.ts +1 -0
- package/dist/agentic/context/context-store.d.ts +2 -1
- package/dist/agentic/context/persistence.d.ts +2 -1
- package/dist/agentic/index.d.ts +3 -2
- package/dist/agentic/index.js +244 -240
- package/dist/agentic/types.d.ts +28 -20
- package/dist/agentic/util/browser-memory.d.ts +2 -2
- package/dist/agentic/util/cache-key.d.ts +15 -0
- package/dist/agentic/worker/be-client.d.ts +3 -1
- package/dist/agentic/worker.d.ts +3 -2
- package/dist/agentic/worker.js +92 -86
- package/dist/agentic.iife.js +5 -5
- package/dist/{api-paths-Cth1szY1.js → api-paths-ChCMvKkx.js} +1 -1
- package/dist/{chat-CrEa2W-e.js → chat-BP-yXukW.js} +1 -1
- package/dist/chat-runtime.js +1 -1
- package/dist/chat.iife.js +17 -17
- package/dist/chat.js +2 -2
- package/dist/common/request-response-cache.d.ts +9 -0
- package/dist/{common-CmPjQ9RK.js → common-BD_DSsqY.js} +3 -3
- package/dist/common.js +7 -7
- package/dist/{connection-warning-Bx1TJaU9.js → connection-warning-CPeEsQ35.js} +1 -1
- package/dist/{fastIntent-nZXiT9DG.js → fastIntent-C1WeEqW8.js} +1 -1
- package/dist/index.js +12 -12
- package/dist/{native-webview-BlHM7cLs.js → native-webview-DbKq9lN8.js} +1 -1
- package/dist/native.iife.js +14 -14
- package/dist/native.js +1 -1
- package/dist/overlay.js +1 -1
- package/dist/{qna-BNvttR6s.js → qna-B3lMzHvS.js} +1 -1
- package/dist/qna-runtime.js +1 -1
- package/dist/qna.iife.js +13 -13
- package/dist/qna.js +2 -2
- package/dist/request-response-cache-zsgz3Awp.js +154 -0
- package/dist/request-text-su3Vlhrs.js +1318 -0
- package/dist/{runtime-xlTFF9HS.js → runtime-Dbwwd8yF.js} +38 -37
- package/dist/{runtime-B0v76aJ5.js → runtime-DclobJaN.js} +365 -364
- package/dist/{runtime-Dt6FUotQ.js → runtime-Duvrignh.js} +69 -68
- package/dist/{simbut-pTonQlCT.js → simbut-5C5EAfoM.js} +1 -1
- package/dist/simbut.iife.js +1 -1
- package/dist/simbut.js +1 -1
- package/dist/{simrel-C3ZJHVIW.js → simrel-DCcSBFez.js} +3 -3
- package/dist/simrel-runtime.js +1 -1
- package/dist/simrel.iife.js +12 -12
- package/dist/simrel.js +2 -2
- package/dist/{widget-base-C6H3cDSW.js → widget-base-BolzGV28.js} +1 -1
- package/package.json +1 -1
- package/dist/agentic/flow/beauty-consulting-turn.d.ts +0 -1
- package/dist/similarity-qMH5-do-.js +0 -1262
- /package/dist/{overlay-fgrzmFTR.js → overlay-CyoB1K0w.js} +0 -0
- /package/dist/{price-formatter-xI3g9Cd4.js → price-formatter-CFsWT0lP.js} +0 -0
- /package/dist/{schemas-CLo8wCjs.js → schemas-Cq2blsO_.js} +0 -0
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { a as
|
|
2
|
-
import { A as
|
|
3
|
-
import { o as
|
|
4
|
-
import { t as
|
|
5
|
-
import {
|
|
6
|
-
import { n as X } from "./
|
|
7
|
-
|
|
1
|
+
import { a as j, d as L, h as F, i as q, p as z, r as I, t as N } from "./api-paths-ChCMvKkx.js";
|
|
2
|
+
import { A as D, E as S, N as H, a as k, l as $, v as W } from "./context-BBuSsXZ9.js";
|
|
3
|
+
import { o as J, t as K } from "./widget-base-BolzGV28.js";
|
|
4
|
+
import { t as Q } from "./locale-CfqNifrU.js";
|
|
5
|
+
import { t as R } from "./request-response-cache-zsgz3Awp.js";
|
|
6
|
+
import { a as V, n as Y, r as X, t as A } from "./price-formatter-CFsWT0lP.js";
|
|
7
|
+
import { n as Z } from "./connection-warning-CPeEsQ35.js";
|
|
8
|
+
function M(e) {
|
|
8
9
|
const t = [];
|
|
9
10
|
for (const n of Object.values(e)) if (n.type === "ProductCard" && n.props) {
|
|
10
11
|
const r = n.props.product ?? n.props;
|
|
@@ -12,36 +13,36 @@ function R(e) {
|
|
|
12
13
|
}
|
|
13
14
|
return t;
|
|
14
15
|
}
|
|
15
|
-
function
|
|
16
|
+
function U(e) {
|
|
16
17
|
const t = e.headers.get("Content-Type") ?? "";
|
|
17
18
|
return t.includes("application/x-ndjson") || t.includes("text/event-stream");
|
|
18
19
|
}
|
|
19
|
-
async function
|
|
20
|
+
async function ee(e, t) {
|
|
20
21
|
const n = [], r = { onEvent: (s) => {
|
|
21
22
|
const i = I(s);
|
|
22
|
-
!i || i.type !== "ui_spec" || n.push(...
|
|
23
|
+
!i || i.type !== "ui_spec" || n.push(...M(i.spec.elements));
|
|
23
24
|
} };
|
|
24
25
|
return t !== void 0 && (r.signal = t), await L(e, r), n;
|
|
25
26
|
}
|
|
26
|
-
async function
|
|
27
|
+
async function te(e, t, n) {
|
|
27
28
|
const r = N("similar_products", t), s = {
|
|
28
29
|
method: "POST",
|
|
29
30
|
headers: { "Content-Type": "application/json" },
|
|
30
31
|
body: JSON.stringify(e)
|
|
31
32
|
};
|
|
32
33
|
n !== void 0 && (s.signal = n);
|
|
33
|
-
const i = await
|
|
34
|
+
const i = await R(r, s);
|
|
34
35
|
if (!i.ok) throw new Error(`HTTP ${i.status}: ${i.statusText}`);
|
|
35
|
-
if (
|
|
36
|
+
if (U(i)) return ee(i, n);
|
|
36
37
|
const a = await i.text();
|
|
37
38
|
if (!a) throw new Error("Empty response body from similar_products endpoint");
|
|
38
39
|
try {
|
|
39
|
-
return
|
|
40
|
+
return j(JSON.parse(a));
|
|
40
41
|
} catch {
|
|
41
42
|
throw new Error("Invalid JSON from similar_products endpoint");
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
|
-
async function
|
|
45
|
+
async function ne(e, t) {
|
|
45
46
|
const n = [];
|
|
46
47
|
let r = null;
|
|
47
48
|
const s = { onEvent: (i) => {
|
|
@@ -58,21 +59,21 @@ async function te(e, t) {
|
|
|
58
59
|
typeof m == "string" && (r.highlight = m), n.push(r);
|
|
59
60
|
}
|
|
60
61
|
}
|
|
61
|
-
a.type === "ui_spec" && r && r.products.push(...
|
|
62
|
+
a.type === "ui_spec" && r && r.products.push(...M(a.spec.elements));
|
|
62
63
|
}
|
|
63
64
|
} };
|
|
64
65
|
return t !== void 0 && (s.signal = t), await L(e, s), n;
|
|
65
66
|
}
|
|
66
|
-
async function
|
|
67
|
+
async function re(e, t, n) {
|
|
67
68
|
const r = N("product_groupings", t), s = {
|
|
68
69
|
method: "POST",
|
|
69
70
|
headers: { "Content-Type": "application/json" },
|
|
70
71
|
body: JSON.stringify(e)
|
|
71
72
|
};
|
|
72
73
|
n !== void 0 && (s.signal = n);
|
|
73
|
-
const i = await
|
|
74
|
+
const i = await R(r, s);
|
|
74
75
|
if (!i.ok) throw new Error(`HTTP ${i.status}: ${i.statusText}`);
|
|
75
|
-
if (
|
|
76
|
+
if (U(i)) return ne(i, n);
|
|
76
77
|
const a = await i.text();
|
|
77
78
|
if (!a) return [];
|
|
78
79
|
try {
|
|
@@ -81,7 +82,7 @@ async function ne(e, t, n) {
|
|
|
81
82
|
throw new Error("Invalid JSON from product_groupings endpoint");
|
|
82
83
|
}
|
|
83
84
|
}
|
|
84
|
-
function
|
|
85
|
+
function G(e) {
|
|
85
86
|
const { product: t, index: n, discountType: r, onClick: s, onAddToCart: i, renderCard: a } = e, d = e.i18n, m = e.pricing;
|
|
86
87
|
if (e.renderCardElement) {
|
|
87
88
|
const o = e.renderCardElement(t, n);
|
|
@@ -89,20 +90,20 @@ function U(e) {
|
|
|
89
90
|
}
|
|
90
91
|
if (a) {
|
|
91
92
|
const o = document.createElement("div");
|
|
92
|
-
return o.className = "gengage-simrel-card gengage-simrel-card--custom gds-card gds-product-card gds-card-interactive", o.dataset.gengagePart = "simrel-product-card", o.innerHTML =
|
|
93
|
+
return o.className = "gengage-simrel-card gengage-simrel-card--custom gds-card gds-product-card gds-card-interactive", o.dataset.gengagePart = "simrel-product-card", o.innerHTML = H(a(t, n)), o.addEventListener("click", (c) => {
|
|
93
94
|
c.target.closest(".gengage-simrel-atc") || c.target.closest(".gengage-chat-product-card-atc") || s(t);
|
|
94
95
|
}), o;
|
|
95
96
|
}
|
|
96
97
|
const l = document.createElement("article");
|
|
97
98
|
l.className = "gengage-simrel-card gengage-chat-product-card gds-card gds-product-card gds-card-interactive", l.dataset.gengagePart = "simrel-product-card", t.inStock === !1 && l.classList.add("gengage-simrel-card--out-of-stock"), l.setAttribute("role", "listitem"), l.dataset.sku = t.sku;
|
|
98
99
|
const g = document.createElement("div");
|
|
99
|
-
if (g.className = "gengage-simrel-card-image gengage-chat-product-card-img-wrapper", g.dataset.gengagePart = "simrel-product-card-image", t.imageUrl &&
|
|
100
|
+
if (g.className = "gengage-simrel-card-image gengage-chat-product-card-img-wrapper", g.dataset.gengagePart = "simrel-product-card-image", t.imageUrl && D(t.imageUrl)) {
|
|
100
101
|
const o = document.createElement("img");
|
|
101
|
-
o.className = "gengage-chat-product-card-img", o.src = t.imageUrl, o.alt = t.name, o.loading = "lazy",
|
|
102
|
+
o.className = "gengage-chat-product-card-img", o.src = t.imageUrl, o.alt = t.name, o.loading = "lazy", Y(o), g.appendChild(o);
|
|
102
103
|
}
|
|
103
104
|
if (r === "badge" && t.discountPercent && t.discountPercent > 0) {
|
|
104
105
|
const o = document.createElement("span");
|
|
105
|
-
o.className = "gengage-simrel-badge gengage-chat-product-card-discount-badge", o.textContent = `%${
|
|
106
|
+
o.className = "gengage-simrel-badge gengage-chat-product-card-discount-badge", o.textContent = `%${X(t.discountPercent)}`, g.appendChild(o);
|
|
106
107
|
}
|
|
107
108
|
l.appendChild(g);
|
|
108
109
|
const u = document.createElement("div");
|
|
@@ -113,7 +114,7 @@ function U(e) {
|
|
|
113
114
|
const h = document.createElement("div");
|
|
114
115
|
if (h.className = "gengage-simrel-card-name gengage-chat-product-card-name", h.textContent = t.name, h.title = t.name, u.appendChild(h), t.rating != null && t.rating > 0) {
|
|
115
116
|
const o = document.createElement("div");
|
|
116
|
-
if (o.className = "gengage-simrel-card-rating gengage-chat-product-card-rating", o.appendChild(
|
|
117
|
+
if (o.className = "gengage-simrel-card-rating gengage-chat-product-card-rating", o.appendChild(V(t.rating)), t.reviewCount != null) {
|
|
117
118
|
const c = document.createElement("span");
|
|
118
119
|
c.className = "gengage-simrel-card-review-count gengage-chat-product-card-review-count", c.textContent = ` (${t.reviewCount})`, o.appendChild(c);
|
|
119
120
|
}
|
|
@@ -160,14 +161,14 @@ function w(e) {
|
|
|
160
161
|
onAddToCart: e.onAddToCart
|
|
161
162
|
};
|
|
162
163
|
e.i18n !== void 0 && (r.i18n = e.i18n), e.discountType !== void 0 && (r.discountType = e.discountType), e.renderCard !== void 0 && (r.renderCard = e.renderCard), e.renderCardElement !== void 0 && (r.renderCardElement = e.renderCardElement);
|
|
163
|
-
const s =
|
|
164
|
+
const s = G(r);
|
|
164
165
|
t.appendChild(s);
|
|
165
166
|
}
|
|
166
167
|
return e.products.length === 0 && (t.style.display = "none", t.dataset.empty = "true"), t;
|
|
167
168
|
}
|
|
168
|
-
var
|
|
169
|
-
function
|
|
170
|
-
const t =
|
|
169
|
+
var ie = 0;
|
|
170
|
+
function se(e) {
|
|
171
|
+
const t = ie++, n = document.createElement("div");
|
|
171
172
|
if (n.className = "gengage-simrel-groups", n.dataset.gengagePart = "simrel-groups", e.groups.length === 0)
|
|
172
173
|
return n.style.display = "none", n.dataset.empty = "true", n;
|
|
173
174
|
const r = document.createElement("div");
|
|
@@ -269,7 +270,7 @@ function P(e) {
|
|
|
269
270
|
const h = t.extras;
|
|
270
271
|
return h != null && typeof h == "object" && (n.extras = h), n;
|
|
271
272
|
}
|
|
272
|
-
function
|
|
273
|
+
function oe(e) {
|
|
273
274
|
if (!e || typeof e != "object") return null;
|
|
274
275
|
const t = e, n = t.title, r = t.type;
|
|
275
276
|
if (typeof n != "string" || typeof r != "string") return null;
|
|
@@ -279,7 +280,7 @@ function se(e) {
|
|
|
279
280
|
};
|
|
280
281
|
return t.payload !== void 0 && (s.payload = t.payload), s;
|
|
281
282
|
}
|
|
282
|
-
var
|
|
283
|
+
var O = {
|
|
283
284
|
ProductGrid: ({ element: e, renderElement: t, context: n }) => {
|
|
284
285
|
const r = document.createElement("div");
|
|
285
286
|
r.className = "gengage-simrel-grid", r.setAttribute("role", "list");
|
|
@@ -306,7 +307,7 @@ var G = {
|
|
|
306
307
|
onAddToCart: t.onAddToCart,
|
|
307
308
|
i18n: t.i18n
|
|
308
309
|
};
|
|
309
|
-
return a !== void 0 && (d.discountType = a), t.renderCard !== void 0 && (d.renderCard = t.renderCard), t.renderCardElement !== void 0 && (d.renderCardElement = t.renderCardElement), t.pricing !== void 0 && (d.pricing = t.pricing),
|
|
310
|
+
return a !== void 0 && (d.discountType = a), t.renderCard !== void 0 && (d.renderCard = t.renderCard), t.renderCardElement !== void 0 && (d.renderCardElement = t.renderCardElement), t.pricing !== void 0 && (d.pricing = t.pricing), G(d);
|
|
310
311
|
},
|
|
311
312
|
GroupTabs: ({ element: e, context: t }) => {
|
|
312
313
|
const n = e.props?.groups;
|
|
@@ -333,7 +334,7 @@ var G = {
|
|
|
333
334
|
onAddToCart: t.onAddToCart,
|
|
334
335
|
i18n: t.i18n
|
|
335
336
|
}, i = e.props?.columns;
|
|
336
|
-
return typeof i == "number" && Number.isFinite(i) && i > 0 ? s.columns = Math.floor(i) : typeof t.gridColumns == "number" && Number.isFinite(t.gridColumns) && t.gridColumns > 0 && (s.columns = Math.floor(t.gridColumns)), t.discountType !== void 0 && (s.discountType = t.discountType), t.renderCard !== void 0 && (s.renderCard = t.renderCard), t.renderCardElement !== void 0 && (s.renderCardElement = t.renderCardElement), t.onGroupingActivate !== void 0 && (s.onGroupingActivate = t.onGroupingActivate),
|
|
337
|
+
return typeof i == "number" && Number.isFinite(i) && i > 0 ? s.columns = Math.floor(i) : typeof t.gridColumns == "number" && Number.isFinite(t.gridColumns) && t.gridColumns > 0 && (s.columns = Math.floor(t.gridColumns)), t.discountType !== void 0 && (s.discountType = t.discountType), t.renderCard !== void 0 && (s.renderCard = t.renderCard), t.renderCardElement !== void 0 && (s.renderCardElement = t.renderCardElement), t.onGroupingActivate !== void 0 && (s.onGroupingActivate = t.onGroupingActivate), se(s);
|
|
337
338
|
},
|
|
338
339
|
EmptyState: ({ element: e, context: t }) => {
|
|
339
340
|
const n = document.createElement("div");
|
|
@@ -362,7 +363,7 @@ var G = {
|
|
|
362
363
|
if (!Array.isArray(r) || !t.onAction) return n;
|
|
363
364
|
for (const s of r) {
|
|
364
365
|
if (!s || typeof s != "object") continue;
|
|
365
|
-
const i = s, a = i.label, d =
|
|
366
|
+
const i = s, a = i.label, d = oe(i.action);
|
|
366
367
|
if (typeof a != "string" || !d) continue;
|
|
367
368
|
const m = document.createElement("button");
|
|
368
369
|
m.className = "gengage-simrel-quick-action", m.type = "button", m.textContent = a, m.addEventListener("click", (l) => {
|
|
@@ -371,7 +372,7 @@ var G = {
|
|
|
371
372
|
}
|
|
372
373
|
return n;
|
|
373
374
|
}
|
|
374
|
-
},
|
|
375
|
+
}, B = ({ element: e, renderElement: t }) => {
|
|
375
376
|
if (!e.children || e.children.length === 0) return null;
|
|
376
377
|
const n = document.createElement("div");
|
|
377
378
|
for (const r of e.children) {
|
|
@@ -380,11 +381,11 @@ var G = {
|
|
|
380
381
|
}
|
|
381
382
|
return n;
|
|
382
383
|
};
|
|
383
|
-
function
|
|
384
|
-
return { ...
|
|
384
|
+
function ae() {
|
|
385
|
+
return { ...O };
|
|
385
386
|
}
|
|
386
|
-
function
|
|
387
|
-
return
|
|
387
|
+
function ce(e, t, n = O, r = B) {
|
|
388
|
+
return F({
|
|
388
389
|
spec: e,
|
|
389
390
|
context: t,
|
|
390
391
|
registry: n,
|
|
@@ -392,7 +393,7 @@ function ae(e, t, n = G, r = O) {
|
|
|
392
393
|
unknownRenderer: r
|
|
393
394
|
});
|
|
394
395
|
}
|
|
395
|
-
var
|
|
396
|
+
var x = {
|
|
396
397
|
similarProductsAriaLabel: "Benzer ürünler",
|
|
397
398
|
emptyStateMessage: "Benzer ürün bulunamadı.",
|
|
398
399
|
addToCartButton: "Sepete Ekle",
|
|
@@ -405,7 +406,7 @@ var B = {
|
|
|
405
406
|
priceSuffix: " TL",
|
|
406
407
|
scrollTabsLeft: "Sola kaydır",
|
|
407
408
|
scrollTabsRight: "Sağa kaydır"
|
|
408
|
-
},
|
|
409
|
+
}, de = {
|
|
409
410
|
similarProductsAriaLabel: "Similar products",
|
|
410
411
|
emptyStateMessage: "No similar products found.",
|
|
411
412
|
addToCartButton: "Add to cart",
|
|
@@ -419,28 +420,28 @@ var B = {
|
|
|
419
420
|
scrollTabsLeft: "Scroll tabs left",
|
|
420
421
|
scrollTabsRight: "Scroll tabs right"
|
|
421
422
|
};
|
|
422
|
-
function
|
|
423
|
+
function le(e) {
|
|
423
424
|
return e ? e.toLowerCase().split("-")[0] ?? "tr" : "tr";
|
|
424
425
|
}
|
|
425
|
-
function
|
|
426
|
-
return
|
|
426
|
+
function ge(e) {
|
|
427
|
+
return le(e) === "en" ? de : x;
|
|
427
428
|
}
|
|
428
|
-
var
|
|
429
|
-
function
|
|
429
|
+
var ue = 12e4;
|
|
430
|
+
function pe(e) {
|
|
430
431
|
return e instanceof DOMException && e.name === "AbortError";
|
|
431
432
|
}
|
|
432
|
-
var
|
|
433
|
+
var me = class extends K {
|
|
433
434
|
constructor(...e) {
|
|
434
|
-
super(...e), this._abortController = null, this._contentEl = null, this._lastResultCount = -1, this._i18n =
|
|
435
|
+
super(...e), this._abortController = null, this._contentEl = null, this._lastResultCount = -1, this._i18n = x, this._pendingAddToCartKeys = /* @__PURE__ */ new Set();
|
|
435
436
|
}
|
|
436
437
|
async init(e) {
|
|
437
438
|
if (!this.isInitialised && (e.mountTarget === void 0 || e.mountTarget === null)) throw new Error("[gengage] SimRel mountTarget is required. Provide a merchant-owned mount before initializing.");
|
|
438
439
|
await super.init(e);
|
|
439
440
|
}
|
|
440
441
|
async onInit(e) {
|
|
441
|
-
this._i18n = this._resolveI18n(e), this._contentEl = document.createElement("div"), this._contentEl.className = "gengage-simrel-container", this._contentEl.dataset.gengagePart = "simrel-container", this._contentEl.lang =
|
|
442
|
+
this._i18n = this._resolveI18n(e), this._contentEl = document.createElement("div"), this._contentEl.className = "gengage-simrel-container", this._contentEl.dataset.gengagePart = "simrel-container", this._contentEl.lang = Q(e.locale);
|
|
442
443
|
const t = this._clampGridColumns(e.gridColumns);
|
|
443
|
-
t !== void 0 && this._contentEl.style.setProperty("--gengage-simrel-columns", String(t)), this.root.appendChild(this._contentEl), this._lastSku = e.sku, await this._fetchAndRender(e.sku),
|
|
444
|
+
t !== void 0 && this._contentEl.style.setProperty("--gengage-simrel-columns", String(t)), this.root.appendChild(this._contentEl), this._lastSku = e.sku, await this._fetchAndRender(e.sku), W("simrel");
|
|
444
445
|
}
|
|
445
446
|
onUpdate(e) {
|
|
446
447
|
const t = e.sku;
|
|
@@ -483,7 +484,7 @@ var pe = class extends J {
|
|
|
483
484
|
console.error("[gengage] simrel onAddToCart", n);
|
|
484
485
|
return;
|
|
485
486
|
}
|
|
486
|
-
|
|
487
|
+
$(e.sku, e.quantity), k("gengage:similar:add-to-cart", e);
|
|
487
488
|
} finally {
|
|
488
489
|
this._pendingAddToCartKeys.delete(t);
|
|
489
490
|
}
|
|
@@ -506,7 +507,7 @@ var pe = class extends J {
|
|
|
506
507
|
}
|
|
507
508
|
_resolveRequestTimeoutMs() {
|
|
508
509
|
const e = this.config.requestTimeoutMs;
|
|
509
|
-
return typeof e != "number" || !Number.isFinite(e) || e <= 0 ?
|
|
510
|
+
return typeof e != "number" || !Number.isFinite(e) || e <= 0 ? ue : Math.floor(e);
|
|
510
511
|
}
|
|
511
512
|
async _fetchAndRender(e) {
|
|
512
513
|
this._abort();
|
|
@@ -523,7 +524,7 @@ var pe = class extends J {
|
|
|
523
524
|
i.className = "gengage-simrel-loading", i.dataset.gengagePart = "simrel-loading";
|
|
524
525
|
const a = document.createElement("div");
|
|
525
526
|
a.className = "gengage-simrel-spinner", a.dataset.gengagePart = "simrel-loading-spinner", i.appendChild(a), this._contentEl.appendChild(i);
|
|
526
|
-
const d = { middlewareUrl: this.config.middlewareUrl }, m =
|
|
527
|
+
const d = { middlewareUrl: this.config.middlewareUrl }, m = Z({
|
|
527
528
|
source: "simrel",
|
|
528
529
|
locale: this.config.locale
|
|
529
530
|
});
|
|
@@ -535,10 +536,10 @@ var pe = class extends J {
|
|
|
535
536
|
sku: e
|
|
536
537
|
};
|
|
537
538
|
this.config.domain !== void 0 && (l.domain = this.config.domain);
|
|
538
|
-
const g = await
|
|
539
|
+
const g = await te(l, d, n);
|
|
539
540
|
if (this._lastResultCount = g.length, !this._contentEl) return;
|
|
540
541
|
if (this._contentEl.innerHTML = "", g.length > 0 && this.config.enableProductGroupings !== !1) try {
|
|
541
|
-
const u = g.map((f) => f.sku), h = new Map(g.map((f) => [f.sku, f])), y = (await
|
|
542
|
+
const u = g.map((f) => f.sku), h = new Map(g.map((f) => [f.sku, f])), y = (await re({
|
|
542
543
|
account_id: this.config.accountId,
|
|
543
544
|
session_id: this.config.session?.sessionId ?? "",
|
|
544
545
|
correlation_id: this.config.session?.sessionId ?? "",
|
|
@@ -564,12 +565,12 @@ var pe = class extends J {
|
|
|
564
565
|
}
|
|
565
566
|
g.length > 0 && S("simrel"), this._emitSimilarProductsImpression(g.length, !1);
|
|
566
567
|
} catch (l) {
|
|
567
|
-
const g =
|
|
568
|
+
const g = pe(l);
|
|
568
569
|
if (g && this._isSuperseded(n)) return;
|
|
569
570
|
if (k("gengage:global:error", {
|
|
570
571
|
source: "simrel",
|
|
571
572
|
code: g && r ? "REQUEST_TIMEOUT" : "FETCH_ERROR",
|
|
572
|
-
message:
|
|
573
|
+
message: J(this.config.locale, l)
|
|
573
574
|
}), this._contentEl) {
|
|
574
575
|
this._contentEl.innerHTML = "";
|
|
575
576
|
const u = document.createElement("div");
|
|
@@ -591,12 +592,12 @@ var pe = class extends J {
|
|
|
591
592
|
}
|
|
592
593
|
_resolveI18n(e) {
|
|
593
594
|
return {
|
|
594
|
-
...
|
|
595
|
+
...ge(e.locale),
|
|
595
596
|
...e.i18n
|
|
596
597
|
};
|
|
597
598
|
}
|
|
598
599
|
_resolveUISpecRegistry() {
|
|
599
|
-
return
|
|
600
|
+
return z(ae(), this.config.renderer?.registry);
|
|
600
601
|
}
|
|
601
602
|
_buildRenderContext() {
|
|
602
603
|
const e = this.config.renderCard, t = {
|
|
@@ -618,7 +619,7 @@ var pe = class extends J {
|
|
|
618
619
|
return n !== void 0 && (t.gridColumns = n), t;
|
|
619
620
|
}
|
|
620
621
|
_renderUISpec(e) {
|
|
621
|
-
const t = this._resolveUISpecRegistry(), n = this._buildRenderContext(), r = this.config.renderer?.unknownRenderer ??
|
|
622
|
+
const t = this._resolveUISpecRegistry(), n = this._buildRenderContext(), r = this.config.renderer?.unknownRenderer ?? B, s = (a, d) => ce(a, d, t, r), i = this.config.renderer?.renderUISpec;
|
|
622
623
|
return i ? i(e, n, {
|
|
623
624
|
registry: t,
|
|
624
625
|
unknownRenderer: r,
|
|
@@ -658,14 +659,14 @@ var pe = class extends J {
|
|
|
658
659
|
};
|
|
659
660
|
}
|
|
660
661
|
};
|
|
661
|
-
function
|
|
662
|
-
return new
|
|
662
|
+
function _e() {
|
|
663
|
+
return new me();
|
|
663
664
|
}
|
|
664
665
|
export {
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
666
|
+
ce as a,
|
|
667
|
+
B as i,
|
|
668
|
+
_e as n,
|
|
669
|
+
se as o,
|
|
670
|
+
ae as r,
|
|
671
|
+
me as t
|
|
671
672
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { A as m, D as h, _ as u, j as f, v as p } from "./context-BBuSsXZ9.js";
|
|
2
|
-
import { t as b } from "./widget-base-
|
|
2
|
+
import { t as b } from "./widget-base-BolzGV28.js";
|
|
3
3
|
import { t as y } from "./locale-CfqNifrU.js";
|
|
4
4
|
var g = { findSimilarLabel: "Benzerlerini Bul" }, _ = { findSimilarLabel: "Find Similar" };
|
|
5
5
|
function S(t, n) {
|
package/dist/simbut.iife.js
CHANGED
|
@@ -44,4 +44,4 @@
|
|
|
44
44
|
transform: translateY(0);
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
-
`,document.head.appendChild(e)}var f=null;function Y(){if(f!==null)return f;try{f=localStorage.getItem("gengage:debug")==="1"}catch{f=!1}return f}function S(e,t,i){if(!Y())return;const n=[`[gengage:${e}]`,t];i!==void 0&&n.push(i),console.debug(...n)}var j=("0.6.
|
|
47
|
+
`,document.head.appendChild(e)}var f=null;function Y(){if(f!==null)return f;try{f=localStorage.getItem("gengage:debug")==="1"}catch{f=!1}return f}function S(e,t,i){if(!Y())return;const n=[`[gengage:${e}]`,t];i!==void 0&&n.push(i),console.debug(...n)}var j=("0.6.13".trim(),"0.6.13".trim()),J=("iife-build".trim(),"iife-build".trim());function K(){if(typeof window>"u")return;const e=window;e.__gengageSdkRuntimeInfoLogged||(e.__gengageSdkRuntimeInfoLogged=!0,console.info(`[gengage] @gengage/assistant-fe v${j} (${J})`))}var Q=class{constructor(){this.isVisible=!1,this.isInitialised=!1,this._handlers=new Map,this._cleanups=[],this._ownsRoot=!1,this._destroying=!1}async init(e){if(this.isInitialised){console.warn("[gengage] Widget already initialised. Call update() instead.");return}const t=U(e.theme);K(),this.config={...e,theme:t,session:N(e.session)},this.root=this._resolveMount(e.mountTarget),this._applyTheme(t),O();const i=x("gengage:context:update",n=>this.update(n));this._cleanups.push(i),S("lifecycle",`${this.constructor.name}.init`,{accountId:e.accountId,sku:e.pageContext?.sku});try{await this.onInit(this.config)}catch(n){throw this.destroy(),n}this._destroying||(this.isInitialised=!0,S("lifecycle",`${this.constructor.name} ready`),this.emit("ready"))}update(e){this.isInitialised&&(this.config.pageContext?this.config={...this.config,pageContext:{...this.config.pageContext,...e}}:e.pageType!==void 0&&(this.config={...this.config,pageContext:e}),this.onUpdate(e),this.emit("context-update",this.config.pageContext))}show(){this.isVisible||(this.isVisible=!0,this.root.style.display="",this.onShow(),this.emit("show"))}hide(){this.isVisible&&(this.isVisible=!1,this.root.style.display="none",this.onHide(),this.emit("hide"))}destroy(){this._destroying||(this._destroying=!0,this.emit("destroy"),this._cleanups.forEach(e=>e()),this._cleanups.length=0,this._handlers.clear(),this.onDestroy(),this._cleanupRoot(),this.isInitialised=!1)}_cleanupRoot(){this._ownsRoot?this.root.remove():this.root.innerHTML=""}on(e,t){return this._handlers.has(e)||this._handlers.set(e,new Set),this._handlers.get(e).add(t),()=>this._handlers.get(e)?.delete(t)}emit(e,...t){this._handlers.get(e)?.forEach(i=>i(...t))}addCleanup(e){this._cleanups.push(e)}_resolveMount(e){if(e instanceof HTMLElement)return e;if(typeof e=="string"){const i=document.querySelector(e);if(!i)throw new Error(`[gengage] Mount target not found: "${e}"`);return i}const t=document.createElement("div");return t.dataset.gengageWidget=this.constructor.name.toLowerCase(),document.body.insertBefore(t,document.body.firstChild),this._ownsRoot=!0,t}_applyTheme(e){if(e){for(const[t,i]of Object.entries(e))if(i!==void 0){const n=t.startsWith("--")?t:`--gengage-${X(t)}`;this.root.style.setProperty(n,i)}}}};function X(e){return e.replace(/([A-Z])/g,"-$1").toLowerCase()}function Z(e){const t=e?.trim();return t||"tr"}var C={findSimilarLabel:"Benzerlerini Bul"},ee={findSimilarLabel:"Find Similar"};function te(e,t){return t?.findSimilarLabel?t.findSimilarLabel:(e??"tr").toLowerCase().startsWith("en")?ee.findSimilarLabel:C.findSimilarLabel}function h(e){const t=typeof e.sku=="string"&&e.sku.length>0?e.sku:void 0,i=typeof e.pageContext?.sku=="string"&&e.pageContext.sku.length>0?e.pageContext.sku:void 0;return t??i}var E=class extends Q{constructor(...e){super(...e),this._button=null,this._inlineFrame=null,this._label=C.findSimilarLabel}async onInit(e){this._label=te(e.locale,e.i18n);const t=e.layout??"overlay";this.root.classList.add("gengage-simbut-root"),this.root.classList.toggle("gengage-simbut-root--overlay",t==="overlay"),this.root.classList.toggle("gengage-simbut-root--inline-card",t==="inline-card"),t==="overlay"&&window.getComputedStyle(this.root).position==="static"&&(this.root.style.position="relative");const i=document.createElement("button");i.type="button",i.className="gengage-chat-find-similar-pill",i.lang=Z(e.locale),i.textContent=this._label,this._button=i;const n=()=>{i.disabled=!(h(this.config)&&(this.config.onFindSimilar||this.config.chat))};if(i.addEventListener("click",r=>{r.stopPropagation();const s=h(this.config);if(!s)return;const o=this.config.imageUrl,g=typeof o=="string"&&L(o)?o:void 0;if(F(this._label,"findSimilar"),R(s),this.config.onFindSimilar){this.config.onFindSimilar(g?{sku:s,imageUrl:g}:{sku:s});return}const u=this.config.chat;if(!u)return;const a={title:this._label,type:"findSimilar",payload:{sku:s}};u.openWithAction(a,{sku:s})}),t==="inline-card"){const r=this._createInlineCard(e,i);this._inlineFrame=r,this.root.appendChild(r)}else this.root.appendChild(i);n(),k("simbut")}_createInlineCard(e,t){const i=e.inlineCard,n=typeof i?.title=="string"?i.title.trim():"",r=typeof i?.description=="string"?i.description.trim():"",s=typeof i?.imageUrl=="string"?i.imageUrl.trim():"",o=document.createElement("section");o.className="gengage-simbut-inline-card",o.dataset.gengagePart="simbut-inline-card";const g=document.createElement("div");if(g.className="gengage-simbut-inline-copy",g.dataset.gengagePart="simbut-inline-copy",n){const a=document.createElement("h4");a.className="gengage-simbut-inline-title",a.dataset.gengagePart="simbut-inline-title",a.textContent=n,g.appendChild(a)}if(r){const a=document.createElement("p");a.className="gengage-simbut-inline-description",a.dataset.gengagePart="simbut-inline-description",a.textContent=r,g.appendChild(a)}g.children.length>0&&o.appendChild(g);const u=document.createElement("div");if(u.className="gengage-simbut-inline-action",u.dataset.gengagePart="simbut-inline-action",u.appendChild(t),o.appendChild(u),s&&I(s)){const a=document.createElement("img");a.className="gengage-simbut-inline-image",a.dataset.gengagePart="simbut-inline-image",a.src=s,a.alt=typeof i?.imageAlt=="string"?i.imageAlt:"",a.loading="lazy",a.addEventListener("error",()=>{a.style.display="none"},{once:!0}),o.appendChild(a)}return o}onUpdate(e){if(!this._button)return;const t=!!h(this.config)&&(!!this.config.onFindSimilar||!!this.config.chat);this._button.disabled=!t}hide(){this.isVisible&&(this.isVisible=!1,this._inlineFrame&&(this._inlineFrame.style.display="none"),this._button&&(this._button.style.display="none"),this.onHide(),this.emit("hide"))}show(){this.isVisible||(this.isVisible=!0,this._inlineFrame&&(this._inlineFrame.style.display=""),this._button&&(this._button.style.display=""),this.onShow(),this.emit("show"))}_cleanupRoot(){}onShow(){}onHide(){}onDestroy(){this._inlineFrame?.remove(),this._inlineFrame=null,this._button?.remove(),this._button=null}setChat(e){if(this.config.chat=e,this._button){const t=!!h(this.config)&&(!!this.config.onFindSimilar||!!this.config.chat);this._button.disabled=!t}}};function ie(){return new E}m.GengageSimBut=E,m.createSimButWidget=ie})(this.Gengage=this.Gengage||{});
|
package/dist/simbut.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { A, j as S } from "./context-BBuSsXZ9.js";
|
|
2
|
-
import { n as $, t as L } from "./price-formatter-
|
|
3
|
-
import { a as C, c as f, n as q, o as h, t as k, u as H } from "./schemas-
|
|
4
|
-
import { o as j } from "./runtime-
|
|
2
|
+
import { n as $, t as L } from "./price-formatter-CFsWT0lP.js";
|
|
3
|
+
import { a as C, c as f, n as q, o as h, t as k, u as H } from "./schemas-Cq2blsO_.js";
|
|
4
|
+
import { o as j } from "./runtime-Duvrignh.js";
|
|
5
5
|
var V = {
|
|
6
6
|
images: [
|
|
7
7
|
"images",
|
package/dist/simrel-runtime.js
CHANGED