@botonic/react 0.42.0-alpha.3 → 0.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/lib/cjs/components/index-types.d.ts +1 -0
  2. package/lib/cjs/components/index.d.ts +1 -0
  3. package/lib/cjs/components/index.js +3 -1
  4. package/lib/cjs/components/index.js.map +1 -1
  5. package/lib/cjs/components/multichannel/whatsapp/constants.d.ts +1 -0
  6. package/lib/cjs/components/multichannel/whatsapp/constants.js +2 -1
  7. package/lib/cjs/components/multichannel/whatsapp/constants.js.map +1 -1
  8. package/lib/cjs/components/system-debug-trace/events/conditional-queue-status.d.ts +1 -0
  9. package/lib/cjs/components/system-debug-trace/events/conditional-queue-status.js +12 -6
  10. package/lib/cjs/components/system-debug-trace/events/conditional-queue-status.js.map +1 -1
  11. package/lib/cjs/components/system-debug-trace/events/constants.d.ts +6 -0
  12. package/lib/cjs/components/system-debug-trace/events/constants.js +6 -0
  13. package/lib/cjs/components/system-debug-trace/events/constants.js.map +1 -1
  14. package/lib/cjs/components/whatsapp-interactive-media-carousel.d.ts +15 -0
  15. package/lib/cjs/components/whatsapp-interactive-media-carousel.js +19 -0
  16. package/lib/cjs/components/whatsapp-interactive-media-carousel.js.map +1 -0
  17. package/lib/cjs/components/whatsapp-media-carousel.js +3 -0
  18. package/lib/cjs/components/whatsapp-media-carousel.js.map +1 -1
  19. package/lib/esm/components/index-types.d.ts +1 -0
  20. package/lib/esm/components/index.d.ts +1 -0
  21. package/lib/esm/components/index.js +1 -0
  22. package/lib/esm/components/index.js.map +1 -1
  23. package/lib/esm/components/multichannel/whatsapp/constants.d.ts +1 -0
  24. package/lib/esm/components/multichannel/whatsapp/constants.js +1 -0
  25. package/lib/esm/components/multichannel/whatsapp/constants.js.map +1 -1
  26. package/lib/esm/components/system-debug-trace/events/conditional-queue-status.d.ts +1 -0
  27. package/lib/esm/components/system-debug-trace/events/conditional-queue-status.js +11 -6
  28. package/lib/esm/components/system-debug-trace/events/conditional-queue-status.js.map +1 -1
  29. package/lib/esm/components/system-debug-trace/events/constants.d.ts +6 -0
  30. package/lib/esm/components/system-debug-trace/events/constants.js +6 -0
  31. package/lib/esm/components/system-debug-trace/events/constants.js.map +1 -1
  32. package/lib/esm/components/whatsapp-interactive-media-carousel.d.ts +15 -0
  33. package/lib/esm/components/whatsapp-interactive-media-carousel.js +15 -0
  34. package/lib/esm/components/whatsapp-interactive-media-carousel.js.map +1 -0
  35. package/lib/esm/components/whatsapp-media-carousel.js +3 -0
  36. package/lib/esm/components/whatsapp-media-carousel.js.map +1 -1
  37. package/package.json +3 -3
  38. package/src/components/index-types.ts +1 -0
  39. package/src/components/index.ts +4 -0
  40. package/src/components/multichannel/whatsapp/constants.ts +1 -0
  41. package/src/components/system-debug-trace/events/conditional-queue-status.tsx +33 -9
  42. package/src/components/system-debug-trace/events/constants.ts +6 -0
  43. package/src/components/whatsapp-interactive-media-carousel.tsx +52 -0
  44. package/src/components/whatsapp-media-carousel.tsx +3 -0
@@ -20,6 +20,7 @@ export interface TextProps extends MessageProps {
20
20
  }
21
21
  export interface CarouselProps extends MessageProps {
22
22
  children: React.ReactNode[];
23
+ text?: string;
23
24
  }
