@bigbinary/neeto-molecules 1.1.78 → 1.2.0-beta2

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 (351) hide show
  1. package/README.md +67 -52
  2. package/dist/Breadcrumbs.js +16 -19
  3. package/dist/Breadcrumbs.js.map +1 -1
  4. package/dist/BrowserSupport.js +41 -138
  5. package/dist/BrowserSupport.js.map +1 -1
  6. package/dist/Builder.js +207 -364
  7. package/dist/Builder.js.map +1 -1
  8. package/dist/CalendarView.js +40 -288
  9. package/dist/CalendarView.js.map +1 -1
  10. package/dist/Chevron-c639aa31.js +190 -0
  11. package/dist/Chevron-c639aa31.js.map +1 -0
  12. package/dist/Codeblock.js +26 -209
  13. package/dist/Codeblock.js.map +1 -1
  14. package/dist/Columns.js +16 -240
  15. package/dist/Columns.js.map +1 -1
  16. package/dist/ConfigurePageSidebar.js +97 -0
  17. package/dist/ConfigurePageSidebar.js.map +1 -0
  18. package/dist/ConfirmationModal.js +10 -10
  19. package/dist/ConfirmationModal.js.map +1 -1
  20. package/dist/Container.js +5 -1187
  21. package/dist/Container.js.map +1 -1
  22. package/dist/CopyToClipboardButton.js +26 -155
  23. package/dist/CopyToClipboardButton.js.map +1 -1
  24. package/dist/Currency.js +912 -0
  25. package/dist/Currency.js.map +1 -0
  26. package/dist/CustomDomain.js +37 -633
  27. package/dist/CustomDomain.js.map +1 -1
  28. package/dist/CustomDomainDashboard.js +69 -2192
  29. package/dist/CustomDomainDashboard.js.map +1 -1
  30. package/dist/DateFormat.js +6 -20
  31. package/dist/DateFormat.js.map +1 -1
  32. package/dist/DateRangeFilter.js +22 -77
  33. package/dist/DateRangeFilter.js.map +1 -1
  34. package/dist/DeleteArchiveModal.js +86 -0
  35. package/dist/DeleteArchiveModal.js.map +1 -0
  36. package/dist/DocumentEditor.js +43 -133
  37. package/dist/DocumentEditor.js.map +1 -1
  38. package/dist/DownloadMobileAppCallout.js +4 -4
  39. package/dist/DownloadMobileAppCallout.js.map +1 -1
  40. package/dist/DynamicVariables.js +12 -95
  41. package/dist/DynamicVariables.js.map +1 -1
  42. package/dist/EmailForm.js +79 -1741
  43. package/dist/EmailForm.js.map +1 -1
  44. package/dist/EmailPreview.js +32 -1213
  45. package/dist/EmailPreview.js.map +1 -1
  46. package/dist/EmojiPicker.js +106 -0
  47. package/dist/EmojiPicker.js.map +1 -0
  48. package/dist/EmojiReactions.js +69 -0
  49. package/dist/EmojiReactions.js.map +1 -0
  50. package/dist/ErrorPage.js +17 -26
  51. package/dist/ErrorPage.js.map +1 -1
  52. package/dist/FloatingActionMenu.js +646 -0
  53. package/dist/FloatingActionMenu.js.map +1 -0
  54. package/dist/Header.js +45 -117
  55. package/dist/Header.js.map +1 -1
  56. package/dist/HelpPopover.js +73 -0
  57. package/dist/HelpPopover.js.map +1 -0
  58. package/dist/IconPicker.js +36 -129
  59. package/dist/IconPicker.js.map +1 -1
  60. package/dist/ImageWithFallback.js +8 -144
  61. package/dist/ImageWithFallback.js.map +1 -1
  62. package/dist/InlineInput.js +25 -528
  63. package/dist/InlineInput.js.map +1 -1
  64. package/dist/Insights.js +305 -0
  65. package/dist/Insights.js.map +1 -0
  66. package/dist/IntegrationCard.js +42 -226
  67. package/dist/IntegrationCard.js.map +1 -1
  68. package/dist/IntegrationDisconnectAlert.js +6 -48
  69. package/dist/IntegrationDisconnectAlert.js.map +1 -1
  70. package/dist/IntegrationWalkthroughModal.js +10 -10
  71. package/dist/IntegrationWalkthroughModal.js.map +1 -1
  72. package/dist/IpRestriction.js +74 -221
  73. package/dist/IpRestriction.js.map +1 -1
  74. package/dist/KeyboardShortcuts.js +38 -128
  75. package/dist/KeyboardShortcuts.js.map +1 -1
  76. package/dist/LoginPage.js +44 -463
  77. package/dist/LoginPage.js.map +1 -1
  78. package/dist/MadeWith.js +32 -0
  79. package/dist/MadeWith.js.map +1 -0
  80. package/dist/MenuBar.js +34 -1295
  81. package/dist/MenuBar.js.map +1 -1
  82. package/dist/Metadata.js +65 -86
  83. package/dist/Metadata.js.map +1 -1
  84. package/dist/MoreDropdown.js +48 -107
  85. package/dist/MoreDropdown.js.map +1 -1
  86. package/dist/NavigationHeader.js +62 -733
  87. package/dist/NavigationHeader.js.map +1 -1
  88. package/dist/NeetoWidget.js +148 -316
  89. package/dist/NeetoWidget.js.map +1 -1
  90. package/dist/Onboarding.js +204 -0
  91. package/dist/Onboarding.js.map +1 -0
  92. package/dist/OptionFields.js +507 -0
  93. package/dist/OptionFields.js.map +1 -0
  94. package/dist/PageLoader.js +9 -112
  95. package/dist/PageLoader.js.map +1 -1
  96. package/dist/PhoneNumber.js +122 -201
  97. package/dist/PhoneNumber.js.map +1 -1
  98. package/dist/ProductEmbed.js +767 -0
  99. package/dist/ProductEmbed.js.map +1 -0
  100. package/dist/PublishBlock.js +19 -60
  101. package/dist/PublishBlock.js.map +1 -1
  102. package/dist/PublishYourItem.js +52 -0
  103. package/dist/PublishYourItem.js.map +1 -0
  104. package/dist/Rename.js +127 -394
  105. package/dist/Rename.js.map +1 -1
  106. package/dist/ResponsiveDevicePicker.js +8 -144
  107. package/dist/ResponsiveDevicePicker.js.map +1 -1
  108. package/dist/Schedule.js +134 -389
  109. package/dist/Schedule.js.map +1 -1
  110. package/dist/Scrollable.js +6 -89
  111. package/dist/Scrollable.js.map +1 -1
  112. package/dist/Search.js +54 -157
  113. package/dist/Search.js.map +1 -1
  114. package/dist/Security.js +72 -1567
  115. package/dist/Security.js.map +1 -1
  116. package/dist/SendToFields.js +51 -133
  117. package/dist/SendToFields.js.map +1 -1
  118. package/dist/Settings.js +141 -412
  119. package/dist/Settings.js.map +1 -1
  120. package/dist/ShareRecordingPane.js +189 -0
  121. package/dist/ShareRecordingPane.js.map +1 -0
  122. package/dist/ShareViaEmail.js +126 -551
  123. package/dist/ShareViaEmail.js.map +1 -1
  124. package/dist/ShareViaLink.js +127 -345
  125. package/dist/ShareViaLink.js.map +1 -1
  126. package/dist/Sidebar.js +161 -758
  127. package/dist/Sidebar.js.map +1 -1
  128. package/dist/StickyRibbonsContainer.js +81 -0
  129. package/dist/StickyRibbonsContainer.js.map +1 -0
  130. package/dist/SubHeader.js +63 -108
  131. package/dist/SubHeader.js.map +1 -1
  132. package/dist/SuffixedInput.js +105 -0
  133. package/dist/SuffixedInput.js.map +1 -0
  134. package/dist/TableWrapper.js +8 -9
  135. package/dist/TableWrapper.js.map +1 -1
  136. package/dist/Taxonomy.js +112 -1774
  137. package/dist/Taxonomy.js.map +1 -1
  138. package/dist/ThemeSidebar.js +168 -784
  139. package/dist/ThemeSidebar.js.map +1 -1
  140. package/dist/TimeFormat.js +8 -44
  141. package/dist/TimeFormat.js.map +1 -1
  142. package/dist/TimezoneMismatchModal.js +49 -84
  143. package/dist/TimezoneMismatchModal.js.map +1 -1
  144. package/dist/ToggleFeatureCard.js +46 -169
  145. package/dist/ToggleFeatureCard.js.map +1 -1
  146. package/dist/cjs/Breadcrumbs.js +49 -0
  147. package/dist/cjs/Breadcrumbs.js.map +1 -0
  148. package/dist/cjs/BrowserSupport.js +332 -0
  149. package/dist/cjs/BrowserSupport.js.map +1 -0
  150. package/dist/cjs/Builder.js +560 -0
  151. package/dist/cjs/Builder.js.map +1 -0
  152. package/dist/cjs/CalendarView.js +303 -0
  153. package/dist/cjs/CalendarView.js.map +1 -0
  154. package/dist/cjs/Chevron-5fe59f57.js +206 -0
  155. package/dist/cjs/Chevron-5fe59f57.js.map +1 -0
  156. package/dist/cjs/Codeblock.js +59 -0
  157. package/dist/cjs/Codeblock.js.map +1 -0
  158. package/dist/cjs/Columns.js +31 -0
  159. package/dist/cjs/Columns.js.map +1 -0
  160. package/dist/cjs/ConfigurePageSidebar.js +105 -0
  161. package/dist/cjs/ConfigurePageSidebar.js.map +1 -0
  162. package/dist/cjs/ConfirmationModal.js +120 -0
  163. package/dist/cjs/ConfirmationModal.js.map +1 -0
  164. package/dist/cjs/Container.js +36 -0
  165. package/dist/cjs/Container.js.map +1 -0
  166. package/dist/cjs/CopyToClipboardButton.js +90 -0
  167. package/dist/cjs/CopyToClipboardButton.js.map +1 -0
  168. package/dist/cjs/Currency.js +923 -0
  169. package/dist/cjs/Currency.js.map +1 -0
  170. package/dist/cjs/CustomDomain.js +126 -0
  171. package/dist/cjs/CustomDomain.js.map +1 -0
  172. package/dist/cjs/CustomDomainDashboard.js +202 -0
  173. package/dist/cjs/CustomDomainDashboard.js.map +1 -0
  174. package/dist/cjs/DateFormat.js +41 -0
  175. package/dist/cjs/DateFormat.js.map +1 -0
  176. package/dist/cjs/DateRangeFilter.js +183 -0
  177. package/dist/cjs/DateRangeFilter.js.map +1 -0
  178. package/dist/cjs/DeleteArchiveModal.js +93 -0
  179. package/dist/cjs/DeleteArchiveModal.js.map +1 -0
  180. package/dist/cjs/DocumentEditor.js +197 -0
  181. package/dist/cjs/DocumentEditor.js.map +1 -0
  182. package/dist/cjs/DownloadMobileAppCallout.js +45 -0
  183. package/dist/cjs/DownloadMobileAppCallout.js.map +1 -0
  184. package/dist/cjs/DynamicVariables.js +109 -0
  185. package/dist/cjs/DynamicVariables.js.map +1 -0
  186. package/dist/cjs/EmailForm.js +397 -0
  187. package/dist/cjs/EmailForm.js.map +1 -0
  188. package/dist/cjs/EmailPreview.js +139 -0
  189. package/dist/cjs/EmailPreview.js.map +1 -0
  190. package/dist/cjs/EmojiPicker.js +115 -0
  191. package/dist/cjs/EmojiPicker.js.map +1 -0
  192. package/dist/cjs/EmojiReactions.js +77 -0
  193. package/dist/cjs/EmojiReactions.js.map +1 -0
  194. package/dist/cjs/ErrorPage.js +180 -0
  195. package/dist/cjs/ErrorPage.js.map +1 -0
  196. package/dist/cjs/FloatingActionMenu.js +680 -0
  197. package/dist/cjs/FloatingActionMenu.js.map +1 -0
  198. package/dist/cjs/Header.js +107 -0
  199. package/dist/cjs/Header.js.map +1 -0
  200. package/dist/cjs/HelpPopover.js +82 -0
  201. package/dist/cjs/HelpPopover.js.map +1 -0
  202. package/dist/cjs/IconPicker.js +231 -0
  203. package/dist/cjs/IconPicker.js.map +1 -0
  204. package/dist/cjs/ImageWithFallback.js +56 -0
  205. package/dist/cjs/ImageWithFallback.js.map +1 -0
  206. package/dist/cjs/InlineInput.js +240 -0
  207. package/dist/cjs/InlineInput.js.map +1 -0
  208. package/dist/cjs/Insights.js +311 -0
  209. package/dist/cjs/Insights.js.map +1 -0
  210. package/dist/cjs/IntegrationCard.js +210 -0
  211. package/dist/cjs/IntegrationCard.js.map +1 -0
  212. package/dist/cjs/IntegrationDisconnectAlert.js +50 -0
  213. package/dist/cjs/IntegrationDisconnectAlert.js.map +1 -0
  214. package/dist/cjs/IntegrationWalkthroughModal.js +51 -0
  215. package/dist/cjs/IntegrationWalkthroughModal.js.map +1 -0
  216. package/dist/cjs/IpRestriction.js +527 -0
  217. package/dist/cjs/IpRestriction.js.map +1 -0
  218. package/dist/cjs/KeyboardShortcuts.js +284 -0
  219. package/dist/cjs/KeyboardShortcuts.js.map +1 -0
  220. package/dist/cjs/LoginPage.js +202 -0
  221. package/dist/cjs/LoginPage.js.map +1 -0
  222. package/dist/cjs/MadeWith.js +40 -0
  223. package/dist/cjs/MadeWith.js.map +1 -0
  224. package/dist/cjs/MenuBar.js +211 -0
  225. package/dist/cjs/MenuBar.js.map +1 -0
  226. package/dist/cjs/Metadata.js +196 -0
  227. package/dist/cjs/Metadata.js.map +1 -0
  228. package/dist/cjs/MoreDropdown.js +155 -0
  229. package/dist/cjs/MoreDropdown.js.map +1 -0
  230. package/dist/cjs/NavigationHeader.js +187 -0
  231. package/dist/cjs/NavigationHeader.js.map +1 -0
  232. package/dist/cjs/NeetoWidget.js +915 -0
  233. package/dist/cjs/NeetoWidget.js.map +1 -0
  234. package/dist/cjs/Onboarding.js +216 -0
  235. package/dist/cjs/Onboarding.js.map +1 -0
  236. package/dist/cjs/OptionFields.js +518 -0
  237. package/dist/cjs/OptionFields.js.map +1 -0
  238. package/dist/cjs/PageLoader.js +40 -0
  239. package/dist/cjs/PageLoader.js.map +1 -0
  240. package/dist/cjs/PhoneNumber.js +367 -0
  241. package/dist/cjs/PhoneNumber.js.map +1 -0
  242. package/dist/cjs/ProductEmbed.js +777 -0
  243. package/dist/cjs/ProductEmbed.js.map +1 -0
  244. package/dist/cjs/PublishBlock.js +127 -0
  245. package/dist/cjs/PublishBlock.js.map +1 -0
  246. package/dist/cjs/PublishYourItem.js +59 -0
  247. package/dist/cjs/PublishYourItem.js.map +1 -0
  248. package/dist/cjs/Rename.js +354 -0
  249. package/dist/cjs/Rename.js.map +1 -0
  250. package/dist/cjs/ResponsiveDevicePicker.js +68 -0
  251. package/dist/cjs/ResponsiveDevicePicker.js.map +1 -0
  252. package/dist/cjs/Schedule.js +874 -0
  253. package/dist/cjs/Schedule.js.map +1 -0
  254. package/dist/cjs/Scrollable.js +49 -0
  255. package/dist/cjs/Scrollable.js.map +1 -0
  256. package/dist/cjs/Search.js +121 -0
  257. package/dist/cjs/Search.js.map +1 -0
  258. package/dist/cjs/Security.js +379 -0
  259. package/dist/cjs/Security.js.map +1 -0
  260. package/dist/cjs/SendToFields.js +275 -0
  261. package/dist/cjs/SendToFields.js.map +1 -0
  262. package/dist/cjs/Settings.js +217 -0
  263. package/dist/cjs/Settings.js.map +1 -0
  264. package/dist/cjs/ShareRecordingPane.js +199 -0
  265. package/dist/cjs/ShareRecordingPane.js.map +1 -0
  266. package/dist/cjs/ShareViaEmail.js +353 -0
  267. package/dist/cjs/ShareViaEmail.js.map +1 -0
  268. package/dist/cjs/ShareViaLink.js +508 -0
  269. package/dist/cjs/ShareViaLink.js.map +1 -0
  270. package/dist/cjs/Sidebar.js +292 -0
  271. package/dist/cjs/Sidebar.js.map +1 -0
  272. package/dist/cjs/StickyRibbonsContainer.js +90 -0
  273. package/dist/cjs/StickyRibbonsContainer.js.map +1 -0
  274. package/dist/cjs/SubHeader.js +181 -0
  275. package/dist/cjs/SubHeader.js.map +1 -0
  276. package/dist/cjs/SuffixedInput.js +114 -0
  277. package/dist/cjs/SuffixedInput.js.map +1 -0
  278. package/dist/cjs/TableWrapper.js +32 -0
  279. package/dist/cjs/TableWrapper.js.map +1 -0
  280. package/dist/cjs/Taxonomy.js +445 -0
  281. package/dist/cjs/Taxonomy.js.map +1 -0
  282. package/dist/cjs/ThemeSidebar.js +1443 -0
  283. package/dist/cjs/ThemeSidebar.js.map +1 -0
  284. package/dist/cjs/TimeFormat.js +15 -0
  285. package/dist/cjs/TimeFormat.js.map +1 -0
  286. package/dist/cjs/TimezoneMismatchModal.js +144 -0
  287. package/dist/cjs/TimezoneMismatchModal.js.map +1 -0
  288. package/dist/cjs/ToggleFeatureCard.js +213 -0
  289. package/dist/cjs/ToggleFeatureCard.js.map +1 -0
  290. package/dist/cjs/index-248c4f4c.js +1186 -0
  291. package/dist/cjs/index-248c4f4c.js.map +1 -0
  292. package/dist/cjs/index-7db1772e.js +544 -0
  293. package/dist/cjs/index-7db1772e.js.map +1 -0
  294. package/dist/cjs/inject-css-80a5faa3.js +6 -0
  295. package/dist/cjs/inject-css-80a5faa3.js.map +1 -0
  296. package/dist/cjs/useColumns-9978cf70.js +275 -0
  297. package/dist/cjs/useColumns-9978cf70.js.map +1 -0
  298. package/dist/index-7d311b7a.js +509 -0
  299. package/dist/index-7d311b7a.js.map +1 -0
  300. package/dist/index-e5588516.js +1184 -0
  301. package/dist/index-e5588516.js.map +1 -0
  302. package/dist/inject-css-c86de496.js +4 -0
  303. package/dist/inject-css-c86de496.js.map +1 -0
  304. package/dist/useColumns-751e9192.js +258 -0
  305. package/dist/useColumns-751e9192.js.map +1 -0
  306. package/package.json +30 -19
  307. package/src/translations/de.json +7 -0
  308. package/src/translations/en.json +191 -31
  309. package/src/translations/es.json +7 -0
  310. package/src/translations/fr.json +7 -0
  311. package/src/translations/nl.json +7 -0
  312. package/src/translations/pl.json +7 -0
  313. package/src/translations/pt.json +7 -0
  314. package/types/Breadcrumbs.d.ts +1 -0
  315. package/types/Builder.d.ts +61 -12
  316. package/types/Columns.d.ts +112 -5
  317. package/types/ConfigurePageSidebar.d.ts +43 -0
  318. package/types/CopyToClipboardButton.d.ts +3 -0
  319. package/types/Currency.d.ts +48 -0
  320. package/types/CustomDomain.d.ts +2 -0
  321. package/types/CustomDomainDashboard.d.ts +14 -0
  322. package/types/DateRangeFilter.d.ts +2 -0
  323. package/types/DeleteArchiveModal.d.ts +60 -0
  324. package/types/EmailForm.d.ts +1 -1
  325. package/types/EmojiPicker.d.ts +33 -0
  326. package/types/EmojiReactions.d.ts +60 -0
  327. package/types/ErrorPage.d.ts +1 -0
  328. package/types/FloatingActionMenu.d.ts +56 -0
  329. package/types/Header.d.ts +2 -1
  330. package/types/HelpPopover.d.ts +42 -0
  331. package/types/Insights.d.ts +108 -0
  332. package/types/IntegrationCard.d.ts +2 -0
  333. package/types/KeyboardShortcuts.d.ts +2 -2
  334. package/types/MadeWith.d.ts +16 -0
  335. package/types/MoreDropdown.d.ts +4 -1
  336. package/types/NavigationHeader.d.ts +3 -1
  337. package/types/Onboarding.d.ts +65 -0
  338. package/types/OptionFields.d.ts +63 -0
  339. package/types/PhoneNumber.d.ts +6 -2
  340. package/types/ProductEmbed.d.ts +87 -0
  341. package/types/Rename.d.ts +4 -1
  342. package/types/Schedule.d.ts +2 -0
  343. package/types/Search.d.ts +2 -0
  344. package/types/Settings.d.ts +13 -10
  345. package/types/ShareRecordingPane.d.ts +50 -0
  346. package/types/ShareViaLink.d.ts +15 -4
  347. package/types/Sidebar.d.ts +16 -32
  348. package/types/StickyRibbonsContainer.d.ts +26 -0
  349. package/types/SubHeader.d.ts +0 -1
  350. package/types/SuffixedInput.d.ts +43 -0
  351. package/types/ToggleFeatureCard.d.ts +8 -1
