@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,777 @@
1
+ 'use strict';
2
+
3
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
5
+ var React = require('react');
6
+ var classnames = require('classnames');
7
+ var neetoIcons = require('@bigbinary/neeto-icons');
8
+ var neetoui = require('@bigbinary/neetoui');
9
+ var ramda = require('ramda');
10
+ var reactI18next = require('react-i18next');
11
+ var Codeblock = require('./Codeblock.js');
12
+ var i18next = require('i18next');
13
+ var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
14
+ var injectCss = require('./inject-css-80a5faa3.js');
15
+ require('@babel/runtime/helpers/extends');
16
+ require('react-syntax-highlighter');
17
+ require('react-syntax-highlighter/dist/esm/styles/prism');
18
+ require('./CopyToClipboardButton.js');
19
+ require('@babel/runtime/helpers/objectWithoutProperties');
20
+ require('@bigbinary/neeto-commons-frontend/utils/general');
21
+
22
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
23
+
24
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
25
+ var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
26
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
27
+ var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
28
+ var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
29
+
30
+ var Code = function Code(_ref) {
31
+ var code = _ref.code;
32
+ return /*#__PURE__*/React__default["default"].createElement("div", {
33
+ className: "relative w-full overflow-y-auto",
34
+ "data-cy": "embed-code-block",
35
+ "data-testid": "embed-code-block"
36
+ }, /*#__PURE__*/React__default["default"].createElement(Codeblock, {
37
+ code: code
38
+ }));
39
+ };
40
+
41
+ var TAB_KEYS = {
42
+ HTML: "html",
43
+ PREVIEW: "preview"
44
+ };
45
+ var TABS = [{
46
+ key: TAB_KEYS.HTML,
47
+ label: i18next.t("neetoMolecules.productEmbed.tab.html"),
48
+ icon: neetoIcons.Code
49
+ }, {
50
+ key: TAB_KEYS.PREVIEW,
51
+ label: i18next.t("neetoMolecules.productEmbed.tab.preview"),
52
+ icon: neetoIcons.Eye
53
+ }];
54
+ var EMBED_OPTIONS = {
55
+ INLINE: "inline",
56
+ FLOATING_POPUP: "floatingPopup",
57
+ ELEMENT_POPUP: "elementPopup"
58
+ };
59
+ var DEFAULT_CUSTOMIZATION = _defineProperty__default["default"](_defineProperty__default["default"](_defineProperty__default["default"]({}, EMBED_OPTIONS.INLINE, {
60
+ width: 100,
61
+ height: 100,
62
+ elementSelector: "inline-embed-container"
63
+ }), EMBED_OPTIONS.FLOATING_POPUP, {
64
+ showIcon: false,
65
+ btnText: "Open",
66
+ btnColor: "#6f14ed",
67
+ btnTextColor: "#fff",
68
+ btnPosition: "bottomRight"
69
+ }), EMBED_OPTIONS.ELEMENT_POPUP, {
70
+ elementSelector: "open-popup-button"
71
+ });
72
+ var SCRIPT_ID = "embed-script";
73
+
74
+ var FLOATING_BUTTON_POSITIONS = [{
75
+ label: i18next.t("neetoMolecules.productEmbed.customization.position.bottomLeft"),
76
+ value: "bottomLeft"
77
+ }, {
78
+ label: i18next.t("neetoMolecules.productEmbed.customization.position.bottomRight"),
79
+ value: "bottomRight"
80
+ }];
81
+ var INITIAL_QUERY_PARAM = {
82
+ name: "",
83
+ value: ""
84
+ };
85
+
86
+ var embedBaseScript = function embedBaseScript(embedScriptLink) {
87
+ return "<script>window.".concat(globalProps.appName, " = window.").concat(globalProps.appName, " || { embed: function(){(").concat(globalProps.appName, ".q=").concat(globalProps.appName, ".q||[]).push(arguments)} };</script>\n <script async\n src=\"").concat(embedScriptLink, "\">\n </script>");
88
+ };
89
+ var embedEnv = function embedEnv() {
90
+ return globalProps.railsEnv !== "production" ? "\n\t env: \"".concat(globalProps.railsEnv, "\",") : "";
91
+ };
92
+ var embedQueryParam = function embedQueryParam(queryParams) {
93
+ return queryParams ? "\n\t queryParams: ".concat(queryParams, ",") : "";
94
+ };
95
+ var parseExtraArgs = function parseExtraArgs(extraArgs) {
96
+ return ramda.toPairs(extraArgs).map(function (_ref) {
97
+ var _ref2 = _slicedToArray__default["default"](_ref, 2),
98
+ key = _ref2[0],
99
+ value = _ref2[1];
100
+ return "\n\t ".concat(key, ": \"").concat(value, "\"");
101
+ });
102
+ };
103
+ var inlineEmbedCode = function inlineEmbedCode(_ref3) {
104
+ var customization = _ref3.customization,
105
+ id = _ref3.id,
106
+ embedScriptLink = _ref3.embedScriptLink,
107
+ extraArgs = _ref3.extraArgs;
108
+ var elementSelector = customization.elementSelector,
109
+ _customization$width = customization.width,
110
+ width = _customization$width === void 0 ? 100 : _customization$width,
111
+ _customization$height = customization.height,
112
+ height = _customization$height === void 0 ? 100 : _customization$height,
113
+ queryParams = customization.queryParams;
114
+ return "\n <!-- ".concat(globalProps.appName, " inline embed code begins -->\n <div style=\"min-width: 90vw; height: 90vh;\" id=\"").concat(elementSelector, "\">\n <!-- ").concat(globalProps.appName, " widget will be added here -->\n </div>\n ").concat(embedBaseScript(embedScriptLink), "\n <script>\n ").concat(globalProps.appName, ".embed({\n type: \"inline\",\n id: \"").concat(id, "\",\n organization: \"").concat(globalProps.organization.subdomain, "\",\n elementSelector: \"#").concat(elementSelector, "\",\n styles: { height: \"").concat(height, "%\", width: \"").concat(width, "%\"},").concat(embedQueryParam(queryParams)).concat(embedEnv()).concat(parseExtraArgs(extraArgs), "\n });\n </script>\n <!-- ").concat(globalProps.appName, " inline embed code ends -->");
115
+ };
116
+ var floatingPopupEmbedCode = function floatingPopupEmbedCode(_ref4) {
117
+ var customization = _ref4.customization,
118
+ id = _ref4.id,
119
+ embedScriptLink = _ref4.embedScriptLink,
120
+ extraArgs = _ref4.extraArgs;
121
+ var btnTextColor = customization.btnTextColor,
122
+ showIcon = customization.showIcon,
123
+ btnText = customization.btnText,
124
+ btnPosition = customization.btnPosition,
125
+ btnColor = customization.btnColor,
126
+ icon = customization.icon,
127
+ queryParams = customization.queryParams;
128
+ return "\n <!-- ".concat(globalProps.appName, " floating-popup embed code begins -->\n ").concat(embedBaseScript(embedScriptLink), "\n <script>\n ").concat(globalProps.appName, ".embed({\n type: \"floatingPopup\",\n id: \"").concat(id, "\",\n organization: \"").concat(globalProps.organization.subdomain, "\",\n styles: {\n btnTextColor: \"").concat(btnTextColor, "\",\n btnPosition: \"").concat(btnPosition, "\",\n btnColor: \"").concat(btnColor, "\",\n btnText: \"").concat(btnText, "\", ").concat(icon ? "\n\t\tshowIcon: ".concat(showIcon, ",") : "", "\n },").concat(embedQueryParam(queryParams)).concat(embedEnv()).concat(parseExtraArgs(extraArgs), "\n });\n </script>\n <!-- ").concat(globalProps.appName, " floating-popup embed code ends -->");
129
+ };
130
+ var elementPopupEmbedCode = function elementPopupEmbedCode(_ref5) {
131
+ var customization = _ref5.customization,
132
+ id = _ref5.id,
133
+ embedScriptLink = _ref5.embedScriptLink,
134
+ extraArgs = _ref5.extraArgs;
135
+ var elementSelector = customization.elementSelector,
136
+ queryParams = customization.queryParams;
137
+ return "\n <!-- ".concat(globalProps.appName, " element-click embed code begins -->\n ").concat(embedBaseScript(embedScriptLink), "\n <script>\n ").concat(globalProps.appName, ".embed({\n type: \"elementClick\",\n id: \"").concat(id, "\",\n organization: \"").concat(globalProps.organization.subdomain, "\",\n elementSelector: \"#").concat(elementSelector, "\",").concat(embedQueryParam(queryParams)).concat(embedEnv()).concat(parseExtraArgs(extraArgs), "\n });\n </script>\n <!-- ").concat(globalProps.appName, " element-click embed code ends -->");
138
+ };
139
+ var embedCode = function embedCode(_ref6) {
140
+ var type = _ref6.type,
141
+ customization = _ref6.customization,
142
+ id = _ref6.id,
143
+ embedScriptLink = _ref6.embedScriptLink,
144
+ _ref6$extraArgs = _ref6.extraArgs,
145
+ extraArgs = _ref6$extraArgs === void 0 ? {} : _ref6$extraArgs;
146
+ switch (type) {
147
+ case "inline":
148
+ return inlineEmbedCode({
149
+ customization: customization,
150
+ id: id,
151
+ embedScriptLink: embedScriptLink,
152
+ extraArgs: extraArgs
153
+ });
154
+ case "floatingPopup":
155
+ return floatingPopupEmbedCode({
156
+ customization: customization,
157
+ id: id,
158
+ embedScriptLink: embedScriptLink,
159
+ extraArgs: extraArgs
160
+ });
161
+ case "elementPopup":
162
+ return elementPopupEmbedCode({
163
+ customization: customization,
164
+ id: id,
165
+ embedScriptLink: embedScriptLink,
166
+ extraArgs: extraArgs
167
+ });
168
+ default:
169
+ return "";
170
+ }
171
+ };
172
+ var buildDefaultCustomization = function buildDefaultCustomization(defaultCustomizations) {
173
+ return ramda.mergeDeepLeft(defaultCustomizations, DEFAULT_CUSTOMIZATION);
174
+ };
175
+ var buildQueryParamsFromInputFields = function buildQueryParamsFromInputFields(inputFields) {
176
+ var filteredInputFields = inputFields.filter(function (_ref7) {
177
+ var name = _ref7.name,
178
+ value = _ref7.value;
179
+ return name && value;
180
+ });
181
+ var queryParams = filteredInputFields.reduce(function (queryParams, _ref8) {
182
+ var name = _ref8.name,
183
+ value = _ref8.value;
184
+ queryParams[name] = value;
185
+ return queryParams;
186
+ }, {});
187
+ if (ramda.isEmpty(queryParams)) return "";
188
+ var queryParamJsonString = JSON.stringify(queryParams, null, 2);
189
+ return queryParamJsonString.replace(/"([^"]+)":/g, "$1: ").replace(/\n/g, " ").replace(/\s\s+/g, " ");
190
+ };
191
+
192
+ function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
193
+ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
194
+ var DynamicQueryParams = function DynamicQueryParams(_ref) {
195
+ var updateCustomization = _ref.updateCustomization;
196
+ var _useTranslation = reactI18next.useTranslation(),
197
+ t = _useTranslation.t;
198
+ var _useState = React.useState([INITIAL_QUERY_PARAM]),
199
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
200
+ queryParams = _useState2[0],
201
+ setQueryParams = _useState2[1];
202
+ var handleAddQueryParam = function handleAddQueryParam() {
203
+ setQueryParams([].concat(_toConsumableArray__default["default"](queryParams), [INITIAL_QUERY_PARAM]));
204
+ };
205
+ var handleRemoveQueryParam = function handleRemoveQueryParam(index) {
206
+ var newQueryParams = queryParams.filter(function (_, i) {
207
+ return i !== index;
208
+ });
209
+ setQueryParams(newQueryParams);
210
+ };
211
+ var handleInputChange = function handleInputChange(index, field, value) {
212
+ var newQueryParams = queryParams.map(function (param, i) {
213
+ return i === index ? _objectSpread$1(_objectSpread$1({}, param), {}, _defineProperty__default["default"]({}, field, value)) : param;
214
+ });
215
+ setQueryParams(newQueryParams);
216
+ };
217
+ React.useEffect(function () {
218
+ updateCustomization({
219
+ queryParams: buildQueryParamsFromInputFields(queryParams)
220
+ });
221
+ }, [queryParams]);
222
+ return /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement(neetoui.Label, {
223
+ className: "mb-2",
224
+ "data-cy": "dynamic-query-params-label"
225
+ }, t("neetoMolecules.productEmbed.customization.queryParam.label")), queryParams.map(function (param, index) {
226
+ return /*#__PURE__*/React__default["default"].createElement("div", {
227
+ className: "mb-1 flex gap-1",
228
+ key: index
229
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Input, {
230
+ "data-cy": "dynamic-query-key-name-input",
231
+ "data-testid": "dynamic-query-key-name-input",
232
+ name: "queryParams.".concat(index, ".name"),
233
+ value: param.name,
234
+ placeholder: t("neetoMolecules.productEmbed.customization.queryParam.keyNamePlaceholder"),
235
+ onChange: function onChange(e) {
236
+ return handleInputChange(index, "name", e.target.value);
237
+ }
238
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Input, {
239
+ "data-cy": "dynamic-query-key-value-input",
240
+ "data-testid": "dynamic-query-key-value-input",
241
+ name: "queryParams.".concat(index, ".value"),
242
+ value: param.value,
243
+ placeholder: t("neetoMolecules.productEmbed.customization.queryParam.keyValuePlaceholder"),
244
+ onChange: function onChange(e) {
245
+ return handleInputChange(index, "value", e.target.value);
246
+ }
247
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
248
+ "data-cy": "dynamic-query-delete-button",
249
+ icon: neetoIcons.Delete,
250
+ style: "text",
251
+ onClick: function onClick() {
252
+ return handleRemoveQueryParam(index);
253
+ }
254
+ }));
255
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
256
+ className: "my-2",
257
+ "data-cy": "dynamic-query-add-new-button",
258
+ icon: neetoIcons.Plus,
259
+ iconPosition: "left",
260
+ style: "link",
261
+ label: t("neetoMolecules.productEmbed.customization.queryParam.addQueryParam"),
262
+ onClick: handleAddQueryParam
263
+ }));
264
+ };
265
+
266
+ var ElementPopup$1 = function ElementPopup(_ref) {
267
+ var customization = _ref.customization,
268
+ updateCustomization = _ref.updateCustomization,
269
+ isQueryParamsEnabled = _ref.isQueryParamsEnabled;
270
+ var elementSelector = customization.elementSelector;
271
+ var _useTranslation = reactI18next.useTranslation(),
272
+ t = _useTranslation.t;
273
+ React.useEffect(function () {
274
+ if (isQueryParamsEnabled) return;
275
+ updateCustomization({
276
+ queryParams: undefined
277
+ });
278
+ }, []);
279
+ return /*#__PURE__*/React__default["default"].createElement("div", {
280
+ className: "space-y-6"
281
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
282
+ "data-cy": "element-popup-header",
283
+ style: "h4"
284
+ }, t("neetoMolecules.productEmbed.customization.elementPopup.title")), /*#__PURE__*/React__default["default"].createElement(neetoui.Callout, {
285
+ "data-cy": "element-popup-description"
286
+ }, t("neetoMolecules.productEmbed.customization.elementPopup.description")), /*#__PURE__*/React__default["default"].createElement(neetoui.Input, {
287
+ className: "w-full",
288
+ "data-cy": "element-id-input-field",
289
+ "data-testid": "element-id-input-field",
290
+ value: elementSelector,
291
+ error: !elementSelector && t("neetoMolecules.productEmbed.customization.elementPopup.warning"),
292
+ label: t("neetoMolecules.productEmbed.customization.elementPopup.elementId"),
293
+ onChange: function onChange(e) {
294
+ return updateCustomization({
295
+ elementSelector: e.target.value
296
+ });
297
+ }
298
+ }), isQueryParamsEnabled && /*#__PURE__*/React__default["default"].createElement(DynamicQueryParams, {
299
+ updateCustomization: updateCustomization
300
+ }));
301
+ };
302
+
303
+ var FloatingPopup$1 = function FloatingPopup(_ref) {
304
+ var customization = _ref.customization,
305
+ updateCustomization = _ref.updateCustomization,
306
+ isQueryParamsEnabled = _ref.isQueryParamsEnabled;
307
+ var _useTranslation = reactI18next.useTranslation(),
308
+ t = _useTranslation.t;
309
+ var btnTextColor = customization.btnTextColor,
310
+ showIcon = customization.showIcon,
311
+ btnText = customization.btnText,
312
+ btnPosition = customization.btnPosition,
313
+ btnColor = customization.btnColor,
314
+ icon = customization.icon;
315
+ React.useEffect(function () {
316
+ if (isQueryParamsEnabled) return;
317
+ updateCustomization({
318
+ queryParams: undefined
319
+ });
320
+ }, []);
321
+ return /*#__PURE__*/React__default["default"].createElement("div", {
322
+ className: "space-y-6"
323
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
324
+ "data-cy": "popup-customization-header",
325
+ style: "h4"
326
+ }, t("neetoMolecules.productEmbed.customization.floatingPopup.title")), icon && /*#__PURE__*/React__default["default"].createElement(neetoui.Checkbox, {
327
+ checked: showIcon,
328
+ "data-cy": "show-icon-checkbox",
329
+ "data-testid": "show-icon-checkbox",
330
+ label: t("neetoMolecules.productEmbed.customization.floatingPopup.showCalIcon"),
331
+ onChange: function onChange(e) {
332
+ return updateCustomization({
333
+ showIcon: e.target.checked
334
+ });
335
+ }
336
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
337
+ className: "space-y-2"
338
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Input, {
339
+ "data-cy": "button-text-input-field",
340
+ "data-testid": "button-text-input-field",
341
+ value: btnText,
342
+ label: t("neetoMolecules.productEmbed.customization.floatingPopup.button.text"),
343
+ onChange: function onChange(e) {
344
+ return updateCustomization({
345
+ btnText: e.target.value
346
+ });
347
+ }
348
+ })), /*#__PURE__*/React__default["default"].createElement("div", {
349
+ className: "space-y-2"
350
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Select, {
351
+ "data-cy": "button-position-select-field",
352
+ "data-testid": "button-position-select-field",
353
+ options: FLOATING_BUTTON_POSITIONS,
354
+ value: btnPosition,
355
+ getOptionValue: function getOptionValue(option) {
356
+ return typeof option === "string" ? option : option.value;
357
+ },
358
+ label: t("neetoMolecules.productEmbed.customization.floatingPopup.button.pos"),
359
+ onChange: function onChange(e) {
360
+ return updateCustomization({
361
+ btnPosition: e.value
362
+ });
363
+ }
364
+ })), /*#__PURE__*/React__default["default"].createElement("div", {
365
+ className: "flex items-center justify-between gap-x-2",
366
+ "data-cy": "button-color-label"
367
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Label, null, t("neetoMolecules.productEmbed.customization.floatingPopup.button.color")), /*#__PURE__*/React__default["default"].createElement(neetoui.ColorPicker, {
368
+ color: btnColor,
369
+ onChange: function onChange(e) {
370
+ return updateCustomization({
371
+ btnColor: e.hex
372
+ });
373
+ }
374
+ })), /*#__PURE__*/React__default["default"].createElement("div", {
375
+ className: "flex items-center justify-between gap-x-2",
376
+ "data-cy": "button-text-color-label"
377
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Label, null, t("neetoMolecules.productEmbed.customization.floatingPopup.button.textColor")), /*#__PURE__*/React__default["default"].createElement(neetoui.ColorPicker, {
378
+ color: btnTextColor,
379
+ onChange: function onChange(e) {
380
+ return updateCustomization({
381
+ btnTextColor: e.hex
382
+ });
383
+ }
384
+ })), isQueryParamsEnabled && /*#__PURE__*/React__default["default"].createElement(DynamicQueryParams, {
385
+ updateCustomization: updateCustomization
386
+ }));
387
+ };
388
+
389
+ var Inline$1 = function Inline(_ref) {
390
+ var customization = _ref.customization,
391
+ updateCustomization = _ref.updateCustomization,
392
+ isQueryParamsEnabled = _ref.isQueryParamsEnabled;
393
+ var height = customization.height,
394
+ width = customization.width,
395
+ elementSelector = customization.elementSelector;
396
+ var _useTranslation = reactI18next.useTranslation(),
397
+ t = _useTranslation.t;
398
+ var handleInputChange = function handleInputChange(_ref2, attribute) {
399
+ var value = _ref2.target.value;
400
+ return updateCustomization(_defineProperty__default["default"]({}, attribute, value));
401
+ };
402
+ React.useEffect(function () {
403
+ if (isQueryParamsEnabled) return;
404
+ updateCustomization({
405
+ queryParams: undefined
406
+ });
407
+ }, []);
408
+ return /*#__PURE__*/React__default["default"].createElement("div", {
409
+ className: "flex flex-col gap-y-6"
410
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
411
+ "data-cy": "customization-text",
412
+ style: "h4"
413
+ }, t("neetoMolecules.productEmbed.customization.inline.title")), /*#__PURE__*/React__default["default"].createElement("div", {
414
+ className: "flex flex-col gap-2"
415
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Label, {
416
+ "data-cy": "window-size-text"
417
+ }, t("neetoMolecules.productEmbed.customization.inline.sizeOfEmbedWindow")), /*#__PURE__*/React__default["default"].createElement("div", {
418
+ className: "flex justify-between gap-x-2"
419
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Input, {
420
+ className: "neeto-molecules-product-embed-size-input",
421
+ "data-cy": "inline-width-input-field",
422
+ "data-testid": "inline-width-input-field",
423
+ max: 100,
424
+ min: 0,
425
+ prefix: "W",
426
+ suffix: "%",
427
+ type: "number",
428
+ value: width,
429
+ onChange: function onChange(e) {
430
+ return handleInputChange(e, "width");
431
+ }
432
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Input, {
433
+ className: "neeto-molecules-product-embed-size-input",
434
+ "data-cy": "inline-height-input-field",
435
+ "data-testid": "inline-height-input-field",
436
+ max: 100,
437
+ min: 0,
438
+ prefix: "H",
439
+ suffix: "%",
440
+ type: "number",
441
+ value: height,
442
+ onChange: function onChange(e) {
443
+ return handleInputChange(e, "height");
444
+ }
445
+ }))), /*#__PURE__*/React__default["default"].createElement("div", {
446
+ className: "flex flex-col gap-2"
447
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Label, {
448
+ "data-cy": "inline-element-id-input-label"
449
+ }, t("neetoMolecules.productEmbed.customization.inline.elementId")), /*#__PURE__*/React__default["default"].createElement(neetoui.Input, {
450
+ "data-cy": "inline-element-id-input-field",
451
+ "data-testid": "inline-element-id-input-field",
452
+ value: elementSelector,
453
+ onChange: function onChange(e) {
454
+ return handleInputChange(e, "elementSelector");
455
+ }
456
+ })), isQueryParamsEnabled && /*#__PURE__*/React__default["default"].createElement(DynamicQueryParams, {
457
+ updateCustomization: updateCustomization
458
+ }));
459
+ };
460
+
461
+ var Customization = function Customization(_ref) {
462
+ var option = _ref.option,
463
+ customization = _ref.customization,
464
+ updateCustomization = _ref.updateCustomization,
465
+ isQueryParamsEnabled = _ref.isQueryParamsEnabled;
466
+ var type = _defineProperty__default["default"](_defineProperty__default["default"](_defineProperty__default["default"]({}, EMBED_OPTIONS.INLINE, Inline$1), EMBED_OPTIONS.FLOATING_POPUP, FloatingPopup$1), EMBED_OPTIONS.ELEMENT_POPUP, ElementPopup$1);
467
+ var Component = type[option];
468
+ return /*#__PURE__*/React__default["default"].createElement(Component, {
469
+ customization: customization,
470
+ isQueryParamsEnabled: isQueryParamsEnabled,
471
+ updateCustomization: updateCustomization
472
+ });
473
+ };
474
+
475
+ var Header = function Header(_ref) {
476
+ var tab = _ref.tab,
477
+ setTab = _ref.setTab;
478
+ return /*#__PURE__*/React__default["default"].createElement("div", {
479
+ className: "flex w-full pt-2"
480
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Tab, {
481
+ noUnderline: true,
482
+ className: "neeto-molecules-product-embed-tab"
483
+ }, TABS.map(function (_ref2) {
484
+ var key = _ref2.key,
485
+ label = _ref2.label,
486
+ icon = _ref2.icon;
487
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Tab.Item, {
488
+ icon: icon,
489
+ active: tab === key,
490
+ "data-cy": "".concat(key, "-tab"),
491
+ "data-testid": "".concat(key, "-tab"),
492
+ key: key,
493
+ onClick: function onClick() {
494
+ return setTab(key);
495
+ }
496
+ }, label);
497
+ })));
498
+ };
499
+
500
+ var Options = function Options(_ref) {
501
+ var options = _ref.options,
502
+ selectedOption = _ref.selectedOption,
503
+ setSelectedOption = _ref.setSelectedOption;
504
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Radio, {
505
+ stacked: true,
506
+ containerClassName: "w-full flex flex-col gap-y-6",
507
+ name: "options"
508
+ }, Object.entries(options).map(function (_ref2) {
509
+ var _ref3 = _slicedToArray__default["default"](_ref2, 2),
510
+ key = _ref3[0],
511
+ _ref3$ = _ref3[1],
512
+ label = _ref3$.label,
513
+ description = _ref3$.description;
514
+ return /*#__PURE__*/React__default["default"].createElement("label", {
515
+ className: "neeto-ui-border-gray-300 neeto-ui-bg-white neeto-ui-rounded-lg w-full cursor-pointer border p-4",
516
+ "data-cy": "".concat(key, "-embed-option-label"),
517
+ "data-testid": "".concat(key, "-embed-option-label"),
518
+ htmlFor: key,
519
+ key: key
520
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
521
+ className: "flex items-center"
522
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Radio.Item, {
523
+ label: label,
524
+ checked: key === selectedOption,
525
+ className: "mb-0",
526
+ "data-cy": "".concat(key, "-embed-radio-button"),
527
+ "data-testid": "".concat(key, "-embed-radio-button"),
528
+ id: key,
529
+ name: "options",
530
+ value: key,
531
+ onChange: function onChange(event) {
532
+ return setSelectedOption(event.target.value);
533
+ }
534
+ })), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
535
+ className: "w-full pl-6 pt-1",
536
+ "data-cy": "".concat(key, "-embed-option-description"),
537
+ style: "body2"
538
+ }, description));
539
+ }));
540
+ };
541
+
542
+ var BrowserIcon = function BrowserIcon() {
543
+ return /*#__PURE__*/React__default["default"].createElement("svg", {
544
+ fill: "none",
545
+ height: "12",
546
+ viewBox: "0 0 52 12",
547
+ width: "52",
548
+ xmlns: "http://www.w3.org/2000/svg"
549
+ }, /*#__PURE__*/React__default["default"].createElement("path", {
550
+ d: "M11.5 6a5.5 5.5 0 11-11 0 5.5 5.5 0 0111 0z",
551
+ fill: "#FF5F57",
552
+ stroke: "#E14640"
553
+ }), /*#__PURE__*/React__default["default"].createElement("path", {
554
+ d: "M31.5 6a5.5 5.5 0 11-11 0 5.5 5.5 0 0111 0z",
555
+ fill: "#FFBD2E",
556
+ stroke: "#DFA123"
557
+ }), /*#__PURE__*/React__default["default"].createElement("path", {
558
+ d: "M51.5 6a5.5 5.5 0 11-11 0 5.5 5.5 0 0111 0z",
559
+ fill: "#28CA42",
560
+ stroke: "#1DAD2C"
561
+ }));
562
+ };
563
+
564
+ var ElementPopup = function ElementPopup(_ref) {
565
+ var iframeURL = _ref.iframeURL,
566
+ customization = _ref.customization;
567
+ var _useTranslation = reactI18next.useTranslation(),
568
+ t = _useTranslation.t;
569
+ var elementSelector = customization.elementSelector;
570
+ React.useEffect(function () {
571
+ var _window$globalProps$a;
572
+ var element = document.getElementById(elementSelector);
573
+ if (element) (_window$globalProps$a = window[globalProps.appName]) === null || _window$globalProps$a === void 0 ? void 0 : _window$globalProps$a.embed(element, iframeURL);
574
+ }, []);
575
+ return /*#__PURE__*/React__default["default"].createElement("div", {
576
+ className: "relative flex h-full w-full items-center justify-center p-6"
577
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
578
+ "data-cy": "preview-element-popup-button",
579
+ "data-testid": "preview-element-popup-button",
580
+ id: elementSelector,
581
+ size: "small",
582
+ label: t("neetoMolecules.productEmbed.customization.elementPopup.label")
583
+ }));
584
+ };
585
+
586
+ var FloatingPopup = function FloatingPopup(_ref) {
587
+ var iframeURL = _ref.iframeURL,
588
+ customization = _ref.customization;
589
+ var btnTextColor = customization.btnTextColor,
590
+ showIcon = customization.showIcon,
591
+ btnText = customization.btnText,
592
+ btnPosition = customization.btnPosition,
593
+ btnColor = customization.btnColor,
594
+ icon = customization.icon;
595
+ React.useEffect(function () {
596
+ var _window$globalProps$a;
597
+ var btn = document.getElementById("embedBtn");
598
+ (_window$globalProps$a = window[globalProps.appName]) === null || _window$globalProps$a === void 0 ? void 0 : _window$globalProps$a.embed(btn, iframeURL);
599
+ }, []);
600
+ React.useEffect(function () {
601
+ var btn = document.getElementById("embedBtn");
602
+ btn.style.backgroundColor = btnColor;
603
+ btn.style.color = btnTextColor;
604
+ }, [btnColor, btnTextColor]);
605
+ return /*#__PURE__*/React__default["default"].createElement("div", {
606
+ className: "relative h-full w-full"
607
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
608
+ "data-cy": "popup-preview-button",
609
+ icon: icon && showIcon ? icon : null,
610
+ iconPosition: "left",
611
+ id: "embedBtn",
612
+ label: btnText,
613
+ className: classnames__default["default"]("absolute bottom-0 m-16", {
614
+ "left-0": btnPosition === "bottomLeft",
615
+ "right-0": btnPosition === "bottomRight"
616
+ })
617
+ }));
618
+ };
619
+
620
+ var Inline = function Inline(_ref) {
621
+ var iframeURL = _ref.iframeURL,
622
+ customization = _ref.customization;
623
+ var height = customization.height,
624
+ width = customization.width;
625
+ return /*#__PURE__*/React__default["default"].createElement("iframe", {
626
+ className: "m-auto",
627
+ height: "".concat(height, "%"),
628
+ src: iframeURL,
629
+ width: "".concat(width, "%")
630
+ });
631
+ };
632
+
633
+ var Preview = function Preview(_ref) {
634
+ var isScriptLoading = _ref.isScriptLoading,
635
+ selectedOption = _ref.selectedOption,
636
+ id = _ref.id,
637
+ customization = _ref.customization,
638
+ _ref$customPreviewIfr = _ref.customPreviewIframeUrl,
639
+ customPreviewIframeUrl = _ref$customPreviewIfr === void 0 ? "" : _ref$customPreviewIfr;
640
+ var preview = _defineProperty__default["default"](_defineProperty__default["default"](_defineProperty__default["default"]({}, EMBED_OPTIONS.INLINE, Inline), EMBED_OPTIONS.FLOATING_POPUP, FloatingPopup), EMBED_OPTIONS.ELEMENT_POPUP, ElementPopup);
641
+ var iframeURL = customPreviewIframeUrl || "".concat(location.origin, "/embed/").concat(id);
642
+ var Component = preview[selectedOption];
643
+ if (isScriptLoading) {
644
+ return /*#__PURE__*/React__default["default"].createElement("div", {
645
+ className: "flex min-h-0 flex-grow items-center justify-center overflow-y-auto"
646
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Spinner, null));
647
+ }
648
+ return /*#__PURE__*/React__default["default"].createElement("div", {
649
+ className: "neeto-ui-rounded-lg neeto-ui-border-gray-300 neeto-ui-bg-white relative flex w-full flex-col overflow-hidden border"
650
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
651
+ className: "neeto-ui-border-gray-300 flex-shrink-0 border-b p-3"
652
+ }, /*#__PURE__*/React__default["default"].createElement(BrowserIcon, null)), /*#__PURE__*/React__default["default"].createElement("div", {
653
+ className: "flex min-h-0 flex-grow overflow-y-auto"
654
+ }, /*#__PURE__*/React__default["default"].createElement(Component, {
655
+ customization: customization,
656
+ iframeURL: iframeURL
657
+ })));
658
+ };
659
+
660
+ var css = ".neeto-molecules-product-embed-size-input.neeto-ui-input__wrapper .neeto-ui-input__prefix{align-self:stretch;background-color:rgb(var(--neeto-ui-gray-200));margin-left:0!important;padding-left:12px;padding-right:12px}.neeto-molecules-product-embed-tab{gap:.5rem}.neeto-molecules-product-embed-tab .neeto-ui-tab{border-radius:var(--neeto-ui-btn-border-radius);color:rgb(var(--neeto-ui-gray-800))}.neeto-molecules-product-embed-tab .neeto-ui-tab:not(.active):hover{background-color:rgb(var(--neeto-ui-gray-100))}.neeto-molecules-product-embed-tab .neeto-ui-tab.active{background-color:rgb(var(--neeto-ui-gray-200))}.neeto-molecules-embed-left-sidebar{align-items:flex-start;display:flex;flex-direction:column;flex-shrink:0;max-width:28rem;overflow-y:auto;padding:1.5rem;width:100%}";
661
+ injectCss.n(css,{});
662
+
663
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
664
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
665
+ var ProductEmbed = function ProductEmbed(_ref) {
666
+ var _ref$className = _ref.className,
667
+ className = _ref$className === void 0 ? "" : _ref$className,
668
+ _ref$customEmbedScrip = _ref.customEmbedScriptPath,
669
+ customEmbedScriptPath = _ref$customEmbedScrip === void 0 ? "" : _ref$customEmbedScrip,
670
+ _ref$customPreviewIfr = _ref.customPreviewIframeUrl,
671
+ customPreviewIframeUrl = _ref$customPreviewIfr === void 0 ? "" : _ref$customPreviewIfr,
672
+ _ref$goBackLink = _ref.goBackLink,
673
+ goBackLink = _ref$goBackLink === void 0 ? "" : _ref$goBackLink,
674
+ id = _ref.id,
675
+ _ref$isQueryParamsEna = _ref.isQueryParamsEnabled,
676
+ isQueryParamsEnabled = _ref$isQueryParamsEna === void 0 ? false : _ref$isQueryParamsEna,
677
+ _ref$options = _ref.options,
678
+ options = _ref$options === void 0 ? {} : _ref$options,
679
+ _ref$extraArgs = _ref.extraArgs,
680
+ extraArgs = _ref$extraArgs === void 0 ? {} : _ref$extraArgs;
681
+ var _useState = React.useState(true),
682
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
683
+ isScriptLoading = _useState2[0],
684
+ setIsScriptLoading = _useState2[1];
685
+ var _useState3 = React.useState(TAB_KEYS.HTML),
686
+ _useState4 = _slicedToArray__default["default"](_useState3, 2),
687
+ tab = _useState4[0],
688
+ setTab = _useState4[1];
689
+ var _useState5 = React.useState(EMBED_OPTIONS.INLINE),
690
+ _useState6 = _slicedToArray__default["default"](_useState5, 2),
691
+ selectedOption = _useState6[0],
692
+ setSelectedOption = _useState6[1];
693
+ var _useState7 = React.useState(function () {
694
+ return buildDefaultCustomization(options);
695
+ }),
696
+ _useState8 = _slicedToArray__default["default"](_useState7, 2),
697
+ customizations = _useState8[0],
698
+ setCustomizations = _useState8[1];
699
+ var _useTranslation = reactI18next.useTranslation(),
700
+ t = _useTranslation.t;
701
+ var embedScriptLink = customEmbedScriptPath || "".concat(window.location.protocol, "//").concat(window.location.host, "/javascript/embed.js");
702
+ var code = embedCode({
703
+ id: id,
704
+ type: selectedOption,
705
+ customization: customizations[selectedOption],
706
+ embedScriptLink: embedScriptLink,
707
+ extraArgs: extraArgs
708
+ });
709
+ var loadScript = function loadScript() {
710
+ var script = document.createElement("script");
711
+ script.id = SCRIPT_ID;
712
+ script.src = embedScriptLink;
713
+ document.head.appendChild(script);
714
+ setIsScriptLoading(false);
715
+ };
716
+ var updateCustomization = function updateCustomization(props) {
717
+ return setCustomizations(function (prevState) {
718
+ return _objectSpread(_objectSpread({}, prevState), {}, _defineProperty__default["default"]({}, selectedOption, ramda.mergeLeft(props, prevState[selectedOption])));
719
+ });
720
+ };
721
+ React.useEffect(function () {
722
+ var isScriptLoaded = document.getElementById(SCRIPT_ID);
723
+ if (isScriptLoaded) setIsScriptLoading(false);else loadScript();
724
+ }, []);
725
+ return /*#__PURE__*/React__default["default"].createElement("div", {
726
+ className: classnames__default["default"]("flex w-full flex-grow", className),
727
+ "data-testid": "embed-product"
728
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
729
+ className: "neeto-molecules-embed-left-sidebar border-r"
730
+ }, goBackLink && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
731
+ className: "mb-4 px-0",
732
+ "data-cy": "back-button",
733
+ "data-testid": "back-button",
734
+ icon: neetoIcons.LeftArrow,
735
+ iconPosition: "left",
736
+ label: t("neetoMolecules.productEmbed.backToShare"),
737
+ size: "small",
738
+ style: "icon",
739
+ to: goBackLink
740
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
741
+ "data-cy": "embed-options-header-title",
742
+ style: "h3"
743
+ }, t("neetoMolecules.productEmbed.embedOptions.title")), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
744
+ className: "mt-1",
745
+ "data-cy": "embed-options-header-description",
746
+ style: "body3"
747
+ }, t("neetoMolecules.productEmbed.embedOptions.description")), /*#__PURE__*/React__default["default"].createElement("div", {
748
+ className: "mt-6 flex w-full flex-col gap-y-6 pb-10"
749
+ }, /*#__PURE__*/React__default["default"].createElement(Options, {
750
+ options: options,
751
+ selectedOption: selectedOption,
752
+ setSelectedOption: setSelectedOption
753
+ }), /*#__PURE__*/React__default["default"].createElement(Customization, {
754
+ isQueryParamsEnabled: isQueryParamsEnabled,
755
+ updateCustomization: updateCustomization,
756
+ customization: customizations[selectedOption],
757
+ option: selectedOption
758
+ }))), /*#__PURE__*/React__default["default"].createElement("div", {
759
+ className: "neeto-ui-bg-white flex w-full min-w-0 flex-grow flex-col gap-4 p-6"
760
+ }, /*#__PURE__*/React__default["default"].createElement(Header, {
761
+ setTab: setTab,
762
+ tab: tab
763
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
764
+ className: "flex flex-grow overflow-y-auto"
765
+ }, tab === TAB_KEYS.PREVIEW ? /*#__PURE__*/React__default["default"].createElement(Preview, {
766
+ customPreviewIframeUrl: customPreviewIframeUrl,
767
+ id: id,
768
+ isScriptLoading: isScriptLoading,
769
+ selectedOption: selectedOption,
770
+ customization: customizations[selectedOption]
771
+ }) : /*#__PURE__*/React__default["default"].createElement(Code, {
772
+ code: code
773
+ }))));
774
+ };
775
+
776
+ module.exports = ProductEmbed;
777
+ //# sourceMappingURL=ProductEmbed.js.map