24
25
  export interface Webview {
25
26
  name: string;
@@ -23,6 +23,7 @@ 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
27
  export { WhatsappMediaCarousel, WhatsappMediaCarouselProps, } from './whatsapp-media-carousel';
27
28
  export { WhatsappProduct } from './whatsapp-product';
28
29
  export { WhatsappProductCarousel, WhatsappProductCarouselProps, } from './whatsapp-product-carousel';
@@ -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.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.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; } });
@@ -52,6 +52,8 @@ Object.defineProperty(exports, "WhatsappCatalog", { enumerable: true, get: funct
52
52
  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
+ var whatsapp_interactive_media_carousel_1 = require("./whatsapp-interactive-media-carousel");
56
+ Object.defineProperty(exports, "WhatsappInteractiveMediaCarousel", { enumerable: true, get: function () { return whatsapp_interactive_media_carousel_1.WhatsappInteractiveMediaCarousel; } });
55
57
  var whatsapp_media_carousel_1 = require("./whatsapp-media-carousel");
56
58
  Object.defineProperty(exports, "WhatsappMediaCarousel", { enumerable: true, get: function () { return whatsapp_media_carousel_1.WhatsappMediaCarousel; } });
57
59
  var whatsapp_product_1 = require("./whatsapp-product");
@@ -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,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,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"}
@@ -6,6 +6,7 @@ export declare const WHATSAPP_LIST_MAX_BUTTONS = 10;
6
6
  export declare const WHATSAPP_MAX_BUTTON_CHARS = 20;
7
7
  export declare const WHATSAPP_MAX_HEADER_CHARS = 60;
8
8
  export declare const WHATSAPP_MAX_BODY_CHARS = 1024;
9
+ export declare const WHATSAPP_MAX_CAROUSEL_CARD_TEXT_CHARS = 160;
9
10
  export declare const WHATSAPP_MAX_FOOTER_CHARS = 60;
10
11
  export declare const DEFAULT_WHATSAPP_MAX_BUTTON_SEPARATOR = "More options:";
11
12
  export declare const MENU_BUTTON_WHATSAPP_BUTTON_LIST = "Show options";
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MENU_BUTTON_WHATSAPP_BUTTON_LIST = exports.DEFAULT_WHATSAPP_MAX_BUTTON_SEPARATOR = exports.WHATSAPP_MAX_FOOTER_CHARS = exports.WHATSAPP_MAX_BODY_CHARS = exports.WHATSAPP_MAX_HEADER_CHARS = exports.WHATSAPP_MAX_BUTTON_CHARS = exports.WHATSAPP_LIST_MAX_BUTTONS = exports.WHATSAPP_MAX_BUTTONS = exports.MULTICHANNEL_WHATSAPP_PROPS = void 0;
3
+ exports.MENU_BUTTON_WHATSAPP_BUTTON_LIST = exports.DEFAULT_WHATSAPP_MAX_BUTTON_SEPARATOR = exports.WHATSAPP_MAX_FOOTER_CHARS = exports.WHATSAPP_MAX_CAROUSEL_CARD_TEXT_CHARS = exports.WHATSAPP_MAX_BODY_CHARS = exports.WHATSAPP_MAX_HEADER_CHARS = exports.WHATSAPP_MAX_BUTTON_CHARS = exports.WHATSAPP_LIST_MAX_BUTTONS = exports.WHATSAPP_MAX_BUTTONS = exports.MULTICHANNEL_WHATSAPP_PROPS = void 0;
4
4
  exports.MULTICHANNEL_WHATSAPP_PROPS = { markdown: false };
5
5
  exports.WHATSAPP_MAX_BUTTONS = 3;
6
6
  exports.WHATSAPP_LIST_MAX_BUTTONS = 10;
7
7
  exports.WHATSAPP_MAX_BUTTON_CHARS = 20;
8
8
  exports.WHATSAPP_MAX_HEADER_CHARS = 60;
9
9
  exports.WHATSAPP_MAX_BODY_CHARS = 1024;
10
+ exports.WHATSAPP_MAX_CAROUSEL_CARD_TEXT_CHARS = 160;
10
11
  exports.WHATSAPP_MAX_FOOTER_CHARS = 60;
11
12
  exports.DEFAULT_WHATSAPP_MAX_BUTTON_SEPARATOR = 'More options:';
12
13
  exports.MENU_BUTTON_WHATSAPP_BUTTON_LIST = 'Show options';
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/components/multichannel/whatsapp/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,2BAA2B,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;AAEjD,QAAA,oBAAoB,GAAG,CAAC,CAAA;AACxB,QAAA,yBAAyB,GAAG,EAAE,CAAA;AAC9B,QAAA,yBAAyB,GAAG,EAAE,CAAA;AAC9B,QAAA,yBAAyB,GAAG,EAAE,CAAA;AAC9B,QAAA,uBAAuB,GAAG,IAAI,CAAA;AAC9B,QAAA,yBAAyB,GAAG,EAAE,CAAA;AAC9B,QAAA,qCAAqC,GAAG,eAAe,CAAA;AACvD,QAAA,gCAAgC,GAAG,cAAc,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/components/multichannel/whatsapp/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,2BAA2B,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;AAEjD,QAAA,oBAAoB,GAAG,CAAC,CAAA;AACxB,QAAA,yBAAyB,GAAG,EAAE,CAAA;AAC9B,QAAA,yBAAyB,GAAG,EAAE,CAAA;AAC9B,QAAA,yBAAyB,GAAG,EAAE,CAAA;AAC9B,QAAA,uBAAuB,GAAG,IAAI,CAAA;AAC9B,QAAA,qCAAqC,GAAG,GAAG,CAAA;AAC3C,QAAA,yBAAyB,GAAG,EAAE,CAAA;AAC9B,QAAA,qCAAqC,GAAG,eAAe,CAAA;AACvD,QAAA,gCAAgC,GAAG,cAAc,CAAA"}
@@ -7,4 +7,5 @@ export interface ConditionalQueueStatusDebugEvent {
7
7
  is_queue_open: boolean;
8
8
  is_available_agent: boolean;
9
9
  }
10
+ export declare const ConditionalQueueStatus: (props: ConditionalQueueStatusDebugEvent) => import("react/jsx-runtime").JSX.Element;
10
11
  export declare const getConditionalQueueStatusEventConfig: (data: ConditionalQueueStatusDebugEvent) => DebugEventConfig;
@@ -1,19 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getConditionalQueueStatusEventConfig = void 0;
3
+ exports.getConditionalQueueStatusEventConfig = exports.ConditionalQueueStatus = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const core_1 = require("@botonic/core");
6
6
  const split_1 = require("../icons/split");
7
+ const styles_1 = require("../styles");
8
+ const constants_1 = require("./constants");
9
+ const ConditionalQueueStatus = (props) => {
10
+ const queueStatus = props.is_queue_open ? constants_1.LABELS.OPEN : constants_1.LABELS.CLOSED;
11
+ const agentStatus = props.is_available_agent ? constants_1.LABELS.YES : constants_1.LABELS.NO;
12
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(styles_1.StyledDebugDetail, { children: [(0, jsx_runtime_1.jsx)(styles_1.StyledDebugLabel, { children: constants_1.LABELS.QUEUE }), (0, jsx_runtime_1.jsx)(styles_1.StyledDebugValue, { children: props.queue_name })] }), (0, jsx_runtime_1.jsxs)(styles_1.StyledDebugDetail, { children: [(0, jsx_runtime_1.jsx)(styles_1.StyledDebugLabel, { children: constants_1.LABELS.STATUS }), (0, jsx_runtime_1.jsx)(styles_1.StyledDebugValue, { children: queueStatus })] }), (0, jsx_runtime_1.jsxs)(styles_1.StyledDebugDetail, { children: [(0, jsx_runtime_1.jsx)(styles_1.StyledDebugLabel, { children: constants_1.LABELS.AGENTS_AVAILABLE }), (0, jsx_runtime_1.jsx)(styles_1.StyledDebugValue, { children: agentStatus })] })] }));
13
+ };
14
+ exports.ConditionalQueueStatus = ConditionalQueueStatus;
7
15
  const getConditionalQueueStatusEventConfig = (data) => {
8
- const queueStatus = data.is_queue_open ? 'Open' : 'Closed';
9
- const agentStatus = data.is_available_agent ? 'Available' : 'Unavailable';
10
- const title = ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["Queue status checked", ' ', (0, jsx_runtime_1.jsxs)("span", { children: ["- ", queueStatus, " (Agent ", agentStatus, ")"] })] }));
16
+ const title = ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["Queue status checked ", (0, jsx_runtime_1.jsxs)("span", { children: ["- ", data.queue_name] })] }));
11
17
  return {
12
18
  action: core_1.EventAction.ConditionalQueueStatus,
13
19
  title,
14
- component: null,
20
+ component: exports.ConditionalQueueStatus,
15
21
  icon: (0, jsx_runtime_1.jsx)(split_1.SplitSvg, {}),
16
- collapsible: false,
22
+ collapsible: true,
17
23
  };
