@botonic/plugin-flow-builder 0.42.5 → 0.43.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/lib/cjs/action/payload.js +29 -2
  2. package/lib/cjs/action/payload.js.map +1 -1
  3. package/lib/cjs/api.d.ts +2 -0
  4. package/lib/cjs/api.js +11 -1
  5. package/lib/cjs/api.js.map +1 -1
  6. package/lib/cjs/constants.d.ts +2 -1
  7. package/lib/cjs/constants.js +3 -2
  8. package/lib/cjs/constants.js.map +1 -1
  9. package/lib/cjs/content-fields/content-fields-base.d.ts +2 -0
  10. package/lib/cjs/content-fields/content-fields-base.js +21 -0
  11. package/lib/cjs/content-fields/content-fields-base.js.map +1 -1
  12. package/lib/cjs/content-fields/flow-carousel.d.ts +2 -0
  13. package/lib/cjs/content-fields/flow-carousel.js +70 -27
  14. package/lib/cjs/content-fields/flow-carousel.js.map +1 -1
  15. package/lib/cjs/content-fields/flow-text.d.ts +0 -2
  16. package/lib/cjs/content-fields/flow-text.js +1 -21
  17. package/lib/cjs/content-fields/flow-text.js.map +1 -1
  18. package/lib/cjs/content-fields/flow-whatsapp-template.d.ts +28 -0
  19. package/lib/cjs/content-fields/flow-whatsapp-template.js +163 -0
  20. package/lib/cjs/content-fields/flow-whatsapp-template.js.map +1 -0
  21. package/lib/cjs/content-fields/hubtype-fields/carousel.d.ts +1 -0
  22. package/lib/cjs/content-fields/hubtype-fields/common.d.ts +6 -0
  23. package/lib/cjs/content-fields/hubtype-fields/index.d.ts +1 -0
  24. package/lib/cjs/content-fields/hubtype-fields/index.js +1 -0
  25. package/lib/cjs/content-fields/hubtype-fields/index.js.map +1 -1
  26. package/lib/cjs/content-fields/hubtype-fields/node-types.d.ts +1 -0
  27. package/lib/cjs/content-fields/hubtype-fields/node-types.js +1 -0
  28. package/lib/cjs/content-fields/hubtype-fields/node-types.js.map +1 -1
  29. package/lib/cjs/content-fields/hubtype-fields/nodes.d.ts +2 -1
  30. package/lib/cjs/content-fields/hubtype-fields/whatsapp-template.d.ts +66 -0
  31. package/lib/cjs/content-fields/hubtype-fields/whatsapp-template.js +3 -0
  32. package/lib/cjs/content-fields/hubtype-fields/whatsapp-template.js.map +1 -0
  33. package/lib/cjs/content-fields/index.d.ts +3 -2
  34. package/lib/cjs/content-fields/index.js +3 -1
  35. package/lib/cjs/content-fields/index.js.map +1 -1
  36. package/lib/cjs/flow-factory.js +2 -0
  37. package/lib/cjs/flow-factory.js.map +1 -1
  38. package/lib/esm/action/payload.js +30 -3
  39. package/lib/esm/action/payload.js.map +1 -1
  40. package/lib/esm/api.d.ts +2 -0
  41. package/lib/esm/api.js +11 -1
  42. package/lib/esm/api.js.map +1 -1
  43. package/lib/esm/constants.d.ts +2 -1
  44. package/lib/esm/constants.js +2 -1
  45. package/lib/esm/constants.js.map +1 -1
  46. package/lib/esm/content-fields/content-fields-base.d.ts +2 -0
  47. package/lib/esm/content-fields/content-fields-base.js +21 -0
  48. package/lib/esm/content-fields/content-fields-base.js.map +1 -1
  49. package/lib/esm/content-fields/flow-carousel.d.ts +2 -0
  50. package/lib/esm/content-fields/flow-carousel.js +72 -29
  51. package/lib/esm/content-fields/flow-carousel.js.map +1 -1
  52. package/lib/esm/content-fields/flow-text.d.ts +0 -2
  53. package/lib/esm/content-fields/flow-text.js +2 -22
  54. package/lib/esm/content-fields/flow-text.js.map +1 -1
  55. package/lib/esm/content-fields/flow-whatsapp-template.d.ts +28 -0
  56. package/lib/esm/content-fields/flow-whatsapp-template.js +159 -0
  57. package/lib/esm/content-fields/flow-whatsapp-template.js.map +1 -0
  58. package/lib/esm/content-fields/hubtype-fields/carousel.d.ts +1 -0
  59. package/lib/esm/content-fields/hubtype-fields/common.d.ts +6 -0
  60. package/lib/esm/content-fields/hubtype-fields/index.d.ts +1 -0
  61. package/lib/esm/content-fields/hubtype-fields/index.js +1 -0
  62. package/lib/esm/content-fields/hubtype-fields/index.js.map +1 -1
  63. package/lib/esm/content-fields/hubtype-fields/node-types.d.ts +1 -0
  64. package/lib/esm/content-fields/hubtype-fields/node-types.js +1 -0
  65. package/lib/esm/content-fields/hubtype-fields/node-types.js.map +1 -1
  66. package/lib/esm/content-fields/hubtype-fields/nodes.d.ts +2 -1
  67. package/lib/esm/content-fields/hubtype-fields/whatsapp-template.d.ts +66 -0
  68. package/lib/esm/content-fields/hubtype-fields/whatsapp-template.js +2 -0
  69. package/lib/esm/content-fields/hubtype-fields/whatsapp-template.js.map +1 -0
  70. package/lib/esm/content-fields/index.d.ts +3 -2
  71. package/lib/esm/content-fields/index.js +2 -1
  72. package/lib/esm/content-fields/index.js.map +1 -1
  73. package/lib/esm/flow-factory.js +3 -1
  74. package/lib/esm/flow-factory.js.map +1 -1
  75. package/package.json +3 -3
  76. package/src/action/payload.ts +39 -1
  77. package/src/api.ts +14 -1
  78. package/src/constants.ts +2 -1
  79. package/src/content-fields/content-fields-base.ts +31 -0
  80. package/src/content-fields/flow-carousel.tsx +103 -33
  81. package/src/content-fields/flow-text.tsx +2 -28
  82. package/src/content-fields/flow-whatsapp-template.tsx +274 -0
  83. package/src/content-fields/hubtype-fields/carousel.ts +1 -0
  84. package/src/content-fields/hubtype-fields/common.ts +7 -0
  85. package/src/content-fields/hubtype-fields/index.ts +1 -0
  86. package/src/content-fields/hubtype-fields/node-types.ts +1 -0
  87. package/src/content-fields/hubtype-fields/nodes.ts +2 -0
  88. package/src/content-fields/hubtype-fields/whatsapp-template.ts +84 -0
  89. package/src/content-fields/index.ts +3 -0
  90. package/src/flow-factory.ts +4 -0
