@bigbinary/neeto-molecules 1.15.7 → 1.15.9

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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"}
@@ -141,6 +141,9 @@ var DomainEntryField = function DomainEntryField(_ref) {
141
141
  }));
142
142
  };
143
143
 
144
+ var DOMAIN_QUERY_KEY = "custom-domain";
145
+ var HELP_DOC_URL = "https://help.".concat(globalProps.appName.toLowerCase(), ".com/articles/custom-domains");
146
+
144
147
  var TagBlock = function TagBlock(_ref) {
145
148
  var status = _ref.status,
146
149
  _ref$stacked = _ref.stacked,
@@ -184,9 +187,14 @@ var renderColumnData = function renderColumnData(enableManagePane, enableDeleteA
184
187
  render: function render(hostName, customDomain) {
185
188
  return /*#__PURE__*/React__default["default"].createElement("div", {
186
189
  className: "flex items-center justify-between gap-x-3"
187
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
188
- style: "body2"
189
- }, hostName), /*#__PURE__*/React__default["default"].createElement(MoreDropdown, {
190
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
191
+ "data-cy": "hostname-button",
192
+ label: hostName,
193
+ style: "link",
194
+ onClick: function onClick() {
195
+ return enableManagePane(customDomain);
196
+ }
197
+ }), /*#__PURE__*/React__default["default"].createElement(MoreDropdown, {
190
198
  dropdownButtonProps: {
191
199
  "data-testid": "nui-dropdown-icon-".concat(customDomain.id)
192
200
  },
@@ -265,12 +273,19 @@ var Record = function Record(_ref) {
265
273
  return /*#__PURE__*/React__default["default"].createElement("div", {
266
274
  className: "mt-6 grid gap-4"
267
275
  }, customDomain.status !== "active" && /*#__PURE__*/React__default["default"].createElement(neetoui.Callout, {
268
- icon: neetoIcons.Info,
269
276
  style: "info"
270
- }, recordDescription), /*#__PURE__*/React__default["default"].createElement(neetoui.Input, {
277
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
278
+ className: "flex flex-col space-y-2"
279
+ }, /*#__PURE__*/React__default["default"].createElement("p", null, recordDescription), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
280
+ "data-cy": "custom-domain-help-doc-button",
281
+ href: HELP_DOC_URL,
282
+ label: "Read help doc",
283
+ style: "link",
284
+ target: "#"
285
+ }))), /*#__PURE__*/React__default["default"].createElement(neetoui.Input, {
271
286
  disabled: true,
272
287
  "data-cy": general.joinHyphenCase(recordNameLabel),
273
- label: recordNameLabel,
288
+ label: neetoCist.capitalize(recordNameLabel),
274
289
  value: recordName,
275
290
  suffix: /*#__PURE__*/React__default["default"].createElement(CopyToClipboardButton, {
276
291
  size: "small",
@@ -280,7 +295,7 @@ var Record = function Record(_ref) {
280
295
  }), /*#__PURE__*/React__default["default"].createElement(neetoui.Input, {
281
296
  disabled: true,
282
297
  "data-cy": general.joinHyphenCase(recordValueLabel),
283
- label: recordValueLabel,
298
+ label: neetoCist.capitalize(recordValueLabel),
284
299
  value: recordValue,
285
300
  suffix: /*#__PURE__*/React__default["default"].createElement(CopyToClipboardButton, {
286
301
  size: "small",
@@ -292,7 +307,6 @@ var Record = function Record(_ref) {
292
307
  var Record$1 = /*#__PURE__*/React__default["default"].memo(Record);
293
308
 
294
309
  var StatusInfo = function StatusInfo() {
295
- var helpUrl = "https://help.".concat(globalProps.appName.toLowerCase(), ".com/articles/custom-domains");
296
310
  return /*#__PURE__*/React__default["default"].createElement("div", {
297
311
  className: "space-y-6"
298
312
  }, /*#__PURE__*/React__default["default"].createElement("div", {
@@ -300,9 +314,9 @@ var StatusInfo = function StatusInfo() {
300
314
  }, /*#__PURE__*/React__default["default"].createElement(reactI18next.Trans, {
301
315
  i18nKey: "neetoMolecules.customDomain.messageBlock.dnsStatus",
302
316
  components: {
303
- a: /*#__PURE__*/React__default["default"].createElement("a", {
304
- className: "neeto-ui-btn--style-link",
305
- href: helpUrl,
317
+ Link: /*#__PURE__*/React__default["default"].createElement("a", {
318
+ className: "neeto-ui-text-primary-800",
319
+ href: HELP_DOC_URL,
306
320
  rel: "noreferrer",
307
321
  target: "_blank"
308
322
  })
@@ -345,8 +359,6 @@ var customDomainApi = {
345
359
  updateCustomDomain: updateCustomDomain
346
360
  };
347
361
 
348
- var DOMAIN_QUERY_KEY = "custom-domain";
349
-
350
362
  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; }
351
363
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { defineProperty._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; }
352
364
  var useCreateCustomDomain = function useCreateCustomDomain(url) {
@@ -502,4 +514,4 @@ exports.Manage = Manage;
502
514
  exports.renderColumnData = renderColumnData;
503
515
  exports.useDeleteCustomDomain = useDeleteCustomDomain;
504
516
  exports.useFetchCustomDomains = useFetchCustomDomains;
505
- //# sourceMappingURL=index-a5cc95e1.js.map
517
+ //# sourceMappingURL=index-383a71f3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-383a71f3.js","sources":["../../src/components/CustomDomainDashboard/DeleteAlert.jsx","../../src/components/CustomDomainDashboard/Manage/constants.js","../../src/components/CustomDomainDashboard/Manage/utils.js","../../src/components/CustomDomainDashboard/Manage/DomainEntryField.jsx","../../src/components/CustomDomainDashboard/constants.js","../../src/components/CustomDomainDashboard/Manage/TagBlock.jsx","../../src/components/CustomDomainDashboard/utils.jsx","../../src/components/CustomDomainDashboard/Manage/Record.jsx","../../src/components/CustomDomainDashboard/Manage/StatusInfo.jsx","../../src/components/CustomDomainDashboard/api.js","../../src/components/CustomDomainDashboard/useCustomDomainApi.js","../../src/components/CustomDomainDashboard/Manage/index.jsx"],"sourcesContent":["import React from \"react\";\n\nimport { Alert } from \"neetoui\";\nimport { useTranslation, Trans } from \"react-i18next\";\n\nconst DeleteAlert = ({ onClose, onSubmit, isOpen, isSubmitting, hostname }) => {\n const { t } = useTranslation();\n\n return (\n <Alert\n cancelButtonLabel={t(\"neetoMolecules.common.actions.cancel\")}\n isOpen={isOpen}\n isSubmitting={isSubmitting}\n submitButtonLabel={t(\"neetoMolecules.common.actions.delete\")}\n title={t(\"neetoMolecules.customDomain.delete\")}\n message={\n <Trans\n i18nKey=\"neetoMolecules.customDomain.alertMessage\"\n values={{ hostname }}\n />\n }\n onClose={onClose}\n onSubmit={onSubmit}\n />\n );\n};\n\nexport default DeleteAlert;\n","export const HOSTNAME_REGEX =\n /^(?!-)[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9](?:\\.[a-zA-Z]{2,})+/;\n\nexport const INITIAL_VALUES = { hostname: \"\" };\n","import { t } from \"i18next\";\nimport * as Yup from \"yup\";\n\nimport { HOSTNAME_REGEX } from \"./constants\";\n\nexport const getCustomDomainValidationSchema = () =>\n Yup.object().shape({\n hostname: Yup.string()\n .required(t(\"neetoMolecules.customDomain.formikValidation.required\"))\n .matches(\n HOSTNAME_REGEX,\n t(\"neetoMolecules.customDomain.formikValidation.valid\")\n ),\n });\n\nexport const mergeRefs =\n (...refs) =>\n node =>\n refs.forEach(ref =>\n typeof ref === \"function\" ? ref(node) : (ref.current = node)\n );\n","import React from \"react\";\n\nimport { useFormikContext, useField } from \"formik\";\nimport { isNotEmpty } from \"neetocist\";\nimport useHotKeys from \"neetohotkeys\";\nimport { Check } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport { Input } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { mergeRefs } from \"./utils\";\n\nconst DomainEntryField = ({\n onSubmit,\n customDomain,\n initialFocusRef,\n dirty,\n isCreating,\n name,\n}) => {\n const { t } = useTranslation();\n\n const { values } = useFormikContext();\n const [, { error, touched }, { setTouched }] = useField(name);\n\n const handleSubmit = () => {\n if (error) {\n setTouched(true);\n\n return;\n }\n\n onSubmit(values);\n };\n\n const inputRef = useHotKeys(\"command+enter\", handleSubmit, {\n mode: \"scoped\",\n });\n\n return (\n <div className=\"flex items-start gap-2\">\n <Input\n {...{ name }}\n data-cy=\"custom-domain-input-field\"\n disabled={isNotEmpty(customDomain)}\n error={touched && error}\n placeholder={t(\"neetoMolecules.customDomain.placeholder\")}\n ref={mergeRefs(inputRef, initialFocusRef)}\n />\n {!isNotEmpty(customDomain) && (\n <Button\n data-cy=\"submit-custom-domain-button\"\n data-testid=\"submit-custom-domain-button\"\n disabled={!dirty || isCreating}\n icon={Check}\n loading={isCreating}\n style=\"primary\"\n type=\"submit\"\n />\n )}\n </div>\n );\n};\n\nexport default DomainEntryField;\n","export const DOMAIN_QUERY_KEY = \"custom-domain\";\nexport const HELP_DOC_URL = `https://help.${globalProps.appName.toLowerCase()}.com/articles/custom-domains`;\n","import React from \"react\";\n\nimport classnames from \"classnames\";\nimport { snakeToCamelCase } from \"neetocist\";\nimport { hyphenize } from \"neetocommons/utils/general\";\nimport { Tag } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nconst TagBlock = ({ status, stacked = false }) => {\n const { t } = useTranslation();\n const isDomainValidated =\n status === \"active\" || status === \"pending_cname_validation\";\n const camelCasedStatus = snakeToCamelCase(status || \"\");\n\n return (\n <div\n className={classnames(\"flex gap-2\", {\n \"flex-col items-start\": stacked,\n })}\n >\n {status === \"failed\" ? (\n <Tag\n indicatorStyle=\"danger\"\n label={t(`neetoMolecules.customDomain.status.${camelCasedStatus}`)}\n style=\"secondary\"\n />\n ) : (\n <>\n <Tag\n data-cy={`${hyphenize(status)}-tag-container`}\n indicatorStyle={isDomainValidated ? \"success\" : \"warning\"}\n style=\"secondary\"\n label={t(\n `neetoMolecules.customDomain.status.domain.${camelCasedStatus}`\n )}\n />\n {isDomainValidated && (\n <div\n className={classnames(\"flex items-center justify-between gap-2\", {\n \"w-full\": stacked,\n })}\n >\n <Tag\n data-cy={`${hyphenize(status)}-tag-container`}\n indicatorStyle={status === \"active\" ? \"success\" : \"warning\"}\n style=\"secondary\"\n label={t(\n `neetoMolecules.customDomain.status.cname.${camelCasedStatus}`\n )}\n />\n </div>\n )}\n </>\n )}\n </div>\n );\n};\n\nexport default React.memo(TagBlock);\n","import React from \"react\";\n\nimport { t } from \"i18next\";\nimport { SINGULAR } from \"neetocommons/constants\";\nimport { Button } from \"neetoui\";\n\nimport MoreDropdown from \"components/MoreDropdown\";\n\nimport TagBlock from \"./Manage/TagBlock\";\n\nexport const renderColumnData = (enableManagePane, enableDeleteAlert) => [\n {\n title: t(\"neetoMolecules.customDomain.customDomain\", SINGULAR),\n dataIndex: \"hostname\",\n key: \"hostname\",\n width: \"60%\",\n render: (hostName, customDomain) => (\n <div className=\"flex items-center justify-between gap-x-3\">\n <Button\n data-cy=\"hostname-button\"\n label={hostName}\n style=\"link\"\n onClick={() => enableManagePane(customDomain)}\n />\n <MoreDropdown\n dropdownButtonProps={{\n \"data-testid\": `nui-dropdown-icon-${customDomain.id}`,\n }}\n dropdownProps={{\n position: \"bottom-end\",\n strategy: \"fixed\",\n autoWidth: true,\n }}\n menuItems={[\n {\n label: t(\"neetoMolecules.common.actions.edit\"),\n onClick: () => enableManagePane(customDomain),\n key: \"edit-custom-domain-button\",\n },\n {\n label: t(\"neetoMolecules.common.actions.delete\"),\n onClick: () => enableDeleteAlert(customDomain),\n key: \"delete-custom-domain\",\n },\n ]}\n />\n </div>\n ),\n },\n {\n title: t(\"neetoMolecules.common.status\"),\n dataIndex: \"status\",\n key: \"status\",\n render: status => <TagBlock {...{ status }} />,\n width: \"40%\",\n },\n];\n\nexport const recordData = customDomain => {\n const { status, hostname, dnsTarget, cnameValidationParams } = customDomain;\n\n const isDomainValidated =\n status === \"active\" || status === \"pending_cname_validation\";\n\n const recordName = isDomainValidated ? hostname : cnameValidationParams?.name;\n\n const recordValue = isDomainValidated\n ? dnsTarget\n : cnameValidationParams?.value;\n\n const recordType = isDomainValidated\n ? t(\"neetoMolecules.customDomain.cname\")\n : t(\"neetoMolecules.customDomain.domainValidationCname\");\n\n const recordDescription = isDomainValidated\n ? t(\"neetoMolecules.customDomain.validation.desc\", {\n record: recordType,\n })\n : t(\"neetoMolecules.customDomain.validation.desc\", {\n record: recordType,\n proxyMessage: t(\"neetoMolecules.customDomain.validation.proxyMessage\"),\n });\n\n const recordNameLabel = t(\"neetoMolecules.customDomain.validation.record\", {\n record: recordType,\n type: t(\"neetoMolecules.common.name\"),\n });\n\n const recordValueLabel = t(\"neetoMolecules.customDomain.validation.record\", {\n record: recordType,\n type: t(\"neetoMolecules.common.value\"),\n });\n\n return {\n recordName,\n recordValue,\n recordDescription,\n recordNameLabel,\n recordValueLabel,\n };\n};\n","import React from \"react\";\n\nimport { capitalize } from \"neetocist\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\nimport { Input, Callout, Button } from \"neetoui\";\n\nimport CopyToClipboardButton from \"components/CopyToClipboardButton\";\n\nimport { HELP_DOC_URL } from \"../constants\";\nimport { recordData } from \"../utils\";\n\nconst Record = ({ customDomain }) => {\n const {\n recordName,\n recordValue,\n recordDescription,\n recordNameLabel,\n recordValueLabel,\n } = recordData(customDomain);\n\n return (\n <div className=\"mt-6 grid gap-4\">\n {customDomain.status !== \"active\" && (\n <Callout style=\"info\">\n <div className=\"flex flex-col space-y-2\">\n <p>{recordDescription}</p>\n <Button\n data-cy=\"custom-domain-help-doc-button\"\n href={HELP_DOC_URL}\n label=\"Read help doc\"\n style=\"link\"\n target=\"#\"\n />\n </div>\n </Callout>\n )}\n <Input\n disabled\n data-cy={joinHyphenCase(recordNameLabel)}\n label={capitalize(recordNameLabel)}\n value={recordName}\n suffix={\n <CopyToClipboardButton size=\"small\" style=\"text\" value={recordName} />\n }\n />\n <Input\n disabled\n data-cy={joinHyphenCase(recordValueLabel)}\n label={capitalize(recordValueLabel)}\n value={recordValue}\n suffix={\n <CopyToClipboardButton\n size=\"small\"\n style=\"text\"\n value={recordValue}\n />\n }\n />\n </div>\n );\n};\n\nexport default React.memo(Record);\n","import React from \"react\";\n\nimport { Trans } from \"react-i18next\";\n\nimport { HELP_DOC_URL } from \"../constants\";\n\nconst StatusInfo = () => (\n <div className=\"space-y-6\">\n <div className=\"neeto-ui-rounded neeto-ui-bg-gray-100 neeto-ui-text-gray-700 space-y-3 p-4\">\n <Trans\n i18nKey=\"neetoMolecules.customDomain.messageBlock.dnsStatus\"\n components={{\n Link: (\n <a\n className=\"neeto-ui-text-primary-800\"\n href={HELP_DOC_URL}\n rel=\"noreferrer\"\n target=\"_blank\"\n />\n ),\n }}\n />\n </div>\n </div>\n);\n\nexport default React.memo(StatusInfo);\n","import axios from \"axios\";\n\nconst getUrlwithId = (url, id) => (id ? `${url}/${id}` : url);\n\nconst fetchCustomDomains = ({ url, params }) => axios.get(url, { params });\n\nconst updateCustomDomain = (url, id) => axios.patch(getUrlwithId(url, id));\n\nconst createCustomDomain = (url, payload) => axios.post(url, payload);\nconst deleteCustomDomain = (url, id) => axios.delete(getUrlwithId(url, id));\n\nconst validateDomain = (url, id) =>\n axios.patch(`${getUrlwithId(url, id)}/validate_domain`);\n\nconst validateCname = (url, id) =>\n axios.patch(`${getUrlwithId(url, id)}/validate_cname`);\n\nconst customDomainApi = {\n createCustomDomain,\n deleteCustomDomain,\n validateDomain,\n fetchCustomDomains,\n validateCname,\n updateCustomDomain,\n};\n\nexport default customDomainApi;\n","import useMutationWithInvalidation from \"neetocommons/react-utils/useMutationWithInvalidation\";\nimport { useQuery } from \"react-query\";\n\nimport customDomainApi from \"./api\";\nimport { DOMAIN_QUERY_KEY } from \"./constants\";\n\nconst useCreateCustomDomain = (url, options = {}) =>\n useMutationWithInvalidation(\n payload => customDomainApi.createCustomDomain(url, payload),\n { keysToInvalidate: [DOMAIN_QUERY_KEY], ...options }\n );\n\nconst useDeleteCustomDomain = (url, options = {}) =>\n useMutationWithInvalidation(\n id => customDomainApi.deleteCustomDomain(url, id),\n { keysToInvalidate: [DOMAIN_QUERY_KEY], ...options }\n );\n\nconst useFetchCustomDomains = params =>\n useQuery([DOMAIN_QUERY_KEY, { ...params }], () =>\n customDomainApi.fetchCustomDomains(params)\n );\n\nconst useValidateDomain = (url, options = {}) =>\n useMutationWithInvalidation(id => customDomainApi.validateDomain(url, id), {\n keysToInvalidate: [DOMAIN_QUERY_KEY],\n ...options,\n });\n\nconst useValidateCname = (url, options = {}) =>\n useMutationWithInvalidation(id => customDomainApi.validateCname(url, id), {\n keysToInvalidate: [DOMAIN_QUERY_KEY],\n ...options,\n });\n\nconst useUpdateCustomDomain = (url, options = {}) =>\n useMutationWithInvalidation(\n id => customDomainApi.updateCustomDomain(url, id),\n { keysToInvalidate: [DOMAIN_QUERY_KEY], ...options }\n );\n\nexport {\n useCreateCustomDomain,\n useDeleteCustomDomain,\n useValidateDomain,\n useFetchCustomDomains,\n useValidateCname,\n useUpdateCustomDomain,\n};\n","import React, { useRef } from \"react\";\n\nimport { Form, Formik } from \"formik\";\nimport { isNotEmpty } from \"neetocist\";\nimport { SINGULAR } from \"neetocommons/constants\";\nimport { Label, Pane, Typography, Button } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { INITIAL_VALUES } from \"./constants\";\nimport DomainEntryField from \"./DomainEntryField\";\nimport Record from \"./Record\";\nimport StatusInfo from \"./StatusInfo\";\nimport TagBlock from \"./TagBlock\";\nimport { getCustomDomainValidationSchema } from \"./utils\";\n\nimport {\n useCreateCustomDomain,\n useValidateDomain,\n useValidateCname,\n useUpdateCustomDomain,\n} from \"../useCustomDomainApi\";\n\nconst Manage = ({\n isOpen,\n onClose,\n customDomain,\n setCustomDomain,\n url,\n hasOne,\n}) => {\n const { t } = useTranslation();\n const initialFocusRef = useRef(null);\n\n const customDomainId = hasOne ? null : customDomain?.id;\n\n const { mutate: createCustomDomain, isLoading: isCreating } =\n useCreateCustomDomain(url);\n\n const { mutate: validateDomain, isLoading: isValidating } =\n useValidateDomain(url);\n\n const { mutate: validateCname, isLoading: isCnameValidating } =\n useValidateCname(url);\n\n const { mutate: updateCustomDomain, isLoading: isUpdating } =\n useUpdateCustomDomain(url);\n\n const handleSubmit = values =>\n createCustomDomain(values, {\n onSuccess: values => setCustomDomain(values),\n });\n\n const handleValidateDomain = () =>\n validateDomain(customDomainId, {\n onSuccess: values => setCustomDomain(values),\n });\n\n const handleValidateCname = () => {\n validateCname(customDomainId, {\n onSuccess: data => setCustomDomain(data),\n });\n };\n\n const handleUpdateCname = () => {\n updateCustomDomain(customDomainId, {\n onSuccess: data => setCustomDomain(data),\n });\n };\n\n return (\n <Pane {...{ initialFocusRef, isOpen, onClose }}>\n <Formik\n enableReinitialize\n initialValues={customDomain || INITIAL_VALUES}\n validationSchema={getCustomDomainValidationSchema()}\n onSubmit={handleSubmit}\n >\n {({ dirty }) => (\n <Form>\n <Pane.Header>\n <Typography\n data-cy=\"add-custom-domain-pane-heading\"\n style=\"h2\"\n weight=\"semibold\"\n >\n {isNotEmpty(customDomain)\n ? t(\"neetoMolecules.customDomain.edit\")\n : t(\"neetoMolecules.customDomain.addNew\")}\n </Typography>\n </Pane.Header>\n <Pane.Body>\n <div className=\"w-full space-y-6\">\n {isNotEmpty(customDomain) && (\n <TagBlock\n {...{ handleValidateCname }}\n stacked\n isCnameRecordsAdded={customDomain.addedCnameAt}\n status={customDomain.status}\n />\n )}\n <div className=\"space-y-2\">\n <Label required htmlFor=\"hostname\">\n {isNotEmpty(customDomain)\n ? t(\"neetoMolecules.customDomain.customDomain\", SINGULAR)\n : t(\"neetoMolecules.customDomain.label\")}\n </Label>\n <DomainEntryField\n {...{\n customDomain,\n dirty,\n initialFocusRef,\n isCreating,\n }}\n name=\"hostname\"\n onSubmit={handleSubmit}\n />\n </div>\n {isNotEmpty(customDomain) && (\n <>\n <Record {...{ customDomain }} />\n {customDomain.status === \"pending_domain_validation\" && (\n <Button\n data-cy=\"validate-domain-button\"\n disabled={isValidating}\n loading={isValidating}\n label={t(\n \"neetoMolecules.customDomain.validation.buttonLabel.domain\"\n )}\n onClick={handleValidateDomain}\n />\n )}\n {customDomain.status === \"pending_cname_validation\" && (\n <Button\n data-cy=\"validate-cname-record-button\"\n loading={isCnameValidating || isUpdating}\n label={t(\n \"neetoMolecules.customDomain.validation.buttonLabel.cnameAdded\"\n )}\n onClick={handleUpdateCname}\n />\n )}\n <StatusInfo />\n </>\n )}\n </div>\n </Pane.Body>\n </Form>\n )}\n </Formik>\n </Pane>\n );\n};\n\nexport default Manage;\n"],"names":["DeleteAlert","_ref","onClose","onSubmit","isOpen","isSubmitting","hostname","_useTranslation","useTranslation","t","React","createElement","Alert","cancelButtonLabel","submitButtonLabel","title","message","Trans","i18nKey","values","HOSTNAME_REGEX","INITIAL_VALUES","getCustomDomainValidationSchema","Yup","object","shape","string","required","matches","mergeRefs","_len","arguments","length","refs","Array","_key","node","forEach","ref","current","DomainEntryField","customDomain","initialFocusRef","dirty","isCreating","name","_useFormikContext","useFormikContext","_useField","useField","_useField2","_slicedToArray","_useField2$","error","touched","setTouched","handleSubmit","inputRef","useHotKeys","mode","className","Input","disabled","isNotEmpty","placeholder","Button","icon","Check","loading","style","type","DOMAIN_QUERY_KEY","HELP_DOC_URL","concat","globalProps","appName","toLowerCase","TagBlock","status","_ref$stacked","stacked","isDomainValidated","camelCasedStatus","snakeToCamelCase","classnames","Tag","indicatorStyle","label","Fragment","hyphenize","memo","renderColumnData","enableManagePane","enableDeleteAlert","SINGULAR","dataIndex","key","width","render","hostName","onClick","MoreDropdown","dropdownButtonProps","id","dropdownProps","position","strategy","autoWidth","menuItems","recordData","dnsTarget","cnameValidationParams","recordName","recordValue","value","recordType","recordDescription","record","proxyMessage","recordNameLabel","recordValueLabel","Record","_recordData","Callout","href","target","joinHyphenCase","capitalize","suffix","CopyToClipboardButton","size","StatusInfo","components","Link","rel","getUrlwithId","url","fetchCustomDomains","params","axios","get","updateCustomDomain","patch","createCustomDomain","payload","post","deleteCustomDomain","validateDomain","validateCname","customDomainApi","useCreateCustomDomain","options","undefined","useMutationWithInvalidation","_objectSpread","keysToInvalidate","useDeleteCustomDomain","useFetchCustomDomains","useQuery","useValidateDomain","useValidateCname","useUpdateCustomDomain","Manage","setCustomDomain","hasOne","useRef","customDomainId","_useCreateCustomDomai","mutate","isLoading","_useValidateDomain","isValidating","_useValidateCname","isCnameValidating","_useUpdateCustomDomai","isUpdating","onSuccess","handleValidateDomain","handleValidateCname","data","handleUpdateCname","Pane","Formik","enableReinitialize","initialValues","validationSchema","_ref2","Form","Header","Typography","weight","Body","isCnameRecordsAdded","addedCnameAt","Label","htmlFor"],"mappings":"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"}