@bigbinary/neeto-integrations-frontend 2.1.1 → 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/index.js CHANGED
@@ -1,93 +1,332 @@
1
+ export { default as Card } from '@bigbinary/neeto-molecules/IntegrationCard';
2
+ import DisconnectAlert from '@bigbinary/neeto-molecules/IntegrationDisconnectAlert';
3
+ export { default as DisconnectAlert } from '@bigbinary/neeto-molecules/IntegrationDisconnectAlert';
4
+ import WalkthroughModal from '@bigbinary/neeto-molecules/IntegrationWalkthroughModal';
5
+ export { default as WalkthroughModal } from '@bigbinary/neeto-molecules/IntegrationWalkthroughModal';
1
6
  import * as React from 'react';
2
- import React__default from 'react';
7
+ import React__default, { useState, useEffect, useRef } from 'react';
3
8
  import classnames from 'classnames';
4
- import { noop, isNotEmpty } from '@bigbinary/neeto-commons-frontend/pure';
5
- import { joinHyphenCase } from '@bigbinary/neeto-commons-frontend/utils';
6
- import { Dropdown as Dropdown$1, Tag, Tooltip, Typography, Spinner, Button, Alert, Modal as Modal$1 } from '@bigbinary/neetoui';
7
- import { isNotNil } from 'ramda';
8
- import { useTranslation } from 'react-i18next';
9
- import { MenuVertical, Warning, Check } from '@bigbinary/neeto-icons';
10
-
11
- function _extends$1() {
12
- _extends$1 = Object.assign ? Object.assign.bind() : function (target) {
13
- for (var i = 1; i < arguments.length; i++) {
14
- var source = arguments[i];
15
- for (var key in source) {
16
- if (Object.prototype.hasOwnProperty.call(source, key)) {
17
- target[key] = source[key];
18
- }
19
- }
20
- }
21
- return target;
22
- };
23
- return _extends$1.apply(this, arguments);
24
- }
9
+ import { humanize, noop, isPresent, keysToSnakeCase, _findBy, isNotEmpty } from '@bigbinary/neeto-cist';
10
+ import { withT, useMutationWithInvalidation, withTitle, useQueryParams, useStateWithDependency } from '@bigbinary/neeto-commons-frontend/react-utils';
11
+ import { Check } from '@bigbinary/neeto-icons';
12
+ import Button from '@bigbinary/neetoui/Button';
13
+ import Tooltip from '@bigbinary/neetoui/Tooltip';
14
+ import Typography from '@bigbinary/neetoui/Typography';
15
+ import { Trans, useTranslation } from 'react-i18next';
16
+ import i18next, { t as t$1 } from 'i18next';
17
+ import { useQuery } from '@tanstack/react-query';
18
+ import { DEFAULT_STALE_TIME } from '@bigbinary/neeto-commons-frontend/constants';
19
+ import axios from 'axios';
20
+ import Container from '@bigbinary/neeto-molecules/Container';
21
+ import Header from '@bigbinary/neeto-molecules/Header';
22
+ import HelpPopover from '@bigbinary/neeto-molecules/HelpPopover';
23
+ import PageLoader from '@bigbinary/neeto-molecules/PageLoader';
24
+ import Input from '@bigbinary/neetoui/formik/Input';
25
+ import FormikForm from '@bigbinary/neetoui/formik/Form';
26
+ import ActionBlock from '@bigbinary/neetoui/formik/ActionBlock';
27
+ import { useHistory } from 'react-router-dom';
28
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
29
+ import { buildUrl, getQueryParams } from '@bigbinary/neeto-commons-frontend/utils';
30
+ import { Daily as Daily$1, GoogleCalendar as GoogleCalendar$1, Google, Zoom as Zoom$1 } from '@bigbinary/neeto-icons/misc';
31
+ import Callout from '@bigbinary/neetoui/Callout';
32
+ import { prop, equals, isEmpty } from 'ramda';
33
+ import Select from '@bigbinary/neetoui/formik/Select';
34
+ import * as yup from 'yup';
35
+ import NeetoUIModal from '@bigbinary/neetoui/Modal';
36
+ import CopyToClipboardButton from '@bigbinary/neeto-molecules/CopyToClipboardButton';
25
37
 
