@bigbinary/neeto-molecules 3.4.2 → 3.5.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/PhoneNumber.js +23 -316
- package/dist/PhoneNumber.js.map +1 -1
- package/dist/ProductEmbed.js +10 -7
- package/dist/ProductEmbed.js.map +1 -1
- package/dist/SessionEnvironment.js +376 -0
- package/dist/SessionEnvironment.js.map +1 -0
- package/dist/cjs/PhoneNumber.js +24 -343
- package/dist/cjs/PhoneNumber.js.map +1 -1
- package/dist/cjs/ProductEmbed.js +10 -7
- package/dist/cjs/ProductEmbed.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/SessionEnvironment.d.ts +166 -0
- package/types/StatusDropdown.d.ts +2 -2
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
2
|
+
import { useState, useMemo, useEffect, memo, createElement } from 'react';
|
|
3
|
+
import { isPresent, noop, filterBy, removeBy } from '@bigbinary/neeto-cist';
|
|
4
|
+
import Down from '@bigbinary/neeto-icons/Down';
|
|
5
|
+
import Up from '@bigbinary/neeto-icons/Up';
|
|
6
|
+
import Button from '@bigbinary/neetoui/Button';
|
|
7
|
+
import Spinner from '@bigbinary/neetoui/Spinner';
|
|
8
|
+
import { isNil, pluck, not } from 'ramda';
|
|
9
|
+
import { useTranslation } from 'react-i18next';
|
|
10
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
11
|
+
import Typography from '@bigbinary/neetoui/Typography';
|
|
12
|
+
import HelpPopover from './HelpPopover.js';
|
|
13
|
+
import classnames from 'classnames';
|
|
14
|
+
import useHotkeys from '@bigbinary/neeto-hotkeys';
|
|
15
|
+
import Check from '@bigbinary/neeto-icons/Check';
|
|
16
|
+
import Close from '@bigbinary/neeto-icons/Close';
|
|
17
|
+
import Input from '@bigbinary/neetoui/Input';
|
|
18
|
+
import Tooltip from '@bigbinary/neetoui/Tooltip';
|
|
19
|
+
import CopyToClipboardButton from './CopyToClipboardButton.js';
|
|
20
|
+
import '@babel/runtime/helpers/objectWithoutProperties';
|
|
21
|
+
import 'formik';
|
|
22
|
+
import { P as PhoneNumberInput } from './phone-number-cf3e77d7.js';
|
|
23
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
24
|
+
import 'i18next';
|
|
25
|
+
import 'libphonenumber-js/min';
|
|
26
|
+
import 'yup';
|
|
27
|
+
import TimeFormat from './TimeFormat.js';
|
|
28
|
+
import Computer from '@bigbinary/neeto-icons/Computer';
|
|
29
|
+
import Email from '@bigbinary/neeto-icons/Email';
|
|
30
|
+
import Location from '@bigbinary/neeto-icons/Location';
|
|
31
|
+
import Mobile from '@bigbinary/neeto-icons/Mobile';
|
|
32
|
+
import Phone from '@bigbinary/neeto-icons/Phone';
|
|
33
|
+
import Subdomain from '@bigbinary/neeto-icons/Subdomain';
|
|
34
|
+
import User from '@bigbinary/neeto-icons/User';
|
|
35
|
+
import Apple from '@bigbinary/neeto-icons/misc/Apple';
|
|
36
|
+
import Chrome from '@bigbinary/neeto-icons/misc/Chrome';
|
|
37
|
+
import Edge from '@bigbinary/neeto-icons/misc/Edge';
|
|
38
|
+
import Firefox from '@bigbinary/neeto-icons/misc/Firefox';
|
|
39
|
+
import Safari from '@bigbinary/neeto-icons/misc/Safari';
|
|
40
|
+
import Ubuntu from '@bigbinary/neeto-icons/misc/Ubuntu';
|
|
41
|
+
import Windows from '@bigbinary/neeto-icons/misc/Windows';
|
|
42
|
+
import { n } from './inject-css-c86de496.js';
|
|
43
|
+
import '@bigbinary/neeto-icons/Help';
|
|
44
|
+
import '@bigbinary/neetoui/Popover';
|
|
45
|
+
import '@bigbinary/neeto-commons-frontend/utils/general';
|
|
46
|
+
import '@bigbinary/neeto-icons/Copy';
|
|
47
|
+
import 'zustand/shallow';
|
|
48
|
+
import '@bigbinary/neetoui/Select';
|
|
49
|
+
import './_commonjsHelpers-1c8beb5f.js';
|
|
50
|
+
import '@tanstack/react-query';
|
|
51
|
+
import 'axios';
|
|
52
|
+
import '@bigbinary/neeto-commons-frontend/react-utils/withImmutableActions';
|
|
53
|
+
import 'zustand';
|
|
54
|
+
import 'zustand/middleware';
|
|
55
|
+
import './DateFormat.js';
|
|
56
|
+
import '@bigbinary/neeto-commons-frontend/react-utils/useTimer';
|
|
57
|
+
import '@bigbinary/neeto-commons-frontend/utils/datetime';
|
|
58
|
+
|
|
59
|
+
var BOOLEAN_VALUES_MAP = {
|
|
60
|
+
"true": "Yes",
|
|
61
|
+
"false": "No"
|
|
62
|
+
};
|
|
63
|
+
var ENTER = "enter";
|
|
64
|
+
var ESCAPE = "escape";
|
|
65
|
+
var PHONE_NUMBER = "phone_number";
|
|
66
|
+
var INTEGER = "integer";
|
|
67
|
+
var ICONS_MAP = {
|
|
68
|
+
name: User,
|
|
69
|
+
user: User,
|
|
70
|
+
email: Email,
|
|
71
|
+
phone_number: Phone,
|
|
72
|
+
location: Location,
|
|
73
|
+
timezone: Subdomain,
|
|
74
|
+
chrome: Chrome,
|
|
75
|
+
safari: Safari,
|
|
76
|
+
firefox: Firefox,
|
|
77
|
+
edge: Edge,
|
|
78
|
+
ie: Edge,
|
|
79
|
+
windows: Windows,
|
|
80
|
+
mac_os: Apple,
|
|
81
|
+
linux: Ubuntu,
|
|
82
|
+
mobile: Mobile,
|
|
83
|
+
desktop: Computer
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
var getInputType = function getInputType(_ref) {
|
|
87
|
+
var name = _ref.name,
|
|
88
|
+
kind = _ref.kind;
|
|
89
|
+
if (name === PHONE_NUMBER) return "tel";else if (kind === INTEGER) return "number";
|
|
90
|
+
return "text";
|
|
91
|
+
};
|
|
92
|
+
var getIcon = function getIcon(_ref2) {
|
|
93
|
+
var iconSize = _ref2.iconSize,
|
|
94
|
+
name = _ref2.name,
|
|
95
|
+
value = _ref2.value;
|
|
96
|
+
var Icon = name === "browser" || name === "os" ? ICONS_MAP[value === null || value === void 0 ? void 0 : value.toLowerCase().replace(" ", "_")] : ICONS_MAP[name];
|
|
97
|
+
return /*#__PURE__*/jsx(Icon, {
|
|
98
|
+
size: iconSize
|
|
99
|
+
});
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
var Item = function Item(_ref) {
|
|
103
|
+
var handleCancel = _ref.handleCancel,
|
|
104
|
+
handleSubmit = _ref.handleSubmit,
|
|
105
|
+
iconSize = _ref.iconSize,
|
|
106
|
+
item = _ref.item,
|
|
107
|
+
showIcons = _ref.showIcons;
|
|
108
|
+
var _useState = useState(item.isEditing),
|
|
109
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
110
|
+
isEditing = _useState2[0],
|
|
111
|
+
setIsEditing = _useState2[1];
|
|
112
|
+
var _useState3 = useState(item.value),
|
|
113
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
114
|
+
value = _useState4[0],
|
|
115
|
+
setValue = _useState4[1];
|
|
116
|
+
var _useTranslation = useTranslation(),
|
|
117
|
+
t = _useTranslation.t;
|
|
118
|
+
var containerRef = useHotkeys(ESCAPE, function () {
|
|
119
|
+
return handleCancel(name);
|
|
120
|
+
}, {
|
|
121
|
+
mode: "scoped"
|
|
122
|
+
});
|
|
123
|
+
var icon = item.icon,
|
|
124
|
+
_item$isEditable = item.isEditable,
|
|
125
|
+
isEditable = _item$isEditable === void 0 ? false : _item$isEditable,
|
|
126
|
+
_item$extraClasses = item.extraClasses,
|
|
127
|
+
extraClasses = _item$extraClasses === void 0 ? "" : _item$extraClasses,
|
|
128
|
+
_item$extraWrapperCla = item.extraWrapperClasses,
|
|
129
|
+
extraWrapperClasses = _item$extraWrapperCla === void 0 ? "" : _item$extraWrapperCla,
|
|
130
|
+
id = item.id,
|
|
131
|
+
fieldValueId = item.fieldValueId,
|
|
132
|
+
_item$custom = item.custom,
|
|
133
|
+
custom = _item$custom === void 0 ? false : _item$custom,
|
|
134
|
+
name = item.name,
|
|
135
|
+
kind = item.kind,
|
|
136
|
+
error = item.error,
|
|
137
|
+
label = item.label,
|
|
138
|
+
_item$showCopyButton = item.showCopyButton,
|
|
139
|
+
showCopyButton = _item$showCopyButton === void 0 ? false : _item$showCopyButton;
|
|
140
|
+
var valueToRender = useMemo(function () {
|
|
141
|
+
if (isNil(value)) return "-";
|
|
142
|
+
if (typeof value === "boolean") return BOOLEAN_VALUES_MAP[value.toString()];
|
|
143
|
+
return value;
|
|
144
|
+
}, [value]);
|
|
145
|
+
var iconToRender = useMemo(function () {
|
|
146
|
+
return icon || getIcon({
|
|
147
|
+
iconSize: iconSize,
|
|
148
|
+
name: name,
|
|
149
|
+
value: value
|
|
150
|
+
});
|
|
151
|
+
}, [icon, iconSize, name, value]);
|
|
152
|
+
var onSuccess = function onSuccess() {
|
|
153
|
+
return setIsEditing(false);
|
|
154
|
+
};
|
|
155
|
+
var handleMetadataSubmit = function handleMetadataSubmit() {
|
|
156
|
+
return handleSubmit({
|
|
157
|
+
fieldId: id,
|
|
158
|
+
fieldValueId: fieldValueId,
|
|
159
|
+
name: name,
|
|
160
|
+
value: value,
|
|
161
|
+
custom: custom,
|
|
162
|
+
onSuccess: onSuccess
|
|
163
|
+
});
|
|
164
|
+
};
|
|
165
|
+
var handleMetadataCancel = function handleMetadataCancel() {
|
|
166
|
+
setIsEditing(false);
|
|
167
|
+
setValue(item.value);
|
|
168
|
+
handleCancel(name);
|
|
169
|
+
};
|
|
170
|
+
var inputRef = useHotkeys(ENTER, handleMetadataSubmit, {
|
|
171
|
+
mode: "scoped"
|
|
172
|
+
});
|
|
173
|
+
var InputComponent = name === PHONE_NUMBER ? PhoneNumberInput : Input;
|
|
174
|
+
var handleChange = function handleChange(event) {
|
|
175
|
+
var value = name === PHONE_NUMBER ? event : event.target.value;
|
|
176
|
+
setValue(value);
|
|
177
|
+
};
|
|
178
|
+
useEffect(function () {
|
|
179
|
+
setValue(item.value);
|
|
180
|
+
}, [item]);
|
|
181
|
+
return /*#__PURE__*/jsxs("div", {
|
|
182
|
+
ref: containerRef,
|
|
183
|
+
className: classnames("mb-2 flex place-items-center gap-2 align-middle", extraWrapperClasses, {
|
|
184
|
+
"flex-wrap": name !== PHONE_NUMBER
|
|
185
|
+
}),
|
|
186
|
+
children: [showIcons && isPresent(iconToRender) ? /*#__PURE__*/jsx(Tooltip, {
|
|
187
|
+
content: label || t("neetoMolecules.sessionEnvironment.details.keys.".concat(name)),
|
|
188
|
+
children: /*#__PURE__*/jsx("div", {
|
|
189
|
+
className: "flex-shrink-0",
|
|
190
|
+
children: iconToRender
|
|
191
|
+
})
|
|
192
|
+
}) : /*#__PURE__*/jsx(Typography, {
|
|
193
|
+
className: "neeto-molecules-session-environment-editable-field whitespace-nowrap",
|
|
194
|
+
style: "h5",
|
|
195
|
+
children: label || t("neetoMolecules.sessionEnvironment.details.keys.".concat(name))
|
|
196
|
+
}), !isEditing ? /*#__PURE__*/jsxs(Fragment, {
|
|
197
|
+
children: [kind === "datetime" ? /*#__PURE__*/jsx(TimeFormat.DateWeekTime, {
|
|
198
|
+
date: value,
|
|
199
|
+
typographyProps: {
|
|
200
|
+
style: "body2",
|
|
201
|
+
className: "overflow-hidden truncate whitespace-normal break-all ".concat(extraClasses)
|
|
202
|
+
}
|
|
203
|
+
}) : /*#__PURE__*/jsx(Typography, {
|
|
204
|
+
className: "overflow-hidden truncate whitespace-normal break-all ".concat(extraClasses),
|
|
205
|
+
"data-testid": "metadata-value-".concat(name),
|
|
206
|
+
style: "body2",
|
|
207
|
+
weight: "normal",
|
|
208
|
+
onClick: function onClick() {
|
|
209
|
+
return isEditable && setIsEditing(true);
|
|
210
|
+
},
|
|
211
|
+
children: valueToRender
|
|
212
|
+
}), showCopyButton && /*#__PURE__*/jsx(CopyToClipboardButton, {
|
|
213
|
+
className: "flex-shrink-0",
|
|
214
|
+
size: "small",
|
|
215
|
+
style: "text",
|
|
216
|
+
value: valueToRender
|
|
217
|
+
})]
|
|
218
|
+
}) : /*#__PURE__*/jsxs("div", {
|
|
219
|
+
className: "neeto-molecules-session-environment-editable-field relative flex min-w-0 flex-grow items-center",
|
|
220
|
+
children: [/*#__PURE__*/jsx(InputComponent, {
|
|
221
|
+
error: error,
|
|
222
|
+
autoFocus: true,
|
|
223
|
+
"data-testid": "metadata-input-".concat(name),
|
|
224
|
+
placeholder: t("neetoMolecules.common.enter", {
|
|
225
|
+
what: label
|
|
226
|
+
}),
|
|
227
|
+
ref: inputRef,
|
|
228
|
+
type: getInputType({
|
|
229
|
+
name: name,
|
|
230
|
+
kind: kind
|
|
231
|
+
}),
|
|
232
|
+
value: value || "",
|
|
233
|
+
onChange: handleChange
|
|
234
|
+
}), /*#__PURE__*/jsxs("div", {
|
|
235
|
+
className: "neeto-molecules-session-environment-editable-field__actions absolute right-0 top-0 flex h-8 items-center pr-1",
|
|
236
|
+
children: [/*#__PURE__*/jsx(Button, {
|
|
237
|
+
icon: Close,
|
|
238
|
+
size: "small",
|
|
239
|
+
style: "text",
|
|
240
|
+
tooltipProps: {
|
|
241
|
+
content: t("neetoMolecules.common.actions.cancel"),
|
|
242
|
+
position: "top"
|
|
243
|
+
},
|
|
244
|
+
onClick: handleMetadataCancel
|
|
245
|
+
}), /*#__PURE__*/jsx(Button, {
|
|
246
|
+
"data-testid": "metadata-submit-".concat(name),
|
|
247
|
+
icon: Check,
|
|
248
|
+
size: "small",
|
|
249
|
+
style: "text",
|
|
250
|
+
tooltipProps: {
|
|
251
|
+
content: t("neetoMolecules.common.actions.save"),
|
|
252
|
+
position: "top"
|
|
253
|
+
},
|
|
254
|
+
onClick: handleMetadataSubmit
|
|
255
|
+
})]
|
|
256
|
+
})]
|
|
257
|
+
})]
|
|
258
|
+
});
|
|
259
|
+
};
|
|
260
|
+
|
|
261
|
+
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; }
|
|
262
|
+
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(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; }
|
|
263
|
+
var DetailsBlock = function DetailsBlock(_ref) {
|
|
264
|
+
var details = _ref.details,
|
|
265
|
+
_ref$handleCancel = _ref.handleCancel,
|
|
266
|
+
handleCancel = _ref$handleCancel === void 0 ? noop : _ref$handleCancel,
|
|
267
|
+
_ref$handleSubmit = _ref.handleSubmit,
|
|
268
|
+
handleSubmit = _ref$handleSubmit === void 0 ? noop : _ref$handleSubmit,
|
|
269
|
+
helpPopoverProps = _ref.helpPopoverProps,
|
|
270
|
+
iconSize = _ref.iconSize,
|
|
271
|
+
_ref$showIcons = _ref.showIcons,
|
|
272
|
+
showIcons = _ref$showIcons === void 0 ? false : _ref$showIcons,
|
|
273
|
+
_ref$title = _ref.title,
|
|
274
|
+
title = _ref$title === void 0 ? "" : _ref$title;
|
|
275
|
+
return /*#__PURE__*/jsxs("div", {
|
|
276
|
+
className: "mb-4",
|
|
277
|
+
children: [title && /*#__PURE__*/jsxs("div", {
|
|
278
|
+
className: "mb-2 flex",
|
|
279
|
+
children: [/*#__PURE__*/jsx(Typography, {
|
|
280
|
+
className: "mr-2",
|
|
281
|
+
style: "h4",
|
|
282
|
+
textTransform: "uppercase",
|
|
283
|
+
weight: "bold",
|
|
284
|
+
children: title
|
|
285
|
+
}), isPresent(helpPopoverProps) && /*#__PURE__*/jsx(HelpPopover, _objectSpread({}, helpPopoverProps))]
|
|
286
|
+
}), details.map(function (detail, index) {
|
|
287
|
+
return /*#__PURE__*/createElement(Item, {
|
|
288
|
+
handleCancel: handleCancel,
|
|
289
|
+
handleSubmit: handleSubmit,
|
|
290
|
+
iconSize: iconSize,
|
|
291
|
+
showIcons: showIcons,
|
|
292
|
+
item: detail,
|
|
293
|
+
key: index
|
|
294
|
+
});
|
|
295
|
+
})]
|
|
296
|
+
});
|
|
297
|
+
};
|
|
298
|
+
var DetailsBlock$1 = /*#__PURE__*/memo(DetailsBlock);
|
|
299
|
+
|
|
300
|
+
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}";
|
|
301
|
+
n(css,{});
|
|
302
|
+
|
|
303
|
+
var SessionEnvironment = function SessionEnvironment(_ref) {
|
|
304
|
+
var details = _ref.details,
|
|
305
|
+
_ref$handleCancel = _ref.handleCancel,
|
|
306
|
+
handleCancel = _ref$handleCancel === void 0 ? noop : _ref$handleCancel,
|
|
307
|
+
_ref$handleSubmit = _ref.handleSubmit,
|
|
308
|
+
handleSubmit = _ref$handleSubmit === void 0 ? noop : _ref$handleSubmit,
|
|
309
|
+
_ref$helpPopoverProps = _ref.helpPopoverProps,
|
|
310
|
+
helpPopoverProps = _ref$helpPopoverProps === void 0 ? {} : _ref$helpPopoverProps,
|
|
311
|
+
_ref$iconSize = _ref.iconSize,
|
|
312
|
+
iconSize = _ref$iconSize === void 0 ? 20 : _ref$iconSize,
|
|
313
|
+
_ref$isLoading = _ref.isLoading,
|
|
314
|
+
isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
|
|
315
|
+
_ref$moreDetails = _ref.moreDetails,
|
|
316
|
+
moreDetails = _ref$moreDetails === void 0 ? [] : _ref$moreDetails,
|
|
317
|
+
_ref$title = _ref.title,
|
|
318
|
+
title = _ref$title === void 0 ? "" : _ref$title;
|
|
319
|
+
var _useState = useState(false),
|
|
320
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
321
|
+
showViewMore = _useState2[0],
|
|
322
|
+
setShowViewMore = _useState2[1];
|
|
323
|
+
var customViewMoreItems = useMemo(function () {
|
|
324
|
+
return filterBy({
|
|
325
|
+
kind: "custom"
|
|
326
|
+
}, moreDetails);
|
|
327
|
+
}, [moreDetails]);
|
|
328
|
+
var _useTranslation = useTranslation(),
|
|
329
|
+
t = _useTranslation.t;
|
|
330
|
+
if (isLoading) {
|
|
331
|
+
return /*#__PURE__*/jsx("div", {
|
|
332
|
+
className: "flex h-full w-full items-center justify-center",
|
|
333
|
+
children: /*#__PURE__*/jsx(Spinner, {})
|
|
334
|
+
});
|
|
335
|
+
}
|
|
336
|
+
return /*#__PURE__*/jsxs("div", {
|
|
337
|
+
className: "w-full",
|
|
338
|
+
children: [/*#__PURE__*/jsx(DetailsBlock$1, {
|
|
339
|
+
details: details,
|
|
340
|
+
handleCancel: handleCancel,
|
|
341
|
+
handleSubmit: handleSubmit,
|
|
342
|
+
helpPopoverProps: helpPopoverProps,
|
|
343
|
+
iconSize: iconSize,
|
|
344
|
+
title: title,
|
|
345
|
+
showIcons: true
|
|
346
|
+
}), showViewMore && /*#__PURE__*/jsxs(Fragment, {
|
|
347
|
+
children: [/*#__PURE__*/jsx("hr", {
|
|
348
|
+
className: "m-4"
|
|
349
|
+
}), /*#__PURE__*/jsx(DetailsBlock$1, {
|
|
350
|
+
handleCancel: handleCancel,
|
|
351
|
+
handleSubmit: handleSubmit,
|
|
352
|
+
helpPopoverProps: helpPopoverProps,
|
|
353
|
+
iconSize: iconSize,
|
|
354
|
+
details: removeBy({
|
|
355
|
+
kind: "custom"
|
|
356
|
+
}, moreDetails)
|
|
357
|
+
}), isPresent(customViewMoreItems) && /*#__PURE__*/jsxs(Fragment, {
|
|
358
|
+
children: [/*#__PURE__*/jsx("hr", {
|
|
359
|
+
className: "m-4"
|
|
360
|
+
}), pluck("value", customViewMoreItems)]
|
|
361
|
+
})]
|
|
362
|
+
}), /*#__PURE__*/jsx(Button, {
|
|
363
|
+
className: "mb-4",
|
|
364
|
+
icon: showViewMore ? Up : Down,
|
|
365
|
+
style: "link",
|
|
366
|
+
label: showViewMore ? t("neetoMolecules.sessionEnvironment.viewLess") : t("neetoMolecules.sessionEnvironment.viewMore"),
|
|
367
|
+
onClick: function onClick() {
|
|
368
|
+
return setShowViewMore(not);
|
|
369
|
+
}
|
|
370
|
+
})]
|
|
371
|
+
});
|
|
372
|
+
};
|
|
373
|
+
var index = /*#__PURE__*/memo(SessionEnvironment);
|
|
374
|
+
|
|
375
|
+
export { index as default };
|
|
376
|
+
//# 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBO,IAAMA,kBAAkB,GAAG;AAAE,EAAA,MAAA,EAAM,KAAK;EAAE,OAAO,EAAA,IAAA;AAAK,CAAC,CAAA;AACvD,IAAMC,KAAK,GAAG,OAAO,CAAA;AACrB,IAAMC,MAAM,GAAG,QAAQ,CAAA;AACvB,IAAMC,YAAY,GAAG,cAAc,CAAA;AACnC,IAAMC,OAAO,GAAG,SAAS,CAAA;AACzB,IAAMC,SAAS,GAAG;AACvBC,EAAAA,IAAI,EAAEC,IAAI;AACVC,EAAAA,IAAI,EAAED,IAAI;AACVE,EAAAA,KAAK,EAAEC,KAAK;AACZC,EAAAA,YAAY,EAAEC,KAAK;AACnBC,EAAAA,QAAQ,EAAEC,QAAQ;AAClBC,EAAAA,QAAQ,EAAEC,SAAS;AACnBC,EAAAA,MAAM,EAAEC,MAAM;AACdC,EAAAA,MAAM,EAAEC,MAAM;AACdC,EAAAA,OAAO,EAAEC,OAAO;AAChBC,EAAAA,IAAI,EAAEC,IAAI;AACVC,EAAAA,EAAE,EAAED,IAAI;AACRE,EAAAA,OAAO,EAAEC,OAAO;AAChBC,EAAAA,MAAM,EAAEC,KAAK;AACbC,EAAAA,KAAK,EAAEC,MAAM;AACbC,EAAAA,MAAM,EAAEC,MAAM;AACdC,EAAAA,OAAO,EAAEC,QAAAA;AACX,CAAC;;ACvCM,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAAC,IAAA,EAAuB;AAAA,EAAA,IAAjB/B,IAAI,GAAA+B,IAAA,CAAJ/B,IAAI;IAAEgC,IAAI,GAAAD,IAAA,CAAJC,IAAI,CAAA;AACvC,EAAA,IAAIhC,IAAI,KAAKH,YAAY,EAAE,OAAO,KAAK,CAAC,KACnC,IAAImC,IAAI,KAAKlC,OAAO,EAAE,OAAO,QAAQ,CAAA;AAE1C,EAAA,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAEM,IAAMmC,OAAO,GAAG,SAAVA,OAAOA,CAAAC,KAAA,EAAkC;AAAA,EAAA,IAA5BC,QAAQ,GAAAD,KAAA,CAARC,QAAQ;IAAEnC,IAAI,GAAAkC,KAAA,CAAJlC,IAAI;IAAEoC,KAAK,GAAAF,KAAA,CAALE,KAAK,CAAA;AAC7C,EAAA,IAAMC,IAAI,GACRrC,IAAI,KAAK,SAAS,IAAIA,IAAI,KAAK,IAAI,GAC/BD,SAAS,CAACqC,KAAK,aAALA,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CAAEE,WAAW,EAAE,CAACC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GACjDxC,SAAS,CAACC,IAAI,CAAC,CAAA;EAErB,oBAAOwC,GAAA,CAACH,IAAI,EAAA;AAACI,IAAAA,IAAI,EAAEN,QAAAA;AAAS,GAAE,CAAC,CAAA;AACjC,CAAC;;ACCD,IAAMO,IAAI,GAAG,SAAPA,IAAIA,CAAAX,IAAA,EAAkE;AAAA,EAAA,IAA5DY,YAAY,GAAAZ,IAAA,CAAZY,YAAY;IAAEC,YAAY,GAAAb,IAAA,CAAZa,YAAY;IAAET,QAAQ,GAAAJ,IAAA,CAARI,QAAQ;IAAEU,IAAI,GAAAd,IAAA,CAAJc,IAAI;IAAEC,SAAS,GAAAf,IAAA,CAATe,SAAS,CAAA;AACnE,EAAA,IAAAC,SAAA,GAAkCC,QAAQ,CAACH,IAAI,CAACI,SAAS,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAJ,SAAA,EAAA,CAAA,CAAA;AAAnDE,IAAAA,SAAS,GAAAC,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,YAAY,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAC9B,EAAA,IAAAG,UAAA,GAA0BL,QAAQ,CAACH,IAAI,CAACT,KAAK,CAAC;IAAAkB,UAAA,GAAAH,cAAA,CAAAE,UAAA,EAAA,CAAA,CAAA;AAAvCjB,IAAAA,KAAK,GAAAkB,UAAA,CAAA,CAAA,CAAA;AAAEC,IAAAA,QAAQ,GAAAD,UAAA,CAAA,CAAA,CAAA,CAAA;AAEtB,EAAA,IAAAE,eAAA,GAAcC,cAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC,CAAA;AAET,EAAA,IAAMC,YAAY,GAAGC,UAAU,CAAChE,MAAM,EAAE,YAAA;IAAA,OAAM+C,YAAY,CAAC3C,IAAI,CAAC,CAAA;GAAE,EAAA;AAChE6D,IAAAA,IAAI,EAAE,QAAA;AACR,GAAC,CAAC,CAAA;AAEF,EAAA,IACEC,IAAI,GAYFjB,IAAI,CAZNiB,IAAI;IAAAC,gBAAA,GAYFlB,IAAI,CAXNmB,UAAU;AAAVA,IAAAA,UAAU,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,gBAAA;IAAAE,kBAAA,GAWhBpB,IAAI,CAVNqB,YAAY;AAAZA,IAAAA,YAAY,GAAAD,kBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,kBAAA;IAAAE,qBAAA,GAUftB,IAAI,CATNuB,mBAAmB;AAAnBA,IAAAA,mBAAmB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,qBAAA;IACxBE,EAAE,GAQAxB,IAAI,CARNwB,EAAE;IACFC,YAAY,GAOVzB,IAAI,CAPNyB,YAAY;IAAAC,YAAA,GAOV1B,IAAI,CANN2B,MAAM;AAANA,IAAAA,MAAM,GAAAD,YAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,YAAA;IACdvE,IAAI,GAKF6C,IAAI,CALN7C,IAAI;IACJgC,IAAI,GAIFa,IAAI,CAJNb,IAAI;IACJyC,KAAK,GAGH5B,IAAI,CAHN4B,KAAK;IACLC,KAAK,GAEH7B,IAAI,CAFN6B,KAAK;IAAAC,oBAAA,GAEH9B,IAAI,CADN+B,cAAc;AAAdA,IAAAA,cAAc,GAAAD,oBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,oBAAA,CAAA;AAGxB,EAAA,IAAME,aAAa,GAAGC,OAAO,CAAC,YAAM;AAClC,IAAA,IAAIC,KAAK,CAAC3C,KAAK,CAAC,EAAE,OAAO,GAAG,CAAA;AAE5B,IAAA,IAAI,OAAOA,KAAK,KAAK,SAAS,EAAE,OAAO1C,kBAAkB,CAAC0C,KAAK,CAAC4C,QAAQ,EAAE,CAAC,CAAA;AAE3E,IAAA,OAAO5C,KAAK,CAAA;AACd,GAAC,EAAE,CAACA,KAAK,CAAC,CAAC,CAAA;EAEX,IAAM6C,YAAY,GAAGH,OAAO,CAC1B,YAAA;IAAA,OAAMhB,IAAI,IAAI7B,OAAO,CAAC;AAAEE,MAAAA,QAAQ,EAARA,QAAQ;AAAEnC,MAAAA,IAAI,EAAJA,IAAI;AAAEoC,MAAAA,KAAK,EAALA,KAAAA;AAAM,KAAC,CAAC,CAAA;GAChD,EAAA,CAAC0B,IAAI,EAAE3B,QAAQ,EAAEnC,IAAI,EAAEoC,KAAK,CAC9B,CAAC,CAAA;AAED,EAAA,IAAM8C,SAAS,GAAG,SAAZA,SAASA,GAAA;IAAA,OAAS9B,YAAY,CAAC,KAAK,CAAC,CAAA;AAAA,GAAA,CAAA;AAE3C,EAAA,IAAM+B,oBAAoB,GAAG,SAAvBA,oBAAoBA,GAAA;AAAA,IAAA,OACxBvC,YAAY,CAAC;AAAEwC,MAAAA,OAAO,EAAEf,EAAE;AAAEC,MAAAA,YAAY,EAAZA,YAAY;AAAEtE,MAAAA,IAAI,EAAJA,IAAI;AAAEoC,MAAAA,KAAK,EAALA,KAAK;AAAEoC,MAAAA,MAAM,EAANA,MAAM;AAAEU,MAAAA,SAAS,EAATA,SAAAA;AAAU,KAAC,CAAC,CAAA;AAAA,GAAA,CAAA;AAE7E,EAAA,IAAMG,oBAAoB,GAAG,SAAvBA,oBAAoBA,GAAS;IACjCjC,YAAY,CAAC,KAAK,CAAC,CAAA;AACnBG,IAAAA,QAAQ,CAACV,IAAI,CAACT,KAAK,CAAC,CAAA;IACpBO,YAAY,CAAC3C,IAAI,CAAC,CAAA;GACnB,CAAA;AAED,EAAA,IAAMsF,QAAQ,GAAG1B,UAAU,CAACjE,KAAK,EAAEwF,oBAAoB,EAAE;AACvDtB,IAAAA,IAAI,EAAE,QAAA;AACR,GAAC,CAAC,CAAA;EAEF,IAAM0B,cAAc,GAAGvF,IAAI,KAAKH,YAAY,GAAG2F,gBAAgB,GAAGC,KAAK,CAAA;AAEvE,EAAA,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAGC,KAAK,EAAI;AAC5B,IAAA,IAAMvD,KAAK,GAAGpC,IAAI,KAAKH,YAAY,GAAG8F,KAAK,GAAGA,KAAK,CAACC,MAAM,CAACxD,KAAK,CAAA;IAChEmB,QAAQ,CAACnB,KAAK,CAAC,CAAA;GAChB,CAAA;AAEDyD,EAAAA,SAAS,CAAC,YAAM;AACdtC,IAAAA,QAAQ,CAACV,IAAI,CAACT,KAAK,CAAC,CAAA;AACtB,GAAC,EAAE,CAACS,IAAI,CAAC,CAAC,CAAA;AAEV,EAAA,oBACEiD,IAAA,CAAA,KAAA,EAAA;AACEC,IAAAA,GAAG,EAAEpC,YAAa;AAClBqC,IAAAA,SAAS,EAAEC,UAAU,CACnB,iDAAiD,EACjD7B,mBAAmB,EACnB;MAAE,WAAW,EAAEpE,IAAI,KAAKH,YAAAA;AAAa,KACvC,CAAE;IAAAqG,QAAA,EAAA,CAEDpD,SAAS,IAAIqD,SAAS,CAAClB,YAAY,CAAC,gBACnCzC,GAAA,CAAC4D,OAAO,EAAA;MACNC,OAAO,EACL3B,KAAK,IAAIhB,CAAC,mDAAA4C,MAAA,CAAmDtG,IAAI,CAAE,CACpE;AAAAkG,MAAAA,QAAA,eAED1D,GAAA,CAAA,KAAA,EAAA;AAAKwD,QAAAA,SAAS,EAAC,eAAe;AAAAE,QAAAA,QAAA,EAAEjB,YAAAA;OAAkB,CAAA;AAAC,KAC5C,CAAC,gBAEVzC,GAAA,CAAC+D,UAAU,EAAA;AACTP,MAAAA,SAAS,EAAC,sEAAsE;AAChFQ,MAAAA,KAAK,EAAC,IAAI;MAAAN,QAAA,EAETxB,KAAK,IAAIhB,CAAC,mDAAA4C,MAAA,CAAmDtG,IAAI,CAAE,CAAA;AAAC,KAC3D,CACb,EACA,CAACiD,SAAS,gBACT6C,IAAA,CAAAW,QAAA,EAAA;MAAAP,QAAA,EAAA,CACGlE,IAAI,KAAK,UAAU,gBAClBQ,GAAA,CAACkE,UAAU,CAACC,YAAY,EAAA;AACtBC,QAAAA,IAAI,EAAExE,KAAM;AACZyE,QAAAA,eAAe,EAAE;AACfL,UAAAA,KAAK,EAAE,OAAO;UACdR,SAAS,EAAA,uDAAA,CAAAM,MAAA,CAA0DpC,YAAY,CAAA;AACjF,SAAA;AAAE,OACH,CAAC,gBAEF1B,GAAA,CAAC+D,UAAU,EAAA;AACTP,QAAAA,SAAS,EAAAM,uDAAAA,CAAAA,MAAA,CAA0DpC,YAAY,CAAG;QAClF,aAAAoC,EAAAA,iBAAAA,CAAAA,MAAA,CAA+BtG,IAAI,CAAG;AACtCwG,QAAAA,KAAK,EAAC,OAAO;AACbM,QAAAA,MAAM,EAAC,QAAQ;QACfC,OAAO,EAAE,SAAAA,OAAA,GAAA;AAAA,UAAA,OAAM/C,UAAU,IAAIZ,YAAY,CAAC,IAAI,CAAC,CAAA;SAAC;AAAA8C,QAAAA,QAAA,EAE/CrB,aAAAA;AAAa,OACJ,CACb,EACAD,cAAc,iBACbpC,GAAA,CAACwE,qBAAqB,EAAA;AACpBhB,QAAAA,SAAS,EAAC,eAAe;AACzBvD,QAAAA,IAAI,EAAC,OAAO;AACZ+D,QAAAA,KAAK,EAAC,MAAM;AACZpE,QAAAA,KAAK,EAAEyC,aAAAA;AAAc,OACtB,CACF,CAAA;KACD,CAAC,gBAEHiB,IAAA,CAAA,KAAA,EAAA;AAAKE,MAAAA,SAAS,EAAC,iGAAiG;MAAAE,QAAA,EAAA,cAC9G1D,GAAA,CAAC+C,cAAc,EAAA;AACPd,QAAAA,KAAK,EAALA,KAAK;QACXwC,SAAS,EAAA,IAAA;QACT,aAAAX,EAAAA,iBAAAA,CAAAA,MAAA,CAA+BtG,IAAI,CAAG;AACtCkH,QAAAA,WAAW,EAAExD,CAAC,CAAC,6BAA6B,EAAE;AAAEyD,UAAAA,IAAI,EAAEzC,KAAAA;AAAM,SAAC,CAAE;AAC/DqB,QAAAA,GAAG,EAAET,QAAS;QACd8B,IAAI,EAAEtF,YAAY,CAAC;AAAE9B,UAAAA,IAAI,EAAJA,IAAI;AAAEgC,UAAAA,IAAI,EAAJA,IAAAA;AAAK,SAAC,CAAE;QACnCI,KAAK,EAAEA,KAAK,IAAI,EAAG;AACnBiF,QAAAA,QAAQ,EAAE3B,YAAAA;OACX,CAAC,eACFI,IAAA,CAAA,KAAA,EAAA;AAAKE,QAAAA,SAAS,EAAC,+GAA+G;QAAAE,QAAA,EAAA,cAC5H1D,GAAA,CAAC8E,MAAM,EAAA;AACLxD,UAAAA,IAAI,EAAEyD,KAAM;AACZ9E,UAAAA,IAAI,EAAC,OAAO;AACZ+D,UAAAA,KAAK,EAAC,MAAM;AACZgB,UAAAA,YAAY,EAAE;AACZnB,YAAAA,OAAO,EAAE3C,CAAC,CAAC,sCAAsC,CAAC;AAClD+D,YAAAA,QAAQ,EAAE,KAAA;WACV;AACFV,UAAAA,OAAO,EAAE1B,oBAAAA;AAAqB,SAC/B,CAAC,eACF7C,GAAA,CAAC8E,MAAM,EAAA;UACL,aAAAhB,EAAAA,kBAAAA,CAAAA,MAAA,CAAgCtG,IAAI,CAAG;AACvC8D,UAAAA,IAAI,EAAE4D,KAAM;AACZjF,UAAAA,IAAI,EAAC,OAAO;AACZ+D,UAAAA,KAAK,EAAC,MAAM;AACZgB,UAAAA,YAAY,EAAE;AACZnB,YAAAA,OAAO,EAAE3C,CAAC,CAAC,oCAAoC,CAAC;AAChD+D,YAAAA,QAAQ,EAAE,KAAA;WACV;AACFV,UAAAA,OAAO,EAAE5B,oBAAAA;AAAqB,SAC/B,CAAC,CAAA;AAAA,OACC,CAAC,CAAA;AAAA,KACH,CACN,CAAA;AAAA,GACE,CAAC,CAAA;AAEV,CAAC;;;;ACtKD,IAAMwC,YAAY,GAAG,SAAfA,YAAYA,CAAA5F,IAAA,EAAA;AAAA,EAAA,IAChB6F,OAAO,GAAA7F,IAAA,CAAP6F,OAAO;IAAAC,iBAAA,GAAA9F,IAAA,CACPY,YAAY;AAAZA,IAAAA,YAAY,GAAAkF,iBAAA,KAAGC,KAAAA,CAAAA,GAAAA,IAAI,GAAAD,iBAAA;IAAAE,iBAAA,GAAAhG,IAAA,CACnBa,YAAY;AAAZA,IAAAA,YAAY,GAAAmF,iBAAA,KAAGD,KAAAA,CAAAA,GAAAA,IAAI,GAAAC,iBAAA;IACnBC,gBAAgB,GAAAjG,IAAA,CAAhBiG,gBAAgB;IAChB7F,QAAQ,GAAAJ,IAAA,CAARI,QAAQ;IAAA8F,cAAA,GAAAlG,IAAA,CACRe,SAAS;AAATA,IAAAA,SAAS,GAAAmF,cAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,cAAA;IAAAC,UAAA,GAAAnG,IAAA,CACjBoG,KAAK;AAALA,IAAAA,KAAK,GAAAD,UAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,UAAA,CAAA;AAAA,EAAA,oBAEVpC,IAAA,CAAA,KAAA,EAAA;AAAKE,IAAAA,SAAS,EAAC,MAAM;IAAAE,QAAA,EAAA,CAClBiC,KAAK,iBACJrC,IAAA,CAAA,KAAA,EAAA;AAAKE,MAAAA,SAAS,EAAC,WAAW;MAAAE,QAAA,EAAA,cACxB1D,GAAA,CAAC+D,UAAU,EAAA;AACTP,QAAAA,SAAS,EAAC,MAAM;AAChBQ,QAAAA,KAAK,EAAC,IAAI;AACV4B,QAAAA,aAAa,EAAC,WAAW;AACzBtB,QAAAA,MAAM,EAAC,MAAM;AAAAZ,QAAAA,QAAA,EAEZiC,KAAAA;AAAK,OACI,CAAC,EACZhC,SAAS,CAAC6B,gBAAgB,CAAC,iBAAIxF,GAAA,CAAC6F,WAAW,EAAAC,aAAA,CAAKN,EAAAA,EAAAA,gBAAgB,CAAG,CAAC,CAAA;KAClE,CACN,EACAJ,OAAO,CAACW,GAAG,CAAC,UAACC,MAAM,EAAEC,KAAK,EAAA;MAAA,oBACzBC,aAAA,CAAChG,IAAI,EAAA;AACGC,QAAAA,YAAY,EAAZA,YAAY;AAAEC,QAAAA,YAAY,EAAZA,YAAY;AAAET,QAAAA,QAAQ,EAARA,QAAQ;AAAEW,QAAAA,SAAS,EAATA,SAAS;AACrDD,QAAAA,IAAI,EAAE2F,MAAO;AACbG,QAAAA,GAAG,EAAEF,KAAAA;AAAM,OACZ,CAAC,CAAA;AAAA,KACH,CAAC,CAAA;AAAA,GACC,CAAC,CAAA;AAAA,CACP,CAAA;AAED,qBAAeG,aAAAA,IAAI,CAACjB,YAAY,CAAC;;;;;AC9BjC,IAAMkB,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAA9G,IAAA,EASlB;AAAA,EAAA,IARJ6F,OAAO,GAAA7F,IAAA,CAAP6F,OAAO;IAAAC,iBAAA,GAAA9F,IAAA,CACPY,YAAY;AAAZA,IAAAA,YAAY,GAAAkF,iBAAA,KAAGC,KAAAA,CAAAA,GAAAA,IAAI,GAAAD,iBAAA;IAAAE,iBAAA,GAAAhG,IAAA,CACnBa,YAAY;AAAZA,IAAAA,YAAY,GAAAmF,iBAAA,KAAGD,KAAAA,CAAAA,GAAAA,IAAI,GAAAC,iBAAA;IAAAe,qBAAA,GAAA/G,IAAA,CACnBiG,gBAAgB;AAAhBA,IAAAA,gBAAgB,GAAAc,qBAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,qBAAA;IAAAC,aAAA,GAAAhH,IAAA,CACrBI,QAAQ;AAARA,IAAAA,QAAQ,GAAA4G,aAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,aAAA;IAAAC,cAAA,GAAAjH,IAAA,CACbkH,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,cAAA;IAAAE,gBAAA,GAAAnH,IAAA,CACjBoH,WAAW;AAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,gBAAA;IAAAhB,UAAA,GAAAnG,IAAA,CAChBoG,KAAK;AAALA,IAAAA,KAAK,GAAAD,UAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,UAAA,CAAA;AAEV,EAAA,IAAAnF,SAAA,GAAwCC,QAAQ,CAAC,KAAK,CAAC;IAAAE,UAAA,GAAAC,cAAA,CAAAJ,SAAA,EAAA,CAAA,CAAA;AAAhDqG,IAAAA,YAAY,GAAAlG,UAAA,CAAA,CAAA,CAAA;AAAEmG,IAAAA,eAAe,GAAAnG,UAAA,CAAA,CAAA,CAAA,CAAA;EAEpC,IAAMoG,mBAAmB,GAAGxE,OAAO,CACjC,YAAA;AAAA,IAAA,OAAMyE,QAAQ,CAAC;AAAEvH,MAAAA,IAAI,EAAE,QAAA;KAAU,EAAEmH,WAAW,CAAC,CAAA;GAC/C,EAAA,CAACA,WAAW,CACd,CAAC,CAAA;AAED,EAAA,IAAA3F,eAAA,GAAcC,cAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC,CAAA;AAET,EAAA,IAAIuF,SAAS,EAAE;AACb,IAAA,oBACEzG,GAAA,CAAA,KAAA,EAAA;AAAKwD,MAAAA,SAAS,EAAC,gDAAgD;AAAAE,MAAAA,QAAA,eAC7D1D,GAAA,CAACgH,OAAO,EAAE,EAAA,CAAA;AAAC,KACR,CAAC,CAAA;AAEV,GAAA;AAEA,EAAA,oBACE1D,IAAA,CAAA,KAAA,EAAA;AAAKE,IAAAA,SAAS,EAAC,QAAQ;IAAAE,QAAA,EAAA,cACrB1D,GAAA,CAACmF,cAAY,EAAA;AAETC,MAAAA,OAAO,EAAPA,OAAO;AACPjF,MAAAA,YAAY,EAAZA,YAAY;AACZC,MAAAA,YAAY,EAAZA,YAAY;AACZoF,MAAAA,gBAAgB,EAAhBA,gBAAgB;AAChB7F,MAAAA,QAAQ,EAARA,QAAQ;AACRgG,MAAAA,KAAK,EAALA,KAAK;MAEPrF,SAAS,EAAA,IAAA;AAAA,KACV,CAAC,EACDsG,YAAY,iBACXtD,IAAA,CAAAW,QAAA,EAAA;AAAAP,MAAAA,QAAA,gBACE1D,GAAA,CAAA,IAAA,EAAA;AAAIwD,QAAAA,SAAS,EAAC,KAAA;AAAK,OAAE,CAAC,eACtBxD,GAAA,CAACmF,cAAY,EAAA;AAEThF,QAAAA,YAAY,EAAZA,YAAY;AACZC,QAAAA,YAAY,EAAZA,YAAY;AACZoF,QAAAA,gBAAgB,EAAhBA,gBAAgB;AAChB7F,QAAAA,QAAQ,EAARA,QAAQ;QAEVyF,OAAO,EAAE6B,QAAQ,CAAC;AAAEzH,UAAAA,IAAI,EAAE,QAAA;AAAS,SAAC,EAAEmH,WAAW,CAAA;OAClD,CAAC,EACDhD,SAAS,CAACmD,mBAAmB,CAAC,iBAC7BxD,IAAA,CAAAW,QAAA,EAAA;AAAAP,QAAAA,QAAA,gBACE1D,GAAA,CAAA,IAAA,EAAA;AAAIwD,UAAAA,SAAS,EAAC,KAAA;AAAK,SAAE,CAAC,EACrB0D,KAAK,CAAC,OAAO,EAAEJ,mBAAmB,CAAC,CAAA;AAAA,OACpC,CACH,CAAA;AAAA,KACD,CACH,eACD9G,GAAA,CAAC8E,MAAM,EAAA;AACLtB,MAAAA,SAAS,EAAC,MAAM;AAChBlC,MAAAA,IAAI,EAAEsF,YAAY,GAAGO,EAAE,GAAGC,IAAK;AAC/BpD,MAAAA,KAAK,EAAC,MAAM;MACZ9B,KAAK,EACH0E,YAAY,GACR1F,CAAC,CAAC,4CAA4C,CAAC,GAC/CA,CAAC,CAAC,4CAA4C,CACnD;MACDqD,OAAO,EAAE,SAAAA,OAAA,GAAA;QAAA,OAAMsC,eAAe,CAACQ,GAAG,CAAC,CAAA;AAAA,OAAA;AAAC,KACrC,CAAC,CAAA;AAAA,GACC,CAAC,CAAA;AAEV,CAAC,CAAA;AAqCD,YAAejB,aAAAA,IAAI,CAACC,kBAAkB,CAAC;;;;"}
|