@bigbinary/neeto-molecules 1.15.8 → 1.15.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Insights.js +305 -0
- package/dist/Insights.js.map +1 -0
- package/dist/NeetoWidget.js +23 -14
- package/dist/NeetoWidget.js.map +1 -1
- package/dist/cjs/Insights.js +311 -0
- package/dist/cjs/Insights.js.map +1 -0
- package/dist/cjs/NeetoWidget.js +23 -14
- package/dist/cjs/NeetoWidget.js.map +1 -1
- package/package.json +2 -2
- package/src/translations/en.json +43 -2
- package/types/Insights.d.ts +108 -0
package/dist/Insights.js
ADDED
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
import React__default, { memo } from 'react';
|
|
2
|
+
import { Warning } from '@bigbinary/neeto-icons';
|
|
3
|
+
import { Typography, Tooltip } from '@bigbinary/neetoui';
|
|
4
|
+
import { useTranslation } from 'react-i18next';
|
|
5
|
+
import DateRangeFilter from './DateRangeFilter.js';
|
|
6
|
+
import PageLoader from './PageLoader.js';
|
|
7
|
+
import { t } from 'i18next';
|
|
8
|
+
import { sum, values, pluck } from 'ramda';
|
|
9
|
+
import { existsBy } from '@bigbinary/neeto-cist';
|
|
10
|
+
import HelpPopover from './HelpPopover.js';
|
|
11
|
+
import './slicedToArray-b4278ecd.js';
|
|
12
|
+
import 'dayjs';
|
|
13
|
+
import '@bigbinary/neeto-commons-frontend/initializers';
|
|
14
|
+
import './extends-093996c9.js';
|
|
15
|
+
import './objectWithoutProperties-a0edb288.js';
|
|
16
|
+
import './inject-css-c86de496.js';
|
|
17
|
+
import './defineProperty-549061a7.js';
|
|
18
|
+
import 'classnames';
|
|
19
|
+
|
|
20
|
+
var DEFAULT_DEVICES = [{
|
|
21
|
+
label: t("neetoMolecules.insights.labels.devices.desktop"),
|
|
22
|
+
value: "desktop"
|
|
23
|
+
}, {
|
|
24
|
+
label: t("neetoMolecules.insights.labels.devices.mobile"),
|
|
25
|
+
value: "smartphone"
|
|
26
|
+
}];
|
|
27
|
+
var DEFAULT_OS = [{
|
|
28
|
+
label: t("neetoMolecules.insights.labels.os.macos"),
|
|
29
|
+
value: "mac"
|
|
30
|
+
}, {
|
|
31
|
+
label: t("neetoMolecules.insights.labels.os.windows"),
|
|
32
|
+
value: "windows"
|
|
33
|
+
}];
|
|
34
|
+
var DEFAULT_BROWSERS = [{
|
|
35
|
+
label: t("neetoMolecules.insights.labels.browsers.chrome"),
|
|
36
|
+
value: "chrome"
|
|
37
|
+
}, {
|
|
38
|
+
label: t("neetoMolecules.insights.labels.browsers.safari"),
|
|
39
|
+
value: "safari"
|
|
40
|
+
}];
|
|
41
|
+
({
|
|
42
|
+
label: t("neetoMolecules.insights.labels.allTime"),
|
|
43
|
+
value: {
|
|
44
|
+
startDate: null,
|
|
45
|
+
endDate: null,
|
|
46
|
+
rangeType: "all"
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
var PercentageBar = function PercentageBar(_ref) {
|
|
51
|
+
var value = _ref.value;
|
|
52
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, value && /*#__PURE__*/React__default.createElement("div", {
|
|
53
|
+
className: "neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2",
|
|
54
|
+
style: {
|
|
55
|
+
width: "".concat(value, "%")
|
|
56
|
+
}
|
|
57
|
+
}), /*#__PURE__*/React__default.createElement(Typography, {
|
|
58
|
+
style: "body3"
|
|
59
|
+
}, value, "%"));
|
|
60
|
+
};
|
|
61
|
+
var PercentageBar$1 = /*#__PURE__*/memo(PercentageBar);
|
|
62
|
+
|
|
63
|
+
var MetaInfoItem = function MetaInfoItem(_ref) {
|
|
64
|
+
var name = _ref.name,
|
|
65
|
+
value = _ref.value;
|
|
66
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Typography, {
|
|
67
|
+
style: "body2",
|
|
68
|
+
textTransform: "capitalize"
|
|
69
|
+
}, name), /*#__PURE__*/React__default.createElement("div", {
|
|
70
|
+
className: "col-span-3 flex items-center gap-2"
|
|
71
|
+
}, /*#__PURE__*/React__default.createElement(PercentageBar$1, {
|
|
72
|
+
value: value
|
|
73
|
+
})));
|
|
74
|
+
};
|
|
75
|
+
var MetaInfoItem$1 = /*#__PURE__*/memo(MetaInfoItem);
|
|
76
|
+
|
|
77
|
+
var DataDistribution = function DataDistribution(_ref) {
|
|
78
|
+
var data = _ref.data;
|
|
79
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
80
|
+
className: "grid grid-cols-4 gap-2"
|
|
81
|
+
}, data.map(function (_ref2) {
|
|
82
|
+
var name = _ref2.name,
|
|
83
|
+
value = _ref2.value;
|
|
84
|
+
return /*#__PURE__*/React__default.createElement(MetaInfoItem$1, {
|
|
85
|
+
name: name,
|
|
86
|
+
value: value,
|
|
87
|
+
key: name
|
|
88
|
+
});
|
|
89
|
+
}));
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
var getSum = function getSum(data, searchKey) {
|
|
93
|
+
var sum = 0;
|
|
94
|
+
for (var key in data) {
|
|
95
|
+
if (key.includes(searchKey)) sum += data[key];
|
|
96
|
+
}
|
|
97
|
+
return sum;
|
|
98
|
+
};
|
|
99
|
+
var transformInsights = function transformInsights(data, defaultItems) {
|
|
100
|
+
var othersData = Object.keys(data).filter(function (key) {
|
|
101
|
+
return !existsBy({
|
|
102
|
+
value: key
|
|
103
|
+
}, defaultItems);
|
|
104
|
+
}).map(function (key) {
|
|
105
|
+
return {
|
|
106
|
+
name: key,
|
|
107
|
+
value: data[key]
|
|
108
|
+
};
|
|
109
|
+
});
|
|
110
|
+
var defaultData = defaultItems.map(function (_ref) {
|
|
111
|
+
var label = _ref.label,
|
|
112
|
+
value = _ref.value;
|
|
113
|
+
return {
|
|
114
|
+
name: label,
|
|
115
|
+
value: getSum(data, value) || 0
|
|
116
|
+
};
|
|
117
|
+
});
|
|
118
|
+
return {
|
|
119
|
+
defaultData: defaultData,
|
|
120
|
+
othersData: othersData
|
|
121
|
+
};
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
var MetaInfo = function MetaInfo(_ref) {
|
|
125
|
+
var type = _ref.type,
|
|
126
|
+
data = _ref.data,
|
|
127
|
+
defaultItems = _ref.defaultItems;
|
|
128
|
+
var _useTranslation = useTranslation(),
|
|
129
|
+
t = _useTranslation.t;
|
|
130
|
+
var _transformInsights = transformInsights(data, defaultItems),
|
|
131
|
+
defaultData = _transformInsights.defaultData,
|
|
132
|
+
othersData = _transformInsights.othersData;
|
|
133
|
+
var othersSum = sum(values(pluck("value", othersData)));
|
|
134
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
135
|
+
className: "neeto-ui-bg-gray-100 neeto-ui-rounded p-4"
|
|
136
|
+
}, /*#__PURE__*/React__default.createElement(Typography, {
|
|
137
|
+
className: "mb-4",
|
|
138
|
+
style: "h6",
|
|
139
|
+
textTransform: "uppercase",
|
|
140
|
+
weight: "bold"
|
|
141
|
+
}, type), /*#__PURE__*/React__default.createElement(DataDistribution, {
|
|
142
|
+
data: defaultData
|
|
143
|
+
}), /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
144
|
+
content: /*#__PURE__*/React__default.createElement(DataDistribution, {
|
|
145
|
+
data: othersData
|
|
146
|
+
}),
|
|
147
|
+
disabled: !othersSum,
|
|
148
|
+
position: "bottom"
|
|
149
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
150
|
+
className: "mt-2 grid grid-cols-4 gap-2"
|
|
151
|
+
}, /*#__PURE__*/React__default.createElement(MetaInfoItem$1, {
|
|
152
|
+
name: t("neetoMolecules.insights.others"),
|
|
153
|
+
value: othersSum
|
|
154
|
+
}))));
|
|
155
|
+
};
|
|
156
|
+
var MetaInfo$1 = /*#__PURE__*/memo(MetaInfo);
|
|
157
|
+
|
|
158
|
+
var TimeItem = function TimeItem(_ref) {
|
|
159
|
+
var value = _ref.value,
|
|
160
|
+
suffix = _ref.suffix;
|
|
161
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
162
|
+
className: "flex items-end",
|
|
163
|
+
"data-testid": "time-item"
|
|
164
|
+
}, /*#__PURE__*/React__default.createElement(Typography, {
|
|
165
|
+
className: "mr-1",
|
|
166
|
+
style: "h1",
|
|
167
|
+
weight: "semibold"
|
|
168
|
+
}, value), /*#__PURE__*/React__default.createElement(Typography, {
|
|
169
|
+
lineHeight: "loose",
|
|
170
|
+
style: "body2"
|
|
171
|
+
}, suffix));
|
|
172
|
+
};
|
|
173
|
+
var TimeItem$1 = /*#__PURE__*/memo(TimeItem);
|
|
174
|
+
|
|
175
|
+
var MetricItem = function MetricItem(_ref) {
|
|
176
|
+
var metric = _ref.metric,
|
|
177
|
+
value = _ref.value,
|
|
178
|
+
helpText = _ref.helpText,
|
|
179
|
+
isTime = _ref.isTime,
|
|
180
|
+
isPercentage = _ref.isPercentage;
|
|
181
|
+
var renderTime = function renderTime(value) {
|
|
182
|
+
var hours = value.h,
|
|
183
|
+
minutes = value.m,
|
|
184
|
+
seconds = value.s;
|
|
185
|
+
var showSeconds = !hours && !minutes;
|
|
186
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
187
|
+
className: "flex gap-2"
|
|
188
|
+
}, !!hours && /*#__PURE__*/React__default.createElement(TimeItem$1, {
|
|
189
|
+
suffix: "H",
|
|
190
|
+
value: hours
|
|
191
|
+
}), !!minutes && /*#__PURE__*/React__default.createElement(TimeItem$1, {
|
|
192
|
+
suffix: "M",
|
|
193
|
+
value: minutes
|
|
194
|
+
}), (!!seconds || showSeconds) && /*#__PURE__*/React__default.createElement(TimeItem$1, {
|
|
195
|
+
suffix: "S",
|
|
196
|
+
value: seconds
|
|
197
|
+
}));
|
|
198
|
+
};
|
|
199
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
200
|
+
className: "nf-insights__metric-item neeto-ui-border-gray-200 border-b pb-4"
|
|
201
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
202
|
+
className: "flex items-center justify-between gap-2"
|
|
203
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
204
|
+
className: "flex items-end"
|
|
205
|
+
}, isTime ? renderTime(value) : /*#__PURE__*/React__default.createElement(Typography, {
|
|
206
|
+
className: "mr-1",
|
|
207
|
+
"data-testid": "insights-count",
|
|
208
|
+
style: "h1",
|
|
209
|
+
weight: "semibold"
|
|
210
|
+
}, value || 0, isPercentage ? "%" : "")), helpText && /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(HelpPopover, {
|
|
211
|
+
description: helpText
|
|
212
|
+
}))), /*#__PURE__*/React__default.createElement(Typography, {
|
|
213
|
+
className: "neeto-ui-text-gray-700",
|
|
214
|
+
"data-cy": "insights-type",
|
|
215
|
+
style: "body2"
|
|
216
|
+
}, metric));
|
|
217
|
+
};
|
|
218
|
+
var MetricItem$1 = /*#__PURE__*/memo(MetricItem);
|
|
219
|
+
|
|
220
|
+
var Insights = function Insights(_ref) {
|
|
221
|
+
var insightsData = _ref.insightsData,
|
|
222
|
+
isLoading = _ref.isLoading,
|
|
223
|
+
timePeriod = _ref.timePeriod,
|
|
224
|
+
setTimePeriod = _ref.setTimePeriod,
|
|
225
|
+
_ref$helpTexts = _ref.helpTexts,
|
|
226
|
+
helpTexts = _ref$helpTexts === void 0 ? {} : _ref$helpTexts,
|
|
227
|
+
_ref$showWarningMessa = _ref.showWarningMessage,
|
|
228
|
+
showWarningMessage = _ref$showWarningMessa === void 0 ? false : _ref$showWarningMessa;
|
|
229
|
+
var _useTranslation = useTranslation(),
|
|
230
|
+
t = _useTranslation.t;
|
|
231
|
+
var visitCount = insightsData.visitCount,
|
|
232
|
+
startCount = insightsData.startCount,
|
|
233
|
+
submissionCount = insightsData.submissionCount,
|
|
234
|
+
completionRate = insightsData.completionRate,
|
|
235
|
+
averageSubmissionTime = insightsData.averageSubmissionTime,
|
|
236
|
+
devices = insightsData.devices,
|
|
237
|
+
operatingSystems = insightsData.operatingSystems,
|
|
238
|
+
browsers = insightsData.browsers;
|
|
239
|
+
if (isLoading) return /*#__PURE__*/React__default.createElement(PageLoader, null);
|
|
240
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
241
|
+
className: "mx-auto pt-10",
|
|
242
|
+
"data-testid": "insights"
|
|
243
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
244
|
+
className: "mb-11 flex w-full items-center "
|
|
245
|
+
}, /*#__PURE__*/React__default.createElement(Typography, {
|
|
246
|
+
"data-cy": "submissions-insights-title",
|
|
247
|
+
style: "h2"
|
|
248
|
+
}, t("neetoMolecules.insights.title")), showWarningMessage && /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
249
|
+
content: t("neetoMolecules.insights.dataInaccuracyWarning"),
|
|
250
|
+
position: "right"
|
|
251
|
+
}, /*#__PURE__*/React__default.createElement("span", {
|
|
252
|
+
className: "ml-3"
|
|
253
|
+
}, /*#__PURE__*/React__default.createElement(Warning, {
|
|
254
|
+
className: "neeto-ui-text-warning-500",
|
|
255
|
+
"data-testid": "insights-warning",
|
|
256
|
+
size: 20
|
|
257
|
+
}))), /*#__PURE__*/React__default.createElement("span", {
|
|
258
|
+
className: "ml-auto"
|
|
259
|
+
}, /*#__PURE__*/React__default.createElement(DateRangeFilter, {
|
|
260
|
+
setTimePeriod: setTimePeriod,
|
|
261
|
+
timePeriod: timePeriod
|
|
262
|
+
}))), /*#__PURE__*/React__default.createElement("div", {
|
|
263
|
+
className: "mb-8 flex flex-wrap justify-between"
|
|
264
|
+
}, /*#__PURE__*/React__default.createElement(MetricItem$1, {
|
|
265
|
+
helpText: helpTexts["visitCount"],
|
|
266
|
+
metric: t("neetoMolecules.insights.metrics.visits"),
|
|
267
|
+
value: visitCount
|
|
268
|
+
}), /*#__PURE__*/React__default.createElement(MetricItem$1, {
|
|
269
|
+
helpText: helpTexts["startCount"],
|
|
270
|
+
metric: t("neetoMolecules.insights.metrics.starts"),
|
|
271
|
+
value: startCount
|
|
272
|
+
}), /*#__PURE__*/React__default.createElement(MetricItem$1, {
|
|
273
|
+
helpText: helpTexts["submissions"],
|
|
274
|
+
metric: t("neetoMolecules.insights.metrics.submissions"),
|
|
275
|
+
value: submissionCount
|
|
276
|
+
}), /*#__PURE__*/React__default.createElement(MetricItem$1, {
|
|
277
|
+
isPercentage: true,
|
|
278
|
+
helpText: helpTexts["completionRate"],
|
|
279
|
+
metric: t("neetoMolecules.insights.metrics.completionRate"),
|
|
280
|
+
value: completionRate
|
|
281
|
+
}), /*#__PURE__*/React__default.createElement(MetricItem$1, {
|
|
282
|
+
isTime: true,
|
|
283
|
+
helpText: helpTexts["averageSubmissionTime"],
|
|
284
|
+
metric: t("neetoMolecules.insights.metrics.avgTimeToComplete"),
|
|
285
|
+
timeSuffix: t("neetoMolecules.insights.mins"),
|
|
286
|
+
value: averageSubmissionTime
|
|
287
|
+
})), /*#__PURE__*/React__default.createElement("div", {
|
|
288
|
+
className: "grid grid-cols-1 gap-6 sm:grid-cols-2 md:grid-cols-3"
|
|
289
|
+
}, /*#__PURE__*/React__default.createElement(MetaInfo$1, {
|
|
290
|
+
data: devices,
|
|
291
|
+
defaultItems: DEFAULT_DEVICES,
|
|
292
|
+
type: t("neetoMolecules.insights.devices")
|
|
293
|
+
}), /*#__PURE__*/React__default.createElement(MetaInfo$1, {
|
|
294
|
+
data: operatingSystems,
|
|
295
|
+
defaultItems: DEFAULT_OS,
|
|
296
|
+
type: t("neetoMolecules.insights.os")
|
|
297
|
+
}), /*#__PURE__*/React__default.createElement(MetaInfo$1, {
|
|
298
|
+
data: browsers,
|
|
299
|
+
defaultItems: DEFAULT_BROWSERS,
|
|
300
|
+
type: t("neetoMolecules.insights.browsers")
|
|
301
|
+
})));
|
|
302
|
+
};
|
|
303
|
+
|
|
304
|
+
export { Insights as default };
|
|
305
|
+
//# sourceMappingURL=Insights.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Insights.js","sources":["../src/components/Insights/constants.js","../src/components/Insights/MetaInfo/PercentageBar.jsx","../src/components/Insights/MetaInfo/MetaInfoItem.jsx","../src/components/Insights/MetaInfo/DataDistribution.jsx","../src/components/Insights/utils.js","../src/components/Insights/MetaInfo/index.jsx","../src/components/Insights/TimeItem.jsx","../src/components/Insights/MetricItem.jsx","../src/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 React, { memo } from \"react\";\n\nimport { Typography } from \"neetoui\";\n\nconst PercentageBar = ({ value }) => (\n <>\n {value && (\n <div\n className=\"neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2\"\n style={{ width: `${value}%` }}\n />\n )}\n <Typography style=\"body3\">{value}%</Typography>\n </>\n);\n\nexport default memo(PercentageBar);\n","import React, { memo } from \"react\";\n\nimport { Typography } from \"neetoui\";\n\nimport PercentageBar from \"./PercentageBar\";\n\nconst MetaInfoItem = ({ name, value }) => (\n <>\n <Typography style=\"body2\" textTransform=\"capitalize\">\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 React from \"react\";\n\nimport 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 React, { memo } from \"react\";\n\nimport { Tooltip, Typography } from \"neetoui\";\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=\"neeto-ui-bg-gray-100 neeto-ui-rounded p-4\">\n <Typography\n className=\"mb-4\"\n style=\"h6\"\n textTransform=\"uppercase\"\n weight=\"bold\"\n >\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 React, { memo } from \"react\";\n\nimport { Typography } from \"neetoui\";\n\nconst TimeItem = ({ value, suffix }) => (\n <div className=\"flex items-end\" data-testid=\"time-item\">\n <Typography className=\"mr-1\" style=\"h1\" weight=\"semibold\">\n {value}\n </Typography>\n <Typography lineHeight=\"loose\" style=\"body2\">\n {suffix}\n </Typography>\n </div>\n);\n\nexport default memo(TimeItem);\n","import React, { memo } from \"react\";\n\nimport { Typography } from \"neetoui\";\n\nimport HelpPopover from \"components/HelpPopover\";\n\nimport TimeItem from \"./TimeItem\";\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 className=\"nf-insights__metric-item neeto-ui-border-gray-200 border-b pb-4\">\n <div className=\"flex items-center justify-between gap-2\">\n <div className=\"flex items-end\">\n {isTime ? (\n renderTime(value)\n ) : (\n <Typography\n className=\"mr-1\"\n data-testid=\"insights-count\"\n style=\"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=\"neeto-ui-text-gray-700\"\n data-cy=\"insights-type\"\n style=\"body2\"\n >\n {metric}\n </Typography>\n </div>\n );\n};\n\nexport default memo(MetricItem);\n","import React from \"react\";\n\nimport { Warning } from \"neetoicons\";\nimport { Tooltip, Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport DateRangeFilter from \"components/DateRangeFilter\";\nimport PageLoader from \"components/PageLoader\";\n\nimport { DEFAULT_DEVICES, DEFAULT_BROWSERS, DEFAULT_OS } from \"./constants\";\nimport MetaInfo from \"./MetaInfo\";\nimport MetricItem from \"./MetricItem\";\n\nconst Insights = ({\n insightsData,\n isLoading,\n timePeriod,\n setTimePeriod,\n helpTexts = {},\n showWarningMessage = false,\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) return <PageLoader />;\n\n return (\n <div className=\"mx-auto pt-10\" data-testid=\"insights\">\n <div className=\"mb-11 flex w-full items-center \">\n <Typography data-cy=\"submissions-insights-title\" style=\"h2\">\n {t(\"neetoMolecules.insights.title\")}\n </Typography>\n {showWarningMessage && (\n <Tooltip\n content={t(\"neetoMolecules.insights.dataInaccuracyWarning\")}\n position=\"right\"\n >\n <span className=\"ml-3\">\n <Warning\n className=\"neeto-ui-text-warning-500\"\n data-testid=\"insights-warning\"\n size={20}\n />\n </span>\n </Tooltip>\n )}\n <span className=\"ml-auto\">\n <DateRangeFilter {...{ setTimePeriod, timePeriod }} />\n </span>\n </div>\n <div className=\"mb-8 flex flex-wrap justify-between\">\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 md: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 * 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\nexport default Insights;\n"],"names":["DEFAULT_DEVICES","label","t","value","DEFAULT_OS","DEFAULT_BROWSERS","startDate","endDate","rangeType","PercentageBar","_ref","React","createElement","Fragment","className","style","width","concat","Typography","memo","MetaInfoItem","name","textTransform","DataDistribution","data","map","_ref2","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","lineHeight","MetricItem","metric","helpText","isTime","isPercentage","renderTime","hours","h","minutes","m","seconds","s","showSeconds","HelpPopover","description","Insights","insightsData","isLoading","timePeriod","setTimePeriod","_ref$helpTexts","helpTexts","_ref$showWarningMessa","showWarningMessage","visitCount","startCount","submissionCount","completionRate","averageSubmissionTime","devices","operatingSystems","browsers","PageLoader","Warning","size","DateRangeFilter","timeSuffix"],"mappings":"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"}
|
package/dist/NeetoWidget.js
CHANGED
|
@@ -93,6 +93,7 @@ var WIDGET_KB_HELP_URL = {
|
|
|
93
93
|
chat: "".concat(CHAT_WIDGET_KB_BASE_URL, "/categories/installation"),
|
|
94
94
|
replay: "".concat(REPLAY_WIDGET_KB_BASE_URL, "/categories/widget-installation-usage")
|
|
95
95
|
};
|
|
96
|
+
var USE_NEETO_WIDGET_NPM_PAGE_URL = "https://www.npmjs.com/package/@bigbinary/react-use-neeto-widget";
|
|
96
97
|
|
|
97
98
|
var ChatWidgetBody = function ChatWidgetBody(_ref) {
|
|
98
99
|
var widgets = _ref.widgets;
|
|
@@ -561,6 +562,7 @@ var EmbedCode = function EmbedCode(_ref) {
|
|
|
561
562
|
}).map(function (item) {
|
|
562
563
|
return item.clientApplicationName.toLowerCase();
|
|
563
564
|
});
|
|
565
|
+
var isOnlyChatWidgetSelected = selectedWidgets.length === 1 && selectedWidgets[0] === WIDGET_TYPES.chat;
|
|
564
566
|
var enabledClientApps = neetoWidgetTokens.filter(prop("clientApplicationEnabled")).map(function (item) {
|
|
565
567
|
return item.clientApplicationName.toLowerCase();
|
|
566
568
|
});
|
|
@@ -702,11 +704,30 @@ var EmbedCode = function EmbedCode(_ref) {
|
|
|
702
704
|
if (isEmpty(selectedWidgets)) {
|
|
703
705
|
return "neetoMolecules.widget.installation.instructions.placement.noneOfThese";
|
|
704
706
|
}
|
|
705
|
-
if (
|
|
707
|
+
if (isOnlyChatWidgetSelected) {
|
|
706
708
|
return "neetoMolecules.widget.installation.instructions.placement.selectedChatWidget";
|
|
707
709
|
}
|
|
708
710
|
return "neetoMolecules.widget.installation.instructions.placement.selectedWidgets";
|
|
709
711
|
};
|
|
712
|
+
var embedHelpTextTranslationComponents = {
|
|
713
|
+
fontBold: /*#__PURE__*/React__default.createElement(Typography, {
|
|
714
|
+
component: "span",
|
|
715
|
+
style: "body2",
|
|
716
|
+
weight: "semibold"
|
|
717
|
+
}),
|
|
718
|
+
widgetNpmLink: /*#__PURE__*/React__default.createElement("a", {
|
|
719
|
+
className: "neeto-ui-text-primary-800",
|
|
720
|
+
href: USE_NEETO_WIDGET_NPM_PAGE_URL,
|
|
721
|
+
rel: "noreferrer",
|
|
722
|
+
target: "_blank"
|
|
723
|
+
}),
|
|
724
|
+
Link: /*#__PURE__*/React__default.createElement("a", {
|
|
725
|
+
className: "neeto-ui-text-primary-800",
|
|
726
|
+
href: WIDGET_KB_HELP_URL[primaryApp],
|
|
727
|
+
rel: "noreferrer",
|
|
728
|
+
target: "_blank"
|
|
729
|
+
})
|
|
730
|
+
};
|
|
710
731
|
if (isLoadingApiKey || isLoadingConfigurations) {
|
|
711
732
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
712
733
|
className: "h-full w-full"
|
|
@@ -736,22 +757,10 @@ var EmbedCode = function EmbedCode(_ref) {
|
|
|
736
757
|
})), /*#__PURE__*/React__default.createElement("div", {
|
|
737
758
|
className: "w-full"
|
|
738
759
|
}, /*#__PURE__*/React__default.createElement(Trans, {
|
|
760
|
+
components: embedHelpTextTranslationComponents,
|
|
739
761
|
i18nKey: getSelectedWidgetsInstructionsKey(),
|
|
740
762
|
values: {
|
|
741
763
|
widgetList: getSortedPrefixedWidgets(selectedWidgets)
|
|
742
|
-
},
|
|
743
|
-
components: {
|
|
744
|
-
fontBold: /*#__PURE__*/React__default.createElement(Typography, {
|
|
745
|
-
component: "span",
|
|
746
|
-
style: "body2",
|
|
747
|
-
weight: "semibold"
|
|
748
|
-
}),
|
|
749
|
-
Link: /*#__PURE__*/React__default.createElement("a", {
|
|
750
|
-
className: "neeto-ui-text-primary-800",
|
|
751
|
-
href: WIDGET_KB_HELP_URL[primaryApp],
|
|
752
|
-
rel: "noreferrer",
|
|
753
|
-
target: "_blank"
|
|
754
|
-
})
|
|
755
764
|
}
|
|
756
765
|
}))), shouldShowUserIdentity ? /*#__PURE__*/React__default.createElement("div", {
|
|
757
766
|
className: "mb-8 w-full flex-grow flex-col items-center justify-start"
|