@botonic/plugin-flow-builder 0.22.4-alpha.1 → 0.22.4-alpha.3
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/action/index.js +9 -15
- package/lib/cjs/action/index.js.map +1 -1
- package/lib/cjs/action/keyword.d.ts +2 -1
- package/lib/cjs/action/keyword.js +5 -5
- package/lib/cjs/action/keyword.js.map +1 -1
- package/lib/esm/action/index.js +9 -15
- package/lib/esm/action/index.js.map +1 -1
- package/lib/esm/action/keyword.d.ts +2 -1
- package/lib/esm/action/keyword.js +5 -5
- package/lib/esm/action/keyword.js.map +1 -1
- package/package.json +1 -1
- package/src/action/index.tsx +13 -14
- package/src/action/keyword.ts +7 -6
- package/src/content-fields/flow-handoff.tsx +1 -1
package/lib/cjs/action/index.js
CHANGED
|
@@ -15,13 +15,10 @@ class FlowBuilderAction extends react_2.default.Component {
|
|
|
15
15
|
const locale = flowBuilderPlugin.getLocale(request.session);
|
|
16
16
|
const targetNode = await getTargetNode(flowBuilderPlugin.cmsApi, locale, request);
|
|
17
17
|
const contents = await flowBuilderPlugin.getContentsByNode(targetNode, locale);
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
return true;
|
|
24
|
-
});
|
|
18
|
+
const handoffContent = contents.find(content => content instanceof content_fields_1.FlowHandoff);
|
|
19
|
+
if (handoffContent)
|
|
20
|
+
await handoffContent.doHandoff(request);
|
|
21
|
+
const renderContents = contents.filter(content => content instanceof content_fields_1.FlowHandoff ? false : true);
|
|
25
22
|
return { contents: renderContents };
|
|
26
23
|
}
|
|
27
24
|
render() {
|
|
@@ -40,13 +37,9 @@ class FlowBuilderMultichannelAction extends FlowBuilderAction {
|
|
|
40
37
|
exports.FlowBuilderMultichannelAction = FlowBuilderMultichannelAction;
|
|
41
38
|
async function getTargetNode(cmsApi, locale, request) {
|
|
42
39
|
const contentId = request.input.payload;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
targetNode = cmsApi.getNodeById(contentId);
|
|
49
|
-
}
|
|
40
|
+
const targetNode = !contentId
|
|
41
|
+
? await (0, user_input_1.getNodeByUserInput)(cmsApi, locale, request)
|
|
42
|
+
: cmsApi.getNodeById(contentId);
|
|
50
43
|
if (targetNode) {
|
|
51
44
|
const event = {
|
|
52
45
|
event_type: types_1.EventName.botFaq,
|
|
@@ -60,7 +53,8 @@ async function getTargetNode(cmsApi, locale, request) {
|
|
|
60
53
|
return await getFallbackNode(cmsApi, request);
|
|
61
54
|
}
|
|
62
55
|
async function getFallbackNode(cmsApi, request) {
|
|
63
|
-
|
|
56
|
+
var _a;
|
|
57
|
+
const isFirstFallbackOption = (_a = request.session.user.extra_data.isFirstFallbackOption) !== null && _a !== void 0 ? _a : true;
|
|
64
58
|
const fallbackNode = cmsApi.getFallbackNode(isFirstFallbackOption);
|
|
65
59
|
request.session.user.extra_data.isFirstFallbackOption = !isFirstFallbackOption;
|
|
66
60
|
const event = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/action/index.tsx"],"names":[],"mappings":";;;;AAAA,2EAIwD;AACxD,0CAA4E;AAC5E,0DAAyB;AAGzB,sDAA4D;AAE5D,wCAAiD;AACjD,yCAAuC;AACvC,6CAAiD;AAMjD,MAAa,iBAAkB,SAAQ,eAAK,CAAC,SAAiC;IAG5E,MAAM,CAAC,KAAK,CAAC,WAAW,CACtB,OAAsB;QAEtB,MAAM,iBAAiB,GAAG,IAAA,8BAAoB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC/D,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAE3D,MAAM,UAAU,GAAG,MAAM,aAAa,CACpC,iBAAiB,CAAC,MAAM,EACxB,MAAM,EACN,OAAO,CACR,CAAA;QAED,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,iBAAiB,CACxD,UAAU,EACV,MAAM,CACP,CAAA;QAED,MAAM,cAAc,GAAG,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/action/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { ActionRequest } from '@botonic/react';
|
|
2
2
|
import { FlowBuilderApi } from '../api';
|
|
3
|
-
|
|
3
|
+
import { HtNodeWithContent } from '../content-fields/hubtype-fields';
|
|
4
|
+
export declare function getNodeByKeyword(cmsApi: FlowBuilderApi, locale: string, request: ActionRequest, userInput: string): Promise<HtNodeWithContent | undefined>;
|
|
@@ -5,17 +5,17 @@ const types_1 = require("@botonic/plugin-hubtype-analytics/lib/cjs/types");
|
|
|
5
5
|
const tracking_1 = require("./tracking");
|
|
6
6
|
async function getNodeByKeyword(cmsApi, locale, request, userInput) {
|
|
7
7
|
const keywordNode = cmsApi.getNodeByKeyword(userInput, locale);
|
|
8
|
+
if (!keywordNode) {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
8
11
|
const eventBotKeywordModel = {
|
|
9
12
|
event_type: types_1.EventName.botKeywordsModel,
|
|
10
13
|
event_data: {
|
|
11
14
|
confidence_successful: true,
|
|
12
15
|
},
|
|
13
16
|
};
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
return keywordNode;
|
|
17
|
-
}
|
|
18
|
-
return undefined;
|
|
17
|
+
await (0, tracking_1.trackEvent)(request, eventBotKeywordModel);
|
|
18
|
+
return keywordNode;
|
|
19
19
|
}
|
|
20
20
|
exports.getNodeByKeyword = getNodeByKeyword;
|
|
21
21
|
//# sourceMappingURL=keyword.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyword.js","sourceRoot":"","sources":["../../../src/action/keyword.ts"],"names":[],"mappings":";;;AAAA,2EAGwD;
|
|
1
|
+
{"version":3,"file":"keyword.js","sourceRoot":"","sources":["../../../src/action/keyword.ts"],"names":[],"mappings":";;;AAAA,2EAGwD;AAKxD,yCAAuC;AAEhC,KAAK,UAAU,gBAAgB,CACpC,MAAsB,EACtB,MAAc,EACd,OAAsB,EACtB,SAAiB;IAEjB,MAAM,WAAW,GAAG,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAC9D,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,SAAS,CAAA;KACjB;IACD,MAAM,oBAAoB,GAAyB;QACjD,UAAU,EAAE,iBAAS,CAAC,gBAAgB;QACtC,UAAU,EAAE;YACV,qBAAqB,EAAE,IAAI;SAC5B;KACF,CAAA;IACD,MAAM,IAAA,qBAAU,EAAC,OAAO,EAAE,oBAAoB,CAAC,CAAA;IAC/C,OAAO,WAAW,CAAA;AACpB,CAAC;AAlBD,4CAkBC"}
|
package/lib/esm/action/index.js
CHANGED
|
@@ -11,13 +11,10 @@ export class FlowBuilderAction extends React.Component {
|
|
|
11
11
|
const locale = flowBuilderPlugin.getLocale(request.session);
|
|
12
12
|
const targetNode = await getTargetNode(flowBuilderPlugin.cmsApi, locale, request);
|
|
13
13
|
const contents = await flowBuilderPlugin.getContentsByNode(targetNode, locale);
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
return true;
|
|
20
|
-
});
|
|
14
|
+
const handoffContent = contents.find(content => content instanceof FlowHandoff);
|
|
15
|
+
if (handoffContent)
|
|
16
|
+
await handoffContent.doHandoff(request);
|
|
17
|
+
const renderContents = contents.filter(content => content instanceof FlowHandoff ? false : true);
|
|
21
18
|
return { contents: renderContents };
|
|
22
19
|
}
|
|
23
20
|
render() {
|
|
@@ -34,13 +31,9 @@ export class FlowBuilderMultichannelAction extends FlowBuilderAction {
|
|
|
34
31
|
}
|
|
35
32
|
async function getTargetNode(cmsApi, locale, request) {
|
|
36
33
|
const contentId = request.input.payload;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
targetNode = cmsApi.getNodeById(contentId);
|
|
43
|
-
}
|
|
34
|
+
const targetNode = !contentId
|
|
35
|
+
? await getNodeByUserInput(cmsApi, locale, request)
|
|
36
|
+
: cmsApi.getNodeById(contentId);
|
|
44
37
|
if (targetNode) {
|
|
45
38
|
const event = {
|
|
46
39
|
event_type: EventName.botFaq,
|
|
@@ -54,7 +47,8 @@ async function getTargetNode(cmsApi, locale, request) {
|
|
|
54
47
|
return await getFallbackNode(cmsApi, request);
|
|
55
48
|
}
|
|
56
49
|
async function getFallbackNode(cmsApi, request) {
|
|
57
|
-
|
|
50
|
+
var _a;
|
|
51
|
+
const isFirstFallbackOption = (_a = request.session.user.extra_data.isFirstFallbackOption) !== null && _a !== void 0 ? _a : true;
|
|
58
52
|
const fallbackNode = cmsApi.getFallbackNode(isFirstFallbackOption);
|
|
59
53
|
request.session.user.extra_data.isFirstFallbackOption = !isFirstFallbackOption;
|
|
60
54
|
const event = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/action/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,SAAS,GACV,MAAM,iDAAiD,CAAA;AACxD,OAAO,EAAiB,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC5E,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,EAAe,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAMjD,MAAM,OAAO,iBAAkB,SAAQ,KAAK,CAAC,SAAiC;IAG5E,MAAM,CAAC,KAAK,CAAC,WAAW,CACtB,OAAsB;QAEtB,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC/D,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAE3D,MAAM,UAAU,GAAG,MAAM,aAAa,CACpC,iBAAiB,CAAC,MAAM,EACxB,MAAM,EACN,OAAO,CACR,CAAA;QAED,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,iBAAiB,CACxD,UAAU,EACV,MAAM,CACP,CAAA;QAED,MAAM,cAAc,GAAG,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/action/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { ActionRequest } from '@botonic/react';
|
|
2
2
|
import { FlowBuilderApi } from '../api';
|
|
3
|
-
|
|
3
|
+
import { HtNodeWithContent } from '../content-fields/hubtype-fields';
|
|
4
|
+
export declare function getNodeByKeyword(cmsApi: FlowBuilderApi, locale: string, request: ActionRequest, userInput: string): Promise<HtNodeWithContent | undefined>;
|
|
@@ -2,16 +2,16 @@ import { EventName, } from '@botonic/plugin-hubtype-analytics/lib/cjs/types';
|
|
|
2
2
|
import { trackEvent } from './tracking';
|
|
3
3
|
export async function getNodeByKeyword(cmsApi, locale, request, userInput) {
|
|
4
4
|
const keywordNode = cmsApi.getNodeByKeyword(userInput, locale);
|
|
5
|
+
if (!keywordNode) {
|
|
6
|
+
return undefined;
|
|
7
|
+
}
|
|
5
8
|
const eventBotKeywordModel = {
|
|
6
9
|
event_type: EventName.botKeywordsModel,
|
|
7
10
|
event_data: {
|
|
8
11
|
confidence_successful: true,
|
|
9
12
|
},
|
|
10
13
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
return keywordNode;
|
|
14
|
-
}
|
|
15
|
-
return undefined;
|
|
14
|
+
await trackEvent(request, eventBotKeywordModel);
|
|
15
|
+
return keywordNode;
|
|
16
16
|
}
|
|
17
17
|
//# sourceMappingURL=keyword.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyword.js","sourceRoot":"","sources":["../../../src/action/keyword.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,GACV,MAAM,iDAAiD,CAAA;
|
|
1
|
+
{"version":3,"file":"keyword.js","sourceRoot":"","sources":["../../../src/action/keyword.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,GACV,MAAM,iDAAiD,CAAA;AAKxD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAEvC,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAsB,EACtB,MAAc,EACd,OAAsB,EACtB,SAAiB;IAEjB,MAAM,WAAW,GAAG,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAC9D,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,SAAS,CAAA;KACjB;IACD,MAAM,oBAAoB,GAAyB;QACjD,UAAU,EAAE,SAAS,CAAC,gBAAgB;QACtC,UAAU,EAAE;YACV,qBAAqB,EAAE,IAAI;SAC5B;KACF,CAAA;IACD,MAAM,UAAU,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAA;IAC/C,OAAO,WAAW,CAAA;AACpB,CAAC"}
|
package/package.json
CHANGED
package/src/action/index.tsx
CHANGED
|
@@ -37,13 +37,14 @@ export class FlowBuilderAction extends React.Component<FlowBuilderActionProps> {
|
|
|
37
37
|
locale
|
|
38
38
|
)
|
|
39
39
|
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
40
|
+
const handoffContent = contents.find(
|
|
41
|
+
content => content instanceof FlowHandoff
|
|
42
|
+
) as FlowHandoff
|
|
43
|
+
if (handoffContent) await handoffContent.doHandoff(request)
|
|
44
|
+
|
|
45
|
+
const renderContents = contents.filter(content =>
|
|
46
|
+
content instanceof FlowHandoff ? false : true
|
|
47
|
+
)
|
|
47
48
|
|
|
48
49
|
return { contents: renderContents }
|
|
49
50
|
}
|
|
@@ -71,12 +72,10 @@ async function getTargetNode(
|
|
|
71
72
|
request: ActionRequest
|
|
72
73
|
) {
|
|
73
74
|
const contentId = request.input.payload
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
targetNode = cmsApi.getNodeById(contentId) as HtNodeWithContent
|
|
79
|
-
}
|
|
75
|
+
const targetNode = !contentId
|
|
76
|
+
? await getNodeByUserInput(cmsApi, locale, request)
|
|
77
|
+
: (cmsApi.getNodeById(contentId) as HtNodeWithContent)
|
|
78
|
+
|
|
80
79
|
if (targetNode) {
|
|
81
80
|
const event: EventBotFaq = {
|
|
82
81
|
event_type: EventName.botFaq,
|
|
@@ -92,7 +91,7 @@ async function getTargetNode(
|
|
|
92
91
|
|
|
93
92
|
async function getFallbackNode(cmsApi: FlowBuilderApi, request: ActionRequest) {
|
|
94
93
|
const isFirstFallbackOption =
|
|
95
|
-
request.session.user.extra_data.isFirstFallbackOption
|
|
94
|
+
request.session.user.extra_data.isFirstFallbackOption ?? true
|
|
96
95
|
const fallbackNode = cmsApi.getFallbackNode(isFirstFallbackOption)
|
|
97
96
|
request.session.user.extra_data.isFirstFallbackOption = !isFirstFallbackOption
|
|
98
97
|
|
package/src/action/keyword.ts
CHANGED
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
import { ActionRequest } from '@botonic/react'
|
|
6
6
|
|
|
7
7
|
import { FlowBuilderApi } from '../api'
|
|
8
|
+
import { HtNodeWithContent } from '../content-fields/hubtype-fields'
|
|
8
9
|
import { trackEvent } from './tracking'
|
|
9
10
|
|
|
10
11
|
export async function getNodeByKeyword(
|
|
@@ -12,17 +13,17 @@ export async function getNodeByKeyword(
|
|
|
12
13
|
locale: string,
|
|
13
14
|
request: ActionRequest,
|
|
14
15
|
userInput: string
|
|
15
|
-
) {
|
|
16
|
+
): Promise<HtNodeWithContent | undefined> {
|
|
16
17
|
const keywordNode = cmsApi.getNodeByKeyword(userInput, locale)
|
|
18
|
+
if (!keywordNode) {
|
|
19
|
+
return undefined
|
|
20
|
+
}
|
|
17
21
|
const eventBotKeywordModel: EventBotKeywordModel = {
|
|
18
22
|
event_type: EventName.botKeywordsModel,
|
|
19
23
|
event_data: {
|
|
20
24
|
confidence_successful: true,
|
|
21
25
|
},
|
|
22
26
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
return keywordNode
|
|
26
|
-
}
|
|
27
|
-
return undefined
|
|
27
|
+
await trackEvent(request, eventBotKeywordModel)
|
|
28
|
+
return keywordNode
|
|
28
29
|
}
|
|
@@ -75,7 +75,7 @@ export class FlowHandoff extends ContentFieldsBase {
|
|
|
75
75
|
return (actionPayload as HtPayloadNode).content.payload
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
async doHandoff(request: ActionRequest) {
|
|
78
|
+
async doHandoff(request: ActionRequest): Promise<void> {
|
|
79
79
|
// @ts-ignore
|
|
80
80
|
const handOffBuilder = new HandOffBuilder(request.session)
|
|
81
81
|
handOffBuilder.withAutoAssignOnWaiting(this.handoffAutoAssign)
|