@bigbinary/neeto-integrations-frontend 4.0.32 → 4.0.34

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 (100) hide show
  1. package/app/javascript/src/translations/ar.json +24 -3
  2. package/app/javascript/src/translations/bg.json +24 -3
  3. package/app/javascript/src/translations/ca.json +24 -3
  4. package/app/javascript/src/translations/cs.json +24 -3
  5. package/app/javascript/src/translations/da.json +24 -3
  6. package/app/javascript/src/translations/de.json +24 -3
  7. package/app/javascript/src/translations/en.json +23 -2
  8. package/app/javascript/src/translations/es-MX.json +24 -3
  9. package/app/javascript/src/translations/es.json +24 -3
  10. package/app/javascript/src/translations/et.json +24 -3
  11. package/app/javascript/src/translations/fi.json +24 -3
  12. package/app/javascript/src/translations/fil.json +24 -3
  13. package/app/javascript/src/translations/fr.json +24 -3
  14. package/app/javascript/src/translations/he.json +24 -3
  15. package/app/javascript/src/translations/hi.json +24 -3
  16. package/app/javascript/src/translations/hr.json +24 -3
  17. package/app/javascript/src/translations/hu.json +24 -3
  18. package/app/javascript/src/translations/id.json +24 -3
  19. package/app/javascript/src/translations/it.json +24 -3
  20. package/app/javascript/src/translations/ja.json +24 -3
  21. package/app/javascript/src/translations/ko.json +24 -3
  22. package/app/javascript/src/translations/nl.json +24 -3
  23. package/app/javascript/src/translations/pl.json +24 -3
  24. package/app/javascript/src/translations/pt-BR.json +24 -3
  25. package/app/javascript/src/translations/pt.json +24 -3
  26. package/app/javascript/src/translations/ro.json +24 -3
  27. package/app/javascript/src/translations/ru.json +24 -3
  28. package/app/javascript/src/translations/sk.json +24 -3
  29. package/app/javascript/src/translations/sl.json +24 -3
  30. package/app/javascript/src/translations/sv.json +24 -3
  31. package/app/javascript/src/translations/th.json +24 -3
  32. package/app/javascript/src/translations/tr.json +24 -3
  33. package/app/javascript/src/translations/uk.json +24 -3
  34. package/app/javascript/src/translations/vi.json +24 -3
  35. package/app/javascript/src/translations/zh-CN.json +24 -3
  36. package/app/javascript/src/translations/zh-TW.json +24 -3
  37. package/dist/.ready +1 -1
  38. package/dist/Daily.js +2 -2
  39. package/dist/DailyForm.js +2 -2
  40. package/dist/Manage.js +4 -1
  41. package/dist/Manage.js.map +1 -1
  42. package/dist/Telnyx.js +2 -2
  43. package/dist/Twilio.js +200 -68
  44. package/dist/Twilio.js.map +1 -1
  45. package/dist/Zoom.js +2 -2
  46. package/dist/cjs/Daily.js +2 -2
  47. package/dist/cjs/DailyForm.js +2 -2
  48. package/dist/cjs/Manage.js +4 -1
  49. package/dist/cjs/Manage.js.map +1 -1
  50. package/dist/cjs/Telnyx.js +2 -2
  51. package/dist/cjs/Twilio.js +199 -67
  52. package/dist/cjs/Twilio.js.map +1 -1
  53. package/dist/cjs/Zoom.js +2 -2
  54. package/dist/cjs/index.js +6 -6
  55. package/dist/cjs/v2/Daily.js +2 -2
  56. package/dist/cjs/v2/DailyForm.js +2 -2
  57. package/dist/cjs/v2/DisconnectedIntegrationsRibbon.js +2 -2
  58. package/dist/cjs/v2/Telnyx.js +2 -2
  59. package/dist/cjs/v2/Twilio.js +199 -67
  60. package/dist/cjs/v2/Twilio.js.map +1 -1
  61. package/dist/cjs/v2/Zoom.js +2 -2
  62. package/dist/cjs/v2/index.js +6 -6
  63. package/dist/index.js +6 -6
  64. package/dist/{query-CySi2Ki7.js → query-BF3HFRA7.js} +2 -2
  65. package/dist/query-BF3HFRA7.js.map +1 -0
  66. package/dist/{query-B3RhGrNb.js → query-gurbhBqu.js} +2 -2
  67. package/dist/query-gurbhBqu.js.map +1 -0
  68. package/dist/{useDailiesApi-BjcmweuZ.js → useDailiesApi-CEJPknLb.js} +2 -2
  69. package/dist/{useDailiesApi-BjcmweuZ.js.map → useDailiesApi-CEJPknLb.js.map} +1 -1
  70. package/dist/{useDailiesApi-C78LSYFo.js → useDailiesApi-aQmuxf-5.js} +2 -2
  71. package/dist/{useDailiesApi-C78LSYFo.js.map → useDailiesApi-aQmuxf-5.js.map} +1 -1
  72. package/dist/{useDisconnectionAlertsApi-BnfMKA7s.js → useDisconnectionAlertsApi-BOc2pEP_.js} +2 -2
  73. package/dist/{useDisconnectionAlertsApi-BnfMKA7s.js.map → useDisconnectionAlertsApi-BOc2pEP_.js.map} +1 -1
  74. package/dist/{useDisconnectionAlertsApi-C8Q2wbVl.js → useDisconnectionAlertsApi-CWMlpOJD.js} +2 -2
  75. package/dist/{useDisconnectionAlertsApi-C8Q2wbVl.js.map → useDisconnectionAlertsApi-CWMlpOJD.js.map} +1 -1
  76. package/dist/{useTelnyxApi-DnNSPd-d.js → useTelnyxApi-Cv5cIiuo.js} +2 -2
  77. package/dist/{useTelnyxApi-DnNSPd-d.js.map → useTelnyxApi-Cv5cIiuo.js.map} +1 -1
  78. package/dist/{useTelnyxApi-DDTzGMgk.js → useTelnyxApi-DS3IVijP.js} +2 -2
  79. package/dist/{useTelnyxApi-DDTzGMgk.js.map → useTelnyxApi-DS3IVijP.js.map} +1 -1
  80. package/dist/{useTwilioApi-D5HpIaB2.js → useTwilioApi-C57UuOda.js} +20 -12
  81. package/dist/useTwilioApi-C57UuOda.js.map +1 -0
  82. package/dist/{useTwilioApi-DPyyUWOs.js → useTwilioApi-CUL0-Xgf.js} +20 -12
  83. package/dist/useTwilioApi-CUL0-Xgf.js.map +1 -0
  84. package/dist/{useZoomApi-B127NAGl.js → useZoomApi-C8AUYMlp.js} +2 -2
  85. package/dist/{useZoomApi-B127NAGl.js.map → useZoomApi-C8AUYMlp.js.map} +1 -1
  86. package/dist/{useZoomApi-CazQYmYH.js → useZoomApi-CkhVE1e8.js} +2 -2
  87. package/dist/{useZoomApi-CazQYmYH.js.map → useZoomApi-CkhVE1e8.js.map} +1 -1
  88. package/dist/v2/Daily.js +2 -2
  89. package/dist/v2/DailyForm.js +2 -2
  90. package/dist/v2/DisconnectedIntegrationsRibbon.js +2 -2
  91. package/dist/v2/Telnyx.js +2 -2
  92. package/dist/v2/Twilio.js +200 -68
  93. package/dist/v2/Twilio.js.map +1 -1
  94. package/dist/v2/Zoom.js +2 -2
  95. package/dist/v2/index.js +6 -6
  96. package/package.json +14 -14
  97. package/dist/query-B3RhGrNb.js.map +0 -1
  98. package/dist/query-CySi2Ki7.js.map +0 -1
  99. package/dist/useTwilioApi-D5HpIaB2.js.map +0 -1
  100. package/dist/useTwilioApi-DPyyUWOs.js.map +0 -1