@@ -0,0 +1,275 @@
1
+ 'use strict';
2
+
3
+ var _extends = require('@babel/runtime/helpers/extends');
4
+ var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
5
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
6
+ var React = require('react');
7
+ var formik = require('formik');
8
+ var neetoIcons = require('@bigbinary/neeto-icons');
9
+ var neetoui = require('@bigbinary/neetoui');
10
+ var formik$1 = require('@bigbinary/neetoui/formik');
11
+ var reactI18next = require('react-i18next');
12
+ var classnames = require('classnames');
13
+ var reactDropzone = require('react-dropzone');
14
+ var withT = require('@bigbinary/neeto-commons-frontend/react-utils/withT');
15
+ var i18next = require('i18next');
16
+ var Papa = require('papaparse');
17
+ var ramda = require('ramda');
18
+ var yup = require('yup');
19
+
20
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
21
+
22
+ var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
23
+ var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
24
+ var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
25
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
26
+ var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
27
+ var withT__default = /*#__PURE__*/_interopDefaultLegacy(withT);
28
+ var Papa__default = /*#__PURE__*/_interopDefaultLegacy(Papa);
29
+
30
+ var ALLOWED_FILE_TYPES = [".csv"];
31
+ var CSV_FILE_SIZE_IN_KB = 32;
32
+ var ONE_KILOBYTE_IN_BYTES = 1024;
33
+ var DOWNLOAD_SAMPLE_EMAIL_CSV_FILE = "https://d2v7kzglnr2dnh.cloudfront.net/others/sample-bulk-email.csv";
34
+
35
+ var Requirements = withT__default["default"](function (_ref) {
36
+ var t = _ref.t,
37
+ fileSize = _ref.fileSize;
38
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Callout, {
39
+ className: "flex flex-col items-center py-6",
40
+ style: "info"
41
+ }, /*#__PURE__*/React__default["default"].createElement("ul", {
42
+ className: "list-outside list-disc space-y-1 font-normal leading-normal"
43
+ }, fileSize && /*#__PURE__*/React__default["default"].createElement("li", null, t("neetoMolecules.shareViaLink.requirements.fileTypeAndSize", {
44
+ limit: fileSize
45
+ })), /*#__PURE__*/React__default["default"].createElement("li", null, /*#__PURE__*/React__default["default"].createElement(reactI18next.Trans, {
46
+ components: {
47
+ strong: /*#__PURE__*/React__default["default"].createElement("strong", {
48
+ className: "font-semibold"
49
+ })
50
+ },
51
+ i18nKey: "neetoMolecules.shareViaLink.requirements.shouldContainColumns"
52
+ }))), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
53
+ href: DOWNLOAD_SAMPLE_EMAIL_CSV_FILE,
54
+ icon: neetoIcons.Download,
55
+ iconPosition: "left",
56
+ label: t("neetoMolecules.shareViaLink.bulkUploadPane.downloadSampleCSV"),
57
+ style: "link"
58
+ }));
59
+ });
60
+ var Requirements$1 = /*#__PURE__*/React__default["default"].memo(Requirements);
61
+
62
+ var BulkUploadPane = function BulkUploadPane(_ref) {
63
+ var _fileRejections$;
64
+ var isOpen = _ref.isOpen,
65
+ fileType = _ref.fileType,
66
+ fileSize = _ref.fileSize,
67
+ onClose = _ref.onClose,
68
+ handleFileSubmit = _ref.handleFileSubmit;
69
+ var _useDropzone = reactDropzone.useDropzone({
70
+ accept: fileType,
71
+ maxFiles: 1,
72
+ maxSize: fileSize * ONE_KILOBYTE_IN_BYTES,
73
+ onDrop: function onDrop(files) {
74
+ return files[0] && handleFileSubmit(files[0]);
75
+ }
76
+ }),
77
+ getRootProps = _useDropzone.getRootProps,
78
+ getInputProps = _useDropzone.getInputProps,
79
+ isDragActive = _useDropzone.isDragActive,
80
+ fileRejections = _useDropzone.fileRejections;
81
+ var errors = (_fileRejections$ = fileRejections[0]) === null || _fileRejections$ === void 0 ? void 0 : _fileRejections$.errors.map(function (_ref2) {
82
+ var message = _ref2.message,
83
+ code = _ref2.code;
84
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
85
+ className: "neeto-ui-text-error-500 items",
86
+ "data-cy": "file-input-error-message",
87
+ key: code,
88
+ style: "body3"
89
+ }, message);
90
+ });
91
+ var _useTranslation = reactI18next.useTranslation(),
92
+ t = _useTranslation.t;
93
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Pane, {
94
+ isOpen: isOpen,
95
+ onClose: onClose,
96
+ "data-testid": "bulk-upload-pane"
97
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
98
+ tabIndex: 0
99
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Header, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
100
+ "data-testid": "bulk-upload-header",
101
+ style: "h2",
102
+ weight: "semibold"
103
+ }, t("neetoMolecules.shareViaLink.bulkUpload"))), /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Body, null, /*#__PURE__*/React__default["default"].createElement("div", {
104
+ className: "w-full space-y-4"
105
+ }, /*#__PURE__*/React__default["default"].createElement(Requirements$1, {
106
+ fileSize: fileSize
107
+ }), /*#__PURE__*/React__default["default"].createElement("div", getRootProps({
108
+ className: classnames__default["default"]("flex flex-col p-2 border neeto-ui-border-primary-500 border-dashed neeto-ui-rounded-md transition duration-500 ease-in-out hover:neeto-ui-bg-gray-100 cursor-pointer items-center", {
109
+ "neeto-ui-border-gray-100": isDragActive,
110
+ "neeto-ui-border-error neeto-ui-bg-pastel-red hover:neeto-ui-bg-pastel-red": fileRejections.length
111
+ })
112
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
113
+ className: "flex flex-col items-center space-y-3 p-4"
114
+ }, /*#__PURE__*/React__default["default"].createElement(neetoIcons.Upload, {
115
+ className: "neeto-ui-text-primary-500",
116
+ size: 32
117
+ }), /*#__PURE__*/React__default["default"].createElement("input", _extends__default["default"]({}, getInputProps(), {
118
+ "data-cy": "csv-upload-input",
119
+ "data-testid": "csv-upload-input"
120
+ })), isDragActive ? /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
121
+ style: "body2"
122
+ }, t("neetoMolecules.shareViaLink.bulkUploadPane.dropFileHere")) : /*#__PURE__*/React__default["default"].createElement("div", {
123
+ className: "flex flex-col items-center space-y-1"
124
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
125
+ className: "flex w-full items-center justify-center gap-x-1"
126
+ }, /*#__PURE__*/React__default["default"].createElement(reactI18next.Trans, {
127
+ i18nKey: "neetoMolecules.shareViaLink.bulkUploadPane.dragNDrop",
128
+ components: {
129
+ Button: /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
130
+ style: "link"
131
+ })
132
+ }
133
+ })), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
134
+ className: "neeto-ui-text-gray-700",
135
+ style: "body3"
136
+ }, fileType && /*#__PURE__*/React__default["default"].createElement(reactI18next.Trans, {
137
+ i18nKey: "neetoMolecules.shareViaLink.bulkUploadPane.supportedFormat",
138
+ values: {
139
+ fileType: fileType
140
+ },
141
+ components: {
142
+ code: /*#__PURE__*/React__default["default"].createElement("code", {
143
+ className: "neeto-ui-typography neeto-ui-text-body3 neeto-ui-bg-white m-0 border-l-0 p-0"
144
+ })
145
+ }
146
+ }), " ", fileSize && t("neetoMolecules.shareViaLink.bulkUploadPane.supportedSize", {
147
+ fileSize: fileSize
148
+ })))), errors))), /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Footer, {
149
+ className: "flex items-center space-x-2"
150
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
151
+ "data-cy": "bulk-upload-cancel-button",
152
+ "data-testid": "bulk-upload-cancel-button",
153
+ label: t("neetoMolecules.common.actions.cancel"),
154
+ style: "text",
155
+ type: "reset",
156
+ onClick: onClose
157
+ }))));
158
+ };
159
+
160
+ var isValidEmail = function isValidEmail(email) {
161
+ return yup.string().email().isValidSync(email);
162
+ };
163
+ var createEmailOptions = function createEmailOptions() {
164
+ var emails = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
165
+ return emails.map(function (email) {
166
+ return {
167
+ label: email,
168
+ value: email,
169
+ valid: isValidEmail(email)
170
+ };
171
+ });
172
+ };
173
+ var parseCsvEmails = function parseCsvEmails(file, onSuccess) {
174
+ Papa__default["default"].parse(file, {
175
+ header: true,
176
+ skipEmptyLines: true,
177
+ transformHeader: function transformHeader(h) {
178
+ return h.toLowerCase().replace(/\W/g, "");
179
+ },
180
+ complete: function complete(results) {
181
+ var _results$meta$fields;
182
+ var isEmailFieldPresent = (_results$meta$fields = results.meta.fields) === null || _results$meta$fields === void 0 ? void 0 : _results$meta$fields.includes("email");
183
+ if (isEmailFieldPresent) {
184
+ var emails = results.data.filter(ramda.prop("email")).map(function (item) {
185
+ return item.email.trim();
186
+ });
187
+ onSuccess(createEmailOptions(emails));
188
+ } else {
189
+ neetoui.Toastr.error(i18next.t("neetoMolecules.sendToFields.errors.invalidCsv"));
190
+ }
191
+ }
192
+ });
193
+ };
194
+
195
+ var SendToFields = function SendToFields(_ref) {
196
+ var emailInputProps = _ref.emailInputProps,
197
+ ccInputProps = _ref.ccInputProps,
198
+ bccInputProps = _ref.bccInputProps,
199
+ _ref$showUploadCsvBut = _ref.showUploadCsvButton,
200
+ showUploadCsvButton = _ref$showUploadCsvBut === void 0 ? false : _ref$showUploadCsvBut,
201
+ _ref$showCcBccButton = _ref.showCcBccButton,
202
+ showCcBccButton = _ref$showCcBccButton === void 0 ? false : _ref$showCcBccButton;
203
+ var _useState = React.useState(false),
204
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
205
+ isBulkUploadPaneOpen = _useState2[0],
206
+ setIsBulkUploadPaneOpen = _useState2[1];
207
+ var sendToFieldRef = React.useRef();
208
+ var _useFormikContext = formik.useFormikContext(),
209
+ _useFormikContext$val = _useFormikContext.values,
210
+ showCopyEmails = _useFormikContext$val.showCopyEmails,
211
+ existingSendToEmails = _useFormikContext$val[emailInputProps.name || "sendTo"],
212
+ setFieldValue = _useFormikContext.setFieldValue;
213
+ var _useTranslation = reactI18next.useTranslation(),
214
+ t = _useTranslation.t;
215
+ var handleCSVFile = function handleCSVFile(file) {
216
+ try {
217
+ var _sendToFieldRef$curre;
218
+ var onSuccess = function onSuccess(values) {
219
+ return setFieldValue(emailInputProps.name || "sendTo", [].concat(_toConsumableArray__default["default"](existingSendToEmails), _toConsumableArray__default["default"](values)));
220
+ };
221
+ parseCsvEmails(file, onSuccess);
222
+ setIsBulkUploadPaneOpen(false);
223
+ (_sendToFieldRef$curre = sendToFieldRef.current) === null || _sendToFieldRef$curre === void 0 ? void 0 : _sendToFieldRef$curre.focus();
224
+ } catch (error) {
225
+ neetoui.Toastr.error(error);
226
+ }
227
+ };
228
+ var handelCcBccButtonClick = function handelCcBccButtonClick(e) {
229
+ e.stopPropagation();
230
+ setFieldValue("showCopyEmails", !showCopyEmails);
231
+ };
232
+ return /*#__PURE__*/React__default["default"].createElement("div", {
233
+ className: "relative w-full flex-col gap-2",
234
+ "data-testid": "send-to-text-field"
235
+ }, showUploadCsvButton && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
236
+ className: "absolute right-1 top-0",
237
+ "data-testid": "bulk-upload-button",
238
+ icon: neetoIcons.Upload,
239
+ label: t("neetoMolecules.shareViaLink.bulkUpload"),
240
+ size: "small",
241
+ style: "link",
242
+ onClick: function onClick() {
243
+ return setIsBulkUploadPaneOpen(true);
244
+ }
245
+ }), /*#__PURE__*/React__default["default"].createElement(formik$1.MultiEmailInput, _extends__default["default"]({
246
+ name: "sendTo",
247
+ ref: sendToFieldRef
248
+ }, emailInputProps, {
249
+ suffix: showCcBccButton && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
250
+ "data-cy": "cc-bcc-button",
251
+ "data-testid": "cc-bcc-button",
252
+ label: t("neetoMolecules.emailForm.labels.ccBcc"),
253
+ size: "small",
254
+ style: "link",
255
+ onClick: handelCcBccButtonClick
256
+ })
257
+ })), showCopyEmails && /*#__PURE__*/React__default["default"].createElement("div", {
258
+ className: "mt-5 flex w-full flex-col gap-6"
259
+ }, /*#__PURE__*/React__default["default"].createElement(formik$1.MultiEmailInput, _extends__default["default"]({
260
+ name: "sendToBcc"
261
+ }, ccInputProps)), /*#__PURE__*/React__default["default"].createElement(formik$1.MultiEmailInput, _extends__default["default"]({
262
+ name: "sendToCc"
263
+ }, bccInputProps))), /*#__PURE__*/React__default["default"].createElement(BulkUploadPane, {
264
+ fileSize: CSV_FILE_SIZE_IN_KB,
265
+ fileType: ALLOWED_FILE_TYPES,
266
+ handleFileSubmit: handleCSVFile,
267
+ isOpen: isBulkUploadPaneOpen,
268
+ onClose: function onClose() {
269
+ return setIsBulkUploadPaneOpen(false);
270
+ }
271
+ }));
272
+ };
273
+
274
+ module.exports = SendToFields;
275
+ //# sourceMappingURL=SendToFields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SendToFields.js","sources":["../../src/components/SendToFields/constants.js","../../src/components/SendToFields/Requirements.jsx","../../src/components/SendToFields/BulkUploadPane.jsx","../../src/components/SendToFields/utils.js","../../src/components/SendToFields/index.jsx"],"sourcesContent":["export const SIZES = { small: \"small\", medium: \"medium\", large: \"large\" };\nexport const ALLOWED_FILE_TYPES = [\".csv\"];\nexport const CSV_FILE_SIZE_IN_KB = 32;\nexport const ONE_KILOBYTE_IN_BYTES = 1024;\nexport const DOWNLOAD_SAMPLE_EMAIL_CSV_FILE =\n \"https://d2v7kzglnr2dnh.cloudfront.net/others/sample-bulk-email.csv\";\n","import React from \"react\";\n\nimport withT from \"neetocommons/react-utils/withT\";\nimport { Download } from \"neetoicons\";\nimport { Button, Callout } from \"neetoui\";\nimport { Trans } from \"react-i18next\";\n\nimport { DOWNLOAD_SAMPLE_EMAIL_CSV_FILE } from \"./constants\";\n\nconst Requirements = withT(({ t, fileSize }) => (\n <Callout className=\"flex flex-col items-center py-6\" style=\"info\">\n <ul className=\"list-outside list-disc space-y-1 font-normal leading-normal\">\n {fileSize && (\n <li>\n {t(\"neetoMolecules.shareViaLink.requirements.fileTypeAndSize\", {\n limit: fileSize,\n })}\n </li>\n )}\n <li>\n <Trans\n components={{ strong: <strong className=\"font-semibold\" /> }}\n i18nKey=\"neetoMolecules.shareViaLink.requirements.shouldContainColumns\"\n />\n </li>\n </ul>\n <Button\n href={DOWNLOAD_SAMPLE_EMAIL_CSV_FILE}\n icon={Download}\n iconPosition=\"left\"\n label={t(\"neetoMolecules.shareViaLink.bulkUploadPane.downloadSampleCSV\")}\n style=\"link\"\n />\n </Callout>\n));\n\nexport default React.memo(Requirements);\n","import React from \"react\";\n\nimport classNames from \"classnames\";\nimport { Upload } from \"neetoicons\";\nimport { Button, Typography, Pane } from \"neetoui\";\nimport { useDropzone } from \"react-dropzone\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { ONE_KILOBYTE_IN_BYTES } from \"./constants\";\nimport Requirements from \"./Requirements\";\n\nconst BulkUploadPane = ({\n isOpen,\n fileType,\n fileSize,\n onClose,\n handleFileSubmit,\n}) => {\n const { getRootProps, getInputProps, isDragActive, fileRejections } =\n useDropzone({\n accept: fileType,\n maxFiles: 1,\n maxSize: fileSize * ONE_KILOBYTE_IN_BYTES,\n onDrop: files => files[0] && handleFileSubmit(files[0]),\n });\n\n const errors = fileRejections[0]?.errors.map(({ message, code }) => (\n <Typography\n className=\"neeto-ui-text-error-500 items\"\n data-cy=\"file-input-error-message\"\n key={code}\n style=\"body3\"\n >\n {message}\n </Typography>\n ));\n\n const { t } = useTranslation();\n\n return (\n <Pane {...{ isOpen, onClose }} data-testid=\"bulk-upload-pane\">\n <div tabIndex={0}>\n <Pane.Header>\n <Typography\n data-testid=\"bulk-upload-header\"\n style=\"h2\"\n weight=\"semibold\"\n >\n {t(\"neetoMolecules.shareViaLink.bulkUpload\")}\n </Typography>\n </Pane.Header>\n <Pane.Body>\n <div className=\"w-full space-y-4\">\n <Requirements {...{ fileSize }} />\n <div\n {...getRootProps({\n className: classNames(\n \"flex flex-col p-2 border neeto-ui-border-primary-500 border-dashed neeto-ui-rounded-md transition duration-500 ease-in-out hover:neeto-ui-bg-gray-100 cursor-pointer items-center\",\n {\n \"neeto-ui-border-gray-100\": isDragActive,\n \"neeto-ui-border-error neeto-ui-bg-pastel-red hover:neeto-ui-bg-pastel-red\":\n fileRejections.length,\n }\n ),\n })}\n >\n <div className=\"flex flex-col items-center space-y-3 p-4\">\n <Upload className=\"neeto-ui-text-primary-500\" size={32} />\n <input\n {...getInputProps()}\n data-cy=\"csv-upload-input\"\n data-testid=\"csv-upload-input\"\n />\n {isDragActive ? (\n <Typography style=\"body2\">\n {t(\n \"neetoMolecules.shareViaLink.bulkUploadPane.dropFileHere\"\n )}\n </Typography>\n ) : (\n <div className=\"flex flex-col items-center space-y-1\">\n <div className=\"flex w-full items-center justify-center gap-x-1\">\n <Trans\n i18nKey=\"neetoMolecules.shareViaLink.bulkUploadPane.dragNDrop\"\n components={{\n Button: <Button style=\"link\" />,\n }}\n />\n </div>\n <Typography\n className=\"neeto-ui-text-gray-700\"\n style=\"body3\"\n >\n {fileType && (\n <Trans\n i18nKey=\"neetoMolecules.shareViaLink.bulkUploadPane.supportedFormat\"\n values={{ fileType }}\n components={{\n code: (\n <code className=\"neeto-ui-typography neeto-ui-text-body3 neeto-ui-bg-white m-0 border-l-0 p-0\" />\n ),\n }}\n />\n )}{\" \"}\n {fileSize &&\n t(\n \"neetoMolecules.shareViaLink.bulkUploadPane.supportedSize\",\n { fileSize }\n )}\n </Typography>\n </div>\n )}\n </div>\n {errors}\n </div>\n </div>\n </Pane.Body>\n <Pane.Footer className=\"flex items-center space-x-2\">\n <Button\n data-cy=\"bulk-upload-cancel-button\"\n data-testid=\"bulk-upload-cancel-button\"\n label={t(\"neetoMolecules.common.actions.cancel\")}\n style=\"text\"\n type=\"reset\"\n onClick={onClose}\n />\n </Pane.Footer>\n </div>\n </Pane>\n );\n};\n\nexport default BulkUploadPane;\n","import { t } from \"i18next\";\nimport { Toastr } from \"neetoui\";\nimport Papa from \"papaparse\";\nimport { prop } from \"ramda\";\nimport { string } from \"yup\";\n\nconst isValidEmail = email => string().email().isValidSync(email);\n\nexport const createEmailOptions = (emails = []) =>\n emails.map(email => ({\n label: email,\n value: email,\n valid: isValidEmail(email),\n }));\n\nexport const parseCsvEmails = (file, onSuccess) => {\n Papa.parse(file, {\n header: true,\n skipEmptyLines: true,\n transformHeader: h => h.toLowerCase().replace(/\\W/g, \"\"),\n complete: results => {\n const isEmailFieldPresent = results.meta.fields?.includes(\"email\");\n if (isEmailFieldPresent) {\n const emails = results.data\n .filter(prop(\"email\"))\n .map(item => item.email.trim());\n onSuccess(createEmailOptions(emails));\n } else {\n Toastr.error(t(\"neetoMolecules.sendToFields.errors.invalidCsv\"));\n }\n },\n });\n};\n","import React, { useRef, useState } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { Upload } from \"neetoicons\";\nimport { Button, Toastr } from \"neetoui\";\nimport { MultiEmailInput } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport BulkUploadPane from \"./BulkUploadPane\";\nimport { ALLOWED_FILE_TYPES, CSV_FILE_SIZE_IN_KB, SIZES } from \"./constants\";\nimport { parseCsvEmails } from \"./utils\";\n\nconst SendToFields = ({\n emailInputProps,\n ccInputProps,\n bccInputProps,\n showUploadCsvButton = false,\n showCcBccButton = false,\n}) => {\n const [isBulkUploadPaneOpen, setIsBulkUploadPaneOpen] = useState(false);\n const sendToFieldRef = useRef();\n const {\n values: {\n showCopyEmails,\n [emailInputProps.name || \"sendTo\"]: existingSendToEmails,\n },\n setFieldValue,\n } = useFormikContext();\n const { t } = useTranslation();\n\n const handleCSVFile = file => {\n try {\n const onSuccess = values =>\n setFieldValue(emailInputProps.name || \"sendTo\", [\n ...existingSendToEmails,\n ...values,\n ]);\n\n parseCsvEmails(file, onSuccess);\n setIsBulkUploadPaneOpen(false);\n sendToFieldRef.current?.focus();\n } catch (error) {\n Toastr.error(error);\n }\n };\n\n const handelCcBccButtonClick = e => {\n e.stopPropagation();\n setFieldValue(\"showCopyEmails\", !showCopyEmails);\n };\n\n return (\n <div\n className=\"relative w-full flex-col gap-2\"\n data-testid=\"send-to-text-field\"\n >\n {showUploadCsvButton && (\n <Button\n className=\"absolute right-1 top-0\"\n data-testid=\"bulk-upload-button\"\n icon={Upload}\n label={t(\"neetoMolecules.shareViaLink.bulkUpload\")}\n size=\"small\"\n style=\"link\"\n onClick={() => setIsBulkUploadPaneOpen(true)}\n />\n )}\n <MultiEmailInput\n name=\"sendTo\"\n ref={sendToFieldRef}\n {...emailInputProps}\n suffix={\n showCcBccButton && (\n <Button\n data-cy=\"cc-bcc-button\"\n data-testid=\"cc-bcc-button\"\n label={t(\"neetoMolecules.emailForm.labels.ccBcc\")}\n size=\"small\"\n style=\"link\"\n onClick={handelCcBccButtonClick}\n />\n )\n }\n />\n {showCopyEmails && (\n <div className=\"mt-5 flex w-full flex-col gap-6\">\n <MultiEmailInput name=\"sendToBcc\" {...ccInputProps} />\n <MultiEmailInput name=\"sendToCc\" {...bccInputProps} />\n </div>\n )}\n <BulkUploadPane\n fileSize={CSV_FILE_SIZE_IN_KB}\n fileType={ALLOWED_FILE_TYPES}\n handleFileSubmit={handleCSVFile}\n isOpen={isBulkUploadPaneOpen}\n onClose={() => setIsBulkUploadPaneOpen(false)}\n />\n </div>\n );\n};\n\nconst inputPropTypes = PropTypes.shape({\n name: PropTypes.string,\n display: PropTypes.node,\n label: PropTypes.string,\n editButtonTooltip: PropTypes.string,\n editButtonDataCy: PropTypes.string,\n placeholder: PropTypes.string,\n dataCy: PropTypes.string,\n onChange: PropTypes.func,\n suffix: PropTypes.node,\n prefix: PropTypes.node,\n className: PropTypes.string,\n nakedInput: PropTypes.bool,\n size: PropTypes.oneOf(Object.values(SIZES)),\n type: PropTypes.string,\n maxLength: PropTypes.number,\n contentSize: PropTypes.number,\n unlimitedChars: PropTypes.bool,\n required: PropTypes.bool,\n});\n\nSendToFields.propTypes = {\n /**\n * Input props for sendTo input field.\n */\n emailInputProps: inputPropTypes,\n /**\n * Input props for CC input field.\n */\n ccInputProps: inputPropTypes,\n /**\n * Input props for BCC input field.\n */\n bccInputProps: inputPropTypes,\n /**\n * Flag to determine whether the 'FilePicker' button is displayed.\n */\n showUploadCsvButton: PropTypes.bool,\n /**\n * Flag to determine whether the 'Cc/Bcc' button is displayed.\n */\n showCcBccButton: PropTypes.bool,\n};\n\nexport default SendToFields;\n"],"names":["ALLOWED_FILE_TYPES","CSV_FILE_SIZE_IN_KB","ONE_KILOBYTE_IN_BYTES","DOWNLOAD_SAMPLE_EMAIL_CSV_FILE","Requirements","withT","_ref","t","fileSize","React","createElement","Callout","className","style","limit","Trans","components","strong","i18nKey","Button","href","icon","Download","iconPosition","label","memo","BulkUploadPane","_fileRejections$","isOpen","fileType","onClose","handleFileSubmit","_useDropzone","useDropzone","accept","maxFiles","maxSize","onDrop","files","getRootProps","getInputProps","isDragActive","fileRejections","errors","map","_ref2","message","code","Typography","key","_useTranslation","useTranslation","Pane","tabIndex","Header","weight","Body","classNames","length","Upload","size","_extends","values","Footer","type","onClick","isValidEmail","email","string","isValidSync","createEmailOptions","emails","arguments","undefined","value","valid","parseCsvEmails","file","onSuccess","Papa","parse","header","skipEmptyLines","transformHeader","h","toLowerCase","replace","complete","results","_results$meta$fields","isEmailFieldPresent","meta","fields","includes","data","filter","prop","item","trim","Toastr","error","SendToFields","emailInputProps","ccInputProps","bccInputProps","_ref$showUploadCsvBut","showUploadCsvButton","_ref$showCcBccButton","showCcBccButton","_useState","useState","_useState2","_slicedToArray","isBulkUploadPaneOpen","setIsBulkUploadPaneOpen","sendToFieldRef","useRef","_useFormikContext","useFormikContext","_useFormikContext$val","showCopyEmails","existingSendToEmails","name","setFieldValue","handleCSVFile","_sendToFieldRef$curre","concat","_toConsumableArray","current","focus","handelCcBccButtonClick","e","stopPropagation","MultiEmailInput","ref","suffix"],"mappings":"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"}
@@ -0,0 +1,217 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var classnames = require('classnames');
5
+ var useQueryParams = require('@bigbinary/neeto-commons-frontend/react-utils/useQueryParams');
6
+ var neetoui = require('@bigbinary/neetoui');
7
+ var ramda = require('ramda');
8
+ var reactI18next = require('react-i18next');
9
+ var Header = require('./Header.js');
10
+ var _extends = require('@babel/runtime/helpers/extends');
11
+ var neetoCist = require('@bigbinary/neeto-cist');
12
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
13
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
14
+ var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
15
+ var neetoIcons = require('@bigbinary/neeto-icons');
16
+ var general = require('@bigbinary/neeto-commons-frontend/utils/general');
17
+ var reactRouterDom = require('react-router-dom');
18
+ require('./Breadcrumbs.js');
19
+ require('./inject-css-80a5faa3.js');
20
+ require('./MoreDropdown.js');
21
+ require('./Search.js');
22
+ require('@babel/runtime/helpers/slicedToArray');
23
+ require('@bigbinary/neeto-commons-frontend/react-utils/useFuncDebounce');
24
+ require('@bigbinary/neeto-commons-frontend/react-utils/useUpdateEffect');
25
+ require('@bigbinary/neeto-commons-frontend/utils');
26
+
27
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
28
+
29
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
30
+ var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
31
+ var useQueryParams__default = /*#__PURE__*/_interopDefaultLegacy(useQueryParams);
32
+ var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
33
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
34
+ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
35
+
36
+ var UNSUPPORTED_LINK_PROPS = ["staticContext", "tReady"];
37
+
38
+ var _excluded$1 = ["label", "description", "icon", "path", "dataCy", "className", "children"];
39
+ var Item = function Item(_ref) {
40
+ var label = _ref.label,
41
+ description = _ref.description,
42
+ _ref$icon = _ref.icon,
43
+ Icon = _ref$icon === void 0 ? null : _ref$icon,
44
+ path = _ref.path,
45
+ dataCy = _ref.dataCy,
46
+ _ref$className = _ref.className,
47
+ className = _ref$className === void 0 ? "" : _ref$className,
48
+ children = _ref.children,
49
+ otherProps = _objectWithoutProperties__default["default"](_ref, _excluded$1);
50
+ return /*#__PURE__*/React__default["default"].createElement(reactRouterDom.Link, _extends__default["default"]({
51
+ "data-cy": dataCy,
52
+ to: path,
53
+ className: classnames__default["default"]("neeto-ui-rounded-lg delay-220 neeto-ui-shadow-sm translate flex cursor-pointer flex-col space-y-4 border p-6 no-underline outline-none transition-transform duration-300 ease-in-out hover:-translate-y-1", className)
54
+ }, ramda.omit(UNSUPPORTED_LINK_PROPS, otherProps)), /*#__PURE__*/React__default["default"].createElement("div", {
55
+ "data-testid": "settings-item-".concat(general.joinHyphenCase(label))
56
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
57
+ className: "mb-2 flex items-center gap-4"
58
+ }, Icon && /*#__PURE__*/React__default["default"].createElement(Icon, {
59
+ className: "neeto-ui-text-gray-600",
60
+ size: 32
61
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
62
+ "data-cy": "settings-item-heading",
63
+ style: "h4",
64
+ weight: "semibold"
65
+ }, label)), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
66
+ "data-cy": "settings-item-description",
67
+ style: "body2"
68
+ }, description)), children && /*#__PURE__*/React__default["default"].createElement("div", {
69
+ className: "neeto-ui-border-gray-300 border-t pt-3"
70
+ }, children));
71
+ };
72
+ var Item$1 = /*#__PURE__*/React.memo(reactRouterDom.withRouter(Item));
73
+
74
+ var _excluded = ["t", "isConnected", "icon", "description", "label", "path"];
75
+ 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; }
76
+ 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), !0).forEach(function (r) { _defineProperty__default["default"](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; }
77
+ var IntegrationItem = reactUtils.withT(function (_ref) {
78
+ var t = _ref.t,
79
+ isConnected = _ref.isConnected,
80
+ icon = _ref.icon,
81
+ description = _ref.description,
82
+ label = _ref.label,
83
+ path = _ref.path,
84
+ otherProps = _objectWithoutProperties__default["default"](_ref, _excluded);
85
+ return /*#__PURE__*/React__default["default"].createElement(Item$1, _extends__default["default"]({}, _objectSpread$1({
86
+ description: description,
87
+ icon: icon,
88
+ label: label,
89
+ path: path
90
+ }, otherProps), {
91
+ dataCy: "".concat(neetoCist.hyphenate(label).replace(/\./g, "-"), "-integration-card")
92
+ }), isConnected && /*#__PURE__*/React__default["default"].createElement(neetoui.Tag, {
93
+ className: "flex-row-reverse",
94
+ "data-cy": "integration-status-tag",
95
+ icon: neetoIcons.Check,
96
+ label: t("neetoMolecules.integrationCard.connected"),
97
+ style: "success"
98
+ }));
99
+ });
100
+ var IntegrationItem$1 = /*#__PURE__*/React__default["default"].memo(IntegrationItem);
101
+
102
+ var Category = function Category(_ref) {
103
+ var items = _ref.items,
104
+ label = _ref.label,
105
+ id = _ref.id,
106
+ isIntegration = _ref.isIntegration;
107
+ var SettingsCard = isIntegration ? IntegrationItem$1 : Item$1;
108
+ var isLabelPresent = neetoCist.isPresent(label);
109
+ return /*#__PURE__*/React__default["default"].createElement("div", {
110
+ id: id,
111
+ className: classnames__default["default"]("flex flex-col", {
112
+ "mb-7": isLabelPresent
113
+ })
114
+ }, isLabelPresent && /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
115
+ className: "mb-6 mt-2",
116
+ component: "h2",
117
+ "data-cy": "settings-category-heading",
118
+ style: "h2",
119
+ weight: "semibold"
120
+ }, label), /*#__PURE__*/React__default["default"].createElement("div", {
121
+ className: "grid grid-cols-1 gap-3 md:grid-cols-2 lg:grid-cols-2 lg:gap-6 xl:grid-cols-3 2xl:grid-cols-4"
122
+ }, items.map(function (item) {
123
+ return /*#__PURE__*/React__default["default"].createElement(SettingsCard, _extends__default["default"]({
124
+ key: item.label
125
+ }, item));
126
+ })));
127
+ };
128
+
129
+ 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; }
130
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
131
+ var isTextMatching = function isTextMatching(label, searchTerm) {
132
+ return label.toLowerCase().includes(searchTerm.trim().toLowerCase());
133
+ };
134
+ var scrollIntoSettingCategory = function scrollIntoSettingCategory(activeCategory) {
135
+ var _document$getElementB;
136
+ (_document$getElementB = document.getElementById(activeCategory)) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.scrollIntoView({
137
+ behavior: "smooth"
138
+ });
139
+ };
140
+ var filterCategories = function filterCategories(_ref) {
141
+ var _ref$categories = _ref.categories,
142
+ categories = _ref$categories === void 0 ? [] : _ref$categories,
143
+ _ref$searchTerm = _ref.searchTerm,
144
+ searchTerm = _ref$searchTerm === void 0 ? "" : _ref$searchTerm;
145
+ var isSearchTermBlank = !searchTerm.trim();
146
+ var filteredCategories = isSearchTermBlank ? categories : categories.map(function (category) {
147
+ return _objectSpread(_objectSpread({}, category), {}, {
148
+ items: neetoCist.filterBy(function (_ref2) {
149
+ var label = _ref2.label,
150
+ description = _ref2.description;
151
+ return isTextMatching(label, searchTerm) || isTextMatching(description, searchTerm);
152
+ }, category.items)
153
+ });
154
+ });
155
+ return neetoCist.filterBy({
156
+ items: neetoCist.isNotEmpty
157
+ }, filteredCategories);
158
+ };
159
+
160
+ var Settings = function Settings(_ref) {
161
+ var _ref$isTitleHidden = _ref.isTitleHidden,
162
+ isTitleHidden = _ref$isTitleHidden === void 0 ? false : _ref$isTitleHidden,
163
+ _ref$isSearchHidden = _ref.isSearchHidden,
164
+ isSearchHidden = _ref$isSearchHidden === void 0 ? false : _ref$isSearchHidden,
165
+ _ref$categories = _ref.categories,
166
+ categories = _ref$categories === void 0 ? [] : _ref$categories;
167
+ var _useTranslation = reactI18next.useTranslation(),
168
+ t = _useTranslation.t;
169
+ var _useQueryParams = useQueryParams__default["default"](),
170
+ categoryParam = _useQueryParams.category,
171
+ _useQueryParams$searc = _useQueryParams.searchTerm,
172
+ searchTerm = _useQueryParams$searc === void 0 ? "" : _useQueryParams$searc;
173
+ var filteredCategories = filterCategories({
174
+ categories: categories,
175
+ searchTerm: searchTerm
176
+ });
177
+ var isHeaderVisible = !isSearchHidden || !isTitleHidden;
178
+ React.useEffect(function () {
179
+ scrollIntoSettingCategory(categoryParam);
180
+ }, [categoryParam]);
181
+ return /*#__PURE__*/React__default["default"].createElement("div", {
182
+ className: classnames__default["default"]("neeto-molecules-container", {
183
+ "h-auto overflow-y-auto": isTitleHidden
184
+ })
185
+ }, isHeaderVisible && /*#__PURE__*/React__default["default"].createElement(Header, {
186
+ className: classnames__default["default"]({
187
+ "min-h-0 pb-4 pt-8": isTitleHidden
188
+ }),
189
+ title: !isTitleHidden && t("neetoMolecules.settingsPage.title"),
190
+ searchProps: isSearchHidden ? null : {
191
+ className: "w-72",
192
+ placeholder: t("neetoMolecules.settingsPage.placeholder.search")
193
+ }
194
+ }), ramda.isEmpty(filteredCategories) ? /*#__PURE__*/React__default["default"].createElement("div", {
195
+ className: "flex h-full w-full flex-grow items-center justify-center",
196
+ "data-testid": "settings-no-data"
197
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.NoData, {
198
+ title: t("neetoMolecules.settingsPage.noData")
199
+ })) : /*#__PURE__*/React__default["default"].createElement("div", {
200
+ className: "w-full"
201
+ }, filteredCategories.map(function (_ref2) {
202
+ var id = _ref2.id,
203
+ label = _ref2.label,
204
+ items = _ref2.items,
205
+ isIntegration = _ref2.isIntegration;
206
+ return /*#__PURE__*/React__default["default"].createElement(Category, {
207
+ id: id,
208
+ isIntegration: isIntegration,
209
+ items: items,
210
+ label: label,
211
+ key: id
212
+ });
213
+ })));
214
+ };
215
+
216
+ module.exports = Settings;
217
+ //# sourceMappingURL=Settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Settings.js","sources":["../../src/components/Settings/constants.js","../../src/components/Settings/Item.jsx","../../src/components/Settings/IntegrationItem.jsx","../../src/components/Settings/Category.jsx","../../src/components/Settings/utils.js","../../src/components/Settings/index.jsx"],"sourcesContent":["export const UNSUPPORTED_LINK_PROPS = [\"staticContext\", \"tReady\"];\n","import React, { memo } from \"react\";\n\nimport classnames from \"classnames\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\nimport { Typography } from \"neetoui\";\nimport { omit } from \"ramda\";\nimport { withRouter, Link } from \"react-router-dom\";\n\nimport { UNSUPPORTED_LINK_PROPS } from \"./constants\";\n\nconst Item = ({\n label,\n description,\n icon: Icon = null,\n path,\n dataCy,\n className = \"\",\n children,\n ...otherProps\n}) => (\n <Link\n data-cy={dataCy}\n to={path}\n className={classnames(\n \"neeto-ui-rounded-lg delay-220 neeto-ui-shadow-sm translate flex cursor-pointer flex-col space-y-4 border p-6 no-underline outline-none transition-transform duration-300 ease-in-out hover:-translate-y-1\",\n className\n )}\n {...omit(UNSUPPORTED_LINK_PROPS, otherProps)}\n >\n <div data-testid={`settings-item-${joinHyphenCase(label)}`}>\n <div className=\"mb-2 flex items-center gap-4\">\n {Icon && <Icon className=\"neeto-ui-text-gray-600\" size={32} />}\n <Typography\n data-cy=\"settings-item-heading\"\n style=\"h4\"\n weight=\"semibold\"\n >\n {label}\n </Typography>\n </div>\n <Typography data-cy=\"settings-item-description\" style=\"body2\">\n {description}\n </Typography>\n </div>\n {children && (\n <div className=\"neeto-ui-border-gray-300 border-t pt-3\">{children}</div>\n )}\n </Link>\n);\n\nexport default memo(withRouter(Item));\n","import React from \"react\";\n\nimport { hyphenate } from \"neetocist\";\nimport { withT } from \"neetocommons/react-utils\";\nimport { Check } from \"neetoicons\";\nimport { Tag } from \"neetoui\";\n\nimport Item from \"./Item\";\n\nconst IntegrationItem = withT(\n ({ t, isConnected, icon, description, label, path, ...otherProps }) => (\n <Item\n {...{ description, icon, label, path, ...otherProps }}\n dataCy={`${hyphenate(label).replace(/\\./g, \"-\")}-integration-card`}\n >\n {isConnected && (\n <Tag\n className=\"flex-row-reverse\"\n data-cy=\"integration-status-tag\"\n icon={Check}\n label={t(\"neetoMolecules.integrationCard.connected\")}\n style=\"success\"\n />\n )}\n </Item>\n )\n);\n\nexport default React.memo(IntegrationItem);\n","import React from \"react\";\n\nimport classNames from \"classnames\";\nimport { isPresent } from \"neetocist\";\nimport { Typography } from \"neetoui\";\n\nimport IntegrationItem from \"./IntegrationItem\";\nimport Item from \"./Item\";\n\nconst Category = ({ items, label, id, isIntegration }) => {\n const SettingsCard = isIntegration ? IntegrationItem : Item;\n\n const isLabelPresent = isPresent(label);\n\n return (\n <div\n {...{ id }}\n className={classNames(\"flex flex-col\", { \"mb-7\": isLabelPresent })}\n >\n {isLabelPresent && (\n <Typography\n className=\"mb-6 mt-2\"\n component=\"h2\"\n data-cy=\"settings-category-heading\"\n style=\"h2\"\n weight=\"semibold\"\n >\n {label}\n </Typography>\n )}\n <div className=\"grid grid-cols-1 gap-3 md:grid-cols-2 lg:grid-cols-2 lg:gap-6 xl:grid-cols-3 2xl:grid-cols-4\">\n {items.map(item => (\n <SettingsCard key={item.label} {...item} />\n ))}\n </div>\n </div>\n );\n};\n\nexport default Category;\n","import { filterBy, isNotEmpty } from \"neetocist\";\n\nconst isTextMatching = (label, searchTerm) =>\n label.toLowerCase().includes(searchTerm.trim().toLowerCase());\n\nexport const scrollIntoSettingCategory = activeCategory => {\n document.getElementById(activeCategory)?.scrollIntoView({\n behavior: \"smooth\",\n });\n};\n\nexport const filterCategories = ({ categories = [], searchTerm = \"\" }) => {\n const isSearchTermBlank = !searchTerm.trim();\n\n const filteredCategories = isSearchTermBlank\n ? categories\n : categories.map(category => ({\n ...category,\n items: filterBy(\n ({ label, description }) =>\n isTextMatching(label, searchTerm) ||\n isTextMatching(description, searchTerm),\n category.items\n ),\n }));\n\n return filterBy({ items: isNotEmpty }, filteredCategories);\n};\n","import React, { useEffect } from \"react\";\n\nimport classNames from \"classnames\";\nimport useQueryParams from \"neetocommons/react-utils/useQueryParams\";\nimport { NoData } from \"neetoui\";\nimport propTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Header from \"components/Header\";\n\nimport Category from \"./Category\";\nimport { filterCategories, scrollIntoSettingCategory } from \"./utils\";\n\nconst Settings = ({\n isTitleHidden = false,\n isSearchHidden = false,\n categories = [],\n}) => {\n const { t } = useTranslation();\n\n const { category: categoryParam, searchTerm = \"\" } = useQueryParams();\n\n const filteredCategories = filterCategories({ categories, searchTerm });\n\n const isHeaderVisible = !isSearchHidden || !isTitleHidden;\n\n useEffect(() => {\n scrollIntoSettingCategory(categoryParam);\n }, [categoryParam]);\n\n return (\n <div\n className={classNames(\"neeto-molecules-container\", {\n \"h-auto overflow-y-auto\": isTitleHidden,\n })}\n >\n {isHeaderVisible && (\n <Header\n className={classNames({ \"min-h-0 pb-4 pt-8\": isTitleHidden })}\n title={!isTitleHidden && t(\"neetoMolecules.settingsPage.title\")}\n searchProps={\n isSearchHidden\n ? null\n : {\n className: \"w-72\",\n placeholder: t(\n \"neetoMolecules.settingsPage.placeholder.search\"\n ),\n }\n }\n />\n )}\n {isEmpty(filteredCategories) ? (\n <div\n className=\"flex h-full w-full flex-grow items-center justify-center\"\n data-testid=\"settings-no-data\"\n >\n <NoData title={t(\"neetoMolecules.settingsPage.noData\")} />\n </div>\n ) : (\n <div className=\"w-full\">\n {filteredCategories.map(({ id, label, items, isIntegration }) => (\n <Category {...{ id, isIntegration, items, label }} key={id} />\n ))}\n </div>\n )}\n </div>\n );\n};\n\nSettings.propTypes = {\n /**\n * Whether to hide the title or not.\n */\n isTitleHidden: propTypes.bool,\n /**\n * Whether to hide the search bar or not.\n */\n isSearchHidden: propTypes.bool,\n /**\n * An array of setting categories to be displayed.\n */\n categories: propTypes.array,\n};\n\nexport default Settings;\n"],"names":["UNSUPPORTED_LINK_PROPS","Item","_ref","label","description","_ref$icon","icon","Icon","path","dataCy","_ref$className","className","children","otherProps","_objectWithoutProperties","_excluded","React","createElement","Link","_extends","to","classnames","omit","concat","joinHyphenCase","size","Typography","style","weight","memo","withRouter","IntegrationItem","withT","t","isConnected","_objectSpread","hyphenate","replace","Tag","Check","Category","items","id","isIntegration","SettingsCard","isLabelPresent","isPresent","classNames","component","map","item","key","isTextMatching","searchTerm","toLowerCase","includes","trim","scrollIntoSettingCategory","activeCategory","_document$getElementB","document","getElementById","scrollIntoView","behavior","filterCategories","_ref$categories","categories","_ref$searchTerm","isSearchTermBlank","filteredCategories","category","filterBy","_ref2","isNotEmpty","Settings","_ref$isTitleHidden","isTitleHidden","_ref$isSearchHidden","isSearchHidden","_useTranslation","useTranslation","_useQueryParams","useQueryParams","categoryParam","_useQueryParams$searc","isHeaderVisible","useEffect","Header","title","searchProps","placeholder","isEmpty","NoData"],"mappings":"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"}