@botonic/plugin-flow-builder 0.55.2 → 0.57.0-rslib-esm.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/esm/action/ai-agent-from-user-input.d.ts +2 -2
- package/lib/esm/action/ai-agent-from-user-input.js +9 -6
- package/lib/esm/action/ai-agent-from-user-input.js.map +1 -1
- package/lib/esm/action/context.d.ts +2 -2
- package/lib/esm/action/context.js +9 -6
- package/lib/esm/action/context.js.map +1 -1
- package/lib/esm/action/fallback.d.ts +2 -2
- package/lib/esm/action/fallback.js +16 -11
- package/lib/esm/action/fallback.js.map +1 -1
- package/lib/esm/action/first-interaction.d.ts +2 -2
- package/lib/esm/action/first-interaction.js +39 -27
- package/lib/esm/action/first-interaction.js.map +1 -1
- package/lib/esm/action/get-contents.d.ts +1 -1
- package/lib/esm/action/get-contents.js +37 -20
- package/lib/esm/action/get-contents.js.map +1 -1
- package/lib/esm/action/index.d.ts +1 -1
- package/lib/esm/action/index.js +68 -32
- package/lib/esm/action/index.js.map +1 -1
- package/lib/esm/action/payload.d.ts +2 -2
- package/lib/esm/action/payload.js +27 -23
- package/lib/esm/action/payload.js.map +1 -1
- package/lib/esm/api.d.ts +2 -2
- package/lib/esm/api.js +55 -44
- package/lib/esm/api.js.map +1 -1
- package/lib/esm/constants.js +16 -18
- package/lib/esm/constants.js.map +1 -1
- package/lib/esm/content-fields/content-fields-base.d.ts +2 -2
- package/lib/esm/content-fields/content-fields-base.js +33 -29
- package/lib/esm/content-fields/content-fields-base.js.map +1 -1
- package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-evaluators.d.ts +1 -1
- package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-evaluators.js +35 -33
- package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-evaluators.js.map +1 -1
- package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-resolver.d.ts +1 -1
- package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-resolver.js +15 -15
- package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-resolver.js.map +1 -1
- package/lib/esm/content-fields/custom-conditional/flow-custom-condition-v2.d.ts +2 -2
- package/lib/esm/content-fields/custom-conditional/flow-custom-condition-v2.js +50 -35
- package/lib/esm/content-fields/custom-conditional/flow-custom-condition-v2.js.map +1 -1
- package/lib/esm/content-fields/flow-ai-agent-base.d.ts +4 -4
- package/lib/esm/content-fields/flow-ai-agent-base.js +50 -43
- package/lib/esm/content-fields/flow-ai-agent-base.js.map +1 -1
- package/lib/esm/content-fields/flow-ai-agent-router.d.ts +5 -5
- package/lib/esm/content-fields/flow-ai-agent-router.js +57 -46
- package/lib/esm/content-fields/flow-ai-agent-router.js.map +1 -1
- package/lib/esm/content-fields/flow-ai-agent.d.ts +4 -4
- package/lib/esm/content-fields/flow-ai-agent.js +33 -22
- package/lib/esm/content-fields/flow-ai-agent.js.map +1 -1
- package/lib/esm/content-fields/flow-bot-action.d.ts +3 -3
- package/lib/esm/content-fields/flow-bot-action.js +23 -15
- package/lib/esm/content-fields/flow-bot-action.js.map +1 -1
- package/lib/esm/content-fields/flow-button.d.ts +5 -5
- package/lib/esm/content-fields/flow-button.js +48 -29
- package/lib/esm/content-fields/flow-button.js.map +1 -1
- package/lib/esm/content-fields/flow-capture-user-input.d.ts +2 -2
- package/lib/esm/content-fields/flow-capture-user-input.js +24 -23
- package/lib/esm/content-fields/flow-capture-user-input.js.map +1 -1
- package/lib/esm/content-fields/flow-carousel.d.ts +4 -4
- package/lib/esm/content-fields/flow-carousel.js +99 -58
- package/lib/esm/content-fields/flow-carousel.js.map +1 -1
- package/lib/esm/content-fields/flow-channel-conditional.d.ts +3 -3
- package/lib/esm/content-fields/flow-channel-conditional.js +26 -22
- package/lib/esm/content-fields/flow-channel-conditional.js.map +1 -1
- package/lib/esm/content-fields/flow-country-conditional.d.ts +3 -3
- package/lib/esm/content-fields/flow-country-conditional.js +26 -21
- package/lib/esm/content-fields/flow-country-conditional.js.map +1 -1
- package/lib/esm/content-fields/flow-custom-conditional.d.ts +3 -3
- package/lib/esm/content-fields/flow-custom-conditional.js +31 -33
- package/lib/esm/content-fields/flow-custom-conditional.js.map +1 -1
- package/lib/esm/content-fields/flow-element.d.ts +4 -4
- package/lib/esm/content-fields/flow-element.js +37 -20
- package/lib/esm/content-fields/flow-element.js.map +1 -1
- package/lib/esm/content-fields/flow-go-to-flow.d.ts +3 -3
- package/lib/esm/content-fields/flow-go-to-flow.js +25 -20
- package/lib/esm/content-fields/flow-go-to-flow.js.map +1 -1
- package/lib/esm/content-fields/flow-handoff.d.ts +3 -3
- package/lib/esm/content-fields/flow-handoff.js +30 -19
- package/lib/esm/content-fields/flow-handoff.js.map +1 -1
- package/lib/esm/content-fields/flow-image.d.ts +2 -2
- package/lib/esm/content-fields/flow-image.js +24 -15
- package/lib/esm/content-fields/flow-image.js.map +1 -1
- package/lib/esm/content-fields/flow-queue-status-conditional.d.ts +3 -3
- package/lib/esm/content-fields/flow-queue-status-conditional.js +45 -40
- package/lib/esm/content-fields/flow-queue-status-conditional.js.map +1 -1
- package/lib/esm/content-fields/flow-rating.d.ts +3 -3
- package/lib/esm/content-fields/flow-rating.js +62 -40
- package/lib/esm/content-fields/flow-rating.js.map +1 -1
- package/lib/esm/content-fields/flow-text.d.ts +4 -4
- package/lib/esm/content-fields/flow-text.js +51 -29
- package/lib/esm/content-fields/flow-text.js.map +1 -1
- package/lib/esm/content-fields/flow-video.d.ts +2 -2
- package/lib/esm/content-fields/flow-video.js +24 -15
- package/lib/esm/content-fields/flow-video.js.map +1 -1
- package/lib/esm/content-fields/flow-webview.d.ts +2 -2
- package/lib/esm/content-fields/flow-webview.js +31 -28
- package/lib/esm/content-fields/flow-webview.js.map +1 -1
- package/lib/esm/content-fields/flow-whatsapp-cta-url-button.d.ts +3 -3
- package/lib/esm/content-fields/flow-whatsapp-cta-url-button.js +91 -52
- package/lib/esm/content-fields/flow-whatsapp-cta-url-button.js.map +1 -1
- package/lib/esm/content-fields/flow-whatsapp-request-contact-info.d.ts +10 -0
- package/lib/esm/content-fields/flow-whatsapp-request-contact-info.js +51 -0
- package/lib/esm/content-fields/flow-whatsapp-request-contact-info.js.map +1 -0
- package/lib/esm/content-fields/flow-whatsapp-template.d.ts +3 -2
- package/lib/esm/content-fields/flow-whatsapp-template.js +126 -98
- package/lib/esm/content-fields/flow-whatsapp-template.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/ai-agent-router.d.ts +3 -3
- package/lib/esm/content-fields/hubtype-fields/ai-agent-router.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/ai-agent-router.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/ai-agent.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/ai-agent.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/ai-agent.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/bot-action.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/bot-action.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/bot-action.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/button.d.ts +1 -1
- package/lib/esm/content-fields/hubtype-fields/button.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/button.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/capture-user-input.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/capture-user-input.js +6 -6
- package/lib/esm/content-fields/hubtype-fields/capture-user-input.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/carousel.d.ts +3 -3
- package/lib/esm/content-fields/hubtype-fields/carousel.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/carousel.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/channel-conditional.d.ts +3 -3
- package/lib/esm/content-fields/hubtype-fields/channel-conditional.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/channel-conditional.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/common.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/common.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/common.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/country-conditional.d.ts +3 -3
- package/lib/esm/content-fields/hubtype-fields/country-conditional.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/country-conditional.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/custom-conditional-v2.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/custom-conditional-v2.js +15 -15
- package/lib/esm/content-fields/hubtype-fields/custom-conditional-v2.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/custom-conditional.d.ts +3 -3
- package/lib/esm/content-fields/hubtype-fields/custom-conditional.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/custom-conditional.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/fallback.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/fallback.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/fallback.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/function.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/function.js +6 -6
- package/lib/esm/content-fields/hubtype-fields/function.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/go-to-flow.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/go-to-flow.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/go-to-flow.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/handoff.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/handoff.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/handoff.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/image.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/image.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/image.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/index.d.ts +27 -26
- package/lib/esm/content-fields/hubtype-fields/index.js +56 -29
- package/lib/esm/content-fields/hubtype-fields/index.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/keyword.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/keyword.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/keyword.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/node-types.d.ts +1 -0
- package/lib/esm/content-fields/hubtype-fields/node-types.js +13 -12
- package/lib/esm/content-fields/hubtype-fields/node-types.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/nodes.d.ts +24 -23
- package/lib/esm/content-fields/hubtype-fields/nodes.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/nodes.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/payload.d.ts +1 -1
- package/lib/esm/content-fields/hubtype-fields/payload.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/payload.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/queue-status-conditional.d.ts +3 -3
- package/lib/esm/content-fields/hubtype-fields/queue-status-conditional.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/queue-status-conditional.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/rating.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/rating.js +6 -6
- package/lib/esm/content-fields/hubtype-fields/rating.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/smart-intent.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/smart-intent.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/smart-intent.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/text.d.ts +3 -3
- package/lib/esm/content-fields/hubtype-fields/text.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/text.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/url.d.ts +1 -1
- package/lib/esm/content-fields/hubtype-fields/url.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/url.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/video.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/video.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/video.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/webview.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/webview.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/webview.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/whatsapp-button-list.d.ts +2 -2
- package/lib/esm/content-fields/hubtype-fields/whatsapp-button-list.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/whatsapp-button-list.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/whatsapp-cta-url-button.d.ts +3 -3
- package/lib/esm/content-fields/hubtype-fields/whatsapp-cta-url-button.js +3 -2
- package/lib/esm/content-fields/hubtype-fields/whatsapp-cta-url-button.js.map +1 -1
- package/lib/esm/content-fields/hubtype-fields/whatsapp-request-contact-info.d.ts +8 -0
- package/lib/esm/content-fields/hubtype-fields/whatsapp-request-contact-info.js +4 -0
- package/lib/esm/content-fields/hubtype-fields/whatsapp-request-contact-info.js.map +1 -0
- package/lib/esm/content-fields/hubtype-fields/whatsapp-template.d.ts +7 -3
- package/lib/esm/content-fields/hubtype-fields/whatsapp-template.js +6 -6
- package/lib/esm/content-fields/hubtype-fields/whatsapp-template.js.map +1 -1
- package/lib/esm/content-fields/index.d.ts +25 -24
- package/lib/esm/content-fields/index.js +72 -49
- package/lib/esm/content-fields/index.js.map +1 -1
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.d.ts +3 -3
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js +16 -14
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js.map +1 -1
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.d.ts +4 -4
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js +20 -15
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js.map +1 -1
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list.d.ts +4 -4
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js +46 -26
- package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js.map +1 -1
- package/lib/esm/content-fields/whatsapp-button-list/index.d.ts +3 -3
- package/lib/esm/content-fields/whatsapp-button-list/index.js +11 -9
- package/lib/esm/content-fields/whatsapp-button-list/index.js.map +1 -1
- package/lib/esm/filters/index.d.ts +2 -2
- package/lib/esm/filters/index.js +8 -9
- package/lib/esm/filters/index.js.map +1 -1
- package/lib/esm/flow-factory.d.ts +3 -3
- package/lib/esm/flow-factory.js +57 -49
- package/lib/esm/flow-factory.js.map +1 -1
- package/lib/esm/functions/index.d.ts +1 -1
- package/lib/esm/functions/index.js +25 -19
- package/lib/esm/functions/index.js.map +1 -1
- package/lib/esm/index.d.ts +12 -12
- package/lib/esm/index.js +94 -77
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/package.json +3 -0
- package/lib/esm/services/hubtype-queues-api.js +14 -14
- package/lib/esm/services/hubtype-queues-api.js.map +1 -1
- package/lib/esm/structured-output/flow-builder-content.js +14 -13
- package/lib/esm/structured-output/flow-builder-content.js.map +1 -1
- package/lib/esm/tracking.d.ts +2 -2
- package/lib/esm/tracking.js +27 -21
- package/lib/esm/tracking.js.map +1 -1
- package/lib/esm/types.d.ts +5 -5
- package/lib/esm/types.js +9 -9
- package/lib/esm/types.js.map +1 -1
- package/lib/esm/user-input/capture-user-input-api.d.ts +2 -2
- package/lib/esm/user-input/capture-user-input-api.js +44 -33
- package/lib/esm/user-input/capture-user-input-api.js.map +1 -1
- package/lib/esm/user-input/index.d.ts +2 -2
- package/lib/esm/user-input/index.js +23 -14
- package/lib/esm/user-input/index.js.map +1 -1
- package/lib/esm/user-input/keyword.d.ts +2 -2
- package/lib/esm/user-input/keyword.js +31 -26
- package/lib/esm/user-input/keyword.js.map +1 -1
- package/lib/esm/user-input/smart-intent.d.ts +2 -2
- package/lib/esm/user-input/smart-intent.js +36 -32
- package/lib/esm/user-input/smart-intent.js.map +1 -1
- package/lib/esm/utils/ai-agent.d.ts +3 -3
- package/lib/esm/utils/ai-agent.js +17 -12
- package/lib/esm/utils/ai-agent.js.map +1 -1
- package/lib/esm/utils/authentication.js +10 -7
- package/lib/esm/utils/authentication.js.map +1 -1
- package/lib/esm/utils/flow-locale.js +14 -18
- package/lib/esm/utils/flow-locale.js.map +1 -1
- package/lib/esm/utils/get-flow-builder-plugin.d.ts +1 -1
- package/lib/esm/utils/get-flow-builder-plugin.js +4 -4
- package/lib/esm/utils/get-flow-builder-plugin.js.map +1 -1
- package/lib/esm/utils/hubtype-assistant-content.d.ts +1 -1
- package/lib/esm/utils/hubtype-assistant-content.js +57 -43
- package/lib/esm/utils/hubtype-assistant-content.js.map +1 -1
- package/lib/esm/utils/input.js +16 -14
- package/lib/esm/utils/input.js.map +1 -1
- package/lib/esm/webview/contents-context.d.ts +1 -1
- package/lib/esm/webview/contents-context.js +13 -11
- package/lib/esm/webview/contents-context.js.map +1 -1
- package/lib/esm/webview/index.d.ts +3 -3
- package/lib/esm/webview/index.js +10 -9
- package/lib/esm/webview/index.js.map +1 -1
- package/lib/esm/webview/types.d.ts +1 -1
- package/lib/esm/webview/types.js +6 -6
- package/lib/esm/webview/types.js.map +1 -1
- package/lib/esm/webview/use-webview-contents.d.ts +1 -1
- package/lib/esm/webview/use-webview-contents.js +46 -39
- package/lib/esm/webview/use-webview-contents.js.map +1 -1
- package/package.json +8 -7
- package/src/content-fields/flow-whatsapp-request-contact-info.tsx +48 -0
- package/src/content-fields/flow-whatsapp-template.tsx +16 -0
- package/src/content-fields/hubtype-fields/index.ts +1 -0
- package/src/content-fields/hubtype-fields/node-types.ts +1 -0
- package/src/content-fields/hubtype-fields/nodes.ts +2 -0
- package/src/content-fields/hubtype-fields/whatsapp-request-contact-info.ts +9 -0
- package/src/content-fields/hubtype-fields/whatsapp-template.ts +5 -0
- package/src/content-fields/index.ts +3 -0
- package/src/flow-factory.ts +6 -0
- package/src/index.ts +5 -5
- package/src/types.ts +6 -6
- package/lib/cjs/action/ai-agent-from-user-input.d.ts +0 -3
- package/lib/cjs/action/ai-agent-from-user-input.js +0 -32
- package/lib/cjs/action/ai-agent-from-user-input.js.map +0 -1
- package/lib/cjs/action/context.d.ts +0 -11
- package/lib/cjs/action/context.js +0 -17
- package/lib/cjs/action/context.js.map +0 -1
- package/lib/cjs/action/fallback.d.ts +0 -3
- package/lib/cjs/action/fallback.js +0 -36
- package/lib/cjs/action/fallback.js.map +0 -1
- package/lib/cjs/action/first-interaction.d.ts +0 -3
- package/lib/cjs/action/first-interaction.js +0 -88
- package/lib/cjs/action/first-interaction.js.map +0 -1
- package/lib/cjs/action/get-contents.d.ts +0 -3
- package/lib/cjs/action/get-contents.js +0 -39
- package/lib/cjs/action/get-contents.js.map +0 -1
- package/lib/cjs/action/index.d.ts +0 -25
- package/lib/cjs/action/index.js +0 -90
- package/lib/cjs/action/index.js.map +0 -1
- package/lib/cjs/action/payload.d.ts +0 -3
- package/lib/cjs/action/payload.js +0 -74
- package/lib/cjs/action/payload.js.map +0 -1
- package/lib/cjs/api.d.ts +0 -40
- package/lib/cjs/api.js +0 -205
- package/lib/cjs/api.js.map +0 -1
- package/lib/cjs/constants.d.ts +0 -13
- package/lib/cjs/constants.js +0 -19
- package/lib/cjs/constants.js.map +0 -1
- package/lib/cjs/content-fields/content-fields-base.d.ts +0 -20
- package/lib/cjs/content-fields/content-fields-base.js +0 -74
- package/lib/cjs/content-fields/content-fields-base.js.map +0 -1
- package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-evaluators.d.ts +0 -15
- package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-evaluators.js +0 -71
- package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-evaluators.js.map +0 -1
- package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-resolver.d.ts +0 -9
- package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-resolver.js +0 -58
- package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-resolver.js.map +0 -1
- package/lib/cjs/content-fields/custom-conditional/flow-custom-condition-v2.d.ts +0 -17
- package/lib/cjs/content-fields/custom-conditional/flow-custom-condition-v2.js +0 -79
- package/lib/cjs/content-fields/custom-conditional/flow-custom-condition-v2.js.map +0 -1
- package/lib/cjs/content-fields/flow-ai-agent-base.d.ts +0 -25
- package/lib/cjs/content-fields/flow-ai-agent-base.js +0 -93
- package/lib/cjs/content-fields/flow-ai-agent-base.js.map +0 -1
- package/lib/cjs/content-fields/flow-ai-agent-router.d.ts +0 -21
- package/lib/cjs/content-fields/flow-ai-agent-router.js +0 -125
- package/lib/cjs/content-fields/flow-ai-agent-router.js.map +0 -1
- package/lib/cjs/content-fields/flow-ai-agent.d.ts +0 -17
- package/lib/cjs/content-fields/flow-ai-agent.js +0 -64
- package/lib/cjs/content-fields/flow-ai-agent.js.map +0 -1
- package/lib/cjs/content-fields/flow-bot-action.d.ts +0 -14
- package/lib/cjs/content-fields/flow-bot-action.js +0 -45
- package/lib/cjs/content-fields/flow-bot-action.js.map +0 -1
- package/lib/cjs/content-fields/flow-button.d.ts +0 -31
- package/lib/cjs/content-fields/flow-button.js +0 -86
- package/lib/cjs/content-fields/flow-button.js.map +0 -1
- package/lib/cjs/content-fields/flow-capture-user-input.d.ts +0 -14
- package/lib/cjs/content-fields/flow-capture-user-input.js +0 -45
- package/lib/cjs/content-fields/flow-capture-user-input.js.map +0 -1
- package/lib/cjs/content-fields/flow-carousel.d.ts +0 -22
- package/lib/cjs/content-fields/flow-carousel.js +0 -152
- package/lib/cjs/content-fields/flow-carousel.js.map +0 -1
- package/lib/cjs/content-fields/flow-channel-conditional.d.ts +0 -14
- package/lib/cjs/content-fields/flow-channel-conditional.js +0 -57
- package/lib/cjs/content-fields/flow-channel-conditional.js.map +0 -1
- package/lib/cjs/content-fields/flow-country-conditional.d.ts +0 -13
- package/lib/cjs/content-fields/flow-country-conditional.js +0 -59
- package/lib/cjs/content-fields/flow-country-conditional.js.map +0 -1
- package/lib/cjs/content-fields/flow-custom-conditional.d.ts +0 -17
- package/lib/cjs/content-fields/flow-custom-conditional.js +0 -89
- package/lib/cjs/content-fields/flow-custom-conditional.js.map +0 -1
- package/lib/cjs/content-fields/flow-element.d.ts +0 -22
- package/lib/cjs/content-fields/flow-element.js +0 -50
- package/lib/cjs/content-fields/flow-element.js.map +0 -1
- package/lib/cjs/content-fields/flow-go-to-flow.d.ts +0 -13
- package/lib/cjs/content-fields/flow-go-to-flow.js +0 -51
- package/lib/cjs/content-fields/flow-go-to-flow.js.map +0 -1
- package/lib/cjs/content-fields/flow-handoff.d.ts +0 -17
- package/lib/cjs/content-fields/flow-handoff.js +0 -68
- package/lib/cjs/content-fields/flow-handoff.js.map +0 -1
- package/lib/cjs/content-fields/flow-image.d.ts +0 -10
- package/lib/cjs/content-fields/flow-image.js +0 -33
- package/lib/cjs/content-fields/flow-image.js.map +0 -1
- package/lib/cjs/content-fields/flow-queue-status-conditional.d.ts +0 -30
- package/lib/cjs/content-fields/flow-queue-status-conditional.js +0 -95
- package/lib/cjs/content-fields/flow-queue-status-conditional.js.map +0 -1
- package/lib/cjs/content-fields/flow-rating.d.ts +0 -15
- package/lib/cjs/content-fields/flow-rating.js +0 -66
- package/lib/cjs/content-fields/flow-rating.js.map +0 -1
- package/lib/cjs/content-fields/flow-text.d.ts +0 -15
- package/lib/cjs/content-fields/flow-text.js +0 -60
- package/lib/cjs/content-fields/flow-text.js.map +0 -1
- package/lib/cjs/content-fields/flow-video.d.ts +0 -10
- package/lib/cjs/content-fields/flow-video.js +0 -33
- package/lib/cjs/content-fields/flow-video.js.map +0 -1
- package/lib/cjs/content-fields/flow-webview.d.ts +0 -16
- package/lib/cjs/content-fields/flow-webview.js +0 -78
- package/lib/cjs/content-fields/flow-webview.js.map +0 -1
- package/lib/cjs/content-fields/flow-whatsapp-cta-url-button.d.ts +0 -21
- package/lib/cjs/content-fields/flow-whatsapp-cta-url-button.js +0 -92
- package/lib/cjs/content-fields/flow-whatsapp-cta-url-button.js.map +0 -1
- package/lib/cjs/content-fields/flow-whatsapp-template.d.ts +0 -36
- package/lib/cjs/content-fields/flow-whatsapp-template.js +0 -253
- package/lib/cjs/content-fields/flow-whatsapp-template.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/ai-agent-router.d.ts +0 -21
- package/lib/cjs/content-fields/hubtype-fields/ai-agent-router.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/ai-agent-router.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/ai-agent.d.ts +0 -25
- package/lib/cjs/content-fields/hubtype-fields/ai-agent.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/ai-agent.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/bot-action.d.ts +0 -10
- package/lib/cjs/content-fields/hubtype-fields/bot-action.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/bot-action.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/button.d.ts +0 -8
- package/lib/cjs/content-fields/hubtype-fields/button.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/button.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/capture-user-input.d.ts +0 -19
- package/lib/cjs/content-fields/hubtype-fields/capture-user-input.js +0 -12
- package/lib/cjs/content-fields/hubtype-fields/capture-user-input.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/carousel.d.ts +0 -17
- package/lib/cjs/content-fields/hubtype-fields/carousel.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/carousel.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/channel-conditional.d.ts +0 -10
- package/lib/cjs/content-fields/hubtype-fields/channel-conditional.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/channel-conditional.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/common.d.ts +0 -83
- package/lib/cjs/content-fields/hubtype-fields/common.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/common.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/country-conditional.d.ts +0 -10
- package/lib/cjs/content-fields/hubtype-fields/country-conditional.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/country-conditional.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/custom-conditional-v2.d.ts +0 -56
- package/lib/cjs/content-fields/hubtype-fields/custom-conditional-v2.js +0 -36
- package/lib/cjs/content-fields/hubtype-fields/custom-conditional-v2.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/custom-conditional.d.ts +0 -11
- package/lib/cjs/content-fields/hubtype-fields/custom-conditional.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/custom-conditional.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/fallback.d.ts +0 -9
- package/lib/cjs/content-fields/hubtype-fields/fallback.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/fallback.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/function.d.ts +0 -30
- package/lib/cjs/content-fields/hubtype-fields/function.js +0 -11
- package/lib/cjs/content-fields/hubtype-fields/function.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/go-to-flow.d.ts +0 -9
- package/lib/cjs/content-fields/hubtype-fields/go-to-flow.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/go-to-flow.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/handoff.d.ts +0 -11
- package/lib/cjs/content-fields/hubtype-fields/handoff.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/handoff.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/image.d.ts +0 -8
- package/lib/cjs/content-fields/hubtype-fields/image.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/image.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/index.d.ts +0 -26
- package/lib/cjs/content-fields/hubtype-fields/index.js +0 -30
- package/lib/cjs/content-fields/hubtype-fields/index.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/keyword.d.ts +0 -9
- package/lib/cjs/content-fields/hubtype-fields/keyword.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/keyword.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/node-types.d.ts +0 -30
- package/lib/cjs/content-fields/hubtype-fields/node-types.js +0 -37
- package/lib/cjs/content-fields/hubtype-fields/node-types.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/nodes.d.ts +0 -25
- package/lib/cjs/content-fields/hubtype-fields/nodes.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/nodes.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/payload.d.ts +0 -8
- package/lib/cjs/content-fields/hubtype-fields/payload.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/payload.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/queue-status-conditional.d.ts +0 -25
- package/lib/cjs/content-fields/hubtype-fields/queue-status-conditional.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/queue-status-conditional.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/rating.d.ts +0 -23
- package/lib/cjs/content-fields/hubtype-fields/rating.js +0 -9
- package/lib/cjs/content-fields/hubtype-fields/rating.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/smart-intent.d.ts +0 -12
- package/lib/cjs/content-fields/hubtype-fields/smart-intent.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/smart-intent.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/text.d.ts +0 -11
- package/lib/cjs/content-fields/hubtype-fields/text.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/text.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/url.d.ts +0 -8
- package/lib/cjs/content-fields/hubtype-fields/url.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/url.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/video.d.ts +0 -8
- package/lib/cjs/content-fields/hubtype-fields/video.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/video.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/webview.d.ts +0 -17
- package/lib/cjs/content-fields/hubtype-fields/webview.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/webview.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-button-list.d.ts +0 -21
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-button-list.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-button-list.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-cta-url-button.d.ts +0 -17
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-cta-url-button.js +0 -3
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-cta-url-button.js.map +0 -1
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-template.d.ts +0 -92
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-template.js +0 -9
- package/lib/cjs/content-fields/hubtype-fields/whatsapp-template.js.map +0 -1
- package/lib/cjs/content-fields/index.d.ts +0 -24
- package/lib/cjs/content-fields/index.js +0 -50
- package/lib/cjs/content-fields/index.js.map +0 -1
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.d.ts +0 -14
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js +0 -41
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js.map +0 -1
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.d.ts +0 -13
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js +0 -36
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js.map +0 -1
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list.d.ts +0 -14
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js +0 -46
- package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js.map +0 -1
- package/lib/cjs/content-fields/whatsapp-button-list/index.d.ts +0 -3
- package/lib/cjs/content-fields/whatsapp-button-list/index.js +0 -10
- package/lib/cjs/content-fields/whatsapp-button-list/index.js.map +0 -1
- package/lib/cjs/filters/index.d.ts +0 -12
- package/lib/cjs/filters/index.js +0 -17
- package/lib/cjs/filters/index.js.map +0 -1
- package/lib/cjs/flow-factory.d.ts +0 -12
- package/lib/cjs/flow-factory.js +0 -67
- package/lib/cjs/flow-factory.js.map +0 -1
- package/lib/cjs/functions/index.d.ts +0 -11
- package/lib/cjs/functions/index.js +0 -49
- package/lib/cjs/functions/index.js.map +0 -1
- package/lib/cjs/index.d.ts +0 -45
- package/lib/cjs/index.js +0 -178
- package/lib/cjs/index.js.map +0 -1
- package/lib/cjs/services/hubtype-queues-api.d.ts +0 -14
- package/lib/cjs/services/hubtype-queues-api.js +0 -26
- package/lib/cjs/services/hubtype-queues-api.js.map +0 -1
- package/lib/cjs/structured-output/flow-builder-content.d.ts +0 -13
- package/lib/cjs/structured-output/flow-builder-content.js +0 -15
- package/lib/cjs/structured-output/flow-builder-content.js.map +0 -1
- package/lib/cjs/tracking.d.ts +0 -16
- package/lib/cjs/tracking.js +0 -71
- package/lib/cjs/tracking.js.map +0 -1
- package/lib/cjs/types.d.ts +0 -62
- package/lib/cjs/types.js +0 -14
- package/lib/cjs/types.js.map +0 -1
- package/lib/cjs/user-input/capture-user-input-api.d.ts +0 -21
- package/lib/cjs/user-input/capture-user-input-api.js +0 -88
- package/lib/cjs/user-input/capture-user-input-api.js.map +0 -1
- package/lib/cjs/user-input/index.d.ts +0 -4
- package/lib/cjs/user-input/index.js +0 -37
- package/lib/cjs/user-input/index.js.map +0 -1
- package/lib/cjs/user-input/keyword.d.ts +0 -27
- package/lib/cjs/user-input/keyword.js +0 -84
- package/lib/cjs/user-input/keyword.js.map +0 -1
- package/lib/cjs/user-input/smart-intent.d.ts +0 -24
- package/lib/cjs/user-input/smart-intent.js +0 -89
- package/lib/cjs/user-input/smart-intent.js.map +0 -1
- package/lib/cjs/utils/ai-agent.d.ts +0 -11
- package/lib/cjs/utils/ai-agent.js +0 -28
- package/lib/cjs/utils/ai-agent.js.map +0 -1
- package/lib/cjs/utils/authentication.d.ts +0 -2
- package/lib/cjs/utils/authentication.js +0 -21
- package/lib/cjs/utils/authentication.js.map +0 -1
- package/lib/cjs/utils/flow-locale.d.ts +0 -22
- package/lib/cjs/utils/flow-locale.js +0 -79
- package/lib/cjs/utils/flow-locale.js.map +0 -1
- package/lib/cjs/utils/get-flow-builder-plugin.d.ts +0 -3
- package/lib/cjs/utils/get-flow-builder-plugin.js +0 -16
- package/lib/cjs/utils/get-flow-builder-plugin.js.map +0 -1
- package/lib/cjs/utils/hubtype-assistant-content.d.ts +0 -12
- package/lib/cjs/utils/hubtype-assistant-content.js +0 -173
- package/lib/cjs/utils/hubtype-assistant-content.js.map +0 -1
- package/lib/cjs/utils/input.d.ts +0 -6
- package/lib/cjs/utils/input.js +0 -35
- package/lib/cjs/utils/input.js.map +0 -1
- package/lib/cjs/webview/contents-context.d.ts +0 -2
- package/lib/cjs/webview/contents-context.js +0 -12
- package/lib/cjs/webview/contents-context.js.map +0 -1
- package/lib/cjs/webview/index.d.ts +0 -3
- package/lib/cjs/webview/index.js +0 -10
- package/lib/cjs/webview/index.js.map +0 -1
- package/lib/cjs/webview/types.d.ts +0 -47
- package/lib/cjs/webview/types.js +0 -9
- package/lib/cjs/webview/types.js.map +0 -1
- package/lib/cjs/webview/use-webview-contents.d.ts +0 -2
- package/lib/cjs/webview/use-webview-contents.js +0 -83
- package/lib/cjs/webview/use-webview-contents.js.map +0 -1
|
@@ -1,17 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Button, Reply } from "@botonic/react";
|
|
3
|
+
import { SOURCE_INFO_SEPARATOR } from "../constants.js";
|
|
4
|
+
import { ContentFieldsBase } from "./content-fields-base.js";
|
|
5
|
+
import { FlowWebview } from "./flow-webview.js";
|
|
6
|
+
import { HtButtonStyle, HtNodeWithContentType } from "./hubtype-fields/index.js";
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class FlowButton extends ContentFieldsBase {
|
|
15
21
|
static fromHubtypeCMS(cmsButton, locale, cmsApi, botContext) {
|
|
16
22
|
const urlId = FlowButton.getUrlId(cmsButton, locale);
|
|
17
23
|
const newButton = new FlowButton(cmsButton.id);
|
|
@@ -20,10 +26,11 @@ class FlowButton extends content_fields_base_1.ContentFieldsBase {
|
|
|
20
26
|
const webview = FlowButton.getTargetWebview(cmsApi, cmsButton.target.id);
|
|
21
27
|
if (webview) {
|
|
22
28
|
newButton.flowWebview = webview;
|
|
23
|
-
newButton.webview = {
|
|
29
|
+
newButton.webview = {
|
|
30
|
+
name: webview.webviewComponentName
|
|
31
|
+
};
|
|
24
32
|
newButton.params = webview.getParams(botContext);
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
33
|
+
} else {
|
|
27
34
|
newButton.payload = cmsApi.getPayload(cmsButton.target);
|
|
28
35
|
}
|
|
29
36
|
}
|
|
@@ -39,8 +46,7 @@ class FlowButton extends content_fields_base_1.ContentFieldsBase {
|
|
|
39
46
|
if (button.url) {
|
|
40
47
|
newButton.url = button.url;
|
|
41
48
|
newButton.target = button.target;
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
49
|
+
} else {
|
|
44
50
|
newButton.payload = button.payload;
|
|
45
51
|
}
|
|
46
52
|
return newButton;
|
|
@@ -53,14 +59,14 @@ class FlowButton extends content_fields_base_1.ContentFieldsBase {
|
|
|
53
59
|
return newButton;
|
|
54
60
|
}
|
|
55
61
|
static getUrlId(cmsButton, locale) {
|
|
56
|
-
return cmsButton.url.find(url
|
|
62
|
+
return cmsButton.url.find((url)=>url.locale === locale)?.id;
|
|
57
63
|
}
|
|
58
64
|
static getTargetWebview(cmsApi, targetId) {
|
|
59
65
|
const targetNode = cmsApi.getNodeById(targetId);
|
|
60
|
-
if (targetNode.type !==
|
|
66
|
+
if (targetNode.type !== HtNodeWithContentType.WEBVIEW) {
|
|
61
67
|
return undefined;
|
|
62
68
|
}
|
|
63
|
-
return
|
|
69
|
+
return FlowWebview.fromHubtypeCMS(targetNode);
|
|
64
70
|
}
|
|
65
71
|
async trackFlow(botContext) {
|
|
66
72
|
if (this.flowWebview) {
|
|
@@ -71,16 +77,29 @@ class FlowButton extends content_fields_base_1.ContentFieldsBase {
|
|
|
71
77
|
return;
|
|
72
78
|
}
|
|
73
79
|
renderButton(buttonIndex, buttonStyle) {
|
|
74
|
-
if (buttonStyle ===
|
|
75
|
-
return
|
|
80
|
+
if (buttonStyle === HtButtonStyle.QUICK_REPLY) {
|
|
81
|
+
return /*#__PURE__*/ jsx(Reply, {
|
|
82
|
+
payload: this.getButtonPayload(buttonIndex),
|
|
83
|
+
children: this.text
|
|
84
|
+
}, this.id);
|
|
76
85
|
}
|
|
77
|
-
return
|
|
86
|
+
return /*#__PURE__*/ jsx(Button, {
|
|
87
|
+
url: this.url,
|
|
88
|
+
payload: this.getButtonPayload(buttonIndex),
|
|
89
|
+
target: this.target,
|
|
90
|
+
webview: this.webview,
|
|
91
|
+
params: this.params,
|
|
92
|
+
children: this.text
|
|
93
|
+
}, this.id);
|
|
78
94
|
}
|
|
79
95
|
getButtonPayload(buttonIndex) {
|
|
80
|
-
return this.payload
|
|
81
|
-
|
|
82
|
-
|
|
96
|
+
return this.payload ? `${this.payload}${SOURCE_INFO_SEPARATOR}${buttonIndex}` : undefined;
|
|
97
|
+
}
|
|
98
|
+
constructor(...args){
|
|
99
|
+
super(...args), this.text = '';
|
|
83
100
|
}
|
|
84
101
|
}
|
|
85
|
-
|
|
102
|
+
|
|
103
|
+
export { FlowButton };
|
|
104
|
+
|
|
86
105
|
//# sourceMappingURL=flow-button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow-button.js","
|
|
1
|
+
{"version":3,"file":"content-fields/flow-button.js","sources":["../../../src/content-fields/flow-button.tsx"],"sourcesContent":["import type { BotContext } from '@botonic/core'\nimport { Button, Reply, type Webview } from '@botonic/react'\n\nimport type { FlowBuilderApi } from '../api'\nimport { SOURCE_INFO_SEPARATOR } from '../constants'\nimport { ContentFieldsBase } from './content-fields-base'\nimport { FlowWebview } from './flow-webview'\nimport {\n type HtButton,\n HtButtonStyle,\n HtNodeWithContentType,\n type HtUrlNode,\n} from './hubtype-fields'\nimport type { HtRatingButton } from './hubtype-fields/rating'\n\nexport class FlowButton extends ContentFieldsBase {\n public text = ''\n public url?: string\n public payload?: string\n public target?: string\n public webview?: Webview\n public flowWebview?: FlowWebview // Used for tracking\n public params?: Record<string, string>\n\n static fromHubtypeCMS(\n cmsButton: HtButton,\n locale: string,\n cmsApi: FlowBuilderApi,\n botContext: BotContext\n ): FlowButton {\n const urlId = FlowButton.getUrlId(cmsButton, locale)\n\n const newButton = new FlowButton(cmsButton.id)\n newButton.text = FlowButton.getTextByLocale(locale, cmsButton.text)\n if (cmsButton.target) {\n const webview = FlowButton.getTargetWebview(cmsApi, cmsButton.target.id)\n if (webview) {\n newButton.flowWebview = webview\n newButton.webview = { name: webview.webviewComponentName }\n newButton.params = webview.getParams(botContext)\n } else {\n newButton.payload = cmsApi.getPayload(cmsButton.target)\n }\n }\n\n if (cmsButton.url && urlId) {\n const urlNode = cmsApi.getNodeById<HtUrlNode>(urlId)\n newButton.url = urlNode.content.url\n }\n\n return newButton\n }\n\n static fromAIAgent(button: {\n id: string\n text: string\n payload?: string\n url?: string\n target?: string\n }): FlowButton {\n const newButton = new FlowButton(button.id)\n newButton.text = button.text\n if (button.url) {\n newButton.url = button.url\n newButton.target = button.target\n } else {\n newButton.payload = button.payload\n }\n return newButton\n }\n\n static fromRating(button: HtRatingButton): FlowButton {\n const newButton = new FlowButton(button.id)\n newButton.text = button.text\n newButton.payload = button.payload\n newButton.target = button.target?.id\n return newButton\n }\n\n static getUrlId(cmsButton: HtButton, locale: string): string | undefined {\n return cmsButton.url.find(url => url.locale === locale)?.id\n }\n\n static getTargetWebview(\n cmsApi: FlowBuilderApi,\n targetId: string\n ): FlowWebview | undefined {\n const targetNode = cmsApi.getNodeById(targetId)\n if (targetNode.type !== HtNodeWithContentType.WEBVIEW) {\n return undefined\n }\n return FlowWebview.fromHubtypeCMS(targetNode)\n }\n\n async trackFlow(botContext: BotContext): Promise<void> {\n if (this.flowWebview) {\n await this.flowWebview.trackFlow(botContext)\n }\n }\n\n async processContent(): Promise<void> {\n return\n }\n\n renderButton(buttonIndex: number, buttonStyle?: HtButtonStyle): JSX.Element {\n if (buttonStyle === HtButtonStyle.QUICK_REPLY) {\n return (\n <Reply key={this.id} payload={this.getButtonPayload(buttonIndex)}>\n {this.text}\n </Reply>\n )\n }\n\n return (\n <Button\n key={this.id}\n url={this.url}\n payload={this.getButtonPayload(buttonIndex)}\n target={this.target}\n webview={this.webview}\n params={this.params}\n >\n {this.text}\n </Button>\n )\n }\n\n private getButtonPayload(buttonIndex: number): string | undefined {\n return this.payload\n ? `${this.payload}${SOURCE_INFO_SEPARATOR}${buttonIndex}`\n : undefined\n }\n}\n"],"names":["Button","Reply","SOURCE_INFO_SEPARATOR","ContentFieldsBase","FlowWebview","HtButtonStyle","HtNodeWithContentType","FlowButton","cmsButton","locale","cmsApi","botContext","urlId","newButton","webview","urlNode","button","url","targetId","targetNode","undefined","buttonIndex","buttonStyle"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { BotContext } from '@botonic/core';
|
|
2
|
-
import { ContentFieldsBase } from './content-fields-base';
|
|
3
|
-
import { HtAiValidationType, type HtCaptureUserInputNode } from './hubtype-fields/capture-user-input';
|
|
2
|
+
import { ContentFieldsBase } from './content-fields-base.js';
|
|
3
|
+
import { HtAiValidationType, type HtCaptureUserInputNode } from './hubtype-fields/capture-user-input.js';
|
|
4
4
|
export declare class FlowCaptureUserInput extends ContentFieldsBase {
|
|
5
5
|
fieldName: string;
|
|
6
6
|
aiValidationType: HtAiValidationType;
|
|
@@ -1,27 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
this.captureFailId = '';
|
|
16
|
-
}
|
|
1
|
+
import { Fragment, jsx } from "react/jsx-runtime";
|
|
2
|
+
import { getFlowBuilderPlugin } from "../utils/get-flow-builder-plugin.js";
|
|
3
|
+
import { ContentFieldsBase } from "./content-fields-base.js";
|
|
4
|
+
import { HtAiValidationType } from "./hubtype-fields/capture-user-input.js";
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class FlowCaptureUserInput extends ContentFieldsBase {
|
|
17
15
|
static fromHubtypeCMS(cmsText) {
|
|
18
16
|
const newCaptureUserInput = new FlowCaptureUserInput(cmsText.id);
|
|
19
17
|
newCaptureUserInput.code = cmsText.code;
|
|
20
18
|
newCaptureUserInput.fieldName = cmsText.content.field_name;
|
|
21
|
-
newCaptureUserInput.aiValidationType =
|
|
22
|
-
|
|
23
|
-
newCaptureUserInput.aiValidationInstructions =
|
|
24
|
-
cmsText.content.ai_validation_instructions || '';
|
|
19
|
+
newCaptureUserInput.aiValidationType = cmsText.content.ai_validation_type || HtAiValidationType.NONE;
|
|
20
|
+
newCaptureUserInput.aiValidationInstructions = cmsText.content.ai_validation_instructions || '';
|
|
25
21
|
newCaptureUserInput.captureSuccessId = cmsText.content.capture_success.id;
|
|
26
22
|
newCaptureUserInput.captureFailId = cmsText.content.capture_fail.id;
|
|
27
23
|
newCaptureUserInput.followUp = undefined;
|
|
@@ -35,11 +31,16 @@ class FlowCaptureUserInput extends content_fields_base_1.ContentFieldsBase {
|
|
|
35
31
|
return;
|
|
36
32
|
}
|
|
37
33
|
toBotonic(botContext) {
|
|
38
|
-
const flowBuilderPlugin =
|
|
34
|
+
const flowBuilderPlugin = getFlowBuilderPlugin(botContext.plugins);
|
|
39
35
|
const cmsApi = flowBuilderPlugin.cmsApi;
|
|
40
36
|
cmsApi.setCaptureUserInputId(this.id);
|
|
41
|
-
return
|
|
37
|
+
return /*#__PURE__*/ jsx(Fragment, {});
|
|
38
|
+
}
|
|
39
|
+
constructor(...args){
|
|
40
|
+
super(...args), this.fieldName = '', this.aiValidationType = HtAiValidationType.NONE, this.aiValidationInstructions = '', this.captureSuccessId = '', this.captureFailId = '';
|
|
42
41
|
}
|
|
43
42
|
}
|
|
44
|
-
|
|
43
|
+
|
|
44
|
+
export { FlowCaptureUserInput };
|
|
45
|
+
|
|
45
46
|
//# sourceMappingURL=flow-capture-user-input.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow-capture-user-input.js","
|
|
1
|
+
{"version":3,"file":"content-fields/flow-capture-user-input.js","sources":["../../../src/content-fields/flow-capture-user-input.tsx"],"sourcesContent":["import type { BotContext } from '@botonic/core'\n\nimport { getFlowBuilderPlugin } from '../utils/get-flow-builder-plugin'\nimport { ContentFieldsBase } from './content-fields-base'\nimport {\n HtAiValidationType,\n type HtCaptureUserInputNode,\n} from './hubtype-fields/capture-user-input'\n\nexport class FlowCaptureUserInput extends ContentFieldsBase {\n public fieldName = ''\n public aiValidationType = HtAiValidationType.NONE\n public aiValidationInstructions = ''\n public captureSuccessId = ''\n public captureFailId = ''\n\n static fromHubtypeCMS(cmsText: HtCaptureUserInputNode): FlowCaptureUserInput {\n const newCaptureUserInput = new FlowCaptureUserInput(cmsText.id)\n newCaptureUserInput.code = cmsText.code\n newCaptureUserInput.fieldName = cmsText.content.field_name\n newCaptureUserInput.aiValidationType =\n cmsText.content.ai_validation_type || HtAiValidationType.NONE\n newCaptureUserInput.aiValidationInstructions =\n cmsText.content.ai_validation_instructions || ''\n newCaptureUserInput.captureSuccessId = cmsText.content.capture_success.id\n newCaptureUserInput.captureFailId = cmsText.content.capture_fail.id\n newCaptureUserInput.followUp = undefined\n\n return newCaptureUserInput\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async trackFlow(_botContext: BotContext): Promise<void> {\n return\n }\n\n async processContent(): Promise<void> {\n return\n }\n\n toBotonic(botContext: BotContext): JSX.Element {\n const flowBuilderPlugin = getFlowBuilderPlugin(botContext.plugins)\n const cmsApi = flowBuilderPlugin.cmsApi\n cmsApi.setCaptureUserInputId(this.id)\n\n return <></>\n }\n}\n"],"names":["getFlowBuilderPlugin","ContentFieldsBase","HtAiValidationType","FlowCaptureUserInput","cmsText","newCaptureUserInput","undefined","_botContext","botContext","flowBuilderPlugin","cmsApi"],"mappings":";;;;;;;;;;AAEuE;AACd;AAIb;AAErC,MAAMG,oBAAoBA,SAASF,iBAAiBA;IAOzD,OAAO,eAAeG,OAA+B,EAAwB;QAC3E,MAAMC,sBAAsB,IAAIF,oBAAoBA,CAACC,QAAQ,EAAE;QAC/DC,oBAAoB,IAAI,GAAGD,QAAQ,IAAI;QACvCC,oBAAoB,SAAS,GAAGD,QAAQ,OAAO,CAAC,UAAU;QAC1DC,oBAAoB,gBAAgB,GAClCD,QAAQ,OAAO,CAAC,kBAAkB,IAAIF,uBAAuB;QAC/DG,oBAAoB,wBAAwB,GAC1CD,QAAQ,OAAO,CAAC,0BAA0B,IAAI;QAChDC,oBAAoB,gBAAgB,GAAGD,QAAQ,OAAO,CAAC,eAAe,CAAC,EAAE;QACzEC,oBAAoB,aAAa,GAAGD,QAAQ,OAAO,CAAC,YAAY,CAAC,EAAE;QACnEC,oBAAoB,QAAQ,GAAGC;QAE/B,OAAOD;IACT;IAEA,6DAA6D;IAC7D,MAAM,UAAUE,WAAuB,EAAiB;QACtD;IACF;IAEA,MAAM,iBAAgC;QACpC;IACF;IAEA,UAAUC,UAAsB,EAAe;QAC7C,MAAMC,oBAAoBT,oBAAoBA,CAACQ,WAAW,OAAO;QACjE,MAAME,SAASD,kBAAkB,MAAM;QACvCC,OAAO,qBAAqB,CAAC,IAAI,CAAC,EAAE;QAEpC,qBAAO;IACT;;QArCK,qBACE,YAAY,SACZ,mBAAmBR,uBAAuB,OAC1C,2BAA2B,SAC3B,mBAAmB,SACnB,gBAAgB;;AAiCzB"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { type BotContext, type CarouselMessage } from '@botonic/core';
|
|
2
2
|
import { type ActionRequest } from '@botonic/react';
|
|
3
|
-
import type { FlowBuilderApi } from '../api';
|
|
4
|
-
import { ContentFieldsBase } from './content-fields-base';
|
|
5
|
-
import { FlowElement } from './flow-element';
|
|
6
|
-
import type { HtCarouselNode } from './hubtype-fields';
|
|
3
|
+
import type { FlowBuilderApi } from '../api.js';
|
|
4
|
+
import { ContentFieldsBase } from './content-fields-base.js';
|
|
5
|
+
import { FlowElement } from './flow-element.js';
|
|
6
|
+
import type { HtCarouselNode } from './hubtype-fields/index.js';
|
|
7
7
|
export declare class FlowCarousel extends ContentFieldsBase {
|
|
8
8
|
whatsappText: string;
|
|
9
9
|
elements: FlowElement[];
|
|
@@ -1,30 +1,35 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { OutputMessageType, isWhatsapp } from "@botonic/core";
|
|
3
|
+
import { Button, CardType, Carousel, Text, WhatsappCTAUrlButton, WhatsappCTAUrlHeaderType, WhatsappInteractiveMediaCarousel } from "@botonic/react";
|
|
4
|
+
import { trackOneContent } from "../tracking.js";
|
|
5
|
+
import { ContentFieldsBase } from "./content-fields-base.js";
|
|
6
|
+
import { FlowElement } from "./flow-element.js";
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
10
20
|
const DEFAULT_TEXT_MESSAGE = 'These are the options';
|
|
11
|
-
class FlowCarousel extends
|
|
12
|
-
constructor() {
|
|
13
|
-
super(...arguments);
|
|
14
|
-
this.whatsappText = '';
|
|
15
|
-
this.elements = [];
|
|
16
|
-
}
|
|
21
|
+
class FlowCarousel extends ContentFieldsBase {
|
|
17
22
|
static fromHubtypeCMS(component, locale, cmsApi, botContext) {
|
|
18
23
|
const newCarousel = new FlowCarousel(component.id);
|
|
19
24
|
newCarousel.code = component.code;
|
|
20
|
-
newCarousel.elements = component.content.elements.map(element
|
|
25
|
+
newCarousel.elements = component.content.elements.map((element)=>FlowElement.fromHubtypeCMS(element, locale, cmsApi, botContext));
|
|
21
26
|
newCarousel.whatsappText = FlowCarousel.getTextByLocale(locale, component.content.whatsapp_text);
|
|
22
27
|
newCarousel.followUp = component.follow_up;
|
|
23
28
|
return newCarousel;
|
|
24
29
|
}
|
|
25
30
|
async trackFlow(request) {
|
|
26
|
-
await
|
|
27
|
-
for (const element of this.elements)
|
|
31
|
+
await trackOneContent(request, this);
|
|
32
|
+
for (const element of this.elements){
|
|
28
33
|
await element.trackFlow(request);
|
|
29
34
|
}
|
|
30
35
|
}
|
|
@@ -35,78 +40,95 @@ class FlowCarousel extends content_fields_base_1.ContentFieldsBase {
|
|
|
35
40
|
return element.title;
|
|
36
41
|
}
|
|
37
42
|
static createCardsFromElements(elements) {
|
|
38
|
-
return elements.map(element
|
|
43
|
+
return elements.map((element)=>{
|
|
39
44
|
const text = FlowCarousel.generateWhatsappElementText(element);
|
|
40
45
|
if (element.button?.url) {
|
|
41
46
|
return {
|
|
42
47
|
imageLink: element.image,
|
|
43
48
|
text,
|
|
44
|
-
type:
|
|
49
|
+
type: CardType.CTA_URL,
|
|
45
50
|
action: {
|
|
46
51
|
buttonText: element.button.text,
|
|
47
|
-
buttonUrl: element.button.url
|
|
48
|
-
}
|
|
52
|
+
buttonUrl: element.button.url
|
|
53
|
+
}
|
|
49
54
|
};
|
|
50
55
|
}
|
|
51
56
|
if (element.button?.payload) {
|
|
52
57
|
return {
|
|
53
58
|
imageLink: element.image,
|
|
54
59
|
text,
|
|
55
|
-
type:
|
|
60
|
+
type: CardType.QUICK_REPLY,
|
|
56
61
|
action: {
|
|
57
62
|
buttons: [
|
|
58
63
|
{
|
|
59
64
|
text: element.button.text,
|
|
60
|
-
payload: element.button.payload
|
|
61
|
-
}
|
|
62
|
-
]
|
|
63
|
-
}
|
|
65
|
+
payload: element.button.payload
|
|
66
|
+
}
|
|
67
|
+
]
|
|
68
|
+
}
|
|
64
69
|
};
|
|
65
70
|
}
|
|
66
71
|
throw new Error('Element must have a url or a payload');
|
|
67
72
|
});
|
|
68
73
|
}
|
|
69
74
|
static fromAIAgent(id, carouselMessage, botContext) {
|
|
70
|
-
if (
|
|
71
|
-
|
|
72
|
-
if (carouselMessage.content.elements.length === 1 &&
|
|
73
|
-
carouselMessage.content.elements[0].button?.url) {
|
|
75
|
+
if (isWhatsapp(botContext.session) && FlowCarousel.areElementsValidForWhatsapp(carouselMessage)) {
|
|
76
|
+
if (carouselMessage.content.elements.length === 1 && carouselMessage.content.elements[0].button?.url) {
|
|
74
77
|
const element = carouselMessage.content.elements[0];
|
|
75
78
|
const buttonText = element.button.text;
|
|
76
79
|
const url = carouselMessage.content.elements[0].button.url;
|
|
77
80
|
// TODO: Add a new fromAIAgent method in FlowWhatsappCtaUrlButtonNode to create a WhatsappCTAUrlButton from an AIAgent message
|
|
78
|
-
return
|
|
81
|
+
return /*#__PURE__*/ jsx(WhatsappCTAUrlButton, {
|
|
82
|
+
body: element.title,
|
|
83
|
+
headerType: WhatsappCTAUrlHeaderType.Image,
|
|
84
|
+
headerImage: element.image,
|
|
85
|
+
footer: element.subtitle,
|
|
86
|
+
displayText: buttonText,
|
|
87
|
+
url: url
|
|
88
|
+
}, id);
|
|
79
89
|
}
|
|
80
|
-
if (carouselMessage.content.elements.length === 1 &&
|
|
81
|
-
carouselMessage.content.elements[0].button?.payload) {
|
|
90
|
+
if (carouselMessage.content.elements.length === 1 && carouselMessage.content.elements[0].button?.payload) {
|
|
82
91
|
const element = carouselMessage.content.elements[0];
|
|
83
92
|
const text = FlowCarousel.generateWhatsappElementText(element);
|
|
84
93
|
const buttonPayload = carouselMessage.content.elements[0].button.payload;
|
|
85
94
|
const buttonText = carouselMessage.content.elements[0].button.text;
|
|
86
|
-
return
|
|
95
|
+
return /*#__PURE__*/ jsxs(Text, {
|
|
96
|
+
children: [
|
|
97
|
+
text,
|
|
98
|
+
/*#__PURE__*/ jsx(Button, {
|
|
99
|
+
payload: buttonPayload,
|
|
100
|
+
children: buttonText
|
|
101
|
+
})
|
|
102
|
+
]
|
|
103
|
+
});
|
|
87
104
|
}
|
|
88
|
-
const elements = carouselMessage.content.elements.map((element, index)
|
|
89
|
-
return
|
|
105
|
+
const elements = carouselMessage.content.elements.map((element, index)=>FlowElement.fromAIAgent(`${id}-element-${index}`, element));
|
|
106
|
+
return /*#__PURE__*/ jsx(WhatsappInteractiveMediaCarousel, {
|
|
107
|
+
cards: FlowCarousel.createCardsFromElements(elements),
|
|
108
|
+
textMessage: carouselMessage.content.text || DEFAULT_TEXT_MESSAGE
|
|
109
|
+
});
|
|
90
110
|
}
|
|
91
|
-
return
|
|
111
|
+
return /*#__PURE__*/ jsx(Carousel, {
|
|
112
|
+
children: carouselMessage.content.elements.map((element, index)=>FlowElement.fromAIAgent(`${id}-element-${index}`, element).renderElement(id))
|
|
113
|
+
}, id);
|
|
92
114
|
}
|
|
93
115
|
toCarouselMessage(elements) {
|
|
94
116
|
return {
|
|
95
|
-
type:
|
|
117
|
+
type: OutputMessageType.Carousel,
|
|
96
118
|
content: {
|
|
97
|
-
elements: elements.map(element
|
|
119
|
+
elements: elements.map((element)=>{
|
|
98
120
|
return {
|
|
99
121
|
button: {
|
|
100
122
|
text: element.button?.text || '',
|
|
101
123
|
payload: element.button?.payload,
|
|
102
|
-
url: element.button?.url
|
|
124
|
+
url: element.button?.url
|
|
103
125
|
},
|
|
104
126
|
title: element.title,
|
|
105
127
|
subtitle: element.subtitle,
|
|
106
|
-
image: element.image
|
|
128
|
+
image: element.image
|
|
107
129
|
};
|
|
108
|
-
})
|
|
109
|
-
}
|
|
130
|
+
})
|
|
131
|
+
}
|
|
110
132
|
};
|
|
111
133
|
}
|
|
112
134
|
async processContent(botContext) {
|
|
@@ -116,37 +138,56 @@ class FlowCarousel extends content_fields_base_1.ContentFieldsBase {
|
|
|
116
138
|
}
|
|
117
139
|
toBotonic(botContext) {
|
|
118
140
|
const carouselMessage = this.toCarouselMessage(this.elements);
|
|
119
|
-
if (
|
|
120
|
-
FlowCarousel.areElementsValidForWhatsapp(carouselMessage)) {
|
|
141
|
+
if (isWhatsapp(botContext.session) && FlowCarousel.areElementsValidForWhatsapp(carouselMessage)) {
|
|
121
142
|
if (this.elements.length === 1 && this.elements[0].button?.url) {
|
|
122
143
|
const element = this.elements[0];
|
|
123
144
|
const buttonText = this.elements[0].button.text;
|
|
124
145
|
const url = this.elements[0].button.url;
|
|
125
|
-
return
|
|
146
|
+
return /*#__PURE__*/ jsx(WhatsappCTAUrlButton, {
|
|
147
|
+
body: element.title,
|
|
148
|
+
headerType: WhatsappCTAUrlHeaderType.Image,
|
|
149
|
+
headerImage: element.image,
|
|
150
|
+
displayText: buttonText,
|
|
151
|
+
url: url
|
|
152
|
+
}, this.id);
|
|
126
153
|
}
|
|
127
|
-
if (this.elements.length === 1 &&
|
|
128
|
-
this.elements[0].button &&
|
|
129
|
-
this.elements[0].button?.payload) {
|
|
154
|
+
if (this.elements.length === 1 && this.elements[0].button && this.elements[0].button?.payload) {
|
|
130
155
|
const element = this.elements[0];
|
|
131
156
|
const text = FlowCarousel.generateWhatsappElementText(element);
|
|
132
157
|
const buttonPayload = this.elements[0].button.payload;
|
|
133
158
|
const buttonText = this.elements[0].button.text;
|
|
134
|
-
return
|
|
159
|
+
return /*#__PURE__*/ jsxs(Text, {
|
|
160
|
+
children: [
|
|
161
|
+
text,
|
|
162
|
+
/*#__PURE__*/ jsx(Button, {
|
|
163
|
+
payload: buttonPayload,
|
|
164
|
+
children: buttonText
|
|
165
|
+
})
|
|
166
|
+
]
|
|
167
|
+
});
|
|
135
168
|
}
|
|
136
|
-
return
|
|
169
|
+
return /*#__PURE__*/ jsx(WhatsappInteractiveMediaCarousel, {
|
|
170
|
+
cards: FlowCarousel.createCardsFromElements(this.elements),
|
|
137
171
|
// TODO: Add the text message in flow builder frontend and take it from the carousel node with different languages
|
|
138
|
-
textMessage: this.whatsappText || DEFAULT_TEXT_MESSAGE
|
|
172
|
+
textMessage: this.whatsappText || DEFAULT_TEXT_MESSAGE
|
|
173
|
+
});
|
|
139
174
|
}
|
|
140
|
-
return
|
|
175
|
+
return /*#__PURE__*/ jsx(Carousel, {
|
|
176
|
+
children: this.elements.map((element)=>element.renderElement(this.id))
|
|
177
|
+
}, this.id);
|
|
178
|
+
}
|
|
179
|
+
constructor(...args){
|
|
180
|
+
super(...args), this.whatsappText = '', this.elements = [];
|
|
141
181
|
}
|
|
142
182
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
const isValid = carouselMessage.content.elements.every(element => element.button.url) ||
|
|
146
|
-
carouselMessage.content.elements.every(element => element.button.payload);
|
|
183
|
+
FlowCarousel.areElementsValidForWhatsapp = (carouselMessage)=>{
|
|
184
|
+
const isValid = carouselMessage.content.elements.every((element)=>element.button.url) || carouselMessage.content.elements.every((element)=>element.button.payload);
|
|
147
185
|
if (!isValid) {
|
|
148
186
|
console.warn('Cannot use WhatsappInteractiveMediaCarousel for Whatsapp created by AIAgent, all elements must have either url or payload.', carouselMessage.content);
|
|
149
187
|
}
|
|
150
188
|
return isValid;
|
|
151
189
|
};
|
|
190
|
+
|
|
191
|
+
export { FlowCarousel };
|
|
192
|
+
|
|
152
193
|
//# sourceMappingURL=flow-carousel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow-carousel.js","sourceRoot":"","sources":["../../../src/content-fields/flow-carousel.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"content-fields/flow-carousel.js","sources":["../../../src/content-fields/flow-carousel.tsx"],"sourcesContent":["import {\n type BotContext,\n type CarouselMessage,\n isWhatsapp,\n OutputMessageType,\n} from '@botonic/core'\nimport {\n type ActionRequest,\n Button,\n CardType,\n Carousel,\n Text,\n WhatsappCTAUrlButton,\n WhatsappCTAUrlHeaderType,\n type WhatsappInteractiveMediaCard,\n WhatsappInteractiveMediaCarousel,\n} from '@botonic/react'\n\nimport type { FlowBuilderApi } from '../api'\nimport { trackOneContent } from '../tracking'\nimport { ContentFieldsBase } from './content-fields-base'\nimport { FlowElement } from './flow-element'\nimport type { HtCarouselNode } from './hubtype-fields'\n\nconst DEFAULT_TEXT_MESSAGE = 'These are the options'\nexport class FlowCarousel extends ContentFieldsBase {\n public whatsappText: string = ''\n public elements: FlowElement[] = []\n\n static fromHubtypeCMS(\n component: HtCarouselNode,\n locale: string,\n cmsApi: FlowBuilderApi,\n botContext: BotContext\n ): FlowCarousel {\n const newCarousel = new FlowCarousel(component.id)\n newCarousel.code = component.code\n newCarousel.elements = component.content.elements.map(element =>\n FlowElement.fromHubtypeCMS(element, locale, cmsApi, botContext)\n )\n newCarousel.whatsappText = FlowCarousel.getTextByLocale(\n locale,\n component.content.whatsapp_text\n )\n newCarousel.followUp = component.follow_up\n\n return newCarousel\n }\n\n async trackFlow(request: ActionRequest): Promise<void> {\n await trackOneContent(request, this)\n for (const element of this.elements) {\n await element.trackFlow(request)\n }\n }\n\n static areElementsValidForWhatsapp = (carouselMessage: CarouselMessage) => {\n const isValid =\n carouselMessage.content.elements.every(element => element.button.url) ||\n carouselMessage.content.elements.every(element => element.button.payload)\n\n if (!isValid) {\n console.warn(\n 'Cannot use WhatsappInteractiveMediaCarousel for Whatsapp created by AIAgent, all elements must have either url or payload.',\n carouselMessage.content\n )\n }\n return isValid\n }\n\n static generateWhatsappElementText(element: {\n title: string\n subtitle?: string\n }): string {\n if (element.subtitle) {\n return `*${element.title}*\\n${element.subtitle}`\n }\n return element.title\n }\n\n private static createCardsFromElements(\n elements: FlowElement[]\n ): WhatsappInteractiveMediaCard[] {\n return elements.map(element => {\n const text = FlowCarousel.generateWhatsappElementText(element)\n\n if (element.button?.url) {\n return {\n imageLink: element.image,\n text,\n type: CardType.CTA_URL as const,\n action: {\n buttonText: element.button.text,\n buttonUrl: element.button.url,\n },\n }\n }\n if (element.button?.payload) {\n return {\n imageLink: element.image,\n text,\n type: CardType.QUICK_REPLY as const,\n action: {\n buttons: [\n {\n text: element.button.text,\n payload: element.button.payload,\n },\n ],\n },\n }\n }\n throw new Error('Element must have a url or a payload')\n })\n }\n\n static fromAIAgent(\n id: string,\n carouselMessage: CarouselMessage,\n botContext: ActionRequest\n ): JSX.Element {\n if (\n isWhatsapp(botContext.session) &&\n FlowCarousel.areElementsValidForWhatsapp(carouselMessage)\n ) {\n if (\n carouselMessage.content.elements.length === 1 &&\n carouselMessage.content.elements[0].button?.url\n ) {\n const element = carouselMessage.content.elements[0]\n const buttonText = element.button.text\n const url = carouselMessage.content.elements[0].button.url\n // TODO: Add a new fromAIAgent method in FlowWhatsappCtaUrlButtonNode to create a WhatsappCTAUrlButton from an AIAgent message\n return (\n <WhatsappCTAUrlButton\n key={id}\n body={element.title}\n headerType={WhatsappCTAUrlHeaderType.Image}\n headerImage={element.image}\n footer={element.subtitle}\n displayText={buttonText}\n url={url}\n />\n )\n }\n\n if (\n carouselMessage.content.elements.length === 1 &&\n carouselMessage.content.elements[0].button?.payload\n ) {\n const element = carouselMessage.content.elements[0]\n const text = FlowCarousel.generateWhatsappElementText(element)\n const buttonPayload = carouselMessage.content.elements[0].button.payload\n const buttonText = carouselMessage.content.elements[0].button.text\n\n return (\n <Text>\n {text}\n <Button payload={buttonPayload}>{buttonText}</Button>\n </Text>\n )\n }\n\n const elements = carouselMessage.content.elements.map((element, index) =>\n FlowElement.fromAIAgent(`${id}-element-${index}`, element)\n )\n return (\n <WhatsappInteractiveMediaCarousel\n cards={FlowCarousel.createCardsFromElements(elements)}\n textMessage={carouselMessage.content.text || DEFAULT_TEXT_MESSAGE}\n />\n )\n }\n return (\n <Carousel key={id}>\n {carouselMessage.content.elements.map((element, index) =>\n FlowElement.fromAIAgent(\n `${id}-element-${index}`,\n element\n ).renderElement(id)\n )}\n </Carousel>\n )\n }\n\n private toCarouselMessage(elements: FlowElement[]): CarouselMessage {\n return {\n type: OutputMessageType.Carousel,\n content: {\n elements: elements.map(element => {\n return {\n button: {\n text: element.button?.text || '',\n payload: element.button?.payload,\n url: element.button?.url,\n },\n title: element.title,\n subtitle: element.subtitle,\n image: element.image,\n }\n }),\n },\n }\n }\n\n async processContent(botContext: BotContext): Promise<void> {\n await this.filterContent(botContext, this)\n await this.trackFlow(botContext)\n return\n }\n\n toBotonic(botContext: BotContext): JSX.Element {\n const carouselMessage = this.toCarouselMessage(this.elements)\n if (\n isWhatsapp(botContext.session) &&\n FlowCarousel.areElementsValidForWhatsapp(carouselMessage)\n ) {\n if (this.elements.length === 1 && this.elements[0].button?.url) {\n const element = this.elements[0]\n const buttonText = this.elements[0].button.text\n const url = this.elements[0].button.url\n\n return (\n <WhatsappCTAUrlButton\n key={this.id}\n body={element.title}\n headerType={WhatsappCTAUrlHeaderType.Image}\n headerImage={element.image}\n displayText={buttonText}\n url={url}\n />\n )\n }\n\n if (\n this.elements.length === 1 &&\n this.elements[0].button &&\n this.elements[0].button?.payload\n ) {\n const element = this.elements[0]\n const text = FlowCarousel.generateWhatsappElementText(element)\n const buttonPayload = this.elements[0].button.payload\n const buttonText = this.elements[0].button.text\n\n return (\n <Text>\n {text}\n <Button payload={buttonPayload}>{buttonText}</Button>\n </Text>\n )\n }\n\n return (\n <WhatsappInteractiveMediaCarousel\n cards={FlowCarousel.createCardsFromElements(this.elements)}\n // TODO: Add the text message in flow builder frontend and take it from the carousel node with different languages\n textMessage={this.whatsappText || DEFAULT_TEXT_MESSAGE}\n />\n )\n }\n return (\n <Carousel key={this.id}>\n {this.elements.map(element => element.renderElement(this.id))}\n </Carousel>\n )\n }\n}\n"],"names":["isWhatsapp","OutputMessageType","Button","CardType","Carousel","Text","WhatsappCTAUrlButton","WhatsappCTAUrlHeaderType","WhatsappInteractiveMediaCarousel","trackOneContent","ContentFieldsBase","FlowElement","DEFAULT_TEXT_MESSAGE","FlowCarousel","component","locale","cmsApi","botContext","newCarousel","element","request","elements","text","Error","id","carouselMessage","buttonText","url","buttonPayload","index","isValid","console"],"mappings":";;;;;;;;;;;;;;AAKsB;AAWC;AAGsB;AACY;AACb;AAG5C,MAAMY,oBAAoBA,GAAG;AACtB,MAAMC,YAAYA,SAASH,iBAAiBA;IAIjD,OAAO,eACLI,SAAyB,EACzBC,MAAc,EACdC,MAAsB,EACtBC,UAAsB,EACR;QACd,MAAMC,cAAc,IAAIL,YAAYA,CAACC,UAAU,EAAE;QACjDI,YAAY,IAAI,GAAGJ,UAAU,IAAI;QACjCI,YAAY,QAAQ,GAAGJ,UAAU,OAAO,CAAC,QAAQ,CAAC,GAAG,CAACK,CAAAA,UACpDR,0BAA0B,CAACQ,SAASJ,QAAQC,QAAQC;QAEtDC,YAAY,YAAY,GAAGL,YAAYA,CAAC,eAAe,CACrDE,QACAD,UAAU,OAAO,CAAC,aAAa;QAEjCI,YAAY,QAAQ,GAAGJ,UAAU,SAAS;QAE1C,OAAOI;IACT;IAEA,MAAM,UAAUE,OAAsB,EAAiB;QACrD,MAAMX,eAAeA,CAACW,SAAS,IAAI;QACnC,KAAK,MAAMD,WAAW,IAAI,CAAC,QAAQ,CAAE;YACnC,MAAMA,QAAQ,SAAS,CAACC;QAC1B;IACF;IAgBA,OAAO,4BAA4BD,OAGlC,EAAU;QACT,IAAIA,QAAQ,QAAQ,EAAE;YACpB,OAAO,CAAC,CAAC,EAAEA,QAAQ,KAAK,CAAC,GAAG,EAAEA,QAAQ,QAAQ,EAAE;QAClD;QACA,OAAOA,QAAQ,KAAK;IACtB;IAEA,OAAe,wBACbE,QAAuB,EACS;QAChC,OAAOA,SAAS,GAAG,CAACF,CAAAA;YAClB,MAAMG,OAAOT,YAAYA,CAAC,2BAA2B,CAACM;YAEtD,IAAIA,QAAQ,MAAM,EAAE,KAAK;gBACvB,OAAO;oBACL,WAAWA,QAAQ,KAAK;oBACxBG;oBACA,MAAMnB,gBAAgB;oBACtB,QAAQ;wBACN,YAAYgB,QAAQ,MAAM,CAAC,IAAI;wBAC/B,WAAWA,QAAQ,MAAM,CAAC,GAAG;oBAC/B;gBACF;YACF;YACA,IAAIA,QAAQ,MAAM,EAAE,SAAS;gBAC3B,OAAO;oBACL,WAAWA,QAAQ,KAAK;oBACxBG;oBACA,MAAMnB,oBAAoB;oBAC1B,QAAQ;wBACN,SAAS;4BACP;gCACE,MAAMgB,QAAQ,MAAM,CAAC,IAAI;gCACzB,SAASA,QAAQ,MAAM,CAAC,OAAO;4BACjC;yBACD;oBACH;gBACF;YACF;YACA,MAAM,IAAII,MAAM;QAClB;IACF;IAEA,OAAO,YACLC,EAAU,EACVC,eAAgC,EAChCR,UAAyB,EACZ;QACb,IACEjB,UAAUA,CAACiB,WAAW,OAAO,KAC7BJ,YAAYA,CAAC,2BAA2B,CAACY,kBACzC;YACA,IACEA,gBAAgB,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,KAC5CA,gBAAgB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,KAC5C;gBACA,MAAMN,UAAUM,gBAAgB,OAAO,CAAC,QAAQ,CAAC,EAAE;gBACnD,MAAMC,aAAaP,QAAQ,MAAM,CAAC,IAAI;gBACtC,MAAMQ,MAAMF,gBAAgB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG;gBAC1D,8HAA8H;gBAC9H,qBACE,IAACnB,oBAAoBA;oBAEnB,MAAMa,QAAQ,KAAK;oBACnB,YAAYZ,8BAA8B;oBAC1C,aAAaY,QAAQ,KAAK;oBAC1B,QAAQA,QAAQ,QAAQ;oBACxB,aAAaO;oBACb,KAAKC;mBANAH;YASX;YAEA,IACEC,gBAAgB,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,KAC5CA,gBAAgB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,SAC5C;gBACA,MAAMN,UAAUM,gBAAgB,OAAO,CAAC,QAAQ,CAAC,EAAE;gBACnD,MAAMH,OAAOT,YAAYA,CAAC,2BAA2B,CAACM;gBACtD,MAAMS,gBAAgBH,gBAAgB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO;gBACxE,MAAMC,aAAaD,gBAAgB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI;gBAElE,qBACE,KAACpB,IAAIA;;wBACFiB;sCACD,IAACpB,MAAMA;4BAAC,SAAS0B;sCAAgBF;;;;YAGvC;YAEA,MAAML,WAAWI,gBAAgB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAACN,SAASU,QAC9DlB,uBAAuB,CAAC,GAAGa,GAAG,SAAS,EAAEK,OAAO,EAAEV;YAEpD,qBACE,IAACX,gCAAgCA;gBAC/B,OAAOK,YAAYA,CAAC,uBAAuB,CAACQ;gBAC5C,aAAaI,gBAAgB,OAAO,CAAC,IAAI,IAAIb,oBAAoBA;;QAGvE;QACA,qBACE,IAACR,QAAQA;sBACNqB,gBAAgB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAACN,SAASU,QAC9ClB,uBAAuB,CACrB,GAAGa,GAAG,SAAS,EAAEK,OAAO,EACxBV,SACA,aAAa,CAACK;WALLA;IASnB;IAEQ,kBAAkBH,QAAuB,EAAmB;QAClE,OAAO;YACL,MAAMpB,0BAA0B;YAChC,SAAS;gBACP,UAAUoB,SAAS,GAAG,CAACF,CAAAA;oBACrB,OAAO;wBACL,QAAQ;4BACN,MAAMA,QAAQ,MAAM,EAAE,QAAQ;4BAC9B,SAASA,QAAQ,MAAM,EAAE;4BACzB,KAAKA,QAAQ,MAAM,EAAE;wBACvB;wBACA,OAAOA,QAAQ,KAAK;wBACpB,UAAUA,QAAQ,QAAQ;wBAC1B,OAAOA,QAAQ,KAAK;oBACtB;gBACF;YACF;QACF;IACF;IAEA,MAAM,eAAeF,UAAsB,EAAiB;QAC1D,MAAM,IAAI,CAAC,aAAa,CAACA,YAAY,IAAI;QACzC,MAAM,IAAI,CAAC,SAAS,CAACA;QACrB;IACF;IAEA,UAAUA,UAAsB,EAAe;QAC7C,MAAMQ,kBAAkB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ;QAC5D,IACEzB,UAAUA,CAACiB,WAAW,OAAO,KAC7BJ,YAAYA,CAAC,2BAA2B,CAACY,kBACzC;YACA,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK;gBAC9D,MAAMN,UAAU,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAChC,MAAMO,aAAa,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI;gBAC/C,MAAMC,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG;gBAEvC,qBACE,IAACrB,oBAAoBA;oBAEnB,MAAMa,QAAQ,KAAK;oBACnB,YAAYZ,8BAA8B;oBAC1C,aAAaY,QAAQ,KAAK;oBAC1B,aAAaO;oBACb,KAAKC;mBALA,IAAI,CAAC,EAAE;YAQlB;YAEA,IACE,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,KACzB,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,IACvB,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,SACzB;gBACA,MAAMR,UAAU,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAChC,MAAMG,OAAOT,YAAYA,CAAC,2BAA2B,CAACM;gBACtD,MAAMS,gBAAgB,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO;gBACrD,MAAMF,aAAa,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI;gBAE/C,qBACE,KAACrB,IAAIA;;wBACFiB;sCACD,IAACpB,MAAMA;4BAAC,SAAS0B;sCAAgBF;;;;YAGvC;YAEA,qBACE,IAAClB,gCAAgCA;gBAC/B,OAAOK,YAAYA,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ;gBACzD,kHAAkH;gBAClH,aAAa,IAAI,CAAC,YAAY,IAAID,oBAAoBA;;QAG5D;QACA,qBACE,IAACR,QAAQA;sBACN,IAAI,CAAC,QAAQ,CAAC,GAAG,CAACe,CAAAA,UAAWA,QAAQ,aAAa,CAAC,IAAI,CAAC,EAAE;WAD9C,IAAI,CAAC,EAAE;IAI1B;;QAhPK,qBACE,eAAuB,SACvB,WAA0B,EAAE;;AA+OrC;AAjPaN,YAAYA,CA+BhB,8BAA8B,CAACY;IACpC,MAAMK,UACJL,gBAAgB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAACN,CAAAA,UAAWA,QAAQ,MAAM,CAAC,GAAG,KACpEM,gBAAgB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAACN,CAAAA,UAAWA,QAAQ,MAAM,CAAC,OAAO;IAE1E,IAAI,CAACW,SAAS;QACZC,QAAQ,IAAI,CACV,8HACAN,gBAAgB,OAAO;IAE3B;IACA,OAAOK;AACT"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type BotContext } from '@botonic/core';
|
|
2
|
-
import { ContentFieldsBase } from './content-fields-base';
|
|
3
|
-
import type { HtChannelConditionalNode } from './hubtype-fields/channel-conditional';
|
|
4
|
-
import type { HtFunctionResult } from './hubtype-fields/function';
|
|
2
|
+
import { ContentFieldsBase } from './content-fields-base.js';
|
|
3
|
+
import type { HtChannelConditionalNode } from './hubtype-fields/channel-conditional.js';
|
|
4
|
+
import type { HtFunctionResult } from './hubtype-fields/function.js';
|
|
5
5
|
export declare class FlowChannelConditional extends ContentFieldsBase {
|
|
6
6
|
resultMapping: HtFunctionResult[];
|
|
7
7
|
conditionalResult?: HtFunctionResult;
|