@bigbinary/neetoui 8.3.30 → 8.3.32

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.
Files changed (305) hide show
  1. package/dist/Accordion.js +94 -76
  2. package/dist/Accordion.js.map +1 -1
  3. package/dist/ActionDropdown.js +29 -32
  4. package/dist/ActionDropdown.js.map +1 -1
  5. package/dist/Alert.js +44 -38
  6. package/dist/Alert.js.map +1 -1
  7. package/dist/Avatar.js +28 -22
  8. package/dist/Avatar.js.map +1 -1
  9. package/dist/Button.js +45 -43
  10. package/dist/Button.js.map +1 -1
  11. package/dist/Callout.js +12 -7
  12. package/dist/Callout.js.map +1 -1
  13. package/dist/Checkbox.js +35 -28
  14. package/dist/Checkbox.js.map +1 -1
  15. package/dist/ColorPicker.js +134 -117
  16. package/dist/ColorPicker.js.map +1 -1
  17. package/dist/DatePicker.js +25 -9
  18. package/dist/DatePicker.js.map +1 -1
  19. package/dist/Dropdown.js +75 -83
  20. package/dist/Dropdown.js.map +1 -1
  21. package/dist/Input.js +82 -70
  22. package/dist/Input.js.map +1 -1
  23. package/dist/Kbd.js +13 -7
  24. package/dist/Kbd.js.map +1 -1
  25. package/dist/Label.js +59 -40
  26. package/dist/Label.js.map +1 -1
  27. package/dist/Modal.js +76 -65
  28. package/dist/Modal.js.map +1 -1
  29. package/dist/MultiEmailInput.js +118 -99
  30. package/dist/MultiEmailInput.js.map +1 -1
  31. package/dist/NoData.js +55 -39
  32. package/dist/NoData.js.map +1 -1
  33. package/dist/Pagination.js +64 -52
  34. package/dist/Pagination.js.map +1 -1
  35. package/dist/Pane.js +66 -56
  36. package/dist/Pane.js.map +1 -1
  37. package/dist/Popover.js +10 -7
  38. package/dist/Popover.js.map +1 -1
  39. package/dist/ProgressBar.js +20 -17
  40. package/dist/ProgressBar.js.map +1 -1
  41. package/dist/Radio.js +50 -40
  42. package/dist/Radio.js.map +1 -1
  43. package/dist/Select.js +111 -90
  44. package/dist/Select.js.map +1 -1
  45. package/dist/Sidebar.js +265 -216
  46. package/dist/Sidebar.js.map +1 -1
  47. package/dist/Slider.js +45 -38
  48. package/dist/Slider.js.map +1 -1
  49. package/dist/Spinner.js +3 -2
  50. package/dist/Spinner.js.map +1 -1
  51. package/dist/Stepper.js +33 -26
  52. package/dist/Stepper.js.map +1 -1
  53. package/dist/Switch.js +56 -46
  54. package/dist/Switch.js.map +1 -1
  55. package/dist/Tab.js +17 -11
  56. package/dist/Tab.js.map +1 -1
  57. package/dist/Table.js +221 -182
  58. package/dist/Table.js.map +1 -1
  59. package/dist/Tag.js +31 -24
  60. package/dist/Tag.js.map +1 -1
  61. package/dist/{Textarea-DlEGZFfG.js → Textarea-D1gsiIxm.js} +66 -56
  62. package/dist/{Textarea-DlEGZFfG.js.map → Textarea-D1gsiIxm.js.map} +1 -1
  63. package/dist/Textarea.js +4 -4
  64. package/dist/TimePicker.js +25 -9
  65. package/dist/TimePicker.js.map +1 -1
  66. package/dist/Toastr.js +46 -37
  67. package/dist/Toastr.js.map +1 -1
  68. package/dist/Tooltip.js +10 -6
  69. package/dist/Tooltip.js.map +1 -1
  70. package/dist/TranslationProvider.js +6 -4
  71. package/dist/TranslationProvider.js.map +1 -1
  72. package/dist/Tree.js +17 -15
  73. package/dist/Tree.js.map +1 -1
  74. package/dist/TreeSelect.js +65 -58
  75. package/dist/TreeSelect.js.map +1 -1
  76. package/dist/Typography.js +7 -3
  77. package/dist/Typography.js.map +1 -1
  78. package/dist/cjs/Accordion.js +94 -76
  79. package/dist/cjs/Accordion.js.map +1 -1
  80. package/dist/cjs/ActionDropdown.js +29 -32
  81. package/dist/cjs/ActionDropdown.js.map +1 -1
  82. package/dist/cjs/Alert.js +43 -37
  83. package/dist/cjs/Alert.js.map +1 -1
  84. package/dist/cjs/Avatar.js +27 -21
  85. package/dist/cjs/Avatar.js.map +1 -1
  86. package/dist/cjs/Button.js +45 -43
  87. package/dist/cjs/Button.js.map +1 -1
  88. package/dist/cjs/Callout.js +11 -6
  89. package/dist/cjs/Callout.js.map +1 -1
  90. package/dist/cjs/Checkbox.js +34 -27
  91. package/dist/cjs/Checkbox.js.map +1 -1
  92. package/dist/cjs/ColorPicker.js +132 -115
  93. package/dist/cjs/ColorPicker.js.map +1 -1
  94. package/dist/cjs/DatePicker.js +25 -9
  95. package/dist/cjs/DatePicker.js.map +1 -1
  96. package/dist/cjs/Dropdown.js +74 -82
  97. package/dist/cjs/Dropdown.js.map +1 -1
  98. package/dist/cjs/Input.js +81 -69
  99. package/dist/cjs/Input.js.map +1 -1
  100. package/dist/cjs/Kbd.js +13 -7
  101. package/dist/cjs/Kbd.js.map +1 -1
  102. package/dist/cjs/Label.js +59 -40
  103. package/dist/cjs/Label.js.map +1 -1
  104. package/dist/cjs/Modal.js +76 -65
  105. package/dist/cjs/Modal.js.map +1 -1
  106. package/dist/cjs/MultiEmailInput.js +117 -98
  107. package/dist/cjs/MultiEmailInput.js.map +1 -1
  108. package/dist/cjs/NoData.js +55 -39
  109. package/dist/cjs/NoData.js.map +1 -1
  110. package/dist/cjs/Pagination.js +63 -51
  111. package/dist/cjs/Pagination.js.map +1 -1
  112. package/dist/cjs/Pane.js +65 -55
  113. package/dist/cjs/Pane.js.map +1 -1
  114. package/dist/cjs/Popover.js +10 -7
  115. package/dist/cjs/Popover.js.map +1 -1
  116. package/dist/cjs/ProgressBar.js +20 -17
  117. package/dist/cjs/ProgressBar.js.map +1 -1
  118. package/dist/cjs/Radio.js +49 -39
  119. package/dist/cjs/Radio.js.map +1 -1
  120. package/dist/cjs/Select.js +110 -89
  121. package/dist/cjs/Select.js.map +1 -1
  122. package/dist/cjs/Sidebar.js +268 -219
  123. package/dist/cjs/Sidebar.js.map +1 -1
  124. package/dist/cjs/Slider.js +45 -38
  125. package/dist/cjs/Slider.js.map +1 -1
  126. package/dist/cjs/Spinner.js +3 -2
  127. package/dist/cjs/Spinner.js.map +1 -1
  128. package/dist/cjs/Stepper.js +33 -26
  129. package/dist/cjs/Stepper.js.map +1 -1
  130. package/dist/cjs/Switch.js +55 -45
  131. package/dist/cjs/Switch.js.map +1 -1
  132. package/dist/cjs/Tab.js +17 -11
  133. package/dist/cjs/Tab.js.map +1 -1
  134. package/dist/cjs/Table.js +224 -185
  135. package/dist/cjs/Table.js.map +1 -1
  136. package/dist/cjs/Tag.js +30 -23
  137. package/dist/cjs/Tag.js.map +1 -1
  138. package/dist/cjs/{Textarea-CiUKmQHr.js → Textarea-BzBZbgdT.js} +65 -55
  139. package/dist/cjs/{Textarea-CiUKmQHr.js.map → Textarea-BzBZbgdT.js.map} +1 -1
  140. package/dist/cjs/Textarea.js +4 -4
  141. package/dist/cjs/TimePicker.js +25 -9
  142. package/dist/cjs/TimePicker.js.map +1 -1
  143. package/dist/cjs/Toastr.js +45 -36
  144. package/dist/cjs/Toastr.js.map +1 -1
  145. package/dist/cjs/Tooltip.js +10 -6
  146. package/dist/cjs/Tooltip.js.map +1 -1
  147. package/dist/cjs/TranslationProvider.js +5 -3
  148. package/dist/cjs/TranslationProvider.js.map +1 -1
  149. package/dist/cjs/Tree.js +17 -15
  150. package/dist/cjs/Tree.js.map +1 -1
  151. package/dist/cjs/TreeSelect.js +66 -59
  152. package/dist/cjs/TreeSelect.js.map +1 -1
  153. package/dist/cjs/Typography.js +7 -3
  154. package/dist/cjs/Typography.js.map +1 -1
  155. package/dist/cjs/constants.js.map +1 -1
  156. package/dist/cjs/formik/ActionBlock.js +16 -9
  157. package/dist/cjs/formik/ActionBlock.js.map +1 -1
  158. package/dist/cjs/formik/BlockNavigation.js +40 -30
  159. package/dist/cjs/formik/BlockNavigation.js.map +1 -1
  160. package/dist/cjs/formik/Button.js +5 -3
  161. package/dist/cjs/formik/Button.js.map +1 -1
  162. package/dist/cjs/formik/Checkbox.js +29 -28
  163. package/dist/cjs/formik/Checkbox.js.map +1 -1
  164. package/dist/cjs/formik/Form.js +53 -47
  165. package/dist/cjs/formik/Form.js.map +1 -1
  166. package/dist/cjs/formik/Input.js +27 -26
  167. package/dist/cjs/formik/Input.js.map +1 -1
  168. package/dist/cjs/formik/MultiEmailInput.js +10 -6
  169. package/dist/cjs/formik/MultiEmailInput.js.map +1 -1
  170. package/dist/cjs/formik/Radio.js +7 -7
  171. package/dist/cjs/formik/Radio.js.map +1 -1
  172. package/dist/cjs/formik/Select.js +15 -10
  173. package/dist/cjs/formik/Select.js.map +1 -1
  174. package/dist/cjs/formik/Slider.js +7 -7
  175. package/dist/cjs/formik/Slider.js.map +1 -1
  176. package/dist/cjs/formik/Switch.js +31 -28
  177. package/dist/cjs/formik/Switch.js.map +1 -1
  178. package/dist/cjs/formik/Textarea.js +28 -27
  179. package/dist/cjs/formik/Textarea.js.map +1 -1
  180. package/dist/cjs/formik/TreeSelect.js +8 -5
  181. package/dist/cjs/formik/TreeSelect.js.map +1 -1
  182. package/dist/cjs/formik/index.js +11 -7
  183. package/dist/cjs/formik/index.js.map +1 -1
  184. package/dist/cjs/{index-eifA8CnA.js → index-Dv40T5Ly.js} +195 -169
  185. package/dist/cjs/{index-eifA8CnA.js.map → index-Dv40T5Ly.js.map} +1 -1
  186. package/dist/cjs/{index--BeRLo6L.js → index-h3QcOeWw.js} +12 -14
  187. package/dist/cjs/{index--BeRLo6L.js.map → index-h3QcOeWw.js.map} +1 -1
  188. package/dist/cjs/index.css +1 -2
  189. package/dist/cjs/index.js +26 -10
  190. package/dist/cjs/index.js.map +1 -1
  191. package/dist/cjs/layouts.js +8 -3
  192. package/dist/cjs/layouts.js.map +1 -1
  193. package/dist/cjs/overlayManager.js +1 -2
  194. package/dist/cjs/overlayManager.js.map +1 -1
  195. package/dist/cjs/{react-select-creatable.esm-Bdv9YAMt.js → react-select-creatable.esm-lcdODVBz.js} +449 -243
  196. package/dist/cjs/react-select-creatable.esm-lcdODVBz.js.map +1 -0
  197. package/dist/cjs/useId-DXHUzdxd.js.map +1 -1
  198. package/dist/cjs/{useOverlayManager-CxBh9gVG.js → useOverlayManager-Bj58uLfc.js} +14 -9
  199. package/dist/cjs/{useOverlayManager-CxBh9gVG.js.map → useOverlayManager-Bj58uLfc.js.map} +1 -1
  200. package/dist/cjs/useQueryParams-BrrbBvY_.js +18 -0
  201. package/dist/cjs/{useQueryParams-l5fJJYCR.js.map → useQueryParams-BrrbBvY_.js.map} +1 -1
  202. package/dist/cjs/useRecentlyUsedColors-BcOkiB-v.js +1239 -0
  203. package/dist/cjs/useRecentlyUsedColors-BcOkiB-v.js.map +1 -0
  204. package/dist/cjs/useRestoreScrollPosition-DP8SUs19.js +236 -0
  205. package/dist/cjs/useRestoreScrollPosition-DP8SUs19.js.map +1 -0
  206. package/dist/constants.js.map +1 -1
  207. package/dist/formik/ActionBlock.js +16 -9
  208. package/dist/formik/ActionBlock.js.map +1 -1
  209. package/dist/formik/BlockNavigation.js +41 -31
  210. package/dist/formik/BlockNavigation.js.map +1 -1
  211. package/dist/formik/Button.js +6 -4
  212. package/dist/formik/Button.js.map +1 -1
  213. package/dist/formik/Checkbox.js +30 -29
  214. package/dist/formik/Checkbox.js.map +1 -1
  215. package/dist/formik/Form.js +54 -48
  216. package/dist/formik/Form.js.map +1 -1
  217. package/dist/formik/Input.js +28 -27
  218. package/dist/formik/Input.js.map +1 -1
  219. package/dist/formik/MultiEmailInput.js +11 -7
  220. package/dist/formik/MultiEmailInput.js.map +1 -1
  221. package/dist/formik/Radio.js +7 -7
  222. package/dist/formik/Radio.js.map +1 -1
  223. package/dist/formik/Select.js +17 -12
  224. package/dist/formik/Select.js.map +1 -1
  225. package/dist/formik/Slider.js +8 -8
  226. package/dist/formik/Slider.js.map +1 -1
  227. package/dist/formik/Switch.js +31 -28
  228. package/dist/formik/Switch.js.map +1 -1
  229. package/dist/formik/Textarea.js +29 -28
  230. package/dist/formik/Textarea.js.map +1 -1
  231. package/dist/formik/TreeSelect.js +9 -6
  232. package/dist/formik/TreeSelect.js.map +1 -1
  233. package/dist/formik/index.js +11 -7
  234. package/dist/formik/index.js.map +1 -1
  235. package/dist/{index-Dxaw6gl9.js → index-D6vmwyYl.js} +14 -16
  236. package/dist/index-D6vmwyYl.js.map +1 -0
  237. package/dist/{index-ITIifSw4.js → index-D6yXgUQN.js} +196 -170
  238. package/dist/{index-ITIifSw4.js.map → index-D6yXgUQN.js.map} +1 -1
  239. package/dist/index.css +1 -2
  240. package/dist/index.js +26 -10
  241. package/dist/index.js.map +1 -1
  242. package/dist/layouts.js +8 -3
  243. package/dist/layouts.js.map +1 -1
  244. package/dist/overlayManager.js +1 -2
  245. package/dist/overlayManager.js.map +1 -1
  246. package/dist/{react-select-creatable.esm-Dx_vEnyD.js → react-select-creatable.esm-opiJTCqo.js} +450 -244
  247. package/dist/react-select-creatable.esm-opiJTCqo.js.map +1 -0
  248. package/dist/useId-Jj9hXm-g.js.map +1 -1
  249. package/dist/{useOverlayManager-AZIGhUYS.js → useOverlayManager-BzuBvhPZ.js} +14 -9
  250. package/dist/{useOverlayManager-AZIGhUYS.js.map → useOverlayManager-BzuBvhPZ.js.map} +1 -1
  251. package/dist/useQueryParams-BKsf4FPY.js +16 -0
  252. package/dist/{useQueryParams-b60CHFUx.js.map → useQueryParams-BKsf4FPY.js.map} +1 -1
  253. package/dist/useRecentlyUsedColors-CtvdF-KQ.js +1236 -0
  254. package/dist/useRecentlyUsedColors-CtvdF-KQ.js.map +1 -0
  255. package/dist/useRestoreScrollPosition-BVX-mT5c.js +225 -0
  256. package/dist/useRestoreScrollPosition-BVX-mT5c.js.map +1 -0
  257. package/package.json +42 -48
  258. package/dist/cjs/react-select-creatable.esm-Bdv9YAMt.js.map +0 -1
  259. package/dist/cjs/useQueryParams-l5fJJYCR.js +0 -18
  260. package/dist/cjs/useRecentlyUsedColors-3cKx-eDH.js +0 -1270
  261. package/dist/cjs/useRecentlyUsedColors-3cKx-eDH.js.map +0 -1
  262. package/dist/cjs/useRestoreScrollPosition-PsoENtiB.js +0 -218
  263. package/dist/cjs/useRestoreScrollPosition-PsoENtiB.js.map +0 -1
  264. package/dist/index-Dxaw6gl9.js.map +0 -1
  265. package/dist/react-select-creatable.esm-Dx_vEnyD.js.map +0 -1
  266. package/dist/useQueryParams-b60CHFUx.js +0 -16
  267. package/dist/useRecentlyUsedColors-CqUfqfck.js +0 -1267
  268. package/dist/useRecentlyUsedColors-CqUfqfck.js.map +0 -1
  269. package/dist/useRestoreScrollPosition-C1NSANQW.js +0 -207
  270. package/dist/useRestoreScrollPosition-C1NSANQW.js.map +0 -1
  271. package/src/translations/ar.json +0 -41
  272. package/src/translations/bg.json +0 -41
  273. package/src/translations/ca.json +0 -41
  274. package/src/translations/cs.json +0 -41
  275. package/src/translations/da.json +0 -41
  276. package/src/translations/de.json +0 -41
  277. package/src/translations/en.json +0 -41
  278. package/src/translations/es-MX.json +0 -41
  279. package/src/translations/es.json +0 -41
  280. package/src/translations/et.json +0 -41
  281. package/src/translations/fi.json +0 -41
  282. package/src/translations/fil.json +0 -41
  283. package/src/translations/fr.json +0 -41
  284. package/src/translations/hi.json +0 -41
  285. package/src/translations/hr.json +0 -41
  286. package/src/translations/id.json +0 -41
  287. package/src/translations/index.js +0 -18
  288. package/src/translations/it.json +0 -41
  289. package/src/translations/ja.json +0 -41
  290. package/src/translations/ko.json +0 -41
  291. package/src/translations/nl.json +0 -41
  292. package/src/translations/pl.json +0 -41
  293. package/src/translations/pt-BR.json +0 -41
  294. package/src/translations/pt.json +0 -41
  295. package/src/translations/ro.json +0 -41
  296. package/src/translations/ru.json +0 -41
  297. package/src/translations/sk.json +0 -41
  298. package/src/translations/sl.json +0 -41
  299. package/src/translations/sv.json +0 -41
  300. package/src/translations/th.json +0 -41
  301. package/src/translations/tr.json +0 -41
  302. package/src/translations/uk.json +0 -41
  303. package/src/translations/vi.json +0 -41
  304. package/src/translations/zh-CN.json +0 -41
  305. package/src/translations/zh-TW.json +0 -41
