@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.
@@ -0,0 +1,311 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var neetoIcons = require('@bigbinary/neeto-icons');
5
+ var neetoui = require('@bigbinary/neetoui');
6
+ var reactI18next = require('react-i18next');
7
+ var DateRangeFilter = require('./DateRangeFilter.js');
8
+ var PageLoader = require('./PageLoader.js');
9
+ var i18next = require('i18next');
10
+ var ramda = require('ramda');
11
+ var neetoCist = require('@bigbinary/neeto-cist');
12
+ var HelpPopover = require('./HelpPopover.js');
13
+ require('./slicedToArray-f320d9e7.js');
14
+ require('dayjs');
15
+ require('@bigbinary/neeto-commons-frontend/initializers');
16
+ require('./extends-1b35a664.js');
17
+ require('./objectWithoutProperties-2fed2d7d.js');
18
+ require('./inject-css-80a5faa3.js');
19
+ require('./defineProperty-886ed289.js');
20
+ require('classnames');
21
+
22
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
23
+
24
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
25
+
26
+ var DEFAULT_DEVICES = [{
27
+ label: i18next.t("neetoMolecules.insights.labels.devices.desktop"),
28
+ value: "desktop"
29
+ }, {
30
+ label: i18next.t("neetoMolecules.insights.labels.devices.mobile"),
31
+ value: "smartphone"
32
+ }];
33
+ var DEFAULT_OS = [{
34
+ label: i18next.t("neetoMolecules.insights.labels.os.macos"),
35
+ value: "mac"
36
+ }, {
37
+ label: i18next.t("neetoMolecules.insights.labels.os.windows"),
38
+ value: "windows"
39
+ }];
40
+ var DEFAULT_BROWSERS = [{
41
+ label: i18next.t("neetoMolecules.insights.labels.browsers.chrome"),
42
+ value: "chrome"
43
+ }, {
44
+ label: i18next.t("neetoMolecules.insights.labels.browsers.safari"),
45
+ value: "safari"
46
+ }];
47
+ ({
48
+ label: i18next.t("neetoMolecules.insights.labels.allTime"),
49
+ value: {
50
+ startDate: null,
51
+ endDate: null,
52
+ rangeType: "all"
53
+ }
54
+ });
55
+
56
+ var PercentageBar = function PercentageBar(_ref) {
57
+ var value = _ref.value;
58
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, value && /*#__PURE__*/React__default["default"].createElement("div", {
59
+ className: "neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2",
60
+ style: {
61
+ width: "".concat(value, "%")
62
+ }
63
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
64
+ style: "body3"
65
+ }, value, "%"));
66
+ };
67
+ var PercentageBar$1 = /*#__PURE__*/React.memo(PercentageBar);
68
+
69
+ var MetaInfoItem = function MetaInfoItem(_ref) {
70
+ var name = _ref.name,
71
+ value = _ref.value;
72
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
73
+ style: "body2",
74
+ textTransform: "capitalize"
75
+ }, name), /*#__PURE__*/React__default["default"].createElement("div", {
76
+ className: "col-span-3 flex items-center gap-2"
77
+ }, /*#__PURE__*/React__default["default"].createElement(PercentageBar$1, {
78
+ value: value
79
+ })));
80
+ };
81
+ var MetaInfoItem$1 = /*#__PURE__*/React.memo(MetaInfoItem);
82
+
83
+ var DataDistribution = function DataDistribution(_ref) {
84
+ var data = _ref.data;
85
+ return /*#__PURE__*/React__default["default"].createElement("div", {
86
+ className: "grid grid-cols-4 gap-2"
87
+ }, data.map(function (_ref2) {
88
+ var name = _ref2.name,
89
+ value = _ref2.value;
90
+ return /*#__PURE__*/React__default["default"].createElement(MetaInfoItem$1, {
91
+ name: name,
92
+ value: value,
93
+ key: name
94
+ });
95
+ }));
96
+ };
97
+
98
+ var getSum = function getSum(data, searchKey) {
99
+ var sum = 0;
100
+ for (var key in data) {
101
+ if (key.includes(searchKey)) sum += data[key];
102
+ }
103
+ return sum;
104
+ };
105
+ var transformInsights = function transformInsights(data, defaultItems) {
106
+ var othersData = Object.keys(data).filter(function (key) {
107
+ return !neetoCist.existsBy({
108
+ value: key
109
+ }, defaultItems);
110
+ }).map(function (key) {
111
+ return {
112
+ name: key,
113
+ value: data[key]
114
+ };
115
+ });
116
+ var defaultData = defaultItems.map(function (_ref) {
117
+ var label = _ref.label,
118
+ value = _ref.value;
119
+ return {
120
+ name: label,
121
+ value: getSum(data, value) || 0
122
+ };
123
+ });
124
+ return {
125
+ defaultData: defaultData,
126
+ othersData: othersData
127
+ };
128
+ };
129
+
130
+ var MetaInfo = function MetaInfo(_ref) {
131
+ var type = _ref.type,
132
+ data = _ref.data,
133
+ defaultItems = _ref.defaultItems;
134
+ var _useTranslation = reactI18next.useTranslation(),
135
+ t = _useTranslation.t;
136
+ var _transformInsights = transformInsights(data, defaultItems),
137
+ defaultData = _transformInsights.defaultData,
138
+ othersData = _transformInsights.othersData;
139
+ var othersSum = ramda.sum(ramda.values(ramda.pluck("value", othersData)));
140
+ return /*#__PURE__*/React__default["default"].createElement("div", {
141
+ className: "neeto-ui-bg-gray-100 neeto-ui-rounded p-4"
142
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
143
+ className: "mb-4",
144
+ style: "h6",
145
+ textTransform: "uppercase",
146
+ weight: "bold"
147
+ }, type), /*#__PURE__*/React__default["default"].createElement(DataDistribution, {
148
+ data: defaultData
149
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, {
150
+ content: /*#__PURE__*/React__default["default"].createElement(DataDistribution, {
151
+ data: othersData
152
+ }),
153
+ disabled: !othersSum,
154
+ position: "bottom"
155
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
156
+ className: "mt-2 grid grid-cols-4 gap-2"
157
+ }, /*#__PURE__*/React__default["default"].createElement(MetaInfoItem$1, {
158
+ name: t("neetoMolecules.insights.others"),
159
+ value: othersSum
160
+ }))));
161
+ };
162
+ var MetaInfo$1 = /*#__PURE__*/React.memo(MetaInfo);
163
+
164
+ var TimeItem = function TimeItem(_ref) {
165
+ var value = _ref.value,
166
+ suffix = _ref.suffix;
167
+ return /*#__PURE__*/React__default["default"].createElement("div", {
168
+ className: "flex items-end",
169
+ "data-testid": "time-item"
170
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
171
+ className: "mr-1",
172
+ style: "h1",
173
+ weight: "semibold"
174
+ }, value), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
175
+ lineHeight: "loose",
176
+ style: "body2"
177
+ }, suffix));
178
+ };
179
+ var TimeItem$1 = /*#__PURE__*/React.memo(TimeItem);
180
+
181
+ var MetricItem = function MetricItem(_ref) {
182
+ var metric = _ref.metric,
183
+ value = _ref.value,
184
+ helpText = _ref.helpText,
185
+ isTime = _ref.isTime,
186
+ isPercentage = _ref.isPercentage;
187
+ var renderTime = function renderTime(value) {
188
+ var hours = value.h,
189
+ minutes = value.m,
190
+ seconds = value.s;
191
+ var showSeconds = !hours && !minutes;
192
+ return /*#__PURE__*/React__default["default"].createElement("div", {
193
+ className: "flex gap-2"
194
+ }, !!hours && /*#__PURE__*/React__default["default"].createElement(TimeItem$1, {
195
+ suffix: "H",
196
+ value: hours
197
+ }), !!minutes && /*#__PURE__*/React__default["default"].createElement(TimeItem$1, {
198
+ suffix: "M",
199
+ value: minutes
200
+ }), (!!seconds || showSeconds) && /*#__PURE__*/React__default["default"].createElement(TimeItem$1, {
201
+ suffix: "S",
202
+ value: seconds
203
+ }));
204
+ };
205
+ return /*#__PURE__*/React__default["default"].createElement("div", {
206
+ className: "nf-insights__metric-item neeto-ui-border-gray-200 border-b pb-4"
207
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
208
+ className: "flex items-center justify-between gap-2"
209
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
210
+ className: "flex items-end"
211
+ }, isTime ? renderTime(value) : /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
212
+ className: "mr-1",
213
+ "data-testid": "insights-count",
214
+ style: "h1",
215
+ weight: "semibold"
216
+ }, value || 0, isPercentage ? "%" : "")), helpText && /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement(HelpPopover, {
217
+ description: helpText
218
+ }))), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
219
+ className: "neeto-ui-text-gray-700",
220
+ "data-cy": "insights-type",
221
+ style: "body2"
222
+ }, metric));
223
+ };
224
+ var MetricItem$1 = /*#__PURE__*/React.memo(MetricItem);
225
+
226
+ var Insights = function Insights(_ref) {
227
+ var insightsData = _ref.insightsData,
228
+ isLoading = _ref.isLoading,
229
+ timePeriod = _ref.timePeriod,
230
+ setTimePeriod = _ref.setTimePeriod,
231
+ _ref$helpTexts = _ref.helpTexts,
232
+ helpTexts = _ref$helpTexts === void 0 ? {} : _ref$helpTexts,
233
+ _ref$showWarningMessa = _ref.showWarningMessage,
234
+ showWarningMessage = _ref$showWarningMessa === void 0 ? false : _ref$showWarningMessa;
235
+ var _useTranslation = reactI18next.useTranslation(),
236
+ t = _useTranslation.t;
237
+ var visitCount = insightsData.visitCount,
238
+ startCount = insightsData.startCount,
239
+ submissionCount = insightsData.submissionCount,
240
+ completionRate = insightsData.completionRate,
241
+ averageSubmissionTime = insightsData.averageSubmissionTime,
242
+ devices = insightsData.devices,
243
+ operatingSystems = insightsData.operatingSystems,
244
+ browsers = insightsData.browsers;
245
+ if (isLoading) return /*#__PURE__*/React__default["default"].createElement(PageLoader, null);
246
+ return /*#__PURE__*/React__default["default"].createElement("div", {
247
+ className: "mx-auto pt-10",
248
+ "data-testid": "insights"
249
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
250
+ className: "mb-11 flex w-full items-center "
251
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
252
+ "data-cy": "submissions-insights-title",
253
+ style: "h2"
254
+ }, t("neetoMolecules.insights.title")), showWarningMessage && /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, {
255
+ content: t("neetoMolecules.insights.dataInaccuracyWarning"),
256
+ position: "right"
257
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
258
+ className: "ml-3"
259
+ }, /*#__PURE__*/React__default["default"].createElement(neetoIcons.Warning, {
260
+ className: "neeto-ui-text-warning-500",
261
+ "data-testid": "insights-warning",
262
+ size: 20
263
+ }))), /*#__PURE__*/React__default["default"].createElement("span", {
264
+ className: "ml-auto"
265
+ }, /*#__PURE__*/React__default["default"].createElement(DateRangeFilter, {
266
+ setTimePeriod: setTimePeriod,
267
+ timePeriod: timePeriod
268
+ }))), /*#__PURE__*/React__default["default"].createElement("div", {
269
+ className: "mb-8 flex flex-wrap justify-between"
270
+ }, /*#__PURE__*/React__default["default"].createElement(MetricItem$1, {
271
+ helpText: helpTexts["visitCount"],
272
+ metric: t("neetoMolecules.insights.metrics.visits"),
273
+ value: visitCount
274
+ }), /*#__PURE__*/React__default["default"].createElement(MetricItem$1, {
275
+ helpText: helpTexts["startCount"],
276
+ metric: t("neetoMolecules.insights.metrics.starts"),
277
+ value: startCount
278
+ }), /*#__PURE__*/React__default["default"].createElement(MetricItem$1, {
279
+ helpText: helpTexts["submissions"],
280
+ metric: t("neetoMolecules.insights.metrics.submissions"),
281
+ value: submissionCount
282
+ }), /*#__PURE__*/React__default["default"].createElement(MetricItem$1, {
283
+ isPercentage: true,
284
+ helpText: helpTexts["completionRate"],
285
+ metric: t("neetoMolecules.insights.metrics.completionRate"),
286
+ value: completionRate
287
+ }), /*#__PURE__*/React__default["default"].createElement(MetricItem$1, {
288
+ isTime: true,
289
+ helpText: helpTexts["averageSubmissionTime"],
290
+ metric: t("neetoMolecules.insights.metrics.avgTimeToComplete"),
291
+ timeSuffix: t("neetoMolecules.insights.mins"),
292
+ value: averageSubmissionTime
293
+ })), /*#__PURE__*/React__default["default"].createElement("div", {
294
+ className: "grid grid-cols-1 gap-6 sm:grid-cols-2 md:grid-cols-3"
295
+ }, /*#__PURE__*/React__default["default"].createElement(MetaInfo$1, {
296
+ data: devices,
297
+ defaultItems: DEFAULT_DEVICES,
298
+ type: t("neetoMolecules.insights.devices")
299
+ }), /*#__PURE__*/React__default["default"].createElement(MetaInfo$1, {
300
+ data: operatingSystems,
301
+ defaultItems: DEFAULT_OS,
302
+ type: t("neetoMolecules.insights.os")
303
+ }), /*#__PURE__*/React__default["default"].createElement(MetaInfo$1, {
304
+ data: browsers,
305
+ defaultItems: DEFAULT_BROWSERS,
306
+ type: t("neetoMolecules.insights.browsers")
307
+ })));
308
+ };
309
+
310
+ module.exports = Insights;
311
+ //# 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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"}
@@ -124,6 +124,7 @@ var WIDGET_KB_HELP_URL = {
124
124
  chat: "".concat(CHAT_WIDGET_KB_BASE_URL, "/categories/installation"),
125
125
  replay: "".concat(REPLAY_WIDGET_KB_BASE_URL, "/categories/widget-installation-usage")
126
126
  };
