@bigbinary/neetoui 8.2.29 → 8.2.30
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/MultiEmailInput.js
CHANGED
|
@@ -49,10 +49,10 @@ import 'tippy.js';
|
|
|
49
49
|
import './Popover.js';
|
|
50
50
|
import './Typography.js';
|
|
51
51
|
|
|
52
|
-
var _excluded$
|
|
52
|
+
var _excluded$2 = ["children"],
|
|
53
53
|
_excluded2 = ["children"];
|
|
54
|
-
function ownKeys$
|
|
55
|
-
function _objectSpread$
|
|
54
|
+
function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
55
|
+
function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
56
56
|
var STYLES = {
|
|
57
57
|
border: {
|
|
58
58
|
"default": "1px solid rgb(var(--neeto-ui-gray-400))",
|
|
@@ -65,7 +65,7 @@ var STYLES = {
|
|
|
65
65
|
};
|
|
66
66
|
var CustomControl = function CustomControl(_ref) {
|
|
67
67
|
var children = _ref.children,
|
|
68
|
-
props = _objectWithoutProperties(_ref, _excluded$
|
|
68
|
+
props = _objectWithoutProperties(_ref, _excluded$2);
|
|
69
69
|
var getValue = props.getValue;
|
|
70
70
|
var _props$selectProps = props.selectProps,
|
|
71
71
|
isFocused = _props$selectProps.isFocused,
|
|
@@ -89,7 +89,7 @@ var CustomControl = function CustomControl(_ref) {
|
|
|
89
89
|
prevValue.current = value;
|
|
90
90
|
}, [isFocused, value]);
|
|
91
91
|
return /*#__PURE__*/React__default.createElement(components.Control, _extends({}, props, {
|
|
92
|
-
innerProps: _objectSpread$
|
|
92
|
+
innerProps: _objectSpread$2(_objectSpread$2({}, props.innerProps), {}, {
|
|
93
93
|
ref: controlRef
|
|
94
94
|
})
|
|
95
95
|
}), prefix && /*#__PURE__*/React__default.createElement("div", {
|
|
@@ -104,7 +104,7 @@ var CustomDropdownIndicator = function CustomDropdownIndicator(props) {
|
|
|
104
104
|
};
|
|
105
105
|
var MultiValueRemove = function MultiValueRemove(props) {
|
|
106
106
|
return /*#__PURE__*/React__default.createElement(components.MultiValueRemove, _extends({}, props, {
|
|
107
|
-
innerProps: _objectSpread$
|
|
107
|
+
innerProps: _objectSpread$2(_objectSpread$2({}, props.innerProps), {}, _defineProperty({}, "data-cy", "".concat(hyphenize(props.data.label), "-remove-icon")))
|
|
108
108
|
}), /*#__PURE__*/React__default.createElement(Close, {
|
|
109
109
|
size: 16
|
|
110
110
|
}));
|
|
@@ -123,7 +123,7 @@ var CustomValueContainer = function CustomValueContainer(_ref2) {
|
|
|
123
123
|
rest = _children.slice(1);
|
|
124
124
|
var shouldCollapse = !isAlwaysExpanded && !isFocused && value.length > visibleEmailsCount;
|
|
125
125
|
return /*#__PURE__*/React__default.createElement(components.ValueContainer, _extends({}, props, {
|
|
126
|
-
innerProps: _objectSpread$
|
|
126
|
+
innerProps: _objectSpread$2(_objectSpread$2({}, props.innerProps), {}, _defineProperty({}, "data-cy", "multi-email-input-container"))
|
|
127
127
|
}), shouldCollapse ? firstChild.slice(0, visibleEmailsCount) : firstChild, shouldCollapse && /*#__PURE__*/React__default.createElement(Tag, {
|
|
128
128
|
label: "".concat(value.length - visibleEmailsCount, " more"),
|
|
129
129
|
style: "secondary"
|
|
@@ -131,7 +131,7 @@ var CustomValueContainer = function CustomValueContainer(_ref2) {
|
|
|
131
131
|
};
|
|
132
132
|
var CustomClearIndicator = function CustomClearIndicator(props) {
|
|
133
133
|
return /*#__PURE__*/React__default.createElement(components.ClearIndicator, _extends({}, props, {
|
|
134
|
-
innerProps: _objectSpread$
|
|
134
|
+
innerProps: _objectSpread$2(_objectSpread$2({}, props.innerProps), {}, _defineProperty({}, "data-cy", "clear-all-button"))
|
|
135
135
|
}), /*#__PURE__*/React__default.createElement(Close, {
|
|
136
136
|
className: "cursor-pointer",
|
|
137
137
|
size: 16
|
|
@@ -139,7 +139,7 @@ var CustomClearIndicator = function CustomClearIndicator(props) {
|
|
|
139
139
|
};
|
|
140
140
|
var SelectContainer = function SelectContainer(props) {
|
|
141
141
|
return /*#__PURE__*/React__default.createElement(components.SelectContainer, _extends({}, props, {
|
|
142
|
-
innerProps: _objectSpread$
|
|
142
|
+
innerProps: _objectSpread$2(_objectSpread$2({}, props.innerProps), {}, _defineProperty({}, "data-cy", "multi-email-select-container"))
|
|
143
143
|
}));
|
|
144
144
|
};
|
|
145
145
|
var Input = function Input(props) {
|
|
@@ -160,7 +160,7 @@ var CUSTOM_STYLES = {
|
|
|
160
160
|
input: assoc("overflow", "hidden"),
|
|
161
161
|
multiValue: function multiValue(styles, _ref3) {
|
|
162
162
|
var valid = _ref3.data.valid;
|
|
163
|
-
return _objectSpread$
|
|
163
|
+
return _objectSpread$2(_objectSpread$2({}, styles), {}, {
|
|
164
164
|
border: valid ? STYLES.border["default"] : STYLES.border.error,
|
|
165
165
|
color: valid ? STYLES.color["default"] : STYLES.color.error
|
|
166
166
|
});
|
|
@@ -176,31 +176,50 @@ var CUSTOM_COMPONENTS = {
|
|
|
176
176
|
Input: Input
|
|
177
177
|
};
|
|
178
178
|
|
|
179
|
-
var
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
179
|
+
var _excluded$1 = ["label", "value"];
|
|
180
|
+
function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
181
|
+
function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
182
|
+
var getEmailsMap = function getEmailsMap() {
|
|
183
|
+
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
184
|
+
var inputEmails = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
185
|
+
return new Map([].concat(_toConsumableArray(inputEmails), _toConsumableArray(options)).map(function (option) {
|
|
186
|
+
return [option.value, option];
|
|
187
|
+
}));
|
|
188
|
+
};
|
|
189
|
+
var processEmailOptions = function processEmailOptions() {
|
|
190
|
+
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
191
|
+
var inputEmails = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
192
|
+
var emailsMap = getEmailsMap(options, inputEmails);
|
|
193
|
+
return function (email) {
|
|
194
|
+
var emailDetails = emailsMap.get(email) || {
|
|
195
|
+
value: email
|
|
196
|
+
};
|
|
197
|
+
return formatEmailInputOption(emailDetails);
|
|
184
198
|
};
|
|
185
199
|
};
|
|
186
|
-
var
|
|
187
|
-
var
|
|
188
|
-
|
|
189
|
-
|
|
200
|
+
var formatEmailInputOption = function formatEmailInputOption(_ref) {
|
|
201
|
+
var label = _ref.label,
|
|
202
|
+
value = _ref.value,
|
|
203
|
+
otherDetails = _objectWithoutProperties(_ref, _excluded$1);
|
|
204
|
+
return _objectSpread$1(_objectSpread$1({
|
|
205
|
+
label: label !== null && label !== void 0 ? label : value,
|
|
206
|
+
value: value
|
|
207
|
+
}, otherDetails), {}, {
|
|
208
|
+
valid: EMAIL_REGEX.test(value)
|
|
190
209
|
});
|
|
210
|
+
};
|
|
211
|
+
var pruneDuplicates = function pruneDuplicates(inputValues, options) {
|
|
212
|
+
var emailProcessor = processEmailOptions(options, inputValues);
|
|
213
|
+
var emails = pluck("value", inputValues);
|
|
191
214
|
var uniqueValuesSet = new Set();
|
|
192
215
|
var duplicates = [];
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
uniqueValuesSet.add(value);
|
|
198
|
-
}
|
|
216
|
+
emails.forEach(function (pristineEmail) {
|
|
217
|
+
var email = pristineEmail.toLowerCase();
|
|
218
|
+
if (uniqueValuesSet.has(email)) duplicates.push(pristineEmail);
|
|
219
|
+
uniqueValuesSet.add(email);
|
|
199
220
|
});
|
|
200
221
|
var uniqueValues = Array.from(uniqueValuesSet);
|
|
201
|
-
var uniqueEmails = uniqueValues.map(
|
|
202
|
-
return formatEmailInputOptions(email);
|
|
203
|
-
});
|
|
222
|
+
var uniqueEmails = uniqueValues.map(emailProcessor);
|
|
204
223
|
return {
|
|
205
224
|
uniqueEmails: uniqueEmails,
|
|
206
225
|
duplicates: duplicates
|
|
@@ -274,9 +293,11 @@ var MultiEmailInput = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
274
293
|
var inputValues = inputValue.match(EMAIL_SEPARATION_REGEX);
|
|
275
294
|
var emailMatches = inputValue.match(UNSTRICT_EMAIL_REGEX) || inputValues || [];
|
|
276
295
|
var emails = emailMatches.map(function (email) {
|
|
277
|
-
return
|
|
296
|
+
return {
|
|
297
|
+
value: email
|
|
298
|
+
};
|
|
278
299
|
});
|
|
279
|
-
var _pruneDuplicates = pruneDuplicates([].concat(_toConsumableArray(value), _toConsumableArray(emails))),
|
|
300
|
+
var _pruneDuplicates = pruneDuplicates([].concat(_toConsumableArray(value), _toConsumableArray(emails)), otherProps.options),
|
|
280
301
|
uniqueEmails = _pruneDuplicates.uniqueEmails,
|
|
281
302
|
duplicates = _pruneDuplicates.duplicates;
|
|
282
303
|
onChange(uniqueEmails);
|
|
@@ -305,8 +326,9 @@ var MultiEmailInput = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
305
326
|
};
|
|
306
327
|
var onCreateOption = function onCreateOption(input) {
|
|
307
328
|
var _otherProps$onCreateO;
|
|
308
|
-
var
|
|
309
|
-
|
|
329
|
+
var _pruneDuplicates2 = pruneDuplicates([].concat(_toConsumableArray(value), [{
|
|
330
|
+
value: input
|
|
331
|
+
}]), otherProps.options),
|
|
310
332
|
uniqueEmails = _pruneDuplicates2.uniqueEmails,
|
|
311
333
|
duplicates = _pruneDuplicates2.duplicates;
|
|
312
334
|
onChange(uniqueEmails);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiEmailInput.js","sources":["../src/components/MultiEmailInput/constants.jsx","../src/components/MultiEmailInput/utils.js","../src/components/MultiEmailInput/index.jsx"],"sourcesContent":["import React, { useEffect, useRef } from \"react\";\n\nimport { Close } from \"neetoicons\";\nimport { assoc } from \"ramda\";\nimport { components } from \"react-select\";\n\nimport Tag from \"components/Tag\";\nimport { hyphenize } from \"utils\";\n\nconst STYLES = {\n border: {\n default: \"1px solid rgb(var(--neeto-ui-gray-400))\",\n error: \"1px solid rgb(var(--neeto-ui-error-800)) !important\",\n },\n color: {\n default: \"rgb(var(--neeto-ui-gray-800))\",\n error: \"rgb(var(--neeto-ui-error-800)) !important\",\n },\n};\n\nconst CustomControl = ({ children, ...props }) => {\n const { getValue } = props;\n const { isFocused, prefix } = props.selectProps;\n\n const prevValue = useRef([]);\n const controlRef = useRef(null);\n\n const value = getValue();\n\n const scrollToBottom = () => {\n const scrollContainer = controlRef.current;\n if (!scrollContainer) return;\n\n const { scrollHeight, clientHeight } = scrollContainer;\n\n scrollContainer.scrollTo({ top: scrollHeight - clientHeight });\n };\n\n useEffect(() => {\n const isItemAdded = value.length > prevValue.current.length;\n const isItemDeleted = value.length < prevValue.current.length;\n\n if ((isFocused && !isItemDeleted) || isItemAdded) scrollToBottom();\n\n prevValue.current = value;\n }, [isFocused, value]);\n\n return (\n <components.Control\n {...props}\n innerProps={{ ...props.innerProps, ref: controlRef }}\n >\n {prefix && <div className=\"neeto-ui-email-input__prefix\">{prefix}</div>}\n {children}\n </components.Control>\n );\n};\n\nconst CustomDropdownIndicator = props => {\n const { suffix } = props.selectProps;\n\n return suffix ? (\n <components.DropdownIndicator {...props}>\n <div className=\"neeto-ui-email-input__suffix\">{suffix}</div>\n </components.DropdownIndicator>\n ) : null;\n};\n\nconst MultiValueRemove = props => (\n <components.MultiValueRemove\n {...props}\n innerProps={{\n ...props.innerProps,\n [\"data-cy\"]: `${hyphenize(props.data.label)}-remove-icon`,\n }}\n >\n <Close size={16} />\n </components.MultiValueRemove>\n);\n\nconst CustomValueContainer = ({ children, ...props }) => {\n const {\n getValue,\n selectProps: { isFocused, visibleEmailsCount, isAlwaysExpanded },\n } = props;\n const value = getValue();\n const [firstChild, ...rest] = children;\n\n const shouldCollapse =\n !isAlwaysExpanded && !isFocused && value.length > visibleEmailsCount;\n\n return (\n <components.ValueContainer\n {...props}\n innerProps={{\n ...props.innerProps,\n [\"data-cy\"]: \"multi-email-input-container\",\n }}\n >\n {shouldCollapse ? firstChild.slice(0, visibleEmailsCount) : firstChild}\n {shouldCollapse && (\n <Tag\n label={`${value.length - visibleEmailsCount} more`}\n style=\"secondary\"\n />\n )}\n {rest}\n </components.ValueContainer>\n );\n};\n\nconst CustomClearIndicator = props => (\n <components.ClearIndicator\n {...props}\n innerProps={{\n ...props.innerProps,\n [\"data-cy\"]: \"clear-all-button\",\n }}\n >\n <Close className=\"cursor-pointer\" size={16} />\n </components.ClearIndicator>\n);\n\nconst SelectContainer = props => (\n <components.SelectContainer\n {...props}\n innerProps={{\n ...props.innerProps,\n [\"data-cy\"]: \"multi-email-select-container\",\n }}\n />\n);\n\nconst Input = props => (\n <components.Input\n {...props}\n data-cy=\"email-select-input-field\"\n onPaste={e => {\n const clipboardData = e.clipboardData.getData(\"Text\");\n\n setTimeout(() => props.selectProps.handleEmailChange(clipboardData));\n }}\n />\n);\n\nexport const EMAIL_REGEX = new RegExp(\n \"^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\\\.[A-Z]{2,}$\",\n \"i\"\n);\n\nexport const UNSTRICT_EMAIL_REGEX =\n /(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))/g;\n\nexport const EMAIL_SEPARATION_REGEX = /[^\\s,]+/g;\n\nexport const CUSTOM_STYLES = {\n input: assoc(\"overflow\", \"hidden\"),\n multiValue: (styles, { data: { valid } }) => ({\n ...styles,\n border: valid ? STYLES.border.default : STYLES.border.error,\n color: valid ? STYLES.color.default : STYLES.color.error,\n }),\n};\n\nexport const CUSTOM_COMPONENTS = {\n DropdownIndicator: CustomDropdownIndicator,\n Control: CustomControl,\n MultiValueRemove,\n ValueContainer: CustomValueContainer,\n ClearIndicator: CustomClearIndicator,\n SelectContainer,\n Input,\n};\n","import { pluck } from \"ramda\";\n\nimport { EMAIL_REGEX } from \"./constants\";\n\nexport const formatEmailInputOptions = label => ({\n label,\n value: label,\n valid: EMAIL_REGEX.test(label),\n});\n\nexport const pruneDuplicates = inputValues => {\n const values = pluck(\"value\", inputValues);\n const caseInsensitiveValues = values.map(value => value.toLowerCase());\n const uniqueValuesSet = new Set();\n const duplicates = [];\n\n caseInsensitiveValues.forEach((value, index) => {\n if (uniqueValuesSet.has(value)) {\n duplicates.push(values[index]);\n } else {\n uniqueValuesSet.add(value);\n }\n });\n\n const uniqueValues = Array.from(uniqueValuesSet);\n const uniqueEmails = uniqueValues.map(email =>\n formatEmailInputOptions(email)\n );\n\n return { uniqueEmails, duplicates };\n};\n\nexport const renderValidEmails = values =>\n values.filter(email => email.valid && email);\n\nexport const getValidEmailsCount = values => renderValidEmails(values).length;\n\nexport const renderDefaultText = count => (count === 1 ? \"email\" : \"emails\");\n","import React, { useState, forwardRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport { mergeLeft, isEmpty } from \"ramda\";\nimport CreatableSelect from \"react-select/creatable\";\n\nimport { noop, hyphenize } from \"utils\";\n\nimport {\n EMAIL_SEPARATION_REGEX,\n CUSTOM_STYLES,\n UNSTRICT_EMAIL_REGEX,\n CUSTOM_COMPONENTS,\n} from \"./constants\";\nimport {\n formatEmailInputOptions,\n pruneDuplicates,\n renderValidEmails,\n renderDefaultText,\n getValidEmailsCount,\n} from \"./utils\";\n\nimport Label from \"../Label\";\n\nconst MultiEmailInput = forwardRef(\n (\n {\n label = \"Email(s)\",\n placeholder = \"\",\n helpText = \"\",\n value = [],\n onChange = noop,\n error = \"\",\n onBlur = noop,\n filterInvalidEmails,\n counter,\n disabled = false,\n maxHeight = 200,\n required = false,\n labelProps,\n visibleEmailsCount = 3,\n isCreateable = true,\n isAlwaysExpanded = false,\n ...otherProps\n },\n ref\n ) => {\n const [inputValue, setInputValue] = useState(\"\");\n const [isFocused, setIsFocused] = useState(false);\n const [duplicateEmails, setDuplicateEmails] = useState([]);\n\n const isCounterVisible =\n !!counter &&\n (!counter.startsFrom || getValidEmailsCount(value) >= counter.startsFrom);\n\n const isOptionsPresent = !!otherProps.options;\n\n const handleFilterEmails = () => onChange(renderValidEmails(value));\n\n const handleEmailChange = inputValue => {\n if (!isCreateable) return;\n\n const inputValues = inputValue.match(EMAIL_SEPARATION_REGEX);\n const emailMatches =\n inputValue.match(UNSTRICT_EMAIL_REGEX) || inputValues || [];\n\n const emails = emailMatches.map(email => formatEmailInputOptions(email));\n const { uniqueEmails, duplicates } = pruneDuplicates([\n ...value,\n ...emails,\n ]);\n onChange(uniqueEmails);\n setDuplicateEmails(duplicates);\n setInputValue(\"\");\n };\n\n const handleKeyDown = event => {\n if (!inputValue) return;\n\n switch (event.key) {\n case \"Enter\": {\n handleEmailChange(inputValue);\n !isOptionsPresent && event.preventDefault();\n event.stopPropagation();\n\n return;\n }\n case \"Tab\":\n case \",\":\n case \" \": {\n handleEmailChange(inputValue);\n event.preventDefault();\n event.stopPropagation();\n }\n }\n };\n\n const onCreateOption = input => {\n const email = formatEmailInputOptions(input);\n const { uniqueEmails, duplicates } = pruneDuplicates([...value, email]);\n onChange(uniqueEmails);\n setDuplicateEmails(duplicates);\n otherProps?.onCreateOption?.(input);\n };\n\n const handleBlur = event => {\n inputValue ? handleEmailChange(inputValue) : onBlur(event);\n setIsFocused(false);\n setDuplicateEmails([]);\n };\n\n let overrideProps = {};\n\n if (isOptionsPresent) {\n const isValidNewOption = (inputValue, _, selectOptions) => {\n if (!isCreateable) return false;\n\n const isInputEmpty = isEmpty(inputValue.trim());\n const doesInputContainSeparator =\n inputValue.includes(\",\") || inputValue.includes(\" \");\n\n const isInputPresentInOptions = selectOptions.find(\n option => option.value === inputValue.toLowerCase()\n );\n\n return !(\n isInputEmpty ||\n doesInputContainSeparator ||\n isInputPresentInOptions\n );\n };\n overrideProps = { onCreateOption, isValidNewOption };\n }\n\n const isFilterEmailsLinkVisible =\n !!filterInvalidEmails && value.length > getValidEmailsCount(value);\n\n return (\n <div className=\"neeto-ui-input__wrapper neeto-ui-email-input__wrapper\">\n <div className=\"neeto-ui-email-input__label-wrapper\">\n {label && (\n <Label\n {...{ required }}\n className=\"neeto-ui-email-input__label\"\n data-cy={`${hyphenize(label)}-input-label`}\n {...labelProps}\n >\n {label}\n </Label>\n )}\n {isCounterVisible && (\n <p\n className=\"neeto-ui-email-input__counter\"\n data-cy={`${hyphenize(label)}-email-counter`}\n >\n {getValidEmailsCount(value)}{\" \"}\n {counter.label\n ? counter.label\n : renderDefaultText(getValidEmailsCount(value))}\n </p>\n )}\n </div>\n <CreatableSelect\n isMulti\n required\n classNamePrefix=\"neeto-ui-react-select\"\n components={CUSTOM_COMPONENTS}\n isDisabled={disabled}\n className={classnames(\n \"neeto-ui-react-select__container neeto-ui-react-select__container--medium neeto-ui-email-input__select\",\n { \"neeto-ui-react-select__container--error\": !!error }\n )}\n styles={{\n ...CUSTOM_STYLES,\n control: mergeLeft({\n maxHeight: `${maxHeight}px`,\n overflowY: \"auto\",\n }),\n }}\n onBlur={handleBlur}\n onFocus={() => setIsFocused(true)}\n onInputChange={inputValue => setInputValue(inputValue)}\n onKeyDown={handleKeyDown}\n {...{\n handleEmailChange,\n inputValue,\n isAlwaysExpanded,\n isFocused,\n onChange,\n placeholder,\n ref,\n value,\n visibleEmailsCount,\n ...(!isOptionsPresent && { menuIsOpen: false }),\n ...otherProps,\n ...overrideProps,\n }}\n />\n {!!error && (\n <p\n className=\"neeto-ui-input__error\"\n data-cy={`${hyphenize(label)}-input-error`}\n >\n {error}\n {isFilterEmailsLinkVisible && (\n <span\n className=\"neeto-ui-font-semibold cursor-pointer\"\n onClick={handleFilterEmails}\n >\n \n {filterInvalidEmails.label\n ? filterInvalidEmails.label\n : \"Click here to remove invalid emails.\"}\n </span>\n )}\n </p>\n )}\n {!!helpText && (\n <p\n className=\"neeto-ui-input__help-text\"\n data-cy={`${hyphenize(label)}-input-help`}\n >\n {helpText}\n </p>\n )}\n {!!duplicateEmails.length && (\n <p\n className=\"neeto-ui-input__warning\"\n data-cy={`${hyphenize(label)}-duplicate-emails-warning`}\n >\n Duplicate emails that were removed case insensitively:{\" \"}\n {duplicateEmails.join(\", \")}\n </p>\n )}\n </div>\n );\n }\n);\n\nMultiEmailInput.displayName = \"MultiEmailInput\";\n\nMultiEmailInput.propTypes = {\n /**\n * To specify the text to be displayed above the Input field.\n */\n label: PropTypes.string,\n /**\n * To specify the label props to be passed to the Label component.\n */\n labelProps: PropTypes.object,\n /**\n * To specify the text to be displayed inside the Input field.\n */\n placeholder: PropTypes.string,\n /**\n * To specify the helper text message to be displayed below the Input field.\n */\n helpText: PropTypes.string,\n /**\n * To specify the value to be displayed inside the Input field.\n */\n value: PropTypes.array,\n /**\n * To specify the error message to be shown below the Input field.\n */\n error: PropTypes.string,\n /**\n * To specify whether the Input field is disabled or not.\n */\n disabled: PropTypes.bool,\n /**\n * To specify whether the Input field is required or not.\n */\n required: PropTypes.bool,\n /**\n * To specify the message to be shown besides the error message to filter out the invalid emails.\n */\n filterInvalidEmails: PropTypes.shape({ label: PropTypes.string }),\n /**\n * To add an email counter next to the label.\n */\n counter: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n label: PropTypes.string,\n startsFrom: PropTypes.number,\n }),\n ]),\n /**\n * To specify the action to be triggered on modifying the Input field.\n */\n onChange: PropTypes.func,\n /**\n * To specify the action to be triggered on changing focus from the Input field.\n */\n onBlur: PropTypes.func,\n /**\n * To specify the maximum height (in pixels) of the container before it becomes scrollable.\n */\n maxHeight: PropTypes.number,\n /**\n * To specify the content to be added at the end of the Input field.\n */\n suffix: PropTypes.node,\n /**\n * To specify the content to be added at the beginning of the Input field.\n */\n prefix: PropTypes.node,\n /**\n * To specify the number of email to be displayed in the input field when not in focus.\n */\n visibleEmailsCount: PropTypes.number,\n /**\n * To specify whether a new email option can be created or not.\n */\n isCreateable: PropTypes.bool,\n /**\n * To specify whether the input field should always be shown in an expanded state or not.\n */\n isAlwaysExpanded: PropTypes.bool,\n};\n\nexport default MultiEmailInput;\n"],"names":["STYLES","border","error","color","CustomControl","_ref","children","props","_objectWithoutProperties","_excluded","getValue","_props$selectProps","selectProps","isFocused","prefix","prevValue","useRef","controlRef","value","scrollToBottom","scrollContainer","current","scrollHeight","clientHeight","scrollTo","top","useEffect","isItemAdded","length","isItemDeleted","React","createElement","components","Control","_extends","innerProps","_objectSpread","ref","className","CustomDropdownIndicator","suffix","DropdownIndicator","MultiValueRemove","_defineProperty","concat","hyphenize","data","label","Close","size","CustomValueContainer","_ref2","_excluded2","_props$selectProps2","visibleEmailsCount","isAlwaysExpanded","_children","_toArray","firstChild","rest","slice","shouldCollapse","ValueContainer","Tag","style","CustomClearIndicator","ClearIndicator","SelectContainer","Input","onPaste","e","clipboardData","getData","setTimeout","handleEmailChange","EMAIL_REGEX","RegExp","UNSTRICT_EMAIL_REGEX","EMAIL_SEPARATION_REGEX","CUSTOM_STYLES","input","assoc","multiValue","styles","_ref3","valid","CUSTOM_COMPONENTS","formatEmailInputOptions","test","pruneDuplicates","inputValues","values","pluck","caseInsensitiveValues","map","toLowerCase","uniqueValuesSet","Set","duplicates","forEach","index","has","push","add","uniqueValues","Array","from","uniqueEmails","email","renderValidEmails","filter","getValidEmailsCount","renderDefaultText","count","MultiEmailInput","forwardRef","_ref$label","_ref$placeholder","placeholder","_ref$helpText","helpText","_ref$value","_ref$onChange","onChange","noop","_ref$error","_ref$onBlur","onBlur","filterInvalidEmails","counter","_ref$disabled","disabled","_ref$maxHeight","maxHeight","_ref$required","required","labelProps","_ref$visibleEmailsCou","_ref$isCreateable","isCreateable","_ref$isAlwaysExpanded","otherProps","_useState","useState","_useState2","_slicedToArray","inputValue","setInputValue","_useState3","_useState4","setIsFocused","_useState5","_useState6","duplicateEmails","setDuplicateEmails","isCounterVisible","startsFrom","isOptionsPresent","options","handleFilterEmails","match","emailMatches","emails","_pruneDuplicates","_toConsumableArray","handleKeyDown","event","key","preventDefault","stopPropagation","onCreateOption","_otherProps$onCreateO","_pruneDuplicates2","call","handleBlur","overrideProps","isValidNewOption","_","selectOptions","isInputEmpty","isEmpty","trim","doesInputContainSeparator","includes","isInputPresentInOptions","find","option","isFilterEmailsLinkVisible","Label","CreatableSelect","isMulti","classNamePrefix","isDisabled","classnames","control","mergeLeft","overflowY","onFocus","onInputChange","onKeyDown","menuIsOpen","onClick","join","displayName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MultiEmailInput.js","sources":["../src/components/MultiEmailInput/constants.jsx","../src/components/MultiEmailInput/utils.js","../src/components/MultiEmailInput/index.jsx"],"sourcesContent":["import React, { useEffect, useRef } from \"react\";\n\nimport { Close } from \"neetoicons\";\nimport { assoc } from \"ramda\";\nimport { components } from \"react-select\";\n\nimport Tag from \"components/Tag\";\nimport { hyphenize } from \"utils\";\n\nconst STYLES = {\n border: {\n default: \"1px solid rgb(var(--neeto-ui-gray-400))\",\n error: \"1px solid rgb(var(--neeto-ui-error-800)) !important\",\n },\n color: {\n default: \"rgb(var(--neeto-ui-gray-800))\",\n error: \"rgb(var(--neeto-ui-error-800)) !important\",\n },\n};\n\nconst CustomControl = ({ children, ...props }) => {\n const { getValue } = props;\n const { isFocused, prefix } = props.selectProps;\n\n const prevValue = useRef([]);\n const controlRef = useRef(null);\n\n const value = getValue();\n\n const scrollToBottom = () => {\n const scrollContainer = controlRef.current;\n if (!scrollContainer) return;\n\n const { scrollHeight, clientHeight } = scrollContainer;\n\n scrollContainer.scrollTo({ top: scrollHeight - clientHeight });\n };\n\n useEffect(() => {\n const isItemAdded = value.length > prevValue.current.length;\n const isItemDeleted = value.length < prevValue.current.length;\n\n if ((isFocused && !isItemDeleted) || isItemAdded) scrollToBottom();\n\n prevValue.current = value;\n }, [isFocused, value]);\n\n return (\n <components.Control\n {...props}\n innerProps={{ ...props.innerProps, ref: controlRef }}\n >\n {prefix && <div className=\"neeto-ui-email-input__prefix\">{prefix}</div>}\n {children}\n </components.Control>\n );\n};\n\nconst CustomDropdownIndicator = props => {\n const { suffix } = props.selectProps;\n\n return suffix ? (\n <components.DropdownIndicator {...props}>\n <div className=\"neeto-ui-email-input__suffix\">{suffix}</div>\n </components.DropdownIndicator>\n ) : null;\n};\n\nconst MultiValueRemove = props => (\n <components.MultiValueRemove\n {...props}\n innerProps={{\n ...props.innerProps,\n [\"data-cy\"]: `${hyphenize(props.data.label)}-remove-icon`,\n }}\n >\n <Close size={16} />\n </components.MultiValueRemove>\n);\n\nconst CustomValueContainer = ({ children, ...props }) => {\n const {\n getValue,\n selectProps: { isFocused, visibleEmailsCount, isAlwaysExpanded },\n } = props;\n const value = getValue();\n const [firstChild, ...rest] = children;\n\n const shouldCollapse =\n !isAlwaysExpanded && !isFocused && value.length > visibleEmailsCount;\n\n return (\n <components.ValueContainer\n {...props}\n innerProps={{\n ...props.innerProps,\n [\"data-cy\"]: \"multi-email-input-container\",\n }}\n >\n {shouldCollapse ? firstChild.slice(0, visibleEmailsCount) : firstChild}\n {shouldCollapse && (\n <Tag\n label={`${value.length - visibleEmailsCount} more`}\n style=\"secondary\"\n />\n )}\n {rest}\n </components.ValueContainer>\n );\n};\n\nconst CustomClearIndicator = props => (\n <components.ClearIndicator\n {...props}\n innerProps={{\n ...props.innerProps,\n [\"data-cy\"]: \"clear-all-button\",\n }}\n >\n <Close className=\"cursor-pointer\" size={16} />\n </components.ClearIndicator>\n);\n\nconst SelectContainer = props => (\n <components.SelectContainer\n {...props}\n innerProps={{\n ...props.innerProps,\n [\"data-cy\"]: \"multi-email-select-container\",\n }}\n />\n);\n\nconst Input = props => (\n <components.Input\n {...props}\n data-cy=\"email-select-input-field\"\n onPaste={e => {\n const clipboardData = e.clipboardData.getData(\"Text\");\n\n setTimeout(() => props.selectProps.handleEmailChange(clipboardData));\n }}\n />\n);\n\nexport const EMAIL_REGEX = new RegExp(\n \"^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\\\.[A-Z]{2,}$\",\n \"i\"\n);\n\nexport const UNSTRICT_EMAIL_REGEX =\n /(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))/g;\n\nexport const EMAIL_SEPARATION_REGEX = /[^\\s,]+/g;\n\nexport const CUSTOM_STYLES = {\n input: assoc(\"overflow\", \"hidden\"),\n multiValue: (styles, { data: { valid } }) => ({\n ...styles,\n border: valid ? STYLES.border.default : STYLES.border.error,\n color: valid ? STYLES.color.default : STYLES.color.error,\n }),\n};\n\nexport const CUSTOM_COMPONENTS = {\n DropdownIndicator: CustomDropdownIndicator,\n Control: CustomControl,\n MultiValueRemove,\n ValueContainer: CustomValueContainer,\n ClearIndicator: CustomClearIndicator,\n SelectContainer,\n Input,\n};\n","import { pluck } from \"ramda\";\n\nimport { EMAIL_REGEX } from \"./constants\";\n\nconst getEmailsMap = (options = [], inputEmails = []) =>\n new Map([...inputEmails, ...options].map(option => [option.value, option]));\n\nconst processEmailOptions = (options = [], inputEmails = []) => {\n const emailsMap = getEmailsMap(options, inputEmails);\n\n return email => {\n const emailDetails = emailsMap.get(email) || { value: email };\n\n return formatEmailInputOption(emailDetails);\n };\n};\n\nexport const formatEmailInputOption = ({ label, value, ...otherDetails }) => ({\n label: label ?? value,\n value,\n ...otherDetails,\n valid: EMAIL_REGEX.test(value),\n});\n\nexport const pruneDuplicates = (inputValues, options) => {\n const emailProcessor = processEmailOptions(options, inputValues);\n const emails = pluck(\"value\", inputValues);\n const uniqueValuesSet = new Set();\n const duplicates = [];\n\n emails.forEach(pristineEmail => {\n const email = pristineEmail.toLowerCase();\n if (uniqueValuesSet.has(email)) duplicates.push(pristineEmail);\n\n uniqueValuesSet.add(email);\n });\n\n const uniqueValues = Array.from(uniqueValuesSet);\n const uniqueEmails = uniqueValues.map(emailProcessor);\n\n return { uniqueEmails, duplicates };\n};\n\nexport const renderValidEmails = values =>\n values.filter(email => email.valid && email);\n\nexport const getValidEmailsCount = values => renderValidEmails(values).length;\n\nexport const renderDefaultText = count => (count === 1 ? \"email\" : \"emails\");\n","import React, { useState, forwardRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport { mergeLeft, isEmpty } from \"ramda\";\nimport CreatableSelect from \"react-select/creatable\";\n\nimport { noop, hyphenize } from \"utils\";\n\nimport {\n EMAIL_SEPARATION_REGEX,\n CUSTOM_STYLES,\n UNSTRICT_EMAIL_REGEX,\n CUSTOM_COMPONENTS,\n} from \"./constants\";\nimport {\n pruneDuplicates,\n renderValidEmails,\n renderDefaultText,\n getValidEmailsCount,\n} from \"./utils\";\n\nimport Label from \"../Label\";\n\nconst MultiEmailInput = forwardRef(\n (\n {\n label = \"Email(s)\",\n placeholder = \"\",\n helpText = \"\",\n value = [],\n onChange = noop,\n error = \"\",\n onBlur = noop,\n filterInvalidEmails,\n counter,\n disabled = false,\n maxHeight = 200,\n required = false,\n labelProps,\n visibleEmailsCount = 3,\n isCreateable = true,\n isAlwaysExpanded = false,\n ...otherProps\n },\n ref\n ) => {\n const [inputValue, setInputValue] = useState(\"\");\n const [isFocused, setIsFocused] = useState(false);\n const [duplicateEmails, setDuplicateEmails] = useState([]);\n\n const isCounterVisible =\n !!counter &&\n (!counter.startsFrom || getValidEmailsCount(value) >= counter.startsFrom);\n\n const isOptionsPresent = !!otherProps.options;\n\n const handleFilterEmails = () => onChange(renderValidEmails(value));\n\n const handleEmailChange = inputValue => {\n if (!isCreateable) return;\n\n const inputValues = inputValue.match(EMAIL_SEPARATION_REGEX);\n const emailMatches =\n inputValue.match(UNSTRICT_EMAIL_REGEX) || inputValues || [];\n\n const emails = emailMatches.map(email => ({ value: email }));\n\n const { uniqueEmails, duplicates } = pruneDuplicates(\n [...value, ...emails],\n otherProps.options\n );\n onChange(uniqueEmails);\n setDuplicateEmails(duplicates);\n setInputValue(\"\");\n };\n\n const handleKeyDown = event => {\n if (!inputValue) return;\n\n switch (event.key) {\n case \"Enter\": {\n handleEmailChange(inputValue);\n !isOptionsPresent && event.preventDefault();\n event.stopPropagation();\n\n return;\n }\n case \"Tab\":\n case \",\":\n case \" \": {\n handleEmailChange(inputValue);\n event.preventDefault();\n event.stopPropagation();\n }\n }\n };\n\n const onCreateOption = input => {\n const { uniqueEmails, duplicates } = pruneDuplicates(\n [...value, { value: input }],\n otherProps.options\n );\n onChange(uniqueEmails);\n setDuplicateEmails(duplicates);\n otherProps?.onCreateOption?.(input);\n };\n\n const handleBlur = event => {\n inputValue ? handleEmailChange(inputValue) : onBlur(event);\n setIsFocused(false);\n setDuplicateEmails([]);\n };\n\n let overrideProps = {};\n\n if (isOptionsPresent) {\n const isValidNewOption = (inputValue, _, selectOptions) => {\n if (!isCreateable) return false;\n\n const isInputEmpty = isEmpty(inputValue.trim());\n const doesInputContainSeparator =\n inputValue.includes(\",\") || inputValue.includes(\" \");\n\n const isInputPresentInOptions = selectOptions.find(\n option => option.value === inputValue.toLowerCase()\n );\n\n return !(\n isInputEmpty ||\n doesInputContainSeparator ||\n isInputPresentInOptions\n );\n };\n overrideProps = { onCreateOption, isValidNewOption };\n }\n\n const isFilterEmailsLinkVisible =\n !!filterInvalidEmails && value.length > getValidEmailsCount(value);\n\n return (\n <div className=\"neeto-ui-input__wrapper neeto-ui-email-input__wrapper\">\n <div className=\"neeto-ui-email-input__label-wrapper\">\n {label && (\n <Label\n {...{ required }}\n className=\"neeto-ui-email-input__label\"\n data-cy={`${hyphenize(label)}-input-label`}\n {...labelProps}\n >\n {label}\n </Label>\n )}\n {isCounterVisible && (\n <p\n className=\"neeto-ui-email-input__counter\"\n data-cy={`${hyphenize(label)}-email-counter`}\n >\n {getValidEmailsCount(value)}{\" \"}\n {counter.label\n ? counter.label\n : renderDefaultText(getValidEmailsCount(value))}\n </p>\n )}\n </div>\n <CreatableSelect\n isMulti\n required\n classNamePrefix=\"neeto-ui-react-select\"\n components={CUSTOM_COMPONENTS}\n isDisabled={disabled}\n className={classnames(\n \"neeto-ui-react-select__container neeto-ui-react-select__container--medium neeto-ui-email-input__select\",\n { \"neeto-ui-react-select__container--error\": !!error }\n )}\n styles={{\n ...CUSTOM_STYLES,\n control: mergeLeft({\n maxHeight: `${maxHeight}px`,\n overflowY: \"auto\",\n }),\n }}\n onBlur={handleBlur}\n onFocus={() => setIsFocused(true)}\n onInputChange={inputValue => setInputValue(inputValue)}\n onKeyDown={handleKeyDown}\n {...{\n handleEmailChange,\n inputValue,\n isAlwaysExpanded,\n isFocused,\n onChange,\n placeholder,\n ref,\n value,\n visibleEmailsCount,\n ...(!isOptionsPresent && { menuIsOpen: false }),\n ...otherProps,\n ...overrideProps,\n }}\n />\n {!!error && (\n <p\n className=\"neeto-ui-input__error\"\n data-cy={`${hyphenize(label)}-input-error`}\n >\n {error}\n {isFilterEmailsLinkVisible && (\n <span\n className=\"neeto-ui-font-semibold cursor-pointer\"\n onClick={handleFilterEmails}\n >\n \n {filterInvalidEmails.label\n ? filterInvalidEmails.label\n : \"Click here to remove invalid emails.\"}\n </span>\n )}\n </p>\n )}\n {!!helpText && (\n <p\n className=\"neeto-ui-input__help-text\"\n data-cy={`${hyphenize(label)}-input-help`}\n >\n {helpText}\n </p>\n )}\n {!!duplicateEmails.length && (\n <p\n className=\"neeto-ui-input__warning\"\n data-cy={`${hyphenize(label)}-duplicate-emails-warning`}\n >\n Duplicate emails that were removed case insensitively:{\" \"}\n {duplicateEmails.join(\", \")}\n </p>\n )}\n </div>\n );\n }\n);\n\nMultiEmailInput.displayName = \"MultiEmailInput\";\n\nMultiEmailInput.propTypes = {\n /**\n * To specify the text to be displayed above the Input field.\n */\n label: PropTypes.string,\n /**\n * To specify the label props to be passed to the Label component.\n */\n labelProps: PropTypes.object,\n /**\n * To specify the text to be displayed inside the Input field.\n */\n placeholder: PropTypes.string,\n /**\n * To specify the helper text message to be displayed below the Input field.\n */\n helpText: PropTypes.string,\n /**\n * To specify the value to be displayed inside the Input field.\n */\n value: PropTypes.array,\n /**\n * To specify the error message to be shown below the Input field.\n */\n error: PropTypes.string,\n /**\n * To specify whether the Input field is disabled or not.\n */\n disabled: PropTypes.bool,\n /**\n * To specify whether the Input field is required or not.\n */\n required: PropTypes.bool,\n /**\n * To specify the message to be shown besides the error message to filter out the invalid emails.\n */\n filterInvalidEmails: PropTypes.shape({ label: PropTypes.string }),\n /**\n * To add an email counter next to the label.\n */\n counter: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n label: PropTypes.string,\n startsFrom: PropTypes.number,\n }),\n ]),\n /**\n * To specify the action to be triggered on modifying the Input field.\n */\n onChange: PropTypes.func,\n /**\n * To specify the action to be triggered on changing focus from the Input field.\n */\n onBlur: PropTypes.func,\n /**\n * To specify the maximum height (in pixels) of the container before it becomes scrollable.\n */\n maxHeight: PropTypes.number,\n /**\n * To specify the content to be added at the end of the Input field.\n */\n suffix: PropTypes.node,\n /**\n * To specify the content to be added at the beginning of the Input field.\n */\n prefix: PropTypes.node,\n /**\n * To specify the number of email to be displayed in the input field when not in focus.\n */\n visibleEmailsCount: PropTypes.number,\n /**\n * To specify whether a new email option can be created or not.\n */\n isCreateable: PropTypes.bool,\n /**\n * To specify whether the input field should always be shown in an expanded state or not.\n */\n isAlwaysExpanded: PropTypes.bool,\n};\n\nexport default MultiEmailInput;\n"],"names":["STYLES","border","error","color","CustomControl","_ref","children","props","_objectWithoutProperties","_excluded","getValue","_props$selectProps","selectProps","isFocused","prefix","prevValue","useRef","controlRef","value","scrollToBottom","scrollContainer","current","scrollHeight","clientHeight","scrollTo","top","useEffect","isItemAdded","length","isItemDeleted","React","createElement","components","Control","_extends","innerProps","_objectSpread","ref","className","CustomDropdownIndicator","suffix","DropdownIndicator","MultiValueRemove","_defineProperty","concat","hyphenize","data","label","Close","size","CustomValueContainer","_ref2","_excluded2","_props$selectProps2","visibleEmailsCount","isAlwaysExpanded","_children","_toArray","firstChild","rest","slice","shouldCollapse","ValueContainer","Tag","style","CustomClearIndicator","ClearIndicator","SelectContainer","Input","onPaste","e","clipboardData","getData","setTimeout","handleEmailChange","EMAIL_REGEX","RegExp","UNSTRICT_EMAIL_REGEX","EMAIL_SEPARATION_REGEX","CUSTOM_STYLES","input","assoc","multiValue","styles","_ref3","valid","CUSTOM_COMPONENTS","getEmailsMap","options","arguments","undefined","inputEmails","Map","_toConsumableArray","map","option","processEmailOptions","emailsMap","email","emailDetails","get","formatEmailInputOption","otherDetails","test","pruneDuplicates","inputValues","emailProcessor","emails","pluck","uniqueValuesSet","Set","duplicates","forEach","pristineEmail","toLowerCase","has","push","add","uniqueValues","Array","from","uniqueEmails","renderValidEmails","values","filter","getValidEmailsCount","renderDefaultText","count","MultiEmailInput","forwardRef","_ref$label","_ref$placeholder","placeholder","_ref$helpText","helpText","_ref$value","_ref$onChange","onChange","noop","_ref$error","_ref$onBlur","onBlur","filterInvalidEmails","counter","_ref$disabled","disabled","_ref$maxHeight","maxHeight","_ref$required","required","labelProps","_ref$visibleEmailsCou","_ref$isCreateable","isCreateable","_ref$isAlwaysExpanded","otherProps","_useState","useState","_useState2","_slicedToArray","inputValue","setInputValue","_useState3","_useState4","setIsFocused","_useState5","_useState6","duplicateEmails","setDuplicateEmails","isCounterVisible","startsFrom","isOptionsPresent","handleFilterEmails","match","emailMatches","_pruneDuplicates","handleKeyDown","event","key","preventDefault","stopPropagation","onCreateOption","_otherProps$onCreateO","_pruneDuplicates2","call","handleBlur","overrideProps","isValidNewOption","_","selectOptions","isInputEmpty","isEmpty","trim","doesInputContainSeparator","includes","isInputPresentInOptions","find","isFilterEmailsLinkVisible","Label","CreatableSelect","isMulti","classNamePrefix","isDisabled","classnames","control","mergeLeft","overflowY","onFocus","onInputChange","onKeyDown","menuIsOpen","onClick","join","displayName"],"mappings":"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"}
|
|
@@ -51,10 +51,10 @@ require('tippy.js');
|
|
|
51
51
|
require('./Popover.js');
|
|
52
52
|
require('./Typography.js');
|
|
53
53
|
|
|
54
|
-
var _excluded$
|
|
54
|
+
var _excluded$2 = ["children"],
|
|
55
55
|
_excluded2 = ["children"];
|
|
56
|
-
function ownKeys$
|
|
57
|
-
function _objectSpread$
|
|
56
|
+
function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
57
|
+
function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
58
58
|
var STYLES = {
|
|
59
59
|
border: {
|
|
60
60
|
"default": "1px solid rgb(var(--neeto-ui-gray-400))",
|
|
@@ -67,7 +67,7 @@ var STYLES = {
|
|
|
67
67
|
};
|
|
68
68
|
var CustomControl = function CustomControl(_ref) {
|
|
69
69
|
var children = _ref.children,
|
|
70
|
-
props = _objectWithoutProperties(_ref, _excluded$
|
|
70
|
+
props = _objectWithoutProperties(_ref, _excluded$2);
|
|
71
71
|
var getValue = props.getValue;
|
|
72
72
|
var _props$selectProps = props.selectProps,
|
|
73
73
|
isFocused = _props$selectProps.isFocused,
|
|
@@ -91,7 +91,7 @@ var CustomControl = function CustomControl(_ref) {
|
|
|
91
91
|
prevValue.current = value;
|
|
92
92
|
}, [isFocused, value]);
|
|
93
93
|
return /*#__PURE__*/React.createElement(reactSelectCreatable_esm.components.Control, _extends({}, props, {
|
|
94
|
-
innerProps: _objectSpread$
|
|
94
|
+
innerProps: _objectSpread$2(_objectSpread$2({}, props.innerProps), {}, {
|
|
95
95
|
ref: controlRef
|
|
96
96
|
})
|
|
97
97
|
}), prefix && /*#__PURE__*/React.createElement("div", {
|
|
@@ -106,7 +106,7 @@ var CustomDropdownIndicator = function CustomDropdownIndicator(props) {
|
|
|
106
106
|
};
|
|
107
107
|
var MultiValueRemove = function MultiValueRemove(props) {
|
|
108
108
|
return /*#__PURE__*/React.createElement(reactSelectCreatable_esm.components.MultiValueRemove, _extends({}, props, {
|
|
109
|
-
innerProps: _objectSpread$
|
|
109
|
+
innerProps: _objectSpread$2(_objectSpread$2({}, props.innerProps), {}, _defineProperty({}, "data-cy", "".concat(index.hyphenize(props.data.label), "-remove-icon")))
|
|
110
110
|
}), /*#__PURE__*/React.createElement(neetoIcons.Close, {
|
|
111
111
|
size: 16
|
|
112
112
|
}));
|
|
@@ -125,7 +125,7 @@ var CustomValueContainer = function CustomValueContainer(_ref2) {
|
|
|
125
125
|
rest = _children.slice(1);
|
|
126
126
|
var shouldCollapse = !isAlwaysExpanded && !isFocused && value.length > visibleEmailsCount;
|
|
127
127
|
return /*#__PURE__*/React.createElement(reactSelectCreatable_esm.components.ValueContainer, _extends({}, props, {
|
|
128
|
-
innerProps: _objectSpread$
|
|
128
|
+
innerProps: _objectSpread$2(_objectSpread$2({}, props.innerProps), {}, _defineProperty({}, "data-cy", "multi-email-input-container"))
|
|
129
129
|
}), shouldCollapse ? firstChild.slice(0, visibleEmailsCount) : firstChild, shouldCollapse && /*#__PURE__*/React.createElement(Tag, {
|
|
130
130
|
label: "".concat(value.length - visibleEmailsCount, " more"),
|
|
131
131
|
style: "secondary"
|
|
@@ -133,7 +133,7 @@ var CustomValueContainer = function CustomValueContainer(_ref2) {
|
|
|
133
133
|
};
|
|
134
134
|
var CustomClearIndicator = function CustomClearIndicator(props) {
|
|
135
135
|
return /*#__PURE__*/React.createElement(reactSelectCreatable_esm.components.ClearIndicator, _extends({}, props, {
|
|
136
|
-
innerProps: _objectSpread$
|
|
136
|
+
innerProps: _objectSpread$2(_objectSpread$2({}, props.innerProps), {}, _defineProperty({}, "data-cy", "clear-all-button"))
|
|
137
137
|
}), /*#__PURE__*/React.createElement(neetoIcons.Close, {
|
|
138
138
|
className: "cursor-pointer",
|
|
139
139
|
size: 16
|
|
@@ -141,7 +141,7 @@ var CustomClearIndicator = function CustomClearIndicator(props) {
|
|
|
141
141
|
};
|
|
142
142
|
var SelectContainer = function SelectContainer(props) {
|
|
143
143
|
return /*#__PURE__*/React.createElement(reactSelectCreatable_esm.components.SelectContainer, _extends({}, props, {
|
|
144
|
-
innerProps: _objectSpread$
|
|
144
|
+
innerProps: _objectSpread$2(_objectSpread$2({}, props.innerProps), {}, _defineProperty({}, "data-cy", "multi-email-select-container"))
|
|
145
145
|
}));
|
|
146
146
|
};
|
|
147
147
|
var Input = function Input(props) {
|
|
@@ -162,7 +162,7 @@ var CUSTOM_STYLES = {
|
|
|
162
162
|
input: ramda.assoc("overflow", "hidden"),
|
|
163
163
|
multiValue: function multiValue(styles, _ref3) {
|
|
164
164
|
var valid = _ref3.data.valid;
|
|
165
|
-
return _objectSpread$
|
|
165
|
+
return _objectSpread$2(_objectSpread$2({}, styles), {}, {
|
|
166
166
|
border: valid ? STYLES.border["default"] : STYLES.border.error,
|
|
167
167
|
color: valid ? STYLES.color["default"] : STYLES.color.error
|
|
168
168
|
});
|
|
@@ -178,31 +178,50 @@ var CUSTOM_COMPONENTS = {
|
|
|
178
178
|
Input: Input
|
|
179
179
|
};
|
|
180
180
|
|
|
181
|
-
var
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
181
|
+
var _excluded$1 = ["label", "value"];
|
|
182
|
+
function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
183
|
+
function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
184
|
+
var getEmailsMap = function getEmailsMap() {
|
|
185
|
+
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
186
|
+
var inputEmails = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
187
|
+
return new Map([].concat(_toConsumableArray(inputEmails), _toConsumableArray(options)).map(function (option) {
|
|
188
|
+
return [option.value, option];
|
|
189
|
+
}));
|
|
190
|
+
};
|
|
191
|
+
var processEmailOptions = function processEmailOptions() {
|
|
192
|
+
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
193
|
+
var inputEmails = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
194
|
+
var emailsMap = getEmailsMap(options, inputEmails);
|
|
195
|
+
return function (email) {
|
|
196
|
+
var emailDetails = emailsMap.get(email) || {
|
|
197
|
+
value: email
|
|
198
|
+
};
|
|
199
|
+
return formatEmailInputOption(emailDetails);
|
|
186
200
|
};
|
|
187
201
|
};
|
|
188
|
-
var
|
|
189
|
-
var
|
|
190
|
-
|
|
191
|
-
|
|
202
|
+
var formatEmailInputOption = function formatEmailInputOption(_ref) {
|
|
203
|
+
var label = _ref.label,
|
|
204
|
+
value = _ref.value,
|
|
205
|
+
otherDetails = _objectWithoutProperties(_ref, _excluded$1);
|
|
206
|
+
return _objectSpread$1(_objectSpread$1({
|
|
207
|
+
label: label !== null && label !== void 0 ? label : value,
|
|
208
|
+
value: value
|
|
209
|
+
}, otherDetails), {}, {
|
|
210
|
+
valid: EMAIL_REGEX.test(value)
|
|
192
211
|
});
|
|
212
|
+
};
|
|
213
|
+
var pruneDuplicates = function pruneDuplicates(inputValues, options) {
|
|
214
|
+
var emailProcessor = processEmailOptions(options, inputValues);
|
|
215
|
+
var emails = ramda.pluck("value", inputValues);
|
|
193
216
|
var uniqueValuesSet = new Set();
|
|
194
217
|
var duplicates = [];
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
uniqueValuesSet.add(value);
|
|
200
|
-
}
|
|
218
|
+
emails.forEach(function (pristineEmail) {
|
|
219
|
+
var email = pristineEmail.toLowerCase();
|
|
220
|
+
if (uniqueValuesSet.has(email)) duplicates.push(pristineEmail);
|
|
221
|
+
uniqueValuesSet.add(email);
|
|
201
222
|
});
|
|
202
223
|
var uniqueValues = Array.from(uniqueValuesSet);
|
|
203
|
-
var uniqueEmails = uniqueValues.map(
|
|
204
|
-
return formatEmailInputOptions(email);
|
|
205
|
-
});
|
|
224
|
+
var uniqueEmails = uniqueValues.map(emailProcessor);
|
|
206
225
|
return {
|
|
207
226
|
uniqueEmails: uniqueEmails,
|
|
208
227
|
duplicates: duplicates
|
|
@@ -276,9 +295,11 @@ var MultiEmailInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
276
295
|
var inputValues = inputValue.match(EMAIL_SEPARATION_REGEX);
|
|
277
296
|
var emailMatches = inputValue.match(UNSTRICT_EMAIL_REGEX) || inputValues || [];
|
|
278
297
|
var emails = emailMatches.map(function (email) {
|
|
279
|
-
return
|
|
298
|
+
return {
|
|
299
|
+
value: email
|
|
300
|
+
};
|
|
280
301
|
});
|
|
281
|
-
var _pruneDuplicates = pruneDuplicates([].concat(_toConsumableArray(value), _toConsumableArray(emails))),
|
|
302
|
+
var _pruneDuplicates = pruneDuplicates([].concat(_toConsumableArray(value), _toConsumableArray(emails)), otherProps.options),
|
|
282
303
|
uniqueEmails = _pruneDuplicates.uniqueEmails,
|
|
283
304
|
duplicates = _pruneDuplicates.duplicates;
|
|
284
305
|
onChange(uniqueEmails);
|
|
@@ -307,8 +328,9 @@ var MultiEmailInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
307
328
|
};
|
|
308
329
|
var onCreateOption = function onCreateOption(input) {
|
|
309
330
|
var _otherProps$onCreateO;
|
|
310
|
-
var
|
|
311
|
-
|
|
331
|
+
var _pruneDuplicates2 = pruneDuplicates([].concat(_toConsumableArray(value), [{
|
|
332
|
+
value: input
|
|
333
|
+
}]), otherProps.options),
|
|
312
334
|
uniqueEmails = _pruneDuplicates2.uniqueEmails,
|
|
313
335
|
duplicates = _pruneDuplicates2.duplicates;
|
|
314
336
|
onChange(uniqueEmails);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiEmailInput.js","sources":["../../src/components/MultiEmailInput/constants.jsx","../../src/components/MultiEmailInput/utils.js","../../src/components/MultiEmailInput/index.jsx"],"sourcesContent":["import React, { useEffect, useRef } from \"react\";\n\nimport { Close } from \"neetoicons\";\nimport { assoc } from \"ramda\";\nimport { components } from \"react-select\";\n\nimport Tag from \"components/Tag\";\nimport { hyphenize } from \"utils\";\n\nconst STYLES = {\n border: {\n default: \"1px solid rgb(var(--neeto-ui-gray-400))\",\n error: \"1px solid rgb(var(--neeto-ui-error-800)) !important\",\n },\n color: {\n default: \"rgb(var(--neeto-ui-gray-800))\",\n error: \"rgb(var(--neeto-ui-error-800)) !important\",\n },\n};\n\nconst CustomControl = ({ children, ...props }) => {\n const { getValue } = props;\n const { isFocused, prefix } = props.selectProps;\n\n const prevValue = useRef([]);\n const controlRef = useRef(null);\n\n const value = getValue();\n\n const scrollToBottom = () => {\n const scrollContainer = controlRef.current;\n if (!scrollContainer) return;\n\n const { scrollHeight, clientHeight } = scrollContainer;\n\n scrollContainer.scrollTo({ top: scrollHeight - clientHeight });\n };\n\n useEffect(() => {\n const isItemAdded = value.length > prevValue.current.length;\n const isItemDeleted = value.length < prevValue.current.length;\n\n if ((isFocused && !isItemDeleted) || isItemAdded) scrollToBottom();\n\n prevValue.current = value;\n }, [isFocused, value]);\n\n return (\n <components.Control\n {...props}\n innerProps={{ ...props.innerProps, ref: controlRef }}\n >\n {prefix && <div className=\"neeto-ui-email-input__prefix\">{prefix}</div>}\n {children}\n </components.Control>\n );\n};\n\nconst CustomDropdownIndicator = props => {\n const { suffix } = props.selectProps;\n\n return suffix ? (\n <components.DropdownIndicator {...props}>\n <div className=\"neeto-ui-email-input__suffix\">{suffix}</div>\n </components.DropdownIndicator>\n ) : null;\n};\n\nconst MultiValueRemove = props => (\n <components.MultiValueRemove\n {...props}\n innerProps={{\n ...props.innerProps,\n [\"data-cy\"]: `${hyphenize(props.data.label)}-remove-icon`,\n }}\n >\n <Close size={16} />\n </components.MultiValueRemove>\n);\n\nconst CustomValueContainer = ({ children, ...props }) => {\n const {\n getValue,\n selectProps: { isFocused, visibleEmailsCount, isAlwaysExpanded },\n } = props;\n const value = getValue();\n const [firstChild, ...rest] = children;\n\n const shouldCollapse =\n !isAlwaysExpanded && !isFocused && value.length > visibleEmailsCount;\n\n return (\n <components.ValueContainer\n {...props}\n innerProps={{\n ...props.innerProps,\n [\"data-cy\"]: \"multi-email-input-container\",\n }}\n >\n {shouldCollapse ? firstChild.slice(0, visibleEmailsCount) : firstChild}\n {shouldCollapse && (\n <Tag\n label={`${value.length - visibleEmailsCount} more`}\n style=\"secondary\"\n />\n )}\n {rest}\n </components.ValueContainer>\n );\n};\n\nconst CustomClearIndicator = props => (\n <components.ClearIndicator\n {...props}\n innerProps={{\n ...props.innerProps,\n [\"data-cy\"]: \"clear-all-button\",\n }}\n >\n <Close className=\"cursor-pointer\" size={16} />\n </components.ClearIndicator>\n);\n\nconst SelectContainer = props => (\n <components.SelectContainer\n {...props}\n innerProps={{\n ...props.innerProps,\n [\"data-cy\"]: \"multi-email-select-container\",\n }}\n />\n);\n\nconst Input = props => (\n <components.Input\n {...props}\n data-cy=\"email-select-input-field\"\n onPaste={e => {\n const clipboardData = e.clipboardData.getData(\"Text\");\n\n setTimeout(() => props.selectProps.handleEmailChange(clipboardData));\n }}\n />\n);\n\nexport const EMAIL_REGEX = new RegExp(\n \"^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\\\.[A-Z]{2,}$\",\n \"i\"\n);\n\nexport const UNSTRICT_EMAIL_REGEX =\n /(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))/g;\n\nexport const EMAIL_SEPARATION_REGEX = /[^\\s,]+/g;\n\nexport const CUSTOM_STYLES = {\n input: assoc(\"overflow\", \"hidden\"),\n multiValue: (styles, { data: { valid } }) => ({\n ...styles,\n border: valid ? STYLES.border.default : STYLES.border.error,\n color: valid ? STYLES.color.default : STYLES.color.error,\n }),\n};\n\nexport const CUSTOM_COMPONENTS = {\n DropdownIndicator: CustomDropdownIndicator,\n Control: CustomControl,\n MultiValueRemove,\n ValueContainer: CustomValueContainer,\n ClearIndicator: CustomClearIndicator,\n SelectContainer,\n Input,\n};\n","import { pluck } from \"ramda\";\n\nimport { EMAIL_REGEX } from \"./constants\";\n\nexport const formatEmailInputOptions = label => ({\n label,\n value: label,\n valid: EMAIL_REGEX.test(label),\n});\n\nexport const pruneDuplicates = inputValues => {\n const values = pluck(\"value\", inputValues);\n const caseInsensitiveValues = values.map(value => value.toLowerCase());\n const uniqueValuesSet = new Set();\n const duplicates = [];\n\n caseInsensitiveValues.forEach((value, index) => {\n if (uniqueValuesSet.has(value)) {\n duplicates.push(values[index]);\n } else {\n uniqueValuesSet.add(value);\n }\n });\n\n const uniqueValues = Array.from(uniqueValuesSet);\n const uniqueEmails = uniqueValues.map(email =>\n formatEmailInputOptions(email)\n );\n\n return { uniqueEmails, duplicates };\n};\n\nexport const renderValidEmails = values =>\n values.filter(email => email.valid && email);\n\nexport const getValidEmailsCount = values => renderValidEmails(values).length;\n\nexport const renderDefaultText = count => (count === 1 ? \"email\" : \"emails\");\n","import React, { useState, forwardRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport { mergeLeft, isEmpty } from \"ramda\";\nimport CreatableSelect from \"react-select/creatable\";\n\nimport { noop, hyphenize } from \"utils\";\n\nimport {\n EMAIL_SEPARATION_REGEX,\n CUSTOM_STYLES,\n UNSTRICT_EMAIL_REGEX,\n CUSTOM_COMPONENTS,\n} from \"./constants\";\nimport {\n formatEmailInputOptions,\n pruneDuplicates,\n renderValidEmails,\n renderDefaultText,\n getValidEmailsCount,\n} from \"./utils\";\n\nimport Label from \"../Label\";\n\nconst MultiEmailInput = forwardRef(\n (\n {\n label = \"Email(s)\",\n placeholder = \"\",\n helpText = \"\",\n value = [],\n onChange = noop,\n error = \"\",\n onBlur = noop,\n filterInvalidEmails,\n counter,\n disabled = false,\n maxHeight = 200,\n required = false,\n labelProps,\n visibleEmailsCount = 3,\n isCreateable = true,\n isAlwaysExpanded = false,\n ...otherProps\n },\n ref\n ) => {\n const [inputValue, setInputValue] = useState(\"\");\n const [isFocused, setIsFocused] = useState(false);\n const [duplicateEmails, setDuplicateEmails] = useState([]);\n\n const isCounterVisible =\n !!counter &&\n (!counter.startsFrom || getValidEmailsCount(value) >= counter.startsFrom);\n\n const isOptionsPresent = !!otherProps.options;\n\n const handleFilterEmails = () => onChange(renderValidEmails(value));\n\n const handleEmailChange = inputValue => {\n if (!isCreateable) return;\n\n const inputValues = inputValue.match(EMAIL_SEPARATION_REGEX);\n const emailMatches =\n inputValue.match(UNSTRICT_EMAIL_REGEX) || inputValues || [];\n\n const emails = emailMatches.map(email => formatEmailInputOptions(email));\n const { uniqueEmails, duplicates } = pruneDuplicates([\n ...value,\n ...emails,\n ]);\n onChange(uniqueEmails);\n setDuplicateEmails(duplicates);\n setInputValue(\"\");\n };\n\n const handleKeyDown = event => {\n if (!inputValue) return;\n\n switch (event.key) {\n case \"Enter\": {\n handleEmailChange(inputValue);\n !isOptionsPresent && event.preventDefault();\n event.stopPropagation();\n\n return;\n }\n case \"Tab\":\n case \",\":\n case \" \": {\n handleEmailChange(inputValue);\n event.preventDefault();\n event.stopPropagation();\n }\n }\n };\n\n const onCreateOption = input => {\n const email = formatEmailInputOptions(input);\n const { uniqueEmails, duplicates } = pruneDuplicates([...value, email]);\n onChange(uniqueEmails);\n setDuplicateEmails(duplicates);\n otherProps?.onCreateOption?.(input);\n };\n\n const handleBlur = event => {\n inputValue ? handleEmailChange(inputValue) : onBlur(event);\n setIsFocused(false);\n setDuplicateEmails([]);\n };\n\n let overrideProps = {};\n\n if (isOptionsPresent) {\n const isValidNewOption = (inputValue, _, selectOptions) => {\n if (!isCreateable) return false;\n\n const isInputEmpty = isEmpty(inputValue.trim());\n const doesInputContainSeparator =\n inputValue.includes(\",\") || inputValue.includes(\" \");\n\n const isInputPresentInOptions = selectOptions.find(\n option => option.value === inputValue.toLowerCase()\n );\n\n return !(\n isInputEmpty ||\n doesInputContainSeparator ||\n isInputPresentInOptions\n );\n };\n overrideProps = { onCreateOption, isValidNewOption };\n }\n\n const isFilterEmailsLinkVisible =\n !!filterInvalidEmails && value.length > getValidEmailsCount(value);\n\n return (\n <div className=\"neeto-ui-input__wrapper neeto-ui-email-input__wrapper\">\n <div className=\"neeto-ui-email-input__label-wrapper\">\n {label && (\n <Label\n {...{ required }}\n className=\"neeto-ui-email-input__label\"\n data-cy={`${hyphenize(label)}-input-label`}\n {...labelProps}\n >\n {label}\n </Label>\n )}\n {isCounterVisible && (\n <p\n className=\"neeto-ui-email-input__counter\"\n data-cy={`${hyphenize(label)}-email-counter`}\n >\n {getValidEmailsCount(value)}{\" \"}\n {counter.label\n ? counter.label\n : renderDefaultText(getValidEmailsCount(value))}\n </p>\n )}\n </div>\n <CreatableSelect\n isMulti\n required\n classNamePrefix=\"neeto-ui-react-select\"\n components={CUSTOM_COMPONENTS}\n isDisabled={disabled}\n className={classnames(\n \"neeto-ui-react-select__container neeto-ui-react-select__container--medium neeto-ui-email-input__select\",\n { \"neeto-ui-react-select__container--error\": !!error }\n )}\n styles={{\n ...CUSTOM_STYLES,\n control: mergeLeft({\n maxHeight: `${maxHeight}px`,\n overflowY: \"auto\",\n }),\n }}\n onBlur={handleBlur}\n onFocus={() => setIsFocused(true)}\n onInputChange={inputValue => setInputValue(inputValue)}\n onKeyDown={handleKeyDown}\n {...{\n handleEmailChange,\n inputValue,\n isAlwaysExpanded,\n isFocused,\n onChange,\n placeholder,\n ref,\n value,\n visibleEmailsCount,\n ...(!isOptionsPresent && { menuIsOpen: false }),\n ...otherProps,\n ...overrideProps,\n }}\n />\n {!!error && (\n <p\n className=\"neeto-ui-input__error\"\n data-cy={`${hyphenize(label)}-input-error`}\n >\n {error}\n {isFilterEmailsLinkVisible && (\n <span\n className=\"neeto-ui-font-semibold cursor-pointer\"\n onClick={handleFilterEmails}\n >\n \n {filterInvalidEmails.label\n ? filterInvalidEmails.label\n : \"Click here to remove invalid emails.\"}\n </span>\n )}\n </p>\n )}\n {!!helpText && (\n <p\n className=\"neeto-ui-input__help-text\"\n data-cy={`${hyphenize(label)}-input-help`}\n >\n {helpText}\n </p>\n )}\n {!!duplicateEmails.length && (\n <p\n className=\"neeto-ui-input__warning\"\n data-cy={`${hyphenize(label)}-duplicate-emails-warning`}\n >\n Duplicate emails that were removed case insensitively:{\" \"}\n {duplicateEmails.join(\", \")}\n </p>\n )}\n </div>\n );\n }\n);\n\nMultiEmailInput.displayName = \"MultiEmailInput\";\n\nMultiEmailInput.propTypes = {\n /**\n * To specify the text to be displayed above the Input field.\n */\n label: PropTypes.string,\n /**\n * To specify the label props to be passed to the Label component.\n */\n labelProps: PropTypes.object,\n /**\n * To specify the text to be displayed inside the Input field.\n */\n placeholder: PropTypes.string,\n /**\n * To specify the helper text message to be displayed below the Input field.\n */\n helpText: PropTypes.string,\n /**\n * To specify the value to be displayed inside the Input field.\n */\n value: PropTypes.array,\n /**\n * To specify the error message to be shown below the Input field.\n */\n error: PropTypes.string,\n /**\n * To specify whether the Input field is disabled or not.\n */\n disabled: PropTypes.bool,\n /**\n * To specify whether the Input field is required or not.\n */\n required: PropTypes.bool,\n /**\n * To specify the message to be shown besides the error message to filter out the invalid emails.\n */\n filterInvalidEmails: PropTypes.shape({ label: PropTypes.string }),\n /**\n * To add an email counter next to the label.\n */\n counter: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n label: PropTypes.string,\n startsFrom: PropTypes.number,\n }),\n ]),\n /**\n * To specify the action to be triggered on modifying the Input field.\n */\n onChange: PropTypes.func,\n /**\n * To specify the action to be triggered on changing focus from the Input field.\n */\n onBlur: PropTypes.func,\n /**\n * To specify the maximum height (in pixels) of the container before it becomes scrollable.\n */\n maxHeight: PropTypes.number,\n /**\n * To specify the content to be added at the end of the Input field.\n */\n suffix: PropTypes.node,\n /**\n * To specify the content to be added at the beginning of the Input field.\n */\n prefix: PropTypes.node,\n /**\n * To specify the number of email to be displayed in the input field when not in focus.\n */\n visibleEmailsCount: PropTypes.number,\n /**\n * To specify whether a new email option can be created or not.\n */\n isCreateable: PropTypes.bool,\n /**\n * To specify whether the input field should always be shown in an expanded state or not.\n */\n isAlwaysExpanded: PropTypes.bool,\n};\n\nexport default MultiEmailInput;\n"],"names":["STYLES","border","error","color","CustomControl","_ref","children","props","_objectWithoutProperties","_excluded","getValue","_props$selectProps","selectProps","isFocused","prefix","prevValue","useRef","controlRef","value","scrollToBottom","scrollContainer","current","scrollHeight","clientHeight","scrollTo","top","useEffect","isItemAdded","length","isItemDeleted","React","createElement","components","Control","_extends","innerProps","_objectSpread","ref","className","CustomDropdownIndicator","suffix","DropdownIndicator","MultiValueRemove","_defineProperty","concat","hyphenize","data","label","Close","size","CustomValueContainer","_ref2","_excluded2","_props$selectProps2","visibleEmailsCount","isAlwaysExpanded","_children","_toArray","firstChild","rest","slice","shouldCollapse","ValueContainer","Tag","style","CustomClearIndicator","ClearIndicator","SelectContainer","Input","onPaste","e","clipboardData","getData","setTimeout","handleEmailChange","EMAIL_REGEX","RegExp","UNSTRICT_EMAIL_REGEX","EMAIL_SEPARATION_REGEX","CUSTOM_STYLES","input","assoc","multiValue","styles","_ref3","valid","CUSTOM_COMPONENTS","formatEmailInputOptions","test","pruneDuplicates","inputValues","values","pluck","caseInsensitiveValues","map","toLowerCase","uniqueValuesSet","Set","duplicates","forEach","index","has","push","add","uniqueValues","Array","from","uniqueEmails","email","renderValidEmails","filter","getValidEmailsCount","renderDefaultText","count","MultiEmailInput","forwardRef","_ref$label","_ref$placeholder","placeholder","_ref$helpText","helpText","_ref$value","_ref$onChange","onChange","noop","_ref$error","_ref$onBlur","onBlur","filterInvalidEmails","counter","_ref$disabled","disabled","_ref$maxHeight","maxHeight","_ref$required","required","labelProps","_ref$visibleEmailsCou","_ref$isCreateable","isCreateable","_ref$isAlwaysExpanded","otherProps","_useState","useState","_useState2","_slicedToArray","inputValue","setInputValue","_useState3","_useState4","setIsFocused","_useState5","_useState6","duplicateEmails","setDuplicateEmails","isCounterVisible","startsFrom","isOptionsPresent","options","handleFilterEmails","match","emailMatches","emails","_pruneDuplicates","_toConsumableArray","handleKeyDown","event","key","preventDefault","stopPropagation","onCreateOption","_otherProps$onCreateO","_pruneDuplicates2","call","handleBlur","overrideProps","isValidNewOption","_","selectOptions","isInputEmpty","isEmpty","trim","doesInputContainSeparator","includes","isInputPresentInOptions","find","option","isFilterEmailsLinkVisible","Label","CreatableSelect","isMulti","classNamePrefix","isDisabled","classnames","control","mergeLeft","overflowY","onFocus","onInputChange","onKeyDown","menuIsOpen","onClick","join","displayName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MultiEmailInput.js","sources":["../../src/components/MultiEmailInput/constants.jsx","../../src/components/MultiEmailInput/utils.js","../../src/components/MultiEmailInput/index.jsx"],"sourcesContent":["import React, { useEffect, useRef } from \"react\";\n\nimport { Close } from \"neetoicons\";\nimport { assoc } from \"ramda\";\nimport { components } from \"react-select\";\n\nimport Tag from \"components/Tag\";\nimport { hyphenize } from \"utils\";\n\nconst STYLES = {\n border: {\n default: \"1px solid rgb(var(--neeto-ui-gray-400))\",\n error: \"1px solid rgb(var(--neeto-ui-error-800)) !important\",\n },\n color: {\n default: \"rgb(var(--neeto-ui-gray-800))\",\n error: \"rgb(var(--neeto-ui-error-800)) !important\",\n },\n};\n\nconst CustomControl = ({ children, ...props }) => {\n const { getValue } = props;\n const { isFocused, prefix } = props.selectProps;\n\n const prevValue = useRef([]);\n const controlRef = useRef(null);\n\n const value = getValue();\n\n const scrollToBottom = () => {\n const scrollContainer = controlRef.current;\n if (!scrollContainer) return;\n\n const { scrollHeight, clientHeight } = scrollContainer;\n\n scrollContainer.scrollTo({ top: scrollHeight - clientHeight });\n };\n\n useEffect(() => {\n const isItemAdded = value.length > prevValue.current.length;\n const isItemDeleted = value.length < prevValue.current.length;\n\n if ((isFocused && !isItemDeleted) || isItemAdded) scrollToBottom();\n\n prevValue.current = value;\n }, [isFocused, value]);\n\n return (\n <components.Control\n {...props}\n innerProps={{ ...props.innerProps, ref: controlRef }}\n >\n {prefix && <div className=\"neeto-ui-email-input__prefix\">{prefix}</div>}\n {children}\n </components.Control>\n );\n};\n\nconst CustomDropdownIndicator = props => {\n const { suffix } = props.selectProps;\n\n return suffix ? (\n <components.DropdownIndicator {...props}>\n <div className=\"neeto-ui-email-input__suffix\">{suffix}</div>\n </components.DropdownIndicator>\n ) : null;\n};\n\nconst MultiValueRemove = props => (\n <components.MultiValueRemove\n {...props}\n innerProps={{\n ...props.innerProps,\n [\"data-cy\"]: `${hyphenize(props.data.label)}-remove-icon`,\n }}\n >\n <Close size={16} />\n </components.MultiValueRemove>\n);\n\nconst CustomValueContainer = ({ children, ...props }) => {\n const {\n getValue,\n selectProps: { isFocused, visibleEmailsCount, isAlwaysExpanded },\n } = props;\n const value = getValue();\n const [firstChild, ...rest] = children;\n\n const shouldCollapse =\n !isAlwaysExpanded && !isFocused && value.length > visibleEmailsCount;\n\n return (\n <components.ValueContainer\n {...props}\n innerProps={{\n ...props.innerProps,\n [\"data-cy\"]: \"multi-email-input-container\",\n }}\n >\n {shouldCollapse ? firstChild.slice(0, visibleEmailsCount) : firstChild}\n {shouldCollapse && (\n <Tag\n label={`${value.length - visibleEmailsCount} more`}\n style=\"secondary\"\n />\n )}\n {rest}\n </components.ValueContainer>\n );\n};\n\nconst CustomClearIndicator = props => (\n <components.ClearIndicator\n {...props}\n innerProps={{\n ...props.innerProps,\n [\"data-cy\"]: \"clear-all-button\",\n }}\n >\n <Close className=\"cursor-pointer\" size={16} />\n </components.ClearIndicator>\n);\n\nconst SelectContainer = props => (\n <components.SelectContainer\n {...props}\n innerProps={{\n ...props.innerProps,\n [\"data-cy\"]: \"multi-email-select-container\",\n }}\n />\n);\n\nconst Input = props => (\n <components.Input\n {...props}\n data-cy=\"email-select-input-field\"\n onPaste={e => {\n const clipboardData = e.clipboardData.getData(\"Text\");\n\n setTimeout(() => props.selectProps.handleEmailChange(clipboardData));\n }}\n />\n);\n\nexport const EMAIL_REGEX = new RegExp(\n \"^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\\\.[A-Z]{2,}$\",\n \"i\"\n);\n\nexport const UNSTRICT_EMAIL_REGEX =\n /(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))/g;\n\nexport const EMAIL_SEPARATION_REGEX = /[^\\s,]+/g;\n\nexport const CUSTOM_STYLES = {\n input: assoc(\"overflow\", \"hidden\"),\n multiValue: (styles, { data: { valid } }) => ({\n ...styles,\n border: valid ? STYLES.border.default : STYLES.border.error,\n color: valid ? STYLES.color.default : STYLES.color.error,\n }),\n};\n\nexport const CUSTOM_COMPONENTS = {\n DropdownIndicator: CustomDropdownIndicator,\n Control: CustomControl,\n MultiValueRemove,\n ValueContainer: CustomValueContainer,\n ClearIndicator: CustomClearIndicator,\n SelectContainer,\n Input,\n};\n","import { pluck } from \"ramda\";\n\nimport { EMAIL_REGEX } from \"./constants\";\n\nconst getEmailsMap = (options = [], inputEmails = []) =>\n new Map([...inputEmails, ...options].map(option => [option.value, option]));\n\nconst processEmailOptions = (options = [], inputEmails = []) => {\n const emailsMap = getEmailsMap(options, inputEmails);\n\n return email => {\n const emailDetails = emailsMap.get(email) || { value: email };\n\n return formatEmailInputOption(emailDetails);\n };\n};\n\nexport const formatEmailInputOption = ({ label, value, ...otherDetails }) => ({\n label: label ?? value,\n value,\n ...otherDetails,\n valid: EMAIL_REGEX.test(value),\n});\n\nexport const pruneDuplicates = (inputValues, options) => {\n const emailProcessor = processEmailOptions(options, inputValues);\n const emails = pluck(\"value\", inputValues);\n const uniqueValuesSet = new Set();\n const duplicates = [];\n\n emails.forEach(pristineEmail => {\n const email = pristineEmail.toLowerCase();\n if (uniqueValuesSet.has(email)) duplicates.push(pristineEmail);\n\n uniqueValuesSet.add(email);\n });\n\n const uniqueValues = Array.from(uniqueValuesSet);\n const uniqueEmails = uniqueValues.map(emailProcessor);\n\n return { uniqueEmails, duplicates };\n};\n\nexport const renderValidEmails = values =>\n values.filter(email => email.valid && email);\n\nexport const getValidEmailsCount = values => renderValidEmails(values).length;\n\nexport const renderDefaultText = count => (count === 1 ? \"email\" : \"emails\");\n","import React, { useState, forwardRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport { mergeLeft, isEmpty } from \"ramda\";\nimport CreatableSelect from \"react-select/creatable\";\n\nimport { noop, hyphenize } from \"utils\";\n\nimport {\n EMAIL_SEPARATION_REGEX,\n CUSTOM_STYLES,\n UNSTRICT_EMAIL_REGEX,\n CUSTOM_COMPONENTS,\n} from \"./constants\";\nimport {\n pruneDuplicates,\n renderValidEmails,\n renderDefaultText,\n getValidEmailsCount,\n} from \"./utils\";\n\nimport Label from \"../Label\";\n\nconst MultiEmailInput = forwardRef(\n (\n {\n label = \"Email(s)\",\n placeholder = \"\",\n helpText = \"\",\n value = [],\n onChange = noop,\n error = \"\",\n onBlur = noop,\n filterInvalidEmails,\n counter,\n disabled = false,\n maxHeight = 200,\n required = false,\n labelProps,\n visibleEmailsCount = 3,\n isCreateable = true,\n isAlwaysExpanded = false,\n ...otherProps\n },\n ref\n ) => {\n const [inputValue, setInputValue] = useState(\"\");\n const [isFocused, setIsFocused] = useState(false);\n const [duplicateEmails, setDuplicateEmails] = useState([]);\n\n const isCounterVisible =\n !!counter &&\n (!counter.startsFrom || getValidEmailsCount(value) >= counter.startsFrom);\n\n const isOptionsPresent = !!otherProps.options;\n\n const handleFilterEmails = () => onChange(renderValidEmails(value));\n\n const handleEmailChange = inputValue => {\n if (!isCreateable) return;\n\n const inputValues = inputValue.match(EMAIL_SEPARATION_REGEX);\n const emailMatches =\n inputValue.match(UNSTRICT_EMAIL_REGEX) || inputValues || [];\n\n const emails = emailMatches.map(email => ({ value: email }));\n\n const { uniqueEmails, duplicates } = pruneDuplicates(\n [...value, ...emails],\n otherProps.options\n );\n onChange(uniqueEmails);\n setDuplicateEmails(duplicates);\n setInputValue(\"\");\n };\n\n const handleKeyDown = event => {\n if (!inputValue) return;\n\n switch (event.key) {\n case \"Enter\": {\n handleEmailChange(inputValue);\n !isOptionsPresent && event.preventDefault();\n event.stopPropagation();\n\n return;\n }\n case \"Tab\":\n case \",\":\n case \" \": {\n handleEmailChange(inputValue);\n event.preventDefault();\n event.stopPropagation();\n }\n }\n };\n\n const onCreateOption = input => {\n const { uniqueEmails, duplicates } = pruneDuplicates(\n [...value, { value: input }],\n otherProps.options\n );\n onChange(uniqueEmails);\n setDuplicateEmails(duplicates);\n otherProps?.onCreateOption?.(input);\n };\n\n const handleBlur = event => {\n inputValue ? handleEmailChange(inputValue) : onBlur(event);\n setIsFocused(false);\n setDuplicateEmails([]);\n };\n\n let overrideProps = {};\n\n if (isOptionsPresent) {\n const isValidNewOption = (inputValue, _, selectOptions) => {\n if (!isCreateable) return false;\n\n const isInputEmpty = isEmpty(inputValue.trim());\n const doesInputContainSeparator =\n inputValue.includes(\",\") || inputValue.includes(\" \");\n\n const isInputPresentInOptions = selectOptions.find(\n option => option.value === inputValue.toLowerCase()\n );\n\n return !(\n isInputEmpty ||\n doesInputContainSeparator ||\n isInputPresentInOptions\n );\n };\n overrideProps = { onCreateOption, isValidNewOption };\n }\n\n const isFilterEmailsLinkVisible =\n !!filterInvalidEmails && value.length > getValidEmailsCount(value);\n\n return (\n <div className=\"neeto-ui-input__wrapper neeto-ui-email-input__wrapper\">\n <div className=\"neeto-ui-email-input__label-wrapper\">\n {label && (\n <Label\n {...{ required }}\n className=\"neeto-ui-email-input__label\"\n data-cy={`${hyphenize(label)}-input-label`}\n {...labelProps}\n >\n {label}\n </Label>\n )}\n {isCounterVisible && (\n <p\n className=\"neeto-ui-email-input__counter\"\n data-cy={`${hyphenize(label)}-email-counter`}\n >\n {getValidEmailsCount(value)}{\" \"}\n {counter.label\n ? counter.label\n : renderDefaultText(getValidEmailsCount(value))}\n </p>\n )}\n </div>\n <CreatableSelect\n isMulti\n required\n classNamePrefix=\"neeto-ui-react-select\"\n components={CUSTOM_COMPONENTS}\n isDisabled={disabled}\n className={classnames(\n \"neeto-ui-react-select__container neeto-ui-react-select__container--medium neeto-ui-email-input__select\",\n { \"neeto-ui-react-select__container--error\": !!error }\n )}\n styles={{\n ...CUSTOM_STYLES,\n control: mergeLeft({\n maxHeight: `${maxHeight}px`,\n overflowY: \"auto\",\n }),\n }}\n onBlur={handleBlur}\n onFocus={() => setIsFocused(true)}\n onInputChange={inputValue => setInputValue(inputValue)}\n onKeyDown={handleKeyDown}\n {...{\n handleEmailChange,\n inputValue,\n isAlwaysExpanded,\n isFocused,\n onChange,\n placeholder,\n ref,\n value,\n visibleEmailsCount,\n ...(!isOptionsPresent && { menuIsOpen: false }),\n ...otherProps,\n ...overrideProps,\n }}\n />\n {!!error && (\n <p\n className=\"neeto-ui-input__error\"\n data-cy={`${hyphenize(label)}-input-error`}\n >\n {error}\n {isFilterEmailsLinkVisible && (\n <span\n className=\"neeto-ui-font-semibold cursor-pointer\"\n onClick={handleFilterEmails}\n >\n \n {filterInvalidEmails.label\n ? filterInvalidEmails.label\n : \"Click here to remove invalid emails.\"}\n </span>\n )}\n </p>\n )}\n {!!helpText && (\n <p\n className=\"neeto-ui-input__help-text\"\n data-cy={`${hyphenize(label)}-input-help`}\n >\n {helpText}\n </p>\n )}\n {!!duplicateEmails.length && (\n <p\n className=\"neeto-ui-input__warning\"\n data-cy={`${hyphenize(label)}-duplicate-emails-warning`}\n >\n Duplicate emails that were removed case insensitively:{\" \"}\n {duplicateEmails.join(\", \")}\n </p>\n )}\n </div>\n );\n }\n);\n\nMultiEmailInput.displayName = \"MultiEmailInput\";\n\nMultiEmailInput.propTypes = {\n /**\n * To specify the text to be displayed above the Input field.\n */\n label: PropTypes.string,\n /**\n * To specify the label props to be passed to the Label component.\n */\n labelProps: PropTypes.object,\n /**\n * To specify the text to be displayed inside the Input field.\n */\n placeholder: PropTypes.string,\n /**\n * To specify the helper text message to be displayed below the Input field.\n */\n helpText: PropTypes.string,\n /**\n * To specify the value to be displayed inside the Input field.\n */\n value: PropTypes.array,\n /**\n * To specify the error message to be shown below the Input field.\n */\n error: PropTypes.string,\n /**\n * To specify whether the Input field is disabled or not.\n */\n disabled: PropTypes.bool,\n /**\n * To specify whether the Input field is required or not.\n */\n required: PropTypes.bool,\n /**\n * To specify the message to be shown besides the error message to filter out the invalid emails.\n */\n filterInvalidEmails: PropTypes.shape({ label: PropTypes.string }),\n /**\n * To add an email counter next to the label.\n */\n counter: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n label: PropTypes.string,\n startsFrom: PropTypes.number,\n }),\n ]),\n /**\n * To specify the action to be triggered on modifying the Input field.\n */\n onChange: PropTypes.func,\n /**\n * To specify the action to be triggered on changing focus from the Input field.\n */\n onBlur: PropTypes.func,\n /**\n * To specify the maximum height (in pixels) of the container before it becomes scrollable.\n */\n maxHeight: PropTypes.number,\n /**\n * To specify the content to be added at the end of the Input field.\n */\n suffix: PropTypes.node,\n /**\n * To specify the content to be added at the beginning of the Input field.\n */\n prefix: PropTypes.node,\n /**\n * To specify the number of email to be displayed in the input field when not in focus.\n */\n visibleEmailsCount: PropTypes.number,\n /**\n * To specify whether a new email option can be created or not.\n */\n isCreateable: PropTypes.bool,\n /**\n * To specify whether the input field should always be shown in an expanded state or not.\n */\n isAlwaysExpanded: PropTypes.bool,\n};\n\nexport default MultiEmailInput;\n"],"names":["STYLES","border","error","color","CustomControl","_ref","children","props","_objectWithoutProperties","_excluded","getValue","_props$selectProps","selectProps","isFocused","prefix","prevValue","useRef","controlRef","value","scrollToBottom","scrollContainer","current","scrollHeight","clientHeight","scrollTo","top","useEffect","isItemAdded","length","isItemDeleted","React","createElement","components","Control","_extends","innerProps","_objectSpread","ref","className","CustomDropdownIndicator","suffix","DropdownIndicator","MultiValueRemove","_defineProperty","concat","hyphenize","data","label","Close","size","CustomValueContainer","_ref2","_excluded2","_props$selectProps2","visibleEmailsCount","isAlwaysExpanded","_children","_toArray","firstChild","rest","slice","shouldCollapse","ValueContainer","Tag","style","CustomClearIndicator","ClearIndicator","SelectContainer","Input","onPaste","e","clipboardData","getData","setTimeout","handleEmailChange","EMAIL_REGEX","RegExp","UNSTRICT_EMAIL_REGEX","EMAIL_SEPARATION_REGEX","CUSTOM_STYLES","input","assoc","multiValue","styles","_ref3","valid","CUSTOM_COMPONENTS","getEmailsMap","options","arguments","undefined","inputEmails","Map","_toConsumableArray","map","option","processEmailOptions","emailsMap","email","emailDetails","get","formatEmailInputOption","otherDetails","test","pruneDuplicates","inputValues","emailProcessor","emails","pluck","uniqueValuesSet","Set","duplicates","forEach","pristineEmail","toLowerCase","has","push","add","uniqueValues","Array","from","uniqueEmails","renderValidEmails","values","filter","getValidEmailsCount","renderDefaultText","count","MultiEmailInput","forwardRef","_ref$label","_ref$placeholder","placeholder","_ref$helpText","helpText","_ref$value","_ref$onChange","onChange","noop","_ref$error","_ref$onBlur","onBlur","filterInvalidEmails","counter","_ref$disabled","disabled","_ref$maxHeight","maxHeight","_ref$required","required","labelProps","_ref$visibleEmailsCou","_ref$isCreateable","isCreateable","_ref$isAlwaysExpanded","otherProps","_useState","useState","_useState2","_slicedToArray","inputValue","setInputValue","_useState3","_useState4","setIsFocused","_useState5","_useState6","duplicateEmails","setDuplicateEmails","isCounterVisible","startsFrom","isOptionsPresent","handleFilterEmails","match","emailMatches","_pruneDuplicates","handleKeyDown","event","key","preventDefault","stopPropagation","onCreateOption","_otherProps$onCreateO","_pruneDuplicates2","call","handleBlur","overrideProps","isValidNewOption","_","selectOptions","isInputEmpty","isEmpty","trim","doesInputContainSeparator","includes","isInputPresentInOptions","find","isFilterEmailsLinkVisible","Label","CreatableSelect","isMulti","classNamePrefix","isDisabled","classnames","control","mergeLeft","overflowY","onFocus","onInputChange","onKeyDown","menuIsOpen","onClick","join","displayName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,IAAMA,MAAM,GAAG;AACbC,EAAAA,MAAM,EAAE;AACN,IAAA,SAAA,EAAS,yCAAyC;AAClDC,IAAAA,KAAK,EAAE,qDAAA;GACR;AACDC,EAAAA,KAAK,EAAE;AACL,IAAA,SAAA,EAAS,+BAA+B;AACxCD,IAAAA,KAAK,EAAE,2CAAA;AACT,GAAA;AACF,CAAC,CAAA;AAED,IAAME,aAAa,GAAG,SAAhBA,aAAaA,CAAAC,IAAA,EAA+B;AAAA,EAAA,IAAzBC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;AAAKC,IAAAA,KAAK,GAAAC,wBAAA,CAAAH,IAAA,EAAAI,WAAA,CAAA,CAAA;AACzC,EAAA,IAAQC,QAAQ,GAAKH,KAAK,CAAlBG,QAAQ,CAAA;AAChB,EAAA,IAAAC,kBAAA,GAA8BJ,KAAK,CAACK,WAAW;IAAvCC,SAAS,GAAAF,kBAAA,CAATE,SAAS;IAAEC,MAAM,GAAAH,kBAAA,CAANG,MAAM,CAAA;AAEzB,EAAA,IAAMC,SAAS,GAAGC,YAAM,CAAC,EAAE,CAAC,CAAA;AAC5B,EAAA,IAAMC,UAAU,GAAGD,YAAM,CAAC,IAAI,CAAC,CAAA;EAE/B,IAAME,KAAK,GAAGR,QAAQ,EAAE,CAAA;AAExB,EAAA,IAAMS,cAAc,GAAG,SAAjBA,cAAcA,GAAS;AAC3B,IAAA,IAAMC,eAAe,GAAGH,UAAU,CAACI,OAAO,CAAA;IAC1C,IAAI,CAACD,eAAe,EAAE,OAAA;AAEtB,IAAA,IAAQE,YAAY,GAAmBF,eAAe,CAA9CE,YAAY;MAAEC,YAAY,GAAKH,eAAe,CAAhCG,YAAY,CAAA;IAElCH,eAAe,CAACI,QAAQ,CAAC;MAAEC,GAAG,EAAEH,YAAY,GAAGC,YAAAA;AAAa,KAAC,CAAC,CAAA;GAC/D,CAAA;AAEDG,EAAAA,eAAS,CAAC,YAAM;IACd,IAAMC,WAAW,GAAGT,KAAK,CAACU,MAAM,GAAGb,SAAS,CAACM,OAAO,CAACO,MAAM,CAAA;IAC3D,IAAMC,aAAa,GAAGX,KAAK,CAACU,MAAM,GAAGb,SAAS,CAACM,OAAO,CAACO,MAAM,CAAA;IAE7D,IAAKf,SAAS,IAAI,CAACgB,aAAa,IAAKF,WAAW,EAAER,cAAc,EAAE,CAAA;IAElEJ,SAAS,CAACM,OAAO,GAAGH,KAAK,CAAA;AAC3B,GAAC,EAAE,CAACL,SAAS,EAAEK,KAAK,CAAC,CAAC,CAAA;EAEtB,oBACEY,KAAA,CAAAC,aAAA,CAACC,mCAAU,CAACC,OAAO,EAAAC,QAAA,CAAA,EAAA,EACb3B,KAAK,EAAA;AACT4B,IAAAA,UAAU,EAAAC,eAAA,CAAAA,eAAA,CAAO7B,EAAAA,EAAAA,KAAK,CAAC4B,UAAU,CAAA,EAAA,EAAA,EAAA;AAAEE,MAAAA,GAAG,EAAEpB,UAAAA;AAAU,KAAA,CAAA;AAAG,GAAA,CAAA,EAEpDH,MAAM,iBAAIgB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKO,IAAAA,SAAS,EAAC,8BAAA;AAA8B,GAAA,EAAExB,MAAM,CAAO,EACtER,QAAQ,CACU,CAAA;AAEzB,CAAC,CAAA;AAED,IAAMiC,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAGhC,KAAK,EAAI;AACvC,EAAA,IAAQiC,MAAM,GAAKjC,KAAK,CAACK,WAAW,CAA5B4B,MAAM,CAAA;AAEd,EAAA,OAAOA,MAAM,gBACXV,KAAA,CAAAC,aAAA,CAACC,mCAAU,CAACS,iBAAiB,EAAKlC,KAAK,eACrCuB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKO,IAAAA,SAAS,EAAC,8BAAA;AAA8B,GAAA,EAAEE,MAAM,CAAO,CAC/B,GAC7B,IAAI,CAAA;AACV,CAAC,CAAA;AAED,IAAME,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAGnC,KAAK,EAAA;EAAA,oBAC5BuB,KAAA,CAAAC,aAAA,CAACC,mCAAU,CAACU,gBAAgB,EAAAR,QAAA,CAAA,EAAA,EACtB3B,KAAK,EAAA;IACT4B,UAAU,EAAAC,eAAA,CAAAA,eAAA,KACL7B,KAAK,CAAC4B,UAAU,CAAA,EAAA,EAAA,EAAAQ,eAAA,CAAA,EAAA,EAClB,SAAS,EAAAC,EAAAA,CAAAA,MAAA,CAAMC,eAAS,CAACtC,KAAK,CAACuC,IAAI,CAACC,KAAK,CAAC,EAAA,cAAA,CAAA,CAAA,CAAA;AAC3C,GAAA,CAAA,eAEFjB,KAAA,CAAAC,aAAA,CAACiB,gBAAK,EAAA;AAACC,IAAAA,IAAI,EAAE,EAAA;AAAG,GAAA,CAAG,CACS,CAAA;AAAA,CAC/B,CAAA;AAED,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAAC,KAAA,EAA+B;AAAA,EAAA,IAAzB7C,QAAQ,GAAA6C,KAAA,CAAR7C,QAAQ;AAAKC,IAAAA,KAAK,GAAAC,wBAAA,CAAA2C,KAAA,EAAAC,UAAA,CAAA,CAAA;AAChD,EAAA,IACE1C,QAAQ,GAENH,KAAK,CAFPG,QAAQ;IAAA2C,mBAAA,GAEN9C,KAAK,CADPK,WAAW;IAAIC,SAAS,GAAAwC,mBAAA,CAATxC,SAAS;IAAEyC,kBAAkB,GAAAD,mBAAA,CAAlBC,kBAAkB;IAAEC,gBAAgB,GAAAF,mBAAA,CAAhBE,gBAAgB,CAAA;EAEhE,IAAMrC,KAAK,GAAGR,QAAQ,EAAE,CAAA;AACxB,EAAA,IAAA8C,SAAA,GAAAC,QAAA,CAA8BnD,QAAQ,CAAA;AAA/BoD,IAAAA,UAAU,GAAAF,SAAA,CAAA,CAAA,CAAA;IAAKG,IAAI,GAAAH,SAAA,CAAAI,KAAA,CAAA,CAAA,CAAA,CAAA;AAE1B,EAAA,IAAMC,cAAc,GAClB,CAACN,gBAAgB,IAAI,CAAC1C,SAAS,IAAIK,KAAK,CAACU,MAAM,GAAG0B,kBAAkB,CAAA;EAEtE,oBACExB,KAAA,CAAAC,aAAA,CAACC,mCAAU,CAAC8B,cAAc,EAAA5B,QAAA,CAAA,EAAA,EACpB3B,KAAK,EAAA;AACT4B,IAAAA,UAAU,EAAAC,eAAA,CAAAA,eAAA,CACL7B,EAAAA,EAAAA,KAAK,CAAC4B,UAAU,CAAAQ,EAAAA,EAAAA,EAAAA,eAAA,CAClB,EAAA,EAAA,SAAS,EAAG,6BAA6B,CAAA,CAAA;AAC1C,GAAA,CAAA,EAEDkB,cAAc,GAAGH,UAAU,CAACE,KAAK,CAAC,CAAC,EAAEN,kBAAkB,CAAC,GAAGI,UAAU,EACrEG,cAAc,iBACb/B,KAAA,CAAAC,aAAA,CAACgC,GAAG,EAAA;IACFhB,KAAK,EAAA,EAAA,CAAAH,MAAA,CAAK1B,KAAK,CAACU,MAAM,GAAG0B,kBAAkB,EAAQ,OAAA,CAAA;AACnDU,IAAAA,KAAK,EAAC,WAAA;GAET,CAAA,EACAL,IAAI,CACqB,CAAA;AAEhC,CAAC,CAAA;AAED,IAAMM,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAG1D,KAAK,EAAA;EAAA,oBAChCuB,KAAA,CAAAC,aAAA,CAACC,mCAAU,CAACkC,cAAc,EAAAhC,QAAA,CAAA,EAAA,EACpB3B,KAAK,EAAA;AACT4B,IAAAA,UAAU,EAAAC,eAAA,CAAAA,eAAA,CACL7B,EAAAA,EAAAA,KAAK,CAAC4B,UAAU,CAAAQ,EAAAA,EAAAA,EAAAA,eAAA,CAClB,EAAA,EAAA,SAAS,EAAG,kBAAkB,CAAA,CAAA;AAC/B,GAAA,CAAA,eAEFb,KAAA,CAAAC,aAAA,CAACiB,gBAAK,EAAA;AAACV,IAAAA,SAAS,EAAC,gBAAgB;AAACW,IAAAA,IAAI,EAAE,EAAA;AAAG,GAAA,CAAG,CACpB,CAAA;AAAA,CAC7B,CAAA;AAED,IAAMkB,eAAe,GAAG,SAAlBA,eAAeA,CAAG5D,KAAK,EAAA;EAAA,oBAC3BuB,KAAA,CAAAC,aAAA,CAACC,mCAAU,CAACmC,eAAe,EAAAjC,QAAA,CAAA,EAAA,EACrB3B,KAAK,EAAA;AACT4B,IAAAA,UAAU,EAAAC,eAAA,CAAAA,eAAA,CACL7B,EAAAA,EAAAA,KAAK,CAAC4B,UAAU,CAAAQ,EAAAA,EAAAA,EAAAA,eAAA,CAClB,EAAA,EAAA,SAAS,EAAG,8BAA8B,CAAA,CAAA;GAE7C,CAAA,CAAA,CAAA;AAAA,CACH,CAAA;AAED,IAAMyB,KAAK,GAAG,SAARA,KAAKA,CAAG7D,KAAK,EAAA;EAAA,oBACjBuB,KAAA,CAAAC,aAAA,CAACC,mCAAU,CAACoC,KAAK,EAAAlC,QAAA,CAAA,EAAA,EACX3B,KAAK,EAAA;AACT,IAAA,SAAA,EAAQ,0BAA0B;AAClC8D,IAAAA,OAAO,EAAE,SAAAA,OAAAC,CAAAA,CAAC,EAAI;MACZ,IAAMC,aAAa,GAAGD,CAAC,CAACC,aAAa,CAACC,OAAO,CAAC,MAAM,CAAC,CAAA;AAErDC,MAAAA,UAAU,CAAC,YAAA;AAAA,QAAA,OAAMlE,KAAK,CAACK,WAAW,CAAC8D,iBAAiB,CAACH,aAAa,CAAC,CAAA;OAAC,CAAA,CAAA;AACtE,KAAA;GACA,CAAA,CAAA,CAAA;AAAA,CACH,CAAA;AAEM,IAAMI,WAAW,GAAG,IAAIC,MAAM,CACnC,0CAA0C,EAC1C,GAAG,CACJ,CAAA;AAEM,IAAMC,oBAAoB,GAC/B,sJAAsJ,CAAA;AAEjJ,IAAMC,sBAAsB,GAAG,UAAU,CAAA;AAEzC,IAAMC,aAAa,GAAG;AAC3BC,EAAAA,KAAK,EAAEC,WAAK,CAAC,UAAU,EAAE,QAAQ,CAAC;AAClCC,EAAAA,UAAU,EAAE,SAAAA,UAACC,CAAAA,MAAM,EAAAC,KAAA,EAAA;AAAA,IAAA,IAAYC,KAAK,GAAAD,KAAA,CAAbtC,IAAI,CAAIuC,KAAK,CAAA;AAAA,IAAA,OAAAjD,eAAA,CAAAA,eAAA,CAAA,EAAA,EAC/B+C,MAAM,CAAA,EAAA,EAAA,EAAA;AACTlF,MAAAA,MAAM,EAAEoF,KAAK,GAAGrF,MAAM,CAACC,MAAM,CAAQ,SAAA,CAAA,GAAGD,MAAM,CAACC,MAAM,CAACC,KAAK;MAC3DC,KAAK,EAAEkF,KAAK,GAAGrF,MAAM,CAACG,KAAK,CAAA,SAAA,CAAQ,GAAGH,MAAM,CAACG,KAAK,CAACD,KAAAA;AAAK,KAAA,CAAA,CAAA;AAAA,GAAA;AAE5D,CAAC,CAAA;AAEM,IAAMoF,iBAAiB,GAAG;AAC/B7C,EAAAA,iBAAiB,EAAEF,uBAAuB;AAC1CN,EAAAA,OAAO,EAAE7B,aAAa;AACtBsC,EAAAA,gBAAgB,EAAhBA,gBAAgB;AAChBoB,EAAAA,cAAc,EAAEZ,oBAAoB;AACpCgB,EAAAA,cAAc,EAAED,oBAAoB;AACpCE,EAAAA,eAAe,EAAfA,eAAe;AACfC,EAAAA,KAAK,EAALA,KAAAA;AACF,CAAC;;;;;ACxKD,IAAMmB,YAAY,GAAG,SAAfA,YAAYA,GAAA;AAAA,EAAA,IAAIC,OAAO,GAAAC,SAAA,CAAA7D,MAAA,GAAA,CAAA,IAAA6D,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;AAAA,EAAA,IAAEE,WAAW,GAAAF,SAAA,CAAA7D,MAAA,GAAA,CAAA,IAAA6D,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;AAAA,EAAA,OAClD,IAAIG,GAAG,CAAC,EAAAhD,CAAAA,MAAA,CAAAiD,kBAAA,CAAIF,WAAW,CAAA,EAAAE,kBAAA,CAAKL,OAAO,GAAEM,GAAG,CAAC,UAAAC,MAAM,EAAA;AAAA,IAAA,OAAI,CAACA,MAAM,CAAC7E,KAAK,EAAE6E,MAAM,CAAC,CAAA;AAAA,GAAA,CAAC,CAAC,CAAA;AAAA,CAAA,CAAA;AAE7E,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmBA,GAAuC;AAAA,EAAA,IAAnCR,OAAO,GAAAC,SAAA,CAAA7D,MAAA,GAAA,CAAA,IAAA6D,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;AAAA,EAAA,IAAEE,WAAW,GAAAF,SAAA,CAAA7D,MAAA,GAAA,CAAA,IAAA6D,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;AACzD,EAAA,IAAMQ,SAAS,GAAGV,YAAY,CAACC,OAAO,EAAEG,WAAW,CAAC,CAAA;EAEpD,OAAO,UAAAO,KAAK,EAAI;IACd,IAAMC,YAAY,GAAGF,SAAS,CAACG,GAAG,CAACF,KAAK,CAAC,IAAI;AAAEhF,MAAAA,KAAK,EAAEgF,KAAAA;KAAO,CAAA;IAE7D,OAAOG,sBAAsB,CAACF,YAAY,CAAC,CAAA;GAC5C,CAAA;AACH,CAAC,CAAA;AAEM,IAAME,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAAhG,IAAA,EAAA;AAAA,EAAA,IAAM0C,KAAK,GAAA1C,IAAA,CAAL0C,KAAK;IAAE7B,KAAK,GAAAb,IAAA,CAALa,KAAK;AAAKoF,IAAAA,YAAY,GAAA9F,wBAAA,CAAAH,IAAA,EAAAI,WAAA,CAAA,CAAA;EAAA,OAAA2B,eAAA,CAAAA,eAAA,CAAA;AACpEW,IAAAA,KAAK,EAAEA,KAAK,KAAA,IAAA,IAALA,KAAK,KAALA,KAAAA,CAAAA,GAAAA,KAAK,GAAI7B,KAAK;AACrBA,IAAAA,KAAK,EAALA,KAAAA;AAAK,GAAA,EACFoF,YAAY,CAAA,EAAA,EAAA,EAAA;AACfjB,IAAAA,KAAK,EAAEV,WAAW,CAAC4B,IAAI,CAACrF,KAAK,CAAA;AAAC,GAAA,CAAA,CAAA;AAAA,CAC9B,CAAA;AAEK,IAAMsF,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,WAAW,EAAEjB,OAAO,EAAK;AACvD,EAAA,IAAMkB,cAAc,GAAGV,mBAAmB,CAACR,OAAO,EAAEiB,WAAW,CAAC,CAAA;AAChE,EAAA,IAAME,MAAM,GAAGC,WAAK,CAAC,OAAO,EAAEH,WAAW,CAAC,CAAA;AAC1C,EAAA,IAAMI,eAAe,GAAG,IAAIC,GAAG,EAAE,CAAA;EACjC,IAAMC,UAAU,GAAG,EAAE,CAAA;AAErBJ,EAAAA,MAAM,CAACK,OAAO,CAAC,UAAAC,aAAa,EAAI;AAC9B,IAAA,IAAMf,KAAK,GAAGe,aAAa,CAACC,WAAW,EAAE,CAAA;AACzC,IAAA,IAAIL,eAAe,CAACM,GAAG,CAACjB,KAAK,CAAC,EAAEa,UAAU,CAACK,IAAI,CAACH,aAAa,CAAC,CAAA;AAE9DJ,IAAAA,eAAe,CAACQ,GAAG,CAACnB,KAAK,CAAC,CAAA;AAC5B,GAAC,CAAC,CAAA;AAEF,EAAA,IAAMoB,YAAY,GAAGC,KAAK,CAACC,IAAI,CAACX,eAAe,CAAC,CAAA;AAChD,EAAA,IAAMY,YAAY,GAAGH,YAAY,CAACxB,GAAG,CAACY,cAAc,CAAC,CAAA;EAErD,OAAO;AAAEe,IAAAA,YAAY,EAAZA,YAAY;AAAEV,IAAAA,UAAU,EAAVA,UAAAA;GAAY,CAAA;AACrC,CAAC,CAAA;AAEM,IAAMW,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAGC,MAAM,EAAA;AAAA,EAAA,OACrCA,MAAM,CAACC,MAAM,CAAC,UAAA1B,KAAK,EAAA;AAAA,IAAA,OAAIA,KAAK,CAACb,KAAK,IAAIa,KAAK,CAAA;GAAC,CAAA,CAAA;AAAA,CAAA,CAAA;AAEvC,IAAM2B,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAGF,MAAM,EAAA;AAAA,EAAA,OAAID,iBAAiB,CAACC,MAAM,CAAC,CAAC/F,MAAM,CAAA;AAAA,CAAA,CAAA;AAEtE,IAAMkG,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAGC,KAAK,EAAA;AAAA,EAAA,OAAKA,KAAK,KAAK,CAAC,GAAG,OAAO,GAAG,QAAQ,CAAA;AAAA,CAAC;;;;;ACxBtEC,IAAAA,eAAe,gBAAGC,gBAAU,CAChC,UAAA5H,IAAA,EAoBEgC,GAAG,EACA;AAAA,EAAA,IAAA6F,UAAA,GAAA7H,IAAA,CAnBD0C,KAAK;AAALA,IAAAA,KAAK,GAAAmF,UAAA,KAAG,KAAA,CAAA,GAAA,UAAU,GAAAA,UAAA;IAAAC,gBAAA,GAAA9H,IAAA,CAClB+H,WAAW;AAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,gBAAA;IAAAE,aAAA,GAAAhI,IAAA,CAChBiI,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,aAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,aAAA;IAAAE,UAAA,GAAAlI,IAAA,CACba,KAAK;AAALA,IAAAA,KAAK,GAAAqH,UAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,UAAA;IAAAC,aAAA,GAAAnI,IAAA,CACVoI,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,aAAA,KAAGE,KAAAA,CAAAA,GAAAA,UAAI,GAAAF,aAAA;IAAAG,UAAA,GAAAtI,IAAA,CACfH,KAAK;AAALA,IAAAA,KAAK,GAAAyI,UAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,UAAA;IAAAC,WAAA,GAAAvI,IAAA,CACVwI,MAAM;AAANA,IAAAA,MAAM,GAAAD,WAAA,KAAGF,KAAAA,CAAAA,GAAAA,UAAI,GAAAE,WAAA;IACbE,mBAAmB,GAAAzI,IAAA,CAAnByI,mBAAmB;IACnBC,OAAO,GAAA1I,IAAA,CAAP0I,OAAO;IAAAC,aAAA,GAAA3I,IAAA,CACP4I,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,aAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,aAAA;IAAAE,cAAA,GAAA7I,IAAA,CAChB8I,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,GAAG,GAAAA,cAAA;IAAAE,aAAA,GAAA/I,IAAA,CACfgJ,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,aAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,aAAA;IAChBE,UAAU,GAAAjJ,IAAA,CAAViJ,UAAU;IAAAC,qBAAA,GAAAlJ,IAAA,CACViD,kBAAkB;AAAlBA,IAAAA,kBAAkB,GAAAiG,qBAAA,KAAG,KAAA,CAAA,GAAA,CAAC,GAAAA,qBAAA;IAAAC,iBAAA,GAAAnJ,IAAA,CACtBoJ,YAAY;AAAZA,IAAAA,YAAY,GAAAD,iBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,iBAAA;IAAAE,qBAAA,GAAArJ,IAAA,CACnBkD,gBAAgB;AAAhBA,IAAAA,gBAAgB,GAAAmG,qBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,qBAAA;AACrBC,IAAAA,UAAU,GAAAnJ,wBAAA,CAAAH,IAAA,EAAAI,SAAA,CAAA,CAAA;AAIf,EAAA,IAAAmJ,SAAA,GAAoCC,cAAQ,CAAC,EAAE,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAzCI,IAAAA,UAAU,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,aAAa,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;AAChC,EAAA,IAAAI,UAAA,GAAkCL,cAAQ,CAAC,KAAK,CAAC;IAAAM,UAAA,GAAAJ,cAAA,CAAAG,UAAA,EAAA,CAAA,CAAA;AAA1CrJ,IAAAA,SAAS,GAAAsJ,UAAA,CAAA,CAAA,CAAA;AAAEC,IAAAA,YAAY,GAAAD,UAAA,CAAA,CAAA,CAAA,CAAA;AAC9B,EAAA,IAAAE,UAAA,GAA8CR,cAAQ,CAAC,EAAE,CAAC;IAAAS,UAAA,GAAAP,cAAA,CAAAM,UAAA,EAAA,CAAA,CAAA;AAAnDE,IAAAA,eAAe,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,kBAAkB,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAE1C,EAAA,IAAMG,gBAAgB,GACpB,CAAC,CAAC1B,OAAO,KACR,CAACA,OAAO,CAAC2B,UAAU,IAAI7C,mBAAmB,CAAC3G,KAAK,CAAC,IAAI6H,OAAO,CAAC2B,UAAU,CAAC,CAAA;AAE3E,EAAA,IAAMC,gBAAgB,GAAG,CAAC,CAAChB,UAAU,CAACnE,OAAO,CAAA;AAE7C,EAAA,IAAMoF,kBAAkB,GAAG,SAArBA,kBAAkBA,GAAA;AAAA,IAAA,OAASnC,QAAQ,CAACf,iBAAiB,CAACxG,KAAK,CAAC,CAAC,CAAA;AAAA,GAAA,CAAA;AAEnE,EAAA,IAAMwD,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAGsF,UAAU,EAAI;IACtC,IAAI,CAACP,YAAY,EAAE,OAAA;AAEnB,IAAA,IAAMhD,WAAW,GAAGuD,UAAU,CAACa,KAAK,CAAC/F,sBAAsB,CAAC,CAAA;IAC5D,IAAMgG,YAAY,GAChBd,UAAU,CAACa,KAAK,CAAChG,oBAAoB,CAAC,IAAI4B,WAAW,IAAI,EAAE,CAAA;AAE7D,IAAA,IAAME,MAAM,GAAGmE,YAAY,CAAChF,GAAG,CAAC,UAAAI,KAAK,EAAA;MAAA,OAAK;AAAEhF,QAAAA,KAAK,EAAEgF,KAAAA;OAAO,CAAA;AAAA,KAAC,CAAC,CAAA;AAE5D,IAAA,IAAA6E,gBAAA,GAAqCvE,eAAe,CAAA5D,EAAAA,CAAAA,MAAA,CAAAiD,kBAAA,CAC9C3E,KAAK,CAAA,EAAA2E,kBAAA,CAAKc,MAAM,IACpBgD,UAAU,CAACnE,OAAO,CACnB;MAHOiC,YAAY,GAAAsD,gBAAA,CAAZtD,YAAY;MAAEV,UAAU,GAAAgE,gBAAA,CAAVhE,UAAU,CAAA;IAIhC0B,QAAQ,CAAChB,YAAY,CAAC,CAAA;IACtB+C,kBAAkB,CAACzD,UAAU,CAAC,CAAA;IAC9BkD,aAAa,CAAC,EAAE,CAAC,CAAA;GAClB,CAAA;AAED,EAAA,IAAMe,aAAa,GAAG,SAAhBA,aAAaA,CAAGC,KAAK,EAAI;IAC7B,IAAI,CAACjB,UAAU,EAAE,OAAA;IAEjB,QAAQiB,KAAK,CAACC,GAAG;AACf,MAAA,KAAK,OAAO;AAAE,QAAA;UACZxG,iBAAiB,CAACsF,UAAU,CAAC,CAAA;AAC7B,UAAA,CAACW,gBAAgB,IAAIM,KAAK,CAACE,cAAc,EAAE,CAAA;UAC3CF,KAAK,CAACG,eAAe,EAAE,CAAA;AAEvB,UAAA,OAAA;AACF,SAAA;AACA,MAAA,KAAK,KAAK,CAAA;AACV,MAAA,KAAK,GAAG,CAAA;AACR,MAAA,KAAK,GAAG;AAAE,QAAA;UACR1G,iBAAiB,CAACsF,UAAU,CAAC,CAAA;UAC7BiB,KAAK,CAACE,cAAc,EAAE,CAAA;UACtBF,KAAK,CAACG,eAAe,EAAE,CAAA;AACzB,SAAA;AAAC,KAAA;GAEJ,CAAA;AAED,EAAA,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAGrG,KAAK,EAAI;AAAA,IAAA,IAAAsG,qBAAA,CAAA;IAC9B,IAAAC,iBAAA,GAAqC/E,eAAe,CAAA,EAAA,CAAA5D,MAAA,CAAAiD,kBAAA,CAC9C3E,KAAK,CAAE,EAAA,CAAA;AAAEA,QAAAA,KAAK,EAAE8D,KAAAA;AAAM,OAAC,CAC3B2E,CAAAA,EAAAA,UAAU,CAACnE,OAAO,CACnB;MAHOiC,YAAY,GAAA8D,iBAAA,CAAZ9D,YAAY;MAAEV,UAAU,GAAAwE,iBAAA,CAAVxE,UAAU,CAAA;IAIhC0B,QAAQ,CAAChB,YAAY,CAAC,CAAA;IACtB+C,kBAAkB,CAACzD,UAAU,CAAC,CAAA;AAC9B4C,IAAAA,UAAU,aAAVA,UAAU,KAAA,KAAA,CAAA,IAAA,CAAA2B,qBAAA,GAAV3B,UAAU,CAAE0B,cAAc,MAAA,IAAA,IAAAC,qBAAA,KAAA,KAAA,CAAA,IAA1BA,qBAAA,CAAAE,IAAA,CAAA7B,UAAU,EAAmB3E,KAAK,CAAC,CAAA;GACpC,CAAA;AAED,EAAA,IAAMyG,UAAU,GAAG,SAAbA,UAAUA,CAAGR,KAAK,EAAI;IAC1BjB,UAAU,GAAGtF,iBAAiB,CAACsF,UAAU,CAAC,GAAGnB,MAAM,CAACoC,KAAK,CAAC,CAAA;IAC1Db,YAAY,CAAC,KAAK,CAAC,CAAA;IACnBI,kBAAkB,CAAC,EAAE,CAAC,CAAA;GACvB,CAAA;EAED,IAAIkB,aAAa,GAAG,EAAE,CAAA;AAEtB,EAAA,IAAIf,gBAAgB,EAAE;IACpB,IAAMgB,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAI3B,UAAU,EAAE4B,CAAC,EAAEC,aAAa,EAAK;AACzD,MAAA,IAAI,CAACpC,YAAY,EAAE,OAAO,KAAK,CAAA;MAE/B,IAAMqC,YAAY,GAAGC,aAAO,CAAC/B,UAAU,CAACgC,IAAI,EAAE,CAAC,CAAA;AAC/C,MAAA,IAAMC,yBAAyB,GAC7BjC,UAAU,CAACkC,QAAQ,CAAC,GAAG,CAAC,IAAIlC,UAAU,CAACkC,QAAQ,CAAC,GAAG,CAAC,CAAA;AAEtD,MAAA,IAAMC,uBAAuB,GAAGN,aAAa,CAACO,IAAI,CAChD,UAAArG,MAAM,EAAA;AAAA,QAAA,OAAIA,MAAM,CAAC7E,KAAK,KAAK8I,UAAU,CAAC9C,WAAW,EAAE,CAAA;OACpD,CAAA,CAAA;AAED,MAAA,OAAO,EACL4E,YAAY,IACZG,yBAAyB,IACzBE,uBAAuB,CACxB,CAAA;KACF,CAAA;AACDT,IAAAA,aAAa,GAAG;AAAEL,MAAAA,cAAc,EAAdA,cAAc;AAAEM,MAAAA,gBAAgB,EAAhBA,gBAAAA;KAAkB,CAAA;AACtD,GAAA;AAEA,EAAA,IAAMU,yBAAyB,GAC7B,CAAC,CAACvD,mBAAmB,IAAI5H,KAAK,CAACU,MAAM,GAAGiG,mBAAmB,CAAC3G,KAAK,CAAC,CAAA;EAEpE,oBACEY,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKO,IAAAA,SAAS,EAAC,uDAAA;GACbR,eAAAA,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKO,IAAAA,SAAS,EAAC,qCAAA;GACZS,EAAAA,KAAK,iBACJjB,KAAA,CAAAC,aAAA,CAACuK,KAAK,EAAApK,QAAA,CAAA;AACEmH,IAAAA,QAAQ,EAARA,QAAQ;AACd/G,IAAAA,SAAS,EAAC,6BAA6B;AACvC,IAAA,SAAA,EAAA,EAAA,CAAAM,MAAA,CAAYC,eAAS,CAACE,KAAK,CAAC,EAAA,cAAA,CAAA;GACxBuG,EAAAA,UAAU,GAEbvG,KAAK,CAET,EACA0H,gBAAgB,iBACf3I,KAAA,CAAAC,aAAA,CAAA,GAAA,EAAA;AACEO,IAAAA,SAAS,EAAC,+BAA+B;AACzC,IAAA,SAAA,EAAA,EAAA,CAAAM,MAAA,CAAYC,eAAS,CAACE,KAAK,CAAC,EAAA,gBAAA,CAAA;AAAiB,GAAA,EAE5C8E,mBAAmB,CAAC3G,KAAK,CAAC,EAAE,GAAG,EAC/B6H,OAAO,CAAChG,KAAK,GACVgG,OAAO,CAAChG,KAAK,GACb+E,iBAAiB,CAACD,mBAAmB,CAAC3G,KAAK,CAAC,CAAC,CAEpD,CACG,eACNY,KAAA,CAAAC,aAAA,CAACwK,wCAAe,EAAArK,QAAA,CAAA;IACdsK,OAAO,EAAA,IAAA;IACPnD,QAAQ,EAAA,IAAA;AACRoD,IAAAA,eAAe,EAAC,uBAAuB;AACvCzK,IAAAA,UAAU,EAAEsD,iBAAkB;AAC9BoH,IAAAA,UAAU,EAAEzD,QAAS;AACrB3G,IAAAA,SAAS,EAAEqK,UAAU,CACnB,wGAAwG,EACxG;MAAE,yCAAyC,EAAE,CAAC,CAACzM,KAAAA;AAAM,KAAC,CACtD;AACFiF,IAAAA,MAAM,EAAA/C,aAAA,CAAAA,aAAA,KACD2C,aAAa,CAAA,EAAA,EAAA,EAAA;MAChB6H,OAAO,EAAEC,eAAS,CAAC;AACjB1D,QAAAA,SAAS,EAAAvG,EAAAA,CAAAA,MAAA,CAAKuG,SAAS,EAAI,IAAA,CAAA;AAC3B2D,QAAAA,SAAS,EAAE,MAAA;OACZ,CAAA;KACD,CAAA;AACFjE,IAAAA,MAAM,EAAE4C,UAAW;IACnBsB,OAAO,EAAE,SAAAA,OAAA,GAAA;MAAA,OAAM3C,YAAY,CAAC,IAAI,CAAC,CAAA;KAAC;IAClC4C,aAAa,EAAE,SAAAA,aAAAA,CAAAhD,UAAU,EAAA;MAAA,OAAIC,aAAa,CAACD,UAAU,CAAC,CAAA;KAAC;AACvDiD,IAAAA,SAAS,EAAEjC,aAAAA;AAAc,GAAA,EAAA5I,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAA;AAEvBsC,IAAAA,iBAAiB,EAAjBA,iBAAiB;AACjBsF,IAAAA,UAAU,EAAVA,UAAU;AACVzG,IAAAA,gBAAgB,EAAhBA,gBAAgB;AAChB1C,IAAAA,SAAS,EAATA,SAAS;AACT4H,IAAAA,QAAQ,EAARA,QAAQ;AACRL,IAAAA,WAAW,EAAXA,WAAW;AACX/F,IAAAA,GAAG,EAAHA,GAAG;AACHnB,IAAAA,KAAK,EAALA,KAAK;AACLoC,IAAAA,kBAAkB,EAAlBA,kBAAAA;GACI,EAAA,CAACqH,gBAAgB,IAAI;AAAEuC,IAAAA,UAAU,EAAE,KAAA;AAAM,GAAC,CAC3CvD,EAAAA,UAAU,CACV+B,EAAAA,aAAa,CAElB,CAAA,CAAA,EACD,CAAC,CAACxL,KAAK,iBACN4B,KAAA,CAAAC,aAAA,CAAA,GAAA,EAAA;AACEO,IAAAA,SAAS,EAAC,uBAAuB;AACjC,IAAA,SAAA,EAAA,EAAA,CAAAM,MAAA,CAAYC,eAAS,CAACE,KAAK,CAAC,EAAA,cAAA,CAAA;AAAe,GAAA,EAE1C7C,KAAK,EACLmM,yBAAyB,iBACxBvK,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AACEO,IAAAA,SAAS,EAAC,uCAAuC;AACjD6K,IAAAA,OAAO,EAAEvC,kBAAAA;GACV,EAAA,MAEC,EAAC9B,mBAAmB,CAAC/F,KAAK,GACtB+F,mBAAmB,CAAC/F,KAAK,GACzB,sCAAsC,CAE7C,CAEJ,EACA,CAAC,CAACuF,QAAQ,iBACTxG,KAAA,CAAAC,aAAA,CAAA,GAAA,EAAA;AACEO,IAAAA,SAAS,EAAC,2BAA2B;AACrC,IAAA,SAAA,EAAA,EAAA,CAAAM,MAAA,CAAYC,eAAS,CAACE,KAAK,CAAC,EAAA,aAAA,CAAA;GAE3BuF,EAAAA,QAAQ,CAEZ,EACA,CAAC,CAACiC,eAAe,CAAC3I,MAAM,iBACvBE,KAAA,CAAAC,aAAA,CAAA,GAAA,EAAA;AACEO,IAAAA,SAAS,EAAC,yBAAyB;AACnC,IAAA,SAAA,EAAA,EAAA,CAAAM,MAAA,CAAYC,eAAS,CAACE,KAAK,CAAC,EAAA,2BAAA,CAAA;GAC7B,EAAA,wDACuD,EAAC,GAAG,EACzDwH,eAAe,CAAC6C,IAAI,CAAC,IAAI,CAAC,CAE9B,CACG,CAAA;AAEV,CAAC,EACF;AAEDpF,eAAe,CAACqF,WAAW,GAAG,iBAAiB;;;;"}
|