@gengage/assistant-fe 0.1.0 → 0.1.2
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/LICENSE +2 -2
- package/README.md +2 -2
- package/dist/assistant-fe.css +1 -1
- package/dist/chat/api.d.ts +12 -2
- package/dist/chat/api.d.ts.map +1 -1
- package/dist/chat/catalog.d.ts +246 -896
- package/dist/chat/catalog.d.ts.map +1 -1
- package/dist/chat/components/AIGroupingCards.d.ts.map +1 -1
- package/dist/chat/components/AISuggestedSearchCards.d.ts.map +1 -1
- package/dist/chat/components/AITopPicks.d.ts.map +1 -1
- package/dist/chat/components/CategoriesContainer.d.ts.map +1 -1
- package/dist/chat/components/ChatDrawer.d.ts +16 -3
- package/dist/chat/components/ChatDrawer.d.ts.map +1 -1
- package/dist/chat/components/ComparisonTable.d.ts +9 -0
- package/dist/chat/components/ComparisonTable.d.ts.map +1 -1
- package/dist/chat/components/GroundingReviewCard.d.ts.map +1 -1
- package/dist/chat/components/HandoffNotice.d.ts +5 -0
- package/dist/chat/components/HandoffNotice.d.ts.map +1 -0
- package/dist/chat/components/KvkkBanner.d.ts +1 -0
- package/dist/chat/components/KvkkBanner.d.ts.map +1 -1
- package/dist/chat/components/ProactivePopup.d.ts +9 -0
- package/dist/chat/components/ProactivePopup.d.ts.map +1 -1
- package/dist/chat/components/ProductSummaryCard.d.ts +4 -0
- package/dist/chat/components/ProductSummaryCard.d.ts.map +1 -0
- package/dist/chat/components/ReviewHighlights.d.ts +3 -1
- package/dist/chat/components/ReviewHighlights.d.ts.map +1 -1
- package/dist/chat/components/ThumbnailsColumn.d.ts.map +1 -1
- package/dist/chat/components/renderUISpec.d.ts +4 -3
- package/dist/chat/components/renderUISpec.d.ts.map +1 -1
- package/dist/chat/heartbeat.d.ts +71 -0
- package/dist/chat/heartbeat.d.ts.map +1 -0
- package/dist/chat/index.d.ts +39 -78
- package/dist/chat/index.d.ts.map +1 -1
- package/dist/chat/kvkk.d.ts +21 -0
- package/dist/chat/kvkk.d.ts.map +1 -0
- package/dist/chat/locales/en.d.ts.map +1 -1
- package/dist/chat/locales/tr.d.ts.map +1 -1
- package/dist/chat/panel-manager.d.ts +81 -0
- package/dist/chat/panel-manager.d.ts.map +1 -0
- package/dist/chat/session-persistence.d.ts +56 -0
- package/dist/chat/session-persistence.d.ts.map +1 -0
- package/dist/chat/types.d.ts +39 -1
- package/dist/chat/types.d.ts.map +1 -1
- package/dist/chat.cjs +1 -1
- package/dist/chat.iife.js +48 -10
- package/dist/chat.iife.js.map +1 -1
- package/dist/chat.js +9 -8
- package/dist/chat.js.map +1 -1
- package/dist/common/analytics-events.d.ts +2 -0
- package/dist/common/analytics-events.d.ts.map +1 -1
- package/dist/common/analytics.d.ts.map +1 -1
- package/dist/common/api-paths.d.ts +5 -0
- package/dist/common/api-paths.d.ts.map +1 -1
- package/dist/common/client.d.ts +4 -1
- package/dist/common/client.d.ts.map +1 -1
- package/dist/common/communication-bridge.d.ts.map +1 -1
- package/dist/common/config-schema.d.ts +33 -195
- package/dist/common/config-schema.d.ts.map +1 -1
- package/dist/common/ga-datalayer.d.ts +62 -0
- package/dist/common/ga-datalayer.d.ts.map +1 -0
- package/dist/common/index.d.ts +7 -0
- package/dist/common/index.d.ts.map +1 -1
- package/dist/common/indexed-db.d.ts +1 -1
- package/dist/common/indexed-db.d.ts.map +1 -1
- package/dist/common/merchant-configs.d.ts +22 -0
- package/dist/common/merchant-configs.d.ts.map +1 -0
- package/dist/common/overlay.d.ts +5 -0
- package/dist/common/overlay.d.ts.map +1 -1
- package/dist/common/page-detect.d.ts +31 -0
- package/dist/common/page-detect.d.ts.map +1 -0
- package/dist/common/preflight.d.ts +3 -1
- package/dist/common/preflight.d.ts.map +1 -1
- package/dist/common/price-formatter.d.ts +33 -0
- package/dist/common/price-formatter.d.ts.map +1 -0
- package/dist/common/product-utils.d.ts +26 -0
- package/dist/common/product-utils.d.ts.map +1 -0
- package/dist/common/quantity-stepper.d.ts +22 -0
- package/dist/common/quantity-stepper.d.ts.map +1 -0
- package/dist/common/safe-html.d.ts +10 -6
- package/dist/common/safe-html.d.ts.map +1 -1
- package/dist/common/streaming.d.ts +6 -0
- package/dist/common/streaming.d.ts.map +1 -1
- package/dist/common/tts-player.d.ts +12 -0
- package/dist/common/tts-player.d.ts.map +1 -0
- package/dist/common/types.d.ts +51 -0
- package/dist/common/types.d.ts.map +1 -1
- package/dist/common/v1-protocol-adapter.d.ts +9 -0
- package/dist/common/v1-protocol-adapter.d.ts.map +1 -1
- package/dist/common/voice-input.d.ts +74 -0
- package/dist/common/voice-input.d.ts.map +1 -0
- package/dist/common/widget-base.d.ts +18 -1
- package/dist/common/widget-base.d.ts.map +1 -1
- package/dist/common.cjs +1 -1
- package/dist/common.cjs.map +1 -1
- package/dist/common.js +564 -244
- package/dist/common.js.map +1 -1
- package/dist/index-CXbH-cw8.js +4337 -0
- package/dist/index-CXbH-cw8.js.map +1 -0
- package/dist/index-DHfTHscz.cjs +13 -0
- package/dist/index-DHfTHscz.cjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +61 -53
- package/dist/qna/catalog.d.ts +30 -96
- package/dist/qna/catalog.d.ts.map +1 -1
- package/dist/qna/components/TextInput.d.ts.map +1 -1
- package/dist/qna/components/renderUISpec.d.ts.map +1 -1
- package/dist/qna/index.d.ts +2 -0
- package/dist/qna/index.d.ts.map +1 -1
- package/dist/qna.cjs +1 -1
- package/dist/qna.cjs.map +1 -1
- package/dist/qna.iife.js +46 -8
- package/dist/qna.iife.js.map +1 -1
- package/dist/qna.js +94 -86
- package/dist/qna.js.map +1 -1
- package/dist/quantity-stepper-B8kX8GbN.js +209 -0
- package/dist/quantity-stepper-B8kX8GbN.js.map +1 -0
- package/dist/quantity-stepper-UbAp53Ow.cjs +2 -0
- package/dist/quantity-stepper-UbAp53Ow.cjs.map +1 -0
- package/dist/schemas-CPkzbgia.js +4572 -0
- package/dist/schemas-CPkzbgia.js.map +1 -0
- package/dist/schemas-tCxs1sED.cjs +86 -0
- package/dist/schemas-tCxs1sED.cjs.map +1 -0
- package/dist/simrel/api.d.ts.map +1 -1
- package/dist/simrel/catalog.d.ts +32 -240
- package/dist/simrel/catalog.d.ts.map +1 -1
- package/dist/simrel/components/GroupTabs.d.ts.map +1 -1
- package/dist/simrel/components/ProductCard.d.ts +2 -0
- package/dist/simrel/components/ProductCard.d.ts.map +1 -1
- package/dist/simrel/components/renderUISpec.d.ts.map +1 -1
- package/dist/simrel/index.d.ts.map +1 -1
- package/dist/simrel/types.d.ts +5 -0
- package/dist/simrel/types.d.ts.map +1 -1
- package/dist/simrel.cjs +1 -1
- package/dist/simrel.cjs.map +1 -1
- package/dist/simrel.css +1 -1
- package/dist/simrel.iife.js +46 -8
- package/dist/simrel.iife.js.map +1 -1
- package/dist/simrel.js +319 -279
- package/dist/simrel.js.map +1 -1
- package/package.json +28 -8
- package/dist/index-CFA70IGF.js +0 -3626
- package/dist/index-CFA70IGF.js.map +0 -1
- package/dist/index-Dfl89zpe.cjs +0 -13
- package/dist/index-Dfl89zpe.cjs.map +0 -1
- package/dist/types-CeON7iBO.cjs +0 -48
- package/dist/types-CeON7iBO.cjs.map +0 -1
- package/dist/types-yxW8WA7u.js +0 -4132
- package/dist/types-yxW8WA7u.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/chat/catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/chat/catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,mBAAmB;;;;;;;iBAI9B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;iBAS5B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;iBAY9B,CAAC;AAEH,eAAO,MAAM,qBAAqB,gCAAe,CAAC;AAElD,eAAO,MAAM,aAAa;;iBAExB,CAAC;AAWH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA+BhC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;iBAG/B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;iBAc9B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;iBAE3B,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;iBAKpC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;iBAShC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;iBAUvC,CAAC;AAeH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAwBpC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;iBAE5B,CAAC;AASH,eAAO,MAAM,sBAAsB;;;;;;;iBAEjC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;iBAI5B,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;iBAiBpC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;iBAI9B,CAAC;AAUH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmEd,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC;AAC7C,MAAM,MAAM,iBAAiB,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AIGroupingCards.d.ts","sourceRoot":"","sources":["../../../src/chat/components/AIGroupingCards.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"AIGroupingCards.d.ts","sourceRoot":"","sources":["../../../src/chat/components/AIGroupingCards.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAW3D,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,uBAAuB,GAAG,WAAW,CA0DnG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AISuggestedSearchCards.d.ts","sourceRoot":"","sources":["../../../src/chat/components/AISuggestedSearchCards.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"AISuggestedSearchCards.d.ts","sourceRoot":"","sources":["../../../src/chat/components/AISuggestedSearchCards.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAW3D,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,uBAAuB,GAAG,WAAW,CAmD1G"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AITopPicks.d.ts","sourceRoot":"","sources":["../../../src/chat/components/AITopPicks.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"AITopPicks.d.ts","sourceRoot":"","sources":["../../../src/chat/components/AITopPicks.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAiC3D,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,uBAAuB,GAAG,WAAW,CAyB9F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CategoriesContainer.d.ts","sourceRoot":"","sources":["../../../src/chat/components/CategoriesContainer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"CategoriesContainer.d.ts","sourceRoot":"","sources":["../../../src/chat/components/CategoriesContainer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAc3D,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,uBAAuB,GAAG,WAAW,CA2G3G"}
|
|
@@ -26,6 +26,10 @@ export interface ChatDrawerOptions {
|
|
|
26
26
|
onThumbnailClick?: ((threadId: string) => void) | undefined;
|
|
27
27
|
/** Callback fired when a link in bot HTML is clicked. */
|
|
28
28
|
onLinkClick?: ((url: string) => void) | undefined;
|
|
29
|
+
/** Enable voice input (Web Speech API STT). Default: false. */
|
|
30
|
+
voiceEnabled?: boolean | undefined;
|
|
31
|
+
/** BCP 47 language for speech recognition. Default: 'tr-TR'. */
|
|
32
|
+
voiceLang?: string | undefined;
|
|
29
33
|
}
|
|
30
34
|
export declare class ChatDrawer {
|
|
31
35
|
private root;
|
|
@@ -56,13 +60,17 @@ export declare class ChatDrawer {
|
|
|
56
60
|
private _thumbnailsColumn;
|
|
57
61
|
private _thinkingSteps;
|
|
58
62
|
private _firstBotMessageIds;
|
|
63
|
+
private _voiceInput;
|
|
64
|
+
private _micBtn;
|
|
65
|
+
private _voiceEnabled;
|
|
66
|
+
private _voiceLang;
|
|
59
67
|
constructor(container: HTMLElement, options: ChatDrawerOptions);
|
|
60
68
|
addMessage(message: ChatMessage): void;
|
|
61
69
|
showTypingIndicator(searchText?: string): void;
|
|
62
70
|
/** Accumulate a new thinking step (shown as a checklist in the typing indicator). */
|
|
63
71
|
addThinkingStep(text: string): void;
|
|
64
72
|
removeTypingIndicator(): void;
|
|
65
|
-
showError(message?: string): void;
|
|
73
|
+
showError(message?: string, onRetry?: () => void): void;
|
|
66
74
|
clearMessages(): void;
|
|
67
75
|
/** Replace suggestion pills. Pass empty array to hide. */
|
|
68
76
|
setPills(pills: Array<{
|
|
@@ -88,7 +96,7 @@ export declare class ChatDrawer {
|
|
|
88
96
|
appendPanelContent(el: HTMLElement): void;
|
|
89
97
|
/** Return the panel element's content child (after topbar), or null. */
|
|
90
98
|
getPanelContentElement(): HTMLElement | null;
|
|
91
|
-
/** Whether the panel is currently visible and has rendered content (beyond
|
|
99
|
+
/** Whether the panel is currently visible and has rendered content (beyond topbar + thumbnails column). */
|
|
92
100
|
hasPanelContent(): boolean;
|
|
93
101
|
/** Whether panel currently shows loading skeleton blocks. */
|
|
94
102
|
isPanelLoading(): boolean;
|
|
@@ -96,7 +104,11 @@ export declare class ChatDrawer {
|
|
|
96
104
|
showPanelLoading(contentType?: string): void;
|
|
97
105
|
/** Update the panel top bar navigation state. */
|
|
98
106
|
updatePanelTopBar(canBack: boolean, canForward: boolean, title: string): void;
|
|
99
|
-
/**
|
|
107
|
+
/**
|
|
108
|
+
* Hide the panel and clear its content. Always hides — even in force-expanded mode.
|
|
109
|
+
* Callers: _hideDrawer (stale panel cleanup), stream onDone (loading skeleton cleanup),
|
|
110
|
+
* thread navigation (no snapshot to restore). All require full hide.
|
|
111
|
+
*/
|
|
100
112
|
clearPanel(): void;
|
|
101
113
|
/** Force the panel to stay expanded (panelMode: 'expanded'). Hides the divider toggle. */
|
|
102
114
|
setForceExpanded(): void;
|
|
@@ -116,6 +128,7 @@ export declare class ChatDrawer {
|
|
|
116
128
|
private _renderThinkingStepsInto;
|
|
117
129
|
private _trapFocus;
|
|
118
130
|
private _submit;
|
|
131
|
+
private _toggleVoice;
|
|
119
132
|
/** Lock auto-scroll for 500ms after session history restore to prevent visual jump. */
|
|
120
133
|
lockScrollForRestore(): void;
|
|
121
134
|
/** Scroll to bottom only if user hasn't scrolled up. Force=true always scrolls. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatDrawer.d.ts","sourceRoot":"","sources":["../../../src/chat/components/ChatDrawer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"ChatDrawer.d.ts","sourceRoot":"","sources":["../../../src/chat/components/ChatDrawer.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,14 @@ export interface ComparisonAttribute {
|
|
|
23
23
|
label: string;
|
|
24
24
|
values: string[];
|
|
25
25
|
}
|
|
26
|
+
export interface ComparisonTableI18n {
|
|
27
|
+
comparisonHeading?: string;
|
|
28
|
+
recommendedChoiceLabel?: string;
|
|
29
|
+
highlightsLabel?: string;
|
|
30
|
+
keyDifferencesLabel?: string;
|
|
31
|
+
specialCasesLabel?: string;
|
|
32
|
+
addToCartButton?: string;
|
|
33
|
+
}
|
|
26
34
|
export interface ComparisonTableOptions {
|
|
27
35
|
recommended: ComparisonProduct;
|
|
28
36
|
products: ComparisonProduct[];
|
|
@@ -42,6 +50,7 @@ export interface ComparisonTableOptions {
|
|
|
42
50
|
payload?: unknown;
|
|
43
51
|
}> | undefined;
|
|
44
52
|
keyDifferencesHtml?: string | undefined;
|
|
53
|
+
i18n?: ComparisonTableI18n | undefined;
|
|
45
54
|
}
|
|
46
55
|
export declare function renderComparisonTable(options: ComparisonTableOptions): HTMLElement;
|
|
47
56
|
//# sourceMappingURL=ComparisonTable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComparisonTable.d.ts","sourceRoot":"","sources":["../../../src/chat/components/ComparisonTable.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"ComparisonTable.d.ts","sourceRoot":"","sources":["../../../src/chat/components/ComparisonTable.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAsCH;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACpC,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,WAAW,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAClD,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;IACtF,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;IAChG,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,IAAI,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;CACxC;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,WAAW,CA2MlF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroundingReviewCard.d.ts","sourceRoot":"","sources":["../../../src/chat/components/GroundingReviewCard.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAE3D,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,uBAAuB,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"GroundingReviewCard.d.ts","sourceRoot":"","sources":["../../../src/chat/components/GroundingReviewCard.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAE3D,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,uBAAuB,GAAG,WAAW,CAiDvG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HandoffNotice.d.ts","sourceRoot":"","sources":["../../../src/chat/components/HandoffNotice.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAE3D,wBAAgB,mBAAmB,CACjC,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,EAC5C,OAAO,EAAE,uBAAuB,GAC/B,WAAW,CAyBb"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KvkkBanner.d.ts","sourceRoot":"","sources":["../../../src/chat/components/KvkkBanner.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"KvkkBanner.d.ts","sourceRoot":"","sources":["../../../src/chat/components/KvkkBanner.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,WAAW,CAmBxE"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
export interface ProactiveAction {
|
|
2
|
+
title: string;
|
|
3
|
+
onSelect: () => void;
|
|
4
|
+
}
|
|
1
5
|
export interface ProactivePopupOptions {
|
|
2
6
|
message: string;
|
|
3
7
|
onAccept: () => void;
|
|
@@ -6,6 +10,11 @@ export interface ProactivePopupOptions {
|
|
|
6
10
|
autoDismissMs?: number;
|
|
7
11
|
/** Accept button label (default: "Sohbete Başla"). */
|
|
8
12
|
acceptLabel?: string;
|
|
13
|
+
/** Dismiss button aria-label (default: "Kapat"). */
|
|
14
|
+
closeAriaLabel?: string;
|
|
15
|
+
/** Backend-driven action buttons. When provided, renders per-action buttons
|
|
16
|
+
* instead of the generic accept button. */
|
|
17
|
+
actionButtons?: ProactiveAction[];
|
|
9
18
|
}
|
|
10
19
|
export declare function createProactivePopup(options: ProactivePopupOptions): HTMLElement;
|
|
11
20
|
//# sourceMappingURL=ProactivePopup.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProactivePopup.d.ts","sourceRoot":"","sources":["../../../src/chat/components/ProactivePopup.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"ProactivePopup.d.ts","sourceRoot":"","sources":["../../../src/chat/components/ProactivePopup.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;gDAC4C;IAC5C,aAAa,CAAC,EAAE,eAAe,EAAE,CAAC;CACnC;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,WAAW,CA0EhF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProductSummaryCard.d.ts","sourceRoot":"","sources":["../../../src/chat/components/ProductSummaryCard.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAK3D,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,uBAAuB,GAAG,WAAW,CA+FtG"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import { UIElement } from '../../common/types.js';
|
|
2
|
-
export declare function renderReviewHighlights(element: UIElement
|
|
2
|
+
export declare function renderReviewHighlights(element: UIElement, options?: {
|
|
3
|
+
emptyReviewsMessage?: string | undefined;
|
|
4
|
+
}): HTMLElement;
|
|
3
5
|
//# sourceMappingURL=ReviewHighlights.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReviewHighlights.d.ts","sourceRoot":"","sources":["../../../src/chat/components/ReviewHighlights.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AASvD,wBAAgB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"ReviewHighlights.d.ts","sourceRoot":"","sources":["../../../src/chat/components/ReviewHighlights.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AASvD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,SAAS,EAClB,OAAO,CAAC,EAAE;IAAE,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GACrD,WAAW,CA2Ib"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThumbnailsColumn.d.ts","sourceRoot":"","sources":["../../../src/chat/components/ThumbnailsColumn.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"ThumbnailsColumn.d.ts","sourceRoot":"","sources":["../../../src/chat/components/ThumbnailsColumn.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA6B;gBAEnD,OAAO,EAAE,uBAAuB;IAQ5C,UAAU,IAAI,WAAW;IAIzB,UAAU,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,IAAI;IAqC3C,IAAI,IAAI,IAAI;IAIZ,IAAI,IAAI,IAAI;CAGb"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { UISpec } from '../../common/types.js';
|
|
2
2
|
import { UISpecDomRegistry, UISpecDomUnknownRenderer } from '../../common/renderer/index.js';
|
|
3
3
|
import { ChatUISpecRenderContext } from '../types.js';
|
|
4
|
+
import { PriceFormatConfig } from '../../common/price-formatter.js';
|
|
4
5
|
export type UISpecRenderContext = ChatUISpecRenderContext;
|
|
5
6
|
export type ChatUISpecRegistry = UISpecDomRegistry<UISpecRenderContext>;
|
|
6
7
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* Returns the input as-is if it's not a valid number.
|
|
8
|
+
* @deprecated Use `formatPrice()` from `../../common/price-formatter.js` instead.
|
|
9
|
+
* Kept for backwards compatibility — delegates to `formatPrice()` with Turkish defaults.
|
|
10
10
|
*/
|
|
11
11
|
export declare function formatTurkishPrice(raw: string): string;
|
|
12
|
+
export type { PriceFormatConfig };
|
|
12
13
|
export declare const defaultChatUnknownUISpecRenderer: UISpecDomUnknownRenderer<UISpecRenderContext>;
|
|
13
14
|
export declare function createDefaultChatUISpecRegistry(): ChatUISpecRegistry;
|
|
14
15
|
export declare function renderUISpec(spec: UISpec, ctx: UISpecRenderContext, registry?: ChatUISpecRegistry, unknownRenderer?: UISpecDomUnknownRenderer<UISpecRenderContext>): HTMLElement;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderUISpec.d.ts","sourceRoot":"","sources":["../../../src/chat/components/renderUISpec.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAA4B,MAAM,uBAAuB,CAAC;AAE9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAClG,OAAO,KAAK,EAAE,uBAAuB,EAAoB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"renderUISpec.d.ts","sourceRoot":"","sources":["../../../src/chat/components/renderUISpec.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAA4B,MAAM,uBAAuB,CAAC;AAE9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAClG,OAAO,KAAK,EAAE,uBAAuB,EAAoB,MAAM,aAAa,CAAC;AAE7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAiBzE,MAAM,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AAE1D,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;AAExE;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,YAAY,EAAE,iBAAiB,EAAE,CAAC;AA0BlC,eAAO,MAAM,gCAAgC,EAAE,wBAAwB,CAAC,mBAAmB,CAgB1F,CAAC;AAEF,wBAAgB,+BAA+B,IAAI,kBAAkB,CAEpE;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,mBAAmB,EACxB,QAAQ,qBAAgC,EACxC,eAAe,GAAE,wBAAwB,CAAC,mBAAmB,CAAoC,GAChG,WAAW,CAQb"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* V2 heartbeat polling.
|
|
3
|
+
*
|
|
4
|
+
* Periodically sends session state signals to the `/v2/heartbeat` backend
|
|
5
|
+
* endpoint. The backend evaluates proactive trigger rules and may return a
|
|
6
|
+
* message to show to the user (e.g. idle nudge, cart abandonment reminder).
|
|
7
|
+
*
|
|
8
|
+
* Gated behind `ChatWidgetConfig.enableHeartbeat` (default: false).
|
|
9
|
+
*/
|
|
10
|
+
export interface HeartbeatRequest {
|
|
11
|
+
account_id: string;
|
|
12
|
+
thread_id: string;
|
|
13
|
+
output_language: string;
|
|
14
|
+
idle_seconds: number;
|
|
15
|
+
page_type: string;
|
|
16
|
+
current_sku: string;
|
|
17
|
+
cart_item_count: number;
|
|
18
|
+
searches_count: number;
|
|
19
|
+
actions_count: number;
|
|
20
|
+
session_duration_seconds: number;
|
|
21
|
+
trigger_fire_counts: Record<string, number>;
|
|
22
|
+
}
|
|
23
|
+
export interface HeartbeatResponse {
|
|
24
|
+
action: 'noop' | 'message';
|
|
25
|
+
trigger_type?: string;
|
|
26
|
+
message?: string;
|
|
27
|
+
suggested_actions?: Array<{
|
|
28
|
+
title: string;
|
|
29
|
+
icon?: string;
|
|
30
|
+
requestDetails?: {
|
|
31
|
+
type: string;
|
|
32
|
+
payload?: unknown;
|
|
33
|
+
};
|
|
34
|
+
}>;
|
|
35
|
+
}
|
|
36
|
+
export interface HeartbeatManagerOptions {
|
|
37
|
+
middlewareUrl: string;
|
|
38
|
+
accountId: string;
|
|
39
|
+
sessionId: string;
|
|
40
|
+
locale: string;
|
|
41
|
+
intervalMs: number;
|
|
42
|
+
getPageType: () => string;
|
|
43
|
+
getCurrentSku: () => string;
|
|
44
|
+
onMessage: (response: HeartbeatResponse) => void;
|
|
45
|
+
}
|
|
46
|
+
export declare class HeartbeatManager {
|
|
47
|
+
private _timer;
|
|
48
|
+
private _destroyed;
|
|
49
|
+
private _abortController;
|
|
50
|
+
private _sessionStart;
|
|
51
|
+
private _lastActivity;
|
|
52
|
+
private _searchesCount;
|
|
53
|
+
private _actionsCount;
|
|
54
|
+
private _triggerFireCounts;
|
|
55
|
+
private readonly _options;
|
|
56
|
+
private readonly _endpoint;
|
|
57
|
+
constructor(options: HeartbeatManagerOptions);
|
|
58
|
+
start(): void;
|
|
59
|
+
/** Schedule the next poll after the current one finishes (prevents overlapping polls). */
|
|
60
|
+
private _scheduleNext;
|
|
61
|
+
stop(): void;
|
|
62
|
+
/** Call when the user performs an action (search, click, etc.). */
|
|
63
|
+
recordAction(): void;
|
|
64
|
+
/** Call when the user performs a search. */
|
|
65
|
+
recordSearch(): void;
|
|
66
|
+
/** Call on any user interaction to reset idle timer. */
|
|
67
|
+
recordActivity(): void;
|
|
68
|
+
destroy(): void;
|
|
69
|
+
private _poll;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=heartbeat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../../src/chat/heartbeat.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,wBAAwB,EAAE,MAAM,CAAC;IACjC,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,KAAK,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,cAAc,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;KACtD,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,MAAM,CAAC;IAC5B,SAAS,EAAE,CAAC,QAAQ,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAClD;AAMD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAA8C;IAC5D,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,kBAAkB,CAA8B;IACxD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,OAAO,EAAE,uBAAuB;IAM5C,KAAK,IAAI,IAAI;IAKb,0FAA0F;IAC1F,OAAO,CAAC,aAAa;IAOrB,IAAI,IAAI,IAAI;IAOZ,mEAAmE;IACnE,YAAY,IAAI,IAAI;IAKpB,4CAA4C;IAC5C,YAAY,IAAI,IAAI;IAKpB,wDAAwD;IACxD,cAAc,IAAI,IAAI;IAItB,OAAO,IAAI,IAAI;YAOD,KAAK;CA0CpB"}
|
package/dist/chat/index.d.ts
CHANGED
|
@@ -8,12 +8,12 @@ export declare class GengageChat extends BaseWidget<ChatWidgetConfig> {
|
|
|
8
8
|
private _drawer;
|
|
9
9
|
private _bridge;
|
|
10
10
|
private _activityTracker;
|
|
11
|
+
private _heartbeat;
|
|
11
12
|
private _proactiveShown;
|
|
12
13
|
private _drawerVisible;
|
|
13
14
|
private _messages;
|
|
14
|
-
private _currentBotText;
|
|
15
15
|
private _currentMessageId;
|
|
16
|
-
private
|
|
16
|
+
private _abortControllers;
|
|
17
17
|
/** Current thread cursor — only messages with threadId <= this are visible. */
|
|
18
18
|
private _currentThreadId;
|
|
19
19
|
/** Most recent threadId ever created — used to detect branch points. */
|
|
@@ -22,12 +22,6 @@ export declare class GengageChat extends BaseWidget<ChatWidgetConfig> {
|
|
|
22
22
|
private _chatCreatedAt;
|
|
23
23
|
/** Last backend-streamed context object — sent back with every request. */
|
|
24
24
|
private _lastBackendContext;
|
|
25
|
-
/** Panel content snapshots keyed by bot message ID for history navigation. */
|
|
26
|
-
private _panelSnapshots;
|
|
27
|
-
/** Component type for each panel snapshot (for topbar title restoration). */
|
|
28
|
-
private _panelSnapshotTypes;
|
|
29
|
-
/** Currently active (highlighted) message ID in the chat pane. */
|
|
30
|
-
private _activePanelMessageId;
|
|
31
25
|
private _productSort;
|
|
32
26
|
private _comparisonSelectMode;
|
|
33
27
|
private _comparisonSelectedSkus;
|
|
@@ -37,15 +31,12 @@ export declare class GengageChat extends BaseWidget<ChatWidgetConfig> {
|
|
|
37
31
|
private _mobileBreakpoint;
|
|
38
32
|
private _isMobileViewport;
|
|
39
33
|
private _pdpLaunched;
|
|
40
|
-
private _currentPanelType;
|
|
41
34
|
private _i18n;
|
|
42
35
|
private _extendedModeManager;
|
|
43
|
-
/** Thread IDs that have panel content, in order of creation. */
|
|
44
|
-
private _panelThreads;
|
|
45
36
|
/** Active typewriter animation handle — cancelled on new action or drawer close. */
|
|
46
37
|
private _activeTypewriter;
|
|
47
|
-
/**
|
|
48
|
-
private
|
|
38
|
+
/** Active TTS audio handle — stopped on new stream start or drawer close. */
|
|
39
|
+
private _activeTtsHandle;
|
|
49
40
|
/** Active request thread ID — guards against stale stream events from cancelled requests. */
|
|
50
41
|
private _activeRequestThreadId;
|
|
51
42
|
/** Accumulated SKU → product item map from outputText events. */
|
|
@@ -56,13 +47,17 @@ export declare class GengageChat extends BaseWidget<ChatWidgetConfig> {
|
|
|
56
47
|
private _initComplete;
|
|
57
48
|
/** Queue of actions received before init completes. Max 10, FIFO discard. */
|
|
58
49
|
private _pendingActions;
|
|
59
|
-
/** Favorited product SKUs (loaded from IDB). */
|
|
60
|
-
private _favoritedSkus;
|
|
61
50
|
/** Supplemental context received from host via bridge (e.g. PDP detail context). */
|
|
62
51
|
private _bridgeContext;
|
|
63
52
|
/** Last cart quantity received from host via bridge. */
|
|
64
53
|
private _cartQuantity;
|
|
65
54
|
private _threadsWithFirstBot;
|
|
55
|
+
/** Panel state manager (snapshots, topbar, navigation). */
|
|
56
|
+
private _panel;
|
|
57
|
+
/** IndexedDB session persistence manager. */
|
|
58
|
+
private _session;
|
|
59
|
+
/** Registered event callbacks (GA4 event hooks). Key = event name, value = set of callbacks. */
|
|
60
|
+
private _eventCallbacks;
|
|
66
61
|
protected onInit(config: ChatWidgetConfig): Promise<void>;
|
|
67
62
|
protected onUpdate(_context: Partial<PageContext>): void;
|
|
68
63
|
protected onShow(): void;
|
|
@@ -74,14 +69,33 @@ export declare class GengageChat extends BaseWidget<ChatWidgetConfig> {
|
|
|
74
69
|
}): void;
|
|
75
70
|
openWithAction(action: ActionPayload, options?: {
|
|
76
71
|
sku?: string;
|
|
72
|
+
state?: 'full' | 'half';
|
|
73
|
+
}): void;
|
|
74
|
+
/** Send a user message programmatically (same flow as typing + submit). */
|
|
75
|
+
sendMessage(text: string): void;
|
|
76
|
+
/** Send a backend action programmatically. */
|
|
77
|
+
sendAction(action: ActionPayload, options?: {
|
|
78
|
+
silent?: boolean;
|
|
77
79
|
}): void;
|
|
78
80
|
close(): void;
|
|
79
81
|
saveSession(sessionId: string, sku: string): void;
|
|
80
82
|
get isOpen(): boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Register a callback for a GA4 event name (e.g. 'gengage-cart-add').
|
|
85
|
+
* The callback receives the event detail and should return true (success) or false (failure).
|
|
86
|
+
* For add-to-cart, failure triggers an error message in the chat.
|
|
87
|
+
* @returns unsubscribe function
|
|
88
|
+
*/
|
|
89
|
+
addCallback(eventName: string, callback: (detail: Record<string, unknown>) => boolean | Promise<boolean>): () => void;
|
|
81
90
|
private _handleBridgeMessage;
|
|
82
91
|
private _registerPublicAPI;
|
|
83
92
|
private _showDrawer;
|
|
84
93
|
private _showProactivePopup;
|
|
94
|
+
/** Fetch proactive actions from backend and show popup with per-action buttons. */
|
|
95
|
+
private _fetchAndShowProactive;
|
|
96
|
+
private _proactiveCooldownKey;
|
|
97
|
+
private _isProactiveCooldownActive;
|
|
98
|
+
private _setProactiveCooldown;
|
|
85
99
|
private _hideDrawer;
|
|
86
100
|
private _syncViewportState;
|
|
87
101
|
private _applyOpenStateClasses;
|
|
@@ -95,21 +109,9 @@ export declare class GengageChat extends BaseWidget<ChatWidgetConfig> {
|
|
|
95
109
|
private _handleRollback;
|
|
96
110
|
/** Rewind the conversation to the given thread. */
|
|
97
111
|
private _rollbackToThread;
|
|
98
|
-
/**
|
|
99
|
-
* Persist current session state to IndexedDB.
|
|
100
|
-
* Called after each stream completion (onDone). Non-fatal on failure.
|
|
101
|
-
*/
|
|
102
112
|
private _persistToIndexedDB;
|
|
103
|
-
|
|
104
|
-
* Persist session to IndexedDB, then send openURLInNewTab bridge message.
|
|
105
|
-
* Used by product clicks and bot HTML link clicks so the session can be
|
|
106
|
-
* restored when the user returns from navigation.
|
|
107
|
-
*/
|
|
113
|
+
private _isSameOriginUrl;
|
|
108
114
|
private _saveSessionAndOpenURL;
|
|
109
|
-
/**
|
|
110
|
-
* Load a UISpec payload from IndexedDB with retry logic.
|
|
111
|
-
* Returns null if not found or all retries fail.
|
|
112
|
-
*/
|
|
113
115
|
private _loadPayload;
|
|
114
116
|
/**
|
|
115
117
|
* Attempt to restore chat session from IndexedDB.
|
|
@@ -123,6 +125,15 @@ export declare class GengageChat extends BaseWidget<ChatWidgetConfig> {
|
|
|
123
125
|
*/
|
|
124
126
|
private _buildRenderContext;
|
|
125
127
|
private _toggleFavorite;
|
|
128
|
+
/**
|
|
129
|
+
* Run registered callbacks for a GA4 event.
|
|
130
|
+
* If any callback returns false or throws, handle the failure (e.g. show error for cart-add).
|
|
131
|
+
*/
|
|
132
|
+
private _runEventCallbacks;
|
|
133
|
+
/**
|
|
134
|
+
* Handle a callback failure — for add-to-cart, show an error message in chat.
|
|
135
|
+
*/
|
|
136
|
+
private _handleCallbackFailure;
|
|
126
137
|
/**
|
|
127
138
|
* Re-render inline UISpec elements for a restored bot message.
|
|
128
139
|
* Inserts them into the messages container after the message bubble.
|
|
@@ -132,56 +143,6 @@ export declare class GengageChat extends BaseWidget<ChatWidgetConfig> {
|
|
|
132
143
|
private _resolveI18n;
|
|
133
144
|
private _resolveUISpecRegistry;
|
|
134
145
|
private _renderUISpec;
|
|
135
|
-
/**
|
|
136
|
-
* Deep-clone the current panel content (excluding topbar/thumbnails) and store
|
|
137
|
-
* it keyed by message ID. Called when a stream completes so panel content can
|
|
138
|
-
* be restored later without duplicating the topbar.
|
|
139
|
-
*/
|
|
140
|
-
private _snapshotPanelForMessage;
|
|
141
|
-
/**
|
|
142
|
-
* Attach a click handler to a bot message bubble so clicking it restores
|
|
143
|
-
* the panel content that was active when that message was received.
|
|
144
|
-
*/
|
|
145
|
-
private _attachMessageClickHandler;
|
|
146
|
-
/**
|
|
147
|
-
* Restore the panel content snapshot associated with a given message ID.
|
|
148
|
-
* Highlights the active message and de-highlights the previous one.
|
|
149
|
-
* Also restores the panel topbar title for the snapshot's component type.
|
|
150
|
-
* Returns true if the snapshot was found and restored.
|
|
151
|
-
*/
|
|
152
|
-
private _restorePanelForMessage;
|
|
153
|
-
/**
|
|
154
|
-
* Send maximize-pdp / minify-pdp bridge messages with production-matching delays.
|
|
155
|
-
* Called by the extended mode manager (Group H) when panel extension state changes.
|
|
156
|
-
*/
|
|
157
|
-
private _notifyPanelExtension;
|
|
158
|
-
/**
|
|
159
|
-
* Derive panel title from UISpec root element type using i18n strings.
|
|
160
|
-
*/
|
|
161
|
-
private _panelTitleForComponent;
|
|
162
|
-
/**
|
|
163
|
-
* Update the panel top bar navigation state and title.
|
|
164
|
-
*/
|
|
165
|
-
private _updatePanelTopBar;
|
|
166
|
-
/**
|
|
167
|
-
* Set panel topbar title during loading (before actual panel content arrives).
|
|
168
|
-
* Maps backend pending types to the same i18n titles used for final content.
|
|
169
|
-
*/
|
|
170
|
-
private _updatePanelTopBarForLoading;
|
|
171
|
-
/**
|
|
172
|
-
* Map UISpec component types to PanelContentType for the extended mode manager.
|
|
173
|
-
*/
|
|
174
|
-
private _updateExtendedModeForPanel;
|
|
175
|
-
/** Navigate to the previous panel thread. */
|
|
176
|
-
private _navigatePanelBack;
|
|
177
|
-
/** Navigate to the next panel thread. */
|
|
178
|
-
private _navigatePanelForward;
|
|
179
|
-
/**
|
|
180
|
-
* Panel route shaping:
|
|
181
|
-
* - product details => expanded LHS panel (`ProductDetailsPanel`)
|
|
182
|
-
* - all other panel-routed specs keep their original component types
|
|
183
|
-
*/
|
|
184
|
-
private _toPanelSpec;
|
|
185
146
|
}
|
|
186
147
|
export declare function createChatWidget(): GengageChat;
|
|
187
148
|
export type { ChatWidgetConfig, ChatMessage, ChatSession, ChatUIComponents, ChatI18n, ChatRendererConfig, ChatUISpecRenderContext, ChatUISpecRegistry, ProductSortState, SerializableChatMessage, } from './types.js';
|
package/dist/chat/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/chat/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAA0C,MAAM,oBAAoB,CAAC;AAO7G,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/chat/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KVKK notice filtering and caching helpers.
|
|
3
|
+
*
|
|
4
|
+
* KVKK (Kişisel Verilerin Korunması Kanunu) is Turkey's data protection law.
|
|
5
|
+
* When the backend streams a response containing a KVKK notice, we:
|
|
6
|
+
* 1. Strip the KVKK block from the visible bot text
|
|
7
|
+
* 2. Show a banner on first encounter (per account)
|
|
8
|
+
* 3. Mark it as shown in localStorage to avoid repeat banners
|
|
9
|
+
*/
|
|
10
|
+
export declare function containsKvkk(html: string): boolean;
|
|
11
|
+
export declare function isKvkkShown(accountId: string): boolean;
|
|
12
|
+
export declare function markKvkkShown(accountId: string): void;
|
|
13
|
+
/**
|
|
14
|
+
* Strip the KVKK portion from bot HTML.
|
|
15
|
+
* KVKK is typically wrapped in a `<div style="...">` at the start.
|
|
16
|
+
* We remove the first block-level element that contains a KVKK marker.
|
|
17
|
+
*/
|
|
18
|
+
export declare function stripKvkkBlock(html: string): string;
|
|
19
|
+
export declare function extractKvkkBlock(html: string): string | null;
|
|
20
|
+
export declare function localeToOutputLanguage(locale?: string): string;
|
|
21
|
+
//# sourceMappingURL=kvkk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kvkk.d.ts","sourceRoot":"","sources":["../../src/chat/kvkk.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGlD;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAMtD;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAMrD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAWnD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ5D;AASD,wBAAgB,sBAAsB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAG9D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../src/chat/locales/en.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,eAAO,MAAM,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../src/chat/locales/en.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,eAAO,MAAM,YAAY,EAAE,QAyD1B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tr.d.ts","sourceRoot":"","sources":["../../../src/chat/locales/tr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,eAAO,MAAM,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"tr.d.ts","sourceRoot":"","sources":["../../../src/chat/locales/tr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,eAAO,MAAM,YAAY,EAAE,QAyD1B,CAAC"}
|