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