127
+ var USE_NEETO_WIDGET_NPM_PAGE_URL = "https://www.npmjs.com/package/@bigbinary/react-use-neeto-widget";
127
128
 
128
129
  var ChatWidgetBody = function ChatWidgetBody(_ref) {
129
130
  var widgets = _ref.widgets;
@@ -592,6 +593,7 @@ var EmbedCode = function EmbedCode(_ref) {
592
593
  }).map(function (item) {
593
594
  return item.clientApplicationName.toLowerCase();
594
595
  });
596
+ var isOnlyChatWidgetSelected = selectedWidgets.length === 1 && selectedWidgets[0] === WIDGET_TYPES.chat;
595
597
  var enabledClientApps = neetoWidgetTokens.filter(ramda.prop("clientApplicationEnabled")).map(function (item) {
596
598
  return item.clientApplicationName.toLowerCase();
597
599
  });
@@ -733,11 +735,30 @@ var EmbedCode = function EmbedCode(_ref) {
733
735
  if (ramda.isEmpty(selectedWidgets)) {
734
736
  return "neetoMolecules.widget.installation.instructions.placement.noneOfThese";
735
737
  }
736
- if (selectedWidgets.length === 1 && selectedWidgets[0] === WIDGET_TYPES.chat) {
738
+ if (isOnlyChatWidgetSelected) {
737
739
  return "neetoMolecules.widget.installation.instructions.placement.selectedChatWidget";
738
740
  }
739
741
  return "neetoMolecules.widget.installation.instructions.placement.selectedWidgets";
740
742
  };
743
+ var embedHelpTextTranslationComponents = {
744
+ fontBold: /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
745
+ component: "span",
746
+ style: "body2",
747
+ weight: "semibold"
748
+ }),
749
+ widgetNpmLink: /*#__PURE__*/React__default["default"].createElement("a", {
750
+ className: "neeto-ui-text-primary-800",
751
+ href: USE_NEETO_WIDGET_NPM_PAGE_URL,
752
+ rel: "noreferrer",
753
+ target: "_blank"
754
+ }),
755
+ Link: /*#__PURE__*/React__default["default"].createElement("a", {
756
+ className: "neeto-ui-text-primary-800",
757
+ href: WIDGET_KB_HELP_URL[primaryApp],
758
+ rel: "noreferrer",
759
+ target: "_blank"
760
+ })
761
+ };
741
762
  if (isLoadingApiKey || isLoadingConfigurations) {
742
763
  return /*#__PURE__*/React__default["default"].createElement("div", {
743
764
  className: "h-full w-full"
@@ -767,22 +788,10 @@ var EmbedCode = function EmbedCode(_ref) {
767
788
  })), /*#__PURE__*/React__default["default"].createElement("div", {
768
789
  className: "w-full"
769
790
  }, /*#__PURE__*/React__default["default"].createElement(reactI18next.Trans, {
791
+ components: embedHelpTextTranslationComponents,
770
792
  i18nKey: getSelectedWidgetsInstructionsKey(),
771
793
  values: {
772
794
  widgetList: getSortedPrefixedWidgets(selectedWidgets)
773
- },
774
- components: {
775
- fontBold: /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
776
- component: "span",
777
- style: "body2",
778
- weight: "semibold"
779
- }),
780
- Link: /*#__PURE__*/React__default["default"].createElement("a", {
781
- className: "neeto-ui-text-primary-800",
782
- href: WIDGET_KB_HELP_URL[primaryApp],
783
- rel: "noreferrer",
784
- target: "_blank"
785
- })
786
795
  }
787
796
  }))), shouldShowUserIdentity ? /*#__PURE__*/React__default["default"].createElement("div", {
788
797
  className: "mb-8 w-full flex-grow flex-col items-center justify-start"