@botonic/plugin-flow-builder 0.38.2 → 0.39.0-alpha.1
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/lib/cjs/api.d.ts +2 -1
- package/lib/cjs/api.js +3 -0
- package/lib/cjs/api.js.map +1 -1
- package/lib/cjs/content-fields/flow-button.d.ts +5 -0
- package/lib/cjs/content-fields/flow-button.js +38 -2
- package/lib/cjs/content-fields/flow-button.js.map +1 -1
- package/lib/cjs/content-fields/flow-webview.d.ts +10 -0
- package/lib/cjs/content-fields/flow-webview.js +24 -0
- package/lib/cjs/content-fields/flow-webview.js.map +1 -0
- package/lib/cjs/content-fields/hubtype-fields/common.d.ts +6 -0
- package/lib/cjs/content-fields/hubtype-fields/index.d.ts +1 -0
- package/lib/cjs/content-fields/hubtype-fields/index.js +1 -0
- package/lib/cjs/content-fields/hubtype-fields/index.js.map +1 -1
- package/lib/cjs/content-fields/hubtype-fields/node-types.d.ts +2 -1
- package/lib/cjs/content-fields/hubtype-fields/node-types.js +1 -0
- package/lib/cjs/content-fields/hubtype-fields/node-types.js.map +1 -1
- package/lib/cjs/content-fields/hubtype-fields/nodes.d.ts +2 -1
- package/lib/cjs/content-fields/hubtype-fields/webview.d.ts +16 -0
- package/lib/cjs/content-fields/hubtype-fields/webview.js +3 -0
- package/lib/cjs/content-fields/hubtype-fields/webview.js.map +1 -0
- package/lib/cjs/webview/types.d.ts +1 -1
- package/lib/cjs/webview/use-webview-contents.d.ts +1 -1
- package/lib/cjs/webview/use-webview-contents.js +2 -4
- package/lib/cjs/webview/use-webview-contents.js.map +1 -1
- package/lib/esm/api.d.ts +2 -1
- package/lib/esm/api.js +3 -0
- package/lib/esm/api.js.map +1 -1
- package/lib/esm/content-fields/flow-button.d.ts +5 -0
- package/lib/esm/content-fields/flow-button.js +39 -3
- package/lib/esm/content-fields/flow-button.js.map +1 -1
- package/lib/esm/content-fields/flow-webview.d.ts +10 -0
- package/lib/esm/content-fields/flow-webview.js +20 -0
- package/lib/esm/content-fields/flow-webview.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/common.d.ts +6 -0
- package/lib/esm/content-fields/hubtype-fields/index.d.ts +1 -0
- package/lib/esm/content-fields/hubtype-fields/index.js +1 -0
- package/lib/esm/content-fields/hubtype-fields/index.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/node-types.d.ts +2 -1
- package/lib/esm/content-fields/hubtype-fields/node-types.js +1 -0
- package/lib/esm/content-fields/hubtype-fields/node-types.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/nodes.d.ts +2 -1
- package/lib/esm/content-fields/hubtype-fields/webview.d.ts +16 -0
- package/lib/esm/content-fields/hubtype-fields/webview.js +2 -0
- package/lib/esm/content-fields/hubtype-fields/webview.js.map +1 -0
- package/lib/esm/webview/types.d.ts +1 -1
- package/lib/esm/webview/use-webview-contents.d.ts +1 -1
- package/lib/esm/webview/use-webview-contents.js +2 -4
- package/lib/esm/webview/use-webview-contents.js.map +1 -1
- package/package.json +2 -2
- package/src/api.ts +5 -0
- package/src/content-fields/flow-button.tsx +62 -2
- package/src/content-fields/flow-webview.tsx +20 -0
- package/src/content-fields/hubtype-fields/common.ts +7 -0
- package/src/content-fields/hubtype-fields/index.ts +1 -0
- package/src/content-fields/hubtype-fields/node-types.ts +1 -0
- package/src/content-fields/hubtype-fields/nodes.ts +2 -0
- package/src/content-fields/hubtype-fields/webview.ts +18 -0
- package/src/webview/types.ts +1 -1
- package/src/webview/use-webview-contents.ts +2 -3
package/lib/cjs/api.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PluginPreRequest } from '@botonic/core';
|
|
2
|
-
import { HtBotActionNode, HtFlowBuilderData, HtKeywordNode, HtNodeComponent, HtNodeLink, HtNodeWithContent, HtRatingButton, HtRatingNode } from './content-fields/hubtype-fields';
|
|
2
|
+
import { HtBotActionNode, HtFlowBuilderData, HtFlowWebview, HtKeywordNode, HtNodeComponent, HtNodeLink, HtNodeWithContent, HtRatingButton, HtRatingNode } from './content-fields/hubtype-fields';
|
|
3
3
|
import { HtSmartIntentNode } from './content-fields/hubtype-fields/smart-intent';
|
|
4
4
|
import { FlowBuilderApiOptions } from './types';
|
|
5
5
|
export declare class FlowBuilderApi {
|
|
@@ -34,6 +34,7 @@ export declare class FlowBuilderApi {
|
|
|
34
34
|
getStartNodeAiAgentFlow(): HtNodeWithContent | undefined;
|
|
35
35
|
isKnowledgeBaseEnabled(): boolean;
|
|
36
36
|
isAiAgentEnabled(): boolean;
|
|
37
|
+
getWebviewById(id: string): HtFlowWebview | undefined;
|
|
37
38
|
getResolvedLocale(): string;
|
|
38
39
|
private resolveAsLocale;
|
|
39
40
|
private resolveAsLanguage;
|
package/lib/cjs/api.js
CHANGED
|
@@ -177,6 +177,9 @@ class FlowBuilderApi {
|
|
|
177
177
|
isAiAgentEnabled() {
|
|
178
178
|
return this.flow.is_ai_agent_active || false;
|
|
179
179
|
}
|
|
180
|
+
getWebviewById(id) {
|
|
181
|
+
return this.flow.webviews.find(webview => webview.id === id);
|
|
182
|
+
}
|
|
180
183
|
getResolvedLocale() {
|
|
181
184
|
const systemLocale = this.request.getSystemLocale();
|
|
182
185
|
const locale = this.resolveAsLocale(systemLocale);
|
package/lib/cjs/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":";;;;AACA,0DAAyB;AAEzB,2CAKoB;AACpB,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { Webview } from '@botonic/react';
|
|
3
3
|
import { FlowBuilderApi } from '../api';
|
|
4
4
|
import { ContentFieldsBase } from './content-fields-base';
|
|
5
|
+
import { FlowWebview } from './flow-webview';
|
|
5
6
|
import { HtButton, HtButtonStyle } from './hubtype-fields';
|
|
6
7
|
import { HtRatingButton } from './hubtype-fields/rating';
|
|
7
8
|
export declare class FlowButton extends ContentFieldsBase {
|
|
@@ -10,7 +11,10 @@ export declare class FlowButton extends ContentFieldsBase {
|
|
|
10
11
|
payload?: string;
|
|
11
12
|
target?: string;
|
|
12
13
|
webview?: Webview;
|
|
14
|
+
params?: Record<string, string>;
|
|
13
15
|
static fromHubtypeCMS(cmsButton: HtButton, locale: string, cmsApi: FlowBuilderApi): FlowButton;
|
|
16
|
+
private static getWebviewParams;
|
|
17
|
+
private static getExitSuccessContentID;
|
|
14
18
|
static fromAIAgent(button: {
|
|
15
19
|
id: string;
|
|
16
20
|
text: string;
|
|
@@ -19,6 +23,7 @@ export declare class FlowButton extends ContentFieldsBase {
|
|
|
19
23
|
}): FlowButton;
|
|
20
24
|
static fromRating(button: HtRatingButton): FlowButton;
|
|
21
25
|
static getUrlId(cmsButton: HtButton, locale: string): string | undefined;
|
|
26
|
+
static getTargetWebview(cmsApi: FlowBuilderApi, targetId: string): FlowWebview | undefined;
|
|
22
27
|
renderButton(buttonIndex: number, buttonStyle?: HtButtonStyle): JSX.Element;
|
|
23
28
|
private getButtonPayload;
|
|
24
29
|
}
|
|
@@ -5,6 +5,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
5
5
|
const react_1 = require("@botonic/react");
|
|
6
6
|
const constants_1 = require("../constants");
|
|
7
7
|
const content_fields_base_1 = require("./content-fields-base");
|
|
8
|
+
const flow_webview_1 = require("./flow-webview");
|
|
8
9
|
const hubtype_fields_1 = require("./hubtype-fields");
|
|
9
10
|
class FlowButton extends content_fields_base_1.ContentFieldsBase {
|
|
10
11
|
constructor() {
|
|
@@ -16,7 +17,15 @@ class FlowButton extends content_fields_base_1.ContentFieldsBase {
|
|
|
16
17
|
const newButton = new FlowButton(cmsButton.id);
|
|
17
18
|
newButton.text = this.getTextByLocale(locale, cmsButton.text);
|
|
18
19
|
if (cmsButton.target) {
|
|
19
|
-
|
|
20
|
+
const webview = this.getTargetWebview(cmsApi, cmsButton.target.id);
|
|
21
|
+
if (webview) {
|
|
22
|
+
const params = this.getWebviewParams(webview, cmsApi);
|
|
23
|
+
newButton.webview = { name: webview.webviewComponentName };
|
|
24
|
+
newButton.params = params;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
newButton.payload = cmsApi.getPayload(cmsButton.target);
|
|
28
|
+
}
|
|
20
29
|
}
|
|
21
30
|
if (cmsButton.url && urlId) {
|
|
22
31
|
const urlNode = cmsApi.getNodeById(urlId);
|
|
@@ -24,6 +33,26 @@ class FlowButton extends content_fields_base_1.ContentFieldsBase {
|
|
|
24
33
|
}
|
|
25
34
|
return newButton;
|
|
26
35
|
}
|
|
36
|
+
static getWebviewParams(webview, cmsApi) {
|
|
37
|
+
const params = {
|
|
38
|
+
webviewId: webview.webviewTargetId,
|
|
39
|
+
};
|
|
40
|
+
const exitSuccessContentID = this.getExitSuccessContentID(webview, cmsApi);
|
|
41
|
+
if (exitSuccessContentID) {
|
|
42
|
+
params.exitSuccessContentID = exitSuccessContentID;
|
|
43
|
+
}
|
|
44
|
+
return params;
|
|
45
|
+
}
|
|
46
|
+
static getExitSuccessContentID(webview, cmsApi) {
|
|
47
|
+
var _a, _b;
|
|
48
|
+
const webviewSuccessExit = (_a = webview.exits) === null || _a === void 0 ? void 0 : _a.find(exit => exit.name === 'Success');
|
|
49
|
+
const exitSuccessId = (_b = webviewSuccessExit === null || webviewSuccessExit === void 0 ? void 0 : webviewSuccessExit.target) === null || _b === void 0 ? void 0 : _b.id;
|
|
50
|
+
if (!exitSuccessId) {
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
const exitNode = cmsApi.getNodeById(exitSuccessId);
|
|
54
|
+
return exitNode.code;
|
|
55
|
+
}
|
|
27
56
|
static fromAIAgent(button) {
|
|
28
57
|
const newButton = new FlowButton(button.id);
|
|
29
58
|
newButton.text = button.text;
|
|
@@ -43,11 +72,18 @@ class FlowButton extends content_fields_base_1.ContentFieldsBase {
|
|
|
43
72
|
var _a;
|
|
44
73
|
return (_a = cmsButton.url.find(url => url.locale === locale)) === null || _a === void 0 ? void 0 : _a.id;
|
|
45
74
|
}
|
|
75
|
+
static getTargetWebview(cmsApi, targetId) {
|
|
76
|
+
const targetNode = cmsApi.getNodeById(targetId);
|
|
77
|
+
if (targetNode.type !== hubtype_fields_1.HtNodeWithContentType.WEBVIEW) {
|
|
78
|
+
return undefined;
|
|
79
|
+
}
|
|
80
|
+
return flow_webview_1.FlowWebview.fromHubtypeCMS(targetNode);
|
|
81
|
+
}
|
|
46
82
|
renderButton(buttonIndex, buttonStyle) {
|
|
47
83
|
if (buttonStyle === hubtype_fields_1.HtButtonStyle.QUICK_REPLY) {
|
|
48
84
|
return ((0, jsx_runtime_1.jsx)(react_1.Reply, Object.assign({ payload: this.getButtonPayload(buttonIndex) }, { children: this.text }), this.id));
|
|
49
85
|
}
|
|
50
|
-
return ((0, jsx_runtime_1.jsx)(react_1.Button, Object.assign({ url: this.url, payload: this.getButtonPayload(buttonIndex), target: this.target, webview: this.webview }, { children: this.text }), this.id));
|
|
86
|
+
return ((0, jsx_runtime_1.jsx)(react_1.Button, Object.assign({ url: this.url, payload: this.getButtonPayload(buttonIndex), target: this.target, webview: this.webview, params: this.params }, { children: this.text }), this.id));
|
|
51
87
|
}
|
|
52
88
|
getButtonPayload(buttonIndex) {
|
|
53
89
|
return this.payload
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow-button.js","sourceRoot":"","sources":["../../../src/content-fields/flow-button.tsx"],"names":[],"mappings":";;;;AAAA,0CAAuD;AAIvD,4CAAoD;AACpD,+DAAyD;AACzD,
|
|
1
|
+
{"version":3,"file":"flow-button.js","sourceRoot":"","sources":["../../../src/content-fields/flow-button.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ContentFieldsBase } from './content-fields-base';
|
|
2
|
+
import { HtWebviewExits, HtWebviewNode } from './hubtype-fields';
|
|
3
|
+
export declare class FlowWebview extends ContentFieldsBase {
|
|
4
|
+
code: string;
|
|
5
|
+
webviewTargetId: string;
|
|
6
|
+
webviewName: string;
|
|
7
|
+
webviewComponentName: string;
|
|
8
|
+
exits: HtWebviewExits[];
|
|
9
|
+
static fromHubtypeCMS(component: HtWebviewNode): FlowWebview;
|
|
10
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FlowWebview = void 0;
|
|
4
|
+
const content_fields_base_1 = require("./content-fields-base");
|
|
5
|
+
class FlowWebview extends content_fields_base_1.ContentFieldsBase {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.code = '';
|
|
9
|
+
this.webviewTargetId = '';
|
|
10
|
+
this.webviewName = '';
|
|
11
|
+
this.webviewComponentName = '';
|
|
12
|
+
this.exits = [];
|
|
13
|
+
}
|
|
14
|
+
static fromHubtypeCMS(component) {
|
|
15
|
+
const newWebview = new FlowWebview(component.id);
|
|
16
|
+
newWebview.webviewTargetId = component.content.webview_target_id;
|
|
17
|
+
newWebview.webviewName = component.content.webview_name;
|
|
18
|
+
newWebview.webviewComponentName = component.content.webview_component_name;
|
|
19
|
+
newWebview.exits = component.content.exits;
|
|
20
|
+
return newWebview;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.FlowWebview = FlowWebview;
|
|
24
|
+
//# sourceMappingURL=flow-webview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow-webview.js","sourceRoot":"","sources":["../../../src/content-fields/flow-webview.tsx"],"names":[],"mappings":";;;AAAA,+DAAyD;AAGzD,MAAa,WAAY,SAAQ,uCAAiB;IAAlD;;QACS,SAAI,GAAW,EAAE,CAAA;QACjB,oBAAe,GAAW,EAAE,CAAA;QAC5B,gBAAW,GAAW,EAAE,CAAA;QACxB,yBAAoB,GAAW,EAAE,CAAA;QACjC,UAAK,GAAqB,EAAE,CAAA;IAWrC,CAAC;IATC,MAAM,CAAC,cAAc,CAAC,SAAwB;QAC5C,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;QAChD,UAAU,CAAC,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAA;QAChE,UAAU,CAAC,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,CAAA;QACvD,UAAU,CAAC,oBAAoB,GAAG,SAAS,CAAC,OAAO,CAAC,sBAAsB,CAAA;QAC1E,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAA;QAE1C,OAAO,UAAU,CAAA;IACnB,CAAC;CACF;AAhBD,kCAgBC"}
|
|
@@ -11,12 +11,18 @@ export interface HtFlowBuilderData {
|
|
|
11
11
|
is_ai_agent_active?: boolean;
|
|
12
12
|
nodes: HtNodeComponent[];
|
|
13
13
|
flows: HtFlows[];
|
|
14
|
+
webviews: HtFlowWebview[];
|
|
14
15
|
}
|
|
15
16
|
export interface HtFlows {
|
|
16
17
|
id: string;
|
|
17
18
|
name: string;
|
|
18
19
|
start_node_id: string;
|
|
19
20
|
}
|
|
21
|
+
export interface HtFlowWebview {
|
|
22
|
+
id: string;
|
|
23
|
+
name: string;
|
|
24
|
+
component_name: string;
|
|
25
|
+
}
|
|
20
26
|
export interface HtNodeLink {
|
|
21
27
|
id: string;
|
|
22
28
|
type: HtNodeWithContentType | HtNodeWithoutContentType;
|
|
@@ -20,6 +20,7 @@ tslib_1.__exportStar(require("./smart-intent"), exports);
|
|
|
20
20
|
tslib_1.__exportStar(require("./text"), exports);
|
|
21
21
|
tslib_1.__exportStar(require("./url"), exports);
|
|
22
22
|
tslib_1.__exportStar(require("./video"), exports);
|
|
23
|
+
tslib_1.__exportStar(require("./webview"), exports);
|
|
23
24
|
tslib_1.__exportStar(require("./whatsapp-button-list"), exports);
|
|
24
25
|
tslib_1.__exportStar(require("./whatsapp-cta-url-button"), exports);
|
|
25
26
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/content-fields/hubtype-fields/index.ts"],"names":[],"mappings":";;;AAAA,uDAA4B;AAC5B,mDAAwB;AACxB,qDAA0B;AAC1B,mDAAwB;AACxB,qDAA0B;AAC1B,qDAA0B;AAC1B,uDAA4B;AAC5B,oDAAyB;AACzB,kDAAuB;AACvB,oDAAyB;AACzB,2DAAgC;AAChC,uDAA4B;AAC5B,kDAAuB;AACvB,oDAAyB;AACzB,mDAAwB;AACxB,yDAA8B;AAC9B,iDAAsB;AACtB,gDAAqB;AACrB,kDAAuB;AACvB,iEAAsC;AACtC,oEAAyC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/content-fields/hubtype-fields/index.ts"],"names":[],"mappings":";;;AAAA,uDAA4B;AAC5B,mDAAwB;AACxB,qDAA0B;AAC1B,mDAAwB;AACxB,qDAA0B;AAC1B,qDAA0B;AAC1B,uDAA4B;AAC5B,oDAAyB;AACzB,kDAAuB;AACvB,oDAAyB;AACzB,2DAAgC;AAChC,uDAA4B;AAC5B,kDAAuB;AACvB,oDAAyB;AACzB,mDAAwB;AACxB,yDAA8B;AAC9B,iDAAsB;AACtB,gDAAqB;AACrB,kDAAuB;AACvB,oDAAyB;AACzB,iEAAsC;AACtC,oEAAyC"}
|
|
@@ -13,7 +13,8 @@ export declare enum HtNodeWithContentType {
|
|
|
13
13
|
KNOWLEDGE_BASE = "knowledge-base",
|
|
14
14
|
BOT_ACTION = "bot-action",
|
|
15
15
|
AI_AGENT = "ai-agent",
|
|
16
|
-
RATING = "rating"
|
|
16
|
+
RATING = "rating",
|
|
17
|
+
WEBVIEW = "webview"
|
|
17
18
|
}
|
|
18
19
|
export declare enum HtNodeWithoutContentType {
|
|
19
20
|
URL = "url",
|
|
@@ -18,6 +18,7 @@ var HtNodeWithContentType;
|
|
|
18
18
|
HtNodeWithContentType["BOT_ACTION"] = "bot-action";
|
|
19
19
|
HtNodeWithContentType["AI_AGENT"] = "ai-agent";
|
|
20
20
|
HtNodeWithContentType["RATING"] = "rating";
|
|
21
|
+
HtNodeWithContentType["WEBVIEW"] = "webview";
|
|
21
22
|
})(HtNodeWithContentType = exports.HtNodeWithContentType || (exports.HtNodeWithContentType = {}));
|
|
22
23
|
var HtNodeWithoutContentType;
|
|
23
24
|
(function (HtNodeWithoutContentType) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-types.js","sourceRoot":"","sources":["../../../../src/content-fields/hubtype-fields/node-types.ts"],"names":[],"mappings":";;;AAAA,IAAY,
|
|
1
|
+
{"version":3,"file":"node-types.js","sourceRoot":"","sources":["../../../../src/content-fields/hubtype-fields/node-types.ts"],"names":[],"mappings":";;;AAAA,IAAY,qBAiBX;AAjBD,WAAY,qBAAqB;IAC/B,8CAAqB,CAAA;IACrB,4CAAmB,CAAA;IACnB,wCAAe,CAAA;IACf,sCAAa,CAAA;IACb,4CAAmB,CAAA;IACnB,sDAA6B,CAAA;IAC7B,8CAAqB,CAAA;IACrB,8CAAqB,CAAA;IACrB,wCAAe,CAAA;IACf,sEAA6C,CAAA;IAC7C,4EAAmD,CAAA;IACnD,0DAAiC,CAAA;IACjC,kDAAyB,CAAA;IACzB,8CAAqB,CAAA;IACrB,0CAAiB,CAAA;IACjB,4CAAmB,CAAA;AACrB,CAAC,EAjBW,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QAiBhC;AAED,IAAY,wBAIX;AAJD,WAAY,wBAAwB;IAClC,uCAAW,CAAA;IACX,+CAAmB,CAAA;IACnB,qDAAyB,CAAA;AAC3B,CAAC,EAJW,wBAAwB,GAAxB,gCAAwB,KAAxB,gCAAwB,QAInC;AAED,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,kCAAiB,CAAA;IACjB,4CAA2B,CAAA;AAC7B,CAAC,EAHW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAGxB"}
|
|
@@ -14,8 +14,9 @@ import { HtSmartIntentNode } from './smart-intent';
|
|
|
14
14
|
import { HtTextNode } from './text';
|
|
15
15
|
import { HtUrlNode } from './url';
|
|
16
16
|
import { HtVideoNode } from './video';
|
|
17
|
+
import { HtWebviewNode } from './webview';
|
|
17
18
|
import { HtWhatsappButtonListNode } from './whatsapp-button-list';
|
|
18
19
|
import { HtWhatsappCTAUrlButtonNode } from './whatsapp-cta-url-button';
|
|
19
|
-
export type HtNodeWithContent = HtTextNode | HtImageNode | HtVideoNode | HtCarouselNode | HtHandoffNode | HtKeywordNode | HtFunctionNode | HtFallbackNode | HtWhatsappButtonListNode | HtWhatsappCTAUrlButtonNode | HtSmartIntentNode | HtKnowledgeBaseNode | HtBotActionNode | HtAiAgentNode | HtRatingNode;
|
|
20
|
+
export type HtNodeWithContent = HtTextNode | HtImageNode | HtVideoNode | HtCarouselNode | HtHandoffNode | HtKeywordNode | HtFunctionNode | HtFallbackNode | HtWhatsappButtonListNode | HtWhatsappCTAUrlButtonNode | HtSmartIntentNode | HtKnowledgeBaseNode | HtBotActionNode | HtAiAgentNode | HtRatingNode | HtWebviewNode;
|
|
20
21
|
export type HtNodeWithoutContent = HtUrlNode | HtPayloadNode | HtGoToFlow;
|
|
21
22
|
export type HtNodeComponent = HtNodeWithContent | HtNodeWithoutContent;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { HtBaseNode, HtNodeLink } from './common';
|
|
2
|
+
import { HtNodeWithContentType } from './node-types';
|
|
3
|
+
export interface HtWebviewExits {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
target?: HtNodeLink;
|
|
7
|
+
}
|
|
8
|
+
export interface HtWebviewNode extends HtBaseNode {
|
|
9
|
+
type: HtNodeWithContentType.WEBVIEW;
|
|
10
|
+
content: {
|
|
11
|
+
webview_target_id: string;
|
|
12
|
+
webview_name: string;
|
|
13
|
+
webview_component_name: string;
|
|
14
|
+
exits: HtWebviewExits[];
|
|
15
|
+
};
|
|
16
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webview.js","sourceRoot":"","sources":["../../../../src/content-fields/hubtype-fields/webview.ts"],"names":[],"mappings":""}
|
|
@@ -28,9 +28,9 @@ export type MapContentsType = Record<string, string>;
|
|
|
28
28
|
export interface UseWebviewContentsProps<T extends MapContentsType> {
|
|
29
29
|
apiUrl?: string;
|
|
30
30
|
version?: FlowBuilderJSONVersion;
|
|
31
|
-
orgId: string;
|
|
32
31
|
botId: string;
|
|
33
32
|
webviewId: string;
|
|
33
|
+
providerId: string;
|
|
34
34
|
locale: string;
|
|
35
35
|
mapContents: Record<keyof T, string>;
|
|
36
36
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { MapContentsType, UseWebviewContents, UseWebviewContentsProps } from './types';
|
|
2
|
-
export declare function useWebviewContents<T extends MapContentsType>({ apiUrl, version,
|
|
2
|
+
export declare function useWebviewContents<T extends MapContentsType>({ apiUrl, version, botId, webviewId, providerId, locale, mapContents, }: UseWebviewContentsProps<T>): UseWebviewContents<T>;
|
|
@@ -7,9 +7,7 @@ const react_1 = require("react");
|
|
|
7
7
|
const constants_1 = require("../constants");
|
|
8
8
|
const types_1 = require("../types");
|
|
9
9
|
const types_2 = require("./types");
|
|
10
|
-
function useWebviewContents({ apiUrl = constants_1.FLOW_BUILDER_API_URL_PROD, version = types_1.FlowBuilderJSONVersion.LATEST,
|
|
11
|
-
// @ts-ignore
|
|
12
|
-
orgId, botId, webviewId, locale, mapContents, }) {
|
|
10
|
+
function useWebviewContents({ apiUrl = constants_1.FLOW_BUILDER_API_URL_PROD, version = types_1.FlowBuilderJSONVersion.LATEST, botId, webviewId, providerId, locale, mapContents, }) {
|
|
13
11
|
const [textContents, setTextContents] = (0, react_1.useState)();
|
|
14
12
|
const [imageContents, setImageContents] = (0, react_1.useState)();
|
|
15
13
|
const [contents, setContents] = (0, react_1.useState)({});
|
|
@@ -53,7 +51,7 @@ orgId, botId, webviewId, locale, mapContents, }) {
|
|
|
53
51
|
}, [textContents, imageContents, currentLocale]);
|
|
54
52
|
(0, react_1.useEffect)(() => {
|
|
55
53
|
const getResponseContents = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
56
|
-
const url = `${apiUrl}/v1/bot_flows/${botId}/versions/${version}/webviews/${webviewId}
|
|
54
|
+
const url = `${apiUrl}/v1/bot_flows/${botId}/versions/${version}/webviews/${webviewId}/?provider_id=${providerId}`;
|
|
57
55
|
try {
|
|
58
56
|
const response = yield axios_1.default.get(url);
|
|
59
57
|
const textResponseContents = response.data.filter(webviewContent => webviewContent.type === types_2.WebviewContentType.TEXT);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-webview-contents.js","sourceRoot":"","sources":["../../../src/webview/use-webview-contents.ts"],"names":[],"mappings":";;;;AAAA,0DAAyB;AACzB,iCAA2C;AAE3C,4CAAwD;AACxD,oCAAiD;AACjD,mCAQgB;AAEhB,SAAgB,kBAAkB,CAA4B,EAC5D,MAAM,GAAG,qCAAyB,EAClC,OAAO,GAAG,8BAAsB,CAAC,MAAM
|
|
1
|
+
{"version":3,"file":"use-webview-contents.js","sourceRoot":"","sources":["../../../src/webview/use-webview-contents.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/api.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PluginPreRequest } from '@botonic/core';
|
|
2
|
-
import { HtBotActionNode, HtFlowBuilderData, HtKeywordNode, HtNodeComponent, HtNodeLink, HtNodeWithContent, HtRatingButton, HtRatingNode } from './content-fields/hubtype-fields';
|
|
2
|
+
import { HtBotActionNode, HtFlowBuilderData, HtFlowWebview, HtKeywordNode, HtNodeComponent, HtNodeLink, HtNodeWithContent, HtRatingButton, HtRatingNode } from './content-fields/hubtype-fields';
|
|
3
3
|
import { HtSmartIntentNode } from './content-fields/hubtype-fields/smart-intent';
|
|
4
4
|
import { FlowBuilderApiOptions } from './types';
|
|
5
5
|
export declare class FlowBuilderApi {
|
|
@@ -34,6 +34,7 @@ export declare class FlowBuilderApi {
|
|
|
34
34
|
getStartNodeAiAgentFlow(): HtNodeWithContent | undefined;
|
|
35
35
|
isKnowledgeBaseEnabled(): boolean;
|
|
36
36
|
isAiAgentEnabled(): boolean;
|
|
37
|
+
getWebviewById(id: string): HtFlowWebview | undefined;
|
|
37
38
|
getResolvedLocale(): string;
|
|
38
39
|
private resolveAsLocale;
|
|
39
40
|
private resolveAsLanguage;
|
package/lib/esm/api.js
CHANGED
|
@@ -174,6 +174,9 @@ export class FlowBuilderApi {
|
|
|
174
174
|
isAiAgentEnabled() {
|
|
175
175
|
return this.flow.is_ai_agent_active || false;
|
|
176
176
|
}
|
|
177
|
+
getWebviewById(id) {
|
|
178
|
+
return this.flow.webviews.find(webview => webview.id === id);
|
|
179
|
+
}
|
|
177
180
|
getResolvedLocale() {
|
|
178
181
|
const systemLocale = this.request.getSystemLocale();
|
|
179
182
|
const locale = this.resolveAsLocale(systemLocale);
|
package/lib/esm/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,SAAS,EACT,WAAW,GACZ,MAAM,aAAa,CAAA;AACpB,OAAO,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { Webview } from '@botonic/react';
|
|
3
3
|
import { FlowBuilderApi } from '../api';
|
|
4
4
|
import { ContentFieldsBase } from './content-fields-base';
|
|
5
|
+
import { FlowWebview } from './flow-webview';
|
|
5
6
|
import { HtButton, HtButtonStyle } from './hubtype-fields';
|
|
6
7
|
import { HtRatingButton } from './hubtype-fields/rating';
|
|
7
8
|
export declare class FlowButton extends ContentFieldsBase {
|
|
@@ -10,7 +11,10 @@ export declare class FlowButton extends ContentFieldsBase {
|
|
|
10
11
|
payload?: string;
|
|
11
12
|
target?: string;
|
|
12
13
|
webview?: Webview;
|
|
14
|
+
params?: Record<string, string>;
|
|
13
15
|
static fromHubtypeCMS(cmsButton: HtButton, locale: string, cmsApi: FlowBuilderApi): FlowButton;
|
|
16
|
+
private static getWebviewParams;
|
|
17
|
+
private static getExitSuccessContentID;
|
|
14
18
|
static fromAIAgent(button: {
|
|
15
19
|
id: string;
|
|
16
20
|
text: string;
|
|
@@ -19,6 +23,7 @@ export declare class FlowButton extends ContentFieldsBase {
|
|
|
19
23
|
}): FlowButton;
|
|
20
24
|
static fromRating(button: HtRatingButton): FlowButton;
|
|
21
25
|
static getUrlId(cmsButton: HtButton, locale: string): string | undefined;
|
|
26
|
+
static getTargetWebview(cmsApi: FlowBuilderApi, targetId: string): FlowWebview | undefined;
|
|
22
27
|
renderButton(buttonIndex: number, buttonStyle?: HtButtonStyle): JSX.Element;
|
|
23
28
|
private getButtonPayload;
|
|
24
29
|
}
|
|
@@ -2,7 +2,8 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { Button, Reply } from '@botonic/react';
|
|
3
3
|
import { SOURCE_INFO_SEPARATOR } from '../constants';
|
|
4
4
|
import { ContentFieldsBase } from './content-fields-base';
|
|
5
|
-
import {
|
|
5
|
+
import { FlowWebview } from './flow-webview';
|
|
6
|
+
import { HtButtonStyle, HtNodeWithContentType, } from './hubtype-fields';
|
|
6
7
|
export class FlowButton extends ContentFieldsBase {
|
|
7
8
|
constructor() {
|
|
8
9
|
super(...arguments);
|
|
@@ -13,7 +14,15 @@ export class FlowButton extends ContentFieldsBase {
|
|
|
13
14
|
const newButton = new FlowButton(cmsButton.id);
|
|
14
15
|
newButton.text = this.getTextByLocale(locale, cmsButton.text);
|
|
15
16
|
if (cmsButton.target) {
|
|
16
|
-
|
|
17
|
+
const webview = this.getTargetWebview(cmsApi, cmsButton.target.id);
|
|
18
|
+
if (webview) {
|
|
19
|
+
const params = this.getWebviewParams(webview, cmsApi);
|
|
20
|
+
newButton.webview = { name: webview.webviewComponentName };
|
|
21
|
+
newButton.params = params;
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
newButton.payload = cmsApi.getPayload(cmsButton.target);
|
|
25
|
+
}
|
|
17
26
|
}
|
|
18
27
|
if (cmsButton.url && urlId) {
|
|
19
28
|
const urlNode = cmsApi.getNodeById(urlId);
|
|
@@ -21,6 +30,26 @@ export class FlowButton extends ContentFieldsBase {
|
|
|
21
30
|
}
|
|
22
31
|
return newButton;
|
|
23
32
|
}
|
|
33
|
+
static getWebviewParams(webview, cmsApi) {
|
|
34
|
+
const params = {
|
|
35
|
+
webviewId: webview.webviewTargetId,
|
|
36
|
+
};
|
|
37
|
+
const exitSuccessContentID = this.getExitSuccessContentID(webview, cmsApi);
|
|
38
|
+
if (exitSuccessContentID) {
|
|
39
|
+
params.exitSuccessContentID = exitSuccessContentID;
|
|
40
|
+
}
|
|
41
|
+
return params;
|
|
42
|
+
}
|
|
43
|
+
static getExitSuccessContentID(webview, cmsApi) {
|
|
44
|
+
var _a, _b;
|
|
45
|
+
const webviewSuccessExit = (_a = webview.exits) === null || _a === void 0 ? void 0 : _a.find(exit => exit.name === 'Success');
|
|
46
|
+
const exitSuccessId = (_b = webviewSuccessExit === null || webviewSuccessExit === void 0 ? void 0 : webviewSuccessExit.target) === null || _b === void 0 ? void 0 : _b.id;
|
|
47
|
+
if (!exitSuccessId) {
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
const exitNode = cmsApi.getNodeById(exitSuccessId);
|
|
51
|
+
return exitNode.code;
|
|
52
|
+
}
|
|
24
53
|
static fromAIAgent(button) {
|
|
25
54
|
const newButton = new FlowButton(button.id);
|
|
26
55
|
newButton.text = button.text;
|
|
@@ -40,11 +69,18 @@ export class FlowButton extends ContentFieldsBase {
|
|
|
40
69
|
var _a;
|
|
41
70
|
return (_a = cmsButton.url.find(url => url.locale === locale)) === null || _a === void 0 ? void 0 : _a.id;
|
|
42
71
|
}
|
|
72
|
+
static getTargetWebview(cmsApi, targetId) {
|
|
73
|
+
const targetNode = cmsApi.getNodeById(targetId);
|
|
74
|
+
if (targetNode.type !== HtNodeWithContentType.WEBVIEW) {
|
|
75
|
+
return undefined;
|
|
76
|
+
}
|
|
77
|
+
return FlowWebview.fromHubtypeCMS(targetNode);
|
|
78
|
+
}
|
|
43
79
|
renderButton(buttonIndex, buttonStyle) {
|
|
44
80
|
if (buttonStyle === HtButtonStyle.QUICK_REPLY) {
|
|
45
81
|
return (_jsx(Reply, Object.assign({ payload: this.getButtonPayload(buttonIndex) }, { children: this.text }), this.id));
|
|
46
82
|
}
|
|
47
|
-
return (_jsx(Button, Object.assign({ url: this.url, payload: this.getButtonPayload(buttonIndex), target: this.target, webview: this.webview }, { children: this.text }), this.id));
|
|
83
|
+
return (_jsx(Button, Object.assign({ url: this.url, payload: this.getButtonPayload(buttonIndex), target: this.target, webview: this.webview, params: this.params }, { children: this.text }), this.id));
|
|
48
84
|
}
|
|
49
85
|
getButtonPayload(buttonIndex) {
|
|
50
86
|
return this.payload
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow-button.js","sourceRoot":"","sources":["../../../src/content-fields/flow-button.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAW,MAAM,gBAAgB,CAAA;AAIvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,
|
|
1
|
+
{"version":3,"file":"flow-button.js","sourceRoot":"","sources":["../../../src/content-fields/flow-button.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ContentFieldsBase } from './content-fields-base';
|
|
2
|
+
import { HtWebviewExits, HtWebviewNode } from './hubtype-fields';
|
|
3
|
+
export declare class FlowWebview extends ContentFieldsBase {
|
|
4
|
+
code: string;
|
|
5
|
+
webviewTargetId: string;
|
|
6
|
+
webviewName: string;
|
|
7
|
+
webviewComponentName: string;
|
|
8
|
+
exits: HtWebviewExits[];
|
|
9
|
+
static fromHubtypeCMS(component: HtWebviewNode): FlowWebview;
|
|
10
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ContentFieldsBase } from './content-fields-base';
|
|
2
|
+
export class FlowWebview extends ContentFieldsBase {
|
|
3
|
+
constructor() {
|
|
4
|
+
super(...arguments);
|
|
5
|
+
this.code = '';
|
|
6
|
+
this.webviewTargetId = '';
|
|
7
|
+
this.webviewName = '';
|
|
8
|
+
this.webviewComponentName = '';
|
|
9
|
+
this.exits = [];
|
|
10
|
+
}
|
|
11
|
+
static fromHubtypeCMS(component) {
|
|
12
|
+
const newWebview = new FlowWebview(component.id);
|
|
13
|
+
newWebview.webviewTargetId = component.content.webview_target_id;
|
|
14
|
+
newWebview.webviewName = component.content.webview_name;
|
|
15
|
+
newWebview.webviewComponentName = component.content.webview_component_name;
|
|
16
|
+
newWebview.exits = component.content.exits;
|
|
17
|
+
return newWebview;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=flow-webview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow-webview.js","sourceRoot":"","sources":["../../../src/content-fields/flow-webview.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAGzD,MAAM,OAAO,WAAY,SAAQ,iBAAiB;IAAlD;;QACS,SAAI,GAAW,EAAE,CAAA;QACjB,oBAAe,GAAW,EAAE,CAAA;QAC5B,gBAAW,GAAW,EAAE,CAAA;QACxB,yBAAoB,GAAW,EAAE,CAAA;QACjC,UAAK,GAAqB,EAAE,CAAA;IAWrC,CAAC;IATC,MAAM,CAAC,cAAc,CAAC,SAAwB;QAC5C,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;QAChD,UAAU,CAAC,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAA;QAChE,UAAU,CAAC,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,CAAA;QACvD,UAAU,CAAC,oBAAoB,GAAG,SAAS,CAAC,OAAO,CAAC,sBAAsB,CAAA;QAC1E,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAA;QAE1C,OAAO,UAAU,CAAA;IACnB,CAAC;CACF"}
|
|
@@ -11,12 +11,18 @@ export interface HtFlowBuilderData {
|
|
|
11
11
|
is_ai_agent_active?: boolean;
|
|
12
12
|
nodes: HtNodeComponent[];
|
|
13
13
|
flows: HtFlows[];
|
|
14
|
+
webviews: HtFlowWebview[];
|
|
14
15
|
}
|
|
15
16
|
export interface HtFlows {
|
|
16
17
|
id: string;
|
|
17
18
|
name: string;
|
|
18
19
|
start_node_id: string;
|
|
19
20
|
}
|
|
21
|
+
export interface HtFlowWebview {
|
|
22
|
+
id: string;
|
|
23
|
+
name: string;
|
|
24
|
+
component_name: string;
|
|
25
|
+
}
|
|
20
26
|
export interface HtNodeLink {
|
|
21
27
|
id: string;
|
|
22
28
|
type: HtNodeWithContentType | HtNodeWithoutContentType;
|
|
@@ -17,6 +17,7 @@ export * from './smart-intent';
|
|
|
17
17
|
export * from './text';
|
|
18
18
|
export * from './url';
|
|
19
19
|
export * from './video';
|
|
20
|
+
export * from './webview';
|
|
20
21
|
export * from './whatsapp-button-list';
|
|
21
22
|
export * from './whatsapp-cta-url-button';
|
|
22
23
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/content-fields/hubtype-fields/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,QAAQ,CAAA;AACtB,cAAc,OAAO,CAAA;AACrB,cAAc,SAAS,CAAA;AACvB,cAAc,wBAAwB,CAAA;AACtC,cAAc,2BAA2B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/content-fields/hubtype-fields/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,QAAQ,CAAA;AACtB,cAAc,OAAO,CAAA;AACrB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,wBAAwB,CAAA;AACtC,cAAc,2BAA2B,CAAA"}
|
|
@@ -13,7 +13,8 @@ export declare enum HtNodeWithContentType {
|
|
|
13
13
|
KNOWLEDGE_BASE = "knowledge-base",
|
|
14
14
|
BOT_ACTION = "bot-action",
|
|
15
15
|
AI_AGENT = "ai-agent",
|
|
16
|
-
RATING = "rating"
|
|
16
|
+
RATING = "rating",
|
|
17
|
+
WEBVIEW = "webview"
|
|
17
18
|
}
|
|
18
19
|
export declare enum HtNodeWithoutContentType {
|
|
19
20
|
URL = "url",
|
|
@@ -15,6 +15,7 @@ export var HtNodeWithContentType;
|
|
|
15
15
|
HtNodeWithContentType["BOT_ACTION"] = "bot-action";
|
|
16
16
|
HtNodeWithContentType["AI_AGENT"] = "ai-agent";
|
|
17
17
|
HtNodeWithContentType["RATING"] = "rating";
|
|
18
|
+
HtNodeWithContentType["WEBVIEW"] = "webview";
|
|
18
19
|
})(HtNodeWithContentType || (HtNodeWithContentType = {}));
|
|
19
20
|
export var HtNodeWithoutContentType;
|
|
20
21
|
(function (HtNodeWithoutContentType) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-types.js","sourceRoot":"","sources":["../../../../src/content-fields/hubtype-fields/node-types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"node-types.js","sourceRoot":"","sources":["../../../../src/content-fields/hubtype-fields/node-types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,qBAiBX;AAjBD,WAAY,qBAAqB;IAC/B,8CAAqB,CAAA;IACrB,4CAAmB,CAAA;IACnB,wCAAe,CAAA;IACf,sCAAa,CAAA;IACb,4CAAmB,CAAA;IACnB,sDAA6B,CAAA;IAC7B,8CAAqB,CAAA;IACrB,8CAAqB,CAAA;IACrB,wCAAe,CAAA;IACf,sEAA6C,CAAA;IAC7C,4EAAmD,CAAA;IACnD,0DAAiC,CAAA;IACjC,kDAAyB,CAAA;IACzB,8CAAqB,CAAA;IACrB,0CAAiB,CAAA;IACjB,4CAAmB,CAAA;AACrB,CAAC,EAjBW,qBAAqB,KAArB,qBAAqB,QAiBhC;AAED,MAAM,CAAN,IAAY,wBAIX;AAJD,WAAY,wBAAwB;IAClC,uCAAW,CAAA;IACX,+CAAmB,CAAA;IACnB,qDAAyB,CAAA;AAC3B,CAAC,EAJW,wBAAwB,KAAxB,wBAAwB,QAInC;AAED,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,kCAAiB,CAAA;IACjB,4CAA2B,CAAA;AAC7B,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB"}
|
|
@@ -14,8 +14,9 @@ import { HtSmartIntentNode } from './smart-intent';
|
|
|
14
14
|
import { HtTextNode } from './text';
|
|
15
15
|
import { HtUrlNode } from './url';
|
|
16
16
|
import { HtVideoNode } from './video';
|
|
17
|
+
import { HtWebviewNode } from './webview';
|
|
17
18
|
import { HtWhatsappButtonListNode } from './whatsapp-button-list';
|
|
18
19
|
import { HtWhatsappCTAUrlButtonNode } from './whatsapp-cta-url-button';
|
|
19
|
-
export type HtNodeWithContent = HtTextNode | HtImageNode | HtVideoNode | HtCarouselNode | HtHandoffNode | HtKeywordNode | HtFunctionNode | HtFallbackNode | HtWhatsappButtonListNode | HtWhatsappCTAUrlButtonNode | HtSmartIntentNode | HtKnowledgeBaseNode | HtBotActionNode | HtAiAgentNode | HtRatingNode;
|
|
20
|
+
export type HtNodeWithContent = HtTextNode | HtImageNode | HtVideoNode | HtCarouselNode | HtHandoffNode | HtKeywordNode | HtFunctionNode | HtFallbackNode | HtWhatsappButtonListNode | HtWhatsappCTAUrlButtonNode | HtSmartIntentNode | HtKnowledgeBaseNode | HtBotActionNode | HtAiAgentNode | HtRatingNode | HtWebviewNode;
|
|
20
21
|
export type HtNodeWithoutContent = HtUrlNode | HtPayloadNode | HtGoToFlow;
|
|
21
22
|
export type HtNodeComponent = HtNodeWithContent | HtNodeWithoutContent;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { HtBaseNode, HtNodeLink } from './common';
|
|
2
|
+
import { HtNodeWithContentType } from './node-types';
|
|
3
|
+
export interface HtWebviewExits {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
target?: HtNodeLink;
|
|
7
|
+
}
|
|
8
|
+
export interface HtWebviewNode extends HtBaseNode {
|
|
9
|
+
type: HtNodeWithContentType.WEBVIEW;
|
|
10
|
+
content: {
|
|
11
|
+
webview_target_id: string;
|
|
12
|
+
webview_name: string;
|
|
13
|
+
webview_component_name: string;
|
|
14
|
+
exits: HtWebviewExits[];
|
|
15
|
+
};
|
|
16
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webview.js","sourceRoot":"","sources":["../../../../src/content-fields/hubtype-fields/webview.ts"],"names":[],"mappings":""}
|
|
@@ -28,9 +28,9 @@ export type MapContentsType = Record<string, string>;
|
|
|
28
28
|
export interface UseWebviewContentsProps<T extends MapContentsType> {
|
|
29
29
|
apiUrl?: string;
|
|
30
30
|
version?: FlowBuilderJSONVersion;
|
|
31
|
-
orgId: string;
|
|
32
31
|
botId: string;
|
|
33
32
|
webviewId: string;
|
|
33
|
+
providerId: string;
|
|
34
34
|
locale: string;
|
|
35
35
|
mapContents: Record<keyof T, string>;
|
|
36
36
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { MapContentsType, UseWebviewContents, UseWebviewContentsProps } from './types';
|
|
2
|
-
export declare function useWebviewContents<T extends MapContentsType>({ apiUrl, version,
|
|
2
|
+
export declare function useWebviewContents<T extends MapContentsType>({ apiUrl, version, botId, webviewId, providerId, locale, mapContents, }: UseWebviewContentsProps<T>): UseWebviewContents<T>;
|
|
@@ -4,9 +4,7 @@ import { useEffect, useState } from 'react';
|
|
|
4
4
|
import { FLOW_BUILDER_API_URL_PROD } from '../constants';
|
|
5
5
|
import { FlowBuilderJSONVersion } from '../types';
|
|
6
6
|
import { WebviewContentType, } from './types';
|
|
7
|
-
export function useWebviewContents({ apiUrl = FLOW_BUILDER_API_URL_PROD, version = FlowBuilderJSONVersion.LATEST,
|
|
8
|
-
// @ts-ignore
|
|
9
|
-
orgId, botId, webviewId, locale, mapContents, }) {
|
|
7
|
+
export function useWebviewContents({ apiUrl = FLOW_BUILDER_API_URL_PROD, version = FlowBuilderJSONVersion.LATEST, botId, webviewId, providerId, locale, mapContents, }) {
|
|
10
8
|
const [textContents, setTextContents] = useState();
|
|
11
9
|
const [imageContents, setImageContents] = useState();
|
|
12
10
|
const [contents, setContents] = useState({});
|
|
@@ -50,7 +48,7 @@ orgId, botId, webviewId, locale, mapContents, }) {
|
|
|
50
48
|
}, [textContents, imageContents, currentLocale]);
|
|
51
49
|
useEffect(() => {
|
|
52
50
|
const getResponseContents = () => __awaiter(this, void 0, void 0, function* () {
|
|
53
|
-
const url = `${apiUrl}/v1/bot_flows/${botId}/versions/${version}/webviews/${webviewId}
|
|
51
|
+
const url = `${apiUrl}/v1/bot_flows/${botId}/versions/${version}/webviews/${webviewId}/?provider_id=${providerId}`;
|
|
54
52
|
try {
|
|
55
53
|
const response = yield axios.get(url);
|
|
56
54
|
const textResponseContents = response.data.filter(webviewContent => webviewContent.type === WebviewContentType.TEXT);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-webview-contents.js","sourceRoot":"","sources":["../../../src/webview/use-webview-contents.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,EAKL,kBAAkB,GAGnB,MAAM,SAAS,CAAA;AAEhB,MAAM,UAAU,kBAAkB,CAA4B,EAC5D,MAAM,GAAG,yBAAyB,EAClC,OAAO,GAAG,sBAAsB,CAAC,MAAM
|
|
1
|
+
{"version":3,"file":"use-webview-contents.js","sourceRoot":"","sources":["../../../src/webview/use-webview-contents.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@botonic/plugin-flow-builder",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.39.0-alpha.1",
|
|
4
4
|
"main": "./lib/cjs/index.js",
|
|
5
5
|
"module": "./lib/esm/index.js",
|
|
6
6
|
"description": "Use Flow Builder to show your contents",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"lint_core": "../../node_modules/.bin/eslint_d --cache --quiet 'src/**/*.ts*'"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@botonic/react": "
|
|
17
|
+
"@botonic/react": "0.39.0-alpha.1",
|
|
18
18
|
"axios": "^1.10.0",
|
|
19
19
|
"uuid": "^10.0.0"
|
|
20
20
|
},
|
package/src/api.ts
CHANGED
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
HtBotActionNode,
|
|
12
12
|
HtFallbackNode,
|
|
13
13
|
HtFlowBuilderData,
|
|
14
|
+
HtFlowWebview,
|
|
14
15
|
HtGoToFlow,
|
|
15
16
|
HtKeywordNode,
|
|
16
17
|
HtNodeComponent,
|
|
@@ -255,6 +256,10 @@ export class FlowBuilderApi {
|
|
|
255
256
|
return this.flow.is_ai_agent_active || false
|
|
256
257
|
}
|
|
257
258
|
|
|
259
|
+
getWebviewById(id: string): HtFlowWebview | undefined {
|
|
260
|
+
return this.flow.webviews.find(webview => webview.id === id)
|
|
261
|
+
}
|
|
262
|
+
|
|
258
263
|
getResolvedLocale(): string {
|
|
259
264
|
const systemLocale = this.request.getSystemLocale()
|
|
260
265
|
|
|
@@ -4,7 +4,14 @@ import React from 'react'
|
|
|
4
4
|
import { FlowBuilderApi } from '../api'
|
|
5
5
|
import { SOURCE_INFO_SEPARATOR } from '../constants'
|
|
6
6
|
import { ContentFieldsBase } from './content-fields-base'
|
|
7
|
-
import {
|
|
7
|
+
import { FlowWebview } from './flow-webview'
|
|
8
|
+
import {
|
|
9
|
+
HtButton,
|
|
10
|
+
HtButtonStyle,
|
|
11
|
+
HtNodeWithContent,
|
|
12
|
+
HtNodeWithContentType,
|
|
13
|
+
HtUrlNode,
|
|
14
|
+
} from './hubtype-fields'
|
|
8
15
|
import { HtRatingButton } from './hubtype-fields/rating'
|
|
9
16
|
|
|
10
17
|
export class FlowButton extends ContentFieldsBase {
|
|
@@ -13,6 +20,7 @@ export class FlowButton extends ContentFieldsBase {
|
|
|
13
20
|
public payload?: string
|
|
14
21
|
public target?: string
|
|
15
22
|
public webview?: Webview
|
|
23
|
+
public params?: Record<string, string>
|
|
16
24
|
|
|
17
25
|
static fromHubtypeCMS(
|
|
18
26
|
cmsButton: HtButton,
|
|
@@ -24,7 +32,14 @@ export class FlowButton extends ContentFieldsBase {
|
|
|
24
32
|
const newButton = new FlowButton(cmsButton.id)
|
|
25
33
|
newButton.text = this.getTextByLocale(locale, cmsButton.text)
|
|
26
34
|
if (cmsButton.target) {
|
|
27
|
-
|
|
35
|
+
const webview = this.getTargetWebview(cmsApi, cmsButton.target.id)
|
|
36
|
+
if (webview) {
|
|
37
|
+
const params = this.getWebviewParams(webview, cmsApi)
|
|
38
|
+
newButton.webview = { name: webview.webviewComponentName }
|
|
39
|
+
newButton.params = params
|
|
40
|
+
} else {
|
|
41
|
+
newButton.payload = cmsApi.getPayload(cmsButton.target)
|
|
42
|
+
}
|
|
28
43
|
}
|
|
29
44
|
|
|
30
45
|
if (cmsButton.url && urlId) {
|
|
@@ -35,6 +50,38 @@ export class FlowButton extends ContentFieldsBase {
|
|
|
35
50
|
return newButton
|
|
36
51
|
}
|
|
37
52
|
|
|
53
|
+
private static getWebviewParams(
|
|
54
|
+
webview: FlowWebview,
|
|
55
|
+
cmsApi: FlowBuilderApi
|
|
56
|
+
) {
|
|
57
|
+
const params: Record<string, string> = {
|
|
58
|
+
webviewId: webview.webviewTargetId,
|
|
59
|
+
}
|
|
60
|
+
const exitSuccessContentID = this.getExitSuccessContentID(webview, cmsApi)
|
|
61
|
+
|
|
62
|
+
if (exitSuccessContentID) {
|
|
63
|
+
params.exitSuccessContentID = exitSuccessContentID
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
return params
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
private static getExitSuccessContentID(
|
|
70
|
+
webview: FlowWebview,
|
|
71
|
+
cmsApi: FlowBuilderApi
|
|
72
|
+
) {
|
|
73
|
+
const webviewSuccessExit = webview.exits?.find(
|
|
74
|
+
exit => exit.name === 'Success'
|
|
75
|
+
)
|
|
76
|
+
const exitSuccessId = webviewSuccessExit?.target?.id
|
|
77
|
+
if (!exitSuccessId) {
|
|
78
|
+
return undefined
|
|
79
|
+
}
|
|
80
|
+
const exitNode = cmsApi.getNodeById<HtNodeWithContent>(exitSuccessId)
|
|
81
|
+
|
|
82
|
+
return exitNode.code
|
|
83
|
+
}
|
|
84
|
+
|
|
38
85
|
static fromAIAgent(button: {
|
|
39
86
|
id: string
|
|
40
87
|
text: string
|
|
@@ -60,6 +107,17 @@ export class FlowButton extends ContentFieldsBase {
|
|
|
60
107
|
return cmsButton.url.find(url => url.locale === locale)?.id
|
|
61
108
|
}
|
|
62
109
|
|
|
110
|
+
static getTargetWebview(
|
|
111
|
+
cmsApi: FlowBuilderApi,
|
|
112
|
+
targetId: string
|
|
113
|
+
): FlowWebview | undefined {
|
|
114
|
+
const targetNode = cmsApi.getNodeById(targetId)
|
|
115
|
+
if (targetNode.type !== HtNodeWithContentType.WEBVIEW) {
|
|
116
|
+
return undefined
|
|
117
|
+
}
|
|
118
|
+
return FlowWebview.fromHubtypeCMS(targetNode)
|
|
119
|
+
}
|
|
120
|
+
|
|
63
121
|
renderButton(buttonIndex: number, buttonStyle?: HtButtonStyle): JSX.Element {
|
|
64
122
|
if (buttonStyle === HtButtonStyle.QUICK_REPLY) {
|
|
65
123
|
return (
|
|
@@ -68,6 +126,7 @@ export class FlowButton extends ContentFieldsBase {
|
|
|
68
126
|
</Reply>
|
|
69
127
|
)
|
|
70
128
|
}
|
|
129
|
+
|
|
71
130
|
return (
|
|
72
131
|
<Button
|
|
73
132
|
key={this.id}
|
|
@@ -75,6 +134,7 @@ export class FlowButton extends ContentFieldsBase {
|
|
|
75
134
|
payload={this.getButtonPayload(buttonIndex)}
|
|
76
135
|
target={this.target}
|
|
77
136
|
webview={this.webview}
|
|
137
|
+
params={this.params}
|
|
78
138
|
>
|
|
79
139
|
{this.text}
|
|
80
140
|
</Button>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ContentFieldsBase } from './content-fields-base'
|
|
2
|
+
import { HtWebviewExits, HtWebviewNode } from './hubtype-fields'
|
|
3
|
+
|
|
4
|
+
export class FlowWebview extends ContentFieldsBase {
|
|
5
|
+
public code: string = ''
|
|
6
|
+
public webviewTargetId: string = ''
|
|
7
|
+
public webviewName: string = ''
|
|
8
|
+
public webviewComponentName: string = ''
|
|
9
|
+
public exits: HtWebviewExits[] = []
|
|
10
|
+
|
|
11
|
+
static fromHubtypeCMS(component: HtWebviewNode): FlowWebview {
|
|
12
|
+
const newWebview = new FlowWebview(component.id)
|
|
13
|
+
newWebview.webviewTargetId = component.content.webview_target_id
|
|
14
|
+
newWebview.webviewName = component.content.webview_name
|
|
15
|
+
newWebview.webviewComponentName = component.content.webview_component_name
|
|
16
|
+
newWebview.exits = component.content.exits
|
|
17
|
+
|
|
18
|
+
return newWebview
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -12,6 +12,7 @@ export interface HtFlowBuilderData {
|
|
|
12
12
|
is_ai_agent_active?: boolean
|
|
13
13
|
nodes: HtNodeComponent[]
|
|
14
14
|
flows: HtFlows[]
|
|
15
|
+
webviews: HtFlowWebview[]
|
|
15
16
|
}
|
|
16
17
|
|
|
17
18
|
export interface HtFlows {
|
|
@@ -20,6 +21,12 @@ export interface HtFlows {
|
|
|
20
21
|
start_node_id: string
|
|
21
22
|
}
|
|
22
23
|
|
|
24
|
+
export interface HtFlowWebview {
|
|
25
|
+
id: string
|
|
26
|
+
name: string
|
|
27
|
+
component_name: string
|
|
28
|
+
}
|
|
29
|
+
|
|
23
30
|
export interface HtNodeLink {
|
|
24
31
|
id: string
|
|
25
32
|
type: HtNodeWithContentType | HtNodeWithoutContentType
|
|
@@ -14,6 +14,7 @@ import { HtSmartIntentNode } from './smart-intent'
|
|
|
14
14
|
import { HtTextNode } from './text'
|
|
15
15
|
import { HtUrlNode } from './url'
|
|
16
16
|
import { HtVideoNode } from './video'
|
|
17
|
+
import { HtWebviewNode } from './webview'
|
|
17
18
|
import { HtWhatsappButtonListNode } from './whatsapp-button-list'
|
|
18
19
|
import { HtWhatsappCTAUrlButtonNode } from './whatsapp-cta-url-button'
|
|
19
20
|
|
|
@@ -33,6 +34,7 @@ export type HtNodeWithContent =
|
|
|
33
34
|
| HtBotActionNode
|
|
34
35
|
| HtAiAgentNode
|
|
35
36
|
| HtRatingNode
|
|
37
|
+
| HtWebviewNode
|
|
36
38
|
|
|
37
39
|
export type HtNodeWithoutContent = HtUrlNode | HtPayloadNode | HtGoToFlow
|
|
38
40
|
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { HtBaseNode, HtNodeLink } from './common'
|
|
2
|
+
import { HtNodeWithContentType } from './node-types'
|
|
3
|
+
|
|
4
|
+
export interface HtWebviewExits {
|
|
5
|
+
id: string
|
|
6
|
+
name: string
|
|
7
|
+
target?: HtNodeLink
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface HtWebviewNode extends HtBaseNode {
|
|
11
|
+
type: HtNodeWithContentType.WEBVIEW
|
|
12
|
+
content: {
|
|
13
|
+
webview_target_id: string
|
|
14
|
+
webview_name: string
|
|
15
|
+
webview_component_name: string
|
|
16
|
+
exits: HtWebviewExits[]
|
|
17
|
+
}
|
|
18
|
+
}
|
package/src/webview/types.ts
CHANGED
|
@@ -31,9 +31,9 @@ export type MapContentsType = Record<string, string>
|
|
|
31
31
|
export interface UseWebviewContentsProps<T extends MapContentsType> {
|
|
32
32
|
apiUrl?: string
|
|
33
33
|
version?: FlowBuilderJSONVersion
|
|
34
|
-
orgId: string
|
|
35
34
|
botId: string
|
|
36
35
|
webviewId: string
|
|
36
|
+
providerId: string
|
|
37
37
|
locale: string
|
|
38
38
|
mapContents: Record<keyof T, string>
|
|
39
39
|
}
|
|
@@ -16,10 +16,9 @@ import {
|
|
|
16
16
|
export function useWebviewContents<T extends MapContentsType>({
|
|
17
17
|
apiUrl = FLOW_BUILDER_API_URL_PROD,
|
|
18
18
|
version = FlowBuilderJSONVersion.LATEST,
|
|
19
|
-
// @ts-ignore
|
|
20
|
-
orgId,
|
|
21
19
|
botId,
|
|
22
20
|
webviewId,
|
|
21
|
+
providerId,
|
|
23
22
|
locale,
|
|
24
23
|
mapContents,
|
|
25
24
|
}: UseWebviewContentsProps<T>): UseWebviewContents<T> {
|
|
@@ -85,7 +84,7 @@ export function useWebviewContents<T extends MapContentsType>({
|
|
|
85
84
|
|
|
86
85
|
useEffect(() => {
|
|
87
86
|
const getResponseContents = async () => {
|
|
88
|
-
const url = `${apiUrl}/v1/bot_flows/${botId}/versions/${version}/webviews/${webviewId}
|
|
87
|
+
const url = `${apiUrl}/v1/bot_flows/${botId}/versions/${version}/webviews/${webviewId}/?provider_id=${providerId}`
|
|
89
88
|
try {
|
|
90
89
|
const response = await axios.get<WebviewContentsResponse>(url)
|
|
91
90
|
|