package/dist/Modal.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.js","sources":["../src/components/Modal/Body.jsx","../src/components/Modal/Footer.jsx","../src/components/Modal/Header.jsx","../src/components/Modal/MemoizedChildren.js","../src/components/Modal/index.jsx"],"sourcesContent":["import React from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nconst Body = ({ children, className, dataCy }) => (\n <div\n className={classnames(\"neeto-ui-modal__body\", className)}\n data-cy={dataCy ?? \"modal-body\"}\n >\n {children}\n </div>\n);\n\nBody.propTypes = {\n /**\n * To specify className to be applied to the Modal Body.\n */\n className: PropTypes.string,\n /**\n * To specify the content to be rendered inside the Modal Body.\n */\n children: PropTypes.node,\n};\n\nexport default Body;\n","import React from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nconst Footer = ({ children, className, dataCy }) => (\n <div\n className={classnames(\"neeto-ui-modal__footer\", className)}\n data-cy={dataCy ?? \"modal-footer\"}\n >\n {children}\n </div>\n);\n\nFooter.propTypes = {\n /**\n * To specify className to be applied to the Modal Footer.\n */\n className: PropTypes.string,\n /**\n * To specify the content to be rendered inside the Modal Footer.\n */\n children: PropTypes.node,\n};\n\nexport default Footer;\n","import React from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nimport Typography from \"../Typography\";\n\nconst Header = ({ description = \"\", children, className, dataCy }) => (\n <div\n className={classnames(\"neeto-ui-modal__header\", className)}\n data-cy={dataCy ?? \"modal-header\"}\n >\n {children}\n {description && (\n <div className=\"neeto-ui-modal__header-desc\" data-cy=\"modal-header-desc\">\n <Typography lineHeight=\"normal\" style=\"body2\">\n {description}\n </Typography>\n </div>\n )}\n </div>\n);\n\nHeader.propTypes = {\n /**\n * <div class=\"neeto-ui-tag neeto-ui-tag--size-small neeto-ui-tag--style-outline neeto-ui-tag--style-success mb-2\">\n * New\n * </div>\n * To specify the short description of the Modal.\n */\n description: PropTypes.string,\n /**\n * To specify className to be applied to the Modal Header container.\n */\n className: PropTypes.string,\n /**\n * To specify the content to be rendered inside the Modal Header.\n */\n children: PropTypes.node,\n};\n\nexport default Header;\n","import React from \"react\";\n\nconst MemoizedChildren = React.memo(\n ({ children }) => children,\n (_, { shouldUpdate }) => !shouldUpdate\n);\n\nMemoizedChildren.displayName = \"MemoizedChildren\";\n\nexport default MemoizedChildren;\n","import React, { useRef, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { Close } from \"neetoicons\";\nimport PropTypes from \"prop-types\";\nimport { CSSTransition } from \"react-transition-group\";\n\nimport Backdrop from \"atoms/Backdrop\";\nimport Portal from \"atoms/Portal\";\nimport Button from \"components/Button\";\nimport { useOverlayManager, useOverlay } from \"hooks\";\n\nimport Body from \"./Body\";\nimport Footer from \"./Footer\";\nimport Header from \"./Header\";\nimport MemoizedChildren from \"./MemoizedChildren\";\n\nconst SIZES = {\n small: \"small\",\n medium: \"medium\",\n large: \"large\",\n fullScreen: \"fullScreen\",\n};\n\nconst Modal = ({\n size = SIZES.medium,\n isOpen = false,\n onClose = () => {},\n children,\n finalFocusRef,\n initialFocusRef,\n className = \"\",\n closeOnEsc = true,\n closeButton = true,\n backdropClassName = \"\",\n blockScrollOnMount = true,\n closeOnOutsideClick = true,\n forceRender = false,\n ...otherProps\n}) => {\n const [hasTransitionCompleted, setHasTransitionCompleted] = useState(false);\n\n const modalWrapper = useRef(null);\n const backdropRef = useRef(null);\n\n useOverlayManager(modalWrapper, isOpen);\n\n const { handleOverlayClose, setFocusField } = useOverlay({\n isOpen,\n initialFocusRef,\n finalFocusRef,\n overlayWrapper: modalWrapper,\n onClose,\n backdropRef,\n closeOnOutsideClick,\n closeOnEsc,\n blockScrollOnMount,\n hasTransitionCompleted,\n });\n\n const isFullScreenModal = size === SIZES.fullScreen;\n\n return (\n <Portal rootId=\"neeto-ui-portal\">\n <CSSTransition\n unmountOnExit\n appear={isOpen}\n classNames=\"neeto-ui-modal\"\n in={isOpen}\n timeout={300}\n onEntered={() => setHasTransitionCompleted(true)}\n onExited={() => setHasTransitionCompleted(false)}\n >\n <Backdrop\n data-testid=\"backdrop\"\n key=\"modal-backdrop\"\n ref={backdropRef}\n className={classnames(\n \"neeto-ui-modal__backdrop\",\n {\n \"neeto-ui-modal__backdrop--fullscreen\": isFullScreenModal,\n },\n backdropClassName\n )}\n >\n <div\n aria-modal\n key=\"modal-wrapper\"\n ref={modalWrapper}\n role=\"dialog\"\n className={classnames(\"neeto-ui-modal__wrapper\", {\n \"neeto-ui-modal__wrapper--small\": size === SIZES.small,\n \"neeto-ui-modal__wrapper--medium\": size === SIZES.medium,\n \"neeto-ui-modal__wrapper--large\": size === SIZES.large,\n \"neeto-ui-modal__wrapper--fullscreen\": isFullScreenModal,\n [className]: className,\n })}\n {...otherProps}\n >\n {closeButton && (\n <Button\n aria-label=\"Close\"\n className=\"neeto-ui-modal__close\"\n data-cy=\"modal-close-button\"\n data-testid=\"close-button\"\n icon={Close}\n size={isFullScreenModal ? \"large\" : \"small\"}\n style={isFullScreenModal ? \"secondary\" : \"text\"}\n onClick={handleOverlayClose}\n />\n )}\n <MemoizedChildren shouldUpdate={isOpen || forceRender}>\n {typeof children === \"function\"\n ? children({ setFocusField })\n : children}\n </MemoizedChildren>\n </div>\n </Backdrop>\n </CSSTransition>\n </Portal>\n );\n};\n\nModal.propTypes = {\n /**\n * To specify the size of the Modal.\n */\n size: PropTypes.oneOf(Object.values(SIZES)),\n /**\n * To specify whether the Modal is open or not.\n */\n isOpen: PropTypes.bool,\n /**\n * To specify the callback which will be invoked when the Modal is closed.\n */\n onClose: PropTypes.func,\n /**\n * To specify the content to be rendered inside the Modal component.\n */\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n /**\n * To provide external classNames to the Modal.\n */\n className: PropTypes.string,\n /**\n * To close the Modal on pressing the Esc key.\n */\n closeOnEsc: PropTypes.bool,\n /**\n * To specify whether the close button of the Modal should be displayed or not.\n */\n closeButton: PropTypes.bool,\n /**\n * To add custom classes to backdrop component.\n */\n backdropClassName: PropTypes.string,\n /**\n * To close on clicking outside the Modal content.\n */\n closeOnOutsideClick: PropTypes.bool,\n /*\n * To specify the ref of the element which will receive focus when the Modal is closed.\n * If not specified, the focus will be set to the element which was focused when the Modal was opened.\n * If the Modal was opened by clicking on a button, then the focus will be set to the button.\n * */\n finalFocusRef: PropTypes.object,\n /**\n * <div class=\"neeto-ui-tag neeto-ui-tag--size-small neeto-ui-tag--style-outline neeto-ui-tag--style-success mb-2\">\n * New\n * </div>\n * To specify the ref of the element which will receive focus when the Modal is opened.\n * If not specified, the focus will be set to the first focusable element inside the Modal.\n * */\n initialFocusRef: PropTypes.object,\n /**\n * <div class=\"neeto-ui-tag neeto-ui-tag--size-small neeto-ui-tag--style-outline neeto-ui-tag--style-success mb-2\">\n * New\n * </div>\n * To specify whether the scroll should be blocked when the Modal is opened.\n * */\n blockScrollOnMount: PropTypes.bool,\n /**\n * The modal children will be force re-rendered if the boolean is set to `true`. Ideally the modal won't update\n * if the `isOpen` is `false`. You can use this prop to override that nature.\n */\n forceRender: PropTypes.bool,\n};\n\nModal.Header = Header;\nModal.Body = Body;\nModal.Footer = Footer;\n\nexport default Modal;\n"],"names":["Body","_ref","children","className","dataCy","React","createElement","classnames","Footer","Header","_ref$description","description","Typography","lineHeight","style","MemoizedChildren","memo","_","_ref2","shouldUpdate","displayName","SIZES","small","medium","large","fullScreen","Modal","_ref$size","size","_ref$isOpen","isOpen","_ref$onClose","onClose","finalFocusRef","initialFocusRef","_ref$className","_ref$closeOnEsc","closeOnEsc","_ref$closeButton","closeButton","_ref$backdropClassNam","backdropClassName","_ref$blockScrollOnMou","blockScrollOnMount","_ref$closeOnOutsideCl","closeOnOutsideClick","_ref$forceRender","forceRender","otherProps","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","hasTransitionCompleted","setHasTransitionCompleted","modalWrapper","useRef","backdropRef","useOverlayManager","_useOverlay","useOverlay","overlayWrapper","handleOverlayClose","setFocusField","isFullScreenModal","Portal","rootId","CSSTransition","unmountOnExit","appear","classNames","timeout","onEntered","onExited","Backdrop","key","ref","_extends","role","_defineProperty","Button","icon","Close","onClick"],"mappings":"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"}
1
+ {"version":3,"file":"Modal.js","sources":["../src/components/Modal/Body.jsx","../src/components/Modal/Footer.jsx","../src/components/Modal/Header.jsx","../src/components/Modal/MemoizedChildren.js","../src/components/Modal/index.jsx"],"sourcesContent":["import React from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nconst Body = ({ children, className, dataCy }) => (\n <div\n className={classnames(\"neeto-ui-modal__body\", className)}\n data-cy={dataCy ?? \"modal-body\"}\n >\n {children}\n </div>\n);\n\nBody.propTypes = {\n /**\n * To specify className to be applied to the Modal Body.\n */\n className: PropTypes.string,\n /**\n * To specify the content to be rendered inside the Modal Body.\n */\n children: PropTypes.node,\n};\n\nexport default Body;\n","import React from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nconst Footer = ({ children, className, dataCy }) => (\n <div\n className={classnames(\"neeto-ui-modal__footer\", className)}\n data-cy={dataCy ?? \"modal-footer\"}\n >\n {children}\n </div>\n);\n\nFooter.propTypes = {\n /**\n * To specify className to be applied to the Modal Footer.\n */\n className: PropTypes.string,\n /**\n * To specify the content to be rendered inside the Modal Footer.\n */\n children: PropTypes.node,\n};\n\nexport default Footer;\n","import React from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nimport Typography from \"../Typography\";\n\nconst Header = ({ description = \"\", children, className, dataCy }) => (\n <div\n className={classnames(\"neeto-ui-modal__header\", className)}\n data-cy={dataCy ?? \"modal-header\"}\n >\n {children}\n {description && (\n <div className=\"neeto-ui-modal__header-desc\" data-cy=\"modal-header-desc\">\n <Typography lineHeight=\"normal\" style=\"body2\">\n {description}\n </Typography>\n </div>\n )}\n </div>\n);\n\nHeader.propTypes = {\n /**\n * <div class=\"neeto-ui-tag neeto-ui-tag--size-small neeto-ui-tag--style-outline neeto-ui-tag--style-success mb-2\">\n * New\n * </div>\n * To specify the short description of the Modal.\n */\n description: PropTypes.string,\n /**\n * To specify className to be applied to the Modal Header container.\n */\n className: PropTypes.string,\n /**\n * To specify the content to be rendered inside the Modal Header.\n */\n children: PropTypes.node,\n};\n\nexport default Header;\n","import React from \"react\";\n\nconst MemoizedChildren = React.memo(\n ({ children }) => children,\n (_, { shouldUpdate }) => !shouldUpdate\n);\n\nMemoizedChildren.displayName = \"MemoizedChildren\";\n\nexport default MemoizedChildren;\n","import React, { useRef, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { Close } from \"neetoicons\";\nimport PropTypes from \"prop-types\";\nimport { CSSTransition } from \"react-transition-group\";\n\nimport Backdrop from \"atoms/Backdrop\";\nimport Portal from \"atoms/Portal\";\nimport Button from \"components/Button\";\nimport { useOverlayManager, useOverlay } from \"hooks\";\n\nimport Body from \"./Body\";\nimport Footer from \"./Footer\";\nimport Header from \"./Header\";\nimport MemoizedChildren from \"./MemoizedChildren\";\n\nconst SIZES = {\n small: \"small\",\n medium: \"medium\",\n large: \"large\",\n fullScreen: \"fullScreen\",\n};\n\nconst Modal = ({\n size = SIZES.medium,\n isOpen = false,\n onClose = () => {},\n children,\n finalFocusRef,\n initialFocusRef,\n className = \"\",\n closeOnEsc = true,\n closeButton = true,\n backdropClassName = \"\",\n blockScrollOnMount = true,\n closeOnOutsideClick = true,\n forceRender = false,\n ...otherProps\n}) => {\n const [hasTransitionCompleted, setHasTransitionCompleted] = useState(false);\n\n const modalWrapper = useRef(null);\n const backdropRef = useRef(null);\n\n useOverlayManager(modalWrapper, isOpen);\n\n const { handleOverlayClose, setFocusField } = useOverlay({\n isOpen,\n initialFocusRef,\n finalFocusRef,\n overlayWrapper: modalWrapper,\n onClose,\n backdropRef,\n closeOnOutsideClick,\n closeOnEsc,\n blockScrollOnMount,\n hasTransitionCompleted,\n });\n\n const isFullScreenModal = size === SIZES.fullScreen;\n\n return (\n <Portal rootId=\"neeto-ui-portal\">\n <CSSTransition\n unmountOnExit\n appear={isOpen}\n classNames=\"neeto-ui-modal\"\n in={isOpen}\n timeout={300}\n onEntered={() => setHasTransitionCompleted(true)}\n onExited={() => setHasTransitionCompleted(false)}\n >\n <Backdrop\n data-testid=\"backdrop\"\n key=\"modal-backdrop\"\n ref={backdropRef}\n className={classnames(\n \"neeto-ui-modal__backdrop\",\n {\n \"neeto-ui-modal__backdrop--fullscreen\": isFullScreenModal,\n },\n backdropClassName\n )}\n >\n <div\n aria-modal\n key=\"modal-wrapper\"\n ref={modalWrapper}\n role=\"dialog\"\n className={classnames(\"neeto-ui-modal__wrapper\", {\n \"neeto-ui-modal__wrapper--small\": size === SIZES.small,\n \"neeto-ui-modal__wrapper--medium\": size === SIZES.medium,\n \"neeto-ui-modal__wrapper--large\": size === SIZES.large,\n \"neeto-ui-modal__wrapper--fullscreen\": isFullScreenModal,\n [className]: className,\n })}\n {...otherProps}\n >\n {closeButton && (\n <Button\n aria-label=\"Close\"\n className=\"neeto-ui-modal__close\"\n data-cy=\"modal-close-button\"\n data-testid=\"close-button\"\n icon={Close}\n size={isFullScreenModal ? \"large\" : \"small\"}\n style={isFullScreenModal ? \"secondary\" : \"text\"}\n onClick={handleOverlayClose}\n />\n )}\n <MemoizedChildren shouldUpdate={isOpen || forceRender}>\n {typeof children === \"function\"\n ? children({ setFocusField })\n : children}\n </MemoizedChildren>\n </div>\n </Backdrop>\n </CSSTransition>\n </Portal>\n );\n};\n\nModal.propTypes = {\n /**\n * To specify the size of the Modal.\n */\n size: PropTypes.oneOf(Object.values(SIZES)),\n /**\n * To specify whether the Modal is open or not.\n */\n isOpen: PropTypes.bool,\n /**\n * To specify the callback which will be invoked when the Modal is closed.\n */\n onClose: PropTypes.func,\n /**\n * To specify the content to be rendered inside the Modal component.\n */\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n /**\n * To provide external classNames to the Modal.\n */\n className: PropTypes.string,\n /**\n * To close the Modal on pressing the Esc key.\n */\n closeOnEsc: PropTypes.bool,\n /**\n * To specify whether the close button of the Modal should be displayed or not.\n */\n closeButton: PropTypes.bool,\n /**\n * To add custom classes to backdrop component.\n */\n backdropClassName: PropTypes.string,\n /**\n * To close on clicking outside the Modal content.\n */\n closeOnOutsideClick: PropTypes.bool,\n /*\n * To specify the ref of the element which will receive focus when the Modal is closed.\n * If not specified, the focus will be set to the element which was focused when the Modal was opened.\n * If the Modal was opened by clicking on a button, then the focus will be set to the button.\n * */\n finalFocusRef: PropTypes.object,\n /**\n * <div class=\"neeto-ui-tag neeto-ui-tag--size-small neeto-ui-tag--style-outline neeto-ui-tag--style-success mb-2\">\n * New\n * </div>\n * To specify the ref of the element which will receive focus when the Modal is opened.\n * If not specified, the focus will be set to the first focusable element inside the Modal.\n * */\n initialFocusRef: PropTypes.object,\n /**\n * <div class=\"neeto-ui-tag neeto-ui-tag--size-small neeto-ui-tag--style-outline neeto-ui-tag--style-success mb-2\">\n * New\n * </div>\n * To specify whether the scroll should be blocked when the Modal is opened.\n * */\n blockScrollOnMount: PropTypes.bool,\n /**\n * The modal children will be force re-rendered if the boolean is set to `true`. Ideally the modal won't update\n * if the `isOpen` is `false`. You can use this prop to override that nature.\n */\n forceRender: PropTypes.bool,\n};\n\nModal.Header = Header;\nModal.Body = Body;\nModal.Footer = Footer;\n\nexport default Modal;\n"],"names":["Body","_ref","children","className","dataCy","_jsx","classnames","Footer","Header","_ref$description","description","_jsxs","Typography","lineHeight","style","MemoizedChildren","React","memo","_","_ref2","shouldUpdate","displayName","SIZES","small","medium","large","fullScreen","Modal","_ref$size","size","_ref$isOpen","isOpen","_ref$onClose","onClose","finalFocusRef","initialFocusRef","_ref$className","_ref$closeOnEsc","closeOnEsc","_ref$closeButton","closeButton","_ref$backdropClassNam","backdropClassName","_ref$blockScrollOnMou","blockScrollOnMount","_ref$closeOnOutsideCl","closeOnOutsideClick","_ref$forceRender","forceRender","otherProps","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","hasTransitionCompleted","setHasTransitionCompleted","modalWrapper","useRef","backdropRef","useOverlayManager","_useOverlay","useOverlay","overlayWrapper","handleOverlayClose","setFocusField","isFullScreenModal","Portal","rootId","CSSTransition","unmountOnExit","appear","classNames","timeout","onEntered","onExited","Backdrop","ref","_objectSpread","role","_defineProperty","Button","icon","Close","onClick"],"mappings":"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"}
@@ -1,16 +1,16 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
- import _extends from '@babel/runtime/helpers/extends';
3
2
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
4
3
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
5
4
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
6
- import React__default, { useRef, useEffect, forwardRef, useState } from 'react';
5
+ import { useRef, useEffect, forwardRef, useState } from 'react';
7
6
  import classnames from 'classnames';
8
7
  import { assoc, pluck, mergeLeft, isEmpty } from 'ramda';
9
- import { c as components, C as CreatableSelect } from './react-select-creatable.esm-Dx_vEnyD.js';
10
- import { h as hyphenize, n as noop } from './index-Dxaw6gl9.js';
8
+ import { c as components, C as CreatableSelect } from './react-select-creatable.esm-opiJTCqo.js';
9
+ import { h as hyphenize, n as noop } from './index-D6vmwyYl.js';
11
10
  import _toArray from '@babel/runtime/helpers/toArray';
12
- import { Close } from '@bigbinary/neeto-icons';
11
+ import Close from '@bigbinary/neeto-icons/Close';
13
12
  import Tag from './Tag.js';
13
+ import { jsx, jsxs } from 'react/jsx-runtime';
14
14
  import { isPresent } from '@bigbinary/neeto-cist';
15
15
  import Label from './Label.js';
16
16
  import '@babel/runtime/helpers/esm/extends';
@@ -20,6 +20,7 @@ import '@babel/runtime/helpers/esm/createClass';
20
20
  import '@babel/runtime/helpers/esm/inherits';
21
21
  import '@babel/runtime/helpers/esm/createSuper';
22
22
  import '@babel/runtime/helpers/esm/toConsumableArray';
23
+ import '@babel/runtime/helpers/extends';
23
24
  import '@babel/runtime/helpers/esm/taggedTemplateLiteral';
24
25
  import '@babel/runtime/helpers/esm/objectWithoutProperties';
25
26
  import '@babel/runtime/helpers/esm/slicedToArray';
@@ -40,6 +41,7 @@ import 'dayjs/plugin/localeData';
40
41
  import 'dayjs/plugin/utc';
41
42
  import 'dayjs/plugin/weekday';
42
43
  import 'dayjs/plugin/weekOfYear';
44
+ import '@bigbinary/neeto-icons/Help';
43
45
  import './Button.js';
44
46
  import 'react-router-dom';
45
47
  import './Spinner.js';
@@ -51,8 +53,8 @@ import './Typography.js';
51
53
 
52
54
  var _excluded$2 = ["children"],
53
55
  _excluded2 = ["children"];
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
+ function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
57
+ function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
56
58
  var STYLES = {
57
59
  border: {
58
60
  "default": "1px solid rgb(var(--neeto-ui-gray-400))",
@@ -88,25 +90,31 @@ var CustomControl = function CustomControl(_ref) {
88
90
  if (isFocused && !isItemDeleted || isItemAdded) scrollToBottom();
89
91
  prevValue.current = value;
90
92
  }, [isFocused, value]);
91
- return /*#__PURE__*/React__default.createElement(components.Control, _extends({}, props, {
93
+ return /*#__PURE__*/jsxs(components.Control, _objectSpread$2(_objectSpread$2({}, props), {}, {
92
94
  innerProps: _objectSpread$2(_objectSpread$2({}, props.innerProps), {}, {
93
95
  ref: controlRef
94
- })
95
- }), prefix && /*#__PURE__*/React__default.createElement("div", {
96
- className: "neeto-ui-email-input__prefix"
97
- }, prefix), children);
96
+ }),
97
+ children: [prefix && /*#__PURE__*/jsx("div", {
98
+ className: "neeto-ui-email-input__prefix",
99
+ children: prefix
100
+ }), children]
101
+ }));
98
102
  };
