@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,199 @@
1
+ 'use strict';
2
+
3
+ var _extends = require('@babel/runtime/helpers/extends');
4
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
5
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
6
+ var React = require('react');
7
+ var neetoui = require('@bigbinary/neetoui');
8
+ var reactI18next = require('react-i18next');
9
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
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 _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
21
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
22
+ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
23
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
24
+ var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
25
+
26
+ var ONE_SECOND = 1;
27
+ var ONE_MINUTE = 60 * ONE_SECOND;
28
+ var ONE_HOUR = 60 * ONE_MINUTE;
29
+
30
+ var padZero = function padZero(number) {
31
+ var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
32
+ var string = String(number);
33
+ var threshold = Math.pow(10, length - 1);
34
+ if (number < threshold) {
35
+ while (String(threshold).length > string.length) {
36
+ string = "0".concat(number);
37
+ }
38
+ }
39
+ return string;
40
+ };
41
+ var shouldRenderHoursInput = function shouldRenderHoursInput(duration) {
42
+ var hours = Math.floor(duration / ONE_HOUR);
43
+ return hours > 0;
44
+ };
45
+ var formatTime = function formatTime(timeInSeconds, showHours) {
46
+ var hours = Math.floor(timeInSeconds / ONE_HOUR);
47
+ var minutes = Math.floor(timeInSeconds % ONE_HOUR / ONE_MINUTE);
48
+ var seconds = timeInSeconds % ONE_MINUTE;
49
+ return showHours ? "".concat(padZero(hours), ":").concat(padZero(minutes), ":").concat(padZero(seconds)) : "".concat(padZero(minutes), ":").concat(padZero(seconds));
50
+ };
51
+ var parseTime = function parseTime(timeString) {
52
+ var parts = timeString.split(":").map(function (part) {
53
+ return part === "" ? NaN : parseInt(part, 10);
54
+ });
55
+ if (parts.some(isNaN) || parts.length > 3) {
56
+ return 0;
57
+ }
58
+ if (parts.length === 1) {
59
+ return parts[0];
60
+ } else if (parts.length === 2) {
61
+ return parts[0] * ONE_MINUTE + parts[1];
62
+ } else if (parts.length === 3) {
63
+ return parts[0] * ONE_HOUR + parts[1] * ONE_MINUTE + parts[2];
64
+ }
65
+ return 0;
66
+ };
67
+ var validateInput = function validateInput(input) {
68
+ var regex = /^[0-9:]{0,8}$/;
69
+ var colons = (input.match(/:/g) || []).length;
70
+ return regex.test(input) && colons <= 2;
71
+ };
72
+
73
+ 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; }
74
+ 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; }
75
+ var SharePaneBody = function SharePaneBody(_ref) {
76
+ var recordingUrl = _ref.recordingUrl,
77
+ totalDuration = _ref.totalDuration,
78
+ getCurrentTimestamp = _ref.getCurrentTimestamp,
79
+ isOpen = _ref.isOpen;
80
+ var _useTranslation = reactI18next.useTranslation(),
81
+ t = _useTranslation.t;
82
+ var currentTimestamp = getCurrentTimestamp();
83
+ var _useState = React.useState(""),
84
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
85
+ shareLink = _useState2[0],
86
+ setShareLink = _useState2[1];
87
+ var _useState3 = React.useState(currentTimestamp),
88
+ _useState4 = _slicedToArray__default["default"](_useState3, 2),
89
+ currentPlaybackTime = _useState4[0],
90
+ setCurrentPlaybackTime = _useState4[1];
91
+ var _useState5 = React.useState(""),
92
+ _useState6 = _slicedToArray__default["default"](_useState5, 2),
93
+ rawInput = _useState6[0],
94
+ setRawInput = _useState6[1];
95
+ var _useState7 = React.useState(currentTimestamp > 0),
96
+ _useState8 = _slicedToArray__default["default"](_useState7, 2),
97
+ isPlaybackTimeCheckboxChecked = _useState8[0],
98
+ setIsPlaybackTimeCheckboxChecked = _useState8[1];
99
+ var showHours = shouldRenderHoursInput(totalDuration);
100
+ var handlePlaybackTimestampChange = function handlePlaybackTimestampChange(e) {
101
+ var input = e.target.value;
102
+ if (validateInput(input)) {
103
+ setRawInput(input);
104
+ }
105
+ };
106
+ var formatAndSetTime = function formatAndSetTime() {
107
+ var timeInSeconds = parseTime(rawInput);
108
+ if (timeInSeconds > totalDuration) {
109
+ timeInSeconds = totalDuration;
110
+ }
111
+ setCurrentPlaybackTime(timeInSeconds);
112
+ setRawInput(formatTime(timeInSeconds, showHours));
113
+ };
114
+ var handleKeyDown = function handleKeyDown(e) {
115
+ if (!(e.key === "Enter")) return;
116
+ formatAndSetTime();
117
+ };
118
+ React.useEffect(function () {
119
+ if (ramda.not(isOpen)) return;
120
+ setIsPlaybackTimeCheckboxChecked(currentTimestamp > 0);
121
+ setCurrentPlaybackTime(currentTimestamp > 0 ? currentTimestamp : 0);
122
+ setRawInput(formatTime(currentTimestamp > 0 ? currentTimestamp : 0, showHours));
123
+ }, [isOpen, showHours, currentTimestamp]);
124
+ React.useEffect(function () {
125
+ var playbackUrl = utils.buildUrl(recordingUrl, _objectSpread$1({}, isPlaybackTimeCheckboxChecked && currentPlaybackTime > 0 && {
126
+ time: currentPlaybackTime
127
+ }));
128
+ setShareLink(playbackUrl);
129
+ }, [recordingUrl, isPlaybackTimeCheckboxChecked, currentPlaybackTime]);
130
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
131
+ className: "neeto-ui-bg-gray-100 neeto-ui-rounded-lg mb-3 flex w-full items-center justify-between p-2"
132
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, {
133
+ content: shareLink
134
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
135
+ className: "truncate",
136
+ style: "body2"
137
+ }, shareLink)), /*#__PURE__*/React__default["default"].createElement(CopyToClipboardButton, {
138
+ className: "flex-shrink-0",
139
+ style: "secondary",
140
+ value: shareLink
141
+ })), /*#__PURE__*/React__default["default"].createElement("div", {
142
+ className: "flex items-center gap-x-2"
143
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Checkbox, {
144
+ checked: isPlaybackTimeCheckboxChecked,
145
+ className: "grow-0",
146
+ "data-cy": "time-checkbox",
147
+ label: t("neetoMolecules.shareRecording.checkboxLabel"),
148
+ onChange: function onChange(_ref2) {
149
+ var checked = _ref2.target.checked;
150
+ return setIsPlaybackTimeCheckboxChecked(checked);
151
+ }
152
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Input, {
153
+ className: "w-40",
154
+ "data-cy": "time-input",
155
+ disabled: ramda.not(isPlaybackTimeCheckboxChecked),
156
+ placeholder: showHours ? "HH:MM:SS" : "MM:SS",
157
+ value: rawInput,
158
+ onBlur: formatAndSetTime,
159
+ onChange: handlePlaybackTimestampChange,
160
+ onKeyDown: handleKeyDown
161
+ })));
162
+ };
163
+
164
+ var _excluded = ["recordingUrl", "totalDuration", "getCurrentTimestamp", "isOpen", "onClose", "isLoading"];
165
+ 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; }
166
+ 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; }
167
+ var ShareRecordingPane = function ShareRecordingPane(_ref) {
168
+ var recordingUrl = _ref.recordingUrl,
169
+ totalDuration = _ref.totalDuration,
170
+ getCurrentTimestamp = _ref.getCurrentTimestamp,
171
+ isOpen = _ref.isOpen,
172
+ onClose = _ref.onClose,
173
+ _ref$isLoading = _ref.isLoading,
174
+ isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
175
+ otherProps = _objectWithoutProperties__default["default"](_ref, _excluded);
176
+ var _useTranslation = reactI18next.useTranslation(),
177
+ t = _useTranslation.t;
178
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Pane, _extends__default["default"]({}, _objectSpread({
179
+ isOpen: isOpen,
180
+ onClose: onClose
181
+ }, otherProps), {
182
+ "data-cy": "share-pane",
183
+ size: "large"
184
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Header, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
185
+ style: "h2"
186
+ }, t("neetoMolecules.shareRecording.title"))), /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Body, {
187
+ className: "flex flex-col space-y-2"
188
+ }, isLoading ? /*#__PURE__*/React__default["default"].createElement(neetoui.Spinner, {
189
+ className: "mx-auto"
190
+ }) : /*#__PURE__*/React__default["default"].createElement(SharePaneBody, {
191
+ getCurrentTimestamp: getCurrentTimestamp,
192
+ isOpen: isOpen,
193
+ recordingUrl: recordingUrl,
194
+ totalDuration: totalDuration
195
+ })));
196
+ };
197
+
198
+ module.exports = ShareRecordingPane;
199
+ //# 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":"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"}
@@ -0,0 +1,353 @@
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('@babel/runtime/helpers/toConsumableArray');
13
+ var neetoEditor = require('@bigbinary/neeto-editor');
14
+ var _extends = require('@babel/runtime/helpers/extends');
15
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
16
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
17
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
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 _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
51
+ var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
52
+ var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
53
+ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
54
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
55
+ var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
56
+ var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
57
+
58
+ var INITIAL_VALUES = {
59
+ sendFromEmail: "",
60
+ replyToEmail: "",
61
+ notifyEmails: [],
62
+ emailSubject: "",
63
+ emailBody: "",
64
+ isSendLaterEnabled: false,
65
+ sendEmailDatetime: undefined,
66
+ category: "email_share",
67
+ actionButtonText: ""
68
+ };
69
+ var EDITOR_ADDONS = ["emoji", "block-quote", "image-upload", "divider"];
70
+
71
+ var EmailBody = function EmailBody(_ref, ref) {
72
+ var id = _ref.id,
73
+ showVideoEmbedInEditor = _ref.showVideoEmbedInEditor;
74
+ var _useTranslation = reactI18next.useTranslation(),
75
+ t = _useTranslation.t;
76
+ return /*#__PURE__*/React__default["default"].createElement(neetoEditor.FormikEditor, {
77
+ required: true,
78
+ className: "mb-6",
79
+ "data-cy": "email-body",
80
+ id: id,
81
+ label: t("neetoMolecules.shareViaEmail.emailBody"),
82
+ name: "emailBody",
83
+ ref: ref,
84
+ addons: showVideoEmbedInEditor ? [].concat(_toConsumableArray__default["default"](EDITOR_ADDONS), ["video-embed"]) : EDITOR_ADDONS
85
+ });
86
+ };
87
+ var EmailBody$1 = /*#__PURE__*/React.forwardRef(EmailBody);
88
+
89
+ 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; }
90
+ 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; }
91
+ var isPastDate = function isPastDate(date) {
92
+ return dayjs__default["default"](date).isBefore(dayjs__default["default"]().subtract(1, "days"));
93
+ };
94
+ var generateInitialValues = function generateInitialValues(defaultValues) {
95
+ return _objectSpread(_objectSpread({}, INITIAL_VALUES), defaultValues);
96
+ };
97
+ var emailFormValidationSchema = function emailFormValidationSchema(disableReplyTo) {
98
+ return yup__namespace.object().shape({
99
+ emailSubject: yup__namespace.string().required(i18next.t("neetoMolecules.shareViaEmail.validations.requiredField.subject")),
100
+ emailBody: yup__namespace.string().test("emailBody", i18next.t("neetoMolecules.shareViaEmail.validations.requiredField.emailBody"), function (value) {
101
+ return !neetoEditor.isEditorEmpty(value);
102
+ }),
103
+ sendFromEmail: yup__namespace.string().trim().email(i18next.t("neetoMolecules.shareViaEmail.validations.invalidField.emailAddress")).required(i18next.t("neetoMolecules.shareViaEmail.validations.requiredField.sendFrom")),
104
+ replyToEmail: !disableReplyTo && yup__namespace.string().trim().email(i18next.t("neetoMolecules.shareViaEmail.validations.invalidField.emailAddress")).required(i18next.t("neetoMolecules.shareViaEmail.validations.requiredField.replyTo")),
105
+ 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) {
106
+ return emails.every(ramda.prop("valid"));
107
+ }),
108
+ isSendLaterEnabled: yup__namespace["boolean"](),
109
+ sendEmailDatetime: yup__namespace.date().when("isSendLaterEnabled", {
110
+ is: true,
111
+ then: yup__namespace.date().required(i18next.t("neetoMolecules.shareViaEmail.validations.requiredField.sendLater"))
112
+ }),
113
+ name: yup__namespace.string(),
114
+ actionButtonText: yup__namespace.string().required(i18next.t("neetoMolecules.shareViaEmail.validations.requiredField.startButtonText"))
115
+ });
116
+ };
117
+ var disabledTime = function disabledTime(selectedDate) {
118
+ var current = selectedDate ? dayjs__default["default"](selectedDate).startOf("day") : null;
119
+ if (!current) return {};
120
+ var today = dayjs__default["default"]().startOf("day");
121
+ var isAfterToday = current.isAfter(today, "day");
122
+ var isBeforeToday = current.isBefore(today, "day");
123
+ if (isAfterToday) {
124
+ return {
125
+ minTime: null,
126
+ maxTime: null
127
+ };
128
+ } else if (isBeforeToday) {
129
+ return {
130
+ minTime: "0:00",
131
+ maxTime: "24:00"
132
+ };
133
+ }
134
+
135
+ // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats
136
+ var currentTime = dayjs__default["default"]().format("HH:mm");
137
+ var endOfDay = "23:59";
138
+ return {
139
+ minTime: currentTime,
140
+ maxTime: endOfDay
141
+ };
142
+ };
143
+
144
+ var _excluded = ["name", "disabledDate"];
145
+ var FormikDatePicker = function FormikDatePicker(_ref) {
146
+ var name = _ref.name,
147
+ disabledDate = _ref.disabledDate,
148
+ props = _objectWithoutProperties__default["default"](_ref, _excluded);
149
+ var _useField = formik.useField(name),
150
+ _useField2 = _slicedToArray__default["default"](_useField, 3),
151
+ field = _useField2[0],
152
+ meta = _useField2[1],
153
+ _useField2$ = _useField2[2],
154
+ setValue = _useField2$.setValue,
155
+ setTouched = _useField2$.setTouched;
156
+ var disabledTimeFrame = React.useMemo(function () {
157
+ return disabledTime(field === null || field === void 0 ? void 0 : field.value);
158
+ }, [field === null || field === void 0 ? void 0 : field.value]);
159
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.DateTimePicker, _extends__default["default"]({}, field, meta, {
160
+ timePickerProps: disabledTimeFrame,
161
+ datePickerProps: {
162
+ disabledDate: disabledDate,
163
+ "data-cy": props["data-cy"],
164
+ "data-testid": props["data-testid"]
165
+ },
166
+ onBlur: function onBlur(date) {
167
+ setValue(date || undefined);
168
+ setTouched(true);
169
+ },
170
+ onChange: function onChange(date) {
171
+ setValue(date || undefined);
172
+ setTouched(true);
173
+ }
174
+ }, props));
175
+ };
176
+
177
+ var Form = function Form(_ref) {
178
+ var showSendFromField = _ref.showSendFromField,
179
+ disableReplyTo = _ref.disableReplyTo,
180
+ showVideoEmbedInEditor = _ref.showVideoEmbedInEditor,
181
+ children = _ref.children;
182
+ var _useFormikContext = formik.useFormikContext(),
183
+ values = _useFormikContext.values,
184
+ initialValues = _useFormikContext.initialValues;
185
+ var editorRef = React.useRef();
186
+ var _useTranslation = reactI18next.useTranslation(),
187
+ t = _useTranslation.t;
188
+ var handleReset = function handleReset() {
189
+ return editorRef.current.editor.commands.setContent(initialValues.emailBody);
190
+ };
191
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
192
+ className: "space-y-4"
193
+ }, /*#__PURE__*/React__default["default"].createElement(SendToFields, {
194
+ showUploadCsvButton: true,
195
+ emailInputProps: {
196
+ label: t("neetoMolecules.shareViaEmail.sendTo"),
197
+ name: "notifyEmails",
198
+ required: true
199
+ }
200
+ }), /*#__PURE__*/React__default["default"].createElement(formik$1.Input, {
201
+ required: true,
202
+ className: "col-span-1",
203
+ label: t("neetoMolecules.shareViaEmail.subject"),
204
+ name: "emailSubject"
205
+ }), /*#__PURE__*/React__default["default"].createElement(EmailBody$1, {
206
+ showVideoEmbedInEditor: showVideoEmbedInEditor,
207
+ id: "emailBody",
208
+ ref: editorRef
209
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
210
+ ref: editorRef
211
+ }), /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement(neetoui.Label, {
212
+ className: "flex items-center gap-2"
213
+ }, /*#__PURE__*/React__default["default"].createElement(formik$1.Switch, {
214
+ "data-cy": "send-later-switch",
215
+ "data-testid": "send-later-switch",
216
+ name: "isSendLaterEnabled"
217
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
218
+ component: "span",
219
+ "data-cy": "send-later-label",
220
+ lineHeight: "normal",
221
+ style: "h4",
222
+ weight: "semibold"
223
+ }, t("neetoMolecules.shareViaEmail.sendLater")))), values.isSendLaterEnabled && /*#__PURE__*/React__default["default"].createElement(FormikDatePicker, {
224
+ autoFocus: true,
225
+ "data-cy": "email-share-date-input",
226
+ "data-testid": "formik-date-picker",
227
+ disabledDate: isPastDate,
228
+ name: "sendEmailDatetime",
229
+ size: "large"
230
+ }), /*#__PURE__*/React__default["default"].createElement(formik$1.Input, {
231
+ required: true,
232
+ label: t("neetoMolecules.shareViaEmail.startButtonText"),
233
+ name: "actionButtonText"
234
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
235
+ className: "flex flex-col gap-4 sm:flex-row sm:gap-6"
236
+ }, showSendFromField && /*#__PURE__*/React__default["default"].createElement(formik$1.Input, {
237
+ required: true,
238
+ className: classnames__default["default"]({
239
+ "w-full flex-grow-0": !disableReplyTo
240
+ }),
241
+ "data-testid": "neeto-molecules-share-via-email-send-from",
242
+ label: t("neetoMolecules.shareViaEmail.sendFrom"),
243
+ name: "sendFromEmail"
244
+ }), !disableReplyTo && /*#__PURE__*/React__default["default"].createElement(formik$1.Input, {
245
+ required: true,
246
+ "data-testid": "replyTo-field",
247
+ label: t("neetoMolecules.shareViaEmail.replyTo"),
248
+ name: "replyToEmail",
249
+ className: classnames__default["default"]({
250
+ "w-full flex-grow-0": showSendFromField
251
+ })
252
+ }))), children && /*#__PURE__*/React__default["default"].createElement("div", {
253
+ className: "neeto-ui-border-gray-300 mt-4 border-t py-4"
254
+ }, /*#__PURE__*/React__default["default"].createElement("h3", {
255
+ className: "mb-4"
256
+ }, t("neetoMolecules.shareViaEmail.additionalOptions")), children), /*#__PURE__*/React__default["default"].createElement("div", {
257
+ className: "mt-6"
258
+ }, /*#__PURE__*/React__default["default"].createElement(formik$1.ActionBlock, {
259
+ cancelButtonProps: {
260
+ label: t("neetoMolecules.shareViaEmail.reset"),
261
+ type: "reset",
262
+ onClick: handleReset
263
+ },
264
+ submitButtonProps: {
265
+ label: t("neetoMolecules.shareViaEmail.sendEmail")
266
+ }
267
+ })));
268
+ };
269
+
270
+ var ShareViaEmail = function ShareViaEmail(_ref) {
271
+ var _ref$showSendFromFiel = _ref.showSendFromField,
272
+ showSendFromField = _ref$showSendFromFiel === void 0 ? false : _ref$showSendFromFiel,
273
+ backToUrl = _ref.backToUrl,
274
+ handleSubmit = _ref.handleSubmit,
275
+ children = _ref.children,
276
+ description = _ref.description,
277
+ defaultValues = _ref.defaultValues,
278
+ disableReplyTo = _ref.disableReplyTo,
279
+ productName = _ref.productName,
280
+ showVideoEmbedInEditor = _ref.showVideoEmbedInEditor,
281
+ _ref$title = _ref.title,
282
+ title = _ref$title === void 0 ? "" : _ref$title;
283
+ var _useTranslation = reactI18next.useTranslation(),
284
+ t = _useTranslation.t;
285
+ var shareViaEmailTitle = title || t("neetoMolecules.shareViaEmail.title");
286
+ var sendToEmails = function sendToEmails(notifyEmails) {
287
+ return notifyEmails.map(function (email) {
288
+ return email === null || email === void 0 ? void 0 : email.value;
289
+ });
290
+ };
291
+ return /*#__PURE__*/React__default["default"].createElement("div", {
292
+ className: "neeto-ui-bg-gray-100 flex w-full flex-1 flex-col p-6 md:p-8"
293
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
294
+ className: "mx-auto flex w-full max-w-7xl flex-col"
295
+ }, /*#__PURE__*/React__default["default"].createElement(formik$1.Form, {
296
+ scrollToErrorField: true,
297
+ formProps: {
298
+ noValidate: true
299
+ },
300
+ formikProps: {
301
+ enableReinitialize: true,
302
+ validateOnMount: true,
303
+ initialValues: generateInitialValues(defaultValues),
304
+ validationSchema: emailFormValidationSchema(disableReplyTo),
305
+ onSubmit: handleSubmit
306
+ }
307
+ }, function (_ref2) {
308
+ var values = _ref2.values;
309
+ return /*#__PURE__*/React__default["default"].createElement("div", {
310
+ className: "grid grid-cols-1 gap-8 md:grid-cols-12"
311
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
312
+ className: "col-span-1 md:col-span-6 lg:col-span-5"
313
+ }, backToUrl && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
314
+ className: "mb-4",
315
+ "data-testid": "back-to-url-button",
316
+ icon: neetoIcons.LeftArrow,
317
+ iconPosition: "left",
318
+ label: t("neetoMolecules.shareViaEmail.backToShare"),
319
+ size: "small",
320
+ style: "link",
321
+ to: backToUrl
322
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
323
+ className: "mb-6"
324
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
325
+ className: "mb-0.5 break-words",
326
+ "data-cy": "share-via-email-heading",
327
+ lineHeight: "normal",
328
+ style: "h2",
329
+ weight: "semibold"
330
+ }, shareViaEmailTitle), description && /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
331
+ className: "neeto-ui-text-gray-700",
332
+ "data-cy": "share-via-email-sub-heading",
333
+ lineHeight: "normal",
334
+ style: "body2"
335
+ }, description)), /*#__PURE__*/React__default["default"].createElement(Form, {
336
+ disableReplyTo: disableReplyTo,
337
+ showSendFromField: showSendFromField,
338
+ showVideoEmbedInEditor: showVideoEmbedInEditor
339
+ }, children)), /*#__PURE__*/React__default["default"].createElement("div", {
340
+ className: "col-span-1 md:col-span-6 lg:col-span-7"
341
+ }, /*#__PURE__*/React__default["default"].createElement(EmailPreview, {
342
+ productName: productName,
343
+ actionButtonText: values.actionButtonText,
344
+ body: values.emailBody,
345
+ className: "sticky pt-1 md:mt-28",
346
+ subject: values.emailSubject,
347
+ to: sendToEmails(values.notifyEmails)
348
+ })));
349
+ })));
350
+ };
351
+
352
+ module.exports = ShareViaEmail;
353
+ //# sourceMappingURL=ShareViaEmail.js.map