@bigbinary/neeto-molecules 1.0.93 → 1.0.95

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/CustomDomain.cjs.js +8 -10
  2. package/dist/CustomDomain.cjs.js.map +1 -1
  3. package/dist/CustomDomain.js +10 -13
  4. package/dist/CustomDomain.js.map +1 -1
  5. package/dist/CustomDomainDashboard.cjs.js +8 -10
  6. package/dist/CustomDomainDashboard.cjs.js.map +1 -1
  7. package/dist/CustomDomainDashboard.js +9 -12
  8. package/dist/CustomDomainDashboard.js.map +1 -1
  9. package/dist/IconPicker.cjs.js +1 -0
  10. package/dist/IconPicker.cjs.js.map +1 -1
  11. package/dist/IconPicker.js +1 -0
  12. package/dist/IconPicker.js.map +1 -1
  13. package/dist/IntegrationCard.cjs.js +223 -38
  14. package/dist/IntegrationCard.cjs.js.map +1 -1
  15. package/dist/IntegrationCard.js +227 -42
  16. package/dist/IntegrationCard.js.map +1 -1
  17. package/dist/IntegrationDisconnectAlert.cjs.js +22 -14
  18. package/dist/IntegrationDisconnectAlert.cjs.js.map +1 -1
  19. package/dist/IntegrationDisconnectAlert.js +19 -14
  20. package/dist/IntegrationDisconnectAlert.js.map +1 -1
  21. package/dist/IntegrationWalkthroughModal.cjs.js +17 -9
  22. package/dist/IntegrationWalkthroughModal.cjs.js.map +1 -1
  23. package/dist/IntegrationWalkthroughModal.js +14 -9
  24. package/dist/IntegrationWalkthroughModal.js.map +1 -1
  25. package/dist/KeyboardShortcuts.cjs.js +2 -0
  26. package/dist/KeyboardShortcuts.cjs.js.map +1 -1
  27. package/dist/KeyboardShortcuts.js +2 -0
  28. package/dist/KeyboardShortcuts.js.map +1 -1
  29. package/dist/NeetoWidget.cjs.js +5 -20
  30. package/dist/NeetoWidget.cjs.js.map +1 -1
  31. package/dist/NeetoWidget.js +5 -21
  32. package/dist/NeetoWidget.js.map +1 -1
  33. package/dist/Schedule.cjs.js +2 -1
  34. package/dist/Schedule.cjs.js.map +1 -1
  35. package/dist/Schedule.js +2 -1
  36. package/dist/Schedule.js.map +1 -1
  37. package/dist/ShareViaLink.cjs.js +7 -8
  38. package/dist/ShareViaLink.cjs.js.map +1 -1
  39. package/dist/ShareViaLink.js +7 -9
  40. package/dist/ShareViaLink.js.map +1 -1
  41. package/package.json +1 -1
  42. package/src/translations/en.json +9 -1
  43. package/types/IntegrationCard.d.ts +14 -5
@@ -2,73 +2,258 @@
2
2
 
3
3
  var React = require('react');
4
4
  var pure = require('@bigbinary/neeto-commons-frontend/pure');
5
- var neetoIcons = require('@bigbinary/neeto-icons');
5
+ var utils = require('@bigbinary/neeto-commons-frontend/utils');
6
6
  var neetoui = require('@bigbinary/neetoui');
7
+ var ramda = require('ramda');
7
8
  var reactI18next = require('react-i18next');
9
+ var neetoIcons = require('@bigbinary/neeto-icons');
8
10
 
9
11
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
12
 
11
13
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
12
14
 
