@botonic/plugin-flow-builder 0.22.2 → 0.22.4-alpha.0

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.
Files changed (108) hide show
  1. package/lib/cjs/{action.d.ts → action/index.d.ts} +1 -2
  2. package/lib/cjs/action/index.js +72 -0
  3. package/lib/cjs/action/index.js.map +1 -0
  4. package/lib/cjs/action/intent.d.ts +4 -0
  5. package/lib/cjs/action/intent.js +33 -0
  6. package/lib/cjs/action/intent.js.map +1 -0
  7. package/lib/cjs/action/keyword.d.ts +3 -0
  8. package/lib/cjs/action/keyword.js +21 -0
  9. package/lib/cjs/action/keyword.js.map +1 -0
  10. package/lib/cjs/action/tracking.d.ts +3 -0
  11. package/lib/cjs/action/tracking.js +13 -0
  12. package/lib/cjs/action/tracking.js.map +1 -0
  13. package/lib/cjs/action/user-input.d.ts +4 -0
  14. package/lib/cjs/action/user-input.js +28 -0
  15. package/lib/cjs/action/user-input.js.map +1 -0
  16. package/lib/cjs/api.d.ts +4 -4
  17. package/lib/cjs/api.js +4 -10
  18. package/lib/cjs/api.js.map +1 -1
  19. package/lib/cjs/content-fields/content-fields-base.d.ts +2 -1
  20. package/lib/cjs/content-fields/content-fields-base.js +3 -0
  21. package/lib/cjs/content-fields/content-fields-base.js.map +1 -1
  22. package/lib/cjs/content-fields/flow-handoff.d.ts +15 -0
  23. package/lib/cjs/content-fields/flow-handoff.js +60 -0
  24. package/lib/cjs/content-fields/flow-handoff.js.map +1 -0
  25. package/lib/cjs/content-fields/index.d.ts +3 -1
  26. package/lib/cjs/content-fields/index.js +3 -1
  27. package/lib/cjs/content-fields/index.js.map +1 -1
  28. package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.d.ts +1 -1
  29. package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.d.ts +1 -1
  30. package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js +1 -4
  31. package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js.map +1 -1
  32. package/lib/cjs/functions/conditional-queue-status.d.ts +10 -1
  33. package/lib/cjs/functions/conditional-queue-status.js +11 -16
  34. package/lib/cjs/functions/conditional-queue-status.js.map +1 -1
  35. package/lib/cjs/helpers.d.ts +0 -2
  36. package/lib/cjs/helpers.js +1 -6
  37. package/lib/cjs/helpers.js.map +1 -1
  38. package/lib/cjs/index.d.ts +5 -7
  39. package/lib/cjs/index.js +15 -11
  40. package/lib/cjs/index.js.map +1 -1
  41. package/lib/esm/{action.d.ts → action/index.d.ts} +1 -2
  42. package/lib/esm/action/index.js +66 -0
  43. package/lib/esm/action/index.js.map +1 -0
  44. package/lib/esm/action/intent.d.ts +4 -0
  45. package/lib/esm/action/intent.js +29 -0
  46. package/lib/esm/action/intent.js.map +1 -0
  47. package/lib/esm/action/keyword.d.ts +3 -0
  48. package/lib/esm/action/keyword.js +17 -0
  49. package/lib/esm/action/keyword.js.map +1 -0
  50. package/lib/esm/action/tracking.d.ts +3 -0
  51. package/lib/esm/action/tracking.js +9 -0
  52. package/lib/esm/action/tracking.js.map +1 -0
  53. package/lib/esm/action/user-input.d.ts +4 -0
  54. package/lib/esm/action/user-input.js +24 -0
  55. package/lib/esm/action/user-input.js.map +1 -0
  56. package/lib/esm/api.d.ts +4 -4
  57. package/lib/esm/api.js +4 -10
  58. package/lib/esm/api.js.map +1 -1
  59. package/lib/esm/content-fields/content-fields-base.d.ts +2 -1
  60. package/lib/esm/content-fields/content-fields-base.js +3 -0
  61. package/lib/esm/content-fields/content-fields-base.js.map +1 -1
  62. package/lib/esm/content-fields/flow-handoff.d.ts +15 -0
  63. package/lib/esm/content-fields/flow-handoff.js +55 -0
  64. package/lib/esm/content-fields/flow-handoff.js.map +1 -0
  65. package/lib/esm/content-fields/index.d.ts +3 -1
  66. package/lib/esm/content-fields/index.js +1 -0
  67. package/lib/esm/content-fields/index.js.map +1 -1
  68. package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.d.ts +1 -1
  69. package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.d.ts +1 -1
  70. package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js +1 -4
  71. package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js.map +1 -1
  72. package/lib/esm/functions/conditional-queue-status.d.ts +10 -1
  73. package/lib/esm/functions/conditional-queue-status.js +8 -14
  74. package/lib/esm/functions/conditional-queue-status.js.map +1 -1
  75. package/lib/esm/helpers.d.ts +0 -2
  76. package/lib/esm/helpers.js +0 -4
  77. package/lib/esm/helpers.js.map +1 -1
  78. package/lib/esm/index.d.ts +5 -7
  79. package/lib/esm/index.js +16 -12
  80. package/lib/esm/index.js.map +1 -1
  81. package/package.json +3 -2
  82. package/src/action/index.tsx +102 -0
  83. package/src/action/intent.ts +48 -0
  84. package/src/action/keyword.ts +28 -0
  85. package/src/action/tracking.ts +12 -0
  86. package/src/action/user-input.ts +40 -0
  87. package/src/api.ts +6 -14
  88. package/src/content-fields/content-fields-base.ts +8 -0
  89. package/src/content-fields/flow-handoff.tsx +106 -0
  90. package/src/content-fields/index.ts +3 -0
  91. package/src/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.tsx +1 -1
  92. package/src/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.tsx +1 -1
  93. package/src/content-fields/whatsapp-button-list/flow-whatsapp-button-list.tsx +2 -4
  94. package/src/functions/conditional-queue-status.ts +19 -16
  95. package/src/helpers.ts +0 -9
  96. package/src/index.ts +28 -20
  97. package/lib/cjs/action.js +0 -52
  98. package/lib/cjs/action.js.map +0 -1
  99. package/lib/cjs/handoff.d.ts +0 -3
  100. package/lib/cjs/handoff.js +0 -53
  101. package/lib/cjs/handoff.js.map +0 -1
  102. package/lib/esm/action.js +0 -46
  103. package/lib/esm/action.js.map +0 -1
  104. package/lib/esm/handoff.d.ts +0 -3
  105. package/lib/esm/handoff.js +0 -49
  106. package/lib/esm/handoff.js.map +0 -1
  107. package/src/action.tsx +0 -77
  108. package/src/handoff.ts +0 -76
