@bigbinary/neeto-molecules 5.1.19 → 5.1.21

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 (166) hide show
  1. package/dist/FinderModal.js +56 -9
  2. package/dist/FinderModal.js.map +1 -1
  3. package/dist/IpRestriction.js +2 -3175
  4. package/dist/IpRestriction.js.map +1 -1
  5. package/dist/MadeWith.js +3 -74
  6. package/dist/MadeWith.js.map +1 -1
  7. package/dist/NeetoWidget.js +3 -1958
  8. package/dist/NeetoWidget.js.map +1 -1
  9. package/dist/Onboarding.js +3 -400
  10. package/dist/Onboarding.js.map +1 -1
  11. package/dist/chevron-up-B2_LTx_h.js +15 -0
  12. package/dist/chevron-up-B2_LTx_h.js.map +1 -0
  13. package/dist/cjs/FinderModal.js +54 -7
  14. package/dist/cjs/FinderModal.js.map +1 -1
  15. package/dist/cjs/IpRestriction.js +21 -3194
  16. package/dist/cjs/IpRestriction.js.map +1 -1
  17. package/dist/cjs/MadeWith.js +17 -88
  18. package/dist/cjs/MadeWith.js.map +1 -1
  19. package/dist/cjs/NeetoWidget.js +4 -1959
  20. package/dist/cjs/NeetoWidget.js.map +1 -1
  21. package/dist/cjs/Onboarding.js +3 -400
  22. package/dist/cjs/Onboarding.js.map +1 -1
  23. package/dist/cjs/chevron-up-CpzhFWzM.js +17 -0
  24. package/dist/cjs/chevron-up-CpzhFWzM.js.map +1 -0
  25. package/dist/cjs/copy-CerjTcLL.js +20 -0
  26. package/dist/cjs/copy-CerjTcLL.js.map +1 -0
  27. package/dist/cjs/globe-DawgK2Dx.js +21 -0
  28. package/dist/cjs/globe-DawgK2Dx.js.map +1 -0
  29. package/dist/cjs/index-ARGXqXxG.js +78 -0
  30. package/dist/cjs/index-ARGXqXxG.js.map +1 -0
  31. package/dist/cjs/index-BeqE2JWC.js +3180 -0
  32. package/dist/cjs/index-BeqE2JWC.js.map +1 -0
  33. package/dist/cjs/panel-left-close-CLoRPBWH.js +21 -0
  34. package/dist/cjs/panel-left-close-CLoRPBWH.js.map +1 -0
  35. package/dist/cjs/phone-number-Bza7WGZm.js +315 -0
  36. package/dist/cjs/phone-number-Bza7WGZm.js.map +1 -0
  37. package/dist/cjs/prism-tomorrow-BMFuJ5o1.js +1963 -0
  38. package/dist/cjs/prism-tomorrow-BMFuJ5o1.js.map +1 -0
  39. package/dist/cjs/react-confetti-DdGoyZ0y.js +405 -0
  40. package/dist/cjs/react-confetti-DdGoyZ0y.js.map +1 -0
  41. package/dist/cjs/smartphone-ChvEvl-o.js +36 -0
  42. package/dist/cjs/smartphone-ChvEvl-o.js.map +1 -0
  43. package/dist/cjs/trash-2-CotPjU5n.js +23 -0
  44. package/dist/cjs/trash-2-CotPjU5n.js.map +1 -0
  45. package/dist/cjs/triangle-alert-De-qkUXK.js +27 -0
  46. package/dist/cjs/triangle-alert-De-qkUXK.js.map +1 -0
  47. package/dist/cjs/v2/AuditLogs.js +4 -18
  48. package/dist/cjs/v2/AuditLogs.js.map +1 -1
  49. package/dist/cjs/v2/Builder.js +4 -18
  50. package/dist/cjs/v2/Builder.js.map +1 -1
  51. package/dist/cjs/v2/Codeblock.js +1 -0
  52. package/dist/cjs/v2/Codeblock.js.map +1 -1
  53. package/dist/cjs/v2/CopyToClipboardButton.js +3 -16
  54. package/dist/cjs/v2/CopyToClipboardButton.js.map +1 -1
  55. package/dist/cjs/v2/FinderModal.js +48 -14
  56. package/dist/cjs/v2/FinderModal.js.map +1 -1
  57. package/dist/cjs/v2/FloatingActionMenu.js +1 -0
  58. package/dist/cjs/v2/FloatingActionMenu.js.map +1 -1
  59. package/dist/cjs/v2/Insights.js +344 -0
  60. package/dist/cjs/v2/Insights.js.map +1 -0
  61. package/dist/cjs/v2/IntegrationCard.js +222 -0
  62. package/dist/cjs/v2/IntegrationCard.js.map +1 -0
  63. package/dist/cjs/v2/IpRestriction.js +525 -0
  64. package/dist/cjs/v2/IpRestriction.js.map +1 -0
  65. package/dist/cjs/v2/MadeWith.js +73 -0
  66. package/dist/cjs/v2/MadeWith.js.map +1 -0
  67. package/dist/cjs/v2/Metadata.js +215 -0
  68. package/dist/cjs/v2/Metadata.js.map +1 -0
  69. package/dist/cjs/v2/NavigationHeader.js +1 -0
  70. package/dist/cjs/v2/NavigationHeader.js.map +1 -1
  71. package/dist/cjs/v2/NeetoWidget.js +855 -0
  72. package/dist/cjs/v2/NeetoWidget.js.map +1 -0
  73. package/dist/cjs/v2/Onboarding.js +323 -0
  74. package/dist/cjs/v2/Onboarding.js.map +1 -0
  75. package/dist/cjs/v2/OptionFields.js +1291 -0
  76. package/dist/cjs/v2/OptionFields.js.map +1 -0
  77. package/dist/cjs/v2/PhoneNumber.js +20 -307
  78. package/dist/cjs/v2/PhoneNumber.js.map +1 -1
  79. package/dist/cjs/v2/ProductEmbed.js +1870 -0
  80. package/dist/cjs/v2/ProductEmbed.js.map +1 -0
  81. package/dist/cjs/v2/PublishBlock.js +6 -22
  82. package/dist/cjs/v2/PublishBlock.js.map +1 -1
  83. package/dist/cjs/v2/PublishYourItem.js +60 -0
  84. package/dist/cjs/v2/PublishYourItem.js.map +1 -0
  85. package/dist/cjs/v2/ResponsiveDevicePicker.js +88 -0
  86. package/dist/cjs/v2/ResponsiveDevicePicker.js.map +1 -0
  87. package/dist/cjs/v2/SessionEnvironment.js +479 -0
  88. package/dist/cjs/v2/SessionEnvironment.js.map +1 -0
  89. package/dist/copy-DhbOoOav.js +18 -0
  90. package/dist/copy-DhbOoOav.js.map +1 -0
  91. package/dist/globe-rBiI1CjO.js +19 -0
  92. package/dist/globe-rBiI1CjO.js.map +1 -0
  93. package/dist/index-0jnA7dx6.js +3178 -0
  94. package/dist/index-0jnA7dx6.js.map +1 -0
  95. package/dist/index-DF5MKxql.js +76 -0
  96. package/dist/index-DF5MKxql.js.map +1 -0
  97. package/dist/panel-left-close-37jik3GB.js +19 -0
  98. package/dist/panel-left-close-37jik3GB.js.map +1 -0
  99. package/dist/phone-number-CGZtDB_n.js +291 -0
  100. package/dist/phone-number-CGZtDB_n.js.map +1 -0
  101. package/dist/prism-tomorrow-ZUb2Ikm9.js +1961 -0
  102. package/dist/prism-tomorrow-ZUb2Ikm9.js.map +1 -0
  103. package/dist/react-confetti-BnGq_LBE.js +403 -0
  104. package/dist/react-confetti-BnGq_LBE.js.map +1 -0
  105. package/dist/smartphone-B-jv1y8j.js +33 -0
  106. package/dist/smartphone-B-jv1y8j.js.map +1 -0
  107. package/dist/trash-2-N0F6K63L.js +21 -0
  108. package/dist/trash-2-N0F6K63L.js.map +1 -0
  109. package/dist/triangle-alert-Pkh6pc42.js +25 -0
  110. package/dist/triangle-alert-Pkh6pc42.js.map +1 -0
  111. package/dist/v2/AuditLogs.js +3 -17
  112. package/dist/v2/AuditLogs.js.map +1 -1
  113. package/dist/v2/Builder.js +3 -17
  114. package/dist/v2/Builder.js.map +1 -1
  115. package/dist/v2/Codeblock.js +1 -0
  116. package/dist/v2/Codeblock.js.map +1 -1
  117. package/dist/v2/CopyToClipboardButton.js +2 -15
  118. package/dist/v2/CopyToClipboardButton.js.map +1 -1
  119. package/dist/v2/FinderModal.js +49 -15
  120. package/dist/v2/FinderModal.js.map +1 -1
  121. package/dist/v2/FloatingActionMenu.js +1 -0
  122. package/dist/v2/FloatingActionMenu.js.map +1 -1
  123. package/dist/v2/Insights.js +342 -0
  124. package/dist/v2/Insights.js.map +1 -0
  125. package/dist/v2/IntegrationCard.js +220 -0
  126. package/dist/v2/IntegrationCard.js.map +1 -0
  127. package/dist/v2/IpRestriction.js +504 -0
  128. package/dist/v2/IpRestriction.js.map +1 -0
  129. package/dist/v2/MadeWith.js +52 -0
  130. package/dist/v2/MadeWith.js.map +1 -0
  131. package/dist/v2/Metadata.js +213 -0
  132. package/dist/v2/Metadata.js.map +1 -0
  133. package/dist/v2/NavigationHeader.js +1 -0
  134. package/dist/v2/NavigationHeader.js.map +1 -1
  135. package/dist/v2/NeetoWidget.js +834 -0
  136. package/dist/v2/NeetoWidget.js.map +1 -0
  137. package/dist/v2/Onboarding.js +321 -0
  138. package/dist/v2/Onboarding.js.map +1 -0
  139. package/dist/v2/OptionFields.js +1289 -0
  140. package/dist/v2/OptionFields.js.map +1 -0
  141. package/dist/v2/PhoneNumber.js +20 -287
  142. package/dist/v2/PhoneNumber.js.map +1 -1
  143. package/dist/v2/ProductEmbed.js +1868 -0
  144. package/dist/v2/ProductEmbed.js.map +1 -0
  145. package/dist/v2/PublishBlock.js +5 -21
  146. package/dist/v2/PublishBlock.js.map +1 -1
  147. package/dist/v2/PublishYourItem.js +58 -0
  148. package/dist/v2/PublishYourItem.js.map +1 -0
  149. package/dist/v2/ResponsiveDevicePicker.js +86 -0
  150. package/dist/v2/ResponsiveDevicePicker.js.map +1 -0
  151. package/dist/v2/SessionEnvironment.js +477 -0
  152. package/dist/v2/SessionEnvironment.js.map +1 -0
  153. package/package.json +3 -3
  154. package/types/v2/Insights.d.ts +69 -0
  155. package/types/v2/IntegrationCard.d.ts +30 -0
  156. package/types/v2/IpRestriction.d.ts +5 -0
  157. package/types/v2/MadeWith.d.ts +8 -0
  158. package/types/v2/Metadata.d.ts +26 -0
  159. package/types/v2/MobilePreviewHeader.d.ts +8 -0
  160. package/types/v2/NeetoWidget.d.ts +19 -0
  161. package/types/v2/Onboarding.d.ts +22 -0
  162. package/types/v2/OptionFields.d.ts +55 -0
  163. package/types/v2/ProductEmbed.d.ts +90 -0
  164. package/types/v2/PublishYourItem.d.ts +8 -0
  165. package/types/v2/ResponsiveDevicePicker.d.ts +11 -0
  166. package/types/v2/SessionEnvironment.d.ts +34 -0
