@bigbinary/neeto-molecules 1.1.78 → 1.2.0-beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (370) hide show
  1. package/README.md +66 -52
  2. package/dist/Breadcrumbs.js +16 -19
  3. package/dist/Breadcrumbs.js.map +1 -1
  4. package/dist/BrowserSupport.js +41 -138
  5. package/dist/BrowserSupport.js.map +1 -1
  6. package/dist/Builder.js +207 -364
  7. package/dist/Builder.js.map +1 -1
  8. package/dist/CalendarView.js +40 -288
  9. package/dist/CalendarView.js.map +1 -1
  10. package/dist/Chevron-c64ff676.js +190 -0
  11. package/dist/Chevron-c64ff676.js.map +1 -0
  12. package/dist/Codeblock.js +26 -209
  13. package/dist/Codeblock.js.map +1 -1
  14. package/dist/Columns.js +16 -240
  15. package/dist/Columns.js.map +1 -1
  16. package/dist/ConfigurePageSidebar.js +97 -0
  17. package/dist/ConfigurePageSidebar.js.map +1 -0
  18. package/dist/ConfirmationModal.js +10 -10
  19. package/dist/ConfirmationModal.js.map +1 -1
  20. package/dist/Container.js +5 -1187
  21. package/dist/Container.js.map +1 -1
  22. package/dist/CopyToClipboardButton.js +26 -155
  23. package/dist/CopyToClipboardButton.js.map +1 -1
  24. package/dist/Currency.js +912 -0
  25. package/dist/Currency.js.map +1 -0
  26. package/dist/CustomDomain.js +37 -633
  27. package/dist/CustomDomain.js.map +1 -1
  28. package/dist/CustomDomainDashboard.js +69 -2192
  29. package/dist/CustomDomainDashboard.js.map +1 -1
  30. package/dist/DateFormat.js +6 -20
  31. package/dist/DateFormat.js.map +1 -1
  32. package/dist/DateRangeFilter.js +19 -75
  33. package/dist/DateRangeFilter.js.map +1 -1
  34. package/dist/DeleteArchiveModal.js +86 -0
  35. package/dist/DeleteArchiveModal.js.map +1 -0
  36. package/dist/DocumentEditor.js +43 -133
  37. package/dist/DocumentEditor.js.map +1 -1
  38. package/dist/DownloadMobileAppCallout.js +4 -4
  39. package/dist/DownloadMobileAppCallout.js.map +1 -1
  40. package/dist/DynamicVariables.js +12 -95
  41. package/dist/DynamicVariables.js.map +1 -1
  42. package/dist/EmailForm.js +79 -1741
  43. package/dist/EmailForm.js.map +1 -1
  44. package/dist/EmailPreview.js +32 -1213
  45. package/dist/EmailPreview.js.map +1 -1
  46. package/dist/EmojiPicker.js +67 -0
  47. package/dist/EmojiPicker.js.map +1 -0
  48. package/dist/EmojiReactions.js +69 -0
  49. package/dist/EmojiReactions.js.map +1 -0
  50. package/dist/ErrorPage.js +17 -26
  51. package/dist/ErrorPage.js.map +1 -1
  52. package/dist/FloatingActionMenu.js +646 -0
  53. package/dist/FloatingActionMenu.js.map +1 -0
  54. package/dist/Header.js +45 -117
  55. package/dist/Header.js.map +1 -1
  56. package/dist/HelpPopover.js +73 -0
  57. package/dist/HelpPopover.js.map +1 -0
  58. package/dist/IconPicker.js +36 -129
  59. package/dist/IconPicker.js.map +1 -1
  60. package/dist/ImageWithFallback.js +8 -144
  61. package/dist/ImageWithFallback.js.map +1 -1
  62. package/dist/InlineInput.js +22 -526
  63. package/dist/InlineInput.js.map +1 -1
  64. package/dist/Insights.js +304 -0
  65. package/dist/Insights.js.map +1 -0
  66. package/dist/IntegrationCard.js +42 -226
  67. package/dist/IntegrationCard.js.map +1 -1
  68. package/dist/IntegrationDisconnectAlert.js +6 -48
  69. package/dist/IntegrationDisconnectAlert.js.map +1 -1
  70. package/dist/IntegrationWalkthroughModal.js +10 -10
  71. package/dist/IntegrationWalkthroughModal.js.map +1 -1
  72. package/dist/IpRestriction.js +74 -221
  73. package/dist/IpRestriction.js.map +1 -1
  74. package/dist/KeyboardShortcuts.js +38 -128
  75. package/dist/KeyboardShortcuts.js.map +1 -1
  76. package/dist/LoginPage.js +39 -459
  77. package/dist/LoginPage.js.map +1 -1
  78. package/dist/MadeWith.js +32 -0
  79. package/dist/MadeWith.js.map +1 -0
  80. package/dist/MenuBar.js +34 -1295
  81. package/dist/MenuBar.js.map +1 -1
  82. package/dist/Metadata.js +65 -86
  83. package/dist/Metadata.js.map +1 -1
  84. package/dist/MoreDropdown.js +48 -107
  85. package/dist/MoreDropdown.js.map +1 -1
  86. package/dist/NavigationHeader.js +51 -730
  87. package/dist/NavigationHeader.js.map +1 -1
  88. package/dist/NeetoWidget.js +148 -316
  89. package/dist/NeetoWidget.js.map +1 -1
  90. package/dist/Onboarding.js +343 -0
  91. package/dist/Onboarding.js.map +1 -0
  92. package/dist/OptionFields.js +507 -0
  93. package/dist/OptionFields.js.map +1 -0
  94. package/dist/PageLoader.js +5 -48
  95. package/dist/PageLoader.js.map +1 -1
  96. package/dist/PhoneNumber.js +122 -201
  97. package/dist/PhoneNumber.js.map +1 -1
  98. package/dist/ProductEmbed.js +767 -0
  99. package/dist/ProductEmbed.js.map +1 -0
  100. package/dist/PublishBlock.js +19 -60
  101. package/dist/PublishBlock.js.map +1 -1
  102. package/dist/PublishYourItem.js +52 -0
  103. package/dist/PublishYourItem.js.map +1 -0
  104. package/dist/Rename.js +127 -394
  105. package/dist/Rename.js.map +1 -1
  106. package/dist/ResponsiveDevicePicker.js +7 -143
  107. package/dist/ResponsiveDevicePicker.js.map +1 -1
  108. package/dist/Schedule.js +131 -365
  109. package/dist/Schedule.js.map +1 -1
  110. package/dist/Scrollable.js +6 -89
  111. package/dist/Scrollable.js.map +1 -1
  112. package/dist/Search.js +54 -157
  113. package/dist/Search.js.map +1 -1
  114. package/dist/Security.js +72 -1567
  115. package/dist/Security.js.map +1 -1
  116. package/dist/SendToFields.js +51 -133
  117. package/dist/SendToFields.js.map +1 -1
  118. package/dist/Settings.js +141 -412
  119. package/dist/Settings.js.map +1 -1
  120. package/dist/ShareRecordingPane.js +189 -0
  121. package/dist/ShareRecordingPane.js.map +1 -0
  122. package/dist/ShareViaEmail.js +126 -551
  123. package/dist/ShareViaEmail.js.map +1 -1
  124. package/dist/ShareViaLink.js +127 -345
  125. package/dist/ShareViaLink.js.map +1 -1
  126. package/dist/Sidebar.js +161 -758
  127. package/dist/Sidebar.js.map +1 -1
  128. package/dist/SubHeader.js +63 -108
  129. package/dist/SubHeader.js.map +1 -1
  130. package/dist/SuffixedInput.js +105 -0
  131. package/dist/SuffixedInput.js.map +1 -0
  132. package/dist/TableWrapper.js +8 -9
  133. package/dist/TableWrapper.js.map +1 -1
  134. package/dist/Taxonomy.js +112 -1774
  135. package/dist/Taxonomy.js.map +1 -1
  136. package/dist/ThemeSidebar.js +159 -776
  137. package/dist/ThemeSidebar.js.map +1 -1
  138. package/dist/TimeFormat.js +8 -44
  139. package/dist/TimeFormat.js.map +1 -1
  140. package/dist/TimezoneMismatchModal.js +49 -84
  141. package/dist/TimezoneMismatchModal.js.map +1 -1
  142. package/dist/ToggleFeatureCard.js +46 -169
  143. package/dist/ToggleFeatureCard.js.map +1 -1
  144. package/dist/cjs/Breadcrumbs.js +49 -0
  145. package/dist/cjs/Breadcrumbs.js.map +1 -0
  146. package/dist/cjs/BrowserSupport.js +329 -0
  147. package/dist/cjs/BrowserSupport.js.map +1 -0
  148. package/dist/cjs/Builder.js +556 -0
  149. package/dist/cjs/Builder.js.map +1 -0
  150. package/dist/cjs/CalendarView.js +299 -0
  151. package/dist/cjs/CalendarView.js.map +1 -0
  152. package/dist/cjs/Chevron-8a4ed9cd.js +203 -0
  153. package/dist/cjs/Chevron-8a4ed9cd.js.map +1 -0
  154. package/dist/cjs/Codeblock.js +58 -0
  155. package/dist/cjs/Codeblock.js.map +1 -0
  156. package/dist/cjs/Columns.js +31 -0
  157. package/dist/cjs/Columns.js.map +1 -0
  158. package/dist/cjs/ConfigurePageSidebar.js +104 -0
  159. package/dist/cjs/ConfigurePageSidebar.js.map +1 -0
  160. package/dist/cjs/ConfirmationModal.js +120 -0
  161. package/dist/cjs/ConfirmationModal.js.map +1 -0
  162. package/dist/cjs/Container.js +36 -0
  163. package/dist/cjs/Container.js.map +1 -0
  164. package/dist/cjs/CopyToClipboardButton.js +86 -0
  165. package/dist/cjs/CopyToClipboardButton.js.map +1 -0
  166. package/dist/cjs/Currency.js +921 -0
  167. package/dist/cjs/Currency.js.map +1 -0
  168. package/dist/cjs/CustomDomain.js +125 -0
  169. package/dist/cjs/CustomDomain.js.map +1 -0
  170. package/dist/cjs/CustomDomainDashboard.js +200 -0
  171. package/dist/cjs/CustomDomainDashboard.js.map +1 -0
  172. package/dist/cjs/DateFormat.js +40 -0
  173. package/dist/cjs/DateFormat.js.map +1 -0
  174. package/dist/cjs/DateRangeFilter.js +180 -0
  175. package/dist/cjs/DateRangeFilter.js.map +1 -0
  176. package/dist/cjs/DeleteArchiveModal.js +92 -0
  177. package/dist/cjs/DeleteArchiveModal.js.map +1 -0
  178. package/dist/cjs/DocumentEditor.js +194 -0
  179. package/dist/cjs/DocumentEditor.js.map +1 -0
  180. package/dist/cjs/DownloadMobileAppCallout.js +45 -0
  181. package/dist/cjs/DownloadMobileAppCallout.js.map +1 -0
  182. package/dist/cjs/DynamicVariables.js +106 -0
  183. package/dist/cjs/DynamicVariables.js.map +1 -0
  184. package/dist/cjs/EmailForm.js +395 -0
  185. package/dist/cjs/EmailForm.js.map +1 -0
  186. package/dist/cjs/EmailPreview.js +139 -0
  187. package/dist/cjs/EmailPreview.js.map +1 -0
  188. package/dist/cjs/EmojiPicker.js +75 -0
  189. package/dist/cjs/EmojiPicker.js.map +1 -0
  190. package/dist/cjs/EmojiReactions.js +76 -0
  191. package/dist/cjs/EmojiReactions.js.map +1 -0
  192. package/dist/cjs/ErrorPage.js +179 -0
  193. package/dist/cjs/ErrorPage.js.map +1 -0
  194. package/dist/cjs/FloatingActionMenu.js +675 -0
  195. package/dist/cjs/FloatingActionMenu.js.map +1 -0
  196. package/dist/cjs/Header.js +104 -0
  197. package/dist/cjs/Header.js.map +1 -0
  198. package/dist/cjs/HelpPopover.js +80 -0
  199. package/dist/cjs/HelpPopover.js.map +1 -0
  200. package/dist/cjs/IconPicker.js +228 -0
  201. package/dist/cjs/IconPicker.js.map +1 -0
  202. package/dist/cjs/ImageWithFallback.js +52 -0
  203. package/dist/cjs/ImageWithFallback.js.map +1 -0
  204. package/dist/cjs/InlineInput.js +233 -0
  205. package/dist/cjs/InlineInput.js.map +1 -0
  206. package/dist/cjs/Insights.js +310 -0
  207. package/dist/cjs/Insights.js.map +1 -0
  208. package/dist/cjs/IntegrationCard.js +208 -0
  209. package/dist/cjs/IntegrationCard.js.map +1 -0
  210. package/dist/cjs/IntegrationDisconnectAlert.js +48 -0
  211. package/dist/cjs/IntegrationDisconnectAlert.js.map +1 -0
  212. package/dist/cjs/IntegrationWalkthroughModal.js +51 -0
  213. package/dist/cjs/IntegrationWalkthroughModal.js.map +1 -0
  214. package/dist/cjs/IpRestriction.js +525 -0
  215. package/dist/cjs/IpRestriction.js.map +1 -0
  216. package/dist/cjs/KeyboardShortcuts.js +282 -0
  217. package/dist/cjs/KeyboardShortcuts.js.map +1 -0
  218. package/dist/cjs/LoginPage.js +198 -0
  219. package/dist/cjs/LoginPage.js.map +1 -0
  220. package/dist/cjs/MadeWith.js +38 -0
  221. package/dist/cjs/MadeWith.js.map +1 -0
  222. package/dist/cjs/MenuBar.js +208 -0
  223. package/dist/cjs/MenuBar.js.map +1 -0
  224. package/dist/cjs/Metadata.js +195 -0
  225. package/dist/cjs/Metadata.js.map +1 -0
  226. package/dist/cjs/MoreDropdown.js +152 -0
  227. package/dist/cjs/MoreDropdown.js.map +1 -0
  228. package/dist/cjs/NavigationHeader.js +177 -0
  229. package/dist/cjs/NavigationHeader.js.map +1 -0
  230. package/dist/cjs/NeetoWidget.js +912 -0
  231. package/dist/cjs/NeetoWidget.js.map +1 -0
  232. package/dist/cjs/Onboarding.js +357 -0
  233. package/dist/cjs/Onboarding.js.map +1 -0
  234. package/dist/cjs/OptionFields.js +514 -0
  235. package/dist/cjs/OptionFields.js.map +1 -0
  236. package/dist/cjs/PageLoader.js +116 -0
  237. package/dist/cjs/PageLoader.js.map +1 -0
  238. package/dist/cjs/PhoneNumber.js +363 -0
  239. package/dist/cjs/PhoneNumber.js.map +1 -0
  240. package/dist/cjs/ProductEmbed.js +774 -0
  241. package/dist/cjs/ProductEmbed.js.map +1 -0
  242. package/dist/cjs/PublishBlock.js +125 -0
  243. package/dist/cjs/PublishBlock.js.map +1 -0
  244. package/dist/cjs/PublishYourItem.js +59 -0
  245. package/dist/cjs/PublishYourItem.js.map +1 -0
  246. package/dist/cjs/Rename.js +350 -0
  247. package/dist/cjs/Rename.js.map +1 -0
  248. package/dist/cjs/ResponsiveDevicePicker.js +64 -0
  249. package/dist/cjs/ResponsiveDevicePicker.js.map +1 -0
  250. package/dist/cjs/Schedule.js +889 -0
  251. package/dist/cjs/Schedule.js.map +1 -0
  252. package/dist/cjs/Scrollable.js +46 -0
  253. package/dist/cjs/Scrollable.js.map +1 -0
  254. package/dist/cjs/Search.js +117 -0
  255. package/dist/cjs/Search.js.map +1 -0
  256. package/dist/cjs/Security.js +376 -0
  257. package/dist/cjs/Security.js.map +1 -0
  258. package/dist/cjs/SendToFields.js +272 -0
  259. package/dist/cjs/SendToFields.js.map +1 -0
  260. package/dist/cjs/Settings.js +214 -0
  261. package/dist/cjs/Settings.js.map +1 -0
  262. package/dist/cjs/ShareRecordingPane.js +195 -0
  263. package/dist/cjs/ShareRecordingPane.js.map +1 -0
  264. package/dist/cjs/ShareViaEmail.js +348 -0
  265. package/dist/cjs/ShareViaEmail.js.map +1 -0
  266. package/dist/cjs/ShareViaLink.js +507 -0
  267. package/dist/cjs/ShareViaLink.js.map +1 -0
  268. package/dist/cjs/Sidebar.js +288 -0
  269. package/dist/cjs/Sidebar.js.map +1 -0
  270. package/dist/cjs/SubHeader.js +178 -0
  271. package/dist/cjs/SubHeader.js.map +1 -0
  272. package/dist/cjs/SuffixedInput.js +111 -0
  273. package/dist/cjs/SuffixedInput.js.map +1 -0
  274. package/dist/cjs/TableWrapper.js +32 -0
  275. package/dist/cjs/TableWrapper.js.map +1 -0
  276. package/dist/cjs/Taxonomy.js +442 -0
  277. package/dist/cjs/Taxonomy.js.map +1 -0
  278. package/dist/cjs/ThemeSidebar.js +1436 -0
  279. package/dist/cjs/ThemeSidebar.js.map +1 -0
  280. package/dist/cjs/TimeFormat.js +15 -0
  281. package/dist/cjs/TimeFormat.js.map +1 -0
  282. package/dist/cjs/TimezoneMismatchModal.js +143 -0
  283. package/dist/cjs/TimezoneMismatchModal.js.map +1 -0
  284. package/dist/cjs/ToggleFeatureCard.js +209 -0
  285. package/dist/cjs/ToggleFeatureCard.js.map +1 -0
  286. package/dist/cjs/defineProperty-886ed289.js +47 -0
  287. package/dist/cjs/defineProperty-886ed289.js.map +1 -0
  288. package/dist/cjs/extends-1b35a664.js +19 -0
  289. package/dist/cjs/extends-1b35a664.js.map +1 -0
  290. package/dist/cjs/index-00fdb8c2.js +542 -0
  291. package/dist/cjs/index-00fdb8c2.js.map +1 -0
  292. package/dist/cjs/index-248c4f4c.js +1186 -0
  293. package/dist/cjs/index-248c4f4c.js.map +1 -0
  294. package/dist/cjs/index-c55ad2bc.js +375 -0
  295. package/dist/cjs/index-c55ad2bc.js.map +1 -0
  296. package/dist/cjs/inject-css-80a5faa3.js +6 -0
  297. package/dist/cjs/inject-css-80a5faa3.js.map +1 -0
  298. package/dist/cjs/objectWithoutProperties-2fed2d7d.js +33 -0
  299. package/dist/cjs/objectWithoutProperties-2fed2d7d.js.map +1 -0
  300. package/dist/cjs/slicedToArray-f320d9e7.js +61 -0
  301. package/dist/cjs/slicedToArray-f320d9e7.js.map +1 -0
  302. package/dist/cjs/toConsumableArray-9abb3858.js +22 -0
  303. package/dist/cjs/toConsumableArray-9abb3858.js.map +1 -0
  304. package/dist/cjs/useColumns-a1c3668f.js +271 -0
  305. package/dist/cjs/useColumns-a1c3668f.js.map +1 -0
  306. package/dist/defineProperty-549061a7.js +43 -0
  307. package/dist/defineProperty-549061a7.js.map +1 -0
  308. package/dist/extends-093996c9.js +17 -0
  309. package/dist/extends-093996c9.js.map +1 -0
  310. package/dist/index-90c89467.js +509 -0
  311. package/dist/index-90c89467.js.map +1 -0
  312. package/dist/index-9720867c.js +372 -0
  313. package/dist/index-9720867c.js.map +1 -0
  314. package/dist/index-e5588516.js +1184 -0
  315. package/dist/index-e5588516.js.map +1 -0
  316. package/dist/inject-css-c86de496.js +4 -0
  317. package/dist/inject-css-c86de496.js.map +1 -0
  318. package/dist/objectWithoutProperties-a0edb288.js +31 -0
  319. package/dist/objectWithoutProperties-a0edb288.js.map +1 -0
  320. package/dist/slicedToArray-b4278ecd.js +57 -0
  321. package/dist/slicedToArray-b4278ecd.js.map +1 -0
  322. package/dist/toConsumableArray-1cc38429.js +20 -0
  323. package/dist/toConsumableArray-1cc38429.js.map +1 -0
  324. package/dist/useColumns-d17d1f72.js +258 -0
  325. package/dist/useColumns-d17d1f72.js.map +1 -0
  326. package/package.json +29 -17
  327. package/src/translations/de.json +7 -0
  328. package/src/translations/en.json +191 -31
  329. package/src/translations/es.json +7 -0
  330. package/src/translations/fr.json +7 -0
  331. package/src/translations/nl.json +7 -0
  332. package/src/translations/pl.json +7 -0
  333. package/src/translations/pt.json +7 -0
  334. package/types/Breadcrumbs.d.ts +1 -0
  335. package/types/Builder.d.ts +61 -12
  336. package/types/Columns.d.ts +112 -5
  337. package/types/ConfigurePageSidebar.d.ts +43 -0
  338. package/types/CopyToClipboardButton.d.ts +3 -0
  339. package/types/Currency.d.ts +48 -0
  340. package/types/CustomDomain.d.ts +2 -0
  341. package/types/CustomDomainDashboard.d.ts +14 -0
  342. package/types/DateRangeFilter.d.ts +2 -0
  343. package/types/DeleteArchiveModal.d.ts +60 -0
  344. package/types/EmailForm.d.ts +1 -1
  345. package/types/EmojiPicker.d.ts +33 -0
  346. package/types/EmojiReactions.d.ts +60 -0
  347. package/types/ErrorPage.d.ts +1 -0
  348. package/types/FloatingActionMenu.d.ts +56 -0
  349. package/types/Header.d.ts +2 -1
  350. package/types/HelpPopover.d.ts +42 -0
  351. package/types/Insights.d.ts +108 -0
  352. package/types/IntegrationCard.d.ts +2 -0
  353. package/types/KeyboardShortcuts.d.ts +2 -2
  354. package/types/MadeWith.d.ts +16 -0
  355. package/types/MoreDropdown.d.ts +4 -1
  356. package/types/NavigationHeader.d.ts +3 -1
  357. package/types/Onboarding.d.ts +63 -0
  358. package/types/OptionFields.d.ts +63 -0
  359. package/types/PhoneNumber.d.ts +6 -2
  360. package/types/ProductEmbed.d.ts +43 -0
  361. package/types/Rename.d.ts +4 -1
  362. package/types/Schedule.d.ts +2 -0
  363. package/types/Search.d.ts +2 -0
  364. package/types/Settings.d.ts +13 -10
  365. package/types/ShareRecordingPane.d.ts +50 -0
  366. package/types/ShareViaLink.d.ts +15 -4
  367. package/types/Sidebar.d.ts +16 -32
  368. package/types/SubHeader.d.ts +0 -1
  369. package/types/SuffixedInput.d.ts +43 -0
  370. package/types/ToggleFeatureCard.d.ts +8 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InlineInput.js","sources":["../../src/components/InlineInput/constants.js","../../src/components/InlineInput/utils.js","../../src/components/InlineInput/InlineInput.jsx","../../src/components/InlineInput/FormikInlineInput.jsx"],"sourcesContent":["import { t } from \"i18next\";\n\nexport const TOOLTIP_PROPS = {\n save: {\n content: t(\"neetoMolecules.common.actions.save\"),\n position: \"top\",\n delay: 300,\n },\n cancel: {\n content: t(\"neetoMolecules.common.actions.cancel\"),\n position: \"top\",\n delay: 300,\n },\n};\n","export const mergeRefs =\n (...refs) =>\n node =>\n refs.forEach(ref =>\n typeof ref === \"function\" ? ref(node) : (ref.current = node)\n );\n","import React, { useEffect, useState, useRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport { isNotEmpty, noop } from \"neetocist\";\nimport useOnClickOutside from \"neetocommons/react-utils/useOnClickOutside\";\nimport useStateWithDependency from \"neetocommons/react-utils/useStateWithDependency\";\nimport useHotkeys from \"neetohotkeys\";\nimport { Check, Close } from \"neetoicons\";\nimport { Button, Input } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { isNotNil } from \"ramda\";\n\nimport { TOOLTIP_PROPS } from \"./constants\";\nimport \"./inlineinput.scss\";\nimport { mergeRefs } from \"./utils\";\n\nconst InlineInput = React.forwardRef((props, ref) => {\n const {\n saveOnBlur = false,\n clearOnSave = false,\n nullable = false,\n value = \"\",\n isSaving,\n className = \"\",\n handleSubmit = noop,\n handleCancel = noop,\n submitButtonProps = {},\n cancelButtonProps = {},\n dirty,\n onInlineInputBlur = noop,\n ...otherProps\n } = props;\n\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [internalValue, setInternalValue] = useStateWithDependency(value ?? \"\");\n const inputRef = useRef(null);\n const inputWrapperRef = useRef(null);\n const trimmedValue = internalValue && internalValue?.trim();\n const isValidValue =\n nullable || (isNotEmpty(trimmedValue) && isNotNil(trimmedValue));\n\n const isDirty = internalValue !== value || dirty;\n\n const handleFocusOut = () => {\n if (!isValidValue || isSubmitting) return;\n\n onInlineInputBlur(trimmedValue);\n\n if (saveOnBlur && isDirty) {\n onSubmit();\n\n return;\n }\n\n onCancel();\n };\n\n useOnClickOutside(inputWrapperRef, handleFocusOut);\n\n const onSubmit = async () => {\n setIsSubmitting(true);\n await handleSubmit(trimmedValue);\n setIsSubmitting(false);\n clearOnSave && setInternalValue(\"\");\n };\n\n const onCancel = () => {\n handleCancel(trimmedValue);\n };\n\n const closeRef = useHotkeys(\n \"escape\",\n event => {\n event.stopPropagation();\n onCancel();\n },\n { mode: \"scoped\" }\n );\n\n const submitRef = useHotkeys([\"command+return\", \"return\"], () => onSubmit(), {\n mode: \"scoped\",\n enabled: isValidValue,\n });\n\n useEffect(() => inputRef.current && inputRef.current.focus(), [isSubmitting]);\n\n return (\n <div\n className={classnames(\"flex flex-grow\", { [className]: className })}\n ref={inputWrapperRef}\n >\n <Input\n disableTrimOnBlur\n className=\"neeto-molecules-autosave-input\"\n data-testid=\"neeto-molecules-autosave-input\"\n disabled={isSubmitting}\n ref={mergeRefs(inputRef, closeRef, submitRef)}\n value={internalValue}\n {...otherProps}\n suffix={\n <>\n <Button\n data-testid=\"neeto-molecules-autosave-input-save\"\n icon={Check}\n loading={isSubmitting || isSaving}\n size=\"small\"\n style=\"text\"\n tabIndex={-1}\n tooltipProps={TOOLTIP_PROPS[\"save\"]}\n onClick={onSubmit}\n {...submitButtonProps}\n disabled={\n !isValidValue ||\n isSubmitting ||\n isSaving ||\n submitButtonProps.disabled ||\n !isDirty\n }\n />\n <Button\n {...{ ref }}\n data-testid=\"neeto-molecules-autosave-input-cancel\"\n icon={Close}\n size=\"small\"\n style=\"text\"\n tabIndex={-1}\n tooltipProps={TOOLTIP_PROPS[\"cancel\"]}\n onClick={onCancel}\n {...cancelButtonProps}\n disabled={isSubmitting || isSaving || cancelButtonProps.disabled}\n />\n </>\n }\n onChange={e => {\n otherProps?.onChange?.(e);\n setInternalValue(e.target.value);\n }}\n />\n </div>\n );\n});\n\nInlineInput.displayName = \"InlineInput\";\n\nInlineInput.propTypes = {\n /**\n * To provide additional classes to the component.\n */\n className: PropTypes.string,\n /**\n * To specify the text to be displayed in the component.\n */\n value: PropTypes.string,\n /**\n * To enable submission of empty values.\n */\n nullable: PropTypes.bool,\n /**\n * To specify whether the value is being saved.\n */\n isSaving: PropTypes.bool,\n /**\n * To specify whether to save the value on blur.\n */\n saveOnBlur: PropTypes.bool,\n /**\n * To specify whether to clear the input on save.\n */\n clearOnSave: PropTypes.bool,\n /**\n * To specify additional props for submit button.\n */\n submitButtonProps: PropTypes.object,\n /**\n * To specify additional props for cancel button.\n */\n cancelButtonProps: PropTypes.object,\n /**\n * Function to be called on clicking the submit button.\n */\n handleSubmit: PropTypes.func,\n /**\n * Function to be called on clicking the cancel button .\n */\n handleCancel: PropTypes.func,\n};\n\nexport default InlineInput;\n","import React from \"react\";\n\nimport { useField, useFormikContext } from \"formik\";\nimport { omit } from \"ramda\";\n\nimport InlineInput from \"./InlineInput\";\n\nconst FormikInlineInput = ({ name, ...props }) => {\n const [field, meta, { setValue, setTouched }] = useField(name);\n\n const { submitForm, isSubmitting, resetForm, dirty } = useFormikContext();\n\n return (\n <InlineInput\n error={meta.touched ? meta.error : \"\"}\n isSaving={isSubmitting}\n {...props}\n handleCancel={() => {\n resetForm();\n props.handleCancel?.();\n }}\n handleSubmit={value => {\n setValue(value);\n\n props.handleSubmit?.(value);\n\n return submitForm();\n }}\n {...{ ...omit([\"onBlur\"], field), dirty }}\n onInlineInputBlur={trimmedValue => {\n setValue(trimmedValue);\n setTouched(true);\n }}\n />\n );\n};\n\nexport default FormikInlineInput;\n"],"names":["TOOLTIP_PROPS","save","content","t","position","delay","cancel","mergeRefs","_len","arguments","length","refs","Array","_key","node","forEach","ref","current","InlineInput","React","forwardRef","props","_props$saveOnBlur","saveOnBlur","_props$clearOnSave","clearOnSave","_props$nullable","nullable","_props$value","value","isSaving","_props$className","className","_props$handleSubmit","handleSubmit","noop","_props$handleCancel","handleCancel","_props$submitButtonPr","submitButtonProps","_props$cancelButtonPr","cancelButtonProps","dirty","_props$onInlineInputB","onInlineInputBlur","otherProps","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","isSubmitting","setIsSubmitting","_useStateWithDependen","useStateWithDependency","_useStateWithDependen2","internalValue","setInternalValue","inputRef","useRef","inputWrapperRef","trimmedValue","trim","isValidValue","isNotEmpty","isNotNil","isDirty","handleFocusOut","onSubmit","onCancel","useOnClickOutside","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","stop","apply","closeRef","useHotkeys","event","stopPropagation","mode","submitRef","enabled","useEffect","focus","createElement","classnames","_defineProperty","Input","_extends","disableTrimOnBlur","disabled","suffix","Fragment","Button","icon","Check","loading","size","style","tabIndex","tooltipProps","onClick","Close","onChange","e","_otherProps$onChange","call","target","displayName","FormikInlineInput","name","_useField","useField","_useField2","field","meta","_useField2$","setValue","setTouched","_useFormikContext","useFormikContext","submitForm","resetForm","error","touched","_objectSpread","omit"],"mappings":"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"}