@@ -1,8 +1,8 @@
1
- import { Plugin, PluginPostRequest, PluginPreRequest, Session } from '@botonic/core';
1
+ import { Plugin, PluginPreRequest, Session } from '@botonic/core';
2
2
  import { ActionRequest } from '@botonic/react';
3
3
  import { FlowBuilderApi } from './api';
4
4
  import { FlowContent } from './content-fields';
5
- import { HtFunctionNode, HtHandoffNode, HtNodeWithContent } from './content-fields/hubtype-fields';
5
+ import { HtFunctionNode, HtNodeWithContent } from './content-fields/hubtype-fields';
6
6
  import { BotonicPluginFlowBuilderOptions } from './types';
7
7
  export default class BotonicPluginFlowBuilder implements Plugin {
8
8
  readonly options: BotonicPluginFlowBuilderOptions;
@@ -16,11 +16,9 @@ export default class BotonicPluginFlowBuilder implements Plugin {
16
16
  trackEvent?: (request: ActionRequest, eventName: string, args?: Record<string, any>) => Promise<void>;
17
17
  constructor(options: BotonicPluginFlowBuilderOptions);
18
18
  pre(request: PluginPreRequest): Promise<void>;
19
- post(_request: PluginPostRequest): Promise<void>;
20
- getContents(nodeOrId: HtNodeWithContent | string, locale: string, prevContents?: FlowContent[]): Promise<{
21
- contents: FlowContent[];
22
- handoffNode?: HtHandoffNode;
23
- }>;
19
+ getContentsByCode(code: string, locale: string, prevContents?: FlowContent[]): Promise<FlowContent[]>;
20
+ getContentsById(id: string, locale: string, prevContents?: FlowContent[]): Promise<FlowContent[]>;
21
+ getContentsByNode(node: HtNodeWithContent, locale: string, prevContents?: FlowContent[]): Promise<FlowContent[]>;
24
22
  private getFlowContent;
25
23
  callFunction(functionNode: HtFunctionNode, locale: string): Promise<string>;
26
24
  }
package/lib/cjs/index.js CHANGED
@@ -5,7 +5,6 @@ const api_1 = require("./api");
5
5
  const content_fields_1 = require("./content-fields");
6
6
  const hubtype_fields_1 = require("./content-fields/hubtype-fields");
7
7
  const functions_1 = require("./functions");
8
- const helpers_1 = require("./helpers");
9
8
  const utils_1 = require("./utils");
10
9
  class BotonicPluginFlowBuilder {
11
10
  constructor(options) {
@@ -26,26 +25,29 @@ class BotonicPluginFlowBuilder {
26
25
  accessToken: this.getAccessToken(request.session),
27
26
  });
28
27
  }
29
- async post(_request) { }
30
- async getContents(nodeOrId, locale, prevContents) {
28
+ getContentsByCode(code, locale, prevContents) {
29
+ const node = this.cmsApi.getNodeByCode(code);
30
+ return this.getContentsByNode(node, locale, prevContents);
31
+ }
32
+ async getContentsById(id, locale, prevContents) {
33
+ const node = this.cmsApi.getNodeById(id);
34
+ return this.getContentsByNode(node, locale, prevContents);
35
+ }
36
+ async getContentsByNode(node, locale, prevContents) {
31
37
  const contents = prevContents || [];
32
- let node = nodeOrId;
33
- if (typeof nodeOrId === 'string') {
34
- node = this.cmsApi.getNodeById(nodeOrId);
35
- }
36
- const content = await this.getFlowContent(node, locale);
38
+ const content = this.getFlowContent(node, locale);
37
39
  if (node.type === hubtype_fields_1.HtNodeWithContentType.FUNCTION) {
38
40
  const targetId = await this.callFunction(node, locale);
39
- return this.getContents(targetId, locale, contents);
41
+ return this.getContentsById(targetId, locale, contents);
40
42
  }
41
43
  else {
42
44
  if (content)
43
45
  contents.push(content);
44
46
  // TODO: prevent infinite recursive calls
45
47
  if (node.follow_up)
46
- return this.getContents(node.follow_up.id, locale, contents);
48
+ return this.getContentsById(node.follow_up.id, locale, contents);
47
49
  }
48
- return { contents, handoffNode: (0, helpers_1.isHandoffNode)(node) ? node : undefined };
50
+ return contents;
49
51
  }
50
52
  getFlowContent(hubtypeContent, locale) {
51
53
  switch (hubtypeContent.type) {
@@ -59,6 +61,8 @@ class BotonicPluginFlowBuilder {
59
61
  return content_fields_1.FlowVideo.fromHubtypeCMS(hubtypeContent, locale);
60
62
  case hubtype_fields_1.HtNodeWithContentType.WHATSAPP_BUTTON_LIST:
61
63
  return content_fields_1.FlowWhatsappButtonList.fromHubtypeCMS(hubtypeContent, locale);
64
+ case hubtype_fields_1.HtNodeWithContentType.HANDOFF:
65
+ return content_fields_1.FlowHandoff.fromHubtypeCMS(hubtypeContent, locale, this.cmsApi);
62
66
  default:
63
67
  return undefined;
64
68
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAQA,+BAAsC;AACtC,qDAOyB;AACzB,oEAOwC;AACxC,2CAA+C;AAC/C,uCAAyC;AAEzC,mCAA+C;AAE/C,MAAqB,wBAAwB;IAc3C,YAAqB,OAAwC;QAAxC,YAAO,GAAP,OAAO,CAAiC;QAC3D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;QAC9B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QACxB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;QAClC,IAAI,CAAC,cAAc,GAAG,IAAA,6BAAqB,EAAC,OAAO,CAAC,CAAA;QACpD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAA;QACpC,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,EAAE,CAAA;QACrD,IAAI,CAAC,SAAS,mCAAQ,6BAAiB,GAAK,eAAe,CAAE,CAAA;IAC/D,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAAyB;QACjC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAA;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,oBAAc,CAAC,MAAM,CAAC;YACxC,GAAG,EAAE,IAAI,CAAC,OAAO;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC;SAClD,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAA2B,IAAkB,CAAC;IAEzD,KAAK,CAAC,WAAW,CACf,QAAoC,EACpC,MAAc,EACd,YAA4B;QAE5B,MAAM,QAAQ,GAAG,YAAY,IAAI,EAAE,CAAA;QACnC,IAAI,IAAI,GAAG,QAA6B,CAAA;QACxC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;YAChC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAsB,CAAA;SAC9D;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAEvD,IAAI,IAAI,CAAC,IAAI,KAAK,sCAAqB,CAAC,QAAQ,EAAE;YAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YACtD,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;SACpD;aAAM;YACL,IAAI,OAAO;gBAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACnC,yCAAyC;YAEzC,IAAI,IAAI,CAAC,SAAS;gBAChB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;SAC/D;QAED,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAA,uBAAa,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA;IAC1E,CAAC;IAEO,cAAc,CACpB,cAA+B,EAC/B,MAAc;QAEd,QAAQ,cAAc,CAAC,IAAI,EAAE;YAC3B,KAAK,sCAAqB,CAAC,IAAI;gBAC7B,OAAO,yBAAQ,CAAC,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;YACrE,KAAK,sCAAqB,CAAC,KAAK;gBAC9B,OAAO,0BAAS,CAAC,cAAc,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;YACzD,KAAK,sCAAqB,CAAC,QAAQ;gBACjC,OAAO,6BAAY,CAAC,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;YACzE,KAAK,sCAAqB,CAAC,KAAK;gBAC9B,OAAO,0BAAS,CAAC,cAAc,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;YACzD,KAAK,sCAAqB,CAAC,oBAAoB;gBAC7C,OAAO,uCAAsB,CAAC,cAAc,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;YACtE;gBACE,OAAO,SAAS,CAAA;SACnB;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,YAA4B,EAC5B,MAAc;;QAEd,MAAM,cAAc,GAAG,YAAY,CAAC,EAAE,CAAA;QACtC,MAAM,UAAU,GACd,CAAA,MAAA,YAAY,CAAC,OAAO,CAAC,SAAS;aAC3B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,0CACjC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,KAAI,EAAE,CAAA;QAEhE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CACxB;YACE,OAAO,EAAE,IAAI,CAAC,cAAc;YAC5B,OAAO,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;SAClE,EACD,GAAG,UAAU,CACd,CAAA;QACD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CACtE,IAAI,CACL,CAAA;QACD,0CAA0C;QAC1C,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CACrD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,cAAc,CACjC,CAAA;QACD,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAA,EAAE;YACnB,MAAM,IAAI,KAAK,CACb,wDAAwD,cAAc,EAAE,CACzE,CAAA;SACF;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAA;IACzB,CAAC;CACF;AAjHD,2CAiHC;AAED,mDAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,8 @@
1
1
  import { ActionRequest } from '@botonic/react';
2
2
  import React from 'react';
3
- import { FlowContent } from './content-fields';
3
+ import { FlowContent } from '../content-fields';
4
4
  type FlowBuilderActionProps = {
5
5
  contents: FlowContent[];
6
- isHandoff?: boolean;
7
6
  };
8
7
  export declare class FlowBuilderAction extends React.Component<FlowBuilderActionProps> {
9
8
  static contextType: React.Context<{
@@ -0,0 +1,66 @@
1
+ import { EventName, } from '@botonic/plugin-hubtype-analytics/lib/cjs/types';
2
+ import { Multichannel, RequestContext } from '@botonic/react';
3
+ import React from 'react';
4
+ import { FlowHandoff } from '../content-fields';
5
+ import { getFlowBuilderPlugin } from '../helpers';
6
+ import { trackEvent } from './tracking';
7
+ import { getNodeByUserInput } from './user-input';
8
+ export class FlowBuilderAction extends React.Component {
9
+ static async botonicInit(request) {
10
+ const flowBuilderPlugin = getFlowBuilderPlugin(request.plugins);
11
+ const locale = flowBuilderPlugin.getLocale(request.session);
12
+ const targetNode = await getTargetNode(flowBuilderPlugin.cmsApi, locale, request);
13
+ const contents = await flowBuilderPlugin.getContentsByNode(targetNode, locale);
14
+ const renderContents = contents.filter(async (content) => {
15
+ if (content instanceof FlowHandoff) {
16
+ await content.doHandoff(request);
17
+ return false;
18
+ }
19
+ return true;
20
+ });
21
+ return { contents: renderContents };
22
+ }
23
+ render() {
24
+ const { contents } = this.props;
25
+ return contents.map(content => content.toBotonic(content.id));
26
+ }
27
+ }
28
+ FlowBuilderAction.contextType = RequestContext;
29
+ export class FlowBuilderMultichannelAction extends FlowBuilderAction {
30
+ render() {
31
+ const { contents } = this.props;
32
+ return (React.createElement(Multichannel, { text: { buttonsAsText: false } }, contents.map(content => content.toBotonic(content.id))));
33
+ }
34
+ }
35
+ async function getTargetNode(cmsApi, locale, request) {
36
+ const contentId = request.input.payload;
37
+ let targetNode;
38
+ if (!contentId) {
39
+ targetNode = await getNodeByUserInput(cmsApi, locale, request);
40
+ }
41
+ else {
42
+ targetNode = cmsApi.getNodeById(contentId);
43
+ }
44
+ if (targetNode) {
45
+ const event = {
46
+ event_type: EventName.botFaq,
47
+ event_data: {
48
+ faq_name: targetNode.code,
49
+ },
50
+ };
51
+ await trackEvent(request, event);
52
+ return targetNode;
53
+ }
54
+ return await getFallbackNode(cmsApi, request);
55
+ }
56
+ async function getFallbackNode(cmsApi, request) {
57
+ const isFirstFallbackOption = request.session.user.extra_data.isFirstFallbackOption || true;
58
+ const fallbackNode = cmsApi.getFallbackNode(isFirstFallbackOption);
59
+ request.session.user.extra_data.isFirstFallbackOption = !isFirstFallbackOption;
60
+ const event = {
61
+ event_type: EventName.fallback,
62
+ };
63
+ await trackEvent(request, event);
64
+ return fallbackNode;
65
+ }
66
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/action/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { ActionRequest } from '@botonic/react';
2
+ import { FlowBuilderApi } from '../api';
3
+ import { HtNodeWithContent } from '../content-fields/hubtype-fields';
4
+ export declare function getNodeByIntent(cmsApi: FlowBuilderApi, locale: string, request: ActionRequest): Promise<HtNodeWithContent | undefined>;
@@ -0,0 +1,29 @@
1
+ import { EventName, } from '@botonic/plugin-hubtype-analytics/lib/cjs/types';
2
+ import { trackEvent } from './tracking';
3
+ export async function getNodeByIntent(cmsApi, locale, request) {
4
+ var _a;
5
+ const intentNode = cmsApi.getIntentNode(request.input, locale);
6
+ const eventBotAiModel = {
7
+ event_type: EventName.botAiModel,
8
+ event_data: {
9
+ intent: request.input.intent,
10
+ confidence: request.input.confidence,
11
+ confidence_successful: true,
12
+ },
13
+ };
14
+ if (isIntentValid(intentNode, request, cmsApi) && ((_a = intentNode === null || intentNode === void 0 ? void 0 : intentNode.target) === null || _a === void 0 ? void 0 : _a.id)) {
15
+ await trackEvent(request, eventBotAiModel);
16
+ return cmsApi.getNodeById(intentNode.target.id);
17
+ }
18
+ else {
19
+ eventBotAiModel.event_data.confidence_successful = false;
20
+ await trackEvent(request, eventBotAiModel);
21
+ return undefined;
22
+ }
23
+ }
24
+ function isIntentValid(intentNode, request, cmsApi) {
25
+ return (intentNode &&
26
+ request.input.confidence &&
27
+ cmsApi.hasMetConfidenceThreshold(intentNode, request.input.confidence));
28
+ }
29
+ //# sourceMappingURL=intent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent.js","sourceRoot":"","sources":["../../../src/action/intent.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,GACV,MAAM,iDAAiD,CAAA;AAQxD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAEvC,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAsB,EACtB,MAAc,EACd,OAAsB;;IAEtB,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAC9D,MAAM,eAAe,GAAoB;QACvC,UAAU,EAAE,SAAS,CAAC,UAAU;QAChC,UAAU,EAAE;YACV,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAgB;YACtC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,UAAoB;YAC9C,qBAAqB,EAAE,IAAI;SAC5B;KACF,CAAA;IACD,IAAI,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,KAAI,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,0CAAE,EAAE,CAAA,EAAE;QACxE,MAAM,UAAU,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;QAC1C,OAAO,MAAM,CAAC,WAAW,CAAoB,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;KACnE;SAAM;QACL,eAAe,CAAC,UAAU,CAAC,qBAAqB,GAAG,KAAK,CAAA;QACxD,MAAM,UAAU,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;QAC1C,OAAO,SAAS,CAAA;KACjB;AACH,CAAC;AAED,SAAS,aAAa,CACpB,UAAoC,EACpC,OAAsB,EACtB,MAAsB;IAEtB,OAAO,CACL,UAAU;QACV,OAAO,CAAC,KAAK,CAAC,UAAU;QACxB,MAAM,CAAC,yBAAyB,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CACvE,CAAA;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ActionRequest } from '@botonic/react';
2
+ import { FlowBuilderApi } from '../api';
3
+ export declare function getNodeByKeyword(cmsApi: FlowBuilderApi, locale: string, request: ActionRequest, userInput: string): Promise<import("../content-fields/hubtype-fields").HtNodeWithContent | undefined>;
@@ -0,0 +1,17 @@
1
+ import { EventName, } from '@botonic/plugin-hubtype-analytics/lib/cjs/types';
2
+ import { trackEvent } from './tracking';
3
+ export async function getNodeByKeyword(cmsApi, locale, request, userInput) {
4
+ const keywordNode = cmsApi.getNodeByKeyword(userInput, locale);
5
+ const eventBotKeywordModel = {
6
+ event_type: EventName.botKeywordsModel,
7
+ event_data: {
8
+ confidence_successful: true,
9
+ },
10
+ };
11
+ if (keywordNode) {
12
+ await trackEvent(request, eventBotKeywordModel);
13
+ return keywordNode;
14
+ }
15
+ return undefined;
16
+ }
17
+ //# sourceMappingURL=keyword.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyword.js","sourceRoot":"","sources":["../../../src/action/keyword.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,GACV,MAAM,iDAAiD,CAAA;AAIxD,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,MAAM,oBAAoB,GAAyB;QACjD,UAAU,EAAE,SAAS,CAAC,gBAAgB;QACtC,UAAU,EAAE;YACV,qBAAqB,EAAE,IAAI;SAC5B;KACF,CAAA;IACD,IAAI,WAAW,EAAE;QACf,MAAM,UAAU,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAA;QAC/C,OAAO,WAAW,CAAA;KACnB;IACD,OAAO,SAAS,CAAA;AAClB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { HtEventProps } from '@botonic/plugin-hubtype-analytics/lib/cjs/types';
2
+ import { ActionRequest } from '@botonic/react';
3
+ export declare function trackEvent(request: ActionRequest, event: HtEventProps): Promise<void>;
@@ -0,0 +1,9 @@
1
+ import { getFlowBuilderPlugin } from '../helpers';
2
+ export async function trackEvent(request, event) {
3
+ const flowBuilderPlugin = getFlowBuilderPlugin(request.plugins);
4
+ if (flowBuilderPlugin.trackEvent) {
5
+ await flowBuilderPlugin.trackEvent(request, event.event_type, event);
6
+ }
7
+ return;
8
+ }
9
+ //# sourceMappingURL=tracking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracking.js","sourceRoot":"","sources":["../../../src/action/tracking.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEjD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAsB,EAAE,KAAmB;IAC1E,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/D,IAAI,iBAAiB,CAAC,UAAU,EAAE;QAChC,MAAM,iBAAiB,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;KACrE;IACD,OAAM;AACR,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { ActionRequest } from '@botonic/react';
2
+ import { FlowBuilderApi } from '../api';
3
+ import { HtNodeWithContent } from '../content-fields/hubtype-fields';
4
+ export declare function getNodeByUserInput(cmsApi: FlowBuilderApi, locale: string, request: ActionRequest): Promise<HtNodeWithContent | undefined>;
@@ -0,0 +1,24 @@
1
+ import { EventName, } from '@botonic/plugin-hubtype-analytics/lib/cjs/types';
2
+ import { getNodeByIntent } from './intent';
3
+ import { getNodeByKeyword } from './keyword';
4
+ import { trackEvent } from './tracking';
5
+ export async function getNodeByUserInput(cmsApi, locale, request) {
6
+ if (request.session.is_first_interaction) {
7
+ const startNode = cmsApi.getStartNode();
8
+ const event = {
9
+ event_type: EventName.botStart,
10
+ };
11
+ await trackEvent(request, event);
12
+ return startNode;
13
+ }
14
+ if (request.input.data) {
15
+ const nodeByIntent = await getNodeByIntent(cmsApi, locale, request);
16
+ if (nodeByIntent)
17
+ return nodeByIntent;
18
+ const keywordNode = await getNodeByKeyword(cmsApi, locale, request, request.input.data);
19
+ if (keywordNode)
20
+ return keywordNode;
21
+ }
22
+ return undefined;
23
+ }
24
+ //# sourceMappingURL=user-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-input.js","sourceRoot":"","sources":["../../../src/action/user-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,GACV,MAAM,iDAAiD,CAAA;AAKxD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAEvC,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAsB,EACtB,MAAc,EACd,OAAsB;IAEtB,IAAI,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE;QACxC,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAA;QACvC,MAAM,KAAK,GAAkB;YAC3B,UAAU,EAAE,SAAS,CAAC,QAAQ;SAC/B,CAAA;QACD,MAAM,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAChC,OAAO,SAAS,CAAA;KACjB;IAED,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE;QACtB,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QACnE,IAAI,YAAY;YAAE,OAAO,YAAY,CAAA;QAErC,MAAM,WAAW,GAAG,MAAM,gBAAgB,CACxC,MAAM,EACN,MAAM,EACN,OAAO,EACP,OAAO,CAAC,KAAK,CAAC,IAAI,CACnB,CAAA;QACD,IAAI,WAAW;YAAE,OAAO,WAAW,CAAA;KACpC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC"}
package/lib/esm/api.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Input } from '@botonic/core';
2
- import { HtFlowBuilderData, HtNodeComponent, HtNodeWithContent } from './content-fields/hubtype-fields';
2
+ import { HtFlowBuilderData, HtIntentNode, HtNodeComponent, HtNodeWithContent } from './content-fields/hubtype-fields';
3
3
  import { FlowBuilderApiOptions } from './types';
4
4
  export declare class FlowBuilderApi {
5
5
  url: string;
@@ -11,9 +11,9 @@ export declare class FlowBuilderApi {
11
11
  getNodeByCode(code: string): HtNodeComponent;
12
12
  getStartNode(): HtNodeWithContent;
13
13
  getFallbackNode(alternate: boolean): HtNodeWithContent;
14
- getNodeByIntent(input: Input, locale: string): HtNodeWithContent | undefined;
15
- private hasIntent;
16
- private hasMetConfidenceThreshold;
14
+ getIntentNode(input: Input, locale: string): HtIntentNode | undefined;
15
+ private nodeContainsIntent;
16
+ hasMetConfidenceThreshold(node: HtIntentNode, predictedConfidence: number): boolean;
17
17
  getNodeByKeyword(userInput: string, locale: string): HtNodeWithContent | undefined;
18
18
  private matchKeywords;
19
19
  private containsAnyKeywords;
package/lib/esm/api.js CHANGED
@@ -50,18 +50,12 @@ export class FlowBuilderApi {
50
50
  ? this.getNodeById(fallbackFirstMessage.id)
51
51
  : this.getNodeById(fallbackSecondMessage.id);
52
52
  }
53
- getNodeByIntent(input, locale) {
53
+ getIntentNode(input, locale) {
54
54
  try {
55
- const intents = this.flow.nodes.filter(node => node.type === HtNodeWithContentType.INTENT);
55
+ const intentsNodes = this.flow.nodes.filter(node => node.type === HtNodeWithContentType.INTENT);
56
56
  const inputIntent = input.intent;
57
- const inputConfidence = input.confidence;
58
57
  if (inputIntent) {
59
- const matchedIntentNode = intents.find(node => inputIntent &&
60
- this.hasIntent(node, inputIntent, locale) &&
61
- inputConfidence &&
62
- this.hasMetConfidenceThreshold(node, inputConfidence));
63
- return ((matchedIntentNode === null || matchedIntentNode === void 0 ? void 0 : matchedIntentNode.target) &&
64
- this.getNodeById(matchedIntentNode === null || matchedIntentNode === void 0 ? void 0 : matchedIntentNode.target.id));
58
+ return intentsNodes.find(node => inputIntent && this.nodeContainsIntent(node, inputIntent, locale));
65
59
  }
66
60
  }
67
61
  catch (error) {
@@ -69,7 +63,7 @@ export class FlowBuilderApi {
69
63
  }
70
64
  return undefined;
71
65
  }
72
- hasIntent(node, intent, locale) {
66
+ nodeContainsIntent(node, intent, locale) {
73
67
  return node.content.intents.some(i => i.locale === locale && i.values.includes(intent));
74
68
  }
75
69
  hasMetConfidenceThreshold(node, predictedConfidence) {
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
- import { HtMediaFileLocale, HtTextLocale, HtVideoLocale } from './hubtype-fields';
1
+ import { HtMediaFileLocale, HtQueueLocale, HtTextLocale, HtVideoLocale } from './hubtype-fields';
2
2
  export declare abstract class ContentFieldsBase {
3
3
  readonly id: string;
4
4
  constructor(id: string);
5
5
  static getTextByLocale(locale: string, text: HtTextLocale[]): string;
6
6
  static getImageByLocale(locale: string, image: HtMediaFileLocale[]): string;
7
7
  static getVideoByLocale(locale: string, video: HtVideoLocale[]): string;
8
+ static getQueueByLocale(locale: string, queues: HtQueueLocale[]): HtQueueLocale | undefined;
8
9
  }
@@ -17,5 +17,8 @@ export class ContentFieldsBase {
17
17
  const result = video.find(v => v.locale === locale);
18
18
  return (_a = result === null || result === void 0 ? void 0 : result.url) !== null && _a !== void 0 ? _a : '';
19
19
  }
20
+ static getQueueByLocale(locale, queues) {
21
+ return queues.find(queue => queue.locale === locale);
22
+ }
20
23
  }
21
24
  //# 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":"AAMA,MAAM,OAAgB,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;CACF"}
1
+ {"version":3,"file":"content-fields-base.js","sourceRoot":"","sources":["../../../src/content-fields/content-fields-base.ts"],"names":[],"mappings":"AAOA,MAAM,OAAgB,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"}
@@ -0,0 +1,15 @@
1
+ /// <reference types="react" />
2
+ import { ActionRequest } from '@botonic/react';
3
+ import { FlowBuilderApi } from '../api';
4
+ import { ContentFieldsBase } from './content-fields-base';
5
+ import { HtHandoffNode, HtQueueLocale } from './hubtype-fields';
6
+ export declare class FlowHandoff extends ContentFieldsBase {
7
+ code: string;
8
+ queue?: HtQueueLocale;
9
+ onFinishPayload?: string;
10
+ handoffAutoAssign: boolean;
11
+ static fromHubtypeCMS(cmsHandoff: HtHandoffNode, locale: string, cmsApi: FlowBuilderApi): FlowHandoff;
12
+ private static getOnFinishPayload;
13
+ doHandoff(request: ActionRequest): Promise<void>;
14
+ toBotonic(): JSX.Element;
15
+ }
@@ -0,0 +1,55 @@
1
+ import { HandOffBuilder } from '@botonic/core';
2
+ import { EventName, } from '@botonic/plugin-hubtype-analytics/lib/cjs/types';
3
+ import React from 'react';
4
+ import { trackEvent } from '../action/tracking';
5
+ import { getQueueAvailability } from '../functions/conditional-queue-status';
6
+ import { ContentFieldsBase } from './content-fields-base';
7
+ export class FlowHandoff extends ContentFieldsBase {
8
+ static fromHubtypeCMS(cmsHandoff, locale, cmsApi) {
9
+ const newHandoff = new FlowHandoff(cmsHandoff.id);
10
+ newHandoff.code = cmsHandoff.code;
11
+ newHandoff.queue = this.getQueueByLocale(locale, cmsHandoff.content.queue);
12
+ newHandoff.onFinishPayload = this.getOnFinishPayload(cmsHandoff, locale, cmsApi);
13
+ newHandoff.handoffAutoAssign = cmsHandoff.content.has_auto_assign;
14
+ return newHandoff;
15
+ }
16
+ static getOnFinishPayload(cmsHandoff, locale, cmsApi) {
17
+ var _a, _b, _c;
18
+ if ((_a = cmsHandoff.target) === null || _a === void 0 ? void 0 : _a.id) {
19
+ const handoffTargetNode = cmsApi.getNodeById((_b = cmsHandoff.target) === null || _b === void 0 ? void 0 : _b.id);
20
+ if (handoffTargetNode === null || handoffTargetNode === void 0 ? void 0 : handoffTargetNode.id)
21
+ return handoffTargetNode === null || handoffTargetNode === void 0 ? void 0 : handoffTargetNode.id;
22
+ }
23
+ const payloadId = (_c = cmsHandoff.content.payload.find(payload => payload.locale === locale)) === null || _c === void 0 ? void 0 : _c.id;
24
+ if (!payloadId)
25
+ return undefined;
26
+ const actionPayload = cmsApi.getNodeById(payloadId);
27
+ return actionPayload.content.payload;
28
+ }
29
+ async doHandoff(request) {
30
+ // @ts-ignore
31
+ const handOffBuilder = new HandOffBuilder(request.session);
32
+ handOffBuilder.withAutoAssignOnWaiting(this.handoffAutoAssign);
33
+ if (this.onFinishPayload) {
34
+ handOffBuilder.withOnFinishPayload(this.onFinishPayload);
35
+ }
36
+ if (this.queue) {
37
+ const availabilityData = await getQueueAvailability(this.queue.id);
38
+ const event = {
39
+ event_type: EventName.handoffSuccess,
40
+ event_data: {
41
+ queue_open: availabilityData.open,
42
+ available_agents: availabilityData.available_agents > 0,
43
+ threshold_reached: availabilityData.availability_threshold_waiting_cases > 0,
44
+ },
45
+ };
46
+ await trackEvent(request, event);
47
+ handOffBuilder.withQueue(this.queue.id);
48
+ await handOffBuilder.handOff();
49
+ }
50
+ }
51
+ toBotonic() {
52
+ return React.createElement(React.Fragment, null);
53
+ }
54
+ }
55
+ //# sourceMappingURL=flow-handoff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-handoff.js","sourceRoot":"","sources":["../../../src/content-fields/flow-handoff.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { FlowCarousel } from './flow-carousel';
2
+ import { FlowHandoff } from './flow-handoff';
2
3
  import { FlowImage } from './flow-image';
3
4
  import { FlowText } from './flow-text';
4
5
  import { FlowVideo } from './flow-video';
@@ -7,4 +8,5 @@ export { ContentFieldsBase } from './content-fields-base';
7
8
  export { FlowButton } from './flow-button';
8
9
  export { FlowElement } from './flow-element';
9
10
  export { FlowCarousel, FlowImage, FlowText, FlowVideo, FlowWhatsappButtonList };
10
- export type FlowContent = FlowCarousel | FlowImage | FlowText | FlowVideo | FlowWhatsappButtonList;
11
+ export { FlowHandoff } from './flow-handoff';
12
+ export type FlowContent = FlowCarousel | FlowImage | FlowText | FlowVideo | FlowWhatsappButtonList | FlowHandoff;
@@ -7,4 +7,5 @@ export { ContentFieldsBase } from './content-fields-base';
7
7
  export { FlowButton } from './flow-button';
8
8
  export { FlowElement } from './flow-element';
9
9
  export { FlowCarousel, FlowImage, FlowText, FlowVideo, FlowWhatsappButtonList };
10
+ export { FlowHandoff } from './flow-handoff';
10
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/content-fields/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAA;AAEzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/content-fields/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAA;AAEzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAA;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA"}
@@ -1,4 +1,4 @@
1
- import { WhatsappButtonListRowProps } from '@botonic/react/lib/cjs/components/whatsapp-button-list';
1
+ import { WhatsappButtonListRowProps } from '@botonic/react';
2
2
  import { ContentFieldsBase } from '../content-fields-base';
3
3
  import { HtWhatsappButtonListRow } from '../hubtype-fields';
4
4
  export declare class FlowWhatsappButtonListRow extends ContentFieldsBase {
@@ -1,4 +1,4 @@
1
- import { WhatsappButtonListSectionProps } from '@botonic/react/lib/cjs/components/whatsapp-button-list';
1
+ import { WhatsappButtonListSectionProps } from '@botonic/react';
2
2
  import { HtWhatsappButtonListSection } from '../hubtype-fields';
3
3
  import { ContentFieldsBase } from './../content-fields-base';
4
4
  import { FlowWhatsappButtonListRow } from './flow-whatsapp-button-list-row';
@@ -19,10 +19,7 @@ export class FlowWhatsappButtonList extends ContentFieldsBase {
19
19
  return newWhatsappButtonList;
20
20
  }
21
21
  toBotonic(id) {
22
- return (React.createElement(WhatsappButtonList, { key: id, body: this.text, action: {
23
- button: this.listButtonText,
24
- sections: this.sections.map(section => section.toBotonic()),
25
- } }));
22
+ return (React.createElement(WhatsappButtonList, { key: id, body: this.text, button: this.listButtonText, sections: this.sections.map(section => section.toBotonic()) }));
26
23
  }
27
24
  }
28
25
  //# sourceMappingURL=flow-whatsapp-button-list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"flow-whatsapp-button-list.js","sourceRoot":"","sources":["../../../../src/content-fields/whatsapp-button-list/flow-whatsapp-button-list.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAA;AAEnF,MAAM,OAAO,sBAAuB,SAAQ,iBAAiB;IAA7D;;QACS,SAAI,GAAG,EAAE,CAAA;QACT,SAAI,GAAG,EAAE,CAAA;QACT,mBAAc,GAAG,EAAE,CAAA;QACnB,aAAQ,GAAoC,EAAE,CAAA;IAkCvD,CAAC;IAhCC,MAAM,CAAC,cAAc,CACnB,SAAmC,EACnC,MAAc;QAEd,MAAM,qBAAqB,GAAG,IAAI,sBAAsB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;QACtE,qBAAqB,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAA;QAC3C,qBAAqB,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAC/C,MAAM,EACN,SAAS,CAAC,OAAO,CAAC,IAAI,CACvB,CAAA;QACD,qBAAqB,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,CACzD,MAAM,EACN,SAAS,CAAC,OAAO,CAAC,WAAW,CAC9B,CAAA;QACD,qBAAqB,CAAC,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CACxE,6BAA6B,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAC9D,CAAA;QACD,OAAO,qBAAqB,CAAA;IAC9B,CAAC;IAED,SAAS,CAAC,EAAU;QAClB,OAAO,CACL,oBAAC,kBAAkB,IACjB,GAAG,EAAE,EAAE,EACP,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,MAAM,EAAE;gBACN,MAAM,EAAE,IAAI,CAAC,cAAc;gBAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;aAC5D,GACmB,CACvB,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"flow-whatsapp-button-list.js","sourceRoot":"","sources":["../../../../src/content-fields/whatsapp-button-list/flow-whatsapp-button-list.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAA;AAEnF,MAAM,OAAO,sBAAuB,SAAQ,iBAAiB;IAA7D;;QACS,SAAI,GAAG,EAAE,CAAA;QACT,SAAI,GAAG,EAAE,CAAA;QACT,mBAAc,GAAG,EAAE,CAAA;QACnB,aAAQ,GAAoC,EAAE,CAAA;IAgCvD,CAAC;IA9BC,MAAM,CAAC,cAAc,CACnB,SAAmC,EACnC,MAAc;QAEd,MAAM,qBAAqB,GAAG,IAAI,sBAAsB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;QACtE,qBAAqB,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAA;QAC3C,qBAAqB,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAC/C,MAAM,EACN,SAAS,CAAC,OAAO,CAAC,IAAI,CACvB,CAAA;QACD,qBAAqB,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,CACzD,MAAM,EACN,SAAS,CAAC,OAAO,CAAC,WAAW,CAC9B,CAAA;QACD,qBAAqB,CAAC,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CACxE,6BAA6B,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAC9D,CAAA;QACD,OAAO,qBAAqB,CAAA;IAC9B,CAAC;IAED,SAAS,CAAC,EAAU;QAClB,OAAO,CACL,oBAAC,kBAAkB,IACjB,GAAG,EAAE,EAAE,EACP,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,MAAM,EAAE,IAAI,CAAC,cAAc,EAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,GACvC,CACvB,CAAA;IACH,CAAC;CACF"}
@@ -4,5 +4,14 @@ type ConditionalQueueStatusArgs = {
4
4
  queue_id: string;
5
5
  queue_name: string;
6
6
  };
7
- export declare function conditionalQueueStatus({ request, queue_id, queue_name, }: ConditionalQueueStatusArgs): Promise<string>;
7
+ export declare function conditionalQueueStatus({ queue_id, }: ConditionalQueueStatusArgs): Promise<string>;
8
+ interface AvailabilityData {
9
+ available: boolean;
10
+ waiting_cases: number;
11
+ availability_threshold_waiting_cases: number;
12
+ open: boolean;
13
+ name: string;
14
+ available_agents: number;
15
+ }
16
+ export declare function getQueueAvailability(queueId: string): Promise<AvailabilityData>;
8
17
  export {};
@@ -1,11 +1,15 @@
1
1
  import axios from 'axios';
2
- import { getFlowBuilderPlugin } from '../helpers';
3
2
  import { getWebpackEnvVar } from '../utils';
4
3
  const _HUBTYPE_API_URL_ = getWebpackEnvVar(
5
4
  // @ts-ignore
6
5
  typeof HUBTYPE_API_URL !== 'undefined' && HUBTYPE_API_URL, 'HUBTYPE_API_URL', 'https://api.hubtype.com');
7
- export async function conditionalQueueStatus({ request, queue_id, queue_name, }) {
8
- const response = await axios.get(`${_HUBTYPE_API_URL_}/v1/queues/${queue_id}/availability/`,
6
+ export async function conditionalQueueStatus({ queue_id, }) {
7
+ const data = await getQueueAvailability(queue_id);
8
+ const isAvailable = data.available;
9
+ return isAvailable ? 'open' : 'closed';
10
+ }
11
+ export async function getQueueAvailability(queueId) {
12
+ const response = await axios.get(`${_HUBTYPE_API_URL_}/v1/queues/${queueId}/availability/`,
9
13
  // TODO: Make it configurable in the future
10
14
  {
11
15
  params: {
@@ -14,16 +18,6 @@ export async function conditionalQueueStatus({ request, queue_id, queue_name, })
14
18
  check_available_agents: false,
15
19
  },
16
20
  });
17
- const isAvailable = response.data.available;
18
- const flowBuilderPlugin = getFlowBuilderPlugin(request.plugins);
19
- if (flowBuilderPlugin.trackEvent) {
20
- const eventName = `QUEUE_${isAvailable ? 'OPEN' : 'CLOSED'}`;
21
- const args = {
22
- queue_id,
23
- queue_name,
24
- };
25
- await flowBuilderPlugin.trackEvent(request, eventName, args);
26
- }
27
- return isAvailable ? 'open' : 'closed';
21
+ return response.data;
28
22
  }
29
23
  //# sourceMappingURL=conditional-queue-status.js.map