@@ -0,0 +1,344 @@
1
+ 'use strict';
2
+
3
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
+ var neetoAtoms = require('@bigbinary/neeto-atoms');
5
+ var classnames = require('classnames');
6
+ var reactI18next = require('react-i18next');
7
+ var i18next = require('i18next');
8
+ var React = require('react');
9
+ var ramda = require('ramda');
10
+ var jsxRuntime = require('react/jsx-runtime');
11
+ var neetoCist = require('@bigbinary/neeto-cist');
12
+ var v2_HelpPopover = require('./HelpPopover.js');
13
+ var v2_DateRangeFilter = require('./DateRangeFilter.js');
14
+ var triangleAlert = require('../triangle-alert-De-qkUXK.js');
15
+ require('@babel/runtime/helpers/objectWithoutProperties');
16
+ require('../circle-question-mark-kxBMPyWQ.js');
17
+ require('../createLucideIcon-DBDhE7kE.js');
18
+ require('@babel/runtime/helpers/slicedToArray');
19
+ require('@bigbinary/neeto-commons-frontend/v2/initializers');
20
+ require('@bigbinary/neeto-commons-frontend/v2/utils');
21
+
22
+ var DEFAULT_DEVICES = [{
23
+ label: i18next.t("neetoMolecules.insights.labels.devices.desktop"),
24
+ value: "desktop"
25
+ }, {
26
+ label: i18next.t("neetoMolecules.insights.labels.devices.mobile"),
27
+ value: "smartphone"
28
+ }];
29
+ var DEFAULT_OS = [{
30
+ label: i18next.t("neetoMolecules.insights.labels.os.macos"),
31
+ value: "mac"
32
+ }, {
33
+ label: i18next.t("neetoMolecules.insights.labels.os.windows"),
34
+ value: "windows"
35
+ }];
36
+ var DEFAULT_BROWSERS = [{
37
+ label: i18next.t("neetoMolecules.insights.labels.browsers.chrome"),
38
+ value: "chrome"
39
+ }, {
40
+ label: i18next.t("neetoMolecules.insights.labels.browsers.safari"),
41
+ value: "safari"
42
+ }];
43
+ ({
44
+ label: i18next.t("neetoMolecules.insights.labels.allTime")});
45
+
46
+ var PercentageBar$1 = function PercentageBar(_ref) {
47
+ var value = _ref.value;
48
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
49
+ children: [value !== 0 && /*#__PURE__*/jsxRuntime.jsx("div", {
50
+ className: "bg-muted-foreground/30 h-2 rounded-full",
51
+ style: {
52
+ width: "".concat(value, "%")
53
+ }
54
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
55
+ variant: "body3",
56
+ children: value ? "".concat(value, "%") : 0
57
+ })]
58
+ });
59
+ };
60
+ var PercentageBar = /*#__PURE__*/React.memo(PercentageBar$1);
61
+
62
+ var MetaInfoItem$1 = function MetaInfoItem(_ref) {
63
+ var name = _ref.name,
64
+ value = _ref.value;
65
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
66
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
67
+ className: "capitalize",
68
+ variant: "body2",
69
+ children: name
70
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
71
+ className: "col-span-3 flex items-center gap-2",
72
+ children: /*#__PURE__*/jsxRuntime.jsx(PercentageBar, {
73
+ value: value
74
+ })
75
+ })]
76
+ });
77
+ };
78
+ var MetaInfoItem = /*#__PURE__*/React.memo(MetaInfoItem$1);
79
+
80
+ var DataDistribution = function DataDistribution(_ref) {
81
+ var data = _ref.data;
82
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
83
+ className: "grid grid-cols-4 gap-2",
84
+ children: data.map(function (_ref2) {
85
+ var name = _ref2.name,
86
+ value = _ref2.value;
87
+ return /*#__PURE__*/React.createElement(MetaInfoItem, {
88
+ name: name,
89
+ value: value,
90
+ key: name
91
+ });
92
+ })
93
+ });
94
+ };
95
+
96
+ var getSum = function getSum(data, searchKey) {
97
+ var sum = 0;
98
+ for (var key in data) {
99
+ if (key.includes(searchKey)) sum += data[key];
100
+ }
101
+ return sum;
102
+ };
103
+ var transformInsights = function transformInsights(data, defaultItems) {
104
+ var othersData = Object.keys(data).filter(function (key) {
105
+ return !neetoCist.existsBy({
106
+ value: key
107
+ }, defaultItems);
108
+ }).map(function (key) {
109
+ return {
110
+ name: key,
111
+ value: data[key]
112
+ };
113
+ });
114
+ var defaultData = defaultItems.map(function (_ref) {
115
+ var label = _ref.label,
116
+ value = _ref.value;
117
+ return {
118
+ name: label,
119
+ value: getSum(data, value) || 0
120
+ };
121
+ });
122
+ return {
123
+ defaultData: defaultData,
124
+ othersData: othersData
125
+ };
126
+ };
127
+
128
+ var MetaInfo$1 = function MetaInfo(_ref) {
129
+ var type = _ref.type,
130
+ data = _ref.data,
131
+ defaultItems = _ref.defaultItems;
132
+ var _useTranslation = reactI18next.useTranslation(),
133
+ t = _useTranslation.t;
134
+ var _transformInsights = transformInsights(data, defaultItems),
135
+ defaultData = _transformInsights.defaultData,
136
+ othersData = _transformInsights.othersData;
137
+ var othersSum = ramda.sum(ramda.values(ramda.pluck("value", othersData)));
138
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
139
+ className: "bg-muted rounded p-4",
140
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
141
+ className: "mb-2 uppercase",
142
+ variant: "body2",
143
+ weight: "bold",
144
+ children: type
145
+ }), /*#__PURE__*/jsxRuntime.jsx(DataDistribution, {
146
+ data: defaultData
147
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Tooltip, {
148
+ content: /*#__PURE__*/jsxRuntime.jsx(DataDistribution, {
149
+ data: othersData
150
+ }),
151
+ disabled: !othersSum,
152
+ position: "bottom",
153
+ children: /*#__PURE__*/jsxRuntime.jsx("div", {
154
+ className: "mt-2 grid grid-cols-4 gap-2",
155
+ children: /*#__PURE__*/jsxRuntime.jsx(MetaInfoItem, {
156
+ name: t("neetoMolecules.insights.others"),
157
+ value: othersSum
158
+ })
159
+ })
160
+ })]
161
+ });
162
+ };
163
+ var MetaInfo = /*#__PURE__*/React.memo(MetaInfo$1);
164
+
165
+ var TimeItem$1 = function TimeItem(_ref) {
166
+ var value = _ref.value,
167
+ suffix = _ref.suffix;
168
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
169
+ className: "flex items-end",
170
+ "data-testid": "time-item",
171
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
172
+ className: "me-1",
173
+ variant: "h1",
174
+ weight: "semibold",
175
+ children: value
176
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
177
+ className: "leading-loose",
178
+ variant: "body2",
179
+ children: suffix
180
+ })]
181
+ });
182
+ };
183
+ var TimeItem = /*#__PURE__*/React.memo(TimeItem$1);
184
+
185
+ var MetricItem$1 = function MetricItem(_ref) {
186
+ var metric = _ref.metric,
187
+ value = _ref.value,
188
+ helpText = _ref.helpText,
189
+ isTime = _ref.isTime,
190
+ isPercentage = _ref.isPercentage;
191
+ var renderTime = function renderTime(value) {
192
+ var hours = value.h,
193
+ minutes = value.m,
194
+ seconds = value.s;
195
+ var showSeconds = !hours && !minutes;
196
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
197
+ className: "flex gap-2",
198
+ children: [!!hours && /*#__PURE__*/jsxRuntime.jsx(TimeItem, {
199
+ suffix: "H",
200
+ value: hours
201
+ }), !!minutes && /*#__PURE__*/jsxRuntime.jsx(TimeItem, {
202
+ suffix: "M",
203
+ value: minutes
204
+ }), (!!seconds || showSeconds) && /*#__PURE__*/jsxRuntime.jsx(TimeItem, {
205
+ suffix: "S",
206
+ value: seconds
207
+ })]
208
+ });
209
+ };
210
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
211
+ className: "nf-insights__metric-item border-border border-b pb-4",
212
+ "data-testid": "".concat(neetoCist.hyphenate(metric), "-metric"),
213
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
214
+ className: "flex items-center gap-2",
215
+ children: [/*#__PURE__*/jsxRuntime.jsx("div", {
216
+ className: "flex items-end gap-x-1",
217
+ children: isTime ? renderTime(value) : /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Typography, {
218
+ className: "text-foreground",
219
+ "data-testid": "insights-count",
220
+ variant: "h1",
221
+ weight: "semibold",
222
+ children: [value || 0, isPercentage ? "%" : ""]
223
+ })
224
+ }), helpText && /*#__PURE__*/jsxRuntime.jsx("div", {
225
+ children: /*#__PURE__*/jsxRuntime.jsx(v2_HelpPopover, {
226
+ description: helpText
227
+ })
228
+ })]
229
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
230
+ className: "text-muted-foreground",
231
+ "data-testid": "insights-type",
232
+ variant: "body3",
233
+ children: metric
234
+ })]
235
+ });
236
+ };
237
+ var MetricItem = /*#__PURE__*/React.memo(MetricItem$1);
238
+
239
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
240
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
241
+ var Insights = function Insights(_ref) {
242
+ var insightsData = _ref.insightsData,
243
+ isLoading = _ref.isLoading,
244
+ timePeriod = _ref.timePeriod,
245
+ setTimePeriod = _ref.setTimePeriod,
246
+ _ref$helpTexts = _ref.helpTexts,
247
+ helpTexts = _ref$helpTexts === void 0 ? {} : _ref$helpTexts,
248
+ _ref$showWarningMessa = _ref.showWarningMessage,
249
+ showWarningMessage = _ref$showWarningMessa === void 0 ? false : _ref$showWarningMessa,
250
+ className = _ref.className,
251
+ title = _ref.title,
252
+ _ref$tooltipProps = _ref.tooltipProps,
253
+ tooltipProps = _ref$tooltipProps === void 0 ? {} : _ref$tooltipProps;
254
+ var _useTranslation = reactI18next.useTranslation(),
255
+ t = _useTranslation.t;
256
+ var visitCount = insightsData.visitCount,
257
+ startCount = insightsData.startCount,
258
+ submissionCount = insightsData.submissionCount,
259
+ completionRate = insightsData.completionRate,
260
+ averageSubmissionTime = insightsData.averageSubmissionTime,
261
+ devices = insightsData.devices,
262
+ operatingSystems = insightsData.operatingSystems,
263
+ browsers = insightsData.browsers;
264
+ if (isLoading) {
265
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
266
+ className: "flex h-full w-full items-center justify-center",
267
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Spinner, {})
268
+ });
269
+ }
270
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
271
+ className: classnames("mx-auto pt-10", className),
272
+ "data-testid": "insights",
273
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
274
+ className: "mb-10 flex w-full items-center",
275
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
276
+ "data-testid": "submissions-insights-title",
277
+ variant: "h2",
278
+ children: title || t("neetoMolecules.insights.title")
279
+ }), showWarningMessage && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Tooltip, _objectSpread(_objectSpread({
280
+ content: t("neetoMolecules.insights.dataInaccuracyWarning"),
281
+ position: "bottom"
282
+ }, tooltipProps), {}, {
283
+ children: /*#__PURE__*/jsxRuntime.jsx("span", {
284
+ className: "ms-3",
285
+ children: /*#__PURE__*/jsxRuntime.jsx(triangleAlert.TriangleAlert, {
286
+ className: "text-warning",
287
+ "data-testid": "insights-warning",
288
+ size: 20
289
+ })
290
+ })
291
+ })), /*#__PURE__*/jsxRuntime.jsx("span", {
292
+ className: "ms-auto",
293
+ children: /*#__PURE__*/jsxRuntime.jsx(v2_DateRangeFilter, {
294
+ setTimePeriod: setTimePeriod,
295
+ timePeriod: timePeriod
296
+ })
297
+ })]
298
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
299
+ className: "mb-6 grid grid-cols-1 gap-x-9 gap-y-6 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-5 lg:gap-0",
300
+ children: [/*#__PURE__*/jsxRuntime.jsx(MetricItem, {
301
+ helpText: helpTexts["visitCount"],
302
+ metric: t("neetoMolecules.insights.metrics.visits"),
303
+ value: visitCount
304
+ }), /*#__PURE__*/jsxRuntime.jsx(MetricItem, {
305
+ helpText: helpTexts["startCount"],
306
+ metric: t("neetoMolecules.insights.metrics.starts"),
307
+ value: startCount
308
+ }), /*#__PURE__*/jsxRuntime.jsx(MetricItem, {
309
+ helpText: helpTexts["submissions"],
310
+ metric: t("neetoMolecules.insights.metrics.submissions"),
311
+ value: submissionCount
312
+ }), /*#__PURE__*/jsxRuntime.jsx(MetricItem, {
313
+ isPercentage: true,
314
+ helpText: helpTexts["completionRate"],
315
+ metric: t("neetoMolecules.insights.metrics.completionRate"),
316
+ value: completionRate
317
+ }), /*#__PURE__*/jsxRuntime.jsx(MetricItem, {
318
+ isTime: true,
319
+ helpText: helpTexts["averageSubmissionTime"],
320
+ metric: t("neetoMolecules.insights.metrics.avgTimeToComplete"),
321
+ timeSuffix: t("neetoMolecules.insights.mins"),
322
+ value: averageSubmissionTime
323
+ })]
324
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
325
+ className: "grid grid-cols-1 gap-6 sm:grid-cols-2 lg:grid-cols-3",
326
+ children: [/*#__PURE__*/jsxRuntime.jsx(MetaInfo, {
327
+ data: devices,
328
+ defaultItems: DEFAULT_DEVICES,
329
+ type: t("neetoMolecules.insights.devices")
330
+ }), /*#__PURE__*/jsxRuntime.jsx(MetaInfo, {
331
+ data: operatingSystems,
332
+ defaultItems: DEFAULT_OS,
333
+ type: t("neetoMolecules.insights.os")
334
+ }), /*#__PURE__*/jsxRuntime.jsx(MetaInfo, {
335
+ data: browsers,
336
+ defaultItems: DEFAULT_BROWSERS,
337
+ type: t("neetoMolecules.insights.browsers")
338
+ })]
339
+ })]
340
+ });
341
+ };
342
+
343
+ module.exports = Insights;
344
+ //# sourceMappingURL=Insights.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Insights.js","sources":["../../../src/v2/components/Insights/constants.js","../../../src/v2/components/Insights/MetaInfo/PercentageBar.jsx","../../../src/v2/components/Insights/MetaInfo/MetaInfoItem.jsx","../../../src/v2/components/Insights/MetaInfo/DataDistribution.jsx","../../../src/v2/components/Insights/utils.js","../../../src/v2/components/Insights/MetaInfo/index.jsx","../../../src/v2/components/Insights/TimeItem.jsx","../../../src/v2/components/Insights/MetricItem.jsx","../../../src/v2/components/Insights/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\n\nexport const DEFAULT_DEVICES = [\n {\n label: t(\"neetoMolecules.insights.labels.devices.desktop\"),\n value: \"desktop\",\n },\n {\n label: t(\"neetoMolecules.insights.labels.devices.mobile\"),\n value: \"smartphone\",\n },\n];\n\nexport const DEFAULT_OS = [\n { label: t(\"neetoMolecules.insights.labels.os.macos\"), value: \"mac\" },\n {\n label: t(\"neetoMolecules.insights.labels.os.windows\"),\n value: \"windows\",\n },\n];\n\nexport const DEFAULT_BROWSERS = [\n {\n label: t(\"neetoMolecules.insights.labels.browsers.chrome\"),\n value: \"chrome\",\n },\n {\n label: t(\"neetoMolecules.insights.labels.browsers.safari\"),\n value: \"safari\",\n },\n];\n\nexport const INITIAL_TIME_PERIOD_VALUE = {\n label: t(\"neetoMolecules.insights.labels.allTime\"),\n value: { startDate: null, endDate: null, rangeType: \"all\" },\n};\n","import { memo } from \"react\";\n\nimport { Typography } from \"@bigbinary/neeto-atoms\";\n\nconst PercentageBar = ({ value }) => (\n <>\n {value !== 0 && (\n <div\n className=\"bg-muted-foreground/30 h-2 rounded-full\"\n style={{ width: `${value}%` }}\n />\n )}\n <Typography variant=\"body3\">{value ? `${value}%` : 0}</Typography>\n </>\n);\n\nexport default memo(PercentageBar);\n","import { memo } from \"react\";\n\nimport { Typography } from \"@bigbinary/neeto-atoms\";\n\nimport PercentageBar from \"./PercentageBar\";\n\nconst MetaInfoItem = ({ name, value }) => (\n <>\n <Typography className=\"capitalize\" variant=\"body2\">\n {name}\n </Typography>\n <div className=\"col-span-3 flex items-center gap-2\">\n <PercentageBar {...{ value }} />\n </div>\n </>\n);\n\nexport default memo(MetaInfoItem);\n","import MetaInfoItem from \"./MetaInfoItem\";\n\nconst DataDistribution = ({ data }) => (\n <div className=\"grid grid-cols-4 gap-2\">\n {data.map(({ name, value }) => (\n <MetaInfoItem {...{ name, value }} key={name} />\n ))}\n </div>\n);\n\nexport default DataDistribution;\n","import { existsBy } from \"neetocist\";\n\nconst getSum = (data, searchKey) => {\n let sum = 0;\n for (const key in data) {\n if (key.includes(searchKey)) sum += data[key];\n }\n\n return sum;\n};\n\nexport const transformInsights = (data, defaultItems) => {\n const othersData = Object.keys(data)\n .filter(key => !existsBy({ value: key }, defaultItems))\n .map(key => ({ name: key, value: data[key] }));\n\n const defaultData = defaultItems.map(({ label, value }) => ({\n name: label,\n value: getSum(data, value) || 0,\n }));\n\n return { defaultData, othersData };\n};\n","import { memo } from \"react\";\n\nimport { Tooltip, Typography } from \"@bigbinary/neeto-atoms\";\nimport { pluck, sum, values } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport DataDistribution from \"./DataDistribution\";\nimport MetaInfoItem from \"./MetaInfoItem\";\n\nimport { transformInsights } from \"../utils\";\n\nconst MetaInfo = ({ type, data, defaultItems }) => {\n const { t } = useTranslation();\n const { defaultData, othersData } = transformInsights(data, defaultItems);\n\n const othersSum = sum(values(pluck(\"value\", othersData)));\n\n return (\n <div className=\"bg-muted rounded p-4\">\n <Typography className=\"mb-2 uppercase\" variant=\"body2\" weight=\"bold\">\n {type}\n </Typography>\n <DataDistribution data={defaultData} />\n <Tooltip\n content={<DataDistribution data={othersData} />}\n disabled={!othersSum}\n position=\"bottom\"\n >\n <div className=\"mt-2 grid grid-cols-4 gap-2\">\n <MetaInfoItem\n name={t(\"neetoMolecules.insights.others\")}\n value={othersSum}\n />\n </div>\n </Tooltip>\n </div>\n );\n};\n\nexport default memo(MetaInfo);\n","import { memo } from \"react\";\n\nimport { Typography } from \"@bigbinary/neeto-atoms\";\n\nconst TimeItem = ({ value, suffix }) => (\n <div className=\"flex items-end\" data-testid=\"time-item\">\n <Typography className=\"me-1\" variant=\"h1\" weight=\"semibold\">\n {value}\n </Typography>\n <Typography className=\"leading-loose\" variant=\"body2\">\n {suffix}\n </Typography>\n </div>\n);\n\nexport default memo(TimeItem);\n","import { memo } from \"react\";\n\nimport { Typography } from \"@bigbinary/neeto-atoms\";\nimport { hyphenate } from \"neetocist\";\n\nimport TimeItem from \"./TimeItem\";\n\nimport HelpPopover from \"../HelpPopover\";\n\nconst MetricItem = ({ metric, value, helpText, isTime, isPercentage }) => {\n const renderTime = value => {\n const { h: hours, m: minutes, s: seconds } = value;\n const showSeconds = !hours && !minutes;\n\n return (\n <div className=\"flex gap-2\">\n {!!hours && <TimeItem suffix=\"H\" value={hours} />}\n {!!minutes && <TimeItem suffix=\"M\" value={minutes} />}\n {(!!seconds || showSeconds) && <TimeItem suffix=\"S\" value={seconds} />}\n </div>\n );\n };\n\n return (\n <div\n className=\"nf-insights__metric-item border-border border-b pb-4\"\n data-testid={`${hyphenate(metric)}-metric`}\n >\n <div className=\"flex items-center gap-2\">\n <div className=\"flex items-end gap-x-1\">\n {isTime ? (\n renderTime(value)\n ) : (\n <Typography\n className=\"text-foreground\"\n data-testid=\"insights-count\"\n variant=\"h1\"\n weight=\"semibold\"\n >\n {value || 0}\n {isPercentage ? \"%\" : \"\"}\n </Typography>\n )}\n </div>\n {helpText && (\n <div>\n <HelpPopover description={helpText} />\n </div>\n )}\n </div>\n <Typography\n className=\"text-muted-foreground\"\n data-testid=\"insights-type\"\n variant=\"body3\"\n >\n {metric}\n </Typography>\n </div>\n );\n};\n\nexport default memo(MetricItem);\n","import { Spinner, Tooltip, Typography } from \"@bigbinary/neeto-atoms\";\nimport classNames from \"classnames\";\nimport { TriangleAlert } from \"lucide-react\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { DEFAULT_DEVICES, DEFAULT_BROWSERS, DEFAULT_OS } from \"./constants\";\nimport MetaInfo from \"./MetaInfo\";\nimport MetricItem from \"./MetricItem\";\n\nimport DateRangeFilter from \"../DateRangeFilter\";\n\nconst Insights = ({\n insightsData,\n isLoading,\n timePeriod,\n setTimePeriod,\n helpTexts = {},\n showWarningMessage = false,\n className,\n title,\n tooltipProps = {},\n}) => {\n const { t } = useTranslation();\n\n const {\n visitCount,\n startCount,\n submissionCount,\n completionRate,\n averageSubmissionTime,\n devices,\n operatingSystems,\n browsers,\n } = insightsData;\n\n if (isLoading) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <div\n className={classNames(\"mx-auto pt-10\", className)}\n data-testid=\"insights\"\n >\n <div className=\"mb-10 flex w-full items-center\">\n <Typography data-testid=\"submissions-insights-title\" variant=\"h2\">\n {title || t(\"neetoMolecules.insights.title\")}\n </Typography>\n {showWarningMessage && (\n <Tooltip\n content={t(\"neetoMolecules.insights.dataInaccuracyWarning\")}\n position=\"bottom\"\n {...tooltipProps}\n >\n <span className=\"ms-3\">\n <TriangleAlert\n className=\"text-warning\"\n data-testid=\"insights-warning\"\n size={20}\n />\n </span>\n </Tooltip>\n )}\n <span className=\"ms-auto\">\n <DateRangeFilter {...{ setTimePeriod, timePeriod }} />\n </span>\n </div>\n <div className=\"mb-6 grid grid-cols-1 gap-x-9 gap-y-6 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-5 lg:gap-0\">\n <MetricItem\n helpText={helpTexts[\"visitCount\"]}\n metric={t(\"neetoMolecules.insights.metrics.visits\")}\n value={visitCount}\n />\n <MetricItem\n helpText={helpTexts[\"startCount\"]}\n metric={t(\"neetoMolecules.insights.metrics.starts\")}\n value={startCount}\n />\n <MetricItem\n helpText={helpTexts[\"submissions\"]}\n metric={t(\"neetoMolecules.insights.metrics.submissions\")}\n value={submissionCount}\n />\n <MetricItem\n isPercentage\n helpText={helpTexts[\"completionRate\"]}\n metric={t(\"neetoMolecules.insights.metrics.completionRate\")}\n value={completionRate}\n />\n <MetricItem\n isTime\n helpText={helpTexts[\"averageSubmissionTime\"]}\n metric={t(\"neetoMolecules.insights.metrics.avgTimeToComplete\")}\n timeSuffix={t(\"neetoMolecules.insights.mins\")}\n value={averageSubmissionTime}\n />\n </div>\n <div className=\"grid grid-cols-1 gap-6 sm:grid-cols-2 lg:grid-cols-3\">\n <MetaInfo\n data={devices}\n defaultItems={DEFAULT_DEVICES}\n type={t(\"neetoMolecules.insights.devices\")}\n />\n <MetaInfo\n data={operatingSystems}\n defaultItems={DEFAULT_OS}\n type={t(\"neetoMolecules.insights.os\")}\n />\n <MetaInfo\n data={browsers}\n defaultItems={DEFAULT_BROWSERS}\n type={t(\"neetoMolecules.insights.browsers\")}\n />\n </div>\n </div>\n );\n};\n\nInsights.propTypes = {\n /**\n * Title displayed for the Insights component.\n */\n title: PropTypes.string,\n /**\n * Props for the tooltip displayed on the warning icon.\n */\n tooltipProps: PropTypes.object,\n /**\n * Object containing metrics and statistics for insights\n */\n insightsData: PropTypes.shape({\n visitCount: PropTypes.number,\n startCount: PropTypes.number,\n submissionCount: PropTypes.number,\n completionRate: PropTypes.number,\n averageSubmissionTime: PropTypes.shape({\n h: PropTypes.number,\n m: PropTypes.number,\n s: PropTypes.number,\n }),\n devices: PropTypes.shape({\n desktop: PropTypes.number,\n smartphone: PropTypes.number,\n }),\n operatingSystems: PropTypes.shape({\n mac: PropTypes.number,\n windows: PropTypes.number,\n }),\n browsers: PropTypes.shape({\n chrome: PropTypes.number,\n safari: PropTypes.number,\n }),\n }),\n /**\n * Indicates whether insights data is currently being fetched from an API\n */\n isLoading: PropTypes.bool,\n /**\n * The state corresponding to the currently selected date range.\n */\n timePeriod: PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.object,\n }),\n /**\n * The setter method for `timePeriod` state.\n */\n setTimePeriod: PropTypes.func,\n /**\n * Object containing explanatory text for each metric, providing additional context that can help users understand the significance of the metrics displayed.\n */\n helpTexts: PropTypes.shape({\n visitCount: PropTypes.string,\n startCount: PropTypes.string,\n submissions: PropTypes.string,\n completionRate: PropTypes.string,\n averageSubmissionTime: PropTypes.string,\n }),\n /**\n * Displays a warning to indicate that the insights may not be accurate, as the insights integration occurred after the record's creation.\n */\n showWarningMessage: PropTypes.bool,\n /**\n * To provide additional classes.\n */\n className: PropTypes.string,\n};\n\nexport default Insights;\n"],"names":["DEFAULT_DEVICES","label","t","value","DEFAULT_OS","DEFAULT_BROWSERS","PercentageBar","_ref","_jsxs","_Fragment","children","_jsx","className","style","width","concat","Typography","variant","memo","MetaInfoItem","name","DataDistribution","data","map","_ref2","_createElement","key","getSum","searchKey","sum","includes","transformInsights","defaultItems","othersData","Object","keys","filter","existsBy","defaultData","MetaInfo","type","_useTranslation","useTranslation","_transformInsights","othersSum","values","pluck","weight","Tooltip","content","disabled","position","TimeItem","suffix","MetricItem","metric","helpText","isTime","isPercentage","renderTime","hours","h","minutes","m","seconds","s","showSeconds","hyphenate","HelpPopover","description","Insights","insightsData","isLoading","timePeriod","setTimePeriod","_ref$helpTexts","helpTexts","_ref$showWarningMessa","showWarningMessage","title","_ref$tooltipProps","tooltipProps","visitCount","startCount","submissionCount","completionRate","averageSubmissionTime","devices","operatingSystems","browsers","Spinner","classNames","_objectSpread","TriangleAlert","size","DateRangeFilter","timeSuffix"],"mappings":"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"}
@@ -0,0 +1,222 @@
1
+ 'use strict';
2
+
3
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
5
+ var neetoAtoms = require('@bigbinary/neeto-atoms');
6
+ var classnames = require('classnames');
7
+ var neetoCist = require('@bigbinary/neeto-cist');
8
+ var general = require('@bigbinary/neeto-commons-frontend/v2/utils/general');
9
+ var ramda = require('ramda');
10
+ var reactI18next = require('react-i18next');
11
+ var v2_MoreDropdown = require('./MoreDropdown.js');
12
+ var jsxRuntime = require('react/jsx-runtime');
13
+ var triangleAlert = require('../triangle-alert-De-qkUXK.js');
14
+ var check = require('../check-VgZf0qTr.js');
15
+ require('@bigbinary/neeto-commons-frontend/v2/react-utils');
16
+ require('../createLucideIcon-DBDhE7kE.js');
17
+ require('react');
18
+ require('../ellipsis-BcfLTtl5.js');
19
+
20
+ var Dropdown = function Dropdown(_ref) {
21
+ var customDropdown = _ref.customDropdown,
22
+ _ref$handleManage = _ref.handleManage,
23
+ handleManage = _ref$handleManage === void 0 ? neetoCist.noop : _ref$handleManage,
24
+ _ref$hideDisconnect = _ref.hideDisconnect,
25
+ hideDisconnect = _ref$hideDisconnect === void 0 ? false : _ref$hideDisconnect,
26
+ _ref$onDisconnect = _ref.onDisconnect,
27
+ onDisconnect = _ref$onDisconnect === void 0 ? neetoCist.noop : _ref$onDisconnect;
28
+ var _useTranslation = reactI18next.useTranslation(),
29
+ t = _useTranslation.t;
30
+ if (ramda.isNotNil(customDropdown)) {
31
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
32
+ onClick: function onClick(e) {
33
+ return e.stopPropagation();
34
+ },
35
+ children: customDropdown
36
+ });
37
+ }
38
+ var isManageable = ramda.isNotNil(handleManage);
39
+ if (!isManageable && hideDisconnect) {
40
+ return null;
41
+ }
42
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
43
+ onClick: function onClick(e) {
44
+ return e.stopPropagation();
45
+ },
46
+ children: /*#__PURE__*/jsxRuntime.jsx(v2_MoreDropdown, {
47
+ menuItems: [{
48
+ isVisible: isManageable,
49
+ onClick: handleManage,
50
+ label: t("neetoMolecules.integrationCard.manage"),
51
+ key: "integration-card-manage-integration"
52
+ }, {
53
+ isVisible: !hideDisconnect,
54
+ onClick: onDisconnect,
55
+ label: t("neetoMolecules.integrationCard.disconnect"),
56
+ key: "integration-card-manage-disconnection"
57
+ }]
58
+ })
59
+ });
60
+ };
61
+
62
+ function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
63
+ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
64
+ var Status = function Status(_ref) {
65
+ var isExpired = _ref.isExpired;
66
+ var _useTranslation = reactI18next.useTranslation(),
67
+ t = _useTranslation.t;
68
+ var tagProps = isExpired ? {
69
+ icon: triangleAlert.TriangleAlert,
70
+ label: t("neetoMolecules.integrationCard.tags.expired"),
71
+ variant: "amber"
72
+ } : {
73
+ icon: check.Check,
74
+ label: t("neetoMolecules.integrationCard.tags.connected"),
75
+ variant: "green"
76
+ };
77
+ return /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Badge, _objectSpread$1(_objectSpread$1({}, tagProps), {}, {
78
+ "data-testid": "integration-status",
79
+ iconPosition: "right"
80
+ }));
81
+ };
82
+
83
+ var _excluded = ["icon", "subIcons", "label", "description", "className", "onConnect", "onDisconnect", "onManage", "isLoading", "isConnected", "isFailed", "isExpired", "disabled", "hidden", "hideDisconnect", "onClick", "tooltipProps", "customDropdown", "dataTestid", "connectPath", "connectUrl", "children"];
84
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
85
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
86
+ var IntegrationCard = function IntegrationCard(_ref) {
87
+ var Icon = _ref.icon,
88
+ _ref$subIcons = _ref.subIcons,
89
+ subIcons = _ref$subIcons === void 0 ? [] : _ref$subIcons,
90
+ _ref$label = _ref.label,
91
+ label = _ref$label === void 0 ? "" : _ref$label,
92
+ _ref$description = _ref.description,
93
+ description = _ref$description === void 0 ? "" : _ref$description,
94
+ _ref$className = _ref.className,
95
+ className = _ref$className === void 0 ? "" : _ref$className,
96
+ _ref$onConnect = _ref.onConnect,
97
+ onConnect = _ref$onConnect === void 0 ? neetoCist.noop : _ref$onConnect,
98
+ _ref$onDisconnect = _ref.onDisconnect,
99
+ onDisconnect = _ref$onDisconnect === void 0 ? neetoCist.noop : _ref$onDisconnect,
100
+ _ref$onManage = _ref.onManage,
101
+ onManage = _ref$onManage === void 0 ? undefined : _ref$onManage,
102
+ _ref$isLoading = _ref.isLoading,
103
+ isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
104
+ _ref$isConnected = _ref.isConnected,
105
+ isConnected = _ref$isConnected === void 0 ? false : _ref$isConnected,
106
+ _ref$isFailed = _ref.isFailed,
107
+ isFailed = _ref$isFailed === void 0 ? false : _ref$isFailed,
108
+ _ref$isExpired = _ref.isExpired,
109
+ isExpired = _ref$isExpired === void 0 ? false : _ref$isExpired,
110
+ _ref$disabled = _ref.disabled,
111
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
112
+ _ref$hidden = _ref.hidden,
113
+ hidden = _ref$hidden === void 0 ? false : _ref$hidden,
114
+ _ref$hideDisconnect = _ref.hideDisconnect,
115
+ hideDisconnect = _ref$hideDisconnect === void 0 ? false : _ref$hideDisconnect,
116
+ _ref$onClick = _ref.onClick,
117
+ onCardClick = _ref$onClick === void 0 ? undefined : _ref$onClick,
118
+ _ref$tooltipProps = _ref.tooltipProps,
119
+ tooltipProps = _ref$tooltipProps === void 0 ? {} : _ref$tooltipProps,
120
+ _ref$customDropdown = _ref.customDropdown,
121
+ customDropdown = _ref$customDropdown === void 0 ? null : _ref$customDropdown,
122
+ _ref$dataTestid = _ref.dataTestid,
123
+ dataTestid = _ref$dataTestid === void 0 ? "" : _ref$dataTestid,
124
+ _ref$connectPath = _ref.connectPath,
125
+ connectPath = _ref$connectPath === void 0 ? "" : _ref$connectPath,
126
+ _ref$connectUrl = _ref.connectUrl,
127
+ connectUrl = _ref$connectUrl === void 0 ? "" : _ref$connectUrl,
128
+ children = _ref.children,
129
+ otherProps = _objectWithoutProperties(_ref, _excluded);
130
+ var _useTranslation = reactI18next.useTranslation(),
131
+ t = _useTranslation.t;
132
+ if (hidden) return null;
133
+ var isCardClickable = isConnected && ramda.isNotNil(onCardClick);
134
+ var cardProps = isCardClickable ? {
135
+ onClick: onCardClick
136
+ } : {};
137
+ return /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Tooltip, _objectSpread(_objectSpread({
138
+ disabled: !disabled,
139
+ position: "top",
140
+ content: disabled && t("neetoMolecules.integrationCard.tooltip.integrationNotAvailable")
141
+ }, tooltipProps), {}, {
142
+ children: /*#__PURE__*/jsxRuntime.jsxs("div", _objectSpread(_objectSpread(_objectSpread({
143
+ "data-testid": neetoCist.isPresent(dataTestid) ? dataTestid : "integration-card",
144
+ className: classnames("border-border hover:border-ring focus:border-ring flex flex-col rounded-lg border p-6 no-underline shadow-xs transition-colors outline-none", {
145
+ "hover:bg-muted cursor-not-allowed opacity-50": disabled,
146
+ "cursor-pointer": isCardClickable
147
+ }, className)
148
+ }, cardProps), otherProps), {}, {
149
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
150
+ className: "flex flex-grow justify-between",
151
+ "data-testid": "integration-tabs",
152
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
153
+ className: "flex min-w-0 flex-col justify-end",
154
+ children: [/*#__PURE__*/jsxRuntime.jsx("div", {
155
+ className: "relative mb-4 flex h-8",
156
+ children: Icon && /*#__PURE__*/jsxRuntime.jsx(Icon, {
157
+ size: 32
158
+ })
159
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
160
+ className: "my-auto",
161
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
162
+ className: "mb-2",
163
+ "data-testid": "integration-card-label",
164
+ variant: "h4",
165
+ weight: "semibold",
166
+ children: label
167
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
168
+ className: "break-words",
169
+ "data-testid": "".concat(general.joinHyphenCase(label), "-integration-description"),
170
+ variant: "body2",
171
+ children: description
172
+ }), children]
173
+ })]
174
+ }), neetoCist.isNotEmpty(subIcons) && /*#__PURE__*/jsxRuntime.jsx("div", {
175
+ className: "flex h-24 flex-col gap-2",
176
+ children: subIcons.map(function (Icon, index) {
177
+ return /*#__PURE__*/jsxRuntime.jsx(Icon, {
178
+ className: "text-muted-foreground",
179
+ size: 24
180
+ }, index);
181
+ })
182
+ })]
183
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
184
+ className: "border-border mt-4 w-full border-t pt-2",
185
+ children: isLoading ? /*#__PURE__*/jsxRuntime.jsx("div", {
186
+ className: "mt-3 flex items-center justify-start",
187
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Spinner, {})
188
+ }) : /*#__PURE__*/jsxRuntime.jsxs("div", {
189
+ className: "flex h-8 items-center justify-between",
190
+ children: [isConnected && /*#__PURE__*/jsxRuntime.jsx(Status, {
191
+ isExpired: isExpired
192
+ }), isFailed && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
193
+ className: "text-warning",
194
+ "data-testid": "connect-button",
195
+ disabled: disabled || isLoading,
196
+ href: connectUrl,
197
+ label: t("neetoMolecules.integrationCard.tryAgain"),
198
+ to: connectPath,
199
+ variant: "link",
200
+ onClick: onConnect
201
+ }), !isConnected && !isFailed && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
202
+ "data-testid": "connect-button",
203
+ disabled: disabled || isLoading,
204
+ href: connectUrl,
205
+ label: t("neetoMolecules.integrationCard.connect"),
206
+ to: connectPath,
207
+ variant: "link",
208
+ onClick: onConnect
209
+ }), (isConnected || isFailed) && /*#__PURE__*/jsxRuntime.jsx(Dropdown, {
210
+ customDropdown: customDropdown,
211
+ hideDisconnect: hideDisconnect,
212
+ onDisconnect: onDisconnect,
213
+ handleManage: onManage
214
+ })]
215
+ })
216
+ })]
217
+ }))
218
+ }));
219
+ };
220
+
221
+ module.exports = IntegrationCard;
222
+ //# sourceMappingURL=IntegrationCard.js.map