@bigbinary/neeto-molecules 5.1.23 → 5.1.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/PhoneNumber.js +2 -2
- package/dist/SessionEnvironment.js +1 -1
- package/dist/arrow-left-B-s28MD1.js +18 -0
- package/dist/arrow-left-B-s28MD1.js.map +1 -0
- package/dist/cjs/PhoneNumber.js +1 -1
- package/dist/cjs/SessionEnvironment.js +1 -1
- package/dist/cjs/arrow-left-gtCwH31u.js +20 -0
- package/dist/cjs/arrow-left-gtCwH31u.js.map +1 -0
- package/dist/cjs/{phone-number-DIIlhFGA.js → phone-number-D8DlSqHJ.js} +6 -5
- package/dist/cjs/phone-number-D8DlSqHJ.js.map +1 -0
- package/dist/cjs/{phone-number-Bza7WGZm.js → phone-number-DMH57syY.js} +6 -5
- package/dist/cjs/phone-number-DMH57syY.js.map +1 -0
- package/dist/cjs/v2/ImageWithFallback.js +51 -0
- package/dist/cjs/v2/ImageWithFallback.js.map +1 -0
- package/dist/cjs/v2/PhoneNumber.js +1 -1
- package/dist/cjs/v2/ProductEmbed.js +4 -17
- package/dist/cjs/v2/ProductEmbed.js.map +1 -1
- package/dist/cjs/v2/SessionEnvironment.js +1 -1
- package/dist/cjs/v2/ShareRecordingPane.js +305 -0
- package/dist/cjs/v2/ShareRecordingPane.js.map +1 -0
- package/dist/cjs/v2/ShareViaEmail.js +387 -0
- package/dist/cjs/v2/ShareViaEmail.js.map +1 -0
- package/dist/cjs/v2/StatusDropdown.js +161 -0
- package/dist/cjs/v2/StatusDropdown.js.map +1 -0
- package/dist/cjs/v2/SubscriptionNotificationsContainer.js +72 -0
- package/dist/cjs/v2/SubscriptionNotificationsContainer.js.map +1 -0
- package/dist/cjs/v2/SubscriptionUpgradeRequestModal.js +90 -0
- package/dist/cjs/v2/SubscriptionUpgradeRequestModal.js.map +1 -0
- package/dist/cjs/v2/SuffixedInput.js +130 -0
- package/dist/cjs/v2/SuffixedInput.js.map +1 -0
- package/dist/cjs/v2/TimezoneMismatchModal.js +136 -0
- package/dist/cjs/v2/TimezoneMismatchModal.js.map +1 -0
- package/dist/cjs/v2/VersionHistory.js +210 -0
- package/dist/cjs/v2/VersionHistory.js.map +1 -0
- package/dist/{phone-number-B3OcwVZM.js → phone-number-CJj2wD9_.js} +6 -5
- package/dist/phone-number-CJj2wD9_.js.map +1 -0
- package/dist/{phone-number-CGZtDB_n.js → phone-number-D9soCpCv.js} +6 -5
- package/dist/phone-number-D9soCpCv.js.map +1 -0
- package/dist/v2/ImageWithFallback.js +49 -0
- package/dist/v2/ImageWithFallback.js.map +1 -0
- package/dist/v2/PhoneNumber.js +2 -2
- package/dist/v2/ProductEmbed.js +2 -15
- package/dist/v2/ProductEmbed.js.map +1 -1
- package/dist/v2/SessionEnvironment.js +1 -1
- package/dist/v2/ShareRecordingPane.js +303 -0
- package/dist/v2/ShareRecordingPane.js.map +1 -0
- package/dist/v2/ShareViaEmail.js +366 -0
- package/dist/v2/ShareViaEmail.js.map +1 -0
- package/dist/v2/StatusDropdown.js +159 -0
- package/dist/v2/StatusDropdown.js.map +1 -0
- package/dist/v2/SubscriptionNotificationsContainer.js +70 -0
- package/dist/v2/SubscriptionNotificationsContainer.js.map +1 -0
- package/dist/v2/SubscriptionUpgradeRequestModal.js +88 -0
- package/dist/v2/SubscriptionUpgradeRequestModal.js.map +1 -0
- package/dist/v2/SuffixedInput.js +128 -0
- package/dist/v2/SuffixedInput.js.map +1 -0
- package/dist/v2/TimezoneMismatchModal.js +134 -0
- package/dist/v2/TimezoneMismatchModal.js.map +1 -0
- package/dist/v2/VersionHistory.js +208 -0
- package/dist/v2/VersionHistory.js.map +1 -0
- package/package.json +1 -1
- package/types/v2/ImageWithFallback.d.ts +9 -0
- package/types/v2/ShareRecordingPane.d.ts +16 -0
- package/types/v2/ShareViaEmail.d.ts +34 -0
- package/types/v2/StatusDropdown.d.ts +16 -0
- package/types/v2/SubscriptionNotificationsContainer.d.ts +5 -0
- package/types/v2/SubscriptionUpgradeRequestModal.d.ts +8 -0
- package/types/v2/SuffixedInput.d.ts +16 -0
- package/types/v2/TimezoneMismatchModal.d.ts +8 -0
- package/types/v2/VersionHistory.d.ts +44 -0
- package/dist/cjs/phone-number-Bza7WGZm.js.map +0 -1
- package/dist/cjs/phone-number-DIIlhFGA.js.map +0 -1
- package/dist/phone-number-B3OcwVZM.js.map +0 -1
- package/dist/phone-number-CGZtDB_n.js.map +0 -1
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
4
|
+
var neetoAtoms = require('@bigbinary/neeto-atoms');
|
|
5
|
+
var neetoCist = require('@bigbinary/neeto-cist');
|
|
6
|
+
var reactUtils = require('@bigbinary/neeto-commons-frontend/v2/react-utils');
|
|
7
|
+
var i18next = require('i18next');
|
|
8
|
+
var classnames = require('classnames');
|
|
9
|
+
var v2_DateFormat = require('./DateFormat.js');
|
|
10
|
+
var v2_MoreDropdown = require('./MoreDropdown.js');
|
|
11
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
12
|
+
var React = require('react');
|
|
13
|
+
var createLucideIcon = require('../createLucideIcon-DBDhE7kE.js');
|
|
14
|
+
require('@bigbinary/neeto-commons-frontend/v2/react-utils/useTimer');
|
|
15
|
+
require('@bigbinary/neeto-commons-frontend/v2/utils/datetime');
|
|
16
|
+
require('ramda');
|
|
17
|
+
require('@babel/runtime/helpers/objectWithoutProperties');
|
|
18
|
+
require('react-i18next');
|
|
19
|
+
require('../ellipsis-BcfLTtl5.js');
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @license lucide-react v1.7.0 - ISC
|
|
23
|
+
*
|
|
24
|
+
* This source code is licensed under the ISC license.
|
|
25
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
const __iconNode = [
|
|
30
|
+
["path", { d: "M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8", key: "v9h5vc" }],
|
|
31
|
+
["path", { d: "M21 3v5h-5", key: "1q7to0" }],
|
|
32
|
+
["path", { d: "M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16", key: "3uifl3" }],
|
|
33
|
+
["path", { d: "M8 16H3v5", key: "1cv678" }]
|
|
34
|
+
];
|
|
35
|
+
const RefreshCw = createLucideIcon.createLucideIcon("refresh-cw", __iconNode);
|
|
36
|
+
|
|
37
|
+
var REFRESH_BUTTON_TOOLTIP_PROPS = Object.freeze({
|
|
38
|
+
content: i18next.t("neetoMolecules.versionHistory.refreshButtonTooltip"),
|
|
39
|
+
position: "bottom"
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
function ownKeys$1(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; }
|
|
43
|
+
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
44
|
+
var Version = reactUtils.withT(function (_ref) {
|
|
45
|
+
var t = _ref.t,
|
|
46
|
+
id = _ref.id,
|
|
47
|
+
date = _ref.date,
|
|
48
|
+
user = _ref.user,
|
|
49
|
+
onClick = _ref.onClick,
|
|
50
|
+
_ref$isDraft = _ref.isDraft,
|
|
51
|
+
isDraft = _ref$isDraft === void 0 ? false : _ref$isDraft,
|
|
52
|
+
_ref$isPublished = _ref.isPublished,
|
|
53
|
+
isPublished = _ref$isPublished === void 0 ? false : _ref$isPublished,
|
|
54
|
+
_ref$showMoreDropdown = _ref.showMoreDropdown,
|
|
55
|
+
showMoreDropdown = _ref$showMoreDropdown === void 0 ? false : _ref$showMoreDropdown,
|
|
56
|
+
_ref$moreDropdownProp = _ref.moreDropdownProps,
|
|
57
|
+
moreDropdownProps = _ref$moreDropdownProp === void 0 ? {} : _ref$moreDropdownProp,
|
|
58
|
+
_ref$isLast = _ref.isLast,
|
|
59
|
+
isLast = _ref$isLast === void 0 ? false : _ref$isLast;
|
|
60
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
61
|
+
className: "flex w-full gap-2",
|
|
62
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
63
|
+
className: "relative mt-2.5 flex flex-col items-center",
|
|
64
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("span", {
|
|
65
|
+
className: classnames("bg-border relative z-10 h-2 w-2 rounded-full", {
|
|
66
|
+
"bg-warning": isDraft
|
|
67
|
+
}, {
|
|
68
|
+
"bg-primary": isPublished
|
|
69
|
+
})
|
|
70
|
+
}), !isLast && /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
71
|
+
"aria-hidden": "true",
|
|
72
|
+
className: "bg-border absolute start-1/2 top-[9px] z-0 h-full w-px -translate-x-1/2 rtl:translate-x-1/2"
|
|
73
|
+
})]
|
|
74
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
75
|
+
onClick: onClick,
|
|
76
|
+
className: classnames("w-full", {
|
|
77
|
+
"pb-3": !isDraft
|
|
78
|
+
}),
|
|
79
|
+
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
80
|
+
className: "hover:bg-muted flex flex-grow cursor-pointer justify-between gap-4 rounded px-1.5 pt-1 pb-1.5 transition-all duration-300",
|
|
81
|
+
"data-testid": "version-history-event",
|
|
82
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
83
|
+
className: "flex flex-grow flex-col gap-2",
|
|
84
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
85
|
+
className: "flex items-center gap-2",
|
|
86
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
|
|
87
|
+
variant: "h5",
|
|
88
|
+
weight: "medium",
|
|
89
|
+
children: /*#__PURE__*/jsxRuntime.jsx(v2_DateFormat.DateWeekTime, {
|
|
90
|
+
date: date,
|
|
91
|
+
typographyProps: {
|
|
92
|
+
variant: "body3"
|
|
93
|
+
}
|
|
94
|
+
})
|
|
95
|
+
}), isDraft && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Badge, {
|
|
96
|
+
className: "float-start",
|
|
97
|
+
"data-testid": "version-history-draft-tag",
|
|
98
|
+
label: t("neetoMolecules.common.actions.draft"),
|
|
99
|
+
variant: "warning"
|
|
100
|
+
})]
|
|
101
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
102
|
+
className: "flex items-center gap-2",
|
|
103
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Avatar, {
|
|
104
|
+
size: "sm",
|
|
105
|
+
user: {
|
|
106
|
+
name: user
|
|
107
|
+
}
|
|
108
|
+
}), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
|
|
109
|
+
variant: "body3",
|
|
110
|
+
children: user
|
|
111
|
+
})]
|
|
112
|
+
})]
|
|
113
|
+
}), showMoreDropdown && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
114
|
+
className: "flex-shrink-0",
|
|
115
|
+
onClick: function onClick(e) {
|
|
116
|
+
return e.stopPropagation();
|
|
117
|
+
},
|
|
118
|
+
children: /*#__PURE__*/jsxRuntime.jsx(v2_MoreDropdown, _objectSpread$1({
|
|
119
|
+
dropdownButtonProps: {
|
|
120
|
+
className: "m-1",
|
|
121
|
+
disabled: moreDropdownProps.disabled
|
|
122
|
+
}
|
|
123
|
+
}, moreDropdownProps))
|
|
124
|
+
})]
|
|
125
|
+
})
|
|
126
|
+
})]
|
|
127
|
+
}, id);
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
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; }
|
|
131
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).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; }
|
|
132
|
+
var VersionHistory = reactUtils.withT(function (_ref) {
|
|
133
|
+
var t = _ref.t,
|
|
134
|
+
isOpen = _ref.isOpen,
|
|
135
|
+
onClose = _ref.onClose,
|
|
136
|
+
isLoading = _ref.isLoading,
|
|
137
|
+
_ref$draftVersions = _ref.draftVersions,
|
|
138
|
+
draftVersions = _ref$draftVersions === void 0 ? [] : _ref$draftVersions,
|
|
139
|
+
_ref$publishedVersion = _ref.publishedVersions,
|
|
140
|
+
publishedVersions = _ref$publishedVersion === void 0 ? [] : _ref$publishedVersion,
|
|
141
|
+
paneTitle = _ref.paneTitle,
|
|
142
|
+
_ref$showRefreshButto = _ref.showRefreshButton,
|
|
143
|
+
showRefreshButton = _ref$showRefreshButto === void 0 ? false : _ref$showRefreshButto,
|
|
144
|
+
onRefreshClick = _ref.onRefreshClick;
|
|
145
|
+
return /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Sheet, {
|
|
146
|
+
isOpen: isOpen,
|
|
147
|
+
onClose: onClose,
|
|
148
|
+
"aria-describedby": undefined,
|
|
149
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Sheet.Header, {
|
|
150
|
+
className: "flex items-center justify-between",
|
|
151
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Title, {
|
|
152
|
+
"data-testid": "version-history-pane-header",
|
|
153
|
+
children: paneTitle || t("neetoMolecules.versionHistory.paneTitle")
|
|
154
|
+
}), showRefreshButton && !isLoading && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
|
|
155
|
+
"data-testid": "version-history-refresh-button",
|
|
156
|
+
icon: RefreshCw,
|
|
157
|
+
size: "sm",
|
|
158
|
+
tooltipProps: REFRESH_BUTTON_TOOLTIP_PROPS,
|
|
159
|
+
variant: "ghost",
|
|
160
|
+
onClick: onRefreshClick
|
|
161
|
+
})]
|
|
162
|
+
}), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Body, {
|
|
163
|
+
children: isLoading ? /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
164
|
+
className: "flex h-full w-full items-center justify-center",
|
|
165
|
+
children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Spinner, {
|
|
166
|
+
"data-testid": "neeto-ui-spinner"
|
|
167
|
+
})
|
|
168
|
+
}) : /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
169
|
+
className: "flex w-full flex-col gap-y-4",
|
|
170
|
+
children: [neetoCist.isNotEmpty(draftVersions) && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
171
|
+
className: "flex flex-col",
|
|
172
|
+
children: draftVersions.map(function (version, index) {
|
|
173
|
+
var isLast = index === draftVersions.length - 1;
|
|
174
|
+
return /*#__PURE__*/React.createElement(Version, _objectSpread(_objectSpread({}, _objectSpread(_objectSpread({}, version), {}, {
|
|
175
|
+
isLast: isLast
|
|
176
|
+
})), {}, {
|
|
177
|
+
key: version.id
|
|
178
|
+
}));
|
|
179
|
+
})
|
|
180
|
+
}), neetoCist.isNotEmpty(publishedVersions) && /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
181
|
+
className: "flex items-center",
|
|
182
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("hr", {
|
|
183
|
+
className: "border-border flex-grow"
|
|
184
|
+
}), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
|
|
185
|
+
className: "bg-muted text-foreground inline-block rounded px-3 py-1 leading-normal",
|
|
186
|
+
"data-testid": "version-history-published-title",
|
|
187
|
+
variant: "body3",
|
|
188
|
+
weight: "medium",
|
|
189
|
+
children: t("neetoMolecules.versionHistory.publishedVersions")
|
|
190
|
+
}), /*#__PURE__*/jsxRuntime.jsx("hr", {
|
|
191
|
+
className: "border-border flex-grow"
|
|
192
|
+
})]
|
|
193
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
194
|
+
className: "flex flex-col",
|
|
195
|
+
children: publishedVersions.map(function (version, index) {
|
|
196
|
+
var isLast = index === publishedVersions.length - 1;
|
|
197
|
+
return /*#__PURE__*/React.createElement(Version, _objectSpread(_objectSpread({}, _objectSpread(_objectSpread({}, version), {}, {
|
|
198
|
+
isLast: isLast
|
|
199
|
+
})), {}, {
|
|
200
|
+
key: version.id
|
|
201
|
+
}));
|
|
202
|
+
})
|
|
203
|
+
})]
|
|
204
|
+
})
|
|
205
|
+
})]
|
|
206
|
+
});
|
|
207
|
+
});
|
|
208
|
+
|
|
209
|
+
module.exports = VersionHistory;
|
|
210
|
+
//# sourceMappingURL=VersionHistory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VersionHistory.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/refresh-cw.js","../../../src/v2/components/VersionHistory/constants.js","../../../src/v2/components/VersionHistory/Version.jsx","../../../src/v2/components/VersionHistory/index.jsx"],"sourcesContent":["/**\n * @license lucide-react v1.7.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8\", key: \"v9h5vc\" }],\n [\"path\", { d: \"M21 3v5h-5\", key: \"1q7to0\" }],\n [\"path\", { d: \"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16\", key: \"3uifl3\" }],\n [\"path\", { d: \"M8 16H3v5\", key: \"1cv678\" }]\n];\nconst RefreshCw = createLucideIcon(\"refresh-cw\", __iconNode);\n\nexport { __iconNode, RefreshCw as default };\n//# sourceMappingURL=refresh-cw.js.map\n","import { t } from \"i18next\";\n\nexport const REFRESH_BUTTON_TOOLTIP_PROPS = Object.freeze({\n content: t(\"neetoMolecules.versionHistory.refreshButtonTooltip\"),\n position: \"bottom\",\n});\n","import { Typography, Badge, Avatar } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { withT } from \"neetocommons/v2/react-utils\";\n\nimport DateFormat from \"../DateFormat\";\nimport MoreDropdown from \"../MoreDropdown\";\n\nconst Version = withT(\n ({\n t,\n id,\n date,\n user,\n onClick,\n isDraft = false,\n isPublished = false,\n showMoreDropdown = false,\n moreDropdownProps = {},\n isLast = false,\n }) => (\n <div className=\"flex w-full gap-2\" key={id}>\n <div className=\"relative mt-2.5 flex flex-col items-center\">\n <span\n className={classnames(\n \"bg-border relative z-10 h-2 w-2 rounded-full\",\n { \"bg-warning\": isDraft },\n { \"bg-primary\": isPublished }\n )}\n />\n {!isLast && (\n <span\n aria-hidden=\"true\"\n className=\"bg-border absolute start-1/2 top-[9px] z-0 h-full w-px -translate-x-1/2 rtl:translate-x-1/2\"\n />\n )}\n </div>\n <div\n {...{ onClick }}\n className={classnames(\"w-full\", { \"pb-3\": !isDraft })}\n >\n <div\n className=\"hover:bg-muted flex flex-grow cursor-pointer justify-between gap-4 rounded px-1.5 pt-1 pb-1.5 transition-all duration-300\"\n data-testid=\"version-history-event\"\n >\n <div className=\"flex flex-grow flex-col gap-2\">\n <div className=\"flex items-center gap-2\">\n <Typography variant=\"h5\" weight=\"medium\">\n <DateFormat.DateWeekTime\n {...{ date }}\n typographyProps={{ variant: \"body3\" }}\n />\n </Typography>\n {isDraft && (\n <Badge\n className=\"float-start\"\n data-testid=\"version-history-draft-tag\"\n label={t(\"neetoMolecules.common.actions.draft\")}\n variant=\"warning\"\n />\n )}\n </div>\n <div className=\"flex items-center gap-2\">\n <Avatar size=\"sm\" user={{ name: user }} />\n <Typography variant=\"body3\">{user}</Typography>\n </div>\n </div>\n {showMoreDropdown && (\n <div className=\"flex-shrink-0\" onClick={e => e.stopPropagation()}>\n <MoreDropdown\n dropdownButtonProps={{\n className: \"m-1\",\n disabled: moreDropdownProps.disabled,\n }}\n {...moreDropdownProps}\n />\n </div>\n )}\n </div>\n </div>\n </div>\n )\n);\n\nexport default Version;\n","import { Button, Typography, Sheet, Spinner } from \"@bigbinary/neeto-atoms\";\nimport { RefreshCw } from \"lucide-react\";\nimport { isNotEmpty } from \"neetocist\";\nimport { withT } from \"neetocommons/v2/react-utils\";\nimport PropTypes from \"prop-types\";\n\nimport { REFRESH_BUTTON_TOOLTIP_PROPS } from \"./constants\";\nimport Version from \"./Version\";\n\nconst VersionHistory = withT(\n ({\n t,\n isOpen,\n onClose,\n isLoading,\n draftVersions = [],\n publishedVersions = [],\n paneTitle,\n showRefreshButton = false,\n onRefreshClick,\n }) => (\n <Sheet {...{ isOpen, onClose }} aria-describedby={undefined}>\n <Sheet.Header className=\"flex items-center justify-between\">\n <Sheet.Title data-testid=\"version-history-pane-header\">\n {paneTitle || t(\"neetoMolecules.versionHistory.paneTitle\")}\n </Sheet.Title>\n {showRefreshButton && !isLoading && (\n <Button\n data-testid=\"version-history-refresh-button\"\n icon={RefreshCw}\n size=\"sm\"\n tooltipProps={REFRESH_BUTTON_TOOLTIP_PROPS}\n variant=\"ghost\"\n onClick={onRefreshClick}\n />\n )}\n </Sheet.Header>\n <Sheet.Body>\n {isLoading ? (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner data-testid=\"neeto-ui-spinner\" />\n </div>\n ) : (\n <div className=\"flex w-full flex-col gap-y-4\">\n {isNotEmpty(draftVersions) && (\n <div className=\"flex flex-col\">\n {draftVersions.map((version, index) => {\n const isLast = index === draftVersions.length - 1;\n\n return (\n <Version {...{ ...version, isLast }} key={version.id} />\n );\n })}\n </div>\n )}\n {isNotEmpty(publishedVersions) && (\n <div className=\"flex items-center\">\n <hr className=\"border-border flex-grow\" />\n <Typography\n className=\"bg-muted text-foreground inline-block rounded px-3 py-1 leading-normal\"\n data-testid=\"version-history-published-title\"\n variant=\"body3\"\n weight=\"medium\"\n >\n {t(\"neetoMolecules.versionHistory.publishedVersions\")}\n </Typography>\n <hr className=\"border-border flex-grow\" />\n </div>\n )}\n <div className=\"flex flex-col\">\n {publishedVersions.map((version, index) => {\n const isLast = index === publishedVersions.length - 1;\n\n return <Version {...{ ...version, isLast }} key={version.id} />;\n })}\n </div>\n </div>\n )}\n </Sheet.Body>\n </Sheet>\n )\n);\n\nVersionHistory.propTypes = {\n /**\n * To specify whether the version history pane should be opened or closed.\n */\n isOpen: PropTypes.bool.isRequired,\n /**\n * Handler function that is triggered when the close button is clicked.\n */\n onClose: PropTypes.func.isRequired,\n /**\n * Boolean flag to show loading state with spinner.\n */\n isLoading: PropTypes.bool,\n /**\n * Array of draft version objects to be displayed in the version history.\n */\n draftVersions: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n date: PropTypes.instanceOf(Date).isRequired,\n user: PropTypes.string.isRequired,\n onClick: PropTypes.func,\n isDraft: PropTypes.bool,\n isPublished: PropTypes.bool,\n showMoreDropdown: PropTypes.bool,\n moreDropdownProps: PropTypes.object,\n })\n ),\n /**\n * Array of published version objects to be displayed in the version history.\n */\n publishedVersions: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n date: PropTypes.instanceOf(Date).isRequired,\n user: PropTypes.string.isRequired,\n onClick: PropTypes.func,\n isDraft: PropTypes.bool,\n isPublished: PropTypes.bool,\n showMoreDropdown: PropTypes.bool,\n moreDropdownProps: PropTypes.object,\n })\n ),\n /**\n * Custom title to be displayed in the pane header. If not provided, a default title will be used.\n */\n paneTitle: PropTypes.string,\n /**\n * Boolean flag to show or hide the refresh button in the pane header.\n */\n showRefreshButton: PropTypes.bool,\n /**\n * Handler function that is triggered when the refresh button is clicked.\n */\n onRefreshClick: PropTypes.func,\n};\n\nexport default VersionHistory;\n"],"names":["createLucideIcon","REFRESH_BUTTON_TOOLTIP_PROPS","Object","freeze","content","t","position","Version","withT","_ref","id","date","user","onClick","_ref$isDraft","isDraft","_ref$isPublished","isPublished","_ref$showMoreDropdown","showMoreDropdown","_ref$moreDropdownProp","moreDropdownProps","_ref$isLast","isLast","_jsxs","className","children","_jsx","classnames","Typography","variant","weight","DateFormat","DateWeekTime","typographyProps","Badge","label","Avatar","size","name","e","stopPropagation","MoreDropdown","_objectSpread","dropdownButtonProps","disabled","VersionHistory","isOpen","onClose","isLoading","_ref$draftVersions","draftVersions","_ref$publishedVersion","publishedVersions","paneTitle","_ref$showRefreshButto","showRefreshButton","onRefreshClick","Sheet","undefined","Header","Title","Button","icon","RefreshCw","tooltipProps","Body","Spinner","isNotEmpty","map","version","index","length","_createElement","key"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -230,8 +230,9 @@ var PhoneNumberInput = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
230
230
|
selectProps = _ref.selectProps,
|
|
231
231
|
initialCountryCode = _ref.initialCountryCode,
|
|
232
232
|
inputProps = _objectWithoutProperties(_ref, _excluded);
|
|
233
|
+
var safeValue = value !== null && value !== void 0 ? value : "";
|
|
233
234
|
var _useState = useState(function () {
|
|
234
|
-
return getPhoneData(
|
|
235
|
+
return getPhoneData(safeValue).countryCode || initialCountryCode;
|
|
235
236
|
}),
|
|
236
237
|
_useState2 = _slicedToArray(_useState, 2),
|
|
237
238
|
countryCode = _useState2[0],
|
|
@@ -250,7 +251,7 @@ var PhoneNumberInput = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
250
251
|
}),
|
|
251
252
|
ipCountry = _useQuery.data;
|
|
252
253
|
var finalCountryCode = countryCode || (ipCountry === null || ipCountry === void 0 ? void 0 : ipCountry.value) || "US";
|
|
253
|
-
var formattedValue = formatIncompletePhoneNumber(
|
|
254
|
+
var formattedValue = formatIncompletePhoneNumber(safeValue, finalCountryCode);
|
|
254
255
|
var onKeyDown = preserveCursor(function (event) {
|
|
255
256
|
// Handles special characters in the phone number formatting like brackets and spaces.
|
|
256
257
|
if (event.key !== "Backspace") return;
|
|
@@ -268,11 +269,11 @@ var PhoneNumberInput = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
268
269
|
onChange(phoneData.phoneNumber);
|
|
269
270
|
});
|
|
270
271
|
var onChangeCountry = function onChangeCountry(countryCode) {
|
|
271
|
-
var phoneData = getPhoneData(
|
|
272
|
+
var phoneData = getPhoneData(safeValue, finalCountryCode);
|
|
272
273
|
var prevPrefix = "+".concat(getCountryCallingCode(phoneData.countryCode));
|
|
273
274
|
var nextPrefix = "+".concat(getCountryCallingCode(countryCode));
|
|
274
275
|
setCountryCode(countryCode);
|
|
275
|
-
onChange(nextPrefix +
|
|
276
|
+
onChange(nextPrefix + safeValue.replace(prevPrefix, ""));
|
|
276
277
|
};
|
|
277
278
|
return /*#__PURE__*/jsx("div", {
|
|
278
279
|
className: className,
|
|
@@ -300,4 +301,4 @@ var css = "@import url(\"https://fonts.googleapis.com/css2?family=Noto+Color+Emo
|
|
|
300
301
|
n(css,{});
|
|
301
302
|
|
|
302
303
|
export { PhoneNumberInput as P, SingleValue$1 as S, getPhoneData as g, isPhoneNumberValid as i, validation as v };
|
|
303
|
-
//# sourceMappingURL=phone-number-
|
|
304
|
+
//# sourceMappingURL=phone-number-CJj2wD9_.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phone-number-CJj2wD9_.js","sources":["../src/components/PhoneNumber/constants.js","../src/components/PhoneNumber/CountryPicker/constants.js","../src/components/PhoneNumber/CountryPicker/SingleValue.jsx","../src/components/PhoneNumber/CountryPicker/index.jsx","../src/components/PhoneNumber/apis/neeto_ip_lookup.js","../src/components/PhoneNumber/utils.js","../src/components/PhoneNumber/PhoneNumberInput.jsx"],"sourcesContent":["export const IP_LOOKUP_ACCESS_TOKEN = \"083c694c79f119c7f227e737de9a5c8c\";\nexport const IP_LOOKUP_STORAGE_KEY = \"IP_LOOKUP_DETAILS_STORAGE\";\nexport const MAX_CACHE_AGE = 60 * 60 * 1000;\n","import { countries } from \"countries-list\";\nimport { getCountries } from \"libphonenumber-js/min\";\nimport { mergeLeft, assoc } from \"ramda\";\n\nexport const COUNTRY_PICKER_OPTIONS = getCountries()\n .filter(code => countries[code])\n .map(code => ({ label: countries[code].name, value: code }))\n .sort((a, b) => a.label.localeCompare(b.label));\n\nexport const COUNTRY_PICKER_STYLES = {\n menuPortal: mergeLeft({ width: 196, zIndex: 99999 }),\n control: mergeLeft({\n border: \"none !important\",\n cursor: \"pointer\",\n gap: 4,\n }),\n input: assoc(\"position\", \"absolute !important\"),\n valueContainer: assoc(\"padding\", \"0 !important\"),\n indicatorsContainer: assoc(\"paddingRight\", \"0 !important\"),\n};\n","import { memo } from \"react\";\n\nimport { countries } from \"countries-list\";\nimport { Tooltip, Typography } from \"neetoui\";\n\nconst SingleValue = ({ countryCode, showEmoji = false, ...otherProps }) => {\n if (!showEmoji) return null;\n\n const countryData = countries[countryCode];\n\n return (\n <Tooltip content={countryData?.name}>\n <Typography\n className=\"neeto-molecules-phone-number-input__flag cursor-pointer text-center text-xl\"\n style=\"body2\"\n {...otherProps}\n >\n {countryData?.emoji}\n </Typography>\n </Tooltip>\n );\n};\n\nexport default memo(SingleValue);\n","import { memo, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { Select } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { COUNTRY_PICKER_OPTIONS, COUNTRY_PICKER_STYLES } from \"./constants\";\nimport SingleValue from \"./SingleValue\";\n\nconst CountryPicker = ({ countryCode, onChange, ...otherProps }) => {\n const [searchTerm, setSearchTerm] = useState(\"\");\n const { t } = useTranslation();\n\n return (\n <div\n className={classnames(\"flex-shrink-0\", {\n \"w-10\": !searchTerm,\n \"w-24\": searchTerm,\n })}\n >\n <Select\n isSearchable\n aria-label={t(\"neetoMolecules.phoneNumberInput.countryCodeAriaLabel\")}\n data-testid=\"phonenumber-country-picker\"\n options={COUNTRY_PICKER_OPTIONS}\n strategy=\"fixed\"\n styles={COUNTRY_PICKER_STYLES}\n value={{ value: countryCode }}\n components={{\n SingleValue: () => <SingleValue {...{ countryCode }} showEmoji />,\n }}\n isOptionSelected={({ value }, [selectedOption]) =>\n selectedOption?.name === value\n }\n onChange={option => onChange(option.value)}\n onInputChange={setSearchTerm}\n {...otherProps}\n />\n </div>\n );\n};\n\nexport default memo(CountryPicker);\n","import axios from \"axios\";\n\nimport { IP_LOOKUP_ACCESS_TOKEN } from \"../constants\";\n\nconst fetchLocationDetails = () =>\n axios.get(\n \"https://neeto-ip-lookup-web-production.neetodeployapp.com/location\",\n { headers: { \"X-ACCESS-TOKEN\": IP_LOOKUP_ACCESS_TOKEN } }\n );\n\nconst neetoIpLookupApi = { fetchLocationDetails };\nexport default neetoIpLookupApi;\n","import i18next from \"i18next\";\nimport {\n formatIncompletePhoneNumber,\n isValidPhoneNumber,\n parsePhoneNumber,\n} from \"libphonenumber-js/min\";\nimport { getFromLocalStorage, setToLocalStorage } from \"neetocommons/utils\";\nimport * as yup from \"yup\";\n\nimport neetoIpLookupApi from \"./apis/neeto_ip_lookup\";\nimport { IP_LOOKUP_STORAGE_KEY, MAX_CACHE_AGE } from \"./constants\";\n\nexport const isPhoneNumberValid = (value = \"\", ...rest) =>\n isValidPhoneNumber(value, ...rest);\n\nexport const validation = (\n message = i18next.t(\"neetoMolecules.phoneNumberInput.validations.invalid\")\n) =>\n yup\n .string()\n .test(\"phoneNumber\", message, phoneNumber =>\n phoneNumber ? isValidPhoneNumber(phoneNumber) : true\n );\n\nexport const getPhoneData = (value, defaultCountryCode) => {\n try {\n const parsedValue = parsePhoneNumber(value, defaultCountryCode);\n\n return {\n phoneNumber: parsedValue.number,\n international: parsedValue.formatInternational(),\n countryCode: parsedValue.country || defaultCountryCode,\n };\n } catch {\n return {\n phoneNumber: value,\n international: formatIncompletePhoneNumber(value, defaultCountryCode),\n countryCode: defaultCountryCode,\n };\n }\n};\n\nexport const fetchLocationDetails = async () => {\n const stored = getFromLocalStorage(IP_LOOKUP_STORAGE_KEY);\n const { data, timestamp } = stored || {};\n const isCacheValid = timestamp && Date.now() - timestamp < MAX_CACHE_AGE;\n\n if (isCacheValid) return data;\n\n try {\n const details = await neetoIpLookupApi.fetchLocationDetails();\n const timestamp = Date.now();\n setToLocalStorage(IP_LOOKUP_STORAGE_KEY, { data: details, timestamp });\n\n return details;\n } catch {\n return data || null;\n }\n};\n\nexport const isNumeric = char => char >= \"0\" && char <= \"9\";\n\nexport const preserveCursor = callback => event => {\n const start = event.target.selectionStart;\n const end = event.target.selectionEnd;\n const len = event.target.value.length;\n const result = callback(event);\n const delta = event.target.value.length - len;\n event.target.setSelectionRange(start + delta, end + delta);\n\n return result;\n};\n","import { forwardRef, useState } from \"react\";\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport {\n formatIncompletePhoneNumber,\n getCountryCallingCode,\n} from \"libphonenumber-js/min\";\nimport { noop, findBy } from \"neetocist\";\nimport { Input } from \"neetoui\";\nimport PropTypes from \"prop-types\";\n\nimport { IP_LOOKUP_STORAGE_KEY } from \"./constants\";\nimport CountryPicker from \"./CountryPicker\";\nimport { COUNTRY_PICKER_OPTIONS } from \"./CountryPicker/constants\";\nimport {\n getPhoneData,\n isNumeric,\n preserveCursor,\n fetchLocationDetails,\n} from \"./utils\";\n\nconst PhoneNumberInput = forwardRef(\n (\n {\n value = \"\",\n onChange = noop,\n className,\n error,\n selectProps,\n initialCountryCode,\n ...inputProps\n },\n ref\n ) => {\n const safeValue = value ?? \"\";\n\n const [countryCode, setCountryCode] = useState(\n () => getPhoneData(safeValue).countryCode || initialCountryCode\n );\n\n const { data: ipCountry } = useQuery({\n queryKey: [IP_LOOKUP_STORAGE_KEY],\n queryFn: fetchLocationDetails,\n enabled: !countryCode,\n staleTime: Infinity,\n gcTime: Infinity,\n select: data =>\n findBy({ value: data.countryCode }, COUNTRY_PICKER_OPTIONS),\n });\n\n const finalCountryCode = countryCode || ipCountry?.value || \"US\";\n const formattedValue = formatIncompletePhoneNumber(\n safeValue,\n finalCountryCode\n );\n\n const onKeyDown = preserveCursor(event => {\n // Handles special characters in the phone number formatting like brackets and spaces.\n if (event.key !== \"Backspace\") return;\n const left = event.target.value.substring(0, event.target.selectionStart);\n const right = event.target.value.substring(event.target.selectionEnd);\n let index = left.length - 1;\n while (index > 0 && !isNumeric(left[index])) index--;\n const newValue = left.substring(0, index + 1) + right;\n if (newValue) event.target.value = newValue;\n });\n\n const onInputChange = preserveCursor(event => {\n const phoneData = getPhoneData(event.target.value, finalCountryCode);\n event.target.value = formatIncompletePhoneNumber(event.target.value);\n setCountryCode(phoneData.countryCode);\n onChange(phoneData.phoneNumber);\n });\n\n const onChangeCountry = countryCode => {\n const phoneData = getPhoneData(safeValue, finalCountryCode);\n const prevPrefix = `+${getCountryCallingCode(phoneData.countryCode)}`;\n const nextPrefix = `+${getCountryCallingCode(countryCode)}`;\n setCountryCode(countryCode);\n onChange(nextPrefix + safeValue.replace(prevPrefix, \"\"));\n };\n\n return (\n <div {...{ className }}>\n <Input\n {...{ error, onKeyDown, ref }}\n autoComplete=\"tel\"\n className=\"neeto-molecules-phone-number-input__input\"\n data-testid=\"phonenumber-input\"\n inputMode=\"tel\"\n type=\"tel\"\n value={formattedValue}\n prefix={\n <CountryPicker\n countryCode={finalCountryCode}\n onChange={onChangeCountry}\n {...selectProps}\n />\n }\n onChange={onInputChange}\n {...inputProps}\n />\n </div>\n );\n }\n);\n\nPhoneNumberInput.displayName = \"PhoneNumberInput\";\n\nPhoneNumberInput.propTypes = {\n /**\n * To specify the text to be displayed in the component.\n */\n value: PropTypes.string,\n /**\n * To specify the function to be triggered when the `value` is updated.\n */\n onChange: PropTypes.func,\n /**\n * To specify external classNames that can be provided as overrides to the main wrapper.\n */\n className: PropTypes.string,\n /**\n * To specify the error message to be displayed below the input field.\n */\n error: PropTypes.string,\n /**\n * To specify the additional props to be provided to the country picker `Select` component.\n */\n selectProps: PropTypes.object,\n /**\n * To specify the initial country to be set when component is mounted. Setting this\n * disables the feature of setting the initial country based on user's IP address.\n */\n initialCountryCode: PropTypes.string,\n};\n\nexport default PhoneNumberInput;\n"],"names":["IP_LOOKUP_ACCESS_TOKEN","IP_LOOKUP_STORAGE_KEY","MAX_CACHE_AGE","COUNTRY_PICKER_OPTIONS","getCountries","filter","code","countries","map","label","name","value","sort","a","b","localeCompare","COUNTRY_PICKER_STYLES","menuPortal","mergeLeft","width","zIndex","control","border","cursor","gap","input","assoc","valueContainer","indicatorsContainer","SingleValue","_ref","countryCode","_ref$showEmoji","showEmoji","otherProps","_objectWithoutProperties","_excluded","countryData","_jsx","Tooltip","content","children","Typography","_objectSpread","className","style","emoji","memo","CountryPicker","onChange","_useState","useState","_useState2","_slicedToArray","searchTerm","setSearchTerm","_useTranslation","useTranslation","t","classnames","Select","isSearchable","options","strategy","styles","components","_SingleValue","isOptionSelected","_ref2","_ref3","_ref4","selectedOption","option","onInputChange","fetchLocationDetails","axios","get","headers","neetoIpLookupApi","e","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","Object","create","_regeneratorDefine2","f","p","y","G","v","d","bind","length","l","TypeError","call","done","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","isPhoneNumberValid","arguments","undefined","_len","rest","Array","_key","isValidPhoneNumber","apply","concat","validation","message","i18next","yup","string","test","phoneNumber","getPhoneData","defaultCountryCode","parsedValue","parsePhoneNumber","number","international","formatInternational","country","_unused","formatIncompletePhoneNumber","_asyncToGenerator","_callee","stored","data","timestamp","isCacheValid","details","_timestamp","_context","getFromLocalStorage","Date","now","setToLocalStorage","isNumeric","char","preserveCursor","callback","event","start","target","selectionStart","end","selectionEnd","len","result","delta","setSelectionRange","PhoneNumberInput","forwardRef","ref","_ref$value","_ref$onChange","noop","error","selectProps","initialCountryCode","inputProps","safeValue","setCountryCode","_useQuery","useQuery","queryKey","queryFn","enabled","staleTime","Infinity","gcTime","select","findBy","ipCountry","finalCountryCode","formattedValue","onKeyDown","key","left","substring","right","index","newValue","phoneData","onChangeCountry","prevPrefix","getCountryCallingCode","nextPrefix","replace","Input","autoComplete","inputMode","type","prefix"],"mappings":"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"}
|
|
@@ -211,8 +211,9 @@ var PhoneNumberInput = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
211
211
|
selectProps = _ref.selectProps,
|
|
212
212
|
initialCountryCode = _ref.initialCountryCode,
|
|
213
213
|
inputProps = _objectWithoutProperties(_ref, _excluded);
|
|
214
|
+
var safeValue = value !== null && value !== void 0 ? value : "";
|
|
214
215
|
var _useState = useState(function () {
|
|
215
|
-
return getPhoneData(
|
|
216
|
+
return getPhoneData(safeValue).countryCode || initialCountryCode;
|
|
216
217
|
}),
|
|
217
218
|
_useState2 = _slicedToArray(_useState, 2),
|
|
218
219
|
countryCode = _useState2[0],
|
|
@@ -231,7 +232,7 @@ var PhoneNumberInput = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
231
232
|
}),
|
|
232
233
|
ipCountry = _useQuery.data;
|
|
233
234
|
var finalCountryCode = countryCode || (ipCountry === null || ipCountry === void 0 ? void 0 : ipCountry.value) || "US";
|
|
234
|
-
var formattedValue = formatIncompletePhoneNumber(
|
|
235
|
+
var formattedValue = formatIncompletePhoneNumber(safeValue, finalCountryCode);
|
|
235
236
|
var onKeyDown = preserveCursor(function (event) {
|
|
236
237
|
if (event.key !== "Backspace") return;
|
|
237
238
|
var left = event.target.value.substring(0, event.target.selectionStart);
|
|
@@ -248,11 +249,11 @@ var PhoneNumberInput = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
248
249
|
onChange(phoneData.phoneNumber);
|
|
249
250
|
});
|
|
250
251
|
var onChangeCountry = function onChangeCountry(nextCountryCode) {
|
|
251
|
-
var phoneData = getPhoneData(
|
|
252
|
+
var phoneData = getPhoneData(safeValue, finalCountryCode);
|
|
252
253
|
var prevPrefix = "+".concat(getCountryCallingCode(phoneData.countryCode));
|
|
253
254
|
var nextPrefix = "+".concat(getCountryCallingCode(nextCountryCode));
|
|
254
255
|
setCountryCode(nextCountryCode);
|
|
255
|
-
onChange(nextPrefix +
|
|
256
|
+
onChange(nextPrefix + safeValue.replace(prevPrefix, ""));
|
|
256
257
|
};
|
|
257
258
|
return /*#__PURE__*/jsxs("div", {
|
|
258
259
|
className: className,
|
|
@@ -288,4 +289,4 @@ var css = "@import url(\"https://fonts.googleapis.com/css2?family=Noto+Color+Emo
|
|
|
288
289
|
n(css,{});
|
|
289
290
|
|
|
290
291
|
export { PhoneNumberInput as P, getPhoneData as g, isPhoneNumberValid as i, validation as v };
|
|
291
|
-
//# sourceMappingURL=phone-number-
|
|
292
|
+
//# sourceMappingURL=phone-number-D9soCpCv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phone-number-D9soCpCv.js","sources":["../src/v2/components/PhoneNumber/constants.js","../src/v2/components/PhoneNumber/CountryPicker/constants.js","../src/v2/components/PhoneNumber/CountryPicker/index.jsx","../src/v2/components/PhoneNumber/apis/neeto_ip_lookup.js","../src/v2/components/PhoneNumber/utils.js","../src/v2/components/PhoneNumber/PhoneNumberInput.jsx"],"sourcesContent":["export const IP_LOOKUP_ACCESS_TOKEN = \"083c694c79f119c7f227e737de9a5c8c\";\nexport const IP_LOOKUP_STORAGE_KEY = \"IP_LOOKUP_DETAILS_STORAGE\";\nexport const MAX_CACHE_AGE = 60 * 60 * 1000;\n","import { countries } from \"countries-list\";\nimport { getCountries } from \"libphonenumber-js/min\";\n\nexport const COUNTRY_PICKER_OPTIONS = getCountries()\n .filter(code => countries[code])\n .map(code => ({ label: countries[code].name, value: code }))\n .sort((a, b) => a.label.localeCompare(b.label));\n","import { memo, useState } from \"react\";\n\nimport {\n Button,\n Command,\n CommandEmpty,\n CommandInput,\n CommandItem,\n CommandList,\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@bigbinary/neeto-atoms/primitives\";\nimport { countries } from \"countries-list\";\nimport i18next from \"i18next\";\nimport { ChevronDownIcon } from \"lucide-react\";\n\nimport { COUNTRY_PICKER_OPTIONS } from \"./constants\";\n\nconst CountryPicker = ({ countryCode, onChange, disabled }) => {\n const [open, setOpen] = useState(false);\n\n const handleSelect = nextValue => {\n onChange(nextValue);\n setOpen(false);\n };\n\n return (\n <Popover {...{ open }} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n {...{ disabled }}\n className=\"neeto-molecules-phone-number-input__country-picker hover:bg-muted h-full shrink-0 gap-1 rounded-r-none border-0 bg-transparent px-2 shadow-none\"\n data-testid=\"phonenumber-country-picker\"\n size=\"sm\"\n variant=\"ghost\"\n aria-label={i18next.t(\n \"neetoMolecules.phoneNumberInput.countryCodeAriaLabel\"\n )}\n >\n <span className=\"neeto-molecules-phone-number-input__flag text-xl leading-none\">\n {countries[countryCode]?.emoji}\n </span>\n <ChevronDownIcon\n aria-hidden\n className=\"text-muted-foreground size-3\"\n />\n </Button>\n </PopoverTrigger>\n <PopoverContent\n align=\"start\"\n className=\"w-64 p-0\"\n sideOffset={4}\n onClick={event => event.stopPropagation()}\n >\n <Command>\n <CommandInput\n data-testid=\"phonenumber-country-picker-search\"\n placeholder={i18next.t(\n \"neetoMolecules.phoneNumberInput.searchCountry\"\n )}\n />\n <CommandList className=\"mt-1\">\n <CommandEmpty>\n {i18next.t(\"neetoMolecules.phoneNumberInput.noCountryFound\")}\n </CommandEmpty>\n {COUNTRY_PICKER_OPTIONS.map(({ label, value }) => (\n <CommandItem\n key={value}\n value={`${label} ${value}`}\n onSelect={() => handleSelect(value)}\n >\n <span className=\"neeto-molecules-phone-number-input__flag text-xl leading-none\">\n {countries[value]?.emoji}\n </span>\n <span>{label}</span>\n </CommandItem>\n ))}\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n );\n};\n\nexport default memo(CountryPicker);\n","import axios from \"axios\";\n\nimport { IP_LOOKUP_ACCESS_TOKEN } from \"../constants\";\n\nconst fetchLocationDetails = () =>\n axios.get(\n \"https://neeto-ip-lookup-web-production.neetodeployapp.com/location\",\n { headers: { \"X-ACCESS-TOKEN\": IP_LOOKUP_ACCESS_TOKEN } }\n );\n\nconst neetoIpLookupApi = { fetchLocationDetails };\nexport default neetoIpLookupApi;\n","import i18next from \"i18next\";\nimport {\n formatIncompletePhoneNumber,\n isValidPhoneNumber,\n parsePhoneNumber,\n} from \"libphonenumber-js/min\";\nimport { getFromLocalStorage, setToLocalStorage } from \"neetocommons/v2/utils\";\nimport * as yup from \"yup\";\n\nimport neetoIpLookupApi from \"./apis/neeto_ip_lookup\";\nimport { IP_LOOKUP_STORAGE_KEY, MAX_CACHE_AGE } from \"./constants\";\n\nexport const isPhoneNumberValid = (value = \"\", ...rest) =>\n isValidPhoneNumber(value, ...rest);\n\nexport const validation = (\n message = i18next.t(\"neetoMolecules.phoneNumberInput.validations.invalid\")\n) =>\n yup\n .string()\n .test(\"phoneNumber\", message, phoneNumber =>\n phoneNumber ? isValidPhoneNumber(phoneNumber) : true\n );\n\nexport const getPhoneData = (value, defaultCountryCode) => {\n try {\n const parsedValue = parsePhoneNumber(value, defaultCountryCode);\n\n return {\n phoneNumber: parsedValue.number,\n international: parsedValue.formatInternational(),\n countryCode: parsedValue.country || defaultCountryCode,\n };\n } catch {\n return {\n phoneNumber: value,\n international: formatIncompletePhoneNumber(value, defaultCountryCode),\n countryCode: defaultCountryCode,\n };\n }\n};\n\nexport const fetchLocationDetails = async () => {\n const stored = getFromLocalStorage(IP_LOOKUP_STORAGE_KEY);\n const { data, timestamp } = stored || {};\n const isCacheValid = timestamp && Date.now() - timestamp < MAX_CACHE_AGE;\n\n if (isCacheValid) return data;\n\n try {\n const details = await neetoIpLookupApi.fetchLocationDetails();\n const timestamp = Date.now();\n setToLocalStorage(IP_LOOKUP_STORAGE_KEY, { data: details, timestamp });\n\n return details;\n } catch {\n return data || null;\n }\n};\n\nexport const isNumeric = char => char >= \"0\" && char <= \"9\";\n\nexport const preserveCursor = callback => event => {\n const start = event.target.selectionStart;\n const end = event.target.selectionEnd;\n const len = event.target.value.length;\n const result = callback(event);\n const delta = event.target.value.length - len;\n event.target.setSelectionRange(start + delta, end + delta);\n\n return result;\n};\n","import { forwardRef, useState } from \"react\";\n\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupInput,\n} from \"@bigbinary/neeto-atoms/primitives\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport classnames from \"classnames\";\nimport {\n formatIncompletePhoneNumber,\n getCountryCallingCode,\n} from \"libphonenumber-js/min\";\nimport { noop, findBy } from \"neetocist\";\nimport PropTypes from \"prop-types\";\n\nimport { IP_LOOKUP_STORAGE_KEY } from \"./constants\";\nimport CountryPicker from \"./CountryPicker\";\nimport { COUNTRY_PICKER_OPTIONS } from \"./CountryPicker/constants\";\nimport {\n getPhoneData,\n isNumeric,\n preserveCursor,\n fetchLocationDetails,\n} from \"./utils\";\n\nconst PhoneNumberInput = forwardRef(\n (\n {\n value = \"\",\n onChange = noop,\n className,\n error,\n selectProps,\n initialCountryCode,\n ...inputProps\n },\n ref\n ) => {\n const safeValue = value ?? \"\";\n\n const [countryCode, setCountryCode] = useState(\n () => getPhoneData(safeValue).countryCode || initialCountryCode\n );\n\n const { data: ipCountry } = useQuery({\n queryKey: [IP_LOOKUP_STORAGE_KEY],\n queryFn: fetchLocationDetails,\n enabled: !countryCode,\n staleTime: Infinity,\n gcTime: Infinity,\n select: data =>\n findBy({ value: data.countryCode }, COUNTRY_PICKER_OPTIONS),\n });\n\n const finalCountryCode = countryCode || ipCountry?.value || \"US\";\n const formattedValue = formatIncompletePhoneNumber(\n safeValue,\n finalCountryCode\n );\n\n const onKeyDown = preserveCursor(event => {\n if (event.key !== \"Backspace\") return;\n const left = event.target.value.substring(0, event.target.selectionStart);\n const right = event.target.value.substring(event.target.selectionEnd);\n let index = left.length - 1;\n while (index > 0 && !isNumeric(left[index])) index--;\n const newValue = left.substring(0, index + 1) + right;\n if (newValue) event.target.value = newValue;\n });\n\n const onInputChange = preserveCursor(event => {\n const phoneData = getPhoneData(event.target.value, finalCountryCode);\n event.target.value = formatIncompletePhoneNumber(event.target.value);\n setCountryCode(phoneData.countryCode);\n onChange(phoneData.phoneNumber);\n });\n\n const onChangeCountry = nextCountryCode => {\n const phoneData = getPhoneData(safeValue, finalCountryCode);\n const prevPrefix = `+${getCountryCallingCode(phoneData.countryCode)}`;\n const nextPrefix = `+${getCountryCallingCode(nextCountryCode)}`;\n setCountryCode(nextCountryCode);\n onChange(nextPrefix + safeValue.replace(prevPrefix, \"\"));\n };\n\n return (\n <div {...{ className }}>\n <InputGroup\n className={classnames(\n \"neeto-molecules-phone-number-input__group\",\n !!error && \"border-destructive ring-destructive/20 ring-3\"\n )}\n >\n <InputGroupAddon\n align=\"inline-start\"\n className=\"neeto-molecules-phone-number-input__addon p-0\"\n >\n <CountryPicker\n countryCode={finalCountryCode}\n onChange={onChangeCountry}\n {...selectProps}\n />\n </InputGroupAddon>\n <InputGroupInput\n {...{ onKeyDown, ref }}\n aria-invalid={!!error || undefined}\n autoComplete=\"tel\"\n data-testid=\"phonenumber-input\"\n inputMode=\"tel\"\n type=\"tel\"\n value={formattedValue}\n onChange={onInputChange}\n {...inputProps}\n />\n </InputGroup>\n {error && <p className=\"text-destructive mt-1 text-sm\">{error}</p>}\n </div>\n );\n }\n);\n\nPhoneNumberInput.displayName = \"PhoneNumberInput\";\n\nPhoneNumberInput.propTypes = {\n value: PropTypes.string,\n onChange: PropTypes.func,\n className: PropTypes.string,\n error: PropTypes.string,\n selectProps: PropTypes.object,\n initialCountryCode: PropTypes.string,\n};\n\nexport default PhoneNumberInput;\n"],"names":["IP_LOOKUP_ACCESS_TOKEN","IP_LOOKUP_STORAGE_KEY","MAX_CACHE_AGE","COUNTRY_PICKER_OPTIONS","getCountries","filter","code","countries","map","label","name","value","sort","a","b","localeCompare","CountryPicker","_ref","_countries$countryCod","countryCode","onChange","disabled","_useState","useState","_useState2","_slicedToArray","open","setOpen","handleSelect","nextValue","_jsxs","Popover","onOpenChange","children","_jsx","PopoverTrigger","asChild","Button","className","size","variant","i18next","t","emoji","ChevronDownIcon","PopoverContent","align","sideOffset","onClick","event","stopPropagation","Command","CommandInput","placeholder","CommandList","CommandEmpty","_ref2","_countries$value","CommandItem","concat","onSelect","memo","fetchLocationDetails","axios","get","headers","neetoIpLookupApi","e","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","Object","create","_regeneratorDefine2","f","p","y","G","v","d","bind","length","l","TypeError","call","done","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","isPhoneNumberValid","arguments","undefined","_len","rest","Array","_key","isValidPhoneNumber","apply","validation","message","yup","string","test","phoneNumber","getPhoneData","defaultCountryCode","parsedValue","parsePhoneNumber","number","international","formatInternational","country","_unused","formatIncompletePhoneNumber","_asyncToGenerator","_callee","stored","data","timestamp","isCacheValid","details","_timestamp","_context","getFromLocalStorage","Date","now","setToLocalStorage","isNumeric","char","preserveCursor","callback","start","target","selectionStart","end","selectionEnd","len","result","delta","setSelectionRange","PhoneNumberInput","forwardRef","ref","_ref$value","_ref$onChange","noop","error","selectProps","initialCountryCode","inputProps","_objectWithoutProperties","_excluded","safeValue","setCountryCode","_useQuery","useQuery","queryKey","queryFn","enabled","staleTime","Infinity","gcTime","select","findBy","ipCountry","finalCountryCode","formattedValue","onKeyDown","key","left","substring","right","index","newValue","onInputChange","phoneData","onChangeCountry","nextCountryCode","prevPrefix","getCountryCallingCode","nextPrefix","replace","InputGroup","classnames","InputGroupAddon","_objectSpread","InputGroupInput","autoComplete","inputMode","type"],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
|
+
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
3
|
+
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
4
|
+
import { useState, useEffect } from 'react';
|
|
5
|
+
import classnames from 'classnames';
|
|
6
|
+
import { jsx, Fragment } from 'react/jsx-runtime';
|
|
7
|
+
|
|
8
|
+
var _excluded$1 = ["className"];
|
|
9
|
+
function ownKeys$1(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; }
|
|
10
|
+
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
11
|
+
var ImagePlaceholder = function ImagePlaceholder(_ref) {
|
|
12
|
+
var _ref$className = _ref.className,
|
|
13
|
+
className = _ref$className === void 0 ? "" : _ref$className,
|
|
14
|
+
props = _objectWithoutProperties(_ref, _excluded$1);
|
|
15
|
+
return /*#__PURE__*/jsx("div", _objectSpread$1({
|
|
16
|
+
className: classnames("bg-muted", _defineProperty({}, className, className)),
|
|
17
|
+
"data-testid": "fallback-image"
|
|
18
|
+
}, props));
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
var _excluded = ["src", "fallback"];
|
|
22
|
+
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; }
|
|
23
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).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; }
|
|
24
|
+
var ImageWithFallback = function ImageWithFallback(_ref) {
|
|
25
|
+
var src = _ref.src,
|
|
26
|
+
fallback = _ref.fallback,
|
|
27
|
+
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
28
|
+
var _useState = useState(false),
|
|
29
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
30
|
+
isLoaded = _useState2[0],
|
|
31
|
+
setIsLoaded = _useState2[1];
|
|
32
|
+
useEffect(function () {
|
|
33
|
+
var img = new Image();
|
|
34
|
+
img.onload = function () {
|
|
35
|
+
setIsLoaded(true);
|
|
36
|
+
};
|
|
37
|
+
img.src = src;
|
|
38
|
+
}, [src]);
|
|
39
|
+
return isLoaded ? /*#__PURE__*/jsx("img", _objectSpread({
|
|
40
|
+
"data-testid": "original-image"
|
|
41
|
+
}, _objectSpread({
|
|
42
|
+
src: src
|
|
43
|
+
}, otherProps))) : /*#__PURE__*/jsx(Fragment, {
|
|
44
|
+
children: fallback || /*#__PURE__*/jsx(ImagePlaceholder, _objectSpread({}, otherProps))
|
|
45
|
+
});
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export { ImageWithFallback as default };
|
|
49
|
+
//# sourceMappingURL=ImageWithFallback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImageWithFallback.js","sources":["../../src/v2/components/ImageWithFallback/ImagePlaceholder.jsx","../../src/v2/components/ImageWithFallback/index.jsx"],"sourcesContent":["import classnames from \"classnames\";\n\nconst ImagePlaceholder = ({ className = \"\", ...props }) => (\n <div\n className={classnames(\"bg-muted\", { [className]: className })}\n data-testid=\"fallback-image\"\n {...props}\n />\n);\n\nexport default ImagePlaceholder;\n","import { useEffect, useState } from \"react\";\n\nimport PropTypes from \"prop-types\";\n\nimport ImagePlaceholder from \"./ImagePlaceholder\";\n\nconst ImageWithFallback = ({ src, fallback, ...otherProps }) => {\n const [isLoaded, setIsLoaded] = useState(false);\n\n useEffect(() => {\n const img = new Image();\n img.onload = () => {\n setIsLoaded(true);\n };\n img.src = src;\n }, [src]);\n\n return isLoaded ? (\n <img data-testid=\"original-image\" {...{ src, ...otherProps }} />\n ) : (\n <>{fallback || <ImagePlaceholder {...otherProps} />}</>\n );\n};\n\nImageWithFallback.propTypes = {\n /**\n * The provide the source of the image.\n */\n src: PropTypes.string,\n /**\n * Displays a fallback component in case no image is available.\n */\n fallback: PropTypes.node,\n};\n\nexport default ImageWithFallback;\n"],"names":["ImagePlaceholder","_ref","_ref$className","className","props","_objectWithoutProperties","_excluded","_jsx","_objectSpread","classnames","_defineProperty","ImageWithFallback","src","fallback","otherProps","_useState","useState","_useState2","_slicedToArray","isLoaded","setIsLoaded","useEffect","img","Image","onload","_Fragment","children"],"mappings":";;;;;;;;;;AAEA,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAAAC,cAAA,GAAAD,IAAA,CAAME,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,cAAA;AAAKE,IAAAA,KAAK,GAAAC,wBAAA,CAAAJ,IAAA,EAAAK,WAAA,CAAA;EAAA,oBAClDC,GAAA,QAAAC,eAAA,CAAA;IACEL,SAAS,EAAEM,UAAU,CAAC,UAAU,EAAAC,eAAA,CAAA,EAAA,EAAKP,SAAS,EAAGA,SAAS,CAAE,CAAE;IAC9D,aAAA,EAAY;GAAgB,EACxBC,KAAK,CACV,CAAC;AAAA,CACH;;;;;ACFD,IAAMO,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAV,IAAA,EAAyC;AAAA,EAAA,IAAnCW,GAAG,GAAAX,IAAA,CAAHW,GAAG;IAAEC,QAAQ,GAAAZ,IAAA,CAARY,QAAQ;AAAKC,IAAAA,UAAU,GAAAT,wBAAA,CAAAJ,IAAA,EAAAK,SAAA,CAAA;AACvD,EAAA,IAAAS,SAAA,GAAgCC,QAAQ,CAAC,KAAK,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAxCI,IAAAA,QAAQ,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,WAAW,GAAAH,UAAA,CAAA,CAAA,CAAA;AAE5BI,EAAAA,SAAS,CAAC,YAAM;AACd,IAAA,IAAMC,GAAG,GAAG,IAAIC,KAAK,EAAE;IACvBD,GAAG,CAACE,MAAM,GAAG,YAAM;MACjBJ,WAAW,CAAC,IAAI,CAAC;IACnB,CAAC;IACDE,GAAG,CAACV,GAAG,GAAGA,GAAG;AACf,EAAA,CAAC,EAAE,CAACA,GAAG,CAAC,CAAC;AAET,EAAA,OAAOO,QAAQ,gBACbZ,GAAA,CAAA,KAAA,EAAAC,aAAA,CAAA;IAAK,aAAA,EAAY;AAAgB,GAAA,EAAAA,aAAA,CAAA;AAAOI,IAAAA,GAAG,EAAHA;AAAG,GAAA,EAAKE,UAAU,CAAA,CAAK,CAAC,gBAEhEP,GAAA,CAAAkB,QAAA,EAAA;IAAAC,QAAA,EAAGb,QAAQ,iBAAIN,GAAA,CAACP,gBAAgB,EAAAQ,aAAA,CAAA,EAAA,EAAKM,UAAU,CAAG;AAAC,GAAG,CACvD;AACH;;;;"}
|
package/dist/v2/PhoneNumber.js
CHANGED
|
@@ -2,8 +2,8 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
|
2
2
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
3
3
|
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
4
4
|
import { useField } from 'formik';
|
|
5
|
-
import { P as PhoneNumberInput, g as getPhoneData } from '../phone-number-
|
|
6
|
-
export { i as isPhoneNumberValid, v as validation } from '../phone-number-
|
|
5
|
+
import { P as PhoneNumberInput, g as getPhoneData } from '../phone-number-D9soCpCv.js';
|
|
6
|
+
export { i as isPhoneNumberValid, v as validation } from '../phone-number-D9soCpCv.js';
|
|
7
7
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
8
8
|
import { memo } from 'react';
|
|
9
9
|
import { Tooltip, Typography, Button } from '@bigbinary/neeto-atoms';
|
package/dist/v2/ProductEmbed.js
CHANGED
|
@@ -24,8 +24,9 @@ import { globalProps as globalProps$1 } from '@bigbinary/neeto-commons-frontend/
|
|
|
24
24
|
import BrowserPreview from './BrowserPreview.js';
|
|
25
25
|
import Container from './Container.js';
|
|
26
26
|
import Header from './Header.js';
|
|
27
|
-
import {
|
|
27
|
+
import { A as ArrowLeft } from '../arrow-left-B-s28MD1.js';
|
|
28
28
|
import '../circle-question-mark-Dib48f5Z.js';
|
|
29
|
+
import '../createLucideIcon-mNMhCCpf.js';
|
|
29
30
|
import '@bigbinary/neeto-commons-frontend/v2/react-utils/useBreakpoints';
|
|
30
31
|
import 'react-syntax-highlighter/dist/esm/languages/prism/javascript';
|
|
31
32
|
import 'react-syntax-highlighter/dist/esm/prism-light.js';
|
|
@@ -47,20 +48,6 @@ import '@bigbinary/neeto-commons-frontend/v2/react-utils/useUpdateEffect';
|
|
|
47
48
|
import '@bigbinary/neeto-commons-frontend/v2/utils';
|
|
48
49
|
import '../search-DCgpNjip.js';
|
|
49
50
|
|
|
50
|
-
/**
|
|
51
|
-
* @license lucide-react v1.7.0 - ISC
|
|
52
|
-
*
|
|
53
|
-
* This source code is licensed under the ISC license.
|
|
54
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
55
|
-
*/
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
const __iconNode = [
|
|
59
|
-
["path", { d: "m12 19-7-7 7-7", key: "1l729n" }],
|
|
60
|
-
["path", { d: "M19 12H5", key: "x3x0zl" }]
|
|
61
|
-
];
|
|
62
|
-
const ArrowLeft = createLucideIcon("arrow-left", __iconNode);
|
|
63
|
-
|
|
64
51
|
var FLOATING_BUTTON_POSITIONS = [{
|
|
65
52
|
label: t("neetoMolecules.productEmbed.floatingPopup.position.bottomLeft"),
|
|
66
53
|
value: "bottomLeft"
|