18
24
  };
19
25
  exports.getConditionalQueueStatusEventConfig = getConditionalQueueStatusEventConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"conditional-queue-status.js","sourceRoot":"","sources":["../../../../../src/components/system-debug-trace/events/conditional-queue-status.tsx"],"names":[],"mappings":";;;;AAAA,wCAA2C;AAG3C,0CAAyC;AAWlC,MAAM,oCAAoC,GAAG,CAClD,IAAsC,EACpB,EAAE;IACpB,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAA;IAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAA;IAEzE,MAAM,KAAK,GAAG,CACZ,qFACuB,GAAG,EACxB,mDACK,WAAW,cAAU,WAAW,SAC9B,IACN,CACJ,CAAA;IAED,OAAO;QACL,MAAM,EAAE,kBAAW,CAAC,sBAAsB;QAC1C,KAAK;QACL,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,uBAAC,gBAAQ,KAAG;QAClB,WAAW,EAAE,KAAK;KACnB,CAAA;AACH,CAAC,CAAA;AAtBY,QAAA,oCAAoC,wCAsBhD"}
1
+ {"version":3,"file":"conditional-queue-status.js","sourceRoot":"","sources":["../../../../../src/components/system-debug-trace/events/conditional-queue-status.tsx"],"names":[],"mappings":";;;;AAAA,wCAA2C;AAG3C,0CAAyC;AACzC,sCAIkB;AAElB,2CAAoC;AAU7B,MAAM,sBAAsB,GAAG,CACpC,KAAuC,EACvC,EAAE;IACF,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,kBAAM,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAM,CAAC,MAAM,CAAA;IACrE,MAAM,WAAW,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAM,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAM,CAAC,EAAE,CAAA;IAErE,OAAO,CACL,6DACE,wBAAC,0BAAiB,eAChB,uBAAC,yBAAgB,cAAE,kBAAM,CAAC,KAAK,GAAoB,EACnD,uBAAC,yBAAgB,cAAE,KAAK,CAAC,UAAU,GAAoB,IACrC,EACpB,wBAAC,0BAAiB,eAChB,uBAAC,yBAAgB,cAAE,kBAAM,CAAC,MAAM,GAAoB,EACpD,uBAAC,yBAAgB,cAAE,WAAW,GAAoB,IAChC,EACpB,wBAAC,0BAAiB,eAChB,uBAAC,yBAAgB,cAAE,kBAAM,CAAC,gBAAgB,GAAoB,EAC9D,uBAAC,yBAAgB,cAAE,WAAW,GAAoB,IAChC,IACnB,CACJ,CAAA;AACH,CAAC,CAAA;AAtBY,QAAA,sBAAsB,0BAsBlC;AAEM,MAAM,oCAAoC,GAAG,CAClD,IAAsC,EACpB,EAAE;IACpB,MAAM,KAAK,GAAG,CACZ,sFACuB,mDAAS,IAAI,CAAC,UAAU,IAAQ,IACpD,CACJ,CAAA;IAED,OAAO;QACL,MAAM,EAAE,kBAAW,CAAC,sBAAsB;QAC1C,KAAK;QACL,SAAS,EAAE,8BAAsB;QACjC,IAAI,EAAE,uBAAC,gBAAQ,KAAG;QAClB,WAAW,EAAE,IAAI;KAClB,CAAA;AACH,CAAC,CAAA;AAhBY,QAAA,oCAAoC,wCAgBhD"}
@@ -16,4 +16,10 @@ export declare const LABELS: {
16
16
  readonly NOTE: "Note";
17
17
  readonly KNOWLEDGE_BASE_FAIL_REASON: "Knowledge Base Fail Reason";
18
18
  readonly SEE_CHUNKS_BUTTON: "See chunks";
19
+ readonly STATUS: "Status";
20
+ readonly YES: "Yes";
21
+ readonly NO: "No";
22
+ readonly OPEN: "Open";
23
+ readonly CLOSED: "Closed";
24
+ readonly AGENTS_AVAILABLE: "Agents available";
19
25
  };
@@ -19,5 +19,11 @@ exports.LABELS = {
19
19
  NOTE: 'Note',
20
20
  KNOWLEDGE_BASE_FAIL_REASON: 'Knowledge Base Fail Reason',
21
21
  SEE_CHUNKS_BUTTON: 'See chunks',
22
+ STATUS: 'Status',
23
+ YES: 'Yes',
24
+ NO: 'No',
25
+ OPEN: 'Open',
26
+ CLOSED: 'Closed',
27
+ AGENTS_AVAILABLE: 'Agents available',
22
28
  };