99
103
  var CustomDropdownIndicator = function CustomDropdownIndicator(props) {
100
104
  var suffix = props.selectProps.suffix;
101
- return suffix ? /*#__PURE__*/React__default.createElement(components.DropdownIndicator, props, /*#__PURE__*/React__default.createElement("div", {
102
- className: "neeto-ui-email-input__suffix"
103
- }, suffix)) : null;
105
+ return suffix ? /*#__PURE__*/jsx(components.DropdownIndicator, _objectSpread$2(_objectSpread$2({}, props), {}, {
106
+ children: /*#__PURE__*/jsx("div", {
107
+ className: "neeto-ui-email-input__suffix",
108
+ children: suffix
109
+ })
110
+ })) : null;
104
111
  };
105
112
  var MultiValueRemove = function MultiValueRemove(props) {
106
- return /*#__PURE__*/React__default.createElement(components.MultiValueRemove, _extends({}, props, {
107
- innerProps: _objectSpread$2(_objectSpread$2({}, props.innerProps), {}, _defineProperty({}, "data-cy", "".concat(hyphenize(props.data.label), "-remove-icon")))
108
- }), /*#__PURE__*/React__default.createElement(Close, {
109
- size: 16
113
+ return /*#__PURE__*/jsx(components.MultiValueRemove, _objectSpread$2(_objectSpread$2({}, props), {}, {
114
+ innerProps: _objectSpread$2(_objectSpread$2({}, props.innerProps), {}, _defineProperty({}, "data-cy", "".concat(hyphenize(props.data.label), "-remove-icon"))),
115
+ children: /*#__PURE__*/jsx(Close, {
116
+ size: 16
117
+ })
110
118
  }));
111
119
  };
112
120
  var CustomValueContainer = function CustomValueContainer(_ref2) {
@@ -122,23 +130,25 @@ var CustomValueContainer = function CustomValueContainer(_ref2) {
122
130
  firstChild = _children[0],
123
131
  rest = _children.slice(1);
124
132
  var shouldCollapse = !isAlwaysExpanded && !isFocused && value.length > visibleEmailsCount;
125
- return /*#__PURE__*/React__default.createElement(components.ValueContainer, _extends({}, props, {
126
- innerProps: _objectSpread$2(_objectSpread$2({}, props.innerProps), {}, _defineProperty({}, "data-cy", "multi-email-input-container"))
127
- }), shouldCollapse ? firstChild.slice(0, visibleEmailsCount) : firstChild, shouldCollapse && /*#__PURE__*/React__default.createElement(Tag, {
128
- label: "".concat(value.length - visibleEmailsCount, " more"),
129
- style: "secondary"
130
- }), rest);
133
+ return /*#__PURE__*/jsxs(components.ValueContainer, _objectSpread$2(_objectSpread$2({}, props), {}, {
134
+ innerProps: _objectSpread$2(_objectSpread$2({}, props.innerProps), {}, _defineProperty({}, "data-cy", "multi-email-input-container")),
135
+ children: [shouldCollapse ? firstChild.slice(0, visibleEmailsCount) : firstChild, shouldCollapse && /*#__PURE__*/jsx(Tag, {
136
+ label: "".concat(value.length - visibleEmailsCount, " more"),
137
+ style: "secondary"
138
+ }), rest]
139
+ }));
131
140
  };
132
141
  var CustomClearIndicator = function CustomClearIndicator(props) {
133
- return /*#__PURE__*/React__default.createElement(components.ClearIndicator, _extends({}, props, {
134
- innerProps: _objectSpread$2(_objectSpread$2({}, props.innerProps), {}, _defineProperty({}, "data-cy", "clear-all-button"))
135
- }), /*#__PURE__*/React__default.createElement(Close, {
136
- className: "cursor-pointer",
137
- size: 16
142
+ return /*#__PURE__*/jsx(components.ClearIndicator, _objectSpread$2(_objectSpread$2({}, props), {}, {
143
+ innerProps: _objectSpread$2(_objectSpread$2({}, props.innerProps), {}, _defineProperty({}, "data-cy", "clear-all-button")),
144
+ children: /*#__PURE__*/jsx(Close, {
145
+ className: "cursor-pointer",
146
+ size: 16
147
+ })
138
148
  }));
139
149
  };
140
150
  var SelectContainer = function SelectContainer(props) {
141
- return /*#__PURE__*/React__default.createElement(components.SelectContainer, _extends({}, props, {
151
+ return /*#__PURE__*/jsx(components.SelectContainer, _objectSpread$2(_objectSpread$2({}, props), {}, {
142
152
  innerProps: _objectSpread$2(_objectSpread$2({}, props.innerProps), {}, _defineProperty({}, "data-cy", "multi-email-select-container"))
143
153
  }));
144
154
  };
@@ -147,12 +157,12 @@ var Input = function Input(props) {
147
157
  var handleEmailChange = props.selectProps.handleEmailChange;
148
158
  var text = event.clipboardData.getData("Text");
149
159
  if (!EMAIL_REGEX.test(text)) return;
150
- event === null || event === void 0 || event.preventDefault();
160
+ event === null || event === void 0 ? void 0 : event.preventDefault();
151
161
  setTimeout(function () {
152
162
  return handleEmailChange(text);
153
163
  });
154
164
  };
155
- return /*#__PURE__*/React__default.createElement(components.Input, _extends({}, props, {
165
+ return /*#__PURE__*/jsx(components.Input, _objectSpread$2(_objectSpread$2({}, props), {}, {
156
166
  "data-cy": "email-select-input-field",
157
167
  onPaste: handlePaste
158
168
  }));
@@ -181,8 +191,8 @@ var CUSTOM_COMPONENTS = {
181
191
  };
182
192
 
183
193
  var _excluded$1 = ["label", "value"];
184
- 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; }
185
- 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; }
194
+ function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
195
+ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
186
196
  var getEmailsMap = function getEmailsMap() {
187
197
  var inputEmails = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
188
198
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
@@ -251,8 +261,8 @@ var renderDuplicateEmailsWarningMessage = function renderDuplicateEmailsWarningM
251
261
  };
252
262
 
253
263
  var _excluded = ["label", "placeholder", "helpText", "value", "onChange", "error", "onBlur", "filterInvalidEmails", "counter", "disabled", "maxHeight", "required", "labelProps", "visibleEmailsCount", "isCreateable", "isAlwaysExpanded"];
254
- function ownKeys(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; }
255
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
264
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
265
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
256
266
  var MultiEmailInput = /*#__PURE__*/forwardRef(function (_ref, ref) {
257
267
  var _ref$label = _ref.label,
258
268
  label = _ref$label === void 0 ? "Email(s)" : _ref$label,
@@ -351,7 +361,7 @@ var MultiEmailInput = /*#__PURE__*/forwardRef(function (_ref, ref) {
351
361
  duplicates = _pruneDuplicates2.duplicates;
352
362
  onChange(uniqueEmails);
353
363
  setDuplicateEmails(duplicates);
354
- otherProps === null || otherProps === void 0 || (_otherProps$onCreateO = otherProps.onCreateOption) === null || _otherProps$onCreateO === void 0 || _otherProps$onCreateO.call(otherProps, input);
364
+ otherProps === null || otherProps === void 0 ? void 0 : (_otherProps$onCreateO = otherProps.onCreateOption) === null || _otherProps$onCreateO === void 0 ? void 0 : _otherProps$onCreateO.call(otherProps, input);
355
365
  };
356
366
  var handleBlur = function handleBlur(event) {
357
367
  inputValue ? handleEmailChange(inputValue) : onBlur(event);
@@ -375,68 +385,77 @@ var MultiEmailInput = /*#__PURE__*/forwardRef(function (_ref, ref) {
375
385
  };
376
386
  }
377
387
  var isFilterEmailsLinkVisible = !!filterInvalidEmails && value.length > getValidEmailsCount(value);
378
- return /*#__PURE__*/React__default.createElement("div", {
388
+ return /*#__PURE__*/jsxs("div", {
379
389
  className: "neeto-ui-input__wrapper neeto-ui-email-input__wrapper",
380
- "data-cy": "email-input-wrapper"
381
- }, /*#__PURE__*/React__default.createElement("div", {
382
- className: "neeto-ui-email-input__label-wrapper"
383
- }, label && /*#__PURE__*/React__default.createElement(Label, _extends({
384
- required: required,
385
- className: "neeto-ui-email-input__label",
386
- "data-cy": "".concat(hyphenize(label), "-input-label")
387
- }, labelProps), label), isCounterVisible && /*#__PURE__*/React__default.createElement("p", {
388
- className: "neeto-ui-email-input__counter",
389
- "data-cy": "".concat(hyphenize(label), "-email-counter")
390
- }, getValidEmailsCount(value), " ", counter.label ? counter.label : renderDefaultText(getValidEmailsCount(value)))), /*#__PURE__*/React__default.createElement(CreatableSelect, _extends({
391
- isMulti: true,
392
- required: true,
393
- classNamePrefix: "neeto-ui-react-select",
394
- components: CUSTOM_COMPONENTS,
395
- isDisabled: disabled,
396
- menuIsOpen: isMenuOpen,
397
- className: classnames("neeto-ui-react-select__container neeto-ui-react-select__container--medium neeto-ui-email-input__select", {
398
- "neeto-ui-react-select__container--error": !!error
399
- }),
400
- styles: _objectSpread(_objectSpread({}, CUSTOM_STYLES), {}, {
401
- control: mergeLeft({
402
- maxHeight: "".concat(maxHeight, "px"),
403
- overflowY: "auto"
404
- })
405
- }),
406
- onBlur: handleBlur,
407
- onFocus: function onFocus() {
408
- return setIsFocused(true);
409
- },
410
- onKeyDown: handleKeyDown,
411
- onInputChange: function onInputChange(inputValue) {
412
- setIsMenuOpen(Boolean(inputValue));
413
- setInputValue(inputValue);
414
- }
415
- }, _objectSpread(_objectSpread(_objectSpread({
416
- handleEmailChange: handleEmailChange,
417
- inputValue: inputValue,
418
- isAlwaysExpanded: isAlwaysExpanded,
419
- isFocused: isFocused,
420
- onChange: onChange,
421
- placeholder: placeholder,
422
- ref: ref,
423
- value: value,
424
- visibleEmailsCount: visibleEmailsCount
425
- }, !isOptionsPresent && {
426
- menuIsOpen: false
427
- }), otherProps), overrideProps))), !!error && /*#__PURE__*/React__default.createElement("p", {
428
- className: "neeto-ui-input__error",
429
- "data-cy": "".concat(hyphenize(label), "-input-error")
430
- }, error, isFilterEmailsLinkVisible && /*#__PURE__*/React__default.createElement("span", {
431
- className: "neeto-ui-font-semibold cursor-pointer",
432
- onClick: handleFilterEmails
433
- }, "\xA0", filterInvalidEmails.label ? filterInvalidEmails.label : "Click here to remove invalid emails.")), !!helpText && /*#__PURE__*/React__default.createElement("p", {
434
- className: "neeto-ui-input__help-text",
435
- "data-cy": "".concat(hyphenize(label), "-input-help")
436
- }, helpText), !!duplicateEmails.length && /*#__PURE__*/React__default.createElement("p", {
437
- className: "neeto-ui-input__error",
438
- "data-cy": "".concat(hyphenize(label), "-duplicate-emails-warning")
439
- }, renderDuplicateEmailsWarningMessage(duplicateEmails)));
390
+ "data-cy": "email-input-wrapper",
391
+ children: [/*#__PURE__*/jsxs("div", {
392
+ className: "neeto-ui-email-input__label-wrapper",
393
+ children: [label && /*#__PURE__*/jsx(Label, _objectSpread(_objectSpread({
394
+ required: required,
395
+ className: "neeto-ui-email-input__label",
396
+ "data-cy": "".concat(hyphenize(label), "-input-label")
397
+ }, labelProps), {}, {
398
+ children: label
399
+ })), isCounterVisible && /*#__PURE__*/jsxs("p", {
400
+ className: "neeto-ui-email-input__counter",
401
+ "data-cy": "".concat(hyphenize(label), "-email-counter"),
402
+ children: [getValidEmailsCount(value), " ", counter.label ? counter.label : renderDefaultText(getValidEmailsCount(value))]
403
+ })]
404
+ }), /*#__PURE__*/jsx(CreatableSelect, _objectSpread({
405
+ isMulti: true,
406
+ required: true,
407
+ classNamePrefix: "neeto-ui-react-select",
408
+ components: CUSTOM_COMPONENTS,
409
+ isDisabled: disabled,
410
+ menuIsOpen: isMenuOpen,
411
+ className: classnames("neeto-ui-react-select__container neeto-ui-react-select__container--medium neeto-ui-email-input__select", {
412
+ "neeto-ui-react-select__container--error": !!error
413
+ }),
414
+ styles: _objectSpread(_objectSpread({}, CUSTOM_STYLES), {}, {
415
+ control: mergeLeft({
416
+ maxHeight: "".concat(maxHeight, "px"),
417
+ overflowY: "auto"
418
+ })
419
+ }),
420
+ onBlur: handleBlur,
421
+ onFocus: function onFocus() {
422
+ return setIsFocused(true);
423
+ },
424
+ onKeyDown: handleKeyDown,
425
+ onInputChange: function onInputChange(inputValue) {
426
+ setIsMenuOpen(Boolean(inputValue));
427
+ setInputValue(inputValue);
428
+ }
429
+ }, _objectSpread(_objectSpread(_objectSpread({
430
+ handleEmailChange: handleEmailChange,
431
+ inputValue: inputValue,
432
+ isAlwaysExpanded: isAlwaysExpanded,
433
+ isFocused: isFocused,
434
+ onChange: onChange,
435
+ placeholder: placeholder,
436
+ ref: ref,
437
+ value: value,
438
+ visibleEmailsCount: visibleEmailsCount
439
+ }, !isOptionsPresent && {
440
+ menuIsOpen: false
441
+ }), otherProps), overrideProps))), !!error && /*#__PURE__*/jsxs("p", {
442
+ className: "neeto-ui-input__error",
443
+ "data-cy": "".concat(hyphenize(label), "-input-error"),
444
+ children: [error, isFilterEmailsLinkVisible && /*#__PURE__*/jsxs("span", {
445
+ className: "neeto-ui-font-semibold cursor-pointer",
446
+ onClick: handleFilterEmails,
447
+ children: ["\xA0", filterInvalidEmails.label ? filterInvalidEmails.label : "Click here to remove invalid emails."]
448
+ })]
449
+ }), !!helpText && /*#__PURE__*/jsx("p", {
450
+ className: "neeto-ui-input__help-text",
451
+ "data-cy": "".concat(hyphenize(label), "-input-help"),
452
+ children: helpText
453
+ }), !!duplicateEmails.length && /*#__PURE__*/jsx("p", {
454
+ className: "neeto-ui-input__error",
455
+ "data-cy": "".concat(hyphenize(label), "-duplicate-emails-warning"),
456
+ children: renderDuplicateEmailsWarningMessage(duplicateEmails)
457
+ })]
458
+ });
440
459
  });
441
460
  MultiEmailInput.displayName = "MultiEmailInput";
442
461
 
@@ -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 const handlePaste = event => {\n const { handleEmailChange } = props.selectProps;\n\n const text = event.clipboardData.getData(\"Text\");\n if (!EMAIL_REGEX.test(text)) return;\n\n event?.preventDefault();\n setTimeout(() => handleEmailChange(text));\n };\n\n return (\n <components.Input\n {...props}\n data-cy=\"email-select-input-field\"\n onPaste={handlePaste}\n />\n );\n};\n\nexport const EMAIL_REGEX = new RegExp(\n \"^[A-Z0-9._%+-]+@[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 { isPresent } from \"neetocist\";\nimport { pluck } from \"ramda\";\n\nimport { EMAIL_REGEX } from \"./constants\";\n\nconst getEmailsMap = (inputEmails = [], options = []) => {\n const emails = [...inputEmails, ...options];\n const emailsMap = new Map();\n\n emails.forEach(option => {\n const hasPersistedEntry = isPresent(emailsMap.get(option.value)?.id);\n if (!hasPersistedEntry) emailsMap.set(option.value, option);\n });\n\n return emailsMap;\n};\n\nconst processEmailOptions = (inputEmails = [], options = []) => {\n const emailsMap = getEmailsMap(inputEmails, options);\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(inputValues, options);\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\nexport const renderDuplicateEmailsWarningMessage = duplicateEmails => {\n const count = duplicateEmails.length;\n\n return `Removed ${count} duplicate ${renderDefaultText(\n count\n )} from the list: ${duplicateEmails.join(\", \")}`;\n};\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 renderDuplicateEmailsWarningMessage,\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 const [isMenuOpen, setIsMenuOpen] = useState(false);\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 setIsMenuOpen(false);\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\n className=\"neeto-ui-input__wrapper neeto-ui-email-input__wrapper\"\n data-cy=\"email-input-wrapper\"\n >\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 menuIsOpen={isMenuOpen}\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 onKeyDown={handleKeyDown}\n onInputChange={inputValue => {\n setIsMenuOpen(Boolean(inputValue));\n setInputValue(inputValue);\n }}\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 &nbsp;\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__error\"\n data-cy={`${hyphenize(label)}-duplicate-emails-warning`}\n >\n {renderDuplicateEmailsWarningMessage(duplicateEmails)}\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","handlePaste","event","handleEmailChange","text","clipboardData","getData","EMAIL_REGEX","test","preventDefault","setTimeout","onPaste","RegExp","UNSTRICT_EMAIL_REGEX","EMAIL_SEPARATION_REGEX","CUSTOM_STYLES","input","assoc","multiValue","styles","_ref3","valid","CUSTOM_COMPONENTS","getEmailsMap","inputEmails","arguments","undefined","options","emails","_toConsumableArray","emailsMap","Map","forEach","option","_emailsMap$get","hasPersistedEntry","isPresent","get","id","set","processEmailOptions","email","emailDetails","formatEmailInputOption","otherDetails","pruneDuplicates","inputValues","emailProcessor","pluck","uniqueValuesSet","Set","duplicates","pristineEmail","toLowerCase","has","push","add","uniqueValues","Array","from","uniqueEmails","map","renderValidEmails","values","filter","getValidEmailsCount","renderDefaultText","count","renderDuplicateEmailsWarningMessage","duplicateEmails","join","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","setDuplicateEmails","_useState7","_useState8","isMenuOpen","setIsMenuOpen","isCounterVisible","startsFrom","isOptionsPresent","handleFilterEmails","match","emailMatches","_pruneDuplicates","handleKeyDown","key","stopPropagation","onCreateOption","_otherProps$onCreateO","_pruneDuplicates2","call","handleBlur","overrideProps","isValidNewOption","_","selectOptions","isInputEmpty","isEmpty","trim","doesInputContainSeparator","includes","isInputPresentInOptions","find","isFilterEmailsLinkVisible","Label","CreatableSelect","isMulti","classNamePrefix","isDisabled","menuIsOpen","classnames","control","mergeLeft","overflowY","onFocus","onKeyDown","onInputChange","Boolean","onClick","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 const handlePaste = event => {\n const { handleEmailChange } = props.selectProps;\n\n const text = event.clipboardData.getData(\"Text\");\n if (!EMAIL_REGEX.test(text)) return;\n\n event?.preventDefault();\n setTimeout(() => handleEmailChange(text));\n };\n\n return (\n <components.Input\n {...props}\n data-cy=\"email-select-input-field\"\n onPaste={handlePaste}\n />\n );\n};\n\nexport const EMAIL_REGEX = new RegExp(\n \"^[A-Z0-9._%+-]+@[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 { isPresent } from \"neetocist\";\nimport { pluck } from \"ramda\";\n\nimport { EMAIL_REGEX } from \"./constants\";\n\nconst getEmailsMap = (inputEmails = [], options = []) => {\n const emails = [...inputEmails, ...options];\n const emailsMap = new Map();\n\n emails.forEach(option => {\n const hasPersistedEntry = isPresent(emailsMap.get(option.value)?.id);\n if (!hasPersistedEntry) emailsMap.set(option.value, option);\n });\n\n return emailsMap;\n};\n\nconst processEmailOptions = (inputEmails = [], options = []) => {\n const emailsMap = getEmailsMap(inputEmails, options);\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(inputValues, options);\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\nexport const renderDuplicateEmailsWarningMessage = duplicateEmails => {\n const count = duplicateEmails.length;\n\n return `Removed ${count} duplicate ${renderDefaultText(\n count\n )} from the list: ${duplicateEmails.join(\", \")}`;\n};\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 renderDuplicateEmailsWarningMessage,\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 const [isMenuOpen, setIsMenuOpen] = useState(false);\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 setIsMenuOpen(false);\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\n className=\"neeto-ui-input__wrapper neeto-ui-email-input__wrapper\"\n data-cy=\"email-input-wrapper\"\n >\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 menuIsOpen={isMenuOpen}\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 onKeyDown={handleKeyDown}\n onInputChange={inputValue => {\n setIsMenuOpen(Boolean(inputValue));\n setInputValue(inputValue);\n }}\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 &nbsp;\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__error\"\n data-cy={`${hyphenize(label)}-duplicate-emails-warning`}\n >\n {renderDuplicateEmailsWarningMessage(duplicateEmails)}\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","_jsxs","components","Control","_objectSpread","innerProps","ref","_jsx","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","handlePaste","event","handleEmailChange","text","clipboardData","getData","EMAIL_REGEX","test","preventDefault","setTimeout","onPaste","RegExp","UNSTRICT_EMAIL_REGEX","EMAIL_SEPARATION_REGEX","CUSTOM_STYLES","input","assoc","multiValue","styles","_ref3","valid","CUSTOM_COMPONENTS","getEmailsMap","inputEmails","arguments","undefined","options","emails","_toConsumableArray","emailsMap","Map","forEach","option","_emailsMap$get","hasPersistedEntry","isPresent","get","id","set","processEmailOptions","email","emailDetails","formatEmailInputOption","otherDetails","pruneDuplicates","inputValues","emailProcessor","pluck","uniqueValuesSet","Set","duplicates","pristineEmail","toLowerCase","has","push","add","uniqueValues","Array","from","uniqueEmails","map","renderValidEmails","values","filter","getValidEmailsCount","renderDefaultText","count","renderDuplicateEmailsWarningMessage","duplicateEmails","join","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","setDuplicateEmails","_useState7","_useState8","isMenuOpen","setIsMenuOpen","isCounterVisible","startsFrom","isOptionsPresent","handleFilterEmails","match","emailMatches","_pruneDuplicates","handleKeyDown","key","stopPropagation","onCreateOption","_otherProps$onCreateO","_pruneDuplicates2","call","handleBlur","overrideProps","isValidNewOption","_","selectOptions","isInputEmpty","isEmpty","trim","doesInputContainSeparator","includes","isInputPresentInOptions","find","isFilterEmailsLinkVisible","Label","CreatableSelect","isMulti","classNamePrefix","isDisabled","menuIsOpen","classnames","control","mergeLeft","overflowY","onFocus","onKeyDown","onInputChange","Boolean","onClick","displayName"],"mappings":"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"}