@nyaruka/temba-components 0.131.1 → 0.131.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (427) hide show
  1. package/.github/workflows/publish.yml +4 -1
  2. package/CHANGELOG.md +61 -1
  3. package/demo/data/flows/food-order.json +2 -2
  4. package/demo/data/flows/sample-flow.json +74 -125
  5. package/dist/static/svg/index.svg +1 -1
  6. package/dist/temba-components.js +1155 -618
  7. package/dist/temba-components.js.map +1 -1
  8. package/out-tsc/src/Icons.js +4 -1
  9. package/out-tsc/src/Icons.js.map +1 -1
  10. package/out-tsc/src/events.js.map +1 -1
  11. package/out-tsc/src/flow/CanvasMenu.js +200 -0
  12. package/out-tsc/src/flow/CanvasMenu.js.map +1 -0
  13. package/out-tsc/src/flow/CanvasNode.js +327 -19
  14. package/out-tsc/src/flow/CanvasNode.js.map +1 -1
  15. package/out-tsc/src/flow/Editor.js +562 -66
  16. package/out-tsc/src/flow/Editor.js.map +1 -1
  17. package/out-tsc/src/flow/NodeEditor.js +240 -93
  18. package/out-tsc/src/flow/NodeEditor.js.map +1 -1
  19. package/out-tsc/src/flow/NodeTypeSelector.js +499 -0
  20. package/out-tsc/src/flow/NodeTypeSelector.js.map +1 -0
  21. package/out-tsc/src/flow/actions/add_contact_groups.js +3 -3
  22. package/out-tsc/src/flow/actions/add_contact_groups.js.map +1 -1
  23. package/out-tsc/src/flow/actions/add_contact_urn.js +62 -4
  24. package/out-tsc/src/flow/actions/add_contact_urn.js.map +1 -1
  25. package/out-tsc/src/flow/actions/add_input_labels.js +3 -3
  26. package/out-tsc/src/flow/actions/add_input_labels.js.map +1 -1
  27. package/out-tsc/src/flow/actions/play_audio.js +2 -2
  28. package/out-tsc/src/flow/actions/play_audio.js.map +1 -1
  29. package/out-tsc/src/flow/actions/remove_contact_groups.js +6 -5
  30. package/out-tsc/src/flow/actions/remove_contact_groups.js.map +1 -1
  31. package/out-tsc/src/flow/actions/request_optin.js +2 -2
  32. package/out-tsc/src/flow/actions/request_optin.js.map +1 -1
  33. package/out-tsc/src/flow/actions/say_msg.js +2 -2
  34. package/out-tsc/src/flow/actions/say_msg.js.map +1 -1
  35. package/out-tsc/src/flow/actions/send_broadcast.js +76 -23
  36. package/out-tsc/src/flow/actions/send_broadcast.js.map +1 -1
  37. package/out-tsc/src/flow/actions/send_email.js +4 -5
  38. package/out-tsc/src/flow/actions/send_email.js.map +1 -1
  39. package/out-tsc/src/flow/actions/send_msg.js +9 -19
  40. package/out-tsc/src/flow/actions/send_msg.js.map +1 -1
  41. package/out-tsc/src/flow/actions/set_contact_channel.js +5 -9
  42. package/out-tsc/src/flow/actions/set_contact_channel.js.map +1 -1
  43. package/out-tsc/src/flow/actions/set_contact_field.js +19 -20
  44. package/out-tsc/src/flow/actions/set_contact_field.js.map +1 -1
  45. package/out-tsc/src/flow/actions/set_contact_language.js +2 -2
  46. package/out-tsc/src/flow/actions/set_contact_language.js.map +1 -1
  47. package/out-tsc/src/flow/actions/set_contact_name.js +2 -12
  48. package/out-tsc/src/flow/actions/set_contact_name.js.map +1 -1
  49. package/out-tsc/src/flow/actions/set_contact_status.js +2 -2
  50. package/out-tsc/src/flow/actions/set_contact_status.js.map +1 -1
  51. package/out-tsc/src/flow/actions/set_run_result.js +3 -3
  52. package/out-tsc/src/flow/actions/set_run_result.js.map +1 -1
  53. package/out-tsc/src/flow/actions/start_session.js +180 -6
  54. package/out-tsc/src/flow/actions/start_session.js.map +1 -1
  55. package/out-tsc/src/flow/config.js +11 -15
  56. package/out-tsc/src/flow/config.js.map +1 -1
  57. package/out-tsc/src/flow/currencies.js +45 -0
  58. package/out-tsc/src/flow/currencies.js.map +1 -0
  59. package/out-tsc/src/flow/nodes/shared-rules.js +257 -0
  60. package/out-tsc/src/flow/nodes/shared-rules.js.map +1 -0
  61. package/out-tsc/src/flow/nodes/shared.js +17 -0
  62. package/out-tsc/src/flow/nodes/shared.js.map +1 -0
  63. package/out-tsc/src/flow/nodes/split_by_airtime.js +205 -5
  64. package/out-tsc/src/flow/nodes/split_by_airtime.js.map +1 -1
  65. package/out-tsc/src/flow/nodes/split_by_contact_field.js +147 -3
  66. package/out-tsc/src/flow/nodes/split_by_contact_field.js.map +1 -1
  67. package/out-tsc/src/flow/nodes/split_by_expression.js +68 -2
  68. package/out-tsc/src/flow/nodes/split_by_expression.js.map +1 -1
  69. package/out-tsc/src/flow/nodes/split_by_groups.js +12 -9
  70. package/out-tsc/src/flow/nodes/split_by_groups.js.map +1 -1
  71. package/out-tsc/src/flow/nodes/split_by_intent.js +7 -0
  72. package/out-tsc/src/flow/nodes/split_by_intent.js.map +1 -0
  73. package/out-tsc/src/flow/nodes/split_by_llm.js +3 -2
  74. package/out-tsc/src/flow/nodes/split_by_llm.js.map +1 -1
  75. package/out-tsc/src/flow/nodes/split_by_llm_categorize.js +2 -2
  76. package/out-tsc/src/flow/nodes/split_by_llm_categorize.js.map +1 -1
  77. package/out-tsc/src/flow/nodes/split_by_random.js +3 -3
  78. package/out-tsc/src/flow/nodes/split_by_random.js.map +1 -1
  79. package/out-tsc/src/flow/nodes/split_by_resthook.js +108 -0
  80. package/out-tsc/src/flow/nodes/split_by_resthook.js.map +1 -0
  81. package/out-tsc/src/flow/nodes/split_by_run_result.js +206 -3
  82. package/out-tsc/src/flow/nodes/split_by_run_result.js.map +1 -1
  83. package/out-tsc/src/flow/nodes/split_by_scheme.js +153 -2
  84. package/out-tsc/src/flow/nodes/split_by_scheme.js.map +1 -1
  85. package/out-tsc/src/flow/nodes/split_by_subflow.js +6 -4
  86. package/out-tsc/src/flow/nodes/split_by_subflow.js.map +1 -1
  87. package/out-tsc/src/flow/nodes/split_by_ticket.js +3 -2
  88. package/out-tsc/src/flow/nodes/split_by_ticket.js.map +1 -1
  89. package/out-tsc/src/flow/nodes/split_by_webhook.js +3 -2
  90. package/out-tsc/src/flow/nodes/split_by_webhook.js.map +1 -1
  91. package/out-tsc/src/flow/nodes/wait_for_audio.js +2 -2
  92. package/out-tsc/src/flow/nodes/wait_for_audio.js.map +1 -1
  93. package/out-tsc/src/flow/nodes/wait_for_digits.js +2 -2
  94. package/out-tsc/src/flow/nodes/wait_for_digits.js.map +1 -1
  95. package/out-tsc/src/flow/nodes/wait_for_image.js +2 -2
  96. package/out-tsc/src/flow/nodes/wait_for_image.js.map +1 -1
  97. package/out-tsc/src/flow/nodes/wait_for_location.js +2 -2
  98. package/out-tsc/src/flow/nodes/wait_for_location.js.map +1 -1
  99. package/out-tsc/src/flow/nodes/wait_for_menu.js +2 -2
  100. package/out-tsc/src/flow/nodes/wait_for_menu.js.map +1 -1
  101. package/out-tsc/src/flow/nodes/wait_for_response.js +32 -567
  102. package/out-tsc/src/flow/nodes/wait_for_response.js.map +1 -1
  103. package/out-tsc/src/flow/nodes/wait_for_video.js +2 -2
  104. package/out-tsc/src/flow/nodes/wait_for_video.js.map +1 -1
  105. package/out-tsc/src/flow/types.js +71 -12
  106. package/out-tsc/src/flow/types.js.map +1 -1
  107. package/out-tsc/src/flow/utils.js +101 -14
  108. package/out-tsc/src/flow/utils.js.map +1 -1
  109. package/out-tsc/src/form/FieldRenderer.js +2 -4
  110. package/out-tsc/src/form/FieldRenderer.js.map +1 -1
  111. package/out-tsc/src/interfaces.js +3 -0
  112. package/out-tsc/src/interfaces.js.map +1 -1
  113. package/out-tsc/src/list/SortableList.js +98 -33
  114. package/out-tsc/src/list/SortableList.js.map +1 -1
  115. package/out-tsc/src/live/ContactChat.js +15 -18
  116. package/out-tsc/src/live/ContactChat.js.map +1 -1
  117. package/out-tsc/src/store/AppState.js +53 -0
  118. package/out-tsc/src/store/AppState.js.map +1 -1
  119. package/out-tsc/src/utils.js +254 -13
  120. package/out-tsc/src/utils.js.map +1 -1
  121. package/out-tsc/temba-modules.js +4 -0
  122. package/out-tsc/temba-modules.js.map +1 -1
  123. package/out-tsc/test/ActionHelper.js +3 -3
  124. package/out-tsc/test/ActionHelper.js.map +1 -1
  125. package/out-tsc/test/NodeHelper.js +6 -3
  126. package/out-tsc/test/NodeHelper.js.map +1 -1
  127. package/out-tsc/test/actions/add_contact_urn.test.js +202 -0
  128. package/out-tsc/test/actions/add_contact_urn.test.js.map +1 -0
  129. package/out-tsc/test/actions/send_broadcast.test.js +148 -0
  130. package/out-tsc/test/actions/send_broadcast.test.js.map +1 -0
  131. package/out-tsc/test/actions/send_email.test.js +17 -23
  132. package/out-tsc/test/actions/send_email.test.js.map +1 -1
  133. package/out-tsc/test/actions/send_msg.test.js +33 -15
  134. package/out-tsc/test/actions/send_msg.test.js.map +1 -1
  135. package/out-tsc/test/actions/start_session.test.js +116 -0
  136. package/out-tsc/test/actions/start_session.test.js.map +1 -0
  137. package/out-tsc/test/nodes/split_by_airtime.test.js +604 -0
  138. package/out-tsc/test/nodes/split_by_airtime.test.js.map +1 -0
  139. package/out-tsc/test/nodes/split_by_contact_field.test.js +387 -0
  140. package/out-tsc/test/nodes/split_by_contact_field.test.js.map +1 -0
  141. package/out-tsc/test/nodes/split_by_expression.test.js +614 -0
  142. package/out-tsc/test/nodes/split_by_expression.test.js.map +1 -0
  143. package/out-tsc/test/nodes/split_by_random.test.js +3 -3
  144. package/out-tsc/test/nodes/split_by_random.test.js.map +1 -1
  145. package/out-tsc/test/nodes/split_by_resthook.test.js +337 -0
  146. package/out-tsc/test/nodes/split_by_resthook.test.js.map +1 -0
  147. package/out-tsc/test/nodes/split_by_run_result.test.js +920 -0
  148. package/out-tsc/test/nodes/split_by_run_result.test.js.map +1 -0
  149. package/out-tsc/test/nodes/split_by_scheme.test.js +399 -0
  150. package/out-tsc/test/nodes/split_by_scheme.test.js.map +1 -0
  151. package/out-tsc/test/nodes/split_by_subflow.test.js +333 -0
  152. package/out-tsc/test/nodes/split_by_subflow.test.js.map +1 -0
  153. package/out-tsc/test/nodes/wait_for_digits.test.js +2 -2
  154. package/out-tsc/test/nodes/wait_for_digits.test.js.map +1 -1
  155. package/out-tsc/test/nodes/wait_for_response.test.js +2 -1
  156. package/out-tsc/test/nodes/wait_for_response.test.js.map +1 -1
  157. package/out-tsc/test/temba-action-drag-between-nodes.test.js +252 -0
  158. package/out-tsc/test/temba-action-drag-between-nodes.test.js.map +1 -0
  159. package/out-tsc/test/temba-canvas-menu.test.js +122 -0
  160. package/out-tsc/test/temba-canvas-menu.test.js.map +1 -0
  161. package/out-tsc/test/temba-flow-editor-node.test.js +85 -2
  162. package/out-tsc/test/temba-flow-editor-node.test.js.map +1 -1
  163. package/out-tsc/test/temba-flow-editor.test.js +7 -8
  164. package/out-tsc/test/temba-flow-editor.test.js.map +1 -1
  165. package/out-tsc/test/temba-node-editor.test.js +3 -1
  166. package/out-tsc/test/temba-node-editor.test.js.map +1 -1
  167. package/out-tsc/test/temba-node-type-selector.test.js +115 -0
  168. package/out-tsc/test/temba-node-type-selector.test.js.map +1 -0
  169. package/out-tsc/test/temba-omnibox.test.js +2 -1
  170. package/out-tsc/test/temba-omnibox.test.js.map +1 -1
  171. package/out-tsc/test/temba-sortable-list.test.js +51 -0
  172. package/out-tsc/test/temba-sortable-list.test.js.map +1 -1
  173. package/out-tsc/test/temba-utils-index.test.js +1 -27
  174. package/out-tsc/test/temba-utils-index.test.js.map +1 -1
  175. package/out-tsc/test/utils.test.js +2 -0
  176. package/out-tsc/test/utils.test.js.map +1 -1
  177. package/package.json +2 -1
  178. package/screenshots/truth/actions/add_contact_groups/editor/descriptive-group-names.png +0 -0
  179. package/screenshots/truth/actions/add_contact_groups/editor/long-group-names.png +0 -0
  180. package/screenshots/truth/actions/add_contact_groups/editor/many-groups.png +0 -0
  181. package/screenshots/truth/actions/add_contact_groups/editor/multiple-groups.png +0 -0
  182. package/screenshots/truth/actions/add_contact_groups/editor/single-group.png +0 -0
  183. package/screenshots/truth/actions/add_contact_groups/render/descriptive-group-names.png +0 -0
  184. package/screenshots/truth/actions/add_contact_groups/render/long-group-names.png +0 -0
  185. package/screenshots/truth/actions/add_contact_groups/render/many-groups.png +0 -0
  186. package/screenshots/truth/actions/add_contact_groups/render/multiple-groups.png +0 -0
  187. package/screenshots/truth/actions/add_contact_groups/render/single-group.png +0 -0
  188. package/screenshots/truth/actions/add_contact_urn/editor/expression-facebook.png +0 -0
  189. package/screenshots/truth/actions/add_contact_urn/editor/expression-phone.png +0 -0
  190. package/screenshots/truth/actions/add_contact_urn/editor/facebook-id.png +0 -0
  191. package/screenshots/truth/actions/add_contact_urn/editor/instagram-handle.png +0 -0
  192. package/screenshots/truth/actions/add_contact_urn/editor/line-id.png +0 -0
  193. package/screenshots/truth/actions/add_contact_urn/editor/phone-number.png +0 -0
  194. package/screenshots/truth/actions/add_contact_urn/editor/telegram-id.png +0 -0
  195. package/screenshots/truth/actions/add_contact_urn/editor/viber-id.png +0 -0
  196. package/screenshots/truth/actions/add_contact_urn/editor/wechat-id.png +0 -0
  197. package/screenshots/truth/actions/add_contact_urn/editor/whatsapp.png +0 -0
  198. package/screenshots/truth/actions/add_contact_urn/render/expression-facebook.png +0 -0
  199. package/screenshots/truth/actions/add_contact_urn/render/expression-phone.png +0 -0
  200. package/screenshots/truth/actions/add_contact_urn/render/facebook-id.png +0 -0
  201. package/screenshots/truth/actions/add_contact_urn/render/instagram-handle.png +0 -0
  202. package/screenshots/truth/actions/add_contact_urn/render/line-id.png +0 -0
  203. package/screenshots/truth/actions/add_contact_urn/render/phone-number.png +0 -0
  204. package/screenshots/truth/actions/add_contact_urn/render/telegram-id.png +0 -0
  205. package/screenshots/truth/actions/add_contact_urn/render/viber-id.png +0 -0
  206. package/screenshots/truth/actions/add_contact_urn/render/wechat-id.png +0 -0
  207. package/screenshots/truth/actions/add_contact_urn/render/whatsapp.png +0 -0
  208. package/screenshots/truth/actions/remove_contact_groups/editor/cleanup-groups.png +0 -0
  209. package/screenshots/truth/actions/remove_contact_groups/editor/long-descriptive-group-names.png +0 -0
  210. package/screenshots/truth/actions/remove_contact_groups/editor/many-groups.png +0 -0
  211. package/screenshots/truth/actions/remove_contact_groups/editor/multiple-groups.png +0 -0
  212. package/screenshots/truth/actions/remove_contact_groups/editor/remove-from-all-groups.png +0 -0
  213. package/screenshots/truth/actions/remove_contact_groups/editor/single-group.png +0 -0
  214. package/screenshots/truth/actions/remove_contact_groups/render/cleanup-groups.png +0 -0
  215. package/screenshots/truth/actions/remove_contact_groups/render/long-descriptive-group-names.png +0 -0
  216. package/screenshots/truth/actions/remove_contact_groups/render/many-groups.png +0 -0
  217. package/screenshots/truth/actions/remove_contact_groups/render/multiple-groups.png +0 -0
  218. package/screenshots/truth/actions/remove_contact_groups/render/remove-from-all-groups.png +0 -0
  219. package/screenshots/truth/actions/remove_contact_groups/render/single-group.png +0 -0
  220. package/screenshots/truth/actions/send_broadcast/editor/contacts-only.png +0 -0
  221. package/screenshots/truth/actions/send_broadcast/editor/groups-and-contacts.png +0 -0
  222. package/screenshots/truth/actions/send_broadcast/editor/groups-only.png +0 -0
  223. package/screenshots/truth/actions/send_broadcast/editor/many-groups.png +0 -0
  224. package/screenshots/truth/actions/send_broadcast/editor/multiline-text.png +0 -0
  225. package/screenshots/truth/actions/send_broadcast/editor/with-attachments.png +0 -0
  226. package/screenshots/truth/actions/send_broadcast/render/contacts-only.png +0 -0
  227. package/screenshots/truth/actions/send_broadcast/render/groups-and-contacts.png +0 -0
  228. package/screenshots/truth/actions/send_broadcast/render/groups-only.png +0 -0
  229. package/screenshots/truth/actions/send_broadcast/render/many-groups.png +0 -0
  230. package/screenshots/truth/actions/send_broadcast/render/multiline-text.png +0 -0
  231. package/screenshots/truth/actions/send_broadcast/render/with-attachments.png +0 -0
  232. package/screenshots/truth/actions/send_email/editor/complex-business-email.png +0 -0
  233. package/screenshots/truth/actions/send_email/editor/empty-body.png +0 -0
  234. package/screenshots/truth/actions/send_email/editor/empty-subject.png +0 -0
  235. package/screenshots/truth/actions/send_email/editor/long-subject.png +0 -0
  236. package/screenshots/truth/actions/send_email/editor/multiline-body.png +0 -0
  237. package/screenshots/truth/actions/send_email/editor/multiple-recipients.png +0 -0
  238. package/screenshots/truth/actions/send_email/editor/simple-email.png +0 -0
  239. package/screenshots/truth/actions/send_email/editor/with-expressions.png +0 -0
  240. package/screenshots/truth/actions/send_email/render/complex-business-email.png +0 -0
  241. package/screenshots/truth/actions/send_email/render/empty-body.png +0 -0
  242. package/screenshots/truth/actions/send_email/render/empty-subject.png +0 -0
  243. package/screenshots/truth/actions/send_email/render/long-subject.png +0 -0
  244. package/screenshots/truth/actions/send_email/render/multiline-body.png +0 -0
  245. package/screenshots/truth/actions/send_email/render/multiple-recipients.png +0 -0
  246. package/screenshots/truth/actions/send_email/render/simple-email.png +0 -0
  247. package/screenshots/truth/actions/send_email/render/with-expressions.png +0 -0
  248. package/screenshots/truth/actions/send_msg/editor/long-quick-replies.png +0 -0
  249. package/screenshots/truth/actions/send_msg/editor/multiline-text-with-replies.png +0 -0
  250. package/screenshots/truth/actions/send_msg/editor/simple-text.png +0 -0
  251. package/screenshots/truth/actions/send_msg/editor/text-with-linebreaks.png +0 -0
  252. package/screenshots/truth/actions/send_msg/editor/text-with-many-quick-replies.png +0 -0
  253. package/screenshots/truth/actions/send_msg/editor/text-with-quick-replies.png +0 -0
  254. package/screenshots/truth/actions/send_msg/editor/text-without-quick-replies.png +0 -0
  255. package/screenshots/truth/actions/send_msg/render/long-quick-replies.png +0 -0
  256. package/screenshots/truth/actions/send_msg/render/multiline-text-with-replies.png +0 -0
  257. package/screenshots/truth/actions/send_msg/render/simple-text.png +0 -0
  258. package/screenshots/truth/actions/send_msg/render/text-with-linebreaks.png +0 -0
  259. package/screenshots/truth/actions/send_msg/render/text-with-many-quick-replies.png +0 -0
  260. package/screenshots/truth/actions/send_msg/render/text-with-quick-replies.png +0 -0
  261. package/screenshots/truth/actions/send_msg/render/text-without-quick-replies.png +0 -0
  262. package/screenshots/truth/actions/start_session/editor/contact-query.png +0 -0
  263. package/screenshots/truth/actions/start_session/editor/contacts-only.png +0 -0
  264. package/screenshots/truth/actions/start_session/editor/create-contact.png +0 -0
  265. package/screenshots/truth/actions/start_session/editor/groups-and-contacts.png +0 -0
  266. package/screenshots/truth/actions/start_session/editor/groups-only.png +0 -0
  267. package/screenshots/truth/actions/start_session/editor/many-recipients.png +0 -0
  268. package/screenshots/truth/actions/start_session/render/contact-query.png +0 -0
  269. package/screenshots/truth/actions/start_session/render/contacts-only.png +0 -0
  270. package/screenshots/truth/actions/start_session/render/create-contact.png +0 -0
  271. package/screenshots/truth/actions/start_session/render/groups-and-contacts.png +0 -0
  272. package/screenshots/truth/actions/start_session/render/groups-only.png +0 -0
  273. package/screenshots/truth/actions/start_session/render/many-recipients.png +0 -0
  274. package/screenshots/truth/canvas-menu/open.png +0 -0
  275. package/screenshots/truth/editor/router.png +0 -0
  276. package/screenshots/truth/editor/wait.png +0 -0
  277. package/screenshots/truth/list/fields-dragging.png +0 -0
  278. package/screenshots/truth/list/sortable-dragging.png +0 -0
  279. package/screenshots/truth/node-type-selector/action-mode.png +0 -0
  280. package/screenshots/truth/node-type-selector/split-mode.png +0 -0
  281. package/screenshots/truth/nodes/split_by_llm/editor/information-extraction.png +0 -0
  282. package/screenshots/truth/nodes/split_by_llm/editor/sentiment-analysis.png +0 -0
  283. package/screenshots/truth/nodes/split_by_llm/editor/summarization.png +0 -0
  284. package/screenshots/truth/nodes/split_by_llm/editor/translation-task.png +0 -0
  285. package/screenshots/truth/nodes/split_by_llm/render/information-extraction.png +0 -0
  286. package/screenshots/truth/nodes/split_by_llm/render/sentiment-analysis.png +0 -0
  287. package/screenshots/truth/nodes/split_by_llm/render/summarization.png +0 -0
  288. package/screenshots/truth/nodes/split_by_llm/render/translation-task.png +0 -0
  289. package/screenshots/truth/nodes/split_by_llm_categorize/editor/basic-categorization.png +0 -0
  290. package/screenshots/truth/nodes/split_by_llm_categorize/editor/custom-input-and-result-name.png +0 -0
  291. package/screenshots/truth/nodes/split_by_llm_categorize/editor/feedback-categorization.png +0 -0
  292. package/screenshots/truth/nodes/split_by_llm_categorize/editor/many-categories.png +0 -0
  293. package/screenshots/truth/nodes/split_by_llm_categorize/editor/minimal-categories.png +0 -0
  294. package/screenshots/truth/nodes/split_by_llm_categorize/render/basic-categorization.png +0 -0
  295. package/screenshots/truth/nodes/split_by_llm_categorize/render/custom-input-and-result-name.png +0 -0
  296. package/screenshots/truth/nodes/split_by_llm_categorize/render/feedback-categorization.png +0 -0
  297. package/screenshots/truth/nodes/split_by_llm_categorize/render/many-categories.png +0 -0
  298. package/screenshots/truth/nodes/split_by_llm_categorize/render/minimal-categories.png +0 -0
  299. package/screenshots/truth/nodes/split_by_random/editor/ab-test-multiple-variants.png +0 -0
  300. package/screenshots/truth/nodes/split_by_random/editor/sampling-split.png +0 -0
  301. package/screenshots/truth/nodes/split_by_random/editor/three-way-split.png +0 -0
  302. package/screenshots/truth/nodes/split_by_random/editor/two-bucket-split.png +0 -0
  303. package/screenshots/truth/nodes/split_by_random/render/ab-test-multiple-variants.png +0 -0
  304. package/screenshots/truth/nodes/split_by_random/render/sampling-split.png +0 -0
  305. package/screenshots/truth/nodes/split_by_random/render/three-way-split.png +0 -0
  306. package/screenshots/truth/nodes/split_by_random/render/two-bucket-split.png +0 -0
  307. package/screenshots/truth/nodes/wait_for_digits/editor/basic-digits-wait.png +0 -0
  308. package/screenshots/truth/nodes/wait_for_digits/editor/phone-number-collection.png +0 -0
  309. package/screenshots/truth/nodes/wait_for_digits/editor/single-digit-with-timeout.png +0 -0
  310. package/screenshots/truth/nodes/wait_for_digits/editor/verification-code.png +0 -0
  311. package/screenshots/truth/nodes/wait_for_digits/render/basic-digits-wait.png +0 -0
  312. package/screenshots/truth/nodes/wait_for_digits/render/phone-number-collection.png +0 -0
  313. package/screenshots/truth/nodes/wait_for_digits/render/single-digit-with-timeout.png +0 -0
  314. package/screenshots/truth/nodes/wait_for_digits/render/verification-code.png +0 -0
  315. package/screenshots/truth/nodes/wait_for_response/editor/basic-wait.png +0 -0
  316. package/screenshots/truth/nodes/wait_for_response/editor/custom-result-name.png +0 -0
  317. package/screenshots/truth/nodes/wait_for_response/editor/no-timeout.png +0 -0
  318. package/screenshots/truth/nodes/wait_for_response/editor/short-timeout.png +0 -0
  319. package/screenshots/truth/nodes/wait_for_response/render/basic-wait.png +0 -0
  320. package/screenshots/truth/nodes/wait_for_response/render/custom-result-name.png +0 -0
  321. package/screenshots/truth/nodes/wait_for_response/render/no-timeout.png +0 -0
  322. package/screenshots/truth/nodes/wait_for_response/render/short-timeout.png +0 -0
  323. package/src/Icons.ts +4 -1
  324. package/src/events.ts +2 -6
  325. package/src/flow/CanvasMenu.ts +217 -0
  326. package/src/flow/CanvasNode.ts +408 -10
  327. package/src/flow/Editor.ts +683 -44
  328. package/src/flow/NodeEditor.ts +304 -125
  329. package/src/flow/NodeTypeSelector.ts +592 -0
  330. package/src/flow/actions/add_contact_groups.ts +4 -4
  331. package/src/flow/actions/add_contact_urn.ts +76 -4
  332. package/src/flow/actions/add_input_labels.ts +4 -4
  333. package/src/flow/actions/play_audio.ts +2 -2
  334. package/src/flow/actions/remove_contact_groups.ts +14 -6
  335. package/src/flow/actions/request_optin.ts +2 -2
  336. package/src/flow/actions/say_msg.ts +2 -2
  337. package/src/flow/actions/send_broadcast.ts +85 -23
  338. package/src/flow/actions/send_email.ts +10 -6
  339. package/src/flow/actions/send_msg.ts +22 -32
  340. package/src/flow/actions/set_contact_channel.ts +5 -11
  341. package/src/flow/actions/set_contact_field.ts +20 -25
  342. package/src/flow/actions/set_contact_language.ts +9 -4
  343. package/src/flow/actions/set_contact_name.ts +3 -15
  344. package/src/flow/actions/set_contact_status.ts +3 -3
  345. package/src/flow/actions/set_run_result.ts +4 -4
  346. package/src/flow/actions/start_session.ts +208 -6
  347. package/src/flow/config.ts +13 -15
  348. package/src/flow/currencies.ts +51 -0
  349. package/src/flow/nodes/shared-rules.ts +301 -0
  350. package/src/flow/nodes/shared.ts +18 -0
  351. package/src/flow/nodes/split_by_airtime.ts +238 -5
  352. package/src/flow/nodes/split_by_contact_field.ts +185 -3
  353. package/src/flow/nodes/split_by_expression.ts +94 -2
  354. package/src/flow/nodes/split_by_groups.ts +15 -10
  355. package/src/flow/nodes/split_by_intent.ts +7 -0
  356. package/src/flow/nodes/split_by_llm.ts +4 -3
  357. package/src/flow/nodes/split_by_llm_categorize.ts +4 -4
  358. package/src/flow/nodes/split_by_random.ts +5 -5
  359. package/src/flow/nodes/split_by_resthook.ts +130 -0
  360. package/src/flow/nodes/split_by_run_result.ts +249 -3
  361. package/src/flow/nodes/split_by_scheme.ts +192 -2
  362. package/src/flow/nodes/split_by_subflow.ts +6 -4
  363. package/src/flow/nodes/split_by_ticket.ts +4 -3
  364. package/src/flow/nodes/split_by_webhook.ts +6 -5
  365. package/src/flow/nodes/wait_for_audio.ts +2 -2
  366. package/src/flow/nodes/wait_for_digits.ts +2 -2
  367. package/src/flow/nodes/wait_for_image.ts +2 -2
  368. package/src/flow/nodes/wait_for_location.ts +2 -2
  369. package/src/flow/nodes/wait_for_menu.ts +2 -2
  370. package/src/flow/nodes/wait_for_response.ts +48 -679
  371. package/src/flow/nodes/wait_for_video.ts +2 -2
  372. package/src/flow/types.ts +109 -23
  373. package/src/flow/utils.ts +108 -14
  374. package/src/form/FieldRenderer.ts +2 -4
  375. package/src/interfaces.ts +3 -0
  376. package/src/list/SortableList.ts +109 -34
  377. package/src/live/ContactChat.ts +15 -18
  378. package/src/store/AppState.ts +69 -0
  379. package/src/store/flow-definition.d.ts +2 -5
  380. package/src/utils.ts +332 -12
  381. package/static/api/channels.json +46 -0
  382. package/static/api/resthooks.json +31 -0
  383. package/static/svg/index.svg +1 -1
  384. package/static/svg/work/traced/lightning-02.svg +1 -0
  385. package/static/svg/work/used/lightning-02.svg +3 -0
  386. package/temba-modules.ts +4 -0
  387. package/test/ActionHelper.ts +3 -3
  388. package/test/NodeHelper.ts +6 -3
  389. package/test/actions/add_contact_urn.test.ts +287 -0
  390. package/test/actions/send_broadcast.test.ts +190 -0
  391. package/test/actions/send_email.test.ts +17 -23
  392. package/test/actions/send_msg.test.ts +39 -15
  393. package/test/actions/start_session.test.ts +151 -0
  394. package/test/nodes/split_by_airtime.test.ts +673 -0
  395. package/test/nodes/split_by_contact_field.test.ts +451 -0
  396. package/test/nodes/split_by_expression.test.ts +751 -0
  397. package/test/nodes/split_by_random.test.ts +3 -3
  398. package/test/nodes/split_by_resthook.test.ts +398 -0
  399. package/test/nodes/split_by_run_result.test.ts +1109 -0
  400. package/test/nodes/split_by_scheme.test.ts +486 -0
  401. package/test/nodes/split_by_subflow.test.ts +381 -0
  402. package/test/nodes/wait_for_digits.test.ts +2 -2
  403. package/test/nodes/wait_for_response.test.ts +2 -1
  404. package/test/temba-action-drag-between-nodes.test.ts +301 -0
  405. package/test/temba-canvas-menu.test.ts +156 -0
  406. package/test/temba-flow-editor-node.test.ts +102 -2
  407. package/test/temba-flow-editor.test.ts +7 -8
  408. package/test/temba-node-editor.test.ts +3 -1
  409. package/test/temba-node-type-selector.test.ts +152 -0
  410. package/test/temba-omnibox.test.ts +2 -1
  411. package/test/temba-sortable-list.test.ts +69 -0
  412. package/test/temba-utils-index.test.ts +0 -35
  413. package/test/utils.test.ts +2 -0
  414. package/test-assets/contacts/history.json +14 -20
  415. package/web-dev-server.config.mjs +3 -1
  416. package/out-tsc/src/flow/actions/call_classifier.js +0 -11
  417. package/out-tsc/src/flow/actions/call_classifier.js.map +0 -1
  418. package/out-tsc/src/flow/actions/call_resthook.js +0 -11
  419. package/out-tsc/src/flow/actions/call_resthook.js.map +0 -1
  420. package/out-tsc/src/flow/actions/split_by_expression_example.js +0 -77
  421. package/out-tsc/src/flow/actions/split_by_expression_example.js.map +0 -1
  422. package/out-tsc/src/flow/actions/transfer_airtime.js +0 -11
  423. package/out-tsc/src/flow/actions/transfer_airtime.js.map +0 -1
  424. package/src/flow/actions/call_classifier.ts +0 -12
  425. package/src/flow/actions/call_resthook.ts +0 -12
  426. package/src/flow/actions/split_by_expression_example.ts +0 -88
  427. package/src/flow/actions/transfer_airtime.ts +0 -12
