@botonic/react 0.42.1 → 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 (36) hide show
  1. package/lib/cjs/components/index.d.ts +3 -2
  2. package/lib/cjs/components/index.js +5 -3
  3. package/lib/cjs/components/index.js.map +1 -1
  4. package/lib/cjs/components/whatsapp-interactive-media-carousel.d.ts +23 -7
  5. package/lib/cjs/components/whatsapp-interactive-media-carousel.js +9 -3
  6. package/lib/cjs/components/whatsapp-interactive-media-carousel.js.map +1 -1
  7. package/lib/cjs/components/whatsapp-template/index.d.ts +10 -0
  8. package/lib/cjs/components/whatsapp-template/index.js +25 -0
  9. package/lib/cjs/components/whatsapp-template/index.js.map +1 -0
  10. package/lib/cjs/components/whatsapp-template/types.d.ts +79 -0
  11. package/lib/cjs/components/whatsapp-template/types.js +27 -0
  12. package/lib/cjs/components/whatsapp-template/types.js.map +1 -0
  13. package/lib/esm/components/index.d.ts +3 -2
  14. package/lib/esm/components/index.js +3 -2
  15. package/lib/esm/components/index.js.map +1 -1
  16. package/lib/esm/components/whatsapp-interactive-media-carousel.d.ts +23 -7
  17. package/lib/esm/components/whatsapp-interactive-media-carousel.js +8 -2
  18. package/lib/esm/components/whatsapp-interactive-media-carousel.js.map +1 -1
  19. package/lib/esm/components/whatsapp-template/index.d.ts +10 -0
  20. package/lib/esm/components/whatsapp-template/index.js +21 -0
  21. package/lib/esm/components/whatsapp-template/index.js.map +1 -0
  22. package/lib/esm/components/whatsapp-template/types.d.ts +79 -0
  23. package/lib/esm/components/whatsapp-template/types.js +24 -0
  24. package/lib/esm/components/whatsapp-template/types.js.map +1 -0
  25. package/package.json +3 -3
  26. package/src/components/index.ts +4 -1
  27. package/src/components/whatsapp-interactive-media-carousel.tsx +38 -12
  28. package/src/components/whatsapp-template/index.tsx +50 -0
  29. package/src/components/whatsapp-template/types.ts +104 -0
  30. package/lib/cjs/components/whatsapp-template.d.ts +0 -1
  31. package/lib/cjs/components/whatsapp-template.js +0 -25
  32. package/lib/cjs/components/whatsapp-template.js.map +0 -1
  33. package/lib/esm/components/whatsapp-template.d.ts +0 -1
  34. package/lib/esm/components/whatsapp-template.js +0 -20
  35. package/lib/esm/components/whatsapp-template.js.map +0 -1
  36. package/src/components/whatsapp-template.jsx +0 -35
@@ -23,9 +23,10 @@ export { normalizeWebchatSettings, WebchatSettings, WebchatSettingsProps, } from
23
23
  export { WhatsappButtonList, WhatsappButtonListProps, WhatsappButtonListRowProps, WhatsappButtonListSectionProps, } from './whatsapp-button-list';
24
24
  export { WhatsappCatalog, WhatsappCatalogProps } from './whatsapp-catalog';
25
25
  export { WhatsappCTAUrlButton, WhatsappCTAUrlButtonProps, WhatsappCTAUrlHeaderType, } from './whatsapp-cta-url-button';
26
- export { WhatsappInteractiveMediaCarousel, WhatsappInteractiveMediaCarouselProps, } from './whatsapp-interactive-media-carousel';
26
+ export { CardType, WhatsappInteractiveMediaCard, WhatsappInteractiveMediaCarousel, WhatsappInteractiveMediaCarouselProps, } from './whatsapp-interactive-media-carousel';
27
27
  export { WhatsappMediaCarousel, WhatsappMediaCarouselProps, } from './whatsapp-media-carousel';
28
28
  export { WhatsappProduct } from './whatsapp-product';
29
29
  export { WhatsappProductCarousel, WhatsappProductCarouselProps, } from './whatsapp-product-carousel';
30
30
  export { ProductItem, WhatsappProductList, WhatsappProductListProps, WhatsappProductListSection, } from './whatsapp-product-list';
31
- export { WhatsappTemplate } from './whatsapp-template';
31
+ export { WhatsappTemplate } from './whatsapp-template/index';
32
+ export * from './whatsapp-template/types';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WhatsappTemplate = exports.WhatsappProductList = exports.WhatsappProductCarousel = exports.WhatsappProduct = exports.WhatsappMediaCarousel = exports.WhatsappInteractiveMediaCarousel = exports.WhatsappCTAUrlHeaderType = exports.WhatsappCTAUrlButton = exports.WhatsappCatalog = exports.WhatsappButtonList = exports.WebchatSettings = exports.normalizeWebchatSettings = exports.Video = exports.Title = exports.Text = exports.Subtitle = exports.ShareButton = exports.Reply = exports.Raw = exports.Pic = exports.MessageTemplate = exports.Message = exports.Location = exports.Image = exports.Handoff = exports.Element = exports.Document = exports.customMessage = exports.Carousel = exports.Button = exports.Audio = void 0;
3
+ exports.WhatsappTemplate = exports.WhatsappProductList = exports.WhatsappProductCarousel = exports.WhatsappProduct = exports.WhatsappMediaCarousel = exports.WhatsappInteractiveMediaCarousel = exports.CardType = exports.WhatsappCTAUrlHeaderType = exports.WhatsappCTAUrlButton = exports.WhatsappCatalog = exports.WhatsappButtonList = exports.WebchatSettings = exports.normalizeWebchatSettings = exports.Video = exports.Title = exports.Text = exports.Subtitle = exports.ShareButton = exports.Reply = exports.Raw = exports.Pic = exports.MessageTemplate = exports.Message = exports.Location = exports.Image = exports.Handoff = exports.Element = exports.Document = exports.customMessage = exports.Carousel = exports.Button = exports.Audio = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  var audio_1 = require("./audio");
6
6
  Object.defineProperty(exports, "Audio", { enumerable: true, get: function () { return audio_1.Audio; } });
@@ -53,6 +53,7 @@ var whatsapp_cta_url_button_1 = require("./whatsapp-cta-url-button");
53
53
  Object.defineProperty(exports, "WhatsappCTAUrlButton", { enumerable: true, get: function () { return whatsapp_cta_url_button_1.WhatsappCTAUrlButton; } });
54
54
  Object.defineProperty(exports, "WhatsappCTAUrlHeaderType", { enumerable: true, get: function () { return whatsapp_cta_url_button_1.WhatsappCTAUrlHeaderType; } });
55
55
  var whatsapp_interactive_media_carousel_1 = require("./whatsapp-interactive-media-carousel");
56
+ Object.defineProperty(exports, "CardType", { enumerable: true, get: function () { return whatsapp_interactive_media_carousel_1.CardType; } });
56
57
  Object.defineProperty(exports, "WhatsappInteractiveMediaCarousel", { enumerable: true, get: function () { return whatsapp_interactive_media_carousel_1.WhatsappInteractiveMediaCarousel; } });
57
58
  var whatsapp_media_carousel_1 = require("./whatsapp-media-carousel");
58
59
  Object.defineProperty(exports, "WhatsappMediaCarousel", { enumerable: true, get: function () { return whatsapp_media_carousel_1.WhatsappMediaCarousel; } });
@@ -62,6 +63,7 @@ var whatsapp_product_carousel_1 = require("./whatsapp-product-carousel");
62
63
  Object.defineProperty(exports, "WhatsappProductCarousel", { enumerable: true, get: function () { return whatsapp_product_carousel_1.WhatsappProductCarousel; } });
63
64
  var whatsapp_product_list_1 = require("./whatsapp-product-list");
64
65
  Object.defineProperty(exports, "WhatsappProductList", { enumerable: true, get: function () { return whatsapp_product_list_1.WhatsappProductList; } });