26
- var renderDataCy = function renderDataCy(label, suffix) {
27
- return "".concat(label.replace(/\./g, "").toLowerCase(), "-").concat(suffix);
28
- };
38
+ function _typeof(o) {
39
+ "@babel/helpers - typeof";
29
40
 
30
- var Menu = Dropdown$1.Menu,
31
- MenuItem = Dropdown$1.MenuItem;
32
- var Dropdown = function Dropdown(_ref) {
33
- var _ref$customDropDown = _ref.customDropDown,
34
- CustomDropdown = _ref$customDropDown === void 0 ? {} : _ref$customDropDown,
35
- _ref$handleManage = _ref.handleManage,
36
- handleManage = _ref$handleManage === void 0 ? noop : _ref$handleManage,
37
- _ref$hideDisconnect = _ref.hideDisconnect,
38
- hideDisconnect = _ref$hideDisconnect === void 0 ? false : _ref$hideDisconnect,
39
- _ref$onDisconnect = _ref.onDisconnect,
40
- onDisconnect = _ref$onDisconnect === void 0 ? noop : _ref$onDisconnect;
41
- var _useTranslation = useTranslation(),
42
- t = _useTranslation.t;
43
- var isManageable = isNotNil(handleManage);
44
- if (isNotNil(CustomDropdown)) {
45
- return CustomDropdown;
41
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
42
+ return typeof o;
43
+ } : function (o) {
44
+ return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
45
+ }, _typeof(o);
46
+ }
47
+
48
+ function _toPrimitive(input, hint) {
49
+ if (_typeof(input) !== "object" || input === null) return input;
50
+ var prim = input[Symbol.toPrimitive];
51
+ if (prim !== undefined) {
52
+ var res = prim.call(input, hint || "default");
53
+ if (_typeof(res) !== "object") return res;
54
+ throw new TypeError("@@toPrimitive must return a primitive value.");
46
55
  }
47
- if (!isManageable && hideDisconnect) {
48
- return null;
56
+ return (hint === "string" ? String : Number)(input);
57
+ }
58
+
59
+ function _toPropertyKey(arg) {
60
+ var key = _toPrimitive(arg, "string");
61
+ return _typeof(key) === "symbol" ? key : String(key);
62
+ }
63
+
64
+ function _defineProperty(obj, key, value) {
65
+ key = _toPropertyKey(key);
66
+ if (key in obj) {
67
+ Object.defineProperty(obj, key, {
68
+ value: value,
69
+ enumerable: true,
70
+ configurable: true,
71
+ writable: true
72
+ });
73
+ } else {
74
+ obj[key] = value;
49
75
  }
50
- return /*#__PURE__*/React__default.createElement(Dropdown$1, {
51
- buttonProps: {
52
- onClick: function onClick(e) {
53
- return e.stopPropagation();
54
- }
55
- },
56
- buttonStyle: "text",
57
- dropdownProps: {
58
- onClick: function onClick(e) {
59
- return e.stopPropagation();
60
- }
61
- },
62
- icon: MenuVertical
63
- }, /*#__PURE__*/React__default.createElement(Menu, null, isManageable && /*#__PURE__*/React__default.createElement(MenuItem.Button, {
64
- onClick: function onClick() {
65
- return handleManage();
66
- }
67
- }, t("neetoIntegrations.common.manage")), !hideDisconnect && /*#__PURE__*/React__default.createElement(MenuItem.Button, {
68
- onClick: function onClick() {
69
- return onDisconnect();
70
- }
71
- }, t("neetoIntegrations.common.disconnect"))));
76
+ return obj;
77
+ }
78
+
79
+ function ownKeys$8(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; }
80
+ function _objectSpread$8(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$8(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$8(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
81
+ var Manage$1 = withT(function (_ref) {
82
+ var t = _ref.t,
83
+ _ref$title = _ref.title,
84
+ title = _ref$title === void 0 ? "" : _ref$title,
85
+ _ref$description = _ref.description,
86
+ description = _ref$description === void 0 ? "" : _ref$description,
87
+ _ref$integration = _ref.integration,
88
+ integration = _ref$integration === void 0 ? "" : _ref$integration,
89
+ _ref$isDisconnectAler = _ref.isDisconnectAlertOpen,
90
+ isDisconnectAlertOpen = _ref$isDisconnectAler === void 0 ? false : _ref$isDisconnectAler,
91
+ _ref$setIsDisconnectA = _ref.setIsDisconnectAlertOpen,
92
+ setIsDisconnectAlertOpen = _ref$setIsDisconnectA === void 0 ? noop : _ref$setIsDisconnectA,
93
+ _ref$isDisconnecting = _ref.isDisconnecting,
94
+ isDisconnecting = _ref$isDisconnecting === void 0 ? false : _ref$isDisconnecting,
95
+ _ref$onConnect = _ref.onConnect,
96
+ onConnect = _ref$onConnect === void 0 ? undefined : _ref$onConnect,
97
+ _ref$onDisconnect = _ref.onDisconnect,
98
+ onDisconnect = _ref$onDisconnect === void 0 ? undefined : _ref$onDisconnect,
99
+ _ref$onClose = _ref.onClose,
100
+ onClose = _ref$onClose === void 0 ? noop : _ref$onClose,
101
+ _ref$Icon = _ref.Icon,
102
+ Icon = _ref$Icon === void 0 ? null : _ref$Icon,
103
+ _ref$isConnected = _ref.isConnected,
104
+ isConnected = _ref$isConnected === void 0 ? false : _ref$isConnected,
105
+ _ref$connectPath = _ref.connectPath,
106
+ connectPath = _ref$connectPath === void 0 ? "" : _ref$connectPath,
107
+ _ref$connectUrl = _ref.connectUrl,
108
+ connectUrl = _ref$connectUrl === void 0 ? "" : _ref$connectUrl,
109
+ _ref$helpDocUrl = _ref.helpDocUrl,
110
+ helpDocUrl = _ref$helpDocUrl === void 0 ? "" : _ref$helpDocUrl,
111
+ _ref$managePath = _ref.managePath,
112
+ managePath = _ref$managePath === void 0 ? "" : _ref$managePath,
113
+ _ref$manageUrl = _ref.manageUrl,
114
+ manageUrl = _ref$manageUrl === void 0 ? "" : _ref$manageUrl,
115
+ _ref$integrationName = _ref.integrationName,
116
+ integrationName = _ref$integrationName === void 0 ? "" : _ref$integrationName,
117
+ _ref$disconnectMessag = _ref.disconnectMessage,
118
+ disconnectMessage = _ref$disconnectMessag === void 0 ? "" : _ref$disconnectMessag,
119
+ _ref$disconnectTitle = _ref.disconnectTitle,
120
+ disconnectTitle = _ref$disconnectTitle === void 0 ? "" : _ref$disconnectTitle,
121
+ _ref$isConnectDisable = _ref.isConnectDisabled,
122
+ isConnectDisabled = _ref$isConnectDisable === void 0 ? false : _ref$isConnectDisable,
123
+ _ref$connectTooltipPr = _ref.connectTooltipProps,
124
+ connectTooltipProps = _ref$connectTooltipPr === void 0 ? null : _ref$connectTooltipPr;
125
+ return /*#__PURE__*/jsxs(Fragment, {
126
+ children: [/*#__PURE__*/jsx("div", {
127
+ className: "mx-auto w-full max-w-3xl",
128
+ children: /*#__PURE__*/jsxs("div", {
129
+ className: "neeto-ui-border-gray-300 neeto-ui-rounded-xl mt-10 w-full space-y-4 border p-6",
130
+ children: [Icon && /*#__PURE__*/jsx(Icon, {
131
+ className: "neeto-ui-text-gray-600",
132
+ size: 48
133
+ }), /*#__PURE__*/jsxs("div", {
134
+ className: "space-y-2",
135
+ children: [/*#__PURE__*/jsxs("div", {
136
+ className: "flex items-center space-x-4",
137
+ children: [/*#__PURE__*/jsx(Typography, {
138
+ className: "neeto-ui-text-gray-800 mb-0.5",
139
+ style: "h2",
140
+ weight: "semibold",
141
+ children: title
142
+ }), isConnected && /*#__PURE__*/jsx("div", {
143
+ className: "neeto-ui-bg-success-500 neeto-ui-text-white neeto-ui-rounded-full flex items-center justify-center p-1",
144
+ children: /*#__PURE__*/jsx(Check, {
145
+ size: 24
146
+ })
147
+ })]
148
+ }), /*#__PURE__*/jsx(Typography, {
149
+ style: "body1",
150
+ weight: "normal",
151
+ className: classnames("neeto-ui-text-gray-800", {
152
+ "break-all": isConnected
153
+ }),
154
+ children: description
155
+ }), helpDocUrl && /*#__PURE__*/jsx(Typography, {
156
+ className: "neeto-ui-text-gray-800",
157
+ style: "body2",
158
+ weight: "normal",
159
+ children: /*#__PURE__*/jsx(Trans, {
160
+ i18nKey: "neetoIntegrations.common.helpDocUrl",
161
+ components: {
162
+ helpLink: /*#__PURE__*/jsx(Button, {
163
+ href: helpDocUrl,
164
+ style: "link",
165
+ target: "_blank"
166
+ })
167
+ },
168
+ values: {
169
+ integration: integrationName || humanize(integration)
170
+ }
171
+ })
172
+ })]
173
+ }), isConnected ? /*#__PURE__*/jsxs("div", {
174
+ className: "space-x-2",
175
+ children: [(managePath || manageUrl) && /*#__PURE__*/jsx(Button, {
176
+ "data-cy": "manage-button",
177
+ href: manageUrl,
178
+ target: manageUrl ? "_blank" : "_self",
179
+ to: managePath,
180
+ label: t("neetoIntegrations.common.manageIntegration", {
181
+ integration: integrationName || humanize(integration)
182
+ })
183
+ }), onDisconnect && /*#__PURE__*/jsx(Button, {
184
+ "data-cy": "disconnect-button",
185
+ style: "secondary",
186
+ label: t("neetoIntegrations.common.disconnectIntegration", {
187
+ integration: integrationName || humanize(integration)
188
+ }),
189
+ onClick: function onClick() {
190
+ return setIsDisconnectAlertOpen(true);
191
+ }
192
+ })]
193
+ }) : /*#__PURE__*/jsx("div", {
194
+ children: /*#__PURE__*/jsx(Tooltip, _objectSpread$8(_objectSpread$8({
195
+ disabled: !isConnectDisabled
196
+ }, connectTooltipProps), {}, {
197
+ children: /*#__PURE__*/jsx("span", {
198
+ children: (connectPath || connectUrl || onConnect) && /*#__PURE__*/jsx(Button, {
199
+ "data-cy": "connect-button",
200
+ disabled: isConnectDisabled,
201
+ href: connectUrl,
202
+ to: connectPath,
203
+ label: t("neetoIntegrations.common.connectIntegration", {
204
+ integration: integrationName || humanize(integration)
205
+ }),
206
+ onClick: onConnect
207
+ })
208
+ })
209
+ }))
210
+ })]
211
+ })
212
+ }), /*#__PURE__*/jsx(DisconnectAlert, {
213
+ isDisconnecting: isDisconnecting,
214
+ onClose: onClose,
215
+ onDisconnect: onDisconnect,
216
+ isOpen: isDisconnectAlertOpen,
217
+ message: disconnectMessage || t("settings.integrations.".concat(integration, ".disconnect.message")),
218
+ title: disconnectTitle || t("settings.integrations.".concat(integration, ".disconnect.title"))
219
+ })]
220
+ });
221
+ });
222
+
223
+ var INTEGRATIONS_ENGINE_BASE_URL = "/neeto_integrations";
224
+ var TWILIO_CONFIGURATION_BASE_URL = "".concat(INTEGRATIONS_ENGINE_BASE_URL, "/twilio/sms_configurations");
225
+ var INTEGRATIONS_ENGINE_DAILY_URL = "".concat(INTEGRATIONS_ENGINE_BASE_URL, "/daily");
226
+ var INTEGRATIONS_ENGINE_ZOOM_URL = "".concat(INTEGRATIONS_ENGINE_BASE_URL, "/zoom");
227
+ var INTEGRATION_DETAILS_URL = "".concat(INTEGRATIONS_ENGINE_BASE_URL, "/status");
228
+
229
+ var create = function create(payload) {
230
+ return axios.post(INTEGRATIONS_ENGINE_DAILY_URL, {
231
+ daily: payload
232
+ });
233
+ };
234
+ var show$1 = function show() {
235
+ return axios.get(INTEGRATIONS_ENGINE_DAILY_URL);
236
+ };
237
+ var destroy$1 = function destroy() {
238
+ return axios["delete"](INTEGRATIONS_ENGINE_DAILY_URL);
239
+ };
240
+ var dailiesApi = {
241
+ create: create,
242
+ show: show$1,
243
+ destroy: destroy$1
72
244
  };
73
245
 
74
- var Status = function Status(_ref) {
75
- var isExpired = _ref.isExpired;
76
- var _useTranslation = useTranslation(),
77
- t = _useTranslation.t;
78
- var tagProps = isExpired ? {
79
- icon: Warning,
80
- label: t("neetoIntegrations.tags.expired"),
81
- style: "warning"
82
- } : {
83
- icon: Check,
84
- label: t("neetoIntegrations.tags.connected"),
85
- style: "success"
86
- };
87
- return /*#__PURE__*/React__default.createElement(Tag, _extends$1({
88
- className: "flex-row-reverse"
89
- }, tagProps));
246
+ var QUERY_KEYS = {
247
+ TWILIO_SMS_CONFIGURATION: "twilio-sms-configuration",
248
+ TWILIO_PHONE_NUMBERS: "twilio-phone-numbers",
249
+ DAILY_CO_DETAILS: "daily-co-details",
250
+ ZOOM_DETAILS: "zoom-details"
251
+ };
252
+
253
+ function ownKeys$7(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; }
254
+ function _objectSpread$7(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$7(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$7(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
255
+ var useCreateDaily = function useCreateDaily() {
256
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
257
+ return useMutationWithInvalidation(dailiesApi.create, _objectSpread$7({
258
+ keysToInvalidate: [QUERY_KEYS.DAILY_CO_DETAILS]
259
+ }, options));
260
+ };
261
+ var useFetchDaily = function useFetchDaily() {
262
+ return useQuery({
263
+ queryKey: [QUERY_KEYS.DAILY_CO_DETAILS],
264
+ queryFn: dailiesApi.show,
265
+ staleTime: DEFAULT_STALE_TIME
266
+ });
90
267
  };
268
+ var useDestroyDaily = function useDestroyDaily(_ref) {
269
+ var onSuccess = _ref.onSuccess;
270
+ return useMutationWithInvalidation(dailiesApi.destroy, {
271
+ keysToInvalidate: [QUERY_KEYS.DAILY_CO_DETAILS],
272
+ onSuccess: onSuccess
273
+ });
274
+ };
275
+
276
+ function _arrayWithHoles(arr) {
277
+ if (Array.isArray(arr)) return arr;
278
+ }
279
+
280
+ function _iterableToArrayLimit(r, l) {
281
+ var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
282
+ if (null != t) {
283
+ var e,
284
+ n,
285
+ i,
286
+ u,
287
+ a = [],
288
+ f = !0,
289
+ o = !1;
290
+ try {
291
+ if (i = (t = t.call(r)).next, 0 === l) {
292
+ if (Object(t) !== t) return;
293
+ f = !1;
294
+ } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
295
+ } catch (r) {
296
+ o = !0, n = r;
297
+ } finally {
298
+ try {
299
+ if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
300
+ } finally {
301
+ if (o) throw n;
302
+ }
303
+ }
304
+ return a;
305
+ }
306
+ }
307
+
308
+ function _arrayLikeToArray(arr, len) {
309
+ if (len == null || len > arr.length) len = arr.length;
310
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
311
+ return arr2;
312
+ }
313
+
314
+ function _unsupportedIterableToArray(o, minLen) {
315
+ if (!o) return;
316
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
317
+ var n = Object.prototype.toString.call(o).slice(8, -1);
318
+ if (n === "Object" && o.constructor) n = o.constructor.name;
319
+ if (n === "Map" || n === "Set") return Array.from(o);
320
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
321
+ }
322
+
323
+ function _nonIterableRest() {
324
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
325
+ }
326
+
327
+ function _slicedToArray(arr, i) {
328
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
329
+ }
91
330
 
92
331
  function _objectWithoutPropertiesLoose(source, excluded) {
93
332
  if (source == null) return {};
@@ -118,154 +357,706 @@ function _objectWithoutProperties(source, excluded) {
118
357
  return target;
119
358
  }
120
359
 
121
- var _excluded$1 = ["disabled", "children"];
122
- var TooltipWrapper = function TooltipWrapper(_ref) {
123
- var disabled = _ref.disabled,
124
- children = _ref.children,
125
- tooltipProps = _objectWithoutProperties(_ref, _excluded$1);
126
- return disabled ? /*#__PURE__*/React__default.createElement(Tooltip, tooltipProps, children) : children;
360
+ var _excluded = ["className", "children"];
361
+ function ownKeys$6(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; }
362
+ function _objectSpread$6(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$6(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$6(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
363
+ var ExternalLink = function ExternalLink(_ref) {
364
+ var _ref$className = _ref.className,
365
+ className = _ref$className === void 0 ? "" : _ref$className,
366
+ _ref$children = _ref.children,
367
+ children = _ref$children === void 0 ? null : _ref$children,
368
+ props = _objectWithoutProperties(_ref, _excluded);
369
+ return /*#__PURE__*/jsx("a", _objectSpread$6(_objectSpread$6({
370
+ className: classnames(["neeto-ui-text-primary-800 hover:neeto-ui-text-primary-800 visited:neeto-ui-text-primary-600 font-medium", className])
371
+ }, props), {}, {
372
+ children: children
373
+ }));
374
+ };
375
+ var ExternalLink$1 = /*#__PURE__*/React__default.memo(ExternalLink);
376
+
377
+ var MANAGE_DAILY_CO_FORM_INITIAL_VALUES = {
378
+ apiKey: ""
127
379
  };
380
+ var DAILY_CO_VALIDATION_SCHEMA = yup.object().shape({
381
+ apiKey: yup.string().trim().required(t$1("neetoIntegrations.errors.required", {
382
+ entity: t$1("neetoIntegrations.daily.apiKey")
383
+ }))
384
+ });
128
385
 
129
- var Card = function Card(_ref) {
130
- var Icon = _ref.icon,
131
- _ref$subIcons = _ref.subIcons,
132
- subIcons = _ref$subIcons === void 0 ? [] : _ref$subIcons,
133
- _ref$label = _ref.label,
134
- label = _ref$label === void 0 ? "" : _ref$label,
386
+ var Form = function Form(_ref) {
387
+ var helpDocUrl = _ref.helpDocUrl,
388
+ videoUrl = _ref.videoUrl,
389
+ onConnect = _ref.onConnect,
390
+ breadcrumbs = _ref.breadcrumbs;
391
+ var _useTranslation = useTranslation(),
392
+ t = _useTranslation.t;
393
+ var history = useHistory();
394
+ var _useState = useState(false),
395
+ _useState2 = _slicedToArray(_useState, 2),
396
+ isDemoModalOpen = _useState2[0],
397
+ setIsDemoModalOpen = _useState2[1];
398
+ var _useCreateDaily = useCreateDaily({
399
+ onSuccess: function onSuccess() {
400
+ return onConnect === null || onConnect === void 0 ? void 0 : onConnect();
401
+ }
402
+ }),
403
+ createDaily = _useCreateDaily.mutate,
404
+ isConnecting = _useCreateDaily.isPending;
405
+ var handleSubmit = function handleSubmit(payload) {
406
+ return createDaily(payload);
407
+ };
408
+ if (isConnecting) {
409
+ return /*#__PURE__*/jsx(PageLoader, {});
410
+ }
411
+ return /*#__PURE__*/jsxs(Container, {
412
+ isHeaderFixed: true,
413
+ children: [/*#__PURE__*/jsx(Header, {
414
+ breadcrumbs: breadcrumbs,
415
+ title: /*#__PURE__*/jsxs("span", {
416
+ className: "flex items-center gap-2",
417
+ children: [t("neetoIntegrations.daily.connect.title"), /*#__PURE__*/jsx(HelpPopover, {
418
+ title: t("neetoIntegrations.daily.connect.title"),
419
+ description: /*#__PURE__*/jsx(Trans, {
420
+ i18nKey: "neetoIntegrations.daily.helpDoc",
421
+ components: {
422
+ externalLink: /*#__PURE__*/jsx(ExternalLink$1, {
423
+ "data-cy": "api-key-help-doc-link",
424
+ href: helpDocUrl,
425
+ rel: "noreferrer",
426
+ target: "_blank"
427
+ })
428
+ }
429
+ }),
430
+ helpLinkProps: {
431
+ label: /*#__PURE__*/jsx(Button, {
432
+ className: "mt-8",
433
+ label: t("neetoIntegrations.daily.walkthroughText"),
434
+ style: "link",
435
+ onClick: function onClick() {
436
+ return setIsDemoModalOpen(true);
437
+ }
438
+ })
439
+ }
440
+ })]
441
+ })
442
+ }), /*#__PURE__*/jsxs("div", {
443
+ className: "mx-auto w-full max-w-md",
444
+ children: [/*#__PURE__*/jsx(FormikForm, {
445
+ formikProps: {
446
+ initialValues: MANAGE_DAILY_CO_FORM_INITIAL_VALUES,
447
+ validationSchema: DAILY_CO_VALIDATION_SCHEMA,
448
+ onSubmit: handleSubmit
449
+ },
450
+ children: /*#__PURE__*/jsxs("div", {
451
+ className: "mt-14 w-full space-y-2",
452
+ children: [/*#__PURE__*/jsx("div", {
453
+ className: "block min-h-20",
454
+ children: /*#__PURE__*/jsx(Input, {
455
+ autoFocus: true,
456
+ required: true,
457
+ label: t("neetoIntegrations.daily.apiKey"),
458
+ name: "apiKey"
459
+ })
460
+ }), /*#__PURE__*/jsx(ActionBlock, {
461
+ cancelButtonProps: {
462
+ onClick: function onClick() {
463
+ return history.goBack();
464
+ }
465
+ },
466
+ isSubmitting: isConnecting,
467
+ submitButtonProps: {
468
+ label: t("neetoIntegrations.common.connect")
469
+ }
470
+ })]
471
+ })
472
+ }), /*#__PURE__*/jsx(WalkthroughModal, {
473
+ videoUrl: videoUrl,
474
+ isOpen: isDemoModalOpen,
475
+ onClose: function onClose() {
476
+ return setIsDemoModalOpen(false);
477
+ }
478
+ })]
479
+ })]
480
+ });
481
+ };
482
+ var Form$1 = withTitle(Form, i18next.t("neetoIntegrations.browserTitles.integrations.dailyco"));
483
+
484
+ var Manage = function Manage(_ref) {
485
+ var description = _ref.description,
486
+ onDisconnect = _ref.onDisconnect;
487
+ var _useState = useState(false),
488
+ _useState2 = _slicedToArray(_useState, 2),
489
+ isDisconnectAlertOpen = _useState2[0],
490
+ setIsDisconnectAlertOpen = _useState2[1];
491
+ var _useFetchDaily = useFetchDaily(),
492
+ _useFetchDaily$data = _useFetchDaily.data,
493
+ _useFetchDaily$data2 = _useFetchDaily$data === void 0 ? {} : _useFetchDaily$data,
494
+ _useFetchDaily$data2$ = _useFetchDaily$data2.metadata,
495
+ metadata = _useFetchDaily$data2$ === void 0 ? {} : _useFetchDaily$data2$,
496
+ isFetching = _useFetchDaily.isFetching;
497
+ var _ref2 = metadata || {},
498
+ _ref2$apiKey = _ref2.apiKey,
499
+ apiKey = _ref2$apiKey === void 0 ? null : _ref2$apiKey;
500
+ var _useTranslation = useTranslation(),
501
+ t = _useTranslation.t;
502
+ var _useDestroyDaily = useDestroyDaily({
503
+ onSuccess: function onSuccess() {
504
+ setIsDisconnectAlertOpen(false);
505
+ onDisconnect === null || onDisconnect === void 0 || onDisconnect();
506
+ }
507
+ }),
508
+ destroyIntegration = _useDestroyDaily.mutate,
509
+ isDisconnecting = _useDestroyDaily.isPending;
510
+ var isConnected = isPresent(apiKey);
511
+ var handleDisconnect = function handleDisconnect() {
512
+ return destroyIntegration("daily");
513
+ };
514
+ if (isFetching || isDisconnecting) return /*#__PURE__*/jsx(PageLoader, {});
515
+ return /*#__PURE__*/jsx(Manage$1, {
516
+ isConnected: isConnected,
517
+ isDisconnectAlertOpen: isDisconnectAlertOpen,
518
+ isDisconnecting: isDisconnecting,
519
+ setIsDisconnectAlertOpen: setIsDisconnectAlertOpen,
520
+ Icon: Daily$1,
521
+ connectPath: buildUrl(window.location.pathname, {
522
+ connect: true
523
+ }),
524
+ integration: "daily",
525
+ description: isConnected ? /*#__PURE__*/jsx(Trans, {
526
+ i18nKey: "neetoIntegrations.daily.yourApiKey",
527
+ values: {
528
+ apiKey: apiKey
529
+ },
530
+ components: {
531
+ wrapper: /*#__PURE__*/jsx("div", {
532
+ className: "neeto-ui-rounded-md mt-2 flex items-center justify-between gap-x-3 border px-3 py-2"
533
+ }),
534
+ span: /*#__PURE__*/jsx("span", {
535
+ className: "break-all text-sm"
536
+ }),
537
+ copy: /*#__PURE__*/jsx(CopyToClipboardButton, {
538
+ className: "flex-shrink-0 self-start",
539
+ style: "text",
540
+ value: apiKey
541
+ })
542
+ }
543
+ }) : description,
544
+ title: isConnected ? t("neetoIntegrations.daily.connected") : t("neetoIntegrations.daily.connect.account"),
545
+ onClose: function onClose() {
546
+ return setIsDisconnectAlertOpen(false);
547
+ },
548
+ onDisconnect: handleDisconnect
549
+ });
550
+ };
551
+
552
+ var Daily = function Daily(_ref) {
553
+ var _ref$isOnboarding = _ref.isOnboarding,
554
+ isOnboarding = _ref$isOnboarding === void 0 ? false : _ref$isOnboarding,
555
+ _ref$helpDocUrl = _ref.helpDocUrl,
556
+ helpDocUrl = _ref$helpDocUrl === void 0 ? "" : _ref$helpDocUrl,
557
+ _ref$videoUrl = _ref.videoUrl,
558
+ videoUrl = _ref$videoUrl === void 0 ? "" : _ref$videoUrl,
135
559
  _ref$description = _ref.description,
136
560
  description = _ref$description === void 0 ? "" : _ref$description,
137
- _ref$className = _ref.className,
138
- className = _ref$className === void 0 ? "" : _ref$className,
139
561
  _ref$onConnect = _ref.onConnect,
140
562
  onConnect = _ref$onConnect === void 0 ? noop : _ref$onConnect,
141
563
  _ref$onDisconnect = _ref.onDisconnect,
142
- onDisconnect = _ref$onDisconnect === void 0 ? noop : _ref$onDisconnect,
143
- _ref$onManage = _ref.onManage,
144
- onManage = _ref$onManage === void 0 ? undefined : _ref$onManage,
145
- _ref$isLoading = _ref.isLoading,
146
- isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
147
- _ref$isConnected = _ref.isConnected,
148
- isConnected = _ref$isConnected === void 0 ? false : _ref$isConnected,
149
- _ref$isFailed = _ref.isFailed,
150
- isFailed = _ref$isFailed === void 0 ? false : _ref$isFailed,
151
- _ref$isExpired = _ref.isExpired,
152
- isExpired = _ref$isExpired === void 0 ? false : _ref$isExpired,
153
- _ref$disabled = _ref.disabled,
154
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
155
- _ref$hidden = _ref.hidden,
156
- hidden = _ref$hidden === void 0 ? false : _ref$hidden,
157
- _ref$hideDisconnect = _ref.hideDisconnect,
158
- hideDisconnect = _ref$hideDisconnect === void 0 ? false : _ref$hideDisconnect,
159
- _ref$onClick = _ref.onClick,
160
- onCardClick = _ref$onClick === void 0 ? undefined : _ref$onClick,
161
- _ref$tooltipProps = _ref.tooltipProps,
162
- tooltipProps = _ref$tooltipProps === void 0 ? {} : _ref$tooltipProps,
163
- _ref$customDropDown = _ref.customDropDown,
164
- customDropDown = _ref$customDropDown === void 0 ? null : _ref$customDropDown,
165
- children = _ref.children;
564
+ onDisconnect = _ref$onDisconnect === void 0 ? noop : _ref$onDisconnect;
565
+ var _useQueryParams = useQueryParams(),
566
+ connect = _useQueryParams.connect;
567
+ var _useFetchDaily = useFetchDaily(),
568
+ _useFetchDaily$data = _useFetchDaily.data,
569
+ _useFetchDaily$data2 = _useFetchDaily$data === void 0 ? {} : _useFetchDaily$data,
570
+ _useFetchDaily$data2$ = _useFetchDaily$data2.metadata,
571
+ metadata = _useFetchDaily$data2$ === void 0 ? {} : _useFetchDaily$data2$;
572
+ var _ref2 = metadata || {},
573
+ _ref2$apiKey = _ref2.apiKey,
574
+ apiKey = _ref2$apiKey === void 0 ? null : _ref2$apiKey;
575
+ if (isPresent(apiKey) && !isOnboarding || !connect) {
576
+ return /*#__PURE__*/jsx(Manage, {
577
+ description: description,
578
+ onDisconnect: onDisconnect
579
+ });
580
+ }
581
+ return /*#__PURE__*/jsx(Form$1, {
582
+ helpDocUrl: helpDocUrl,
583
+ onConnect: onConnect,
584
+ videoUrl: videoUrl
585
+ });
586
+ };
587
+ var index = withTitle(Daily, i18next.t("neetoIntegrations.browserTitles.integrations.dailyco"));
588
+
589
+ function _arrayWithoutHoles(arr) {
590
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
591
+ }
592
+
593
+ function _iterableToArray(iter) {
594
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
595
+ }
596
+
597
+ function _nonIterableSpread() {
598
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
599
+ }
600
+
601
+ function _toConsumableArray(arr) {
602
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
603
+ }
604
+
605
+ var INTEGRATION_STEPS = [{
606
+ step: "1",
607
+ label: t$1("neetoIntegrations.common.connect"),
608
+ isActive: true,
609
+ isCompleted: false
610
+ }, {
611
+ step: "2",
612
+ label: t$1("neetoIntegrations.common.finish"),
613
+ isActive: false,
614
+ isCompleted: false
615
+ }];
616
+ var STEPS = {
617
+ connect: t$1("neetoIntegrations.common.connect"),
618
+ finish: t$1("neetoIntegrations.common.finish")
619
+ };
620
+
621
+ function ownKeys$5(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; }
622
+ function _objectSpread$5(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$5(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$5(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
623
+ var GoogleCalendar = function GoogleCalendar(_ref) {
624
+ var permissionImage = _ref.permissionImage,
625
+ fetchAuthorizationUrl = _ref.fetchAuthorizationUrl,
626
+ handleClose = _ref.handleClose,
627
+ handleRedirect = _ref.handleRedirect;
166
628
  var _useTranslation = useTranslation(),
167
629
  t = _useTranslation.t;
168
- var cardProps = function cardProps() {
169
- return isConnected && isNotNil(onCardClick) ? {
170
- onClick: onCardClick
171
- } : {};
172
- };
173
- return /*#__PURE__*/React__default.createElement(TooltipWrapper, _extends$1({
174
- disabled: disabled,
175
- position: "top",
176
- content: disabled && t("neetoIntegrations.tooltip.integrationNotAvailable")
177
- }, tooltipProps), /*#__PURE__*/React__default.createElement("div", _extends$1({
178
- className: classnames("outline-none neeto-ui-border-gray-300 neeto-ui-shadow-xs hover:neeto-ui-border-gray-500 focus:neeto-ui-border-gray-500 neeto-ui-rounded-lg flex flex-col border p-6 no-underline transition-colors", {
179
- "hover:neeto-ui-bg-100 cursor-not-allowed opacity-50": disabled,
180
- "cursor-pointer": isConnected && isNotNil(onCardClick),
181
- hidden: hidden
182
- }, className)
183
- }, cardProps()), /*#__PURE__*/React__default.createElement("div", {
184
- className: "flex flex-grow justify-between",
185
- "data-cy": "integration-tabs"
186
- }, /*#__PURE__*/React__default.createElement("div", {
187
- className: "flex min-w-0 flex-col justify-end"
188
- }, /*#__PURE__*/React__default.createElement("div", {
189
- className: "relative mb-4 flex h-8"
190
- }, Icon && /*#__PURE__*/React__default.createElement(Icon, {
191
- className: "neeto-ui-text-gray-600",
192
- size: 32
193
- })), /*#__PURE__*/React__default.createElement("div", {
194
- className: "my-auto"
195
- }, /*#__PURE__*/React__default.createElement(Typography, {
196
- className: "mb-2",
197
- "data-cy": renderDataCy(label, "integration-card-label"),
198
- style: "h4",
199
- weight: "semibold"
200
- }, label), /*#__PURE__*/React__default.createElement(Typography, {
201
- className: "break-words",
202
- "data-cy": "".concat(joinHyphenCase(label), "-integration-description"),
203
- style: "body2"
204
- }, description), children)), isNotEmpty(subIcons) && /*#__PURE__*/React__default.createElement("div", {
205
- className: "flex h-24 flex-col gap-2"
206
- }, subIcons.map(function (Icon) {
207
- return /*#__PURE__*/React__default.createElement(Icon, {
208
- className: "neeto-ui-text-gray-600",
209
- key: Icon,
210
- size: 24
630
+ var _useState = useState(INTEGRATION_STEPS),
631
+ _useState2 = _slicedToArray(_useState, 2),
632
+ steps = _useState2[0],
633
+ setSteps = _useState2[1];
634
+ var _getQueryParams = getQueryParams(),
635
+ status = _getQueryParams.status;
636
+ var activeTab = isPresent(status) ? STEPS.finish : STEPS.connect;
637
+ useEffect(function () {
638
+ setSteps(function () {
639
+ var stepsClone = _toConsumableArray(steps);
640
+ stepsClone[0] = _objectSpread$5(_objectSpread$5({}, steps[0]), {}, {
641
+ isActive: activeTab === STEPS.connect,
642
+ isCompleted: activeTab !== STEPS.connect
643
+ });
644
+ stepsClone[1] = _objectSpread$5(_objectSpread$5({}, steps[1]), {}, {
645
+ isActive: activeTab === STEPS.finish,
646
+ isCompleted: activeTab === STEPS.finish
647
+ });
648
+ return stepsClone;
211
649
  });
212
- }))), /*#__PURE__*/React__default.createElement("div", {
213
- className: "neeto-ui-border-gray-300 mt-4 w-full border-t pt-2"
214
- }, isLoading ? /*#__PURE__*/React__default.createElement("div", {
215
- className: "mt-3 flex items-center justify-start"
216
- }, /*#__PURE__*/React__default.createElement(Spinner, null)) : /*#__PURE__*/React__default.createElement("div", {
217
- className: "flex h-8 items-center justify-between"
218
- }, isConnected && /*#__PURE__*/React__default.createElement(Status, {
219
- isExpired: isExpired
220
- }), isFailed && /*#__PURE__*/React__default.createElement(Button, {
221
- className: "neeto-ui-text-warning-500",
222
- "data-cy": renderDataCy(label, "connect-button"),
223
- disabled: disabled || isLoading,
224
- label: t("neetoIntegrations.common.tryAgain"),
225
- style: "link",
226
- onClick: onConnect
227
- }), !isConnected && !isFailed && /*#__PURE__*/React__default.createElement(Button, {
228
- "data-cy": renderDataCy(label, "connect-button"),
229
- disabled: disabled || isLoading,
230
- label: t("neetoIntegrations.common.connect"),
231
- style: "link",
232
- onClick: onConnect
233
- }), (isConnected || isFailed) && /*#__PURE__*/React__default.createElement(Dropdown, {
234
- customDropDown: customDropDown,
235
- handleManage: onManage,
236
- hideDisconnect: hideDisconnect,
237
- onDisconnect: onDisconnect
238
- })))));
239
- };
240
-
241
- var _excluded = ["isOpen", "isDisconnecting", "title", "message", "onClose", "onDisconnect"];
242
- var DisconnectAlert = function DisconnectAlert(_ref) {
243
- var _ref$isOpen = _ref.isOpen,
244
- isOpen = _ref$isOpen === void 0 ? false : _ref$isOpen,
245
- _ref$isDisconnecting = _ref.isDisconnecting,
246
- isDisconnecting = _ref$isDisconnecting === void 0 ? false : _ref$isDisconnecting,
247
- _ref$title = _ref.title,
248
- title = _ref$title === void 0 ? "" : _ref$title,
249
- _ref$message = _ref.message,
250
- message = _ref$message === void 0 ? "" : _ref$message,
650
+ }, [activeTab]);
651
+ return /*#__PURE__*/jsxs(Modal, {
652
+ steps: steps,
653
+ isOpen: true,
654
+ onClose: handleClose,
655
+ children: [activeTab === STEPS.connect && /*#__PURE__*/jsxs("div", {
656
+ className: "mx-auto w-full max-w-3xl",
657
+ children: [/*#__PURE__*/jsx(GoogleCalendar$1, {
658
+ size: 48
659
+ }), /*#__PURE__*/jsx(Typography, {
660
+ className: "mb-4 mt-2",
661
+ style: "h2",
662
+ children: t("neetoIntegrations.google.connect.title")
663
+ }), /*#__PURE__*/jsxs("div", {
664
+ className: "flex w-full flex-col items-start",
665
+ children: [/*#__PURE__*/jsx(Callout, {
666
+ className: "block leading-5",
667
+ children: /*#__PURE__*/jsx(Trans, {
668
+ components: {
669
+ bold: /*#__PURE__*/jsx("strong", {})
670
+ },
671
+ i18nKey: "neetoIntegrations.google.connect.reminderToAcceptPermissions",
672
+ values: {
673
+ selectCheckbox: t("neetoIntegrations.google.connect.selectCheckbox")
674
+ }
675
+ })
676
+ }), permissionImage && /*#__PURE__*/jsx("div", {
677
+ className: "neeto-ui-border-gray-300 neeto-ui-rounded-md my-4 overflow-hidden border",
678
+ children: /*#__PURE__*/jsx("img", {
679
+ src: permissionImage
680
+ })
681
+ })]
682
+ }), /*#__PURE__*/jsx(Button, {
683
+ icon: Google,
684
+ label: t("neetoIntegrations.google.connect.signIn"),
685
+ onClick: fetchAuthorizationUrl
686
+ })]
687
+ }), activeTab === STEPS.finish && /*#__PURE__*/jsx(Finish, {
688
+ title: t("neetoIntegrations.google.finish.title"),
689
+ onClick: handleRedirect
690
+ })]
691
+ });
692
+ };
693
+
694
+ function ownKeys$4(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; }
695
+ function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
696
+ var ConfigurationForm = function ConfigurationForm(_ref) {
697
+ var _errors$twilioPhoneNu;
698
+ var phoneNumberOptions = _ref.phoneNumberOptions,
699
+ _ref$selectedPhoneNum = _ref.selectedPhoneNumber,
700
+ selectedPhoneNumber = _ref$selectedPhoneNum === void 0 ? null : _ref$selectedPhoneNum,
701
+ _ref$initialFocusRef = _ref.initialFocusRef,
702
+ initialFocusRef = _ref$initialFocusRef === void 0 ? null : _ref$initialFocusRef,
703
+ _ref$isUsingOverlay = _ref.isUsingOverlay,
704
+ isUsingOverlay = _ref$isUsingOverlay === void 0 ? false : _ref$isUsingOverlay,
705
+ _ref$formikProps = _ref.formikProps,
706
+ formikProps = _ref$formikProps === void 0 ? {} : _ref$formikProps;
707
+ var _useTranslation = useTranslation(),
708
+ t = _useTranslation.t;
709
+ var setFieldValue = formikProps.setFieldValue,
710
+ setValues = formikProps.setValues,
711
+ errors = formikProps.errors,
712
+ values = formikProps.values,
713
+ initialValues = formikProps.initialValues;
714
+ useEffect(function () {
715
+ selectedPhoneNumber && setFieldValue("twilioPhoneNumber", selectedPhoneNumber);
716
+ }, [selectedPhoneNumber, initialValues]);
717
+ return /*#__PURE__*/jsxs("div", {
718
+ className: "flex w-full flex-col gap-y-4",
719
+ children: [/*#__PURE__*/jsx("div", {
720
+ className: "flex w-full",
721
+ children: /*#__PURE__*/jsx(Input, {
722
+ required: true,
723
+ autoFocus: !isUsingOverlay,
724
+ "data-testid": "integrations-twilio-sid",
725
+ label: t("neetoIntegrations.twilio.sid"),
726
+ name: "twilioSid",
727
+ ref: initialFocusRef
728
+ })
729
+ }), /*#__PURE__*/jsx("div", {
730
+ className: "flex w-full",
731
+ children: /*#__PURE__*/jsx(Input, {
732
+ required: true,
733
+ "data-testid": "integrations-twilio-auth-token",
734
+ label: t("neetoIntegrations.twilio.authToken"),
735
+ name: "twilioAuthToken"
736
+ })
737
+ }), phoneNumberOptions && /*#__PURE__*/jsx("div", {
738
+ className: "flex w-full",
739
+ children: /*#__PURE__*/jsx(Select, {
740
+ error: (_errors$twilioPhoneNu = errors.twilioPhoneNumber) === null || _errors$twilioPhoneNu === void 0 ? void 0 : _errors$twilioPhoneNu.value,
741
+ label: t("neetoIntegrations.common.phNo"),
742
+ name: "twilioPhoneNumber",
743
+ options: phoneNumberOptions,
744
+ size: "large",
745
+ onChange: function onChange(selected) {
746
+ return setValues(_objectSpread$4(_objectSpread$4({}, values), {}, {
747
+ twilioPhoneNumber: selected
748
+ }));
749
+ }
750
+ })
751
+ })]
752
+ });
753
+ };
754
+
755
+ function ownKeys$3(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; }
756
+ function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
757
+ var fetchTwilioSmsConfiguration = function fetchTwilioSmsConfiguration(integrable) {
758
+ return axios.get(TWILIO_CONFIGURATION_BASE_URL, {
759
+ params: integrable
760
+ });
761
+ };
762
+ var removeTwilioConfiguration = function removeTwilioConfiguration() {
763
+ return axios["delete"](TWILIO_CONFIGURATION_BASE_URL);
764
+ };
765
+ var getTwilioPhoneNumbers = function getTwilioPhoneNumbers(data) {
766
+ return axios.get("".concat(TWILIO_CONFIGURATION_BASE_URL, "/new"), {
767
+ params: data
768
+ });
769
+ };
770
+ var createTwilioConfiguration = function createTwilioConfiguration(payload, integrable) {
771
+ return axios.post(TWILIO_CONFIGURATION_BASE_URL, _objectSpread$3(_objectSpread$3({}, payload), integrable));
772
+ };
773
+ var twilioApi = {
774
+ fetchTwilioSmsConfiguration: fetchTwilioSmsConfiguration,
775
+ removeTwilioConfiguration: removeTwilioConfiguration,
776
+ getTwilioPhoneNumbers: getTwilioPhoneNumbers,
777
+ createTwilioConfiguration: createTwilioConfiguration
778
+ };
779
+
780
+ var useFetchTwilioSmsConfiguration = function useFetchTwilioSmsConfiguration(_ref) {
781
+ var integrable = _ref.integrable;
782
+ return useQuery({
783
+ queryKey: [QUERY_KEYS.TWILIO_SMS_CONFIGURATION, integrable === null || integrable === void 0 ? void 0 : integrable.integrableType, integrable === null || integrable === void 0 ? void 0 : integrable.integrableId],
784
+ queryFn: function queryFn() {
785
+ return twilioApi.fetchTwilioSmsConfiguration(integrable);
786
+ },
787
+ select: function select(response) {
788
+ var _smsConfiguration$twi, _smsConfiguration$twi2, _smsConfiguration$twi3;
789
+ var smsConfiguration = response.smsConfiguration;
790
+ return {
791
+ twilioSid: (_smsConfiguration$twi = smsConfiguration === null || smsConfiguration === void 0 ? void 0 : smsConfiguration.twilioSid) !== null && _smsConfiguration$twi !== void 0 ? _smsConfiguration$twi : "",
792
+ twilioAuthToken: (_smsConfiguration$twi2 = smsConfiguration === null || smsConfiguration === void 0 ? void 0 : smsConfiguration.twilioAuthToken) !== null && _smsConfiguration$twi2 !== void 0 ? _smsConfiguration$twi2 : "",
793
+ twilioPhoneNumber: (_smsConfiguration$twi3 = smsConfiguration === null || smsConfiguration === void 0 ? void 0 : smsConfiguration.twilioPhoneNumber) !== null && _smsConfiguration$twi3 !== void 0 ? _smsConfiguration$twi3 : ""
794
+ };
795
+ }
796
+ });
797
+ };
798
+ var useFetchTwilioPhoneNumbers = function useFetchTwilioPhoneNumbers(_ref2) {
799
+ var _formRef$current, _formRef$current2;
800
+ var credentials = _ref2.credentials,
801
+ formRef = _ref2.formRef;
802
+ return useQuery({
803
+ queryKey: [QUERY_KEYS.TWILIO_PHONE_NUMBERS, {
804
+ credentials: credentials
805
+ }],
806
+ queryFn: function queryFn() {
807
+ return twilioApi.getTwilioPhoneNumbers(keysToSnakeCase(credentials));
808
+ },
809
+ 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),
810
+ select: prop("phoneNumbers"),
811
+ retry: false
812
+ });
813
+ };
814
+ var useCreateTwilioConfiguration = function useCreateTwilioConfiguration(_ref3) {
815
+ var integrable = _ref3.integrable;
816
+ return useMutationWithInvalidation(function (payload) {
817
+ return twilioApi.createTwilioConfiguration(payload, integrable);
818
+ }, {
819
+ keysToInvalidate: [QUERY_KEYS.TWILIO_SMS_CONFIGURATION, integrable === null || integrable === void 0 ? void 0 : integrable.integrableType, integrable === null || integrable === void 0 ? void 0 : integrable.integrableId]
820
+ });
821
+ };
822
+
823
+ var useTwilio = function useTwilio(_ref) {
824
+ var _ref$onConnect = _ref.onConnect,
825
+ onConnect = _ref$onConnect === void 0 ? noop : _ref$onConnect,
826
+ _ref$formRef = _ref.formRef,
827
+ formRef = _ref$formRef === void 0 ? null : _ref$formRef,
828
+ _ref$integrable = _ref.integrable,
829
+ integrable = _ref$integrable === void 0 ? null : _ref$integrable;
830
+ var _useFetchTwilioSmsCon = useFetchTwilioSmsConfiguration({
831
+ integrable: integrable
832
+ }),
833
+ _useFetchTwilioSmsCon2 = _useFetchTwilioSmsCon.data,
834
+ configuration = _useFetchTwilioSmsCon2 === void 0 ? {} : _useFetchTwilioSmsCon2,
835
+ isConfigurationLoading = _useFetchTwilioSmsCon.isLoading;
836
+ var _useStateWithDependen = useStateWithDependency(configuration),
837
+ _useStateWithDependen2 = _slicedToArray(_useStateWithDependen, 2),
838
+ credentials = _useStateWithDependen2[0],
839
+ setCredentials = _useStateWithDependen2[1];
840
+ var _useFetchTwilioPhoneN = useFetchTwilioPhoneNumbers({
841
+ credentials: credentials,
842
+ formRef: formRef
843
+ }),
844
+ phoneNumbers = _useFetchTwilioPhoneN.data,
845
+ isPhoneNumbersLoading = _useFetchTwilioPhoneN.isLoading;
846
+ var _useCreateTwilioConfi = useCreateTwilioConfiguration({
847
+ integrable: integrable
848
+ }),
849
+ saveConfiguration = _useCreateTwilioConfi.mutate,
850
+ isSubmitting = _useCreateTwilioConfi.isPending;
851
+ var handleSubmit = function handleSubmit(values) {
852
+ var _values$twilioPhoneNu;
853
+ var payload = {
854
+ twilio_sid: values.twilioSid,
855
+ twilio_auth_token: values.twilioAuthToken,
856
+ twilio_phone_number_sid: (_values$twilioPhoneNu = values.twilioPhoneNumber) === null || _values$twilioPhoneNu === void 0 ? void 0 : _values$twilioPhoneNu.value
857
+ };
858
+ if (!phoneNumbers && !(configuration !== null && configuration !== void 0 && configuration.twilioPhoneNumber)) {
859
+ setCredentials(payload);
860
+ return;
861
+ }
862
+ saveConfiguration(payload, {
863
+ onSuccess: onConnect
864
+ });
865
+ };
866
+ return {
867
+ handleSubmit: handleSubmit,
868
+ phoneNumbers: phoneNumbers,
869
+ isConfigurationLoading: isConfigurationLoading,
870
+ isPhoneNumbersLoading: isPhoneNumbersLoading,
871
+ isSubmitting: isSubmitting,
872
+ configuration: configuration
873
+ };
874
+ };
875
+
876
+ var buildTwilioConfigurationValidationSchema = function buildTwilioConfigurationValidationSchema(isTwilioPhoneRequired) {
877
+ return yup.object().shape({
878
+ twilioSid: yup.string().required(i18next.t("neetoIntegrations.twilio.validations.sidReq")),
879
+ twilioAuthToken: yup.string().required(i18next.t("neetoIntegrations.twilio.validations.authTokenReq")),
880
+ twilioPhoneNumber: isTwilioPhoneRequired ? yup.object().shape({
881
+ label: yup.string(),
882
+ value: yup.string().required(i18next.t("neetoIntegrations.twilio.validations.phNumReq"))
883
+ }) : null
884
+ });
885
+ };
886
+ var buildPhoneNumberOptions = function buildPhoneNumberOptions(phoneNumbers) {
887
+ return phoneNumbers === null || phoneNumbers === void 0 ? void 0 : phoneNumbers.map(function (_ref) {
888
+ var phoneNumber = _ref.phoneNumber,
889
+ sid = _ref.sid;
890
+ return {
891
+ label: phoneNumber,
892
+ value: sid
893
+ };
894
+ });
895
+ };
896
+
897
+ 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; }
898
+ 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; }
899
+ var Twilio = function Twilio(_ref) {
900
+ var _ref$integrable = _ref.integrable,
901
+ integrable = _ref$integrable === void 0 ? null : _ref$integrable,
251
902
  _ref$onClose = _ref.onClose,
252
903
  onClose = _ref$onClose === void 0 ? noop : _ref$onClose,
904
+ _ref$onConnect = _ref.onConnect,
905
+ onConnect = _ref$onConnect === void 0 ? noop : _ref$onConnect;
906
+ var _useTranslation = useTranslation(),
907
+ t = _useTranslation.t;
908
+ var initialFocusRef = useRef();
909
+ var formRef = useRef();
910
+ var _useTwilio = useTwilio({
911
+ onConnect: onConnect,
912
+ formRef: formRef,
913
+ integrable: integrable
914
+ }),
915
+ handleSubmit = _useTwilio.handleSubmit,
916
+ phoneNumbers = _useTwilio.phoneNumbers,
917
+ isConfigurationLoading = _useTwilio.isConfigurationLoading,
918
+ isPhoneNumbersLoading = _useTwilio.isPhoneNumbersLoading,
919
+ isSubmitting = _useTwilio.isSubmitting,
920
+ configuration = _useTwilio.configuration;
921
+ var phoneNumberOptions = buildPhoneNumberOptions(phoneNumbers);
922
+ var selectedPhoneNumber = _findBy({
923
+ label: configuration === null || configuration === void 0 ? void 0 : configuration.twilioPhoneNumber
924
+ }, phoneNumberOptions);
925
+ var isLoading = isPhoneNumbersLoading || isConfigurationLoading;
926
+ var isSubmitDisabled = function isSubmitDisabled(values) {
927
+ return equals(_objectSpread$2(_objectSpread$2({}, configuration), {}, {
928
+ twilioPhoneNumber: selectedPhoneNumber
929
+ }), values) || isLoading;
930
+ };
931
+ return /*#__PURE__*/jsx(FormikForm, {
932
+ className: "mx-auto flex w-full max-w-md flex-col p-5",
933
+ formikProps: {
934
+ enableReinitialize: true,
935
+ validationSchema: buildTwilioConfigurationValidationSchema(!!phoneNumbers),
936
+ initialValues: configuration,
937
+ innerRef: formRef,
938
+ onSubmit: handleSubmit
939
+ },
940
+ children: function children(formikProps) {
941
+ return /*#__PURE__*/jsxs(Fragment, {
942
+ children: [/*#__PURE__*/jsx(ConfigurationForm, {
943
+ formikProps: formikProps,
944
+ initialFocusRef: initialFocusRef,
945
+ phoneNumberOptions: phoneNumberOptions,
946
+ selectedPhoneNumber: selectedPhoneNumber
947
+ }), /*#__PURE__*/jsx("div", {
948
+ className: "mt-8",
949
+ children: /*#__PURE__*/jsx(ActionBlock, {
950
+ isSubmitting: isSubmitting,
951
+ cancelButtonProps: {
952
+ onClick: onClose
953
+ },
954
+ submitButtonProps: {
955
+ label: phoneNumberOptions ? t("neetoIntegrations.common.saveChanges") : t("neetoIntegrations.common.verify"),
956
+ disabled: isSubmitDisabled(formikProps.values) || isSubmitting,
957
+ loading: isSubmitting || isPhoneNumbersLoading && !(configuration !== null && configuration !== void 0 && configuration.twilioAuthToken)
958
+ }
959
+ })
960
+ })]
961
+ });
962
+ }
963
+ });
964
+ };
965
+
966
+ var show = function show() {
967
+ return axios.get(INTEGRATION_DETAILS_URL, {
968
+ params: {
969
+ serviceName: "Zoom",
970
+ integrableType: "User"
971
+ }
972
+ });
973
+ };
974
+ var destroy = function destroy() {
975
+ return axios["delete"]("".concat(INTEGRATIONS_ENGINE_ZOOM_URL, "/oauth"));
976
+ };
977
+ var zoomApi = {
978
+ show: show,
979
+ destroy: destroy
980
+ };
981
+
982
+ var useShowZoom = function useShowZoom() {
983
+ return useQuery({
984
+ queryKey: [QUERY_KEYS.ZOOM_DETAILS],
985
+ queryFn: zoomApi.show,
986
+ staleTime: DEFAULT_STALE_TIME
987
+ });
988
+ };
989
+ var useDestroyZoom = function useDestroyZoom(_ref) {
990
+ var _onSuccess = _ref.onSuccess;
991
+ return useMutationWithInvalidation(zoomApi.destroy, {
992
+ keysToInvalidate: [QUERY_KEYS.ZOOM_DETAILS],
993
+ onSuccess: function onSuccess() {
994
+ return _onSuccess === null || _onSuccess === void 0 ? void 0 : _onSuccess();
995
+ }
996
+ });
997
+ };
998
+
999
+ var Zoom = function Zoom(_ref) {
1000
+ var _ref$connectUrl = _ref.connectUrl,
1001
+ connectUrl = _ref$connectUrl === void 0 ? "" : _ref$connectUrl,
1002
+ _ref$description = _ref.description,
1003
+ description = _ref$description === void 0 ? "" : _ref$description,
253
1004
  _ref$onDisconnect = _ref.onDisconnect,
254
- onDisconnect = _ref$onDisconnect === void 0 ? noop : _ref$onDisconnect,
255
- otherProps = _objectWithoutProperties(_ref, _excluded);
1005
+ onDisconnect = _ref$onDisconnect === void 0 ? noop : _ref$onDisconnect;
256
1006
  var _useTranslation = useTranslation(),
257
1007
  t = _useTranslation.t;
258
- return /*#__PURE__*/React__default.createElement(Alert, _extends$1({
259
- closeOnEsc: true,
260
- closeOnOutsideClick: true,
261
- isOpen: isOpen,
262
- isSubmitting: isDisconnecting,
263
- message: message,
264
- submitButtonLabel: t("neetoIntegrations.common.disconnect"),
265
- title: title,
266
- onClose: onClose,
267
- onSubmit: onDisconnect
268
- }, otherProps));
1008
+ var _useState = useState(false),
1009
+ _useState2 = _slicedToArray(_useState, 2),
1010
+ isDisconnectAlertOpen = _useState2[0],
1011
+ setIsDisconnectAlertOpen = _useState2[1];
1012
+ var _useShowZoom = useShowZoom(),
1013
+ _useShowZoom$data = _useShowZoom.data,
1014
+ _useShowZoom$data2 = _useShowZoom$data === void 0 ? {} : _useShowZoom$data,
1015
+ _useShowZoom$data2$me = _useShowZoom$data2.metadata,
1016
+ _useShowZoom$data2$me2 = _useShowZoom$data2$me === void 0 ? {} : _useShowZoom$data2$me,
1017
+ _useShowZoom$data2$me3 = _useShowZoom$data2$me2.email,
1018
+ email = _useShowZoom$data2$me3 === void 0 ? "" : _useShowZoom$data2$me3,
1019
+ isLoading = _useShowZoom.isLoading;
1020
+ var _useDestroyZoom = useDestroyZoom({
1021
+ onSuccess: function onSuccess() {
1022
+ setIsDisconnectAlertOpen(false);
1023
+ onDisconnect === null || onDisconnect === void 0 || onDisconnect();
1024
+ }
1025
+ }),
1026
+ destroyIntegration = _useDestroyZoom.mutate,
1027
+ isDisconnecting = _useDestroyZoom.isPending;
1028
+ var isConnected = isPresent(email);
1029
+ var handleDisconnect = function handleDisconnect() {
1030
+ return destroyIntegration("zoom");
1031
+ };
1032
+ if (isLoading) return /*#__PURE__*/jsx(PageLoader, {});
1033
+ return /*#__PURE__*/jsx(Manage$1, {
1034
+ connectUrl: connectUrl,
1035
+ isConnected: isConnected,
1036
+ isDisconnectAlertOpen: isDisconnectAlertOpen,
1037
+ isDisconnecting: isDisconnecting,
1038
+ setIsDisconnectAlertOpen: setIsDisconnectAlertOpen,
1039
+ Icon: Zoom$1,
1040
+ integration: "zoom",
1041
+ description: isConnected ? /*#__PURE__*/jsx(Trans, {
1042
+ components: {
1043
+ underline: /*#__PURE__*/jsx("u", {
1044
+ className: "font-medium"
1045
+ })
1046
+ },
1047
+ i18nKey: "neetoIntegrations.zoom.account",
1048
+ values: {
1049
+ email: email
1050
+ }
1051
+ }) : description,
1052
+ title: isConnected ? t("neetoIntegrations.zoom.connected") : t("neetoIntegrations.zoom.connect"),
1053
+ onClose: function onClose() {
1054
+ return setIsDisconnectAlertOpen(false);
1055
+ },
1056
+ onDisconnect: function onDisconnect() {
1057
+ return handleDisconnect();
1058
+ }
1059
+ });
269
1060
  };
270
1061
 
271
1062
  var Stepper = function Stepper(_ref) {
@@ -274,42 +1065,47 @@ var Stepper = function Stepper(_ref) {
274
1065
  var isActiveOrCompleted = function isActiveOrCompleted(activeStatus, completedStatus) {
275
1066
  return activeStatus || completedStatus;
276
1067
  };
277
- return /*#__PURE__*/React__default.createElement("ul", {
278
- className: "flex gap-4"
279
- }, steps === null || steps === void 0 ? void 0 : steps.map(function (_ref2) {
280
- var step = _ref2.step,
281
- label = _ref2.label,
282
- isActive = _ref2.isActive,
283
- isCompleted = _ref2.isCompleted;
284
- return /*#__PURE__*/React__default.createElement("li", {
285
- className: "flex items-center gap-4",
286
- key: step
287
- }, step !== "1" && /*#__PURE__*/React__default.createElement("div", {
288
- className: classnames("w-10 border-b", {
289
- "neeto-ui-border-gray-800": isActiveOrCompleted(isActive, isCompleted),
290
- "neeto-ui-border-gray-400": !isActiveOrCompleted(isActive, isCompleted)
291
- })
292
- }), /*#__PURE__*/React__default.createElement("div", {
293
- className: "flex items-center gap-2"
294
- }, /*#__PURE__*/React__default.createElement("div", {
295
- className: classnames("neeto-ui-rounded-full neeto-ui-gray-600 flex h-6 w-6 items-center justify-center border", {
296
- "neeto-ui-bg-success-600 neeto-ui-border-success-600 neeto-ui-text-white": isActive,
297
- "neeto-ui-bg-primary-600 neeto-ui-border-primary-600 neeto-ui-text-white": isCompleted,
298
- "neeto-ui-border-gray-400": !isActiveOrCompleted(isActive, isCompleted)
299
- })
300
- }, /*#__PURE__*/React__default.createElement(Typography, {
301
- component: "span",
302
- style: "body2",
303
- weight: "normal"
304
- }, step)), /*#__PURE__*/React__default.createElement(Typography, {
305
- style: "body2",
306
- weight: "normal",
307
- className: classnames({
308
- "neeto-ui-text-gray-800": isActiveOrCompleted(isActive, isCompleted),
309
- "neeto-ui-text-gray-600": !isActiveOrCompleted(isActive, isCompleted)
310
- })
311
- }, label)));
312
- }));
1068
+ return /*#__PURE__*/jsx("ul", {
1069
+ className: "flex gap-4",
1070
+ children: steps === null || steps === void 0 ? void 0 : steps.map(function (_ref2) {
1071
+ var step = _ref2.step,
1072
+ label = _ref2.label,
1073
+ isActive = _ref2.isActive,
1074
+ isCompleted = _ref2.isCompleted;
1075
+ return /*#__PURE__*/jsxs("li", {
1076
+ className: "flex items-center gap-4",
1077
+ children: [step !== "1" && /*#__PURE__*/jsx("div", {
1078
+ className: classnames("w-10 border-b", {
1079
+ "neeto-ui-border-gray-800": isActiveOrCompleted(isActive, isCompleted),
1080
+ "neeto-ui-border-gray-400": !isActiveOrCompleted(isActive, isCompleted)
1081
+ })
1082
+ }), /*#__PURE__*/jsxs("div", {
1083
+ className: "flex items-center gap-2",
1084
+ children: [/*#__PURE__*/jsx("div", {
1085
+ className: classnames("neeto-ui-rounded-full neeto-ui-gray-600 flex h-6 w-6 items-center justify-center border", {
1086
+ "neeto-ui-bg-success-600 neeto-ui-border-success-600 neeto-ui-text-white": isActive,
1087
+ "neeto-ui-bg-primary-600 neeto-ui-border-primary-600 neeto-ui-text-white": isCompleted,
1088
+ "neeto-ui-border-gray-400": !isActiveOrCompleted(isActive, isCompleted)
1089
+ }),
1090
+ children: /*#__PURE__*/jsx(Typography, {
1091
+ component: "span",
1092
+ style: "body2",
1093
+ weight: "normal",
1094
+ children: step
1095
+ })
1096
+ }), /*#__PURE__*/jsx(Typography, {
1097
+ style: "body2",
1098
+ weight: "normal",
1099
+ className: classnames({
1100
+ "neeto-ui-text-gray-800": isActiveOrCompleted(isActive, isCompleted),
1101
+ "neeto-ui-text-gray-600": !isActiveOrCompleted(isActive, isCompleted)
1102
+ }),
1103
+ children: label
1104
+ })]
1105
+ })]
1106
+ }, step);
1107
+ })
1108
+ });
313
1109
  };
314
1110
 
315
1111
  var Modal = function Modal(_ref) {
@@ -320,20 +1116,29 @@ var Modal = function Modal(_ref) {
320
1116
  _ref$steps = _ref.steps,
321
1117
  steps = _ref$steps === void 0 ? {} : _ref$steps,
322
1118
  children = _ref.children;
323
- return /*#__PURE__*/React__default.createElement(Modal$1, {
324
- className: "neeto-ui-flex neeto-ui-flex-col neeto-ui-transform-none w-screen overflow-y-auto",
1119
+ return /*#__PURE__*/jsxs(NeetoUIModal, {
325
1120
  isOpen: isOpen,
1121
+ onClose: onClose,
1122
+ className: "neeto-ui-flex neeto-ui-flex-col neeto-ui-transform-none w-screen overflow-y-auto",
326
1123
  size: "fullScreen",
327
- onClose: onClose
328
- }, /*#__PURE__*/React__default.createElement(Modal$1.Header, null, /*#__PURE__*/React__default.createElement(Stepper, {
329
- steps: steps
330
- })), /*#__PURE__*/React__default.createElement(Modal$1.Body, {
331
- className: "neeto-ui-flex neeto-ui-justify-center neeto-ui-items-center neeto-ui-flex-grow"
332
- }, /*#__PURE__*/React__default.createElement("div", {
333
- className: "neeto-ui-w-full py-10"
334
- }, children)));
1124
+ children: [/*#__PURE__*/jsx(NeetoUIModal.Header, {
1125
+ children: /*#__PURE__*/jsx(Stepper, {
1126
+ steps: steps
1127
+ })
1128
+ }), /*#__PURE__*/jsx(NeetoUIModal.Body, {
1129
+ className: "neeto-ui-flex neeto-ui-justify-center neeto-ui-flex-grow",
1130
+ children: /*#__PURE__*/jsx("div", {
1131
+ className: "neeto-ui-w-full py-10",
1132
+ children: children
1133
+ })
1134
+ })]
1135
+ });
335
1136
  };
336
1137
 
1138
+ function getDefaultExportFromCjs (x) {
1139
+ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
1140
+ }
1141
+
337
1142
  var propTypes = {exports: {}};
338
1143
 
339
1144
  /**
@@ -409,9 +1214,14 @@ var factoryWithThrowingShims = function factoryWithThrowingShims() {
409
1214
  // http://fb.me/prop-types-in-prod
410
1215
  propTypes.exports = factoryWithThrowingShims();
411
1216
  }
1217
+ var propTypesExports = propTypes.exports;
1218
+ var PropTypes = /*@__PURE__*/getDefaultExportFromCjs(propTypesExports);
412
1219
 
413
- var Connect = function Connect(_ref) {
414
- var Icon = _ref.Icon,
1220
+ 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; }
1221
+ 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; }
1222
+ var Connect = withT(function (_ref) {
1223
+ var t = _ref.t,
1224
+ Icon = _ref.Icon,
415
1225
  _ref$title = _ref.title,
416
1226
  title = _ref$title === void 0 ? "" : _ref$title,
417
1227
  _ref$description = _ref.description,
@@ -420,56 +1230,74 @@ var Connect = function Connect(_ref) {
420
1230
  buttonProps = _ref$buttonProps === void 0 ? {} : _ref$buttonProps,
421
1231
  _ref$onConnect = _ref.onConnect,
422
1232
  onConnect = _ref$onConnect === void 0 ? noop : _ref$onConnect,
423
- children = _ref.children;
424
- var _useTranslation = useTranslation(),
425
- t = _useTranslation.t;
426
- return /*#__PURE__*/React__default.createElement("div", {
427
- className: "mx-auto w-full max-w-lg"
428
- }, /*#__PURE__*/React__default.createElement(Icon, {
429
- size: 48
430
- }), /*#__PURE__*/React__default.createElement(Typography, {
431
- className: "neeto-ui-text-gray-800 mb-0.5 mt-6",
432
- style: "h2",
433
- weight: "semibold"
434
- }, title), /*#__PURE__*/React__default.createElement(Typography, {
435
- className: "neeto-ui-text-gray-700 mb-8",
436
- style: "body1",
437
- weight: "normal"
438
- }, description), children, /*#__PURE__*/React__default.createElement(Button, _extends$1({
439
- label: t("neetoIntegrations.common.connect"),
440
- onClick: onConnect
441
- }, buttonProps)));
442
- };
1233
+ children = _ref.children,
1234
+ secondaryButtonProps = _ref.secondaryButtonProps;
1235
+ return /*#__PURE__*/jsxs("div", {
1236
+ className: "mx-auto w-full max-w-3xl",
1237
+ children: [/*#__PURE__*/jsxs("div", {
1238
+ className: "mb-6 flex flex-col gap-y-2",
1239
+ children: [/*#__PURE__*/jsx(Icon, {
1240
+ size: 48
1241
+ }), /*#__PURE__*/jsxs("div", {
1242
+ className: "flex flex-col gap-y-1",
1243
+ children: [/*#__PURE__*/jsx(Typography, {
1244
+ style: "h2",
1245
+ children: title
1246
+ }), /*#__PURE__*/jsx(Typography, {
1247
+ style: "body2",
1248
+ children: description
1249
+ })]
1250
+ })]
1251
+ }), children, /*#__PURE__*/jsxs("div", {
1252
+ className: "flex w-full items-center gap-x-3",
1253
+ children: [/*#__PURE__*/jsx(Button, _objectSpread$1({
1254
+ label: t("neetoIntegrations.common.connect"),
1255
+ onClick: onConnect
1256
+ }, buttonProps)), secondaryButtonProps && /*#__PURE__*/jsx(Button, _objectSpread$1({
1257
+ style: "secondary"
1258
+ }, secondaryButtonProps))]
1259
+ })]
1260
+ });
1261
+ });
443
1262
  Connect.prototypes = {
444
1263
  /**
445
1264
  * To specify the Icon to be shown
446
1265
  */
447
- Icon: propTypes.exports.PropTypes.node,
1266
+ Icon: PropTypes.node,
448
1267
  /**
449
1268
  * To specify the title of the connect component
450
1269
  */
451
- title: propTypes.exports.PropTypes.string,
1270
+ title: PropTypes.string,
452
1271
  /**
453
1272
  * To specify the description for connect component
454
1273
  */
455
- description: propTypes.exports.PropTypes.string,
1274
+ description: PropTypes.string,
456
1275
  /**
457
1276
  * To specify the props for the connect button
458
1277
  */
459
- buttonProps: propTypes.exports.PropTypes.object,
1278
+ buttonProps: PropTypes.object,
460
1279
  /**
461
1280
  * Handler function that is triggered when the connect button is clicked.
462
1281
  */
463
- onConnect: propTypes.exports.PropTypes.func
1282
+ onConnect: PropTypes.func
464
1283
  };
465
1284
 
466
1285
  var isYouTubeLink = function isYouTubeLink(videoUrl) {
467
1286
  var youtubeRegex = /^(https?:\/\/)?(www\.)?(youtube\.com|youtu\.be)\//;
468
1287
  return youtubeRegex.test(videoUrl);
469
1288
  };
1289
+ var renderText = function renderText(text, fallbackTranslation) {
1290
+ return isEmpty(text) ? fallbackTranslation : text;
1291
+ };
470
1292
 
471
1293
  var Demo = function Demo(_ref) {
472
- var _ref$onClose = _ref.onClose,
1294
+ var _ref$title = _ref.title,
1295
+ title = _ref$title === void 0 ? "" : _ref$title,
1296
+ _ref$subtitle = _ref.subtitle,
1297
+ subtitle = _ref$subtitle === void 0 ? "" : _ref$subtitle,
1298
+ _ref$iframeTitle = _ref.iframeTitle,
1299
+ iframeTitle = _ref$iframeTitle === void 0 ? "" : _ref$iframeTitle,
1300
+ _ref$onClose = _ref.onClose,
473
1301
  onClose = _ref$onClose === void 0 ? noop : _ref$onClose,
474
1302
  _ref$videoUrl = _ref.videoUrl,
475
1303
  videoUrl = _ref$videoUrl === void 0 ? "" : _ref$videoUrl,
@@ -477,82 +1305,99 @@ var Demo = function Demo(_ref) {
477
1305
  var _useTranslation = useTranslation(),
478
1306
  t = _useTranslation.t;
479
1307
  var renderVideo = function renderVideo(videoUrl) {
480
- return isYouTubeLink(videoUrl) ? /*#__PURE__*/React__default.createElement("div", {
481
- className: "intrinsic-container intrinsic-container-16x9"
482
- }, /*#__PURE__*/React__default.createElement("iframe", {
483
- className: "border-none",
1308
+ return isYouTubeLink(videoUrl) ? /*#__PURE__*/jsx("iframe", {
1309
+ allowFullScreen: true,
1310
+ className: "aspect-video border-none",
484
1311
  frameBorder: "0",
485
1312
  id: "ytplayer",
486
1313
  src: videoUrl,
487
- title: t("neetoIntegrations.demo.iFrameTitle"),
1314
+ title: renderText(iframeTitle, t("neetoIntegrations.demo.iFrameTitle")),
488
1315
  type: "text/html"
489
- })) : /*#__PURE__*/React__default.createElement("video", {
1316
+ }) : /*#__PURE__*/jsx("video", {
490
1317
  autoPlay: true,
491
1318
  controls: true,
492
1319
  muted: true,
493
- className: "max-w-3xl cursor-pointer md:max-w-xl",
494
- id: "walkthrough-video"
495
- }, /*#__PURE__*/React__default.createElement("source", {
496
- src: videoUrl
497
- }));
1320
+ className: "neeto-ui-rounded-xl aspect-video w-full max-w-3xl cursor-pointer",
1321
+ id: "walkthrough-video",
1322
+ children: /*#__PURE__*/jsx("source", {
1323
+ src: videoUrl
1324
+ })
1325
+ });
498
1326
  };
499
- return /*#__PURE__*/React__default.createElement("div", {
500
- className: "mx-auto max-w-3xl md:max-w-xl"
501
- }, /*#__PURE__*/React__default.createElement(Typography, {
502
- className: "neeto-ui-text-gray-800 mt-4 py-2",
503
- style: "h2",
504
- weight: "semibold"
505
- }, t("neetoIntegrations.demo.title")), /*#__PURE__*/React__default.createElement(Typography, {
506
- style: "body2",
507
- weight: "light"
508
- }, t("neetoIntegrations.demo.subtitle")), children, videoUrl && /*#__PURE__*/React__default.createElement("div", {
509
- className: "py-10"
510
- }, renderVideo(videoUrl)), /*#__PURE__*/React__default.createElement("div", {
511
- className: "flex w-full items-start space-x-2"
512
- }, /*#__PURE__*/React__default.createElement(Button, {
513
- label: t("neetoIntegrations.common.finish"),
514
- onClick: onClose
515
- })));
1327
+ return /*#__PURE__*/jsxs("div", {
1328
+ className: "mx-auto w-full max-w-3xl",
1329
+ children: [/*#__PURE__*/jsxs("div", {
1330
+ className: "mb-6 flex flex-col gap-y-1",
1331
+ children: [/*#__PURE__*/jsx(Typography, {
1332
+ style: "h2",
1333
+ children: renderText(title, t("neetoIntegrations.demo.title"))
1334
+ }), /*#__PURE__*/jsx(Typography, {
1335
+ style: "body2",
1336
+ children: renderText(subtitle, t("neetoIntegrations.demo.subtitle"))
1337
+ })]
1338
+ }), children, videoUrl && /*#__PURE__*/jsx("div", {
1339
+ className: "mb-8",
1340
+ children: renderVideo(videoUrl)
1341
+ }), /*#__PURE__*/jsx(Button, {
1342
+ label: t("neetoIntegrations.common.finish"),
1343
+ onClick: onClose
1344
+ })]
1345
+ });
516
1346
  };
517
1347
  Demo.prototypes = {
518
1348
  /**
519
1349
  * To specify whether the integration modal should be opened or closed.
520
1350
  */
521
- onClose: propTypes.exports.func,
1351
+ onClose: PropTypes.func,
522
1352
  /**
523
1353
  * To specify the walkthrough video link
524
1354
  */
525
- videoUrl: propTypes.exports.string
1355
+ videoUrl: PropTypes.string,
1356
+ /**
1357
+ * To specify the title of the demo component
1358
+ */
1359
+ title: PropTypes.string,
1360
+ /**
1361
+ * To specify the subtitle of the demo component
1362
+ */
1363
+ subtitle: PropTypes.string,
1364
+ /**
1365
+ * To specify the title of the video in the iframe
1366
+ */
1367
+ iframeTitle: PropTypes.string
526
1368
  };
527
1369
 
528
1370
  var _path, _defs;
529
1371
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
530
1372
  const SvgSuccess = props => /*#__PURE__*/React.createElement("svg", _extends({
1373
+ xmlns: "http://www.w3.org/2000/svg",
1374
+ xmlnsXlink: "http://www.w3.org/1999/xlink",
531
1375
  width: 72,
532
1376
  height: 72,
533
- fill: "none",
534
- xmlns: "http://www.w3.org/2000/svg",
535
- xmlnsXlink: "http://www.w3.org/1999/xlink"
1377
+ fill: "none"
536
1378
  }, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
537
1379
  fill: "url(#success_svg__a)",
538
1380
  d: "M0 0h72v72H0z"
539
1381
  })), _defs || (_defs = /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("pattern", {
540
1382
  id: "success_svg__a",
541
- patternContentUnits: "objectBoundingBox",
542
1383
  width: 1,
543
- height: 1
1384
+ height: 1,
1385
+ patternContentUnits: "objectBoundingBox"
544
1386
  }, /*#__PURE__*/React.createElement("use", {
545
1387
  xlinkHref: "#success_svg__b",
546
1388
  transform: "scale(.0029)"
547
1389
  })), /*#__PURE__*/React.createElement("image", {
1390
+ xlinkHref: "data:image/png;base64,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WkH/ssvowWQz/YBFlR9ZwAICIBBXAqH1YL0OD+gniPJkO18J3kBp9lTfTfSi+yrepx+Li6hNPxZpEACBeBIIrcB6MXogzynR+Y4q6k0zkpIv/0/E5X8eVtgFArElEMoQgU/hAbz4L7ZfEzQcBEojEEoP1sPwAES1tPMKuUAABJhAKAXW5fAARBVfDRAAASMEQhcicCk8AFE1cjqhEBAAgWwCofNgDYYHIKrZZwLWQQAEjBMIncA6DA9AVI2fQigQBEAgF4FQhQjkMurTXkEbuDGVuRrUzXaIajdQsAkEQMB9AqHyYNvK6Tz+RShEXCGq7p87qAEEQKAHAqES2B7CAxDVHjobu0EABLwlEJoQQY7wAETV2/MFtYEACBRBIDQebFZ4AKJaRAfjUBAAAf8IhEZgyaKUSNO4suG0RE0F6B8y1AwCIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAAC7hD4/8l256QQPdLRAAAAAElFTkSuQmCC",
548
1391
  id: "success_svg__b",
549
1392
  width: 344,
550
- height: 344,
551
- xlinkHref: "data:image/png;base64,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WkH/ssvowWQz/YBFlR9ZwAICIBBXAqH1YL0OD+gniPJkO18J3kBp9lTfTfSi+yrepx+Li6hNPxZpEACBeBIIrcB6MXogzynR+Y4q6k0zkpIv/0/E5X8eVtgFArElEMoQgU/hAbz4L7ZfEzQcBEojEEoP1sPwAES1tPMKuUAABJhAKAXW5fAARBVfDRAAASMEQhcicCk8AFE1cjqhEBAAgWwCofNgDYYHIKrZZwLWQQAEjBMIncA6DA9AVI2fQigQBEAgF4FQhQjkMurTXkEbuDGVuRrUzXaIajdQsAkEQMB9AqHyYNvK6Tz+RShEXCGq7p87qAEEQKAHAqES2B7CAxDVHjobu0EABLwlEJoQQY7wAETV2/MFtYEACBRBIDQebFZ4AKJaRAfjUBAAAf8IhEZgyaKUSNO4suG0RE0F6B8y1AwCIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAAC7hD4/8l256QQPdLRAAAAAElFTkSuQmCC"
1393
+ height: 344
552
1394
  }))));
553
1395
 
554
- var Finish = function Finish(_ref) {
555
- var _ref$onClick = _ref.onClick,
1396
+ 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; }
1397
+ 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; }
1398
+ var Finish = withT(function (_ref) {
1399
+ var t = _ref.t,
1400
+ _ref$onClick = _ref.onClick,
556
1401
  onClick = _ref$onClick === void 0 ? noop : _ref$onClick,
557
1402
  _ref$title = _ref.title,
558
1403
  title = _ref$title === void 0 ? "" : _ref$title,
@@ -561,73 +1406,41 @@ var Finish = function Finish(_ref) {
561
1406
  _ref$secondaryButtonP = _ref.secondaryButtonProps,
562
1407
  secondaryButtonProps = _ref$secondaryButtonP === void 0 ? {} : _ref$secondaryButtonP,
563
1408
  children = _ref.children;
564
- var _useTranslation = useTranslation(),
565
- t = _useTranslation.t;
566
- return /*#__PURE__*/React__default.createElement("div", {
567
- className: "neeto-ui-w-full mx-auto max-w-lg"
568
- }, /*#__PURE__*/React__default.createElement(SvgSuccess, null), /*#__PURE__*/React__default.createElement(Typography, {
569
- className: "neeto-ui-text-gray-800 mb-8 mt-4",
570
- style: "h2",
571
- weight: "semibold"
572
- }, title), children, /*#__PURE__*/React__default.createElement("div", {
573
- className: "flex w-full items-start space-x-2"
574
- }, /*#__PURE__*/React__default.createElement(Button, _extends$1({
575
- label: t("neetoIntegrations.common.continue"),
576
- onClick: onClick
577
- }, buttonProps)), isNotEmpty(secondaryButtonProps) && /*#__PURE__*/React__default.createElement(Button, _extends$1({
578
- style: "secondary"
579
- }, secondaryButtonProps))));
580
- };
1409
+ return /*#__PURE__*/jsxs("div", {
1410
+ className: "mx-auto w-full max-w-3xl",
1411
+ children: [/*#__PURE__*/jsx(SvgSuccess, {}), /*#__PURE__*/jsx(Typography, {
1412
+ className: "mb-6 mt-4",
1413
+ style: "h2",
1414
+ weight: "semibold",
1415
+ children: title
1416
+ }), children, /*#__PURE__*/jsxs("div", {
1417
+ className: "flex w-full items-center gap-x-2",
1418
+ children: [/*#__PURE__*/jsx(Button, _objectSpread({
1419
+ onClick: onClick,
1420
+ label: t("neetoIntegrations.common.continue")
1421
+ }, buttonProps)), isNotEmpty(secondaryButtonProps) && /*#__PURE__*/jsx(Button, _objectSpread({
1422
+ style: "secondary"
1423
+ }, secondaryButtonProps))]
1424
+ })]
1425
+ });
1426
+ });
581
1427
  Finish.prototypes = {
582
1428
  /**
583
1429
  * To specify whether the integration modal should be opened or closed.
584
1430
  */
585
- onClick: propTypes.exports.func,
1431
+ onClick: PropTypes.func,
586
1432
  /**
587
1433
  * To show the title of the Finish component
588
1434
  */
589
- title: propTypes.exports.string,
1435
+ title: PropTypes.string,
590
1436
  /**
591
1437
  * To specify props for primary button
592
1438
  */
593
- buttonProps: propTypes.exports.object,
1439
+ buttonProps: PropTypes.object,
594
1440
  /**
595
1441
  * To specify props for secondary button
596
1442
  */
597
- secondaryButtonProps: propTypes.exports.object
598
- };
599
-
600
- var WalkthroughModal = function WalkthroughModal(_ref) {
601
- var _ref$isOpen = _ref.isOpen,
602
- isOpen = _ref$isOpen === void 0 ? noop : _ref$isOpen,
603
- _ref$onClose = _ref.onClose,
604
- onClose = _ref$onClose === void 0 ? noop : _ref$onClose,
605
- _ref$videoUrl = _ref.videoUrl,
606
- videoUrl = _ref$videoUrl === void 0 ? "" : _ref$videoUrl,
607
- children = _ref.children;
608
- var _useTranslation = useTranslation(),
609
- t = _useTranslation.t;
610
- return /*#__PURE__*/React__default.createElement(Modal$1, {
611
- isOpen: isOpen,
612
- size: "large",
613
- onClose: onClose
614
- }, /*#__PURE__*/React__default.createElement(Modal$1.Header, null, /*#__PURE__*/React__default.createElement(Typography, {
615
- style: "h2",
616
- weight: "semibold"
617
- }, t("neetoIntegrations.walkthroughModal.header"))), /*#__PURE__*/React__default.createElement(Modal$1.Body, null, /*#__PURE__*/React__default.createElement("div", {
618
- className: "w-full py-10"
619
- }, /*#__PURE__*/React__default.createElement("video", {
620
- autoPlay: true,
621
- controls: true,
622
- muted: true,
623
- className: "cursor-pointer",
624
- id: "walkthrough-video"
625
- }, /*#__PURE__*/React__default.createElement("source", {
626
- src: videoUrl
627
- })), children)), /*#__PURE__*/React__default.createElement(Modal$1.Footer, null, /*#__PURE__*/React__default.createElement(Button, {
628
- label: t("neetoIntegrations.walkthroughModal.continue"),
629
- onClick: onClose
630
- })));
1443
+ secondaryButtonProps: PropTypes.object
631
1444
  };
632
1445
 
633
1446
  var e = [],
@@ -655,5 +1468,5 @@ function n(n, r) {
655
1468
  var css = ".intrinsic-container{height:0;overflow:hidden;position:relative}.intrinsic-container-16x9{padding-bottom:56.25%}.intrinsic-container-4x3{padding-bottom:75%}.intrinsic-container iframe{height:100%;left:0;position:absolute;top:0;width:100%}";
656
1469
  n(css,{});
657
1470
 
658
- export { Card, Connect, Demo, DisconnectAlert, Finish, Modal, WalkthroughModal };
1471
+ export { Connect, index as Daily, Form$1 as DailyForm, Demo, Finish, GoogleCalendar, Manage$1 as Manage, Modal, Twilio, Zoom };
659
1472
  //# sourceMappingURL=index.js.map