23
29
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/components/system-debug-trace/events/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,MAAM,GAAG;IACpB,mBAAmB,EAAE,qBAAqB;IAC1C,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,kBAAkB,EAAE,oBAAoB;IACxC,cAAc,EAAE,gBAAgB;IAChC,iBAAiB,EAAE,mBAAmB;IACtC,cAAc,EAAE,IAAI;IACpB,eAAe,EAAE,KAAK;IACtB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,aAAa;IAC1B,IAAI,EAAE,MAAM;IACZ,0BAA0B,EAAE,4BAA4B;IACxD,iBAAiB,EAAE,YAAY;CACvB,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/components/system-debug-trace/events/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,MAAM,GAAG;IACpB,mBAAmB,EAAE,qBAAqB;IAC1C,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,kBAAkB,EAAE,oBAAoB;IACxC,cAAc,EAAE,gBAAgB;IAChC,iBAAiB,EAAE,mBAAmB;IACtC,cAAc,EAAE,IAAI;IACpB,eAAe,EAAE,KAAK;IACtB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,aAAa;IAC1B,IAAI,EAAE,MAAM;IACZ,0BAA0B,EAAE,4BAA4B;IACxD,iBAAiB,EAAE,YAAY;IAC/B,MAAM,EAAE,QAAQ;IAChB,GAAG,EAAE,KAAK;IACV,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,gBAAgB,EAAE,kBAAkB;CAC5B,CAAA"}
@@ -0,0 +1,15 @@
1
+ interface ActionCard {
2
+ buttonText: string;
3
+ buttonUrl: string;
4
+ imageLink: string;
5
+ }
6
+ interface Card {
7
+ text: string;
8
+ action: ActionCard;
9
+ }
10
+ export interface WhatsappInteractiveMediaCarouselProps {
11
+ cards: Card[];
12
+ textMessage: string;
13
+ }
14
+ export declare const WhatsappInteractiveMediaCarousel: (props: WhatsappInteractiveMediaCarouselProps) => import("react/jsx-runtime").JSX.Element;
15
+ export {};
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WhatsappInteractiveMediaCarousel = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const util_1 = require("../util");
6
+ const button_1 = require("./button");
7
+ const carousel_1 = require("./carousel");
8
+ const element_1 = require("./element");
9
+ const constants_1 = require("./multichannel/whatsapp/constants");
10
+ const pic_1 = require("./pic");
11
+ const title_1 = require("./title");
12
+ /*
13
+ Reference: https://developers.facebook.com/docs/whatsapp/cloud-api/messages/interactive-media-carousel-messages/
14
+ */
15
+ 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))) })));
17
+ };
18
+ exports.WhatsappInteractiveMediaCarousel = WhatsappInteractiveMediaCarousel;
19
+ //# sourceMappingURL=whatsapp-interactive-media-carousel.js.map
@@ -0,0 +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"}
@@ -9,6 +9,9 @@ const message_1 = require("./message");
9
9
  const serialize = (message) => {
10
10
  return { text: message };
11
11
  };