15
+ function _extends() {
16
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
17
+ for (var i = 1; i < arguments.length; i++) {
18
+ var source = arguments[i];
19
+ for (var key in source) {
20
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
21
+ target[key] = source[key];
22
+ }
23
+ }
24
+ }
25
+ return target;
26
+ };
27
+ return _extends.apply(this, arguments);
28
+ }
29
+
30
+ var classnames$1 = {exports: {}};
31
+
32
+ /*!
33
+ Copyright (c) 2018 Jed Watson.
34
+ Licensed under the MIT License (MIT), see
35
+ http://jedwatson.github.io/classnames
36
+ */
37
+
38
+ (function (module) {
39
+ /* global define */
40
+
41
+ (function () {
42
+
43
+ var hasOwn = {}.hasOwnProperty;
44
+
45
+ function classNames() {
46
+ var classes = [];
47
+
48
+ for (var i = 0; i < arguments.length; i++) {
49
+ var arg = arguments[i];
50
+ if (!arg) continue;
51
+
52
+ var argType = typeof arg;
53
+
54
+ if (argType === 'string' || argType === 'number') {
55
+ classes.push(arg);
56
+ } else if (Array.isArray(arg)) {
57
+ if (arg.length) {
58
+ var inner = classNames.apply(null, arg);
59
+ if (inner) {
60
+ classes.push(inner);
61
+ }
62
+ }
63
+ } else if (argType === 'object') {
64
+ if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {
65
+ classes.push(arg.toString());
66
+ continue;
67
+ }
68
+
69
+ for (var key in arg) {
70
+ if (hasOwn.call(arg, key) && arg[key]) {
71
+ classes.push(key);
72
+ }
73
+ }
74
+ }
75
+ }
76
+
77
+ return classes.join(' ');
78
+ }
79
+
80
+ if (module.exports) {
81
+ classNames.default = classNames;
82
+ module.exports = classNames;
83
+ } else {
84
+ window.classNames = classNames;
85
+ }
86
+ }());
87
+ } (classnames$1));
88
+
89
+ var classnames = classnames$1.exports;
90
+
13
91
  var Menu = neetoui.Dropdown.Menu,
14
92
  MenuItem = neetoui.Dropdown.MenuItem;
