@bigbinary/neeto-molecules 1.0.97 → 1.0.99

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,387 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var utils = require('@bigbinary/neeto-commons-frontend/utils');
5
+ var neetoui = require('@bigbinary/neetoui');
6
+ var ramda = require('ramda');
7
+ var reactI18next = require('react-i18next');
8
+ var pure = require('@bigbinary/neeto-commons-frontend/pure');
9
+ var neetoIcons = require('@bigbinary/neeto-icons');
10
+ var reactRouterDom = require('react-router-dom');
11
+
12
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
+
14
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
15
+
16
+ function _extends() {
17
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
18
+ for (var i = 1; i < arguments.length; i++) {
19
+ var source = arguments[i];
20
+ for (var key in source) {
21
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
22
+ target[key] = source[key];
23
+ }
24
+ }
25
+ }
26
+ return target;
27
+ };
28
+ return _extends.apply(this, arguments);
29
+ }
30
+
31
+ function _objectWithoutPropertiesLoose(source, excluded) {
32
+ if (source == null) return {};
33
+ var target = {};
34
+ var sourceKeys = Object.keys(source);
35
+ var key, i;
36
+ for (i = 0; i < sourceKeys.length; i++) {
37
+ key = sourceKeys[i];
38
+ if (excluded.indexOf(key) >= 0) continue;
39
+ target[key] = source[key];
40
+ }
41
+ return target;
42
+ }
43
+
44
+ function _objectWithoutProperties(source, excluded) {
45
+ if (source == null) return {};
46
+ var target = _objectWithoutPropertiesLoose(source, excluded);
47
+ var key, i;
48
+ if (Object.getOwnPropertySymbols) {
49
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
50
+ for (i = 0; i < sourceSymbolKeys.length; i++) {
51
+ key = sourceSymbolKeys[i];
52
+ if (excluded.indexOf(key) >= 0) continue;
53
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
54
+ target[key] = source[key];
55
+ }
56
+ }
57
+ return target;
58
+ }
59
+
60
+ var classnames$1 = {exports: {}};
61
+
62
+ /*!
63
+ Copyright (c) 2018 Jed Watson.
64
+ Licensed under the MIT License (MIT), see
65
+ http://jedwatson.github.io/classnames
66
+ */
67
+
68
+ (function (module) {
69
+ /* global define */
70
+
71
+ (function () {
72
+
73
+ var hasOwn = {}.hasOwnProperty;
74
+
75
+ function classNames() {
76
+ var classes = [];
77
+
78
+ for (var i = 0; i < arguments.length; i++) {
79
+ var arg = arguments[i];
80
+ if (!arg) continue;
81
+
82
+ var argType = typeof arg;
83
+
84
+ if (argType === 'string' || argType === 'number') {
85
+ classes.push(arg);
86
+ } else if (Array.isArray(arg)) {
87
+ if (arg.length) {
88
+ var inner = classNames.apply(null, arg);
89
+ if (inner) {
90
+ classes.push(inner);
91
+ }
92
+ }
93
+ } else if (argType === 'object') {
94
+ if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {
95
+ classes.push(arg.toString());
96
+ continue;
97
+ }
98
+
99
+ for (var key in arg) {
100
+ if (hasOwn.call(arg, key) && arg[key]) {
101
+ classes.push(key);
102
+ }
103
+ }
104
+ }
105
+ }
106
+
107
+ return classes.join(' ');
108
+ }
109
+
110
+ if (module.exports) {
111
+ classNames.default = classNames;
112
+ module.exports = classNames;
113
+ } else {
114
+ window.classNames = classNames;
115
+ }
116
+ }());
117
+ } (classnames$1));
118
+
119
+ var classnames = classnames$1.exports;
120
+
121
+ var Menu = neetoui.Dropdown.Menu,
122
+ MenuItem = neetoui.Dropdown.MenuItem;
123
+ var Dropdown = function Dropdown(_ref) {
124
+ var customDropdown = _ref.customDropdown,
125
+ _ref$handleManage = _ref.handleManage,
126
+ handleManage = _ref$handleManage === void 0 ? pure.noop : _ref$handleManage,
127
+ _ref$hideDisconnect = _ref.hideDisconnect,
128
+ hideDisconnect = _ref$hideDisconnect === void 0 ? false : _ref$hideDisconnect,
129
+ _ref$onDisconnect = _ref.onDisconnect,
130
+ onDisconnect = _ref$onDisconnect === void 0 ? pure.noop : _ref$onDisconnect;
131
+ var _useTranslation = reactI18next.useTranslation(),
132
+ t = _useTranslation.t;
133
+ if (ramda.isNotNil(customDropdown)) {
134
+ return /*#__PURE__*/React__default["default"].createElement("div", {
135
+ onClick: function onClick(e) {
136
+ return e.stopPropagation();
137
+ }
138
+ }, customDropdown);
139
+ }
140
+ var isManageable = ramda.isNotNil(handleManage);
141
+ if (!isManageable && hideDisconnect) {
142
+ return null;
143
+ }
144
+ return /*#__PURE__*/React__default["default"].createElement("div", {
145
+ onClick: function onClick(e) {
146
+ return e.stopPropagation();
147
+ }
148
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Dropdown, {
149
+ buttonStyle: "text",
150
+ icon: neetoIcons.MenuVertical
151
+ }, /*#__PURE__*/React__default["default"].createElement(Menu, null, isManageable && /*#__PURE__*/React__default["default"].createElement(MenuItem.Button, {
152
+ onClick: handleManage
153
+ }, t("neetoMolecules.integrationCard.manage")), !hideDisconnect && /*#__PURE__*/React__default["default"].createElement(MenuItem.Button, {
154
+ onClick: onDisconnect
155
+ }, t("neetoMolecules.integrationCard.disconnect")))));
156
+ };
157
+
158
+ var Status = function Status(_ref) {
159
+ var isExpired = _ref.isExpired;
160
+ var _useTranslation = reactI18next.useTranslation(),
161
+ t = _useTranslation.t;
162
+ var tagProps = isExpired ? {
163
+ icon: neetoIcons.Warning,
164
+ label: t("neetoMolecules.integrationCard.tags.expired"),
165
+ style: "warning"
166
+ } : {
167
+ icon: neetoIcons.Check,
168
+ label: t("neetoMolecules.integrationCard.tags.connected"),
169
+ style: "success"
170
+ };
171
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Tag, _extends({
172
+ className: "flex-row-reverse"
173
+ }, tagProps, {
174
+ "data-testid": "integration-status"
175
+ }));
176
+ };
177
+
178
+ var _excluded$1 = ["icon", "subIcons", "label", "description", "className", "onConnect", "onDisconnect", "onManage", "isLoading", "isConnected", "isFailed", "isExpired", "disabled", "hidden", "hideDisconnect", "onClick", "tooltipProps", "customDropdown", "dataCy", "children"];
179
+ var IntegrationCard = function IntegrationCard(_ref) {
180
+ var Icon = _ref.icon,
181
+ _ref$subIcons = _ref.subIcons,
182
+ subIcons = _ref$subIcons === void 0 ? [] : _ref$subIcons,
183
+ _ref$label = _ref.label,
184
+ label = _ref$label === void 0 ? "" : _ref$label,
185
+ _ref$description = _ref.description,
186
+ description = _ref$description === void 0 ? "" : _ref$description,
187
+ _ref$className = _ref.className,
188
+ className = _ref$className === void 0 ? "" : _ref$className,
189
+ _ref$onConnect = _ref.onConnect,
190
+ onConnect = _ref$onConnect === void 0 ? pure.noop : _ref$onConnect,
191
+ _ref$onDisconnect = _ref.onDisconnect,
192
+ onDisconnect = _ref$onDisconnect === void 0 ? pure.noop : _ref$onDisconnect,
193
+ _ref$onManage = _ref.onManage,
194
+ onManage = _ref$onManage === void 0 ? undefined : _ref$onManage,
195
+ _ref$isLoading = _ref.isLoading,
196
+ isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
197
+ _ref$isConnected = _ref.isConnected,
198
+ isConnected = _ref$isConnected === void 0 ? false : _ref$isConnected,
199
+ _ref$isFailed = _ref.isFailed,
200
+ isFailed = _ref$isFailed === void 0 ? false : _ref$isFailed,
201
+ _ref$isExpired = _ref.isExpired,
202
+ isExpired = _ref$isExpired === void 0 ? false : _ref$isExpired,
203
+ _ref$disabled = _ref.disabled,
204
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
205
+ _ref$hidden = _ref.hidden,
206
+ hidden = _ref$hidden === void 0 ? false : _ref$hidden,
207
+ _ref$hideDisconnect = _ref.hideDisconnect,
208
+ hideDisconnect = _ref$hideDisconnect === void 0 ? false : _ref$hideDisconnect,
209
+ _ref$onClick = _ref.onClick,
210
+ onCardClick = _ref$onClick === void 0 ? undefined : _ref$onClick,
211
+ _ref$tooltipProps = _ref.tooltipProps,
212
+ tooltipProps = _ref$tooltipProps === void 0 ? {} : _ref$tooltipProps,
213
+ _ref$customDropdown = _ref.customDropdown,
214
+ customDropdown = _ref$customDropdown === void 0 ? null : _ref$customDropdown,
215
+ _ref$dataCy = _ref.dataCy,
216
+ dataCy = _ref$dataCy === void 0 ? "" : _ref$dataCy,
217
+ children = _ref.children,
218
+ otherProps = _objectWithoutProperties(_ref, _excluded$1);
219
+ var _useTranslation = reactI18next.useTranslation(),
220
+ t = _useTranslation.t;
221
+ if (hidden) return null;
222
+ var isCardClickable = isConnected && ramda.isNotNil(onCardClick);
223
+ var cardProps = isCardClickable ? {
224
+ onClick: onCardClick
225
+ } : {};
226
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, _extends({
227
+ disabled: !disabled,
228
+ position: "top",
229
+ content: disabled && t("neetoMolecules.integrationCard.tooltip.integrationNotAvailable")
230
+ }, tooltipProps), /*#__PURE__*/React__default["default"].createElement("div", _extends({
231
+ "data-cy": dataCy,
232
+ "data-testid": "integration-card",
233
+ 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", {
234
+ "hover:neeto-ui-bg-100 cursor-not-allowed opacity-50": disabled,
235
+ "cursor-pointer": isCardClickable
236
+ }, className)
237
+ }, cardProps, otherProps), /*#__PURE__*/React__default["default"].createElement("div", {
238
+ className: "flex flex-grow justify-between",
239
+ "data-cy": "integration-tabs"
240
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
241
+ className: "flex min-w-0 flex-col justify-end"
242
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
243
+ className: "relative mb-4 flex h-8"
244
+ }, Icon && /*#__PURE__*/React__default["default"].createElement(Icon, {
245
+ size: 32
246
+ })), /*#__PURE__*/React__default["default"].createElement("div", {
247
+ className: "my-auto"
248
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
249
+ className: "mb-2",
250
+ "data-cy": "integration-card-label",
251
+ style: "h4",
252
+ weight: "semibold"
253
+ }, label), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
254
+ className: "break-words",
255
+ "data-cy": "".concat(utils.joinHyphenCase(label), "-integration-description"),
256
+ style: "body2"
257
+ }, description), children)), pure.isNotEmpty(subIcons) && /*#__PURE__*/React__default["default"].createElement("div", {
258
+ className: "flex h-24 flex-col gap-2"
259
+ }, subIcons.map(function (Icon, index) {
260
+ return /*#__PURE__*/React__default["default"].createElement(Icon, {
261
+ className: "neeto-ui-text-gray-600",
262
+ key: index,
263
+ size: 24
264
+ });
265
+ }))), /*#__PURE__*/React__default["default"].createElement("div", {
266
+ className: "neeto-ui-border-gray-300 mt-4 w-full border-t pt-2"
267
+ }, isLoading ? /*#__PURE__*/React__default["default"].createElement("div", {
268
+ className: "mt-3 flex items-center justify-start"
269
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Spinner, null)) : /*#__PURE__*/React__default["default"].createElement("div", {
270
+ className: "flex h-8 items-center justify-between"
271
+ }, isConnected && /*#__PURE__*/React__default["default"].createElement(Status, {
272
+ isExpired: isExpired
273
+ }), isFailed && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
274
+ className: "neeto-ui-text-warning-500",
275
+ "data-cy": "connect-button",
276
+ disabled: disabled || isLoading,
277
+ label: t("neetoMolecules.integrationCard.tryAgain"),
278
+ style: "link",
279
+ onClick: onConnect
280
+ }), !isConnected && !isFailed && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
281
+ "data-cy": "connect-button",
282
+ "data-testid": "integraiton-card-connect-button",
283
+ disabled: disabled || isLoading,
284
+ label: t("neetoMolecules.integrationCard.connect"),
285
+ style: "link",
286
+ onClick: onConnect
287
+ }), (isConnected || isFailed) && /*#__PURE__*/React__default["default"].createElement(Dropdown, {
288
+ customDropdown: customDropdown,
289
+ hideDisconnect: hideDisconnect,
290
+ onDisconnect: onDisconnect,
291
+ handleManage: onManage
292
+ })))));
293
+ };
294
+
295
+ var _excluded = ["label", "description", "icon", "path", "dataCy", "className"];
296
+ var Item = function Item(_ref) {
297
+ var label = _ref.label,
298
+ description = _ref.description,
299
+ _ref$icon = _ref.icon,
300
+ Icon = _ref$icon === void 0 ? null : _ref$icon,
301
+ path = _ref.path,
302
+ dataCy = _ref.dataCy,
303
+ _ref$className = _ref.className,
304
+ className = _ref$className === void 0 ? "" : _ref$className,
305
+ otherProps = _objectWithoutProperties(_ref, _excluded);
306
+ return /*#__PURE__*/React__default["default"].createElement(reactRouterDom.Link, _extends({
307
+ "data-cy": dataCy,
308
+ to: path,
309
+ 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 cursor-pointer flex-col border p-6 no-underline transition-colors", className)
310
+ }, otherProps), /*#__PURE__*/React__default["default"].createElement("div", {
311
+ "data-testid": "settings-item-".concat(utils.joinHyphenCase(label))
312
+ }, Icon && /*#__PURE__*/React__default["default"].createElement(Icon, {
313
+ className: "neeto-ui-text-gray-600 mb-4",
314
+ size: 32
315
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
316
+ className: "mb-2",
317
+ "data-cy": "settings-item-heading",
318
+ style: "h4",
319
+ weight: "semibold"
320
+ }, label), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
321
+ "data-cy": "settings-item-description",
322
+ style: "body2"
323
+ }, description)));
324
+ };
325
+ var Item$1 = /*#__PURE__*/React.memo(reactRouterDom.withRouter(Item));
326
+
327
+ var Category = function Category(_ref) {
328
+ var items = _ref.items,
329
+ label = _ref.label,
330
+ id = _ref.id,
331
+ isIntegration = _ref.isIntegration;
332
+ var SettingsCard = isIntegration ? IntegrationCard : Item$1;
333
+ return /*#__PURE__*/React__default["default"].createElement("div", {
334
+ className: "flex flex-col py-6",
335
+ id: id
336
+ }, pure.isNotEmpty(items) && /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
337
+ className: "mb-6",
338
+ component: "h2",
339
+ "data-cy": "settings-category-heading",
340
+ style: "h2",
341
+ weight: "semibold"
342
+ }, label), /*#__PURE__*/React__default["default"].createElement("div", {
343
+ className: "grid grid-cols-1 gap-3 lg:grid-cols-2 lg:gap-6 xl:grid-cols-3 2xl:grid-cols-4"
344
+ }, items.map(function (item) {
345
+ return /*#__PURE__*/React__default["default"].createElement(SettingsCard, _extends({
346
+ key: item.label
347
+ }, item));
348
+ })));
349
+ };
350
+
351
+ var scrollIntoSettingCategory = function scrollIntoSettingCategory(activeCategory) {
352
+ var _document$getElementB;
353
+ (_document$getElementB = document.getElementById(activeCategory)) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.scrollIntoView();
354
+ };
355
+
356
+ var Settings = function Settings(_ref) {
357
+ var _ref$categories = _ref.categories,
358
+ categories = _ref$categories === void 0 ? [] : _ref$categories;
359
+ var _useTranslation = reactI18next.useTranslation(),
360
+ t = _useTranslation.t;
361
+ var _getQueryParams = utils.getQueryParams(),
362
+ categoryParam = _getQueryParams.category;
363
+ React.useEffect(function () {
364
+ scrollIntoSettingCategory(categoryParam === null || categoryParam === void 0 ? void 0 : categoryParam.toUpperCase());
365
+ }, [categoryParam]);
366
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, ramda.isEmpty(categories) ? /*#__PURE__*/React__default["default"].createElement("div", {
367
+ className: "flex h-full w-full flex-grow items-center justify-center",
368
+ "data-testid": "settings-no-data"
369
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.NoData, {
370
+ title: t("neetoMolecules.settingsPage.noData")
371
+ })) : categories.map(function (_ref2) {
372
+ var id = _ref2.id,
373
+ label = _ref2.label,
374
+ items = _ref2.items,
375
+ isIntegration = _ref2.isIntegration;
376
+ return /*#__PURE__*/React__default["default"].createElement(Category, {
377
+ id: id,
378
+ isIntegration: isIntegration,
379
+ items: items,
380
+ label: label,
381
+ key: id
382
+ });
383
+ }));
384
+ };
385
+
386
+ module.exports = Settings;
387
+ //# sourceMappingURL=Settings.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Settings.cjs.js","sources":["../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/classnames/index.js","../src/components/IntegrationCard/Dropdown.jsx","../src/components/IntegrationCard/Status.jsx","../src/components/IntegrationCard/index.jsx","../src/components/Settings/Item.jsx","../src/components/Settings/Category.jsx","../src/components/Settings/utils.js","../src/components/Settings/index.jsx"],"sourcesContent":["export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import React from \"react\";\n\nimport { noop } from \"neetocommons/pure\";\nimport { MenuVertical } from \"neetoicons\";\nimport { Dropdown as NeetoUIDropdown } from \"neetoui\";\nimport { isNotNil } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nconst { Menu, MenuItem } = NeetoUIDropdown;\n\nconst Dropdown = ({\n customDropdown,\n handleManage = noop,\n hideDisconnect = false,\n onDisconnect = noop,\n}) => {\n const { t } = useTranslation();\n\n if (isNotNil(customDropdown)) {\n return <div onClick={e => e.stopPropagation()}>{customDropdown}</div>;\n }\n\n const isManageable = isNotNil(handleManage);\n\n if (!isManageable && hideDisconnect) {\n return null;\n }\n\n return (\n <div onClick={e => e.stopPropagation()}>\n <NeetoUIDropdown buttonStyle=\"text\" icon={MenuVertical}>\n <Menu>\n {isManageable && (\n <MenuItem.Button onClick={handleManage}>\n {t(\"neetoMolecules.integrationCard.manage\")}\n </MenuItem.Button>\n )}\n {!hideDisconnect && (\n <MenuItem.Button onClick={onDisconnect}>\n {t(\"neetoMolecules.integrationCard.disconnect\")}\n </MenuItem.Button>\n )}\n </Menu>\n </NeetoUIDropdown>\n </div>\n );\n};\n\nexport default Dropdown;\n","import React from \"react\";\n\nimport { Check, Warning } from \"neetoicons\";\nimport { Tag } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nconst Status = ({ isExpired }) => {\n const { t } = useTranslation();\n\n const tagProps = isExpired\n ? {\n icon: Warning,\n label: t(\"neetoMolecules.integrationCard.tags.expired\"),\n style: \"warning\",\n }\n : {\n icon: Check,\n label: t(\"neetoMolecules.integrationCard.tags.connected\"),\n style: \"success\",\n };\n\n return (\n <Tag\n className=\"flex-row-reverse\"\n {...tagProps}\n data-testid=\"integration-status\"\n />\n );\n};\n\nexport default Status;\n","import React from \"react\";\n\nimport classnames from \"classnames\";\nimport { isNotEmpty, noop } from \"neetocommons/pure\";\nimport { joinHyphenCase } from \"neetocommons/utils\";\nimport { Typography, Button, Spinner, Tooltip } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { isNotNil } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Dropdown from \"./Dropdown\";\nimport Status from \"./Status\";\n\nconst IntegrationCard = ({\n icon: Icon,\n subIcons = [],\n label = \"\",\n description = \"\",\n className = \"\",\n onConnect = noop,\n onDisconnect = noop,\n onManage = undefined,\n isLoading = false,\n isConnected = false,\n isFailed = false,\n isExpired = false,\n disabled = false,\n hidden = false,\n hideDisconnect = false,\n onClick: onCardClick = undefined,\n tooltipProps = {},\n customDropdown = null,\n dataCy = \"\",\n children,\n ...otherProps\n}) => {\n const { t } = useTranslation();\n\n if (hidden) return null;\n\n const isCardClickable = isConnected && isNotNil(onCardClick);\n\n const cardProps = isCardClickable ? { onClick: onCardClick } : {};\n\n return (\n <Tooltip\n disabled={!disabled}\n position=\"top\"\n content={\n disabled &&\n t(\"neetoMolecules.integrationCard.tooltip.integrationNotAvailable\")\n }\n {...tooltipProps}\n >\n <div\n data-cy={dataCy}\n data-testid=\"integration-card\"\n className={classnames(\n \"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\",\n {\n \"hover:neeto-ui-bg-100 cursor-not-allowed opacity-50\": disabled,\n \"cursor-pointer\": isCardClickable,\n },\n className\n )}\n {...cardProps}\n {...otherProps}\n >\n <div\n className=\"flex flex-grow justify-between\"\n data-cy=\"integration-tabs\"\n >\n <div className=\"flex min-w-0 flex-col justify-end\">\n <div className=\"relative mb-4 flex h-8\">\n {Icon && <Icon size={32} />}\n </div>\n <div className=\"my-auto\">\n <Typography\n className=\"mb-2\"\n data-cy=\"integration-card-label\"\n style=\"h4\"\n weight=\"semibold\"\n >\n {label}\n </Typography>\n <Typography\n className=\"break-words\"\n data-cy={`${joinHyphenCase(label)}-integration-description`}\n style=\"body2\"\n >\n {description}\n </Typography>\n {children}\n </div>\n </div>\n {isNotEmpty(subIcons) && (\n <div className=\"flex h-24 flex-col gap-2\">\n {subIcons.map((Icon, index) => (\n <Icon\n className=\"neeto-ui-text-gray-600\"\n key={index}\n size={24}\n />\n ))}\n </div>\n )}\n </div>\n <div className=\"neeto-ui-border-gray-300 mt-4 w-full border-t pt-2\">\n {isLoading ? (\n <div className=\"mt-3 flex items-center justify-start\">\n <Spinner />\n </div>\n ) : (\n <div className=\"flex h-8 items-center justify-between\">\n {isConnected && <Status {...{ isExpired }} />}\n {isFailed && (\n <Button\n className=\"neeto-ui-text-warning-500\"\n data-cy=\"connect-button\"\n disabled={disabled || isLoading}\n label={t(\"neetoMolecules.integrationCard.tryAgain\")}\n style=\"link\"\n onClick={onConnect}\n />\n )}\n {!isConnected && !isFailed && (\n <Button\n data-cy=\"connect-button\"\n data-testid=\"integraiton-card-connect-button\"\n disabled={disabled || isLoading}\n label={t(\"neetoMolecules.integrationCard.connect\")}\n style=\"link\"\n onClick={onConnect}\n />\n )}\n {(isConnected || isFailed) && (\n <Dropdown\n {...{ customDropdown, hideDisconnect, onDisconnect }}\n handleManage={onManage}\n />\n )}\n </div>\n )}\n </div>\n </div>\n </Tooltip>\n );\n};\n\nIntegrationCard.propTypes = {\n /**\n * The icon component to be displayed on the card.\n */\n icon: PropTypes.elementType,\n /**\n * Array of sub-icons to be displayed on the card.\n */\n subIcons: PropTypes.arrayOf(PropTypes.elementType),\n /**\n * The label to be displayed on the card.\n */\n label: PropTypes.string,\n /**\n * The description of the card.\n */\n description: PropTypes.string,\n /**\n * Additional class names for styling the card.\n */\n className: PropTypes.string,\n /**\n * Handler function called when the integration is connected.\n */\n onConnect: PropTypes.func,\n /**\n * Handler function called when the manage dropdown is clicked.\n */\n onManage: PropTypes.func,\n /**\n * Handler function called when clicked on integration card.\n */\n onClick: PropTypes.func,\n /**\n * Handler function called when the disconnect dropdown is clicked.\n */\n onDisconnect: PropTypes.func,\n /**\n * Flag indicating if the integration is currently loading.\n */\n isLoading: PropTypes.bool,\n /**\n * Flag indicating if the integration is connected.\n */\n isConnected: PropTypes.bool,\n /**\n * Flag indicating if the integration has failed.\n */\n isFailed: PropTypes.bool,\n /**\n * Flag indicating if the integration has expired.\n */\n isExpired: PropTypes.bool,\n /**\n * Flag indicating if the integration is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * Flag indicating if the card should be hidden.\n */\n hidden: PropTypes.bool,\n /**\n * Flag indicating if the disconnect button should be hidden.\n */\n hideDisconnect: PropTypes.bool,\n /**\n * Additional props for customizing the tooltip wrapper.\n */\n tooltipProps: PropTypes.object,\n /**\n * Custom dropdown component to be rendered.\n */\n customDropdown: PropTypes.element,\n /**\n * Additional children elements to be rendered within the card.\n */\n children: PropTypes.node,\n};\n\nexport default IntegrationCard;\n","import React, { memo } from \"react\";\n\nimport classnames from \"classnames\";\nimport { joinHyphenCase } from \"neetocommons/utils\";\nimport { Typography } from \"neetoui\";\nimport { withRouter, Link } from \"react-router-dom\";\n\nconst Item = ({\n label,\n description,\n icon: Icon = null,\n path,\n dataCy,\n className = \"\",\n ...otherProps\n}) => (\n <Link\n data-cy={dataCy}\n to={path}\n className={classnames(\n \"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 cursor-pointer flex-col border p-6 no-underline transition-colors\",\n className\n )}\n {...otherProps}\n >\n <div data-testid={`settings-item-${joinHyphenCase(label)}`}>\n {Icon && <Icon className=\"neeto-ui-text-gray-600 mb-4\" size={32} />}\n <Typography\n className=\"mb-2\"\n data-cy=\"settings-item-heading\"\n style=\"h4\"\n weight=\"semibold\"\n >\n {label}\n </Typography>\n <Typography data-cy=\"settings-item-description\" style=\"body2\">\n {description}\n </Typography>\n </div>\n </Link>\n);\n\nexport default memo(withRouter(Item));\n","import React from \"react\";\n\nimport { isNotEmpty } from \"neetocommons/pure\";\nimport { Typography } from \"neetoui\";\n\nimport IntegrationCard from \"components/IntegrationCard\";\n\nimport Item from \"./Item\";\n\nconst Category = ({ items, label, id, isIntegration }) => {\n const SettingsCard = isIntegration ? IntegrationCard : Item;\n\n return (\n <div className=\"flex flex-col py-6\" {...{ id }}>\n {isNotEmpty(items) && (\n <Typography\n className=\"mb-6\"\n component=\"h2\"\n data-cy=\"settings-category-heading\"\n style=\"h2\"\n weight=\"semibold\"\n >\n {label}\n </Typography>\n )}\n <div className=\"grid grid-cols-1 gap-3 lg:grid-cols-2 lg:gap-6 xl:grid-cols-3 2xl:grid-cols-4\">\n {items.map(item => (\n <SettingsCard key={item.label} {...item} />\n ))}\n </div>\n </div>\n );\n};\n\nexport default Category;\n","export const scrollIntoSettingCategory = activeCategory => {\n document.getElementById(activeCategory)?.scrollIntoView();\n};\n","import React, { useEffect } from \"react\";\n\nimport { getQueryParams } from \"neetocommons/utils\";\nimport { NoData } from \"neetoui\";\nimport propTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Category from \"./Category\";\nimport { scrollIntoSettingCategory } from \"./utils\";\n\nconst Settings = ({ categories = [] }) => {\n const { t } = useTranslation();\n\n const { category: categoryParam } = getQueryParams();\n\n useEffect(() => {\n scrollIntoSettingCategory(categoryParam?.toUpperCase());\n }, [categoryParam]);\n\n return (\n <>\n {isEmpty(categories) ? (\n <div\n className=\"flex h-full w-full flex-grow items-center justify-center\"\n data-testid=\"settings-no-data\"\n >\n <NoData title={t(\"neetoMolecules.settingsPage.noData\")} />\n </div>\n ) : (\n categories.map(({ id, label, items, isIntegration }) => (\n <Category {...{ id, isIntegration, items, label }} key={id} />\n ))\n )}\n </>\n );\n};\n\nSettings.propTypes = {\n /**\n * An array of setting categories to be displayed.\n */\n categories: propTypes.array,\n};\n\nexport default Settings;\n"],"names":["objectWithoutPropertiesLoose","Menu","NeetoUIDropdown","MenuItem","Dropdown","_ref","customDropdown","_ref$handleManage","handleManage","noop","_ref$hideDisconnect","hideDisconnect","_ref$onDisconnect","onDisconnect","_useTranslation","useTranslation","t","isNotNil","React","createElement","onClick","e","stopPropagation","isManageable","buttonStyle","icon","MenuVertical","Button","Status","isExpired","tagProps","Warning","label","style","Check","Tag","_extends","className","IntegrationCard","Icon","_ref$subIcons","subIcons","_ref$label","_ref$description","description","_ref$className","_ref$onConnect","onConnect","_ref$onManage","onManage","undefined","_ref$isLoading","isLoading","_ref$isConnected","isConnected","_ref$isFailed","isFailed","_ref$isExpired","_ref$disabled","disabled","_ref$hidden","hidden","_ref$onClick","onCardClick","_ref$tooltipProps","tooltipProps","_ref$customDropdown","_ref$dataCy","dataCy","children","otherProps","_objectWithoutProperties","_excluded","isCardClickable","cardProps","Tooltip","position","content","classnames","size","Typography","weight","concat","joinHyphenCase","isNotEmpty","map","index","key","Spinner","Item","_ref$icon","path","Link","to","memo","withRouter","Category","items","id","isIntegration","SettingsCard","component","item","scrollIntoSettingCategory","activeCategory","_document$getElementB","document","getElementById","scrollIntoView","Settings","_ref$categories","categories","_getQueryParams","getQueryParams","categoryParam","category","useEffect","toUpperCase","Fragment","isEmpty","NoData","title","_ref2"],"mappings":"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"}