12
+ /*
13
+ Reference: https://developers.facebook.com/docs/whatsapp/business-management-api/message-templates/media-card-carousel-templates
14
+ */
12
15
  const WhatsappMediaCarousel = (props) => {
13
16
  const renderBrowser = () => {
14
17
  // Return a dummy message for browser
@@ -1 +1 @@
1
- {"version":3,"file":"whatsapp-media-carousel.js","sourceRoot":"","sources":["../../../src/components/whatsapp-media-carousel.tsx"],"names":[],"mappings":";;;;AAAA,wCAAqC;AAGrC,mDAAoD;AACpD,yCAA+C;AAC/C,uCAAmC;AAsDnC,MAAM,SAAS,GAAG,CAAC,OAAe,EAAE,EAAE;IACpC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;AAC1B,CAAC,CAAA;AAEM,MAAM,qBAAqB,GAAG,CAAC,KAAiC,EAAE,EAAE;IACzE,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,qCAAqC;QACrC,MAAM,OAAO,GAAG,oDAAoD,CAAA;QACpE,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,QAAQ,GAAG,CAAC,KAAa,EAAE,EAAE;QACjC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;;YAC5B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACnB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;aACvB;YACD,MAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBACtC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;oBACvB,MAAM,CAAC,WAAW,GAAG,KAAK,CAAA;iBAC3B;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QACF,OAAO,IAAA,4BAAe,EAAC,KAAK,CAAC,CAAA;IAC/B,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,OAAO;QACL,gFAAgF;QAChF,oDACM,KAAK,IACT,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,IAAA,4BAAe,EAAC,KAAK,CAAC,cAAc,CAAC,CAAC,EACrE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAC5C,YAAY,EAAE,KAAK,CAAC,YAAY,EAChC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EACxC,IAAI,EAAE,YAAK,CAAC,uBAAuB,IACnC,CACH,CAAA;IACH,CAAC,CAAA;IAED,OAAO,IAAA,uBAAe,EAAC,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAA;AACvD,CAAC,CAAA;AAxCY,QAAA,qBAAqB,yBAwCjC"}
1
+ {"version":3,"file":"whatsapp-media-carousel.js","sourceRoot":"","sources":["../../../src/components/whatsapp-media-carousel.tsx"],"names":[],"mappings":";;;;AAAA,wCAAqC;AAGrC,mDAAoD;AACpD,yCAA+C;AAC/C,uCAAmC;AAsDnC,MAAM,SAAS,GAAG,CAAC,OAAe,EAAE,EAAE;IACpC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;AAC1B,CAAC,CAAA;AAED;;EAEE;AACK,MAAM,qBAAqB,GAAG,CAAC,KAAiC,EAAE,EAAE;IACzE,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,qCAAqC;QACrC,MAAM,OAAO,GAAG,oDAAoD,CAAA;QACpE,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,QAAQ,GAAG,CAAC,KAAa,EAAE,EAAE;QACjC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;;YAC5B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACnB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;aACvB;YACD,MAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBACtC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;oBACvB,MAAM,CAAC,WAAW,GAAG,KAAK,CAAA;iBAC3B;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QACF,OAAO,IAAA,4BAAe,EAAC,KAAK,CAAC,CAAA;IAC/B,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,OAAO;QACL,gFAAgF;QAChF,oDACM,KAAK,IACT,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,IAAA,4BAAe,EAAC,KAAK,CAAC,cAAc,CAAC,CAAC,EACrE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAC5C,YAAY,EAAE,KAAK,CAAC,YAAY,EAChC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EACxC,IAAI,EAAE,YAAK,CAAC,uBAAuB,IACnC,CACH,CAAA;IACH,CAAC,CAAA;IAED,OAAO,IAAA,uBAAe,EAAC,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAA;AACvD,CAAC,CAAA;AAxCY,QAAA,qBAAqB,yBAwCjC"}
@@ -20,6 +20,7 @@ export interface TextProps extends MessageProps {
20
20
  }
21
21
  export interface CarouselProps extends MessageProps {
22
22
  children: React.ReactNode[];
23
+ text?: string;
23
24
  }
24
25
  export interface Webview {
25
26
  name: string;
@@ -23,6 +23,7 @@ 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
27
  export { WhatsappMediaCarousel, WhatsappMediaCarouselProps, } from './whatsapp-media-carousel';
27
28
  export { WhatsappProduct } from './whatsapp-product';
28
29
  export { WhatsappProductCarousel, WhatsappProductCarouselProps, } from './whatsapp-product-carousel';
@@ -23,6 +23,7 @@ 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
27
  export { WhatsappMediaCarousel, } from './whatsapp-media-carousel';
27
28
  export { WhatsappProduct } from './whatsapp-product';
28
29
  export { WhatsappProductCarousel, } from './whatsapp-product-carousel';
@@ -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,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,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"}
@@ -6,6 +6,7 @@ export declare const WHATSAPP_LIST_MAX_BUTTONS = 10;
6
6
  export declare const WHATSAPP_MAX_BUTTON_CHARS = 20;
7
7
  export declare const WHATSAPP_MAX_HEADER_CHARS = 60;
8
8
  export declare const WHATSAPP_MAX_BODY_CHARS = 1024;
9
+ export declare const WHATSAPP_MAX_CAROUSEL_CARD_TEXT_CHARS = 160;
9
10
  export declare const WHATSAPP_MAX_FOOTER_CHARS = 60;
10
11
  export declare const DEFAULT_WHATSAPP_MAX_BUTTON_SEPARATOR = "More options:";
11
12
  export declare const MENU_BUTTON_WHATSAPP_BUTTON_LIST = "Show options";
@@ -4,6 +4,7 @@ export const WHATSAPP_LIST_MAX_BUTTONS = 10;
4
4
  export const WHATSAPP_MAX_BUTTON_CHARS = 20;
5
5
  export const WHATSAPP_MAX_HEADER_CHARS = 60;
6
6
  export const WHATSAPP_MAX_BODY_CHARS = 1024;
7
+ export const WHATSAPP_MAX_CAROUSEL_CARD_TEXT_CHARS = 160;
7
8
  export const WHATSAPP_MAX_FOOTER_CHARS = 60;
8
9
  export const DEFAULT_WHATSAPP_MAX_BUTTON_SEPARATOR = 'More options:';
9
10
  export const MENU_BUTTON_WHATSAPP_BUTTON_LIST = 'Show options';
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/components/multichannel/whatsapp/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;AAE9D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAA;AACrC,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAA;AAC3C,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAA;AAC3C,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAA;AAC3C,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAA;AAC3C,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAA;AAC3C,MAAM,CAAC,MAAM,qCAAqC,GAAG,eAAe,CAAA;AACpE,MAAM,CAAC,MAAM,gCAAgC,GAAG,cAAc,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/components/multichannel/whatsapp/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;AAE9D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAA;AACrC,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAA;AAC3C,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAA;AAC3C,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAA;AAC3C,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAA;AAC3C,MAAM,CAAC,MAAM,qCAAqC,GAAG,GAAG,CAAA;AACxD,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAA;AAC3C,MAAM,CAAC,MAAM,qCAAqC,GAAG,eAAe,CAAA;AACpE,MAAM,CAAC,MAAM,gCAAgC,GAAG,cAAc,CAAA"}
@@ -7,4 +7,5 @@ export interface ConditionalQueueStatusDebugEvent {
7
7
  is_queue_open: boolean;
8
8
  is_available_agent: boolean;
9
9
  }
10
+ export declare const ConditionalQueueStatus: (props: ConditionalQueueStatusDebugEvent) => import("react/jsx-runtime").JSX.Element;
10
11
  export declare const getConditionalQueueStatusEventConfig: (data: ConditionalQueueStatusDebugEvent) => DebugEventConfig;
@@ -1,16 +1,21 @@
1
- import { jsxs as _jsxs, Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { EventAction } from '@botonic/core';
3
3
  import { SplitSvg } from '../icons/split';
4
+ import { StyledDebugDetail, StyledDebugLabel, StyledDebugValue, } from '../styles';
5
+ import { LABELS } from './constants';
6
+ export const ConditionalQueueStatus = (props) => {
7
+ const queueStatus = props.is_queue_open ? LABELS.OPEN : LABELS.CLOSED;
8
+ const agentStatus = props.is_available_agent ? LABELS.YES : LABELS.NO;
9
+ return (_jsxs(_Fragment, { children: [_jsxs(StyledDebugDetail, { children: [_jsx(StyledDebugLabel, { children: LABELS.QUEUE }), _jsx(StyledDebugValue, { children: props.queue_name })] }), _jsxs(StyledDebugDetail, { children: [_jsx(StyledDebugLabel, { children: LABELS.STATUS }), _jsx(StyledDebugValue, { children: queueStatus })] }), _jsxs(StyledDebugDetail, { children: [_jsx(StyledDebugLabel, { children: LABELS.AGENTS_AVAILABLE }), _jsx(StyledDebugValue, { children: agentStatus })] })] }));
10
+ };
4
11
  export const getConditionalQueueStatusEventConfig = (data) => {
5
- const queueStatus = data.is_queue_open ? 'Open' : 'Closed';
6
- const agentStatus = data.is_available_agent ? 'Available' : 'Unavailable';
7
- const title = (_jsxs(_Fragment, { children: ["Queue status checked", ' ', _jsxs("span", { children: ["- ", queueStatus, " (Agent ", agentStatus, ")"] })] }));
12
+ const title = (_jsxs(_Fragment, { children: ["Queue status checked ", _jsxs("span", { children: ["- ", data.queue_name] })] }));
8
13
  return {
9
14
  action: EventAction.ConditionalQueueStatus,
10
15
  title,
11
- component: null,
16
+ component: ConditionalQueueStatus,
12
17
  icon: _jsx(SplitSvg, {}),
13
- collapsible: false,
18
+ collapsible: true,
14
19
  };
15
20
  };
16
21
  //# sourceMappingURL=conditional-queue-status.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conditional-queue-status.js","sourceRoot":"","sources":["../../../../../src/components/system-debug-trace/events/conditional-queue-status.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAG3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAWzC,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAClD,IAAsC,EACpB,EAAE;IACpB,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAA;IAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAA;IAEzE,MAAM,KAAK,GAAG,CACZ,sDACuB,GAAG,EACxB,iCACK,WAAW,cAAU,WAAW,SAC9B,IACN,CACJ,CAAA;IAED,OAAO;QACL,MAAM,EAAE,WAAW,CAAC,sBAAsB;QAC1C,KAAK;QACL,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,KAAC,QAAQ,KAAG;QAClB,WAAW,EAAE,KAAK;KACnB,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"conditional-queue-status.js","sourceRoot":"","sources":["../../../../../src/components/system-debug-trace/events/conditional-queue-status.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAG3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,WAAW,CAAA;AAElB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAUpC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,KAAuC,EACvC,EAAE;IACF,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAA;IACrE,MAAM,WAAW,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAA;IAErE,OAAO,CACL,8BACE,MAAC,iBAAiB,eAChB,KAAC,gBAAgB,cAAE,MAAM,CAAC,KAAK,GAAoB,EACnD,KAAC,gBAAgB,cAAE,KAAK,CAAC,UAAU,GAAoB,IACrC,EACpB,MAAC,iBAAiB,eAChB,KAAC,gBAAgB,cAAE,MAAM,CAAC,MAAM,GAAoB,EACpD,KAAC,gBAAgB,cAAE,WAAW,GAAoB,IAChC,EACpB,MAAC,iBAAiB,eAChB,KAAC,gBAAgB,cAAE,MAAM,CAAC,gBAAgB,GAAoB,EAC9D,KAAC,gBAAgB,cAAE,WAAW,GAAoB,IAChC,IACnB,CACJ,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAClD,IAAsC,EACpB,EAAE;IACpB,MAAM,KAAK,GAAG,CACZ,uDACuB,iCAAS,IAAI,CAAC,UAAU,IAAQ,IACpD,CACJ,CAAA;IAED,OAAO;QACL,MAAM,EAAE,WAAW,CAAC,sBAAsB;QAC1C,KAAK;QACL,SAAS,EAAE,sBAAsB;QACjC,IAAI,EAAE,KAAC,QAAQ,KAAG;QAClB,WAAW,EAAE,IAAI;KAClB,CAAA;AACH,CAAC,CAAA"}
@@ -16,4 +16,10 @@ export declare const LABELS: {
16
16
  readonly NOTE: "Note";
17
17
  readonly KNOWLEDGE_BASE_FAIL_REASON: "Knowledge Base Fail Reason";
18
18
  readonly SEE_CHUNKS_BUTTON: "See chunks";
19
+ readonly STATUS: "Status";
20
+ readonly YES: "Yes";
21
+ readonly NO: "No";
22
+ readonly OPEN: "Open";
23
+ readonly CLOSED: "Closed";
24
+ readonly AGENTS_AVAILABLE: "Agents available";
19
25
  };
@@ -16,5 +16,11 @@ export const LABELS = {
16
16
  NOTE: 'Note',
17
17
  KNOWLEDGE_BASE_FAIL_REASON: 'Knowledge Base Fail Reason',
18
18
  SEE_CHUNKS_BUTTON: 'See chunks',
19
+ STATUS: 'Status',
20
+ YES: 'Yes',
21
+ NO: 'No',
22
+ OPEN: 'Open',
23
+ CLOSED: 'Closed',
24
+ AGENTS_AVAILABLE: 'Agents available',
19
25
  };
20
26
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/components/system-debug-trace/events/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,mBAAmB,EAAE,qBAAqB;IAC1C,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,kBAAkB,EAAE,oBAAoB;IACxC,cAAc,EAAE,gBAAgB;IAChC,iBAAiB,EAAE,mBAAmB;IACtC,cAAc,EAAE,IAAI;IACpB,eAAe,EAAE,KAAK;IACtB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,aAAa;IAC1B,IAAI,EAAE,MAAM;IACZ,0BAA0B,EAAE,4BAA4B;IACxD,iBAAiB,EAAE,YAAY;CACvB,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/components/system-debug-trace/events/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,mBAAmB,EAAE,qBAAqB;IAC1C,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,kBAAkB,EAAE,oBAAoB;IACxC,cAAc,EAAE,gBAAgB;IAChC,iBAAiB,EAAE,mBAAmB;IACtC,cAAc,EAAE,IAAI;IACpB,eAAe,EAAE,KAAK;IACtB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,aAAa;IAC1B,IAAI,EAAE,MAAM;IACZ,0BAA0B,EAAE,4BAA4B;IACxD,iBAAiB,EAAE,YAAY;IAC/B,MAAM,EAAE,QAAQ;IAChB,GAAG,EAAE,KAAK;IACV,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,gBAAgB,EAAE,kBAAkB;CAC5B,CAAA"}
@@ -0,0 +1,15 @@
1
+ interface ActionCard {
2
+ buttonText: string;
3
+ buttonUrl: string;
4
+ imageLink: string;
5
+ }
6
+ interface Card {
7
+ text: string;
8
+ action: ActionCard;
9
+ }
10
+ export interface WhatsappInteractiveMediaCarouselProps {
11
+ cards: Card[];
12
+ textMessage: string;
13
+ }
14
+ export declare const WhatsappInteractiveMediaCarousel: (props: WhatsappInteractiveMediaCarouselProps) => import("react/jsx-runtime").JSX.Element;
15
+ export {};
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { truncateText } from '../util';
3
+ import { Button } from './button';
4
+ import { Carousel } from './carousel';
5
+ import { Element } from './element';
6
+ import { WHATSAPP_MAX_BODY_CHARS, WHATSAPP_MAX_BUTTON_CHARS, WHATSAPP_MAX_CAROUSEL_CARD_TEXT_CHARS, } from './multichannel/whatsapp/constants';
7
+ import { Pic } from './pic';
8
+ import { Title } from './title';
9
+ /*
10
+ Reference: https://developers.facebook.com/docs/whatsapp/cloud-api/messages/interactive-media-carousel-messages/
11
+ */
12
+ 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))) })));
14
+ };
15
+ //# sourceMappingURL=whatsapp-interactive-media-carousel.js.map
@@ -0,0 +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"}
@@ -6,6 +6,9 @@ import { Message } from './message';
6
6
  const serialize = (message) => {
7
7
  return { text: message };
8
8
  };
