@bigbinary/neeto-integrations-frontend 2.1.0 → 2.2.0-beta1

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/dist/Twilio.js ADDED
@@ -0,0 +1,395 @@
1
+ import { useEffect, useRef } from 'react';
2
+ import { keysToSnakeCase, noop, _findBy } from '@bigbinary/neeto-cist';
3
+ import ActionBlock from '@bigbinary/neetoui/formik/ActionBlock';
4
+ import FormikFormWrapper from '@bigbinary/neetoui/formik/Form';
5
+ import { prop, equals } from 'ramda';
6
+ import { useTranslation } from 'react-i18next';
7
+ import Input from '@bigbinary/neetoui/formik/Input';
8
+ import Select from '@bigbinary/neetoui/formik/Select';
9
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
10
+ import { useMutationWithInvalidation, useStateWithDependency } from '@bigbinary/neeto-commons-frontend/react-utils';
11
+ import { useQuery } from '@tanstack/react-query';
12
+ import axios from 'axios';
13
+ import i18next from 'i18next';
14
+ import * as yup from 'yup';
15
+
16
+ function _typeof(o) {
17
+ "@babel/helpers - typeof";
18
+
19
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
20
+ return typeof o;
21
+ } : function (o) {
22
+ return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
23
+ }, _typeof(o);
24
+ }
25
+
26
+ function _toPrimitive(input, hint) {
27
+ if (_typeof(input) !== "object" || input === null) return input;
28
+ var prim = input[Symbol.toPrimitive];
29
+ if (prim !== undefined) {
30
+ var res = prim.call(input, hint || "default");
31
+ if (_typeof(res) !== "object") return res;
32
+ throw new TypeError("@@toPrimitive must return a primitive value.");
33
+ }
34
+ return (hint === "string" ? String : Number)(input);
35
+ }
36
+
37
+ function _toPropertyKey(arg) {
38
+ var key = _toPrimitive(arg, "string");
39
+ return _typeof(key) === "symbol" ? key : String(key);
40
+ }
41
+
42
+ function _defineProperty(obj, key, value) {
43
+ key = _toPropertyKey(key);
44
+ if (key in obj) {
45
+ Object.defineProperty(obj, key, {
46
+ value: value,
47
+ enumerable: true,
48
+ configurable: true,
49
+ writable: true
50
+ });
51
+ } else {
52
+ obj[key] = value;
53
+ }
54
+ return obj;
55
+ }
56
+
57
+ function ownKeys$2(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; }
58
+ function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
59
+ var ConfigurationForm = function ConfigurationForm(_ref) {
60
+ var _errors$twilioPhoneNu;
61
+ var phoneNumberOptions = _ref.phoneNumberOptions,
62
+ _ref$selectedPhoneNum = _ref.selectedPhoneNumber,
63
+ selectedPhoneNumber = _ref$selectedPhoneNum === void 0 ? null : _ref$selectedPhoneNum,
64
+ _ref$initialFocusRef = _ref.initialFocusRef,
65
+ initialFocusRef = _ref$initialFocusRef === void 0 ? null : _ref$initialFocusRef,
66
+ _ref$isUsingOverlay = _ref.isUsingOverlay,
67
+ isUsingOverlay = _ref$isUsingOverlay === void 0 ? false : _ref$isUsingOverlay,
68
+ _ref$formikProps = _ref.formikProps,
69
+ formikProps = _ref$formikProps === void 0 ? {} : _ref$formikProps;
70
+ var _useTranslation = useTranslation(),
71
+ t = _useTranslation.t;
72
+ var setFieldValue = formikProps.setFieldValue,
73
+ setValues = formikProps.setValues,
74
+ errors = formikProps.errors,
75
+ values = formikProps.values,
76
+ initialValues = formikProps.initialValues;
77
+ useEffect(function () {
78
+ selectedPhoneNumber && setFieldValue("twilioPhoneNumber", selectedPhoneNumber);
79
+ }, [selectedPhoneNumber, initialValues]);
80
+ return /*#__PURE__*/jsxs("div", {
81
+ className: "flex w-full flex-col gap-y-4",
82
+ children: [/*#__PURE__*/jsx("div", {
83
+ className: "flex w-full",
84
+ children: /*#__PURE__*/jsx(Input, {
85
+ required: true,
86
+ autoFocus: !isUsingOverlay,
87
+ "data-testid": "integrations-twilio-sid",
88
+ label: t("neetoIntegrations.twilio.sid"),
89
+ name: "twilioSid",
90
+ ref: initialFocusRef
91
+ })
92
+ }), /*#__PURE__*/jsx("div", {
93
+ className: "flex w-full",
94
+ children: /*#__PURE__*/jsx(Input, {
95
+ required: true,
96
+ "data-testid": "integrations-twilio-auth-token",
97
+ label: t("neetoIntegrations.twilio.authToken"),
98
+ name: "twilioAuthToken"
99
+ })
100
+ }), phoneNumberOptions && /*#__PURE__*/jsx("div", {
101
+ className: "flex w-full",
102
+ children: /*#__PURE__*/jsx(Select, {
103
+ error: (_errors$twilioPhoneNu = errors.twilioPhoneNumber) === null || _errors$twilioPhoneNu === void 0 ? void 0 : _errors$twilioPhoneNu.value,
104
+ label: t("neetoIntegrations.common.phNo"),
105
+ name: "twilioPhoneNumber",
106
+ options: phoneNumberOptions,
107
+ size: "large",
108
+ onChange: function onChange(selected) {
109
+ return setValues(_objectSpread$2(_objectSpread$2({}, values), {}, {
110
+ twilioPhoneNumber: selected
111
+ }));
112
+ }
113
+ })
114
+ })]
115
+ });
116
+ };
117
+
118
+ function _arrayWithHoles(arr) {
119
+ if (Array.isArray(arr)) return arr;
120
+ }
121
+
122
+ function _iterableToArrayLimit(r, l) {
123
+ var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
124
+ if (null != t) {
125
+ var e,
126
+ n,
127
+ i,
128
+ u,
129
+ a = [],
130
+ f = !0,
131
+ o = !1;
132
+ try {
133
+ if (i = (t = t.call(r)).next, 0 === l) {
134
+ if (Object(t) !== t) return;
135
+ f = !1;
136
+ } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
137
+ } catch (r) {
138
+ o = !0, n = r;
139
+ } finally {
140
+ try {
141
+ if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
142
+ } finally {
143
+ if (o) throw n;
144
+ }
145
+ }
146
+ return a;
147
+ }
148
+ }
149
+
150
+ function _arrayLikeToArray(arr, len) {
151
+ if (len == null || len > arr.length) len = arr.length;
152
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
153
+ return arr2;
154
+ }
155
+
156
+ function _unsupportedIterableToArray(o, minLen) {
157
+ if (!o) return;
158
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
159
+ var n = Object.prototype.toString.call(o).slice(8, -1);
160
+ if (n === "Object" && o.constructor) n = o.constructor.name;
161
+ if (n === "Map" || n === "Set") return Array.from(o);
162
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
163
+ }
164
+
165
+ function _nonIterableRest() {
166
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
167
+ }
168
+
169
+ function _slicedToArray(arr, i) {
170
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
171
+ }
172
+
173
+ var INTEGRATIONS_ENGINE_BASE_URL = "/neeto_integrations";
174
+ var TWILIO_CONFIGURATION_BASE_URL = "".concat(INTEGRATIONS_ENGINE_BASE_URL, "/twilio/sms_configurations");
175
+
176
+ 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; }
177
+ 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), !0).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; }
178
+ var fetchTwilioSmsConfiguration = function fetchTwilioSmsConfiguration(integrable) {
179
+ return axios.get(TWILIO_CONFIGURATION_BASE_URL, {
180
+ params: integrable
181
+ });
182
+ };
183
+ var removeTwilioConfiguration = function removeTwilioConfiguration() {
184
+ return axios["delete"](TWILIO_CONFIGURATION_BASE_URL);
185
+ };
186
+ var getTwilioPhoneNumbers = function getTwilioPhoneNumbers(data) {
187
+ return axios.get("".concat(TWILIO_CONFIGURATION_BASE_URL, "/new"), {
188
+ params: data
189
+ });
190
+ };
191
+ var createTwilioConfiguration = function createTwilioConfiguration(payload, integrable) {
192
+ return axios.post(TWILIO_CONFIGURATION_BASE_URL, _objectSpread$1(_objectSpread$1({}, payload), integrable));
193
+ };
194
+ var twilioApi = {
195
+ fetchTwilioSmsConfiguration: fetchTwilioSmsConfiguration,
196
+ removeTwilioConfiguration: removeTwilioConfiguration,
197
+ getTwilioPhoneNumbers: getTwilioPhoneNumbers,
198
+ createTwilioConfiguration: createTwilioConfiguration
199
+ };
200
+
201
+ var QUERY_KEYS = {
202
+ TWILIO_SMS_CONFIGURATION: "twilio-sms-configuration",
203
+ TWILIO_PHONE_NUMBERS: "twilio-phone-numbers",
204
+ DAILY_CO_DETAILS: "daily-co-details",
205
+ ZOOM_DETAILS: "zoom-details"
206
+ };
207
+
208
+ var useFetchTwilioSmsConfiguration = function useFetchTwilioSmsConfiguration(_ref) {
209
+ var integrable = _ref.integrable;
210
+ return useQuery({
211
+ queryKey: [QUERY_KEYS.TWILIO_SMS_CONFIGURATION, integrable === null || integrable === void 0 ? void 0 : integrable.integrableType, integrable === null || integrable === void 0 ? void 0 : integrable.integrableId],
212
+ queryFn: function queryFn() {
213
+ return twilioApi.fetchTwilioSmsConfiguration(integrable);
214
+ },
215
+ select: function select(response) {
216
+ var _smsConfiguration$twi, _smsConfiguration$twi2, _smsConfiguration$twi3;
217
+ var smsConfiguration = response.smsConfiguration;
218
+ return {
219
+ twilioSid: (_smsConfiguration$twi = smsConfiguration === null || smsConfiguration === void 0 ? void 0 : smsConfiguration.twilioSid) !== null && _smsConfiguration$twi !== void 0 ? _smsConfiguration$twi : "",
220
+ twilioAuthToken: (_smsConfiguration$twi2 = smsConfiguration === null || smsConfiguration === void 0 ? void 0 : smsConfiguration.twilioAuthToken) !== null && _smsConfiguration$twi2 !== void 0 ? _smsConfiguration$twi2 : "",
221
+ twilioPhoneNumber: (_smsConfiguration$twi3 = smsConfiguration === null || smsConfiguration === void 0 ? void 0 : smsConfiguration.twilioPhoneNumber) !== null && _smsConfiguration$twi3 !== void 0 ? _smsConfiguration$twi3 : ""
222
+ };
223
+ }
224
+ });
225
+ };
226
+ var useFetchTwilioPhoneNumbers = function useFetchTwilioPhoneNumbers(_ref2) {
227
+ var _formRef$current, _formRef$current2;
228
+ var credentials = _ref2.credentials,
229
+ formRef = _ref2.formRef;
230
+ return useQuery({
231
+ queryKey: [QUERY_KEYS.TWILIO_PHONE_NUMBERS, {
232
+ credentials: credentials
233
+ }],
234
+ queryFn: function queryFn() {
235
+ return twilioApi.getTwilioPhoneNumbers(keysToSnakeCase(credentials));
236
+ },
237
+ enabled: !!(credentials !== null && credentials !== void 0 && credentials.twilio_sid) || !!(credentials !== null && credentials !== void 0 && credentials.twilioSid) || !!(formRef !== null && formRef !== void 0 && (_formRef$current = formRef.current) !== null && _formRef$current !== void 0 && (_formRef$current = _formRef$current.values) !== null && _formRef$current !== void 0 && _formRef$current.twilioSid) || !!(formRef !== null && formRef !== void 0 && (_formRef$current2 = formRef.current) !== null && _formRef$current2 !== void 0 && (_formRef$current2 = _formRef$current2.values) !== null && _formRef$current2 !== void 0 && _formRef$current2.twilioAuthToken),
238
+ select: prop("phoneNumbers"),
239
+ retry: false
240
+ });
241
+ };
242
+ var useCreateTwilioConfiguration = function useCreateTwilioConfiguration(_ref3) {
243
+ var integrable = _ref3.integrable;
244
+ return useMutationWithInvalidation(function (payload) {
245
+ return twilioApi.createTwilioConfiguration(payload, integrable);
246
+ }, {
247
+ keysToInvalidate: [QUERY_KEYS.TWILIO_SMS_CONFIGURATION, integrable === null || integrable === void 0 ? void 0 : integrable.integrableType, integrable === null || integrable === void 0 ? void 0 : integrable.integrableId]
248
+ });
249
+ };
250
+
251
+ var useTwilio = function useTwilio(_ref) {
252
+ var _ref$onConnect = _ref.onConnect,
253
+ onConnect = _ref$onConnect === void 0 ? noop : _ref$onConnect,
254
+ _ref$formRef = _ref.formRef,
255
+ formRef = _ref$formRef === void 0 ? null : _ref$formRef,
256
+ _ref$integrable = _ref.integrable,
257
+ integrable = _ref$integrable === void 0 ? null : _ref$integrable;
258
+ var _useFetchTwilioSmsCon = useFetchTwilioSmsConfiguration({
259
+ integrable: integrable
260
+ }),
261
+ _useFetchTwilioSmsCon2 = _useFetchTwilioSmsCon.data,
262
+ configuration = _useFetchTwilioSmsCon2 === void 0 ? {} : _useFetchTwilioSmsCon2,
263
+ isConfigurationLoading = _useFetchTwilioSmsCon.isLoading;
264
+ var _useStateWithDependen = useStateWithDependency(configuration),
265
+ _useStateWithDependen2 = _slicedToArray(_useStateWithDependen, 2),
266
+ credentials = _useStateWithDependen2[0],
267
+ setCredentials = _useStateWithDependen2[1];
268
+ var _useFetchTwilioPhoneN = useFetchTwilioPhoneNumbers({
269
+ credentials: credentials,
270
+ formRef: formRef
271
+ }),
272
+ phoneNumbers = _useFetchTwilioPhoneN.data,
273
+ isPhoneNumbersLoading = _useFetchTwilioPhoneN.isLoading;
274
+ var _useCreateTwilioConfi = useCreateTwilioConfiguration({
275
+ integrable: integrable
276
+ }),
277
+ saveConfiguration = _useCreateTwilioConfi.mutate,
278
+ isSubmitting = _useCreateTwilioConfi.isPending;
279
+ var handleSubmit = function handleSubmit(values) {
280
+ var _values$twilioPhoneNu;
281
+ var payload = {
282
+ twilio_sid: values.twilioSid,
283
+ twilio_auth_token: values.twilioAuthToken,
284
+ twilio_phone_number_sid: (_values$twilioPhoneNu = values.twilioPhoneNumber) === null || _values$twilioPhoneNu === void 0 ? void 0 : _values$twilioPhoneNu.value
285
+ };
286
+ if (!phoneNumbers && !(configuration !== null && configuration !== void 0 && configuration.twilioPhoneNumber)) {
287
+ setCredentials(payload);
288
+ return;
289
+ }
290
+ saveConfiguration(payload, {
291
+ onSuccess: onConnect
292
+ });
293
+ };
294
+ return {
295
+ handleSubmit: handleSubmit,
296
+ phoneNumbers: phoneNumbers,
297
+ isConfigurationLoading: isConfigurationLoading,
298
+ isPhoneNumbersLoading: isPhoneNumbersLoading,
299
+ isSubmitting: isSubmitting,
300
+ configuration: configuration
301
+ };
302
+ };
303
+
304
+ var buildTwilioConfigurationValidationSchema = function buildTwilioConfigurationValidationSchema(isTwilioPhoneRequired) {
305
+ return yup.object().shape({
306
+ twilioSid: yup.string().required(i18next.t("neetoIntegrations.twilio.validations.sidReq")),
307
+ twilioAuthToken: yup.string().required(i18next.t("neetoIntegrations.twilio.validations.authTokenReq")),
308
+ twilioPhoneNumber: isTwilioPhoneRequired ? yup.object().shape({
309
+ label: yup.string(),
310
+ value: yup.string().required(i18next.t("neetoIntegrations.twilio.validations.phNumReq"))
311
+ }) : null
312
+ });
313
+ };
314
+ var buildPhoneNumberOptions = function buildPhoneNumberOptions(phoneNumbers) {
315
+ return phoneNumbers === null || phoneNumbers === void 0 ? void 0 : phoneNumbers.map(function (_ref) {
316
+ var phoneNumber = _ref.phoneNumber,
317
+ sid = _ref.sid;
318
+ return {
319
+ label: phoneNumber,
320
+ value: sid
321
+ };
322
+ });
323
+ };
324
+
325
+ 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; }
326
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).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; }
327
+ var Twilio = function Twilio(_ref) {
328
+ var _ref$integrable = _ref.integrable,
329
+ integrable = _ref$integrable === void 0 ? null : _ref$integrable,
330
+ _ref$onClose = _ref.onClose,
331
+ onClose = _ref$onClose === void 0 ? noop : _ref$onClose,
332
+ _ref$onConnect = _ref.onConnect,
333
+ onConnect = _ref$onConnect === void 0 ? noop : _ref$onConnect;
334
+ var _useTranslation = useTranslation(),
335
+ t = _useTranslation.t;
336
+ var initialFocusRef = useRef();
337
+ var formRef = useRef();
338
+ var _useTwilio = useTwilio({
339
+ onConnect: onConnect,
340
+ formRef: formRef,
341
+ integrable: integrable
342
+ }),
343
+ handleSubmit = _useTwilio.handleSubmit,
344
+ phoneNumbers = _useTwilio.phoneNumbers,
345
+ isConfigurationLoading = _useTwilio.isConfigurationLoading,
346
+ isPhoneNumbersLoading = _useTwilio.isPhoneNumbersLoading,
347
+ isSubmitting = _useTwilio.isSubmitting,
348
+ configuration = _useTwilio.configuration;
349
+ var phoneNumberOptions = buildPhoneNumberOptions(phoneNumbers);
350
+ var selectedPhoneNumber = _findBy({
351
+ label: configuration === null || configuration === void 0 ? void 0 : configuration.twilioPhoneNumber
352
+ }, phoneNumberOptions);
353
+ var isLoading = isPhoneNumbersLoading || isConfigurationLoading;
354
+ var isSubmitDisabled = function isSubmitDisabled(values) {
355
+ return equals(_objectSpread(_objectSpread({}, configuration), {}, {
356
+ twilioPhoneNumber: selectedPhoneNumber
357
+ }), values) || isLoading;
358
+ };
359
+ return /*#__PURE__*/jsx(FormikFormWrapper, {
360
+ className: "mx-auto flex w-full max-w-md flex-col p-5",
361
+ formikProps: {
362
+ enableReinitialize: true,
363
+ validationSchema: buildTwilioConfigurationValidationSchema(!!phoneNumbers),
364
+ initialValues: configuration,
365
+ innerRef: formRef,
366
+ onSubmit: handleSubmit
367
+ },
368
+ children: function children(formikProps) {
369
+ return /*#__PURE__*/jsxs(Fragment, {
370
+ children: [/*#__PURE__*/jsx(ConfigurationForm, {
371
+ formikProps: formikProps,
372
+ initialFocusRef: initialFocusRef,
373
+ phoneNumberOptions: phoneNumberOptions,
374
+ selectedPhoneNumber: selectedPhoneNumber
375
+ }), /*#__PURE__*/jsx("div", {
376
+ className: "mt-8",
377
+ children: /*#__PURE__*/jsx(ActionBlock, {
378
+ isSubmitting: isSubmitting,
379
+ cancelButtonProps: {
380
+ onClick: onClose
381
+ },
382
+ submitButtonProps: {
383
+ label: phoneNumberOptions ? t("neetoIntegrations.common.saveChanges") : t("neetoIntegrations.common.verify"),
384
+ disabled: isSubmitDisabled(formikProps.values) || isSubmitting,
385
+ loading: isSubmitting || isPhoneNumbersLoading && !(configuration !== null && configuration !== void 0 && configuration.twilioAuthToken)
386
+ }
387
+ })
388
+ })]
389
+ });
390
+ }
391
+ });
392
+ };
393
+
394
+ export { Twilio as default };
395
+ //# sourceMappingURL=Twilio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Twilio.js","sources":["../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../app/javascript/src/components/Integrations/Twilio/Form.jsx","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../app/javascript/src/constants/urls.js","../app/javascript/src/apis/twilio.js","../app/javascript/src/constants/query.js","../app/javascript/src/hooks/reactQuery/useTwilioApi.js","../app/javascript/src/components/Integrations/Twilio/hooks/useTwilio.js","../app/javascript/src/components/Integrations/Twilio/utils.js","../app/javascript/src/components/Integrations/Twilio/index.jsx"],"sourcesContent":["export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import React, { useEffect } from \"react\";\n\nimport { Input, Select } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nconst ConfigurationForm = ({\n phoneNumberOptions,\n selectedPhoneNumber = null,\n initialFocusRef = null,\n isUsingOverlay = false,\n formikProps = {},\n}) => {\n const { t } = useTranslation();\n const { setFieldValue, setValues, errors, values, initialValues } =\n formikProps;\n\n useEffect(() => {\n selectedPhoneNumber &&\n setFieldValue(\"twilioPhoneNumber\", selectedPhoneNumber);\n }, [selectedPhoneNumber, initialValues]);\n\n return (\n <div className=\"flex w-full flex-col gap-y-4\">\n <div className=\"flex w-full\">\n <Input\n required\n autoFocus={!isUsingOverlay}\n data-testid=\"integrations-twilio-sid\"\n label={t(\"neetoIntegrations.twilio.sid\")}\n name=\"twilioSid\"\n ref={initialFocusRef}\n />\n </div>\n <div className=\"flex w-full\">\n <Input\n required\n data-testid=\"integrations-twilio-auth-token\"\n label={t(\"neetoIntegrations.twilio.authToken\")}\n name=\"twilioAuthToken\"\n />\n </div>\n {phoneNumberOptions && (\n <div className=\"flex w-full\">\n <Select\n error={errors.twilioPhoneNumber?.value}\n label={t(\"neetoIntegrations.common.phNo\")}\n name=\"twilioPhoneNumber\"\n options={phoneNumberOptions}\n size=\"large\"\n onChange={selected =>\n setValues({ ...values, twilioPhoneNumber: selected })\n }\n />\n </div>\n )}\n </div>\n );\n};\n\nexport default ConfigurationForm;\n","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export const INTEGRATIONS_ENGINE_BASE_URL = \"/neeto_integrations\";\nexport const TWILIO_CONFIGURATION_BASE_URL = `${INTEGRATIONS_ENGINE_BASE_URL}/twilio/sms_configurations`;\nexport const INTEGRATIONS_ENGINE_DAILY_URL = `${INTEGRATIONS_ENGINE_BASE_URL}/daily`;\nexport const INTEGRATIONS_ENGINE_ZOOM_URL = `${INTEGRATIONS_ENGINE_BASE_URL}/zoom`;\nexport const INTEGRATION_DETAILS_URL = `${INTEGRATIONS_ENGINE_BASE_URL}/status`;\n","import axios from \"axios\";\n\nimport { TWILIO_CONFIGURATION_BASE_URL } from \"src/constants/urls\";\n\nconst fetchTwilioSmsConfiguration = integrable =>\n axios.get(TWILIO_CONFIGURATION_BASE_URL, { params: integrable });\n\nconst removeTwilioConfiguration = () =>\n axios.delete(TWILIO_CONFIGURATION_BASE_URL);\n\nconst getTwilioPhoneNumbers = data =>\n axios.get(`${TWILIO_CONFIGURATION_BASE_URL}/new`, {\n params: data,\n });\n\nconst createTwilioConfiguration = (payload, integrable) =>\n axios.post(TWILIO_CONFIGURATION_BASE_URL, { ...payload, ...integrable });\n\nconst twilioApi = {\n fetchTwilioSmsConfiguration,\n removeTwilioConfiguration,\n getTwilioPhoneNumbers,\n createTwilioConfiguration,\n};\n\nexport default twilioApi;\n","export const QUERY_KEYS = {\n TWILIO_SMS_CONFIGURATION: \"twilio-sms-configuration\",\n TWILIO_PHONE_NUMBERS: \"twilio-phone-numbers\",\n DAILY_CO_DETAILS: \"daily-co-details\",\n ZOOM_DETAILS: \"zoom-details\",\n};\n","import { useQuery } from \"@tanstack/react-query\";\nimport { keysToSnakeCase } from \"neetocist\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\nimport { prop } from \"ramda\";\n\nimport twilioApi from \"apis/twilio\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nconst useFetchTwilioSmsConfiguration = ({ integrable }) =>\n useQuery({\n queryKey: [\n QUERY_KEYS.TWILIO_SMS_CONFIGURATION,\n integrable?.integrableType,\n integrable?.integrableId,\n ],\n queryFn: () => twilioApi.fetchTwilioSmsConfiguration(integrable),\n select: response => {\n const smsConfiguration = response.smsConfiguration;\n\n return {\n twilioSid: smsConfiguration?.twilioSid ?? \"\",\n twilioAuthToken: smsConfiguration?.twilioAuthToken ?? \"\",\n twilioPhoneNumber: smsConfiguration?.twilioPhoneNumber ?? \"\",\n };\n },\n });\n\nconst useFetchTwilioPhoneNumbers = ({ credentials, formRef }) =>\n useQuery({\n queryKey: [QUERY_KEYS.TWILIO_PHONE_NUMBERS, { credentials }],\n queryFn: () =>\n twilioApi.getTwilioPhoneNumbers(keysToSnakeCase(credentials)),\n enabled:\n !!credentials?.twilio_sid ||\n !!credentials?.twilioSid ||\n !!formRef?.current?.values?.twilioSid ||\n !!formRef?.current?.values?.twilioAuthToken,\n select: prop(\"phoneNumbers\"),\n retry: false,\n });\n\nconst useCreateTwilioConfiguration = ({ integrable }) =>\n useMutationWithInvalidation(\n payload => twilioApi.createTwilioConfiguration(payload, integrable),\n {\n keysToInvalidate: [\n QUERY_KEYS.TWILIO_SMS_CONFIGURATION,\n integrable?.integrableType,\n integrable?.integrableId,\n ],\n }\n );\n\nexport {\n useCreateTwilioConfiguration,\n useFetchTwilioPhoneNumbers,\n useFetchTwilioSmsConfiguration,\n};\n","import { noop } from \"neetocist\";\nimport { useStateWithDependency } from \"neetocommons/react-utils\";\n\nimport {\n useFetchTwilioPhoneNumbers,\n useCreateTwilioConfiguration,\n useFetchTwilioSmsConfiguration,\n} from \"hooks/reactQuery/useTwilioApi\";\n\nconst useTwilio = ({ onConnect = noop, formRef = null, integrable = null }) => {\n const { data: configuration = {}, isLoading: isConfigurationLoading } =\n useFetchTwilioSmsConfiguration({ integrable });\n const [credentials, setCredentials] = useStateWithDependency(configuration);\n const { data: phoneNumbers, isLoading: isPhoneNumbersLoading } =\n useFetchTwilioPhoneNumbers({ credentials, formRef });\n\n const { mutate: saveConfiguration, isPending: isSubmitting } =\n useCreateTwilioConfiguration({ integrable });\n\n const handleSubmit = values => {\n const payload = {\n twilio_sid: values.twilioSid,\n twilio_auth_token: values.twilioAuthToken,\n twilio_phone_number_sid: values.twilioPhoneNumber?.value,\n };\n\n if (!phoneNumbers && !configuration?.twilioPhoneNumber) {\n setCredentials(payload);\n\n return;\n }\n\n saveConfiguration(payload, { onSuccess: onConnect });\n };\n\n return {\n handleSubmit,\n phoneNumbers,\n isConfigurationLoading,\n isPhoneNumbersLoading,\n isSubmitting,\n configuration,\n };\n};\n\nexport default useTwilio;\n","import i18next from \"i18next\";\nimport * as yup from \"yup\";\n\nexport const buildTwilioConfigurationValidationSchema = isTwilioPhoneRequired =>\n yup.object().shape({\n twilioSid: yup\n .string()\n .required(i18next.t(\"neetoIntegrations.twilio.validations.sidReq\")),\n twilioAuthToken: yup\n .string()\n .required(i18next.t(\"neetoIntegrations.twilio.validations.authTokenReq\")),\n twilioPhoneNumber: isTwilioPhoneRequired\n ? yup.object().shape({\n label: yup.string(),\n value: yup\n .string()\n .required(\n i18next.t(\"neetoIntegrations.twilio.validations.phNumReq\")\n ),\n })\n : null,\n });\n\nexport const buildPhoneNumberOptions = phoneNumbers =>\n phoneNumbers?.map(({ phoneNumber, sid }) => ({\n label: phoneNumber,\n value: sid,\n }));\n","import React, { useRef } from \"react\";\n\nimport { noop, _findBy } from \"neetocist\";\nimport { ActionBlock, Form as FormikFormWrapper } from \"neetoui/formik\";\nimport { equals } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Form from \"./Form\";\nimport useTwilio from \"./hooks/useTwilio\";\nimport {\n buildPhoneNumberOptions,\n buildTwilioConfigurationValidationSchema,\n} from \"./utils\";\n\nconst Twilio = ({ integrable = null, onClose = noop, onConnect = noop }) => {\n const { t } = useTranslation();\n const initialFocusRef = useRef();\n const formRef = useRef();\n\n const {\n handleSubmit,\n phoneNumbers,\n isConfigurationLoading,\n isPhoneNumbersLoading,\n isSubmitting,\n configuration,\n } = useTwilio({ onConnect, formRef, integrable });\n\n const phoneNumberOptions = buildPhoneNumberOptions(phoneNumbers);\n\n const selectedPhoneNumber = _findBy(\n { label: configuration?.twilioPhoneNumber },\n phoneNumberOptions\n );\n\n const isLoading = isPhoneNumbersLoading || isConfigurationLoading;\n\n const isSubmitDisabled = values =>\n equals(\n { ...configuration, twilioPhoneNumber: selectedPhoneNumber },\n values\n ) || isLoading;\n\n return (\n <FormikFormWrapper\n className=\"mx-auto flex w-full max-w-md flex-col p-5\"\n formikProps={{\n enableReinitialize: true,\n validationSchema: buildTwilioConfigurationValidationSchema(\n !!phoneNumbers\n ),\n initialValues: configuration,\n innerRef: formRef,\n onSubmit: handleSubmit,\n }}\n >\n {formikProps => (\n <>\n <Form\n {...{\n formikProps,\n initialFocusRef,\n phoneNumberOptions,\n selectedPhoneNumber,\n }}\n />\n <div className=\"mt-8\">\n <ActionBlock\n {...{ isSubmitting }}\n cancelButtonProps={{ onClick: onClose }}\n submitButtonProps={{\n label: phoneNumberOptions\n ? t(\"neetoIntegrations.common.saveChanges\")\n : t(\"neetoIntegrations.common.verify\"),\n disabled: isSubmitDisabled(formikProps.values) || isSubmitting,\n loading:\n isSubmitting ||\n (isPhoneNumbersLoading && !configuration?.twilioAuthToken),\n }}\n />\n </div>\n </>\n )}\n </FormikFormWrapper>\n );\n};\n\nexport default Twilio;\n"],"names":["_typeof","o","Symbol","iterator","constructor","prototype","_toPrimitive","input","hint","prim","toPrimitive","undefined","res","call","TypeError","String","Number","_toPropertyKey","arg","key","_defineProperty","obj","value","toPropertyKey","Object","defineProperty","enumerable","configurable","writable","ConfigurationForm","_ref","_errors$twilioPhoneNu","phoneNumberOptions","_ref$selectedPhoneNum","selectedPhoneNumber","_ref$initialFocusRef","initialFocusRef","_ref$isUsingOverlay","isUsingOverlay","_ref$formikProps","formikProps","_useTranslation","useTranslation","t","setFieldValue","setValues","errors","values","initialValues","useEffect","_jsxs","className","children","_jsx","Input","required","autoFocus","label","name","ref","Select","error","twilioPhoneNumber","options","size","onChange","selected","_objectSpread","_arrayWithHoles","arr","Array","isArray","_iterableToArrayLimit","r","l","e","n","i","u","a","f","next","done","push","length","_arrayLikeToArray","len","arr2","_unsupportedIterableToArray","minLen","arrayLikeToArray","toString","slice","from","test","_nonIterableRest","_slicedToArray","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","INTEGRATIONS_ENGINE_BASE_URL","TWILIO_CONFIGURATION_BASE_URL","concat","fetchTwilioSmsConfiguration","integrable","axios","get","params","removeTwilioConfiguration","getTwilioPhoneNumbers","data","createTwilioConfiguration","payload","post","twilioApi","QUERY_KEYS","TWILIO_SMS_CONFIGURATION","TWILIO_PHONE_NUMBERS","DAILY_CO_DETAILS","ZOOM_DETAILS","useFetchTwilioSmsConfiguration","useQuery","queryKey","integrableType","integrableId","queryFn","select","response","_smsConfiguration$twi","_smsConfiguration$twi2","_smsConfiguration$twi3","smsConfiguration","twilioSid","twilioAuthToken","useFetchTwilioPhoneNumbers","_ref2","_formRef$current","_formRef$current2","credentials","formRef","keysToSnakeCase","enabled","twilio_sid","current","prop","retry","useCreateTwilioConfiguration","_ref3","useMutationWithInvalidation","keysToInvalidate","useTwilio","_ref$onConnect","onConnect","noop","_ref$formRef","_ref$integrable","_useFetchTwilioSmsCon","_useFetchTwilioSmsCon2","configuration","isConfigurationLoading","isLoading","_useStateWithDependen","useStateWithDependency","_useStateWithDependen2","setCredentials","_useFetchTwilioPhoneN","phoneNumbers","isPhoneNumbersLoading","_useCreateTwilioConfi","saveConfiguration","mutate","isSubmitting","isPending","handleSubmit","_values$twilioPhoneNu","twilio_auth_token","twilio_phone_number_sid","onSuccess","buildTwilioConfigurationValidationSchema","isTwilioPhoneRequired","yup","object","shape","string","i18next","buildPhoneNumberOptions","map","phoneNumber","sid","Twilio","_ref$onClose","onClose","useRef","_useTwilio","_findBy","isSubmitDisabled","equals","FormikFormWrapper","enableReinitialize","validationSchema","innerRef","onSubmit","_Fragment","Form","ActionBlock","cancelButtonProps","onClick","submitButtonProps","disabled","loading"],"mappings":"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"}