package/dist/cjs/Zoom.js CHANGED
@@ -8,7 +8,7 @@ var Spinner = require('@bigbinary/neetoui/Spinner');
8
8
  var Typography = require('@bigbinary/neetoui/Typography');
9
9
  var reactI18next = require('react-i18next');
10
10
  var Manage = require('./Manage.js');
11
- var useZoomApi = require('../useZoomApi-B127NAGl.js');
11
+ var useZoomApi = require('../useZoomApi-C8AUYMlp.js');
12
12
  var jsxRuntime = require('react/jsx-runtime');
13
13
  require('@babel/runtime/helpers/defineProperty');
14
14
  require('@bigbinary/neeto-commons-frontend/react-utils');
@@ -24,7 +24,7 @@ require('@bigbinary/neetoui/Alert');
24
24
  require('@tanstack/react-query');
25
25
  require('@bigbinary/neeto-commons-frontend/constants');
26
26
  require('axios');
27
- require('../query-CySi2Ki7.js');
27
+ require('../query-BF3HFRA7.js');
28
28
 
29
29
  var Zoom = function Zoom(_ref) {
30
30
  var _ref$connectUrl = _ref.connectUrl,
package/dist/cjs/index.js CHANGED
@@ -8,7 +8,7 @@ var Tag = require('@bigbinary/neetoui/Tag');
8
8
  var ramda = require('ramda');
9
9
  var reactI18next = require('react-i18next');
10
10
  var reactRouterDom = require('react-router-dom');
11
- var useDisconnectionAlertsApi = require('../useDisconnectionAlertsApi-C8Q2wbVl.js');
11
+ var useDisconnectionAlertsApi = require('../useDisconnectionAlertsApi-CWMlpOJD.js');
12
12
  var jsxRuntime = require('react/jsx-runtime');
13
13
  var Daily = require('./Daily.js');
14
14
  var DailyForm = require('./DailyForm.js');
@@ -21,7 +21,7 @@ var Connect = require('./Connect.js');
21
21
  var Demo = require('./Demo.js');
22
22
  var Finish = require('./Finish.js');
23
23
  var WalkthroughModal = require('./WalkthroughModal.js');
24
- var query = require('../query-CySi2Ki7.js');
24
+ var query = require('../query-BF3HFRA7.js');
25
25
  require('@babel/runtime/helpers/defineProperty');
26
26
  require('@bigbinary/neeto-cist');
27
27
  require('@bigbinary/neeto-commons-frontend/react-utils');
@@ -38,7 +38,7 @@ require('@tanstack/react-query');
38
38
  require('@bigbinary/neeto-commons-frontend/constants');
39
39
  require('axios');
40
40
  require('i18next');
41
- require('../useDailiesApi-BjcmweuZ.js');
41
+ require('../useDailiesApi-CEJPknLb.js');
42
42
  require('@bigbinary/neeto-commons-frontend/utils');
43
43
  require('@bigbinary/neeto-icons/misc/Daily');
44
44
  require('@bigbinary/neeto-molecules/CopyToClipboardButton');
@@ -55,10 +55,10 @@ require('@bigbinary/neeto-icons/misc/GoogleCalendar');
55
55
  require('@bigbinary/neeto-icons/misc/Google');
56
56
  require('@bigbinary/neeto-molecules/PageLoader');
57
57
  require('@bigbinary/neetoui/formik/Select');
58
- require('../useTelnyxApi-DDTzGMgk.js');
59
- require('../useTwilioApi-DPyyUWOs.js');
58
+ require('../useTelnyxApi-DS3IVijP.js');
59
+ require('../useTwilioApi-CUL0-Xgf.js');
60
60
  require('@bigbinary/neeto-icons/misc/Zoom');
61
- require('../useZoomApi-B127NAGl.js');
61
+ require('../useZoomApi-C8AUYMlp.js');
62
62
  require('@bigbinary/neetoui/Modal');
63
63
  require('classnames');
64
64
  require('../index-dxk7jTL7.js');
@@ -3,7 +3,7 @@
3
3
  var i18next = require('i18next');
4
4
  var neetoCist = require('@bigbinary/neeto-cist');
5
5
  var reactUtils = require('@bigbinary/neeto-commons-frontend/v2/react-utils');
6
- var useDailiesApi = require('../../useDailiesApi-BjcmweuZ.js');
6
+ var useDailiesApi = require('../../useDailiesApi-CEJPknLb.js');
7
7
  var v2_DailyForm = require('./DailyForm.js');
8
8
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
9
9
  var React = require('react');
@@ -19,7 +19,7 @@ require('@tanstack/react-query');
19
19
  require('@bigbinary/neeto-commons-frontend/constants');
20
20
  require('@bigbinary/neeto-commons-frontend/react-utils');
21
21
  require('axios');
22
- require('../../query-CySi2Ki7.js');
22
+ require('../../query-BF3HFRA7.js');
23
23
  require('@bigbinary/neeto-atoms/formik');
24
24
  require('@bigbinary/neeto-molecules/v2/CardLayout');
25
25
  require('@bigbinary/neeto-molecules/v2/Container');
@@ -11,7 +11,7 @@ var Container = require('@bigbinary/neeto-molecules/v2/Container');
11
11
  var Header = require('@bigbinary/neeto-molecules/v2/Header');
12
12
  var reactI18next = require('react-i18next');
13
13
  var reactRouterDom = require('react-router-dom');
14
- var useDailiesApi = require('../../useDailiesApi-BjcmweuZ.js');
14
+ var useDailiesApi = require('../../useDailiesApi-CEJPknLb.js');
15
15
  var yup = require('yup');
16
16
  var v2_WalkthroughModal = require('./WalkthroughModal.js');
17
17
  var jsxRuntime = require('react/jsx-runtime');
@@ -20,7 +20,7 @@ require('@tanstack/react-query');
20
20
  require('@bigbinary/neeto-commons-frontend/constants');
21
21
  require('@bigbinary/neeto-commons-frontend/react-utils');
22
22
  require('axios');
23
- require('../../query-CySi2Ki7.js');
23
+ require('../../query-BF3HFRA7.js');
24
24
  require('@bigbinary/neeto-cist');
25
25
  require('@bigbinary/neeto-commons-frontend/v2/react-utils/withT');
26
26
 
@@ -4,13 +4,13 @@ var neetoAtoms = require('@bigbinary/neeto-atoms');
4
4
  var ramda = require('ramda');
5
5
  var reactI18next = require('react-i18next');
6
6
  var reactRouterDom = require('react-router-dom');
7
- var useDisconnectionAlertsApi = require('../../useDisconnectionAlertsApi-C8Q2wbVl.js');
7
+ var useDisconnectionAlertsApi = require('../../useDisconnectionAlertsApi-CWMlpOJD.js');
8
8
  var jsxRuntime = require('react/jsx-runtime');
9
9
  require('@tanstack/react-query');
10
10
  require('@bigbinary/neeto-commons-frontend/constants');
11
11
  require('@bigbinary/neeto-commons-frontend/react-utils');
12
12
  require('axios');
13
- require('../../query-CySi2Ki7.js');
13
+ require('../../query-BF3HFRA7.js');
14
14
 
15
15
  var IntegrationLinks = function IntegrationLinks(_ref) {
16
16
  var alerts = _ref.alerts,
@@ -8,14 +8,14 @@ var PageLoader = require('@bigbinary/neeto-molecules/v2/PageLoader');
8
8
  var reactI18next = require('react-i18next');
9
9
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
10
10
  var ramda = require('ramda');
11
- var useTelnyxApi = require('../../useTelnyxApi-DDTzGMgk.js');
11
+ var useTelnyxApi = require('../../useTelnyxApi-DS3IVijP.js');
12
12
  var i18next = require('i18next');
13
13
  var yup = require('yup');
14
14
  var jsxRuntime = require('react/jsx-runtime');
15
15
  require('@tanstack/react-query');
16
16
  require('@bigbinary/neeto-commons-frontend/react-utils');
17
17
  require('axios');
18
- require('../../query-CySi2Ki7.js');
18
+ require('../../query-BF3HFRA7.js');
19
19
 
20
20
  function _interopNamespaceDefault(e) {
21
21
  var n = Object.create(null);
@@ -1,22 +1,23 @@
1
1
  'use strict';
2
2
 
3
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
3
  var React = require('react');
5
4
  var formik = require('@bigbinary/neeto-atoms/formik');
6
5
  var neetoCist = require('@bigbinary/neeto-cist');
7
6
  var CardLayout = require('@bigbinary/neeto-molecules/v2/CardLayout');
8
7
  var ramda = require('ramda');
9
8
  var reactI18next = require('react-i18next');
9
+ var neetoAtoms = require('@bigbinary/neeto-atoms');
10
10
  var jsxRuntime = require('react/jsx-runtime');
11
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
11
12
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
12
13
  var reactUtils = require('@bigbinary/neeto-commons-frontend/v2/react-utils');
13
- var useTwilioApi = require('../../useTwilioApi-DPyyUWOs.js');
14
+ var useTwilioApi = require('../../useTwilioApi-CUL0-Xgf.js');
14
15
  var i18next = require('i18next');
15
16
  var yup = require('yup');
16
17
  require('@tanstack/react-query');
17
18
  require('@bigbinary/neeto-commons-frontend/react-utils');
18
19
  require('axios');
19
- require('../../query-CySi2Ki7.js');
20
+ require('../../query-BF3HFRA7.js');
20
21
 
21
22
  function _interopNamespaceDefault(e) {
22
23
  var n = Object.create(null);
@@ -37,13 +38,60 @@ function _interopNamespaceDefault(e) {
37
38
 
38
39
  var yup__namespace = /*#__PURE__*/_interopNamespaceDefault(yup);
39
40
 
40
- function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
41
- function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
41
+ var CONNECTION_TYPES = {
42
+ PHONE_NUMBER: "phone_number",
43
+ MESSAGING_SERVICE: "messaging_service"
44
+ };
45
+
46
+ var ConnectionTypeCard = function ConnectionTypeCard(_ref) {
47
+ var value = _ref.value,
48
+ selected = _ref.selected,
49
+ title = _ref.title,
50
+ description = _ref.description,
51
+ _ref$recommended = _ref.recommended,
52
+ recommended = _ref$recommended === void 0 ? false : _ref$recommended,
53
+ onSelect = _ref.onSelect,
54
+ children = _ref.children;
55
+ var _useTranslation = reactI18next.useTranslation(),
56
+ t = _useTranslation.t;
57
+ var isSelected = selected === value;
58
+ var cardClass = "flex w-full cursor-pointer flex-col gap-y-2 neeto-ui-rounded border p-4 ".concat(isSelected ? "border-green-700 bg-green-50" : "neeto-ui-border-gray-200");
59
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
60
+ className: cardClass,
61
+ onClick: function onClick() {
62
+ return onSelect(value);
63
+ },
64
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
65
+ className: "flex items-center gap-x-2",
66
+ children: [/*#__PURE__*/jsxRuntime.jsx("input", {
67
+ value: value,
68
+ checked: isSelected,
69
+ name: "connectionType",
70
+ type: "radio",
71
+ onChange: function onChange() {
72
+ return onSelect(value);
73
+ },
74
+ onClick: function onClick(e) {
75
+ return e.stopPropagation();
76
+ }
77
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
78
+ className: "font-semibold",
79
+ children: title
80
+ }), recommended && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Badge, {
81
+ variant: "green-subtle",
82
+ label: t("neetoIntegrations.twilio.connectionType.messagingService.recommendedBadge")
83
+ })]
84
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
85
+ className: "text-sm neeto-ui-text-gray-600",
86
+ children: description
87
+ }), isSelected && children]
88
+ });
89
+ };
90
+
42
91
  var ConfigurationForm = function ConfigurationForm(_ref) {
43
- var _errors$twilioPhoneNu;
92
+ var _errors$twilioPhoneNu, _errors$twilioMessagi;
44
93
  var phoneNumberOptions = _ref.phoneNumberOptions,
45
- _ref$selectedPhoneNum = _ref.selectedPhoneNumber,
46
- selectedPhoneNumber = _ref$selectedPhoneNum === void 0 ? null : _ref$selectedPhoneNum,
94
+ messagingServiceOptions = _ref.messagingServiceOptions,
47
95
  _ref$initialFocusRef = _ref.initialFocusRef,
48
96
  initialFocusRef = _ref$initialFocusRef === void 0 ? null : _ref$initialFocusRef,
49
97
  _ref$isUsingOverlay = _ref.isUsingOverlay,
@@ -53,51 +101,88 @@ var ConfigurationForm = function ConfigurationForm(_ref) {
53
101
  var _useTranslation = reactI18next.useTranslation(),
54
102
  t = _useTranslation.t;
55
103
  var setFieldValue = formikProps.setFieldValue,
56
- setValues = formikProps.setValues,
57
- errors = formikProps.errors,
58
104
  values = formikProps.values,
59
- initialValues = formikProps.initialValues;
60
- React.useEffect(function () {
61
- selectedPhoneNumber && setFieldValue("twilioPhoneNumber", selectedPhoneNumber);
62
- }, [selectedPhoneNumber, initialValues]);
105
+ errors = formikProps.errors;
106
+ var handleConnectionTypeChange = function handleConnectionTypeChange(nextType) {
107
+ setFieldValue("connectionType", nextType);
108
+ if (nextType === CONNECTION_TYPES.PHONE_NUMBER) {
109
+ setFieldValue("twilioMessagingService", null);
110
+ } else {
111
+ setFieldValue("twilioPhoneNumber", null);
112
+ }
113
+ };
114
+ var senderOptionsAvailable = phoneNumberOptions !== null || messagingServiceOptions !== null;
63
115
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
64
- className: "flex w-full flex-col gap-y-4",
65
- children: [/*#__PURE__*/jsxRuntime.jsx("div", {
66
- className: "flex w-full",
67
- children: /*#__PURE__*/jsxRuntime.jsx(formik.Input, {
116
+ className: "flex w-full flex-col gap-y-6",
117
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
118
+ className: "flex w-full flex-col gap-y-4",
119
+ children: [/*#__PURE__*/jsxRuntime.jsx(formik.Input, {
68
120
  required: true,
69
121
  autoFocus: !isUsingOverlay,
70
122
  "data-testid": "integrations-twilio-sid",
71
123
  label: t("neetoIntegrations.twilio.sid"),
72
124
  name: "twilioSid",
73
125
  ref: initialFocusRef
74
- })
75
- }), /*#__PURE__*/jsxRuntime.jsx("div", {
76
- className: "flex w-full",
77
- children: /*#__PURE__*/jsxRuntime.jsx(formik.Input, {
126
+ }), /*#__PURE__*/jsxRuntime.jsx(formik.Input, {
78
127
  required: true,
79
128
  "data-testid": "integrations-twilio-auth-token",
80
129
  label: t("neetoIntegrations.twilio.authToken"),
81
130
  name: "twilioAuthToken"
82
- })
83
- }), phoneNumberOptions && /*#__PURE__*/jsxRuntime.jsx("div", {
84
- className: "flex w-full",
85
- children: /*#__PURE__*/jsxRuntime.jsx(formik.Select, {
86
- error: (_errors$twilioPhoneNu = errors.twilioPhoneNumber) === null || _errors$twilioPhoneNu === void 0 ? void 0 : _errors$twilioPhoneNu.value,
87
- label: t("neetoIntegrations.common.phNo"),
88
- name: "twilioPhoneNumber",
89
- options: phoneNumberOptions,
90
- size: "large",
91
- onChange: function onChange(selected) {
92
- return setValues(_objectSpread$1(_objectSpread$1({}, values), {}, {
93
- twilioPhoneNumber: selected
94
- }));
95
- }
96
- })
131
+ })]
132
+ }), senderOptionsAvailable && /*#__PURE__*/jsxRuntime.jsxs("div", {
133
+ className: "flex w-full flex-col gap-y-4",
134
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
135
+ children: [/*#__PURE__*/jsxRuntime.jsx("div", {
136
+ className: "font-semibold",
137
+ children: t("neetoIntegrations.twilio.smsSendingMethod.title")
138
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
139
+ className: "text-sm neeto-ui-text-gray-600",
140
+ children: t("neetoIntegrations.twilio.smsSendingMethod.subtitle")
141
+ })]
142
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
143
+ className: "flex w-full flex-col gap-y-3",
144
+ children: [/*#__PURE__*/jsxRuntime.jsx(ConnectionTypeCard, {
145
+ selected: values.connectionType,
146
+ value: CONNECTION_TYPES.PHONE_NUMBER,
147
+ description: t("neetoIntegrations.twilio.connectionType.phoneNumber.description"),
148
+ title: t("neetoIntegrations.twilio.connectionType.phoneNumber.label"),
149
+ onSelect: handleConnectionTypeChange,
150
+ children: /*#__PURE__*/jsxRuntime.jsx(formik.Select, {
151
+ error: (_errors$twilioPhoneNu = errors.twilioPhoneNumber) === null || _errors$twilioPhoneNu === void 0 ? void 0 : _errors$twilioPhoneNu.value,
152
+ label: t("neetoIntegrations.common.phNo"),
153
+ name: "twilioPhoneNumber",
154
+ options: phoneNumberOptions !== null && phoneNumberOptions !== void 0 ? phoneNumberOptions : [],
155
+ size: "large",
156
+ onChange: function onChange(selected) {
157
+ return setFieldValue("twilioPhoneNumber", selected);
158
+ }
159
+ })
160
+ }), /*#__PURE__*/jsxRuntime.jsx(ConnectionTypeCard, {
161
+ recommended: true,
162
+ selected: values.connectionType,
163
+ value: CONNECTION_TYPES.MESSAGING_SERVICE,
164
+ description: t("neetoIntegrations.twilio.connectionType.messagingService.description"),
165
+ title: t("neetoIntegrations.twilio.connectionType.messagingService.label"),
166
+ onSelect: handleConnectionTypeChange,
167
+ children: /*#__PURE__*/jsxRuntime.jsx(formik.Select, {
168
+ error: (_errors$twilioMessagi = errors.twilioMessagingService) === null || _errors$twilioMessagi === void 0 ? void 0 : _errors$twilioMessagi.value,
169
+ label: t("neetoIntegrations.twilio.messagingService.label"),
170
+ name: "twilioMessagingService",
171
+ options: messagingServiceOptions !== null && messagingServiceOptions !== void 0 ? messagingServiceOptions : [],
172
+ size: "large",
173
+ placeholder: t("neetoIntegrations.twilio.messagingService.placeholder"),
174
+ onChange: function onChange(selected) {
175
+ return setFieldValue("twilioMessagingService", selected);
176
+ }
177
+ })
178
+ })]
179
+ })]
97
180
  })]
