@bigbinary/neeto-integrations-frontend 2.8.0 → 2.10.1

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.
@@ -0,0 +1,879 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ require('@bigbinary/neeto-molecules/IntegrationCard');
5
+ var DisconnectAlert = require('@bigbinary/neeto-molecules/IntegrationDisconnectAlert');
6
+ var WalkthroughModal = require('@bigbinary/neeto-molecules/IntegrationWalkthroughModal');
7
+ var i18next = require('i18next');
8
+ var neetoCist = require('@bigbinary/neeto-cist');
9
+ var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
10
+ var constants = require('@bigbinary/neeto-commons-frontend/constants');
11
+ var reactQuery = require('react-query');
12
+ var axios = require('axios');
13
+ var pure = require('@bigbinary/neeto-commons-frontend/pure');
14
+ var utils = require('@bigbinary/neeto-commons-frontend/utils');
15
+ var misc = require('@bigbinary/neeto-icons/misc');
16
+ var neetoui = require('@bigbinary/neetoui');
17
+ var reactI18next = require('react-i18next');
18
+ var formik = require('@bigbinary/neetoui/formik');
19
+ require('ramda');
20
+ var yup = require('yup');
21
+ var PageLoader = require('@bigbinary/neeto-molecules/PageLoader');
22
+ var classnames = require('classnames');
23
+
24
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
25
+
26
+ function _interopNamespace(e) {
27
+ if (e && e.__esModule) return e;
28
+ var n = Object.create(null);
29
+ if (e) {
30
+ Object.keys(e).forEach(function (k) {
31
+ if (k !== 'default') {
32
+ var d = Object.getOwnPropertyDescriptor(e, k);
33
+ Object.defineProperty(n, k, d.get ? d : {
34
+ enumerable: true,
35
+ get: function () { return e[k]; }
36
+ });
37
+ }
38
+ });
39
+ }
40
+ n["default"] = e;
41
+ return Object.freeze(n);
42
+ }
43
+
44
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
45
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
46
+ var DisconnectAlert__default = /*#__PURE__*/_interopDefaultLegacy(DisconnectAlert);
47
+ var WalkthroughModal__default = /*#__PURE__*/_interopDefaultLegacy(WalkthroughModal);
48
+ var i18next__default = /*#__PURE__*/_interopDefaultLegacy(i18next);
49
+ var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
50
+ var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
51
+ var PageLoader__default = /*#__PURE__*/_interopDefaultLegacy(PageLoader);
52
+ var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
53
+
54
+ function _typeof(obj) {
55
+ "@babel/helpers - typeof";
56
+
57
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
58
+ return typeof obj;
59
+ } : function (obj) {
60
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
61
+ }, _typeof(obj);
62
+ }
63
+
64
+ function _toPrimitive(input, hint) {
65
+ if (_typeof(input) !== "object" || input === null) return input;
66
+ var prim = input[Symbol.toPrimitive];
67
+ if (prim !== undefined) {
68
+ var res = prim.call(input, hint || "default");
69
+ if (_typeof(res) !== "object") return res;
70
+ throw new TypeError("@@toPrimitive must return a primitive value.");
71
+ }
72
+ return (hint === "string" ? String : Number)(input);
73
+ }
74
+
75
+ function _toPropertyKey(arg) {
76
+ var key = _toPrimitive(arg, "string");
77
+ return _typeof(key) === "symbol" ? key : String(key);
78
+ }
79
+
80
+ function _defineProperty(obj, key, value) {
81
+ key = _toPropertyKey(key);
82
+ if (key in obj) {
83
+ Object.defineProperty(obj, key, {
84
+ value: value,
85
+ enumerable: true,
86
+ configurable: true,
87
+ writable: true
88
+ });
89
+ } else {
90
+ obj[key] = value;
91
+ }
92
+ return obj;
93
+ }
94
+
95
+ function _arrayLikeToArray(arr, len) {
96
+ if (len == null || len > arr.length) len = arr.length;
97
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
98
+ return arr2;
99
+ }
100
+
101
+ function _arrayWithoutHoles(arr) {
102
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
103
+ }
104
+
105
+ function _iterableToArray(iter) {
106
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
107
+ }
108
+
109
+ function _unsupportedIterableToArray(o, minLen) {
110
+ if (!o) return;
111
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
112
+ var n = Object.prototype.toString.call(o).slice(8, -1);
113
+ if (n === "Object" && o.constructor) n = o.constructor.name;
114
+ if (n === "Map" || n === "Set") return Array.from(o);
115
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
116
+ }
117
+
118
+ function _nonIterableSpread() {
119
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
120
+ }
121
+
122
+ function _toConsumableArray(arr) {
123
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
124
+ }
125
+
126
+ function _arrayWithHoles(arr) {
127
+ if (Array.isArray(arr)) return arr;
128
+ }
129
+
130
+ function _iterableToArrayLimit(arr, i) {
131
+ var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
132
+ if (null != _i) {
133
+ var _s,
134
+ _e,
135
+ _x,
136
+ _r,
137
+ _arr = [],
138
+ _n = !0,
139
+ _d = !1;
140
+ try {
141
+ if (_x = (_i = _i.call(arr)).next, 0 === i) {
142
+ if (Object(_i) !== _i) return;
143
+ _n = !1;
144
+ } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
145
+ } catch (err) {
146
+ _d = !0, _e = err;
147
+ } finally {
148
+ try {
149
+ if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return;
150
+ } finally {
151
+ if (_d) throw _e;
152
+ }
153
+ }
154
+ return _arr;
155
+ }
156
+ }
157
+
158
+ function _nonIterableRest() {
159
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
160
+ }
161
+
162
+ function _slicedToArray(arr, i) {
163
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
164
+ }
165
+
166
+ var INTEGRATIONS_ENGINE_BASE_URL = "/neeto_integrations";
167
+ var INTEGRATIONS_ENGINE_DAILY_URL = "".concat(INTEGRATIONS_ENGINE_BASE_URL, "/daily");
168
+
169
+ var create = function create(payload) {
170
+ return axios__default["default"].post(INTEGRATIONS_ENGINE_DAILY_URL, {
171
+ daily: payload
172
+ });
173
+ };
174
+ var show = function show() {
175
+ return axios__default["default"].get(INTEGRATIONS_ENGINE_DAILY_URL);
176
+ };
177
+ var destroy = function destroy() {
178
+ return axios__default["default"]["delete"](INTEGRATIONS_ENGINE_DAILY_URL);
179
+ };
180
+ var dailiesApi = {
181
+ create: create,
182
+ show: show,
183
+ destroy: destroy
184
+ };
185
+
186
+ var QUERY_KEYS = {
187
+ TWILIO_SMS_CONFIGURATION: "twilio-sms-configuration",
188
+ TWILIO_PHONE_NUMBERS: "twilio-phone-numbers",
189
+ DAILY_CO_DETAILS: "daily-co-details",
190
+ ZOOM_DETAILS: "zoom-details"
191
+ };
192
+
193
+ function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
194
+ function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
195
+ var useCreateDaily = function useCreateDaily() {
196
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
197
+ return reactUtils.useMutationWithInvalidation(dailiesApi.create, _objectSpread$1({
198
+ keysToInvalidate: [QUERY_KEYS.DAILY_CO_DETAILS]
199
+ }, options));
200
+ };
201
+ var useFetchDaily = function useFetchDaily() {
202
+ return reactQuery.useQuery(QUERY_KEYS.DAILY_CO_DETAILS, dailiesApi.show, {
203
+ staleTime: constants.DEFAULT_STALE_TIME
204
+ });
205
+ };
206
+ var useDestroyDaily = function useDestroyDaily(_ref) {
207
+ var onSuccess = _ref.onSuccess;
208
+ return reactUtils.useMutationWithInvalidation(dailiesApi.destroy, {
209
+ keysToInvalidate: [QUERY_KEYS.DAILY_CO_DETAILS],
210
+ onSuccess: onSuccess
211
+ });
212
+ };
213
+
214
+ function _extends$1() {
215
+ _extends$1 = Object.assign ? Object.assign.bind() : function (target) {
216
+ for (var i = 1; i < arguments.length; i++) {
217
+ var source = arguments[i];
218
+ for (var key in source) {
219
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
220
+ target[key] = source[key];
221
+ }
222
+ }
223
+ }
224
+ return target;
225
+ };
226
+ return _extends$1.apply(this, arguments);
227
+ }
228
+
229
+ function _objectWithoutPropertiesLoose(source, excluded) {
230
+ if (source == null) return {};
231
+ var target = {};
232
+ var sourceKeys = Object.keys(source);
233
+ var key, i;
234
+ for (i = 0; i < sourceKeys.length; i++) {
235
+ key = sourceKeys[i];
236
+ if (excluded.indexOf(key) >= 0) continue;
237
+ target[key] = source[key];
238
+ }
239
+ return target;
240
+ }
241
+
242
+ function _objectWithoutProperties(source, excluded) {
243
+ if (source == null) return {};
244
+ var target = _objectWithoutPropertiesLoose(source, excluded);
245
+ var key, i;
246
+ if (Object.getOwnPropertySymbols) {
247
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
248
+ for (i = 0; i < sourceSymbolKeys.length; i++) {
249
+ key = sourceSymbolKeys[i];
250
+ if (excluded.indexOf(key) >= 0) continue;
251
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
252
+ target[key] = source[key];
253
+ }
254
+ }
255
+ return target;
256
+ }
257
+
258
+ var _excluded = ["className", "children"];
259
+ var ExternalLink = function ExternalLink(_ref) {
260
+ var _ref$className = _ref.className,
261
+ className = _ref$className === void 0 ? "" : _ref$className,
262
+ _ref$children = _ref.children,
263
+ children = _ref$children === void 0 ? null : _ref$children,
264
+ props = _objectWithoutProperties(_ref, _excluded);
265
+ return /*#__PURE__*/React__default["default"].createElement("a", _extends$1({
266
+ className: classnames__default["default"](["neeto-ui-text-primary-800 hover:neeto-ui-text-primary-800 visited:neeto-ui-text-primary-600 font-medium", className])
267
+ }, props), children);
268
+ };
269
+ var ExternalLink$1 = /*#__PURE__*/React__default["default"].memo(ExternalLink);
270
+
271
+ var MANAGE_DAILY_CO_FORM_INITIAL_VALUES = {
272
+ apiKey: ""
273
+ };
274
+ var DAILY_CO_VALIDATION_SCHEMA = yup__namespace.object().shape({
275
+ apiKey: yup__namespace.string().trim().required(i18next.t("neetoIntegrations.errors.required", {
276
+ entity: i18next.t("neetoIntegrations.daily.apiKey")
277
+ }))
278
+ });
279
+
280
+ var Form = function Form(_ref) {
281
+ var helpDocUrl = _ref.helpDocUrl,
282
+ videoUrl = _ref.videoUrl,
283
+ onConnect = _ref.onConnect;
284
+ var _useTranslation = reactI18next.useTranslation(),
285
+ t = _useTranslation.t;
286
+ var _useState = React.useState(false),
287
+ _useState2 = _slicedToArray(_useState, 2),
288
+ isDemoModalOpen = _useState2[0],
289
+ setIsDemoModalOpen = _useState2[1];
290
+ var _useCreateDaily = useCreateDaily({
291
+ onSuccess: function onSuccess() {
292
+ return onConnect === null || onConnect === void 0 ? void 0 : onConnect();
293
+ }
294
+ }),
295
+ createDaily = _useCreateDaily.mutate,
296
+ isConnecting = _useCreateDaily.isLoading;
297
+ var handleSubmit = function handleSubmit(payload) {
298
+ return createDaily(payload);
299
+ };
300
+ if (isConnecting) {
301
+ return /*#__PURE__*/React__default["default"].createElement(PageLoader__default["default"], null);
302
+ }
303
+ return /*#__PURE__*/React__default["default"].createElement("div", {
304
+ className: "mx-auto w-full max-w-md"
305
+ }, /*#__PURE__*/React__default["default"].createElement(formik.Form, {
306
+ formikProps: {
307
+ initialValues: MANAGE_DAILY_CO_FORM_INITIAL_VALUES,
308
+ validationSchema: DAILY_CO_VALIDATION_SCHEMA,
309
+ onSubmit: handleSubmit
310
+ }
311
+ }, function (_ref2) {
312
+ var dirty = _ref2.dirty;
313
+ return /*#__PURE__*/React__default["default"].createElement("div", {
314
+ className: "mt-10 w-full space-y-5"
315
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
316
+ className: "block"
317
+ }, /*#__PURE__*/React__default["default"].createElement(formik.Input, {
318
+ autoFocus: true,
319
+ required: true,
320
+ label: t("neetoIntegrations.daily.apiKey"),
321
+ name: "apiKey",
322
+ helpText: /*#__PURE__*/React__default["default"].createElement(reactI18next.Trans, {
323
+ i18nKey: "neetoIntegrations.daily.helpDoc",
324
+ components: {
325
+ externalLink: /*#__PURE__*/React__default["default"].createElement(ExternalLink$1, {
326
+ href: helpDocUrl,
327
+ rel: "noreferrer",
328
+ target: "_blank"
329
+ })
330
+ }
331
+ })
332
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
333
+ className: "mt-8",
334
+ label: t("neetoIntegrations.daily.walkthroughText"),
335
+ style: "link",
336
+ onClick: function onClick() {
337
+ return setIsDemoModalOpen(true);
338
+ }
339
+ })), /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
340
+ disabled: isConnecting || !dirty,
341
+ label: t("neetoIntegrations.common.connect"),
342
+ loading: isConnecting,
343
+ type: "submit"
344
+ })));
345
+ }), /*#__PURE__*/React__default["default"].createElement(WalkthroughModal__default["default"], {
346
+ videoUrl: videoUrl,
347
+ isOpen: isDemoModalOpen,
348
+ onClose: function onClose() {
349
+ return setIsDemoModalOpen(false);
350
+ }
351
+ }));
352
+ };
353
+ var Form$1 = reactUtils.withTitle(Form, i18next__default["default"].t("neetoIntegrations.browserTitles.integrations.dailyco"));
354
+
355
+ var Manage$1 = reactUtils.withT(function (_ref) {
356
+ var t = _ref.t,
357
+ title = _ref.title,
358
+ description = _ref.description,
359
+ integration = _ref.integration,
360
+ isDisconnectAlertOpen = _ref.isDisconnectAlertOpen,
361
+ setIsDisconnectAlertOpen = _ref.setIsDisconnectAlertOpen,
362
+ isDisconnecting = _ref.isDisconnecting,
363
+ onDisconnect = _ref.onDisconnect,
364
+ onClose = _ref.onClose;
365
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
366
+ className: "mx-auto w-full max-w-md"
367
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
368
+ className: "mt-10 w-full space-y-4"
369
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
370
+ className: "neeto-ui-text-gray-800 mb-0.5",
371
+ style: "h3",
372
+ weight: "semibold"
373
+ }, title), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
374
+ className: "neeto-ui-text-gray-600 break-all",
375
+ style: "body1",
376
+ weight: "normal"
377
+ }, description), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
378
+ label: t("neetoIntegrations.common.disconnect"),
379
+ style: "danger",
380
+ onClick: function onClick() {
381
+ return setIsDisconnectAlertOpen(true);
382
+ }
383
+ }))), /*#__PURE__*/React__default["default"].createElement(DisconnectAlert__default["default"], {
384
+ isDisconnecting: isDisconnecting,
385
+ onClose: onClose,
386
+ onDisconnect: onDisconnect,
387
+ isOpen: isDisconnectAlertOpen,
388
+ message: t("neetoIntegrations.".concat(integration, ".disconnect.message")),
389
+ title: t("neetoIntegrations.".concat(integration, ".disconnect.title"))
390
+ }));
391
+ });
392
+
393
+ var Manage = function Manage(_ref) {
394
+ var onDisconnect = _ref.onDisconnect;
395
+ var _useState = React.useState(false),
396
+ _useState2 = _slicedToArray(_useState, 2),
397
+ isDisconnectAlertOpen = _useState2[0],
398
+ setIsDisconnectAlertOpen = _useState2[1];
399
+ var _useFetchDaily = useFetchDaily(),
400
+ _useFetchDaily$data = _useFetchDaily.data,
401
+ _useFetchDaily$data2 = _useFetchDaily$data === void 0 ? {} : _useFetchDaily$data,
402
+ _useFetchDaily$data2$ = _useFetchDaily$data2.metadata,
403
+ metadata = _useFetchDaily$data2$ === void 0 ? {} : _useFetchDaily$data2$,
404
+ isLoading = _useFetchDaily.isLoading;
405
+ var _ref2 = metadata || {},
406
+ _ref2$apiKey = _ref2.apiKey,
407
+ apiKey = _ref2$apiKey === void 0 ? null : _ref2$apiKey;
408
+ var _useTranslation = reactI18next.useTranslation(),
409
+ t = _useTranslation.t;
410
+ var _useDestroyDaily = useDestroyDaily({
411
+ onSuccess: function onSuccess() {
412
+ setIsDisconnectAlertOpen(false);
413
+ onDisconnect === null || onDisconnect === void 0 ? void 0 : onDisconnect();
414
+ }
415
+ }),
416
+ destroyIntegration = _useDestroyDaily.mutate,
417
+ isDisconnecting = _useDestroyDaily.isLoading;
418
+ var handleDisconnect = function handleDisconnect() {
419
+ return destroyIntegration("daily");
420
+ };
421
+ if (isLoading || isDisconnecting) {
422
+ return /*#__PURE__*/React__default["default"].createElement(PageLoader__default["default"], null);
423
+ }
424
+ if (neetoCist.isNotPresent(apiKey)) {
425
+ onDisconnect === null || onDisconnect === void 0 ? void 0 : onDisconnect();
426
+ }
427
+ return /*#__PURE__*/React__default["default"].createElement(Manage$1, {
428
+ isDisconnectAlertOpen: isDisconnectAlertOpen,
429
+ isDisconnecting: isDisconnecting,
430
+ setIsDisconnectAlertOpen: setIsDisconnectAlertOpen,
431
+ description: t("neetoIntegrations.daily.yourApiKey", {
432
+ apiKey: apiKey
433
+ }),
434
+ integration: "daily",
435
+ title: t("neetoIntegrations.daily.connected"),
436
+ onClose: function onClose() {
437
+ return setIsDisconnectAlertOpen(false);
438
+ },
439
+ onDisconnect: handleDisconnect
440
+ });
441
+ };
442
+
443
+ var Daily = function Daily(_ref) {
444
+ var _ref$isOnboarding = _ref.isOnboarding,
445
+ isOnboarding = _ref$isOnboarding === void 0 ? false : _ref$isOnboarding,
446
+ _ref$helpDocUrl = _ref.helpDocUrl,
447
+ helpDocUrl = _ref$helpDocUrl === void 0 ? "" : _ref$helpDocUrl,
448
+ _ref$videoUrl = _ref.videoUrl,
449
+ videoUrl = _ref$videoUrl === void 0 ? "" : _ref$videoUrl,
450
+ _ref$onConnect = _ref.onConnect,
451
+ onConnect = _ref$onConnect === void 0 ? neetoCist.noop : _ref$onConnect,
452
+ _ref$onDisconnect = _ref.onDisconnect,
453
+ onDisconnect = _ref$onDisconnect === void 0 ? neetoCist.noop : _ref$onDisconnect;
454
+ var _useFetchDaily = useFetchDaily(),
455
+ _useFetchDaily$data = _useFetchDaily.data,
456
+ _useFetchDaily$data2 = _useFetchDaily$data === void 0 ? {} : _useFetchDaily$data,
457
+ _useFetchDaily$data2$ = _useFetchDaily$data2.metadata,
458
+ metadata = _useFetchDaily$data2$ === void 0 ? {} : _useFetchDaily$data2$;
459
+ var _ref2 = metadata || {},
460
+ _ref2$apiKey = _ref2.apiKey,
461
+ apiKey = _ref2$apiKey === void 0 ? null : _ref2$apiKey;
462
+ if (neetoCist.isPresent(apiKey) && !isOnboarding) {
463
+ return /*#__PURE__*/React__default["default"].createElement(Manage, {
464
+ onDisconnect: onDisconnect
465
+ });
466
+ }
467
+ return /*#__PURE__*/React__default["default"].createElement(Form$1, {
468
+ helpDocUrl: helpDocUrl,
469
+ onConnect: onConnect,
470
+ videoUrl: videoUrl
471
+ });
472
+ };
473
+ reactUtils.withTitle(Daily, i18next__default["default"].t("neetoIntegrations.browserTitles.integrations.dailyco"));
474
+
475
+ var Stepper = function Stepper(_ref) {
476
+ var _ref$steps = _ref.steps,
477
+ steps = _ref$steps === void 0 ? {} : _ref$steps;
478
+ var isActiveOrCompleted = function isActiveOrCompleted(activeStatus, completedStatus) {
479
+ return activeStatus || completedStatus;
480
+ };
481
+ return /*#__PURE__*/React__default["default"].createElement("ul", {
482
+ className: "flex gap-4"
483
+ }, steps === null || steps === void 0 ? void 0 : steps.map(function (_ref2) {
484
+ var step = _ref2.step,
485
+ label = _ref2.label,
486
+ isActive = _ref2.isActive,
487
+ isCompleted = _ref2.isCompleted;
488
+ return /*#__PURE__*/React__default["default"].createElement("li", {
489
+ className: "flex items-center gap-4",
490
+ key: step
491
+ }, step !== "1" && /*#__PURE__*/React__default["default"].createElement("div", {
492
+ className: classnames__default["default"]("w-10 border-b", {
493
+ "neeto-ui-border-gray-800": isActiveOrCompleted(isActive, isCompleted),
494
+ "neeto-ui-border-gray-400": !isActiveOrCompleted(isActive, isCompleted)
495
+ })
496
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
497
+ className: "flex items-center gap-2"
498
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
499
+ className: classnames__default["default"]("neeto-ui-rounded-full neeto-ui-gray-600 flex h-6 w-6 items-center justify-center border", {
500
+ "neeto-ui-bg-success-600 neeto-ui-border-success-600 neeto-ui-text-white": isActive,
501
+ "neeto-ui-bg-primary-600 neeto-ui-border-primary-600 neeto-ui-text-white": isCompleted,
502
+ "neeto-ui-border-gray-400": !isActiveOrCompleted(isActive, isCompleted)
503
+ })
504
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
505
+ component: "span",
506
+ style: "body2",
507
+ weight: "normal"
508
+ }, step)), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
509
+ style: "body2",
510
+ weight: "normal",
511
+ className: classnames__default["default"]({
512
+ "neeto-ui-text-gray-800": isActiveOrCompleted(isActive, isCompleted),
513
+ "neeto-ui-text-gray-600": !isActiveOrCompleted(isActive, isCompleted)
514
+ })
515
+ }, label)));
516
+ }));
517
+ };
518
+
519
+ var Modal = function Modal(_ref) {
520
+ var _ref$isOpen = _ref.isOpen,
521
+ isOpen = _ref$isOpen === void 0 ? neetoCist.noop : _ref$isOpen,
522
+ _ref$onClose = _ref.onClose,
523
+ onClose = _ref$onClose === void 0 ? neetoCist.noop : _ref$onClose,
524
+ _ref$steps = _ref.steps,
525
+ steps = _ref$steps === void 0 ? {} : _ref$steps,
526
+ children = _ref.children;
527
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Modal, {
528
+ isOpen: isOpen,
529
+ onClose: onClose,
530
+ className: "neeto-ui-flex neeto-ui-flex-col neeto-ui-transform-none w-screen overflow-y-auto",
531
+ size: "fullScreen"
532
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Modal.Header, null, /*#__PURE__*/React__default["default"].createElement(Stepper, {
533
+ steps: steps
534
+ })), /*#__PURE__*/React__default["default"].createElement(neetoui.Modal.Body, {
535
+ className: "neeto-ui-flex neeto-ui-justify-center neeto-ui-items-center neeto-ui-flex-grow"
536
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
537
+ className: "neeto-ui-w-full py-10"
538
+ }, children)));
539
+ };
540
+
541
+ function getDefaultExportFromCjs (x) {
542
+ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
543
+ }
544
+
545
+ var propTypes = {exports: {}};
546
+
547
+ /**
548
+ * Copyright (c) 2013-present, Facebook, Inc.
549
+ *
550
+ * This source code is licensed under the MIT license found in the
551
+ * LICENSE file in the root directory of this source tree.
552
+ */
553
+ var ReactPropTypesSecret$1 = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
554
+ var ReactPropTypesSecret_1 = ReactPropTypesSecret$1;
555
+
556
+ /**
557
+ * Copyright (c) 2013-present, Facebook, Inc.
558
+ *
559
+ * This source code is licensed under the MIT license found in the
560
+ * LICENSE file in the root directory of this source tree.
561
+ */
562
+ var ReactPropTypesSecret = ReactPropTypesSecret_1;
563
+ function emptyFunction() {}
564
+ function emptyFunctionWithReset() {}
565
+ emptyFunctionWithReset.resetWarningCache = emptyFunction;
566
+ var factoryWithThrowingShims = function factoryWithThrowingShims() {
567
+ function shim(props, propName, componentName, location, propFullName, secret) {
568
+ if (secret === ReactPropTypesSecret) {
569
+ // It is still safe when called from React.
570
+ return;
571
+ }
572
+ var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');
573
+ err.name = 'Invariant Violation';
574
+ throw err;
575
+ }
576
+ shim.isRequired = shim;
577
+ function getShim() {
578
+ return shim;
579
+ }
580
+ // Important!
581
+ // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
582
+ var ReactPropTypes = {
583
+ array: shim,
584
+ bigint: shim,
585
+ bool: shim,
586
+ func: shim,
587
+ number: shim,
588
+ object: shim,
589
+ string: shim,
590
+ symbol: shim,
591
+ any: shim,
592
+ arrayOf: getShim,
593
+ element: shim,
594
+ elementType: shim,
595
+ instanceOf: getShim,
596
+ node: shim,
597
+ objectOf: getShim,
598
+ oneOf: getShim,
599
+ oneOfType: getShim,
600
+ shape: getShim,
601
+ exact: getShim,
602
+ checkPropTypes: emptyFunctionWithReset,
603
+ resetWarningCache: emptyFunction
604
+ };
605
+ ReactPropTypes.PropTypes = ReactPropTypes;
606
+ return ReactPropTypes;
607
+ };
608
+
609
+ /**
610
+ * Copyright (c) 2013-present, Facebook, Inc.
611
+ *
612
+ * This source code is licensed under the MIT license found in the
613
+ * LICENSE file in the root directory of this source tree.
614
+ */
615
+ {
616
+ // By explicitly using `prop-types` you are opting into new production behavior.
617
+ // http://fb.me/prop-types-in-prod
618
+ propTypes.exports = factoryWithThrowingShims();
619
+ }
620
+ var propTypesExports = propTypes.exports;
621
+ var PropTypes = /*@__PURE__*/getDefaultExportFromCjs(propTypesExports);
622
+
623
+ var Connect = reactUtils.withT(function (_ref) {
624
+ var t = _ref.t,
625
+ Icon = _ref.Icon,
626
+ _ref$title = _ref.title,
627
+ title = _ref$title === void 0 ? "" : _ref$title,
628
+ _ref$description = _ref.description,
629
+ description = _ref$description === void 0 ? "" : _ref$description,
630
+ _ref$buttonProps = _ref.buttonProps,
631
+ buttonProps = _ref$buttonProps === void 0 ? {} : _ref$buttonProps,
632
+ _ref$onConnect = _ref.onConnect,
633
+ onConnect = _ref$onConnect === void 0 ? neetoCist.noop : _ref$onConnect,
634
+ children = _ref.children;
635
+ return /*#__PURE__*/React__default["default"].createElement("div", {
636
+ className: "mx-auto w-full max-w-lg"
637
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
638
+ size: 48
639
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
640
+ className: "neeto-ui-text-gray-800 mb-0.5 mt-6",
641
+ style: "h2",
642
+ weight: "semibold"
643
+ }, title), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
644
+ className: "neeto-ui-text-gray-700 mb-8",
645
+ style: "body1",
646
+ weight: "normal"
647
+ }, description), children, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, _extends$1({
648
+ label: t("neetoIntegrations.common.connect"),
649
+ onClick: onConnect
650
+ }, buttonProps)));
651
+ });
652
+ Connect.prototypes = {
653
+ /**
654
+ * To specify the Icon to be shown
655
+ */
656
+ Icon: propTypesExports.PropTypes.node,
657
+ /**
658
+ * To specify the title of the connect component
659
+ */
660
+ title: propTypesExports.PropTypes.string,
661
+ /**
662
+ * To specify the description for connect component
663
+ */
664
+ description: propTypesExports.PropTypes.string,
665
+ /**
666
+ * To specify the props for the connect button
667
+ */
668
+ buttonProps: propTypesExports.PropTypes.object,
669
+ /**
670
+ * Handler function that is triggered when the connect button is clicked.
671
+ */
672
+ onConnect: propTypesExports.PropTypes.func
673
+ };
674
+
675
+ ({
676
+ /**
677
+ * To specify whether the integration modal should be opened or closed.
678
+ */
679
+ onClose: PropTypes.func,
680
+ /**
681
+ * To specify the walkthrough video link
682
+ */
683
+ videoUrl: PropTypes.string,
684
+ /**
685
+ * To specify the title of the demo component
686
+ */
687
+ title: PropTypes.string,
688
+ /**
689
+ * To specify the subtitle of the demo component
690
+ */
691
+ subtitle: PropTypes.string,
692
+ /**
693
+ * To specify the title of the video in the iframe
694
+ */
695
+ iframeTitle: PropTypes.string
696
+ });
697
+
698
+ var _path, _defs;
699
+ 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); }
700
+ const SvgSuccess = props => /*#__PURE__*/React__namespace.createElement("svg", _extends({
701
+ xmlns: "http://www.w3.org/2000/svg",
702
+ xmlnsXlink: "http://www.w3.org/1999/xlink",
703
+ width: 72,
704
+ height: 72,
705
+ fill: "none"
706
+ }, props), _path || (_path = /*#__PURE__*/React__namespace.createElement("path", {
707
+ fill: "url(#success_svg__a)",
708
+ d: "M0 0h72v72H0z"
709
+ })), _defs || (_defs = /*#__PURE__*/React__namespace.createElement("defs", null, /*#__PURE__*/React__namespace.createElement("pattern", {
710
+ id: "success_svg__a",
711
+ width: 1,
712
+ height: 1,
713
+ patternContentUnits: "objectBoundingBox"
714
+ }, /*#__PURE__*/React__namespace.createElement("use", {
715
+ xlinkHref: "#success_svg__b",
716
+ transform: "scale(.0029)"
717
+ })), /*#__PURE__*/React__namespace.createElement("image", {
718
+ xlinkHref: "data:image/png;base64,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WkH/ssvowWQz/YBFlR9ZwAICIBBXAqH1YL0OD+gniPJkO18J3kBp9lTfTfSi+yrepx+Li6hNPxZpEACBeBIIrcB6MXogzynR+Y4q6k0zkpIv/0/E5X8eVtgFArElEMoQgU/hAbz4L7ZfEzQcBEojEEoP1sPwAES1tPMKuUAABJhAKAXW5fAARBVfDRAAASMEQhcicCk8AFE1cjqhEBAAgWwCofNgDYYHIKrZZwLWQQAEjBMIncA6DA9AVI2fQigQBEAgF4FQhQjkMurTXkEbuDGVuRrUzXaIajdQsAkEQMB9AqHyYNvK6Tz+RShEXCGq7p87qAEEQKAHAqES2B7CAxDVHjobu0EABLwlEJoQQY7wAETV2/MFtYEACBRBIDQebFZ4AKJaRAfjUBAAAf8IhEZgyaKUSNO4suG0RE0F6B8y1AwCIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAAC7hD4/8l256QQPdLRAAAAAElFTkSuQmCC",
719
+ id: "success_svg__b",
720
+ width: 344,
721
+ height: 344
722
+ }))));
723
+
724
+ var Finish = reactUtils.withT(function (_ref) {
725
+ var t = _ref.t,
726
+ _ref$onClick = _ref.onClick,
727
+ onClick = _ref$onClick === void 0 ? neetoCist.noop : _ref$onClick,
728
+ _ref$title = _ref.title,
729
+ title = _ref$title === void 0 ? "" : _ref$title,
730
+ _ref$buttonProps = _ref.buttonProps,
731
+ buttonProps = _ref$buttonProps === void 0 ? {} : _ref$buttonProps,
732
+ _ref$secondaryButtonP = _ref.secondaryButtonProps,
733
+ secondaryButtonProps = _ref$secondaryButtonP === void 0 ? {} : _ref$secondaryButtonP,
734
+ children = _ref.children;
735
+ return /*#__PURE__*/React__default["default"].createElement("div", {
736
+ className: "neeto-ui-w-full mx-auto max-w-lg"
737
+ }, /*#__PURE__*/React__default["default"].createElement(SvgSuccess, null), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
738
+ className: "neeto-ui-text-gray-800 mb-8 mt-4",
739
+ style: "h2",
740
+ weight: "semibold"
741
+ }, title), children, /*#__PURE__*/React__default["default"].createElement("div", {
742
+ className: "flex w-full items-start space-x-2"
743
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, _extends$1({
744
+ onClick: onClick,
745
+ label: t("neetoIntegrations.common.continue")
746
+ }, buttonProps)), neetoCist.isNotEmpty(secondaryButtonProps) && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, _extends$1({
747
+ style: "secondary"
748
+ }, secondaryButtonProps))));
749
+ });
750
+ Finish.prototypes = {
751
+ /**
752
+ * To specify whether the integration modal should be opened or closed.
753
+ */
754
+ onClick: PropTypes.func,
755
+ /**
756
+ * To show the title of the Finish component
757
+ */
758
+ title: PropTypes.string,
759
+ /**
760
+ * To specify props for primary button
761
+ */
762
+ buttonProps: PropTypes.object,
763
+ /**
764
+ * To specify props for secondary button
765
+ */
766
+ secondaryButtonProps: PropTypes.object
767
+ };
768
+
769
+ var e = [],
770
+ t = [];
771
+ function n(n, r) {
772
+ if (n && "undefined" != typeof document) {
773
+ var a,
774
+ s = !0 === r.prepend ? "prepend" : "append",
775
+ d = !0 === r.singleTag,
776
+ i = "string" == typeof r.container ? document.querySelector(r.container) : document.getElementsByTagName("head")[0];
777
+ if (d) {
778
+ var u = e.indexOf(i);
779
+ -1 === u && (u = e.push(i) - 1, t[u] = {}), a = t[u] && t[u][s] ? t[u][s] : t[u][s] = c();
780
+ } else a = c();
781
+ 65279 === n.charCodeAt(0) && (n = n.substring(1)), a.styleSheet ? a.styleSheet.cssText += n : a.appendChild(document.createTextNode(n));
782
+ }
783
+ function c() {
784
+ var e = document.createElement("style");
785
+ if (e.setAttribute("type", "text/css"), r.attributes) for (var t = Object.keys(r.attributes), n = 0; n < t.length; n++) e.setAttribute(t[n], r.attributes[t[n]]);
786
+ var a = "prepend" === s ? "afterbegin" : "beforeend";
787
+ return i.insertAdjacentElement(a, e), e;
788
+ }
789
+ }
790
+
791
+ 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%}";
792
+ n(css,{});
793
+
794
+ var INTEGRATION_STEPS = [{
795
+ step: "1",
796
+ label: i18next.t("neetoIntegrations.common.connect"),
797
+ isActive: true,
798
+ isCompleted: false
799
+ }, {
800
+ step: "2",
801
+ label: i18next.t("neetoIntegrations.common.finish"),
802
+ isActive: false,
803
+ isCompleted: false
804
+ }];
805
+ var STEPS = {
806
+ connect: i18next.t("neetoIntegrations.common.connect"),
807
+ finish: i18next.t("neetoIntegrations.common.finish")
808
+ };
809
+
810
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
811
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
812
+ var GoogleCalendar = function GoogleCalendar(_ref) {
813
+ var permissionImage = _ref.permissionImage,
814
+ fetchAuthorizationUrl = _ref.fetchAuthorizationUrl,
815
+ handleClose = _ref.handleClose,
816
+ handleRedirect = _ref.handleRedirect;
817
+ var _useTranslation = reactI18next.useTranslation(),
818
+ t = _useTranslation.t;
819
+ var _useState = React.useState(INTEGRATION_STEPS),
820
+ _useState2 = _slicedToArray(_useState, 2),
821
+ steps = _useState2[0],
822
+ setSteps = _useState2[1];
823
+ var _getQueryParams = utils.getQueryParams(),
824
+ status = _getQueryParams.status;
825
+ var activeTab = pure.isPresent(status) ? STEPS.finish : STEPS.connect;
826
+ React.useEffect(function () {
827
+ setSteps(function () {
828
+ var stepsClone = _toConsumableArray(steps);
829
+ stepsClone[0] = _objectSpread(_objectSpread({}, steps[0]), {}, {
830
+ isActive: activeTab === STEPS.connect,
831
+ isCompleted: activeTab !== STEPS.connect
832
+ });
833
+ stepsClone[1] = _objectSpread(_objectSpread({}, steps[1]), {}, {
834
+ isActive: activeTab === STEPS.finish,
835
+ isCompleted: activeTab === STEPS.finish
836
+ });
837
+ return stepsClone;
838
+ });
839
+ }, [activeTab]);
840
+ return /*#__PURE__*/React__default["default"].createElement(Modal, {
841
+ steps: steps,
842
+ isOpen: true,
843
+ onClose: handleClose
844
+ }, activeTab === STEPS.connect && /*#__PURE__*/React__default["default"].createElement("div", {
845
+ className: "mx-auto w-full max-w-2xl"
846
+ }, /*#__PURE__*/React__default["default"].createElement(misc.GoogleCalendar, {
847
+ size: 42
848
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
849
+ className: "neeto-ui-text-gray-800 mb-3 mt-6",
850
+ style: "h2",
851
+ weight: "semibold"
852
+ }, t("neetoIntegrations.google.connect.title")), /*#__PURE__*/React__default["default"].createElement("div", {
853
+ className: "flex w-full flex-col items-start pt-2"
854
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Callout, {
855
+ className: "block leading-5"
856
+ }, /*#__PURE__*/React__default["default"].createElement(reactI18next.Trans, {
857
+ components: {
858
+ bold: /*#__PURE__*/React__default["default"].createElement("strong", null)
859
+ },
860
+ i18nKey: "neetoIntegrations.google.connect.reminderToAcceptPermissions",
861
+ values: {
862
+ selectCheckbox: t("neetoIntegrations.google.connect.selectCheckbox")
863
+ }
864
+ })), permissionImage && /*#__PURE__*/React__default["default"].createElement("div", {
865
+ className: "neeto-ui-border-gray-300 my-4 border"
866
+ }, /*#__PURE__*/React__default["default"].createElement("img", {
867
+ src: permissionImage
868
+ }))), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
869
+ icon: misc.Google,
870
+ label: t("neetoIntegrations.google.connect.signIn"),
871
+ onClick: fetchAuthorizationUrl
872
+ })), activeTab === STEPS.finish && /*#__PURE__*/React__default["default"].createElement(Finish, {
873
+ title: t("neetoIntegrations.google.finish.title"),
874
+ onClick: handleRedirect
875
+ }));
876
+ };
877
+
878
+ module.exports = GoogleCalendar;
879
+ //# sourceMappingURL=GoogleCalender.cjs.js.map