93
+ var Dropdown = function Dropdown(_ref) {
94
+ var customDropdown = _ref.customDropdown,
95
+ _ref$handleManage = _ref.handleManage,
96
+ handleManage = _ref$handleManage === void 0 ? pure.noop : _ref$handleManage,
97
+ _ref$hideDisconnect = _ref.hideDisconnect,
98
+ hideDisconnect = _ref$hideDisconnect === void 0 ? false : _ref$hideDisconnect,
99
+ _ref$onDisconnect = _ref.onDisconnect,
100
+ onDisconnect = _ref$onDisconnect === void 0 ? pure.noop : _ref$onDisconnect;
101
+ var _useTranslation = reactI18next.useTranslation(),
102
+ t = _useTranslation.t;
103
+ if (ramda.isNotNil(customDropdown)) {
104
+ return /*#__PURE__*/React__default["default"].createElement("div", {
105
+ onClick: function onClick(e) {
106
+ return e.stopPropagation();
107
+ }
108
+ }, customDropdown);
109
+ }
110
+ var isManageable = ramda.isNotNil(handleManage);
111
+ if (!isManageable && hideDisconnect) {
112
+ return null;
113
+ }
114
+ return /*#__PURE__*/React__default["default"].createElement("div", {
115
+ onClick: function onClick(e) {
116
+ return e.stopPropagation();
117
+ }
118
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Dropdown, {
119
+ buttonStyle: "text",
120
+ icon: neetoIcons.MenuVertical
121
+ }, /*#__PURE__*/React__default["default"].createElement(Menu, null, isManageable && /*#__PURE__*/React__default["default"].createElement(MenuItem.Button, {
122
+ onClick: handleManage
123
+ }, t("neetoMolecules.integrationCard.manage")), !hideDisconnect && /*#__PURE__*/React__default["default"].createElement(MenuItem.Button, {
124
+ onClick: onDisconnect
125
+ }, t("neetoMolecules.integrationCard.disconnect")))));
126
+ };
127
+
128
+ var Status = function Status(_ref) {
129
+ var isExpired = _ref.isExpired;
130
+ var _useTranslation = reactI18next.useTranslation(),
131
+ t = _useTranslation.t;
132
+ var tagProps = isExpired ? {
133
+ icon: neetoIcons.Warning,
134
+ label: t("neetoMolecules.integrationCard.tags.expired"),
135
+ style: "warning"
136
+ } : {
137
+ icon: neetoIcons.Check,
138
+ label: t("neetoMolecules.integrationCard.tags.connected"),
139
+ style: "success"
140
+ };
141
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Tag, _extends({
142
+ className: "flex-row-reverse"
143
+ }, tagProps, {
144
+ "data-testid": "integration-status"
145
+ }));
146
+ };
147
+
15
148
  var IntegrationCard = function IntegrationCard(_ref) {
16
- var label = _ref.label,
17
- description = _ref.description,
18
- Icon = _ref.Icon,
149
+ var Icon = _ref.icon,
150
+ _ref$subIcons = _ref.subIcons,
151
+ subIcons = _ref$subIcons === void 0 ? [] : _ref$subIcons,
152
+ _ref$label = _ref.label,
153
+ label = _ref$label === void 0 ? "" : _ref$label,
154
+ _ref$description = _ref.description,
155
+ description = _ref$description === void 0 ? "" : _ref$description,
19
156
  _ref$className = _ref.className,
20
157
  className = _ref$className === void 0 ? "" : _ref$className,
21
- isConnected = _ref.isConnected,
22
- _ref$isStatusLoading = _ref.isStatusLoading,
23
- isStatusLoading = _ref$isStatusLoading === void 0 ? false : _ref$isStatusLoading,
24
- _ref$customDropdown = _ref.customDropdown,
25
- customDropdown = _ref$customDropdown === void 0 ? null : _ref$customDropdown,
158
+ _ref$onConnect = _ref.onConnect,
159
+ onConnect = _ref$onConnect === void 0 ? pure.noop : _ref$onConnect,
26
160
  _ref$onDisconnect = _ref.onDisconnect,
27
161
  onDisconnect = _ref$onDisconnect === void 0 ? pure.noop : _ref$onDisconnect,
28
- onConnect = _ref.onConnect,
29
162
  _ref$onManage = _ref.onManage,
30
- onManage = _ref$onManage === void 0 ? pure.noop : _ref$onManage;
163
+ onManage = _ref$onManage === void 0 ? undefined : _ref$onManage,
164
+ _ref$isLoading = _ref.isLoading,
165
+ isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
166
+ _ref$isConnected = _ref.isConnected,
167
+ isConnected = _ref$isConnected === void 0 ? false : _ref$isConnected,
168
+ _ref$isFailed = _ref.isFailed,
169
+ isFailed = _ref$isFailed === void 0 ? false : _ref$isFailed,
170
+ _ref$isExpired = _ref.isExpired,
171
+ isExpired = _ref$isExpired === void 0 ? false : _ref$isExpired,
172
+ _ref$disabled = _ref.disabled,
173
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
174
+ _ref$hidden = _ref.hidden,
175
+ hidden = _ref$hidden === void 0 ? false : _ref$hidden,
176
+ _ref$hideDisconnect = _ref.hideDisconnect,
177
+ hideDisconnect = _ref$hideDisconnect === void 0 ? false : _ref$hideDisconnect,
178
+ _ref$onClick = _ref.onClick,
179
+ onCardClick = _ref$onClick === void 0 ? undefined : _ref$onClick,
180
+ _ref$tooltipProps = _ref.tooltipProps,
181
+ tooltipProps = _ref$tooltipProps === void 0 ? {} : _ref$tooltipProps,
182
+ _ref$customDropdown = _ref.customDropdown,
183
+ customDropdown = _ref$customDropdown === void 0 ? null : _ref$customDropdown,
184
+ children = _ref.children;
31
185
  var _useTranslation = reactI18next.useTranslation(),
32
186
  t = _useTranslation.t;
33
- return /*#__PURE__*/React__default["default"].createElement("div", {
34
- className: "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 ".concat(className)
187
+ if (hidden) return null;
188
+ var isCardClickable = isConnected && ramda.isNotNil(onCardClick);
189
+ var cardProps = isCardClickable ? {
190
+ onClick: onCardClick
191
+ } : {};
192
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, _extends({
193
+ disabled: !disabled,
194
+ position: "top",
195
+ content: disabled && t("neetoMolecules.integrationCard.tooltip.integrationNotAvailable")
196
+ }, tooltipProps), /*#__PURE__*/React__default["default"].createElement("div", _extends({
197
+ "data-testid": "integration-card",
198
+ 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", {
199
+ "hover:neeto-ui-bg-100 cursor-not-allowed opacity-50": disabled,
200
+ "cursor-pointer": isCardClickable
201
+ }, className)
202
+ }, cardProps), /*#__PURE__*/React__default["default"].createElement("div", {
203
+ className: "flex flex-grow justify-between",
204
+ "data-cy": "integration-tabs"
35
205
  }, /*#__PURE__*/React__default["default"].createElement("div", {
36
- className: "h-full"
206
+ className: "flex min-w-0 flex-col justify-end"
37
207
  }, /*#__PURE__*/React__default["default"].createElement("div", {
38
- className: "mb-4"
208
+ className: "relative mb-4 flex h-8"
39
209
  }, Icon && /*#__PURE__*/React__default["default"].createElement(Icon, {
40
- className: "neeto-ui-text-gray-700",
41
210
  size: 32
42
- })), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
43
- className: "neeto-ui-text-gray-800 mb-2",
211
+ })), /*#__PURE__*/React__default["default"].createElement("div", {
212
+ className: "my-auto"
213
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
214
+ className: "mb-2",
215
+ "data-cy": "integration-card-label",
44
216
  style: "h4",
45
217
  weight: "semibold"
46
218
  }, label), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
47
- className: "neeto-ui-text-gray-700",
219
+ className: "break-words",
220
+ "data-cy": "".concat(utils.joinHyphenCase(label), "-integration-description"),
48
221
  style: "body2"
49
- }, description)), /*#__PURE__*/React__default["default"].createElement("div", {
222
+ }, description), children)), pure.isNotEmpty(subIcons) && /*#__PURE__*/React__default["default"].createElement("div", {
223
+ className: "flex h-24 flex-col gap-2"
224
+ }, subIcons.map(function (Icon, index) {
225
+ return /*#__PURE__*/React__default["default"].createElement(Icon, {
226
+ className: "neeto-ui-text-gray-600",
227
+ key: index,
228
+ size: 24
229
+ });
230
+ }))), /*#__PURE__*/React__default["default"].createElement("div", {
50
231
  className: "neeto-ui-border-gray-300 mt-4 w-full border-t pt-2"
51
- }, /*#__PURE__*/React__default["default"].createElement("div", {
232
+ }, isLoading ? /*#__PURE__*/React__default["default"].createElement("div", {
233
+ className: "mt-3 flex items-center justify-start"
234
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Spinner, null)) : /*#__PURE__*/React__default["default"].createElement("div", {
52
235
  className: "flex h-8 items-center justify-between"
53
- }, isConnected ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Tag, {
54
- className: "flex-row-reverse",
55
- icon: neetoIcons.Check,
56
- label: t("neetoMolecules.integrationCard.connected"),
57
- size: "small",
58
- style: "success"
59
- }), customDropdown || /*#__PURE__*/React__default["default"].createElement(neetoui.Dropdown, {
60
- buttonStyle: "text",
61
- icon: neetoIcons.MenuVertical
62
- }, /*#__PURE__*/React__default["default"].createElement(Menu, null, /*#__PURE__*/React__default["default"].createElement(MenuItem.Button, {
63
- onClick: onManage
64
- }, t("neetoMolecules.integrationCard.manage")), /*#__PURE__*/React__default["default"].createElement(MenuItem.Button, {
65
- onClick: onDisconnect
66
- }, t("neetoMolecules.integrationCard.disconnect"))))) : /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
67
- loading: isStatusLoading,
236
+ }, isConnected && /*#__PURE__*/React__default["default"].createElement(Status, {
237
+ isExpired: isExpired
238
+ }), isFailed && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
239
+ className: "neeto-ui-text-warning-500",
240
+ "data-cy": "connect-button",
241
+ disabled: disabled || isLoading,
242
+ label: t("neetoMolecules.integrationCard.tryAgain"),
243
+ style: "link",
244
+ onClick: onConnect
245
+ }), !isConnected && !isFailed && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
246
+ "data-cy": "connect-button",
247
+ disabled: disabled || isLoading,
248
+ label: t("neetoMolecules.integrationCard.connect"),
68
249
  style: "link",