@@ -4,7 +4,10 @@ on:
4
4
  push:
5
5
  tags:
6
6
  - '*'
7
-
7
+ permissions:
8
+ id-token: write
9
+ contents: read
10
+
8
11
  jobs:
9
12
  build:
10
13
  runs-on: ubuntu-latest
package/CHANGELOG.md CHANGED
@@ -4,25 +4,85 @@ All notable changes to this project will be documented in this file. Dates are d
4
4
 
5
5
  Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
6
6
 
7
+ #### [v0.131.2](https://github.com/nyaruka/temba-components/compare/v0.131.1...v0.131.2)
8
+
9
+ - Support `_status` fields on msg events that are objects [`#745`](https://github.com/nyaruka/temba-components/pull/745)
10
+ - Fix validate methods to use FormData instead of action types [`#742`](https://github.com/nyaruka/temba-components/pull/742)
11
+ - Add mock channels endpoint for demo environment [`#744`](https://github.com/nyaruka/temba-components/pull/744)
12
+ - Add delimiter support to split_by_run_result [`#740`](https://github.com/nyaruka/temba-components/pull/740)
13
+ - Add send_broadcast action config with recipients and message fields [`#738`](https://github.com/nyaruka/temba-components/pull/738)
14
+ - Enable dragging actions between execute_actions nodes [`#736`](https://github.com/nyaruka/temba-components/pull/736)
15
+ - Enable dragging actions from execute_actions nodes to canvas to create new nodes [`#732`](https://github.com/nyaruka/temba-components/pull/732)
16
+ - Add action button for execute_actions nodes [`#734`](https://github.com/nyaruka/temba-components/pull/734)
17
+ - Add configuration for split_by_airtime node [`#730`](https://github.com/nyaruka/temba-components/pull/730)
18
+ - Implement split_by_resthook router configuration [`#725`](https://github.com/nyaruka/temba-components/pull/725)
19
+ - Tracking down intermittent CI failure [`#723`](https://github.com/nyaruka/temba-components/pull/723)
20
+ - Fix split as action for new nodes [`#726`](https://github.com/nyaruka/temba-components/pull/726)
21
+ - Ensure canvas menu is on screen [`#722`](https://github.com/nyaruka/temba-components/pull/722)
22
+ - More structure for node types [`#721`](https://github.com/nyaruka/temba-components/pull/721)
23
+ - Node creation menu [`#719`](https://github.com/nyaruka/temba-components/pull/719)
24
+ - Bump validator from 13.11.0 to 13.15.20 [`#720`](https://github.com/nyaruka/temba-components/pull/720)
25
+ - Add add_urn action [`#718`](https://github.com/nyaruka/temba-components/pull/718)
26
+ - Type safety for formData [`#717`](https://github.com/nyaruka/temba-components/pull/717)
27
+ - Implementation for start_session [`#716`](https://github.com/nyaruka/temba-components/pull/716)
28
+ - Implement split_by_result [`#715`](https://github.com/nyaruka/temba-components/pull/715)
29
+ - Add implementation split_by_contact_field [`#713`](https://github.com/nyaruka/temba-components/pull/713)
30
+ - Add split by expression with shared rule logic [`#712`](https://github.com/nyaruka/temba-components/pull/712)
31
+ - Add common save as result name [`#711`](https://github.com/nyaruka/temba-components/pull/711)
32
+ - Split by scheme [`#710`](https://github.com/nyaruka/temba-components/pull/710)
33
+ - Remove support for older fields on message events in chat history [`#705`](https://github.com/nyaruka/temba-components/pull/705)
34
+ - Implement send_broadcast action config with form, validation and tests [`1212d8e`](https://github.com/nyaruka/temba-components/commit/1212d8eb082ffe74fbd29ebea0bc327e277305b9)
35
+ - Add delimiter feature to split_by_run_result [`db66b81`](https://github.com/nyaruka/temba-components/commit/db66b81c8f216660f727f0e1a1eae544f31e7908)
36
+ - Implement drag-to-canvas for actions [`32ffdb7`](https://github.com/nyaruka/temba-components/commit/32ffdb75344baf8cda915a4ad00c00c218765120)
37
+
7
38
  #### [v0.131.1](https://github.com/nyaruka/temba-components/compare/v0.131.0...v0.131.1)
8
39
 
40
+ > 2 October 2025
41
+
9
42
  - Styling tweak for contact search [`2de5b31`](https://github.com/nyaruka/temba-components/commit/2de5b31280a9d6645780e10bbb7f2e97f182e4b7)
10
43
 
11
- #### [v0.131.0](https://github.com/nyaruka/temba-components/compare/v0.130.1...v0.131.0)
44
+ #### [v0.131.0](https://github.com/nyaruka/temba-components/compare/v0.130.5...v0.131.0)
12
45
 
13
46
  > 2 October 2025
14
47
 
15
48
  - Empty row focus, auto categories [`#707`](https://github.com/nyaruka/temba-components/pull/707)
16
49
  - Fix omnibox [`#706`](https://github.com/nyaruka/temba-components/pull/706)
50
+ - Fix system categories [`8c191f1`](https://github.com/nyaruka/temba-components/commit/8c191f158c7a67d1e15078e78160497b63317c50)
51
+ - Add auto category generation [`5cb1af3`](https://github.com/nyaruka/temba-components/commit/5cb1af36b04a2440d7a5d2e37dbaf29338d89fa7)
52
+ - Maintain focus after new row is added [`f485390`](https://github.com/nyaruka/temba-components/commit/f485390d11b316f2866213ee3261f2c1fee5b6fd)
53
+
54
+ #### [v0.130.5](https://github.com/nyaruka/temba-components/compare/v0.130.4...v0.130.5)
55
+
56
+ > 30 September 2025
57
+
17
58
  - Tweak msg event payload for chat history [`#704`](https://github.com/nyaruka/temba-components/pull/704)
18
59
  - Add split by groups [`#699`](https://github.com/nyaruka/temba-components/pull/699)
19
60
  - Some tweaks for smoother dragging [`#701`](https://github.com/nyaruka/temba-components/pull/701)
20
61
  - Switch to cloned dragged items [`#700`](https://github.com/nyaruka/temba-components/pull/700)
21
62
  - Show select fetching status [`#698`](https://github.com/nyaruka/temba-components/pull/698)
22
63
  - Add sorting for wait for response [`#695`](https://github.com/nyaruka/temba-components/pull/695)
64
+ - Sortable rules wip [`f1af831`](https://github.com/nyaruka/temba-components/commit/f1af8312a136d0c3437e37ef75bee5dcdb9bd670)
65
+ - Use the original element for dragging [`54e1cae`](https://github.com/nyaruka/temba-components/commit/54e1cae6da0ce57cd0821a9e4815efbb0c4dddbc)
66
+ - Maintain order for like-named categories [`7149dc7`](https://github.com/nyaruka/temba-components/commit/7149dc778b54ddd1f8d25eddebeb442faef02b92)
67
+
68
+ #### [v0.130.4](https://github.com/nyaruka/temba-components/compare/v0.130.3...v0.130.4)
69
+
70
+ > 24 September 2025
71
+
23
72
  - Fix rendering of `ivr_created` events [`#697`](https://github.com/nyaruka/temba-components/pull/697)
24
73
  - Update chat history test with more realistic event data [`#696`](https://github.com/nyaruka/temba-components/pull/696)
74
+ - Fix rendering of ivr_created events in chat history [`261f082`](https://github.com/nyaruka/temba-components/commit/261f082a6d8fbdc2244a1e59fa07a49f33439c36)
75
+
76
+ #### [v0.130.3](https://github.com/nyaruka/temba-components/compare/v0.130.2...v0.130.3)
77
+
78
+ > 23 September 2025
79
+
25
80
  - Remove support for legacy ticket events [`#694`](https://github.com/nyaruka/temba-components/pull/694)
81
+
82
+ #### [v0.130.2](https://github.com/nyaruka/temba-components/compare/v0.130.1...v0.130.2)
83
+
84
+ > 22 September 2025
85
+
26
86
  - Add support for ticket events from the engine [`#693`](https://github.com/nyaruka/temba-components/pull/693)
27
87
  - First draft for rules editor [`#691`](https://github.com/nyaruka/temba-components/pull/691)
28
88
  - Show contact ref on details tab since it might be hidden by name if set [`#690`](https://github.com/nyaruka/temba-components/pull/690)
@@ -45,8 +45,8 @@
45
45
  "type": "send_msg",
46
46
  "text": "Would you like chicken or fish?",
47
47
  "attachments": [
48
- "image/jpeg:http://localhost:9000/temba-attachments/816f8797-c929-47a8-a1ad-9a33f0123406-IMG_0917.jpeg",
49
- "image/jpeg:http://localhost:9000/temba-attachments/de0f23fc-2d71-4a93-90d3-729b1ad65cd2-IMG_3208.jpeg"
48
+ "image/jpeg:http://localhost:9000/temba-attachments/0b7acdd2-8563-4991-b3b4-abcb83aa4540-00001.jpg",
49
+ "image/jpeg:http://localhost:9000/temba-attachments/760f4437-e1b7-4de2-a728-1cbd35a59d35-2021-07-23 09.07.13.jpg"
50
50
  ],
51
51
  "quick_replies": [
52
52
  "Fish",
@@ -6,102 +6,6 @@
6
6
  "language": "eng",
7
7
  "type": "messaging",
8
8
  "nodes": [
9
- {
10
- "uuid": "8475045b-ecb2-44a7-b511-ee4a74703108",
11
- "actions": [],
12
- "router": {
13
- "type": "switch",
14
- "default_category_uuid": "e7f89d67-9e24-4161-9c15-cdb057674089",
15
- "cases": [
16
- {
17
- "arguments": ["red"],
18
- "type": "has_any_word",
19
- "uuid": "1a3b3a53-3c16-4ae6-a1cc-ec018e6f64ac",
20
- "category_uuid": "42a6ff3a-1e72-494e-8a6d-064c39dd66ba"
21
- },
22
- {
23
- "arguments": ["green"],
24
- "type": "has_any_word",
25
- "uuid": "87dc3de5-8f5e-4437-9101-3953589f07e3",
26
- "category_uuid": "98d75eb1-2371-42f6-ab9f-0ed62c589eaa"
27
- },
28
- {
29
- "arguments": ["blue"],
30
- "type": "has_any_word",
31
- "uuid": "80309f3a-cd1a-4f19-a197-ca65253970a3",
32
- "category_uuid": "6cdd692a-8871-4a08-9b53-5c87727e303b"
33
- },
34
- {
35
- "arguments": ["10", "50"],
36
- "type": "has_number_between",
37
- "uuid": "4bcf4da2-39a5-4da8-8ced-046353a8f066",
38
- "category_uuid": "0927dfd9-f4ff-4f81-95e1-965c5b6c9e7c"
39
- }
40
- ],
41
- "categories": [
42
- {
43
- "exit_uuid": "affc04ee-3565-4cbf-a65d-e7e4f41ef043",
44
- "name": "Red",
45
- "uuid": "42a6ff3a-1e72-494e-8a6d-064c39dd66ba"
46
- },
47
- {
48
- "uuid": "98d75eb1-2371-42f6-ab9f-0ed62c589eaa",
49
- "name": "Green",
50
- "exit_uuid": "b12038ab-d607-4bce-b70e-860f8e0738f1"
51
- },
52
- {
53
- "uuid": "6cdd692a-8871-4a08-9b53-5c87727e303b",
54
- "name": "Blue but longer so it hits the max w",
55
- "exit_uuid": "5fde9128-0dde-438c-acec-dc77f4140fc7"
56
- },
57
- {
58
- "uuid": "0927dfd9-f4ff-4f81-95e1-965c5b6c9e7c",
59
- "name": "10 - 50",
60
- "exit_uuid": "a172fecc-139b-4121-9140-fe982ff2b1f9"
61
- },
62
- {
63
- "exit_uuid": "5ede8cf6-d137-4d08-a8fa-0a7201398869",
64
- "name": "Other",
65
- "uuid": "e7f89d67-9e24-4161-9c15-cdb057674089"
66
- },
67
- {
68
- "uuid": "ab8e3b1f-c177-4224-b343-a249a704388b",
69
- "name": "No Response",
70
- "exit_uuid": "705714da-1231-4919-87ea-88d4ae434ca1"
71
- }
72
- ],
73
- "operand": "@input.text",
74
- "wait": {
75
- "type": "msg",
76
- "timeout": {
77
- "seconds": 300,
78
- "category_uuid": "ab8e3b1f-c177-4224-b343-a249a704388b"
79
- }
80
- }
81
- },
82
- "exits": [
83
- {
84
- "destination_uuid": "259d68eb-7dd3-4e5b-96bb-44f3898f9f2c",
85
- "uuid": "affc04ee-3565-4cbf-a65d-e7e4f41ef043"
86
- },
87
- {
88
- "uuid": "b12038ab-d607-4bce-b70e-860f8e0738f1"
89
- },
90
- {
91
- "uuid": "5fde9128-0dde-438c-acec-dc77f4140fc7"
92
- },
93
- {
94
- "uuid": "a172fecc-139b-4121-9140-fe982ff2b1f9"
95
- },
96
- {
97
- "destination_uuid": "d7ef1df7-1f4c-4d9b-b058-397fc17295fe",
98
- "uuid": "5ede8cf6-d137-4d08-a8fa-0a7201398869"
99
- },
100
- {
101
- "uuid": "705714da-1231-4919-87ea-88d4ae434ca1"
102
- }
103
- ]
104
- },
105
9
  {
106
10
  "uuid": "fb7bbf99-65cd-4e08-825a-68fc7293cc05",
107
11
  "actions": [
@@ -161,7 +65,13 @@
161
65
  "video:@fields.video",
162
66
  "image:@fields.image"
163
67
  ],
164
- "quick_replies": ["Red", "Green", "Blue", "Yellow", "Purple"]
68
+ "quick_replies": [
69
+ "Red",
70
+ "Green",
71
+ "Blue",
72
+ "Yellow",
73
+ "Purple"
74
+ ]
165
75
  }
166
76
  ],
167
77
  "exits": [
@@ -179,19 +89,25 @@
179
89
  "default_category_uuid": "e6a9f714-6f2a-4884-b850-f79ff397ee63",
180
90
  "cases": [
181
91
  {
182
- "arguments": ["red"],
92
+ "arguments": [
93
+ "red"
94
+ ],
183
95
  "type": "has_any_word",
184
96
  "uuid": "2040ff07-f509-416d-b150-15abc27a9dfd",
185
97
  "category_uuid": "4ceb8f3b-05a2-4d75-950e-fa4934ab24fb"
186
98
  },
187
99
  {
188
- "arguments": ["green"],
100
+ "arguments": [
101
+ "green"
102
+ ],
189
103
  "type": "has_any_word",
190
104
  "uuid": "b7b142d8-2434-41d9-9e5c-4e0335841972",
191
105
  "category_uuid": "153aa4a6-553c-4adf-9773-1f44596c33fb"
192
106
  },
193
107
  {
194
- "arguments": ["blue"],
108
+ "arguments": [
109
+ "blue"
110
+ ],
195
111
  "type": "has_any_word",
196
112
  "uuid": "e2ccc4e7-c379-43e3-8115-48e8fe7ef4de",
197
113
  "category_uuid": "ee972b45-3bfe-4e93-9d4e-e9c8f8ffc587"
@@ -293,7 +209,10 @@
293
209
  {
294
210
  "uuid": "8b9201ff-b195-4e18-8124-3362d310a2e5",
295
211
  "type": "has_number_between",
296
- "arguments": ["200", "299"],
212
+ "arguments": [
213
+ "200",
214
+ "299"
215
+ ],
297
216
  "category_uuid": "1b9100a4-f3f0-410e-8b6f-d339bf58a13a"
298
217
  }
299
218
  ]
@@ -316,8 +235,14 @@
316
235
  "uuid": "9963160a-a007-4c7b-8c9e-7325e1b69ed8",
317
236
  "type": "send_msg",
318
237
  "text": "Excellent choices.",
319
- "attachments": ["image:@contact.profile_url"],
320
- "quick_replies": ["Red", "Green", "Blue"]
238
+ "attachments": [
239
+ "image:@contact.profile_url"
240
+ ],
241
+ "quick_replies": [
242
+ "Red",
243
+ "Green",
244
+ "Blue"
245
+ ]
321
246
  },
322
247
  {
323
248
  "uuid": "d0d1571c-bf9e-4156-ac7c-984789c71472",
@@ -425,7 +350,10 @@
425
350
  {
426
351
  "uuid": "a0f3f1f2-1869-4ad6-9fb0-e610a3e00ae7",
427
352
  "type": "send_email",
428
- "addresses": ["mistermeowface@whiskers.com", "name@domain.com"],
353
+ "addresses": [
354
+ "mistermeowface@whiskers.com",
355
+ "name@domain.com"
356
+ ],
429
357
  "subject": "Did you get this?",
430
358
  "body": "I hope it arrived! But this message is a bit longer."
431
359
  }
@@ -445,7 +373,9 @@
445
373
  "default_category_uuid": "50ededa6-7dd3-4f4f-81d2-e3011ea1cc05",
446
374
  "cases": [
447
375
  {
448
- "arguments": ["Archived"],
376
+ "arguments": [
377
+ "Archived"
378
+ ],
449
379
  "type": "has_any_word",
450
380
  "uuid": "bc2e884d-9740-4028-a6bb-72f0c263336c",
451
381
  "category_uuid": "8032da05-1778-4d0c-9b7d-d218a7fb561d"
@@ -496,7 +426,9 @@
496
426
  ],
497
427
  "cases": [
498
428
  {
499
- "arguments": ["bleep"],
429
+ "arguments": [
430
+ "bleep"
431
+ ],
500
432
  "type": "has_any_word",
501
433
  "uuid": "5fcb78ba-245d-40e5-986a-a9cbafb3e527",
502
434
  "category_uuid": "5a9d7012-02c3-46ac-a926-7b6d9c503fde"
@@ -564,7 +496,9 @@
564
496
  ],
565
497
  "cases": [
566
498
  {
567
- "arguments": ["red"],
499
+ "arguments": [
500
+ "red"
501
+ ],
568
502
  "type": "has_any_word",
569
503
  "uuid": "44f4d027-f904-4c38-8cad-e01aae9b4faf",
570
504
  "category_uuid": "c8ba0faf-cf72-447a-84fe-5dc63775c0f5"
@@ -592,13 +526,19 @@
592
526
  {
593
527
  "uuid": "e1c0d59e-1810-4677-ad3b-69c4d1d645e8",
594
528
  "type": "has_group",
595
- "arguments": ["269e8abf-e81b-404c-82ce-45ff42d13769", "Empty"],
529
+ "arguments": [
530
+ "269e8abf-e81b-404c-82ce-45ff42d13769",
531
+ "Empty"
532
+ ],
596
533
  "category_uuid": "d7ae9a33-357f-445f-84f0-ac11da786602"
597
534
  },
598
535
  {
599
536
  "uuid": "90ab3ac3-bc46-402a-a569-5739aa8a590d",
600
537
  "type": "has_group",
601
- "arguments": ["4b4ad0a2-0be6-4edd-8d6f-f6fa40ce695c", "Drivers"],
538
+ "arguments": [
539
+ "4b4ad0a2-0be6-4edd-8d6f-f6fa40ce695c",
540
+ "Drivers"
541
+ ],
602
542
  "category_uuid": "92e8677a-8070-4a98-901d-8247ac8e1898"
603
543
  }
604
544
  ],
@@ -647,13 +587,17 @@
647
587
  {
648
588
  "uuid": "93312571-e686-4561-8bfd-5bc00c0cd442",
649
589
  "type": "has_only_phrase",
650
- "arguments": ["tel"],
590
+ "arguments": [
591
+ "tel"
592
+ ],
651
593
  "category_uuid": "8334572c-c31d-422a-8a95-2cb3d55e733b"
652
594
  },
653
595
  {
654
596
  "uuid": "03ce9105-dd9f-41b7-adc3-56b0547e031b",
655
597
  "type": "has_only_phrase",
656
- "arguments": ["facebook"],
598
+ "arguments": [
599
+ "facebook"
600
+ ],
657
601
  "category_uuid": "23e7a079-3f2c-406b-9acc-dbbf388b3b79"
658
602
  }
659
603
  ],
@@ -725,7 +669,9 @@
725
669
  {
726
670
  "uuid": "625daede-4c37-45d4-9af6-5607ad4b1ce0",
727
671
  "type": "has_only_text",
728
- "arguments": ["completed"],
672
+ "arguments": [
673
+ "completed"
674
+ ],
729
675
  "category_uuid": "894652f9-cc6c-4192-827d-3c5543778478"
730
676
  }
731
677
  ]
@@ -762,7 +708,9 @@
762
708
  {
763
709
  "uuid": "ac40cb14-6886-4f4e-b309-bcf4ef92b26d",
764
710
  "type": "has_only_text",
765
- "arguments": ["<ERROR>"],
711
+ "arguments": [
712
+ "<ERROR>"
713
+ ],
766
714
  "category_uuid": "00685353-2326-4150-a403-58f006e50885"
767
715
  }
768
716
  ],
@@ -921,25 +869,33 @@
921
869
  {
922
870
  "uuid": "055e63a4-5eae-4325-b436-ca013e20ae17",
923
871
  "type": "has_only_text",
924
- "arguments": ["Cat"],
872
+ "arguments": [
873
+ "Cat"
874
+ ],
925
875
  "category_uuid": "96d0d4c4-5830-4a6d-b20b-6730b1e10679"
926
876
  },
927
877
  {
928
878
  "uuid": "f0795c37-977e-4d0f-9136-378626a40173",
929
879
  "type": "has_only_text",
930
- "arguments": ["Dog"],
880
+ "arguments": [
881
+ "Dog"
882
+ ],
931
883
  "category_uuid": "4632b796-f8ab-4a35-80d1-a1b53a6db803"
932
884
  },
933
885
  {
934
886
  "uuid": "62a7fc70-ffbf-4925-9f9a-ca6ef531942a",
935
887
  "type": "has_only_text",
936
- "arguments": ["Oyster"],
888
+ "arguments": [
889
+ "Oyster"
890
+ ],
937
891
  "category_uuid": "faa4fc1c-c4ba-47fc-8a93-a9bf8bd5818c"
938
892
  },
939
893
  {
940
894
  "uuid": "8fd5f13b-0398-4286-b18a-a92b5a2ea19d",
941
895
  "type": "has_only_text",
942
- "arguments": ["<ERROR>"],
896
+ "arguments": [
897
+ "<ERROR>"
898
+ ],
943
899
  "category_uuid": "b3a625e7-97f2-461d-a481-20dec52bd609"
944
900
  }
945
901
  ]
@@ -970,13 +926,6 @@
970
926
  ],
971
927
  "_ui": {
972
928
  "nodes": {
973
- "8475045b-ecb2-44a7-b511-ee4a74703108": {
974
- "position": {
975
- "left": 0,
976
- "top": 220
977
- },
978
- "type": "wait_for_response"
979
- },
980
929
  "fb7bbf99-65cd-4e08-825a-68fc7293cc05": {
981
930
  "position": {
982
931
  "left": 0,
@@ -1175,4 +1124,4 @@
1175
1124
  "expire_after_minutes": 4320,
1176
1125
  "localization": {}
1177
1126
  }
1178
- }
1127
+ }