@bigbinary/neeto-molecules 1.1.78 → 1.2.0-beta1

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 (370) hide show
  1. package/README.md +66 -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-c64ff676.js +190 -0
  11. package/dist/Chevron-c64ff676.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 +19 -75
  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 +67 -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 +22 -526
  63. package/dist/InlineInput.js.map +1 -1
  64. package/dist/Insights.js +304 -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 +39 -459
  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 +51 -730
  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 +343 -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 +5 -48
  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 +7 -143
  107. package/dist/ResponsiveDevicePicker.js.map +1 -1
  108. package/dist/Schedule.js +131 -365
  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/SubHeader.js +63 -108
  129. package/dist/SubHeader.js.map +1 -1
  130. package/dist/SuffixedInput.js +105 -0
  131. package/dist/SuffixedInput.js.map +1 -0
  132. package/dist/TableWrapper.js +8 -9
  133. package/dist/TableWrapper.js.map +1 -1
  134. package/dist/Taxonomy.js +112 -1774
  135. package/dist/Taxonomy.js.map +1 -1
  136. package/dist/ThemeSidebar.js +159 -776
  137. package/dist/ThemeSidebar.js.map +1 -1
  138. package/dist/TimeFormat.js +8 -44
  139. package/dist/TimeFormat.js.map +1 -1
  140. package/dist/TimezoneMismatchModal.js +49 -84
  141. package/dist/TimezoneMismatchModal.js.map +1 -1
  142. package/dist/ToggleFeatureCard.js +46 -169
  143. package/dist/ToggleFeatureCard.js.map +1 -1
  144. package/dist/cjs/Breadcrumbs.js +49 -0
  145. package/dist/cjs/Breadcrumbs.js.map +1 -0
  146. package/dist/cjs/BrowserSupport.js +329 -0
  147. package/dist/cjs/BrowserSupport.js.map +1 -0
  148. package/dist/cjs/Builder.js +556 -0
  149. package/dist/cjs/Builder.js.map +1 -0
  150. package/dist/cjs/CalendarView.js +299 -0
  151. package/dist/cjs/CalendarView.js.map +1 -0
  152. package/dist/cjs/Chevron-8a4ed9cd.js +203 -0
  153. package/dist/cjs/Chevron-8a4ed9cd.js.map +1 -0
  154. package/dist/cjs/Codeblock.js +58 -0
  155. package/dist/cjs/Codeblock.js.map +1 -0
  156. package/dist/cjs/Columns.js +31 -0
  157. package/dist/cjs/Columns.js.map +1 -0
  158. package/dist/cjs/ConfigurePageSidebar.js +104 -0
  159. package/dist/cjs/ConfigurePageSidebar.js.map +1 -0
  160. package/dist/cjs/ConfirmationModal.js +120 -0
  161. package/dist/cjs/ConfirmationModal.js.map +1 -0
  162. package/dist/cjs/Container.js +36 -0
  163. package/dist/cjs/Container.js.map +1 -0
  164. package/dist/cjs/CopyToClipboardButton.js +86 -0
  165. package/dist/cjs/CopyToClipboardButton.js.map +1 -0
  166. package/dist/cjs/Currency.js +921 -0
  167. package/dist/cjs/Currency.js.map +1 -0
  168. package/dist/cjs/CustomDomain.js +125 -0
  169. package/dist/cjs/CustomDomain.js.map +1 -0
  170. package/dist/cjs/CustomDomainDashboard.js +200 -0
  171. package/dist/cjs/CustomDomainDashboard.js.map +1 -0
  172. package/dist/cjs/DateFormat.js +40 -0
  173. package/dist/cjs/DateFormat.js.map +1 -0
  174. package/dist/cjs/DateRangeFilter.js +180 -0
  175. package/dist/cjs/DateRangeFilter.js.map +1 -0
  176. package/dist/cjs/DeleteArchiveModal.js +92 -0
  177. package/dist/cjs/DeleteArchiveModal.js.map +1 -0
  178. package/dist/cjs/DocumentEditor.js +194 -0
  179. package/dist/cjs/DocumentEditor.js.map +1 -0
  180. package/dist/cjs/DownloadMobileAppCallout.js +45 -0
  181. package/dist/cjs/DownloadMobileAppCallout.js.map +1 -0
  182. package/dist/cjs/DynamicVariables.js +106 -0
  183. package/dist/cjs/DynamicVariables.js.map +1 -0
  184. package/dist/cjs/EmailForm.js +395 -0
  185. package/dist/cjs/EmailForm.js.map +1 -0
  186. package/dist/cjs/EmailPreview.js +139 -0
  187. package/dist/cjs/EmailPreview.js.map +1 -0
  188. package/dist/cjs/EmojiPicker.js +75 -0
  189. package/dist/cjs/EmojiPicker.js.map +1 -0
  190. package/dist/cjs/EmojiReactions.js +76 -0
  191. package/dist/cjs/EmojiReactions.js.map +1 -0
  192. package/dist/cjs/ErrorPage.js +179 -0
  193. package/dist/cjs/ErrorPage.js.map +1 -0
  194. package/dist/cjs/FloatingActionMenu.js +675 -0
  195. package/dist/cjs/FloatingActionMenu.js.map +1 -0
  196. package/dist/cjs/Header.js +104 -0
  197. package/dist/cjs/Header.js.map +1 -0
  198. package/dist/cjs/HelpPopover.js +80 -0
  199. package/dist/cjs/HelpPopover.js.map +1 -0
  200. package/dist/cjs/IconPicker.js +228 -0
  201. package/dist/cjs/IconPicker.js.map +1 -0
  202. package/dist/cjs/ImageWithFallback.js +52 -0
  203. package/dist/cjs/ImageWithFallback.js.map +1 -0
  204. package/dist/cjs/InlineInput.js +233 -0
  205. package/dist/cjs/InlineInput.js.map +1 -0
  206. package/dist/cjs/Insights.js +310 -0
  207. package/dist/cjs/Insights.js.map +1 -0
  208. package/dist/cjs/IntegrationCard.js +208 -0
  209. package/dist/cjs/IntegrationCard.js.map +1 -0
  210. package/dist/cjs/IntegrationDisconnectAlert.js +48 -0
  211. package/dist/cjs/IntegrationDisconnectAlert.js.map +1 -0
  212. package/dist/cjs/IntegrationWalkthroughModal.js +51 -0
  213. package/dist/cjs/IntegrationWalkthroughModal.js.map +1 -0
  214. package/dist/cjs/IpRestriction.js +525 -0
  215. package/dist/cjs/IpRestriction.js.map +1 -0
  216. package/dist/cjs/KeyboardShortcuts.js +282 -0
  217. package/dist/cjs/KeyboardShortcuts.js.map +1 -0
  218. package/dist/cjs/LoginPage.js +198 -0
  219. package/dist/cjs/LoginPage.js.map +1 -0
  220. package/dist/cjs/MadeWith.js +38 -0
  221. package/dist/cjs/MadeWith.js.map +1 -0
  222. package/dist/cjs/MenuBar.js +208 -0
  223. package/dist/cjs/MenuBar.js.map +1 -0
  224. package/dist/cjs/Metadata.js +195 -0
  225. package/dist/cjs/Metadata.js.map +1 -0
  226. package/dist/cjs/MoreDropdown.js +152 -0
  227. package/dist/cjs/MoreDropdown.js.map +1 -0
  228. package/dist/cjs/NavigationHeader.js +177 -0
  229. package/dist/cjs/NavigationHeader.js.map +1 -0
  230. package/dist/cjs/NeetoWidget.js +912 -0
  231. package/dist/cjs/NeetoWidget.js.map +1 -0
  232. package/dist/cjs/Onboarding.js +357 -0
  233. package/dist/cjs/Onboarding.js.map +1 -0
  234. package/dist/cjs/OptionFields.js +514 -0
  235. package/dist/cjs/OptionFields.js.map +1 -0
  236. package/dist/cjs/PageLoader.js +116 -0
  237. package/dist/cjs/PageLoader.js.map +1 -0
  238. package/dist/cjs/PhoneNumber.js +363 -0
  239. package/dist/cjs/PhoneNumber.js.map +1 -0
  240. package/dist/cjs/ProductEmbed.js +774 -0
  241. package/dist/cjs/ProductEmbed.js.map +1 -0
  242. package/dist/cjs/PublishBlock.js +125 -0
  243. package/dist/cjs/PublishBlock.js.map +1 -0
  244. package/dist/cjs/PublishYourItem.js +59 -0
  245. package/dist/cjs/PublishYourItem.js.map +1 -0
  246. package/dist/cjs/Rename.js +350 -0
  247. package/dist/cjs/Rename.js.map +1 -0
  248. package/dist/cjs/ResponsiveDevicePicker.js +64 -0
  249. package/dist/cjs/ResponsiveDevicePicker.js.map +1 -0
  250. package/dist/cjs/Schedule.js +889 -0
  251. package/dist/cjs/Schedule.js.map +1 -0
  252. package/dist/cjs/Scrollable.js +46 -0
  253. package/dist/cjs/Scrollable.js.map +1 -0
  254. package/dist/cjs/Search.js +117 -0
  255. package/dist/cjs/Search.js.map +1 -0
  256. package/dist/cjs/Security.js +376 -0
  257. package/dist/cjs/Security.js.map +1 -0
  258. package/dist/cjs/SendToFields.js +272 -0
  259. package/dist/cjs/SendToFields.js.map +1 -0
  260. package/dist/cjs/Settings.js +214 -0
  261. package/dist/cjs/Settings.js.map +1 -0
  262. package/dist/cjs/ShareRecordingPane.js +195 -0
  263. package/dist/cjs/ShareRecordingPane.js.map +1 -0
  264. package/dist/cjs/ShareViaEmail.js +348 -0
  265. package/dist/cjs/ShareViaEmail.js.map +1 -0
  266. package/dist/cjs/ShareViaLink.js +507 -0
  267. package/dist/cjs/ShareViaLink.js.map +1 -0
  268. package/dist/cjs/Sidebar.js +288 -0
  269. package/dist/cjs/Sidebar.js.map +1 -0
  270. package/dist/cjs/SubHeader.js +178 -0
  271. package/dist/cjs/SubHeader.js.map +1 -0
  272. package/dist/cjs/SuffixedInput.js +111 -0
  273. package/dist/cjs/SuffixedInput.js.map +1 -0
  274. package/dist/cjs/TableWrapper.js +32 -0
  275. package/dist/cjs/TableWrapper.js.map +1 -0
  276. package/dist/cjs/Taxonomy.js +442 -0
  277. package/dist/cjs/Taxonomy.js.map +1 -0
  278. package/dist/cjs/ThemeSidebar.js +1436 -0
  279. package/dist/cjs/ThemeSidebar.js.map +1 -0
  280. package/dist/cjs/TimeFormat.js +15 -0
  281. package/dist/cjs/TimeFormat.js.map +1 -0
  282. package/dist/cjs/TimezoneMismatchModal.js +143 -0
  283. package/dist/cjs/TimezoneMismatchModal.js.map +1 -0
  284. package/dist/cjs/ToggleFeatureCard.js +209 -0
  285. package/dist/cjs/ToggleFeatureCard.js.map +1 -0
  286. package/dist/cjs/defineProperty-886ed289.js +47 -0
  287. package/dist/cjs/defineProperty-886ed289.js.map +1 -0
  288. package/dist/cjs/extends-1b35a664.js +19 -0
  289. package/dist/cjs/extends-1b35a664.js.map +1 -0
  290. package/dist/cjs/index-00fdb8c2.js +542 -0
  291. package/dist/cjs/index-00fdb8c2.js.map +1 -0
  292. package/dist/cjs/index-248c4f4c.js +1186 -0
  293. package/dist/cjs/index-248c4f4c.js.map +1 -0
  294. package/dist/cjs/index-c55ad2bc.js +375 -0
  295. package/dist/cjs/index-c55ad2bc.js.map +1 -0
  296. package/dist/cjs/inject-css-80a5faa3.js +6 -0
  297. package/dist/cjs/inject-css-80a5faa3.js.map +1 -0
  298. package/dist/cjs/objectWithoutProperties-2fed2d7d.js +33 -0
  299. package/dist/cjs/objectWithoutProperties-2fed2d7d.js.map +1 -0
  300. package/dist/cjs/slicedToArray-f320d9e7.js +61 -0
  301. package/dist/cjs/slicedToArray-f320d9e7.js.map +1 -0
  302. package/dist/cjs/toConsumableArray-9abb3858.js +22 -0
  303. package/dist/cjs/toConsumableArray-9abb3858.js.map +1 -0
  304. package/dist/cjs/useColumns-a1c3668f.js +271 -0
  305. package/dist/cjs/useColumns-a1c3668f.js.map +1 -0
  306. package/dist/defineProperty-549061a7.js +43 -0
  307. package/dist/defineProperty-549061a7.js.map +1 -0
  308. package/dist/extends-093996c9.js +17 -0
  309. package/dist/extends-093996c9.js.map +1 -0
  310. package/dist/index-90c89467.js +509 -0
  311. package/dist/index-90c89467.js.map +1 -0
  312. package/dist/index-9720867c.js +372 -0
  313. package/dist/index-9720867c.js.map +1 -0
  314. package/dist/index-e5588516.js +1184 -0
  315. package/dist/index-e5588516.js.map +1 -0
  316. package/dist/inject-css-c86de496.js +4 -0
  317. package/dist/inject-css-c86de496.js.map +1 -0
  318. package/dist/objectWithoutProperties-a0edb288.js +31 -0
  319. package/dist/objectWithoutProperties-a0edb288.js.map +1 -0
  320. package/dist/slicedToArray-b4278ecd.js +57 -0
  321. package/dist/slicedToArray-b4278ecd.js.map +1 -0
  322. package/dist/toConsumableArray-1cc38429.js +20 -0
  323. package/dist/toConsumableArray-1cc38429.js.map +1 -0
  324. package/dist/useColumns-d17d1f72.js +258 -0
  325. package/dist/useColumns-d17d1f72.js.map +1 -0
  326. package/package.json +29 -17
  327. package/src/translations/de.json +7 -0
  328. package/src/translations/en.json +191 -31
  329. package/src/translations/es.json +7 -0
  330. package/src/translations/fr.json +7 -0
  331. package/src/translations/nl.json +7 -0
  332. package/src/translations/pl.json +7 -0
  333. package/src/translations/pt.json +7 -0
  334. package/types/Breadcrumbs.d.ts +1 -0
  335. package/types/Builder.d.ts +61 -12
  336. package/types/Columns.d.ts +112 -5
  337. package/types/ConfigurePageSidebar.d.ts +43 -0
  338. package/types/CopyToClipboardButton.d.ts +3 -0
  339. package/types/Currency.d.ts +48 -0
  340. package/types/CustomDomain.d.ts +2 -0
  341. package/types/CustomDomainDashboard.d.ts +14 -0
  342. package/types/DateRangeFilter.d.ts +2 -0
  343. package/types/DeleteArchiveModal.d.ts +60 -0
  344. package/types/EmailForm.d.ts +1 -1
  345. package/types/EmojiPicker.d.ts +33 -0
  346. package/types/EmojiReactions.d.ts +60 -0
  347. package/types/ErrorPage.d.ts +1 -0
  348. package/types/FloatingActionMenu.d.ts +56 -0
  349. package/types/Header.d.ts +2 -1
  350. package/types/HelpPopover.d.ts +42 -0
  351. package/types/Insights.d.ts +108 -0
  352. package/types/IntegrationCard.d.ts +2 -0
  353. package/types/KeyboardShortcuts.d.ts +2 -2
  354. package/types/MadeWith.d.ts +16 -0
  355. package/types/MoreDropdown.d.ts +4 -1
  356. package/types/NavigationHeader.d.ts +3 -1
  357. package/types/Onboarding.d.ts +63 -0
  358. package/types/OptionFields.d.ts +63 -0
  359. package/types/PhoneNumber.d.ts +6 -2
  360. package/types/ProductEmbed.d.ts +43 -0
  361. package/types/Rename.d.ts +4 -1
  362. package/types/Schedule.d.ts +2 -0
  363. package/types/Search.d.ts +2 -0
  364. package/types/Settings.d.ts +13 -10
  365. package/types/ShareRecordingPane.d.ts +50 -0
  366. package/types/ShareViaLink.d.ts +15 -4
  367. package/types/Sidebar.d.ts +16 -32
  368. package/types/SubHeader.d.ts +0 -1
  369. package/types/SuffixedInput.d.ts +43 -0
  370. package/types/ToggleFeatureCard.d.ts +8 -1
