@botonic/react 0.31.0 → 0.31.1-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/components/index.d.ts +5 -0
- package/lib/cjs/components/index.js +11 -1
- package/lib/cjs/components/index.js.map +1 -1
- package/lib/cjs/components/whatsapp-catalog.d.ts +6 -0
- package/lib/cjs/components/whatsapp-catalog.js +25 -0
- package/lib/cjs/components/whatsapp-catalog.js.map +1 -0
- package/lib/cjs/components/whatsapp-media-carousel.d.ts +46 -0
- package/lib/cjs/components/whatsapp-media-carousel.js +40 -0
- package/lib/cjs/components/whatsapp-media-carousel.js.map +1 -0
- package/lib/cjs/components/whatsapp-product-carousel.d.ts +32 -0
- package/lib/cjs/components/whatsapp-product-carousel.js +34 -0
- package/lib/cjs/components/whatsapp-product-carousel.js.map +1 -0
- package/lib/cjs/components/whatsapp-product-list.d.ts +15 -0
- package/lib/cjs/components/whatsapp-product-list.js +26 -0
- package/lib/cjs/components/whatsapp-product-list.js.map +1 -0
- package/lib/cjs/components/whatsapp-product.d.ts +7 -0
- package/lib/cjs/components/whatsapp-product.js +25 -0
- package/lib/cjs/components/whatsapp-product.js.map +1 -0
- package/lib/cjs/util/functional.d.ts +3 -0
- package/lib/cjs/util/functional.js +30 -0
- package/lib/cjs/util/functional.js.map +1 -0
- package/package.json +2 -2
- package/src/components/index.ts +16 -0
- package/src/components/whatsapp-catalog.tsx +42 -0
- package/src/components/whatsapp-media-carousel.tsx +104 -0
- package/src/components/whatsapp-product-carousel.tsx +83 -0
- package/src/components/whatsapp-product-list.tsx +56 -0
- package/src/components/whatsapp-product.tsx +44 -0
- package/src/util/functional.ts +31 -0
- package/lib/esm/app.d.ts +0 -2
- package/lib/esm/app.js +0 -6
- package/lib/esm/app.js.map +0 -1
- package/lib/esm/botonic-tester.d.ts +0 -30
- package/lib/esm/botonic-tester.js +0 -78
- package/lib/esm/botonic-tester.js.map +0 -1
- package/lib/esm/components/audio.d.ts +0 -9
- package/lib/esm/components/audio.js +0 -21
- package/lib/esm/components/audio.js.map +0 -1
- package/lib/esm/components/button.d.ts +0 -17
- package/lib/esm/components/button.js +0 -159
- package/lib/esm/components/button.js.map +0 -1
- package/lib/esm/components/buttons-disabler.d.ts +0 -24
- package/lib/esm/components/buttons-disabler.js +0 -84
- package/lib/esm/components/buttons-disabler.js.map +0 -1
- package/lib/esm/components/carousel.d.ts +0 -10
- package/lib/esm/components/carousel.js +0 -105
- package/lib/esm/components/carousel.js.map +0 -1
- package/lib/esm/components/components.d.ts +0 -12
- package/lib/esm/components/components.js +0 -17
- package/lib/esm/components/components.js.map +0 -1
- package/lib/esm/components/custom-message.d.ts +0 -16
- package/lib/esm/components/custom-message.js +0 -50
- package/lib/esm/components/custom-message.js.map +0 -1
- package/lib/esm/components/document.d.ts +0 -9
- package/lib/esm/components/document.js +0 -42
- package/lib/esm/components/document.js.map +0 -1
- package/lib/esm/components/element.d.ts +0 -4
- package/lib/esm/components/element.js +0 -51
- package/lib/esm/components/element.js.map +0 -1
- package/lib/esm/components/handoff.d.ts +0 -1
- package/lib/esm/components/handoff.js +0 -49
- package/lib/esm/components/handoff.js.map +0 -1
- package/lib/esm/components/image.d.ts +0 -9
- package/lib/esm/components/image.js +0 -35
- package/lib/esm/components/image.js.map +0 -1
- package/lib/esm/components/index-types.d.ts +0 -89
- package/lib/esm/components/index-types.js +0 -2
- package/lib/esm/components/index-types.js.map +0 -1
- package/lib/esm/components/index.d.ts +0 -25
- package/lib/esm/components/index.js +0 -26
- package/lib/esm/components/index.js.map +0 -1
- package/lib/esm/components/location.d.ts +0 -11
- package/lib/esm/components/location.js +0 -27
- package/lib/esm/components/location.js.map +0 -1
- package/lib/esm/components/markdown.d.ts +0 -7
- package/lib/esm/components/markdown.js +0 -152
- package/lib/esm/components/markdown.js.map +0 -1
- package/lib/esm/components/message/index.d.ts +0 -1
- package/lib/esm/components/message/index.js +0 -147
- package/lib/esm/components/message/index.js.map +0 -1
- package/lib/esm/components/message/message-feedback.d.ts +0 -7
- package/lib/esm/components/message/message-feedback.js +0 -59
- package/lib/esm/components/message/message-feedback.js.map +0 -1
- package/lib/esm/components/message/message-footer.d.ts +0 -11
- package/lib/esm/components/message/message-footer.js +0 -17
- package/lib/esm/components/message/message-footer.js.map +0 -1
- package/lib/esm/components/message/message-image.d.ts +0 -7
- package/lib/esm/components/message/message-image.js +0 -19
- package/lib/esm/components/message/message-image.js.map +0 -1
- package/lib/esm/components/message/styles.d.ts +0 -33
- package/lib/esm/components/message/styles.js +0 -118
- package/lib/esm/components/message/styles.js.map +0 -1
- package/lib/esm/components/message/timestamps.d.ts +0 -13
- package/lib/esm/components/message/timestamps.js +0 -40
- package/lib/esm/components/message/timestamps.js.map +0 -1
- package/lib/esm/components/message-template.d.ts +0 -1
- package/lib/esm/components/message-template.js +0 -9
- package/lib/esm/components/message-template.js.map +0 -1
- package/lib/esm/components/multichannel/facebook/facebook.d.ts +0 -17
- package/lib/esm/components/multichannel/facebook/facebook.js +0 -43
- package/lib/esm/components/multichannel/facebook/facebook.js.map +0 -1
- package/lib/esm/components/multichannel/index-types.d.ts +0 -46
- package/lib/esm/components/multichannel/index-types.js +0 -2
- package/lib/esm/components/multichannel/index-types.js.map +0 -1
- package/lib/esm/components/multichannel/index.d.ts +0 -11
- package/lib/esm/components/multichannel/index.js +0 -12
- package/lib/esm/components/multichannel/index.js.map +0 -1
- package/lib/esm/components/multichannel/multichannel-button.d.ts +0 -1
- package/lib/esm/components/multichannel/multichannel-button.js +0 -67
- package/lib/esm/components/multichannel/multichannel-button.js.map +0 -1
- package/lib/esm/components/multichannel/multichannel-carousel.d.ts +0 -1
- package/lib/esm/components/multichannel/multichannel-carousel.js +0 -74
- package/lib/esm/components/multichannel/multichannel-carousel.js.map +0 -1
- package/lib/esm/components/multichannel/multichannel-context.d.ts +0 -11
- package/lib/esm/components/multichannel/multichannel-context.js +0 -12
- package/lib/esm/components/multichannel/multichannel-context.js.map +0 -1
- package/lib/esm/components/multichannel/multichannel-reply.d.ts +0 -1
- package/lib/esm/components/multichannel/multichannel-reply.js +0 -20
- package/lib/esm/components/multichannel/multichannel-reply.js.map +0 -1
- package/lib/esm/components/multichannel/multichannel-text.d.ts +0 -1
- package/lib/esm/components/multichannel/multichannel-text.js +0 -160
- package/lib/esm/components/multichannel/multichannel-text.js.map +0 -1
- package/lib/esm/components/multichannel/multichannel-utils.d.ts +0 -21
- package/lib/esm/components/multichannel/multichannel-utils.js +0 -81
- package/lib/esm/components/multichannel/multichannel-utils.js.map +0 -1
- package/lib/esm/components/multichannel/multichannel.d.ts +0 -1
- package/lib/esm/components/multichannel/multichannel.js +0 -57
- package/lib/esm/components/multichannel/multichannel.js.map +0 -1
- package/lib/esm/components/multichannel/whatsapp/constants.d.ts +0 -11
- package/lib/esm/components/multichannel/whatsapp/constants.js +0 -10
- package/lib/esm/components/multichannel/whatsapp/constants.js.map +0 -1
- package/lib/esm/components/multichannel/whatsapp/markdown-meta.d.ts +0 -1
- package/lib/esm/components/multichannel/whatsapp/markdown-meta.js +0 -38
- package/lib/esm/components/multichannel/whatsapp/markdown-meta.js.map +0 -1
- package/lib/esm/components/pic.d.ts +0 -6
- package/lib/esm/components/pic.js +0 -25
- package/lib/esm/components/pic.js.map +0 -1
- package/lib/esm/components/raw.d.ts +0 -9
- package/lib/esm/components/raw.js +0 -39
- package/lib/esm/components/raw.js.map +0 -1
- package/lib/esm/components/reply.d.ts +0 -10
- package/lib/esm/components/reply.js +0 -53
- package/lib/esm/components/reply.js.map +0 -1
- package/lib/esm/components/share-button.d.ts +0 -1
- package/lib/esm/components/share-button.js +0 -9
- package/lib/esm/components/share-button.js.map +0 -1
- package/lib/esm/components/subtitle.d.ts +0 -6
- package/lib/esm/components/subtitle.js +0 -19
- package/lib/esm/components/subtitle.js.map +0 -1
- package/lib/esm/components/text.d.ts +0 -7
- package/lib/esm/components/text.js +0 -40
- package/lib/esm/components/text.js.map +0 -1
- package/lib/esm/components/title.d.ts +0 -6
- package/lib/esm/components/title.js +0 -17
- package/lib/esm/components/title.js.map +0 -1
- package/lib/esm/components/video.d.ts +0 -9
- package/lib/esm/components/video.js +0 -25
- package/lib/esm/components/video.js.map +0 -1
- package/lib/esm/components/webchat-settings.d.ts +0 -16
- package/lib/esm/components/webchat-settings.js +0 -69
- package/lib/esm/components/webchat-settings.js.map +0 -1
- package/lib/esm/components/whatsapp-button-list.d.ts +0 -20
- package/lib/esm/components/whatsapp-button-list.js +0 -47
- package/lib/esm/components/whatsapp-button-list.js.map +0 -1
- package/lib/esm/components/whatsapp-cta-url-button.d.ts +0 -15
- package/lib/esm/components/whatsapp-cta-url-button.js +0 -33
- package/lib/esm/components/whatsapp-cta-url-button.js.map +0 -1
- package/lib/esm/components/whatsapp-template.d.ts +0 -1
- package/lib/esm/components/whatsapp-template.js +0 -20
- package/lib/esm/components/whatsapp-template.js.map +0 -1
- package/lib/esm/constants.d.ts +0 -165
- package/lib/esm/constants.js +0 -187
- package/lib/esm/constants.js.map +0 -1
- package/lib/esm/contexts.d.ts +0 -18
- package/lib/esm/contexts.js +0 -18
- package/lib/esm/contexts.js.map +0 -1
- package/lib/esm/dev-app.d.ts +0 -38
- package/lib/esm/dev-app.js +0 -81
- package/lib/esm/dev-app.js.map +0 -1
- package/lib/esm/index-types.d.ts +0 -178
- package/lib/esm/index-types.js +0 -12
- package/lib/esm/index-types.js.map +0 -1
- package/lib/esm/index.d.ts +0 -11
- package/lib/esm/index.js +0 -12
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/message-utils.d.ts +0 -19
- package/lib/esm/message-utils.js +0 -41
- package/lib/esm/message-utils.js.map +0 -1
- package/lib/esm/msg-to-botonic.d.ts +0 -18
- package/lib/esm/msg-to-botonic.js +0 -132
- package/lib/esm/msg-to-botonic.js.map +0 -1
- package/lib/esm/node-app.d.ts +0 -7
- package/lib/esm/node-app.js +0 -19
- package/lib/esm/node-app.js.map +0 -1
- package/lib/esm/react-bot.d.ts +0 -8
- package/lib/esm/react-bot.js +0 -32
- package/lib/esm/react-bot.js.map +0 -1
- package/lib/esm/shared/styles.d.ts +0 -2
- package/lib/esm/shared/styles.js +0 -28
- package/lib/esm/shared/styles.js.map +0 -1
- package/lib/esm/util/dom.d.ts +0 -4
- package/lib/esm/util/dom.js +0 -24
- package/lib/esm/util/dom.js.map +0 -1
- package/lib/esm/util/environment.d.ts +0 -6
- package/lib/esm/util/environment.js +0 -61
- package/lib/esm/util/environment.js.map +0 -1
- package/lib/esm/util/error-boundary.d.ts +0 -7
- package/lib/esm/util/error-boundary.js +0 -28
- package/lib/esm/util/error-boundary.js.map +0 -1
- package/lib/esm/util/index.d.ts +0 -9
- package/lib/esm/util/index.js +0 -10
- package/lib/esm/util/index.js.map +0 -1
- package/lib/esm/util/logs.d.ts +0 -2
- package/lib/esm/util/logs.js +0 -15
- package/lib/esm/util/logs.js.map +0 -1
- package/lib/esm/util/objects.d.ts +0 -3
- package/lib/esm/util/objects.js +0 -38
- package/lib/esm/util/objects.js.map +0 -1
- package/lib/esm/util/react.d.ts +0 -12
- package/lib/esm/util/react.js +0 -34
- package/lib/esm/util/react.js.map +0 -1
- package/lib/esm/util/regexs.d.ts +0 -2
- package/lib/esm/util/regexs.js +0 -18
- package/lib/esm/util/regexs.js.map +0 -1
- package/lib/esm/util/strings.d.ts +0 -1
- package/lib/esm/util/strings.js +0 -7
- package/lib/esm/util/strings.js.map +0 -1
- package/lib/esm/util/webchat.d.ts +0 -22
- package/lib/esm/util/webchat.js +0 -55
- package/lib/esm/util/webchat.js.map +0 -1
- package/lib/esm/util/webviews.d.ts +0 -1
- package/lib/esm/util/webviews.js +0 -6
- package/lib/esm/util/webviews.js.map +0 -1
- package/lib/esm/webchat/chat-area/index.d.ts +0 -1
- package/lib/esm/webchat/chat-area/index.js +0 -18
- package/lib/esm/webchat/chat-area/index.js.map +0 -1
- package/lib/esm/webchat/chat-area/styles.d.ts +0 -3
- package/lib/esm/webchat/chat-area/styles.js +0 -9
- package/lib/esm/webchat/chat-area/styles.js.map +0 -1
- package/lib/esm/webchat/components/common.d.ts +0 -1
- package/lib/esm/webchat/components/common.js +0 -9
- package/lib/esm/webchat/components/common.js.map +0 -1
- package/lib/esm/webchat/components/conditional-animation.d.ts +0 -1
- package/lib/esm/webchat/components/conditional-animation.js +0 -12
- package/lib/esm/webchat/components/conditional-animation.js.map +0 -1
- package/lib/esm/webchat/components/opened-persistent-menu.d.ts +0 -6
- package/lib/esm/webchat/components/opened-persistent-menu.js +0 -30
- package/lib/esm/webchat/components/opened-persistent-menu.js.map +0 -1
- package/lib/esm/webchat/constants.d.ts +0 -8
- package/lib/esm/webchat/constants.js +0 -10
- package/lib/esm/webchat/constants.js.map +0 -1
- package/lib/esm/webchat/context/actions.d.ts +0 -29
- package/lib/esm/webchat/context/actions.js +0 -32
- package/lib/esm/webchat/context/actions.js.map +0 -1
- package/lib/esm/webchat/context/index.d.ts +0 -5
- package/lib/esm/webchat/context/index.js +0 -78
- package/lib/esm/webchat/context/index.js.map +0 -1
- package/lib/esm/webchat/context/messages-reducer.d.ts +0 -6
- package/lib/esm/webchat/context/messages-reducer.js +0 -85
- package/lib/esm/webchat/context/messages-reducer.js.map +0 -1
- package/lib/esm/webchat/context/types.d.ts +0 -74
- package/lib/esm/webchat/context/types.js +0 -2
- package/lib/esm/webchat/context/types.js.map +0 -1
- package/lib/esm/webchat/context/use-webchat.d.ts +0 -47
- package/lib/esm/webchat/context/use-webchat.js +0 -195
- package/lib/esm/webchat/context/use-webchat.js.map +0 -1
- package/lib/esm/webchat/context/webchat-reducer.d.ts +0 -6
- package/lib/esm/webchat/context/webchat-reducer.js +0 -48
- package/lib/esm/webchat/context/webchat-reducer.js.map +0 -1
- package/lib/esm/webchat/cover-component/index.d.ts +0 -6
- package/lib/esm/webchat/cover-component/index.js +0 -17
- package/lib/esm/webchat/cover-component/index.js.map +0 -1
- package/lib/esm/webchat/devices/index.d.ts +0 -11
- package/lib/esm/webchat/devices/index.js +0 -18
- package/lib/esm/webchat/devices/index.js.map +0 -1
- package/lib/esm/webchat/header/default-header.d.ts +0 -1
- package/lib/esm/webchat/header/default-header.js +0 -21
- package/lib/esm/webchat/header/default-header.js.map +0 -1
- package/lib/esm/webchat/header/index.d.ts +0 -2
- package/lib/esm/webchat/header/index.js +0 -20
- package/lib/esm/webchat/header/index.js.map +0 -1
- package/lib/esm/webchat/header/styles.d.ts +0 -7
- package/lib/esm/webchat/header/styles.js +0 -55
- package/lib/esm/webchat/header/styles.js.map +0 -1
- package/lib/esm/webchat/hooks/index.d.ts +0 -10
- package/lib/esm/webchat/hooks/index.js +0 -11
- package/lib/esm/webchat/hooks/index.js.map +0 -1
- package/lib/esm/webchat/hooks/use-component-visible.d.ts +0 -8
- package/lib/esm/webchat/hooks/use-component-visible.js +0 -20
- package/lib/esm/webchat/hooks/use-component-visible.js.map +0 -1
- package/lib/esm/webchat/hooks/use-component-will-mount.d.ts +0 -1
- package/lib/esm/webchat/hooks/use-component-will-mount.js +0 -5
- package/lib/esm/webchat/hooks/use-component-will-mount.js.map +0 -1
- package/lib/esm/webchat/hooks/use-device-adapter.d.ts +0 -3
- package/lib/esm/webchat/hooks/use-device-adapter.js +0 -42
- package/lib/esm/webchat/hooks/use-device-adapter.js.map +0 -1
- package/lib/esm/webchat/hooks/use-previous.d.ts +0 -1
- package/lib/esm/webchat/hooks/use-previous.js +0 -9
- package/lib/esm/webchat/hooks/use-previous.js.map +0 -1
- package/lib/esm/webchat/hooks/use-scroll-to-bottom.d.ts +0 -9
- package/lib/esm/webchat/hooks/use-scroll-to-bottom.js +0 -19
- package/lib/esm/webchat/hooks/use-scroll-to-bottom.js.map +0 -1
- package/lib/esm/webchat/hooks/use-scrollbar-controller.d.ts +0 -6
- package/lib/esm/webchat/hooks/use-scrollbar-controller.js +0 -136
- package/lib/esm/webchat/hooks/use-scrollbar-controller.js.map +0 -1
- package/lib/esm/webchat/hooks/use-typing.d.ts +0 -10
- package/lib/esm/webchat/hooks/use-typing.js +0 -28
- package/lib/esm/webchat/hooks/use-typing.js.map +0 -1
- package/lib/esm/webchat/hooks/use-virtual-keyboard-detection.d.ts +0 -3
- package/lib/esm/webchat/hooks/use-virtual-keyboard-detection.js +0 -24
- package/lib/esm/webchat/hooks/use-virtual-keyboard-detection.js.map +0 -1
- package/lib/esm/webchat/hooks/use-webchat-dimensions.d.ts +0 -4
- package/lib/esm/webchat/hooks/use-webchat-dimensions.js +0 -36
- package/lib/esm/webchat/hooks/use-webchat-dimensions.js.map +0 -1
- package/lib/esm/webchat/hooks/use-webchat-resizer.d.ts +0 -4
- package/lib/esm/webchat/hooks/use-webchat-resizer.js +0 -30
- package/lib/esm/webchat/hooks/use-webchat-resizer.js.map +0 -1
- package/lib/esm/webchat/index-types.d.ts +0 -18
- package/lib/esm/webchat/index-types.js +0 -2
- package/lib/esm/webchat/index-types.js.map +0 -1
- package/lib/esm/webchat/index.d.ts +0 -5
- package/lib/esm/webchat/index.js +0 -11
- package/lib/esm/webchat/index.js.map +0 -1
- package/lib/esm/webchat/input-panel/attachment.d.ts +0 -7
- package/lib/esm/webchat/input-panel/attachment.js +0 -26
- package/lib/esm/webchat/input-panel/attachment.js.map +0 -1
- package/lib/esm/webchat/input-panel/emoji-picker.d.ts +0 -6
- package/lib/esm/webchat/input-panel/emoji-picker.js +0 -23
- package/lib/esm/webchat/input-panel/emoji-picker.js.map +0 -1
- package/lib/esm/webchat/input-panel/index.d.ts +0 -12
- package/lib/esm/webchat/input-panel/index.js +0 -55
- package/lib/esm/webchat/input-panel/index.js.map +0 -1
- package/lib/esm/webchat/input-panel/opened-emoji-picker.d.ts +0 -6
- package/lib/esm/webchat/input-panel/opened-emoji-picker.js +0 -10
- package/lib/esm/webchat/input-panel/opened-emoji-picker.js.map +0 -1
- package/lib/esm/webchat/input-panel/persistent-menu.d.ts +0 -6
- package/lib/esm/webchat/input-panel/persistent-menu.js +0 -14
- package/lib/esm/webchat/input-panel/persistent-menu.js.map +0 -1
- package/lib/esm/webchat/input-panel/send-button.d.ts +0 -5
- package/lib/esm/webchat/input-panel/send-button.js +0 -14
- package/lib/esm/webchat/input-panel/send-button.js.map +0 -1
- package/lib/esm/webchat/input-panel/styles.d.ts +0 -3
- package/lib/esm/webchat/input-panel/styles.js +0 -27
- package/lib/esm/webchat/input-panel/styles.js.map +0 -1
- package/lib/esm/webchat/input-panel/textarea.d.ts +0 -11
- package/lib/esm/webchat/input-panel/textarea.js +0 -58
- package/lib/esm/webchat/input-panel/textarea.js.map +0 -1
- package/lib/esm/webchat/message-list/index.d.ts +0 -1
- package/lib/esm/webchat/message-list/index.js +0 -107
- package/lib/esm/webchat/message-list/index.js.map +0 -1
- package/lib/esm/webchat/message-list/intro-message.d.ts +0 -1
- package/lib/esm/webchat/message-list/intro-message.js +0 -18
- package/lib/esm/webchat/message-list/intro-message.js.map +0 -1
- package/lib/esm/webchat/message-list/scroll-button.d.ts +0 -6
- package/lib/esm/webchat/message-list/scroll-button.js +0 -12
- package/lib/esm/webchat/message-list/scroll-button.js.map +0 -1
- package/lib/esm/webchat/message-list/styles.d.ts +0 -5
- package/lib/esm/webchat/message-list/styles.js +0 -56
- package/lib/esm/webchat/message-list/styles.js.map +0 -1
- package/lib/esm/webchat/message-list/unread-messages-banner.d.ts +0 -6
- package/lib/esm/webchat/message-list/unread-messages-banner.js +0 -13
- package/lib/esm/webchat/message-list/unread-messages-banner.js.map +0 -1
- package/lib/esm/webchat/message-list/use-debounce.d.ts +0 -1
- package/lib/esm/webchat/message-list/use-debounce.js +0 -14
- package/lib/esm/webchat/message-list/use-debounce.js.map +0 -1
- package/lib/esm/webchat/message-list/use-notifications.d.ts +0 -7
- package/lib/esm/webchat/message-list/use-notifications.js +0 -20
- package/lib/esm/webchat/message-list/use-notifications.js.map +0 -1
- package/lib/esm/webchat/replies/index.d.ts +0 -1
- package/lib/esm/webchat/replies/index.js +0 -28
- package/lib/esm/webchat/replies/index.js.map +0 -1
- package/lib/esm/webchat/replies/styles.d.ts +0 -8
- package/lib/esm/webchat/replies/styles.js +0 -21
- package/lib/esm/webchat/replies/styles.js.map +0 -1
- package/lib/esm/webchat/session-view.d.ts +0 -1
- package/lib/esm/webchat/session-view.js +0 -96
- package/lib/esm/webchat/session-view.js.map +0 -1
- package/lib/esm/webchat/styles.d.ts +0 -9
- package/lib/esm/webchat/styles.js +0 -50
- package/lib/esm/webchat/styles.js.map +0 -1
- package/lib/esm/webchat/theme/types.d.ts +0 -167
- package/lib/esm/webchat/theme/types.js +0 -2
- package/lib/esm/webchat/theme/types.js.map +0 -1
- package/lib/esm/webchat/tracking.d.ts +0 -7
- package/lib/esm/webchat/tracking.js +0 -10
- package/lib/esm/webchat/tracking.js.map +0 -1
- package/lib/esm/webchat/trigger-button/index.d.ts +0 -2
- package/lib/esm/webchat/trigger-button/index.js +0 -28
- package/lib/esm/webchat/trigger-button/index.js.map +0 -1
- package/lib/esm/webchat/trigger-button/styles.d.ts +0 -3
- package/lib/esm/webchat/trigger-button/styles.js +0 -36
- package/lib/esm/webchat/trigger-button/styles.js.map +0 -1
- package/lib/esm/webchat/typing-indicator/index.d.ts +0 -3
- package/lib/esm/webchat/typing-indicator/index.js +0 -8
- package/lib/esm/webchat/typing-indicator/index.js.map +0 -1
- package/lib/esm/webchat/typing-indicator/styles.d.ts +0 -7
- package/lib/esm/webchat/typing-indicator/styles.js +0 -46
- package/lib/esm/webchat/typing-indicator/styles.js.map +0 -1
- package/lib/esm/webchat/use-storage-state-hook.d.ts +0 -1
- package/lib/esm/webchat/use-storage-state-hook.js +0 -38
- package/lib/esm/webchat/use-storage-state-hook.js.map +0 -1
- package/lib/esm/webchat/utils.d.ts +0 -2
- package/lib/esm/webchat/utils.js +0 -8
- package/lib/esm/webchat/utils.js.map +0 -1
- package/lib/esm/webchat/webchat-dev.d.ts +0 -7
- package/lib/esm/webchat/webchat-dev.js +0 -56
- package/lib/esm/webchat/webchat-dev.js.map +0 -1
- package/lib/esm/webchat/webchat.d.ts +0 -4
- package/lib/esm/webchat/webchat.js +0 -522
- package/lib/esm/webchat/webchat.js.map +0 -1
- package/lib/esm/webchat/webview.d.ts +0 -2
- package/lib/esm/webchat/webview.js +0 -71
- package/lib/esm/webchat/webview.js.map +0 -1
- package/lib/esm/webchat-app.d.ts +0 -78
- package/lib/esm/webchat-app.js +0 -363
- package/lib/esm/webchat-app.js.map +0 -1
- package/lib/esm/webview-app.d.ts +0 -7
- package/lib/esm/webview-app.js +0 -105
- package/lib/esm/webview-app.js.map +0 -1
|
@@ -21,5 +21,10 @@ export { Title } from './title';
|
|
|
21
21
|
export { Video } from './video';
|
|
22
22
|
export { normalizeWebchatSettings, WebchatSettings, WebchatSettingsProps, } from './webchat-settings';
|
|
23
23
|
export { WhatsappButtonList, WhatsappButtonListProps, WhatsappButtonListRowProps, WhatsappButtonListSectionProps, } from './whatsapp-button-list';
|
|
24
|
+
export { WhatsappCatalog, WhatsappCatalogProps } from './whatsapp-catalog';
|
|
24
25
|
export { WhatsappCTAUrlButton, WhatsappCTAUrlButtonProps, } from './whatsapp-cta-url-button';
|
|
26
|
+
export { WhatsappMediaCarousel, WhatsappMediaCarouselProps, } from './whatsapp-media-carousel';
|
|
27
|
+
export { WhatsappProduct } from './whatsapp-product';
|
|
28
|
+
export { WhatsappProductCarousel, WhatsappProductCarouselProps, } from './whatsapp-product-carousel';
|
|
29
|
+
export { ProductItem, WhatsappProductList, WhatsappProductListProps, WhatsappProductListSection, } from './whatsapp-product-list';
|
|
25
30
|
export { WhatsappTemplate } from './whatsapp-template';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WhatsappTemplate = exports.WhatsappCTAUrlButton = 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.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; } });
|
|
@@ -47,8 +47,18 @@ Object.defineProperty(exports, "normalizeWebchatSettings", { enumerable: true, g
|
|
|
47
47
|
Object.defineProperty(exports, "WebchatSettings", { enumerable: true, get: function () { return webchat_settings_1.WebchatSettings; } });
|
|
48
48
|
var whatsapp_button_list_1 = require("./whatsapp-button-list");
|
|
49
49
|
Object.defineProperty(exports, "WhatsappButtonList", { enumerable: true, get: function () { return whatsapp_button_list_1.WhatsappButtonList; } });
|
|
50
|
+
var whatsapp_catalog_1 = require("./whatsapp-catalog");
|
|
51
|
+
Object.defineProperty(exports, "WhatsappCatalog", { enumerable: true, get: function () { return whatsapp_catalog_1.WhatsappCatalog; } });
|
|
50
52
|
var whatsapp_cta_url_button_1 = require("./whatsapp-cta-url-button");
|
|
51
53
|
Object.defineProperty(exports, "WhatsappCTAUrlButton", { enumerable: true, get: function () { return whatsapp_cta_url_button_1.WhatsappCTAUrlButton; } });
|
|
54
|
+
var whatsapp_media_carousel_1 = require("./whatsapp-media-carousel");
|
|
55
|
+
Object.defineProperty(exports, "WhatsappMediaCarousel", { enumerable: true, get: function () { return whatsapp_media_carousel_1.WhatsappMediaCarousel; } });
|
|
56
|
+
var whatsapp_product_1 = require("./whatsapp-product");
|
|
57
|
+
Object.defineProperty(exports, "WhatsappProduct", { enumerable: true, get: function () { return whatsapp_product_1.WhatsappProduct; } });
|
|
58
|
+
var whatsapp_product_carousel_1 = require("./whatsapp-product-carousel");
|
|
59
|
+
Object.defineProperty(exports, "WhatsappProductCarousel", { enumerable: true, get: function () { return whatsapp_product_carousel_1.WhatsappProductCarousel; } });
|
|
60
|
+
var whatsapp_product_list_1 = require("./whatsapp-product-list");
|
|
61
|
+
Object.defineProperty(exports, "WhatsappProductList", { enumerable: true, get: function () { return whatsapp_product_list_1.WhatsappProductList; } });
|
|
52
62
|
var whatsapp_template_1 = require("./whatsapp-template");
|
|
53
63
|
Object.defineProperty(exports, "WhatsappTemplate", { enumerable: true, get: function () { return whatsapp_template_1.WhatsappTemplate; } });
|
|
54
64
|
//# 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,mCAAiC;AAAxB,gGAAA,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,qEAGkC;AAFhC,+HAAA,oBAAoB,OAAA;AAGtB,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,mCAAiC;AAAxB,gGAAA,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,qEAGkC;AAFhC,+HAAA,oBAAoB,OAAA;AAGtB,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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WhatsappCatalog = 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 WhatsappCatalog = (props) => {
|
|
12
|
+
const renderBrowser = () => {
|
|
13
|
+
// Return a dummy message for browser
|
|
14
|
+
const message = `WhatsApp Catalog 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, { body: props.body, footer: props.footer, thumbnailProductId: props.thumbnailProductId, type: core_1.INPUT.WHATSAPP_CATALOG })));
|
|
21
|
+
};
|
|
22
|
+
return (0, react_1.renderComponent)({ renderBrowser, renderNode });
|
|
23
|
+
};
|
|
24
|
+
exports.WhatsappCatalog = WhatsappCatalog;
|
|
25
|
+
//# sourceMappingURL=whatsapp-catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whatsapp-catalog.js","sourceRoot":"","sources":["../../../src/components/whatsapp-catalog.tsx"],"names":[],"mappings":";;;;AAAA,wCAAqC;AAGrC,yCAA+C;AAC/C,uCAAmC;AAQnC,MAAM,SAAS,GAAG,CAAC,OAAe,EAAE,EAAE;IACpC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;AAC1B,CAAC,CAAA;AAEM,MAAM,eAAe,GAAG,CAAC,KAA2B,EAAE,EAAE;IAC7D,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,qCAAqC;QACrC,MAAM,OAAO,GAAG,6CAA6C,CAAA;QAC7D,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,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAC5C,IAAI,EAAE,YAAK,CAAC,gBAAgB,IAC5B,CACH,CAAA;IACH,CAAC,CAAA;IAED,OAAO,IAAA,uBAAe,EAAC,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAA;AACvD,CAAC,CAAA;AAzBY,QAAA,eAAe,mBAyB3B"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
type Parameters = TextParameter | CurrencyParameter | DateTimeParameter;
|
|
2
|
+
interface TextParameter {
|
|
3
|
+
type: 'text';
|
|
4
|
+
text: string;
|
|
5
|
+
}
|
|
6
|
+
interface CurrencyParameter {
|
|
7
|
+
type: 'currency';
|
|
8
|
+
currency: {
|
|
9
|
+
fallbackValue: string;
|
|
10
|
+
code: string;
|
|
11
|
+
amount1000: number;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
interface DateTimeParameter {
|
|
15
|
+
type: 'date_time';
|
|
16
|
+
dateTime: {
|
|
17
|
+
fallbackValue: string;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
type CardButton = QuickReplyButton | UrlButton;
|
|
21
|
+
interface Button {
|
|
22
|
+
type: 'quick_reply' | 'url';
|
|
23
|
+
buttonIndex?: number;
|
|
24
|
+
}
|
|
25
|
+
interface QuickReplyButton extends Button {
|
|
26
|
+
payload: string;
|
|
27
|
+
}
|
|
28
|
+
interface UrlButton extends Button {
|
|
29
|
+
urlVariable: string;
|
|
30
|
+
}
|
|
31
|
+
interface Card {
|
|
32
|
+
fileType: 'image' | 'video';
|
|
33
|
+
fileId: string;
|
|
34
|
+
cardIndex?: number;
|
|
35
|
+
bodyParameters?: Parameters[];
|
|
36
|
+
buttons?: CardButton[];
|
|
37
|
+
extraComponents?: Record<string, any>[];
|
|
38
|
+
}
|
|
39
|
+
export interface WhatsappMediaCarouselProps {
|
|
40
|
+
templateName: string;
|
|
41
|
+
templateLanguage: string;
|
|
42
|
+
cards: Card[];
|
|
43
|
+
bodyParameters?: Parameters[];
|
|
44
|
+
}
|
|
45
|
+
export declare const WhatsappMediaCarousel: (props: WhatsappMediaCarouselProps) => any;
|
|
46
|
+
export {};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WhatsappMediaCarousel = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const core_1 = require("@botonic/core");
|
|
6
|
+
const functional_1 = require("../util/functional");
|
|
7
|
+
const react_1 = require("../util/react");
|
|
8
|
+
const message_1 = require("./message");
|
|
9
|
+
const serialize = (message) => {
|
|
10
|
+
return { text: message };
|
|
11
|
+
};
|
|
12
|
+
const WhatsappMediaCarousel = (props) => {
|
|
13
|
+
const renderBrowser = () => {
|
|
14
|
+
// Return a dummy message for browser
|
|
15
|
+
const message = `WhatsApp Media Carousel would be sent to the user.`;
|
|
16
|
+
return ((0, jsx_runtime_1.jsx)(message_1.Message, Object.assign({ json: serialize(message) }, props, { type: core_1.INPUT.TEXT }, { children: message })));
|
|
17
|
+
};
|
|
18
|
+
const getCards = (cards) => {
|
|
19
|
+
cards.forEach((card, index) => {
|
|
20
|
+
var _a;
|
|
21
|
+
if (!card.cardIndex) {
|
|
22
|
+
card.cardIndex = index;
|
|
23
|
+
}
|
|
24
|
+
(_a = card.buttons) === null || _a === void 0 ? void 0 : _a.forEach((button, index) => {
|
|
25
|
+
if (!button.buttonIndex) {
|
|
26
|
+
button.buttonIndex = index;
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
return (0, functional_1.toSnakeCaseKeys)(cards);
|
|
31
|
+
};
|
|
32
|
+
const renderNode = () => {
|
|
33
|
+
return (
|
|
34
|
+
// @ts-ignore Property 'message' does not exist on type 'JSX.IntrinsicElements'.
|
|
35
|
+
(0, jsx_runtime_1.jsx)("message", Object.assign({}, props, { bodyParameters: JSON.stringify((0, functional_1.toSnakeCaseKeys)(props.bodyParameters)), cards: JSON.stringify(getCards(props.cards)), templateName: props.templateName, templateLanguage: props.templateLanguage, type: core_1.INPUT.WHATSAPP_MEDIA_CAROUSEL })));
|
|
36
|
+
};
|
|
37
|
+
return (0, react_1.renderComponent)({ renderBrowser, renderNode });
|
|
38
|
+
};
|
|
39
|
+
exports.WhatsappMediaCarousel = WhatsappMediaCarousel;
|
|
40
|
+
//# sourceMappingURL=whatsapp-media-carousel.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
type Parameters = TextParameter | CurrencyParameter | DateTimeParameter;
|
|
2
|
+
interface TextParameter {
|
|
3
|
+
type: 'text';
|
|
4
|
+
text: string;
|
|
5
|
+
}
|
|
6
|
+
interface CurrencyParameter {
|
|
7
|
+
type: 'currency';
|
|
8
|
+
currency: {
|
|
9
|
+
fallbackValue: string;
|
|
10
|
+
code: string;
|
|
11
|
+
amount1000: number;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
interface DateTimeParameter {
|
|
15
|
+
type: 'date_time';
|
|
16
|
+
dateTime: {
|
|
17
|
+
fallbackValue: string;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
interface Card {
|
|
21
|
+
productRetailerId: string;
|
|
22
|
+
catalogId: string;
|
|
23
|
+
cardIndex?: number;
|
|
24
|
+
}
|
|
25
|
+
export interface WhatsappProductCarouselProps {
|
|
26
|
+
templateName: string;
|
|
27
|
+
templateLanguage: string;
|
|
28
|
+
cards: Card[];
|
|
29
|
+
bodyParameters?: Parameters[];
|
|
30
|
+
}
|
|
31
|
+
export declare const WhatsappProductCarousel: (props: WhatsappProductCarouselProps) => any;
|
|
32
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WhatsappProductCarousel = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const core_1 = require("@botonic/core");
|
|
6
|
+
const functional_1 = require("../util/functional");
|
|
7
|
+
const react_1 = require("../util/react");
|
|
8
|
+
const message_1 = require("./message");
|
|
9
|
+
const serialize = (message) => {
|
|
10
|
+
return { text: message };
|
|
11
|
+
};
|
|
12
|
+
const WhatsappProductCarousel = (props) => {
|
|
13
|
+
const renderBrowser = () => {
|
|
14
|
+
// Return a dummy message for browser
|
|
15
|
+
const message = `WhatsApp Product Carousel would be sent to the user.`;
|
|
16
|
+
return ((0, jsx_runtime_1.jsx)(message_1.Message, Object.assign({ json: serialize(message) }, props, { type: core_1.INPUT.TEXT }, { children: message })));
|
|
17
|
+
};
|
|
18
|
+
const getCards = (cards) => {
|
|
19
|
+
cards.forEach((card, index) => {
|
|
20
|
+
if (!card.cardIndex) {
|
|
21
|
+
card.cardIndex = index;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
return (0, functional_1.toSnakeCaseKeys)(cards);
|
|
25
|
+
};
|
|
26
|
+
const renderNode = () => {
|
|
27
|
+
return (
|
|
28
|
+
// @ts-ignore Property 'message' does not exist on type 'JSX.IntrinsicElements'.
|
|
29
|
+
(0, jsx_runtime_1.jsx)("message", Object.assign({}, props, { bodyParameters: JSON.stringify((0, functional_1.toSnakeCaseKeys)(props.bodyParameters)), cards: JSON.stringify(getCards(props.cards)), templateName: props.templateName, templateLanguage: props.templateLanguage, type: core_1.INPUT.WHATSAPP_PRODUCT_CAROUSEL })));
|
|
30
|
+
};
|
|
31
|
+
return (0, react_1.renderComponent)({ renderBrowser, renderNode });
|
|
32
|
+
};
|
|
33
|
+
exports.WhatsappProductCarousel = WhatsappProductCarousel;
|
|
34
|
+
//# sourceMappingURL=whatsapp-product-carousel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whatsapp-product-carousel.js","sourceRoot":"","sources":["../../../src/components/whatsapp-product-carousel.tsx"],"names":[],"mappings":";;;;AAAA,wCAAqC;AAGrC,mDAAoD;AACpD,yCAA+C;AAC/C,uCAAmC;AAoCnC,MAAM,SAAS,GAAG,CAAC,OAAe,EAAE,EAAE;IACpC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;AAC1B,CAAC,CAAA;AAEM,MAAM,uBAAuB,GAAG,CACrC,KAAmC,EACnC,EAAE;IACF,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,qCAAqC;QACrC,MAAM,OAAO,GAAG,sDAAsD,CAAA;QACtE,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;QACH,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,yBAAyB,IACrC,CACH,CAAA;IACH,CAAC,CAAA;IAED,OAAO,IAAA,uBAAe,EAAC,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAA;AACvD,CAAC,CAAA;AArCY,QAAA,uBAAuB,2BAqCnC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface ProductItem {
|
|
2
|
+
productRetailerId: string;
|
|
3
|
+
}
|
|
4
|
+
export interface WhatsappProductListSection {
|
|
5
|
+
title: string;
|
|
6
|
+
productItems: ProductItem[];
|
|
7
|
+
}
|
|
8
|
+
export interface WhatsappProductListProps {
|
|
9
|
+
body: string;
|
|
10
|
+
header: string;
|
|
11
|
+
catalogId: string;
|
|
12
|
+
sections: WhatsappProductListSection[];
|
|
13
|
+
footer?: string;
|
|
14
|
+
}
|
|
15
|
+
export declare const WhatsappProductList: (props: WhatsappProductListProps) => any;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WhatsappProductList = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const core_1 = require("@botonic/core");
|
|
6
|
+
const functional_1 = require("../util/functional");
|
|
7
|
+
const react_1 = require("../util/react");
|
|
8
|
+
const message_1 = require("./message");
|
|
9
|
+
const serialize = (message) => {
|
|
10
|
+
return { text: message };
|
|
11
|
+
};
|
|
12
|
+
const WhatsappProductList = (props) => {
|
|
13
|
+
const renderBrowser = () => {
|
|
14
|
+
// Return a dummy message for browser
|
|
15
|
+
const message = `WhatsApp Product List would be sent to the user.`;
|
|
16
|
+
return ((0, jsx_runtime_1.jsx)(message_1.Message, Object.assign({ json: serialize(message) }, props, { type: core_1.INPUT.TEXT }, { children: message })));
|
|
17
|
+
};
|
|
18
|
+
const renderNode = () => {
|
|
19
|
+
return (
|
|
20
|
+
// @ts-ignore Property 'message' does not exist on type 'JSX.IntrinsicElements'.
|
|
21
|
+
(0, jsx_runtime_1.jsx)("message", Object.assign({}, props, { body: props.body, footer: props.footer, header: props.header, sections: JSON.stringify((0, functional_1.toSnakeCaseKeys)(props.sections)), catalogId: props.catalogId, type: core_1.INPUT.WHATSAPP_PRODUCT_LIST })));
|
|
22
|
+
};
|
|
23
|
+
return (0, react_1.renderComponent)({ renderBrowser, renderNode });
|
|
24
|
+
};
|
|
25
|
+
exports.WhatsappProductList = WhatsappProductList;
|
|
26
|
+
//# sourceMappingURL=whatsapp-product-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whatsapp-product-list.js","sourceRoot":"","sources":["../../../src/components/whatsapp-product-list.tsx"],"names":[],"mappings":";;;;AAAA,wCAAqC;AAGrC,mDAAoD;AACpD,yCAA+C;AAC/C,uCAAmC;AAmBnC,MAAM,SAAS,GAAG,CAAC,OAAe,EAAE,EAAE;IACpC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;AAC1B,CAAC,CAAA;AAEM,MAAM,mBAAmB,GAAG,CAAC,KAA+B,EAAE,EAAE;IACrE,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,qCAAqC;QACrC,MAAM,OAAO,GAAG,kDAAkD,CAAA;QAClE,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,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAA,4BAAe,EAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EACzD,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,IAAI,EAAE,YAAK,CAAC,qBAAqB,IACjC,CACH,CAAA;IACH,CAAC,CAAA;IAED,OAAO,IAAA,uBAAe,EAAC,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAA;AACvD,CAAC,CAAA;AA3BY,QAAA,mBAAmB,uBA2B/B"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WhatsappProduct = 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 WhatsappProduct = (props) => {
|
|
12
|
+
const renderBrowser = () => {
|
|
13
|
+
// Return a dummy message for browser
|
|
14
|
+
const message = `WhatsApp Product 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, { body: props.body, footer: props.footer, catalogId: props.catalogId, productId: props.productId, type: core_1.INPUT.WHATSAPP_PRODUCT })));
|
|
21
|
+
};
|
|
22
|
+
return (0, react_1.renderComponent)({ renderBrowser, renderNode });
|
|
23
|
+
};
|
|
24
|
+
exports.WhatsappProduct = WhatsappProduct;
|
|
25
|
+
//# sourceMappingURL=whatsapp-product.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whatsapp-product.js","sourceRoot":"","sources":["../../../src/components/whatsapp-product.tsx"],"names":[],"mappings":";;;;AAAA,wCAAqC;AAGrC,yCAA+C;AAC/C,uCAAmC;AASnC,MAAM,SAAS,GAAG,CAAC,OAAe,EAAE,EAAE;IACpC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;AAC1B,CAAC,CAAA;AAEM,MAAM,eAAe,GAAG,CAAC,KAA2B,EAAE,EAAE;IAC7D,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,qCAAqC;QACrC,MAAM,OAAO,GAAG,6CAA6C,CAAA;QAC7D,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,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,IAAI,EAAE,YAAK,CAAC,gBAAgB,IAC5B,CACH,CAAA;IACH,CAAC,CAAA;IAED,OAAO,IAAA,uBAAe,EAAC,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAA;AACvD,CAAC,CAAA;AA1BY,QAAA,eAAe,mBA0B3B"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toSnakeCaseKeys = void 0;
|
|
4
|
+
function camelCaseToSnake(str) {
|
|
5
|
+
return str
|
|
6
|
+
.replace(/([a-z])([A-Z])/g, '$1_$2')
|
|
7
|
+
.replace(/([A-Za-z])(\d)/g, '$1_$2')
|
|
8
|
+
.replace(/(\d)([A-Za-z])/g, '$1_$2')
|
|
9
|
+
.toLowerCase();
|
|
10
|
+
}
|
|
11
|
+
function toSnakeCaseKeys(input) {
|
|
12
|
+
if (Array.isArray(input)) {
|
|
13
|
+
return input.map(item => toSnakeCaseKeys(item));
|
|
14
|
+
}
|
|
15
|
+
if (typeof input === 'object' && input !== null) {
|
|
16
|
+
const result = Object.keys(input).reduce((acc, key) => {
|
|
17
|
+
const snakeKey = camelCaseToSnake(key);
|
|
18
|
+
const value = input[key];
|
|
19
|
+
acc[snakeKey] =
|
|
20
|
+
typeof value === 'object' && value !== null
|
|
21
|
+
? toSnakeCaseKeys(value)
|
|
22
|
+
: value;
|
|
23
|
+
return acc;
|
|
24
|
+
}, {});
|
|
25
|
+
return result;
|
|
26
|
+
}
|
|
27
|
+
return input;
|
|
28
|
+
}
|
|
29
|
+
exports.toSnakeCaseKeys = toSnakeCaseKeys;
|
|
30
|
+
//# sourceMappingURL=functional.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functional.js","sourceRoot":"","sources":["../../../src/util/functional.ts"],"names":[],"mappings":";;;AAAA,SAAS,gBAAgB,CAAC,GAAW;IACnC,OAAO,GAAG;SACP,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;SACnC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;SACnC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;SACnC,WAAW,EAAE,CAAA;AAClB,CAAC;AAGD,SAAgB,eAAe,CAAC,KAAY;IAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAA;KAChD;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;QAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACpD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAA;YACtC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;YACxB,GAAG,CAAC,QAAQ,CAAC;gBACX,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;oBACzC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC;oBACxB,CAAC,CAAC,KAAK,CAAA;YAEX,OAAO,GAAG,CAAA;QACZ,CAAC,EAAE,EAAE,CAAC,CAAA;QAEN,OAAO,MAAM,CAAA;KACd;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AArBD,0CAqBC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@botonic/react",
|
|
3
|
-
"version": "0.31.0",
|
|
3
|
+
"version": "0.31.1-alpha.0",
|
|
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": "
|
|
23
|
+
"@botonic/core": "0.31.1-alpha.0",
|
|
24
24
|
"axios": "^1.7.9",
|
|
25
25
|
"emoji-picker-react": "^4.12.0",
|
|
26
26
|
"lodash.merge": "^4.6.2",
|
package/src/components/index.ts
CHANGED
|
@@ -30,8 +30,24 @@ export {
|
|
|
30
30
|
WhatsappButtonListRowProps,
|
|
31
31
|
WhatsappButtonListSectionProps,
|
|
32
32
|
} from './whatsapp-button-list'
|
|
33
|
+
export { WhatsappCatalog, WhatsappCatalogProps } from './whatsapp-catalog'
|
|
33
34
|
export {
|
|
34
35
|
WhatsappCTAUrlButton,
|
|
35
36
|
WhatsappCTAUrlButtonProps,
|
|
36
37
|
} from './whatsapp-cta-url-button'
|
|
38
|
+
export {
|
|
39
|
+
WhatsappMediaCarousel,
|
|
40
|
+
WhatsappMediaCarouselProps,
|
|
41
|
+
} from './whatsapp-media-carousel'
|
|
42
|
+
export { WhatsappProduct } from './whatsapp-product'
|
|
43
|
+
export {
|
|
44
|
+
WhatsappProductCarousel,
|
|
45
|
+
WhatsappProductCarouselProps,
|
|
46
|
+
} from './whatsapp-product-carousel'
|
|
47
|
+
export {
|
|
48
|
+
ProductItem,
|
|
49
|
+
WhatsappProductList,
|
|
50
|
+
WhatsappProductListProps,
|
|
51
|
+
WhatsappProductListSection,
|
|
52
|
+
} from './whatsapp-product-list'
|
|
37
53
|
export { WhatsappTemplate } from './whatsapp-template'
|
|
@@ -0,0 +1,42 @@
|
|
|
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
|
+
export interface WhatsappCatalogProps {
|
|
8
|
+
body: string
|
|
9
|
+
footer?: string
|
|
10
|
+
thumbnailProductId?: string
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const serialize = (message: string) => {
|
|
14
|
+
return { text: message }
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export const WhatsappCatalog = (props: WhatsappCatalogProps) => {
|
|
18
|
+
const renderBrowser = () => {
|
|
19
|
+
// Return a dummy message for browser
|
|
20
|
+
const message = `WhatsApp Catalog would be sent to the user.`
|
|
21
|
+
return (
|
|
22
|
+
<Message json={serialize(message)} {...props} type={INPUT.TEXT}>
|
|
23
|
+
{message}
|
|
24
|
+
</Message>
|
|
25
|
+
)
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const renderNode = () => {
|
|
29
|
+
return (
|
|
30
|
+
// @ts-ignore Property 'message' does not exist on type 'JSX.IntrinsicElements'.
|
|
31
|
+
<message
|
|
32
|
+
{...props}
|
|
33
|
+
body={props.body}
|
|
34
|
+
footer={props.footer}
|
|
35
|
+
thumbnailProductId={props.thumbnailProductId}
|
|
36
|
+
type={INPUT.WHATSAPP_CATALOG}
|
|
37
|
+
/>
|
|
38
|
+
)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return renderComponent({ renderBrowser, renderNode })
|
|
42
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { INPUT } from '@botonic/core'
|
|
2
|
+
import React from 'react'
|
|
3
|
+
|
|
4
|
+
import { toSnakeCaseKeys } from '../util/functional'
|
|
5
|
+
import { renderComponent } from '../util/react'
|
|
6
|
+
import { Message } from './message'
|
|
7
|
+
|
|
8
|
+
type Parameters = TextParameter | CurrencyParameter | DateTimeParameter
|
|
9
|
+
|
|
10
|
+
interface TextParameter {
|
|
11
|
+
type: 'text'
|
|
12
|
+
text: string
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
interface CurrencyParameter {
|
|
16
|
+
type: 'currency'
|
|
17
|
+
currency: {
|
|
18
|
+
fallbackValue: string
|
|
19
|
+
code: string
|
|
20
|
+
amount1000: number
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
interface DateTimeParameter {
|
|
25
|
+
type: 'date_time'
|
|
26
|
+
dateTime: { fallbackValue: string }
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
type CardButton = QuickReplyButton | UrlButton
|
|
30
|
+
|
|
31
|
+
interface Button {
|
|
32
|
+
type: 'quick_reply' | 'url'
|
|
33
|
+
buttonIndex?: number
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
interface QuickReplyButton extends Button {
|
|
37
|
+
payload: string
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
interface UrlButton extends Button {
|
|
41
|
+
urlVariable: string
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
interface Card {
|
|
45
|
+
fileType: 'image' | 'video'
|
|
46
|
+
fileId: string
|
|
47
|
+
cardIndex?: number
|
|
48
|
+
bodyParameters?: Parameters[]
|
|
49
|
+
buttons?: CardButton[]
|
|
50
|
+
extraComponents?: Record<string, any>[]
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export interface WhatsappMediaCarouselProps {
|
|
54
|
+
templateName: string
|
|
55
|
+
templateLanguage: string
|
|
56
|
+
cards: Card[]
|
|
57
|
+
bodyParameters?: Parameters[]
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const serialize = (message: string) => {
|
|
61
|
+
return { text: message }
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export const WhatsappMediaCarousel = (props: WhatsappMediaCarouselProps) => {
|
|
65
|
+
const renderBrowser = () => {
|
|
66
|
+
// Return a dummy message for browser
|
|
67
|
+
const message = `WhatsApp Media Carousel would be sent to the user.`
|
|
68
|
+
return (
|
|
69
|
+
<Message json={serialize(message)} {...props} type={INPUT.TEXT}>
|
|
70
|
+
{message}
|
|
71
|
+
</Message>
|
|
72
|
+
)
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const getCards = (cards: Card[]) => {
|
|
76
|
+
cards.forEach((card, index) => {
|
|
77
|
+
if (!card.cardIndex) {
|
|
78
|
+
card.cardIndex = index
|
|
79
|
+
}
|
|
80
|
+
card.buttons?.forEach((button, index) => {
|
|
81
|
+
if (!button.buttonIndex) {
|
|
82
|
+
button.buttonIndex = index
|
|
83
|
+
}
|
|
84
|
+
})
|
|
85
|
+
})
|
|
86
|
+
return toSnakeCaseKeys(cards)
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
const renderNode = () => {
|
|
90
|
+
return (
|
|
91
|
+
// @ts-ignore Property 'message' does not exist on type 'JSX.IntrinsicElements'.
|
|
92
|
+
<message
|
|
93
|
+
{...props}
|
|
94
|
+
bodyParameters={JSON.stringify(toSnakeCaseKeys(props.bodyParameters))}
|
|
95
|
+
cards={JSON.stringify(getCards(props.cards))}
|
|
96
|
+
templateName={props.templateName}
|
|
97
|
+
templateLanguage={props.templateLanguage}
|
|
98
|
+
type={INPUT.WHATSAPP_MEDIA_CAROUSEL}
|
|
99
|
+
/>
|
|
100
|
+
)
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
return renderComponent({ renderBrowser, renderNode })
|
|
104
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { INPUT } from '@botonic/core'
|
|
2
|
+
import React from 'react'
|
|
3
|
+
|
|
4
|
+
import { toSnakeCaseKeys } from '../util/functional'
|
|
5
|
+
import { renderComponent } from '../util/react'
|
|
6
|
+
import { Message } from './message'
|
|
7
|
+
|
|
8
|
+
type Parameters = TextParameter | CurrencyParameter | DateTimeParameter
|
|
9
|
+
|
|
10
|
+
interface TextParameter {
|
|
11
|
+
type: 'text'
|
|
12
|
+
text: string
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
interface CurrencyParameter {
|
|
16
|
+
type: 'currency'
|
|
17
|
+
currency: {
|
|
18
|
+
fallbackValue: string
|
|
19
|
+
code: string
|
|
20
|
+
amount1000: number
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
interface DateTimeParameter {
|
|
25
|
+
type: 'date_time'
|
|
26
|
+
dateTime: { fallbackValue: string }
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
interface Card {
|
|
30
|
+
productRetailerId: string
|
|
31
|
+
catalogId: string
|
|
32
|
+
cardIndex?: number
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export interface WhatsappProductCarouselProps {
|
|
36
|
+
templateName: string
|
|
37
|
+
templateLanguage: string
|
|
38
|
+
cards: Card[]
|
|
39
|
+
bodyParameters?: Parameters[]
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const serialize = (message: string) => {
|
|
43
|
+
return { text: message }
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export const WhatsappProductCarousel = (
|
|
47
|
+
props: WhatsappProductCarouselProps
|
|
48
|
+
) => {
|
|
49
|
+
const renderBrowser = () => {
|
|
50
|
+
// Return a dummy message for browser
|
|
51
|
+
const message = `WhatsApp Product Carousel would be sent to the user.`
|
|
52
|
+
return (
|
|
53
|
+
<Message json={serialize(message)} {...props} type={INPUT.TEXT}>
|
|
54
|
+
{message}
|
|
55
|
+
</Message>
|
|
56
|
+
)
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
const getCards = (cards: Card[]) => {
|
|
60
|
+
cards.forEach((card, index) => {
|
|
61
|
+
if (!card.cardIndex) {
|
|
62
|
+
card.cardIndex = index
|
|
63
|
+
}
|
|
64
|
+
})
|
|
65
|
+
return toSnakeCaseKeys(cards)
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const renderNode = () => {
|
|
69
|
+
return (
|
|
70
|
+
// @ts-ignore Property 'message' does not exist on type 'JSX.IntrinsicElements'.
|
|
71
|
+
<message
|
|
72
|
+
{...props}
|
|
73
|
+
bodyParameters={JSON.stringify(toSnakeCaseKeys(props.bodyParameters))}
|
|
74
|
+
cards={JSON.stringify(getCards(props.cards))}
|
|
75
|
+
templateName={props.templateName}
|
|
76
|
+
templateLanguage={props.templateLanguage}
|
|
77
|
+
type={INPUT.WHATSAPP_PRODUCT_CAROUSEL}
|
|
78
|
+
/>
|
|
79
|
+
)
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return renderComponent({ renderBrowser, renderNode })
|
|
83
|
+
}
|