@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 @@
1
+ {"version":3,"file":"ShareViaEmail.js","sources":["../../src/components/ShareViaEmail/constants.js","../../src/components/ShareViaEmail/EmailBodyEditor.jsx","../../src/components/ShareViaEmail/utils.js","../../src/components/ShareViaEmail/FormikDatePicker.jsx","../../src/components/ShareViaEmail/Form.jsx","../../src/components/ShareViaEmail/index.jsx"],"sourcesContent":["export const ONE_MEGABYTE = 1_048_576;\n\nexport const INITIAL_VALUES = {\n sendFromEmail: \"\",\n replyToEmail: \"\",\n notifyEmails: [],\n emailSubject: \"\",\n emailBody: \"\",\n isSendLaterEnabled: false,\n sendEmailDatetime: undefined,\n category: \"email_share\",\n actionButtonText: \"\",\n};\n\nexport const EDITOR_ADDONS = [\n \"emoji\",\n \"block-quote\",\n \"image-upload\",\n \"divider\",\n];\n\nexport const ALLOWED_FILE_PICKER_TYPES = [\".csv\"];\n","import React, { forwardRef } from \"react\";\n\nimport { FormikEditor } from \"neetoeditor\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { EDITOR_ADDONS } from \"./constants\";\n\nconst EmailBody = ({ id, showVideoEmbedInEditor }, ref) => {\n const { t } = useTranslation();\n\n return (\n <FormikEditor\n required\n className=\"mb-6\"\n data-cy=\"email-body\"\n id={id}\n label={t(\"neetoMolecules.shareViaEmail.emailBody\")}\n name=\"emailBody\"\n ref={ref}\n addons={\n showVideoEmbedInEditor\n ? [...EDITOR_ADDONS, \"video-embed\"]\n : EDITOR_ADDONS\n }\n />\n );\n};\n\nexport default forwardRef(EmailBody);\n","import dayjs from \"dayjs\";\nimport { t } from \"i18next\";\nimport { isNot } from \"neetocist\";\nimport { isEditorEmpty } from \"neetoeditor\";\nimport Papa from \"papaparse\";\nimport { prop } from \"ramda\";\nimport { string } from \"yup\";\nimport * as yup from \"yup\";\n\nimport { INITIAL_VALUES } from \"./constants\";\n\nconst isValidEmail = email => string().email().isValidSync(email);\n\nexport const isPastDate = date =>\n dayjs(date).isBefore(dayjs().subtract(1, \"days\"));\n\nexport const createEmailOptions = (emails = []) =>\n emails.map(email => ({\n label: email,\n value: email,\n valid: isValidEmail(email),\n }));\n\nexport const parseCsvEmails = file =>\n new Promise(resolve => {\n Papa.parse(file, {\n header: true,\n skipEmptyLines: true,\n transformHeader: h => h.toLowerCase().replace(/\\W/g, \"\"),\n complete: results => {\n const isEmailFieldPresent = results.meta.fields?.includes(\"email\");\n if (!isEmailFieldPresent) return resolve([]);\n\n const emails = results.data\n .map(item => item.email?.trim())\n .filter(isNot(undefined));\n\n return resolve(createEmailOptions(emails));\n },\n });\n });\n\nexport const generateInitialValues = defaultValues => ({\n ...INITIAL_VALUES,\n ...defaultValues,\n});\n\nexport const emailFormValidationSchema = disableReplyTo =>\n yup.object().shape({\n emailSubject: yup\n .string()\n .required(\n t(\"neetoMolecules.shareViaEmail.validations.requiredField.subject\")\n ),\n emailBody: yup\n .string()\n .test(\n \"emailBody\",\n t(\"neetoMolecules.shareViaEmail.validations.requiredField.emailBody\"),\n value => !isEditorEmpty(value)\n ),\n sendFromEmail: yup\n .string()\n .trim()\n .email(\n t(\"neetoMolecules.shareViaEmail.validations.invalidField.emailAddress\")\n )\n .required(\n t(\"neetoMolecules.shareViaEmail.validations.requiredField.sendFrom\")\n ),\n replyToEmail:\n !disableReplyTo &&\n yup\n .string()\n .trim()\n .email(\n t(\n \"neetoMolecules.shareViaEmail.validations.invalidField.emailAddress\"\n )\n )\n .required(\n t(\"neetoMolecules.shareViaEmail.validations.requiredField.replyTo\")\n ),\n notifyEmails: yup\n .array()\n .min(\n 1,\n t(\n \"neetoMolecules.shareViaEmail.validations.atleastOneIsRequired.emailAddress\"\n )\n )\n .test(\n \"are-all-emails-valid\",\n t(\"neetoMolecules.shareViaEmail.validations.invalidField.emailAddress\"),\n emails => emails.every(prop(\"valid\"))\n ),\n isSendLaterEnabled: yup.boolean(),\n sendEmailDatetime: yup.date().when(\"isSendLaterEnabled\", {\n is: true,\n then: yup\n .date()\n .required(\n t(\"neetoMolecules.shareViaEmail.validations.requiredField.sendLater\")\n ),\n }),\n name: yup.string(),\n actionButtonText: yup\n .string()\n .required(\n t(\n \"neetoMolecules.shareViaEmail.validations.requiredField.startButtonText\"\n )\n ),\n });\n\nexport const disabledTime = selectedDate => {\n const current = selectedDate ? dayjs(selectedDate).startOf(\"day\") : null;\n\n if (!current) return {};\n\n const today = dayjs().startOf(\"day\");\n const isAfterToday = current.isAfter(today, \"day\");\n const isBeforeToday = current.isBefore(today, \"day\");\n\n if (isAfterToday) {\n return { minTime: null, maxTime: null };\n } else if (isBeforeToday) {\n return { minTime: \"0:00\", maxTime: \"24:00\" };\n }\n\n // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats\n const currentTime = dayjs().format(\"HH:mm\");\n const endOfDay = \"23:59\";\n\n return { minTime: currentTime, maxTime: endOfDay };\n};\n","import React, { useMemo } from \"react\";\n\nimport { useField } from \"formik\";\nimport { DateTimePicker } from \"neetoui\";\n\nimport { disabledTime } from \"./utils\";\n\nconst FormikDatePicker = ({ name, disabledDate, ...props }) => {\n const [field, meta, { setValue, setTouched }] = useField(name);\n\n const disabledTimeFrame = useMemo(\n () => disabledTime(field?.value),\n [field?.value]\n );\n\n return (\n <DateTimePicker\n {...field}\n {...meta}\n timePickerProps={disabledTimeFrame}\n datePickerProps={{\n disabledDate,\n \"data-cy\": props[\"data-cy\"],\n \"data-testid\": props[\"data-testid\"],\n }}\n onBlur={date => {\n setValue(date || undefined);\n setTouched(true);\n }}\n onChange={date => {\n setValue(date || undefined);\n setTouched(true);\n }}\n {...props}\n />\n );\n};\n\nexport default FormikDatePicker;\n","import React, { useRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { Typography, Label } from \"neetoui\";\nimport { Input, Switch, ActionBlock } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport SendToFields from \"components/SendToFields\";\n\nimport EmailBody from \"./EmailBodyEditor\";\nimport FormikDatePicker from \"./FormikDatePicker\";\nimport { isPastDate } from \"./utils\";\n\nconst Form = ({\n showSendFromField,\n disableReplyTo,\n showVideoEmbedInEditor,\n children,\n}) => {\n const { values, initialValues } = useFormikContext();\n const editorRef = useRef();\n const { t } = useTranslation();\n\n const handleReset = () =>\n editorRef.current.editor.commands.setContent(initialValues.emailBody);\n\n return (\n <>\n <div className=\"space-y-4\">\n <SendToFields\n showUploadCsvButton\n emailInputProps={{\n label: t(\"neetoMolecules.shareViaEmail.sendTo\"),\n name: \"notifyEmails\",\n required: true,\n }}\n />\n <Input\n required\n className=\"col-span-1\"\n label={t(\"neetoMolecules.shareViaEmail.subject\")}\n name=\"emailSubject\"\n />\n <EmailBody\n {...{ showVideoEmbedInEditor }}\n id=\"emailBody\"\n ref={editorRef}\n />\n <div ref={editorRef} />\n <div>\n <Label className=\"flex items-center gap-2\">\n <Switch\n data-cy=\"send-later-switch\"\n data-testid=\"send-later-switch\"\n name=\"isSendLaterEnabled\"\n />\n <Typography\n component=\"span\"\n data-cy=\"send-later-label\"\n lineHeight=\"normal\"\n style=\"h4\"\n weight=\"semibold\"\n >\n {t(\"neetoMolecules.shareViaEmail.sendLater\")}\n </Typography>\n </Label>\n </div>\n {values.isSendLaterEnabled && (\n <FormikDatePicker\n autoFocus\n data-cy=\"email-share-date-input\"\n data-testid=\"formik-date-picker\"\n disabledDate={isPastDate}\n name=\"sendEmailDatetime\"\n size=\"large\"\n />\n )}\n <Input\n required\n label={t(\"neetoMolecules.shareViaEmail.startButtonText\")}\n name=\"actionButtonText\"\n />\n <div className=\"flex flex-col gap-4 sm:flex-row sm:gap-6\">\n {showSendFromField && (\n <Input\n required\n className={classnames({ \"w-full flex-grow-0\": !disableReplyTo })}\n data-testid=\"neeto-molecules-share-via-email-send-from\"\n label={t(\"neetoMolecules.shareViaEmail.sendFrom\")}\n name=\"sendFromEmail\"\n />\n )}\n {!disableReplyTo && (\n <Input\n required\n data-testid=\"replyTo-field\"\n label={t(\"neetoMolecules.shareViaEmail.replyTo\")}\n name=\"replyToEmail\"\n className={classnames({\n \"w-full flex-grow-0\": showSendFromField,\n })}\n />\n )}\n </div>\n </div>\n {children && (\n <div className=\"neeto-ui-border-gray-300 mt-4 border-t py-4\">\n <h3 className=\"mb-4\">\n {t(\"neetoMolecules.shareViaEmail.additionalOptions\")}\n </h3>\n {children}\n </div>\n )}\n <div className=\"mt-6\">\n <ActionBlock\n cancelButtonProps={{\n label: t(\"neetoMolecules.shareViaEmail.reset\"),\n type: \"reset\",\n onClick: handleReset,\n }}\n submitButtonProps={{\n label: t(\"neetoMolecules.shareViaEmail.sendEmail\"),\n }}\n />\n </div>\n </>\n );\n};\n\nexport default Form;\n","import React from \"react\";\n\nimport { LeftArrow } from \"neetoicons\";\nimport { Button, Typography } from \"neetoui\";\nimport { Form } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport EmailPreview from \"components/EmailPreview\";\n\nimport EmailForm from \"./Form\";\nimport { emailFormValidationSchema, generateInitialValues } from \"./utils\";\n\nconst ShareViaEmail = ({\n showSendFromField = false,\n backToUrl,\n handleSubmit,\n children,\n description,\n defaultValues,\n disableReplyTo,\n productName,\n showVideoEmbedInEditor,\n title = \"\",\n}) => {\n const { t } = useTranslation();\n\n const shareViaEmailTitle = title || t(\"neetoMolecules.shareViaEmail.title\");\n const sendToEmails = notifyEmails => notifyEmails.map(email => email?.value);\n\n return (\n <div className=\"neeto-ui-bg-gray-100 flex w-full flex-1 flex-col p-6 md:p-8\">\n <div className=\"mx-auto flex w-full max-w-7xl flex-col\">\n <Form\n scrollToErrorField\n formProps={{ noValidate: true }}\n formikProps={{\n enableReinitialize: true,\n validateOnMount: true,\n initialValues: generateInitialValues(defaultValues),\n validationSchema: emailFormValidationSchema(disableReplyTo),\n onSubmit: handleSubmit,\n }}\n >\n {({ values }) => (\n <div className=\"grid grid-cols-1 gap-8 md:grid-cols-12\">\n <div className=\"col-span-1 md:col-span-6 lg:col-span-5\">\n {backToUrl && (\n <Button\n className=\"mb-4\"\n data-testid=\"back-to-url-button\"\n icon={LeftArrow}\n iconPosition=\"left\"\n label={t(\"neetoMolecules.shareViaEmail.backToShare\")}\n size=\"small\"\n style=\"link\"\n to={backToUrl}\n />\n )}\n <div className=\"mb-6\">\n <Typography\n className=\"mb-0.5 break-words\"\n data-cy=\"share-via-email-heading\"\n lineHeight=\"normal\"\n style=\"h2\"\n weight=\"semibold\"\n >\n {shareViaEmailTitle}\n </Typography>\n {description && (\n <Typography\n className=\"neeto-ui-text-gray-700\"\n data-cy=\"share-via-email-sub-heading\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {description}\n </Typography>\n )}\n </div>\n <EmailForm\n {...{\n disableReplyTo,\n showSendFromField,\n showVideoEmbedInEditor,\n }}\n >\n {children}\n </EmailForm>\n </div>\n <div className=\"col-span-1 md:col-span-6 lg:col-span-7\">\n <EmailPreview\n {...{ productName }}\n actionButtonText={values.actionButtonText}\n body={values.emailBody}\n className=\"sticky pt-1 md:mt-28\"\n subject={values.emailSubject}\n to={sendToEmails(values.notifyEmails)}\n />\n </div>\n </div>\n )}\n </Form>\n </div>\n </div>\n );\n};\n\nShareViaEmail.propTypes = {\n /**\n * The path to navigate back to the required page on clicking the 'Back to share' button.\n */\n backToUrl: PropTypes.string,\n /**\n * The function that handles submitting of values to the API.\n */\n handleSubmit: PropTypes.func,\n /**\n * React components that can be passed on as children, to add optional fields.\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n /**\n * Description text to be displayed under the component title.\n */\n description: PropTypes.string,\n /**\n * An object to assign default values to the email form.\n */\n defaultValues: PropTypes.shape({\n sendFromEmail: PropTypes.string,\n replyToEmail: PropTypes.string,\n actionButtonText: PropTypes.string,\n emailSubject: PropTypes.string,\n emailBody: PropTypes.string,\n }),\n /**\n * Boolean value to show the \"Send From\" field if needed.\n */\n showSendFromField: PropTypes.bool,\n /**\n * Boolean value to hide the \"Reply to\" field if not needed.\n */\n disableReplyTo: PropTypes.bool,\n /**\n * product name for the `<EmailPreview />` component can be passed.\n */\n productName: PropTypes.string,\n /**\n * Boolean value to show video url as embed video in email body.\n */\n showVideoEmbedInEditor: PropTypes.bool,\n /**\n * To specify the title of the component. Defaults to \"Share via email\"\n */\n title: PropTypes.string,\n};\n\nexport default ShareViaEmail;\n"],"names":["INITIAL_VALUES","sendFromEmail","replyToEmail","notifyEmails","emailSubject","emailBody","isSendLaterEnabled","sendEmailDatetime","undefined","category","actionButtonText","EDITOR_ADDONS","EmailBody","_ref","ref","id","showVideoEmbedInEditor","_useTranslation","useTranslation","t","React","createElement","FormikEditor","required","className","label","name","addons","concat","_toConsumableArray","forwardRef","isPastDate","date","dayjs","isBefore","subtract","generateInitialValues","defaultValues","_objectSpread","emailFormValidationSchema","disableReplyTo","yup","object","shape","string","test","value","isEditorEmpty","trim","email","array","min","emails","every","prop","when","is","then","disabledTime","selectedDate","current","startOf","today","isAfterToday","isAfter","isBeforeToday","minTime","maxTime","currentTime","format","endOfDay","FormikDatePicker","disabledDate","props","_objectWithoutProperties","_excluded","_useField","useField","_useField2","_slicedToArray","field","meta","_useField2$","setValue","setTouched","disabledTimeFrame","useMemo","DateTimePicker","_extends","timePickerProps","datePickerProps","onBlur","onChange","Form","showSendFromField","children","_useFormikContext","useFormikContext","values","initialValues","editorRef","useRef","handleReset","editor","commands","setContent","Fragment","SendToFields","showUploadCsvButton","emailInputProps","Input","Label","Switch","Typography","component","lineHeight","style","weight","autoFocus","size","classnames","ActionBlock","cancelButtonProps","type","onClick","submitButtonProps","ShareViaEmail","_ref$showSendFromFiel","backToUrl","handleSubmit","description","productName","_ref$title","title","shareViaEmailTitle","sendToEmails","map","scrollToErrorField","formProps","noValidate","formikProps","enableReinitialize","validateOnMount","validationSchema","onSubmit","_ref2","Button","icon","LeftArrow","iconPosition","to","EmailForm","EmailPreview","body","subject"],"mappings":"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"}
@@ -0,0 +1,508 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var neetoCist = require('@bigbinary/neeto-cist');
5
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
6
+ var neetoIcons = require('@bigbinary/neeto-icons');
7
+ var neetoui = require('@bigbinary/neetoui');
8
+ var reactI18next = require('react-i18next');
9
+ var CopyToClipboardButton = require('./CopyToClipboardButton.js');
10
+ var MoreDropdown = require('./MoreDropdown.js');
11
+ var formik = require('formik');
12
+ var formik$1 = require('@bigbinary/neetoui/formik');
13
+ var i18next = require('i18next');
14
+ var yup = require('yup');
15
+ var general = require('@bigbinary/neeto-commons-frontend/utils/general');
16
+ var injectCss = require('./inject-css-80a5faa3.js');
17
+ var classnames = require('classnames');
18
+ var reactRouterDom = require('react-router-dom');
19
+ var QRCodeImage = require('qrcode.react');
20
+ require('@babel/runtime/helpers/extends');
21
+ require('@babel/runtime/helpers/defineProperty');
22
+ require('@babel/runtime/helpers/objectWithoutProperties');
23
+ require('ramda');
24
+
25
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
26
+
27
+ function _interopNamespace(e) {
28
+ if (e && e.__esModule) return e;
29
+ var n = Object.create(null);
30
+ if (e) {
31
+ Object.keys(e).forEach(function (k) {
32
+ if (k !== 'default') {
33
+ var d = Object.getOwnPropertyDescriptor(e, k);
34
+ Object.defineProperty(n, k, d.get ? d : {
35
+ enumerable: true,
36
+ get: function () { return e[k]; }
37
+ });
38
+ }
39
+ });
40
+ }
41
+ n["default"] = e;
42
+ return Object.freeze(n);
43
+ }
44
+
45
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
46
+ var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
47
+ var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
48
+ var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
49
+ var QRCodeImage__default = /*#__PURE__*/_interopDefaultLegacy(QRCodeImage);
50
+
51
+ var facebookShareLink = function facebookShareLink(_ref) {
52
+ var id = _ref.id;
53
+ return general.buildUrl("https://www.facebook.com/sharer/sharer.php", {
54
+ u: "https://".concat(window.location.host, "/").concat(id)
55
+ });
56
+ };
57
+ var linkedInShareLink = function linkedInShareLink(_ref2) {
58
+ var id = _ref2.id,
59
+ title = _ref2.title;
60
+ return general.buildUrl("https://www.linkedin.com/shareArticle", {
61
+ mini: true,
62
+ url: "https://".concat(window.location.host, "/").concat(id),
63
+ title: title
64
+ });
65
+ };
66
+ var twitterShareLink = function twitterShareLink(_ref3) {
67
+ var id = _ref3.id,
68
+ title = _ref3.title;
69
+ return general.buildUrl("http://twitter.com/share", {
70
+ text: title,
71
+ url: "https://".concat(window.location.host, "/").concat(id)
72
+ });
73
+ };
74
+ var downloadCanvas = function downloadCanvas(canvas) {
75
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
76
+ var _options$name = options.name,
77
+ name = _options$name === void 0 ? "image" : _options$name,
78
+ _options$extension = options.extension,
79
+ extension = _options$extension === void 0 ? "png" : _options$extension;
80
+ var canvasUrl = canvas.toDataURL("image/".concat(extension));
81
+ var element = document.createElement("a");
82
+ element.href = canvasUrl;
83
+ element.download = "".concat(name, ".").concat(extension);
84
+ element.click();
85
+ element.remove();
86
+ };
87
+ var getPathname = function getPathname(url) {
88
+ return new URL(url).pathname.slice(1);
89
+ };
90
+ var getPrefixFromUrl = function getPrefixFromUrl(url) {
91
+ return "".concat(new URL(url).origin, "/");
92
+ };
93
+ var truncatePrefix = function truncatePrefix(url) {
94
+ return url.length > MAX_PREFIX_SIZE ? "...".concat(url.slice(-MAX_PREFIX_SIZE)) : url;
95
+ };
96
+
97
+ var SOCIAL_MEDIA_OPTIONS = {
98
+ FACEBOOK: {
99
+ label: i18next.t("neetoMolecules.shareViaLink.socialMediaShare.facebook"),
100
+ icon: neetoIcons.Facebook,
101
+ generateShareUrl: facebookShareLink
102
+ },
103
+ LINKEDIN: {
104
+ label: i18next.t("neetoMolecules.shareViaLink.socialMediaShare.linkedIn"),
105
+ icon: neetoIcons.Linkedin,
106
+ generateShareUrl: linkedInShareLink
107
+ },
108
+ TWITTER: {
109
+ label: i18next.t("neetoMolecules.shareViaLink.socialMediaShare.twitter"),
110
+ icon: neetoIcons.Twitter,
111
+ generateShareUrl: twitterShareLink
112
+ }
113
+ };
114
+ var PATH_VALIDATION_SCHEMA = yup__namespace.object().shape({
115
+ path: yup__namespace.string().required(i18next.t("neetoMolecules.shareViaLink.editUrl.validationError")).matches(/^[A-Za-z0-9]([\w/-])*$/, i18next.t("neetoMolecules.shareViaLink.editUrl.validationError"))
116
+ });
117
+ var MAX_PREFIX_SIZE = 30;
118
+
119
+ var css = ".no-padding .neeto-ui-input.neeto-ui-input--medium input{padding:0}.no-padding .neeto-ui-input__prefix{color:rgb(var(--neeto-ui-gray-600))!important}";
120
+ injectCss.n(css,{});
121
+
122
+ var Header = neetoui.Pane.Header,
123
+ Body = neetoui.Pane.Body,
124
+ Footer = neetoui.Pane.Footer;
125
+ var EditURL = function EditURL(_ref) {
126
+ var editUrlProps = _ref.editUrlProps,
127
+ isOpen = _ref.isOpen,
128
+ onClose = _ref.onClose,
129
+ url = _ref.url,
130
+ isLoading = _ref.isLoading,
131
+ handleEdit = _ref.handleEdit;
132
+ var _useTranslation = reactI18next.useTranslation(),
133
+ t = _useTranslation.t;
134
+ var focusRef = React.useRef(null);
135
+ var prevIsLoadingRef = React.useRef(isLoading);
136
+ React.useEffect(function () {
137
+ if (prevIsLoadingRef.current && !isLoading) onClose();
138
+ prevIsLoadingRef.current = isLoading;
139
+ }, [isLoading]);
140
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Pane, {
141
+ isOpen: isOpen,
142
+ onClose: onClose,
143
+ "data-testid": "edit-url-modal",
144
+ initialFocusRef: focusRef,
145
+ size: "large"
146
+ }, /*#__PURE__*/React__default["default"].createElement(Header, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
147
+ lineHeight: "normal",
148
+ style: "h2",
149
+ weight: "semibold"
150
+ }, t("neetoMolecules.shareViaLink.editUrl.title"))), /*#__PURE__*/React__default["default"].createElement(formik.Formik, {
151
+ enableReinitialize: true,
152
+ initialValues: {
153
+ path: (editUrlProps === null || editUrlProps === void 0 ? void 0 : editUrlProps.editablePath) || getPathname(url)
154
+ },
155
+ validationSchema: PATH_VALIDATION_SCHEMA,
156
+ onSubmit: function onSubmit(_ref2) {
157
+ var path = _ref2.path;
158
+ return handleEdit(path);
159
+ }
160
+ }, function (_ref3) {
161
+ var isSubmitting = _ref3.isSubmitting,
162
+ dirty = _ref3.dirty;
163
+ return /*#__PURE__*/React__default["default"].createElement(formik.Form, null, /*#__PURE__*/React__default["default"].createElement(Body, {
164
+ className: "space-y-6"
165
+ }, /*#__PURE__*/React__default["default"].createElement(formik$1.Input, {
166
+ className: "no-padding w-full flex-grow-0",
167
+ "data-testid": "edit-url-input",
168
+ label: t("neetoMolecules.shareViaLink.editUrl.inputLabel"),
169
+ maxLength: editUrlProps === null || editUrlProps === void 0 ? void 0 : editUrlProps.maxLength,
170
+ name: "path",
171
+ ref: focusRef,
172
+ prefix: truncatePrefix((editUrlProps === null || editUrlProps === void 0 ? void 0 : editUrlProps.prefix) || getPrefixFromUrl(url))
173
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
174
+ className: "neeto-ui-text-gray-700",
175
+ lineHeight: "normal",
176
+ style: "body2"
177
+ }, t("neetoMolecules.shareViaLink.editUrl.description"))), /*#__PURE__*/React__default["default"].createElement(Footer, {
178
+ className: "space-x-2"
179
+ }, /*#__PURE__*/React__default["default"].createElement(formik$1.ActionBlock, {
180
+ className: "flex items-center space-x-2",
181
+ cancelButtonProps: {
182
+ onClick: onClose,
183
+ disabled: isSubmitting,
184
+ "data-testid": "edit-url-cancel-button"
185
+ },
186
+ submitButtonProps: {
187
+ disabled: isSubmitting || !dirty,
188
+ loading: isLoading,
189
+ "data-testid": "edit-url-confirm-button"
190
+ }
191
+ })));
192
+ }));
193
+ };
194
+
195
+ var RegenerateURL = function RegenerateURL(_ref) {
196
+ var isOpen = _ref.isOpen,
197
+ onClose = _ref.onClose,
198
+ url = _ref.url,
199
+ isLoading = _ref.isLoading,
200
+ handleRegenerate = _ref.handleRegenerate;
201
+ var _useTranslation = reactI18next.useTranslation(),
202
+ t = _useTranslation.t;
203
+ var prevIsLoadingRef = React.useRef(isLoading);
204
+ React.useEffect(function () {
205
+ if (prevIsLoadingRef.current && !isLoading) onClose();
206
+ prevIsLoadingRef.current = isLoading;
207
+ }, [isLoading]);
208
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Modal, {
209
+ isOpen: isOpen,
210
+ onClose: onClose,
211
+ "data-testid": "regenerate-url-modal"
212
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Modal.Header, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
213
+ lineHeight: "normal",
214
+ style: "h2",
215
+ weight: "semibold"
216
+ }, t("neetoMolecules.shareViaLink.regenerateUrl.title"))), /*#__PURE__*/React__default["default"].createElement(neetoui.Modal.Body, null, /*#__PURE__*/React__default["default"].createElement("div", {
217
+ className: "w-full space-y-6"
218
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Input, {
219
+ disabled: true,
220
+ label: t("neetoMolecules.shareViaLink.regenerateUrl.inputLabel"),
221
+ value: url
222
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
223
+ className: "neeto-ui-text-gray-700",
224
+ lineHeight: "normal",
225
+ style: "body2"
226
+ }, t("neetoMolecules.shareViaLink.regenerateUrl.description")))), /*#__PURE__*/React__default["default"].createElement(neetoui.Modal.Footer, {
227
+ className: "space-x-2"
228
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
229
+ "data-cy": "regenerate-url-confirm-button",
230
+ "data-testid": "regenerate-url-confirm-button",
231
+ loading: isLoading,
232
+ label: t("neetoMolecules.shareViaLink.regenerateUrl.submitButtonLabel"),
233
+ onClick: handleRegenerate
234
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
235
+ "data-cy": "regenerate-url-cancel-button",
236
+ "data-testid": "regenerate-url-cancel-button",
237
+ style: "text",
238
+ label: t("neetoMolecules.shareViaLink.regenerateUrl.cancelButtonLabel"),
239
+ onClick: onClose
240
+ })));
241
+ };
242
+
243
+ var Link = function Link(_ref) {
244
+ var editUrlProps = _ref.editUrlProps,
245
+ enabledOptions = _ref.enabledOptions,
246
+ entityName = _ref.entityName,
247
+ handleEdit = _ref.handleEdit,
248
+ handleRegenerate = _ref.handleRegenerate,
249
+ isLoading = _ref.isLoading,
250
+ previewUrl = _ref.previewUrl,
251
+ url = _ref.url;
252
+ var _useState = React.useState(false),
253
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
254
+ isRegenerateURLModalOpen = _useState2[0],
255
+ setIsRegenerateURLModalOpen = _useState2[1];
256
+ var _useState3 = React.useState(false),
257
+ _useState4 = _slicedToArray__default["default"](_useState3, 2),
258
+ isEditURLModalOpen = _useState4[0],
259
+ setIsEditURLModalOpen = _useState4[1];
260
+ var _useTranslation = reactI18next.useTranslation(),
261
+ t = _useTranslation.t;
262
+ var isDropdownEnabled = enabledOptions.regenerate || enabledOptions.edit;
263
+ return /*#__PURE__*/React__default["default"].createElement("div", {
264
+ className: "space-y-4",
265
+ "data-cy": "link-block",
266
+ "data-testid": "link-block"
267
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
268
+ className: "flex flex-col gap-2 sm:flex-row sm:items-center sm:gap-1"
269
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
270
+ className: "neeto-ui-rounded-md relative min-w-0 flex-grow truncate border p-2 leading-none",
271
+ "data-cy": "nui-input-field"
272
+ }, url), /*#__PURE__*/React__default["default"].createElement("div", {
273
+ className: "flex w-full flex-shrink-0 items-center gap-1 sm:w-auto"
274
+ }, /*#__PURE__*/React__default["default"].createElement(CopyToClipboardButton, {
275
+ "data-cy": "link-copy-button",
276
+ "data-testid": "link-copy-button",
277
+ label: t("neetoMolecules.shareViaLink.copyLink"),
278
+ value: url
279
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
280
+ "data-cy": "preview-button",
281
+ "data-testid": "preview-button",
282
+ href: previewUrl || url,
283
+ icon: neetoIcons.ExternalLink,
284
+ style: "secondary",
285
+ target: "_blank",
286
+ tooltipProps: {
287
+ content: t("neetoMolecules.shareViaLink.view", {
288
+ entity: entityName
289
+ }),
290
+ position: "top"
291
+ }
292
+ }), isDropdownEnabled && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(MoreDropdown, {
293
+ menuItems: [{
294
+ isVisible: enabledOptions.regenerate,
295
+ "data-testid": "regenerate-url-button",
296
+ "data-cy": "regenerate-url-button",
297
+ onClick: function onClick() {
298
+ return setIsRegenerateURLModalOpen(true);
299
+ },
300
+ label: t("neetoMolecules.shareViaLink.regenerateUrl.title"),
301
+ key: "regenerate-url-option"
302
+ }, {
303
+ isVisible: enabledOptions.edit,
304
+ "data-testid": "edit-url-button",
305
+ "data-cy": "edit-url-button",
306
+ onClick: function onClick() {
307
+ return setIsEditURLModalOpen(true);
308
+ },
309
+ label: t("neetoMolecules.shareViaLink.editUrl.title"),
310
+ key: "edit-url-option"
311
+ }]
312
+ }), /*#__PURE__*/React__default["default"].createElement(RegenerateURL, {
313
+ handleRegenerate: handleRegenerate,
314
+ isLoading: isLoading,
315
+ url: url,
316
+ isOpen: isRegenerateURLModalOpen,
317
+ onClose: function onClose() {
318
+ return setIsRegenerateURLModalOpen(false);
319
+ }
320
+ }), /*#__PURE__*/React__default["default"].createElement(EditURL, {
321
+ editUrlProps: editUrlProps,
322
+ handleEdit: handleEdit,
323
+ isLoading: isLoading,
324
+ url: url,
325
+ isOpen: isEditURLModalOpen,
326
+ onClose: function onClose() {
327
+ return setIsEditURLModalOpen(false);
328
+ }
329
+ })))));
330
+ };
331
+
332
+ var QRCode = function QRCode(_ref) {
333
+ var entity = _ref.entity,
334
+ url = _ref.url;
335
+ if (!entity) return null;
336
+ var id = entity.id,
337
+ name = entity.name;
338
+ var canvasId = "qrcode-share-".concat(id);
339
+ var handleDownload = function handleDownload() {
340
+ var canvas = document.getElementById(canvasId);
341
+ if (canvas) downloadCanvas(canvas, {
342
+ name: neetoCist.slugify(name)
343
+ });
344
+ };
345
+ return /*#__PURE__*/React__default["default"].createElement("div", {
346
+ className: "flex flex-col justify-center space-y-2 py-3 pl-8 sm:space-y-4 sm:py-2 sm:pl-6",
347
+ "data-cy": "qr-download-block",
348
+ "data-testid": "qr-download-block"
349
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
350
+ lineHeight: "normal",
351
+ style: "body2",
352
+ weight: "medium"
353
+ }, /*#__PURE__*/React__default["default"].createElement(reactI18next.Trans, {
354
+ i18nKey: "neetoMolecules.shareViaLink.socialMediaShare.qrCodeInfo",
355
+ components: {
356
+ button: /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
357
+ "data-cy": "qr-code-download-button",
358
+ "data-testid": "qr-code-download-button",
359
+ style: "link",
360
+ onClick: handleDownload
361
+ })
362
+ }
363
+ })), /*#__PURE__*/React__default["default"].createElement(QRCodeImage__default["default"], {
364
+ className: "cursor-pointer",
365
+ "data-cy": "qr-code-image",
366
+ "data-testid": canvasId,
367
+ id: canvasId,
368
+ size: 256,
369
+ style: {
370
+ width: 80,
371
+ height: 80
372
+ },
373
+ value: url,
374
+ onClick: handleDownload
375
+ }));
376
+ };
377
+
378
+ var ShareBlock = function ShareBlock(_ref) {
379
+ var entity = _ref.entity,
380
+ postTitle = _ref.postTitle,
381
+ url = _ref.url,
382
+ moreOptions = _ref.moreOptions,
383
+ disableShareSocialMedia = _ref.disableShareSocialMedia,
384
+ disableQRDownload = _ref.disableQRDownload;
385
+ var _useTranslation = reactI18next.useTranslation(),
386
+ t = _useTranslation.t;
387
+ var socialMediaButtonClasses = "neeto-ui-bg-gray-200 hover:neeto-ui-bg-gray-300 flex h-10 w-10 cursor-pointer items-center justify-center neeto-ui-rounded-md transition-colors duration-300 ease-in-out";
388
+ var hasMoreOptions = neetoCist.isPresent(moreOptions);
389
+ return /*#__PURE__*/React__default["default"].createElement("div", {
390
+ className: "flex flex-col divide-y sm:flex-row sm:gap-6 sm:divide-x sm:divide-y-0"
391
+ }, hasMoreOptions && /*#__PURE__*/React__default["default"].createElement("div", {
392
+ className: "divide-y"
393
+ }, moreOptions.map(function (_ref2) {
394
+ var title = _ref2.title,
395
+ link = _ref2.link,
396
+ Icon = _ref2.icon,
397
+ onClick = _ref2.onClick,
398
+ dataCy = _ref2.dataCy;
399
+ var Component = neetoCist.isPresent(link) ? reactRouterDom.Link : "div";
400
+ return /*#__PURE__*/React__default["default"].createElement(Component, {
401
+ onClick: onClick,
402
+ className: "flex cursor-pointer items-center gap-x-2 py-3",
403
+ "data-cy": dataCy,
404
+ key: link,
405
+ to: link
406
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
407
+ className: "neeto-ui-text-gray-500",
408
+ size: 24
409
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
410
+ className: "group-hover:underline",
411
+ style: "body2",
412
+ weight: "medium"
413
+ }, title));
414
+ })), !disableShareSocialMedia && /*#__PURE__*/React__default["default"].createElement("div", {
415
+ "data-cy": "social-media-block",
416
+ "data-testid": "social-media-block",
417
+ className: classnames__default["default"]("space-y-2 py-3 sm:space-y-4 sm:py-2", {
418
+ "pl-8 sm:pl-6": hasMoreOptions
419
+ })
420
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
421
+ className: "neeto-ui-text-gray-800",
422
+ lineHeight: "normal",
423
+ style: "body2",
424
+ weight: "medium"
425
+ }, t("neetoMolecules.shareViaLink.socialMediaShare.title")), /*#__PURE__*/React__default["default"].createElement("div", {
426
+ className: "flex gap-4"
427
+ }, Object.entries(SOCIAL_MEDIA_OPTIONS).map(function (_ref3) {
428
+ var _ref4 = _slicedToArray__default["default"](_ref3, 2),
429
+ key = _ref4[0],
430
+ _ref4$ = _ref4[1],
431
+ label = _ref4$.label,
432
+ Icon = _ref4$.icon,
433
+ generateShareUrl = _ref4$.generateShareUrl;
434
+ return /*#__PURE__*/React__default["default"].createElement("a", {
435
+ className: socialMediaButtonClasses,
436
+ "data-cy": "social-media-button-".concat(key),
437
+ "data-testid": "social-media-button-".concat(key),
438
+ href: generateShareUrl({
439
+ id: entity.id,
440
+ title: postTitle
441
+ }),
442
+ key: key,
443
+ rel: "noopener noreferrer",
444
+ target: "_blank",
445
+ title: label
446
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
447
+ size: 24
448
+ }));
449
+ }))), !disableQRDownload && /*#__PURE__*/React__default["default"].createElement(QRCode, {
450
+ entity: entity,
451
+ url: url
452
+ }));
453
+ };
454
+
455
+ var ShareViaLink = function ShareViaLink(_ref) {
456
+ var _ref$isLoading = _ref.isLoading,
457
+ isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
458
+ _ref$enabledOptions = _ref.enabledOptions,
459
+ enabledOptions = _ref$enabledOptions === void 0 ? {
460
+ regenerate: false,
461
+ edit: false
462
+ } : _ref$enabledOptions,
463
+ _ref$editUrlProps = _ref.editUrlProps,
464
+ editUrlProps = _ref$editUrlProps === void 0 ? {
465
+ prefix: "",
466
+ editablePath: ""
467
+ } : _ref$editUrlProps,
468
+ entity = _ref.entity,
469
+ entityName = _ref.entityName,
470
+ _ref$handleEdit = _ref.handleEdit,
471
+ handleEdit = _ref$handleEdit === void 0 ? neetoCist.noop : _ref$handleEdit,
472
+ _ref$handleRegenerate = _ref.handleRegenerate,
473
+ handleRegenerate = _ref$handleRegenerate === void 0 ? neetoCist.noop : _ref$handleRegenerate,
474
+ _ref$previewUrl = _ref.previewUrl,
475
+ previewUrl = _ref$previewUrl === void 0 ? "" : _ref$previewUrl,
476
+ socialMediaPostTitle = _ref.socialMediaPostTitle,
477
+ url = _ref.url,
478
+ moreOptions = _ref.moreOptions,
479
+ _ref$isOtherShareOpti = _ref.isOtherShareOptionsEnabled,
480
+ isOtherShareOptionsEnabled = _ref$isOtherShareOpti === void 0 ? true : _ref$isOtherShareOpti,
481
+ _ref$disableShareSoci = _ref.disableShareSocialMedia,
482
+ disableShareSocialMedia = _ref$disableShareSoci === void 0 ? false : _ref$disableShareSoci,
483
+ _ref$disableQRDownloa = _ref.disableQRDownload,
484
+ disableQRDownload = _ref$disableQRDownloa === void 0 ? false : _ref$disableQRDownloa;
485
+ return /*#__PURE__*/React__default["default"].createElement("div", {
486
+ className: "neeto-ui-border-gray-400 neeto-ui-shadow-xs neeto-ui-rounded-lg neeto-ui-bg-white col-span-2 space-y-4 border p-6 sm:p-8",
487
+ "data-testid": "share-via-link"
488
+ }, /*#__PURE__*/React__default["default"].createElement(Link, {
489
+ editUrlProps: editUrlProps,
490
+ enabledOptions: enabledOptions,
491
+ entityName: entityName,
492
+ handleEdit: handleEdit,
493
+ handleRegenerate: handleRegenerate,
494
+ isLoading: isLoading,
495
+ previewUrl: previewUrl,
496
+ url: url
497
+ }), isOtherShareOptionsEnabled && /*#__PURE__*/React__default["default"].createElement(ShareBlock, {
498
+ disableQRDownload: disableQRDownload,
499
+ disableShareSocialMedia: disableShareSocialMedia,
500
+ entity: entity,
501
+ moreOptions: moreOptions,
502
+ url: url,
503
+ postTitle: socialMediaPostTitle
504
+ }));
505
+ };
506
+
507
+ module.exports = ShareViaLink;
508
+ //# sourceMappingURL=ShareViaLink.js.map