98
181
  });
99
182
  };
100
183
 
184
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
185
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
101
186
  var useTwilio = function useTwilio(_ref) {
102
187
  var _ref$onConnect = _ref.onConnect,
103
188
  onConnect = _ref$onConnect === void 0 ? neetoCist.noop : _ref$onConnect,
@@ -115,28 +200,37 @@ var useTwilio = function useTwilio(_ref) {
115
200
  _useStateWithDependen2 = _slicedToArray(_useStateWithDependen, 2),
116
201
  credentials = _useStateWithDependen2[0],
117
202
  setCredentials = _useStateWithDependen2[1];
118
- var _useFetchTwilioPhoneN = useTwilioApi.useFetchTwilioPhoneNumbers({
203
+ var _useFetchTwilioSender = useTwilioApi.useFetchTwilioSenderOptions({
119
204
  credentials: credentials,
120
205
  formRef: formRef
121
206
  }),
122
- phoneNumbers = _useFetchTwilioPhoneN.data,
123
- isPhoneNumbersLoading = _useFetchTwilioPhoneN.isLoading;
207
+ senderOptions = _useFetchTwilioSender.data,
208
+ isSenderOptionsLoading = _useFetchTwilioSender.isLoading;
209
+ var phoneNumbers = senderOptions === null || senderOptions === void 0 ? void 0 : senderOptions.phoneNumbers;
210
+ var messagingServices = senderOptions === null || senderOptions === void 0 ? void 0 : senderOptions.messagingServices;
124
211
  var _useCreateTwilioConfi = useTwilioApi.useCreateTwilioConfiguration({
125
212
  integrable: integrable
126
213
  }),
127
214
  saveConfiguration = _useCreateTwilioConfi.mutate,
128
215
  isSubmitting = _useCreateTwilioConfi.isPending;
129
216
  var handleSubmit = function handleSubmit(values) {
130
- var _values$twilioPhoneNu;
131
- var payload = {
217
+ var _values$twilioMessagi, _values$twilioMessagi2, _values$twilioPhoneNu;
218
+ var credentialsPayload = {
132
219
  twilio_sid: values.twilioSid,
133
- twilio_auth_token: values.twilioAuthToken,
134
- twilio_phone_number_sid: (_values$twilioPhoneNu = values.twilioPhoneNumber) === null || _values$twilioPhoneNu === void 0 ? void 0 : _values$twilioPhoneNu.value
220
+ twilio_auth_token: values.twilioAuthToken
135
221
  };
136
- if (!phoneNumbers && !(configuration !== null && configuration !== void 0 && configuration.twilioPhoneNumber)) {
137
- setCredentials(payload);
222
+ if (!senderOptions && !(configuration !== null && configuration !== void 0 && configuration.connectionType)) {
223
+ setCredentials(credentialsPayload);
138
224
  return;
139
225
  }
226
+ var payload = values.connectionType === CONNECTION_TYPES.MESSAGING_SERVICE ? _objectSpread(_objectSpread({}, credentialsPayload), {}, {
227
+ connection_type: CONNECTION_TYPES.MESSAGING_SERVICE,
228
+ twilio_messaging_service_sid: (_values$twilioMessagi = values.twilioMessagingService) === null || _values$twilioMessagi === void 0 ? void 0 : _values$twilioMessagi.value,
229
+ twilio_messaging_service_friendly_name: (_values$twilioMessagi2 = values.twilioMessagingService) === null || _values$twilioMessagi2 === void 0 ? void 0 : _values$twilioMessagi2.label
230
+ }) : _objectSpread(_objectSpread({}, credentialsPayload), {}, {
231
+ connection_type: CONNECTION_TYPES.PHONE_NUMBER,
232
+ twilio_phone_number_sid: (_values$twilioPhoneNu = values.twilioPhoneNumber) === null || _values$twilioPhoneNu === void 0 ? void 0 : _values$twilioPhoneNu.value
233
+ });
140
234
  saveConfiguration(payload, {
141
235
  onSuccess: onConnect
142
236
  });
@@ -144,37 +238,64 @@ var useTwilio = function useTwilio(_ref) {
144
238
  return {
145
239
  handleSubmit: handleSubmit,
146
240
  phoneNumbers: phoneNumbers,
241
+ messagingServices: messagingServices,
147
242
  isConfigurationLoading: isConfigurationLoading,
148
- isPhoneNumbersLoading: isPhoneNumbersLoading,
243
+ isSenderOptionsLoading: isSenderOptionsLoading,
149
244
  isSubmitting: isSubmitting,
150
245
  configuration: configuration
151
246
  };
152
247
  };
153
248
 
154
- var buildTwilioConfigurationValidationSchema = function buildTwilioConfigurationValidationSchema(isTwilioPhoneRequired) {
249
+ var buildTwilioConfigurationValidationSchema = function buildTwilioConfigurationValidationSchema() {
155
250
  return yup__namespace.object().shape({
156
251
  twilioSid: yup__namespace.string().required(i18next.t("neetoIntegrations.twilio.validations.sidReq")),
157
252
  twilioAuthToken: yup__namespace.string().required(i18next.t("neetoIntegrations.twilio.validations.authTokenReq")),
158
- twilioPhoneNumber: isTwilioPhoneRequired ? yup__namespace.object().shape({
159
- label: yup__namespace.string(),
160
- value: yup__namespace.string().required(i18next.t("neetoIntegrations.twilio.validations.phNumReq"))
161
- }) : null
253
+ connectionType: yup__namespace.string().oneOf([CONNECTION_TYPES.PHONE_NUMBER, CONNECTION_TYPES.MESSAGING_SERVICE]).required(),
254
+ twilioPhoneNumber: yup__namespace.object().nullable().when("connectionType", {
255
+ is: CONNECTION_TYPES.PHONE_NUMBER,
256
+ then: function then(schema) {
257
+ return schema.shape({
258
+ label: yup__namespace.string(),
259
+ value: yup__namespace.string().required(i18next.t("neetoIntegrations.twilio.validations.phNumReq"))
260
+ });
261
+ }
262
+ }),
263
+ twilioMessagingService: yup__namespace.object().nullable().when("connectionType", {
264
+ is: CONNECTION_TYPES.MESSAGING_SERVICE,
265
+ then: function then(schema) {
266
+ return schema.shape({
267
+ label: yup__namespace.string(),
268
+ value: yup__namespace.string().required(i18next.t("neetoIntegrations.twilio.validations.messagingServiceReq"))
269
+ });
270
+ }
271
+ })
162
272
  });
163
273
  };
164
274
  var buildPhoneNumberOptions = function buildPhoneNumberOptions(phoneNumbers) {
165
- return phoneNumbers === null || phoneNumbers === void 0 ? void 0 : phoneNumbers.map(function (_ref) {
275
+ var _phoneNumbers$map;
276
+ return (_phoneNumbers$map = phoneNumbers === null || phoneNumbers === void 0 ? void 0 : phoneNumbers.map(function (_ref) {
166
277
  var phoneNumber = _ref.phoneNumber,
167
278
  sid = _ref.sid;
168
279
  return {
169
280
  label: phoneNumber,
170
281
  value: sid
171
282
  };
172
- });
283
+ })) !== null && _phoneNumbers$map !== void 0 ? _phoneNumbers$map : [];
284
+ };
285
+ var buildMessagingServiceOptions = function buildMessagingServiceOptions(messagingServices) {
286
+ var _messagingServices$ma;
287
+ return (_messagingServices$ma = messagingServices === null || messagingServices === void 0 ? void 0 : messagingServices.map(function (_ref2) {
288
+ var sid = _ref2.sid,
289
+ friendlyName = _ref2.friendlyName;
290
+ return {
291
+ label: friendlyName,
292
+ value: sid
293
+ };
294
+ })) !== null && _messagingServices$ma !== void 0 ? _messagingServices$ma : [];
173
295
  };
174
296
 
175
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
176
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
177
297
  var Twilio = function Twilio(_ref) {
298
+ var _configuration$twilio, _configuration$twilio2;
178
299
  var _ref$integrable = _ref.integrable,
179
300
  integrable = _ref$integrable === void 0 ? null : _ref$integrable,
180
301
  _ref$onClose = _ref.onClose,
@@ -192,26 +313,37 @@ var Twilio = function Twilio(_ref) {
192
313
  }),
193
314
  handleSubmit = _useTwilio.handleSubmit,
194
315
  phoneNumbers = _useTwilio.phoneNumbers,
316
+ messagingServices = _useTwilio.messagingServices,
195
317
  isConfigurationLoading = _useTwilio.isConfigurationLoading,
196
- isPhoneNumbersLoading = _useTwilio.isPhoneNumbersLoading,
318
+ isSenderOptionsLoading = _useTwilio.isSenderOptionsLoading,
197
319
  isSubmitting = _useTwilio.isSubmitting,
198
320
  configuration = _useTwilio.configuration;
199
321
  var phoneNumberOptions = buildPhoneNumberOptions(phoneNumbers);
322
+ var messagingServiceOptions = buildMessagingServiceOptions(messagingServices);
200
323
  var selectedPhoneNumber = neetoCist._findBy({
201
324
  label: configuration === null || configuration === void 0 ? void 0 : configuration.twilioPhoneNumber
202
325
  }, phoneNumberOptions);
203
- var isLoading = isPhoneNumbersLoading || isConfigurationLoading;
326
+ var selectedMessagingService = neetoCist._findBy({
327
+ value: configuration === null || configuration === void 0 ? void 0 : configuration.twilioMessagingServiceSid
328
+ }, messagingServiceOptions);
329
+ var initialValues = {
330
+ twilioSid: (_configuration$twilio = configuration === null || configuration === void 0 ? void 0 : configuration.twilioSid) !== null && _configuration$twilio !== void 0 ? _configuration$twilio : "",
331
+ twilioAuthToken: (_configuration$twilio2 = configuration === null || configuration === void 0 ? void 0 : configuration.twilioAuthToken) !== null && _configuration$twilio2 !== void 0 ? _configuration$twilio2 : "",
332
+ connectionType: (configuration === null || configuration === void 0 ? void 0 : configuration.connectionType) || CONNECTION_TYPES.PHONE_NUMBER,
333
+ twilioPhoneNumber: selectedPhoneNumber !== null && selectedPhoneNumber !== void 0 ? selectedPhoneNumber : null,
334
+ twilioMessagingService: selectedMessagingService !== null && selectedMessagingService !== void 0 ? selectedMessagingService : null
335
+ };
336
+ var senderOptionsAvailable = !!phoneNumbers || !!messagingServices;
337
+ var isLoading = isSenderOptionsLoading || isConfigurationLoading;
204
338
  var isSubmitDisabled = function isSubmitDisabled(values) {
205
- return ramda.equals(_objectSpread(_objectSpread({}, configuration), {}, {
206
- twilioPhoneNumber: selectedPhoneNumber
207
- }), values) || isLoading;
339
+ return ramda.equals(initialValues, values) || isLoading;
208
340
  };
209
341
  return /*#__PURE__*/jsxRuntime.jsx(formik.Form, {
210
342
  className: "w-full",
211
343
  formikProps: {
212
344
  enableReinitialize: true,
213
- validationSchema: buildTwilioConfigurationValidationSchema(!!phoneNumbers),
214
- initialValues: configuration,
345
+ validationSchema: buildTwilioConfigurationValidationSchema(),
346
+ initialValues: initialValues,
215
347
  innerRef: formRef,
216
348
  onSubmit: handleSubmit
217
349
  },
@@ -223,16 +355,16 @@ var Twilio = function Twilio(_ref) {
223
355
  onClick: onClose
224
356
  },
225
357
  submitButtonProps: {
226
- label: phoneNumberOptions ? t("neetoIntegrations.common.saveChanges") : t("neetoIntegrations.common.verify"),
358
+ label: senderOptionsAvailable ? t("neetoIntegrations.common.saveChanges") : t("neetoIntegrations.common.verify"),
227
359
  disabled: isSubmitDisabled(formikProps.values) || isSubmitting,
228
- loading: isSubmitting || isPhoneNumbersLoading && !(configuration !== null && configuration !== void 0 && configuration.twilioAuthToken)
360
+ loading: isSubmitting || isSenderOptionsLoading && !(configuration !== null && configuration !== void 0 && configuration.twilioAuthToken)
229
361
  }
230
362
  }),
231
363
  children: /*#__PURE__*/jsxRuntime.jsx(ConfigurationForm, {
232
364
  formikProps: formikProps,
233
365
  initialFocusRef: initialFocusRef,
234
- phoneNumberOptions: phoneNumberOptions,
235
- selectedPhoneNumber: selectedPhoneNumber
366
+ messagingServiceOptions: senderOptionsAvailable ? messagingServiceOptions : null,
367
+ phoneNumberOptions: senderOptionsAvailable ? phoneNumberOptions : null
236
368
  })
237
369
  });
238
370
  }