9
+ /*
10
+ Reference: https://developers.facebook.com/docs/whatsapp/business-management-api/message-templates/media-card-carousel-templates
11
+ */
9
12
  export const WhatsappMediaCarousel = (props) => {
10
13
  const renderBrowser = () => {
11
14
  // Return a dummy message for browser
@@ -1 +1 @@
1
- {"version":3,"file":"whatsapp-media-carousel.js","sourceRoot":"","sources":["../../../src/components/whatsapp-media-carousel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAGrC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAsDnC,MAAM,SAAS,GAAG,CAAC,OAAe,EAAE,EAAE;IACpC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;AAC1B,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAAiC,EAAE,EAAE;IACzE,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,qCAAqC;QACrC,MAAM,OAAO,GAAG,oDAAoD,CAAA;QACpE,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,QAAQ,GAAG,CAAC,KAAa,EAAE,EAAE;QACjC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;;YAC5B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACnB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;aACvB;YACD,MAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBACtC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;oBACvB,MAAM,CAAC,WAAW,GAAG,KAAK,CAAA;iBAC3B;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QACF,OAAO,eAAe,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,OAAO;QACL,gFAAgF;QAChF,kCACM,KAAK,IACT,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,EACrE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAC5C,YAAY,EAAE,KAAK,CAAC,YAAY,EAChC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EACxC,IAAI,EAAE,KAAK,CAAC,uBAAuB,IACnC,CACH,CAAA;IACH,CAAC,CAAA;IAED,OAAO,eAAe,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAA;AACvD,CAAC,CAAA"}
1
+ {"version":3,"file":"whatsapp-media-carousel.js","sourceRoot":"","sources":["../../../src/components/whatsapp-media-carousel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAGrC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAsDnC,MAAM,SAAS,GAAG,CAAC,OAAe,EAAE,EAAE;IACpC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;AAC1B,CAAC,CAAA;AAED;;EAEE;AACF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAAiC,EAAE,EAAE;IACzE,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,qCAAqC;QACrC,MAAM,OAAO,GAAG,oDAAoD,CAAA;QACpE,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,QAAQ,GAAG,CAAC,KAAa,EAAE,EAAE;QACjC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;;YAC5B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACnB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;aACvB;YACD,MAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBACtC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;oBACvB,MAAM,CAAC,WAAW,GAAG,KAAK,CAAA;iBAC3B;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QACF,OAAO,eAAe,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,OAAO;QACL,gFAAgF;QAChF,kCACM,KAAK,IACT,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,EACrE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAC5C,YAAY,EAAE,KAAK,CAAC,YAAY,EAChC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EACxC,IAAI,EAAE,KAAK,CAAC,uBAAuB,IACnC,CACH,CAAA;IACH,CAAC,CAAA;IAED,OAAO,eAAe,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAA;AACvD,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@botonic/react",
3
- "version": "0.42.0-alpha.3",
3
+ "version": "0.42.0",
4
4
  "license": "MIT",
5
5
  "description": "Build Chatbots using React",
6
6
  "main": "./lib/cjs",
@@ -21,7 +21,7 @@
21
21
  "lint_core": "../../node_modules/.bin/eslint_d --cache --quiet '.*.js' '*.js' 'src/**/*.js*' --fix"
22
22
  },
23
23
  "dependencies": {
24
- "@botonic/core": "0.42.0-alpha.3",
24
+ "@botonic/core": "^0.42.0",
25
25
  "axios": "^1.12.2",
26
26
  "emoji-picker-react": "^4.12.0",
27
27
  "lodash.merge": "^4.6.2",
@@ -81,4 +81,4 @@
81
81
  "javascript",
82
82
  "react"
83
83
  ]
84
- }
84
+ }
@@ -35,6 +35,7 @@ export interface TextProps extends MessageProps {
35
35
 
36
36
  export interface CarouselProps extends MessageProps {
37
37
  children: React.ReactNode[]
38
+ text?: string // Only for Whatsapp Interactive Media Carousel
38
39
  }
39
40
 
40
41
  export interface Webview {
@@ -36,6 +36,10 @@ export {
36
36
  WhatsappCTAUrlButtonProps,
37
37
  WhatsappCTAUrlHeaderType,
38
38
  } from './whatsapp-cta-url-button'
39
+ export {
40
+ WhatsappInteractiveMediaCarousel,
41
+ WhatsappInteractiveMediaCarouselProps,
42
+ } from './whatsapp-interactive-media-carousel'
39
43
  export {
40
44
  WhatsappMediaCarousel,
41
45
  WhatsappMediaCarouselProps,
@@ -5,6 +5,7 @@ export const WHATSAPP_LIST_MAX_BUTTONS = 10
5
5
  export const WHATSAPP_MAX_BUTTON_CHARS = 20
6
6
  export const WHATSAPP_MAX_HEADER_CHARS = 60
7
7
  export const WHATSAPP_MAX_BODY_CHARS = 1024
8
+ export const WHATSAPP_MAX_CAROUSEL_CARD_TEXT_CHARS = 160
8
9
  export const WHATSAPP_MAX_FOOTER_CHARS = 60
9
10
  export const DEFAULT_WHATSAPP_MAX_BUTTON_SEPARATOR = 'More options:'
10
11
  export const MENU_BUTTON_WHATSAPP_BUTTON_LIST = 'Show options'
@@ -2,7 +2,13 @@ import { EventAction } from '@botonic/core'
2
2
  import React from 'react'
3
3
 
4
4
  import { SplitSvg } from '../icons/split'
5
+ import {
6
+ StyledDebugDetail,
7
+ StyledDebugLabel,
8
+ StyledDebugValue,
9
+ } from '../styles'
5
10
  import { DebugEventConfig } from '../types'
11
+ import { LABELS } from './constants'
6
12
 
7
13
  export interface ConditionalQueueStatusDebugEvent {
8
14
  action: EventAction.ConditionalQueueStatus
@@ -12,26 +18,44 @@ export interface ConditionalQueueStatusDebugEvent {
12
18
  is_available_agent: boolean
13
19
  }
14
20
 
21
+ export const ConditionalQueueStatus = (
22
+ props: ConditionalQueueStatusDebugEvent
23
+ ) => {
24
+ const queueStatus = props.is_queue_open ? LABELS.OPEN : LABELS.CLOSED
25
+ const agentStatus = props.is_available_agent ? LABELS.YES : LABELS.NO
26
+
27
+ return (
28
+ <>
29
+ <StyledDebugDetail>
30
+ <StyledDebugLabel>{LABELS.QUEUE}</StyledDebugLabel>
31
+ <StyledDebugValue>{props.queue_name}</StyledDebugValue>
32
+ </StyledDebugDetail>
33
+ <StyledDebugDetail>
34
+ <StyledDebugLabel>{LABELS.STATUS}</StyledDebugLabel>
35
+ <StyledDebugValue>{queueStatus}</StyledDebugValue>
36
+ </StyledDebugDetail>
37
+ <StyledDebugDetail>
38
+ <StyledDebugLabel>{LABELS.AGENTS_AVAILABLE}</StyledDebugLabel>
39
+ <StyledDebugValue>{agentStatus}</StyledDebugValue>
40
+ </StyledDebugDetail>
41
+ </>
42
+ )
43
+ }
44
+
15
45
  export const getConditionalQueueStatusEventConfig = (
16
46
  data: ConditionalQueueStatusDebugEvent
17
47
  ): DebugEventConfig => {
18
- const queueStatus = data.is_queue_open ? 'Open' : 'Closed'
19
- const agentStatus = data.is_available_agent ? 'Available' : 'Unavailable'
20
-
21
48
  const title = (
22
49
  <>
23
- Queue status checked{' '}
24
- <span>
25
- - {queueStatus} (Agent {agentStatus})
26
- </span>
50
+ Queue status checked <span>- {data.queue_name}</span>
27
51
  </>
28
52
  )
29
53
 
30
54
  return {
31
55
  action: EventAction.ConditionalQueueStatus,
32
56
  title,
33
- component: null,
57
+ component: ConditionalQueueStatus,
34
58
  icon: <SplitSvg />,
35
- collapsible: false,
59
+ collapsible: true,
36
60
  }
37
61
  }
@@ -16,4 +16,10 @@ export const LABELS = {
16
16
  NOTE: 'Note',
17
17
  KNOWLEDGE_BASE_FAIL_REASON: 'Knowledge Base Fail Reason',
18
18
  SEE_CHUNKS_BUTTON: 'See chunks',
19
+ STATUS: 'Status',
20
+ YES: 'Yes',
21
+ NO: 'No',
22
+ OPEN: 'Open',
23
+ CLOSED: 'Closed',
24
+ AGENTS_AVAILABLE: 'Agents available',
19
25
  } as const
@@ -0,0 +1,52 @@
1
+ import React from 'react'
2
+
3
+ import { truncateText } from '../util'
4
+ import { Button } from './button'
5
+ import { Carousel } from './carousel'
6
+ import { Element } from './element'
7
+ import {
8
+ WHATSAPP_MAX_BODY_CHARS,
9
+ WHATSAPP_MAX_BUTTON_CHARS,
10
+ WHATSAPP_MAX_CAROUSEL_CARD_TEXT_CHARS,
11
+ } from './multichannel/whatsapp/constants'
12
+ import { Pic } from './pic'
13
+ import { Title } from './title'
14
+
15
+ interface ActionCard {
16
+ buttonText: string
17
+ buttonUrl: string
18
+ imageLink: string
19
+ }
20
+
21
+ interface Card {
22
+ text: string
23
+ action: ActionCard
24
+ }
25
+
26
+ export interface WhatsappInteractiveMediaCarouselProps {
27
+ cards: Card[]
28
+ textMessage: string
29
+ }
30
+
31
+ /*
32
+ Reference: https://developers.facebook.com/docs/whatsapp/cloud-api/messages/interactive-media-carousel-messages/
33
+ */
34
+ export const WhatsappInteractiveMediaCarousel = (
35
+ props: WhatsappInteractiveMediaCarouselProps
36
+ ) => {
37
+ return (
38
+ <Carousel text={truncateText(props.textMessage, WHATSAPP_MAX_BODY_CHARS)}>
39
+ {props.cards.map((card, index) => (
40
+ <Element key={index}>
41
+ <Pic src={card.action.imageLink} />
42
+ <Title>
43
+ {truncateText(card.text, WHATSAPP_MAX_CAROUSEL_CARD_TEXT_CHARS)}
44
+ </Title>
45
+ <Button url={card.action.buttonUrl}>
46
+ {truncateText(card.action.buttonText, WHATSAPP_MAX_BUTTON_CHARS)}
47
+ </Button>
48
+ </Element>
49
+ ))}
50
+ </Carousel>
51
+ )
52
+ }
@@ -61,6 +61,9 @@ const serialize = (message: string) => {
61
61
  return { text: message }
62
62
  }
63
63
 
64
+ /*
65
+ Reference: https://developers.facebook.com/docs/whatsapp/business-management-api/message-templates/media-card-carousel-templates
66
+ */
64
67
  export const WhatsappMediaCarousel = (props: WhatsappMediaCarouselProps) => {
65
68
  const renderBrowser = () => {
66
69
  // Return a dummy message for browser