@botonic/plugin-flow-builder 0.25.0-alpha.3 → 0.25.0-alpha.4
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 +26 -21
- package/lib/cjs/action/index.js.map +1 -1
- package/lib/cjs/action/intent.js +10 -6
- package/lib/cjs/action/intent.js.map +1 -1
- package/lib/cjs/action/keyword.js +9 -5
- package/lib/cjs/action/keyword.js.map +1 -1
- package/lib/cjs/action/knowledge-bases.js +15 -11
- package/lib/cjs/action/knowledge-bases.js.map +1 -1
- package/lib/cjs/action/tracking.js +11 -7
- package/lib/cjs/action/tracking.js.map +1 -1
- package/lib/cjs/action/user-input.js +11 -7
- package/lib/cjs/action/user-input.js.map +1 -1
- package/lib/cjs/api.js +19 -15
- package/lib/cjs/api.js.map +1 -1
- package/lib/cjs/constants.js +6 -3
- package/lib/cjs/constants.js.map +1 -1
- package/lib/cjs/content-fields/content-fields-base.js +5 -1
- package/lib/cjs/content-fields/content-fields-base.js.map +1 -1
- package/lib/cjs/content-fields/flow-button.js +14 -10
- package/lib/cjs/content-fields/flow-button.js.map +1 -1
- package/lib/cjs/content-fields/flow-carousel.js +11 -7
- package/lib/cjs/content-fields/flow-carousel.js.map +1 -1
- package/lib/cjs/content-fields/flow-element.js +11 -7
- package/lib/cjs/content-fields/flow-element.js.map +1 -1
- package/lib/cjs/content-fields/flow-handoff.js +17 -13
- package/lib/cjs/content-fields/flow-handoff.js.map +1 -1
- package/lib/cjs/content-fields/flow-image.js +9 -5
- package/lib/cjs/content-fields/flow-image.js.map +1 -1
- package/lib/cjs/content-fields/flow-text.js +16 -12
- package/lib/cjs/content-fields/flow-text.js.map +1 -1
- package/lib/cjs/content-fields/flow-video.js +9 -5
- package/lib/cjs/content-fields/flow-video.js.map +1 -1
- package/lib/cjs/content-fields/hubtype-fields/bot-action.js +2 -1
- package/lib/cjs/content-fields/hubtype-fields/button.js +2 -1
- package/lib/cjs/content-fields/hubtype-fields/carousel.js +2 -1
- package/lib/cjs/content-fields/hubtype-fields/common.js +2 -1
- package/lib/cjs/content-fields/hubtype-fields/fallback.js +2 -1
- package/lib/cjs/content-fields/hubtype-fields/function.js +5 -2
- package/lib/cjs/content-fields/hubtype-fields/function.js.map +1 -1
- package/lib/cjs/content-fields/hubtype-fields/go-to-flow.js +2 -1
- package/lib/cjs/content-fields/hubtype-fields/handoff.js +2 -1
- package/lib/cjs/content-fields/hubtype-fields/image.js +2 -1
- package/lib/cjs/content-fields/hubtype-fields/index.js +21 -18
- package/lib/cjs/content-fields/hubtype-fields/index.js.map +1 -1
- package/lib/cjs/content-fields/hubtype-fields/intent.js +2 -1
- package/lib/cjs/content-fields/hubtype-fields/keyword.js +2 -1
- package/lib/cjs/content-fields/hubtype-fields/node-types.js +9 -6
- package/lib/cjs/content-fields/hubtype-fields/node-types.js.map +1 -1
- package/lib/cjs/content-fields/hubtype-fields/nodes.js +2 -1
- package/lib/cjs/content-fields/hubtype-fields/payload.js +2 -1
- package/lib/cjs/content-fields/hubtype-fields/text.js +2 -1
- package/lib/cjs/content-fields/hubtype-fields/url.js +2 -1
- package/lib/cjs/content-fields/hubtype-fields/video.js +2 -1
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-button-list.js +2 -1
- package/lib/cjs/content-fields/index.js +21 -10
- package/lib/cjs/content-fields/index.js.map +1 -1
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js +8 -4
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js.map +1 -1
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js +8 -4
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js.map +1 -1
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js +11 -7
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js.map +1 -1
- package/lib/cjs/functions/conditional-provider.js +5 -1
- package/lib/cjs/functions/conditional-provider.js.map +1 -1
- package/lib/cjs/functions/conditional-queue-status.js +12 -7
- package/lib/cjs/functions/conditional-queue-status.js.map +1 -1
- package/lib/cjs/functions/index.js +8 -5
- package/lib/cjs/functions/index.js.map +1 -1
- package/lib/cjs/helpers.js +5 -1
- package/lib/cjs/helpers.js.map +1 -1
- package/lib/cjs/index.js +39 -36
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/types.js +5 -2
- package/lib/cjs/types.js.map +1 -1
- package/lib/cjs/utils.js +8 -4
- package/lib/cjs/utils.js.map +1 -1
- package/package.json +2 -2
package/lib/cjs/action/index.js
CHANGED
|
@@ -1,19 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FlowBuilderMultichannelAction = exports.FlowBuilderAction = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
+
const react_1 = require("@botonic/react");
|
|
7
|
+
const react_2 = tslib_1.__importDefault(require("react"));
|
|
8
|
+
const content_fields_1 = require("../content-fields");
|
|
9
|
+
const helpers_1 = require("../helpers");
|
|
10
|
+
const knowledge_bases_1 = require("./knowledge-bases");
|
|
11
|
+
const tracking_1 = require("./tracking");
|
|
12
|
+
class FlowBuilderAction extends react_2.default.Component {
|
|
10
13
|
static botonicInit(request) {
|
|
11
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
12
|
-
const flowBuilderPlugin = getFlowBuilderPlugin(request.plugins);
|
|
14
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
15
|
+
const flowBuilderPlugin = (0, helpers_1.getFlowBuilderPlugin)(request.plugins);
|
|
13
16
|
const locale = flowBuilderPlugin.getLocale(request.session);
|
|
14
17
|
const targetNode = yield getTargetNode(flowBuilderPlugin.cmsApi, request);
|
|
15
18
|
const contents = yield flowBuilderPlugin.getContentsByNode(targetNode, locale);
|
|
16
|
-
const handoffContent = contents.find(content => content instanceof FlowHandoff);
|
|
19
|
+
const handoffContent = contents.find(content => content instanceof content_fields_1.FlowHandoff);
|
|
17
20
|
if (handoffContent)
|
|
18
21
|
yield handoffContent.doHandoff(request);
|
|
19
22
|
return { contents };
|
|
@@ -24,18 +27,20 @@ export class FlowBuilderAction extends React.Component {
|
|
|
24
27
|
return contents.map(content => content.toBotonic(content.id));
|
|
25
28
|
}
|
|
26
29
|
}
|
|
27
|
-
FlowBuilderAction
|
|
28
|
-
|
|
30
|
+
exports.FlowBuilderAction = FlowBuilderAction;
|
|
31
|
+
FlowBuilderAction.contextType = react_1.RequestContext;
|
|
32
|
+
class FlowBuilderMultichannelAction extends FlowBuilderAction {
|
|
29
33
|
render() {
|
|
30
34
|
const { contents } = this.props;
|
|
31
|
-
return (
|
|
35
|
+
return ((0, jsx_runtime_1.jsx)(react_1.Multichannel, Object.assign({ text: { buttonsAsText: false } }, { children: contents.map(content => content.toBotonic(content.id)) })));
|
|
32
36
|
}
|
|
33
37
|
}
|
|
38
|
+
exports.FlowBuilderMultichannelAction = FlowBuilderMultichannelAction;
|
|
34
39
|
function getTargetNode(cmsApi, request) {
|
|
35
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
36
41
|
if (request.session.is_first_interaction) {
|
|
37
42
|
const startNode = cmsApi.getStartNode();
|
|
38
|
-
yield trackEvent(request, EventName.botStart);
|
|
43
|
+
yield (0, tracking_1.trackEvent)(request, tracking_1.EventName.botStart);
|
|
39
44
|
return startNode;
|
|
40
45
|
}
|
|
41
46
|
const contentId = request.input.payload;
|
|
@@ -46,7 +51,7 @@ function getTargetNode(cmsApi, request) {
|
|
|
46
51
|
const eventArgs = {
|
|
47
52
|
faq_name: targetNode.code,
|
|
48
53
|
};
|
|
49
|
-
yield trackEvent(request, EventName.botFaq, eventArgs);
|
|
54
|
+
yield (0, tracking_1.trackEvent)(request, tracking_1.EventName.botFaq, eventArgs);
|
|
50
55
|
return targetNode;
|
|
51
56
|
}
|
|
52
57
|
return yield getFallbackNode(cmsApi, request);
|
|
@@ -54,18 +59,18 @@ function getTargetNode(cmsApi, request) {
|
|
|
54
59
|
}
|
|
55
60
|
function getFallbackNode(cmsApi, request) {
|
|
56
61
|
var _a;
|
|
57
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
62
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
58
63
|
if (((_a = request.session.user.extra_data) === null || _a === void 0 ? void 0 : _a.isFirstFallbackOption) === undefined) {
|
|
59
64
|
request.session.user.extra_data = Object.assign(Object.assign({}, request.session.user.extra_data), { isFirstFallbackOption: true });
|
|
60
65
|
}
|
|
61
|
-
const knowledgeBaseNode = yield createNodeFromKnowledgeBase(cmsApi, request);
|
|
66
|
+
const knowledgeBaseNode = yield (0, knowledge_bases_1.createNodeFromKnowledgeBase)(cmsApi, request);
|
|
62
67
|
if (knowledgeBaseNode) {
|
|
63
68
|
return knowledgeBaseNode;
|
|
64
69
|
}
|
|
65
70
|
const isFirstFallbackOption = !!request.session.user.extra_data.isFirstFallbackOption;
|
|
66
71
|
const fallbackNode = cmsApi.getFallbackNode(isFirstFallbackOption);
|
|
67
72
|
request.session.user.extra_data.isFirstFallbackOption = !isFirstFallbackOption;
|
|
68
|
-
yield trackEvent(request, EventName.fallback);
|
|
73
|
+
yield (0, tracking_1.trackEvent)(request, tracking_1.EventName.fallback);
|
|
69
74
|
return fallbackNode;
|
|
70
75
|
});
|
|
71
76
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/action/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/action/index.tsx"],"names":[],"mappings":"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"}
|
package/lib/cjs/action/intent.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getIntentNodeByInput = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const tracking_1 = require("./tracking");
|
|
6
|
+
function getIntentNodeByInput(cmsApi, locale, request) {
|
|
7
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
5
8
|
const intentNode = cmsApi.getIntentNode(request.input, locale);
|
|
6
9
|
const eventArgs = {
|
|
7
10
|
intent: request.input.intent,
|
|
@@ -10,15 +13,16 @@ export function getIntentNodeByInput(cmsApi, locale, request) {
|
|
|
10
13
|
};
|
|
11
14
|
if (request.input.confidence && request.input.intent && intentNode) {
|
|
12
15
|
if (isIntentValid(intentNode, request, cmsApi)) {
|
|
13
|
-
yield trackEvent(request, EventName.botAiModel, eventArgs);
|
|
16
|
+
yield (0, tracking_1.trackEvent)(request, tracking_1.EventName.botAiModel, eventArgs);
|
|
14
17
|
return intentNode;
|
|
15
18
|
}
|
|
16
19
|
eventArgs.confidence_successful = false;
|
|
17
|
-
yield trackEvent(request, EventName.botAiModel, eventArgs);
|
|
20
|
+
yield (0, tracking_1.trackEvent)(request, tracking_1.EventName.botAiModel, eventArgs);
|
|
18
21
|
}
|
|
19
22
|
return undefined;
|
|
20
23
|
});
|
|
21
24
|
}
|
|
25
|
+
exports.getIntentNodeByInput = getIntentNodeByInput;
|
|
22
26
|
function isIntentValid(intentNode, request, cmsApi) {
|
|
23
27
|
return (request.input.confidence &&
|
|
24
28
|
cmsApi.hasMetConfidenceThreshold(intentNode, request.input.confidence));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intent.js","sourceRoot":"","sources":["../../../src/action/intent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"intent.js","sourceRoot":"","sources":["../../../src/action/intent.ts"],"names":[],"mappings":";;;;AAIA,yCAAkD;AAElD,SAAsB,oBAAoB,CACxC,MAAsB,EACtB,MAAc,EACd,OAAsB;;QAEtB,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAC9D,MAAM,SAAS,GAAG;YAChB,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAgB;YACtC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,UAAoB;YAC9C,qBAAqB,EAAE,IAAI;SAC5B,CAAA;QACD,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,UAAU,EAAE;YAClE,IAAI,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE;gBAC9C,MAAM,IAAA,qBAAU,EAAC,OAAO,EAAE,oBAAS,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;gBAC1D,OAAO,UAAU,CAAA;aAClB;YAED,SAAS,CAAC,qBAAqB,GAAG,KAAK,CAAA;YACvC,MAAM,IAAA,qBAAU,EAAC,OAAO,EAAE,oBAAS,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;SAC3D;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;CAAA;AAtBD,oDAsBC;AAED,SAAS,aAAa,CACpB,UAAwB,EACxB,OAAsB,EACtB,MAAsB;IAEtB,OAAO,CACL,OAAO,CAAC,KAAK,CAAC,UAAU;QACxB,MAAM,CAAC,yBAAyB,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CACvE,CAAA;AACH,CAAC"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getKeywordNodeByInput = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const tracking_1 = require("./tracking");
|
|
6
|
+
function getKeywordNodeByInput(cmsApi, locale, request, userInput) {
|
|
7
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
5
8
|
const keywordNode = cmsApi.getNodeByKeyword(userInput, locale);
|
|
6
9
|
if (!keywordNode) {
|
|
7
10
|
return undefined;
|
|
@@ -9,8 +12,9 @@ export function getKeywordNodeByInput(cmsApi, locale, request, userInput) {
|
|
|
9
12
|
const eventArgs = {
|
|
10
13
|
confidence_successful: true,
|
|
11
14
|
};
|
|
12
|
-
yield trackEvent(request, EventName.botKeywordsModel, eventArgs);
|
|
15
|
+
yield (0, tracking_1.trackEvent)(request, tracking_1.EventName.botKeywordsModel, eventArgs);
|
|
13
16
|
return keywordNode;
|
|
14
17
|
});
|
|
15
18
|
}
|
|
19
|
+
exports.getKeywordNodeByInput = getKeywordNodeByInput;
|
|
16
20
|
//# sourceMappingURL=keyword.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyword.js","sourceRoot":"","sources":["../../../src/action/keyword.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"keyword.js","sourceRoot":"","sources":["../../../src/action/keyword.ts"],"names":[],"mappings":";;;;AAIA,yCAAkD;AAElD,SAAsB,qBAAqB,CACzC,MAAsB,EACtB,MAAc,EACd,OAAsB,EACtB,SAAiB;;QAEjB,MAAM,WAAW,GAAG,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QAC9D,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO,SAAS,CAAA;SACjB;QACD,MAAM,SAAS,GAAG;YAChB,qBAAqB,EAAE,IAAI;SAC5B,CAAA;QACD,MAAM,IAAA,qBAAU,EAAC,OAAO,EAAE,oBAAS,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAA;QAChE,OAAO,WAAW,CAAA;IACpB,CAAC;CAAA;AAfD,sDAeC"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createNodeFromKnowledgeBase = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const crypto_1 = require("crypto");
|
|
6
|
+
const hubtype_fields_1 = require("../content-fields/hubtype-fields");
|
|
7
|
+
const helpers_1 = require("../helpers");
|
|
8
|
+
const tracking_1 = require("./tracking");
|
|
9
|
+
function createNodeFromKnowledgeBase(cmsApi, request) {
|
|
10
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
11
|
+
const flowBuilderPlugin = (0, helpers_1.getFlowBuilderPlugin)(request.plugins);
|
|
9
12
|
const locale = flowBuilderPlugin.getLocale(request.session);
|
|
10
13
|
const knowledgeBaseConfig = cmsApi.getKnowledgeBaseConfig();
|
|
11
14
|
if (flowBuilderPlugin.getKnowledgeBaseResponse &&
|
|
@@ -13,12 +16,12 @@ export function createNodeFromKnowledgeBase(cmsApi, request) {
|
|
|
13
16
|
try {
|
|
14
17
|
const knowledgeBaseResponse = yield flowBuilderPlugin.getKnowledgeBaseResponse(request);
|
|
15
18
|
if (knowledgeBaseResponse.hasKnowledge) {
|
|
16
|
-
yield trackEvent(request, EventName.botAiKnowledgeBase, {
|
|
19
|
+
yield (0, tracking_1.trackEvent)(request, tracking_1.EventName.botAiKnowledgeBase, {
|
|
17
20
|
answer: knowledgeBaseResponse.answer,
|
|
18
21
|
knowledge_source_ids: knowledgeBaseResponse.sources.map(source => source.knowledgeSourceId),
|
|
19
22
|
});
|
|
20
23
|
const knowledgeBaseNode = {
|
|
21
|
-
type: HtNodeWithContentType.TEXT,
|
|
24
|
+
type: hubtype_fields_1.HtNodeWithContentType.TEXT,
|
|
22
25
|
content: {
|
|
23
26
|
text: [
|
|
24
27
|
{
|
|
@@ -29,7 +32,7 @@ export function createNodeFromKnowledgeBase(cmsApi, request) {
|
|
|
29
32
|
buttons_style: undefined,
|
|
30
33
|
buttons: [],
|
|
31
34
|
},
|
|
32
|
-
id: randomUUID(),
|
|
35
|
+
id: (0, crypto_1.randomUUID)(),
|
|
33
36
|
code: 'knowledge-response',
|
|
34
37
|
meta: {
|
|
35
38
|
x: 0,
|
|
@@ -48,4 +51,5 @@ export function createNodeFromKnowledgeBase(cmsApi, request) {
|
|
|
48
51
|
return undefined;
|
|
49
52
|
});
|
|
50
53
|
}
|
|
54
|
+
exports.createNodeFromKnowledgeBase = createNodeFromKnowledgeBase;
|
|
51
55
|
//# sourceMappingURL=knowledge-bases.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge-bases.js","sourceRoot":"","sources":["../../../src/action/knowledge-bases.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"knowledge-bases.js","sourceRoot":"","sources":["../../../src/action/knowledge-bases.ts"],"names":[],"mappings":";;;;AAEA,mCAAmC;AAGnC,qEAIyC;AACzC,wCAAiD;AACjD,yCAAkD;AAElD,SAAsB,2BAA2B,CAC/C,MAAsB,EACtB,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;QAC3D,MAAM,mBAAmB,GAAG,MAAM,CAAC,sBAAsB,EAAE,CAAA;QAE3D,IACE,iBAAiB,CAAC,wBAAwB;aAC1C,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,QAAQ,CAAA,EAC7B;YACA,IAAI;gBACF,MAAM,qBAAqB,GACzB,MAAM,iBAAiB,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAA;gBAE3D,IAAI,qBAAqB,CAAC,YAAY,EAAE;oBACtC,MAAM,IAAA,qBAAU,EAAC,OAAO,EAAE,oBAAS,CAAC,kBAAkB,EAAE;wBACtD,MAAM,EAAE,qBAAqB,CAAC,MAAM;wBACpC,oBAAoB,EAAE,qBAAqB,CAAC,OAAO,CAAC,GAAG,CACrD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,iBAAiB,CACnC;qBACF,CAAC,CAAA;oBAEF,MAAM,iBAAiB,GAAe;wBACpC,IAAI,EAAE,sCAAqB,CAAC,IAAI;wBAChC,OAAO,EAAE;4BACP,IAAI,EAAE;gCACJ;oCACE,OAAO,EAAE,qBAAqB,CAAC,MAAM;oCACrC,MAAM;iCACP;6BACF;4BACD,aAAa,EAAE,SAAS;4BACxB,OAAO,EAAE,EAAE;yBACZ;wBACD,EAAE,EAAE,IAAA,mBAAU,GAAE;wBAChB,IAAI,EAAE,oBAAoB;wBAC1B,IAAI,EAAE;4BACJ,CAAC,EAAE,CAAC;4BACJ,CAAC,EAAE,CAAC;yBACL;wBACD,SAAS,EAAE,mBAAmB,CAAC,QAAQ;qBACxC,CAAA;oBACD,OAAO,iBAAiB,CAAA;iBACzB;aACF;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;gBACxD,OAAO,SAAS,CAAA;aACjB;SACF;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;CAAA;AApDD,kEAoDC"}
|
|
@@ -1,15 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EventName = exports.trackEvent = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const helpers_1 = require("../helpers");
|
|
6
|
+
function trackEvent(request, eventName, args) {
|
|
7
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
8
|
+
const flowBuilderPlugin = (0, helpers_1.getFlowBuilderPlugin)(request.plugins);
|
|
6
9
|
if (flowBuilderPlugin.trackEvent) {
|
|
7
10
|
yield flowBuilderPlugin.trackEvent(request, eventName, args);
|
|
8
11
|
}
|
|
9
12
|
return;
|
|
10
13
|
});
|
|
11
14
|
}
|
|
12
|
-
|
|
15
|
+
exports.trackEvent = trackEvent;
|
|
16
|
+
var EventName;
|
|
13
17
|
(function (EventName) {
|
|
14
18
|
EventName["botAgentRating"] = "bot_agent_rating";
|
|
15
19
|
EventName["botChannelRating"] = "bot_channel_rating";
|
|
@@ -25,5 +29,5 @@ export var EventName;
|
|
|
25
29
|
EventName["handoffOption"] = "handoff_option";
|
|
26
30
|
EventName["handoffSuccess"] = "handoff_success";
|
|
27
31
|
EventName["handoffFail"] = "handoff_fail";
|
|
28
|
-
})(EventName || (EventName = {}));
|
|
32
|
+
})(EventName = exports.EventName || (exports.EventName = {}));
|
|
29
33
|
//# sourceMappingURL=tracking.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracking.js","sourceRoot":"","sources":["../../../src/action/tracking.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tracking.js","sourceRoot":"","sources":["../../../src/action/tracking.ts"],"names":[],"mappings":";;;;AAEA,wCAAiD;AAEjD,SAAsB,UAAU,CAC9B,OAAsB,EACtB,SAAoB,EACpB,IAA0B;;QAE1B,MAAM,iBAAiB,GAAG,IAAA,8BAAoB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC/D,IAAI,iBAAiB,CAAC,UAAU,EAAE;YAChC,MAAM,iBAAiB,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;SAC7D;QACD,OAAM;IACR,CAAC;CAAA;AAVD,gCAUC;AAED,IAAY,SAeX;AAfD,WAAY,SAAS;IACnB,gDAAmC,CAAA;IACnC,oDAAuC,CAAA;IACvC,4CAA+B,CAAA;IAC/B,qCAAwB,CAAA;IACxB,+BAAkB,CAAA;IAClB,mCAAsB,CAAA;IACtB,iCAAoB,CAAA;IACpB,wCAA2B,CAAA;IAC3B,yDAA4C,CAAA;IAC5C,oDAAuC,CAAA;IACvC,kCAAqB,CAAA;IACrB,6CAAgC,CAAA;IAChC,+CAAkC,CAAA;IAClC,yCAA4B,CAAA;AAC9B,CAAC,EAfW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAepB"}
|
|
@@ -1,17 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getNodeByUserInput = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const intent_1 = require("./intent");
|
|
6
|
+
const keyword_1 = require("./keyword");
|
|
7
|
+
function getNodeByUserInput(cmsApi, locale, request) {
|
|
8
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
6
9
|
if (request.input.data) {
|
|
7
|
-
const intentNode = yield getIntentNodeByInput(cmsApi, locale, request);
|
|
10
|
+
const intentNode = yield (0, intent_1.getIntentNodeByInput)(cmsApi, locale, request);
|
|
8
11
|
if (intentNode)
|
|
9
12
|
return intentNode;
|
|
10
|
-
const keywordNode = yield getKeywordNodeByInput(cmsApi, locale, request, request.input.data);
|
|
13
|
+
const keywordNode = yield (0, keyword_1.getKeywordNodeByInput)(cmsApi, locale, request, request.input.data);
|
|
11
14
|
if (keywordNode)
|
|
12
15
|
return keywordNode;
|
|
13
16
|
}
|
|
14
17
|
return undefined;
|
|
15
18
|
});
|
|
16
19
|
}
|
|
20
|
+
exports.getNodeByUserInput = getNodeByUserInput;
|
|
17
21
|
//# sourceMappingURL=user-input.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-input.js","sourceRoot":"","sources":["../../../src/action/user-input.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"user-input.js","sourceRoot":"","sources":["../../../src/action/user-input.ts"],"names":[],"mappings":";;;;AAIA,qCAA+C;AAC/C,uCAAiD;AAEjD,SAAsB,kBAAkB,CACtC,MAAsB,EACtB,MAAc,EACd,OAAsB;;QAEtB,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE;YACtB,MAAM,UAAU,GAAG,MAAM,IAAA,6BAAoB,EAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;YACtE,IAAI,UAAU;gBAAE,OAAO,UAAU,CAAA;YAEjC,MAAM,WAAW,GAAG,MAAM,IAAA,+BAAqB,EAC7C,MAAM,EACN,MAAM,EACN,OAAO,EACP,OAAO,CAAC,KAAK,CAAC,IAAI,CACnB,CAAA;YACD,IAAI,WAAW;gBAAE,OAAO,WAAW,CAAA;SACpC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;CAAA;AAlBD,gDAkBC"}
|
package/lib/cjs/api.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FlowBuilderApi = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const axios_1 = tslib_1.__importDefault(require("axios"));
|
|
6
|
+
const constants_1 = require("./constants");
|
|
7
|
+
const hubtype_fields_1 = require("./content-fields/hubtype-fields");
|
|
8
|
+
class FlowBuilderApi {
|
|
6
9
|
constructor() { }
|
|
7
10
|
static create(options) {
|
|
8
11
|
var _a;
|
|
9
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
12
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
10
13
|
const newApi = new FlowBuilderApi();
|
|
11
14
|
newApi.url = options.url;
|
|
12
15
|
newApi.flow = (_a = options.flow) !== null && _a !== void 0 ? _a : (yield newApi.getFlow(options.accessToken));
|
|
@@ -15,8 +18,8 @@ export class FlowBuilderApi {
|
|
|
15
18
|
});
|
|
16
19
|
}
|
|
17
20
|
getFlow(token) {
|
|
18
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
19
|
-
const { data } = yield
|
|
21
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
22
|
+
const { data } = yield axios_1.default.get(this.url, {
|
|
20
23
|
headers: { Authorization: `Bearer ${token}` },
|
|
21
24
|
});
|
|
22
25
|
return data;
|
|
@@ -32,7 +35,7 @@ export class FlowBuilderApi {
|
|
|
32
35
|
const node = this.flow.nodes.find(node => node.id === id);
|
|
33
36
|
if (!node)
|
|
34
37
|
throw Error(`Node with id: '${id}' not found`);
|
|
35
|
-
if (node.type === HtNodeWithoutContentType.GO_TO_FLOW) {
|
|
38
|
+
if (node.type === hubtype_fields_1.HtNodeWithoutContentType.GO_TO_FLOW) {
|
|
36
39
|
return this.getNodeByFlowId(node.content.flow_id);
|
|
37
40
|
}
|
|
38
41
|
return node;
|
|
@@ -50,7 +53,7 @@ export class FlowBuilderApi {
|
|
|
50
53
|
return this.getNodeById(startNodeId);
|
|
51
54
|
}
|
|
52
55
|
getFallbackNode(alternate) {
|
|
53
|
-
const fallbackNode = this.flow.nodes.find(node => node.type === HtNodeWithContentType.FALLBACK);
|
|
56
|
+
const fallbackNode = this.flow.nodes.find(node => node.type === hubtype_fields_1.HtNodeWithContentType.FALLBACK);
|
|
54
57
|
if (!fallbackNode) {
|
|
55
58
|
throw new Error('Fallback node must be defined');
|
|
56
59
|
}
|
|
@@ -67,7 +70,7 @@ export class FlowBuilderApi {
|
|
|
67
70
|
: this.getNodeById(fallbackSecondMessage.id);
|
|
68
71
|
}
|
|
69
72
|
getKnowledgeBaseConfig() {
|
|
70
|
-
const fallbackNode = this.flow.nodes.find(node => node.type === HtNodeWithContentType.FALLBACK);
|
|
73
|
+
const fallbackNode = this.flow.nodes.find(node => node.type === hubtype_fields_1.HtNodeWithContentType.FALLBACK);
|
|
71
74
|
return fallbackNode
|
|
72
75
|
? {
|
|
73
76
|
followup: fallbackNode.content.knowledge_base_followup,
|
|
@@ -77,7 +80,7 @@ export class FlowBuilderApi {
|
|
|
77
80
|
}
|
|
78
81
|
getIntentNode(input, locale) {
|
|
79
82
|
try {
|
|
80
|
-
const intentsNodes = this.flow.nodes.filter(node => node.type === HtNodeWithContentType.INTENT);
|
|
83
|
+
const intentsNodes = this.flow.nodes.filter(node => node.type === hubtype_fields_1.HtNodeWithContentType.INTENT);
|
|
81
84
|
const inputIntent = input.intent;
|
|
82
85
|
if (inputIntent) {
|
|
83
86
|
return intentsNodes.find(node => inputIntent && this.nodeContainsIntent(node, inputIntent, locale));
|
|
@@ -97,7 +100,7 @@ export class FlowBuilderApi {
|
|
|
97
100
|
}
|
|
98
101
|
getNodeByKeyword(userInput, locale) {
|
|
99
102
|
try {
|
|
100
|
-
const keywordNodes = this.flow.nodes.filter(node => node.type === HtNodeWithContentType.KEYWORD);
|
|
103
|
+
const keywordNodes = this.flow.nodes.filter(node => node.type === hubtype_fields_1.HtNodeWithContentType.KEYWORD);
|
|
101
104
|
const matchedKeywordNodes = keywordNodes.filter(node => this.matchKeywords(node, userInput, locale));
|
|
102
105
|
if (matchedKeywordNodes.length > 0 && matchedKeywordNodes[0].target) {
|
|
103
106
|
return matchedKeywordNodes[0];
|
|
@@ -119,7 +122,7 @@ export class FlowBuilderApi {
|
|
|
119
122
|
if (!target) {
|
|
120
123
|
return undefined;
|
|
121
124
|
}
|
|
122
|
-
if (target.type === HtNodeWithoutContentType.BOT_ACTION) {
|
|
125
|
+
if (target.type === hubtype_fields_1.HtNodeWithoutContentType.BOT_ACTION) {
|
|
123
126
|
const botActionNode = this.getNodeById(target.id);
|
|
124
127
|
return this.createPayloadWithParams(botActionNode);
|
|
125
128
|
}
|
|
@@ -131,7 +134,8 @@ export class FlowBuilderApi {
|
|
|
131
134
|
const payloadNode = this.getNodeById(payloadId);
|
|
132
135
|
const customParams = JSON.parse(botActionNode.content.payload_params || '{}');
|
|
133
136
|
const payloadJson = JSON.stringify(Object.assign(Object.assign({}, customParams), { followUpId: (_a = botActionNode.follow_up) === null || _a === void 0 ? void 0 : _a.id }));
|
|
134
|
-
return `${payloadNode.content.payload}${SEPARATOR}${payloadJson}`;
|
|
137
|
+
return `${payloadNode.content.payload}${constants_1.SEPARATOR}${payloadJson}`;
|
|
135
138
|
}
|
|
136
139
|
}
|
|
140
|
+
exports.FlowBuilderApi = FlowBuilderApi;
|
|
137
141
|
//# sourceMappingURL=api.js.map
|
package/lib/cjs/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/constants.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VARIABLE_REGEX = exports.SOURCE_INFO_SEPARATOR = exports.SEPARATOR = void 0;
|
|
4
|
+
exports.SEPARATOR = '|';
|
|
5
|
+
exports.SOURCE_INFO_SEPARATOR = `${exports.SEPARATOR}source_`;
|
|
6
|
+
exports.VARIABLE_REGEX = /{([^}]+)}/g;
|
|
4
7
|
//# sourceMappingURL=constants.js.map
|
package/lib/cjs/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG,GAAG,CAAA;AACf,QAAA,qBAAqB,GAAG,GAAG,iBAAS,SAAS,CAAA;AAC7C,QAAA,cAAc,GAAG,YAAY,CAAA"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ContentFieldsBase = void 0;
|
|
4
|
+
class ContentFieldsBase {
|
|
2
5
|
constructor(id) {
|
|
3
6
|
this.id = id;
|
|
4
7
|
}
|
|
@@ -21,4 +24,5 @@ export class ContentFieldsBase {
|
|
|
21
24
|
return queues.find(queue => queue.locale === locale);
|
|
22
25
|
}
|
|
23
26
|
}
|
|
27
|
+
exports.ContentFieldsBase = ContentFieldsBase;
|
|
24
28
|
//# sourceMappingURL=content-fields-base.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-fields-base.js","sourceRoot":"","sources":["../../../src/content-fields/content-fields-base.ts"],"names":[],"mappings":"AAOA,
|
|
1
|
+
{"version":3,"file":"content-fields-base.js","sourceRoot":"","sources":["../../../src/content-fields/content-fields-base.ts"],"names":[],"mappings":";;;AAOA,MAAsB,iBAAiB;IACrC,YAA4B,EAAU;QAAV,OAAE,GAAF,EAAE,CAAQ;IAAG,CAAC;IAE1C,MAAM,CAAC,eAAe,CAAC,MAAc,EAAE,IAAoB;;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAA;QAClD,OAAO,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,mCAAI,EAAE,CAAA;IAC9B,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,MAAc,EAAE,KAA0B;;QAChE,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAA;QACnD,OAAO,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,mCAAI,EAAE,CAAA;IAC3B,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,MAAc,EAAE,KAAsB;;QAC5D,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAA;QACnD,OAAO,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,mCAAI,EAAE,CAAA;IAC1B,CAAC;IAED,MAAM,CAAC,gBAAgB,CACrB,MAAc,EACd,MAAuB;QAEvB,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAA;IACtD,CAAC;CACF;AAxBD,8CAwBC"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FlowButton = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("@botonic/react");
|
|
6
|
+
const constants_1 = require("../constants");
|
|
7
|
+
const content_fields_base_1 = require("./content-fields-base");
|
|
8
|
+
const hubtype_fields_1 = require("./hubtype-fields");
|
|
9
|
+
class FlowButton extends content_fields_base_1.ContentFieldsBase {
|
|
7
10
|
constructor() {
|
|
8
11
|
super(...arguments);
|
|
9
12
|
this.text = '';
|
|
@@ -36,15 +39,16 @@ export class FlowButton extends ContentFieldsBase {
|
|
|
36
39
|
return (_a = cmsButton.url.find(url => url.locale === locale)) === null || _a === void 0 ? void 0 : _a.id;
|
|
37
40
|
}
|
|
38
41
|
renderButton(buttonIndex, buttonStyle) {
|
|
39
|
-
if (buttonStyle === HtButtonStyle.QUICK_REPLY) {
|
|
40
|
-
return (
|
|
42
|
+
if (buttonStyle === hubtype_fields_1.HtButtonStyle.QUICK_REPLY) {
|
|
43
|
+
return ((0, jsx_runtime_1.jsx)(react_1.Reply, Object.assign({ payload: this.getButtonPayload(buttonIndex) }, { children: this.text }), this.id));
|
|
41
44
|
}
|
|
42
|
-
return (
|
|
45
|
+
return ((0, jsx_runtime_1.jsx)(react_1.Button, Object.assign({ url: this.url, payload: this.getButtonPayload(buttonIndex) }, { children: this.text }), this.id));
|
|
43
46
|
}
|
|
44
47
|
getButtonPayload(buttonIndex) {
|
|
45
48
|
return this.payload
|
|
46
|
-
? `${this.payload}${SOURCE_INFO_SEPARATOR}${buttonIndex}`
|
|
49
|
+
? `${this.payload}${constants_1.SOURCE_INFO_SEPARATOR}${buttonIndex}`
|
|
47
50
|
: undefined;
|
|
48
51
|
}
|
|
49
52
|
}
|
|
53
|
+
exports.FlowButton = FlowButton;
|
|
50
54
|
//# sourceMappingURL=flow-button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow-button.js","sourceRoot":"","sources":["../../../src/content-fields/flow-button.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"flow-button.js","sourceRoot":"","sources":["../../../src/content-fields/flow-button.tsx"],"names":[],"mappings":";;;;AAAA,0CAA8C;AAI9C,4CAAoD;AACpD,+DAAyD;AACzD,qDAKyB;AAEzB,MAAa,UAAW,SAAQ,uCAAiB;IAAjD;;QACS,SAAI,GAAG,EAAE,CAAA;IA+DlB,CAAC;IA3DC,MAAM,CAAC,cAAc,CACnB,SAAmB,EACnB,MAAc,EACd,MAAsB;QAEtB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QAE9C,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;QAC9C,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;QAC7D,IAAI,SAAS,CAAC,MAAM,EAAE;YACpB,SAAS,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;SACxD;QAED,cAAc;QACd,IAAI,SAAS,CAAC,OAAO,IAAI,SAAS,EAAE;YAClC,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAgB,SAAS,CAAC,CAAA;YAChE,SAAS,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAA;SAChD;QACD,IAAI,SAAS,CAAC,GAAG,IAAI,KAAK,EAAE;YAC1B,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAY,KAAK,CAAC,CAAA;YACxD,SAAS,CAAC,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAA;SACxC;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,SAAmB,EAAE,MAAc;;QACrD,OAAO,MAAA,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,0CAAE,EAAE,CAAA;IACzE,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,SAAmB,EAAE,MAAc;;QACjD,OAAO,MAAA,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,0CAAE,EAAE,CAAA;IAC7D,CAAC;IAED,YAAY,CAAC,WAAmB,EAAE,WAA2B;QAC3D,IAAI,WAAW,KAAK,8BAAa,CAAC,WAAW,EAAE;YAC7C,OAAO,CACL,uBAAC,aAAK,kBAAe,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,gBAC7D,IAAI,CAAC,IAAI,KADA,IAAI,CAAC,EAAE,CAEX,CACT,CAAA;SACF;QACD,OAAO,CACL,uBAAC,cAAM,kBAEL,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,gBAE1C,IAAI,CAAC,IAAI,KAJL,IAAI,CAAC,EAAE,CAKL,CACV,CAAA;IACH,CAAC;IAEO,gBAAgB,CAAC,WAAmB;QAC1C,OAAO,IAAI,CAAC,OAAO;YACjB,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,iCAAqB,GAAG,WAAW,EAAE;YACzD,CAAC,CAAC,SAAS,CAAA;IACf,CAAC;CACF;AAhED,gCAgEC"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FlowCarousel = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("@botonic/react");
|
|
6
|
+
const content_fields_base_1 = require("./content-fields-base");
|
|
7
|
+
const flow_element_1 = require("./flow-element");
|
|
8
|
+
class FlowCarousel extends content_fields_base_1.ContentFieldsBase {
|
|
6
9
|
constructor() {
|
|
7
10
|
super(...arguments);
|
|
8
11
|
this.code = '';
|
|
@@ -11,11 +14,12 @@ export class FlowCarousel extends ContentFieldsBase {
|
|
|
11
14
|
static fromHubtypeCMS(component, locale, cmsApi) {
|
|
12
15
|
const newCarousel = new FlowCarousel(component.id);
|
|
13
16
|
newCarousel.code = component.code;
|
|
14
|
-
newCarousel.elements = component.content.elements.map(element => FlowElement.fromHubtypeCMS(element, locale, cmsApi));
|
|
17
|
+
newCarousel.elements = component.content.elements.map(element => flow_element_1.FlowElement.fromHubtypeCMS(element, locale, cmsApi));
|
|
15
18
|
return newCarousel;
|
|
16
19
|
}
|
|
17
20
|
toBotonic(id) {
|
|
18
|
-
return (
|
|
21
|
+
return ((0, jsx_runtime_1.jsx)(react_1.Carousel, { children: this.elements.map(element => element.toBotonic(id)) }, id));
|
|
19
22
|
}
|
|
20
23
|
}
|
|
24
|
+
exports.FlowCarousel = FlowCarousel;
|
|
21
25
|
//# sourceMappingURL=flow-carousel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow-carousel.js","sourceRoot":"","sources":["../../../src/content-fields/flow-carousel.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"flow-carousel.js","sourceRoot":"","sources":["../../../src/content-fields/flow-carousel.tsx"],"names":[],"mappings":";;;;AAAA,0CAAyC;AAIzC,+DAAyD;AACzD,iDAA4C;AAG5C,MAAa,YAAa,SAAQ,uCAAiB;IAAnD;;QACS,SAAI,GAAG,EAAE,CAAA;QACT,aAAQ,GAAkB,EAAE,CAAA;IAsBrC,CAAC;IApBC,MAAM,CAAC,cAAc,CACnB,SAAyB,EACzB,MAAc,EACd,MAAsB;QAEtB,MAAM,WAAW,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;QAClD,WAAW,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAA;QACjC,WAAW,CAAC,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAC9D,0BAAW,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CACpD,CAAA;QACD,OAAO,WAAW,CAAA;IACpB,CAAC;IAED,SAAS,CAAC,EAAU;QAClB,OAAO,CACL,uBAAC,gBAAQ,cACN,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IADvC,EAAE,CAEN,CACZ,CAAA;IACH,CAAC;CACF;AAxBD,oCAwBC"}
|