@@ -0,0 +1,195 @@
1
+ 'use strict';
2
+
3
+ var _extends = require('./extends-1b35a664.js');
4
+ var defineProperty = require('./defineProperty-886ed289.js');
5
+ var objectWithoutProperties = require('./objectWithoutProperties-2fed2d7d.js');
6
+ var React = require('react');
7
+ var neetoui = require('@bigbinary/neetoui');
8
+ var reactI18next = require('react-i18next');
9
+ var slicedToArray = require('./slicedToArray-f320d9e7.js');
10
+ var utils = require('@bigbinary/neeto-commons-frontend/utils');
11
+ var ramda = require('ramda');
12
+ var CopyToClipboardButton = require('./CopyToClipboardButton.js');
13
+ require('classnames');
14
+ require('@bigbinary/neeto-commons-frontend/utils/general');
15
+ require('@bigbinary/neeto-icons');
16
+ require('./inject-css-80a5faa3.js');
17
+
18
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
19
+
20
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
21
+
22
+ var ONE_SECOND = 1;
23
+ var ONE_MINUTE = 60 * ONE_SECOND;
24
+ var ONE_HOUR = 60 * ONE_MINUTE;
25
+
26
+ var padZero = function padZero(number) {
27
+ var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
28
+ var string = String(number);
29
+ var threshold = Math.pow(10, length - 1);
30
+ if (number < threshold) {
31
+ while (String(threshold).length > string.length) {
32
+ string = "0".concat(number);
33
+ }
34
+ }
35
+ return string;
36
+ };
37
+ var shouldRenderHoursInput = function shouldRenderHoursInput(duration) {
38
+ var hours = Math.floor(duration / ONE_HOUR);
39
+ return hours > 0;
40
+ };
41
+ var formatTime = function formatTime(timeInSeconds, showHours) {
42
+ var hours = Math.floor(timeInSeconds / ONE_HOUR);
43
+ var minutes = Math.floor(timeInSeconds % ONE_HOUR / ONE_MINUTE);
44
+ var seconds = timeInSeconds % ONE_MINUTE;
45
+ return showHours ? "".concat(padZero(hours), ":").concat(padZero(minutes), ":").concat(padZero(seconds)) : "".concat(padZero(minutes), ":").concat(padZero(seconds));
46
+ };
47
+ var parseTime = function parseTime(timeString) {
48
+ var parts = timeString.split(":").map(function (part) {
49
+ return part === "" ? NaN : parseInt(part, 10);
50
+ });
51
+ if (parts.some(isNaN) || parts.length > 3) {
52
+ return 0;
53
+ }
54
+ if (parts.length === 1) {
55
+ return parts[0];
56
+ } else if (parts.length === 2) {
57
+ return parts[0] * ONE_MINUTE + parts[1];
58
+ } else if (parts.length === 3) {
59
+ return parts[0] * ONE_HOUR + parts[1] * ONE_MINUTE + parts[2];
60
+ }
61
+ return 0;
62
+ };
63
+ var validateInput = function validateInput(input) {
64
+ var regex = /^[0-9:]{0,8}$/;
65
+ var colons = (input.match(/:/g) || []).length;
66
+ return regex.test(input) && colons <= 2;
67
+ };
68
+
69
+ 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; }
70
+ 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._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; }
71
+ var SharePaneBody = function SharePaneBody(_ref) {
72
+ var recordingUrl = _ref.recordingUrl,
73
+ totalDuration = _ref.totalDuration,
74
+ getCurrentTimestamp = _ref.getCurrentTimestamp,
75
+ isOpen = _ref.isOpen;
76
+ var _useTranslation = reactI18next.useTranslation(),
77
+ t = _useTranslation.t;
78
+ var currentTimestamp = getCurrentTimestamp();
79
+ var _useState = React.useState(""),
80
+ _useState2 = slicedToArray._slicedToArray(_useState, 2),
81
+ shareLink = _useState2[0],
82
+ setShareLink = _useState2[1];
83
+ var _useState3 = React.useState(currentTimestamp),
84
+ _useState4 = slicedToArray._slicedToArray(_useState3, 2),
85
+ currentPlaybackTime = _useState4[0],
86
+ setCurrentPlaybackTime = _useState4[1];
87
+ var _useState5 = React.useState(""),
88
+ _useState6 = slicedToArray._slicedToArray(_useState5, 2),
89
+ rawInput = _useState6[0],
90
+ setRawInput = _useState6[1];
91
+ var _useState7 = React.useState(currentTimestamp > 0),
92
+ _useState8 = slicedToArray._slicedToArray(_useState7, 2),
93
+ isPlaybackTimeCheckboxChecked = _useState8[0],
94
+ setIsPlaybackTimeCheckboxChecked = _useState8[1];
95
+ var showHours = shouldRenderHoursInput(totalDuration);
96
+ var handlePlaybackTimestampChange = function handlePlaybackTimestampChange(e) {
97
+ var input = e.target.value;
98
+ if (validateInput(input)) {
99
+ setRawInput(input);
100
+ }
101
+ };
102
+ var formatAndSetTime = function formatAndSetTime() {
103
+ var timeInSeconds = parseTime(rawInput);
104
+ if (timeInSeconds > totalDuration) {
105
+ timeInSeconds = totalDuration;
106
+ }
107
+ setCurrentPlaybackTime(timeInSeconds);
108
+ setRawInput(formatTime(timeInSeconds, showHours));
109
+ };
110
+ var handleKeyDown = function handleKeyDown(e) {
111
+ if (!(e.key === "Enter")) return;
112
+ formatAndSetTime();
113
+ };
114
+ React.useEffect(function () {
115
+ if (ramda.not(isOpen)) return;
116
+ setIsPlaybackTimeCheckboxChecked(currentTimestamp > 0);
117
+ setCurrentPlaybackTime(currentTimestamp > 0 ? currentTimestamp : 0);
118
+ setRawInput(formatTime(currentTimestamp > 0 ? currentTimestamp : 0, showHours));
119
+ }, [isOpen, showHours, currentTimestamp]);
120
+ React.useEffect(function () {
121
+ var playbackUrl = utils.buildUrl(recordingUrl, _objectSpread$1({}, isPlaybackTimeCheckboxChecked && currentPlaybackTime > 0 && {
122
+ time: currentPlaybackTime
123
+ }));
124
+ setShareLink(playbackUrl);
125
+ }, [recordingUrl, isPlaybackTimeCheckboxChecked, currentPlaybackTime]);
126
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
127
+ className: "neeto-ui-bg-gray-100 neeto-ui-rounded-lg mb-3 flex w-full items-center justify-between p-2"
128
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, {
129
+ content: shareLink
130
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
131
+ className: "truncate",
132
+ style: "body2"
133
+ }, shareLink)), /*#__PURE__*/React__default["default"].createElement(CopyToClipboardButton, {
134
+ className: "flex-shrink-0",
135
+ style: "secondary",
136
+ value: shareLink
137
+ })), /*#__PURE__*/React__default["default"].createElement("div", {
138
+ className: "flex items-center gap-x-2"
139
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Checkbox, {
140
+ checked: isPlaybackTimeCheckboxChecked,
141
+ className: "grow-0",
142
+ "data-cy": "time-checkbox",
143
+ label: t("neetoMolecules.shareRecording.checkboxLabel"),
144
+ onChange: function onChange(_ref2) {
145
+ var checked = _ref2.target.checked;
146
+ return setIsPlaybackTimeCheckboxChecked(checked);
147
+ }
148
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Input, {
149
+ className: "w-40",
150
+ "data-cy": "time-input",
151
+ disabled: ramda.not(isPlaybackTimeCheckboxChecked),
152
+ placeholder: showHours ? "HH:MM:SS" : "MM:SS",
153
+ value: rawInput,
154
+ onBlur: formatAndSetTime,
155
+ onChange: handlePlaybackTimestampChange,
156
+ onKeyDown: handleKeyDown
157
+ })));
158
+ };
159
+
160
+ var _excluded = ["recordingUrl", "totalDuration", "getCurrentTimestamp", "isOpen", "onClose", "isLoading"];
161
+ 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; }
162
+ 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._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; }
163
+ var ShareRecordingPane = function ShareRecordingPane(_ref) {
164
+ var recordingUrl = _ref.recordingUrl,
165
+ totalDuration = _ref.totalDuration,
166
+ getCurrentTimestamp = _ref.getCurrentTimestamp,
167
+ isOpen = _ref.isOpen,
168
+ onClose = _ref.onClose,
169
+ _ref$isLoading = _ref.isLoading,
170
+ isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
171
+ otherProps = objectWithoutProperties._objectWithoutProperties(_ref, _excluded);
172
+ var _useTranslation = reactI18next.useTranslation(),
173
+ t = _useTranslation.t;
174
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Pane, _extends._extends({}, _objectSpread({
175
+ isOpen: isOpen,
176
+ onClose: onClose
177
+ }, otherProps), {
178
+ "data-cy": "share-pane",
179
+ size: "large"
180
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Header, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
181
+ style: "h2"
182
+ }, t("neetoMolecules.shareRecording.title"))), /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Body, {
183
+ className: "flex flex-col space-y-2"
184
+ }, isLoading ? /*#__PURE__*/React__default["default"].createElement(neetoui.Spinner, {
185
+ className: "mx-auto"
186
+ }) : /*#__PURE__*/React__default["default"].createElement(SharePaneBody, {
187
+ getCurrentTimestamp: getCurrentTimestamp,
188
+ isOpen: isOpen,
189
+ recordingUrl: recordingUrl,
190
+ totalDuration: totalDuration
191
+ })));
192
+ };
193
+
194
+ module.exports = ShareRecordingPane;
195
+ //# sourceMappingURL=ShareRecordingPane.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShareRecordingPane.js","sources":["../../src/components/ShareRecordingPane/constants.js","../../src/components/ShareRecordingPane/utils.js","../../src/components/ShareRecordingPane/SharePaneBody.jsx","../../src/components/ShareRecordingPane/index.jsx"],"sourcesContent":["export const ONE_SECOND = 1;\nexport const ONE_MINUTE = 60 * ONE_SECOND;\nexport const ONE_HOUR = 60 * ONE_MINUTE;\n","import { ONE_HOUR, ONE_MINUTE } from \"./constants\";\n\nexport const padZero = (number, length = 2) => {\n let string = String(number);\n const threshold = Math.pow(10, length - 1);\n\n if (number < threshold) {\n while (String(threshold).length > string.length) {\n string = `0${number}`;\n }\n }\n\n return string;\n};\n\nexport const shouldRenderHoursInput = duration => {\n const hours = Math.floor(duration / ONE_HOUR);\n\n return hours > 0;\n};\n\nexport const formatTime = (timeInSeconds, showHours) => {\n const hours = Math.floor(timeInSeconds / ONE_HOUR);\n const minutes = Math.floor((timeInSeconds % ONE_HOUR) / ONE_MINUTE);\n const seconds = timeInSeconds % ONE_MINUTE;\n\n return showHours\n ? `${padZero(hours)}:${padZero(minutes)}:${padZero(seconds)}`\n : `${padZero(minutes)}:${padZero(seconds)}`;\n};\n\nexport const parseTime = timeString => {\n const parts = timeString\n .split(\":\")\n .map(part => (part === \"\" ? NaN : parseInt(part, 10)));\n if (parts.some(isNaN) || parts.length > 3) {\n return 0;\n }\n\n if (parts.length === 1) {\n return parts[0];\n } else if (parts.length === 2) {\n return parts[0] * ONE_MINUTE + parts[1];\n } else if (parts.length === 3) {\n return parts[0] * ONE_HOUR + parts[1] * ONE_MINUTE + parts[2];\n }\n\n return 0;\n};\n\nexport const validateInput = input => {\n const regex = /^[0-9:]{0,8}$/;\n const colons = (input.match(/:/g) || []).length;\n\n return regex.test(input) && colons <= 2;\n};\n","import React, { useState, useEffect } from \"react\";\n\nimport { buildUrl } from \"neetocommons/utils\";\nimport { Typography, Input, Checkbox, Tooltip } from \"neetoui\";\nimport { not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport CopyToClipboardButton from \"components/CopyToClipboardButton\";\n\nimport {\n formatTime,\n parseTime,\n shouldRenderHoursInput,\n validateInput,\n} from \"./utils\";\n\nconst SharePaneBody = ({\n recordingUrl,\n totalDuration,\n getCurrentTimestamp,\n isOpen,\n}) => {\n const { t } = useTranslation();\n const currentTimestamp = getCurrentTimestamp();\n\n const [shareLink, setShareLink] = useState(\"\");\n const [currentPlaybackTime, setCurrentPlaybackTime] =\n useState(currentTimestamp);\n const [rawInput, setRawInput] = useState(\"\");\n\n const [isPlaybackTimeCheckboxChecked, setIsPlaybackTimeCheckboxChecked] =\n useState(currentTimestamp > 0);\n\n const showHours = shouldRenderHoursInput(totalDuration);\n\n const handlePlaybackTimestampChange = e => {\n const input = e.target.value;\n if (validateInput(input)) {\n setRawInput(input);\n }\n };\n\n const formatAndSetTime = () => {\n let timeInSeconds = parseTime(rawInput);\n if (timeInSeconds > totalDuration) {\n timeInSeconds = totalDuration;\n }\n setCurrentPlaybackTime(timeInSeconds);\n setRawInput(formatTime(timeInSeconds, showHours));\n };\n\n const handleKeyDown = e => {\n if (!(e.key === \"Enter\")) return;\n formatAndSetTime();\n };\n\n useEffect(() => {\n if (not(isOpen)) return;\n\n setIsPlaybackTimeCheckboxChecked(currentTimestamp > 0);\n setCurrentPlaybackTime(currentTimestamp > 0 ? currentTimestamp : 0);\n setRawInput(\n formatTime(currentTimestamp > 0 ? currentTimestamp : 0, showHours)\n );\n }, [isOpen, showHours, currentTimestamp]);\n\n useEffect(() => {\n const playbackUrl = buildUrl(recordingUrl, {\n ...(isPlaybackTimeCheckboxChecked &&\n currentPlaybackTime > 0 && { time: currentPlaybackTime }),\n });\n\n setShareLink(playbackUrl);\n }, [recordingUrl, isPlaybackTimeCheckboxChecked, currentPlaybackTime]);\n\n return (\n <>\n <div className=\"neeto-ui-bg-gray-100 neeto-ui-rounded-lg mb-3 flex w-full items-center justify-between p-2\">\n <Tooltip content={shareLink}>\n <Typography className=\"truncate\" style=\"body2\">\n {shareLink}\n </Typography>\n </Tooltip>\n <CopyToClipboardButton\n className=\"flex-shrink-0\"\n style=\"secondary\"\n value={shareLink}\n />\n </div>\n <div className=\"flex items-center gap-x-2\">\n <Checkbox\n checked={isPlaybackTimeCheckboxChecked}\n className=\"grow-0\"\n data-cy=\"time-checkbox\"\n label={t(\"neetoMolecules.shareRecording.checkboxLabel\")}\n onChange={({ target: { checked } }) =>\n setIsPlaybackTimeCheckboxChecked(checked)\n }\n />\n <Input\n className=\"w-40\"\n data-cy=\"time-input\"\n disabled={not(isPlaybackTimeCheckboxChecked)}\n placeholder={showHours ? \"HH:MM:SS\" : \"MM:SS\"}\n value={rawInput}\n onBlur={formatAndSetTime}\n onChange={handlePlaybackTimestampChange}\n onKeyDown={handleKeyDown}\n />\n </div>\n </>\n );\n};\n\nexport default SharePaneBody;\n","/* eslint-disable @bigbinary/neeto/no-dumb-components-with-use-translation */\nimport React from \"react\";\n\nimport { Pane, Typography, Spinner } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SharePaneBody from \"./SharePaneBody\";\n\nconst ShareRecordingPane = ({\n recordingUrl,\n totalDuration,\n getCurrentTimestamp,\n isOpen,\n onClose,\n isLoading = false,\n ...otherProps\n}) => {\n const { t } = useTranslation();\n\n return (\n <Pane\n {...{ isOpen, onClose, ...otherProps }}\n data-cy=\"share-pane\"\n size=\"large\"\n >\n <Pane.Header>\n <Typography style=\"h2\">\n {t(\"neetoMolecules.shareRecording.title\")}\n </Typography>\n </Pane.Header>\n <Pane.Body className=\"flex flex-col space-y-2\">\n {isLoading ? (\n <Spinner className=\"mx-auto\" />\n ) : (\n <SharePaneBody\n {...{ getCurrentTimestamp, isOpen, recordingUrl, totalDuration }}\n />\n )}\n </Pane.Body>\n </Pane>\n );\n};\n\nShareRecordingPane.propTypes = {\n /**\n * Recording URL used for building the share link.\n */\n recordingUrl: PropTypes.string.isRequired,\n /**\n * Total duration of the content being shared.\n */\n totalDuration: PropTypes.number.isRequired,\n /**\n * A function that returns current playback time of the recorded content in seconds.\n */\n getCurrentTimestamp: PropTypes.func.isRequired,\n /**\n * Boolean indicating whether the pane is open or not.\n */\n isOpen: PropTypes.bool.isRequired,\n /**\n * Function to close the pane.\n */\n onClose: PropTypes.func.isRequired,\n /**\n * Boolean indicating whether content is loading or not.\n */\n isLoading: PropTypes.bool,\n};\n\nexport default ShareRecordingPane;\n"],"names":["ONE_SECOND","ONE_MINUTE","ONE_HOUR","padZero","number","length","arguments","undefined","string","String","threshold","Math","pow","concat","shouldRenderHoursInput","duration","hours","floor","formatTime","timeInSeconds","showHours","minutes","seconds","parseTime","timeString","parts","split","map","part","NaN","parseInt","some","isNaN","validateInput","input","regex","colons","match","test","SharePaneBody","_ref","recordingUrl","totalDuration","getCurrentTimestamp","isOpen","_useTranslation","useTranslation","t","currentTimestamp","_useState","useState","_useState2","_slicedToArray","shareLink","setShareLink","_useState3","_useState4","currentPlaybackTime","setCurrentPlaybackTime","_useState5","_useState6","rawInput","setRawInput","_useState7","_useState8","isPlaybackTimeCheckboxChecked","setIsPlaybackTimeCheckboxChecked","handlePlaybackTimestampChange","e","target","value","formatAndSetTime","handleKeyDown","key","useEffect","not","playbackUrl","buildUrl","_objectSpread","time","React","createElement","Fragment","className","Tooltip","content","Typography","style","CopyToClipboardButton","Checkbox","checked","label","onChange","_ref2","Input","disabled","placeholder","onBlur","onKeyDown","ShareRecordingPane","onClose","_ref$isLoading","isLoading","otherProps","_objectWithoutProperties","_excluded","Pane","_extends","size","Header","Body","Spinner"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAO,IAAMA,UAAU,GAAG,CAAC,CAAA;AACpB,IAAMC,UAAU,GAAG,EAAE,GAAGD,UAAU,CAAA;AAClC,IAAME,QAAQ,GAAG,EAAE,GAAGD,UAAU;;ACAhC,IAAME,OAAO,GAAG,SAAVA,OAAOA,CAAIC,MAAM,EAAiB;AAAA,EAAA,IAAfC,MAAM,GAAAC,SAAA,CAAAD,MAAA,GAAA,CAAA,IAAAC,SAAA,CAAA,CAAA,CAAA,KAAAC,SAAA,GAAAD,SAAA,CAAA,CAAA,CAAA,GAAG,CAAC,CAAA;AACxC,EAAA,IAAIE,MAAM,GAAGC,MAAM,CAACL,MAAM,CAAC,CAAA;EAC3B,IAAMM,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,EAAE,EAAEP,MAAM,GAAG,CAAC,CAAC,CAAA;EAE1C,IAAID,MAAM,GAAGM,SAAS,EAAE;IACtB,OAAOD,MAAM,CAACC,SAAS,CAAC,CAACL,MAAM,GAAGG,MAAM,CAACH,MAAM,EAAE;AAC/CG,MAAAA,MAAM,GAAAK,GAAAA,CAAAA,MAAA,CAAOT,MAAM,CAAE,CAAA;AACvB,KAAA;AACF,GAAA;AAEA,EAAA,OAAOI,MAAM,CAAA;AACf,CAAC,CAAA;AAEM,IAAMM,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAGC,QAAQ,EAAI;EAChD,IAAMC,KAAK,GAAGL,IAAI,CAACM,KAAK,CAACF,QAAQ,GAAGb,QAAQ,CAAC,CAAA;EAE7C,OAAOc,KAAK,GAAG,CAAC,CAAA;AAClB,CAAC,CAAA;AAEM,IAAME,UAAU,GAAG,SAAbA,UAAUA,CAAIC,aAAa,EAAEC,SAAS,EAAK;EACtD,IAAMJ,KAAK,GAAGL,IAAI,CAACM,KAAK,CAACE,aAAa,GAAGjB,QAAQ,CAAC,CAAA;EAClD,IAAMmB,OAAO,GAAGV,IAAI,CAACM,KAAK,CAAEE,aAAa,GAAGjB,QAAQ,GAAID,UAAU,CAAC,CAAA;AACnE,EAAA,IAAMqB,OAAO,GAAGH,aAAa,GAAGlB,UAAU,CAAA;AAE1C,EAAA,OAAOmB,SAAS,GAAAP,EAAAA,CAAAA,MAAA,CACTV,OAAO,CAACa,KAAK,CAAC,EAAAH,GAAAA,CAAAA,CAAAA,MAAA,CAAIV,OAAO,CAACkB,OAAO,CAAC,OAAAR,MAAA,CAAIV,OAAO,CAACmB,OAAO,CAAC,CAAA,GAAA,EAAA,CAAAT,MAAA,CACtDV,OAAO,CAACkB,OAAO,CAAC,EAAA,GAAA,CAAA,CAAAR,MAAA,CAAIV,OAAO,CAACmB,OAAO,CAAC,CAAE,CAAA;AAC/C,CAAC,CAAA;AAEM,IAAMC,SAAS,GAAG,SAAZA,SAASA,CAAGC,UAAU,EAAI;AACrC,EAAA,IAAMC,KAAK,GAAGD,UAAU,CACrBE,KAAK,CAAC,GAAG,CAAC,CACVC,GAAG,CAAC,UAAAC,IAAI,EAAA;IAAA,OAAKA,IAAI,KAAK,EAAE,GAAGC,GAAG,GAAGC,QAAQ,CAACF,IAAI,EAAE,EAAE,CAAC,CAAA;AAAA,GAAC,CAAC,CAAA;AACxD,EAAA,IAAIH,KAAK,CAACM,IAAI,CAACC,KAAK,CAAC,IAAIP,KAAK,CAACpB,MAAM,GAAG,CAAC,EAAE;AACzC,IAAA,OAAO,CAAC,CAAA;AACV,GAAA;AAEA,EAAA,IAAIoB,KAAK,CAACpB,MAAM,KAAK,CAAC,EAAE;IACtB,OAAOoB,KAAK,CAAC,CAAC,CAAC,CAAA;AACjB,GAAC,MAAM,IAAIA,KAAK,CAACpB,MAAM,KAAK,CAAC,EAAE;IAC7B,OAAOoB,KAAK,CAAC,CAAC,CAAC,GAAGxB,UAAU,GAAGwB,KAAK,CAAC,CAAC,CAAC,CAAA;AACzC,GAAC,MAAM,IAAIA,KAAK,CAACpB,MAAM,KAAK,CAAC,EAAE;AAC7B,IAAA,OAAOoB,KAAK,CAAC,CAAC,CAAC,GAAGvB,QAAQ,GAAGuB,KAAK,CAAC,CAAC,CAAC,GAAGxB,UAAU,GAAGwB,KAAK,CAAC,CAAC,CAAC,CAAA;AAC/D,GAAA;AAEA,EAAA,OAAO,CAAC,CAAA;AACV,CAAC,CAAA;AAEM,IAAMQ,aAAa,GAAG,SAAhBA,aAAaA,CAAGC,KAAK,EAAI;EACpC,IAAMC,KAAK,GAAG,eAAe,CAAA;AAC7B,EAAA,IAAMC,MAAM,GAAG,CAACF,KAAK,CAACG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAEhC,MAAM,CAAA;EAE/C,OAAO8B,KAAK,CAACG,IAAI,CAACJ,KAAK,CAAC,IAAIE,MAAM,IAAI,CAAC,CAAA;AACzC,CAAC;;;;ACvCD,IAAMG,aAAa,GAAG,SAAhBA,aAAaA,CAAAC,IAAA,EAKb;AAAA,EAAA,IAJJC,YAAY,GAAAD,IAAA,CAAZC,YAAY;IACZC,aAAa,GAAAF,IAAA,CAAbE,aAAa;IACbC,mBAAmB,GAAAH,IAAA,CAAnBG,mBAAmB;IACnBC,MAAM,GAAAJ,IAAA,CAANI,MAAM,CAAA;AAEN,EAAA,IAAAC,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC,CAAA;AACT,EAAA,IAAMC,gBAAgB,GAAGL,mBAAmB,EAAE,CAAA;AAE9C,EAAA,IAAAM,SAAA,GAAkCC,cAAQ,CAAC,EAAE,CAAC;IAAAC,UAAA,GAAAC,4BAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAvCI,IAAAA,SAAS,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,YAAY,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;AAC9B,EAAA,IAAAI,UAAA,GACEL,cAAQ,CAACF,gBAAgB,CAAC;IAAAQ,UAAA,GAAAJ,4BAAA,CAAAG,UAAA,EAAA,CAAA,CAAA;AADrBE,IAAAA,mBAAmB,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,sBAAsB,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAElD,EAAA,IAAAG,UAAA,GAAgCT,cAAQ,CAAC,EAAE,CAAC;IAAAU,UAAA,GAAAR,4BAAA,CAAAO,UAAA,EAAA,CAAA,CAAA;AAArCE,IAAAA,QAAQ,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,WAAW,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAE5B,EAAA,IAAAG,UAAA,GACEb,cAAQ,CAACF,gBAAgB,GAAG,CAAC,CAAC;IAAAgB,UAAA,GAAAZ,4BAAA,CAAAW,UAAA,EAAA,CAAA,CAAA;AADzBE,IAAAA,6BAA6B,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,gCAAgC,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAGtE,EAAA,IAAM5C,SAAS,GAAGN,sBAAsB,CAAC4B,aAAa,CAAC,CAAA;AAEvD,EAAA,IAAMyB,6BAA6B,GAAG,SAAhCA,6BAA6BA,CAAGC,CAAC,EAAI;AACzC,IAAA,IAAMlC,KAAK,GAAGkC,CAAC,CAACC,MAAM,CAACC,KAAK,CAAA;AAC5B,IAAA,IAAIrC,aAAa,CAACC,KAAK,CAAC,EAAE;MACxB4B,WAAW,CAAC5B,KAAK,CAAC,CAAA;AACpB,KAAA;GACD,CAAA;AAED,EAAA,IAAMqC,gBAAgB,GAAG,SAAnBA,gBAAgBA,GAAS;AAC7B,IAAA,IAAIpD,aAAa,GAAGI,SAAS,CAACsC,QAAQ,CAAC,CAAA;IACvC,IAAI1C,aAAa,GAAGuB,aAAa,EAAE;AACjCvB,MAAAA,aAAa,GAAGuB,aAAa,CAAA;AAC/B,KAAA;IACAgB,sBAAsB,CAACvC,aAAa,CAAC,CAAA;AACrC2C,IAAAA,WAAW,CAAC5C,UAAU,CAACC,aAAa,EAAEC,SAAS,CAAC,CAAC,CAAA;GAClD,CAAA;AAED,EAAA,IAAMoD,aAAa,GAAG,SAAhBA,aAAaA,CAAGJ,CAAC,EAAI;AACzB,IAAA,IAAI,EAAEA,CAAC,CAACK,GAAG,KAAK,OAAO,CAAC,EAAE,OAAA;AAC1BF,IAAAA,gBAAgB,EAAE,CAAA;GACnB,CAAA;AAEDG,EAAAA,eAAS,CAAC,YAAM;AACd,IAAA,IAAIC,SAAG,CAAC/B,MAAM,CAAC,EAAE,OAAA;AAEjBsB,IAAAA,gCAAgC,CAAClB,gBAAgB,GAAG,CAAC,CAAC,CAAA;IACtDU,sBAAsB,CAACV,gBAAgB,GAAG,CAAC,GAAGA,gBAAgB,GAAG,CAAC,CAAC,CAAA;AACnEc,IAAAA,WAAW,CACT5C,UAAU,CAAC8B,gBAAgB,GAAG,CAAC,GAAGA,gBAAgB,GAAG,CAAC,EAAE5B,SAAS,CACnE,CAAC,CAAA;GACF,EAAE,CAACwB,MAAM,EAAExB,SAAS,EAAE4B,gBAAgB,CAAC,CAAC,CAAA;AAEzC0B,EAAAA,eAAS,CAAC,YAAM;AACd,IAAA,IAAME,WAAW,GAAGC,cAAQ,CAACpC,YAAY,EAAAqC,eAAA,CAAA,EAAA,EACnCb,6BAA6B,IAC/BR,mBAAmB,GAAG,CAAC,IAAI;AAAEsB,MAAAA,IAAI,EAAEtB,mBAAAA;AAAoB,KAAC,CAC3D,CAAC,CAAA;IAEFH,YAAY,CAACsB,WAAW,CAAC,CAAA;GAC1B,EAAE,CAACnC,YAAY,EAAEwB,6BAA6B,EAAER,mBAAmB,CAAC,CAAC,CAAA;EAEtE,oBACEuB,yBAAA,CAAAC,aAAA,CAAAD,yBAAA,CAAAE,QAAA,EAAA,IAAA,eACEF,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKE,IAAAA,SAAS,EAAC,4FAAA;AAA4F,GAAA,eACzGH,yBAAA,CAAAC,aAAA,CAACG,eAAO,EAAA;AAACC,IAAAA,OAAO,EAAEhC,SAAAA;AAAU,GAAA,eAC1B2B,yBAAA,CAAAC,aAAA,CAACK,kBAAU,EAAA;AAACH,IAAAA,SAAS,EAAC,UAAU;AAACI,IAAAA,KAAK,EAAC,OAAA;GACpClC,EAAAA,SACS,CACL,CAAC,eACV2B,yBAAA,CAAAC,aAAA,CAACO,qBAAqB,EAAA;AACpBL,IAAAA,SAAS,EAAC,eAAe;AACzBI,IAAAA,KAAK,EAAC,WAAW;AACjBjB,IAAAA,KAAK,EAAEjB,SAAAA;AAAU,GAClB,CACE,CAAC,eACN2B,yBAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKE,IAAAA,SAAS,EAAC,2BAAA;AAA2B,GAAA,eACxCH,yBAAA,CAAAC,aAAA,CAACQ,gBAAQ,EAAA;AACPC,IAAAA,OAAO,EAAEzB,6BAA8B;AACvCkB,IAAAA,SAAS,EAAC,QAAQ;AAClB,IAAA,SAAA,EAAQ,eAAe;AACvBQ,IAAAA,KAAK,EAAE5C,CAAC,CAAC,6CAA6C,CAAE;IACxD6C,QAAQ,EAAE,SAAAA,QAAAA,CAAAC,KAAA,EAAA;AAAA,MAAA,IAAaH,OAAO,GAAAG,KAAA,CAAjBxB,MAAM,CAAIqB,OAAO,CAAA;MAAA,OAC5BxB,gCAAgC,CAACwB,OAAO,CAAC,CAAA;AAAA,KAAA;AAC1C,GACF,CAAC,eACFV,yBAAA,CAAAC,aAAA,CAACa,aAAK,EAAA;AACJX,IAAAA,SAAS,EAAC,MAAM;AAChB,IAAA,SAAA,EAAQ,YAAY;AACpBY,IAAAA,QAAQ,EAAEpB,SAAG,CAACV,6BAA6B,CAAE;AAC7C+B,IAAAA,WAAW,EAAE5E,SAAS,GAAG,UAAU,GAAG,OAAQ;AAC9CkD,IAAAA,KAAK,EAAET,QAAS;AAChBoC,IAAAA,MAAM,EAAE1B,gBAAiB;AACzBqB,IAAAA,QAAQ,EAAEzB,6BAA8B;AACxC+B,IAAAA,SAAS,EAAE1B,aAAAA;GACZ,CACE,CACL,CAAC,CAAA;AAEP,CAAC;;;;;ACvGD,IAAM2B,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAA3D,IAAA,EAQlB;AAAA,EAAA,IAPJC,YAAY,GAAAD,IAAA,CAAZC,YAAY;IACZC,aAAa,GAAAF,IAAA,CAAbE,aAAa;IACbC,mBAAmB,GAAAH,IAAA,CAAnBG,mBAAmB;IACnBC,MAAM,GAAAJ,IAAA,CAANI,MAAM;IACNwD,OAAO,GAAA5D,IAAA,CAAP4D,OAAO;IAAAC,cAAA,GAAA7D,IAAA,CACP8D,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,cAAA;AACdE,IAAAA,UAAU,GAAAC,gDAAA,CAAAhE,IAAA,EAAAiE,SAAA,CAAA,CAAA;AAEb,EAAA,IAAA5D,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC,CAAA;EAET,oBACEiC,yBAAA,CAAAC,aAAA,CAACyB,YAAI,EAAAC,iBAAA,KAAA7B,aAAA,CAAA;AACGlC,IAAAA,MAAM,EAANA,MAAM;AAAEwD,IAAAA,OAAO,EAAPA,OAAAA;AAAO,GAAA,EAAKG,UAAU,CAAA,EAAA;AACpC,IAAA,SAAA,EAAQ,YAAY;AACpBK,IAAAA,IAAI,EAAC,OAAA;AAAO,GAAA,CAAA,eAEZ5B,yBAAA,CAAAC,aAAA,CAACyB,YAAI,CAACG,MAAM,EAAA,IAAA,eACV7B,yBAAA,CAAAC,aAAA,CAACK,kBAAU,EAAA;AAACC,IAAAA,KAAK,EAAC,IAAA;AAAI,GAAA,EACnBxC,CAAC,CAAC,qCAAqC,CAC9B,CACD,CAAC,eACdiC,yBAAA,CAAAC,aAAA,CAACyB,YAAI,CAACI,IAAI,EAAA;AAAC3B,IAAAA,SAAS,EAAC,yBAAA;AAAyB,GAAA,EAC3CmB,SAAS,gBACRtB,yBAAA,CAAAC,aAAA,CAAC8B,eAAO,EAAA;AAAC5B,IAAAA,SAAS,EAAC,SAAA;AAAS,GAAE,CAAC,gBAE/BH,yBAAA,CAAAC,aAAA,CAAC1C,aAAa,EAAA;AACNI,IAAAA,mBAAmB,EAAnBA,mBAAmB;AAAEC,IAAAA,MAAM,EAANA,MAAM;AAAEH,IAAAA,YAAY,EAAZA,YAAY;AAAEC,IAAAA,aAAa,EAAbA,aAAAA;GAClD,CAEM,CACP,CAAC,CAAA;AAEX;;;;"}
@@ -0,0 +1,348 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var neetoIcons = require('@bigbinary/neeto-icons');
5
+ var neetoui = require('@bigbinary/neetoui');
6
+ var formik$1 = require('@bigbinary/neetoui/formik');
7
+ var reactI18next = require('react-i18next');
8
+ var EmailPreview = require('./EmailPreview.js');
9
+ var classnames = require('classnames');
10
+ var formik = require('formik');
11
+ var SendToFields = require('./SendToFields.js');
12
+ var toConsumableArray = require('./toConsumableArray-9abb3858.js');
13
+ var neetoEditor = require('@bigbinary/neeto-editor');
14
+ var _extends = require('./extends-1b35a664.js');
15
+ var slicedToArray = require('./slicedToArray-f320d9e7.js');
16
+ var objectWithoutProperties = require('./objectWithoutProperties-2fed2d7d.js');
17
+ var defineProperty = require('./defineProperty-886ed289.js');
18
+ var dayjs = require('dayjs');
19
+ var i18next = require('i18next');
20
+ require('@bigbinary/neeto-cist');
21
+ require('papaparse');
22
+ var ramda = require('ramda');
23
+ var yup = require('yup');
24
+ require('@bigbinary/neeto-commons-frontend/react-utils/withT');
25
+ require('./index-248c4f4c.js');
26
+ require('react-dropzone');
27
+
28
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
29
+
30
+ function _interopNamespace(e) {
31
+ if (e && e.__esModule) return e;
32
+ var n = Object.create(null);
33
+ if (e) {
34
+ Object.keys(e).forEach(function (k) {
35
+ if (k !== 'default') {
36
+ var d = Object.getOwnPropertyDescriptor(e, k);
37
+ Object.defineProperty(n, k, d.get ? d : {
38
+ enumerable: true,
39
+ get: function () { return e[k]; }
40
+ });
41
+ }
42
+ });
43
+ }
44
+ n["default"] = e;
45
+ return Object.freeze(n);
46
+ }
47
+
48
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
49
+ var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
50
+ var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
51
+ var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
52
+
53
+ var INITIAL_VALUES = {
54
+ sendFromEmail: "",
55
+ replyToEmail: "",
56
+ notifyEmails: [],
57
+ emailSubject: "",
58
+ emailBody: "",
59
+ isSendLaterEnabled: false,
60
+ sendEmailDatetime: undefined,
61
+ category: "email_share",
62
+ actionButtonText: ""
63
+ };
64
+ var EDITOR_ADDONS = ["emoji", "block-quote", "image-upload", "divider"];
65
+
66
+ var EmailBody = function EmailBody(_ref, ref) {
67
+ var id = _ref.id,
68
+ showVideoEmbedInEditor = _ref.showVideoEmbedInEditor;
69
+ var _useTranslation = reactI18next.useTranslation(),
70
+ t = _useTranslation.t;
71
+ return /*#__PURE__*/React__default["default"].createElement(neetoEditor.FormikEditor, {
72
+ required: true,
73
+ className: "mb-6",
74
+ "data-cy": "email-body",
75
+ id: id,
76
+ label: t("neetoMolecules.shareViaEmail.emailBody"),
77
+ name: "emailBody",
78
+ ref: ref,
79
+ addons: showVideoEmbedInEditor ? [].concat(toConsumableArray._toConsumableArray(EDITOR_ADDONS), ["video-embed"]) : EDITOR_ADDONS
80
+ });
81
+ };
82
+ var EmailBody$1 = /*#__PURE__*/React.forwardRef(EmailBody);
83
+
84
+ 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; }
85
+ 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._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; }
86
+ var isPastDate = function isPastDate(date) {
87
+ return dayjs__default["default"](date).isBefore(dayjs__default["default"]().subtract(1, "days"));
88
+ };
89
+ var generateInitialValues = function generateInitialValues(defaultValues) {
90
+ return _objectSpread(_objectSpread({}, INITIAL_VALUES), defaultValues);
91
+ };
92
+ var emailFormValidationSchema = function emailFormValidationSchema(disableReplyTo) {
93
+ return yup__namespace.object().shape({
94
+ emailSubject: yup__namespace.string().required(i18next.t("neetoMolecules.shareViaEmail.validations.requiredField.subject")),
95
+ emailBody: yup__namespace.string().test("emailBody", i18next.t("neetoMolecules.shareViaEmail.validations.requiredField.emailBody"), function (value) {
96
+ return !neetoEditor.isEditorEmpty(value);
97
+ }),
98
+ sendFromEmail: yup__namespace.string().trim().email(i18next.t("neetoMolecules.shareViaEmail.validations.invalidField.emailAddress")).required(i18next.t("neetoMolecules.shareViaEmail.validations.requiredField.sendFrom")),
99
+ replyToEmail: !disableReplyTo && yup__namespace.string().trim().email(i18next.t("neetoMolecules.shareViaEmail.validations.invalidField.emailAddress")).required(i18next.t("neetoMolecules.shareViaEmail.validations.requiredField.replyTo")),
100
+ notifyEmails: yup__namespace.array().min(1, i18next.t("neetoMolecules.shareViaEmail.validations.atleastOneIsRequired.emailAddress")).test("are-all-emails-valid", i18next.t("neetoMolecules.shareViaEmail.validations.invalidField.emailAddress"), function (emails) {
101
+ return emails.every(ramda.prop("valid"));
102
+ }),
103
+ isSendLaterEnabled: yup__namespace["boolean"](),
104
+ sendEmailDatetime: yup__namespace.date().when("isSendLaterEnabled", {
105
+ is: true,
106
+ then: yup__namespace.date().required(i18next.t("neetoMolecules.shareViaEmail.validations.requiredField.sendLater"))
107
+ }),
108
+ name: yup__namespace.string(),
109
+ actionButtonText: yup__namespace.string().required(i18next.t("neetoMolecules.shareViaEmail.validations.requiredField.startButtonText"))
110
+ });
111
+ };
112
+ var disabledTime = function disabledTime(selectedDate) {
113
+ var current = selectedDate ? dayjs__default["default"](selectedDate).startOf("day") : null;
114
+ if (!current) return {};
115
+ var today = dayjs__default["default"]().startOf("day");
116
+ var isAfterToday = current.isAfter(today, "day");
117
+ var isBeforeToday = current.isBefore(today, "day");
118
+ if (isAfterToday) {
119
+ return {
120
+ minTime: null,
121
+ maxTime: null
122
+ };
123
+ } else if (isBeforeToday) {
124
+ return {
125
+ minTime: "0:00",
126
+ maxTime: "24:00"
127
+ };
128
+ }
129
+
130
+ // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats
131
+ var currentTime = dayjs__default["default"]().format("HH:mm");
132
+ var endOfDay = "23:59";
133
+ return {
134
+ minTime: currentTime,
135
+ maxTime: endOfDay
136
+ };
137
+ };
138
+
139
+ var _excluded = ["name", "disabledDate"];
140
+ var FormikDatePicker = function FormikDatePicker(_ref) {
141
+ var name = _ref.name,
142
+ disabledDate = _ref.disabledDate,
143
+ props = objectWithoutProperties._objectWithoutProperties(_ref, _excluded);
144
+ var _useField = formik.useField(name),
145
+ _useField2 = slicedToArray._slicedToArray(_useField, 3),
146
+ field = _useField2[0],
147
+ meta = _useField2[1],
148
+ _useField2$ = _useField2[2],
149
+ setValue = _useField2$.setValue,
150
+ setTouched = _useField2$.setTouched;
151
+ var disabledTimeFrame = React.useMemo(function () {
152
+ return disabledTime(field === null || field === void 0 ? void 0 : field.value);
153
+ }, [field === null || field === void 0 ? void 0 : field.value]);
154
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.DateTimePicker, _extends._extends({}, field, meta, {
155
+ timePickerProps: disabledTimeFrame,
156
+ datePickerProps: {
157
+ disabledDate: disabledDate,
158
+ "data-cy": props["data-cy"],
159
+ "data-testid": props["data-testid"]
160
+ },
161
+ onBlur: function onBlur(date) {
162
+ setValue(date || undefined);
163
+ setTouched(true);
164
+ },
165
+ onChange: function onChange(date) {
166
+ setValue(date || undefined);
167
+ setTouched(true);
168
+ }
169
+ }, props));
170
+ };
171
+
172
+ var Form = function Form(_ref) {
173
+ var showSendFromField = _ref.showSendFromField,
174
+ disableReplyTo = _ref.disableReplyTo,
175
+ showVideoEmbedInEditor = _ref.showVideoEmbedInEditor,
176
+ children = _ref.children;
177
+ var _useFormikContext = formik.useFormikContext(),
178
+ values = _useFormikContext.values,
179
+ initialValues = _useFormikContext.initialValues;
180
+ var editorRef = React.useRef();
181
+ var _useTranslation = reactI18next.useTranslation(),
182
+ t = _useTranslation.t;
183
+ var handleReset = function handleReset() {
184
+ return editorRef.current.editor.commands.setContent(initialValues.emailBody);
185
+ };
186
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
187
+ className: "space-y-4"
188
+ }, /*#__PURE__*/React__default["default"].createElement(SendToFields, {
189
+ showUploadCsvButton: true,
190
+ emailInputProps: {
191
+ label: t("neetoMolecules.shareViaEmail.sendTo"),
192
+ name: "notifyEmails",
193
+ required: true
194
+ }
195
+ }), /*#__PURE__*/React__default["default"].createElement(formik$1.Input, {
196
+ required: true,
197
+ className: "col-span-1",
198
+ label: t("neetoMolecules.shareViaEmail.subject"),
199
+ name: "emailSubject"
200
+ }), /*#__PURE__*/React__default["default"].createElement(EmailBody$1, {
201
+ showVideoEmbedInEditor: showVideoEmbedInEditor,
202
+ id: "emailBody",
203
+ ref: editorRef
204
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
205
+ ref: editorRef
206
+ }), /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement(neetoui.Label, {
207
+ className: "flex items-center gap-2"
208
+ }, /*#__PURE__*/React__default["default"].createElement(formik$1.Switch, {
209
+ "data-cy": "send-later-switch",
210
+ "data-testid": "send-later-switch",
211
+ name: "isSendLaterEnabled"
212
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
213
+ component: "span",
214
+ "data-cy": "send-later-label",
215
+ lineHeight: "normal",
216
+ style: "h4",
217
+ weight: "semibold"
218
+ }, t("neetoMolecules.shareViaEmail.sendLater")))), values.isSendLaterEnabled && /*#__PURE__*/React__default["default"].createElement(FormikDatePicker, {
219
+ autoFocus: true,
220
+ "data-cy": "email-share-date-input",
221
+ "data-testid": "formik-date-picker",
222
+ disabledDate: isPastDate,
223
+ name: "sendEmailDatetime",
224
+ size: "large"
225
+ }), /*#__PURE__*/React__default["default"].createElement(formik$1.Input, {
226
+ required: true,
227
+ label: t("neetoMolecules.shareViaEmail.startButtonText"),
228
+ name: "actionButtonText"
229
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
230
+ className: "flex flex-col gap-4 sm:flex-row sm:gap-6"
231
+ }, showSendFromField && /*#__PURE__*/React__default["default"].createElement(formik$1.Input, {
232
+ required: true,
233
+ className: classnames__default["default"]({
234
+ "w-full flex-grow-0": !disableReplyTo
235
+ }),
236
+ "data-testid": "neeto-molecules-share-via-email-send-from",
237
+ label: t("neetoMolecules.shareViaEmail.sendFrom"),
238
+ name: "sendFromEmail"
239
+ }), !disableReplyTo && /*#__PURE__*/React__default["default"].createElement(formik$1.Input, {
240
+ required: true,
241
+ "data-testid": "replyTo-field",
242
+ label: t("neetoMolecules.shareViaEmail.replyTo"),
243
+ name: "replyToEmail",
244
+ className: classnames__default["default"]({
245
+ "w-full flex-grow-0": showSendFromField
246
+ })
247
+ }))), children && /*#__PURE__*/React__default["default"].createElement("div", {
248
+ className: "neeto-ui-border-gray-300 mt-4 border-t py-4"
249
+ }, /*#__PURE__*/React__default["default"].createElement("h3", {
250
+ className: "mb-4"
251
+ }, t("neetoMolecules.shareViaEmail.additionalOptions")), children), /*#__PURE__*/React__default["default"].createElement("div", {
252
+ className: "mt-6"
253
+ }, /*#__PURE__*/React__default["default"].createElement(formik$1.ActionBlock, {
254
+ cancelButtonProps: {
255
+ label: t("neetoMolecules.shareViaEmail.reset"),
256
+ type: "reset",
257
+ onClick: handleReset
258
+ },
259
+ submitButtonProps: {
260
+ label: t("neetoMolecules.shareViaEmail.sendEmail")
261
+ }
262
+ })));
263
+ };
264
+
265
+ var ShareViaEmail = function ShareViaEmail(_ref) {
266
+ var _ref$showSendFromFiel = _ref.showSendFromField,
267
+ showSendFromField = _ref$showSendFromFiel === void 0 ? false : _ref$showSendFromFiel,
268
+ backToUrl = _ref.backToUrl,
269
+ handleSubmit = _ref.handleSubmit,
270
+ children = _ref.children,
271
+ description = _ref.description,
272
+ defaultValues = _ref.defaultValues,
273
+ disableReplyTo = _ref.disableReplyTo,
274
+ productName = _ref.productName,
275
+ showVideoEmbedInEditor = _ref.showVideoEmbedInEditor,
276
+ _ref$title = _ref.title,
277
+ title = _ref$title === void 0 ? "" : _ref$title;
278
+ var _useTranslation = reactI18next.useTranslation(),
279
+ t = _useTranslation.t;
280
+ var shareViaEmailTitle = title || t("neetoMolecules.shareViaEmail.title");
281
+ var sendToEmails = function sendToEmails(notifyEmails) {
282
+ return notifyEmails.map(function (email) {
283
+ return email === null || email === void 0 ? void 0 : email.value;
284
+ });
285
+ };
286
+ return /*#__PURE__*/React__default["default"].createElement("div", {
287
+ className: "neeto-ui-bg-gray-100 flex w-full flex-1 flex-col p-6 md:p-8"
288
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
289
+ className: "mx-auto flex w-full max-w-7xl flex-col"
290
+ }, /*#__PURE__*/React__default["default"].createElement(formik$1.Form, {
291
+ scrollToErrorField: true,
292
+ formProps: {
293
+ noValidate: true
294
+ },
295
+ formikProps: {
296
+ enableReinitialize: true,
297
+ validateOnMount: true,
298
+ initialValues: generateInitialValues(defaultValues),
299
+ validationSchema: emailFormValidationSchema(disableReplyTo),
300
+ onSubmit: handleSubmit
301
+ }
302
+ }, function (_ref2) {
303
+ var values = _ref2.values;
304
+ return /*#__PURE__*/React__default["default"].createElement("div", {
305
+ className: "grid grid-cols-1 gap-8 md:grid-cols-12"
306
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
307
+ className: "col-span-1 md:col-span-6 lg:col-span-5"
308
+ }, backToUrl && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
309
+ className: "mb-4",
310
+ "data-testid": "back-to-url-button",
311
+ icon: neetoIcons.LeftArrow,
312
+ iconPosition: "left",
313
+ label: t("neetoMolecules.shareViaEmail.backToShare"),
314
+ size: "small",
315
+ style: "link",
316
+ to: backToUrl
317
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
318
+ className: "mb-6"
319
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
320
+ className: "mb-0.5 break-words",
321
+ "data-cy": "share-via-email-heading",
322
+ lineHeight: "normal",
323
+ style: "h2",
324
+ weight: "semibold"
325
+ }, shareViaEmailTitle), description && /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
326
+ className: "neeto-ui-text-gray-700",
327
+ "data-cy": "share-via-email-sub-heading",
328
+ lineHeight: "normal",
329
+ style: "body2"
330
+ }, description)), /*#__PURE__*/React__default["default"].createElement(Form, {
331
+ disableReplyTo: disableReplyTo,
332
+ showSendFromField: showSendFromField,
333
+ showVideoEmbedInEditor: showVideoEmbedInEditor
334
+ }, children)), /*#__PURE__*/React__default["default"].createElement("div", {
335
+ className: "col-span-1 md:col-span-6 lg:col-span-7"
336
+ }, /*#__PURE__*/React__default["default"].createElement(EmailPreview, {
337
+ productName: productName,
338
+ actionButtonText: values.actionButtonText,
339
+ body: values.emailBody,
340
+ className: "sticky pt-1 md:mt-28",
341
+ subject: values.emailSubject,
342
+ to: sendToEmails(values.notifyEmails)
343
+ })));
344
+ })));
345
+ };
346
+
347
+ module.exports = ShareViaEmail;
348
+ //# sourceMappingURL=ShareViaEmail.js.map