@@ -1,3 +1,5 @@
1
+ import { ACCESS_TOKEN_VARIABLE_KEY, VARIABLE_PATTERN_GLOBAL, } from '../constants';
2
+ import { getValueFromKeyPath } from '../utils';
1
3
  export class ContentFieldsBase {
2
4
  constructor(id) {
3
5
  this.id = id;
@@ -20,5 +22,24 @@ export class ContentFieldsBase {
20
22
  static getQueueByLocale(locale, queues) {
21
23
  return queues.find(queue => queue.locale === locale);
22
24
  }
25
+ replaceVariables(text, request) {
26
+ const matches = text.match(VARIABLE_PATTERN_GLOBAL);
27
+ let replacedText = text;
28
+ if (matches && request) {
29
+ matches.forEach(match => {
30
+ const keyPath = match.slice(1, -1);
31
+ const botVariable = keyPath.endsWith(ACCESS_TOKEN_VARIABLE_KEY)
32
+ ? match
33
+ : getValueFromKeyPath(request, keyPath);
34
+ // TODO In local if change variable and render multiple times the value is always the last update
35
+ replacedText = replacedText.replace(match, this.isValidType(botVariable) ? botVariable : match);
36
+ });
37
+ }
38
+ return replacedText;
39
+ }
40
+ isValidType(botVariable) {
41
+ const validTypes = ['boolean', 'string', 'number'];
42
+ return validTypes.includes(typeof botVariable);
43
+ }
23
44
  }
24
45
  //# 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":"AAUA,MAAM,OAAgB,iBAAiB;IAIrC,YAA4B,EAAU;QAAV,OAAE,GAAF,EAAE,CAAQ;IAAG,CAAC;IAI1C,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"}
1
+ {"version":3,"file":"content-fields-base.js","sourceRoot":"","sources":["../../../src/content-fields/content-fields-base.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAS9C,MAAM,OAAgB,iBAAiB;IAIrC,YAA4B,EAAU;QAAV,OAAE,GAAF,EAAE,CAAQ;IAAG,CAAC;IAI1C,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;IAED,gBAAgB,CAAC,IAAY,EAAE,OAAsB;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;QAEnD,IAAI,YAAY,GAAG,IAAI,CAAA;QACvB,IAAI,OAAO,IAAI,OAAO,EAAE;YACtB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACtB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;gBAClC,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC;oBAC7D,CAAC,CAAC,KAAK;oBACP,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;gBACzC,iGAAiG;gBACjG,YAAY,GAAG,YAAY,CAAC,OAAO,CACjC,KAAK,EACL,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CACpD,CAAA;YACH,CAAC,CAAC,CAAA;SACH;QAED,OAAO,YAAY,CAAA;IACrB,CAAC;IAEO,WAAW,CAAC,WAAgB;QAClC,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAClD,OAAO,UAAU,CAAC,QAAQ,CAAC,OAAO,WAAW,CAAC,CAAA;IAChD,CAAC;CACF"}
@@ -6,6 +6,7 @@ import { ContentFieldsBase } from './content-fields-base';
6
6
  import { FlowElement } from './flow-element';
7
7
  import { HtCarouselNode } from './hubtype-fields';
8
8
  export declare class FlowCarousel extends ContentFieldsBase {
9
+ whatsappText: string;
9
10
  elements: FlowElement[];
10
11
  static fromHubtypeCMS(component: HtCarouselNode, locale: string, cmsApi: FlowBuilderApi): FlowCarousel;
11
12
  trackFlow(request: ActionRequest): Promise<void>;
@@ -14,6 +15,7 @@ export declare class FlowCarousel extends ContentFieldsBase {
14
15
  title: string;
15
16
  subtitle?: string;
16
17
  }): string;
18
+ private static createCardsFromElements;
17
19
  static fromAIAgent(id: string, carouselMessage: CarouselMessage, request: ActionRequest): JSX.Element;
18
20
  private toCarouselMessage;
19
21
  toBotonic(id: string, request: ActionRequest): JSX.Element;
@@ -1,7 +1,7 @@
1
1
  import { __awaiter } from "tslib";
2
- import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { isWhatsapp } from '@botonic/core';
4
- import { Carousel, WhatsappCTAUrlButton, WhatsappCTAUrlHeaderType, WhatsappInteractiveMediaCarousel, } from '@botonic/react';
4
+ import { Button, CardType, Carousel, Text, WhatsappCTAUrlButton, WhatsappCTAUrlHeaderType, WhatsappInteractiveMediaCarousel, } from '@botonic/react';
5
5
  import { trackOneContent } from '../tracking';
6
6
  import { ContentFieldsBase } from './content-fields-base';
7
7
  import { FlowElement } from './flow-element';
@@ -9,12 +9,14 @@ const DEFAULT_TEXT_MESSAGE = 'These are the options';
9
9
  export class FlowCarousel extends ContentFieldsBase {
10
10
  constructor() {
11
11
  super(...arguments);
12
+ this.whatsappText = '';
12
13
  this.elements = [];
13
14
  }
14
15
  static fromHubtypeCMS(component, locale, cmsApi) {
15
16
  const newCarousel = new FlowCarousel(component.id);
16
17
  newCarousel.code = component.code;
17
18
  newCarousel.elements = component.content.elements.map(element => FlowElement.fromHubtypeCMS(element, locale, cmsApi));
19
+ newCarousel.whatsappText = this.getTextByLocale(locale, component.content.whatsapp_text);
18
20
  newCarousel.followUp = component.follow_up;
19
21
  return newCarousel;
20
22
  }
@@ -32,24 +34,61 @@ export class FlowCarousel extends ContentFieldsBase {
32
34
  }
33
35
  return element.title;
34
36
  }
37
+ static createCardsFromElements(elements) {
38
+ return elements.map(element => {
39
+ var _a, _b;
40
+ const text = FlowCarousel.generateWhatsappElementText(element);
41
+ if ((_a = element.button) === null || _a === void 0 ? void 0 : _a.url) {
42
+ return {
43
+ imageLink: element.image,
44
+ text,
45
+ type: CardType.CTA_URL,
46
+ action: {
47
+ buttonText: element.button.text,
48
+ buttonUrl: element.button.url,
49
+ },
50
+ };
51
+ }
52
+ if ((_b = element.button) === null || _b === void 0 ? void 0 : _b.payload) {
53
+ return {
54
+ imageLink: element.image,
55
+ text,
56
+ type: CardType.QUICK_REPLY,
57
+ action: {
58
+ buttons: [
59
+ {
60
+ text: element.button.text,
61
+ payload: element.button.payload,
62
+ },
63
+ ],
64
+ },
65
+ };
66
+ }
67
+ throw new Error('Element must have a url or a payload');
68
+ });
69
+ }
35
70
  static fromAIAgent(id, carouselMessage, request) {
71
+ var _a, _b;
36
72
  if (isWhatsapp(request.session) &&
37
73
  FlowCarousel.areElementsValidForWhatsapp(carouselMessage)) {
38
- if (carouselMessage.content.elements.length === 1) {
74
+ if (carouselMessage.content.elements.length === 1 &&
75
+ ((_a = carouselMessage.content.elements[0].button) === null || _a === void 0 ? void 0 : _a.url)) {
39
76
  const element = carouselMessage.content.elements[0];
77
+ const buttonText = element.button.text;
78
+ const url = carouselMessage.content.elements[0].button.url;
40
79
  // TODO: Add a new fromAIAgent method in FlowWhatsappCtaUrlButtonNode to create a WhatsappCTAUrlButton from an AIAgent message
41
- return (_jsx(WhatsappCTAUrlButton, { body: element.title, headerType: WhatsappCTAUrlHeaderType.Image, headerImage: element.image, footer: element.subtitle, displayText: element.button.text, url: element.button.url }, id));
80
+ return (_jsx(WhatsappCTAUrlButton, { body: element.title, headerType: WhatsappCTAUrlHeaderType.Image, headerImage: element.image, footer: element.subtitle, displayText: buttonText, url: url }, id));
42
81
  }
43
- return (_jsx(WhatsappInteractiveMediaCarousel, { cards: carouselMessage.content.elements.map(element => {
44
- const buttonText = element.button.text;
45
- const buttonUrl = element.button.url;
46
- const imageLink = element.image;
47
- const text = FlowCarousel.generateWhatsappElementText(element);
48
- return {
49
- text,
50
- action: { buttonText, buttonUrl, imageLink },
51
- };
52
- }), textMessage: carouselMessage.content.text || DEFAULT_TEXT_MESSAGE }));
82
+ if (carouselMessage.content.elements.length === 1 &&
83
+ ((_b = carouselMessage.content.elements[0].button) === null || _b === void 0 ? void 0 : _b.payload)) {
84
+ const element = carouselMessage.content.elements[0];
85
+ const text = FlowCarousel.generateWhatsappElementText(element);
86
+ const buttonPayload = carouselMessage.content.elements[0].button.payload;
87
+ const buttonText = carouselMessage.content.elements[0].button.text;
88
+ return (_jsxs(Text, { children: [text, _jsx(Button, Object.assign({ payload: buttonPayload }, { children: buttonText }))] }));
89
+ }
90
+ const elements = carouselMessage.content.elements.map((element, index) => FlowElement.fromAIAgent(`${id}-element-${index}`, element));
91
+ return (_jsx(WhatsappInteractiveMediaCarousel, { cards: FlowCarousel.createCardsFromElements(elements), textMessage: carouselMessage.content.text || DEFAULT_TEXT_MESSAGE }));
53
92
  }
54
93
  return (_jsx(Carousel, { children: carouselMessage.content.elements.map((element, index) => FlowElement.fromAIAgent(`${id}-element-${index}`, element).toBotonic(id)) }, id));
55
94
  }
@@ -74,33 +113,37 @@ export class FlowCarousel extends ContentFieldsBase {
74
113
  };
75
114
  }
76
115
  toBotonic(id, request) {
116
+ var _a, _b;
77
117
  const carouselMessage = this.toCarouselMessage(this.elements);
78
118
  if (isWhatsapp(request.session) &&
79
119
  FlowCarousel.areElementsValidForWhatsapp(carouselMessage)) {
80
- if (this.elements.length === 1) {
120
+ if (this.elements.length === 1 && ((_a = this.elements[0].button) === null || _a === void 0 ? void 0 : _a.url)) {
81
121
  const element = this.elements[0];
82
- return (_jsx(WhatsappCTAUrlButton, { body: element.title, headerType: WhatsappCTAUrlHeaderType.Image, headerImage: element.image, displayText: element.button.text, url: element.button.url }, id));
122
+ const buttonText = this.elements[0].button.text;
123
+ const url = this.elements[0].button.url;
124
+ return (_jsx(WhatsappCTAUrlButton, { body: element.title, headerType: WhatsappCTAUrlHeaderType.Image, headerImage: element.image, displayText: buttonText, url: url }, id));
83
125
  }
84
- return (_jsx(WhatsappInteractiveMediaCarousel, { cards: this.elements.map(element => {
85
- const text = FlowCarousel.generateWhatsappElementText(element);
86
- const buttonText = element.button.text;
87
- const buttonUrl = element.button.url;
88
- const imageLink = element.image;
89
- return {
90
- text,
91
- action: { buttonText, buttonUrl, imageLink },
92
- };
93
- }),
126
+ if (this.elements.length === 1 &&
127
+ this.elements[0].button &&
128
+ ((_b = this.elements[0].button) === null || _b === void 0 ? void 0 : _b.payload)) {
129
+ const element = this.elements[0];
130
+ const text = FlowCarousel.generateWhatsappElementText(element);
131
+ const buttonPayload = this.elements[0].button.payload;
132
+ const buttonText = this.elements[0].button.text;
133
+ return (_jsxs(Text, { children: [text, _jsx(Button, Object.assign({ payload: buttonPayload }, { children: buttonText }))] }));
134
+ }
135
+ return (_jsx(WhatsappInteractiveMediaCarousel, { cards: FlowCarousel.createCardsFromElements(this.elements),
94
136
  // TODO: Add the text message in flow builder frontend and take it from the carousel node with different languages
95
- textMessage: DEFAULT_TEXT_MESSAGE }));
137
+ textMessage: this.whatsappText || DEFAULT_TEXT_MESSAGE }));
96
138
  }
97
139
  return (_jsx(Carousel, { children: this.elements.map(element => element.toBotonic(id)) }, id));
98
140
  }
99
141
  }
100
142
  FlowCarousel.areElementsValidForWhatsapp = (carouselMessage) => {
101
- const isValid = carouselMessage.content.elements.every(element => element.button.url);
143
+ const isValid = carouselMessage.content.elements.every(element => element.button.url) ||
144
+ carouselMessage.content.elements.every(element => element.button.payload);
102
145
  if (!isValid) {
103
- console.warn('Cannot use WhatsappInteractiveMediaCarousel for Whatsapp created by AIAgent', carouselMessage.content);
146
+ console.warn('Cannot use WhatsappInteractiveMediaCarousel for Whatsapp created by AIAgent, all elements must have either url or payload.', carouselMessage.content);
104
147
  }
105
148
  return isValid;
106
149
  };
@@ -1 +1 @@
1
- {"version":3,"file":"flow-carousel.js","sourceRoot":"","sources":["../../../src/content-fields/flow-carousel.tsx"],"names":[],"mappings":";;AAAA,OAAO,EAAmB,UAAU,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,EAEL,QAAQ,EACR,oBAAoB,EACpB,wBAAwB,EACxB,gCAAgC,GACjC,MAAM,gBAAgB,CAAA;AAIvB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAG5C,MAAM,oBAAoB,GAAG,uBAAuB,CAAA;AACpD,MAAM,OAAO,YAAa,SAAQ,iBAAiB;IAAnD;;QACS,aAAQ,GAAkB,EAAE,CAAA;IAsKrC,CAAC;IApKC,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,WAAW,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CACpD,CAAA;QACD,WAAW,CAAC,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAA;QAE1C,OAAO,WAAW,CAAA;IACpB,CAAC;IAEK,SAAS,CAAC,OAAsB;;YACpC,MAAM,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YACpC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACnC,MAAM,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;aACjC;QACH,CAAC;KAAA;IAgBD,MAAM,CAAC,2BAA2B,CAAC,OAGlC;QACC,IAAI,OAAO,CAAC,QAAQ,EAAE;YACpB,OAAO,IAAI,OAAO,CAAC,KAAK,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAA;SACjD;QACD,OAAO,OAAO,CAAC,KAAK,CAAA;IACtB,CAAC;IAED,MAAM,CAAC,WAAW,CAChB,EAAU,EACV,eAAgC,EAChC,OAAsB;QAEtB,IACE,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC;YAC3B,YAAY,CAAC,2BAA2B,CAAC,eAAe,CAAC,EACzD;YACA,IAAI,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBACjD,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;gBACnD,8HAA8H;gBAC9H,OAAO,CACL,KAAC,oBAAoB,IAEnB,IAAI,EAAE,OAAO,CAAC,KAAK,EACnB,UAAU,EAAE,wBAAwB,CAAC,KAAK,EAC1C,WAAW,EAAE,OAAO,CAAC,KAAK,EAC1B,MAAM,EAAE,OAAO,CAAC,QAAQ,EACxB,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAChC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,GAAI,IANnB,EAAE,CAOP,CACH,CAAA;aACF;YAED,OAAO,CACL,KAAC,gCAAgC,IAC/B,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;oBACpD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAA;oBACtC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,GAAI,CAAA;oBACrC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAA;oBAC/B,MAAM,IAAI,GAAG,YAAY,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAA;oBAE9D,OAAO;wBACL,IAAI;wBACJ,MAAM,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE;qBAC7C,CAAA;gBACH,CAAC,CAAC,EACF,WAAW,EAAE,eAAe,CAAC,OAAO,CAAC,IAAI,IAAI,oBAAoB,GACjE,CACH,CAAA;SACF;QACD,OAAO,CACL,KAAC,QAAQ,cACN,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CACvD,WAAW,CAAC,WAAW,CAAC,GAAG,EAAE,YAAY,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC,SAAS,CAClE,EAAE,CACH,CACF,IALY,EAAE,CAMN,CACZ,CAAA;IACH,CAAC;IAEO,iBAAiB,CAAC,QAAuB;QAC/C,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE;gBACP,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;;oBAC/B,OAAO;wBACL,MAAM,EAAE;4BACN,IAAI,EAAE,CAAA,MAAA,OAAO,CAAC,MAAM,0CAAE,IAAI,KAAI,EAAE;4BAChC,OAAO,EAAE,MAAA,OAAO,CAAC,MAAM,0CAAE,OAAO;4BAChC,GAAG,EAAE,MAAA,OAAO,CAAC,MAAM,0CAAE,GAAG;yBACzB;wBACD,KAAK,EAAE,OAAO,CAAC,KAAK;wBACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;wBAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;qBACrB,CAAA;gBACH,CAAC,CAAC;aACH;SACF,CAAA;IACH,CAAC;IAED,SAAS,CAAC,EAAU,EAAE,OAAsB;QAC1C,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC7D,IACE,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC;YAC3B,YAAY,CAAC,2BAA2B,CAAC,eAAe,CAAC,EACzD;YACA,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;gBAEhC,OAAO,CACL,KAAC,oBAAoB,IAEnB,IAAI,EAAE,OAAO,CAAC,KAAK,EACnB,UAAU,EAAE,wBAAwB,CAAC,KAAK,EAC1C,WAAW,EAAE,OAAO,CAAC,KAAK,EAC1B,WAAW,EAAE,OAAO,CAAC,MAAO,CAAC,IAAI,EACjC,GAAG,EAAE,OAAO,CAAC,MAAO,CAAC,GAAI,IALpB,EAAE,CAMP,CACH,CAAA;aACF;YAED,OAAO,CACL,KAAC,gCAAgC,IAC/B,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;oBACjC,MAAM,IAAI,GAAG,YAAY,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAA;oBAC9D,MAAM,UAAU,GAAG,OAAO,CAAC,MAAO,CAAC,IAAK,CAAA;oBACxC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAO,CAAC,GAAI,CAAA;oBACtC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAM,CAAA;oBAEhC,OAAO;wBACL,IAAI;wBACJ,MAAM,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE;qBAC7C,CAAA;gBACH,CAAC,CAAC;gBACF,kHAAkH;gBAClH,WAAW,EAAE,oBAAoB,GACjC,CACH,CAAA;SACF;QACD,OAAO,CACL,KAAC,QAAQ,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;;AA7IM,wCAA2B,GAAG,CAAC,eAAgC,EAAE,EAAE;IACxE,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CACpD,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAC9B,CAAA;IAED,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,CAAC,IAAI,CACV,6EAA6E,EAC7E,eAAe,CAAC,OAAO,CACxB,CAAA;KACF;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
1
+ {"version":3,"file":"flow-carousel.js","sourceRoot":"","sources":["../../../src/content-fields/flow-carousel.tsx"],"names":[],"mappings":"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"}
@@ -10,8 +10,6 @@ export declare class FlowText extends ContentFieldsBase {
10
10
  buttons: FlowButton[];
11
11
  buttonStyle: HtButtonStyle;
12
12
  static fromHubtypeCMS(cmsText: HtTextNode, locale: string, cmsApi: FlowBuilderApi): FlowText;
13
- static replaceVariables(text: string, request: ActionRequest): string;
14
- private static isValidType;
15
13
  trackFlow(request: ActionRequest): Promise<void>;
16
14
  static fromAIAgent(id: string, textMessage: TextMessage | TextWithButtonsMessage): JSX.Element;
17
15
  toBotonic(id: string, request: ActionRequest): JSX.Element;
@@ -1,9 +1,8 @@
1
1
  import { __awaiter } from "tslib";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { Text } from '@botonic/react';
4
- import { ACCESS_TOKEN_VARIABLE_KEY, EMPTY_PAYLOAD, SOURCE_INFO_SEPARATOR, VARIABLE_PATTERN, } from '../constants';
4
+ import { EMPTY_PAYLOAD, SOURCE_INFO_SEPARATOR, } from '../constants';
5
5
  import { trackOneContent } from '../tracking';
6
- import { getValueFromKeyPath } from '../utils';
7
6
  import { ContentFieldsBase } from './content-fields-base';
8
7
  import { FlowButton } from './flow-button';
9
8
  import { HtButtonStyle } from './hubtype-fields';
@@ -23,25 +22,6 @@ export class FlowText extends ContentFieldsBase {
23
22
  newText.followUp = cmsText.follow_up;
24
23
  return newText;
25
24
  }
26
- static replaceVariables(text, request) {
27
- const matches = text.match(VARIABLE_PATTERN);
28
- let replacedText = text;
29
- if (matches && request) {
30
- matches.forEach(match => {
31
- const keyPath = match.slice(1, -1);
32
- const botVariable = keyPath.endsWith(ACCESS_TOKEN_VARIABLE_KEY)
33
- ? match
34
- : getValueFromKeyPath(request, keyPath);
35
- // TODO In local if change variable and render multiple times the value is always the last update
36
- replacedText = replacedText.replace(match, this.isValidType(botVariable) ? botVariable : match);
37
- });
38
- }
39
- return replacedText;
40
- }
41
- static isValidType(botVariable) {
42
- const validTypes = ['boolean', 'string', 'number'];
43
- return validTypes.includes(typeof botVariable);
44
- }
45
25
  trackFlow(request) {
46
26
  return __awaiter(this, void 0, void 0, function* () {
47
27
  yield trackOneContent(request, this);
@@ -66,7 +46,7 @@ export class FlowText extends ContentFieldsBase {
66
46
  })] }, id));
67
47
  }
68
48
  toBotonic(id, request) {
69
- const replacedText = FlowText.replaceVariables(this.text, request);
49
+ const replacedText = this.replaceVariables(this.text, request);
70
50
  return (_jsxs(Text, { children: [replacedText, this.buttons.map((button, buttonIndex) => button.renderButton(buttonIndex, this.buttonStyle))] }, id));
71
51
  }
72
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"flow-text.js","sourceRoot":"","sources":["../../../src/content-fields/flow-text.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flow-text.js","sourceRoot":"","sources":["../../../src/content-fields/flow-text.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /// <reference types="react" />
2
+ import { ActionRequest, WhatsAppTemplateParameterType } from '@botonic/react';
3
+ import { ContentFieldsBase } from './content-fields-base';
4
+ import { HtButton, HtMediaFileLocale, HtWhatsAppTemplate, HtWhatsappTemplateNode } from './hubtype-fields';
5
+ interface HeaderVariables {
6
+ type: WhatsAppTemplateParameterType;
7
+ text?: Record<string, string>;
8
+ media?: HtMediaFileLocale[];
9
+ }
10
+ export declare class FlowWhatsappTemplate extends ContentFieldsBase {
11
+ htWhatsappTemplate: HtWhatsAppTemplate;
12
+ variableValues: Record<string, string>;
13
+ headerVariables?: HeaderVariables;
14
+ buttons?: HtButton[];
15
+ urlVariableValues?: Record<string, string>;
16
+ static fromHubtypeCMS(component: HtWhatsappTemplateNode): FlowWhatsappTemplate;
17
+ private getHeaderComponent;
18
+ private createHeaderTextComponent;
19
+ private createHeaderImageComponent;
20
+ private getBodyComponent;
21
+ private getButtons;
22
+ private createUrlButtonComponent;
23
+ private createQuickReplyButtonComponent;
24
+ private createVoiceCallButtonComponent;
25
+ trackFlow(request: ActionRequest): Promise<void>;
26
+ toBotonic(id: string, request: ActionRequest): JSX.Element;
27
+ }
28
+ export {};
@@ -0,0 +1,159 @@
1
+ import { __awaiter } from "tslib";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { isWhatsapp } from '@botonic/core';
4
+ import { Text, WhatsappTemplate, WhatsAppTemplateButtonSubType, WhatsAppTemplateComponentType, WhatsAppTemplateParameterType, } from '@botonic/react';
5
+ import { getFlowBuilderPlugin } from '../helpers';
6
+ import { trackOneContent } from '../tracking';
7
+ import { ContentFieldsBase } from './content-fields-base';
8
+ export class FlowWhatsappTemplate extends ContentFieldsBase {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.variableValues = {};
12
+ }
13
+ static fromHubtypeCMS(component) {
14
+ const whatsappTemplate = new FlowWhatsappTemplate(component.id);
15
+ whatsappTemplate.code = component.code;
16
+ whatsappTemplate.htWhatsappTemplate = component.content.template;
17
+ whatsappTemplate.headerVariables = component.content.header_variables;
18
+ whatsappTemplate.variableValues = component.content.variable_values;
19
+ whatsappTemplate.buttons = component.content.buttons;
20
+ whatsappTemplate.urlVariableValues = component.content.url_variable_values;
21
+ whatsappTemplate.followUp = component.follow_up;
22
+ return whatsappTemplate;
23
+ }
24
+ getHeaderComponent(whatsappTemplate, headerVariables, locale, request) {
25
+ const headerComponent = whatsappTemplate.components.find(component => component.type === WhatsAppTemplateComponentType.HEADER);
26
+ if (headerComponent &&
27
+ headerComponent.format === WhatsAppTemplateParameterType.TEXT) {
28
+ return this.createHeaderTextComponent(headerVariables, request);
29
+ }
30
+ if (headerComponent &&
31
+ headerComponent.format === WhatsAppTemplateParameterType.IMAGE) {
32
+ return this.createHeaderImageComponent(headerVariables, locale);
33
+ }
34
+ return undefined;
35
+ }
36
+ createHeaderTextComponent(headerVariables, request) {
37
+ return {
38
+ type: WhatsAppTemplateComponentType.HEADER,
39
+ parameters: Object.values(headerVariables.text || {}).map(value => {
40
+ const valueVariable = this.replaceVariables(value, request);
41
+ return {
42
+ type: WhatsAppTemplateParameterType.TEXT,
43
+ text: valueVariable,
44
+ };
45
+ }),
46
+ };
47
+ }
48
+ createHeaderImageComponent(headerVariables, locale) {
49
+ var _a, _b;
50
+ return {
51
+ type: WhatsAppTemplateComponentType.HEADER,
52
+ parameters: [
53
+ {
54
+ type: WhatsAppTemplateParameterType.IMAGE,
55
+ image: {
56
+ link: ((_b = (_a = headerVariables.media) === null || _a === void 0 ? void 0 : _a.find(m => m.locale === locale)) === null || _b === void 0 ? void 0 : _b.file) || '',
57
+ },
58
+ },
59
+ ],
60
+ };
61
+ }
62
+ // TODO: To use named variables (contact_info_fields) we need to take it from request.session.user.contact_info, this only be able in toBotonic method
63
+ getBodyComponent(variableValues, request) {
64
+ return {
65
+ type: WhatsAppTemplateComponentType.BODY,
66
+ parameters: Object.entries(variableValues).map(([key, value]) => {
67
+ const valueVariable = this.replaceVariables(value, request);
68
+ return {
69
+ type: WhatsAppTemplateParameterType.TEXT,
70
+ parameter_name: key,
71
+ text: valueVariable,
72
+ };
73
+ }),
74
+ };
75
+ }
76
+ getButtons(whatsappTemplate, buttonNodes, urlVariableValues, request) {
77
+ const htWhatsappTemplateButtons = whatsappTemplate.components.find(component => component.type === WhatsAppTemplateComponentType.BUTTONS);
78
+ if (htWhatsappTemplateButtons) {
79
+ const buttons = htWhatsappTemplateButtons.buttons
80
+ .map((button, index) => {
81
+ var _a;
82
+ if (button.type === WhatsAppTemplateButtonSubType.URL) {
83
+ const urlParam = urlVariableValues === null || urlVariableValues === void 0 ? void 0 : urlVariableValues[String(index)];
84
+ if (!urlParam) {
85
+ return null;
86
+ }
87
+ return this.createUrlButtonComponent(index, urlParam, request);
88
+ }
89
+ if (button.type === WhatsAppTemplateButtonSubType.QUICK_REPLY) {
90
+ const payload = ((_a = buttonNodes[index].target) === null || _a === void 0 ? void 0 : _a.id) || '';
91
+ return this.createQuickReplyButtonComponent(index, payload);
92
+ }
93
+ return this.createVoiceCallButtonComponent(index);
94
+ })
95
+ .filter(button => button !== null);
96
+ return {
97
+ type: WhatsAppTemplateComponentType.BUTTONS,
98
+ buttons: buttons,
99
+ };
100
+ }
101
+ return undefined;
102
+ }
103
+ createUrlButtonComponent(index, urlParam, request) {
104
+ const variableUrlParam = this.replaceVariables(urlParam, request);
105
+ return {
106
+ type: WhatsAppTemplateComponentType.BUTTON,
107
+ sub_type: WhatsAppTemplateButtonSubType.URL,
108
+ index: index,
109
+ parameters: urlParam
110
+ ? [
111
+ {
112
+ type: WhatsAppTemplateParameterType.TEXT,
113
+ text: variableUrlParam,
114
+ },
115
+ ]
116
+ : [],
117
+ };
118
+ }
119
+ createQuickReplyButtonComponent(index, payload) {
120
+ return {
121
+ type: WhatsAppTemplateComponentType.BUTTON,
122
+ sub_type: WhatsAppTemplateButtonSubType.QUICK_REPLY,
123
+ index: index,
124
+ parameters: [
125
+ {
126
+ type: WhatsAppTemplateParameterType.PAYLOAD,
127
+ payload: payload,
128
+ },
129
+ ],
130
+ };
131
+ }
132
+ createVoiceCallButtonComponent(index) {
133
+ return {
134
+ type: WhatsAppTemplateComponentType.BUTTON,
135
+ sub_type: WhatsAppTemplateButtonSubType.VOICE_CALL,
136
+ index: index,
137
+ parameters: [],
138
+ };
139
+ }
140
+ trackFlow(request) {
141
+ return __awaiter(this, void 0, void 0, function* () {
142
+ yield trackOneContent(request, this);
143
+ });
144
+ }
145
+ toBotonic(id, request) {
146
+ const templateName = this.htWhatsappTemplate.name;
147
+ const templateLanguage = this.htWhatsappTemplate.language;
148
+ const body = this.getBodyComponent(this.variableValues, request);
149
+ const pluginFlowBuilder = getFlowBuilderPlugin(request.plugins);
150
+ const resolvedLocale = pluginFlowBuilder.cmsApi.getResolvedLocale();
151
+ const header = this.getHeaderComponent(this.htWhatsappTemplate, this.headerVariables || {}, resolvedLocale, request);
152
+ const buttons = this.getButtons(this.htWhatsappTemplate, this.buttons || [], this.urlVariableValues || {}, request);
153
+ if (isWhatsapp(request.session)) {
154
+ return (_jsx(WhatsappTemplate, { name: templateName, language: templateLanguage, header: header, body: body, buttons: buttons }, id));
155
+ }
156
+ return (_jsxs(Text, { children: [`WhatsApp Template: ${templateName} (${templateLanguage})`, header && `${JSON.stringify(header, null, 2)}`, body && `${JSON.stringify(body, null, 2)}`, buttons && `${JSON.stringify(buttons, null, 2)}`] }, id));
157
+ }
158
+ }
159
+ //# sourceMappingURL=flow-whatsapp-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-whatsapp-template.js","sourceRoot":"","sources":["../../../src/content-fields/flow-whatsapp-template.tsx"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ export interface HtCarouselElement {
11
11
  export interface HtCarouselNode extends HtBaseNode {
12
12
  type: HtNodeWithContentType.CAROUSEL;
13
13
  content: {
14
+ whatsapp_text: HtTextLocale[];
14
15
  elements: HtCarouselElement[];
15
16
  };
16
17
  }
@@ -12,6 +12,7 @@ export interface HtFlowBuilderData {
12
12
  nodes: HtNodeComponent[];
13
13
  flows: HtFlows[];
14
14
  webviews: HtFlowWebview[];
15
+ campaigns: HtCampaign[];
15
16
  }
16
17
  export interface HtFlows {
17
18
  id: string;
@@ -23,6 +24,11 @@ export interface HtFlowWebview {
23
24
  name: string;
24
25
  component_name: string;
25
26
  }
27
+ export interface HtCampaign {
28
+ id: string;
29
+ name: string;
30
+ start_node_id: string;
31
+ }
26
32
  export interface HtNodeLink {
27
33
  id: string;
28
34
  type: HtNodeWithContentType | HtNodeWithoutContentType;
@@ -20,3 +20,4 @@ export * from './video';
20
20
  export * from './webview';
21
21
  export * from './whatsapp-button-list';
22
22
  export * from './whatsapp-cta-url-button';
23
+ export * from './whatsapp-template';
@@ -20,4 +20,5 @@ export * from './video';
20
20
  export * from './webview';
21
21
  export * from './whatsapp-button-list';
22
22
  export * from './whatsapp-cta-url-button';
23
+ export * from './whatsapp-template';
23
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/content-fields/hubtype-fields/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,QAAQ,CAAA;AACtB,cAAc,OAAO,CAAA;AACrB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,wBAAwB,CAAA;AACtC,cAAc,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/content-fields/hubtype-fields/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,QAAQ,CAAA;AACtB,cAAc,OAAO,CAAA;AACrB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,wBAAwB,CAAA;AACtC,cAAc,2BAA2B,CAAA;AACzC,cAAc,qBAAqB,CAAA"}
@@ -10,6 +10,7 @@ export declare enum HtNodeWithContentType {
10
10
  VIDEO = "video",
11
11
  WHATSAPP_BUTTON_LIST = "whatsapp-button-list",
12
12
  WHATSAPP_CTA_URL_BUTTON = "whatsapp-cta-url-button",
13
+ WHATSAPP_TEMPLATE = "whatsapp-template",
13
14
  KNOWLEDGE_BASE = "knowledge-base",
14
15
  BOT_ACTION = "bot-action",
15
16
  AI_AGENT = "ai-agent",
@@ -11,6 +11,7 @@ export var HtNodeWithContentType;
11
11
  HtNodeWithContentType["VIDEO"] = "video";
12
12
  HtNodeWithContentType["WHATSAPP_BUTTON_LIST"] = "whatsapp-button-list";
13
13
  HtNodeWithContentType["WHATSAPP_CTA_URL_BUTTON"] = "whatsapp-cta-url-button";
14
+ HtNodeWithContentType["WHATSAPP_TEMPLATE"] = "whatsapp-template";
14
15
  HtNodeWithContentType["KNOWLEDGE_BASE"] = "knowledge-base";
15
16
  HtNodeWithContentType["BOT_ACTION"] = "bot-action";
16
17
  HtNodeWithContentType["AI_AGENT"] = "ai-agent";
@@ -1 +1 @@
1
- {"version":3,"file":"node-types.js","sourceRoot":"","sources":["../../../../src/content-fields/hubtype-fields/node-types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,qBAkBX;AAlBD,WAAY,qBAAqB;IAC/B,8CAAqB,CAAA;IACrB,4CAAmB,CAAA;IACnB,wCAAe,CAAA;IACf,sCAAa,CAAA;IACb,4CAAmB,CAAA;IACnB,sDAA6B,CAAA;IAC7B,8CAAqB,CAAA;IACrB,8CAAqB,CAAA;IACrB,wCAAe,CAAA;IACf,sEAA6C,CAAA;IAC7C,4EAAmD,CAAA;IACnD,0DAAiC,CAAA;IACjC,kDAAyB,CAAA;IACzB,8CAAqB,CAAA;IACrB,0CAAiB,CAAA;IACjB,4CAAmB,CAAA;IACnB,kDAAyB,CAAA;AAC3B,CAAC,EAlBW,qBAAqB,KAArB,qBAAqB,QAkBhC;AAED,MAAM,CAAN,IAAY,wBAGX;AAHD,WAAY,wBAAwB;IAClC,uCAAW,CAAA;IACX,+CAAmB,CAAA;AACrB,CAAC,EAHW,wBAAwB,KAAxB,wBAAwB,QAGnC;AAED,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,kCAAiB,CAAA;IACjB,4CAA2B,CAAA;AAC7B,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB"}
1
+ {"version":3,"file":"node-types.js","sourceRoot":"","sources":["../../../../src/content-fields/hubtype-fields/node-types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,qBAmBX;AAnBD,WAAY,qBAAqB;IAC/B,8CAAqB,CAAA;IACrB,4CAAmB,CAAA;IACnB,wCAAe,CAAA;IACf,sCAAa,CAAA;IACb,4CAAmB,CAAA;IACnB,sDAA6B,CAAA;IAC7B,8CAAqB,CAAA;IACrB,8CAAqB,CAAA;IACrB,wCAAe,CAAA;IACf,sEAA6C,CAAA;IAC7C,4EAAmD,CAAA;IACnD,gEAAuC,CAAA;IACvC,0DAAiC,CAAA;IACjC,kDAAyB,CAAA;IACzB,8CAAqB,CAAA;IACrB,0CAAiB,CAAA;IACjB,4CAAmB,CAAA;IACnB,kDAAyB,CAAA;AAC3B,CAAC,EAnBW,qBAAqB,KAArB,qBAAqB,QAmBhC;AAED,MAAM,CAAN,IAAY,wBAGX;AAHD,WAAY,wBAAwB;IAClC,uCAAW,CAAA;IACX,+CAAmB,CAAA;AACrB,CAAC,EAHW,wBAAwB,KAAxB,wBAAwB,QAGnC;AAED,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,kCAAiB,CAAA;IACjB,4CAA2B,CAAA;AAC7B,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB"}
@@ -17,6 +17,7 @@ import { HtVideoNode } from './video';
17
17
  import { HtWebviewNode } from './webview';
18
18
  import { HtWhatsappButtonListNode } from './whatsapp-button-list';
19
19
  import { HtWhatsappCTAUrlButtonNode } from './whatsapp-cta-url-button';
20
- export type HtNodeWithContent = HtTextNode | HtImageNode | HtVideoNode | HtCarouselNode | HtHandoffNode | HtKeywordNode | HtFunctionNode | HtFallbackNode | HtWhatsappButtonListNode | HtWhatsappCTAUrlButtonNode | HtSmartIntentNode | HtKnowledgeBaseNode | HtBotActionNode | HtAiAgentNode | HtRatingNode | HtWebviewNode | HtGoToFlow;
20
+ import { HtWhatsappTemplateNode } from './whatsapp-template';
21
+ export type HtNodeWithContent = HtTextNode | HtImageNode | HtVideoNode | HtCarouselNode | HtHandoffNode | HtKeywordNode | HtFunctionNode | HtFallbackNode | HtWhatsappButtonListNode | HtWhatsappCTAUrlButtonNode | HtSmartIntentNode | HtKnowledgeBaseNode | HtBotActionNode | HtAiAgentNode | HtRatingNode | HtWebviewNode | HtGoToFlow | HtWhatsappTemplateNode;
21
22
  export type HtNodeWithoutContent = HtUrlNode | HtPayloadNode;
22
23
  export type HtNodeComponent = HtNodeWithContent | HtNodeWithoutContent;