69
- label: isStatusLoading ? "" : t("neetoMolecules.integrationCard.connect"),
70
250
  onClick: onConnect
71
- }))));
251
+ }), (isConnected || isFailed) && /*#__PURE__*/React__default["default"].createElement(Dropdown, {
252
+ customDropdown: customDropdown,
253
+ hideDisconnect: hideDisconnect,
254
+ onDisconnect: onDisconnect,
255
+ handleManage: onManage
256
+ })))));
72
257
  };
73
258
 
74
259
  module.exports = IntegrationCard;
@@ -1 +1 @@
1
- {"version":3,"file":"IntegrationCard.cjs.js","sources":["../src/components/IntegrationCard/index.jsx"],"sourcesContent":["import React from \"react\";\n\nimport { noop } from \"neetocommons/pure\";\nimport { Check, MenuVertical } from \"neetoicons\";\nimport { Typography, Button, Tag, Dropdown } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nconst { Menu, MenuItem } = Dropdown;\n\nconst IntegrationCard = ({\n label,\n description,\n Icon,\n className = \"\",\n isConnected,\n isStatusLoading = false,\n customDropdown = null,\n onDisconnect = noop,\n onConnect,\n onManage = noop,\n}) => {\n const { t } = useTranslation();\n\n return (\n <div\n className={`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 ${className}`}\n >\n <div className=\"h-full\">\n <div className=\"mb-4\">\n {Icon && <Icon className=\"neeto-ui-text-gray-700\" size={32} />}\n </div>\n <Typography\n className=\"neeto-ui-text-gray-800 mb-2\"\n style=\"h4\"\n weight=\"semibold\"\n >\n {label}\n </Typography>\n <Typography className=\"neeto-ui-text-gray-700\" style=\"body2\">\n {description}\n </Typography>\n </div>\n <div className=\"neeto-ui-border-gray-300 mt-4 w-full border-t pt-2\">\n <div className=\"flex h-8 items-center justify-between\">\n {isConnected ? (\n <>\n <Tag\n className=\"flex-row-reverse\"\n icon={Check}\n label={t(\"neetoMolecules.integrationCard.connected\")}\n size=\"small\"\n style=\"success\"\n />\n {customDropdown || (\n <Dropdown buttonStyle=\"text\" icon={MenuVertical}>\n <Menu>\n <MenuItem.Button onClick={onManage}>\n {t(\"neetoMolecules.integrationCard.manage\")}\n </MenuItem.Button>\n <MenuItem.Button onClick={onDisconnect}>\n {t(\"neetoMolecules.integrationCard.disconnect\")}\n </MenuItem.Button>\n </Menu>\n </Dropdown>\n )}\n </>\n ) : (\n <Button\n loading={isStatusLoading}\n style=\"link\"\n label={\n isStatusLoading\n ? \"\"\n : t(\"neetoMolecules.integrationCard.connect\")\n }\n onClick={onConnect}\n />\n )}\n </div>\n </div>\n </div>\n );\n};\n\nIntegrationCard.propTypes = {\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 * The icon to be displayed on the card.\n */\n Icon: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n /**\n * To specify additional class names.\n */\n className: PropTypes.string,\n /**\n * To specify whether the integration is connected or not.\n */\n isConnected: PropTypes.bool,\n /**\n * To specify whether the integration is loading or not.\n */\n isStatusLoading: PropTypes.bool,\n /**\n * Displays a dropdown component next to the status.\n */\n customDropdown: PropTypes.element,\n /**\n * Handler function that is triggered when the integration is disconnected.\n */\n onDisconnect: PropTypes.func,\n /**\n * Handler function that is triggered when the integration is connected.\n */\n onConnect: PropTypes.func,\n /**\n * Handler function that is triggered when the manage button in default dropdown is clicked.\n */\n onManage: PropTypes.func,\n};\n\nexport default IntegrationCard;\n"],"names":["Menu","Dropdown","MenuItem","IntegrationCard","_ref","label","description","Icon","_ref$className","className","isConnected","_ref$isStatusLoading","isStatusLoading","_ref$customDropdown","customDropdown","_ref$onDisconnect","onDisconnect","noop","onConnect","_ref$onManage","onManage","_useTranslation","useTranslation","t","React","createElement","concat","size","Typography","style","weight","Fragment","Tag","icon","Check","buttonStyle","MenuVertical","Button","onClick","loading"],"mappings":"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"}
1
+ {"version":3,"file":"IntegrationCard.cjs.js","sources":["../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/classnames/index.js","../src/components/IntegrationCard/Dropdown.jsx","../src/components/IntegrationCard/Status.jsx","../src/components/IntegrationCard/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}","/*!\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 children,\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-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 >\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 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"],"names":["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","children","isCardClickable","cardProps","Tooltip","position","content","classnames","size","Typography","weight","concat","joinHyphenCase","isNotEmpty","map","index","key","Spinner"],"mappings":"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"}