@bigbinary/neeto-molecules 3.4.2 → 3.6.0-beta-1
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/README.md +1 -0
- package/dist/Onboarding.js +21 -12
- package/dist/Onboarding.js.map +1 -1
- package/dist/PhoneNumber.js +23 -316
- package/dist/PhoneNumber.js.map +1 -1
- package/dist/SessionEnvironment.js +376 -0
- package/dist/SessionEnvironment.js.map +1 -0
- package/dist/cjs/Onboarding.js +20 -11
- package/dist/cjs/Onboarding.js.map +1 -1
- package/dist/cjs/PhoneNumber.js +24 -343
- package/dist/cjs/PhoneNumber.js.map +1 -1
- package/dist/cjs/SessionEnvironment.js +408 -0
- package/dist/cjs/SessionEnvironment.js.map +1 -0
- package/dist/cjs/phone-number-904b0a70.js +361 -0
- package/dist/cjs/phone-number-904b0a70.js.map +1 -0
- package/dist/phone-number-cf3e77d7.js +322 -0
- package/dist/phone-number-cf3e77d7.js.map +1 -0
- package/package.json +1 -1
- package/src/translations/en.json +37 -1
- package/types/HelpPopover.d.ts +11 -10
- package/types/Onboarding.d.ts +3 -1
- package/types/SessionEnvironment.d.ts +166 -0
- package/types/StatusDropdown.d.ts +2 -2
|
@@ -0,0 +1,408 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var neetoCist = require('@bigbinary/neeto-cist');
|
|
6
|
+
var Down = require('@bigbinary/neeto-icons/Down');
|
|
7
|
+
var Up = require('@bigbinary/neeto-icons/Up');
|
|
8
|
+
var Button = require('@bigbinary/neetoui/Button');
|
|
9
|
+
var Spinner = require('@bigbinary/neetoui/Spinner');
|
|
10
|
+
var ramda = require('ramda');
|
|
11
|
+
var reactI18next = require('react-i18next');
|
|
12
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
13
|
+
var Typography = require('@bigbinary/neetoui/Typography');
|
|
14
|
+
var HelpPopover = require('./HelpPopover.js');
|
|
15
|
+
var classnames = require('classnames');
|
|
16
|
+
var useHotkeys = require('@bigbinary/neeto-hotkeys');
|
|
17
|
+
var Check = require('@bigbinary/neeto-icons/Check');
|
|
18
|
+
var Close = require('@bigbinary/neeto-icons/Close');
|
|
19
|
+
var Input = require('@bigbinary/neetoui/Input');
|
|
20
|
+
var Tooltip = require('@bigbinary/neetoui/Tooltip');
|
|
21
|
+
var CopyToClipboardButton = require('./CopyToClipboardButton.js');
|
|
22
|
+
require('@babel/runtime/helpers/objectWithoutProperties');
|
|
23
|
+
require('formik');
|
|
24
|
+
var phoneNumber = require('./phone-number-904b0a70.js');
|
|
25
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
26
|
+
require('i18next');
|
|
27
|
+
require('libphonenumber-js/min');
|
|
28
|
+
require('yup');
|
|
29
|
+
var TimeFormat = require('./TimeFormat.js');
|
|
30
|
+
var Computer = require('@bigbinary/neeto-icons/Computer');
|
|
31
|
+
var Email = require('@bigbinary/neeto-icons/Email');
|
|
32
|
+
var Location = require('@bigbinary/neeto-icons/Location');
|
|
33
|
+
var Mobile = require('@bigbinary/neeto-icons/Mobile');
|
|
34
|
+
var Phone = require('@bigbinary/neeto-icons/Phone');
|
|
35
|
+
var Subdomain = require('@bigbinary/neeto-icons/Subdomain');
|
|
36
|
+
var User = require('@bigbinary/neeto-icons/User');
|
|
37
|
+
var Apple = require('@bigbinary/neeto-icons/misc/Apple');
|
|
38
|
+
var Chrome = require('@bigbinary/neeto-icons/misc/Chrome');
|
|
39
|
+
var Edge = require('@bigbinary/neeto-icons/misc/Edge');
|
|
40
|
+
var Firefox = require('@bigbinary/neeto-icons/misc/Firefox');
|
|
41
|
+
var Safari = require('@bigbinary/neeto-icons/misc/Safari');
|
|
42
|
+
var Ubuntu = require('@bigbinary/neeto-icons/misc/Ubuntu');
|
|
43
|
+
var Windows = require('@bigbinary/neeto-icons/misc/Windows');
|
|
44
|
+
var injectCss = require('./inject-css-80a5faa3.js');
|
|
45
|
+
require('@bigbinary/neeto-icons/Help');
|
|
46
|
+
require('@bigbinary/neetoui/Popover');
|
|
47
|
+
require('@bigbinary/neeto-commons-frontend/utils/general');
|
|
48
|
+
require('@bigbinary/neeto-icons/Copy');
|
|
49
|
+
require('zustand/shallow');
|
|
50
|
+
require('@bigbinary/neetoui/Select');
|
|
51
|
+
require('./_commonjsHelpers-68cdf74f.js');
|
|
52
|
+
require('@tanstack/react-query');
|
|
53
|
+
require('axios');
|
|
54
|
+
require('@bigbinary/neeto-commons-frontend/react-utils/withImmutableActions');
|
|
55
|
+
require('zustand');
|
|
56
|
+
require('zustand/middleware');
|
|
57
|
+
require('./DateFormat.js');
|
|
58
|
+
require('@bigbinary/neeto-commons-frontend/react-utils/useTimer');
|
|
59
|
+
require('@bigbinary/neeto-commons-frontend/utils/datetime');
|
|
60
|
+
|
|
61
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
62
|
+
|
|
63
|
+
var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
|
|
64
|
+
var Down__default = /*#__PURE__*/_interopDefaultLegacy(Down);
|
|
65
|
+
var Up__default = /*#__PURE__*/_interopDefaultLegacy(Up);
|
|
66
|
+
var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
|
|
67
|
+
var Spinner__default = /*#__PURE__*/_interopDefaultLegacy(Spinner);
|
|
68
|
+
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
69
|
+
var Typography__default = /*#__PURE__*/_interopDefaultLegacy(Typography);
|
|
70
|
+
var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
|
|
71
|
+
var useHotkeys__default = /*#__PURE__*/_interopDefaultLegacy(useHotkeys);
|
|
72
|
+
var Check__default = /*#__PURE__*/_interopDefaultLegacy(Check);
|
|
73
|
+
var Close__default = /*#__PURE__*/_interopDefaultLegacy(Close);
|
|
74
|
+
var Input__default = /*#__PURE__*/_interopDefaultLegacy(Input);
|
|
75
|
+
var Tooltip__default = /*#__PURE__*/_interopDefaultLegacy(Tooltip);
|
|
76
|
+
var Computer__default = /*#__PURE__*/_interopDefaultLegacy(Computer);
|
|
77
|
+
var Email__default = /*#__PURE__*/_interopDefaultLegacy(Email);
|
|
78
|
+
var Location__default = /*#__PURE__*/_interopDefaultLegacy(Location);
|
|
79
|
+
var Mobile__default = /*#__PURE__*/_interopDefaultLegacy(Mobile);
|
|
80
|
+
var Phone__default = /*#__PURE__*/_interopDefaultLegacy(Phone);
|
|
81
|
+
var Subdomain__default = /*#__PURE__*/_interopDefaultLegacy(Subdomain);
|
|
82
|
+
var User__default = /*#__PURE__*/_interopDefaultLegacy(User);
|
|
83
|
+
var Apple__default = /*#__PURE__*/_interopDefaultLegacy(Apple);
|
|
84
|
+
var Chrome__default = /*#__PURE__*/_interopDefaultLegacy(Chrome);
|
|
85
|
+
var Edge__default = /*#__PURE__*/_interopDefaultLegacy(Edge);
|
|
86
|
+
var Firefox__default = /*#__PURE__*/_interopDefaultLegacy(Firefox);
|
|
87
|
+
var Safari__default = /*#__PURE__*/_interopDefaultLegacy(Safari);
|
|
88
|
+
var Ubuntu__default = /*#__PURE__*/_interopDefaultLegacy(Ubuntu);
|
|
89
|
+
var Windows__default = /*#__PURE__*/_interopDefaultLegacy(Windows);
|
|
90
|
+
|
|
91
|
+
var BOOLEAN_VALUES_MAP = {
|
|
92
|
+
"true": "Yes",
|
|
93
|
+
"false": "No"
|
|
94
|
+
};
|
|
95
|
+
var ENTER = "enter";
|
|
96
|
+
var ESCAPE = "escape";
|
|
97
|
+
var PHONE_NUMBER = "phone_number";
|
|
98
|
+
var INTEGER = "integer";
|
|
99
|
+
var ICONS_MAP = {
|
|
100
|
+
name: User__default["default"],
|
|
101
|
+
user: User__default["default"],
|
|
102
|
+
email: Email__default["default"],
|
|
103
|
+
phone_number: Phone__default["default"],
|
|
104
|
+
location: Location__default["default"],
|
|
105
|
+
timezone: Subdomain__default["default"],
|
|
106
|
+
chrome: Chrome__default["default"],
|
|
107
|
+
safari: Safari__default["default"],
|
|
108
|
+
firefox: Firefox__default["default"],
|
|
109
|
+
edge: Edge__default["default"],
|
|
110
|
+
ie: Edge__default["default"],
|
|
111
|
+
windows: Windows__default["default"],
|
|
112
|
+
mac_os: Apple__default["default"],
|
|
113
|
+
linux: Ubuntu__default["default"],
|
|
114
|
+
mobile: Mobile__default["default"],
|
|
115
|
+
desktop: Computer__default["default"]
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
var getInputType = function getInputType(_ref) {
|
|
119
|
+
var name = _ref.name,
|
|
120
|
+
kind = _ref.kind;
|
|
121
|
+
if (name === PHONE_NUMBER) return "tel";else if (kind === INTEGER) return "number";
|
|
122
|
+
return "text";
|
|
123
|
+
};
|
|
124
|
+
var getIcon = function getIcon(_ref2) {
|
|
125
|
+
var iconSize = _ref2.iconSize,
|
|
126
|
+
name = _ref2.name,
|
|
127
|
+
value = _ref2.value;
|
|
128
|
+
var Icon = name === "browser" || name === "os" ? ICONS_MAP[value === null || value === void 0 ? void 0 : value.toLowerCase().replace(" ", "_")] : ICONS_MAP[name];
|
|
129
|
+
return /*#__PURE__*/jsxRuntime.jsx(Icon, {
|
|
130
|
+
size: iconSize
|
|
131
|
+
});
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
var Item = function Item(_ref) {
|
|
135
|
+
var handleCancel = _ref.handleCancel,
|
|
136
|
+
handleSubmit = _ref.handleSubmit,
|
|
137
|
+
iconSize = _ref.iconSize,
|
|
138
|
+
item = _ref.item,
|
|
139
|
+
showIcons = _ref.showIcons;
|
|
140
|
+
var _useState = React.useState(item.isEditing),
|
|
141
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
142
|
+
isEditing = _useState2[0],
|
|
143
|
+
setIsEditing = _useState2[1];
|
|
144
|
+
var _useState3 = React.useState(item.value),
|
|
145
|
+
_useState4 = _slicedToArray__default["default"](_useState3, 2),
|
|
146
|
+
value = _useState4[0],
|
|
147
|
+
setValue = _useState4[1];
|
|
148
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
149
|
+
t = _useTranslation.t;
|
|
150
|
+
var containerRef = useHotkeys__default["default"](ESCAPE, function () {
|
|
151
|
+
return handleCancel(name);
|
|
152
|
+
}, {
|
|
153
|
+
mode: "scoped"
|
|
154
|
+
});
|
|
155
|
+
var icon = item.icon,
|
|
156
|
+
_item$isEditable = item.isEditable,
|
|
157
|
+
isEditable = _item$isEditable === void 0 ? false : _item$isEditable,
|
|
158
|
+
_item$extraClasses = item.extraClasses,
|
|
159
|
+
extraClasses = _item$extraClasses === void 0 ? "" : _item$extraClasses,
|
|
160
|
+
_item$extraWrapperCla = item.extraWrapperClasses,
|
|
161
|
+
extraWrapperClasses = _item$extraWrapperCla === void 0 ? "" : _item$extraWrapperCla,
|
|
162
|
+
id = item.id,
|
|
163
|
+
fieldValueId = item.fieldValueId,
|
|
164
|
+
_item$custom = item.custom,
|
|
165
|
+
custom = _item$custom === void 0 ? false : _item$custom,
|
|
166
|
+
name = item.name,
|
|
167
|
+
kind = item.kind,
|
|
168
|
+
error = item.error,
|
|
169
|
+
label = item.label,
|
|
170
|
+
_item$showCopyButton = item.showCopyButton,
|
|
171
|
+
showCopyButton = _item$showCopyButton === void 0 ? false : _item$showCopyButton;
|
|
172
|
+
var valueToRender = React.useMemo(function () {
|
|
173
|
+
if (ramda.isNil(value)) return "-";
|
|
174
|
+
if (typeof value === "boolean") return BOOLEAN_VALUES_MAP[value.toString()];
|
|
175
|
+
return value;
|
|
176
|
+
}, [value]);
|
|
177
|
+
var iconToRender = React.useMemo(function () {
|
|
178
|
+
return icon || getIcon({
|
|
179
|
+
iconSize: iconSize,
|
|
180
|
+
name: name,
|
|
181
|
+
value: value
|
|
182
|
+
});
|
|
183
|
+
}, [icon, iconSize, name, value]);
|
|
184
|
+
var onSuccess = function onSuccess() {
|
|
185
|
+
return setIsEditing(false);
|
|
186
|
+
};
|
|
187
|
+
var handleMetadataSubmit = function handleMetadataSubmit() {
|
|
188
|
+
return handleSubmit({
|
|
189
|
+
fieldId: id,
|
|
190
|
+
fieldValueId: fieldValueId,
|
|
191
|
+
name: name,
|
|
192
|
+
value: value,
|
|
193
|
+
custom: custom,
|
|
194
|
+
onSuccess: onSuccess
|
|
195
|
+
});
|
|
196
|
+
};
|
|
197
|
+
var handleMetadataCancel = function handleMetadataCancel() {
|
|
198
|
+
setIsEditing(false);
|
|
199
|
+
setValue(item.value);
|
|
200
|
+
handleCancel(name);
|
|
201
|
+
};
|
|
202
|
+
var inputRef = useHotkeys__default["default"](ENTER, handleMetadataSubmit, {
|
|
203
|
+
mode: "scoped"
|
|
204
|
+
});
|
|
205
|
+
var InputComponent = name === PHONE_NUMBER ? phoneNumber.PhoneNumberInput : Input__default["default"];
|
|
206
|
+
var handleChange = function handleChange(event) {
|
|
207
|
+
var value = name === PHONE_NUMBER ? event : event.target.value;
|
|
208
|
+
setValue(value);
|
|
209
|
+
};
|
|
210
|
+
React.useEffect(function () {
|
|
211
|
+
setValue(item.value);
|
|
212
|
+
}, [item]);
|
|
213
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
214
|
+
ref: containerRef,
|
|
215
|
+
className: classnames__default["default"]("mb-2 flex place-items-center gap-2 align-middle", extraWrapperClasses, {
|
|
216
|
+
"flex-wrap": name !== PHONE_NUMBER
|
|
217
|
+
}),
|
|
218
|
+
children: [showIcons && neetoCist.isPresent(iconToRender) ? /*#__PURE__*/jsxRuntime.jsx(Tooltip__default["default"], {
|
|
219
|
+
content: label || t("neetoMolecules.sessionEnvironment.details.keys.".concat(name)),
|
|
220
|
+
children: /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
221
|
+
className: "flex-shrink-0",
|
|
222
|
+
children: iconToRender
|
|
223
|
+
})
|
|
224
|
+
}) : /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
|
|
225
|
+
className: "neeto-molecules-session-environment-editable-field whitespace-nowrap",
|
|
226
|
+
style: "h5",
|
|
227
|
+
children: label || t("neetoMolecules.sessionEnvironment.details.keys.".concat(name))
|
|
228
|
+
}), !isEditing ? /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
229
|
+
children: [kind === "datetime" ? /*#__PURE__*/jsxRuntime.jsx(TimeFormat.DateWeekTime, {
|
|
230
|
+
date: value,
|
|
231
|
+
typographyProps: {
|
|
232
|
+
style: "body2",
|
|
233
|
+
className: "overflow-hidden truncate whitespace-normal break-all ".concat(extraClasses)
|
|
234
|
+
}
|
|
235
|
+
}) : /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
|
|
236
|
+
className: "overflow-hidden truncate whitespace-normal break-all ".concat(extraClasses),
|
|
237
|
+
"data-testid": "metadata-value-".concat(name),
|
|
238
|
+
style: "body2",
|
|
239
|
+
weight: "normal",
|
|
240
|
+
onClick: function onClick() {
|
|
241
|
+
return isEditable && setIsEditing(true);
|
|
242
|
+
},
|
|
243
|
+
children: valueToRender
|
|
244
|
+
}), showCopyButton && /*#__PURE__*/jsxRuntime.jsx(CopyToClipboardButton, {
|
|
245
|
+
className: "flex-shrink-0",
|
|
246
|
+
size: "small",
|
|
247
|
+
style: "text",
|
|
248
|
+
value: valueToRender
|
|
249
|
+
})]
|
|
250
|
+
}) : /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
251
|
+
className: "neeto-molecules-session-environment-editable-field relative flex min-w-0 flex-grow items-center",
|
|
252
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(InputComponent, {
|
|
253
|
+
error: error,
|
|
254
|
+
autoFocus: true,
|
|
255
|
+
"data-testid": "metadata-input-".concat(name),
|
|
256
|
+
placeholder: t("neetoMolecules.common.enter", {
|
|
257
|
+
what: label
|
|
258
|
+
}),
|
|
259
|
+
ref: inputRef,
|
|
260
|
+
type: getInputType({
|
|
261
|
+
name: name,
|
|
262
|
+
kind: kind
|
|
263
|
+
}),
|
|
264
|
+
value: value || "",
|
|
265
|
+
onChange: handleChange
|
|
266
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
267
|
+
className: "neeto-molecules-session-environment-editable-field__actions absolute right-0 top-0 flex h-8 items-center pr-1",
|
|
268
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Button__default["default"], {
|
|
269
|
+
icon: Close__default["default"],
|
|
270
|
+
size: "small",
|
|
271
|
+
style: "text",
|
|
272
|
+
tooltipProps: {
|
|
273
|
+
content: t("neetoMolecules.common.actions.cancel"),
|
|
274
|
+
position: "top"
|
|
275
|
+
},
|
|
276
|
+
onClick: handleMetadataCancel
|
|
277
|
+
}), /*#__PURE__*/jsxRuntime.jsx(Button__default["default"], {
|
|
278
|
+
"data-testid": "metadata-submit-".concat(name),
|
|
279
|
+
icon: Check__default["default"],
|
|
280
|
+
size: "small",
|
|
281
|
+
style: "text",
|
|
282
|
+
tooltipProps: {
|
|
283
|
+
content: t("neetoMolecules.common.actions.save"),
|
|
284
|
+
position: "top"
|
|
285
|
+
},
|
|
286
|
+
onClick: handleMetadataSubmit
|
|
287
|
+
})]
|
|
288
|
+
})]
|
|
289
|
+
})]
|
|
290
|
+
});
|
|
291
|
+
};
|
|
292
|
+
|
|
293
|
+
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; }
|
|
294
|
+
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__default["default"](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; }
|
|
295
|
+
var DetailsBlock = function DetailsBlock(_ref) {
|
|
296
|
+
var details = _ref.details,
|
|
297
|
+
_ref$handleCancel = _ref.handleCancel,
|
|
298
|
+
handleCancel = _ref$handleCancel === void 0 ? neetoCist.noop : _ref$handleCancel,
|
|
299
|
+
_ref$handleSubmit = _ref.handleSubmit,
|
|
300
|
+
handleSubmit = _ref$handleSubmit === void 0 ? neetoCist.noop : _ref$handleSubmit,
|
|
301
|
+
helpPopoverProps = _ref.helpPopoverProps,
|
|
302
|
+
iconSize = _ref.iconSize,
|
|
303
|
+
_ref$showIcons = _ref.showIcons,
|
|
304
|
+
showIcons = _ref$showIcons === void 0 ? false : _ref$showIcons,
|
|
305
|
+
_ref$title = _ref.title,
|
|
306
|
+
title = _ref$title === void 0 ? "" : _ref$title;
|
|
307
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
308
|
+
className: "mb-4",
|
|
309
|
+
children: [title && /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
310
|
+
className: "mb-2 flex",
|
|
311
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
|
|
312
|
+
className: "mr-2",
|
|
313
|
+
style: "h4",
|
|
314
|
+
textTransform: "uppercase",
|
|
315
|
+
weight: "bold",
|
|
316
|
+
children: title
|
|
317
|
+
}), neetoCist.isPresent(helpPopoverProps) && /*#__PURE__*/jsxRuntime.jsx(HelpPopover, _objectSpread({}, helpPopoverProps))]
|
|
318
|
+
}), details.map(function (detail, index) {
|
|
319
|
+
return /*#__PURE__*/React.createElement(Item, {
|
|
320
|
+
handleCancel: handleCancel,
|
|
321
|
+
handleSubmit: handleSubmit,
|
|
322
|
+
iconSize: iconSize,
|
|
323
|
+
showIcons: showIcons,
|
|
324
|
+
item: detail,
|
|
325
|
+
key: index
|
|
326
|
+
});
|
|
327
|
+
})]
|
|
328
|
+
});
|
|
329
|
+
};
|
|
330
|
+
var DetailsBlock$1 = /*#__PURE__*/React.memo(DetailsBlock);
|
|
331
|
+
|
|
332
|
+
var css = ".neeto-molecules-session-environment-editable-field .neeto-ui-input__wrapper .ant-picker-suffix{display:none}.neeto-molecules-session-environment-editable-field .neeto-ui-input__wrapper .neeto-ui-input__prefix{margin:0;padding:0}.neeto-molecules-session-environment-editable-field .neeto-ui-input__wrapper .neeto-ui-date-input,.neeto-molecules-session-environment-editable-field .neeto-ui-input__wrapper .neeto-ui-input>input{padding:4px 45px 4px 4px!important}.neeto-molecules-session-environment-editable-field__actions .neeto-ui-btn{background-color:transparent!important;min-height:0!important;padding:2px!important}";
|
|
333
|
+
injectCss.n(css,{});
|
|
334
|
+
|
|
335
|
+
var SessionEnvironment = function SessionEnvironment(_ref) {
|
|
336
|
+
var details = _ref.details,
|
|
337
|
+
_ref$handleCancel = _ref.handleCancel,
|
|
338
|
+
handleCancel = _ref$handleCancel === void 0 ? neetoCist.noop : _ref$handleCancel,
|
|
339
|
+
_ref$handleSubmit = _ref.handleSubmit,
|
|
340
|
+
handleSubmit = _ref$handleSubmit === void 0 ? neetoCist.noop : _ref$handleSubmit,
|
|
341
|
+
_ref$helpPopoverProps = _ref.helpPopoverProps,
|
|
342
|
+
helpPopoverProps = _ref$helpPopoverProps === void 0 ? {} : _ref$helpPopoverProps,
|
|
343
|
+
_ref$iconSize = _ref.iconSize,
|
|
344
|
+
iconSize = _ref$iconSize === void 0 ? 20 : _ref$iconSize,
|
|
345
|
+
_ref$isLoading = _ref.isLoading,
|
|
346
|
+
isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
|
|
347
|
+
_ref$moreDetails = _ref.moreDetails,
|
|
348
|
+
moreDetails = _ref$moreDetails === void 0 ? [] : _ref$moreDetails,
|
|
349
|
+
_ref$title = _ref.title,
|
|
350
|
+
title = _ref$title === void 0 ? "" : _ref$title;
|
|
351
|
+
var _useState = React.useState(false),
|
|
352
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
353
|
+
showViewMore = _useState2[0],
|
|
354
|
+
setShowViewMore = _useState2[1];
|
|
355
|
+
var customViewMoreItems = React.useMemo(function () {
|
|
356
|
+
return neetoCist.filterBy({
|
|
357
|
+
kind: "custom"
|
|
358
|
+
}, moreDetails);
|
|
359
|
+
}, [moreDetails]);
|
|
360
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
361
|
+
t = _useTranslation.t;
|
|
362
|
+
if (isLoading) {
|
|
363
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
364
|
+
className: "flex h-full w-full items-center justify-center",
|
|
365
|
+
children: /*#__PURE__*/jsxRuntime.jsx(Spinner__default["default"], {})
|
|
366
|
+
});
|
|
367
|
+
}
|
|
368
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
369
|
+
className: "w-full",
|
|
370
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(DetailsBlock$1, {
|
|
371
|
+
details: details,
|
|
372
|
+
handleCancel: handleCancel,
|
|
373
|
+
handleSubmit: handleSubmit,
|
|
374
|
+
helpPopoverProps: helpPopoverProps,
|
|
375
|
+
iconSize: iconSize,
|
|
376
|
+
title: title,
|
|
377
|
+
showIcons: true
|
|
378
|
+
}), showViewMore && /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
379
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("hr", {
|
|
380
|
+
className: "m-4"
|
|
381
|
+
}), /*#__PURE__*/jsxRuntime.jsx(DetailsBlock$1, {
|
|
382
|
+
handleCancel: handleCancel,
|
|
383
|
+
handleSubmit: handleSubmit,
|
|
384
|
+
helpPopoverProps: helpPopoverProps,
|
|
385
|
+
iconSize: iconSize,
|
|
386
|
+
details: neetoCist.removeBy({
|
|
387
|
+
kind: "custom"
|
|
388
|
+
}, moreDetails)
|
|
389
|
+
}), neetoCist.isPresent(customViewMoreItems) && /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
390
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("hr", {
|
|
391
|
+
className: "m-4"
|
|
392
|
+
}), ramda.pluck("value", customViewMoreItems)]
|
|
393
|
+
})]
|
|
394
|
+
}), /*#__PURE__*/jsxRuntime.jsx(Button__default["default"], {
|
|
395
|
+
className: "mb-4",
|
|
396
|
+
icon: showViewMore ? Up__default["default"] : Down__default["default"],
|
|
397
|
+
style: "link",
|
|
398
|
+
label: showViewMore ? t("neetoMolecules.sessionEnvironment.viewLess") : t("neetoMolecules.sessionEnvironment.viewMore"),
|
|
399
|
+
onClick: function onClick() {
|
|
400
|
+
return setShowViewMore(ramda.not);
|
|
401
|
+
}
|
|
402
|
+
})]
|
|
403
|
+
});
|
|
404
|
+
};
|
|
405
|
+
var index = /*#__PURE__*/React.memo(SessionEnvironment);
|
|
406
|
+
|
|
407
|
+
module.exports = index;
|
|
408
|
+
//# sourceMappingURL=SessionEnvironment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionEnvironment.js","sources":["../../src/components/SessionEnvironment/constants.js","../../src/components/SessionEnvironment/utils.jsx","../../src/components/SessionEnvironment/Item.jsx","../../src/components/SessionEnvironment/DetailsBlock.jsx","../../src/components/SessionEnvironment/index.jsx"],"sourcesContent":["import {\n Computer,\n Email,\n Location,\n Mobile,\n Phone,\n Subdomain,\n User,\n} from \"neetoicons\";\nimport {\n Apple,\n Chrome,\n Edge,\n Firefox,\n Safari,\n Ubuntu,\n Windows,\n} from \"neetoicons/misc\";\n\nexport const BOOLEAN_VALUES_MAP = { true: \"Yes\", false: \"No\" };\nexport const ENTER = \"enter\";\nexport const ESCAPE = \"escape\";\nexport const PHONE_NUMBER = \"phone_number\";\nexport const INTEGER = \"integer\";\nexport const ICONS_MAP = {\n name: User,\n user: User,\n email: Email,\n phone_number: Phone,\n location: Location,\n timezone: Subdomain,\n chrome: Chrome,\n safari: Safari,\n firefox: Firefox,\n edge: Edge,\n ie: Edge,\n windows: Windows,\n mac_os: Apple,\n linux: Ubuntu,\n mobile: Mobile,\n desktop: Computer,\n};\n","import { ICONS_MAP, INTEGER, PHONE_NUMBER } from \"./constants\";\n\nexport const getInputType = ({ name, kind }) => {\n if (name === PHONE_NUMBER) return \"tel\";\n else if (kind === INTEGER) return \"number\";\n\n return \"text\";\n};\n\nexport const getIcon = ({ iconSize, name, value }) => {\n const Icon =\n name === \"browser\" || name === \"os\"\n ? ICONS_MAP[value?.toLowerCase().replace(\" \", \"_\")]\n : ICONS_MAP[name];\n\n return <Icon size={iconSize} />;\n};\n","import { useEffect, useMemo, useState } from \"react\";\n\nimport classNames from \"classnames\";\nimport { isPresent } from \"neetocist\";\nimport useHotkeys from \"neetohotkeys\";\nimport { Check, Close } from \"neetoicons\";\nimport { Button, Input, Tooltip, Typography } from \"neetoui\";\nimport { isNil } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport CopyToClipboardButton from \"components/CopyToClipboardButton\";\nimport { PhoneNumberInput } from \"components/PhoneNumber\";\nimport TimeFormat from \"components/TimeFormat\";\n\nimport { BOOLEAN_VALUES_MAP, ENTER, ESCAPE, PHONE_NUMBER } from \"./constants\";\nimport { getIcon, getInputType } from \"./utils\";\n\nconst Item = ({ handleCancel, handleSubmit, iconSize, item, showIcons }) => {\n const [isEditing, setIsEditing] = useState(item.isEditing);\n const [value, setValue] = useState(item.value);\n\n const { t } = useTranslation();\n\n const containerRef = useHotkeys(ESCAPE, () => handleCancel(name), {\n mode: \"scoped\",\n });\n\n const {\n icon,\n isEditable = false,\n extraClasses = \"\",\n extraWrapperClasses = \"\",\n id,\n fieldValueId,\n custom = false,\n name,\n kind,\n error,\n label,\n showCopyButton = false,\n } = item;\n\n const valueToRender = useMemo(() => {\n if (isNil(value)) return \"-\";\n\n if (typeof value === \"boolean\") return BOOLEAN_VALUES_MAP[value.toString()];\n\n return value;\n }, [value]);\n\n const iconToRender = useMemo(\n () => icon || getIcon({ iconSize, name, value }),\n [icon, iconSize, name, value]\n );\n\n const onSuccess = () => setIsEditing(false);\n\n const handleMetadataSubmit = () =>\n handleSubmit({ fieldId: id, fieldValueId, name, value, custom, onSuccess });\n\n const handleMetadataCancel = () => {\n setIsEditing(false);\n setValue(item.value);\n handleCancel(name);\n };\n\n const inputRef = useHotkeys(ENTER, handleMetadataSubmit, {\n mode: \"scoped\",\n });\n\n const InputComponent = name === PHONE_NUMBER ? PhoneNumberInput : Input;\n\n const handleChange = event => {\n const value = name === PHONE_NUMBER ? event : event.target.value;\n setValue(value);\n };\n\n useEffect(() => {\n setValue(item.value);\n }, [item]);\n\n return (\n <div\n ref={containerRef}\n className={classNames(\n \"mb-2 flex place-items-center gap-2 align-middle\",\n extraWrapperClasses,\n { \"flex-wrap\": name !== PHONE_NUMBER }\n )}\n >\n {showIcons && isPresent(iconToRender) ? (\n <Tooltip\n content={\n label || t(`neetoMolecules.sessionEnvironment.details.keys.${name}`)\n }\n >\n <div className=\"flex-shrink-0\">{iconToRender}</div>\n </Tooltip>\n ) : (\n <Typography\n className=\"neeto-molecules-session-environment-editable-field whitespace-nowrap\"\n style=\"h5\"\n >\n {label || t(`neetoMolecules.sessionEnvironment.details.keys.${name}`)}\n </Typography>\n )}\n {!isEditing ? (\n <>\n {kind === \"datetime\" ? (\n <TimeFormat.DateWeekTime\n date={value}\n typographyProps={{\n style: \"body2\",\n className: `overflow-hidden truncate whitespace-normal break-all ${extraClasses}`,\n }}\n />\n ) : (\n <Typography\n className={`overflow-hidden truncate whitespace-normal break-all ${extraClasses}`}\n data-testid={`metadata-value-${name}`}\n style=\"body2\"\n weight=\"normal\"\n onClick={() => isEditable && setIsEditing(true)}\n >\n {valueToRender}\n </Typography>\n )}\n {showCopyButton && (\n <CopyToClipboardButton\n className=\"flex-shrink-0\"\n size=\"small\"\n style=\"text\"\n value={valueToRender}\n />\n )}\n </>\n ) : (\n <div className=\"neeto-molecules-session-environment-editable-field relative flex min-w-0 flex-grow items-center\">\n <InputComponent\n {...{ error }}\n autoFocus\n data-testid={`metadata-input-${name}`}\n placeholder={t(\"neetoMolecules.common.enter\", { what: label })}\n ref={inputRef}\n type={getInputType({ name, kind })}\n value={value || \"\"}\n onChange={handleChange}\n />\n <div className=\"neeto-molecules-session-environment-editable-field__actions absolute right-0 top-0 flex h-8 items-center pr-1\">\n <Button\n icon={Close}\n size=\"small\"\n style=\"text\"\n tooltipProps={{\n content: t(\"neetoMolecules.common.actions.cancel\"),\n position: \"top\",\n }}\n onClick={handleMetadataCancel}\n />\n <Button\n data-testid={`metadata-submit-${name}`}\n icon={Check}\n size=\"small\"\n style=\"text\"\n tooltipProps={{\n content: t(\"neetoMolecules.common.actions.save\"),\n position: \"top\",\n }}\n onClick={handleMetadataSubmit}\n />\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport default Item;\n","import { memo } from \"react\";\n\nimport { isPresent, noop } from \"neetocist\";\nimport { Typography } from \"neetoui\";\n\nimport HelpPopover from \"components/HelpPopover\";\n\nimport Item from \"./Item\";\n\nconst DetailsBlock = ({\n details,\n handleCancel = noop,\n handleSubmit = noop,\n helpPopoverProps,\n iconSize,\n showIcons = false,\n title = \"\",\n}) => (\n <div className=\"mb-4\">\n {title && (\n <div className=\"mb-2 flex\">\n <Typography\n className=\"mr-2\"\n style=\"h4\"\n textTransform=\"uppercase\"\n weight=\"bold\"\n >\n {title}\n </Typography>\n {isPresent(helpPopoverProps) && <HelpPopover {...helpPopoverProps} />}\n </div>\n )}\n {details.map((detail, index) => (\n <Item\n {...{ handleCancel, handleSubmit, iconSize, showIcons }}\n item={detail}\n key={index}\n />\n ))}\n </div>\n);\n\nexport default memo(DetailsBlock);\n","import { memo, useMemo, useState } from \"react\";\n\nimport { filterBy, isPresent, noop, removeBy } from \"neetocist\";\nimport { Down, Up } from \"neetoicons\";\nimport { Button, Spinner } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { pluck, not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport DetailsBlock from \"./DetailsBlock\";\nimport \"./session-environment.scss\";\n\nconst SessionEnvironment = ({\n details,\n handleCancel = noop,\n handleSubmit = noop,\n helpPopoverProps = {},\n iconSize = 20,\n isLoading = false,\n moreDetails = [],\n title = \"\",\n}) => {\n const [showViewMore, setShowViewMore] = useState(false);\n\n const customViewMoreItems = useMemo(\n () => filterBy({ kind: \"custom\" }, moreDetails),\n [moreDetails]\n );\n\n const { t } = useTranslation();\n\n if (isLoading) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <div className=\"w-full\">\n <DetailsBlock\n {...{\n details,\n handleCancel,\n handleSubmit,\n helpPopoverProps,\n iconSize,\n title,\n }}\n showIcons\n />\n {showViewMore && (\n <>\n <hr className=\"m-4\" />\n <DetailsBlock\n {...{\n handleCancel,\n handleSubmit,\n helpPopoverProps,\n iconSize,\n }}\n details={removeBy({ kind: \"custom\" }, moreDetails)}\n />\n {isPresent(customViewMoreItems) && (\n <>\n <hr className=\"m-4\" />\n {pluck(\"value\", customViewMoreItems)}\n </>\n )}\n </>\n )}\n <Button\n className=\"mb-4\"\n icon={showViewMore ? Up : Down}\n style=\"link\"\n label={\n showViewMore\n ? t(\"neetoMolecules.sessionEnvironment.viewLess\")\n : t(\"neetoMolecules.sessionEnvironment.viewMore\")\n }\n onClick={() => setShowViewMore(not)}\n />\n </div>\n );\n};\n\nSessionEnvironment.propTypes = {\n /*\n details can be an array of fields to be displayed.\n */\n details: PropTypes.array,\n /*\n handleCancel is a function that will be called when the cancel button is clicked.\n */\n handleCancel: PropTypes.func,\n /*\n handleSubmit is a function that will be called when the form is submitted.\n */\n handleSubmit: PropTypes.func,\n /*\n helpPopoverProps are the props that will be passed to the HelpPopover component.\n */\n helpPopoverProps: PropTypes.object,\n /*\n iconSize is a number that will be used to set the size of the icon.\n */\n iconSize: PropTypes.number,\n /*\n isLoading is a boolean that will be used to show a spinner when true.\n */\n isLoading: PropTypes.bool,\n /*\n moreDetails can be an array of fields to be displayed when the view more button is clicked.\n */\n moreDetails: PropTypes.array,\n /*\n The title to be displayed above the details.\n */\n title: PropTypes.string,\n};\n\nexport default memo(SessionEnvironment);\n"],"names":["BOOLEAN_VALUES_MAP","ENTER","ESCAPE","PHONE_NUMBER","INTEGER","ICONS_MAP","name","User","user","email","Email","phone_number","Phone","location","Location","timezone","Subdomain","chrome","Chrome","safari","Safari","firefox","Firefox","edge","Edge","ie","windows","Windows","mac_os","Apple","linux","Ubuntu","mobile","Mobile","desktop","Computer","getInputType","_ref","kind","getIcon","_ref2","iconSize","value","Icon","toLowerCase","replace","_jsx","size","Item","handleCancel","handleSubmit","item","showIcons","_useState","useState","isEditing","_useState2","_slicedToArray","setIsEditing","_useState3","_useState4","setValue","_useTranslation","useTranslation","t","containerRef","useHotkeys","mode","icon","_item$isEditable","isEditable","_item$extraClasses","extraClasses","_item$extraWrapperCla","extraWrapperClasses","id","fieldValueId","_item$custom","custom","error","label","_item$showCopyButton","showCopyButton","valueToRender","useMemo","isNil","toString","iconToRender","onSuccess","handleMetadataSubmit","fieldId","handleMetadataCancel","inputRef","InputComponent","PhoneNumberInput","Input","handleChange","event","target","useEffect","_jsxs","ref","className","classNames","children","isPresent","Tooltip","content","concat","Typography","style","_Fragment","TimeFormat","DateWeekTime","date","typographyProps","weight","onClick","CopyToClipboardButton","autoFocus","placeholder","what","type","onChange","Button","Close","tooltipProps","position","Check","DetailsBlock","details","_ref$handleCancel","noop","_ref$handleSubmit","helpPopoverProps","_ref$showIcons","_ref$title","title","textTransform","HelpPopover","_objectSpread","map","detail","index","_createElement","key","memo","SessionEnvironment","_ref$helpPopoverProps","_ref$iconSize","_ref$isLoading","isLoading","_ref$moreDetails","moreDetails","showViewMore","setShowViewMore","customViewMoreItems","filterBy","Spinner","removeBy","pluck","Up","Down","not"],"mappings":"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"}
|