@@ -0,0 +1,310 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var neetoIcons = require('@bigbinary/neeto-icons');
5
+ var neetoui = require('@bigbinary/neetoui');
6
+ var reactI18next = require('react-i18next');
7
+ var DateRangeFilter = require('./DateRangeFilter.js');
8
+ var PageLoader = require('./PageLoader.js');
9
+ var i18next = require('i18next');
10
+ var ramda = require('ramda');
11
+ var neetoCist = require('@bigbinary/neeto-cist');
12
+ var HelpPopover = require('./HelpPopover.js');
13
+ require('./extends-1b35a664.js');
14
+ require('./slicedToArray-f320d9e7.js');
15
+ require('dayjs');
16
+ require('@bigbinary/neeto-commons-frontend/initializers');
17
+ require('./objectWithoutProperties-2fed2d7d.js');
18
+ require('./inject-css-80a5faa3.js');
19
+ require('classnames');
20
+
21
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
22
+
23
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
24
+
25
+ var DEFAULT_DEVICES = [{
26
+ label: i18next.t("neetoMolecules.insights.labels.devices.desktop"),
27
+ value: "desktop"
28
+ }, {
29
+ label: i18next.t("neetoMolecules.insights.labels.devices.mobile"),
30
+ value: "smartphone"
31
+ }];
32
+ var DEFAULT_OS = [{
33
+ label: i18next.t("neetoMolecules.insights.labels.os.macos"),
34
+ value: "mac"
35
+ }, {
36
+ label: i18next.t("neetoMolecules.insights.labels.os.windows"),
37
+ value: "windows"
38
+ }];
39
+ var DEFAULT_BROWSERS = [{
40
+ label: i18next.t("neetoMolecules.insights.labels.browsers.chrome"),
41
+ value: "chrome"
42
+ }, {
43
+ label: i18next.t("neetoMolecules.insights.labels.browsers.safari"),
44
+ value: "safari"
45
+ }];
46
+ ({
47
+ label: i18next.t("neetoMolecules.insights.labels.allTime"),
48
+ value: {
49
+ startDate: null,
50
+ endDate: null,
51
+ rangeType: "all"
52
+ }
53
+ });
54
+
55
+ var PercentageBar = function PercentageBar(_ref) {
56
+ var value = _ref.value;
57
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, value && /*#__PURE__*/React__default["default"].createElement("div", {
58
+ className: "neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2",
59
+ style: {
60
+ width: "".concat(value, "%")
61
+ }
62
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
63
+ style: "body3"
64
+ }, value, "%"));
65
+ };
66
+ var PercentageBar$1 = /*#__PURE__*/React.memo(PercentageBar);
67
+
68
+ var MetaInfoItem = function MetaInfoItem(_ref) {
69
+ var name = _ref.name,
70
+ value = _ref.value;
71
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
72
+ style: "body2",
73
+ textTransform: "capitalize"
74
+ }, name), /*#__PURE__*/React__default["default"].createElement("div", {
75
+ className: "col-span-3 flex items-center gap-2"
76
+ }, /*#__PURE__*/React__default["default"].createElement(PercentageBar$1, {
77
+ value: value
78
+ })));
79
+ };
80
+ var MetaInfoItem$1 = /*#__PURE__*/React.memo(MetaInfoItem);
81
+
82
+ var DataDistribution = function DataDistribution(_ref) {
83
+ var data = _ref.data;
84
+ return /*#__PURE__*/React__default["default"].createElement("div", {
85
+ className: "grid grid-cols-4 gap-2"
86
+ }, data.map(function (_ref2) {
87
+ var name = _ref2.name,
88
+ value = _ref2.value;
89
+ return /*#__PURE__*/React__default["default"].createElement(MetaInfoItem$1, {
90
+ name: name,
91
+ value: value,
92
+ key: name
93
+ });
94
+ }));
95
+ };
96
+
97
+ var getSum = function getSum(data, searchKey) {
98
+ var sum = 0;
99
+ for (var key in data) {
100
+ if (key.includes(searchKey)) sum += data[key];
101
+ }
102
+ return sum;
103
+ };
104
+ var transformInsights = function transformInsights(data, defaultItems) {
105
+ var othersData = Object.keys(data).filter(function (key) {
106
+ return !neetoCist.existsBy({
107
+ value: key
108
+ }, defaultItems);
109
+ }).map(function (key) {
110
+ return {
111
+ name: key,
112
+ value: data[key]
113
+ };
114
+ });
115
+ var defaultData = defaultItems.map(function (_ref) {
116
+ var label = _ref.label,
117
+ value = _ref.value;
118
+ return {
119
+ name: label,
120
+ value: getSum(data, value) || 0
121
+ };
122
+ });
123
+ return {
124
+ defaultData: defaultData,
125
+ othersData: othersData
126
+ };
127
+ };
128
+
129
+ var MetaInfo = function MetaInfo(_ref) {
130
+ var type = _ref.type,
131
+ data = _ref.data,
132
+ defaultItems = _ref.defaultItems;
133
+ var _useTranslation = reactI18next.useTranslation(),
134
+ t = _useTranslation.t;
135
+ var _transformInsights = transformInsights(data, defaultItems),
136
+ defaultData = _transformInsights.defaultData,
137
+ othersData = _transformInsights.othersData;
138
+ var othersSum = ramda.sum(ramda.values(ramda.pluck("value", othersData)));
139
+ return /*#__PURE__*/React__default["default"].createElement("div", {
140
+ className: "neeto-ui-bg-gray-100 neeto-ui-rounded p-4"
141
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
142
+ className: "mb-4",
143
+ style: "h6",
144
+ textTransform: "uppercase",
145
+ weight: "bold"
146
+ }, type), /*#__PURE__*/React__default["default"].createElement(DataDistribution, {
147
+ data: defaultData
148
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, {
149
+ content: /*#__PURE__*/React__default["default"].createElement(DataDistribution, {
150
+ data: othersData
151
+ }),
152
+ disabled: !othersSum,
153
+ position: "bottom"
154
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
155
+ className: "mt-2 grid grid-cols-4 gap-2"
156
+ }, /*#__PURE__*/React__default["default"].createElement(MetaInfoItem$1, {
157
+ name: t("neetoMolecules.insights.others"),
158
+ value: othersSum
159
+ }))));
160
+ };
161
+ var MetaInfo$1 = /*#__PURE__*/React.memo(MetaInfo);
162
+
163
+ var TimeItem = function TimeItem(_ref) {
164
+ var value = _ref.value,
165
+ suffix = _ref.suffix;
166
+ return /*#__PURE__*/React__default["default"].createElement("div", {
167
+ className: "flex items-end",
168
+ "data-testid": "time-item"
169
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
170
+ className: "mr-1",
171
+ style: "h1",
172
+ weight: "semibold"
173
+ }, value), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
174
+ lineHeight: "loose",
175
+ style: "body2"
176
+ }, suffix));
177
+ };
178
+ var TimeItem$1 = /*#__PURE__*/React.memo(TimeItem);
179
+
180
+ var MetricItem = function MetricItem(_ref) {
181
+ var metric = _ref.metric,
182
+ value = _ref.value,
183
+ helpText = _ref.helpText,
184
+ isTime = _ref.isTime,
185
+ isPercentage = _ref.isPercentage;
186
+ var renderTime = function renderTime(value) {
187
+ var hours = value.h,
188
+ minutes = value.m,
189
+ seconds = value.s;
190
+ var showSeconds = !hours && !minutes;
191
+ return /*#__PURE__*/React__default["default"].createElement("div", {
192
+ className: "flex gap-2"
193
+ }, !!hours && /*#__PURE__*/React__default["default"].createElement(TimeItem$1, {
194
+ suffix: "H",
195
+ value: hours
196
+ }), !!minutes && /*#__PURE__*/React__default["default"].createElement(TimeItem$1, {
197
+ suffix: "M",
198
+ value: minutes
199
+ }), (!!seconds || showSeconds) && /*#__PURE__*/React__default["default"].createElement(TimeItem$1, {
200
+ suffix: "S",
201
+ value: seconds
202
+ }));
203
+ };
204
+ return /*#__PURE__*/React__default["default"].createElement("div", {
205
+ className: "nf-insights__metric-item neeto-ui-border-gray-200 border-b pb-4"
206
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
207
+ className: "flex items-center justify-between gap-2"
208
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
209
+ className: "flex items-end"
210
+ }, isTime ? renderTime(value) : /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
211
+ className: "mr-1",
212
+ "data-testid": "insights-count",
213
+ style: "h1",
214
+ weight: "semibold"
215
+ }, value || 0, isPercentage ? "%" : "")), helpText && /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement(HelpPopover, {
216
+ description: helpText
217
+ }))), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
218
+ className: "neeto-ui-text-gray-700",
219
+ "data-cy": "insights-type",
220
+ style: "body2"
221
+ }, metric));
222
+ };
223
+ var MetricItem$1 = /*#__PURE__*/React.memo(MetricItem);
224
+
225
+ var Insights = function Insights(_ref) {
226
+ var insightsData = _ref.insightsData,
227
+ isLoading = _ref.isLoading,
228
+ timePeriod = _ref.timePeriod,
229
+ setTimePeriod = _ref.setTimePeriod,
230
+ _ref$helpTexts = _ref.helpTexts,
231
+ helpTexts = _ref$helpTexts === void 0 ? {} : _ref$helpTexts,
232
+ _ref$showWarningMessa = _ref.showWarningMessage,
233
+ showWarningMessage = _ref$showWarningMessa === void 0 ? false : _ref$showWarningMessa;
234
+ var _useTranslation = reactI18next.useTranslation(),
235
+ t = _useTranslation.t;
236
+ var visitCount = insightsData.visitCount,
237
+ startCount = insightsData.startCount,
238
+ submissionCount = insightsData.submissionCount,
239
+ completionRate = insightsData.completionRate,
240
+ averageSubmissionTime = insightsData.averageSubmissionTime,
241
+ devices = insightsData.devices,
242
+ operatingSystems = insightsData.operatingSystems,
243
+ browsers = insightsData.browsers;
244
+ if (isLoading) return /*#__PURE__*/React__default["default"].createElement(PageLoader, null);
245
+ return /*#__PURE__*/React__default["default"].createElement("div", {
246
+ className: "mx-auto pt-10",
247
+ "data-testid": "insights"
248
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
249
+ className: "mb-11 flex w-full items-center "
250
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
251
+ "data-cy": "submissions-insights-title",
252
+ style: "h2"
253
+ }, t("neetoMolecules.insights.title")), showWarningMessage && /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, {
254
+ content: t("neetoMolecules.insights.dataInaccuracyWarning"),
255
+ position: "right"
256
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
257
+ className: "ml-3"
258
+ }, /*#__PURE__*/React__default["default"].createElement(neetoIcons.Warning, {
259
+ className: "neeto-ui-text-warning-500",
260
+ "data-testid": "insights-warning",
261
+ size: 20
262
+ }))), /*#__PURE__*/React__default["default"].createElement("span", {
263
+ className: "ml-auto"
264
+ }, /*#__PURE__*/React__default["default"].createElement(DateRangeFilter, {
265
+ setTimePeriod: setTimePeriod,
266
+ timePeriod: timePeriod
267
+ }))), /*#__PURE__*/React__default["default"].createElement("div", {
268
+ className: "mb-8 flex flex-wrap justify-between"
269
+ }, /*#__PURE__*/React__default["default"].createElement(MetricItem$1, {
270
+ helpText: helpTexts["visitCount"],
271
+ metric: t("neetoMolecules.insights.metrics.visits"),
272
+ value: visitCount
273
+ }), /*#__PURE__*/React__default["default"].createElement(MetricItem$1, {
274
+ helpText: helpTexts["startCount"],
275
+ metric: t("neetoMolecules.insights.metrics.starts"),
276
+ value: startCount
277
+ }), /*#__PURE__*/React__default["default"].createElement(MetricItem$1, {
278
+ helpText: helpTexts["submissions"],
279
+ metric: t("neetoMolecules.insights.metrics.submissions"),
280
+ value: submissionCount
281
+ }), /*#__PURE__*/React__default["default"].createElement(MetricItem$1, {
282
+ isPercentage: true,
283
+ helpText: helpTexts["completionRate"],
284
+ metric: t("neetoMolecules.insights.metrics.completionRate"),
285
+ value: completionRate
286
+ }), /*#__PURE__*/React__default["default"].createElement(MetricItem$1, {
287
+ isTime: true,
288
+ helpText: helpTexts["averageSubmissionTime"],
289
+ metric: t("neetoMolecules.insights.metrics.avgTimeToComplete"),
290
+ timeSuffix: t("neetoMolecules.insights.mins"),
291
+ value: averageSubmissionTime
292
+ })), /*#__PURE__*/React__default["default"].createElement("div", {
293
+ className: "grid grid-cols-1 gap-6 sm:grid-cols-2 md:grid-cols-3"
294
+ }, /*#__PURE__*/React__default["default"].createElement(MetaInfo$1, {
295
+ data: devices,
296
+ defaultItems: DEFAULT_DEVICES,
297
+ type: t("neetoMolecules.insights.devices")
298
+ }), /*#__PURE__*/React__default["default"].createElement(MetaInfo$1, {
299
+ data: operatingSystems,
300
+ defaultItems: DEFAULT_OS,
301
+ type: t("neetoMolecules.insights.os")
302
+ }), /*#__PURE__*/React__default["default"].createElement(MetaInfo$1, {
303
+ data: browsers,
304
+ defaultItems: DEFAULT_BROWSERS,
305
+ type: t("neetoMolecules.insights.browsers")
306
+ })));
307
+ };
308
+
309
+ module.exports = Insights;
310
+ //# sourceMappingURL=Insights.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Insights.js","sources":["../../src/components/Insights/constants.js","../../src/components/Insights/MetaInfo/PercentageBar.jsx","../../src/components/Insights/MetaInfo/MetaInfoItem.jsx","../../src/components/Insights/MetaInfo/DataDistribution.jsx","../../src/components/Insights/utils.js","../../src/components/Insights/MetaInfo/index.jsx","../../src/components/Insights/TimeItem.jsx","../../src/components/Insights/MetricItem.jsx","../../src/components/Insights/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\n\nexport const DEFAULT_DEVICES = [\n {\n label: t(\"neetoMolecules.insights.labels.devices.desktop\"),\n value: \"desktop\",\n },\n {\n label: t(\"neetoMolecules.insights.labels.devices.mobile\"),\n value: \"smartphone\",\n },\n];\n\nexport const DEFAULT_OS = [\n { label: t(\"neetoMolecules.insights.labels.os.macos\"), value: \"mac\" },\n {\n label: t(\"neetoMolecules.insights.labels.os.windows\"),\n value: \"windows\",\n },\n];\n\nexport const DEFAULT_BROWSERS = [\n {\n label: t(\"neetoMolecules.insights.labels.browsers.chrome\"),\n value: \"chrome\",\n },\n {\n label: t(\"neetoMolecules.insights.labels.browsers.safari\"),\n value: \"safari\",\n },\n];\n\nexport const INITIAL_TIME_PERIOD_VALUE = {\n label: t(\"neetoMolecules.insights.labels.allTime\"),\n value: { startDate: null, endDate: null, rangeType: \"all\" },\n};\n","import React, { memo } from \"react\";\n\nimport { Typography } from \"neetoui\";\n\nconst PercentageBar = ({ value }) => (\n <>\n {value && (\n <div\n className=\"neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2\"\n style={{ width: `${value}%` }}\n />\n )}\n <Typography style=\"body3\">{value}%</Typography>\n </>\n);\n\nexport default memo(PercentageBar);\n","import React, { memo } from \"react\";\n\nimport { Typography } from \"neetoui\";\n\nimport PercentageBar from \"./PercentageBar\";\n\nconst MetaInfoItem = ({ name, value }) => (\n <>\n <Typography style=\"body2\" textTransform=\"capitalize\">\n {name}\n </Typography>\n <div className=\"col-span-3 flex items-center gap-2\">\n <PercentageBar {...{ value }} />\n </div>\n </>\n);\n\nexport default memo(MetaInfoItem);\n","import React from \"react\";\n\nimport MetaInfoItem from \"./MetaInfoItem\";\n\nconst DataDistribution = ({ data }) => (\n <div className=\"grid grid-cols-4 gap-2\">\n {data.map(({ name, value }) => (\n <MetaInfoItem {...{ name, value }} key={name} />\n ))}\n </div>\n);\n\nexport default DataDistribution;\n","import { existsBy } from \"neetocist\";\n\nconst getSum = (data, searchKey) => {\n let sum = 0;\n for (const key in data) {\n if (key.includes(searchKey)) sum += data[key];\n }\n\n return sum;\n};\n\nexport const transformInsights = (data, defaultItems) => {\n const othersData = Object.keys(data)\n .filter(key => !existsBy({ value: key }, defaultItems))\n .map(key => ({ name: key, value: data[key] }));\n\n const defaultData = defaultItems.map(({ label, value }) => ({\n name: label,\n value: getSum(data, value) || 0,\n }));\n\n return { defaultData, othersData };\n};\n","import React, { memo } from \"react\";\n\nimport { Tooltip, Typography } from \"neetoui\";\nimport { pluck, sum, values } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport DataDistribution from \"./DataDistribution\";\nimport MetaInfoItem from \"./MetaInfoItem\";\n\nimport { transformInsights } from \"../utils\";\n\nconst MetaInfo = ({ type, data, defaultItems }) => {\n const { t } = useTranslation();\n const { defaultData, othersData } = transformInsights(data, defaultItems);\n\n const othersSum = sum(values(pluck(\"value\", othersData)));\n\n return (\n <div className=\"neeto-ui-bg-gray-100 neeto-ui-rounded p-4\">\n <Typography\n className=\"mb-4\"\n style=\"h6\"\n textTransform=\"uppercase\"\n weight=\"bold\"\n >\n {type}\n </Typography>\n <DataDistribution data={defaultData} />\n <Tooltip\n content={<DataDistribution data={othersData} />}\n disabled={!othersSum}\n position=\"bottom\"\n >\n <div className=\"mt-2 grid grid-cols-4 gap-2\">\n <MetaInfoItem\n name={t(\"neetoMolecules.insights.others\")}\n value={othersSum}\n />\n </div>\n </Tooltip>\n </div>\n );\n};\n\nexport default memo(MetaInfo);\n","import React, { memo } from \"react\";\n\nimport { Typography } from \"neetoui\";\n\nconst TimeItem = ({ value, suffix }) => (\n <div className=\"flex items-end\" data-testid=\"time-item\">\n <Typography className=\"mr-1\" style=\"h1\" weight=\"semibold\">\n {value}\n </Typography>\n <Typography lineHeight=\"loose\" style=\"body2\">\n {suffix}\n </Typography>\n </div>\n);\n\nexport default memo(TimeItem);\n","import React, { memo } from \"react\";\n\nimport { Typography } from \"neetoui\";\n\nimport HelpPopover from \"components/HelpPopover\";\n\nimport TimeItem from \"./TimeItem\";\n\nconst MetricItem = ({ metric, value, helpText, isTime, isPercentage }) => {\n const renderTime = value => {\n const { h: hours, m: minutes, s: seconds } = value;\n const showSeconds = !hours && !minutes;\n\n return (\n <div className=\"flex gap-2\">\n {!!hours && <TimeItem suffix=\"H\" value={hours} />}\n {!!minutes && <TimeItem suffix=\"M\" value={minutes} />}\n {(!!seconds || showSeconds) && <TimeItem suffix=\"S\" value={seconds} />}\n </div>\n );\n };\n\n return (\n <div className=\"nf-insights__metric-item neeto-ui-border-gray-200 border-b pb-4\">\n <div className=\"flex items-center justify-between gap-2\">\n <div className=\"flex items-end\">\n {isTime ? (\n renderTime(value)\n ) : (\n <Typography\n className=\"mr-1\"\n data-testid=\"insights-count\"\n style=\"h1\"\n weight=\"semibold\"\n >\n {value || 0}\n {isPercentage ? \"%\" : \"\"}\n </Typography>\n )}\n </div>\n {helpText && (\n <div>\n <HelpPopover description={helpText} />\n </div>\n )}\n </div>\n <Typography\n className=\"neeto-ui-text-gray-700\"\n data-cy=\"insights-type\"\n style=\"body2\"\n >\n {metric}\n </Typography>\n </div>\n );\n};\n\nexport default memo(MetricItem);\n","import React from \"react\";\n\nimport { Warning } from \"neetoicons\";\nimport { Tooltip, Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport DateRangeFilter from \"components/DateRangeFilter\";\nimport PageLoader from \"components/PageLoader\";\n\nimport { DEFAULT_DEVICES, DEFAULT_BROWSERS, DEFAULT_OS } from \"./constants\";\nimport MetaInfo from \"./MetaInfo\";\nimport MetricItem from \"./MetricItem\";\n\nconst Insights = ({\n insightsData,\n isLoading,\n timePeriod,\n setTimePeriod,\n helpTexts = {},\n showWarningMessage = false,\n}) => {\n const { t } = useTranslation();\n\n const {\n visitCount,\n startCount,\n submissionCount,\n completionRate,\n averageSubmissionTime,\n devices,\n operatingSystems,\n browsers,\n } = insightsData;\n\n if (isLoading) return <PageLoader />;\n\n return (\n <div className=\"mx-auto pt-10\" data-testid=\"insights\">\n <div className=\"mb-11 flex w-full items-center \">\n <Typography data-cy=\"submissions-insights-title\" style=\"h2\">\n {t(\"neetoMolecules.insights.title\")}\n </Typography>\n {showWarningMessage && (\n <Tooltip\n content={t(\"neetoMolecules.insights.dataInaccuracyWarning\")}\n position=\"right\"\n >\n <span className=\"ml-3\">\n <Warning\n className=\"neeto-ui-text-warning-500\"\n data-testid=\"insights-warning\"\n size={20}\n />\n </span>\n </Tooltip>\n )}\n <span className=\"ml-auto\">\n <DateRangeFilter {...{ setTimePeriod, timePeriod }} />\n </span>\n </div>\n <div className=\"mb-8 flex flex-wrap justify-between\">\n <MetricItem\n helpText={helpTexts[\"visitCount\"]}\n metric={t(\"neetoMolecules.insights.metrics.visits\")}\n value={visitCount}\n />\n <MetricItem\n helpText={helpTexts[\"startCount\"]}\n metric={t(\"neetoMolecules.insights.metrics.starts\")}\n value={startCount}\n />\n <MetricItem\n helpText={helpTexts[\"submissions\"]}\n metric={t(\"neetoMolecules.insights.metrics.submissions\")}\n value={submissionCount}\n />\n <MetricItem\n isPercentage\n helpText={helpTexts[\"completionRate\"]}\n metric={t(\"neetoMolecules.insights.metrics.completionRate\")}\n value={completionRate}\n />\n <MetricItem\n isTime\n helpText={helpTexts[\"averageSubmissionTime\"]}\n metric={t(\"neetoMolecules.insights.metrics.avgTimeToComplete\")}\n timeSuffix={t(\"neetoMolecules.insights.mins\")}\n value={averageSubmissionTime}\n />\n </div>\n <div className=\"grid grid-cols-1 gap-6 sm:grid-cols-2 md:grid-cols-3\">\n <MetaInfo\n data={devices}\n defaultItems={DEFAULT_DEVICES}\n type={t(\"neetoMolecules.insights.devices\")}\n />\n <MetaInfo\n data={operatingSystems}\n defaultItems={DEFAULT_OS}\n type={t(\"neetoMolecules.insights.os\")}\n />\n <MetaInfo\n data={browsers}\n defaultItems={DEFAULT_BROWSERS}\n type={t(\"neetoMolecules.insights.browsers\")}\n />\n </div>\n </div>\n );\n};\n\nInsights.propTypes = {\n /**\n * Object containing metrics and statistics for insights\n */\n insightsData: PropTypes.shape({\n visitCount: PropTypes.number,\n startCount: PropTypes.number,\n submissionCount: PropTypes.number,\n completionRate: PropTypes.number,\n averageSubmissionTime: PropTypes.shape({\n h: PropTypes.number,\n m: PropTypes.number,\n s: PropTypes.number,\n }),\n devices: PropTypes.shape({\n desktop: PropTypes.number,\n smartphone: PropTypes.number,\n }),\n operatingSystems: PropTypes.shape({\n mac: PropTypes.number,\n windows: PropTypes.number,\n }),\n browsers: PropTypes.shape({\n chrome: PropTypes.number,\n safari: PropTypes.number,\n }),\n }),\n /**\n * Indicates whether insights data is currently being fetched from an API\n */\n isLoading: PropTypes.bool,\n /**\n * The state corresponding to the currently selected date range.\n */\n timePeriod: PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.object,\n }),\n /**\n * The setter method for `timePeriod` state.\n */\n setTimePeriod: PropTypes.func,\n /**\n * Object containing explanatory text for each metric, providing additional context that can help users understand the significance of the metrics displayed.\n */\n helpTexts: PropTypes.shape({\n visitCount: PropTypes.string,\n startCount: PropTypes.string,\n submissions: PropTypes.string,\n completionRate: PropTypes.string,\n averageSubmissionTime: PropTypes.string,\n }),\n /**\n * Displays a warning to indicate that the insights may not be accurate, as the insights integration occurred after the record's creation.\n */\n showWarningMessage: PropTypes.bool,\n};\n\nexport default Insights;\n"],"names":["DEFAULT_DEVICES","label","t","value","DEFAULT_OS","DEFAULT_BROWSERS","startDate","endDate","rangeType","PercentageBar","_ref","React","createElement","Fragment","className","style","width","concat","Typography","memo","MetaInfoItem","name","textTransform","DataDistribution","data","map","_ref2","key","getSum","searchKey","sum","includes","transformInsights","defaultItems","othersData","Object","keys","filter","existsBy","defaultData","MetaInfo","type","_useTranslation","useTranslation","_transformInsights","othersSum","values","pluck","weight","Tooltip","content","disabled","position","TimeItem","suffix","lineHeight","MetricItem","metric","helpText","isTime","isPercentage","renderTime","hours","h","minutes","m","seconds","s","showSeconds","HelpPopover","description","Insights","insightsData","isLoading","timePeriod","setTimePeriod","_ref$helpTexts","helpTexts","_ref$showWarningMessa","showWarningMessage","visitCount","startCount","submissionCount","completionRate","averageSubmissionTime","devices","operatingSystems","browsers","PageLoader","Warning","size","DateRangeFilter","timeSuffix"],"mappings":"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"}
@@ -0,0 +1,208 @@
1
+ 'use strict';
2
+
3
+ var _extends = require('./extends-1b35a664.js');
4
+ var objectWithoutProperties = require('./objectWithoutProperties-2fed2d7d.js');
5
+ var React = require('react');
6
+ var classnames = require('classnames');
7
+ var neetoCist = require('@bigbinary/neeto-cist');
8
+ var general = require('@bigbinary/neeto-commons-frontend/utils/general');
9
+ var neetoui = require('@bigbinary/neetoui');
10
+ var ramda = require('ramda');
11
+ var reactI18next = require('react-i18next');
12
+ var MoreDropdown = require('./MoreDropdown.js');
13
+ var neetoIcons = require('@bigbinary/neeto-icons');
14
+ require('./defineProperty-886ed289.js');
15
+ require('./inject-css-80a5faa3.js');
16
+
17
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
18
+
19
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
20
+ var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
21
+
22
+ var Dropdown = function Dropdown(_ref) {
23
+ var customDropdown = _ref.customDropdown,
24
+ _ref$handleManage = _ref.handleManage,
25
+ handleManage = _ref$handleManage === void 0 ? neetoCist.noop : _ref$handleManage,
26
+ _ref$hideDisconnect = _ref.hideDisconnect,
27
+ hideDisconnect = _ref$hideDisconnect === void 0 ? false : _ref$hideDisconnect,
28
+ _ref$onDisconnect = _ref.onDisconnect,
29
+ onDisconnect = _ref$onDisconnect === void 0 ? neetoCist.noop : _ref$onDisconnect;
30
+ var _useTranslation = reactI18next.useTranslation(),
31
+ t = _useTranslation.t;
32
+ if (ramda.isNotNil(customDropdown)) {
33
+ return /*#__PURE__*/React__default["default"].createElement("div", {
34
+ onClick: function onClick(e) {
35
+ return e.stopPropagation();
36
+ }
37
+ }, customDropdown);
38
+ }
39
+ var isManageable = ramda.isNotNil(handleManage);
40
+ if (!isManageable && hideDisconnect) {
41
+ return null;
42
+ }
43
+ return /*#__PURE__*/React__default["default"].createElement("div", {
44
+ onClick: function onClick(e) {
45
+ return e.stopPropagation();
46
+ }
47
+ }, /*#__PURE__*/React__default["default"].createElement(MoreDropdown, {
48
+ menuItems: [{
49
+ isVisible: isManageable,
50
+ onClick: handleManage,
51
+ label: t("neetoMolecules.integrationCard.manage"),
52
+ key: "integration-card-manage-integration"
53
+ }, {
54
+ isVisible: !hideDisconnect,
55
+ onClick: onDisconnect,
56
+ label: t("neetoMolecules.integrationCard.disconnect"),
57
+ key: "integration-card-manage-disconnection"
58
+ }]
59
+ }));
60
+ };
61
+
62
+ var Status = function Status(_ref) {
63
+ var isExpired = _ref.isExpired;
64
+ var _useTranslation = reactI18next.useTranslation(),
65
+ t = _useTranslation.t;
66
+ var tagProps = isExpired ? {
67
+ icon: neetoIcons.Warning,
68
+ label: t("neetoMolecules.integrationCard.tags.expired"),
69
+ style: "warning"
70
+ } : {
71
+ icon: neetoIcons.Check,
72
+ label: t("neetoMolecules.integrationCard.tags.connected"),
73
+ style: "success"
74
+ };
75
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Tag, _extends._extends({
76
+ className: "flex-row-reverse"
77
+ }, tagProps, {
78
+ "data-testid": "integration-status"
79
+ }));
80
+ };
81
+
82
+ var _excluded = ["icon", "subIcons", "label", "description", "className", "onConnect", "onDisconnect", "onManage", "isLoading", "isConnected", "isFailed", "isExpired", "disabled", "hidden", "hideDisconnect", "onClick", "tooltipProps", "customDropdown", "dataCy", "connectPath", "connectUrl", "children"];
83
+ var IntegrationCard = function IntegrationCard(_ref) {
84
+ var Icon = _ref.icon,
85
+ _ref$subIcons = _ref.subIcons,
86
+ subIcons = _ref$subIcons === void 0 ? [] : _ref$subIcons,
87
+ _ref$label = _ref.label,
88
+ label = _ref$label === void 0 ? "" : _ref$label,
89
+ _ref$description = _ref.description,
90
+ description = _ref$description === void 0 ? "" : _ref$description,
91
+ _ref$className = _ref.className,
92
+ className = _ref$className === void 0 ? "" : _ref$className,
93
+ _ref$onConnect = _ref.onConnect,
94
+ onConnect = _ref$onConnect === void 0 ? neetoCist.noop : _ref$onConnect,
95
+ _ref$onDisconnect = _ref.onDisconnect,
96
+ onDisconnect = _ref$onDisconnect === void 0 ? neetoCist.noop : _ref$onDisconnect,
97
+ _ref$onManage = _ref.onManage,
98
+ onManage = _ref$onManage === void 0 ? undefined : _ref$onManage,
99
+ _ref$isLoading = _ref.isLoading,
100
+ isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
101
+ _ref$isConnected = _ref.isConnected,
102
+ isConnected = _ref$isConnected === void 0 ? false : _ref$isConnected,
103
+ _ref$isFailed = _ref.isFailed,
104
+ isFailed = _ref$isFailed === void 0 ? false : _ref$isFailed,
105
+ _ref$isExpired = _ref.isExpired,
106
+ isExpired = _ref$isExpired === void 0 ? false : _ref$isExpired,
107
+ _ref$disabled = _ref.disabled,
108
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
109
+ _ref$hidden = _ref.hidden,
110
+ hidden = _ref$hidden === void 0 ? false : _ref$hidden,
111
+ _ref$hideDisconnect = _ref.hideDisconnect,
112
+ hideDisconnect = _ref$hideDisconnect === void 0 ? false : _ref$hideDisconnect,
113
+ _ref$onClick = _ref.onClick,
114
+ onCardClick = _ref$onClick === void 0 ? undefined : _ref$onClick,
115
+ _ref$tooltipProps = _ref.tooltipProps,
116
+ tooltipProps = _ref$tooltipProps === void 0 ? {} : _ref$tooltipProps,
117
+ _ref$customDropdown = _ref.customDropdown,
118
+ customDropdown = _ref$customDropdown === void 0 ? null : _ref$customDropdown,
119
+ _ref$dataCy = _ref.dataCy,
120
+ dataCy = _ref$dataCy === void 0 ? "" : _ref$dataCy,
121
+ _ref$connectPath = _ref.connectPath,
122
+ connectPath = _ref$connectPath === void 0 ? "" : _ref$connectPath,
123
+ _ref$connectUrl = _ref.connectUrl,
124
+ connectUrl = _ref$connectUrl === void 0 ? "" : _ref$connectUrl,
125
+ children = _ref.children,
126
+ otherProps = objectWithoutProperties._objectWithoutProperties(_ref, _excluded);
127
+ var _useTranslation = reactI18next.useTranslation(),
128
+ t = _useTranslation.t;
129
+ if (hidden) return null;
130
+ var isCardClickable = isConnected && ramda.isNotNil(onCardClick);
131
+ var cardProps = isCardClickable ? {
132
+ onClick: onCardClick
133
+ } : {};
134
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, _extends._extends({
135
+ disabled: !disabled,
136
+ position: "top",
137
+ content: disabled && t("neetoMolecules.integrationCard.tooltip.integrationNotAvailable")
138
+ }, tooltipProps), /*#__PURE__*/React__default["default"].createElement("div", _extends._extends({
139
+ "data-cy": dataCy,
140
+ "data-testid": "integration-card",
141
+ className: classnames__default["default"]("neeto-ui-border-gray-300 neeto-ui-shadow-xs hover:neeto-ui-border-gray-500 focus:neeto-ui-border-gray-500 neeto-ui-rounded-lg flex flex-col border p-6 no-underline outline-none transition-colors", {
142
+ "hover:neeto-ui-bg-100 cursor-not-allowed opacity-50": disabled,
143
+ "cursor-pointer": isCardClickable
144
+ }, className)
145
+ }, cardProps, otherProps), /*#__PURE__*/React__default["default"].createElement("div", {
146
+ className: "flex flex-grow justify-between",
147
+ "data-cy": "integration-tabs"
148
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
149
+ className: "flex min-w-0 flex-col justify-end"
150
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
151
+ className: "relative mb-4 flex h-8"
152
+ }, Icon && /*#__PURE__*/React__default["default"].createElement(Icon, {
153
+ size: 32
154
+ })), /*#__PURE__*/React__default["default"].createElement("div", {
155
+ className: "my-auto"
156
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
157
+ className: "mb-2",
158
+ "data-cy": "integration-card-label",
159
+ style: "h4",
160
+ weight: "semibold"
161
+ }, label), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
162
+ className: "break-words",
163
+ "data-cy": "".concat(general.joinHyphenCase(label), "-integration-description"),
164
+ style: "body2"
165
+ }, description), children)), neetoCist.isNotEmpty(subIcons) && /*#__PURE__*/React__default["default"].createElement("div", {
166
+ className: "flex h-24 flex-col gap-2"
167
+ }, subIcons.map(function (Icon, index) {
168
+ return /*#__PURE__*/React__default["default"].createElement(Icon, {
169
+ className: "neeto-ui-text-gray-600",
170
+ key: index,
171
+ size: 24
172
+ });
173
+ }))), /*#__PURE__*/React__default["default"].createElement("div", {
174
+ className: "neeto-ui-border-gray-300 mt-4 w-full border-t pt-2"
175
+ }, isLoading ? /*#__PURE__*/React__default["default"].createElement("div", {
176
+ className: "mt-3 flex items-center justify-start"
177
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Spinner, null)) : /*#__PURE__*/React__default["default"].createElement("div", {
178
+ className: "flex h-8 items-center justify-between"
179
+ }, isConnected && /*#__PURE__*/React__default["default"].createElement(Status, {
180
+ isExpired: isExpired
181
+ }), isFailed && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
182
+ className: "neeto-ui-text-warning-500",
183
+ "data-cy": "connect-button",
184
+ disabled: disabled || isLoading,
185
+ href: connectUrl,
186
+ label: t("neetoMolecules.integrationCard.tryAgain"),
187
+ style: "link",
188
+ to: connectPath,
189
+ onClick: onConnect
190
+ }), !isConnected && !isFailed && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
191
+ "data-cy": "connect-button",
192
+ "data-testid": "integraiton-card-connect-button",
193
+ disabled: disabled || isLoading,
194
+ href: connectUrl,
195
+ label: t("neetoMolecules.integrationCard.connect"),
196
+ style: "link",
197
+ to: connectPath,
198
+ onClick: onConnect
199
+ }), (isConnected || isFailed) && /*#__PURE__*/React__default["default"].createElement(Dropdown, {
200
+ customDropdown: customDropdown,
201
+ hideDisconnect: hideDisconnect,
202
+ onDisconnect: onDisconnect,
203
+ handleManage: onManage
204
+ })))));
205
+ };
206
+
207
+ module.exports = IntegrationCard;
208
+ //# sourceMappingURL=IntegrationCard.js.map