65
- var whatsapp_template_1 = require("./whatsapp-template");
66
- Object.defineProperty(exports, "WhatsappTemplate", { enumerable: true, get: function () { return whatsapp_template_1.WhatsappTemplate; } });
66
+ var index_2 = require("./whatsapp-template/index");
67
+ Object.defineProperty(exports, "WhatsappTemplate", { enumerable: true, get: function () { return index_2.WhatsappTemplate; } });
68
+ tslib_1.__exportStar(require("./whatsapp-template/types"), exports);
67
69
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":";;;;AAAA,iCAA+B;AAAtB,8FAAA,KAAK,OAAA;AACd,wCAAuC;AAA9B,+FAAA,MAAM,OAAA;AACf,uCAAqC;AAA5B,oGAAA,QAAQ,OAAA;AACjB,mDAAgD;AAAvC,+GAAA,aAAa,OAAA;AACtB,uCAAqC;AAA5B,oGAAA,QAAQ,OAAA;AACjB,qCAAmC;AAA1B,kGAAA,OAAO,OAAA;AAChB,qCAAmC;AAA1B,kGAAA,OAAO,OAAA;AAChB,iCAA+B;AAAtB,8FAAA,KAAK,OAAA;AACd,wDAA6B;AAC7B,uCAAqC;AAA5B,oGAAA,QAAQ,OAAA;AACjB,qCAAmC;AAA1B,kGAAA,OAAO,OAAA;AAChB,uDAAoD;AAA3C,mHAAA,eAAe,OAAA;AACxB,yDAA8B;AAC9B,6BAA2B;AAAlB,0FAAA,GAAG,OAAA;AACZ,6BAA2B;AAAlB,0FAAA,GAAG,OAAA;AACZ,iCAA+B;AAAtB,8FAAA,KAAK,OAAA;AACd,+CAA4C;AAAnC,2GAAA,WAAW,OAAA;AACpB,uCAAqC;AAA5B,oGAAA,QAAQ,OAAA;AACjB,+BAA6B;AAApB,4FAAA,IAAI,OAAA;AACb,iCAA+B;AAAtB,8FAAA,KAAK,OAAA;AACd,iCAA+B;AAAtB,8FAAA,KAAK,OAAA;AACd,uDAI2B;AAHzB,4HAAA,wBAAwB,OAAA;AACxB,mHAAA,eAAe,OAAA;AAGjB,+DAK+B;AAJ7B,0HAAA,kBAAkB,OAAA;AAKpB,uDAA0E;AAAjE,mHAAA,eAAe,OAAA;AACxB,qEAIkC;AAHhC,+HAAA,oBAAoB,OAAA;AAEpB,mIAAA,wBAAwB,OAAA;AAE1B,6FAG8C;AAF5C,uJAAA,gCAAgC,OAAA;AAGlC,qEAGkC;AAFhC,gIAAA,qBAAqB,OAAA;AAGvB,uDAAoD;AAA3C,mHAAA,eAAe,OAAA;AACxB,yEAGoC;AAFlC,oIAAA,uBAAuB,OAAA;AAGzB,iEAKgC;AAH9B,4HAAA,mBAAmB,OAAA;AAIrB,yDAAsD;AAA7C,qHAAA,gBAAgB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":";;;;AAAA,iCAA+B;AAAtB,8FAAA,KAAK,OAAA;AACd,wCAAuC;AAA9B,+FAAA,MAAM,OAAA;AACf,uCAAqC;AAA5B,oGAAA,QAAQ,OAAA;AACjB,mDAAgD;AAAvC,+GAAA,aAAa,OAAA;AACtB,uCAAqC;AAA5B,oGAAA,QAAQ,OAAA;AACjB,qCAAmC;AAA1B,kGAAA,OAAO,OAAA;AAChB,qCAAmC;AAA1B,kGAAA,OAAO,OAAA;AAChB,iCAA+B;AAAtB,8FAAA,KAAK,OAAA;AACd,wDAA6B;AAC7B,uCAAqC;AAA5B,oGAAA,QAAQ,OAAA;AACjB,qCAAmC;AAA1B,kGAAA,OAAO,OAAA;AAChB,uDAAoD;AAA3C,mHAAA,eAAe,OAAA;AACxB,yDAA8B;AAC9B,6BAA2B;AAAlB,0FAAA,GAAG,OAAA;AACZ,6BAA2B;AAAlB,0FAAA,GAAG,OAAA;AACZ,iCAA+B;AAAtB,8FAAA,KAAK,OAAA;AACd,+CAA4C;AAAnC,2GAAA,WAAW,OAAA;AACpB,uCAAqC;AAA5B,oGAAA,QAAQ,OAAA;AACjB,+BAA6B;AAApB,4FAAA,IAAI,OAAA;AACb,iCAA+B;AAAtB,8FAAA,KAAK,OAAA;AACd,iCAA+B;AAAtB,8FAAA,KAAK,OAAA;AACd,uDAI2B;AAHzB,4HAAA,wBAAwB,OAAA;AACxB,mHAAA,eAAe,OAAA;AAGjB,+DAK+B;AAJ7B,0HAAA,kBAAkB,OAAA;AAKpB,uDAA0E;AAAjE,mHAAA,eAAe,OAAA;AACxB,qEAIkC;AAHhC,+HAAA,oBAAoB,OAAA;AAEpB,mIAAA,wBAAwB,OAAA;AAE1B,6FAK8C;AAJ5C,+HAAA,QAAQ,OAAA;AAER,uJAAA,gCAAgC,OAAA;AAGlC,qEAGkC;AAFhC,gIAAA,qBAAqB,OAAA;AAGvB,uDAAoD;AAA3C,mHAAA,eAAe,OAAA;AACxB,yEAGoC;AAFlC,oIAAA,uBAAuB,OAAA;AAGzB,iEAKgC;AAH9B,4HAAA,mBAAmB,OAAA;AAIrB,mDAA4D;AAAnD,yGAAA,gBAAgB,OAAA;AACzB,oEAAyC"}
@@ -1,14 +1,30 @@
1
- interface ActionCard {
2
- buttonText: string;
3
- buttonUrl: string;
4
- imageLink: string;
1
+ export declare enum CardType {
2
+ CTA_URL = "cta_url",
3
+ QUICK_REPLY = "quick_reply"
5
4
  }
6
- interface Card {
5
+ interface BaseCard {
6
+ imageLink: string;
7
7
  text: string;
8
- action: ActionCard;
9
8
  }
9
+ interface UrlCard extends BaseCard {
10
+ type: CardType.CTA_URL;
11
+ action: {
12
+ buttonText: string;
13
+ buttonUrl: string;
14
+ };
15
+ }
16
+ interface QuickReplyCard extends BaseCard {
17
+ type: CardType.QUICK_REPLY;
18
+ action: {
19
+ buttons: {
20
+ text: string;
21
+ payload: string;
22
+ }[];
23
+ };
24
+ }
25
+ export type WhatsappInteractiveMediaCard = UrlCard | QuickReplyCard;
10
26
  export interface WhatsappInteractiveMediaCarouselProps {
11
- cards: Card[];
27
+ cards: WhatsappInteractiveMediaCard[];
12
28
  textMessage: string;
13
29
  }
14
30
  export declare const WhatsappInteractiveMediaCarousel: (props: WhatsappInteractiveMediaCarouselProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WhatsappInteractiveMediaCarousel = void 0;
3
+ exports.WhatsappInteractiveMediaCarousel = exports.CardType = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const util_1 = require("../util");
6
6
  const button_1 = require("./button");
@@ -9,11 +9,17 @@ const element_1 = require("./element");
9
9
  const constants_1 = require("./multichannel/whatsapp/constants");
10
10
  const pic_1 = require("./pic");
11
11
  const title_1 = require("./title");
12
+ var CardType;
13
+ (function (CardType) {
14
+ CardType["CTA_URL"] = "cta_url";
15
+ CardType["QUICK_REPLY"] = "quick_reply";
16
+ })(CardType = exports.CardType || (exports.CardType = {}));
12
17
  /*
13
- Reference: https://developers.facebook.com/docs/whatsapp/cloud-api/messages/interactive-media-carousel-messages/
18
+ Reference: https://developers.facebook.com/documentation/business-messaging/whatsapp/messages/interactive-media-carousel-messages?locale=en_US
14
19
  */
15
20
  const WhatsappInteractiveMediaCarousel = (props) => {
16
- return ((0, jsx_runtime_1.jsx)(carousel_1.Carousel, Object.assign({ text: (0, util_1.truncateText)(props.textMessage, constants_1.WHATSAPP_MAX_BODY_CHARS) }, { children: props.cards.map((card, index) => ((0, jsx_runtime_1.jsxs)(element_1.Element, { children: [(0, jsx_runtime_1.jsx)(pic_1.Pic, { src: card.action.imageLink }), (0, jsx_runtime_1.jsx)(title_1.Title, { children: (0, util_1.truncateText)(card.text, constants_1.WHATSAPP_MAX_CAROUSEL_CARD_TEXT_CHARS) }), (0, jsx_runtime_1.jsx)(button_1.Button, Object.assign({ url: card.action.buttonUrl }, { children: (0, util_1.truncateText)(card.action.buttonText, constants_1.WHATSAPP_MAX_BUTTON_CHARS) }))] }, index))) })));
21
+ return ((0, jsx_runtime_1.jsx)(carousel_1.Carousel, Object.assign({ text: (0, util_1.truncateText)(props.textMessage, constants_1.WHATSAPP_MAX_BODY_CHARS) }, { children: props.cards.map((card, index) => ((0, jsx_runtime_1.jsxs)(element_1.Element, { children: [(0, jsx_runtime_1.jsx)(pic_1.Pic, { src: card.imageLink }), (0, jsx_runtime_1.jsx)(title_1.Title, { children: (0, util_1.truncateText)(card.text, constants_1.WHATSAPP_MAX_CAROUSEL_CARD_TEXT_CHARS) }), card.type === CardType.CTA_URL && ((0, jsx_runtime_1.jsx)(button_1.Button, Object.assign({ url: card.action.buttonUrl }, { children: (0, util_1.truncateText)(card.action.buttonText, constants_1.WHATSAPP_MAX_BUTTON_CHARS) }))), card.type === CardType.QUICK_REPLY &&
22
+ card.action.buttons.map((button, index) => ((0, jsx_runtime_1.jsx)(button_1.Button, Object.assign({ payload: button.payload }, { children: (0, util_1.truncateText)(button.text, constants_1.WHATSAPP_MAX_BUTTON_CHARS) }), index)))] }, index))) })));
17
23
  };
18
24
  exports.WhatsappInteractiveMediaCarousel = WhatsappInteractiveMediaCarousel;
19
25
  //# sourceMappingURL=whatsapp-interactive-media-carousel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"whatsapp-interactive-media-carousel.js","sourceRoot":"","sources":["../../../src/components/whatsapp-interactive-media-carousel.tsx"],"names":[],"mappings":";;;;AAEA,kCAAsC;AACtC,qCAAiC;AACjC,yCAAqC;AACrC,uCAAmC;AACnC,iEAI0C;AAC1C,+BAA2B;AAC3B,mCAA+B;AAkB/B;;EAEE;AACK,MAAM,gCAAgC,GAAG,CAC9C,KAA4C,EAC5C,EAAE;IACF,OAAO,CACL,uBAAC,mBAAQ,kBAAC,IAAI,EAAE,IAAA,mBAAY,EAAC,KAAK,CAAC,WAAW,EAAE,mCAAuB,CAAC,gBACrE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAChC,wBAAC,iBAAO,eACN,uBAAC,SAAG,IAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,GAAI,EACnC,uBAAC,aAAK,cACH,IAAA,mBAAY,EAAC,IAAI,CAAC,IAAI,EAAE,iDAAqC,CAAC,GACzD,EACR,uBAAC,eAAM,kBAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,gBAC/B,IAAA,mBAAY,EAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,qCAAyB,CAAC,IACzD,KAPG,KAAK,CAQT,CACX,CAAC,IACO,CACZ,CAAA;AACH,CAAC,CAAA;AAlBY,QAAA,gCAAgC,oCAkB5C"}
1
+ {"version":3,"file":"whatsapp-interactive-media-carousel.js","sourceRoot":"","sources":["../../../src/components/whatsapp-interactive-media-carousel.tsx"],"names":[],"mappings":";;;;AAEA,kCAAsC;AACtC,qCAAiC;AACjC,yCAAqC;AACrC,uCAAmC;AACnC,iEAI0C;AAC1C,+BAA2B;AAC3B,mCAA+B;AAE/B,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,+BAAmB,CAAA;IACnB,uCAA2B,CAAA;AAC7B,CAAC,EAHW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAGnB;AA+BD;;EAEE;AACK,MAAM,gCAAgC,GAAG,CAC9C,KAA4C,EAC5C,EAAE;IACF,OAAO,CACL,uBAAC,mBAAQ,kBAAC,IAAI,EAAE,IAAA,mBAAY,EAAC,KAAK,CAAC,WAAW,EAAE,mCAAuB,CAAC,gBACrE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAChC,wBAAC,iBAAO,eACN,uBAAC,SAAG,IAAC,GAAG,EAAE,IAAI,CAAC,SAAS,GAAI,EAC5B,uBAAC,aAAK,cACH,IAAA,mBAAY,EAAC,IAAI,CAAC,IAAI,EAAE,iDAAqC,CAAC,GACzD,EACP,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO,IAAI,CACjC,uBAAC,eAAM,kBAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,gBAC/B,IAAA,mBAAY,EAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,qCAAyB,CAAC,IACzD,CACV,EACA,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,WAAW;oBACjC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CACzC,uBAAC,eAAM,kBAAa,OAAO,EAAE,MAAM,CAAC,OAAO,gBACxC,IAAA,mBAAY,EAAC,MAAM,CAAC,IAAI,EAAE,qCAAyB,CAAC,KAD1C,KAAK,CAET,CACV,CAAC,KAfQ,KAAK,CAgBT,CACX,CAAC,IACO,CACZ,CAAA;AACH,CAAC,CAAA;AA1BY,QAAA,gCAAgC,oCA0B5C"}
@@ -0,0 +1,10 @@
1
+ export interface WhatsappTemplateProps {
2
+ name: string;
3
+ language: string;
4
+ namespace?: string;
5
+ header?: Record<string, any>;
6
+ body?: Record<string, any>;
7
+ footer?: Record<string, any>;
8
+ buttons?: Record<string, any>;
9
+ }
10
+ export declare const WhatsappTemplate: (props: WhatsappTemplateProps) => any;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WhatsappTemplate = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const core_1 = require("@botonic/core");
6
+ const react_1 = require("../../util/react");
7
+ const message_1 = require("../message");
8
+ const serialize = (message) => {
9
+ return { text: message };
10
+ };
11
+ const WhatsappTemplate = (props) => {
12
+ const renderBrowser = () => {
13
+ // Return a dummy message for browser
14
+ const message = `Template ${props.name} with language ${props.language} and namespace ${props.namespace} would be sent to the user.`;
15
+ return ((0, jsx_runtime_1.jsx)(message_1.Message, Object.assign({ json: serialize(message) }, props, { type: core_1.INPUT.TEXT }, { children: message })));
16
+ };
17
+ const renderNode = () => {
18
+ return (
19
+ // @ts-ignore Property 'message' does not exist on type 'JSX.IntrinsicElements'.
20
+ (0, jsx_runtime_1.jsx)("message", Object.assign({}, props, { name: props.name, language: props.language, namespace: props.namespace, header: props.header && JSON.stringify(props.header), body: props.body && JSON.stringify(props.body), footer: props.footer && JSON.stringify(props.footer), buttons: props.buttons && JSON.stringify(props.buttons), type: core_1.INPUT.WHATSAPP_TEMPLATE })));
21
+ };
22
+ return (0, react_1.renderComponent)({ renderBrowser, renderNode });
23
+ };
24
+ exports.WhatsappTemplate = WhatsappTemplate;
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/whatsapp-template/index.tsx"],"names":[],"mappings":";;;;AAAA,wCAAqC;AAGrC,4CAAkD;AAClD,wCAAoC;AAEpC,MAAM,SAAS,GAAG,CAAC,OAAe,EAAE,EAAE;IACpC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;AAC1B,CAAC,CAAA;AAYM,MAAM,gBAAgB,GAAG,CAAC,KAA4B,EAAE,EAAE;IAC/D,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,qCAAqC;QACrC,MAAM,OAAO,GAAG,YAAY,KAAK,CAAC,IAAI,kBAAkB,KAAK,CAAC,QAAQ,kBAAkB,KAAK,CAAC,SAAS,6BAA6B,CAAA;QACpI,OAAO,CACL,uBAAC,iBAAO,kBAAC,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,IAAM,KAAK,IAAE,IAAI,EAAE,YAAK,CAAC,IAAI,gBAC3D,OAAO,IACA,CACX,CAAA;IACH,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,OAAO;QACL,gFAAgF;QAChF,oDACM,KAAK,IACT,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EACpD,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAC9C,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EACpD,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,EACvD,IAAI,EAAE,YAAK,CAAC,iBAAiB,IAC7B,CACH,CAAA;IACH,CAAC,CAAA;IAED,OAAO,IAAA,uBAAe,EAAC,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAA;AACvD,CAAC,CAAA;AA7BY,QAAA,gBAAgB,oBA6B5B"}
@@ -0,0 +1,79 @@
1
+ export declare enum WhatsAppTemplateButtonSubType {
2
+ URL = "URL",
3
+ QUICK_REPLY = "QUICK_REPLY",
4
+ PHONE_NUMBER = "PHONE_NUMBER",
5
+ VOICE_CALL = "VOICE_CALL"
6
+ }
7
+ export declare enum WhatsAppTemplateParameterType {
8
+ PAYLOAD = "PAYLOAD",
9
+ TEXT = "TEXT",
10
+ IMAGE = "IMAGE",
11
+ VIDEO = "VIDEO",
12
+ DOCUMENT = "DOCUMENT"
13
+ }
14
+ export declare enum WhatsAppTemplateComponentType {
15
+ HEADER = "HEADER",
16
+ BODY = "BODY",
17
+ FOOTER = "FOOTER",
18
+ BUTTONS = "BUTTONS",
19
+ BUTTON = "BUTTON"
20
+ }
21
+ export interface WhatsappTemplateHeaderTextParameter {
22
+ type: WhatsAppTemplateParameterType.TEXT;
23
+ text: string;
24
+ }
25
+ export interface WhatsappTemplateHeaderImageParameter {
26
+ type: WhatsAppTemplateParameterType.IMAGE;
27
+ image: {
28
+ link: string;
29
+ };
30
+ }
31
+ export interface WhatsappTemplateComponentHeader {
32
+ type: WhatsAppTemplateComponentType.HEADER;
33
+ parameters: WhatsappTemplateHeaderTextParameter[] | WhatsappTemplateHeaderImageParameter[];
34
+ }
35
+ export interface WhatsappTemplateComponentBody {
36
+ type: WhatsAppTemplateComponentType.BODY;
37
+ parameters: {
38
+ type: WhatsAppTemplateParameterType.TEXT;
39
+ parameter_name: string;
40
+ text: string;
41
+ }[];
42
+ }
43
+ export interface WhatsappTemplateComponentFooter {
44
+ type: WhatsAppTemplateComponentType.FOOTER;
45
+ parameters: {
46
+ type: WhatsAppTemplateParameterType.TEXT;
47
+ parameter_name: string;
48
+ text: string;
49
+ }[];
50
+ }
51
+ export interface WhatsappTemplateComponentButtons {
52
+ type: WhatsAppTemplateComponentType.BUTTONS;
53
+ buttons: WhatsappTemplateButton[];
54
+ }
55
+ export interface WhatsappTemplateQuickReplyButton {
56
+ type: WhatsAppTemplateComponentType.BUTTON;
57
+ sub_type: WhatsAppTemplateButtonSubType.QUICK_REPLY;
58
+ index: number;
59
+ parameters: {
60
+ type: WhatsAppTemplateParameterType.PAYLOAD;
61
+ payload: string;
62
+ }[];
63
+ }
64
+ export interface WhatsappTemplateUrlButton {
65
+ type: WhatsAppTemplateComponentType.BUTTON;
66
+ sub_type: WhatsAppTemplateButtonSubType.URL;
67
+ index: number;
68
+ parameters: {
69
+ type: WhatsAppTemplateParameterType.TEXT;
70
+ text: string;
71
+ }[];
72
+ }
73
+ export interface WhatsappTemplateVoiceCallButton {
74
+ type: WhatsAppTemplateComponentType.BUTTON;
75
+ sub_type: WhatsAppTemplateButtonSubType.VOICE_CALL;
76
+ index: number;
77
+ parameters: [];
78
+ }
79
+ export type WhatsappTemplateButton = WhatsappTemplateQuickReplyButton | WhatsappTemplateUrlButton | WhatsappTemplateVoiceCallButton;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WhatsAppTemplateComponentType = exports.WhatsAppTemplateParameterType = exports.WhatsAppTemplateButtonSubType = void 0;
4
+ var WhatsAppTemplateButtonSubType;
5
+ (function (WhatsAppTemplateButtonSubType) {
6
+ WhatsAppTemplateButtonSubType["URL"] = "URL";
7
+ WhatsAppTemplateButtonSubType["QUICK_REPLY"] = "QUICK_REPLY";
8
+ WhatsAppTemplateButtonSubType["PHONE_NUMBER"] = "PHONE_NUMBER";
9
+ WhatsAppTemplateButtonSubType["VOICE_CALL"] = "VOICE_CALL";
10
+ })(WhatsAppTemplateButtonSubType = exports.WhatsAppTemplateButtonSubType || (exports.WhatsAppTemplateButtonSubType = {}));
11
+ var WhatsAppTemplateParameterType;
12
+ (function (WhatsAppTemplateParameterType) {
13
+ WhatsAppTemplateParameterType["PAYLOAD"] = "PAYLOAD";
14
+ WhatsAppTemplateParameterType["TEXT"] = "TEXT";
15
+ WhatsAppTemplateParameterType["IMAGE"] = "IMAGE";
16
+ WhatsAppTemplateParameterType["VIDEO"] = "VIDEO";
17
+ WhatsAppTemplateParameterType["DOCUMENT"] = "DOCUMENT";
18
+ })(WhatsAppTemplateParameterType = exports.WhatsAppTemplateParameterType || (exports.WhatsAppTemplateParameterType = {}));
19
+ var WhatsAppTemplateComponentType;
20
+ (function (WhatsAppTemplateComponentType) {
21
+ WhatsAppTemplateComponentType["HEADER"] = "HEADER";
22
+ WhatsAppTemplateComponentType["BODY"] = "BODY";
23
+ WhatsAppTemplateComponentType["FOOTER"] = "FOOTER";
24
+ WhatsAppTemplateComponentType["BUTTONS"] = "BUTTONS";
25
+ WhatsAppTemplateComponentType["BUTTON"] = "BUTTON";
26
+ })(WhatsAppTemplateComponentType = exports.WhatsAppTemplateComponentType || (exports.WhatsAppTemplateComponentType = {}));
27
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/components/whatsapp-template/types.ts"],"names":[],"mappings":";;;AAAA,IAAY,6BAKX;AALD,WAAY,6BAA6B;IACvC,4CAAW,CAAA;IACX,4DAA2B,CAAA;IAC3B,8DAA6B,CAAA;IAC7B,0DAAyB,CAAA;AAC3B,CAAC,EALW,6BAA6B,GAA7B,qCAA6B,KAA7B,qCAA6B,QAKxC;AAED,IAAY,6BAMX;AAND,WAAY,6BAA6B;IACvC,oDAAmB,CAAA;IACnB,8CAAa,CAAA;IACb,gDAAe,CAAA;IACf,gDAAe,CAAA;IACf,sDAAqB,CAAA;AACvB,CAAC,EANW,6BAA6B,GAA7B,qCAA6B,KAA7B,qCAA6B,QAMxC;AAED,IAAY,6BAMX;AAND,WAAY,6BAA6B;IACvC,kDAAiB,CAAA;IACjB,8CAAa,CAAA;IACb,kDAAiB,CAAA;IACjB,oDAAmB,CAAA;IACnB,kDAAiB,CAAA;AACnB,CAAC,EANW,6BAA6B,GAA7B,qCAA6B,KAA7B,qCAA6B,QAMxC"}
@@ -23,9 +23,10 @@ export { normalizeWebchatSettings, WebchatSettings, WebchatSettingsProps, } from
23
23
  export { WhatsappButtonList, WhatsappButtonListProps, WhatsappButtonListRowProps, WhatsappButtonListSectionProps, } from './whatsapp-button-list';
24
24
  export { WhatsappCatalog, WhatsappCatalogProps } from './whatsapp-catalog';
25
25
  export { WhatsappCTAUrlButton, WhatsappCTAUrlButtonProps, WhatsappCTAUrlHeaderType, } from './whatsapp-cta-url-button';
26
- export { WhatsappInteractiveMediaCarousel, WhatsappInteractiveMediaCarouselProps, } from './whatsapp-interactive-media-carousel';
26
+ export { CardType, WhatsappInteractiveMediaCard, WhatsappInteractiveMediaCarousel, WhatsappInteractiveMediaCarouselProps, } from './whatsapp-interactive-media-carousel';
27
27
  export { WhatsappMediaCarousel, WhatsappMediaCarouselProps, } from './whatsapp-media-carousel';
28
28
  export { WhatsappProduct } from './whatsapp-product';
29
29
  export { WhatsappProductCarousel, WhatsappProductCarouselProps, } from './whatsapp-product-carousel';
30
30
  export { ProductItem, WhatsappProductList, WhatsappProductListProps, WhatsappProductListSection, } from './whatsapp-product-list';
31
- export { WhatsappTemplate } from './whatsapp-template';
31
+ export { WhatsappTemplate } from './whatsapp-template/index';
32
+ export * from './whatsapp-template/types';
@@ -23,10 +23,11 @@ export { normalizeWebchatSettings, WebchatSettings, } from './webchat-settings';
23
23
  export { WhatsappButtonList, } from './whatsapp-button-list';
24
24
  export { WhatsappCatalog } from './whatsapp-catalog';
25
25
  export { WhatsappCTAUrlButton, WhatsappCTAUrlHeaderType, } from './whatsapp-cta-url-button';
26
- export { WhatsappInteractiveMediaCarousel, } from './whatsapp-interactive-media-carousel';
26
+ export { CardType, WhatsappInteractiveMediaCarousel, } from './whatsapp-interactive-media-carousel';
27
27
  export { WhatsappMediaCarousel, } from './whatsapp-media-carousel';
28
28
  export { WhatsappProduct } from './whatsapp-product';
29
29
  export { WhatsappProductCarousel, } from './whatsapp-product-carousel';
30
30
  export { WhatsappProductList, } from './whatsapp-product-list';
31
- export { WhatsappTemplate } from './whatsapp-template';
31
+ export { WhatsappTemplate } from './whatsapp-template/index';
32
+ export * from './whatsapp-template/types';
32
33
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,cAAc,gBAAgB,CAAA;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EACL,wBAAwB,EACxB,eAAe,GAEhB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,kBAAkB,GAInB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,eAAe,EAAwB,MAAM,oBAAoB,CAAA;AAC1E,OAAO,EACL,oBAAoB,EAEpB,wBAAwB,GACzB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,gCAAgC,GAEjC,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EACL,qBAAqB,GAEtB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EACL,uBAAuB,GAExB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAEL,mBAAmB,GAGpB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,cAAc,gBAAgB,CAAA;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EACL,wBAAwB,EACxB,eAAe,GAEhB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,kBAAkB,GAInB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,eAAe,EAAwB,MAAM,oBAAoB,CAAA;AAC1E,OAAO,EACL,oBAAoB,EAEpB,wBAAwB,GACzB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,QAAQ,EAER,gCAAgC,GAEjC,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EACL,qBAAqB,GAEtB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EACL,uBAAuB,GAExB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAEL,mBAAmB,GAGpB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,cAAc,2BAA2B,CAAA"}
@@ -1,14 +1,30 @@
1
- interface ActionCard {
2
- buttonText: string;
3
- buttonUrl: string;
4
- imageLink: string;
1
+ export declare enum CardType {
2
+ CTA_URL = "cta_url",
3
+ QUICK_REPLY = "quick_reply"
5
4
  }
6
- interface Card {
5
+ interface BaseCard {
6
+ imageLink: string;
7
7
  text: string;
8
- action: ActionCard;
9
8
  }
9
+ interface UrlCard extends BaseCard {
10
+ type: CardType.CTA_URL;
11
+ action: {
12
+ buttonText: string;
13
+ buttonUrl: string;
14
+ };
15
+ }
16
+ interface QuickReplyCard extends BaseCard {
17
+ type: CardType.QUICK_REPLY;
18
+ action: {
19
+ buttons: {
20
+ text: string;
21
+ payload: string;
22
+ }[];
23
+ };
24
+ }
25
+ export type WhatsappInteractiveMediaCard = UrlCard | QuickReplyCard;
10
26
  export interface WhatsappInteractiveMediaCarouselProps {
11
- cards: Card[];
27
+ cards: WhatsappInteractiveMediaCard[];
12
28
  textMessage: string;
13
29
  }
14
30
  export declare const WhatsappInteractiveMediaCarousel: (props: WhatsappInteractiveMediaCarouselProps) => import("react/jsx-runtime").JSX.Element;
@@ -6,10 +6,16 @@ import { Element } from './element';
6
6
  import { WHATSAPP_MAX_BODY_CHARS, WHATSAPP_MAX_BUTTON_CHARS, WHATSAPP_MAX_CAROUSEL_CARD_TEXT_CHARS, } from './multichannel/whatsapp/constants';
7
7
  import { Pic } from './pic';
8
8
  import { Title } from './title';
9
+ export var CardType;
10
+ (function (CardType) {
11
+ CardType["CTA_URL"] = "cta_url";
12
+ CardType["QUICK_REPLY"] = "quick_reply";
13
+ })(CardType || (CardType = {}));
9
14
  /*
10
- Reference: https://developers.facebook.com/docs/whatsapp/cloud-api/messages/interactive-media-carousel-messages/
15
+ Reference: https://developers.facebook.com/documentation/business-messaging/whatsapp/messages/interactive-media-carousel-messages?locale=en_US
11
16
  */
12
17
  export const WhatsappInteractiveMediaCarousel = (props) => {
13
- return (_jsx(Carousel, Object.assign({ text: truncateText(props.textMessage, WHATSAPP_MAX_BODY_CHARS) }, { children: props.cards.map((card, index) => (_jsxs(Element, { children: [_jsx(Pic, { src: card.action.imageLink }), _jsx(Title, { children: truncateText(card.text, WHATSAPP_MAX_CAROUSEL_CARD_TEXT_CHARS) }), _jsx(Button, Object.assign({ url: card.action.buttonUrl }, { children: truncateText(card.action.buttonText, WHATSAPP_MAX_BUTTON_CHARS) }))] }, index))) })));
18
+ return (_jsx(Carousel, Object.assign({ text: truncateText(props.textMessage, WHATSAPP_MAX_BODY_CHARS) }, { children: props.cards.map((card, index) => (_jsxs(Element, { children: [_jsx(Pic, { src: card.imageLink }), _jsx(Title, { children: truncateText(card.text, WHATSAPP_MAX_CAROUSEL_CARD_TEXT_CHARS) }), card.type === CardType.CTA_URL && (_jsx(Button, Object.assign({ url: card.action.buttonUrl }, { children: truncateText(card.action.buttonText, WHATSAPP_MAX_BUTTON_CHARS) }))), card.type === CardType.QUICK_REPLY &&
19
+ card.action.buttons.map((button, index) => (_jsx(Button, Object.assign({ payload: button.payload }, { children: truncateText(button.text, WHATSAPP_MAX_BUTTON_CHARS) }), index)))] }, index))) })));
14
20
  };
15
21
  //# sourceMappingURL=whatsapp-interactive-media-carousel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"whatsapp-interactive-media-carousel.js","sourceRoot":"","sources":["../../../src/components/whatsapp-interactive-media-carousel.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,qCAAqC,GACtC,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAkB/B;;EAEE;AACF,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC9C,KAA4C,EAC5C,EAAE;IACF,OAAO,CACL,KAAC,QAAQ,kBAAC,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,WAAW,EAAE,uBAAuB,CAAC,gBACrE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAChC,MAAC,OAAO,eACN,KAAC,GAAG,IAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,GAAI,EACnC,KAAC,KAAK,cACH,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,qCAAqC,CAAC,GACzD,EACR,KAAC,MAAM,kBAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,gBAC/B,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,yBAAyB,CAAC,IACzD,KAPG,KAAK,CAQT,CACX,CAAC,IACO,CACZ,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"whatsapp-interactive-media-carousel.js","sourceRoot":"","sources":["../../../src/components/whatsapp-interactive-media-carousel.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,qCAAqC,GACtC,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE/B,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,+BAAmB,CAAA;IACnB,uCAA2B,CAAA;AAC7B,CAAC,EAHW,QAAQ,KAAR,QAAQ,QAGnB;AA+BD;;EAEE;AACF,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC9C,KAA4C,EAC5C,EAAE;IACF,OAAO,CACL,KAAC,QAAQ,kBAAC,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,WAAW,EAAE,uBAAuB,CAAC,gBACrE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAChC,MAAC,OAAO,eACN,KAAC,GAAG,IAAC,GAAG,EAAE,IAAI,CAAC,SAAS,GAAI,EAC5B,KAAC,KAAK,cACH,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,qCAAqC,CAAC,GACzD,EACP,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO,IAAI,CACjC,KAAC,MAAM,kBAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,gBAC/B,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,yBAAyB,CAAC,IACzD,CACV,EACA,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,WAAW;oBACjC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CACzC,KAAC,MAAM,kBAAa,OAAO,EAAE,MAAM,CAAC,OAAO,gBACxC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,yBAAyB,CAAC,KAD1C,KAAK,CAET,CACV,CAAC,KAfQ,KAAK,CAgBT,CACX,CAAC,IACO,CACZ,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,10 @@
1
+ export interface WhatsappTemplateProps {
2
+ name: string;
3
+ language: string;
4
+ namespace?: string;
5
+ header?: Record<string, any>;
6
+ body?: Record<string, any>;
7
+ footer?: Record<string, any>;
8
+ buttons?: Record<string, any>;
9
+ }
10
+ export declare const WhatsappTemplate: (props: WhatsappTemplateProps) => any;
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { INPUT } from '@botonic/core';
3
+ import { renderComponent } from '../../util/react';
4
+ import { Message } from '../message';
5
+ const serialize = (message) => {
6
+ return { text: message };
7
+ };
8
+ export const WhatsappTemplate = (props) => {
9
+ const renderBrowser = () => {
10
+ // Return a dummy message for browser
11
+ const message = `Template ${props.name} with language ${props.language} and namespace ${props.namespace} would be sent to the user.`;
12
+ return (_jsx(Message, Object.assign({ json: serialize(message) }, props, { type: INPUT.TEXT }, { children: message })));
13
+ };
14
+ const renderNode = () => {
15
+ return (
16
+ // @ts-ignore Property 'message' does not exist on type 'JSX.IntrinsicElements'.
17
+ _jsx("message", Object.assign({}, props, { name: props.name, language: props.language, namespace: props.namespace, header: props.header && JSON.stringify(props.header), body: props.body && JSON.stringify(props.body), footer: props.footer && JSON.stringify(props.footer), buttons: props.buttons && JSON.stringify(props.buttons), type: INPUT.WHATSAPP_TEMPLATE })));
18
+ };
19
+ return renderComponent({ renderBrowser, renderNode });
20
+ };
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/whatsapp-template/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAGrC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,MAAM,SAAS,GAAG,CAAC,OAAe,EAAE,EAAE;IACpC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;AAC1B,CAAC,CAAA;AAYD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAA4B,EAAE,EAAE;IAC/D,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,qCAAqC;QACrC,MAAM,OAAO,GAAG,YAAY,KAAK,CAAC,IAAI,kBAAkB,KAAK,CAAC,QAAQ,kBAAkB,KAAK,CAAC,SAAS,6BAA6B,CAAA;QACpI,OAAO,CACL,KAAC,OAAO,kBAAC,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,IAAM,KAAK,IAAE,IAAI,EAAE,KAAK,CAAC,IAAI,gBAC3D,OAAO,IACA,CACX,CAAA;IACH,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,OAAO;QACL,gFAAgF;QAChF,kCACM,KAAK,IACT,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EACpD,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAC9C,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EACpD,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,EACvD,IAAI,EAAE,KAAK,CAAC,iBAAiB,IAC7B,CACH,CAAA;IACH,CAAC,CAAA;IAED,OAAO,eAAe,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAA;AACvD,CAAC,CAAA"}
@@ -0,0 +1,79 @@
1
+ export declare enum WhatsAppTemplateButtonSubType {
2
+ URL = "URL",
3
+ QUICK_REPLY = "QUICK_REPLY",
4
+ PHONE_NUMBER = "PHONE_NUMBER",
5
+ VOICE_CALL = "VOICE_CALL"
6
+ }
7
+ export declare enum WhatsAppTemplateParameterType {
8
+ PAYLOAD = "PAYLOAD",
9
+ TEXT = "TEXT",
10
+ IMAGE = "IMAGE",
11
+ VIDEO = "VIDEO",
12
+ DOCUMENT = "DOCUMENT"
13
+ }
14
+ export declare enum WhatsAppTemplateComponentType {
15
+ HEADER = "HEADER",
16
+ BODY = "BODY",
17
+ FOOTER = "FOOTER",
18
+ BUTTONS = "BUTTONS",
19
+ BUTTON = "BUTTON"
20
+ }
21
+ export interface WhatsappTemplateHeaderTextParameter {
22
+ type: WhatsAppTemplateParameterType.TEXT;
23
+ text: string;
24
+ }
25
+ export interface WhatsappTemplateHeaderImageParameter {
26
+ type: WhatsAppTemplateParameterType.IMAGE;
27
+ image: {
28
+ link: string;
29
+ };
30
+ }
31
+ export interface WhatsappTemplateComponentHeader {
32
+ type: WhatsAppTemplateComponentType.HEADER;
33
+ parameters: WhatsappTemplateHeaderTextParameter[] | WhatsappTemplateHeaderImageParameter[];
34
+ }
35
+ export interface WhatsappTemplateComponentBody {
36
+ type: WhatsAppTemplateComponentType.BODY;
37
+ parameters: {
38
+ type: WhatsAppTemplateParameterType.TEXT;
39
+ parameter_name: string;
40
+ text: string;
41
+ }[];
42
+ }
43
+ export interface WhatsappTemplateComponentFooter {
44
+ type: WhatsAppTemplateComponentType.FOOTER;
45
+ parameters: {
46
+ type: WhatsAppTemplateParameterType.TEXT;
47
+ parameter_name: string;
48
+ text: string;
49
+ }[];
50
+ }
51
+ export interface WhatsappTemplateComponentButtons {
52
+ type: WhatsAppTemplateComponentType.BUTTONS;
53
+ buttons: WhatsappTemplateButton[];
54
+ }
55
+ export interface WhatsappTemplateQuickReplyButton {
56
+ type: WhatsAppTemplateComponentType.BUTTON;
57
+ sub_type: WhatsAppTemplateButtonSubType.QUICK_REPLY;
58
+ index: number;
59
+ parameters: {
60
+ type: WhatsAppTemplateParameterType.PAYLOAD;
61
+ payload: string;
62
+ }[];
63
+ }
64
+ export interface WhatsappTemplateUrlButton {
65
+ type: WhatsAppTemplateComponentType.BUTTON;
66
+ sub_type: WhatsAppTemplateButtonSubType.URL;
67
+ index: number;
68
+ parameters: {
69
+ type: WhatsAppTemplateParameterType.TEXT;
70
+ text: string;
71
+ }[];
72
+ }
73
+ export interface WhatsappTemplateVoiceCallButton {
74
+ type: WhatsAppTemplateComponentType.BUTTON;
75
+ sub_type: WhatsAppTemplateButtonSubType.VOICE_CALL;
76
+ index: number;
77
+ parameters: [];
78
+ }
79
+ export type WhatsappTemplateButton = WhatsappTemplateQuickReplyButton | WhatsappTemplateUrlButton | WhatsappTemplateVoiceCallButton;
@@ -0,0 +1,24 @@
1
+ export var WhatsAppTemplateButtonSubType;
2
+ (function (WhatsAppTemplateButtonSubType) {
3
+ WhatsAppTemplateButtonSubType["URL"] = "URL";
4
+ WhatsAppTemplateButtonSubType["QUICK_REPLY"] = "QUICK_REPLY";
5
+ WhatsAppTemplateButtonSubType["PHONE_NUMBER"] = "PHONE_NUMBER";
6
+ WhatsAppTemplateButtonSubType["VOICE_CALL"] = "VOICE_CALL";
7
+ })(WhatsAppTemplateButtonSubType || (WhatsAppTemplateButtonSubType = {}));
8
+ export var WhatsAppTemplateParameterType;
9
+ (function (WhatsAppTemplateParameterType) {
10
+ WhatsAppTemplateParameterType["PAYLOAD"] = "PAYLOAD";
11
+ WhatsAppTemplateParameterType["TEXT"] = "TEXT";
12
+ WhatsAppTemplateParameterType["IMAGE"] = "IMAGE";
13
+ WhatsAppTemplateParameterType["VIDEO"] = "VIDEO";
14
+ WhatsAppTemplateParameterType["DOCUMENT"] = "DOCUMENT";
15
+ })(WhatsAppTemplateParameterType || (WhatsAppTemplateParameterType = {}));
16
+ export var WhatsAppTemplateComponentType;
17
+ (function (WhatsAppTemplateComponentType) {
18
+ WhatsAppTemplateComponentType["HEADER"] = "HEADER";
19
+ WhatsAppTemplateComponentType["BODY"] = "BODY";
20
+ WhatsAppTemplateComponentType["FOOTER"] = "FOOTER";
21
+ WhatsAppTemplateComponentType["BUTTONS"] = "BUTTONS";
22
+ WhatsAppTemplateComponentType["BUTTON"] = "BUTTON";
23
+ })(WhatsAppTemplateComponentType || (WhatsAppTemplateComponentType = {}));
24
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/components/whatsapp-template/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,6BAKX;AALD,WAAY,6BAA6B;IACvC,4CAAW,CAAA;IACX,4DAA2B,CAAA;IAC3B,8DAA6B,CAAA;IAC7B,0DAAyB,CAAA;AAC3B,CAAC,EALW,6BAA6B,KAA7B,6BAA6B,QAKxC;AAED,MAAM,CAAN,IAAY,6BAMX;AAND,WAAY,6BAA6B;IACvC,oDAAmB,CAAA;IACnB,8CAAa,CAAA;IACb,gDAAe,CAAA;IACf,gDAAe,CAAA;IACf,sDAAqB,CAAA;AACvB,CAAC,EANW,6BAA6B,KAA7B,6BAA6B,QAMxC;AAED,MAAM,CAAN,IAAY,6BAMX;AAND,WAAY,6BAA6B;IACvC,kDAAiB,CAAA;IACjB,8CAAa,CAAA;IACb,kDAAiB,CAAA;IACjB,oDAAmB,CAAA;IACnB,kDAAiB,CAAA;AACnB,CAAC,EANW,6BAA6B,KAA7B,6BAA6B,QAMxC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@botonic/react",
3
- "version": "0.42.1",
3
+ "version": "0.43.0-alpha.1",
4
4
  "license": "MIT",
5
5
  "description": "Build Chatbots using React",
6
6
  "main": "./lib/cjs",
@@ -20,7 +20,7 @@
20
20
  "lint_core": "../../node_modules/.bin/eslint_d --cache --quiet '.*.js' '*.js' 'src/**/*.js*' --fix"
21
21
  },
22
22
  "dependencies": {
23
- "@botonic/core": "^0.42.0",
23
+ "@botonic/core": "0.43.0-alpha.1",
24
24
  "axios": "^1.12.2",
25
25
  "emoji-picker-react": "^4.12.0",
26
26
  "lodash.merge": "^4.6.2",
@@ -80,4 +80,4 @@
80
80
  "javascript",
81
81
  "react"
82
82
  ]
83
- }
83
+ }
@@ -37,6 +37,8 @@ export {
37
37
  WhatsappCTAUrlHeaderType,
38
38
  } from './whatsapp-cta-url-button'
39
39
  export {
40
+ CardType,
41
+ WhatsappInteractiveMediaCard,
40
42
  WhatsappInteractiveMediaCarousel,
41
43
  WhatsappInteractiveMediaCarouselProps,
42
44
  } from './whatsapp-interactive-media-carousel'
@@ -55,4 +57,5 @@ export {
55
57
  WhatsappProductListProps,
56
58
  WhatsappProductListSection,
57
59
  } from './whatsapp-product-list'
58
- export { WhatsappTemplate } from './whatsapp-template'
60
+ export { WhatsappTemplate } from './whatsapp-template/index'
61
+ export * from './whatsapp-template/types'
@@ -12,24 +12,42 @@ import {
12
12
  import { Pic } from './pic'
13
13
  import { Title } from './title'
14
14
 
15
- interface ActionCard {
16
- buttonText: string
17
- buttonUrl: string
18
- imageLink: string
15
+ export enum CardType {
16
+ CTA_URL = 'cta_url',
17
+ QUICK_REPLY = 'quick_reply',
19
18
  }
20
19
 
21
- interface Card {
20
+ interface BaseCard {
21
+ imageLink: string
22
22
  text: string
23
- action: ActionCard
24
23
  }
25
24
 
25
+ interface UrlCard extends BaseCard {
26
+ type: CardType.CTA_URL
27
+ action: {
28
+ buttonText: string
29
+ buttonUrl: string
30
+ }
31
+ }
32
+
33
+ interface QuickReplyCard extends BaseCard {
34
+ type: CardType.QUICK_REPLY
35
+ action: {
36
+ buttons: {
37
+ text: string
38
+ payload: string
39
+ }[]
40
+ }
41
+ }
42
+
43
+ export type WhatsappInteractiveMediaCard = UrlCard | QuickReplyCard
26
44
  export interface WhatsappInteractiveMediaCarouselProps {
27
- cards: Card[]
45
+ cards: WhatsappInteractiveMediaCard[]
28
46
  textMessage: string
29
47
  }
30
48
 
31
49
  /*
32
- Reference: https://developers.facebook.com/docs/whatsapp/cloud-api/messages/interactive-media-carousel-messages/
50
+ Reference: https://developers.facebook.com/documentation/business-messaging/whatsapp/messages/interactive-media-carousel-messages?locale=en_US
33
51
  */
34
52
  export const WhatsappInteractiveMediaCarousel = (
35
53
  props: WhatsappInteractiveMediaCarouselProps
@@ -38,13 +56,21 @@ export const WhatsappInteractiveMediaCarousel = (
38
56
  <Carousel text={truncateText(props.textMessage, WHATSAPP_MAX_BODY_CHARS)}>
39
57
  {props.cards.map((card, index) => (
40
58
  <Element key={index}>
41
- <Pic src={card.action.imageLink} />
59
+ <Pic src={card.imageLink} />
42
60
  <Title>
43
61
  {truncateText(card.text, WHATSAPP_MAX_CAROUSEL_CARD_TEXT_CHARS)}
44
62
  </Title>
45
- <Button url={card.action.buttonUrl}>
46
- {truncateText(card.action.buttonText, WHATSAPP_MAX_BUTTON_CHARS)}
47
- </Button>
63
+ {card.type === CardType.CTA_URL && (
64
+ <Button url={card.action.buttonUrl}>
65
+ {truncateText(card.action.buttonText, WHATSAPP_MAX_BUTTON_CHARS)}
66
+ </Button>
67
+ )}
68
+ {card.type === CardType.QUICK_REPLY &&
69
+ card.action.buttons.map((button, index) => (
70
+ <Button key={index} payload={button.payload}>
71
+ {truncateText(button.text, WHATSAPP_MAX_BUTTON_CHARS)}
72
+ </Button>
73
+ ))}
48
74
  </Element>
49
75
  ))}
50
76
  </Carousel>
@@ -0,0 +1,50 @@
1
+ import { INPUT } from '@botonic/core'
2
+ import React from 'react'
3
+
4
+ import { renderComponent } from '../../util/react'
5
+ import { Message } from '../message'
6
+
7
+ const serialize = (message: string) => {
8
+ return { text: message }
9
+ }
10
+
11
+ export interface WhatsappTemplateProps {
12
+ name: string
13
+ language: string
14
+ namespace?: string
15
+ header?: Record<string, any>
16
+ body?: Record<string, any>
17
+ footer?: Record<string, any>
18
+ buttons?: Record<string, any>
19
+ }
20
+
21
+ export const WhatsappTemplate = (props: WhatsappTemplateProps) => {
22
+ const renderBrowser = () => {
23
+ // Return a dummy message for browser
24
+ const message = `Template ${props.name} with language ${props.language} and namespace ${props.namespace} would be sent to the user.`
25
+ return (
26
+ <Message json={serialize(message)} {...props} type={INPUT.TEXT}>
27
+ {message}
28
+ </Message>
29
+ )
30
+ }
31
+
32
+ const renderNode = () => {
33
+ return (
34
+ // @ts-ignore Property 'message' does not exist on type 'JSX.IntrinsicElements'.
35
+ <message
36
+ {...props}
37
+ name={props.name}
38
+ language={props.language}
39
+ namespace={props.namespace}
40
+ header={props.header && JSON.stringify(props.header)}
41
+ body={props.body && JSON.stringify(props.body)}
42
+ footer={props.footer && JSON.stringify(props.footer)}
43
+ buttons={props.buttons && JSON.stringify(props.buttons)}
44
+ type={INPUT.WHATSAPP_TEMPLATE}
45
+ />
46
+ )
47
+ }
48
+
49
+ return renderComponent({ renderBrowser, renderNode })
50
+ }
@@ -0,0 +1,104 @@
1
+ export enum WhatsAppTemplateButtonSubType {
2
+ URL = 'URL',
3
+ QUICK_REPLY = 'QUICK_REPLY',
4
+ PHONE_NUMBER = 'PHONE_NUMBER',
5
+ VOICE_CALL = 'VOICE_CALL',
6
+ }
7
+
8
+ export enum WhatsAppTemplateParameterType {
9
+ PAYLOAD = 'PAYLOAD',
10
+ TEXT = 'TEXT',
11
+ IMAGE = 'IMAGE',
12
+ VIDEO = 'VIDEO',
13
+ DOCUMENT = 'DOCUMENT',
14
+ }
15
+
16
+ export enum WhatsAppTemplateComponentType {
17
+ HEADER = 'HEADER',
18
+ BODY = 'BODY',
19
+ FOOTER = 'FOOTER',
20
+ BUTTONS = 'BUTTONS',
21
+ BUTTON = 'BUTTON',
22
+ }
23
+
24
+ export interface WhatsappTemplateHeaderTextParameter {
25
+ type: WhatsAppTemplateParameterType.TEXT
26
+ text: string
27
+ }
28
+
29
+ export interface WhatsappTemplateHeaderImageParameter {
30
+ type: WhatsAppTemplateParameterType.IMAGE
31
+ image: {
32
+ link: string
33
+ }
34
+ }
35
+
36
+ export interface WhatsappTemplateComponentHeader {
37
+ type: WhatsAppTemplateComponentType.HEADER
38
+ parameters:
39
+ | WhatsappTemplateHeaderTextParameter[]
40
+ | WhatsappTemplateHeaderImageParameter[]
41
+ // | {
42
+ // type: WhatsAppTemplateParameterType.VIDEO
43
+ // video: string
44
+ // }[]
45
+ // | {
46
+ // type: WhatsAppTemplateParameterType.DOCUMENT
47
+ // document: string
48
+ // }[]
49
+ }
50
+
51
+ export interface WhatsappTemplateComponentBody {
52
+ type: WhatsAppTemplateComponentType.BODY
53
+ parameters: {
54
+ type: WhatsAppTemplateParameterType.TEXT
55
+ parameter_name: string
56
+ text: string
57
+ }[]
58
+ }
59
+
60
+ export interface WhatsappTemplateComponentFooter {
61
+ type: WhatsAppTemplateComponentType.FOOTER
62
+ parameters: {
63
+ type: WhatsAppTemplateParameterType.TEXT
64
+ parameter_name: string
65
+ text: string
66
+ }[]
67
+ }
68
+
69
+ export interface WhatsappTemplateComponentButtons {
70
+ type: WhatsAppTemplateComponentType.BUTTONS
71
+ buttons: WhatsappTemplateButton[]
72
+ }
73
+
74
+ export interface WhatsappTemplateQuickReplyButton {
75
+ type: WhatsAppTemplateComponentType.BUTTON
76
+ sub_type: WhatsAppTemplateButtonSubType.QUICK_REPLY
77
+ index: number
78
+ parameters: {
79
+ type: WhatsAppTemplateParameterType.PAYLOAD
80
+ payload: string
81
+ }[]
82
+ }
83
+
84
+ export interface WhatsappTemplateUrlButton {
85
+ type: WhatsAppTemplateComponentType.BUTTON
86
+ sub_type: WhatsAppTemplateButtonSubType.URL
87
+ index: number
88
+ parameters: {
89
+ type: WhatsAppTemplateParameterType.TEXT
90
+ text: string // URL dynamic param
91
+ }[]
92
+ }
93
+
94
+ export interface WhatsappTemplateVoiceCallButton {
95
+ type: WhatsAppTemplateComponentType.BUTTON
96
+ sub_type: WhatsAppTemplateButtonSubType.VOICE_CALL
97
+ index: number
98
+ parameters: []
99
+ }
100
+
101
+ export type WhatsappTemplateButton =
102
+ | WhatsappTemplateQuickReplyButton
103
+ | WhatsappTemplateUrlButton
104
+ | WhatsappTemplateVoiceCallButton
@@ -1 +0,0 @@
1
- export function WhatsappTemplate(props: any): any;
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WhatsappTemplate = void 0;
4
- const tslib_1 = require("tslib");
5
- const jsx_runtime_1 = require("react/jsx-runtime");
6
- const core_1 = require("@botonic/core");
7
- const react_1 = tslib_1.__importDefault(require("react"));
8
- const react_2 = require("../util/react");
9
- const message_1 = require("./message");
10
- const serialize = whatsappTemplateProps => {
11
- return { text: whatsappTemplateProps };
12
- };
13
- const WhatsappTemplate = props => {
14
- const renderBrowser = () => {
15
- // Return a dummy message for browser
16
- const message = `Template ${props.name} with namespace ${props.namespace} would be sent to the user.`;
17
- return ((0, jsx_runtime_1.jsx)(message_1.Message, Object.assign({ json: serialize(message) }, props, { type: core_1.INPUT.TEXT }, { children: message })));
18
- };
19
- const renderNode = () => {
20
- return ((0, jsx_runtime_1.jsx)("message", Object.assign({}, props, { header: props.header && JSON.stringify(props.header), body: props.body && JSON.stringify(props.body), footer: props.footer && JSON.stringify(props.footer), type: core_1.INPUT.WHATSAPP_TEMPLATE })));
21
- };
22
- return (0, react_2.renderComponent)({ renderBrowser, renderNode });
23
- };
24
- exports.WhatsappTemplate = WhatsappTemplate;
25
- //# sourceMappingURL=whatsapp-template.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"whatsapp-template.js","sourceRoot":"","sources":["../../../src/components/whatsapp-template.jsx"],"names":[],"mappings":";;;;;AAAA,wCAAqC;AACrC,0DAAyB;AAEzB,yCAA+C;AAC/C,uCAAmC;AAEnC,MAAM,SAAS,GAAG,qBAAqB,CAAC,EAAE;IACxC,OAAO,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAA;AACxC,CAAC,CAAA;AAEM,MAAM,gBAAgB,GAAG,KAAK,CAAC,EAAE;IACtC,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,qCAAqC;QACrC,MAAM,OAAO,GAAG,YAAY,KAAK,CAAC,IAAI,mBAAmB,KAAK,CAAC,SAAS,6BAA6B,CAAA;QACrG,OAAO,CACL,uBAAC,iBAAO,kBAAC,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,IAAM,KAAK,IAAE,IAAI,EAAE,YAAK,CAAC,IAAI,gBAC3D,OAAO,IACA,CACX,CAAA;IACH,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,OAAO,CACL,oDACM,KAAK,IACT,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EACpD,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAC9C,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EACpD,IAAI,EAAE,YAAK,CAAC,iBAAiB,IAC7B,CACH,CAAA;IACH,CAAC,CAAA;IAED,OAAO,IAAA,uBAAe,EAAC,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAA;AACvD,CAAC,CAAA;AAxBY,QAAA,gBAAgB,oBAwB5B"}
@@ -1 +0,0 @@
1
- export function WhatsappTemplate(props: any): any;
@@ -1,20 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { INPUT } from '@botonic/core';
3
- import React from 'react';
4
- import { renderComponent } from '../util/react';
5
- import { Message } from './message';
6
- const serialize = whatsappTemplateProps => {
7
- return { text: whatsappTemplateProps };
8
- };
9
- export const WhatsappTemplate = props => {
10
- const renderBrowser = () => {
11
- // Return a dummy message for browser
12
- const message = `Template ${props.name} with namespace ${props.namespace} would be sent to the user.`;
13
- return (_jsx(Message, Object.assign({ json: serialize(message) }, props, { type: INPUT.TEXT }, { children: message })));
14
- };
15
- const renderNode = () => {
16
- return (_jsx("message", Object.assign({}, props, { header: props.header && JSON.stringify(props.header), body: props.body && JSON.stringify(props.body), footer: props.footer && JSON.stringify(props.footer), type: INPUT.WHATSAPP_TEMPLATE })));
17
- };
18
- return renderComponent({ renderBrowser, renderNode });
19
- };
20
- //# sourceMappingURL=whatsapp-template.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"whatsapp-template.js","sourceRoot":"","sources":["../../../src/components/whatsapp-template.jsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,MAAM,SAAS,GAAG,qBAAqB,CAAC,EAAE;IACxC,OAAO,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAA;AACxC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC,EAAE;IACtC,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,qCAAqC;QACrC,MAAM,OAAO,GAAG,YAAY,KAAK,CAAC,IAAI,mBAAmB,KAAK,CAAC,SAAS,6BAA6B,CAAA;QACrG,OAAO,CACL,KAAC,OAAO,kBAAC,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,IAAM,KAAK,IAAE,IAAI,EAAE,KAAK,CAAC,IAAI,gBAC3D,OAAO,IACA,CACX,CAAA;IACH,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,OAAO,CACL,kCACM,KAAK,IACT,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EACpD,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAC9C,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EACpD,IAAI,EAAE,KAAK,CAAC,iBAAiB,IAC7B,CACH,CAAA;IACH,CAAC,CAAA;IAED,OAAO,eAAe,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAA;AACvD,CAAC,CAAA"}
@@ -1,35 +0,0 @@
1
- import { INPUT } from '@botonic/core'
2
- import React from 'react'
3
-
4
- import { renderComponent } from '../util/react'
5
- import { Message } from './message'
6
-
7
- const serialize = whatsappTemplateProps => {
8
- return { text: whatsappTemplateProps }
9
- }
10
-
11
- export const WhatsappTemplate = props => {
12
- const renderBrowser = () => {
13
- // Return a dummy message for browser
14
- const message = `Template ${props.name} with namespace ${props.namespace} would be sent to the user.`
15
- return (
16
- <Message json={serialize(message)} {...props} type={INPUT.TEXT}>
17
- {message}
18
- </Message>
19
- )
20
- }
21
-
22
- const renderNode = () => {
23
- return (
24
- <message
25
- {...props}
26
- header={props.header && JSON.stringify(props.header)}
27
- body={props.body && JSON.stringify(props.body)}
28
- footer={props.footer && JSON.stringify(props.footer)}
29
- type={INPUT.WHATSAPP_TEMPLATE}
30
- />
31
- )
32
- }
33
-
34
- return renderComponent({ renderBrowser, renderNode })
35
- }